@usetheo/ui 0.12.0 → 0.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1227) hide show
  1. package/CHANGELOG.md +634 -68
  2. package/DESIGN.md +18 -18
  3. package/NOTICE +2 -2
  4. package/README.md +69 -66
  5. package/dist/chunk-23YEYNDS.js +89 -0
  6. package/dist/chunk-23YEYNDS.js.map +1 -0
  7. package/dist/chunk-25KBUQEQ.js +95 -0
  8. package/dist/chunk-25KBUQEQ.js.map +1 -0
  9. package/dist/chunk-2A3E5Y72.js +165 -0
  10. package/dist/chunk-2A3E5Y72.js.map +1 -0
  11. package/dist/chunk-2EUKYGH5.js +98 -0
  12. package/dist/chunk-2EUKYGH5.js.map +1 -0
  13. package/dist/chunk-2NZYMQKT.js +56 -0
  14. package/dist/chunk-2NZYMQKT.js.map +1 -0
  15. package/dist/chunk-2OVFVPSZ.js +26 -0
  16. package/dist/chunk-2OVFVPSZ.js.map +1 -0
  17. package/dist/chunk-2UP7SECE.js +78 -0
  18. package/dist/chunk-2UP7SECE.js.map +1 -0
  19. package/dist/chunk-33ETHPT7.js +112 -0
  20. package/dist/chunk-33ETHPT7.js.map +1 -0
  21. package/dist/chunk-33IIDFSM.js +43 -0
  22. package/dist/chunk-33IIDFSM.js.map +1 -0
  23. package/dist/chunk-345HYADQ.js +88 -0
  24. package/dist/chunk-345HYADQ.js.map +1 -0
  25. package/dist/chunk-3ZXZGZOX.js +57 -0
  26. package/dist/chunk-3ZXZGZOX.js.map +1 -0
  27. package/dist/chunk-45FWKR23.js +62 -0
  28. package/dist/chunk-45FWKR23.js.map +1 -0
  29. package/dist/chunk-4DTLUBRW.js +122 -0
  30. package/dist/chunk-4DTLUBRW.js.map +1 -0
  31. package/dist/chunk-4EH6F54D.js +69 -0
  32. package/dist/chunk-4EH6F54D.js.map +1 -0
  33. package/dist/chunk-4EKF4EIE.js +140 -0
  34. package/dist/chunk-4EKF4EIE.js.map +1 -0
  35. package/dist/chunk-4SMYNLTA.js +83 -0
  36. package/dist/chunk-4SMYNLTA.js.map +1 -0
  37. package/dist/chunk-4UBFLXS3.js +35 -0
  38. package/dist/chunk-4UBFLXS3.js.map +1 -0
  39. package/dist/chunk-52J7SDYH.js +48 -0
  40. package/dist/chunk-52J7SDYH.js.map +1 -0
  41. package/dist/chunk-5XCTTXC3.js +180 -0
  42. package/dist/chunk-5XCTTXC3.js.map +1 -0
  43. package/dist/chunk-624AATQZ.js +77 -0
  44. package/dist/chunk-624AATQZ.js.map +1 -0
  45. package/dist/chunk-6IODJQWC.js +47 -0
  46. package/dist/chunk-6IODJQWC.js.map +1 -0
  47. package/dist/chunk-75IDWFYX.js +134 -0
  48. package/dist/chunk-75IDWFYX.js.map +1 -0
  49. package/dist/chunk-7BGCWJQR.js +113 -0
  50. package/dist/chunk-7BGCWJQR.js.map +1 -0
  51. package/dist/chunk-7BQXMG2A.js +93 -0
  52. package/dist/chunk-7BQXMG2A.js.map +1 -0
  53. package/dist/chunk-7RFWVNQA.js +47 -0
  54. package/dist/chunk-7RFWVNQA.js.map +1 -0
  55. package/dist/chunk-7T4NK6W6.js +192 -0
  56. package/dist/chunk-7T4NK6W6.js.map +1 -0
  57. package/dist/chunk-A3OU6ICP.js +91 -0
  58. package/dist/chunk-A3OU6ICP.js.map +1 -0
  59. package/dist/chunk-ABBXLAJW.js +74 -0
  60. package/dist/chunk-ABBXLAJW.js.map +1 -0
  61. package/dist/chunk-AENNHS3S.js +83 -0
  62. package/dist/chunk-AENNHS3S.js.map +1 -0
  63. package/dist/chunk-AXNJFBYX.js +136 -0
  64. package/dist/chunk-AXNJFBYX.js.map +1 -0
  65. package/dist/chunk-AXUAQM45.js +154 -0
  66. package/dist/chunk-AXUAQM45.js.map +1 -0
  67. package/dist/chunk-B2FL7KBJ.js +65 -0
  68. package/dist/chunk-B2FL7KBJ.js.map +1 -0
  69. package/dist/chunk-BE232OKN.js +42 -0
  70. package/dist/chunk-BE232OKN.js.map +1 -0
  71. package/dist/chunk-BP4RQSX7.js +200 -0
  72. package/dist/chunk-BP4RQSX7.js.map +1 -0
  73. package/dist/chunk-BPJ3RN3U.js +112 -0
  74. package/dist/chunk-BPJ3RN3U.js.map +1 -0
  75. package/dist/chunk-BSF4Y4UT.js +77 -0
  76. package/dist/chunk-BSF4Y4UT.js.map +1 -0
  77. package/dist/chunk-BWIDDAR7.js +86 -0
  78. package/dist/chunk-BWIDDAR7.js.map +1 -0
  79. package/dist/chunk-BYUWQ6OP.js +45 -0
  80. package/dist/chunk-BYUWQ6OP.js.map +1 -0
  81. package/dist/chunk-C5ULP2P5.js +140 -0
  82. package/dist/chunk-C5ULP2P5.js.map +1 -0
  83. package/dist/chunk-CCG7PXLX.js +24 -0
  84. package/dist/chunk-CCG7PXLX.js.map +1 -0
  85. package/dist/chunk-CED2LKHI.js +117 -0
  86. package/dist/chunk-CED2LKHI.js.map +1 -0
  87. package/dist/chunk-CGWIOIEO.js +27 -0
  88. package/dist/chunk-CGWIOIEO.js.map +1 -0
  89. package/dist/chunk-CSEGVTKO.js +110 -0
  90. package/dist/chunk-CSEGVTKO.js.map +1 -0
  91. package/dist/chunk-CVFSNA4K.js +716 -0
  92. package/dist/chunk-CVFSNA4K.js.map +1 -0
  93. package/dist/chunk-E26M7ATD.js +61 -0
  94. package/dist/chunk-E26M7ATD.js.map +1 -0
  95. package/dist/chunk-E63IRXZZ.js +78 -0
  96. package/dist/chunk-E63IRXZZ.js.map +1 -0
  97. package/dist/chunk-ESJUISWY.js +45 -0
  98. package/dist/chunk-ESJUISWY.js.map +1 -0
  99. package/dist/chunk-ET7A3TQZ.js +158 -0
  100. package/dist/chunk-ET7A3TQZ.js.map +1 -0
  101. package/dist/chunk-ETTL6XGU.js +139 -0
  102. package/dist/chunk-ETTL6XGU.js.map +1 -0
  103. package/dist/chunk-EWDN56AS.js +24 -0
  104. package/dist/chunk-EWDN56AS.js.map +1 -0
  105. package/dist/chunk-FJZKA2LV.js +165 -0
  106. package/dist/chunk-FJZKA2LV.js.map +1 -0
  107. package/dist/chunk-G2WCT6PJ.js +69 -0
  108. package/dist/chunk-G2WCT6PJ.js.map +1 -0
  109. package/dist/chunk-GC52HWIL.js +41 -0
  110. package/dist/chunk-GC52HWIL.js.map +1 -0
  111. package/dist/chunk-GCKFA7X7.js +83 -0
  112. package/dist/chunk-GCKFA7X7.js.map +1 -0
  113. package/dist/chunk-GDMCDW66.js +19 -0
  114. package/dist/chunk-GDMCDW66.js.map +1 -0
  115. package/dist/chunk-GIXHBTHH.js +59 -0
  116. package/dist/chunk-GIXHBTHH.js.map +1 -0
  117. package/dist/chunk-GLEOUWPN.js +108 -0
  118. package/dist/chunk-GLEOUWPN.js.map +1 -0
  119. package/dist/chunk-GLRUM43F.js +121 -0
  120. package/dist/chunk-GLRUM43F.js.map +1 -0
  121. package/dist/chunk-H3L7WZDZ.js +74 -0
  122. package/dist/chunk-H3L7WZDZ.js.map +1 -0
  123. package/dist/chunk-H55WXDME.js +45 -0
  124. package/dist/chunk-H55WXDME.js.map +1 -0
  125. package/dist/chunk-H5QPJNVD.js +98 -0
  126. package/dist/chunk-H5QPJNVD.js.map +1 -0
  127. package/dist/chunk-HB45JHMM.js +43 -0
  128. package/dist/chunk-HB45JHMM.js.map +1 -0
  129. package/dist/chunk-HETHTYEZ.js +80 -0
  130. package/dist/chunk-HETHTYEZ.js.map +1 -0
  131. package/dist/chunk-HHSKNB32.js +55 -0
  132. package/dist/chunk-HHSKNB32.js.map +1 -0
  133. package/dist/chunk-HILOUYES.js +151 -0
  134. package/dist/chunk-HILOUYES.js.map +1 -0
  135. package/dist/chunk-HTJVHFNW.js +178 -0
  136. package/dist/chunk-HTJVHFNW.js.map +1 -0
  137. package/dist/chunk-HZ7Z22VW.js +130 -0
  138. package/dist/chunk-HZ7Z22VW.js.map +1 -0
  139. package/dist/chunk-JFKBFQA5.js +129 -0
  140. package/dist/chunk-JFKBFQA5.js.map +1 -0
  141. package/dist/chunk-JIZKW3WC.js +74 -0
  142. package/dist/chunk-JIZKW3WC.js.map +1 -0
  143. package/dist/chunk-JQTCCKZA.js +154 -0
  144. package/dist/chunk-JQTCCKZA.js.map +1 -0
  145. package/dist/chunk-JR4H3FJ2.js +74 -0
  146. package/dist/chunk-JR4H3FJ2.js.map +1 -0
  147. package/dist/chunk-JRW53TVG.js +53 -0
  148. package/dist/chunk-JRW53TVG.js.map +1 -0
  149. package/dist/chunk-JXOCE27Z.js +82 -0
  150. package/dist/chunk-JXOCE27Z.js.map +1 -0
  151. package/dist/chunk-JYW5YNF7.js +188 -0
  152. package/dist/chunk-JYW5YNF7.js.map +1 -0
  153. package/dist/chunk-K72DJOXR.js +81 -0
  154. package/dist/chunk-K72DJOXR.js.map +1 -0
  155. package/dist/chunk-KDE3NYTI.js +144 -0
  156. package/dist/chunk-KDE3NYTI.js.map +1 -0
  157. package/dist/chunk-KFUFTZLS.js +111 -0
  158. package/dist/chunk-KFUFTZLS.js.map +1 -0
  159. package/dist/chunk-KHBXI6AV.js +149 -0
  160. package/dist/chunk-KHBXI6AV.js.map +1 -0
  161. package/dist/chunk-M74ZYBOK.js +93 -0
  162. package/dist/chunk-M74ZYBOK.js.map +1 -0
  163. package/dist/chunk-ML7WLNIK.js +11 -0
  164. package/dist/chunk-ML7WLNIK.js.map +1 -0
  165. package/dist/chunk-MXB2GVEQ.js +57 -0
  166. package/dist/chunk-MXB2GVEQ.js.map +1 -0
  167. package/dist/chunk-NEMXW2LB.js +102 -0
  168. package/dist/chunk-NEMXW2LB.js.map +1 -0
  169. package/dist/chunk-OJPPSJMF.js +65 -0
  170. package/dist/chunk-OJPPSJMF.js.map +1 -0
  171. package/dist/chunk-OMR6ZGME.js +63 -0
  172. package/dist/chunk-OMR6ZGME.js.map +1 -0
  173. package/dist/chunk-ORVYP73T.js +223 -0
  174. package/dist/chunk-ORVYP73T.js.map +1 -0
  175. package/dist/chunk-OZFUUO2Q.js +50 -0
  176. package/dist/chunk-OZFUUO2Q.js.map +1 -0
  177. package/dist/chunk-P44UAK45.js +115 -0
  178. package/dist/chunk-P44UAK45.js.map +1 -0
  179. package/dist/chunk-PJUP4BJD.js +116 -0
  180. package/dist/chunk-PJUP4BJD.js.map +1 -0
  181. package/dist/chunk-PJWYIOY4.js +3 -0
  182. package/dist/chunk-PJWYIOY4.js.map +1 -0
  183. package/dist/chunk-PVCW4O37.js +147 -0
  184. package/dist/chunk-PVCW4O37.js.map +1 -0
  185. package/dist/chunk-PXT47DRZ.js +59 -0
  186. package/dist/chunk-PXT47DRZ.js.map +1 -0
  187. package/dist/chunk-PZGUZHI7.js +142 -0
  188. package/dist/chunk-PZGUZHI7.js.map +1 -0
  189. package/dist/chunk-Q2BAL2PF.js +965 -0
  190. package/dist/chunk-Q2BAL2PF.js.map +1 -0
  191. package/dist/chunk-QBUTRD2M.js +58 -0
  192. package/dist/chunk-QBUTRD2M.js.map +1 -0
  193. package/dist/chunk-QCQTTOMD.js +236 -0
  194. package/dist/chunk-QCQTTOMD.js.map +1 -0
  195. package/dist/chunk-QNYOIVQ4.js +36 -0
  196. package/dist/chunk-QNYOIVQ4.js.map +1 -0
  197. package/dist/chunk-QPURZJJM.js +88 -0
  198. package/dist/chunk-QPURZJJM.js.map +1 -0
  199. package/dist/chunk-QRXIYPWP.js +121 -0
  200. package/dist/chunk-QRXIYPWP.js.map +1 -0
  201. package/dist/chunk-QV4BQRNH.js +29 -0
  202. package/dist/chunk-QV4BQRNH.js.map +1 -0
  203. package/dist/chunk-REFY5MLN.js +212 -0
  204. package/dist/chunk-REFY5MLN.js.map +1 -0
  205. package/dist/chunk-RJ6RAMKH.js +89 -0
  206. package/dist/chunk-RJ6RAMKH.js.map +1 -0
  207. package/dist/chunk-RJBCTMVW.js +59 -0
  208. package/dist/chunk-RJBCTMVW.js.map +1 -0
  209. package/dist/chunk-RLWULF5B.js +113 -0
  210. package/dist/chunk-RLWULF5B.js.map +1 -0
  211. package/dist/chunk-RPZMFGYI.js +31 -0
  212. package/dist/chunk-RPZMFGYI.js.map +1 -0
  213. package/dist/chunk-RQT5DWGG.js +34 -0
  214. package/dist/chunk-RQT5DWGG.js.map +1 -0
  215. package/dist/chunk-SBKVVVYY.js +89 -0
  216. package/dist/chunk-SBKVVVYY.js.map +1 -0
  217. package/dist/chunk-SOJW47EZ.js +70 -0
  218. package/dist/chunk-SOJW47EZ.js.map +1 -0
  219. package/dist/chunk-SQ66DCXY.js +35 -0
  220. package/dist/chunk-SQ66DCXY.js.map +1 -0
  221. package/dist/chunk-SXKGWHAM.js +179 -0
  222. package/dist/chunk-SXKGWHAM.js.map +1 -0
  223. package/dist/chunk-T2OKGV6M.js +13 -0
  224. package/dist/chunk-T2OKGV6M.js.map +1 -0
  225. package/dist/chunk-TJLULCZW.js +108 -0
  226. package/dist/chunk-TJLULCZW.js.map +1 -0
  227. package/dist/chunk-TY6NTWN5.js +29 -0
  228. package/dist/chunk-TY6NTWN5.js.map +1 -0
  229. package/dist/chunk-U3AEEFVB.js +152 -0
  230. package/dist/chunk-U3AEEFVB.js.map +1 -0
  231. package/dist/chunk-V3HFDVZ3.js +102 -0
  232. package/dist/chunk-V3HFDVZ3.js.map +1 -0
  233. package/dist/chunk-V6H2RUVP.js +77 -0
  234. package/dist/chunk-V6H2RUVP.js.map +1 -0
  235. package/dist/chunk-VB53UMAL.js +106 -0
  236. package/dist/chunk-VB53UMAL.js.map +1 -0
  237. package/dist/chunk-VBEMLZGX.js +86 -0
  238. package/dist/chunk-VBEMLZGX.js.map +1 -0
  239. package/dist/chunk-VBQFE5RV.js +92 -0
  240. package/dist/chunk-VBQFE5RV.js.map +1 -0
  241. package/dist/chunk-VHK2OUCW.js +38 -0
  242. package/dist/chunk-VHK2OUCW.js.map +1 -0
  243. package/dist/chunk-VHTAVROO.js +53 -0
  244. package/dist/chunk-VHTAVROO.js.map +1 -0
  245. package/dist/chunk-VZX4HLBM.js +84 -0
  246. package/dist/chunk-VZX4HLBM.js.map +1 -0
  247. package/dist/chunk-W47V2F3Q.js +115 -0
  248. package/dist/chunk-W47V2F3Q.js.map +1 -0
  249. package/dist/chunk-W7I3ZX66.js +76 -0
  250. package/dist/chunk-W7I3ZX66.js.map +1 -0
  251. package/dist/chunk-WD42UBGR.js +64 -0
  252. package/dist/chunk-WD42UBGR.js.map +1 -0
  253. package/dist/chunk-XC7SYZYR.js +86 -0
  254. package/dist/chunk-XC7SYZYR.js.map +1 -0
  255. package/dist/chunk-XJA4B3F5.js +68 -0
  256. package/dist/chunk-XJA4B3F5.js.map +1 -0
  257. package/dist/chunk-XSENM65D.js +128 -0
  258. package/dist/chunk-XSENM65D.js.map +1 -0
  259. package/dist/chunk-YD2QEVHO.js +68 -0
  260. package/dist/chunk-YD2QEVHO.js.map +1 -0
  261. package/dist/chunk-YDKRUSB5.js +35 -0
  262. package/dist/chunk-YDKRUSB5.js.map +1 -0
  263. package/dist/chunk-YES6SPDT.js +55 -0
  264. package/dist/chunk-YES6SPDT.js.map +1 -0
  265. package/dist/chunk-YNDHYMPI.js +46 -0
  266. package/dist/chunk-YNDHYMPI.js.map +1 -0
  267. package/dist/chunk-YO3WEMOH.js +130 -0
  268. package/dist/chunk-YO3WEMOH.js.map +1 -0
  269. package/dist/chunk-YUFFAWNB.js +90 -0
  270. package/dist/chunk-YUFFAWNB.js.map +1 -0
  271. package/dist/chunk-YVXMWUWD.js +118 -0
  272. package/dist/chunk-YVXMWUWD.js.map +1 -0
  273. package/dist/chunk-Z6HZMGO2.js +106 -0
  274. package/dist/chunk-Z6HZMGO2.js.map +1 -0
  275. package/dist/chunk-ZAMPCRFJ.js +121 -0
  276. package/dist/chunk-ZAMPCRFJ.js.map +1 -0
  277. package/dist/chunk-ZEFOXF2I.js +87 -0
  278. package/dist/chunk-ZEFOXF2I.js.map +1 -0
  279. package/dist/chunk-ZJXOHLQE.js +66 -0
  280. package/dist/chunk-ZJXOHLQE.js.map +1 -0
  281. package/dist/chunk-ZPURFK4C.js +203 -0
  282. package/dist/chunk-ZPURFK4C.js.map +1 -0
  283. package/dist/chunk-ZZZIOTLC.js +89 -0
  284. package/dist/chunk-ZZZIOTLC.js.map +1 -0
  285. package/dist/components/composites/account-menu/account-menu.d.ts +43 -0
  286. package/dist/components/composites/account-menu/index.d.ts +1 -0
  287. package/dist/components/composites/agent-composer/agent-composer.d.ts +41 -0
  288. package/dist/components/composites/agent-composer/index.d.ts +1 -0
  289. package/dist/components/composites/agent-editor/agent-editor.d.ts +31 -0
  290. package/dist/components/composites/agent-editor/index.d.ts +1 -0
  291. package/dist/components/composites/agent-stream/agent-stream.d.ts +72 -0
  292. package/dist/components/composites/agent-stream/index.d.ts +2 -0
  293. package/dist/components/composites/agent-stream/to-agent-stream-items.d.ts +32 -0
  294. package/dist/components/composites/agent-timeline/agent-timeline.d.ts +22 -0
  295. package/dist/components/composites/agent-timeline/index.d.ts +1 -0
  296. package/dist/components/composites/agent-tool-renderer/agent-tool-renderer.d.ts +60 -0
  297. package/dist/components/composites/agent-tool-renderer/index.d.ts +1 -0
  298. package/dist/components/composites/agent-tool-renderer/tool-call-part.d.ts +5 -0
  299. package/dist/components/composites/approval-card/approval-card.d.ts +35 -0
  300. package/dist/components/composites/approval-card/index.d.ts +1 -0
  301. package/dist/components/composites/chat-composer/chat-composer.d.ts +68 -0
  302. package/dist/components/composites/chat-composer/index.d.ts +1 -0
  303. package/dist/components/composites/chat-message/chat-message-actions.d.ts +22 -0
  304. package/dist/components/composites/chat-message/chat-message-branch.d.ts +17 -0
  305. package/dist/components/composites/chat-message/chat-message-response.d.ts +15 -0
  306. package/dist/components/composites/chat-message/chat-message-toolbar.d.ts +7 -0
  307. package/dist/components/composites/chat-message/chat-message.d.ts +94 -0
  308. package/dist/components/composites/chat-message/index.d.ts +23 -0
  309. package/dist/components/composites/chat-message/parts/data-part.d.ts +9 -0
  310. package/dist/components/composites/chat-message/parts/file-part.d.ts +5 -0
  311. package/dist/components/composites/chat-message/parts/reasoning-part.d.ts +7 -0
  312. package/dist/components/composites/chat-message/parts/source-part.d.ts +9 -0
  313. package/dist/components/composites/chat-message/parts/text-part.d.ts +11 -0
  314. package/dist/components/composites/choice-prompt/choice-prompt.d.ts +65 -0
  315. package/dist/components/composites/choice-prompt/index.d.ts +2 -0
  316. package/dist/components/composites/code-block/code-block.d.ts +29 -0
  317. package/dist/components/composites/code-block/index.d.ts +1 -0
  318. package/dist/components/composites/command-palette/command-palette.d.ts +41 -0
  319. package/dist/components/composites/command-palette/index.d.ts +1 -0
  320. package/dist/components/composites/confirm-dialog/confirm-dialog.d.ts +41 -0
  321. package/dist/components/composites/confirm-dialog/index.d.ts +1 -0
  322. package/dist/components/composites/confirm-prompt/confirm-prompt.d.ts +31 -0
  323. package/dist/components/composites/confirm-prompt/index.d.ts +1 -0
  324. package/dist/components/composites/cron-jobs-list/cron-jobs-list.d.ts +15 -0
  325. package/dist/components/composites/cron-jobs-list/index.d.ts +1 -0
  326. package/dist/components/composites/data-table/data-table.d.ts +63 -0
  327. package/dist/components/composites/data-table/index.d.ts +1 -0
  328. package/dist/components/composites/deployment-row/deployment-row.d.ts +28 -0
  329. package/dist/components/composites/deployment-row/index.d.ts +1 -0
  330. package/dist/components/composites/domain-config/domain-config.d.ts +34 -0
  331. package/dist/components/composites/domain-config/index.d.ts +1 -0
  332. package/dist/components/composites/env-var-editor/env-var-editor.d.ts +35 -0
  333. package/dist/components/composites/env-var-editor/index.d.ts +1 -0
  334. package/dist/components/composites/mcp-server-list/index.d.ts +1 -0
  335. package/dist/components/composites/mcp-server-list/mcp-server-list.d.ts +15 -0
  336. package/dist/components/composites/metric-card/index.d.ts +2 -0
  337. package/dist/components/composites/metric-card/metric-card.d.ts +46 -0
  338. package/dist/components/composites/multi-select-prompt/index.d.ts +1 -0
  339. package/dist/components/composites/multi-select-prompt/multi-select-prompt.d.ts +61 -0
  340. package/dist/components/composites/page-shell/index.d.ts +1 -0
  341. package/dist/components/composites/page-shell/page-shell.d.ts +68 -0
  342. package/dist/components/composites/permission-modal/index.d.ts +1 -0
  343. package/dist/components/composites/permission-modal/permission-modal.d.ts +48 -0
  344. package/dist/components/composites/preview-env-card/index.d.ts +1 -0
  345. package/dist/components/composites/preview-env-card/preview-env-card.d.ts +36 -0
  346. package/dist/components/composites/preview-panel/index.d.ts +1 -0
  347. package/dist/components/composites/preview-panel/preview-panel.d.ts +24 -0
  348. package/dist/components/composites/project-card/index.d.ts +1 -0
  349. package/dist/components/composites/project-card/project-card.d.ts +32 -0
  350. package/dist/components/composites/rollback-ui/index.d.ts +1 -0
  351. package/dist/components/composites/rollback-ui/rollback-ui.d.ts +32 -0
  352. package/dist/components/composites/rule-editor/index.d.ts +1 -0
  353. package/dist/components/composites/rule-editor/rule-editor.d.ts +18 -0
  354. package/dist/components/composites/skill-editor/index.d.ts +1 -0
  355. package/dist/components/composites/skill-editor/skill-editor.d.ts +19 -0
  356. package/dist/components/composites/skills-list/index.d.ts +1 -0
  357. package/dist/components/composites/skills-list/skills-list.d.ts +15 -0
  358. package/dist/components/composites/slide-deck/context.d.ts +23 -0
  359. package/dist/components/composites/slide-deck/controls.d.ts +8 -0
  360. package/dist/components/composites/slide-deck/fragments.d.ts +20 -0
  361. package/dist/components/composites/slide-deck/index.d.ts +21 -0
  362. package/dist/components/composites/slide-deck/notes.d.ts +14 -0
  363. package/dist/components/composites/slide-deck/presenter-view.d.ts +15 -0
  364. package/dist/components/composites/slide-deck/print-styles.d.ts +21 -0
  365. package/dist/components/composites/slide-deck/progress-bar.d.ts +8 -0
  366. package/dist/components/composites/slide-deck/schema.d.ts +31 -0
  367. package/dist/components/composites/slide-deck/slide-deck.d.ts +78 -0
  368. package/dist/components/composites/slide-deck/slide-number.d.ts +11 -0
  369. package/dist/components/composites/slide-deck/split-deck.d.ts +2 -0
  370. package/dist/components/composites/slide-deck/thumbnails.d.ts +19 -0
  371. package/dist/components/composites/slide-deck/use-deck-hash-routing.d.ts +23 -0
  372. package/dist/components/composites/slide-deck/use-deck-keyboard.d.ts +25 -0
  373. package/dist/components/composites/slide-deck/use-deck-state.d.ts +57 -0
  374. package/dist/components/composites/slide-deck/use-deck-swipe.d.ts +20 -0
  375. package/dist/components/composites/slide-deck/use-fullscreen.d.ts +18 -0
  376. package/dist/components/composites/stability-bundle-viewer/index.d.ts +1 -0
  377. package/dist/components/composites/stability-bundle-viewer/stability-bundle-viewer.d.ts +28 -0
  378. package/dist/components/composites/status-indicator/index.d.ts +2 -0
  379. package/dist/components/composites/status-indicator/status-indicator.d.ts +31 -0
  380. package/dist/components/composites/task-header/index.d.ts +1 -0
  381. package/dist/components/composites/task-header/task-header.d.ts +20 -0
  382. package/dist/components/composites/text-prompt/index.d.ts +1 -0
  383. package/dist/components/composites/text-prompt/text-prompt.d.ts +48 -0
  384. package/dist/components/composites/usage-meter/index.d.ts +1 -0
  385. package/dist/components/composites/usage-meter/usage-meter.d.ts +56 -0
  386. package/dist/components/primitives/action-bar/action-bar.d.ts +34 -0
  387. package/dist/components/primitives/action-bar/index.d.ts +1 -0
  388. package/dist/components/primitives/agent-error-card/agent-error-card.d.ts +47 -0
  389. package/dist/components/primitives/agent-error-card/index.d.ts +1 -0
  390. package/dist/components/primitives/agent-event/agent-event.d.ts +25 -0
  391. package/dist/components/primitives/agent-event/index.d.ts +1 -0
  392. package/dist/components/primitives/agent-handoff/agent-handoff.d.ts +24 -0
  393. package/dist/components/primitives/agent-handoff/index.d.ts +1 -0
  394. package/dist/components/primitives/agent-profile/agent-profile.d.ts +28 -0
  395. package/dist/components/primitives/agent-profile/index.d.ts +1 -0
  396. package/dist/components/primitives/agent-starting-state/agent-starting-state.d.ts +15 -0
  397. package/dist/components/primitives/agent-starting-state/index.d.ts +1 -0
  398. package/dist/components/primitives/agent-streaming/agent-streaming.d.ts +16 -0
  399. package/dist/components/primitives/agent-streaming/index.d.ts +1 -0
  400. package/dist/components/primitives/alert/alert.d.ts +31 -0
  401. package/dist/components/primitives/alert/index.d.ts +1 -0
  402. package/dist/components/primitives/artifact-preview/artifact-preview.d.ts +25 -0
  403. package/dist/components/primitives/artifact-preview/index.d.ts +1 -0
  404. package/dist/components/primitives/attachment-chip/attachment-chip.d.ts +14 -0
  405. package/dist/components/primitives/attachment-chip/index.d.ts +1 -0
  406. package/dist/components/primitives/audit-log-entry/audit-log-entry.d.ts +29 -0
  407. package/dist/components/primitives/audit-log-entry/index.d.ts +1 -0
  408. package/dist/components/primitives/auto-compact-notice/auto-compact-notice.d.ts +24 -0
  409. package/dist/components/primitives/auto-compact-notice/index.d.ts +1 -0
  410. package/dist/components/primitives/avatar/avatar.d.ts +26 -0
  411. package/dist/components/primitives/avatar/index.d.ts +1 -0
  412. package/dist/components/primitives/badge/badge.d.ts +33 -0
  413. package/dist/components/primitives/badge/index.d.ts +1 -0
  414. package/dist/components/primitives/branch-indicator/branch-indicator.d.ts +13 -0
  415. package/dist/components/primitives/branch-indicator/index.d.ts +1 -0
  416. package/dist/components/primitives/browser-controls/browser-controls.d.ts +19 -0
  417. package/dist/components/primitives/browser-controls/index.d.ts +1 -0
  418. package/dist/components/primitives/build-log-stream/build-log-stream.d.ts +51 -0
  419. package/dist/components/primitives/build-log-stream/index.d.ts +1 -0
  420. package/dist/components/primitives/button/button.d.ts +26 -0
  421. package/dist/components/primitives/button/index.d.ts +1 -0
  422. package/dist/components/primitives/capability-indicator/capability-indicator.d.ts +57 -0
  423. package/dist/components/primitives/capability-indicator/index.d.ts +1 -0
  424. package/dist/components/primitives/card/card.d.ts +40 -0
  425. package/dist/components/primitives/card/index.d.ts +1 -0
  426. package/dist/components/primitives/channel-card/channel-card.d.ts +28 -0
  427. package/dist/components/primitives/channel-card/index.d.ts +1 -0
  428. package/dist/components/primitives/chat-thread/chat-thread.d.ts +12 -0
  429. package/dist/components/primitives/chat-thread/index.d.ts +1 -0
  430. package/dist/components/primitives/checkbox/checkbox.d.ts +20 -0
  431. package/dist/components/primitives/checkbox/index.d.ts +1 -0
  432. package/dist/components/primitives/context-card/context-card.d.ts +18 -0
  433. package/dist/components/primitives/context-card/index.d.ts +1 -0
  434. package/dist/components/primitives/context-window-bar/context-window-bar.d.ts +27 -0
  435. package/dist/components/primitives/context-window-bar/index.d.ts +1 -0
  436. package/dist/components/primitives/copy-button/copy-button.d.ts +17 -0
  437. package/dist/components/primitives/copy-button/index.d.ts +1 -0
  438. package/dist/components/primitives/cost-meter/cost-meter.d.ts +23 -0
  439. package/dist/components/primitives/cost-meter/index.d.ts +1 -0
  440. package/dist/components/primitives/created-files-card/created-files-card.d.ts +30 -0
  441. package/dist/components/primitives/created-files-card/index.d.ts +1 -0
  442. package/dist/components/primitives/cron-job-card/cron-job-card.d.ts +30 -0
  443. package/dist/components/primitives/cron-job-card/index.d.ts +1 -0
  444. package/dist/components/primitives/danger-zone/danger-zone.d.ts +40 -0
  445. package/dist/components/primitives/danger-zone/index.d.ts +1 -0
  446. package/dist/components/primitives/dialog/dialog.d.ts +26 -0
  447. package/dist/components/primitives/dialog/index.d.ts +1 -0
  448. package/dist/components/primitives/diff-viewer/diff-viewer.d.ts +45 -0
  449. package/dist/components/primitives/diff-viewer/index.d.ts +1 -0
  450. package/dist/components/primitives/dropdown-menu/dropdown-menu.d.ts +68 -0
  451. package/dist/components/primitives/dropdown-menu/index.d.ts +1 -0
  452. package/dist/components/primitives/empty-state/empty-state.d.ts +22 -0
  453. package/dist/components/primitives/empty-state/index.d.ts +1 -0
  454. package/dist/components/primitives/export-chat-dialog/export-chat-dialog.d.ts +18 -0
  455. package/dist/components/primitives/export-chat-dialog/index.d.ts +1 -0
  456. package/dist/components/primitives/folder-context-card/folder-context-card.d.ts +40 -0
  457. package/dist/components/primitives/folder-context-card/index.d.ts +1 -0
  458. package/dist/components/primitives/folder-selector/folder-selector.d.ts +18 -0
  459. package/dist/components/primitives/folder-selector/index.d.ts +1 -0
  460. package/dist/components/primitives/form-field/form-field.d.ts +44 -0
  461. package/dist/components/primitives/form-field/index.d.ts +1 -0
  462. package/dist/components/primitives/gateway-status-indicator/gateway-status-indicator.d.ts +19 -0
  463. package/dist/components/primitives/gateway-status-indicator/index.d.ts +1 -0
  464. package/dist/components/primitives/hook-config/hook-config.d.ts +27 -0
  465. package/dist/components/primitives/hook-config/index.d.ts +1 -0
  466. package/dist/components/primitives/hook-event-log/hook-event-log.d.ts +27 -0
  467. package/dist/components/primitives/hook-event-log/index.d.ts +1 -0
  468. package/dist/components/primitives/input/index.d.ts +1 -0
  469. package/dist/components/primitives/input/input.d.ts +24 -0
  470. package/dist/components/primitives/intent-selector/index.d.ts +1 -0
  471. package/dist/components/primitives/intent-selector/intent-selector.d.ts +22 -0
  472. package/dist/components/primitives/label/index.d.ts +1 -0
  473. package/dist/components/primitives/label/label.d.ts +15 -0
  474. package/dist/components/primitives/lane-board/index.d.ts +1 -0
  475. package/dist/components/primitives/lane-board/lane-board.d.ts +26 -0
  476. package/dist/components/primitives/login-split/index.d.ts +1 -0
  477. package/dist/components/primitives/login-split/login-split.d.ts +24 -0
  478. package/dist/components/primitives/mcp-server-card/index.d.ts +1 -0
  479. package/dist/components/primitives/mcp-server-card/mcp-server-card.d.ts +32 -0
  480. package/dist/components/primitives/memory-editor/index.d.ts +1 -0
  481. package/dist/components/primitives/memory-editor/memory-editor.d.ts +29 -0
  482. package/dist/components/primitives/mention-menu/index.d.ts +1 -0
  483. package/dist/components/primitives/mention-menu/mention-menu.d.ts +44 -0
  484. package/dist/components/primitives/metrics-panel/index.d.ts +1 -0
  485. package/dist/components/primitives/metrics-panel/metrics-panel.d.ts +62 -0
  486. package/dist/components/primitives/model-card/index.d.ts +1 -0
  487. package/dist/components/primitives/model-card/model-card.d.ts +72 -0
  488. package/dist/components/primitives/model-selector/index.d.ts +1 -0
  489. package/dist/components/primitives/model-selector/model-selector.d.ts +21 -0
  490. package/dist/components/primitives/pagination/index.d.ts +1 -0
  491. package/dist/components/primitives/pagination/pagination.d.ts +44 -0
  492. package/dist/components/primitives/permission-matrix/index.d.ts +1 -0
  493. package/dist/components/primitives/permission-matrix/permission-matrix.d.ts +43 -0
  494. package/dist/components/primitives/pin-input/index.d.ts +1 -0
  495. package/dist/components/primitives/pin-input/pin-input.d.ts +41 -0
  496. package/dist/components/primitives/plan-badge/index.d.ts +1 -0
  497. package/dist/components/primitives/plan-badge/plan-badge.d.ts +35 -0
  498. package/dist/components/primitives/progress/index.d.ts +1 -0
  499. package/dist/components/primitives/progress/progress.d.ts +44 -0
  500. package/dist/components/primitives/progress-checklist/index.d.ts +1 -0
  501. package/dist/components/primitives/progress-checklist/progress-checklist.d.ts +18 -0
  502. package/dist/components/primitives/project-switcher/index.d.ts +1 -0
  503. package/dist/components/primitives/project-switcher/project-switcher.d.ts +32 -0
  504. package/dist/components/primitives/quick-action-chips/index.d.ts +1 -0
  505. package/dist/components/primitives/quick-action-chips/quick-action-chips.d.ts +22 -0
  506. package/dist/components/primitives/radio-group/index.d.ts +1 -0
  507. package/dist/components/primitives/radio-group/radio-group.d.ts +5 -0
  508. package/dist/components/primitives/recent-folders-list/index.d.ts +1 -0
  509. package/dist/components/primitives/recent-folders-list/recent-folders-list.d.ts +21 -0
  510. package/dist/components/primitives/rule-card/index.d.ts +1 -0
  511. package/dist/components/primitives/rule-card/rule-card.d.ts +15 -0
  512. package/dist/components/primitives/run-stats/index.d.ts +1 -0
  513. package/dist/components/primitives/run-stats/run-stats.d.ts +16 -0
  514. package/dist/components/primitives/run-status-pill/index.d.ts +1 -0
  515. package/dist/components/primitives/run-status-pill/run-status-pill.d.ts +13 -0
  516. package/dist/components/primitives/running-tasks-panel/index.d.ts +1 -0
  517. package/dist/components/primitives/running-tasks-panel/running-tasks-panel.d.ts +20 -0
  518. package/dist/components/primitives/scroll-area/index.d.ts +2 -0
  519. package/dist/components/primitives/scroll-area/scroll-area.d.ts +40 -0
  520. package/dist/components/primitives/scroll-area/use-stick-to-bottom.d.ts +20 -0
  521. package/dist/components/primitives/select/index.d.ts +1 -0
  522. package/dist/components/primitives/select/select.d.ts +50 -0
  523. package/dist/components/primitives/session-list-item/index.d.ts +1 -0
  524. package/dist/components/primitives/session-list-item/session-list-item.d.ts +35 -0
  525. package/dist/components/primitives/session-timeline/index.d.ts +1 -0
  526. package/dist/components/primitives/session-timeline/session-timeline.d.ts +32 -0
  527. package/dist/components/primitives/sheet/index.d.ts +1 -0
  528. package/dist/components/primitives/sheet/sheet.d.ts +57 -0
  529. package/dist/components/primitives/sidebar/index.d.ts +1 -0
  530. package/dist/components/primitives/sidebar/sidebar.d.ts +18 -0
  531. package/dist/components/primitives/skeleton/index.d.ts +1 -0
  532. package/dist/components/primitives/skeleton/skeleton.d.ts +21 -0
  533. package/dist/components/primitives/skill-card/index.d.ts +1 -0
  534. package/dist/components/primitives/skill-card/skill-card.d.ts +28 -0
  535. package/dist/components/primitives/slide/alerts.d.ts +31 -0
  536. package/dist/components/primitives/slide/frontmatter.d.ts +23 -0
  537. package/dist/components/primitives/slide/index.d.ts +16 -0
  538. package/dist/components/primitives/slide/json-schema.d.ts +9 -0
  539. package/dist/components/primitives/slide/marpit-bg.d.ts +36 -0
  540. package/dist/components/primitives/slide/parse.d.ts +59 -0
  541. package/dist/components/primitives/slide/plugin.d.ts +79 -0
  542. package/dist/components/primitives/slide/plugins/emoji/index.d.ts +8 -0
  543. package/dist/components/primitives/slide/plugins/emoji/map.d.ts +15 -0
  544. package/dist/components/primitives/slide/plugins/math/index.d.ts +6 -0
  545. package/dist/components/primitives/slide/plugins/mermaid/index.d.ts +48 -0
  546. package/dist/components/primitives/slide/plugins/shiki/index.d.ts +11 -0
  547. package/dist/components/primitives/slide/sanitize.d.ts +33 -0
  548. package/dist/components/primitives/slide/schema.d.ts +109 -0
  549. package/dist/components/primitives/slide/slide.d.ts +53 -0
  550. package/dist/components/primitives/slide/themes/index.d.ts +9 -0
  551. package/dist/components/primitives/slide/use-slide-fit.d.ts +21 -0
  552. package/dist/components/primitives/slide/validate.d.ts +33 -0
  553. package/dist/components/primitives/social-auth-row/index.d.ts +1 -0
  554. package/dist/components/primitives/social-auth-row/social-auth-row.d.ts +24 -0
  555. package/dist/components/primitives/stat-tile/index.d.ts +1 -0
  556. package/dist/components/primitives/stat-tile/stat-tile.d.ts +28 -0
  557. package/dist/components/primitives/status-dot/index.d.ts +1 -0
  558. package/dist/components/primitives/status-dot/status-dot.d.ts +31 -0
  559. package/dist/components/primitives/steps-rail/index.d.ts +1 -0
  560. package/dist/components/primitives/steps-rail/steps-rail.d.ts +24 -0
  561. package/dist/components/primitives/sub-agent-dispatch/index.d.ts +1 -0
  562. package/dist/components/primitives/sub-agent-dispatch/sub-agent-dispatch.d.ts +30 -0
  563. package/dist/components/primitives/switch/index.d.ts +1 -0
  564. package/dist/components/primitives/switch/switch.d.ts +20 -0
  565. package/dist/components/primitives/system-prompt-editor/index.d.ts +1 -0
  566. package/dist/components/primitives/system-prompt-editor/system-prompt-editor.d.ts +25 -0
  567. package/dist/components/primitives/table/index.d.ts +1 -0
  568. package/dist/components/primitives/table/table.d.ts +61 -0
  569. package/dist/components/primitives/tabs/index.d.ts +1 -0
  570. package/dist/components/primitives/tabs/tabs.d.ts +7 -0
  571. package/dist/components/primitives/task-plan/index.d.ts +1 -0
  572. package/dist/components/primitives/task-plan/task-plan.d.ts +36 -0
  573. package/dist/components/primitives/terminal-panel/index.d.ts +1 -0
  574. package/dist/components/primitives/terminal-panel/terminal-panel.d.ts +32 -0
  575. package/dist/components/primitives/textarea/index.d.ts +1 -0
  576. package/dist/components/primitives/textarea/textarea.d.ts +20 -0
  577. package/dist/components/primitives/thinking-level-selector/index.d.ts +1 -0
  578. package/dist/components/primitives/thinking-level-selector/thinking-level-selector.d.ts +24 -0
  579. package/dist/components/primitives/timestamp/index.d.ts +1 -0
  580. package/dist/components/primitives/timestamp/timestamp.d.ts +34 -0
  581. package/dist/components/primitives/toast/index.d.ts +2 -0
  582. package/dist/components/primitives/toast/toast.d.ts +34 -0
  583. package/dist/components/primitives/toast/toaster.d.ts +38 -0
  584. package/dist/components/primitives/token-usage-chart/index.d.ts +2 -0
  585. package/dist/components/primitives/token-usage-chart/token-usage-chart.d.ts +44 -0
  586. package/dist/components/primitives/token-usage-chart/usage-metrics.d.ts +23 -0
  587. package/dist/components/primitives/tool-call/index.d.ts +1 -0
  588. package/dist/components/primitives/tool-call/tool-call.d.ts +30 -0
  589. package/dist/components/primitives/tool-call-card/index.d.ts +1 -0
  590. package/dist/components/primitives/tool-call-card/tool-call-card.d.ts +30 -0
  591. package/dist/components/primitives/tool-result/index.d.ts +1 -0
  592. package/dist/components/primitives/tool-result/tool-result.d.ts +19 -0
  593. package/dist/components/primitives/tools-list/index.d.ts +1 -0
  594. package/dist/components/primitives/tools-list/tools-list.d.ts +32 -0
  595. package/dist/components/primitives/tooltip/index.d.ts +1 -0
  596. package/dist/components/primitives/tooltip/tooltip.d.ts +33 -0
  597. package/dist/components/primitives/topnav/index.d.ts +1 -0
  598. package/dist/components/primitives/topnav/topnav.d.ts +29 -0
  599. package/dist/components/primitives/update-banner/index.d.ts +1 -0
  600. package/dist/components/primitives/update-banner/update-banner.d.ts +16 -0
  601. package/dist/components/primitives/whiteboard/index.d.ts +2 -0
  602. package/dist/components/primitives/whiteboard/render/freedraw.d.ts +2 -0
  603. package/dist/components/primitives/whiteboard/render/line.d.ts +4 -0
  604. package/dist/components/primitives/whiteboard/render/rough-paths.d.ts +16 -0
  605. package/dist/components/primitives/whiteboard/render/scene.d.ts +3 -0
  606. package/dist/components/primitives/whiteboard/render/shape.d.ts +5 -0
  607. package/dist/components/primitives/whiteboard/render/style.d.ts +24 -0
  608. package/dist/components/primitives/whiteboard/render/text.d.ts +2 -0
  609. package/dist/components/primitives/whiteboard/schema.d.ts +596 -0
  610. package/dist/components/primitives/whiteboard/seed.d.ts +22 -0
  611. package/dist/components/primitives/whiteboard/validate.d.ts +26 -0
  612. package/dist/components/primitives/whiteboard/viewport/use-pointer-pan.d.ts +11 -0
  613. package/dist/components/primitives/whiteboard/viewport/use-viewport.d.ts +33 -0
  614. package/dist/components/primitives/whiteboard/whiteboard.d.ts +21 -0
  615. package/dist/components.css +1 -1
  616. package/dist/composites/account-menu/index.js +4 -4
  617. package/dist/composites/agent-composer/index.js +6 -5
  618. package/dist/composites/agent-editor/index.js +8 -7
  619. package/dist/composites/agent-stream/index.js +21 -9
  620. package/dist/composites/agent-timeline/index.js +3 -3
  621. package/dist/composites/agent-tool-renderer/index.js +17 -0
  622. package/dist/composites/agent-tool-renderer/index.js.map +1 -0
  623. package/dist/composites/approval-card/index.js +3 -3
  624. package/dist/composites/chat-composer/index.js +3 -3
  625. package/dist/composites/chat-message/index.js +18 -4
  626. package/dist/composites/choice-prompt/index.js +11 -0
  627. package/dist/composites/choice-prompt/index.js.map +1 -0
  628. package/dist/composites/code-block/index.js +3 -3
  629. package/dist/composites/command-palette/index.js +4 -3
  630. package/dist/composites/confirm-dialog/index.js +6 -5
  631. package/dist/composites/confirm-prompt/index.js +7 -0
  632. package/dist/composites/confirm-prompt/index.js.map +1 -0
  633. package/dist/composites/cron-jobs-list/index.js +3 -3
  634. package/dist/composites/data-table/index.js +8 -7
  635. package/dist/composites/deployment-row/index.js +3 -3
  636. package/dist/composites/domain-config/index.js +6 -5
  637. package/dist/composites/env-var-editor/index.js +7 -5
  638. package/dist/composites/mcp-server-list/index.js +4 -3
  639. package/dist/composites/metric-card/index.js +5 -0
  640. package/dist/composites/metric-card/index.js.map +1 -0
  641. package/dist/composites/multi-select-prompt/index.js +11 -0
  642. package/dist/composites/multi-select-prompt/index.js.map +1 -0
  643. package/dist/composites/page-shell/index.js +6 -5
  644. package/dist/composites/permission-modal/index.js +5 -4
  645. package/dist/composites/preview-env-card/index.js +4 -4
  646. package/dist/composites/preview-panel/index.js +3 -3
  647. package/dist/composites/project-card/index.js +4 -4
  648. package/dist/composites/rollback-ui/index.js +5 -4
  649. package/dist/composites/rule-editor/index.js +9 -8
  650. package/dist/composites/skill-editor/index.js +9 -8
  651. package/dist/composites/skills-list/index.js +4 -3
  652. package/dist/composites/stability-bundle-viewer/index.js +5 -0
  653. package/dist/composites/stability-bundle-viewer/index.js.map +1 -0
  654. package/dist/composites/status-indicator/index.js +4 -0
  655. package/dist/composites/status-indicator/index.js.map +1 -0
  656. package/dist/composites/task-header/index.js +3 -3
  657. package/dist/composites/text-prompt/index.js +10 -0
  658. package/dist/composites/text-prompt/index.js.map +1 -0
  659. package/dist/composites/usage-meter/index.js +3 -3
  660. package/dist/fonts-cdn.css +4 -4
  661. package/dist/fonts.css +2 -2
  662. package/dist/index.d.ts +144 -4461
  663. package/dist/index.js +999 -731
  664. package/dist/index.js.map +1 -1
  665. package/dist/lib/cn.d.ts +6 -0
  666. package/dist/lib/env.d.ts +55 -0
  667. package/dist/lib/live-region-context.d.ts +2 -0
  668. package/dist/lib/markdown/code-block.d.ts +14 -0
  669. package/dist/lib/markdown/inline-code.d.ts +10 -0
  670. package/dist/lib/markdown/math.d.ts +12 -0
  671. package/dist/lib/markdown/mermaid.d.ts +6 -0
  672. package/dist/lib/markdown/parser.d.ts +47 -0
  673. package/dist/lib/markdown/streaming-preprocess.d.ts +39 -0
  674. package/dist/lib/prompt.d.ts +40 -0
  675. package/dist/lib/safe-href.d.ts +27 -0
  676. package/dist/lib/sdk-tools-adapters/index.d.ts +1 -0
  677. package/dist/lib/sdk-tools-adapters/index.js +3 -0
  678. package/dist/lib/sdk-tools-adapters/index.js.map +1 -0
  679. package/dist/lib/sdk-tools-adapters/sdk-tools-adapters.d.ts +60 -0
  680. package/dist/lib/types.d.ts +10 -0
  681. package/dist/preset-v3-legacy.d.ts +7 -10
  682. package/dist/preset-v3-legacy.js +23 -3
  683. package/dist/preset-v3-legacy.js.map +1 -1
  684. package/dist/preset.css +2 -2
  685. package/dist/primitives/action-bar/index.js +2 -2
  686. package/dist/primitives/agent-error-card/index.js +2 -2
  687. package/dist/primitives/agent-event/index.js +3 -2
  688. package/dist/primitives/agent-handoff/index.js +2 -2
  689. package/dist/primitives/agent-profile/index.js +2 -2
  690. package/dist/primitives/agent-starting-state/index.js +2 -2
  691. package/dist/primitives/agent-streaming/index.js +2 -2
  692. package/dist/primitives/alert/index.js +2 -2
  693. package/dist/primitives/artifact-preview/index.js +2 -2
  694. package/dist/primitives/attachment-chip/index.js +2 -2
  695. package/dist/primitives/audit-log-entry/index.js +2 -2
  696. package/dist/primitives/auto-compact-notice/index.js +2 -2
  697. package/dist/primitives/avatar/index.js +2 -2
  698. package/dist/primitives/badge/index.js +2 -2
  699. package/dist/primitives/branch-indicator/index.js +4 -0
  700. package/dist/primitives/branch-indicator/index.js.map +1 -0
  701. package/dist/primitives/browser-controls/index.js +2 -2
  702. package/dist/primitives/build-log-stream/index.js +4 -2
  703. package/dist/primitives/button/index.js +2 -2
  704. package/dist/primitives/capability-indicator/index.js +2 -2
  705. package/dist/primitives/card/index.js +3 -2
  706. package/dist/primitives/channel-card/index.js +4 -0
  707. package/dist/primitives/channel-card/index.js.map +1 -0
  708. package/dist/primitives/chat-thread/index.js +2 -2
  709. package/dist/primitives/checkbox/index.js +2 -2
  710. package/dist/primitives/context-card/index.js +2 -2
  711. package/dist/primitives/context-window-bar/index.js +2 -2
  712. package/dist/primitives/copy-button/index.js +3 -2
  713. package/dist/primitives/cost-meter/index.js +2 -2
  714. package/dist/primitives/created-files-card/index.js +2 -2
  715. package/dist/primitives/cron-job-card/index.js +2 -2
  716. package/dist/primitives/danger-zone/index.js +2 -2
  717. package/dist/primitives/dialog/index.js +2 -2
  718. package/dist/primitives/diff-viewer/index.js +2 -2
  719. package/dist/primitives/dropdown-menu/index.js +2 -2
  720. package/dist/primitives/empty-state/index.js +2 -2
  721. package/dist/primitives/export-chat-dialog/index.js +5 -0
  722. package/dist/primitives/export-chat-dialog/index.js.map +1 -0
  723. package/dist/primitives/folder-context-card/index.js +2 -2
  724. package/dist/primitives/folder-selector/index.js +2 -2
  725. package/dist/primitives/form-field/index.js +3 -2
  726. package/dist/primitives/gateway-status-indicator/index.js +4 -0
  727. package/dist/primitives/gateway-status-indicator/index.js.map +1 -0
  728. package/dist/primitives/hook-config/index.js +3 -2
  729. package/dist/primitives/hook-event-log/index.js +2 -2
  730. package/dist/primitives/input/index.js +2 -2
  731. package/dist/primitives/intent-selector/index.js +2 -2
  732. package/dist/primitives/label/index.js +2 -2
  733. package/dist/primitives/lane-board/index.js +2 -2
  734. package/dist/primitives/login-split/index.js +2 -2
  735. package/dist/primitives/mcp-server-card/index.js +2 -2
  736. package/dist/primitives/memory-editor/index.js +2 -2
  737. package/dist/primitives/mention-menu/index.js +3 -2
  738. package/dist/primitives/metrics-panel/index.js +2 -2
  739. package/dist/primitives/model-card/index.js +2 -2
  740. package/dist/primitives/model-selector/index.js +2 -2
  741. package/dist/primitives/pagination/index.js +2 -2
  742. package/dist/primitives/permission-matrix/index.js +3 -2
  743. package/dist/primitives/pin-input/index.js +3 -2
  744. package/dist/primitives/plan-badge/index.js +2 -2
  745. package/dist/primitives/progress/index.js +2 -2
  746. package/dist/primitives/progress-checklist/index.js +2 -2
  747. package/dist/primitives/project-switcher/index.js +2 -2
  748. package/dist/primitives/quick-action-chips/index.js +2 -2
  749. package/dist/primitives/radio-group/index.js +2 -2
  750. package/dist/primitives/recent-folders-list/index.js +2 -2
  751. package/dist/primitives/rule-card/index.js +2 -2
  752. package/dist/primitives/run-stats/index.js +2 -2
  753. package/dist/primitives/run-status-pill/index.js +4 -0
  754. package/dist/primitives/run-status-pill/index.js.map +1 -0
  755. package/dist/primitives/running-tasks-panel/index.js +2 -2
  756. package/dist/primitives/scroll-area/index.js +3 -2
  757. package/dist/primitives/select/index.js +2 -2
  758. package/dist/primitives/session-list-item/index.js +2 -2
  759. package/dist/primitives/session-timeline/index.js +2 -2
  760. package/dist/primitives/sheet/index.js +2 -2
  761. package/dist/primitives/sidebar/index.js +2 -2
  762. package/dist/primitives/skeleton/index.js +2 -2
  763. package/dist/primitives/skill-card/index.js +2 -2
  764. package/dist/primitives/social-auth-row/index.js +2 -2
  765. package/dist/primitives/stat-tile/index.js +2 -2
  766. package/dist/primitives/status-dot/index.js +4 -2
  767. package/dist/primitives/steps-rail/index.js +2 -2
  768. package/dist/primitives/sub-agent-dispatch/index.js +2 -2
  769. package/dist/primitives/switch/index.js +2 -2
  770. package/dist/primitives/system-prompt-editor/index.js +3 -2
  771. package/dist/primitives/table/index.js +3 -2
  772. package/dist/primitives/tabs/index.js +2 -2
  773. package/dist/primitives/task-plan/index.js +2 -2
  774. package/dist/primitives/terminal-panel/index.js +2 -2
  775. package/dist/primitives/textarea/index.js +2 -2
  776. package/dist/primitives/thinking-level-selector/index.js +5 -0
  777. package/dist/primitives/thinking-level-selector/index.js.map +1 -0
  778. package/dist/primitives/timestamp/index.js +4 -2
  779. package/dist/primitives/toast/index.js +3 -2
  780. package/dist/primitives/token-usage-chart/index.js +2 -2
  781. package/dist/primitives/tool-call/index.js +3 -2
  782. package/dist/primitives/tool-call-card/index.js +3 -2
  783. package/dist/primitives/tool-result/index.js +2 -2
  784. package/dist/primitives/tools-list/index.js +2 -2
  785. package/dist/primitives/tooltip/index.js +2 -2
  786. package/dist/primitives/topnav/index.js +2 -2
  787. package/dist/primitives/update-banner/index.js +4 -0
  788. package/dist/primitives/update-banner/index.js.map +1 -0
  789. package/dist/screens/theo-code-shell.d.ts +9 -0
  790. package/dist/screens/theo-code-shell.data.d.ts +147 -0
  791. package/dist/slide/index.js +2 -1
  792. package/dist/slide/plugins/mermaid/index.js +1 -1
  793. package/dist/slide/plugins/mermaid/index.js.map +1 -1
  794. package/dist/slide/plugins/shiki/index.js.map +1 -1
  795. package/dist/slide/themes/violet-forge.css +1 -1
  796. package/dist/slide-deck/index.js +13 -2
  797. package/dist/slide-deck/index.js.map +1 -1
  798. package/dist/styles/tailwind-preset.d.ts +29 -0
  799. package/dist/styles.css +3 -3
  800. package/dist/test/a11y.d.ts +13 -0
  801. package/dist/test/setup.d.ts +1 -0
  802. package/dist/themes/anthropic-style.d.ts +11 -0
  803. package/dist/themes/aurora-terminal.d.ts +9 -0
  804. package/dist/themes/classic-paper.d.ts +17 -0
  805. package/dist/themes/color-value-pattern.d.ts +22 -0
  806. package/dist/themes/color.d.ts +62 -0
  807. package/dist/themes/define.d.ts +65 -0
  808. package/dist/themes/density.d.ts +17 -0
  809. package/dist/themes/dracula.d.ts +14 -0
  810. package/dist/themes/github-dark.d.ts +11 -0
  811. package/dist/themes/index.d.ts +26 -0
  812. package/dist/themes/linear-glass.d.ts +11 -0
  813. package/dist/themes/one-dark.d.ts +11 -0
  814. package/dist/themes/openai-style.d.ts +10 -0
  815. package/dist/themes/schema.d.ts +112 -0
  816. package/dist/themes/theme-provider.d.ts +82 -0
  817. package/dist/themes/theme-script.d.ts +48 -0
  818. package/dist/themes/theme-switcher.d.ts +17 -0
  819. package/dist/themes/types.d.ts +88 -0
  820. package/dist/themes/vercel-mono.d.ts +11 -0
  821. package/dist/themes/violet-forge.d.ts +12 -0
  822. package/dist/theo-ui-provider.d.ts +50 -0
  823. package/dist/tokens-v4.css +77 -41
  824. package/dist/tokens.css +159 -74
  825. package/dist/types/agent.d.ts +19 -0
  826. package/dist/types/chat.d.ts +173 -0
  827. package/dist/types/mode.d.ts +16 -0
  828. package/dist/types/permission.d.ts +8 -0
  829. package/dist/types/rule.d.ts +28 -0
  830. package/dist/types/task.d.ts +9 -0
  831. package/dist/vite-plugin.d.ts +7 -11
  832. package/dist/vite-plugin.js +4 -4
  833. package/dist/vite-plugin.js.map +1 -1
  834. package/dist/whiteboard/index.js +3 -0
  835. package/dist/whiteboard/index.js.map +1 -1
  836. package/llms.txt +39 -39
  837. package/package.json +246 -174
  838. package/registry/index.json +58 -4
  839. package/registry/r/account-menu.json +1 -1
  840. package/registry/r/action-bar.json +1 -1
  841. package/registry/r/agent-composer.json +1 -1
  842. package/registry/r/agent-editor.json +1 -1
  843. package/registry/r/agent-error-card.json +1 -1
  844. package/registry/r/agent-event.json +1 -1
  845. package/registry/r/agent-handoff.json +1 -1
  846. package/registry/r/agent-profile.json +1 -1
  847. package/registry/r/agent-starting-state.json +1 -1
  848. package/registry/r/agent-stream.json +1 -1
  849. package/registry/r/agent-streaming.json +1 -1
  850. package/registry/r/agent-timeline.json +1 -1
  851. package/registry/r/agent-tool-renderer.json +40 -0
  852. package/registry/r/alert.json +1 -1
  853. package/registry/r/approval-card.json +1 -1
  854. package/registry/r/artifact-preview.json +1 -1
  855. package/registry/r/attachment-chip.json +1 -1
  856. package/registry/r/audit-log-entry.json +1 -1
  857. package/registry/r/auto-compact-notice.json +1 -1
  858. package/registry/r/avatar.json +1 -1
  859. package/registry/r/badge.json +1 -1
  860. package/registry/r/browser-controls.json +1 -1
  861. package/registry/r/build-log-stream.json +2 -1
  862. package/registry/r/button.json +1 -1
  863. package/registry/r/capability-indicator.json +1 -1
  864. package/registry/r/card.json +1 -1
  865. package/registry/r/chat-composer.json +1 -1
  866. package/registry/r/chat-message.json +11 -16
  867. package/registry/r/chat-thread.json +1 -1
  868. package/registry/r/chat-types.json +1 -1
  869. package/registry/r/checkbox.json +1 -1
  870. package/registry/r/choice-prompt.json +25 -0
  871. package/registry/r/cn.json +1 -1
  872. package/registry/r/code-block.json +1 -1
  873. package/registry/r/command-palette.json +1 -1
  874. package/registry/r/confirm-dialog.json +1 -1
  875. package/registry/r/confirm-prompt.json +21 -0
  876. package/registry/r/context-card.json +1 -1
  877. package/registry/r/context-window-bar.json +1 -1
  878. package/registry/r/copy-button.json +1 -1
  879. package/registry/r/cost-meter.json +1 -1
  880. package/registry/r/created-files-card.json +1 -1
  881. package/registry/r/cron-job-card.json +1 -1
  882. package/registry/r/cron-jobs-list.json +1 -1
  883. package/registry/r/danger-zone.json +1 -1
  884. package/registry/r/data-table.json +1 -1
  885. package/registry/r/deployment-row.json +1 -1
  886. package/registry/r/dialog.json +1 -1
  887. package/registry/r/diff-viewer.json +1 -1
  888. package/registry/r/domain-config.json +1 -1
  889. package/registry/r/dropdown-menu.json +2 -2
  890. package/registry/r/empty-state.json +1 -1
  891. package/registry/r/env-var-editor.json +2 -1
  892. package/registry/r/env.json +15 -0
  893. package/registry/r/folder-context-card.json +1 -1
  894. package/registry/r/folder-selector.json +1 -1
  895. package/registry/r/form-field.json +1 -1
  896. package/registry/r/hook-config.json +1 -1
  897. package/registry/r/hook-event-log.json +1 -1
  898. package/registry/r/input.json +1 -1
  899. package/registry/r/intent-selector.json +1 -1
  900. package/registry/r/label.json +1 -1
  901. package/registry/r/lane-board.json +1 -1
  902. package/registry/r/login-split.json +1 -1
  903. package/registry/r/mcp-server-card.json +1 -1
  904. package/registry/r/mcp-server-list.json +1 -1
  905. package/registry/r/memory-editor.json +1 -1
  906. package/registry/r/mention-menu.json +1 -1
  907. package/registry/r/metric-card.json +23 -0
  908. package/registry/r/metrics-panel.json +1 -1
  909. package/registry/r/model-card.json +1 -1
  910. package/registry/r/model-selector.json +1 -1
  911. package/registry/r/multi-select-prompt.json +25 -0
  912. package/registry/r/page-shell.json +1 -1
  913. package/registry/r/pagination.json +1 -1
  914. package/registry/r/permission-matrix.json +1 -1
  915. package/registry/r/permission-modal.json +1 -1
  916. package/registry/r/pin-input.json +1 -1
  917. package/registry/r/plan-badge.json +1 -1
  918. package/registry/r/preview-env-card.json +1 -1
  919. package/registry/r/preview-panel.json +1 -1
  920. package/registry/r/progress-checklist.json +1 -1
  921. package/registry/r/progress.json +1 -1
  922. package/registry/r/project-card.json +1 -1
  923. package/registry/r/project-switcher.json +1 -1
  924. package/registry/r/prompt.json +15 -0
  925. package/registry/r/quick-action-chips.json +1 -1
  926. package/registry/r/radio-group.json +1 -1
  927. package/registry/r/recent-folders-list.json +1 -1
  928. package/registry/r/rollback-ui.json +1 -1
  929. package/registry/r/rule-card.json +1 -1
  930. package/registry/r/rule-editor.json +1 -1
  931. package/registry/r/run-stats.json +1 -1
  932. package/registry/r/running-tasks-panel.json +1 -1
  933. package/registry/r/safe-href.json +1 -1
  934. package/registry/r/scroll-area.json +1 -1
  935. package/registry/r/select.json +1 -1
  936. package/registry/r/session-list-item.json +1 -1
  937. package/registry/r/session-timeline.json +1 -1
  938. package/registry/r/sheet.json +1 -1
  939. package/registry/r/sidebar.json +1 -1
  940. package/registry/r/skeleton.json +1 -1
  941. package/registry/r/skill-card.json +1 -1
  942. package/registry/r/skill-editor.json +1 -1
  943. package/registry/r/skills-list.json +1 -1
  944. package/registry/r/slide-deck.json +8 -8
  945. package/registry/r/slide-plugin-mermaid.json +1 -1
  946. package/registry/r/slide-plugin-shiki.json +1 -1
  947. package/registry/r/slide.json +6 -6
  948. package/registry/r/social-auth-row.json +1 -1
  949. package/registry/r/stat-tile.json +1 -1
  950. package/registry/r/status-dot.json +2 -1
  951. package/registry/r/status-indicator.json +20 -0
  952. package/registry/r/steps-rail.json +1 -1
  953. package/registry/r/sub-agent-dispatch.json +1 -1
  954. package/registry/r/switch.json +1 -1
  955. package/registry/r/system-prompt-editor.json +1 -1
  956. package/registry/r/table.json +1 -1
  957. package/registry/r/tabs.json +1 -1
  958. package/registry/r/tailwind-preset.json +1 -1
  959. package/registry/r/task-header.json +1 -1
  960. package/registry/r/task-plan.json +1 -1
  961. package/registry/r/terminal-panel.json +1 -1
  962. package/registry/r/text-prompt.json +24 -0
  963. package/registry/r/textarea.json +1 -1
  964. package/registry/r/theme-provider.json +7 -6
  965. package/registry/r/theo-ui-provider.json +1 -1
  966. package/registry/r/timestamp.json +2 -1
  967. package/registry/r/toast.json +2 -2
  968. package/registry/r/token-usage-chart.json +1 -1
  969. package/registry/r/tokens.json +2 -2
  970. package/registry/r/tool-call-card.json +1 -1
  971. package/registry/r/tool-call.json +1 -1
  972. package/registry/r/tool-result.json +1 -1
  973. package/registry/r/tools-list.json +1 -1
  974. package/registry/r/tooltip.json +1 -1
  975. package/registry/r/topnav.json +1 -1
  976. package/registry/r/usage-meter.json +1 -1
  977. package/registry/r/whiteboard.json +3 -3
  978. package/dist/chunk-2UJROWAG.js +0 -106
  979. package/dist/chunk-2UJROWAG.js.map +0 -1
  980. package/dist/chunk-2XPWOUEH.js +0 -68
  981. package/dist/chunk-2XPWOUEH.js.map +0 -1
  982. package/dist/chunk-3GHLNCM3.js +0 -42
  983. package/dist/chunk-3GHLNCM3.js.map +0 -1
  984. package/dist/chunk-3HOXC25T.js +0 -48
  985. package/dist/chunk-3HOXC25T.js.map +0 -1
  986. package/dist/chunk-3QGO5SB3.js +0 -46
  987. package/dist/chunk-3QGO5SB3.js.map +0 -1
  988. package/dist/chunk-47QJVWW2.js +0 -85
  989. package/dist/chunk-47QJVWW2.js.map +0 -1
  990. package/dist/chunk-4L63UW3I.js +0 -35
  991. package/dist/chunk-4L63UW3I.js.map +0 -1
  992. package/dist/chunk-4UUSJJFZ.js +0 -25
  993. package/dist/chunk-4UUSJJFZ.js.map +0 -1
  994. package/dist/chunk-4ZBZBRG5.js +0 -127
  995. package/dist/chunk-4ZBZBRG5.js.map +0 -1
  996. package/dist/chunk-57NXT3OX.js +0 -92
  997. package/dist/chunk-57NXT3OX.js.map +0 -1
  998. package/dist/chunk-5FF5EUZP.js +0 -44
  999. package/dist/chunk-5FF5EUZP.js.map +0 -1
  1000. package/dist/chunk-5UGQXB2P.js +0 -714
  1001. package/dist/chunk-5UGQXB2P.js.map +0 -1
  1002. package/dist/chunk-62FT22CI.js +0 -85
  1003. package/dist/chunk-62FT22CI.js.map +0 -1
  1004. package/dist/chunk-673R3GSK.js +0 -19
  1005. package/dist/chunk-673R3GSK.js.map +0 -1
  1006. package/dist/chunk-6VINZJBV.js +0 -128
  1007. package/dist/chunk-6VINZJBV.js.map +0 -1
  1008. package/dist/chunk-74NZ5U3E.js +0 -145
  1009. package/dist/chunk-74NZ5U3E.js.map +0 -1
  1010. package/dist/chunk-755NWSNW.js +0 -36
  1011. package/dist/chunk-755NWSNW.js.map +0 -1
  1012. package/dist/chunk-7GLBWWMW.js +0 -70
  1013. package/dist/chunk-7GLBWWMW.js.map +0 -1
  1014. package/dist/chunk-7RXYW5VM.js +0 -88
  1015. package/dist/chunk-7RXYW5VM.js.map +0 -1
  1016. package/dist/chunk-AC4MGCXI.js +0 -92
  1017. package/dist/chunk-AC4MGCXI.js.map +0 -1
  1018. package/dist/chunk-AEVSVDT6.js +0 -67
  1019. package/dist/chunk-AEVSVDT6.js.map +0 -1
  1020. package/dist/chunk-AODIMN2N.js +0 -68
  1021. package/dist/chunk-AODIMN2N.js.map +0 -1
  1022. package/dist/chunk-ATHOPBCA.js +0 -61
  1023. package/dist/chunk-ATHOPBCA.js.map +0 -1
  1024. package/dist/chunk-AXKBNRZW.js +0 -173
  1025. package/dist/chunk-AXKBNRZW.js.map +0 -1
  1026. package/dist/chunk-B75MEYNR.js +0 -106
  1027. package/dist/chunk-B75MEYNR.js.map +0 -1
  1028. package/dist/chunk-BGKA6DI6.js +0 -34
  1029. package/dist/chunk-BGKA6DI6.js.map +0 -1
  1030. package/dist/chunk-BNQAJGEN.js +0 -88
  1031. package/dist/chunk-BNQAJGEN.js.map +0 -1
  1032. package/dist/chunk-BP2SETUC.js +0 -101
  1033. package/dist/chunk-BP2SETUC.js.map +0 -1
  1034. package/dist/chunk-BPUQWMBD.js +0 -79
  1035. package/dist/chunk-BPUQWMBD.js.map +0 -1
  1036. package/dist/chunk-BVDASR3Y.js +0 -74
  1037. package/dist/chunk-BVDASR3Y.js.map +0 -1
  1038. package/dist/chunk-BX7A5GUV.js +0 -78
  1039. package/dist/chunk-BX7A5GUV.js.map +0 -1
  1040. package/dist/chunk-CDA6RYOX.js +0 -115
  1041. package/dist/chunk-CDA6RYOX.js.map +0 -1
  1042. package/dist/chunk-CG7O3A42.js +0 -80
  1043. package/dist/chunk-CG7O3A42.js.map +0 -1
  1044. package/dist/chunk-CIYGNPKT.js +0 -76
  1045. package/dist/chunk-CIYGNPKT.js.map +0 -1
  1046. package/dist/chunk-CKXY4FTV.js +0 -59
  1047. package/dist/chunk-CKXY4FTV.js.map +0 -1
  1048. package/dist/chunk-CVOKZITR.js +0 -82
  1049. package/dist/chunk-CVOKZITR.js.map +0 -1
  1050. package/dist/chunk-CWFMFKDI.js +0 -82
  1051. package/dist/chunk-CWFMFKDI.js.map +0 -1
  1052. package/dist/chunk-CWVKSV7S.js +0 -124
  1053. package/dist/chunk-CWVKSV7S.js.map +0 -1
  1054. package/dist/chunk-CYOLRWOX.js +0 -63
  1055. package/dist/chunk-CYOLRWOX.js.map +0 -1
  1056. package/dist/chunk-D23LRJT6.js +0 -116
  1057. package/dist/chunk-D23LRJT6.js.map +0 -1
  1058. package/dist/chunk-DFADMEJK.js +0 -127
  1059. package/dist/chunk-DFADMEJK.js.map +0 -1
  1060. package/dist/chunk-DKQAHZG2.js +0 -83
  1061. package/dist/chunk-DKQAHZG2.js.map +0 -1
  1062. package/dist/chunk-DW247T3Q.js +0 -199
  1063. package/dist/chunk-DW247T3Q.js.map +0 -1
  1064. package/dist/chunk-E5A7HN6H.js +0 -32
  1065. package/dist/chunk-E5A7HN6H.js.map +0 -1
  1066. package/dist/chunk-EI63GTN7.js +0 -57
  1067. package/dist/chunk-EI63GTN7.js.map +0 -1
  1068. package/dist/chunk-EP25QJ4N.js +0 -146
  1069. package/dist/chunk-EP25QJ4N.js.map +0 -1
  1070. package/dist/chunk-ET44426Q.js +0 -80
  1071. package/dist/chunk-ET44426Q.js.map +0 -1
  1072. package/dist/chunk-ETEIDY34.js +0 -67
  1073. package/dist/chunk-ETEIDY34.js.map +0 -1
  1074. package/dist/chunk-EU55O4P7.js +0 -76
  1075. package/dist/chunk-EU55O4P7.js.map +0 -1
  1076. package/dist/chunk-F436537E.js +0 -104
  1077. package/dist/chunk-F436537E.js.map +0 -1
  1078. package/dist/chunk-FLBTGNQI.js +0 -86
  1079. package/dist/chunk-FLBTGNQI.js.map +0 -1
  1080. package/dist/chunk-FUT45NFW.js +0 -46
  1081. package/dist/chunk-FUT45NFW.js.map +0 -1
  1082. package/dist/chunk-G3LWNTVZ.js +0 -51
  1083. package/dist/chunk-G3LWNTVZ.js.map +0 -1
  1084. package/dist/chunk-GBJB5WLT.js +0 -58
  1085. package/dist/chunk-GBJB5WLT.js.map +0 -1
  1086. package/dist/chunk-GIEPEFRX.js +0 -110
  1087. package/dist/chunk-GIEPEFRX.js.map +0 -1
  1088. package/dist/chunk-GSO7MISR.js +0 -58
  1089. package/dist/chunk-GSO7MISR.js.map +0 -1
  1090. package/dist/chunk-GUQFYUIC.js +0 -61
  1091. package/dist/chunk-GUQFYUIC.js.map +0 -1
  1092. package/dist/chunk-H3VJMFJQ.js +0 -35
  1093. package/dist/chunk-H3VJMFJQ.js.map +0 -1
  1094. package/dist/chunk-HG4WEERE.js +0 -26
  1095. package/dist/chunk-HG4WEERE.js.map +0 -1
  1096. package/dist/chunk-HGPBGLNP.js +0 -51
  1097. package/dist/chunk-HGPBGLNP.js.map +0 -1
  1098. package/dist/chunk-HQFTW7SF.js +0 -141
  1099. package/dist/chunk-HQFTW7SF.js.map +0 -1
  1100. package/dist/chunk-I7WYM63C.js +0 -170
  1101. package/dist/chunk-I7WYM63C.js.map +0 -1
  1102. package/dist/chunk-IPEYGWA7.js +0 -186
  1103. package/dist/chunk-IPEYGWA7.js.map +0 -1
  1104. package/dist/chunk-JQXLPVWP.js +0 -74
  1105. package/dist/chunk-JQXLPVWP.js.map +0 -1
  1106. package/dist/chunk-K5ARID4S.js +0 -26
  1107. package/dist/chunk-K5ARID4S.js.map +0 -1
  1108. package/dist/chunk-K6RTLPIJ.js +0 -41
  1109. package/dist/chunk-K6RTLPIJ.js.map +0 -1
  1110. package/dist/chunk-KQNKKV2C.js +0 -56
  1111. package/dist/chunk-KQNKKV2C.js.map +0 -1
  1112. package/dist/chunk-KRN4NE4U.js +0 -155
  1113. package/dist/chunk-KRN4NE4U.js.map +0 -1
  1114. package/dist/chunk-L2BI762I.js +0 -82
  1115. package/dist/chunk-L2BI762I.js.map +0 -1
  1116. package/dist/chunk-LEEH63B2.js +0 -56
  1117. package/dist/chunk-LEEH63B2.js.map +0 -1
  1118. package/dist/chunk-LHRWVM3G.js +0 -42
  1119. package/dist/chunk-LHRWVM3G.js.map +0 -1
  1120. package/dist/chunk-LIGWMGXM.js +0 -117
  1121. package/dist/chunk-LIGWMGXM.js.map +0 -1
  1122. package/dist/chunk-LKYSX3QF.js +0 -104
  1123. package/dist/chunk-LKYSX3QF.js.map +0 -1
  1124. package/dist/chunk-MCIFB6VS.js +0 -54
  1125. package/dist/chunk-MCIFB6VS.js.map +0 -1
  1126. package/dist/chunk-MI5CXMZU.js +0 -171
  1127. package/dist/chunk-MI5CXMZU.js.map +0 -1
  1128. package/dist/chunk-NQZYY4LR.js +0 -84
  1129. package/dist/chunk-NQZYY4LR.js.map +0 -1
  1130. package/dist/chunk-O23LKHUR.js +0 -66
  1131. package/dist/chunk-O23LKHUR.js.map +0 -1
  1132. package/dist/chunk-PASI2U2R.js +0 -23
  1133. package/dist/chunk-PASI2U2R.js.map +0 -1
  1134. package/dist/chunk-PPH5NTHV.js +0 -34
  1135. package/dist/chunk-PPH5NTHV.js.map +0 -1
  1136. package/dist/chunk-PR6OZF6D.js +0 -28
  1137. package/dist/chunk-PR6OZF6D.js.map +0 -1
  1138. package/dist/chunk-PWXOXPFT.js +0 -142
  1139. package/dist/chunk-PWXOXPFT.js.map +0 -1
  1140. package/dist/chunk-QB6BNHO3.js +0 -112
  1141. package/dist/chunk-QB6BNHO3.js.map +0 -1
  1142. package/dist/chunk-QJGGTIUN.js +0 -110
  1143. package/dist/chunk-QJGGTIUN.js.map +0 -1
  1144. package/dist/chunk-QSOIJ6J3.js +0 -91
  1145. package/dist/chunk-QSOIJ6J3.js.map +0 -1
  1146. package/dist/chunk-R2PAGRDP.js +0 -152
  1147. package/dist/chunk-R2PAGRDP.js.map +0 -1
  1148. package/dist/chunk-R63ZKLQM.js +0 -45
  1149. package/dist/chunk-R63ZKLQM.js.map +0 -1
  1150. package/dist/chunk-RTYYJPPE.js +0 -77
  1151. package/dist/chunk-RTYYJPPE.js.map +0 -1
  1152. package/dist/chunk-RVOBP7PO.js +0 -116
  1153. package/dist/chunk-RVOBP7PO.js.map +0 -1
  1154. package/dist/chunk-SF6R5VMQ.js +0 -97
  1155. package/dist/chunk-SF6R5VMQ.js.map +0 -1
  1156. package/dist/chunk-SP4CP5HY.js +0 -57
  1157. package/dist/chunk-SP4CP5HY.js.map +0 -1
  1158. package/dist/chunk-SWJ4EUOI.js +0 -30
  1159. package/dist/chunk-SWJ4EUOI.js.map +0 -1
  1160. package/dist/chunk-TK24HQJJ.js +0 -128
  1161. package/dist/chunk-TK24HQJJ.js.map +0 -1
  1162. package/dist/chunk-TNBJ36XJ.js +0 -156
  1163. package/dist/chunk-TNBJ36XJ.js.map +0 -1
  1164. package/dist/chunk-TO3UAT6O.js +0 -221
  1165. package/dist/chunk-TO3UAT6O.js.map +0 -1
  1166. package/dist/chunk-UAYOOTRR.js +0 -77
  1167. package/dist/chunk-UAYOOTRR.js.map +0 -1
  1168. package/dist/chunk-UDTAMHXW.js +0 -55
  1169. package/dist/chunk-UDTAMHXW.js.map +0 -1
  1170. package/dist/chunk-UOXU7NDY.js +0 -120
  1171. package/dist/chunk-UOXU7NDY.js.map +0 -1
  1172. package/dist/chunk-V7OOTVK3.js +0 -106
  1173. package/dist/chunk-V7OOTVK3.js.map +0 -1
  1174. package/dist/chunk-VI5M7KJ2.js +0 -1022
  1175. package/dist/chunk-VI5M7KJ2.js.map +0 -1
  1176. package/dist/chunk-VMMATOPE.js +0 -64
  1177. package/dist/chunk-VMMATOPE.js.map +0 -1
  1178. package/dist/chunk-W2PVSIW3.js +0 -89
  1179. package/dist/chunk-W2PVSIW3.js.map +0 -1
  1180. package/dist/chunk-W3DUDZDU.js +0 -88
  1181. package/dist/chunk-W3DUDZDU.js.map +0 -1
  1182. package/dist/chunk-WKEUU2FU.js +0 -114
  1183. package/dist/chunk-WKEUU2FU.js.map +0 -1
  1184. package/dist/chunk-WKLW7RC6.js +0 -28
  1185. package/dist/chunk-WKLW7RC6.js.map +0 -1
  1186. package/dist/chunk-WSJGZNUH.js +0 -111
  1187. package/dist/chunk-WSJGZNUH.js.map +0 -1
  1188. package/dist/chunk-WVPDQMC2.js +0 -144
  1189. package/dist/chunk-WVPDQMC2.js.map +0 -1
  1190. package/dist/chunk-WWNH5ENT.js +0 -43
  1191. package/dist/chunk-WWNH5ENT.js.map +0 -1
  1192. package/dist/chunk-X5L62PXY.js +0 -112
  1193. package/dist/chunk-X5L62PXY.js.map +0 -1
  1194. package/dist/chunk-XGCV5E6W.js +0 -133
  1195. package/dist/chunk-XGCV5E6W.js.map +0 -1
  1196. package/dist/chunk-XRKIEL5M.js +0 -72
  1197. package/dist/chunk-XRKIEL5M.js.map +0 -1
  1198. package/dist/chunk-XUJYEADU.js +0 -80
  1199. package/dist/chunk-XUJYEADU.js.map +0 -1
  1200. package/dist/chunk-XVYNSIQC.js +0 -116
  1201. package/dist/chunk-XVYNSIQC.js.map +0 -1
  1202. package/dist/chunk-XWTISHXO.js +0 -54
  1203. package/dist/chunk-XWTISHXO.js.map +0 -1
  1204. package/dist/chunk-YOGHS4UU.js +0 -202
  1205. package/dist/chunk-YOGHS4UU.js.map +0 -1
  1206. package/dist/chunk-YRSKXEOD.js +0 -135
  1207. package/dist/chunk-YRSKXEOD.js.map +0 -1
  1208. package/dist/chunk-ZALLCR7X.js +0 -108
  1209. package/dist/chunk-ZALLCR7X.js.map +0 -1
  1210. package/dist/chunk-ZDAOHMCW.js +0 -46
  1211. package/dist/chunk-ZDAOHMCW.js.map +0 -1
  1212. package/dist/chunk-ZESICCKK.js +0 -37
  1213. package/dist/chunk-ZESICCKK.js.map +0 -1
  1214. package/dist/chunk-ZIKFOD6N.js +0 -87
  1215. package/dist/chunk-ZIKFOD6N.js.map +0 -1
  1216. package/dist/chunk-ZJRWCQEN.js +0 -76
  1217. package/dist/chunk-ZJRWCQEN.js.map +0 -1
  1218. package/dist/chunk-ZSRJCIWF.js +0 -24
  1219. package/dist/chunk-ZSRJCIWF.js.map +0 -1
  1220. package/dist/plugin-Atb0VKtr.d.ts +0 -172
  1221. package/dist/slide/index.d.ts +0 -212
  1222. package/dist/slide/plugins/emoji/index.d.ts +0 -29
  1223. package/dist/slide/plugins/math/index.d.ts +0 -13
  1224. package/dist/slide/plugins/mermaid/index.d.ts +0 -55
  1225. package/dist/slide/plugins/shiki/index.d.ts +0 -18
  1226. package/dist/slide-deck/index.d.ts +0 -377
  1227. package/dist/whiteboard/index.d.ts +0 -258
