@kitn.ai/ui 0.26.0 → 0.27.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 (474) hide show
  1. package/README.md +16 -5
  2. package/bin/mcp.js +16 -3
  3. package/bin/route.js +23 -0
  4. package/bin/route.test.js +58 -0
  5. package/dist/{elements/chunks/Icon--Y8vsFal.js → Icon-BnFKqqtY.js} +1 -1
  6. package/dist/action-icons-CBskfBMz.js +1 -0
  7. package/dist/arrow-down-Br0qtpsz.js +1 -0
  8. package/dist/arrow-left-Dj7xgE12.js +1 -0
  9. package/dist/artifact-CvXEm1lS.js +1 -0
  10. package/dist/assets/dev-5XzXYR21.js +91 -0
  11. package/dist/attachments-C43ZegEq.js +1 -0
  12. package/dist/{elements/chunks/audio-visualizer-D7lB6mvR.js → audio-visualizer-B-79y1Tj.js} +1 -1
  13. package/dist/badge-BpUbq8c0.js +1 -0
  14. package/dist/bash-InADTalH.js +1 -6
  15. package/dist/bell-sn17Ip9v.js +1 -0
  16. package/dist/{elements/chunks/button-flUbeufF.js → button-BH6rN0U-.js} +1 -1
  17. package/dist/card-renderer-Cb1gQmth.js +1 -0
  18. package/dist/card-routing-DifQgS7n.js +1 -0
  19. package/dist/check-DPeeMUYx.js +1 -0
  20. package/dist/checkbox-Dc9Yov_B.js +1 -0
  21. package/dist/checkbox-group-B1kDLLYk.js +1 -0
  22. package/dist/chevron-down-CHSWk7ZT.js +1 -0
  23. package/dist/chevron-right-B7l_fMgx.js +1 -0
  24. package/dist/choice-card-BT3c1S8g.js +1 -0
  25. package/dist/circle-Bb0yOpqM.js +1 -0
  26. package/dist/circle-check-BGZpCiz7.js +1 -0
  27. package/dist/circle-x-wobWkoSx.js +1 -0
  28. package/dist/{elements/chunks/cn-CU7UAWzk.js → cn-DN5AWfiS.js} +1 -1
  29. package/dist/{elements/chunks/code-block-BdLiTitd.js → code-block-CUQ5mtv0.js} +1 -1
  30. package/dist/{elements/chunks/collapsible-BzbXpPzr.js → collapsible-CPJbf6FM.js} +1 -1
  31. package/dist/components/attachment-types.d.ts +7 -0
  32. package/dist/components/audio-visualizer/fit-scale.d.ts +1 -1
  33. package/dist/components/card-renderer.d.ts +13 -0
  34. package/dist/components/card.d.ts +4 -0
  35. package/dist/components/chat-thread.d.ts +46 -1
  36. package/dist/components/conversation-item.d.ts +19 -7
  37. package/dist/components/conversation-list.d.ts +17 -5
  38. package/dist/components/form-widgets.d.ts +67 -2
  39. package/dist/components/form.d.ts +48 -1
  40. package/dist/components/message.d.ts +25 -3
  41. package/dist/components/reasoning.d.ts +6 -0
  42. package/dist/components/scroll-button.d.ts +11 -0
  43. package/dist/components/thread.d.ts +5 -0
  44. package/dist/components/tool-types.d.ts +9 -0
  45. package/dist/composer-CjngLzal.js +106 -0
  46. package/dist/confirm-card-DCx_A4bU.js +1 -0
  47. package/dist/construct-cli.es.js +1169 -0
  48. package/dist/{elements/chunks/context-VLIL3sJ-.js → context-BY8V-Nlp.js} +1 -1
  49. package/dist/controllable-D43BKmtX.js +1 -0
  50. package/dist/conversation-list-D4lLU_yS.js +1 -0
  51. package/dist/copy-B6DO4PqB.js +1 -0
  52. package/dist/core-AYMC6_lb.js +12 -5874
  53. package/dist/{create-tween-CQED4T0g.js → create-tween-BPzaefTp.js} +1 -1
  54. package/dist/{create-tween-BFT6c-Y8.js → create-tween-CnMHviKB.js} +1 -1
  55. package/dist/{create-tween-CJNlzoaO.js → create-tween-D1aiGZZh.js} +1 -1
  56. package/dist/{elements/chunks/create-tween-c4Z8TDYz.js → create-tween-DUSQUKpr.js} +2 -2
  57. package/dist/css-M7EaDHN_.js +1 -6
  58. package/dist/custom-elements.json +1400 -218
  59. package/dist/default-input-CucQEOqH.js +1 -0
  60. package/dist/define-CGGX-7Vg.js +1 -0
  61. package/dist/define.d.ts +4 -0
  62. package/dist/define.js +510 -0
  63. package/dist/define.server.d.ts +5 -0
  64. package/dist/define.server.js +506 -0
  65. package/dist/{elements/chunks/disclosure-CcNbyLy0.js → disclosure-CbLtajUQ.js} +1 -1
  66. package/dist/{elements/chunks/dropdown-BgWTthUx.js → dropdown-BwhViJFd.js} +1 -1
  67. package/dist/elements/agent-card.js +1 -1
  68. package/dist/elements/artifact.js +1 -1
  69. package/dist/elements/attachments.js +1 -1
  70. package/dist/elements/audio-visualizer.js +1 -1
  71. package/dist/elements/autoloader.js +1 -1
  72. package/dist/elements/avatar.js +1 -1
  73. package/dist/elements/badge.js +1 -1
  74. package/dist/elements/button.js +1 -1
  75. package/dist/elements/card.js +1 -1
  76. package/dist/elements/cards.js +1 -1
  77. package/dist/elements/chain-of-thought.js +1 -1
  78. package/dist/elements/chat-scope-picker.js +1 -1
  79. package/dist/elements/chat-workspace.js +1 -1
  80. package/dist/elements/chat.js +1 -1
  81. package/dist/elements/checkbox-group.d.ts +1 -0
  82. package/dist/elements/checkbox-group.js +1 -0
  83. package/dist/elements/checkbox.d.ts +1 -0
  84. package/dist/elements/checkbox.js +1 -0
  85. package/dist/elements/checkpoint.js +1 -1
  86. package/dist/elements/choice.js +1 -1
  87. package/dist/elements/coachmark.js +1 -1
  88. package/dist/elements/code-block.js +1 -1
  89. package/dist/elements/command.js +1 -1
  90. package/dist/elements/compare.js +1 -1
  91. package/dist/elements/composer.js +1 -1
  92. package/dist/elements/confirm-card.js +1 -1
  93. package/dist/elements/context-meter.js +1 -1
  94. package/dist/elements/conversation-item.js +1 -1
  95. package/dist/elements/conversation-list.js +1 -1
  96. package/dist/elements/define-entry.d.ts +12 -0
  97. package/dist/elements/dialog.js +1 -1
  98. package/dist/elements/dock.js +101 -7
  99. package/dist/elements/dropdown.js +1 -1
  100. package/dist/elements/editable-label.js +1 -1
  101. package/dist/elements/element-data-types.d.ts +37 -0
  102. package/dist/elements/embed.js +1 -1
  103. package/dist/elements/empty.js +1 -1
  104. package/dist/elements/feedback-bar.js +1 -1
  105. package/dist/elements/file-tree.js +1 -1
  106. package/dist/elements/file-upload.js +1 -1
  107. package/dist/elements/form.js +1 -1
  108. package/dist/elements/hover-card.js +1 -1
  109. package/dist/elements/icon.js +1 -1
  110. package/dist/elements/image.js +1 -1
  111. package/dist/elements/input.js +1 -1
  112. package/dist/elements/kbd.js +1 -1
  113. package/dist/elements/link-preview.js +1 -1
  114. package/dist/elements/loader.js +1 -1
  115. package/dist/elements/markdown.js +1 -1
  116. package/dist/elements/menu.js +1 -1
  117. package/dist/elements/message-skills.js +1 -1
  118. package/dist/elements/message.js +1 -1
  119. package/dist/elements/model-switcher.js +1 -1
  120. package/dist/elements/nav.js +1 -1
  121. package/dist/elements/notice.js +1 -1
  122. package/dist/elements/pane-grid.d.ts +1 -0
  123. package/dist/elements/pane-grid.js +1 -0
  124. package/dist/elements/pane-group.js +1 -1
  125. package/dist/elements/pane.js +1 -1
  126. package/dist/elements/popover.js +1 -1
  127. package/dist/elements/progress-bar.js +1 -1
  128. package/dist/elements/prompt-dock.js +1 -1
  129. package/dist/elements/prompt-input.js +1 -1
  130. package/dist/elements/prompt-suggestions.js +1 -1
  131. package/dist/elements/radio-group.d.ts +1 -0
  132. package/dist/elements/radio-group.js +1 -0
  133. package/dist/elements/reasoning.js +1 -1
  134. package/dist/elements/remote.js +1 -1
  135. package/dist/elements/resizable.js +1 -1
  136. package/dist/elements/response-stream.js +2 -2
  137. package/dist/elements/screen.js +1 -1
  138. package/dist/elements/scroll-area.js +1 -1
  139. package/dist/elements/scroll-button.js +1 -1
  140. package/dist/elements/search.js +1 -1
  141. package/dist/elements/segmented.js +1 -1
  142. package/dist/elements/select.d.ts +1 -0
  143. package/dist/elements/select.js +1 -0
  144. package/dist/elements/separator.js +1 -1
  145. package/dist/elements/setting-item.js +1 -1
  146. package/dist/elements/settings-group.js +1 -1
  147. package/dist/elements/skeleton.js +1 -1
  148. package/dist/elements/slider.d.ts +1 -0
  149. package/dist/elements/slider.js +1 -0
  150. package/dist/elements/slots.d.ts +1 -1
  151. package/dist/elements/source.js +1 -1
  152. package/dist/elements/status.js +1 -1
  153. package/dist/elements/switch.js +1 -1
  154. package/dist/elements/tabs.js +1 -1
  155. package/dist/elements/tasks.js +1 -1
  156. package/dist/elements/text-shimmer.js +1 -1
  157. package/dist/elements/thinking-bar.js +1 -1
  158. package/dist/elements/thread.js +1 -1
  159. package/dist/elements/toast.js +1 -1
  160. package/dist/elements/tool.js +1 -1
  161. package/dist/elements/tooltip.js +1 -1
  162. package/dist/elements/voice-input.js +1 -1
  163. package/dist/elements/voice-output.js +1 -1
  164. package/dist/elements.d.ts +362 -24
  165. package/dist/{elements/chunks/ellipsis-7gU33mL2.js → ellipsis-DFr4Vqr3.js} +1 -1
  166. package/dist/embed-5s_vU4J0.js +1 -0
  167. package/dist/engine-javascript-vq0WuIJl.js +14 -2516
  168. package/dist/{elements/chunks/external-link-CSOEsNlx.js → external-link-u9d85ORQ.js} +1 -1
  169. package/dist/file-text-CX7_x42o.js +1 -0
  170. package/dist/{elements/chunks/file-tree-zvB2i7P9.js → file-tree-D3kBjXI5.js} +1 -1
  171. package/dist/folder-V-YdIL8f.js +1 -0
  172. package/dist/form-BRNUMCN2.js +1 -0
  173. package/dist/github-dark-dimmed-DUshB20C.js +1 -4
  174. package/dist/github-light-JYsPkUQd.js +1 -4
  175. package/dist/hover-card-DaeiYrTA.js +1 -0
  176. package/dist/html-CPZ3oZQ7.js +1 -10
  177. package/dist/icon-BpixdZNq.js +1 -0
  178. package/dist/{elements/chunks/index-BCRhi84a.js → index-xu_pdcPi.js} +1 -1
  179. package/dist/index.d.ts +1 -1
  180. package/dist/index.js +7330 -5852
  181. package/dist/index.server.js +5823 -4759
  182. package/dist/info-8mFsIjS3.js +1 -0
  183. package/dist/input-d1Yuu-hz.js +1 -0
  184. package/dist/javascript-C25yR2R2.js +1 -6
  185. package/dist/json-DxJze_jm.js +1 -6
  186. package/dist/kai.es.js +1 -1
  187. package/dist/kbd-961zMPFB.js +1 -0
  188. package/dist/link-DlZZBGaR.js +1 -0
  189. package/dist/{elements/chunks/link-preview-OQ9IEq0f.js → link-preview-DIIbV2Sd.js} +1 -1
  190. package/dist/loader-YQszHFaW.js +1 -0
  191. package/dist/{elements/chunks/markdown-DgBFaGAz.js → markdown-CVk1MPsj.js} +1 -1
  192. package/dist/mcp.es.js +1285 -79
  193. package/dist/message-CwKVEdZg.js +1 -0
  194. package/dist/message-DS8lzHc1.js +1 -0
  195. package/dist/message-circle-Xf8Q-vZp.js +1 -0
  196. package/dist/message-square-Cxnwgkns.js +1 -0
  197. package/dist/{elements/chunks/minimize-2-DPIUKTrT.js → minimize-2-UEZmP2QT.js} +1 -1
  198. package/dist/{elements/chunks/model-switcher-DsT8tFB0.js → model-switcher-Kk1jEQ5t.js} +1 -1
  199. package/dist/{elements/chunks/overlay-DuiwdXjm.js → overlay-C1od6LOz.js} +1 -1
  200. package/dist/panel-right-ryET0yyn.js +1 -0
  201. package/dist/paperclip-BDNoZFJP.js +1 -0
  202. package/dist/play-OFIvYXUQ.js +1 -0
  203. package/dist/primitives/card-data-types.d.ts +49 -0
  204. package/dist/primitives/card-routing.d.ts +1 -33
  205. package/dist/primitives/card-validate.d.ts +2 -2
  206. package/dist/primitives/chat-config.d.ts +29 -2
  207. package/dist/primitives/field-mask.d.ts +96 -0
  208. package/dist/primitives/field-semantics.d.ts +36 -0
  209. package/dist/primitives/input-mask.d.ts +46 -0
  210. package/dist/primitives/url-scheme-policy.d.ts +34 -0
  211. package/dist/primitives/use-resize-observer.d.ts +2 -2
  212. package/dist/progress-bar-BvYX0aoy.js +1 -0
  213. package/dist/prompt-suggestion-BRFu2lcu.js +1 -0
  214. package/dist/radio-DcL23cNJ.js +1 -0
  215. package/dist/react/index.d.ts +193 -19
  216. package/dist/react.js +216 -180
  217. package/dist/reasoning-Cackq4Rh.js +1 -0
  218. package/dist/register-impl-C7rENvPK.js +424 -0
  219. package/dist/{elements/chunks/resizable-D181b4fM.js → resizable-Cp9HUYih.js} +1 -1
  220. package/dist/rotate-ccw-0DLRDHH5.js +1 -0
  221. package/dist/rotate-cw-DOB9IGcU.js +1 -0
  222. package/dist/schemas/form.schema.json +21 -1
  223. package/dist/schemas/tool-defs.d.ts +11 -1
  224. package/dist/schemas.js +81 -81
  225. package/dist/scroll-area-emVmWP4K.js +1 -0
  226. package/dist/scroll-button-CeP_gv1x.js +1 -0
  227. package/dist/select-CWmu00tS.js +1 -0
  228. package/dist/{elements/chunks/separator-CeJHQqLW.js → separator-CE6vly6z.js} +1 -1
  229. package/dist/{elements/chunks/settings-CqaHgJF9.js → settings-CE-78SvZ.js} +1 -1
  230. package/dist/{elements/chunks/settings-group-CjqjLCOn.js → settings-group-ZFWNxFQR.js} +1 -1
  231. package/dist/{elements/chunks/skeleton-D8akBnKS.js → skeleton-BebdP4mf.js} +1 -1
  232. package/dist/slider-BAKRYUlz.js +1 -0
  233. package/dist/{solid-BtdqNZI7.js → solid-BE5ui6sy.js} +8727 -7212
  234. package/dist/{solid-CnavwBye.js → solid-DFhsce3O.js} +7015 -5886
  235. package/dist/solid.d.ts +10 -0
  236. package/dist/solid.js +240 -234
  237. package/dist/solid.server.js +240 -234
  238. package/dist/source-B0FlguSx.js +1 -0
  239. package/dist/star-CBMZvLuN.js +1 -0
  240. package/dist/state/index.d.ts +1 -1
  241. package/dist/state/mock.d.ts +32 -2
  242. package/dist/state.js +133 -108
  243. package/dist/{elements/chunks/store-Cjq0qwYN.js → store-7eoadydQ.js} +1 -1
  244. package/dist/svelte--5p79yCD.js +1 -15
  245. package/dist/switch-CViARZCy.js +1 -0
  246. package/dist/tasks-card-MjCcOhR_.js +1 -0
  247. package/dist/text-shimmer-DKlwRF2G.js +1 -0
  248. package/dist/textarea-3ay2Me2-.js +1 -0
  249. package/dist/theme.tokens.css +82 -13
  250. package/dist/{elements/chunks/thumbs-up-DX2Ijk3H.js → thumbs-up-DQcu2HMO.js} +1 -1
  251. package/dist/toast-store-C6yKOhbk.js +1 -0
  252. package/dist/{elements/chunks/tool-DKQ2D1DP.js → tool-BCYNlfKy.js} +1 -1
  253. package/dist/{elements/chunks/tooltip-B0G99y8w.js → tooltip-05zI4hjs.js} +1 -1
  254. package/dist/trash-2-BR1RxGky.js +1 -0
  255. package/dist/{elements/chunks/triangle-alert-F9cyUEyy.js → triangle-alert-DHohDOCy.js} +1 -1
  256. package/dist/tsx-B8rCNbgL.js +1 -6
  257. package/dist/typescript-RycA9KXf.js +1 -6
  258. package/dist/ui/checkbox-group.d.ts +83 -0
  259. package/dist/ui/checkbox.d.ts +40 -0
  260. package/dist/ui/dock.d.ts +22 -0
  261. package/dist/ui/icon.d.ts +3 -0
  262. package/dist/ui/input.d.ts +48 -2
  263. package/dist/ui/radio.d.ts +85 -0
  264. package/dist/ui/select.d.ts +71 -0
  265. package/dist/ui/slider.d.ts +65 -0
  266. package/dist/ui/switch.d.ts +9 -2
  267. package/dist/upload-BbGW6A_u.js +1 -0
  268. package/dist/url-scheme-policy-DHpoTJwB.js +1 -0
  269. package/dist/use-card-resolution-CJW4grFa.js +1 -0
  270. package/dist/{variant-aurora-B8II3-I1.js → variant-aurora-BUOVgPOB.js} +2 -2
  271. package/dist/{variant-aurora-CMNWOSJR.js → variant-aurora-CUsUJvFI.js} +2 -2
  272. package/dist/{variant-aurora-CcuDMWwQ.js → variant-aurora-CW2i4bfr.js} +1 -1
  273. package/dist/{elements/chunks/variant-aurora-qt6Zct8M.js → variant-aurora-xiMPty8f.js} +1 -1
  274. package/dist/{variant-custom-L16JLLZy.js → variant-custom-BQtOnmeO.js} +1 -1
  275. package/dist/{variant-custom-C714mqKl.js → variant-custom-CAm9L-E5.js} +2 -2
  276. package/dist/{variant-custom-BdvYC7af.js → variant-custom-CAnzzppW.js} +2 -2
  277. package/dist/{elements/chunks/variant-custom-tJp22_BQ.js → variant-custom-D91HjAKz.js} +1 -1
  278. package/dist/{variant-wave-ecwykeyL.js → variant-wave-Ca1Ls4_y.js} +2 -2
  279. package/dist/{variant-wave-D7ruiA1W.js → variant-wave-CxX39DKd.js} +2 -2
  280. package/dist/{elements/chunks/variant-wave-CaQ5ti39.js → variant-wave-DYyzIIZv.js} +1 -1
  281. package/dist/{variant-wave-2S4La2Ka.js → variant-wave-uY5crU_K.js} +1 -1
  282. package/dist/vue-BmIZj4XD.js +1 -33
  283. package/dist/x-C5m1JFgi.js +1 -0
  284. package/frameworks/react/index.tsx +198 -20
  285. package/llms-full.txt +1178 -21
  286. package/llms.txt +6 -3
  287. package/package.json +17 -4
  288. package/src/agent-tooling/catalog/invariants.ts +1 -1
  289. package/src/agent-tooling/catalog/surfaces.ts +72 -0
  290. package/src/agent-tooling/construct/cli-entry.ts +8 -0
  291. package/src/agent-tooling/construct/cli.ts +131 -0
  292. package/src/agent-tooling/construct/codegen.ts +1353 -0
  293. package/src/agent-tooling/construct/construct.v1.schema.json +250 -0
  294. package/src/agent-tooling/construct/dev.ts +148 -0
  295. package/src/agent-tooling/construct/fixtures/demo-widget.construct.json +7 -0
  296. package/src/agent-tooling/construct/fixtures/ops-console.construct.json +44 -0
  297. package/src/agent-tooling/construct/fixtures/owner-widget.construct.json +23 -0
  298. package/src/agent-tooling/construct/schema.ts +371 -0
  299. package/src/agent-tooling/mcp/server.ts +2 -1
  300. package/src/agent-tooling/mcp/tools/construct.ts +130 -0
  301. package/src/agent-tooling/mcp/tools/debug.ts +126 -4
  302. package/src/agent-tooling/mcp/tools/reference.ts +104 -3
  303. package/src/agent-tooling/recipes/composed-thread.ts +714 -0
  304. package/src/agent-tooling/recipes/index.ts +22 -0
  305. package/src/agent-tooling/recipes/types.ts +32 -0
  306. package/src/agent-tooling/registry.ts +5 -0
  307. package/src/components/attachment-types.ts +7 -0
  308. package/src/components/audio-visualizer/fit-scale.ts +1 -1
  309. package/src/components/card-renderer.tsx +39 -8
  310. package/src/components/card.tsx +10 -2
  311. package/src/components/chat-scope-picker.tsx +2 -2
  312. package/src/components/chat-thread.tsx +72 -9
  313. package/src/components/choice-card.tsx +102 -37
  314. package/src/components/coachmark.tsx +1 -1
  315. package/src/components/code-block.tsx +2 -2
  316. package/src/components/composer.tsx +89 -15
  317. package/src/components/confirm-card.tsx +20 -4
  318. package/src/components/conversation-item.tsx +33 -9
  319. package/src/components/conversation-list.tsx +25 -10
  320. package/src/components/empty.tsx +14 -3
  321. package/src/components/file-tree.tsx +5 -1
  322. package/src/components/form-widgets.tsx +257 -195
  323. package/src/components/form.tsx +297 -9
  324. package/src/components/loader.tsx +12 -5
  325. package/src/components/message-skills.tsx +1 -1
  326. package/src/components/message.tsx +71 -11
  327. package/src/components/prompt-input.tsx +7 -1
  328. package/src/components/prompt-suggestion.tsx +4 -1
  329. package/src/components/reasoning.tsx +30 -3
  330. package/src/components/response-compare.tsx +2 -2
  331. package/src/components/scroll-button.tsx +56 -4
  332. package/src/components/source.tsx +6 -1
  333. package/src/components/tasks-card.tsx +58 -16
  334. package/src/components/thread.tsx +10 -1
  335. package/src/components/toast.tsx +1 -1
  336. package/src/components/tool-types.ts +9 -0
  337. package/src/elements/attachments.tsx +3 -1
  338. package/src/elements/chat-workspace.tsx +1 -1
  339. package/src/elements/chat.tsx +22 -4
  340. package/src/elements/checkbox-group.tsx +164 -0
  341. package/src/elements/checkbox.tsx +134 -0
  342. package/src/elements/compiled.css +1 -1
  343. package/src/elements/composer.tsx +12 -1
  344. package/src/elements/conversation-item.tsx +62 -22
  345. package/src/elements/conversation-list.tsx +2 -2
  346. package/src/elements/define-entry.ts +12 -0
  347. package/src/elements/dock.tsx +11 -0
  348. package/src/elements/element-data-types.ts +40 -0
  349. package/src/elements/element-manifest.json +24 -0
  350. package/src/elements/element-meta.json +736 -46
  351. package/src/elements/element-nonscalar.json +15 -0
  352. package/src/elements/element-types.d.ts +362 -24
  353. package/src/elements/feedback-bar.tsx +5 -0
  354. package/src/elements/icon-names.json +29 -0
  355. package/src/elements/input.tsx +312 -23
  356. package/src/elements/message.tsx +2 -0
  357. package/src/elements/pane-grid.tsx +111 -0
  358. package/src/elements/prompt-input.tsx +8 -2
  359. package/src/elements/radio-group.tsx +129 -0
  360. package/src/elements/register-impl.ts +6 -0
  361. package/src/elements/scroll-button.tsx +54 -6
  362. package/src/elements/select.tsx +165 -0
  363. package/src/elements/slider.tsx +171 -0
  364. package/src/elements/slots.ts +1 -1
  365. package/src/elements/styles.css +89 -3
  366. package/src/elements/thread.tsx +2 -0
  367. package/src/elements/toast.tsx +14 -1
  368. package/src/index.ts +2 -1
  369. package/src/primitives/card-data-types.ts +49 -0
  370. package/src/primitives/card-host.tsx +4 -2
  371. package/src/primitives/card-routing.ts +7 -56
  372. package/src/primitives/card-schemas/form.schema.json +21 -1
  373. package/src/primitives/card-validate.ts +10 -2
  374. package/src/primitives/chat-config.tsx +33 -6
  375. package/src/primitives/field-mask.ts +256 -0
  376. package/src/primitives/field-semantics.ts +115 -0
  377. package/src/primitives/input-mask.ts +853 -0
  378. package/src/primitives/toast-store.ts +66 -4
  379. package/src/primitives/url-scheme-policy.ts +70 -0
  380. package/src/primitives/use-resize-observer.ts +2 -2
  381. package/src/schemas/tool-defs.ts +12 -2
  382. package/src/solid.ts +10 -0
  383. package/src/state/index.ts +1 -1
  384. package/src/state/mock.ts +92 -6
  385. package/src/ui/agent-card.tsx +2 -2
  386. package/src/ui/avatar.tsx +1 -1
  387. package/src/ui/checkbox-group.tsx +153 -0
  388. package/src/ui/checkbox.tsx +63 -0
  389. package/src/ui/dock.tsx +145 -6
  390. package/src/ui/icon.tsx +53 -0
  391. package/src/ui/input.tsx +249 -9
  392. package/src/ui/kbd.tsx +1 -1
  393. package/src/ui/nav.tsx +1 -1
  394. package/src/ui/pane-group.tsx +2 -2
  395. package/src/ui/radio.tsx +150 -0
  396. package/src/ui/select.tsx +168 -0
  397. package/src/ui/slider.tsx +178 -0
  398. package/src/ui/switch.tsx +49 -18
  399. package/src/utils/cn.ts +11 -5
  400. package/theme.css +84 -13
  401. package/dist/elements/chunks/action-icons-D9u3OzYW.js +0 -1
  402. package/dist/elements/chunks/arrow-left-CVh1TeN7.js +0 -1
  403. package/dist/elements/chunks/artifact-BkYcfIlZ.js +0 -1
  404. package/dist/elements/chunks/attachments-DwfNlubq.js +0 -1
  405. package/dist/elements/chunks/badge-Q0-Cmwzz.js +0 -1
  406. package/dist/elements/chunks/bash-InADTalH.js +0 -1
  407. package/dist/elements/chunks/card-renderer-3Dyl-FpN.js +0 -1
  408. package/dist/elements/chunks/card-routing-BK09BdmL.js +0 -1
  409. package/dist/elements/chunks/check-B5kBPKeo.js +0 -1
  410. package/dist/elements/chunks/chevron-down-DZ1GS39h.js +0 -1
  411. package/dist/elements/chunks/chevron-right-CvP7OUd2.js +0 -1
  412. package/dist/elements/chunks/choice-card-D4QUIOWZ.js +0 -1
  413. package/dist/elements/chunks/circle-CDf9g6MQ.js +0 -1
  414. package/dist/elements/chunks/circle-check-CA47Nqbz.js +0 -1
  415. package/dist/elements/chunks/circle-x-CJ_HVbC8.js +0 -1
  416. package/dist/elements/chunks/composer-Byve-n8K.js +0 -69
  417. package/dist/elements/chunks/confirm-card-B0flE3MN.js +0 -1
  418. package/dist/elements/chunks/controllable-DTwTIlwp.js +0 -1
  419. package/dist/elements/chunks/conversation-item-BDztezOG.js +0 -1
  420. package/dist/elements/chunks/copy-Nf-kqxXH.js +0 -1
  421. package/dist/elements/chunks/core-AYMC6_lb.js +0 -12
  422. package/dist/elements/chunks/css-M7EaDHN_.js +0 -1
  423. package/dist/elements/chunks/default-input-C2iLFq0b.js +0 -1
  424. package/dist/elements/chunks/define-wjHR1MkU.js +0 -1
  425. package/dist/elements/chunks/download-C4V7tBdb.js +0 -1
  426. package/dist/elements/chunks/embed-D3KewsIJ.js +0 -1
  427. package/dist/elements/chunks/engine-javascript-vq0WuIJl.js +0 -141
  428. package/dist/elements/chunks/file-text-D1G8khle.js +0 -1
  429. package/dist/elements/chunks/folder-WW2LGLid.js +0 -1
  430. package/dist/elements/chunks/form-CQirdC4W.js +0 -1
  431. package/dist/elements/chunks/github-dark-dimmed-DUshB20C.js +0 -1
  432. package/dist/elements/chunks/github-light-JYsPkUQd.js +0 -1
  433. package/dist/elements/chunks/hover-card-CJJkfHTK.js +0 -1
  434. package/dist/elements/chunks/html-CPZ3oZQ7.js +0 -1
  435. package/dist/elements/chunks/icon-Cfgmf4fa.js +0 -1
  436. package/dist/elements/chunks/info-DX3YMOt6.js +0 -1
  437. package/dist/elements/chunks/input-BtW9U6Sq.js +0 -1
  438. package/dist/elements/chunks/javascript-C25yR2R2.js +0 -1
  439. package/dist/elements/chunks/json-DxJze_jm.js +0 -1
  440. package/dist/elements/chunks/kbd-LGXwuT_V.js +0 -1
  441. package/dist/elements/chunks/link-2My69BqT.js +0 -1
  442. package/dist/elements/chunks/loader-iOxc_Tu-.js +0 -1
  443. package/dist/elements/chunks/message-VMZohrXx.js +0 -1
  444. package/dist/elements/chunks/message-circle-CpXMM-_n.js +0 -1
  445. package/dist/elements/chunks/message-square-DxcWtETQ.js +0 -1
  446. package/dist/elements/chunks/message-tZmV2A3p.js +0 -1
  447. package/dist/elements/chunks/paperclip-CRZVp4z_.js +0 -1
  448. package/dist/elements/chunks/progress-bar-DNy66e_E.js +0 -1
  449. package/dist/elements/chunks/prompt-suggestion-Bn64Nl7L.js +0 -1
  450. package/dist/elements/chunks/reasoning-Emn9N4-T.js +0 -1
  451. package/dist/elements/chunks/rotate-cw-CPWe37D9.js +0 -1
  452. package/dist/elements/chunks/scroll-area-ClZkZxIk.js +0 -1
  453. package/dist/elements/chunks/scroll-button-DPE-t3x_.js +0 -1
  454. package/dist/elements/chunks/share-CyfnNEqp.js +0 -1
  455. package/dist/elements/chunks/source-UWCvmVak.js +0 -1
  456. package/dist/elements/chunks/star-DoHFAikQ.js +0 -1
  457. package/dist/elements/chunks/svelte--5p79yCD.js +0 -1
  458. package/dist/elements/chunks/tasks-card-CmZ5xh6v.js +0 -1
  459. package/dist/elements/chunks/text-shimmer-DYn09zrz.js +0 -1
  460. package/dist/elements/chunks/textarea-skiGHURM.js +0 -1
  461. package/dist/elements/chunks/toast-store-CFnQpThX.js +0 -1
  462. package/dist/elements/chunks/tsx-B8rCNbgL.js +0 -1
  463. package/dist/elements/chunks/typescript-RycA9KXf.js +0 -1
  464. package/dist/elements/chunks/use-card-resolution-DoA2f_EU.js +0 -1
  465. package/dist/elements/chunks/vue-BmIZj4XD.js +0 -1
  466. package/dist/elements/chunks/x-B6UnOiLw.js +0 -1
  467. package/dist/llms/llms-full.txt +0 -2949
  468. package/dist/llms/llms.txt +0 -156
  469. package/dist/register-impl-DpE7icIb.js +0 -293
  470. package/dist/ui/stat.d.ts +0 -16
  471. package/src/ui/stat.tsx +0 -41
  472. /package/dist/{elements/chunks/card-tags-D8lZ-C_U.js → card-tags-D8lZ-C_U.js} +0 -0
  473. /package/dist/{elements/chunks/link-preview-DNILK391.js → link-preview-DNILK391.js} +0 -0
  474. /package/dist/{elements/chunks/slots-DaNjX0rc.js → slots-DaNjX0rc.js} +0 -0
@@ -54,7 +54,10 @@ interface Props extends Record<string, unknown> {
54
54
 
55
55
  /** Events fired by `<kai-composer>`. */
56
56
  interface Events {
57
- /** The user submitted the composer (Enter or programmatic submit). */
57
+ /** The user submitted the composer (Enter or programmatic submit). Note the
58
+ * detail carries no `attachments`; `<kai-composer>` is the bare editing
59
+ * surface: no send button, toolbar, or attachments. For a drop-in composer
60
+ * row with all three, reach for `<kai-prompt-input>`, which is built on this. */
58
61
  'kai-submit': { doc: ComposerDoc; text: string; entities: EntityRef[] };
59
62
  /** The content changed (fires on every input event). */
60
63
  'kai-value-change': { doc: ComposerDoc; text: string; entities: EntityRef[] };
@@ -75,6 +78,14 @@ interface Events {
75
78
  'kai-blur': { originalEvent: FocusEvent };
76
79
  }
77
80
 
81
+ /**
82
+ * `<kai-composer>` — the bare editing surface: rich text, entity pills,
83
+ * trigger menus, Enter-to-submit, and nothing else. No send button, no
84
+ * toolbar, no attachments — that division is deliberate. For a drop-in chat
85
+ * composer with a send button, toolbar, and attachment staging, reach for
86
+ * `<kai-prompt-input>`, which is built on this element. Keep `<kai-composer>`
87
+ * when you are composing the input row yourself and want to own those pieces.
88
+ */
78
89
  defineWebComponent<Props, Events>('kai-composer', {
79
90
  value: undefined,
80
91
  placeholder: undefined,
@@ -2,48 +2,76 @@ import { createSignal, onCleanup, onMount } from 'solid-js';
2
2
  import { defineWebComponent } from './define';
3
3
  import { readSlots, CONVERSATION_ITEM_SLOTS } from './slots';
4
4
  import { SlottedConversationItem } from '../components/conversation-item';
5
+ import { isStandaloneConversationItem, readConversationItemId } from '../components/conversation-list';
5
6
 
6
7
  interface Props extends Record<string, unknown> {
7
- /** The row's identity, handed to the container's selection contract. In the
8
- * element this is the `conversation-id` attribute (host `id` is the fallback). */
8
+ /** The row's identity: the `conversation-id` attribute (host `id` is the
9
+ * fallback). Inside `<kai-conversations>` it is handed to the container's
10
+ * selection contract (`kai-conversation-select`); standalone it is the `id`
11
+ * in this element's own `kai-select` detail. */
9
12
  conversationId?: string;
10
13
  /** Selected state. Reflected as `aria-current` on the row body and a
11
- * `data-active` styling hook on the row; the container drives it from its
12
- * `activeId`. */
14
+ * `data-active` styling hook on the row; inside a container the container
15
+ * drives it from its `activeId`, standalone you set it yourself. */
13
16
  active?: boolean;
14
17
  /** Dense single-line row padding. */
15
18
  compact?: boolean;
16
19
  }
17
20
 
21
+ interface Events {
22
+ /** STANDALONE activation only: the row was activated (click, Enter or Space on its body) while the item is NOT a
23
+ * direct child of `<kai-conversations>`. `id` is the row's identity: the
24
+ * `conversation-id` attribute, else the host `id`. Inside a container this
25
+ * never fires: activation surfaces once, as `kai-conversation-select` on the
26
+ * container. */
27
+ 'kai-select': { id: string };
28
+ }
29
+
18
30
  /**
19
31
  * `<kai-conversation-item>` — one composed row of a consumer-owned conversation
20
- * loop, slotted into `<kai-conversations>`' light DOM. The consumer owns the
21
- * loop (framework-native `map`, `<For>`, `v-for`); the container detects these
22
- * children, skips its data rendering, and runs the parent-item contract over
23
- * them: selection state flowing container to item, roving tabindex, and the
24
- * accessible list/row relationship (list rows with button bodies and
25
- * `aria-current` marking the active one; ratified 2026-08-20 axe's
26
- * nested-interactive and aria-required-children rules are why this is not
27
- * listbox/option).
32
+ * loop. Two placements, one activation event each:
33
+ *
34
+ * SLOTTED into `<kai-conversations>`' light DOM (a direct child): the consumer
35
+ * owns the loop (framework-native `map`, `<For>`, `v-for`); the container
36
+ * detects these children, skips its data rendering, and runs the parent-item
37
+ * contract over them selection state flowing container to item, roving
38
+ * tabindex, arrow-key traversal, and the accessible list/row relationship
39
+ * (list rows with button bodies and `aria-current` marking the active one;
40
+ * axe's nested-interactive and aria-required-children
41
+ * rules are why this is not listbox/option). Activation (click, Enter, Space)
42
+ * surfaces as `kai-conversation-select` on the container, and the item itself
43
+ * fires nothing — no double event.
44
+ *
45
+ * STANDALONE (anywhere else — a hand-composed rail, or wrapped in another
46
+ * element even inside a container, since the container manages only direct
47
+ * children): the row activates ITSELF.
48
+ * Its shadow body is a tabbable `role="button"`, and click / Enter / Space
49
+ * fire `kai-select` on this element with `{ id }` — non-bubbling, like every
50
+ * `kai-*` event, so listen on the item itself. What a standalone row does NOT
51
+ * have is the container's LIST story: roving tabindex across rows, arrow-key
52
+ * traversal, and the shared `role="list"` relationship — each standalone row
53
+ * is an ordinary tab stop, and a hand-composed rail brings its own list
54
+ * semantics (or slots the rows into `<kai-conversations>` and gets them for
55
+ * free).
28
56
  *
29
57
  * Slots: the default slot is the title; `leading`, `meta` and `menu` are the
30
58
  * named regions. The `menu` slot takes your OWN popover (rename, fork, archive
31
59
  * live there); the element provides only the region plus focus and ARIA
32
60
  * plumbing, never a declarative actions prop, and a click inside it never
33
- * selects the row.
34
- *
35
- * The item is presentational on its own: activation (click, Enter, Space)
36
- * surfaces as `kai-conversation-select` on the surrounding `<kai-conversations>`,
37
- * never as an event of this element.
61
+ * selects the row — in either placement.
38
62
  */
39
- defineWebComponent<Props>('kai-conversation-item', {
63
+ defineWebComponent<Props, Events>('kai-conversation-item', {
40
64
  conversationId: undefined,
41
65
  active: undefined,
42
66
  compact: undefined,
43
- }, (props, { element, flag, reflectFlag }) => {
67
+ }, (props, { element, flag, reflectFlag, dispatch }) => {
44
68
  // Which named regions the consumer has filled; drives the conditional
45
69
  // wrappers so an empty region leaves no stray box behind.
46
70
  const [slots, setSlots] = createSignal<Record<string, boolean>>({});
71
+ // Standalone vs container-managed, decided at mount (an item is not
72
+ // reparented in practice; the activation handler re-checks at event time so
73
+ // a row moved INTO a container can never double-fire).
74
+ const [standalone, setStandalone] = createSignal(false);
47
75
  onMount(() => {
48
76
  const read = () => setSlots(readSlots(element, CONVERSATION_ITEM_SLOTS));
49
77
  read();
@@ -51,15 +79,26 @@ defineWebComponent<Props>('kai-conversation-item', {
51
79
  observer.observe(element, { childList: true, attributes: true, subtree: true });
52
80
  onCleanup(() => observer.disconnect());
53
81
 
54
- // The HOST is the row LISTITEM (sibling restructure, ratified 2026-08-20):
82
+ // The HOST is the row LISTITEM:
55
83
  // it wraps the activation body AND the consumer's tabbable menu, so it must
56
84
  // never be the activation control itself — axe nested-interactive bans
57
85
  // focusable descendants of a control. The button role, aria-current and the
58
- // roving tabindex live on the shadow BODY (`data-kai-item-body`), which the
59
- // container's controller targets. An authored role wins.
86
+ // tabindex live on the shadow BODY (`data-kai-item-body`): inside a
87
+ // container its controller stamps them; standalone the component renders
88
+ // them itself. An authored role wins.
60
89
  if (!element.hasAttribute('role')) element.setAttribute('role', 'listitem');
90
+
91
+ setStandalone(isStandaloneConversationItem(element));
61
92
  });
62
93
 
94
+ // Standalone activation → the per-item `kai-select` event. The re-check at
95
+ // event time keeps this dead the moment the item becomes a container's direct
96
+ // child, so the container's `kai-conversation-select` stays the only event.
97
+ const activate = () => {
98
+ if (!isStandaloneConversationItem(element)) return;
99
+ dispatch('kai-select', { id: readConversationItemId(element) });
100
+ };
101
+
63
102
  // Property and attribute stay in agreement for `active`; the body's
64
103
  // aria-current follows it reactively (nothing is written to the host).
65
104
  reflectFlag('active');
@@ -70,6 +109,7 @@ defineWebComponent<Props>('kai-conversation-item', {
70
109
  active={flag('active')}
71
110
  compact={flag('compact')}
72
111
  hostSemantics
112
+ onActivate={standalone() ? activate : undefined}
73
113
  leading={slots().leading ? <slot name="leading" /> : undefined}
74
114
  meta={slots().meta ? <slot name="meta" /> : undefined}
75
115
  menu={slots().menu ? <slot name="menu" /> : undefined}
@@ -61,7 +61,7 @@ interface Events {
61
61
  * - `id` → ConversationSummary.id
62
62
  * - `group-id` → ConversationSummary.groupId (optional)
63
63
  * - textContent → ConversationSummary.title
64
- * Fields not expressible as HTML attributes are NOT fabricated (F-10): the
64
+ * Fields not expressible as HTML attributes are NOT fabricated: the
65
65
  * optional `scope` and `lastMessageAt` stay absent, and the required
66
66
  * `messageCount`/`updatedAt` get honest defaults — zero messages, and an empty
67
67
  * `updatedAt` from which no trailing relative time is derived (the epoch it
@@ -88,7 +88,7 @@ defineWebComponent<Props, Events>('kai-conversations', {
88
88
  // Read declarative <kai-conversation> children from light DOM.
89
89
  // Shadow DOM with no <slot> suppresses them visually — they're invisible data carriers.
90
90
  const [slottedConversations, setSlottedConversations] = createSignal<ConversationSummary[]>([]);
91
- // Item mode (spec 2026-08-20 § 2a): light-DOM <kai-conversation-item> children
91
+ // Item mode: light-DOM <kai-conversation-item> children
92
92
  // mean the CONSUMER owns the loop — the container skips its data rendering and
93
93
  // runs the parent-item contract over the hosts instead.
94
94
  const [itemHosts, setItemHosts] = createSignal<HTMLElement[]>([]);
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @kitn.ai/ui/define — the facade seam, public.
3
+ *
4
+ * The construct engine's GENERATED projects (and any consumer who wants to wrap
5
+ * a pure-Solid interior as one self-registering element) import from here. Its
6
+ * own subpath rather than ./solid because define.tsx carries ELEMENT_CSS (the
7
+ * full compiled kit CSS) and solid-element — weight ./solid consumers must not
8
+ * pay. SSR-safe by construction: defineWebComponent no-ops without
9
+ * customElements (see define.tsx).
10
+ */
11
+ export { defineWebComponent } from './define';
12
+ export type { WebComponentContext } from './define';
@@ -28,6 +28,14 @@ interface Props extends Record<string, unknown> {
28
28
  unread?: boolean;
29
29
  /** Disable the launcher; `show()` and `toggle()` are gated on it. */
30
30
  disabled?: boolean;
31
+ /** Suppress the dock's own built-in mobile close X. Set this when your slotted
32
+ * panel content supplies its own close affordance (e.g. a `<kai-chat
33
+ * slot="header-end">` close button), otherwise the two stack. TRADEOFF: the
34
+ * mobile panel reserves a padding band above its content so the built-in X
35
+ * never paints over slotted content; that band stays reserved unless you set
36
+ * this true, so only set it once your own control is actually in place.
37
+ * Attribute: `hide-close`. */
38
+ hideClose?: boolean;
31
39
  /** Where focus lands on open: `content` (default, the first element you slotted),
32
40
  * `panel`, or `none`. Attribute: `focus-on-open`. */
33
41
  focusOnOpen?: DockFocusOnOpen;
@@ -108,6 +116,7 @@ defineWebComponent<Props, Events>('kai-dock', {
108
116
  closeLabel: undefined,
109
117
  unread: undefined,
110
118
  disabled: undefined,
119
+ hideClose: undefined,
111
120
  focusOnOpen: 'content',
112
121
  }, (props, ctx) => {
113
122
  const { flag, element, expose, reflectFlag } = ctx;
@@ -128,6 +137,7 @@ defineWebComponent<Props, Events>('kai-dock', {
128
137
  reflectFlag('unread');
129
138
  reflectFlag('disabled');
130
139
  reflectFlag('defaultOpen');
140
+ reflectFlag('hideClose');
131
141
 
132
142
  // Seed the primitive from EITHER spelling, read once at upgrade.
133
143
  //
@@ -178,6 +188,7 @@ defineWebComponent<Props, Events>('kai-dock', {
178
188
  closeLabel={props.closeLabel as string | undefined}
179
189
  unread={flag('unread')}
180
190
  disabled={flag('disabled')}
191
+ hideClose={flag('hideClose')}
181
192
  focusOnOpen={props.focusOnOpen as DockFocusOnOpen}
182
193
  contentTarget={contentTarget}
183
194
  controllerRef={(a) => (api = a)}
@@ -36,6 +36,46 @@ export interface KaiSegmentedOption {
36
36
  icon?: string;
37
37
  }
38
38
 
39
+ /** A single row of `<kai-radio-group>`.
40
+ *
41
+ * Distinct from the Solid `RadioOption`, whose `label` and `description` are JSX
42
+ * nodes: on the element both are plain strings, because an element property has to
43
+ * survive being assigned from HTML/React/Vue/Svelte with no framework in between. */
44
+ export interface KaiRadioOption {
45
+ value: string;
46
+ label: string;
47
+ description?: string;
48
+ disabled?: boolean;
49
+ }
50
+
51
+ /** A single row of `<kai-checkbox-group>`.
52
+ *
53
+ * Distinct from the Solid `CheckboxOption`, whose `value` is generic and whose
54
+ * `label` and `description` are JSX nodes: on the element all three are plain
55
+ * strings, because an element property has to survive being assigned from
56
+ * HTML/React/Vue/Svelte with no framework in between. Structurally identical to
57
+ * `KaiRadioOption`, and kept as its own name anyway: the two elements are free to
58
+ * diverge, and a consumer typing a checkbox list should not have to import the radio
59
+ * group's type to do it. */
60
+ export interface KaiCheckboxOption {
61
+ value: string;
62
+ label: string;
63
+ description?: string;
64
+ disabled?: boolean;
65
+ }
66
+
67
+ /** A single choice in `<kai-select>`.
68
+ *
69
+ * Distinct from the Solid `SelectOption`, whose `value` is generic: on the element
70
+ * it is a string, because a native `<option>`'s value is a string and an element
71
+ * property has to survive being assigned from HTML/React/Vue/Svelte with no
72
+ * framework in between. `label` defaults to `value`. */
73
+ export interface KaiSelectOption {
74
+ value: string;
75
+ label?: string;
76
+ disabled?: boolean;
77
+ }
78
+
39
79
  /** A single citation in `<kai-sources>`' `sources` property. Also the shape
40
80
  * `<kai-source>` light-DOM children are parsed into. */
41
81
  export interface KaiSourceItem {
@@ -45,6 +45,11 @@
45
45
  "kai-scroll-button": "scroll-button",
46
46
  "kai-popover": "popover",
47
47
  "kai-switch": "switch",
48
+ "kai-checkbox": "checkbox",
49
+ "kai-checkbox-group": "checkbox-group",
50
+ "kai-radio-group": "radio-group",
51
+ "kai-slider": "slider",
52
+ "kai-select": "select",
48
53
  "kai-button": "button",
49
54
  "kai-avatar": "avatar",
50
55
  "kai-badge": "badge",
@@ -75,6 +80,7 @@
75
80
  "kai-setting-item": "setting-item",
76
81
  "kai-pane": "pane",
77
82
  "kai-pane-group": "pane-group",
83
+ "kai-pane-grid": "pane-grid",
78
84
  "kai-agent-card": "agent-card",
79
85
  "kai-dialog": "dialog",
80
86
  "kai-dock": "dock",
@@ -215,6 +221,21 @@
215
221
  "switch": [
216
222
  "kai-switch"
217
223
  ],
224
+ "checkbox": [
225
+ "kai-checkbox"
226
+ ],
227
+ "checkbox-group": [
228
+ "kai-checkbox-group"
229
+ ],
230
+ "radio-group": [
231
+ "kai-radio-group"
232
+ ],
233
+ "slider": [
234
+ "kai-slider"
235
+ ],
236
+ "select": [
237
+ "kai-select"
238
+ ],
218
239
  "button": [
219
240
  "kai-button"
220
241
  ],
@@ -305,6 +326,9 @@
305
326
  "pane-group": [
306
327
  "kai-pane-group"
307
328
  ],
329
+ "pane-grid": [
330
+ "kai-pane-grid"
331
+ ],
308
332
  "agent-card": [
309
333
  "kai-agent-card"
310
334
  ],