package/CHANGELOG.md CHANGED
@@ -1,17 +1,583 @@
1
1
  # Changelog
2
2
 
3
- All notable changes to `@usetheo/ui` are documented in this file.
3
+ All notable changes to `@theokit/ui` are documented in this file.
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ### Added
11
+
12
+ ### Changed
13
+
14
+ ### Deprecated
15
+
16
+ ### Removed
17
+
18
+ ### Fixed
19
+
20
+ ### Security
21
+
22
+ ## [0.17.0] - 2026-06-22
23
+
24
+ ### Added
25
+ - `TokenUsageChart` gains `maxScale` (fix the y-axis maximum so multiple charts
26
+ share a scale — bars exceeding it clamp to 100% while the tooltip + a11y table
27
+ keep the true number) and `splitSeries` (render input vs output as adjacent
28
+ grouped bars instead of stacked). Plus pure `toUsageMetrics(points)` (totals +
29
+ peak per-period total) and `splitUsagePoints(points)` (transpose into parallel
30
+ `labels`/`input`/`output` series) helpers, exported from
31
+ `@theokit/ui/token-usage-chart` and the root barrel. (M5-7)
32
+ - `toAgentStreamItems({ history, live }, { classifyTool? })` — a pure, order-aware
33
+ builder that merges completed conversation `UIMessage`s with live `AgentEvent`s
34
+ into the `AgentStreamItem[]` that `<AgentStream>` renders: history becomes
35
+ `message` items, live activity becomes `tool-call` items (status mapped from
36
+ `AgentEventStatus`), history-then-live. `classifyTool` customizes each
37
+ tool-call item per event (presentational fields only — `kind`/`id`/`status`
38
+ stay authoritative). Ships `mapAgentEventStatus` + the now-exported
39
+ `MessageStreamItem`/`ToolCallStreamItem` item types. (M5-6)
40
+ - `useStickToBottom` — auto-scrolls a scroll container to the bottom as content
41
+ grows, but only while the user is pinned near the bottom (a `threshold` guard),
42
+ so it never yanks the view away while they read history. Streamed content is
43
+ detected with a `MutationObserver` (a scroll container's box does not resize as
44
+ content grows inside it), with a `ResizeObserver` on top for box-size changes
45
+ like images finishing load. Encapsulates the Radix
46
+ `[data-radix-scroll-area-viewport]` selector: attach `scrollRef` to a
47
+ `<ScrollArea>` and the hook resolves the real scrollable node internally.
48
+ Ships the pure `isNearBottom` helper too. Exported from `@theokit/ui/scroll-area`
49
+ and the root barrel. (M5-5)
50
+ - `@theokit/ui/sdk-tools-adapters` — pure converters from `@theokit/sdk-tools`
51
+ tool results into theo-ui rich-primitive props: `adaptGitDiffResult`
52
+ (parses a unified diff into `DiffViewer` hunks), `adaptReadFileResult`
53
+ (`CodeBlock`), `adaptShellResult` (`TerminalPanel` lines), `adaptListDirResult`
54
+ (`DataTable` rows), `adaptApplyPatchResult` (`CreatedFilesCard` files), plus the
55
+ reusable `parseUnifiedDiff`. Each returns `null` on an error/unparseable result
56
+ so a tool card keeps its `ToolCallPart` fallback. The adapters are pure and
57
+ import nothing from `@theokit/sdk-tools` at runtime — consumers gain zero new
58
+ runtime dependency; a dev-only contract test imports the real factories and
59
+ runs their handlers to guard against result-shape drift. (M5-4)
60
+ - `AgentToolRenderer` — an overridable tool-renderer registry for the chat
61
+ surface. A tool invocation is dispatched to a rich renderer (diff, terminal,
62
+ code, created-files, data-table) by a classification function, falling back to
63
+ `ToolCallPart` for anything unmapped. `<ChatMessage>` now accepts
64
+ `toolRenderers` (shallow-merged over the default) and `classifyTool` props
65
+ alongside the existing `partRenderers` / `dataRenderers`; `partRenderers.tool`
66
+ still takes priority. Exposed via `@theokit/ui/agent-tool-renderer` and the
67
+ root barrel: `AgentToolRenderer`, `defaultToolRegistry`, `defaultClassifyTool`,
68
+ `resolveToolRenderer`, and the `ToolRenderer` / `ToolRendererKind` /
69
+ `ToolRendererRegistry` / `ClassifyTool` types. `ToolCallPart` now lives in this
70
+ module (the fallback tool renderer) and is re-exported unchanged. Behavior
71
+ note: with the default registry, a tool whose name matches a known kind (e.g.
72
+ `git_diff`, `shell`, `read_file`) and whose state is `output-available` now
73
+ renders its rich surface instead of the generic `ToolCallPart`; unmapped tools
74
+ and every non-`output-available` state (streaming, awaiting-approval, error,
75
+ denied) are unchanged and keep using `ToolCallPart`. Pass `classifyTool` /
76
+ `toolRenderers` to override. (M5-3)
77
+
78
+ ### Changed
79
+ - Public copy aligned to honest, ecosystem-fit framing across `README.md`,
80
+ `PITCH.md`, and `CLAUDE.md`: removed the unsubstantiated multi-framework
81
+ compatibility claims (Next.js / Vite / Remix / Astro / Tanstack "CI-verified")
82
+ and the false "peer-deps on React only" line. Reframed as a standard React +
83
+ Tailwind package that pairs with TheoKit or runs standalone, with the RSC
84
+ fix described as "Server-Component safe" rather than a marketed Next.js
85
+ target. Counts corrected to 153 components / 1,513 tests / 151 stories and the
86
+ stale `@theokit/ui@next` install snippets updated to `@theokit/ui` (now
87
+ published to `latest`).
88
+ - README refreshed: component count corrected to 153, the v0.16.0 shadcn-v4
89
+ features documented (`data-slot`, `"use client"`/RSC, per-subpath types), and
90
+ the inaccurate "peer-deps on React only" line corrected (React is the only
91
+ required peer; Radix/CVA/cmdk/lucide ship as dependencies). (#13)
92
+
93
+ ### Deprecated
94
+
95
+ ### Removed
96
+ - `PITCH.md` (landing-page marketing copy) removed from the repo. Public copy
97
+ now lives in `README.md` + the docs site; the Voice/Tone scope in `CLAUDE.md`
98
+ and `rules/public-copy.md` and the `public-copy-lint` hook were updated to
99
+ drop the `PITCH.md` reference.
100
+
101
+ ### Fixed
102
+ - **Visual-regression gate tolerates cross-environment antialiasing.** The
103
+ Playwright `toHaveScreenshot` config used `threshold: 0.001` + `maxDiffPixels: 0`
104
+ (zero tolerance), so the 101 snapshots only ever matched the exact machine that
105
+ generated them — they failed in CI with 488-1882 antialiased pixels differing
106
+ (ratio ≤0.2%, no real regression). Raised to Playwright's antialiasing-robust
107
+ default `threshold: 0.2` with a `maxDiffPixels: 200` safety net that still
108
+ fails on a genuine visual regression (thousands+ of pixels). (Internal CI
109
+ hygiene.) (#15)
110
+ - **Bundle-size gate scoped to deterministic artifacts.** `dist/components.css`
111
+ is a Tailwind v4 `@source`-scanned generated file whose exact byte size is
112
+ environment-sensitive (~470KB locally vs ~104KB on CI runners — both valid
113
+ output, differing by Tailwind's v3/v4 `@import` resolution across pnpm
114
+ layouts). It is removed from the byte-exact ±5% bundle gate (which now stays
115
+ focused on the deterministic shipped JS/dts bundles) and remains bounded by
116
+ the environment-robust `dogfood:precompiled-utilities` gate. (Internal CI
117
+ hygiene.) (#15)
118
+ - **`shadcn add chat-message` no longer references a moved file.** M5-3 moved
119
+ `ToolCallPart` out of `chat-message/parts/` into the new `agent-tool-renderer`
120
+ component, but the `chat-message` registry descriptor still listed the old
121
+ `parts/tool-call-part.tsx` path — so the shadcn-compatible copy-paste path
122
+ was broken. `agent-tool-renderer` is now its own first-class registry item
123
+ (with story + test) and `chat-message` declares it as a `registryDependency`.
124
+ (#15)
125
+ - **Agent-stream barrel-wiring test no longer flakes under suite load.** The
126
+ `await import("./index.js")` smoke test occasionally exceeded vitest's 5s
127
+ default (observed 5078ms) under worker-pool contention on cold runners. The
128
+ global `testTimeout` is raised to 20s — a hard ceiling that still fails a
129
+ genuinely hung test. (#15)
130
+ - **`quality:gates` typecheck no longer blocks on dev-only playground demos.**
131
+ `playground/**` self-imports the package's own built subpaths
132
+ (`@theokit/ui/slide`, `/slide-deck`, `/slide/plugins/*`), which resolve to
133
+ `dist/*.d.ts` — absent when `pnpm typecheck` runs before `pnpm build`, so the
134
+ gate had failed (TS2307) on every release since 0.14.0. Playground is
135
+ non-shipped demo code exercised via Ladle, so it is excluded from the gate
136
+ typecheck instead of blocking releases. (Internal CI hygiene.) (#15)
137
+ - **Release build no longer depends on a pnpm-specific `.bin` shim.**
138
+ `scripts/build-precompiled-css.ts` resolved the Tailwind v4 CLI at a nested
139
+ `@tailwindcss/cli/node_modules/.bin/tailwindcss` path that pnpm only
140
+ materializes in some hoist layouts — absent under CI's `--frozen-lockfile`
141
+ install, so `pnpm build` failed and the tagged release never published. Now
142
+ resolves the package's own declared `bin` entry from its `package.json` and
143
+ runs it via `node`, independent of any `.bin` shim. (#14)
144
+ - **`@theokit/sdk-tools` file-link devDependency removed.** The M5-4 contract
145
+ test had pulled in `@theokit/sdk-tools: file:../theokit-sdk/...`, which does
146
+ not resolve under `pnpm install --frozen-lockfile` in CI (no sibling repo) and
147
+ blocked the publish. The 25 adapter unit tests validate against the documented
148
+ `{ ok: true, ... }` result shapes; the factory result contract is owned by the
149
+ SDK repo. (#14)
150
+ - **Status indicators now render their colors under the v3 Tailwind preset.**
151
+ `StatusIndicator` uses `bg-status-online` / `-offline` / `-degraded` / `-info`,
152
+ but the `status` color palette was never added to `tailwind-preset.ts` (only
153
+ the v4 `@theme` declared `--color-status-*`), so those utilities resolved to
154
+ transparent in the v3 build path (e.g. the Ladle dev server) — the dots were
155
+ invisible. Added the `status` palette to the preset, mapped to the existing
156
+ `--status-*` tokens. The npm/v4 build was already correct. Registry
157
+ `tailwind-preset.json` regenerated.
158
+ - **npm publish CI restored.** The `release.yml` (and `deploy-ladle.yml`) GitHub
159
+ Actions workflow failed on every tagged release since v0.14.1 because
160
+ `pnpm/action-setup@v4` pinned `version: 9.15.0`, conflicting with
161
+ `package.json`'s `packageManager: pnpm@10.32.1`
162
+ (`ERR_PNPM_BAD_PM_VERSION`). Removed the hardcoded version so the package
163
+ actually publishes to npm again. (#13)
164
+
165
+ ### Security
166
+
167
+ ## [0.17.0] - 2026-06-22
168
+
169
+ ### Added
170
+ - `TokenUsageChart` gains `maxScale` (fix the y-axis maximum so multiple charts
171
+ share a scale — bars exceeding it clamp to 100% while the tooltip + a11y table
172
+ keep the true number) and `splitSeries` (render input vs output as adjacent
173
+ grouped bars instead of stacked). Plus pure `toUsageMetrics(points)` (totals +
174
+ peak per-period total) and `splitUsagePoints(points)` (transpose into parallel
175
+ `labels`/`input`/`output` series) helpers, exported from
176
+ `@theokit/ui/token-usage-chart` and the root barrel. (M5-7)
177
+ - `toAgentStreamItems({ history, live }, { classifyTool? })` — a pure, order-aware
178
+ builder that merges completed conversation `UIMessage`s with live `AgentEvent`s
179
+ into the `AgentStreamItem[]` that `<AgentStream>` renders: history becomes
180
+ `message` items, live activity becomes `tool-call` items (status mapped from
181
+ `AgentEventStatus`), history-then-live. `classifyTool` customizes each
182
+ tool-call item per event (presentational fields only — `kind`/`id`/`status`
183
+ stay authoritative). Ships `mapAgentEventStatus` + the now-exported
184
+ `MessageStreamItem`/`ToolCallStreamItem` item types. (M5-6)
185
+ - `useStickToBottom` — auto-scrolls a scroll container to the bottom as content
186
+ grows, but only while the user is pinned near the bottom (a `threshold` guard),
187
+ so it never yanks the view away while they read history. Streamed content is
188
+ detected with a `MutationObserver` (a scroll container's box does not resize as
189
+ content grows inside it), with a `ResizeObserver` on top for box-size changes
190
+ like images finishing load. Encapsulates the Radix
191
+ `[data-radix-scroll-area-viewport]` selector: attach `scrollRef` to a
192
+ `<ScrollArea>` and the hook resolves the real scrollable node internally.
193
+ Ships the pure `isNearBottom` helper too. Exported from `@theokit/ui/scroll-area`
194
+ and the root barrel. (M5-5)
195
+ - `@theokit/ui/sdk-tools-adapters` — pure converters from `@theokit/sdk-tools`
196
+ tool results into theo-ui rich-primitive props: `adaptGitDiffResult`
197
+ (parses a unified diff into `DiffViewer` hunks), `adaptReadFileResult`
198
+ (`CodeBlock`), `adaptShellResult` (`TerminalPanel` lines), `adaptListDirResult`
199
+ (`DataTable` rows), `adaptApplyPatchResult` (`CreatedFilesCard` files), plus the
200
+ reusable `parseUnifiedDiff`. Each returns `null` on an error/unparseable result
201
+ so a tool card keeps its `ToolCallPart` fallback. The adapters are pure and
202
+ import nothing from `@theokit/sdk-tools` at runtime — consumers gain zero new
203
+ runtime dependency; a dev-only contract test imports the real factories and
204
+ runs their handlers to guard against result-shape drift. (M5-4)
205
+ - `AgentToolRenderer` — an overridable tool-renderer registry for the chat
206
+ surface. A tool invocation is dispatched to a rich renderer (diff, terminal,
207
+ code, created-files, data-table) by a classification function, falling back to
208
+ `ToolCallPart` for anything unmapped. `<ChatMessage>` now accepts
209
+ `toolRenderers` (shallow-merged over the default) and `classifyTool` props
210
+ alongside the existing `partRenderers` / `dataRenderers`; `partRenderers.tool`
211
+ still takes priority. Exposed via `@theokit/ui/agent-tool-renderer` and the
212
+ root barrel: `AgentToolRenderer`, `defaultToolRegistry`, `defaultClassifyTool`,
213
+ `resolveToolRenderer`, and the `ToolRenderer` / `ToolRendererKind` /
214
+ `ToolRendererRegistry` / `ClassifyTool` types. `ToolCallPart` now lives in this
215
+ module (the fallback tool renderer) and is re-exported unchanged. Behavior
216
+ note: with the default registry, a tool whose name matches a known kind (e.g.
217
+ `git_diff`, `shell`, `read_file`) and whose state is `output-available` now
218
+ renders its rich surface instead of the generic `ToolCallPart`; unmapped tools
219
+ and every non-`output-available` state (streaming, awaiting-approval, error,
220
+ denied) are unchanged and keep using `ToolCallPart`. Pass `classifyTool` /
221
+ `toolRenderers` to override. (M5-3)
222
+
223
+ ### Changed
224
+ - Public copy aligned to honest, ecosystem-fit framing across `README.md`,
225
+ `PITCH.md`, and `CLAUDE.md`: removed the unsubstantiated multi-framework
226
+ compatibility claims (Next.js / Vite / Remix / Astro / Tanstack "CI-verified")
227
+ and the false "peer-deps on React only" line. Reframed as a standard React +
228
+ Tailwind package that pairs with TheoKit or runs standalone, with the RSC
229
+ fix described as "Server-Component safe" rather than a marketed Next.js
230
+ target. Counts corrected to 153 components / 1,513 tests / 151 stories and the
231
+ stale `@theokit/ui@next` install snippets updated to `@theokit/ui` (now
232
+ published to `latest`).
233
+ - README refreshed: component count corrected to 153, the v0.16.0 shadcn-v4
234
+ features documented (`data-slot`, `"use client"`/RSC, per-subpath types), and
235
+ the inaccurate "peer-deps on React only" line corrected (React is the only
236
+ required peer; Radix/CVA/cmdk/lucide ship as dependencies). (#13)
237
+
238
+ ### Deprecated
239
+
240
+ ### Removed
241
+ - `PITCH.md` (landing-page marketing copy) removed from the repo. Public copy
242
+ now lives in `README.md` + the docs site; the Voice/Tone scope in `CLAUDE.md`
243
+ and `rules/public-copy.md` and the `public-copy-lint` hook were updated to
244
+ drop the `PITCH.md` reference.
245
+
246
+ ### Fixed
247
+ - **Status indicators now render their colors under the v3 Tailwind preset.**
248
+ `StatusIndicator` uses `bg-status-online` / `-offline` / `-degraded` / `-info`,
249
+ but the `status` color palette was never added to `tailwind-preset.ts` (only
250
+ the v4 `@theme` declared `--color-status-*`), so those utilities resolved to
251
+ transparent in the v3 build path (e.g. the Ladle dev server) — the dots were
252
+ invisible. Added the `status` palette to the preset, mapped to the existing
253
+ `--status-*` tokens. The npm/v4 build was already correct. Registry
254
+ `tailwind-preset.json` regenerated.
255
+ - **npm publish CI restored.** The `release.yml` (and `deploy-ladle.yml`) GitHub
256
+ Actions workflow failed on every tagged release since v0.14.1 because
257
+ `pnpm/action-setup@v4` pinned `version: 9.15.0`, conflicting with
258
+ `package.json`'s `packageManager: pnpm@10.32.1`
259
+ (`ERR_PNPM_BAD_PM_VERSION`). Removed the hardcoded version so the package
260
+ actually publishes to npm again. (#13)
261
+
262
+ ### Security
263
+
264
+ ## [0.16.0] - 2026-06-18
265
+
266
+ ### Added
267
+ - **`data-slot` attribute on every component (shadcn v4 convention).** All 135
268
+ components now emit `data-slot="<name>"` on their root element (compound
269
+ sub-parts carry `data-slot="<name>-<part>"`), so consumers can target and
270
+ override styles via stable attribute selectors instead of relying on Tailwind
271
+ class order. New quality gate `validateDataSlot` enforces presence on every
272
+ component. (community-standard-componentization, T2.1)
273
+ - **Per-subpath TypeScript declarations.** Importing `@theokit/ui/button` now
274
+ resolves an isolated `Button`-only `.d.ts` instead of the entire barrel's
275
+ type surface, so type-checking a single subpath no longer loads all 135
276
+ components' types. Declarations are emitted by `tsc -p tsconfig.dts.json`
277
+ (tsup's bundler OOMs at 130+ entries). (community-standard-componentization, T3.1)
278
+ - **`data-variant` / `data-size` on cva components (shadcn v4).** The 9
279
+ variant-driven components (Button, Badge, Avatar, Select, Switch, Input,
280
+ Textarea, Checkbox, Toast) now emit `data-variant`/`data-size` alongside
281
+ `data-slot`, so consumers can style by attribute (e.g.
282
+ `[data-slot=button][data-variant=secondary]`). The `*Variants` helpers remain
283
+ exported for class reuse. (community-standard-componentization, T5.1)
284
+
285
+ - `"use client"` directive added to the 45 client component source files
286
+ (anything using React hooks/context), matching shadcn/ui conventions.
287
+ - Post-build step `scripts/inject-use-client.ts` re-injects the directive into
288
+ the output entry shims + component chunks (esbuild strips it during
289
+ `splitting`). Wired into the `build` script.
290
+ - New quality gate `validateUseClientDirective` — fails the build if a client
291
+ component ships without the directive in `dist/`. (T1.2)
292
+
293
+
294
+ ### Changed
295
+ - Tailwind v4 devDep alignment + v3-legacy removal (Phase 4) is deferred to a
296
+ dedicated `tailwind-v4-migration` cycle — see ADR 0001. The shipped
297
+ `dist/components.css` is already built with Tailwind v4; the deferred work is
298
+ the dev/test version label + the v3-legacy compat artifacts.
299
+ - Bundle baseline updated for the new per-subpath declaration strategy: the
300
+ barrel `dist/index.d.ts` is now a thin re-export (15 KB vs the old 206 KB
301
+ inlined monolith) because per-component types live in their own files under
302
+ `dist/components/`. Engine `.d.ts` moved from `dist/<engine>/` to
303
+ `dist/components/.../`. (community-standard-componentization, T3.1)
304
+ - Bundle baseline for `dist/components.css` corrected to the full `@source`
305
+ scan size (the prior baseline was set in an environment where Tailwind v4's
306
+ `@source` glob under-scanned the library tree — a known pnpm-symlink
307
+ fragility documented in `scripts/build-precompiled-css.ts`). The
308
+ `data-slot` / `"use client"` work is bundle-neutral — verified empirically
309
+ (removing `data-slot` leaves `components.css` byte-identical). `dist/slide`
310
+ and `dist/slide-deck` grew by a few bytes from the directive + data-slot.
311
+ NOTE: `components.css` size is `@source`-environment-sensitive; CI should
312
+ confirm the full-scan value reproduces in its environment.
313
+
314
+
315
+ ### Fixed
316
+ - **`@theokit/ui` now works in Next.js App Router (React Server Components).**
317
+ The `"use client"` directive is preserved in the published build so importing
318
+ a client component (anything using hooks) no longer throws *"useState only
319
+ works in a Client Component"*. Previously esbuild stripped the directive under
320
+ code-splitting, so every npm-installed client component was broken in RSC
321
+ projects. Both consumption paths are fixed — subpath (`@theokit/ui/agent-event`)
322
+ and barrel (`@theokit/ui`). (community-standard-componentization, T1.1)
323
+
324
+ ## [0.15.0] - 2026-06-16
325
+
326
+ ### Added
327
+ - **Prompt composites — "ask the user" cards for agent surfaces, modeled on
328
+ Claude Code's question UX.** Four self-contained composites, each rendering
329
+ one question at a time (sequencing across questions is the consumer's
330
+ responsibility — there is no built-in flow orchestrator):
331
+ - **`ChoicePrompt`** — single-select (radio). Header chip, options with
332
+ label + description, `1`..`9` number-key shortcuts (terminal-style
333
+ selection), injectable free-text "Other" option, and a side-by-side preview
334
+ pane when options carry preview content. Emits `onConfirm` with the chosen
335
+ value (plus the typed Other text when relevant).
336
+ - **`MultiSelectPrompt`** — multi-select (checkbox). Same surface as
337
+ `ChoicePrompt` with number-key toggles, an Other row, a `minSelected` gate,
338
+ and a stacked preview pane for every selected option. Emits `onConfirm`
339
+ with the value array.
340
+ - **`TextPrompt`** — free-text. Single-line `Input` or multi-line `Textarea`
341
+ with an optional `required` gate. Emits `onConfirm` with the typed text.
342
+ - **`ConfirmPrompt`** — binary yes/no. Optional `destructive` variant that
343
+ tones the confirm action red and exposes the card as an `alertdialog`.
344
+ Controlled or uncontrolled. Ships a `prompt` registry lib item carrying the
345
+ shared `PromptOption` type + helpers consumed by the choice composites.
346
+
347
+ ## [0.14.4] - 2026-06-13
348
+
349
+ ### Added
350
+
351
+ - `pnpm dev:pack` script for local cross-repo consumption — generates tarball at `dist/theokit-ui-{version}.tgz` that installs without dual-React symlink issues. Documented in CONTRIBUTING.md.
352
+
353
+ ## [0.14.3] - 2026-06-09
354
+
355
+ **Patch — PageShell content spacing standardization.**
356
+
357
+ ### Fixed
358
+ - **`PageShell` content slot now renders direct children with `flex flex-col gap-6`.**
359
+ Previously the content `<div>` had no internal spacing, so pages with 2+
360
+ top-level children (e.g. dashboard `/memory` landing with 5 sibling
361
+ sections: KPI strip + trend grid + getting-started card + Explore
362
+ heading + Explore grid) rendered them flush against each other. The new
363
+ wrapper matches the outer `<main className="flex flex-col gap-6">` gap,
364
+ so spacing is uniform across the page. Pages that already wrap content
365
+ in a single grid or div are unaffected — `gap-6` only applies between
366
+ sibling elements. Equivalent to manually wrapping every page's content
367
+ in `<div className="flex flex-col gap-6">`, but enforced at the
368
+ composite level so every consumer benefits without per-page churn.
369
+
370
+ ## [0.14.2] - 2026-06-09
371
+
372
+ **Patch — build-pipeline correctness. Bundles the 0.14.1 color migration
373
+ plus two FAANG-grade fixes that were required to ship a clean build to
374
+ npm. 0.14.1 was tagged in git but never published to the npm registry;
375
+ 0.14.2 is the first published artifact carrying the violet unification.**
376
+
377
+ ### Added
378
+ - **`src/lib/env.ts` — typed environment helpers (`isDev()`, `isProd()`).**
379
+ Centralizes `process.env.NODE_ENV` reads through a single typed accessor
380
+ that uses `globalThis.process?.env?.NODE_ENV`. Works in browser via
381
+ bundler `define` injection (Vite/Webpack/esbuild), in Node (SSR/tests),
382
+ and defensively in browser-without-bundler-injection (returns
383
+ `isDev() === true` to err on the side of more diagnostics). This is the
384
+ same pattern React, Radix, and Stripe Elements use — funnel every
385
+ `NODE_ENV` read through a typed helper so consumers' bundlers can
386
+ dead-code-eliminate dev-only branches in their production build.
387
+
388
+ ### Changed
389
+ - **Six components migrated from raw `process.env.NODE_ENV` to `isDev()`.**
390
+ `theme-provider`, `status-dot`, `timestamp`, `env-var-editor`,
391
+ `thinking-level-selector`, `build-log-stream`. No behavior change in
392
+ consumer production builds — only a typecheck-cleanliness and
393
+ build-stability improvement. The previous direct `process.env` reads
394
+ triggered TypeScript `TS2591` failures unless `@types/node` was listed
395
+ in `tsconfig.json#compilerOptions.types`. Adding `"node"` there is the
396
+ workaround we explicitly rejected: it pollutes the ambient global
397
+ namespace of a UI library with Node-only APIs (`Buffer`, `fs`, `path`,
398
+ `Stream`) and surfaces them in author autocomplete inside React
399
+ components. The typed helper is the right pattern.
400
+
401
+ ### Fixed
402
+ - **`src/vite-plugin.test.ts:76` — implicit `any` on `.map` callback parameter.**
403
+ Annotated as `(c: unknown[])`. Pre-existing TypeScript strictness
404
+ violation unrelated to the violet migration, but the typecheck job in
405
+ `prepublishOnly`'s `quality:gates` must be clean for publish to proceed.
406
+
407
+ ## [0.14.1] - 2026-06-09 — NOT PUBLISHED
408
+
409
+ Tagged in git as `v0.14.1` but never published to the npm registry. The
410
+ build pipeline surfaced two pre-existing TypeScript errors (six raw
411
+ `process.env.NODE_ENV` reads + one implicit-`any` test assertion) that
412
+ needed to be fixed before publish. The color migration carried out by
413
+ this commit is bundled into `0.14.2` (see above) along with those fixes.
414
+
415
+ **Patch (token value change only — full backward-compat preserved).**
416
+
417
+ ### Changed
418
+ - **Theo violet primary unified to `#A855F7` electric violet**. The Violet Forge theme's `--primary` (and matching `--ring`) moved from `#7C3AED` (`oklch(0.542 0.245 293)`) to `#A855F7` (`oklch(0.628 0.225 296)`) — same family, higher chroma at higher lightness, calmer execution without cyberpunk halos. Decision based on cross-surface unification (marketing + cloud/dashboard share one cor): the new value reads as production-grade premium and works consistently across light + dark surfaces. Burnt sienna accent `#C96442` is preserved (warmth complement unchanged). `--primary-deep` and `--primary-glow` continue to derive algorithmically via OKLCH relative-color syntax — no manual override needed. Files touched: `src/styles/tokens.css` (light + dark `--primary` and `--ring`), `src/themes/violet-forge.ts` (light + dark `primary` and `ring`), `src/components/primitives/slide/themes/violet-forge.css` (`--theo-slide-accent`), `src/components/primitives/whiteboard/whiteboard.stories.tsx` (stroke demo), `src/themes/color.ts` (JSDoc examples refreshed). Tests in `src/themes/color.test.ts` intentionally left unchanged — they test the `hex()` function with `#7C3AED` as a static example, decoupled from brand color choice. Consumers (theo-website, theo-cloud/dashboard, theokit framework) pick up the new color automatically on next install/rebuild via `@theokit/ui/preset.css`.
419
+
420
+ ## [0.14.0] - 2026-06-03
421
+
422
+ **Minor (additive — full backward-compat preserved via legacy helpers).**
423
+
424
+ Community best practices alignment cohort. Migrates `@theokit/ui` from HSL split to OKLCH as the canonical color format, introduces status semantic tokens, two new composites (StatusIndicator + MetricCard), a lint rule banning literal Tailwind color classes in components, `prefers-color-scheme` auto-detect, forced-colors (Windows High Contrast Mode) support, and a Playwright visual regression baseline. All 6 ADRs (0004-0009), full migration guide, and 5 new test files shipped. WCAG AA preserved across 10 themes × 2 modes. `classic-paper` rebalanced to visibly warm cream (per Vintage Paper + Anthropic Claude UI references) for reduced vision fatigue on long agent sessions.
425
+
426
+ See [docs/migration/hsl-to-oklch.md](docs/migration/hsl-to-oklch.md) for the full upgrade guide.
427
+
428
+ ### Added — Community Best Practices Alignment (2026-06-03)
429
+
430
+ - **Status semantic token group** (ADR-0007). New `ColorScale` keys
431
+ `--status-online`, `--status-offline`, `--status-degraded`, `--status-info`
432
+ plus foreground companions — 8 keys × 11 themes. Separates operational state
433
+ (gateway alive/dead/slow/info) from action-result (success/destructive/warning/info).
434
+ - **`StatusIndicator` composite** consuming the status group. API:
435
+ `<StatusIndicator status="online" label="Connected" pulse?>`.
436
+ - **`MetricCard` composite** for dashboard tiles. API:
437
+ `<MetricCard title value delta={{value,trend}} hint? icon? invertTrend? />`.
438
+ `invertTrend` flips trend semantics for cost/churn/latency metrics (EC-17).
439
+ - **`respectSystemMode` prop** on `<ThemeProvider>` (default `true`, ADR-0009).
440
+ Reads `(prefers-color-scheme: dark)` on hydration and subscribes to OS changes.
441
+ User-driven `setMode()` overrides the system signal. `matchMedia` listener
442
+ cleanup on unmount (EC-12).
443
+ - **`forced-colors` media query** in `tokens.css` (ADR-0008). Maps semantic
444
+ tokens to system colors (Canvas, CanvasText, Highlight, ...) for Windows
445
+ High Contrast Mode. WCAG 2.2 SC 1.4.1/1.4.3.
446
+ - **Container query sizes** (`--container-3xs` through `--container-7xl`)
447
+ declared in `tokens-v4.css` for Tailwind v4 `@container` variants.
448
+ - **Algorithmic tonal derivations** for `--primary-deep`, `--primary-glow`,
449
+ `--accent-deep` via OKLCH relative-color syntax with `max()`/`min()`
450
+ anti-overflow clamps (ADR-0006, EC-7).
451
+ - **Lint rule scanner** `scripts/lib/literal-color-scanner.ts` blocks literal
452
+ Tailwind color classes in `src/components/**/*.tsx`. Wired into
453
+ `pnpm quality:structure` (ADR-0004). 14 unit tests.
454
+ - **Valibot theme schema** `src/themes/schema.ts` (D5 revised — Valibot
455
+ ~1.5KB gzipped vs Zod ~12KB).
456
+ - **OKLCH `color-value-pattern.ts`** extracted from `theme-provider.tsx`.
457
+ Accepts plain OKLCH, relative-color syntax (EC-5), HSL split, hex, var().
458
+
459
+ ### Changed — Community Best Practices Alignment (2026-06-03)
460
+
461
+ - **All 11 built-in themes migrated from HSL split to OKLCH** (ADR-0005).
462
+ 638 values converted via `scripts/migrate-themes-to-oklch.ts`. Round-trip
463
+ delta ~0.001 L per value (visually equivalent, < 0.5% pixel diff).
464
+ Legacy HSL split format still accepted by the runtime validator.
465
+ - **`tokens-v4.css` aliases** drop `hsl()` wrapper —
466
+ `--color-primary: var(--primary)` direct.
467
+ - **`tokens.css` shadows + texture utilities** use
468
+ `color-mix(in oklch, var(--x) N%, transparent)` for alpha composition.
469
+ - **`hex()` and `rgb()` helpers** now return `oklch(L C H)` strings (T2.6).
470
+ - **`gateway-status-indicator`, `run-status-pill`, `update-banner`,
471
+ `stability-bundle-viewer`** swept of 12 literal Tailwind color classes
472
+ → semantic tokens. Closes hidden theme-switching bug.
473
+ - **`primary-deep` / `primary-glow` / `accent-deep`** are now `optional`
474
+ in `ColorScale`. CSS auto-derives via `oklch(from ...)` when omitted.
475
+ - **`validateThemeContrast`** accepts both HSL split and OKLCH input.
476
+
477
+ ### Deprecated — Community Best Practices Alignment
478
+
479
+ - **`hexToHsl(input)`** and **`rgbToHslLegacy(r, g, b)`** — use `hex()` /
480
+ `rgb()` (OKLCH output) instead. Removal scheduled for next major.
481
+
482
+ ## [0.13.0] - 2026-05-29
483
+
484
+ **Minor (additive only — zero breaking changes).**
485
+
486
+ Seven new components shipped as Phase 1 of the `theokit-ui-parity` plan
487
+ (`.claude/knowledge-base/plans/theokit-ui-parity-plan.md` v1.1). All seven
488
+ mirror OpenClaw Control UI patterns the framework lacked, designed to be
489
+ composable into any theokit app via `@theokit/ui` barrel.
490
+
491
+ ### Added — Phase 2 component
492
+
493
+ - **`<ChannelCard>`** (primitive, `agent/`) — inbound gateway connection
494
+ surface (Telegram, Discord, Slack, WhatsApp, Webhook, MCP). 4 statuses
495
+ (`disconnected | connecting | connected | error`) with the toggle button
496
+ reflecting the current state: `connected` shows "Disconnect", others show
497
+ "Connect", `connecting` keeps the button disabled (transient state guard).
498
+ Closed `ChannelPlatform` enum prevents silent typos at the backend
499
+ boundary. 7 Vitest tests including vitest-axe. Ladle story with 5
500
+ variants (Connected/Disconnected/Connecting/ErrorState/MCP). Consumed by
501
+ the dogfood-app `/channels` page end-to-end against the
502
+ `server/routes/channels.ts` registry.
503
+
504
+ ### Added — Phase 1 components (44/44 Vitest GREEN)
505
+
506
+ - **`<ThinkingLevelSelector>`** (primitive, `agent/`) — multi-state combobox
507
+ for LLM reasoning budget. Mirrors OpenClaw thinking selector. Values:
508
+ `"inherited" | "off" | "minimal" | "low" | "medium" | "high" | "xhigh"`.
509
+ - **`<RunStatusPill>`** (primitive, `agent/`) — compact status indicator
510
+ for Run/Task lifecycle. 6 states mirror SDK `Task` enum (D362):
511
+ `queued | in_progress | finished | error | cancelled | interrupted`.
512
+ - **`<BranchIndicator>`** (primitive, `agent/`) — small "×N" pill that
513
+ shows when a run was retried/branched. Returns `null` for `< 2` or
514
+ non-integer (EC-10 guard).
515
+ - **`<GatewayStatusIndicator>`** (primitive, `infra/`) — live
516
+ connection-status dot. 4 statuses (online/offline/degraded/reconnecting)
517
+ × 2 variants (compact/labeled) + optional latency text.
518
+ - **`<UpdateBanner>`** (primitive, `infra/`) — top-of-app alert for newer
519
+ version. Dismiss persistence is consumer's responsibility (EC-16).
520
+ - **`<ExportChatDialog>`** (primitive, `agent/`) — modal exporting chat in
521
+ `markdown | json | jsonl | sharegpt`. Async-aware (disables buttons
522
+ during pending export).
523
+ - **`<StabilityBundleViewer>`** (composite, `infra/`) — crash bundle JSON
524
+ inspector. Sections collapse independently. EC-9 absorbed: handles
525
+ missing optional sections gracefully.
526
+
527
+ ### Added — Phase 0 tooling
528
+
529
+ - **`scripts/inventory-components.mjs`** — walks
530
+ `src/components/{primitives,composites}/<name>/` producing
531
+ `component-inventory.json`. CI drift-gate seed.
532
+ - **`scripts/generate-missing-stories.mjs`** — gerador + CI check mode.
533
+ EC-5/D12 absorbed: ships `kebabToPascal(name)` helper with 9 Vitest
534
+ cases + match-confirmation via `export\s+...` regex.
535
+ - **`wrangler.toml` + `.github/workflows/deploy-ladle.yml`** —
536
+ Cloudflare Pages deploy config for the Ladle component catalog.
537
+ Workflow contains `pnpm ladle:build` step BEFORE deploy (EC-14).
538
+ - New package scripts: `inventory`, `stories:check`, `stories:generate`,
539
+ `stories:test`.
540
+
541
+ ### Changed — Build pipeline hardening
542
+
543
+ - **`scripts/regen-subpath-exports.ts`** now delegates to `sync-exports.ts`
544
+ for the final write. Previously the post-build step sorted ALL exports
545
+ alphabetically while `sync-exports.buildExports` produced the canonical
546
+ `BASE → sorted components → ISOLATED` order — meaning `pnpm build &&
547
+ pnpm quality:structure` regressed every time. The validator and the
548
+ build now share a single source of truth.
549
+ - **`scripts/sync-exports.ts`** now post-formats `package.json` via
550
+ `biome format --write` after writing. `JSON.stringify(_, _, 2)` always
551
+ expands short arrays like `sideEffects` and `onlyBuiltDependencies`,
552
+ while `pnpm format:check` (Biome) expects them inline; the two were
553
+ fighting after every sync.
554
+ - **`tailwind.config.ts`** dropped the `satisfies Config` clause. The
555
+ preset (`src/styles/tailwind-preset.ts`) resolves the v4 `Config` type
556
+ via the `src/styles/node_modules/tailwindcss` symlink to v4.3.0, while
557
+ the root config would resolve v3.4.19 — the v3/v4 type seam mismatched
558
+ on `darkMode` (`DarkModeStrategy` vs `Partial<DarkModeConfig>`).
559
+ Runtime correctness is enforced by `pnpm dogfood:v4-zero-config`.
560
+ - **`biome.json`** override extended to cover `scripts/**/*.mjs` so the
561
+ `noConsole` rule does not block tool scripts (it was already exempted
562
+ for `.ts`).
563
+ - **`pin-input.tsx`** — removed stale `// biome-ignore lint/suspicious/noArrayIndexKey`
564
+ comment now flagged as unused suppression.
565
+ - **`export-chat-dialog.tsx` + `run-status-pill.tsx` + `thinking-level-selector.tsx`** —
566
+ added precise `biome-ignore` comments documenting the `a11y/useSemanticElements`
567
+ and `suspicious/noConsole` exceptions, with the reason inline.
568
+
569
+ ### Documentation
570
+
571
+ - 7 new component pages under `theo-opendocs/content/theoui/{agent,infra}/`.
572
+ - New `ChannelCard` page under `theo-opendocs/content/theoui/agent/channel-card.mdx`
573
+ with live preview (`ComponentPreview` + `PropsTable`) deployed to
574
+ `https://channel-card.theo-opendocs.pages.dev/`.
575
+
10
576
  ## [0.12.0] - 2026-05-28
11
577
 
12
578
  **Stable release — promoted from `0.12.0-next.0` after dogfood validation + cross-repo contract gates landed.**
13
579
 
14
- First `@usetheo/ui` release on the npm `latest` tag without a `-next.*` pre-release suffix. Content is the union of everything shipped in `0.12.0-next.0` (2026-05-25) plus the additions below from `[Unreleased]` consolidation. **Zero breaking changes vs `0.12.0-next.0`** — consumers on `^0.12.0-next.0` upgrade transparently.
580
+ First `@theokit/ui` release on the npm `latest` tag without a `-next.*` pre-release suffix. Content is the union of everything shipped in `0.12.0-next.0` (2026-05-25) plus the additions below from `[Unreleased]` consolidation. **Zero breaking changes vs `0.12.0-next.0`** — consumers on `^0.12.0-next.0` upgrade transparently.
15
581
 
16
582
  ### Added (dogfood-fixes-and-coverage-expansion T4.1, 2026-05-28)
17
583
 
@@ -33,14 +599,14 @@ that complement the existing `llms.txt`: a structured visual spec
33
599
  ### Added
34
600
 
35
601
  - **`DESIGN.md` at repo root (NEW)** — plain-text design system spec
36
- for LLM assistants generating UI against `@usetheo/ui`. Follows the
602
+ for LLM assistants generating UI against `@theokit/ui`. Follows the
37
603
  awesome-design-md 9-section canonical structure (Visual Theme &
38
604
  Atmosphere · Color Palette & Roles · Typography Rules · Layout
39
605
  Principles · Depth & Elevation · Component Stylings · Responsive
40
606
  Behavior · Do's and Don'ts · Agent Prompt Guide). Tokens mirror
41
607
  `src/styles/tokens.css` and `src/themes/violet-forge.ts`. Shipped
42
608
  via `package.json > files` alongside `llms.txt` and `CHANGELOG.md`
43
- so consumers see the visual spec at `node_modules/@usetheo/ui/DESIGN.md`.
609
+ so consumers see the visual spec at `node_modules/@theokit/ui/DESIGN.md`.
44
610
  Reference research lives at
45
611
  `.claude/knowledge-base/reference/design-md-convention.md`.
46
612
  - **`skills/theo-ui/` companion agent skill (NEW)** — library-aware
@@ -82,7 +648,7 @@ Brief: `theo/docs/handoff/2026-05-25-theo-ui-cloud-dashboard-brief-5.md`
82
648
  `Object.assign`: `Trigger`, `Portal`, `Content`, `Item`,
83
649
  `CheckboxItem`, `RadioItem`, `Label`, `Separator`, `Shortcut`,
84
650
  `Group`, `Sub`, `SubTrigger`, `SubContent`, `RadioGroup`. Styled
85
- with `@usetheo/ui` design tokens. Consolidates 5 prior direct-
651
+ with `@theokit/ui` design tokens. Consolidates 5 prior direct-
86
652
  Radix usages (`model-selector`, `intent-selector`, `agent-profile`,
87
653
  `theme-switcher`, `theo-code-shell`) under a single styled
88
654
  wrapper. 6 unit tests + 5 Ladle stories. SSR-safe.
@@ -156,7 +722,7 @@ new primitives yet — pure version bump):
156
722
 
157
723
  | Metric | 0.10.0-next.0 | 0.11.0-next.0 | Δ |
158
724
  |---|---|---|---|
159
- | `@usetheo/ui` chunk | 10.96 KB brotli | 10.98 KB brotli | **+0.02 KB (+0.2%)** |
725
+ | `@theokit/ui` chunk | 10.96 KB brotli | 10.98 KB brotli | **+0.02 KB (+0.2%)** |
160
726
  | TOTAL initial JS | 134.68 KB brotli | 135.56 KB brotli | +0.88 KB (+0.6%) |
161
727
 
162
728
  Per-chunk cap (18 KB): passes with 7.02 KB headroom.
@@ -179,8 +745,8 @@ defect surfaced by the TheoCloud dashboard bundle audit
179
745
  exports declared in `package.json#exports` (`./alert`, `./button`,
180
746
  `./table`, …) were **cosmetic** — each pointed at the same
181
747
  `./dist/index.js` (the 417 KB barrel). `import { Alert } from
182
- "@usetheo/ui/alert"` resolved byte-identical to
183
- `import { Alert } from "@usetheo/ui"`, and barrel tree-shaking
748
+ "@theokit/ui/alert"` resolved byte-identical to
749
+ `import { Alert } from "@theokit/ui"`, and barrel tree-shaking
184
750
  failed in consumers because of `forwardRef` side-effect bailouts,
185
751
  `Object.assign` compound components, and `sideEffects: ["**/*.css"]`
186
752
  conservatism. TheoCloud measured **0 KB dropped** from the 240 KB
@@ -188,7 +754,7 @@ minified barrel regardless of how few exports were used.
188
754
 
189
755
  This release extends the per-component dist pattern that already
190
756
  worked for `whiteboard` / `slide` / `slide-deck` to every primitive
191
- and composite. The barrel `import { X } from "@usetheo/ui"` is
757
+ and composite. The barrel `import { X } from "@theokit/ui"` is
192
758
  preserved unchanged (additive migration shape, same as `@mui/material`).
193
759
 
194
760
  Plan: `.claude/knowledge-base/plans/subpath-tree-shaking-plan.md`
@@ -214,7 +780,7 @@ Brief: `theo/docs/handoff/2026-05-24-theo-ui-subpath-tree-shaking-brief-4.md`
214
780
  `NODE_OPTIONS=--max-old-space-size=8192` (the flag does not
215
781
  propagate to workers). Per-component subpaths resolve their `types`
216
782
  field at the barrel `dist/index.d.ts` — TypeScript still finds
217
- `Alert`/`AlertProps` from `import { Alert } from "@usetheo/ui/alert"`.
783
+ `Alert`/`AlertProps` from `import { Alert } from "@theokit/ui/alert"`.
218
784
  Trade-off: consumers' typecheck pulls the full type graph regardless
219
785
  of subpath, but the JS dist (where tree-shaking matters) is
220
786
  per-component and small.
@@ -256,7 +822,7 @@ chunks. **Consumer-side bundle delta against TheoCloud dashboard
256
822
 
257
823
  | Metric | 0.9.0-next.0 | 0.10.0-next.0 | Δ |
258
824
  |---|---|---|---|
259
- | `@usetheo/ui` chunk | 36.96 KB brotli | 10.96 KB brotli | **−26.00 KB (−70.3%)** |
825
+ | `@theokit/ui` chunk | 36.96 KB brotli | 10.96 KB brotli | **−26.00 KB (−70.3%)** |
260
826
  | TOTAL initial JS | 176.27 KB brotli | 134.68 KB brotli | −41.59 KB (−23.6%) |
261
827
 
262
828
  Per-chunk cap (50 KB): passes with 39 KB headroom (was 13 KB).
@@ -275,16 +841,16 @@ Evidence file:
275
841
  ### Migration (consumer-side, opt-in)
276
842
 
277
843
  ```diff
278
- - import { Card, Button, Alert } from "@usetheo/ui";
279
- + import { Card } from "@usetheo/ui/card";
280
- + import { Button } from "@usetheo/ui/button";
281
- + import { Alert } from "@usetheo/ui/alert";
844
+ - import { Card, Button, Alert } from "@theokit/ui";
845
+ + import { Card } from "@theokit/ui/card";
846
+ + import { Button } from "@theokit/ui/button";
847
+ + import { Alert } from "@theokit/ui/alert";
282
848
  ```
283
849
 
284
850
  The barrel import keeps working — migration is gradual, file by
285
851
  file. CSS, themes, and isolated engines stay barrel-imported:
286
- `import { ThemeProvider, violetForge } from "@usetheo/ui"`,
287
- `import "@usetheo/ui/styles.css"`.
852
+ `import { ThemeProvider, violetForge } from "@theokit/ui"`,
853
+ `import "@theokit/ui/styles.css"`.
288
854
 
289
855
  ## [0.9.0-next.0] - 2026-05-23
290
856
 
@@ -436,7 +1002,7 @@ Consumer brief: `theo/docs/handoff/2026-05-23-theo-ui-cloud-dashboard-gaps-brief
436
1002
  - **Taxonomy gate** classified ConfirmDialog + CodeBlock as composites
437
1003
  (D2 in the plan). Brief #2 listed all 8 as primitives, but the
438
1004
  validate-quality-gates.ts script is hard-fail for any
439
- `primitives/` file that imports another `@usetheo/ui` component.
1005
+ `primitives/` file that imports another `@theokit/ui` component.
440
1006
  - **Timestamp uses native `title` HTML attribute** (D3) instead of
441
1007
  the `<Tooltip>` component, to keep the file a true primitive
442
1008
  without sibling-primitive imports.
@@ -516,7 +1082,7 @@ Consumer brief: `theo/docs/handoff/2026-05-23-theo-ui-cloud-dashboard-gaps-brief
516
1082
  - **Taxonomy invariant preserved.** `UsageMeter → Progress` and
517
1083
  `AccountMenu → Avatar + PlanBadge` use relative-path imports
518
1084
  (`../{slug}/index.js`), not barrel imports, so primitives still have
519
- zero `@usetheo/ui` cross-dependencies per the structural gate.
1085
+ zero `@theokit/ui` cross-dependencies per the structural gate.
520
1086
  - **Bundle delta.** `dist/index.js` grows by ~6 KB (4 primitives + types
521
1087
  + small imports). Within the ±5% baseline tolerance (rebaselined).
522
1088
  - **Subpath exports.** `package.json#exports` gains `./usage-meter`,
@@ -594,7 +1160,7 @@ every `<button>` rendered by `Sidebar.Item`, `QuickActionChips`,
594
1160
  `ChatComposer`, `ContextWindowBar`, `ToolCallCard`, `AgentProfile`,
595
1161
  `CommandPalette`, etc. was showing the default arrow cursor instead of
596
1162
  the pointing hand. Visual regression observed in TheoKit
597
- `examples/full-stack-agent` against `@usetheo/ui@0.6.1-next.0`.
1163
+ `examples/full-stack-agent` against `@theokit/ui@0.6.1-next.0`.
598
1164
 
599
1165
  ### Fixed
600
1166
 
@@ -619,7 +1185,7 @@ the pointing hand. Visual regression observed in TheoKit
619
1185
  accessibility convention. (#TBD)
620
1186
 
621
1187
  The fix is opt-in by consumer choice — they imported
622
- `@usetheo/ui/styles.css`. Tailwind v4's global preflight remains
1188
+ `@theokit/ui/styles.css`. Tailwind v4's global preflight remains
623
1189
  untouched; only this stylesheet's `@layer base` adds the rule. (#TBD)
624
1190
 
625
1191
  ### Notes
@@ -632,7 +1198,7 @@ untouched; only this stylesheet's `@layer base` adds the rule. (#TBD)
632
1198
  # pointing-hand icon (not the default arrow).
633
1199
  #
634
1200
  # CSS grep test:
635
- grep -c "button:not(:disabled)" node_modules/@usetheo/ui/dist/styles.css
1201
+ grep -c "button:not(:disabled)" node_modules/@theokit/ui/dist/styles.css
636
1202
  # MUST return >= 1 (pre-fix: 0)
637
1203
  ```
638
1204
 
@@ -647,12 +1213,12 @@ the entire library rendered flat under pnpm.
647
1213
 
648
1214
  - **pnpm symlink + Tailwind v4 `@source` bug** — Tailwind v4's
649
1215
  `tinyglobby`-based scanner does **not** follow symbolic links. Under a
650
- pnpm install, `node_modules/@usetheo/ui` is a symlink to a deep
651
- `node_modules/.pnpm/@usetheo+ui@…/node_modules/@usetheo/ui` directory,
1216
+ pnpm install, `node_modules/@theokit/ui` is a symlink to a deep
1217
+ `node_modules/.pnpm/@theokit+ui@…/node_modules/@theokit/ui` directory,
652
1218
  and the consumer-side pattern
653
- `@source "node_modules/@usetheo/ui/dist/**/*.{js,mjs,cjs}"` (the one
1219
+ `@source "node_modules/@theokit/ui/dist/**/*.{js,mjs,cjs}"` (the one
654
1220
  the `vite-plugin` previously emitted via the
655
- `virtual:@usetheo/ui/library-sources.css` virtual module) expanded to
1221
+ `virtual:@theokit/ui/library-sources.css` virtual module) expanded to
656
1222
  **zero** matches. Every `hover:bg-muted`, `hover:text-foreground`,
657
1223
  `data-[state=active]:…` variant the library's 79 primitives + 41
658
1224
  composites use was therefore never emitted into the consumer's CSS,
@@ -674,7 +1240,7 @@ the entire library rendered flat under pnpm.
674
1240
  gzipped. This is the canonical Tailwind v4 library pattern used by
675
1241
  Radix UI Themes, shadcn/ui pre-compiled, and Mantine v7. (#TBD)
676
1242
  - **`dist/styles.css` chains `@import "./components.css"`** at the end,
677
- so a single `@import "@usetheo/ui/styles.css"` in the consumer's CSS
1243
+ so a single `@import "@theokit/ui/styles.css"` in the consumer's CSS
678
1244
  now transitively pulls in every utility the library uses — zero
679
1245
  filesystem scanning required. Consumer-side `@theme` overrides still
680
1246
  win via the runtime CSS-var cascade (every utility resolves
@@ -691,9 +1257,9 @@ the entire library rendered flat under pnpm.
691
1257
 
692
1258
  ### Changed
693
1259
 
694
- - **`@usetheo/ui/vite-plugin` virtual module** — the
695
- `virtual:@usetheo/ui/library-sources.css` module no longer emits the
696
- broken `@source "node_modules/@usetheo/ui/..."` default globs. It is
1260
+ - **`@theokit/ui/vite-plugin` virtual module** — the
1261
+ `virtual:@theokit/ui/library-sources.css` module no longer emits the
1262
+ broken `@source "node_modules/@theokit/ui/..."` default globs. It is
697
1263
  retained for backwards compatibility (TheoKit's earlier integration
698
1264
  code may still resolve it) but now emits only an explanatory comment
699
1265
  block when no `contentExtra` option is passed. The plugin's primary
@@ -709,7 +1275,7 @@ the entire library rendered flat under pnpm.
709
1275
  starter, Mantine v7.
710
1276
  - Verification recipe matching TheoKit's reproduction script:
711
1277
  ```bash
712
- grep -c "\.hover\\:bg-muted" node_modules/.pnpm/@usetheo+ui@*/node_modules/@usetheo/ui/dist/components.css
1278
+ grep -c "\.hover\\:bg-muted" node_modules/.pnpm/@theokit+ui@*/node_modules/@theokit/ui/dist/components.css
713
1279
  # MUST return >= 1 (pre-fix: 0)
714
1280
  ```
715
1281
 
@@ -778,7 +1344,7 @@ branching navigation, and a streaming-safe markdown preprocess.
778
1344
 
779
1345
  ### Breaking changes
780
1346
 
781
- - **`Message` type removed.** `import type { Message } from "@usetheo/ui"`
1347
+ - **`Message` type removed.** `import type { Message } from "@theokit/ui"`
782
1348
  now fails — use `UIMessage` instead. TypeScript will hint
783
1349
  `Did you mean 'UIMessage'?`.
784
1350
  - **`message.content` removed.** Replace every callsite:
@@ -805,7 +1371,7 @@ branching navigation, and a streaming-safe markdown preprocess.
805
1371
  `<ChatMessage>` — fold them into custom UI under the message body, or
806
1372
  attach via `metadata?: unknown` (consumer-typed) and read from there.
807
1373
  - **`./components/primitives/chat-message/`** deleted. Imports must move
808
- to `./components/composites/chat-message/` (the public `@usetheo/ui`
1374
+ to `./components/composites/chat-message/` (the public `@theokit/ui`
809
1375
  barrel handles this; only relative imports inside the repo need
810
1376
  updating).
811
1377
 
@@ -845,12 +1411,12 @@ ships a fixture-backed real-build dogfood so the regression cannot recur.
845
1411
  - **`./preset` subpath is now a CSS file.** Tailwind v4 dropped the v3 JS
846
1412
  preset format — `theme.extend.colors.{name}` declarations are a no-op for
847
1413
  v4. The new `dist/preset.css` simply chains `@import "./tokens.css"` and
848
- `@import "./tokens-v4.css"` so consumers can `@import "@usetheo/ui/preset.css"`
1414
+ `@import "./tokens-v4.css"` so consumers can `@import "@theokit/ui/preset.css"`
849
1415
  from their own Tailwind v4 entry CSS. (#TBD)
850
1416
 
851
1417
  ### Added
852
1418
 
853
- - **`@usetheo/ui/tokens-v4.css` (NEW)** — `@theme {}` block declaring 28
1419
+ - **`@theokit/ui/tokens-v4.css` (NEW)** — `@theme {}` block declaring 28
854
1420
  `--color-*` aliases (full color set), 14 `--text-*` typescale tiers
855
1421
  (Violet Forge — `--text-display-2xl` through `--text-code-sm` with companion
856
1422
  `--*--line-height`, `--*--letter-spacing`, `--*--font-weight`), 3 `--font-*`
@@ -859,14 +1425,14 @@ ships a fixture-backed real-build dogfood so the regression cannot recur.
859
1425
  uses `hsl(var(--*))` indirection so `<ThemeProvider>`'s runtime
860
1426
  `[data-theme]` cascade keeps working — switching themes still recolors
861
1427
  every utility. (#TBD)
862
- - **`@usetheo/ui/styles-v3-legacy.css` (NEW)** — the previous v3-shaped
1428
+ - **`@theokit/ui/styles-v3-legacy.css` (NEW)** — the previous v3-shaped
863
1429
  `@tailwind base/components/utilities` entry. Pinned consumers on
864
1430
  `tailwindcss@^3` who still want a prebuilt stylesheet can import this
865
- subpath. New code SHOULD use `@usetheo/ui/styles.css` (v4) instead.
866
- - **`@usetheo/ui/preset-v3-legacy` (NEW)** — the v3 JS `Partial<Config>`
1431
+ subpath. New code SHOULD use `@theokit/ui/styles.css` (v4) instead.
1432
+ - **`@theokit/ui/preset-v3-legacy` (NEW)** — the v3 JS `Partial<Config>`
867
1433
  preset that previously lived at `./preset`. Renamed so the canonical
868
1434
  `./preset` subpath can host the v4 CSS preset. v3 consumers update
869
- imports from `@usetheo/ui/preset` to `@usetheo/ui/preset-v3-legacy`.
1435
+ imports from `@theokit/ui/preset` to `@theokit/ui/preset-v3-legacy`.
870
1436
  - **Dogfood scripts** — `pnpm dogfood:v4-zero-config` (shape check, runs in
871
1437
  `quality:gates`) and `pnpm dogfood:v4-real-build` (end-to-end: packs the
872
1438
  tarball, installs in a tmp project alongside `@tailwindcss/cli@^4`, runs
@@ -880,8 +1446,8 @@ ships a fixture-backed real-build dogfood so the regression cannot recur.
880
1446
 
881
1447
  - **Breaking for any 0.5.0-next.0 consumer.** The `./preset` subpath changed
882
1448
  from JS (`Partial<Config>` default-export) to CSS file. Code importing
883
- `import preset from "@usetheo/ui/preset"` will break and must migrate to
884
- `@import "@usetheo/ui/preset.css"` in an entry CSS. Blast radius: TheoKit
1449
+ `import preset from "@theokit/ui/preset"` will break and must migrate to
1450
+ `@import "@theokit/ui/preset.css"` in an entry CSS. Blast radius: TheoKit
885
1451
  (already reverted away from 0.5.x by the time this fix shipped) plus any
886
1452
  community consumer that adopted 0.5.0-next.0 in the same day — likely zero.
887
1453
  - The runtime indirection via `hsl(var(--*))` aliases keeps `<ThemeProvider>`
@@ -898,31 +1464,31 @@ Zero visual break and no runtime behavior change for existing consumers.
898
1464
 
899
1465
  ### Added
900
1466
 
901
- - **`@usetheo/ui/vite-plugin` (NEW, RFC 0008)** — Default-export factory
1467
+ - **`@theokit/ui/vite-plugin` (NEW, RFC 0008)** — Default-export factory
902
1468
  returning one Vite `Plugin`. The plugin's `config()` hook
903
1469
  dynamic-imports `@tailwindcss/vite` v4 and chains it into the
904
1470
  consumer's plugin array when resolvable, and degrades to `console.warn`
905
- + CSS-only mode (via the pre-built `@usetheo/ui/styles.css` subpath)
1471
+ + CSS-only mode (via the pre-built `@theokit/ui/styles.css` subpath)
906
1472
  when the peer is not installed. A virtual module
907
- `virtual:@usetheo/ui/library-sources.css` provides the `@source`
908
- directive covering `node_modules/@usetheo/ui/dist/**/*.{js,mjs,cjs}`
1473
+ `virtual:@theokit/ui/library-sources.css` provides the `@source`
1474
+ directive covering `node_modules/@theokit/ui/dist/**/*.{js,mjs,cjs}`
909
1475
  so Tailwind scans the library's published JS for utilities. Plugin
910
- name slug: `@usetheo/ui/vite-plugin`. Options: `tailwind?: boolean`
1476
+ name slug: `@theokit/ui/vite-plugin`. Options: `tailwind?: boolean`
911
1477
  (default `true`), `contentExtra?: string[]` (extra `@source` globs).
912
1478
  (#TBD)
913
- - **`@usetheo/ui/preset` (NEW, RFC 0008)** — Default-export Tailwind v4
1479
+ - **`@theokit/ui/preset` (NEW, RFC 0008)** — Default-export Tailwind v4
914
1480
  `Partial<Config>` mirroring the design tokens in `tokens.css`
915
1481
  (colors via `hsl(var(--x) / <alpha-value>)`, font families, the
916
1482
  Violet Forge typescale, radii, shadows, animations, motion timing)
917
- with `content` paths covering `./node_modules/@usetheo/ui/dist/**` and
1483
+ with `content` paths covering `./node_modules/@theokit/ui/dist/**` and
918
1484
  the `tailwindcss-animate` plugin. Consumer usage:
919
- `import preset from "@usetheo/ui/preset"; export default { presets: [preset] }`.
1485
+ `import preset from "@theokit/ui/preset"; export default { presets: [preset] }`.
920
1486
  Internally delegates to the existing `src/styles/tailwind-preset.ts` —
921
1487
  the v3 shadcn-registry preset and the v4 import preset stay
922
1488
  byte-for-byte aligned and impossible to drift. (#TBD)
923
1489
  - **`@tailwindcss/vite ^4`, `tailwindcss ^4`, `vite ^6 || ^7` peer-deps
924
1490
  (all optional)** — added to `peerDependenciesMeta` so consumers
925
- importing `@usetheo/ui` standalone (no framework) are not forced into
1491
+ importing `@theokit/ui` standalone (no framework) are not forced into
926
1492
  Tailwind v4. Required only when consuming via TheoKit's auto-wire path
927
1493
  or the new `./vite-plugin` subpath. (#TBD)
928
1494
 
@@ -930,7 +1496,7 @@ Zero visual break and no runtime behavior change for existing consumers.
930
1496
 
931
1497
  - Existing `tailwindcss@^3` consumers continue to work via the shadcn
932
1498
  registry preset (`registry/r/tailwind-preset.json`) and the prebuilt
933
- `@usetheo/ui/styles.css`. The new subpaths are additive — they do not
1499
+ `@theokit/ui/styles.css`. The new subpaths are additive — they do not
934
1500
  break v3-based setups.
935
1501
  - The `vite-plugin` returns ONE `Plugin` object (not `Plugin[]`) per the
936
1502
  cross-repo contract with TheoKit's `integrateUseTheoUI()`. The chain
@@ -1000,10 +1566,10 @@ preserves rendered markup for callers that don't pass `size`.
1000
1566
  ## [0.1.0-next.1] - 2026-05-19
1001
1567
 
1002
1568
  ### Added
1003
- - **Slide rich content — Tier 1 baked-in + Tier 2 plugin system (2026-05-19, RFC 0004)** — Estende `<Slide>` (RFC 0002) e `<SlideDeck>` (RFC 0003) com conteúdo rico nível PowerPoint sem reinventar parsers. **Tier 1 (zero peer-deps novas):** (a) GFM alerts `> [!NOTE/TIP/IMPORTANT/WARNING/CAUTION]` detectados em mdast post-process (alerts.ts) → `<aside class="theo-slide-alert" data-theo-slide-alert-type>` temado em ambos os themes (default + violet-forge); (b) 7 layouts via frontmatter `layout` (`default`, `title`, `two-column`, `image-right`, `image-left`, `code-output`, `section`) em CSS grid templates (themes/layouts.css importado pelos dois themes); (c) backgroundImage + backgroundGradient com `sanitizeBgUrl` rejeitando `javascript:`/`vbscript:`/TODO data: URLs (EC-7), cap 500_000 chars; (d) Marpit `![bg](url)` syntax extraído em mdast walker → `ParsedSlide.extractedBackground = { url, modifier }` (D18/EC-5), sanitizado antes de armazenar com fallback `MARPIT_BG_UNSAFE_URL`, modifier-aware (`cover`/`fit`/`left`/`right`); (e) header/footer/paginate overlays via frontmatter (plain text ≤200 chars cada), CSS absolute positioned. **Tier 2 (opt-in plugin system):** plugin architecture com `<Slide plugins={SlidePlugin[]}>` e relay `<SlideDeck plugins>` para cada slide interno. `SlidePlugin` shape: `{ name, mdastTransform?, hastTransform?, components?, sanitizeSchemaExtension? }` com error isolation D16 (cada chamada em try/catch, throws agregadas em `errors[]` com `code: "PLUGIN_ERROR"`; pipeline **nunca** propaga exception) e sanitize-schema merge D17 (extensions unionadas com defaultSchema + Tier 1 baseline). Quatro plugins shipados em sub-subpaths `@usetheo/ui/slide/plugins/{shiki,math,mermaid,emoji}`: **shikiPlugin** (peer-dep `shiki`; lazy + singleton highlighter; pre-renderiza `<pre><code class="language-XXX">` em HTML temado dual-theme com sanitize ext `<span> style/className`); **mathPlugin** (peer-deps `katex` + `hast-util-from-html`; substitui `$inline$` + `$$block$$` por KaTeX displayMode/inline; skip em `<code>`/`<pre>`; sanitize ext com lista completa de ≥30 tags MathML — `math`, `mfrac`, `msqrt`, `msup`, `msub`, `msubsup`, `munder`, `mover`, `mtable`, `mtr`, `mtd`, `mphantom`, `mstyle`, `annotation`, etc. — EC-4); **mermaidPlugin** (peer-dep `mermaid`; converte `<pre><code class="language-mermaid">` em `<theo-mermaid source>` com React `<MermaidDiagram>` que lazy-importa mermaid e injeta SVG via innerHTML; SSR placeholder distinguível de erro com `role="img"` + source code preservado, EC-10; sanitize ext com ≥30 tags SVG — `svg`, `g`, `path`, `rect`, `circle`, `text`, `marker`, `foreignObject`, etc. — EC-4); **emojiPlugin** (zero peer-deps de runtime, usa `unist-util-visit-parents` já no stack; 100 shortcodes Unicode embedded; **EC-6: ancestor check** via `isInsideCodeOrPre` skipa replace dentro de `<code>`/`<pre>` para preservar type hints Python / YAML keys / Ruby symbols). Pipeline order: `validateSlide → parseBody → detectAlerts (Tier 1) → extractMarpitBackgrounds (Tier 1) → plugin.mdastTransform[] → mdastToHast → plugin.hastTransform[] → sanitize(defaultSchema + extensions) → hastToReact (consumer + plugin components)`. Bundle isolation invariant preservada: barrel `dist/index.js` **inalterado**; cada plugin é entry tsup próprio com peer-deps externalizados. `scripts/sync-exports.ts` ganha 4 entries em `ISOLATED_SUBPATHS`. `package.json` ganha 9 peer-deps opcionais (`shiki`, `katex`, `mermaid`, `micromark-extension-math`, `mdast-util-math`, `hast-util-from-html`, `unist-util-visit`, `unist-util-visit-parents`). RFC `docs/rfcs/0004-slide-rich-content.md` status `Implemented`. **128 testes novos** distribuídos em 13 phases (T0.1 plugin contract: 13 testes; T0.2 parseSlide integration: 11 testes; T1.1 alerts: 8 testes; T2/T3/T5 schema: 25 testes; T4.1 Marpit bg: 9 testes; T6.1 Shiki: 6 testes; T7.1 Math: 7 testes; T8.1 Mermaid: 7 testes; T9.1 Emoji: 10 testes; Slide component: 32 testes). Suite total: 1174 testes verdes. Codes de erro novos: `PLUGIN_ERROR`, `PLUGIN_PEER_DEP_MISSING`, `MARPIT_BG_UNSAFE_URL`. (#TBD)
1004
- - **SlideDeck composite engine — multi-slide deck w/ navigation, presenter, fullscreen, PDF (2026-05-19)** — `@usetheo/ui/slide-deck` agora orquestra N `<Slide>` primitives com navegação completa: keyboard (←/→/Space/Home/End/Esc/F/N/Ctrl+P, com guard contra inputs/contentEditable), touch swipe (Pointer Events nativos, multi-touch filtrado, pointercancel limpo — EC-6/EC-7), hash routing bidirectional (`#/N` 1-based, via `history.replaceState` para evitar loop — EC-10), lazy initializer SSR-safe (D17/EC-5). Sub-componentes em namespace dot: `<SlideDeck.Slides>` `<SlideDeck.Controls>` `<SlideDeck.ProgressBar>` `<SlideDeck.SlideNumber>` `<SlideDeck.Thumbnails>` (IntersectionObserver lazy + EC-13 fallback) `<SlideDeck.PresenterView>` (inline panel com timer + speaker notes) `<SlideDeck.FullscreenButton>` (cross-browser API + EC-8 iOS guard) `<SlideDeck.PrintButton>` (window.print + `@page` CSS, afterprint cleanup). Transitions CSS-only (`none`/`fade`/`slide`) com timeout fallback 300ms (D16/EC-3) e respeito a `prefers-reduced-motion`. Progressive fragments via Marpit-style `*` lists (D12, contagem por regex anti-falsos-positivos em `**bold**` ou fenced code). Speaker notes via `<!-- notes: ... -->` HTML comments (D11). Aceita `slides: string | SlideDeckSlide[]` (D4); split string via mdast `thematicBreak` reusando algoritmo do Slide D12 + strip global frontmatter primeiro (D15/EC-1 — evita phantom empty slide). `useReducer` state machine com `UPDATE_TOTAL_SLIDES` que clampa `currentIndex` (EC-4). Zero peer-deps novas — reusa as 7 do Slide. Bundle isolado em `dist/slide-deck/index.js` (~48 KB com Slide vendored); barrel principal `dist/index.js` **inalterado**. RFC `docs/rfcs/0003-slide-deck.md` status `Implemented`. 160 testes específicos do SlideDeck verdes. Stories Ladle: `DefaultDeck`, `WithGfmTable`, `WithSpeakerNotes`, `WithFragments`, `WithFadeTransition`, `WithSlideTransition`, `HashRouting`, `HeadlessLayout`, `WithThumbnails`, `PresenterModeOn`, `LargeDeck` (50 slides), `EmptyDeck`, `SingleSlideDeck`, `ControlledNavigation`. (#TBD)
1005
- - **Slide engine — view-only primitive funcional (2026-05-19)** — `@usetheo/ui/slide` agora renderiza markdown + frontmatter YAML como surface temada com canvas lógico fixo (default 16:9 → 1280×720), espelhando o padrão de bundle isolado entregue pelo Whiteboard. Pipeline: `validateSlide` (async — D11) → `parseBody` (micromark + GFM) → `mdastToHast` (`allowDangerousHtml: false`) → `sanitizeHast` (`defaultSchema` sem extensões — D8, com diff de tag-count que emite `BANNED_TAG` — D13) → `hastToReact` (real React VDOM via `hast-util-to-jsx-runtime` — D9, **sem `dangerouslySetInnerHTML`**). Frontmatter YAML único (sem HTML comment syntax do Marpit — D4), validado com Zod `.strict()` (4 keys aceitos: `theme`, `lang`, `color`, `backgroundColor`). Multi-slide input (top-level `---` detectado via mdast `thematicBreak` — D12, sem false-positive em fenced code blocks) emite `MULTIPLE_SLIDES` e renderiza somente o primeiro slide. Input guards (D14): BOM strip, `aspectRatio` inválido → fallback 16:9 + `INVALID_ASPECT_RATIO`, raw frontmatter > 10 KB → `FRONTMATTER_TOO_LARGE`. Container fit (D7) via `useSlideFit` hook (algoritmo Reveal.js: `scale = clamp(min(W/cw, H/ch), minScale, maxScale)` em `ResizeObserver` callback). Dois temas built-in (`default`, `violet-forge`) via CSS variables `--theo-slide-*` layered sobre Violet Forge tokens, com `light-dark()` para dark mode automático. A11y: `<section role="region" aria-roledescription="slide" aria-label>`. Race-resistant re-parse via `versionRef` counter (EC-7). 7 markdown peer-deps são **opcionais**: `mdast-util-from-markdown`, `mdast-util-gfm`, `micromark-extension-gfm`, `mdast-util-to-hast`, `hast-util-sanitize`, `hast-util-to-jsx-runtime`, `yaml`. Bundle isolado em `dist/slide/index.js`; barrel principal `dist/index.js` **inalterado**. RFC `docs/rfcs/0002-slide.md` status `Implemented`. 12 Ladle stories: `HappyPath`, `GfmTable`, `WithFrontmatter`, `VioletForgeTheme`, `AspectFourByThree`, `MultiSlideTruncated`, `MalformedFrontmatter`, `BannedScript`, `LongContent`, `CustomComponents`, `SmallContainer`, `LargeContainer`. (#TBD)
1006
- - **Whiteboard engine — view-only primitive funcional (2026-05-18)** — `@usetheo/ui/whiteboard` agora renderiza JSON declarativo (`WhiteboardData`) como SVG com estética hand-drawn estilo Excalidraw. **Sete tipos** de elemento suportados: `rect`, `ellipse`, `diamond`, `line`, `arrow`, `text`, `freedraw`. **Pan + zoom built-in** via `viewBox` (wheel = zoom-to-cursor, mouse drag = pan, Space = hand mode, pinch touch supported). **Prop `fitOnLoad`** centra automaticamente os elementos na viewport. Schema Zod com clamps de sanidade (EC-3 `.finite()` rejeita NaN/Infinity; EC-4 `.max(20000)` em dimensões; `.max(500)` em labels; `.max(5000)` em text e points/elements). `<Whiteboard>` valida JSON em `useMemo`, dispara `onValidationError` em `useEffect` (EC-6 — nunca durante render), e cai em SVG vazio com `data-whiteboard-state="invalid"` quando o JSON falha. SSR-safe (`renderToString` produz markup estático correto). `roughjs` + `perfect-freehand` são peer-deps **opcionais**; `zod` entra em `dependencies` regulares (EC-5 opção A). Bundle isolado em `dist/whiteboard/index.js` (21.53KB ESM); barrel principal `dist/index.js` **inalterado** (320.41KB). RFC `docs/rfcs/0001-whiteboard.md` status `Implemented`. 86 testes específicos do Whiteboard verdes + 776 testes totais do projeto. Stories Ladle: `Empty`, `Flowchart`, `Architecture`, `FreedrawSketch`, `MixedAll`, `InvalidJSON`. (#TBD)
1569
+ - **Slide rich content — Tier 1 baked-in + Tier 2 plugin system (2026-05-19, RFC 0004)** — Estende `<Slide>` (RFC 0002) e `<SlideDeck>` (RFC 0003) com conteúdo rico nível PowerPoint sem reinventar parsers. **Tier 1 (zero peer-deps novas):** (a) GFM alerts `> [!NOTE/TIP/IMPORTANT/WARNING/CAUTION]` detectados em mdast post-process (alerts.ts) → `<aside class="theo-slide-alert" data-theo-slide-alert-type>` temado em ambos os themes (default + violet-forge); (b) 7 layouts via frontmatter `layout` (`default`, `title`, `two-column`, `image-right`, `image-left`, `code-output`, `section`) em CSS grid templates (themes/layouts.css importado pelos dois themes); (c) backgroundImage + backgroundGradient com `sanitizeBgUrl` rejeitando `javascript:`/`vbscript:`/TODO data: URLs (EC-7), cap 500_000 chars; (d) Marpit `![bg](url)` syntax extraído em mdast walker → `ParsedSlide.extractedBackground = { url, modifier }` (D18/EC-5), sanitizado antes de armazenar com fallback `MARPIT_BG_UNSAFE_URL`, modifier-aware (`cover`/`fit`/`left`/`right`); (e) header/footer/paginate overlays via frontmatter (plain text ≤200 chars cada), CSS absolute positioned. **Tier 2 (opt-in plugin system):** plugin architecture com `<Slide plugins={SlidePlugin[]}>` e relay `<SlideDeck plugins>` para cada slide interno. `SlidePlugin` shape: `{ name, mdastTransform?, hastTransform?, components?, sanitizeSchemaExtension? }` com error isolation D16 (cada chamada em try/catch, throws agregadas em `errors[]` com `code: "PLUGIN_ERROR"`; pipeline **nunca** propaga exception) e sanitize-schema merge D17 (extensions unionadas com defaultSchema + Tier 1 baseline). Quatro plugins shipados em sub-subpaths `@theokit/ui/slide/plugins/{shiki,math,mermaid,emoji}`: **shikiPlugin** (peer-dep `shiki`; lazy + singleton highlighter; pre-renderiza `<pre><code class="language-XXX">` em HTML temado dual-theme com sanitize ext `<span> style/className`); **mathPlugin** (peer-deps `katex` + `hast-util-from-html`; substitui `$inline$` + `$$block$$` por KaTeX displayMode/inline; skip em `<code>`/`<pre>`; sanitize ext com lista completa de ≥30 tags MathML — `math`, `mfrac`, `msqrt`, `msup`, `msub`, `msubsup`, `munder`, `mover`, `mtable`, `mtr`, `mtd`, `mphantom`, `mstyle`, `annotation`, etc. — EC-4); **mermaidPlugin** (peer-dep `mermaid`; converte `<pre><code class="language-mermaid">` em `<theo-mermaid source>` com React `<MermaidDiagram>` que lazy-importa mermaid e injeta SVG via innerHTML; SSR placeholder distinguível de erro com `role="img"` + source code preservado, EC-10; sanitize ext com ≥30 tags SVG — `svg`, `g`, `path`, `rect`, `circle`, `text`, `marker`, `foreignObject`, etc. — EC-4); **emojiPlugin** (zero peer-deps de runtime, usa `unist-util-visit-parents` já no stack; 100 shortcodes Unicode embedded; **EC-6: ancestor check** via `isInsideCodeOrPre` skipa replace dentro de `<code>`/`<pre>` para preservar type hints Python / YAML keys / Ruby symbols). Pipeline order: `validateSlide → parseBody → detectAlerts (Tier 1) → extractMarpitBackgrounds (Tier 1) → plugin.mdastTransform[] → mdastToHast → plugin.hastTransform[] → sanitize(defaultSchema + extensions) → hastToReact (consumer + plugin components)`. Bundle isolation invariant preservada: barrel `dist/index.js` **inalterado**; cada plugin é entry tsup próprio com peer-deps externalizados. `scripts/sync-exports.ts` ganha 4 entries em `ISOLATED_SUBPATHS`. `package.json` ganha 9 peer-deps opcionais (`shiki`, `katex`, `mermaid`, `micromark-extension-math`, `mdast-util-math`, `hast-util-from-html`, `unist-util-visit`, `unist-util-visit-parents`). RFC `docs/rfcs/0004-slide-rich-content.md` status `Implemented`. **128 testes novos** distribuídos em 13 phases (T0.1 plugin contract: 13 testes; T0.2 parseSlide integration: 11 testes; T1.1 alerts: 8 testes; T2/T3/T5 schema: 25 testes; T4.1 Marpit bg: 9 testes; T6.1 Shiki: 6 testes; T7.1 Math: 7 testes; T8.1 Mermaid: 7 testes; T9.1 Emoji: 10 testes; Slide component: 32 testes). Suite total: 1174 testes verdes. Codes de erro novos: `PLUGIN_ERROR`, `PLUGIN_PEER_DEP_MISSING`, `MARPIT_BG_UNSAFE_URL`. (#TBD)
1570
+ - **SlideDeck composite engine — multi-slide deck w/ navigation, presenter, fullscreen, PDF (2026-05-19)** — `@theokit/ui/slide-deck` agora orquestra N `<Slide>` primitives com navegação completa: keyboard (←/→/Space/Home/End/Esc/F/N/Ctrl+P, com guard contra inputs/contentEditable), touch swipe (Pointer Events nativos, multi-touch filtrado, pointercancel limpo — EC-6/EC-7), hash routing bidirectional (`#/N` 1-based, via `history.replaceState` para evitar loop — EC-10), lazy initializer SSR-safe (D17/EC-5). Sub-componentes em namespace dot: `<SlideDeck.Slides>` `<SlideDeck.Controls>` `<SlideDeck.ProgressBar>` `<SlideDeck.SlideNumber>` `<SlideDeck.Thumbnails>` (IntersectionObserver lazy + EC-13 fallback) `<SlideDeck.PresenterView>` (inline panel com timer + speaker notes) `<SlideDeck.FullscreenButton>` (cross-browser API + EC-8 iOS guard) `<SlideDeck.PrintButton>` (window.print + `@page` CSS, afterprint cleanup). Transitions CSS-only (`none`/`fade`/`slide`) com timeout fallback 300ms (D16/EC-3) e respeito a `prefers-reduced-motion`. Progressive fragments via Marpit-style `*` lists (D12, contagem por regex anti-falsos-positivos em `**bold**` ou fenced code). Speaker notes via `<!-- notes: ... -->` HTML comments (D11). Aceita `slides: string | SlideDeckSlide[]` (D4); split string via mdast `thematicBreak` reusando algoritmo do Slide D12 + strip global frontmatter primeiro (D15/EC-1 — evita phantom empty slide). `useReducer` state machine com `UPDATE_TOTAL_SLIDES` que clampa `currentIndex` (EC-4). Zero peer-deps novas — reusa as 7 do Slide. Bundle isolado em `dist/slide-deck/index.js` (~48 KB com Slide vendored); barrel principal `dist/index.js` **inalterado**. RFC `docs/rfcs/0003-slide-deck.md` status `Implemented`. 160 testes específicos do SlideDeck verdes. Stories Ladle: `DefaultDeck`, `WithGfmTable`, `WithSpeakerNotes`, `WithFragments`, `WithFadeTransition`, `WithSlideTransition`, `HashRouting`, `HeadlessLayout`, `WithThumbnails`, `PresenterModeOn`, `LargeDeck` (50 slides), `EmptyDeck`, `SingleSlideDeck`, `ControlledNavigation`. (#TBD)
1571
+ - **Slide engine — view-only primitive funcional (2026-05-19)** — `@theokit/ui/slide` agora renderiza markdown + frontmatter YAML como surface temada com canvas lógico fixo (default 16:9 → 1280×720), espelhando o padrão de bundle isolado entregue pelo Whiteboard. Pipeline: `validateSlide` (async — D11) → `parseBody` (micromark + GFM) → `mdastToHast` (`allowDangerousHtml: false`) → `sanitizeHast` (`defaultSchema` sem extensões — D8, com diff de tag-count que emite `BANNED_TAG` — D13) → `hastToReact` (real React VDOM via `hast-util-to-jsx-runtime` — D9, **sem `dangerouslySetInnerHTML`**). Frontmatter YAML único (sem HTML comment syntax do Marpit — D4), validado com Zod `.strict()` (4 keys aceitos: `theme`, `lang`, `color`, `backgroundColor`). Multi-slide input (top-level `---` detectado via mdast `thematicBreak` — D12, sem false-positive em fenced code blocks) emite `MULTIPLE_SLIDES` e renderiza somente o primeiro slide. Input guards (D14): BOM strip, `aspectRatio` inválido → fallback 16:9 + `INVALID_ASPECT_RATIO`, raw frontmatter > 10 KB → `FRONTMATTER_TOO_LARGE`. Container fit (D7) via `useSlideFit` hook (algoritmo Reveal.js: `scale = clamp(min(W/cw, H/ch), minScale, maxScale)` em `ResizeObserver` callback). Dois temas built-in (`default`, `violet-forge`) via CSS variables `--theo-slide-*` layered sobre Violet Forge tokens, com `light-dark()` para dark mode automático. A11y: `<section role="region" aria-roledescription="slide" aria-label>`. Race-resistant re-parse via `versionRef` counter (EC-7). 7 markdown peer-deps são **opcionais**: `mdast-util-from-markdown`, `mdast-util-gfm`, `micromark-extension-gfm`, `mdast-util-to-hast`, `hast-util-sanitize`, `hast-util-to-jsx-runtime`, `yaml`. Bundle isolado em `dist/slide/index.js`; barrel principal `dist/index.js` **inalterado**. RFC `docs/rfcs/0002-slide.md` status `Implemented`. 12 Ladle stories: `HappyPath`, `GfmTable`, `WithFrontmatter`, `VioletForgeTheme`, `AspectFourByThree`, `MultiSlideTruncated`, `MalformedFrontmatter`, `BannedScript`, `LongContent`, `CustomComponents`, `SmallContainer`, `LargeContainer`. (#TBD)
1572
+ - **Whiteboard engine — view-only primitive funcional (2026-05-18)** — `@theokit/ui/whiteboard` agora renderiza JSON declarativo (`WhiteboardData`) como SVG com estética hand-drawn estilo Excalidraw. **Sete tipos** de elemento suportados: `rect`, `ellipse`, `diamond`, `line`, `arrow`, `text`, `freedraw`. **Pan + zoom built-in** via `viewBox` (wheel = zoom-to-cursor, mouse drag = pan, Space = hand mode, pinch touch supported). **Prop `fitOnLoad`** centra automaticamente os elementos na viewport. Schema Zod com clamps de sanidade (EC-3 `.finite()` rejeita NaN/Infinity; EC-4 `.max(20000)` em dimensões; `.max(500)` em labels; `.max(5000)` em text e points/elements). `<Whiteboard>` valida JSON em `useMemo`, dispara `onValidationError` em `useEffect` (EC-6 — nunca durante render), e cai em SVG vazio com `data-whiteboard-state="invalid"` quando o JSON falha. SSR-safe (`renderToString` produz markup estático correto). `roughjs` + `perfect-freehand` são peer-deps **opcionais**; `zod` entra em `dependencies` regulares (EC-5 opção A). Bundle isolado em `dist/whiteboard/index.js` (21.53KB ESM); barrel principal `dist/index.js` **inalterado** (320.41KB). RFC `docs/rfcs/0001-whiteboard.md` status `Implemented`. 86 testes específicos do Whiteboard verdes + 776 testes totais do projeto. Stories Ladle: `Empty`, `Flowchart`, `Architecture`, `FreedrawSketch`, `MixedAll`, `InvalidJSON`. (#TBD)
1007
1573
  - **`scripts/validate-bundle-size.ts` ganha gate EC-1 anti-leak** — Após o check de tamanho, faz `grep` em `dist/index.js` por strings `roughjs` e `perfect-freehand`; falha o build se qualquer engine peer-dep aparecer no barrel. Previne regressões silenciosas onde uma engine vaze para o barrel principal e arraste KBs extras para todos os consumers, mesmo os que só usam shadcn primitives. Runtime-metric proof: `grep -c "roughjs\\|perfect-freehand" dist/index.js → 0` confirmado em 2026-05-18. (#TBD)
1008
1574
  - **`scripts/sync-exports.ts` ganha `ISOLATED_SUBPATHS`** — novo array de overrides para subpaths que devem apontar para `dist/<engine>/index.js` próprio, não re-export do barrel. Detecta colisão com auto-scanned subpaths e lança Error explícito. Suporta a regra de bundle isolation por engine declarada em `CLAUDE.md > Roadmap`. Cobertura via novo `scripts/sync-exports.test.ts` (6 testes). (#TBD)
1009
1575
  - **`tsup.config.ts` ganha multi-entry** — `entry` agora é objeto com `index` (barrel) + `whiteboard/index` (engine). External list inclui `roughjs`, `/^roughjs\//` e `perfect-freehand` para garantir que o engine bundle não vendoriza essas libs e o barrel não vaza. Build produz `dist/whiteboard/index.{js,d.ts}` ao lado de `dist/index.{js,d.ts}` sem afetar tamanho do barrel. (#TBD)
@@ -1014,7 +1580,7 @@ preserves rendered markup for callers that don't pass `size`.
1014
1580
  ## [0.1.0-next.0] - 2026-05-16
1015
1581
 
1016
1582
  First public pre-release on npm under the `next` dist-tag. Install with
1017
- `pnpm add @usetheo/ui@next` (the default `latest` tag is intentionally
1583
+ `pnpm add @theokit/ui@next` (the default `latest` tag is intentionally
1018
1584
  unset until 1.0). Highlights from the agent-team-audit-fixes-2026-05-16
1019
1585
  remediation sprint:
1020
1586
 
@@ -1036,15 +1602,15 @@ remediation sprint:
1036
1602
  - **Migration**:
1037
1603
  ```tsx
1038
1604
  // Before
1039
- import { ThemeProvider } from "@usetheo/ui";
1605
+ import { ThemeProvider } from "@theokit/ui";
1040
1606
  <ThemeProvider>...</ThemeProvider>
1041
1607
 
1042
1608
  // After — option A (recommended for parity with old behavior)
1043
- import { ThemeProvider, builtinThemes } from "@usetheo/ui";
1609
+ import { ThemeProvider, builtinThemes } from "@theokit/ui";
1044
1610
  <ThemeProvider themes={builtinThemes}>...</ThemeProvider>
1045
1611
 
1046
1612
  // After — option B (new in v0.1.0-next.0)
1047
- import { TheoUIProvider } from "@usetheo/ui";
1613
+ import { TheoUIProvider } from "@theokit/ui";
1048
1614
  <TheoUIProvider>...</TheoUIProvider>
1049
1615
  ```
1050
1616
  - **Why this is acceptable pre-1.0**: package is `0.0.0` and never published; first public release will be `0.1.0-next.0`. No external consumers exist yet (validated via `npm view`).
@@ -1059,22 +1625,22 @@ remediation sprint:
1059
1625
  - **`scripts/validate-registry.ts`** — `targetToItemName` reverse map resolves `@/components/ui/<target>` imports to the registry item that ships that file (fix for multi-file items like `toast` which ships `toaster.tsx`).
1060
1626
 
1061
1627
  ### Documentation (Agent-team audit fixes, 2026-05-16)
1062
- - **`PITCH.md`** — removed false claim that `npx create-theokit my-app` already imports `@usetheo/ui` when picking the dashboard template (verified via `grep -r "@usetheo/ui" /home/paulo/Projetos/usetheo/theokit/` returning zero matches). Replaced with honest "TheoKit integration is on the roadmap." Aligned tertiary CTAs with reality (substituted dead `docs.usetheo.dev/ui` with GitHub anchor).
1628
+ - **`PITCH.md`** — removed false claim that `npx create-theokit my-app` already imports `@theokit/ui` when picking the dashboard template (verified via `grep -r "@theokit/ui" /home/paulo/Projetos/usetheo/theokit/` returning zero matches). Replaced with honest "TheoKit integration is on the roadmap." Aligned tertiary CTAs with reality (substituted dead `docs.usetheo.dev/ui` with GitHub anchor).
1063
1629
  - **`README.md`** — updated `pnpm quality:gates` pipeline listing to match `package.json#scripts['quality:gates']` exactly: now lists 11 gates (`format:check` → `lint:ci` → `typecheck` → `test` → `build` → `registry:build` → `registry:validate` → `quality:structure` → `quality:bundle` → `quality:a11y` → `ladle:build`). Previous text omitted `quality:bundle` and `quality:a11y`.
1064
1630
  - **CHANGELOG correction** — earlier entry under "Phase 3 — Build correctness + exports surface" stated `validateExportsMap` "locks `package.json#exports` to the canonical 5-entry set". Since commit `77b2f7a` (`feat(exports): subpath import for every component`) the strategy expanded to 107+ subpath entries generated by `scripts/sync-exports.ts`. Authoritative source is `package.json` itself. Prior entries in versioned releases stay immutable per Keep a Changelog; this correction lives in `[Unreleased]`.
1065
1631
 
1066
1632
  ### Added (Pitch + Voice and Tone formalization, 2026-05-15)
1067
- - **`PITCH.md`** at project root — landing-page copy for `@usetheo/ui` (Violet Forge) using the TheoKit aspirational voice. Three layers: HERO (no jargon), BODY (benefit-first with one technical anchor per item), DEEP DIVE (full technical vocabulary, after the `## How it works` delimiter). Companion to `README.md` for marketing surfaces; verified component counts and quality metrics against `README.md` and `src/`.
1068
- - **`CLAUDE.md`** at project root — contract between Claude and this project. Defines what TheoUI is, the locked names (npm package, theme names, registry endpoint, module format, component taxonomy), the Voice and Tone section that formalizes adoption of the TheoKit aspirational voice for public copy (strategic review dated 2026-05-15), the relationship to the other usetheo pillars (Harness, Skills, Runtime), and the quality-gate non-bypass rule.
1633
+ - **`PITCH.md`** at project root — landing-page copy for `@theokit/ui` (Violet Forge) using the TheoKit aspirational voice. Three layers: HERO (no jargon), BODY (benefit-first with one technical anchor per item), DEEP DIVE (full technical vocabulary, after the `## How it works` delimiter). Companion to `README.md` for marketing surfaces; verified component counts and quality metrics against `README.md` and `src/`.
1634
+ - **`CLAUDE.md`** at project root — contract between Claude and this project. Defines what TheoUI is, the locked names (npm package, theme names, registry endpoint, module format, component taxonomy), the Voice and Tone section that formalizes adoption of the TheoKit aspirational voice for public copy (strategic review dated 2026-05-15), the relationship to the other Theo pillars (Harness, Skills, Runtime), and the quality-gate non-bypass rule.
1069
1635
 
1070
1636
  ### Changed (Cross-project, 2026-05-15)
1071
1637
  - Root monorepo `CLAUDE.md` (`../CLAUDE.md`) `## Voice and Tone — sub-project scoped` section: TheoUI moved from the "technical-direct only" list to the aspirational-voice list, alongside TheoKit and TheoKit-SDK. Rationale captured inline (TheoUI is the visual surface every other product inherits from; benefits from outcome-shaped framing on landing copy).
1072
1638
  - Root monorepo sub-project index: `theo-ui` "Read first" pointer updated from `theo-ui/README.md` to `theo-ui/CLAUDE.md` (was a fallback because no `CLAUDE.md` existed in this project until today).
1073
1639
 
1074
1640
  ### Changed (README alignment with PITCH, 2026-05-15)
1075
- - `README.md` HERO + BODY layers rewritten in the TheoKit aspirational voice to match `PITCH.md`. New h1: *"The UI your agent already needs."* Tagline calls out the 102 agent-shaped components. `@usetheo/ui` demoted from h1 to a small tag above it (discoverability preserved without dominating the HERO).
1076
- - Added `## The shift` storytelling block between the HERO and `## Why @usetheo/ui`.
1077
- - `## Why @usetheo/ui` now closes with the comparison table from `PITCH.md` (`@usetheo/ui` vs shadcn/Radix, Tremor, build-yourself) and the punch line *"Same Radix UI underneath as shadcn — no philosophy fight. We just shipped the next 102 components you were about to write."*
1641
+ - `README.md` HERO + BODY layers rewritten in the TheoKit aspirational voice to match `PITCH.md`. New h1: *"The UI your agent already needs."* Tagline calls out the 102 agent-shaped components. `@theokit/ui` demoted from h1 to a small tag above it (discoverability preserved without dominating the HERO).
1642
+ - Added `## The shift` storytelling block between the HERO and `## Why @theokit/ui`.
1643
+ - `## Why @theokit/ui` now closes with the comparison table from `PITCH.md` (`@theokit/ui` vs shadcn/Radix, Tremor, build-yourself) and the punch line *"Same Radix UI underneath as shadcn — no philosophy fight. We just shipped the next 102 components you were about to write."*
1078
1644
  - Added `## What you'd build` (5 concrete surfaces) before `## Quickstart`.
1079
1645
  - Added `## How it works` DEEP DIVE delimiter before `## Quickstart`; everything from there downward stays technical-direct.
1080
1646
  - Quickstart code sample swapped from a generic `<Button>` example to `<AgentEvent>` + `<ToolCall>` + `<DeploymentRow>` — agent-shaped primitives nobody else ships.
@@ -1129,8 +1695,8 @@ remediation sprint:
1129
1695
 
1130
1696
  ### Changed (HIGH-002 / T4.1 — self-hosted fonts as default)
1131
1697
  - **`src/styles/fonts.css` no longer `@import`s from `fonts.googleapis.com`.** Now declares six `@font-face` rules pointing at `./fonts/geist-{400,500,600}.woff2` and `./fonts/geist-mono-{400,500,600}.woff2`. Total asset budget: ~290 KB of woff2 next to the CSS. Eliminates the render-blocking third-party fetch that previously hit `fonts.googleapis.com` on every cold page load — fixes GDPR / CSP friction for the enterprise audience.
1132
- - `src/styles/fonts-cdn.css` (NEW) — opt-in entrypoint that preserves the legacy Google Fonts CDN behavior. Consumers who prefer not to host static assets can `@import "@usetheo/ui/fonts-cdn.css"` instead of `@usetheo/ui/fonts.css` / `@usetheo/ui/styles.css`.
1133
- - `tsup.config.ts` `onSuccess` now also copies `src/styles/fonts/*.woff2` → `dist/fonts/` and `src/styles/fonts-cdn.css` → `dist/fonts-cdn.css`. The relative URLs in `fonts.css` (`./fonts/geist-400.woff2`) resolve correctly inside `node_modules/@usetheo/ui/dist/`.
1698
+ - `src/styles/fonts-cdn.css` (NEW) — opt-in entrypoint that preserves the legacy Google Fonts CDN behavior. Consumers who prefer not to host static assets can `@import "@theokit/ui/fonts-cdn.css"` instead of `@theokit/ui/fonts.css` / `@theokit/ui/styles.css`.
1699
+ - `tsup.config.ts` `onSuccess` now also copies `src/styles/fonts/*.woff2` → `dist/fonts/` and `src/styles/fonts-cdn.css` → `dist/fonts-cdn.css`. The relative URLs in `fonts.css` (`./fonts/geist-400.woff2`) resolve correctly inside `node_modules/@theokit/ui/dist/`.
1134
1700
  - Geist OFL license shipped at `src/styles/fonts/LICENSE-GEIST.txt` → `dist/fonts/LICENSE-GEIST.txt`. Apache-2.0 + OFL is a clean dual-license combination.
1135
1701
  - New `geist` devDependency: used only as the source of woff2 artifacts at install time; not bundled into `dist/index.js`.
1136
1702
  - `validateDocsTypography` now asserts that `src/styles/fonts.css` contains `@font-face` and does NOT `@import` from `fonts.googleapis.com`, and that `src/styles/fonts-cdn.css` exists.
@@ -1145,7 +1711,7 @@ remediation sprint:
1145
1711
  - `.ladle/generated/welcome.stats.ts` — `welcome.stats.ts` moved out of `src/` (HIGH-003 / T3.3). `sync-readme.ts` writes to the new path; `validateCountConsistency` reads from it. The file no longer ships in the npm tarball.
1146
1712
 
1147
1713
  ### Breaking
1148
- - **Reclassification of 7 components from `primitives/` to `composites/`** (BLOCKER-001 remediation, D2): `AgentEditor`, `RuleEditor`, `SkillEditor`, `ApprovalCard`, `CronJobsList`, `SkillsList`, `MCPServerList`. Each value-imported one or more sibling primitives, which violated the mechanical taxonomy rule in `docs/architecture.md`. They are composites by every reasonable definition (FormField+Input+Button = composite; list-of-card = composite). Public barrel (`@usetheo/ui`) is unchanged — named exports preserved. Registry consumers via `npx shadcn add`: `type` changed from `registry:ui` to `registry:block` and `target` from `components/ui/<name>` to `components/blocks/<name>`. Migration: re-run `npx shadcn add <name>` to relocate the file, or rename the import path manually.
1714
+ - **Reclassification of 7 components from `primitives/` to `composites/`** (BLOCKER-001 remediation, D2): `AgentEditor`, `RuleEditor`, `SkillEditor`, `ApprovalCard`, `CronJobsList`, `SkillsList`, `MCPServerList`. Each value-imported one or more sibling primitives, which violated the mechanical taxonomy rule in `docs/architecture.md`. They are composites by every reasonable definition (FormField+Input+Button = composite; list-of-card = composite). Public barrel (`@theokit/ui`) is unchanged — named exports preserved. Registry consumers via `npx shadcn add`: `type` changed from `registry:ui` to `registry:block` and `target` from `components/ui/<name>` to `components/blocks/<name>`. Migration: re-run `npx shadcn add <name>` to relocate the file, or rename the import path manually.
1149
1715
  - **`form-field` now imports `@radix-ui/react-label` directly** (BLOCKER-001 / D2 exception). Previously imported the sibling `Label` primitive. `form-field.tsx` now inlines the same Radix LabelPrimitive + identical Tailwind tokens. Visual parity preserved. `registry/form-field.json` adds `@radix-ui/react-label` to `dependencies` and removes `label` from `registryDependencies`.
1150
1716
 
1151
1717
  ### Fixed