@theokit/ui 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (715) hide show
  1. package/CHANGELOG.md +1325 -0
  2. package/DESIGN.md +456 -0
  3. package/LICENSE +201 -0
  4. package/NOTICE +38 -0
  5. package/README.md +467 -0
  6. package/dist/chunk-27ENTTY7.js +146 -0
  7. package/dist/chunk-27ENTTY7.js.map +1 -0
  8. package/dist/chunk-2H6TQELG.js +33 -0
  9. package/dist/chunk-2H6TQELG.js.map +1 -0
  10. package/dist/chunk-2L6MRJD4.js +120 -0
  11. package/dist/chunk-2L6MRJD4.js.map +1 -0
  12. package/dist/chunk-2Y5V2PAL.js +80 -0
  13. package/dist/chunk-2Y5V2PAL.js.map +1 -0
  14. package/dist/chunk-34NAFDVL.js +46 -0
  15. package/dist/chunk-34NAFDVL.js.map +1 -0
  16. package/dist/chunk-36KJGXEK.js +112 -0
  17. package/dist/chunk-36KJGXEK.js.map +1 -0
  18. package/dist/chunk-3BMYYNN6.js +124 -0
  19. package/dist/chunk-3BMYYNN6.js.map +1 -0
  20. package/dist/chunk-3OHV7EEI.js +34 -0
  21. package/dist/chunk-3OHV7EEI.js.map +1 -0
  22. package/dist/chunk-3QKTS6F5.js +88 -0
  23. package/dist/chunk-3QKTS6F5.js.map +1 -0
  24. package/dist/chunk-3TBXLYNM.js +42 -0
  25. package/dist/chunk-3TBXLYNM.js.map +1 -0
  26. package/dist/chunk-4AM2HSXU.js +67 -0
  27. package/dist/chunk-4AM2HSXU.js.map +1 -0
  28. package/dist/chunk-4BCGKM65.js +44 -0
  29. package/dist/chunk-4BCGKM65.js.map +1 -0
  30. package/dist/chunk-4D3JILQX.js +145 -0
  31. package/dist/chunk-4D3JILQX.js.map +1 -0
  32. package/dist/chunk-4EJU2GBG.js +48 -0
  33. package/dist/chunk-4EJU2GBG.js.map +1 -0
  34. package/dist/chunk-4WKO3G5C.js +110 -0
  35. package/dist/chunk-4WKO3G5C.js.map +1 -0
  36. package/dist/chunk-53XPKI7Q.js +97 -0
  37. package/dist/chunk-53XPKI7Q.js.map +1 -0
  38. package/dist/chunk-55TDVDPG.js +58 -0
  39. package/dist/chunk-55TDVDPG.js.map +1 -0
  40. package/dist/chunk-56BJLFW7.js +26 -0
  41. package/dist/chunk-56BJLFW7.js.map +1 -0
  42. package/dist/chunk-5HOQLE6Y.js +35 -0
  43. package/dist/chunk-5HOQLE6Y.js.map +1 -0
  44. package/dist/chunk-5TY3NYF5.js +144 -0
  45. package/dist/chunk-5TY3NYF5.js.map +1 -0
  46. package/dist/chunk-5VOSCJKQ.js +92 -0
  47. package/dist/chunk-5VOSCJKQ.js.map +1 -0
  48. package/dist/chunk-65NVO6TK.js +171 -0
  49. package/dist/chunk-65NVO6TK.js.map +1 -0
  50. package/dist/chunk-6A5TPCKP.js +64 -0
  51. package/dist/chunk-6A5TPCKP.js.map +1 -0
  52. package/dist/chunk-6CO4LEXZ.js +41 -0
  53. package/dist/chunk-6CO4LEXZ.js.map +1 -0
  54. package/dist/chunk-6FVUPNPG.js +56 -0
  55. package/dist/chunk-6FVUPNPG.js.map +1 -0
  56. package/dist/chunk-76YWTIWK.js +106 -0
  57. package/dist/chunk-76YWTIWK.js.map +1 -0
  58. package/dist/chunk-7EI7424P.js +78 -0
  59. package/dist/chunk-7EI7424P.js.map +1 -0
  60. package/dist/chunk-AHTVYOPQ.js +26 -0
  61. package/dist/chunk-AHTVYOPQ.js.map +1 -0
  62. package/dist/chunk-AJTJNHKK.js +85 -0
  63. package/dist/chunk-AJTJNHKK.js.map +1 -0
  64. package/dist/chunk-AMT3CPMC.js +155 -0
  65. package/dist/chunk-AMT3CPMC.js.map +1 -0
  66. package/dist/chunk-AX5EH73R.js +59 -0
  67. package/dist/chunk-AX5EH73R.js.map +1 -0
  68. package/dist/chunk-B3VAJSZ2.js +35 -0
  69. package/dist/chunk-B3VAJSZ2.js.map +1 -0
  70. package/dist/chunk-B4CQMQ64.js +25 -0
  71. package/dist/chunk-B4CQMQ64.js.map +1 -0
  72. package/dist/chunk-BMRZXT5T.js +115 -0
  73. package/dist/chunk-BMRZXT5T.js.map +1 -0
  74. package/dist/chunk-BYZ6OFH4.js +73 -0
  75. package/dist/chunk-BYZ6OFH4.js.map +1 -0
  76. package/dist/chunk-C55VUQ7N.js +156 -0
  77. package/dist/chunk-C55VUQ7N.js.map +1 -0
  78. package/dist/chunk-D4GEAV4C.js +91 -0
  79. package/dist/chunk-D4GEAV4C.js.map +1 -0
  80. package/dist/chunk-DC43CHAM.js +152 -0
  81. package/dist/chunk-DC43CHAM.js.map +1 -0
  82. package/dist/chunk-DKCRLN35.js +92 -0
  83. package/dist/chunk-DKCRLN35.js.map +1 -0
  84. package/dist/chunk-DN5BUDBI.js +86 -0
  85. package/dist/chunk-DN5BUDBI.js.map +1 -0
  86. package/dist/chunk-DOLKDYMS.js +88 -0
  87. package/dist/chunk-DOLKDYMS.js.map +1 -0
  88. package/dist/chunk-DW34WXCG.js +28 -0
  89. package/dist/chunk-DW34WXCG.js.map +1 -0
  90. package/dist/chunk-DZAAKHGZ.js +135 -0
  91. package/dist/chunk-DZAAKHGZ.js.map +1 -0
  92. package/dist/chunk-E4IRSSHO.js +116 -0
  93. package/dist/chunk-E4IRSSHO.js.map +1 -0
  94. package/dist/chunk-E67WQXBV.js +104 -0
  95. package/dist/chunk-E67WQXBV.js.map +1 -0
  96. package/dist/chunk-EG6IHP3H.js +128 -0
  97. package/dist/chunk-EG6IHP3H.js.map +1 -0
  98. package/dist/chunk-EO7LOXG2.js +82 -0
  99. package/dist/chunk-EO7LOXG2.js.map +1 -0
  100. package/dist/chunk-EWDN56AS.js +24 -0
  101. package/dist/chunk-EWDN56AS.js.map +1 -0
  102. package/dist/chunk-F5P5P2SC.js +141 -0
  103. package/dist/chunk-F5P5P2SC.js.map +1 -0
  104. package/dist/chunk-FAWPRZTM.js +79 -0
  105. package/dist/chunk-FAWPRZTM.js.map +1 -0
  106. package/dist/chunk-FGYJ2WPX.js +36 -0
  107. package/dist/chunk-FGYJ2WPX.js.map +1 -0
  108. package/dist/chunk-GBG3I5I5.js +46 -0
  109. package/dist/chunk-GBG3I5I5.js.map +1 -0
  110. package/dist/chunk-GDMCDW66.js +19 -0
  111. package/dist/chunk-GDMCDW66.js.map +1 -0
  112. package/dist/chunk-H6HSQCOW.js +80 -0
  113. package/dist/chunk-H6HSQCOW.js.map +1 -0
  114. package/dist/chunk-HDM4RCIF.js +111 -0
  115. package/dist/chunk-HDM4RCIF.js.map +1 -0
  116. package/dist/chunk-HNTOGGVD.js +77 -0
  117. package/dist/chunk-HNTOGGVD.js.map +1 -0
  118. package/dist/chunk-HQW2ABO4.js +28 -0
  119. package/dist/chunk-HQW2ABO4.js.map +1 -0
  120. package/dist/chunk-HRDRGZ2Y.js +76 -0
  121. package/dist/chunk-HRDRGZ2Y.js.map +1 -0
  122. package/dist/chunk-HUOVA7SF.js +83 -0
  123. package/dist/chunk-HUOVA7SF.js.map +1 -0
  124. package/dist/chunk-ITA3SNOR.js +133 -0
  125. package/dist/chunk-ITA3SNOR.js.map +1 -0
  126. package/dist/chunk-IYNUPG2G.js +61 -0
  127. package/dist/chunk-IYNUPG2G.js.map +1 -0
  128. package/dist/chunk-JJ65ZI4P.js +199 -0
  129. package/dist/chunk-JJ65ZI4P.js.map +1 -0
  130. package/dist/chunk-JRBGZ6NI.js +106 -0
  131. package/dist/chunk-JRBGZ6NI.js.map +1 -0
  132. package/dist/chunk-K45OO62F.js +108 -0
  133. package/dist/chunk-K45OO62F.js.map +1 -0
  134. package/dist/chunk-KDTKA667.js +67 -0
  135. package/dist/chunk-KDTKA667.js.map +1 -0
  136. package/dist/chunk-KI7KZBSN.js +142 -0
  137. package/dist/chunk-KI7KZBSN.js.map +1 -0
  138. package/dist/chunk-KOJ7XOPZ.js +87 -0
  139. package/dist/chunk-KOJ7XOPZ.js.map +1 -0
  140. package/dist/chunk-KQTHJ22B.js +82 -0
  141. package/dist/chunk-KQTHJ22B.js.map +1 -0
  142. package/dist/chunk-KRC43RZR.js +77 -0
  143. package/dist/chunk-KRC43RZR.js.map +1 -0
  144. package/dist/chunk-LJQOEGQ2.js +116 -0
  145. package/dist/chunk-LJQOEGQ2.js.map +1 -0
  146. package/dist/chunk-LKRNUSKZ.js +149 -0
  147. package/dist/chunk-LKRNUSKZ.js.map +1 -0
  148. package/dist/chunk-LLL7QQ52.js +76 -0
  149. package/dist/chunk-LLL7QQ52.js.map +1 -0
  150. package/dist/chunk-LQ4B5X4Y.js +56 -0
  151. package/dist/chunk-LQ4B5X4Y.js.map +1 -0
  152. package/dist/chunk-M3FSLEHQ.js +76 -0
  153. package/dist/chunk-M3FSLEHQ.js.map +1 -0
  154. package/dist/chunk-M5G3O6H6.js +57 -0
  155. package/dist/chunk-M5G3O6H6.js.map +1 -0
  156. package/dist/chunk-M6JIC5PU.js +81 -0
  157. package/dist/chunk-M6JIC5PU.js.map +1 -0
  158. package/dist/chunk-N2HJ3SLS.js +186 -0
  159. package/dist/chunk-N2HJ3SLS.js.map +1 -0
  160. package/dist/chunk-NGZWBFTP.js +45 -0
  161. package/dist/chunk-NGZWBFTP.js.map +1 -0
  162. package/dist/chunk-OAKCXT35.js +34 -0
  163. package/dist/chunk-OAKCXT35.js.map +1 -0
  164. package/dist/chunk-OSD3U3HT.js +54 -0
  165. package/dist/chunk-OSD3U3HT.js.map +1 -0
  166. package/dist/chunk-OUXESQ2R.js +42 -0
  167. package/dist/chunk-OUXESQ2R.js.map +1 -0
  168. package/dist/chunk-OY2LJHMJ.js +43 -0
  169. package/dist/chunk-OY2LJHMJ.js.map +1 -0
  170. package/dist/chunk-OYEZR4CN.js +221 -0
  171. package/dist/chunk-OYEZR4CN.js.map +1 -0
  172. package/dist/chunk-P57HUMAE.js +66 -0
  173. package/dist/chunk-P57HUMAE.js.map +1 -0
  174. package/dist/chunk-P6Y2PI6L.js +82 -0
  175. package/dist/chunk-P6Y2PI6L.js.map +1 -0
  176. package/dist/chunk-PA7TDXUQ.js +51 -0
  177. package/dist/chunk-PA7TDXUQ.js.map +1 -0
  178. package/dist/chunk-PPBGGNPV.js +112 -0
  179. package/dist/chunk-PPBGGNPV.js.map +1 -0
  180. package/dist/chunk-PRH4HKND.js +48 -0
  181. package/dist/chunk-PRH4HKND.js.map +1 -0
  182. package/dist/chunk-PSPAZJUQ.js +32 -0
  183. package/dist/chunk-PSPAZJUQ.js.map +1 -0
  184. package/dist/chunk-Q5G5CGZ2.js +170 -0
  185. package/dist/chunk-Q5G5CGZ2.js.map +1 -0
  186. package/dist/chunk-QDAF3LP7.js +89 -0
  187. package/dist/chunk-QDAF3LP7.js.map +1 -0
  188. package/dist/chunk-QGVIGNJ3.js +37 -0
  189. package/dist/chunk-QGVIGNJ3.js.map +1 -0
  190. package/dist/chunk-QNUITYSY.js +68 -0
  191. package/dist/chunk-QNUITYSY.js.map +1 -0
  192. package/dist/chunk-QSWVN3RT.js +116 -0
  193. package/dist/chunk-QSWVN3RT.js.map +1 -0
  194. package/dist/chunk-QTLQZ7OJ.js +110 -0
  195. package/dist/chunk-QTLQZ7OJ.js.map +1 -0
  196. package/dist/chunk-QYAMLIG2.js +84 -0
  197. package/dist/chunk-QYAMLIG2.js.map +1 -0
  198. package/dist/chunk-REILH4XF.js +128 -0
  199. package/dist/chunk-REILH4XF.js.map +1 -0
  200. package/dist/chunk-S6SSK6QX.js +80 -0
  201. package/dist/chunk-S6SSK6QX.js.map +1 -0
  202. package/dist/chunk-SA7ED3PN.js +68 -0
  203. package/dist/chunk-SA7ED3PN.js.map +1 -0
  204. package/dist/chunk-SIJOEM4N.js +55 -0
  205. package/dist/chunk-SIJOEM4N.js.map +1 -0
  206. package/dist/chunk-SLOKAAH2.js +70 -0
  207. package/dist/chunk-SLOKAAH2.js.map +1 -0
  208. package/dist/chunk-TR6NPSMX.js +85 -0
  209. package/dist/chunk-TR6NPSMX.js.map +1 -0
  210. package/dist/chunk-TSZ5DEAT.js +106 -0
  211. package/dist/chunk-TSZ5DEAT.js.map +1 -0
  212. package/dist/chunk-TUNVF45W.js +127 -0
  213. package/dist/chunk-TUNVF45W.js.map +1 -0
  214. package/dist/chunk-TXOBNSQ5.js +63 -0
  215. package/dist/chunk-TXOBNSQ5.js.map +1 -0
  216. package/dist/chunk-U44DRLMM.js +88 -0
  217. package/dist/chunk-U44DRLMM.js.map +1 -0
  218. package/dist/chunk-U4THNRV5.js +114 -0
  219. package/dist/chunk-U4THNRV5.js.map +1 -0
  220. package/dist/chunk-UAZOFC4W.js +72 -0
  221. package/dist/chunk-UAZOFC4W.js.map +1 -0
  222. package/dist/chunk-UGKI466V.js +12 -0
  223. package/dist/chunk-UGKI466V.js.map +1 -0
  224. package/dist/chunk-VM4RMQQN.js +11 -0
  225. package/dist/chunk-VM4RMQQN.js.map +1 -0
  226. package/dist/chunk-VQ37VLAS.js +54 -0
  227. package/dist/chunk-VQ37VLAS.js.map +1 -0
  228. package/dist/chunk-VT7VSYH5.js +73 -0
  229. package/dist/chunk-VT7VSYH5.js.map +1 -0
  230. package/dist/chunk-VTIRUCLZ.js +57 -0
  231. package/dist/chunk-VTIRUCLZ.js.map +1 -0
  232. package/dist/chunk-VVBAEYKI.js +202 -0
  233. package/dist/chunk-VVBAEYKI.js.map +1 -0
  234. package/dist/chunk-WHFIQUCC.js +120 -0
  235. package/dist/chunk-WHFIQUCC.js.map +1 -0
  236. package/dist/chunk-WPSESV5Z.js +74 -0
  237. package/dist/chunk-WPSESV5Z.js.map +1 -0
  238. package/dist/chunk-WXEXCHEN.js +51 -0
  239. package/dist/chunk-WXEXCHEN.js.map +1 -0
  240. package/dist/chunk-X2DDPD3D.js +113 -0
  241. package/dist/chunk-X2DDPD3D.js.map +1 -0
  242. package/dist/chunk-X7VIMKLD.js +127 -0
  243. package/dist/chunk-X7VIMKLD.js.map +1 -0
  244. package/dist/chunk-XJ3EG6XY.js +30 -0
  245. package/dist/chunk-XJ3EG6XY.js.map +1 -0
  246. package/dist/chunk-XOT5HWSF.js +23 -0
  247. package/dist/chunk-XOT5HWSF.js.map +1 -0
  248. package/dist/chunk-Y72IP43U.js +117 -0
  249. package/dist/chunk-Y72IP43U.js.map +1 -0
  250. package/dist/chunk-YD6FLXBV.js +61 -0
  251. package/dist/chunk-YD6FLXBV.js.map +1 -0
  252. package/dist/chunk-YEQQGYYO.js +1022 -0
  253. package/dist/chunk-YEQQGYYO.js.map +1 -0
  254. package/dist/chunk-YYW6AEIT.js +46 -0
  255. package/dist/chunk-YYW6AEIT.js.map +1 -0
  256. package/dist/chunk-ZEVGXKRU.js +104 -0
  257. package/dist/chunk-ZEVGXKRU.js.map +1 -0
  258. package/dist/chunk-ZKSMMLDP.js +74 -0
  259. package/dist/chunk-ZKSMMLDP.js.map +1 -0
  260. package/dist/chunk-ZU6IM6PK.js +101 -0
  261. package/dist/chunk-ZU6IM6PK.js.map +1 -0
  262. package/dist/chunk-ZUS5KZGO.js +714 -0
  263. package/dist/chunk-ZUS5KZGO.js.map +1 -0
  264. package/dist/chunk-ZVS2GOT2.js +58 -0
  265. package/dist/chunk-ZVS2GOT2.js.map +1 -0
  266. package/dist/chunk-ZXPDS6DH.js +3 -0
  267. package/dist/chunk-ZXPDS6DH.js.map +1 -0
  268. package/dist/chunk-ZZQQJX5Z.js +173 -0
  269. package/dist/chunk-ZZQQJX5Z.js.map +1 -0
  270. package/dist/components.css +2 -0
  271. package/dist/composites/account-menu/index.js +6 -0
  272. package/dist/composites/account-menu/index.js.map +1 -0
  273. package/dist/composites/agent-composer/index.js +7 -0
  274. package/dist/composites/agent-composer/index.js.map +1 -0
  275. package/dist/composites/agent-editor/index.js +10 -0
  276. package/dist/composites/agent-editor/index.js.map +1 -0
  277. package/dist/composites/agent-stream/index.js +12 -0
  278. package/dist/composites/agent-stream/index.js.map +1 -0
  279. package/dist/composites/agent-timeline/index.js +5 -0
  280. package/dist/composites/agent-timeline/index.js.map +1 -0
  281. package/dist/composites/approval-card/index.js +5 -0
  282. package/dist/composites/approval-card/index.js.map +1 -0
  283. package/dist/composites/chat-composer/index.js +6 -0
  284. package/dist/composites/chat-composer/index.js.map +1 -0
  285. package/dist/composites/chat-message/index.js +6 -0
  286. package/dist/composites/chat-message/index.js.map +1 -0
  287. package/dist/composites/code-block/index.js +5 -0
  288. package/dist/composites/code-block/index.js.map +1 -0
  289. package/dist/composites/command-palette/index.js +5 -0
  290. package/dist/composites/command-palette/index.js.map +1 -0
  291. package/dist/composites/confirm-dialog/index.js +7 -0
  292. package/dist/composites/confirm-dialog/index.js.map +1 -0
  293. package/dist/composites/cron-jobs-list/index.js +5 -0
  294. package/dist/composites/cron-jobs-list/index.js.map +1 -0
  295. package/dist/composites/data-table/index.js +10 -0
  296. package/dist/composites/data-table/index.js.map +1 -0
  297. package/dist/composites/deployment-row/index.js +5 -0
  298. package/dist/composites/deployment-row/index.js.map +1 -0
  299. package/dist/composites/domain-config/index.js +7 -0
  300. package/dist/composites/domain-config/index.js.map +1 -0
  301. package/dist/composites/env-var-editor/index.js +7 -0
  302. package/dist/composites/env-var-editor/index.js.map +1 -0
  303. package/dist/composites/mcp-server-list/index.js +5 -0
  304. package/dist/composites/mcp-server-list/index.js.map +1 -0
  305. package/dist/composites/page-shell/index.js +7 -0
  306. package/dist/composites/page-shell/index.js.map +1 -0
  307. package/dist/composites/permission-modal/index.js +6 -0
  308. package/dist/composites/permission-modal/index.js.map +1 -0
  309. package/dist/composites/preview-env-card/index.js +6 -0
  310. package/dist/composites/preview-env-card/index.js.map +1 -0
  311. package/dist/composites/preview-panel/index.js +5 -0
  312. package/dist/composites/preview-panel/index.js.map +1 -0
  313. package/dist/composites/project-card/index.js +6 -0
  314. package/dist/composites/project-card/index.js.map +1 -0
  315. package/dist/composites/rollback-ui/index.js +6 -0
  316. package/dist/composites/rollback-ui/index.js.map +1 -0
  317. package/dist/composites/rule-editor/index.js +11 -0
  318. package/dist/composites/rule-editor/index.js.map +1 -0
  319. package/dist/composites/skill-editor/index.js +11 -0
  320. package/dist/composites/skill-editor/index.js.map +1 -0
  321. package/dist/composites/skills-list/index.js +5 -0
  322. package/dist/composites/skills-list/index.js.map +1 -0
  323. package/dist/composites/stability-bundle-viewer/index.js +4 -0
  324. package/dist/composites/stability-bundle-viewer/index.js.map +1 -0
  325. package/dist/composites/task-header/index.js +5 -0
  326. package/dist/composites/task-header/index.js.map +1 -0
  327. package/dist/composites/usage-meter/index.js +5 -0
  328. package/dist/composites/usage-meter/index.js.map +1 -0
  329. package/dist/fonts/LICENSE-GEIST.txt +92 -0
  330. package/dist/fonts/geist-400.woff2 +0 -0
  331. package/dist/fonts/geist-500.woff2 +0 -0
  332. package/dist/fonts/geist-600.woff2 +0 -0
  333. package/dist/fonts/geist-mono-400.woff2 +0 -0
  334. package/dist/fonts/geist-mono-500.woff2 +0 -0
  335. package/dist/fonts/geist-mono-600.woff2 +0 -0
  336. package/dist/fonts-cdn.css +28 -0
  337. package/dist/fonts.css +75 -0
  338. package/dist/index.d.ts +4621 -0
  339. package/dist/index.js +1338 -0
  340. package/dist/index.js.map +1 -0
  341. package/dist/plugin-D5xmXqYb.d.ts +172 -0
  342. package/dist/preset-v3-legacy.d.ts +35 -0
  343. package/dist/preset-v3-legacy.js +159 -0
  344. package/dist/preset-v3-legacy.js.map +1 -0
  345. package/dist/preset.css +27 -0
  346. package/dist/primitives/action-bar/index.js +4 -0
  347. package/dist/primitives/action-bar/index.js.map +1 -0
  348. package/dist/primitives/agent-error-card/index.js +5 -0
  349. package/dist/primitives/agent-error-card/index.js.map +1 -0
  350. package/dist/primitives/agent-event/index.js +4 -0
  351. package/dist/primitives/agent-event/index.js.map +1 -0
  352. package/dist/primitives/agent-handoff/index.js +4 -0
  353. package/dist/primitives/agent-handoff/index.js.map +1 -0
  354. package/dist/primitives/agent-profile/index.js +4 -0
  355. package/dist/primitives/agent-profile/index.js.map +1 -0
  356. package/dist/primitives/agent-starting-state/index.js +5 -0
  357. package/dist/primitives/agent-starting-state/index.js.map +1 -0
  358. package/dist/primitives/agent-streaming/index.js +5 -0
  359. package/dist/primitives/agent-streaming/index.js.map +1 -0
  360. package/dist/primitives/alert/index.js +4 -0
  361. package/dist/primitives/alert/index.js.map +1 -0
  362. package/dist/primitives/artifact-preview/index.js +4 -0
  363. package/dist/primitives/artifact-preview/index.js.map +1 -0
  364. package/dist/primitives/attachment-chip/index.js +4 -0
  365. package/dist/primitives/attachment-chip/index.js.map +1 -0
  366. package/dist/primitives/audit-log-entry/index.js +4 -0
  367. package/dist/primitives/audit-log-entry/index.js.map +1 -0
  368. package/dist/primitives/auto-compact-notice/index.js +5 -0
  369. package/dist/primitives/auto-compact-notice/index.js.map +1 -0
  370. package/dist/primitives/avatar/index.js +4 -0
  371. package/dist/primitives/avatar/index.js.map +1 -0
  372. package/dist/primitives/badge/index.js +4 -0
  373. package/dist/primitives/badge/index.js.map +1 -0
  374. package/dist/primitives/branch-indicator/index.js +4 -0
  375. package/dist/primitives/branch-indicator/index.js.map +1 -0
  376. package/dist/primitives/browser-controls/index.js +4 -0
  377. package/dist/primitives/browser-controls/index.js.map +1 -0
  378. package/dist/primitives/build-log-stream/index.js +5 -0
  379. package/dist/primitives/build-log-stream/index.js.map +1 -0
  380. package/dist/primitives/button/index.js +4 -0
  381. package/dist/primitives/button/index.js.map +1 -0
  382. package/dist/primitives/capability-indicator/index.js +4 -0
  383. package/dist/primitives/capability-indicator/index.js.map +1 -0
  384. package/dist/primitives/card/index.js +4 -0
  385. package/dist/primitives/card/index.js.map +1 -0
  386. package/dist/primitives/channel-card/index.js +4 -0
  387. package/dist/primitives/channel-card/index.js.map +1 -0
  388. package/dist/primitives/chat-thread/index.js +5 -0
  389. package/dist/primitives/chat-thread/index.js.map +1 -0
  390. package/dist/primitives/checkbox/index.js +4 -0
  391. package/dist/primitives/checkbox/index.js.map +1 -0
  392. package/dist/primitives/context-card/index.js +4 -0
  393. package/dist/primitives/context-card/index.js.map +1 -0
  394. package/dist/primitives/context-window-bar/index.js +4 -0
  395. package/dist/primitives/context-window-bar/index.js.map +1 -0
  396. package/dist/primitives/copy-button/index.js +4 -0
  397. package/dist/primitives/copy-button/index.js.map +1 -0
  398. package/dist/primitives/cost-meter/index.js +4 -0
  399. package/dist/primitives/cost-meter/index.js.map +1 -0
  400. package/dist/primitives/created-files-card/index.js +4 -0
  401. package/dist/primitives/created-files-card/index.js.map +1 -0
  402. package/dist/primitives/cron-job-card/index.js +4 -0
  403. package/dist/primitives/cron-job-card/index.js.map +1 -0
  404. package/dist/primitives/danger-zone/index.js +4 -0
  405. package/dist/primitives/danger-zone/index.js.map +1 -0
  406. package/dist/primitives/dialog/index.js +4 -0
  407. package/dist/primitives/dialog/index.js.map +1 -0
  408. package/dist/primitives/diff-viewer/index.js +4 -0
  409. package/dist/primitives/diff-viewer/index.js.map +1 -0
  410. package/dist/primitives/dropdown-menu/index.js +4 -0
  411. package/dist/primitives/dropdown-menu/index.js.map +1 -0
  412. package/dist/primitives/empty-state/index.js +4 -0
  413. package/dist/primitives/empty-state/index.js.map +1 -0
  414. package/dist/primitives/export-chat-dialog/index.js +4 -0
  415. package/dist/primitives/export-chat-dialog/index.js.map +1 -0
  416. package/dist/primitives/folder-context-card/index.js +4 -0
  417. package/dist/primitives/folder-context-card/index.js.map +1 -0
  418. package/dist/primitives/folder-selector/index.js +4 -0
  419. package/dist/primitives/folder-selector/index.js.map +1 -0
  420. package/dist/primitives/form-field/index.js +4 -0
  421. package/dist/primitives/form-field/index.js.map +1 -0
  422. package/dist/primitives/gateway-status-indicator/index.js +4 -0
  423. package/dist/primitives/gateway-status-indicator/index.js.map +1 -0
  424. package/dist/primitives/hook-config/index.js +4 -0
  425. package/dist/primitives/hook-config/index.js.map +1 -0
  426. package/dist/primitives/hook-event-log/index.js +4 -0
  427. package/dist/primitives/hook-event-log/index.js.map +1 -0
  428. package/dist/primitives/input/index.js +4 -0
  429. package/dist/primitives/input/index.js.map +1 -0
  430. package/dist/primitives/intent-selector/index.js +4 -0
  431. package/dist/primitives/intent-selector/index.js.map +1 -0
  432. package/dist/primitives/label/index.js +4 -0
  433. package/dist/primitives/label/index.js.map +1 -0
  434. package/dist/primitives/lane-board/index.js +4 -0
  435. package/dist/primitives/lane-board/index.js.map +1 -0
  436. package/dist/primitives/login-split/index.js +4 -0
  437. package/dist/primitives/login-split/index.js.map +1 -0
  438. package/dist/primitives/mcp-server-card/index.js +4 -0
  439. package/dist/primitives/mcp-server-card/index.js.map +1 -0
  440. package/dist/primitives/memory-editor/index.js +4 -0
  441. package/dist/primitives/memory-editor/index.js.map +1 -0
  442. package/dist/primitives/mention-menu/index.js +4 -0
  443. package/dist/primitives/mention-menu/index.js.map +1 -0
  444. package/dist/primitives/metrics-panel/index.js +4 -0
  445. package/dist/primitives/metrics-panel/index.js.map +1 -0
  446. package/dist/primitives/model-card/index.js +4 -0
  447. package/dist/primitives/model-card/index.js.map +1 -0
  448. package/dist/primitives/model-selector/index.js +4 -0
  449. package/dist/primitives/model-selector/index.js.map +1 -0
  450. package/dist/primitives/pagination/index.js +4 -0
  451. package/dist/primitives/pagination/index.js.map +1 -0
  452. package/dist/primitives/permission-matrix/index.js +4 -0
  453. package/dist/primitives/permission-matrix/index.js.map +1 -0
  454. package/dist/primitives/pin-input/index.js +4 -0
  455. package/dist/primitives/pin-input/index.js.map +1 -0
  456. package/dist/primitives/plan-badge/index.js +4 -0
  457. package/dist/primitives/plan-badge/index.js.map +1 -0
  458. package/dist/primitives/progress/index.js +4 -0
  459. package/dist/primitives/progress/index.js.map +1 -0
  460. package/dist/primitives/progress-checklist/index.js +4 -0
  461. package/dist/primitives/progress-checklist/index.js.map +1 -0
  462. package/dist/primitives/project-switcher/index.js +4 -0
  463. package/dist/primitives/project-switcher/index.js.map +1 -0
  464. package/dist/primitives/quick-action-chips/index.js +4 -0
  465. package/dist/primitives/quick-action-chips/index.js.map +1 -0
  466. package/dist/primitives/radio-group/index.js +4 -0
  467. package/dist/primitives/radio-group/index.js.map +1 -0
  468. package/dist/primitives/recent-folders-list/index.js +4 -0
  469. package/dist/primitives/recent-folders-list/index.js.map +1 -0
  470. package/dist/primitives/rule-card/index.js +4 -0
  471. package/dist/primitives/rule-card/index.js.map +1 -0
  472. package/dist/primitives/run-stats/index.js +4 -0
  473. package/dist/primitives/run-stats/index.js.map +1 -0
  474. package/dist/primitives/run-status-pill/index.js +4 -0
  475. package/dist/primitives/run-status-pill/index.js.map +1 -0
  476. package/dist/primitives/running-tasks-panel/index.js +4 -0
  477. package/dist/primitives/running-tasks-panel/index.js.map +1 -0
  478. package/dist/primitives/scroll-area/index.js +4 -0
  479. package/dist/primitives/scroll-area/index.js.map +1 -0
  480. package/dist/primitives/select/index.js +4 -0
  481. package/dist/primitives/select/index.js.map +1 -0
  482. package/dist/primitives/session-list-item/index.js +4 -0
  483. package/dist/primitives/session-list-item/index.js.map +1 -0
  484. package/dist/primitives/session-timeline/index.js +4 -0
  485. package/dist/primitives/session-timeline/index.js.map +1 -0
  486. package/dist/primitives/sheet/index.js +4 -0
  487. package/dist/primitives/sheet/index.js.map +1 -0
  488. package/dist/primitives/sidebar/index.js +4 -0
  489. package/dist/primitives/sidebar/index.js.map +1 -0
  490. package/dist/primitives/skeleton/index.js +5 -0
  491. package/dist/primitives/skeleton/index.js.map +1 -0
  492. package/dist/primitives/skill-card/index.js +4 -0
  493. package/dist/primitives/skill-card/index.js.map +1 -0
  494. package/dist/primitives/social-auth-row/index.js +4 -0
  495. package/dist/primitives/social-auth-row/index.js.map +1 -0
  496. package/dist/primitives/stat-tile/index.js +4 -0
  497. package/dist/primitives/stat-tile/index.js.map +1 -0
  498. package/dist/primitives/status-dot/index.js +4 -0
  499. package/dist/primitives/status-dot/index.js.map +1 -0
  500. package/dist/primitives/steps-rail/index.js +4 -0
  501. package/dist/primitives/steps-rail/index.js.map +1 -0
  502. package/dist/primitives/sub-agent-dispatch/index.js +4 -0
  503. package/dist/primitives/sub-agent-dispatch/index.js.map +1 -0
  504. package/dist/primitives/switch/index.js +4 -0
  505. package/dist/primitives/switch/index.js.map +1 -0
  506. package/dist/primitives/system-prompt-editor/index.js +4 -0
  507. package/dist/primitives/system-prompt-editor/index.js.map +1 -0
  508. package/dist/primitives/table/index.js +4 -0
  509. package/dist/primitives/table/index.js.map +1 -0
  510. package/dist/primitives/tabs/index.js +4 -0
  511. package/dist/primitives/tabs/index.js.map +1 -0
  512. package/dist/primitives/task-plan/index.js +4 -0
  513. package/dist/primitives/task-plan/index.js.map +1 -0
  514. package/dist/primitives/terminal-panel/index.js +5 -0
  515. package/dist/primitives/terminal-panel/index.js.map +1 -0
  516. package/dist/primitives/textarea/index.js +4 -0
  517. package/dist/primitives/textarea/index.js.map +1 -0
  518. package/dist/primitives/thinking-level-selector/index.js +4 -0
  519. package/dist/primitives/thinking-level-selector/index.js.map +1 -0
  520. package/dist/primitives/timestamp/index.js +4 -0
  521. package/dist/primitives/timestamp/index.js.map +1 -0
  522. package/dist/primitives/toast/index.js +4 -0
  523. package/dist/primitives/toast/index.js.map +1 -0
  524. package/dist/primitives/token-usage-chart/index.js +4 -0
  525. package/dist/primitives/token-usage-chart/index.js.map +1 -0
  526. package/dist/primitives/tool-call/index.js +4 -0
  527. package/dist/primitives/tool-call/index.js.map +1 -0
  528. package/dist/primitives/tool-call-card/index.js +4 -0
  529. package/dist/primitives/tool-call-card/index.js.map +1 -0
  530. package/dist/primitives/tool-result/index.js +4 -0
  531. package/dist/primitives/tool-result/index.js.map +1 -0
  532. package/dist/primitives/tools-list/index.js +4 -0
  533. package/dist/primitives/tools-list/index.js.map +1 -0
  534. package/dist/primitives/tooltip/index.js +4 -0
  535. package/dist/primitives/tooltip/index.js.map +1 -0
  536. package/dist/primitives/topnav/index.js +4 -0
  537. package/dist/primitives/topnav/index.js.map +1 -0
  538. package/dist/primitives/update-banner/index.js +4 -0
  539. package/dist/primitives/update-banner/index.js.map +1 -0
  540. package/dist/slide/index.d.ts +212 -0
  541. package/dist/slide/index.js +3 -0
  542. package/dist/slide/index.js.map +1 -0
  543. package/dist/slide/plugins/emoji/index.d.ts +29 -0
  544. package/dist/slide/plugins/emoji/index.js +157 -0
  545. package/dist/slide/plugins/emoji/index.js.map +1 -0
  546. package/dist/slide/plugins/math/index.d.ts +13 -0
  547. package/dist/slide/plugins/math/index.js +145 -0
  548. package/dist/slide/plugins/math/index.js.map +1 -0
  549. package/dist/slide/plugins/mermaid/index.d.ts +55 -0
  550. package/dist/slide/plugins/mermaid/index.js +218 -0
  551. package/dist/slide/plugins/mermaid/index.js.map +1 -0
  552. package/dist/slide/plugins/shiki/index.d.ts +18 -0
  553. package/dist/slide/plugins/shiki/index.js +87 -0
  554. package/dist/slide/plugins/shiki/index.js.map +1 -0
  555. package/dist/slide/themes/default.css +256 -0
  556. package/dist/slide/themes/layouts.css +143 -0
  557. package/dist/slide/themes/violet-forge.css +256 -0
  558. package/dist/slide-deck/index.css +52 -0
  559. package/dist/slide-deck/index.css.map +1 -0
  560. package/dist/slide-deck/index.d.ts +377 -0
  561. package/dist/slide-deck/index.js +1111 -0
  562. package/dist/slide-deck/index.js.map +1 -0
  563. package/dist/styles-v3-legacy.css +88 -0
  564. package/dist/styles.css +137 -0
  565. package/dist/tokens-v4.css +187 -0
  566. package/dist/tokens.css +230 -0
  567. package/dist/vite-plugin.d.ts +29 -0
  568. package/dist/vite-plugin.js +76 -0
  569. package/dist/vite-plugin.js.map +1 -0
  570. package/dist/whiteboard/index.d.ts +258 -0
  571. package/dist/whiteboard/index.js +738 -0
  572. package/dist/whiteboard/index.js.map +1 -0
  573. package/llms.txt +273 -0
  574. package/package.json +800 -0
  575. package/registry/index.json +856 -0
  576. package/registry/r/account-menu.json +24 -0
  577. package/registry/r/action-bar.json +22 -0
  578. package/registry/r/agent-composer.json +22 -0
  579. package/registry/r/agent-editor.json +27 -0
  580. package/registry/r/agent-error-card.json +22 -0
  581. package/registry/r/agent-event.json +24 -0
  582. package/registry/r/agent-handoff.json +22 -0
  583. package/registry/r/agent-profile.json +23 -0
  584. package/registry/r/agent-starting-state.json +22 -0
  585. package/registry/r/agent-stream.json +27 -0
  586. package/registry/r/agent-streaming.json +22 -0
  587. package/registry/r/agent-timeline.json +22 -0
  588. package/registry/r/agent-types.json +15 -0
  589. package/registry/r/alert.json +22 -0
  590. package/registry/r/approval-card.json +25 -0
  591. package/registry/r/artifact-preview.json +22 -0
  592. package/registry/r/attachment-chip.json +24 -0
  593. package/registry/r/audit-log-entry.json +23 -0
  594. package/registry/r/auto-compact-notice.json +22 -0
  595. package/registry/r/avatar.json +23 -0
  596. package/registry/r/badge.json +22 -0
  597. package/registry/r/browser-controls.json +22 -0
  598. package/registry/r/build-log-stream.json +19 -0
  599. package/registry/r/button.json +23 -0
  600. package/registry/r/capability-indicator.json +23 -0
  601. package/registry/r/card.json +22 -0
  602. package/registry/r/chat-composer.json +23 -0
  603. package/registry/r/chat-message.json +129 -0
  604. package/registry/r/chat-thread.json +20 -0
  605. package/registry/r/chat-types.json +15 -0
  606. package/registry/r/checkbox.json +24 -0
  607. package/registry/r/cn.json +19 -0
  608. package/registry/r/code-block.json +21 -0
  609. package/registry/r/command-palette.json +25 -0
  610. package/registry/r/confirm-dialog.json +25 -0
  611. package/registry/r/context-card.json +23 -0
  612. package/registry/r/context-window-bar.json +20 -0
  613. package/registry/r/copy-button.json +22 -0
  614. package/registry/r/cost-meter.json +22 -0
  615. package/registry/r/created-files-card.json +23 -0
  616. package/registry/r/cron-job-card.json +22 -0
  617. package/registry/r/cron-jobs-list.json +23 -0
  618. package/registry/r/danger-zone.json +20 -0
  619. package/registry/r/data-table.json +27 -0
  620. package/registry/r/deployment-row.json +23 -0
  621. package/registry/r/dialog.json +23 -0
  622. package/registry/r/diff-viewer.json +20 -0
  623. package/registry/r/domain-config.json +25 -0
  624. package/registry/r/dropdown-menu.json +23 -0
  625. package/registry/r/empty-state.json +20 -0
  626. package/registry/r/env-var-editor.json +25 -0
  627. package/registry/r/folder-context-card.json +23 -0
  628. package/registry/r/folder-selector.json +22 -0
  629. package/registry/r/form-field.json +23 -0
  630. package/registry/r/hook-config.json +22 -0
  631. package/registry/r/hook-event-log.json +22 -0
  632. package/registry/r/input.json +22 -0
  633. package/registry/r/intent-selector.json +24 -0
  634. package/registry/r/label.json +22 -0
  635. package/registry/r/lane-board.json +20 -0
  636. package/registry/r/live-region-context.json +16 -0
  637. package/registry/r/login-split.json +20 -0
  638. package/registry/r/mcp-server-card.json +22 -0
  639. package/registry/r/mcp-server-list.json +23 -0
  640. package/registry/r/memory-editor.json +23 -0
  641. package/registry/r/mention-menu.json +23 -0
  642. package/registry/r/metrics-panel.json +22 -0
  643. package/registry/r/mode-types.json +15 -0
  644. package/registry/r/model-card.json +23 -0
  645. package/registry/r/model-selector.json +23 -0
  646. package/registry/r/page-shell.json +25 -0
  647. package/registry/r/pagination.json +22 -0
  648. package/registry/r/permission-matrix.json +22 -0
  649. package/registry/r/permission-modal.json +24 -0
  650. package/registry/r/permission-types.json +15 -0
  651. package/registry/r/pin-input.json +20 -0
  652. package/registry/r/plan-badge.json +20 -0
  653. package/registry/r/preview-env-card.json +25 -0
  654. package/registry/r/preview-panel.json +21 -0
  655. package/registry/r/progress-checklist.json +23 -0
  656. package/registry/r/progress.json +20 -0
  657. package/registry/r/project-card.json +25 -0
  658. package/registry/r/project-switcher.json +22 -0
  659. package/registry/r/quick-action-chips.json +21 -0
  660. package/registry/r/radio-group.json +23 -0
  661. package/registry/r/recent-folders-list.json +22 -0
  662. package/registry/r/rollback-ui.json +24 -0
  663. package/registry/r/rule-card.json +23 -0
  664. package/registry/r/rule-editor.json +28 -0
  665. package/registry/r/rule-types.json +18 -0
  666. package/registry/r/run-stats.json +22 -0
  667. package/registry/r/running-tasks-panel.json +22 -0
  668. package/registry/r/safe-href.json +16 -0
  669. package/registry/r/scroll-area.json +22 -0
  670. package/registry/r/select.json +24 -0
  671. package/registry/r/session-list-item.json +20 -0
  672. package/registry/r/session-timeline.json +22 -0
  673. package/registry/r/sheet.json +24 -0
  674. package/registry/r/sidebar.json +19 -0
  675. package/registry/r/skeleton.json +19 -0
  676. package/registry/r/skill-card.json +24 -0
  677. package/registry/r/skill-editor.json +28 -0
  678. package/registry/r/skills-list.json +23 -0
  679. package/registry/r/slide-deck.json +130 -0
  680. package/registry/r/slide-plugin-emoji.json +28 -0
  681. package/registry/r/slide-plugin-math.json +24 -0
  682. package/registry/r/slide-plugin-mermaid.json +23 -0
  683. package/registry/r/slide-plugin-shiki.json +23 -0
  684. package/registry/r/slide.json +123 -0
  685. package/registry/r/social-auth-row.json +21 -0
  686. package/registry/r/stat-tile.json +22 -0
  687. package/registry/r/status-dot.json +20 -0
  688. package/registry/r/steps-rail.json +20 -0
  689. package/registry/r/sub-agent-dispatch.json +22 -0
  690. package/registry/r/switch.json +23 -0
  691. package/registry/r/system-prompt-editor.json +22 -0
  692. package/registry/r/table.json +22 -0
  693. package/registry/r/tabs.json +22 -0
  694. package/registry/r/tailwind-preset.json +19 -0
  695. package/registry/r/task-header.json +24 -0
  696. package/registry/r/task-plan.json +22 -0
  697. package/registry/r/task-types.json +15 -0
  698. package/registry/r/terminal-panel.json +22 -0
  699. package/registry/r/textarea.json +22 -0
  700. package/registry/r/theme-provider.json +59 -0
  701. package/registry/r/theme-script.json +18 -0
  702. package/registry/r/theo-ui-provider.json +20 -0
  703. package/registry/r/timestamp.json +20 -0
  704. package/registry/r/toast.json +30 -0
  705. package/registry/r/token-usage-chart.json +20 -0
  706. package/registry/r/tokens.json +21 -0
  707. package/registry/r/tool-call-card.json +23 -0
  708. package/registry/r/tool-call.json +22 -0
  709. package/registry/r/tool-result.json +20 -0
  710. package/registry/r/tools-list.json +23 -0
  711. package/registry/r/tooltip.json +22 -0
  712. package/registry/r/topnav.json +22 -0
  713. package/registry/r/types.json +15 -0
  714. package/registry/r/usage-meter.json +21 -0
  715. package/registry/r/whiteboard.json +101 -0
package/dist/index.js ADDED
@@ -0,0 +1,1338 @@
1
+ export { ProjectCard } from './chunk-DN5BUDBI.js';
2
+ export { RollbackUI } from './chunk-TSZ5DEAT.js';
3
+ export { RuleEditor } from './chunk-C55VUQ7N.js';
4
+ export { SkillEditor } from './chunk-N2HJ3SLS.js';
5
+ export { SkillsList } from './chunk-4AM2HSXU.js';
6
+ export { StabilityBundleViewer } from './chunk-LKRNUSKZ.js';
7
+ export { TaskHeader } from './chunk-FAWPRZTM.js';
8
+ export { UsageMeter } from './chunk-DKCRLN35.js';
9
+ export { DeploymentRow } from './chunk-QDAF3LP7.js';
10
+ export { DomainConfig } from './chunk-X7VIMKLD.js';
11
+ export { EnvVarEditor } from './chunk-5TY3NYF5.js';
12
+ export { MCPServerList } from './chunk-76YWTIWK.js';
13
+ export { PageShell } from './chunk-QTLQZ7OJ.js';
14
+ export { PermissionModal } from './chunk-D4GEAV4C.js';
15
+ export { PreviewEnvCard } from './chunk-Y72IP43U.js';
16
+ export { PreviewPanel } from './chunk-OAKCXT35.js';
17
+ import './chunk-ZXPDS6DH.js';
18
+ export { CodeBlock } from './chunk-QGVIGNJ3.js';
19
+ export { CommandPalette } from './chunk-ZU6IM6PK.js';
20
+ export { ConfirmDialog } from './chunk-4WKO3G5C.js';
21
+ export { CronJobsList } from './chunk-LQ4B5X4Y.js';
22
+ export { DataTable } from './chunk-JJ65ZI4P.js';
23
+ export { TooltipWithStatics as Tooltip } from './chunk-GBG3I5I5.js';
24
+ export { TopNav } from './chunk-4D3JILQX.js';
25
+ export { UpdateBanner } from './chunk-M6JIC5PU.js';
26
+ export { AccountMenu } from './chunk-HRDRGZ2Y.js';
27
+ export { AgentComposer } from './chunk-BMRZXT5T.js';
28
+ export { ChatComposer } from './chunk-F5P5P2SC.js';
29
+ export { AgentEditor } from './chunk-OYEZR4CN.js';
30
+ export { ALL_MODES, MODE_LABEL } from './chunk-VM4RMQQN.js';
31
+ export { AgentStream } from './chunk-HUOVA7SF.js';
32
+ export { ApprovalCard } from './chunk-53XPKI7Q.js';
33
+ export { ChatMessage, ChatMessageAction, ChatMessageActions, ChatMessageBranch, ChatMessageBranchContent, ChatMessageBranchNext, ChatMessageBranchPage, ChatMessageBranchPrevious, ChatMessageBranchSelector, ChatMessageContent, ChatMessageResponse, ChatMessageRoot, ChatMessageToolbar, DataPart, FilePart, ReasoningPart, SourceDocumentPart, SourceUrlPart, TextPart, ToolCallPart, isCustomContentUIPart, isDataUIPart, isFileUIPart, isReasoningFileUIPart, isReasoningUIPart, isSourceDocumentUIPart, isSourceUrlUIPart, isStepStartUIPart, isTextUIPart, isToolUIPart, renderPart } from './chunk-YEQQGYYO.js';
34
+ import { safeHref } from './chunk-GDMCDW66.js';
35
+ export { AgentTimeline } from './chunk-B4CQMQ64.js';
36
+ export { ThinkingLevelSelector } from './chunk-4EJU2GBG.js';
37
+ export { Timestamp } from './chunk-TUNVF45W.js';
38
+ import { Toaster } from './chunk-Q5G5CGZ2.js';
39
+ export { Toast, Toaster, useToast } from './chunk-Q5G5CGZ2.js';
40
+ export { TokenUsageChart } from './chunk-ZZQQJX5Z.js';
41
+ export { ToolCall } from './chunk-VTIRUCLZ.js';
42
+ export { ToolCallCard } from './chunk-EO7LOXG2.js';
43
+ export { ToolResult } from './chunk-56BJLFW7.js';
44
+ export { ToolsList } from './chunk-ZKSMMLDP.js';
45
+ export { SubAgentDispatch } from './chunk-KOJ7XOPZ.js';
46
+ export { Switch } from './chunk-PRH4HKND.js';
47
+ export { SystemPromptEditor } from './chunk-3QKTS6F5.js';
48
+ export { Table } from './chunk-DZAAKHGZ.js';
49
+ export { Tabs } from './chunk-ZVS2GOT2.js';
50
+ export { TaskNode, TaskPlan } from './chunk-H6HSQCOW.js';
51
+ export { TerminalPanel } from './chunk-6FVUPNPG.js';
52
+ export { Textarea } from './chunk-OY2LJHMJ.js';
53
+ export { Sheet, sheetVariants } from './chunk-3BMYYNN6.js';
54
+ export { Sidebar } from './chunk-LJQOEGQ2.js';
55
+ export { Skeleton } from './chunk-AHTVYOPQ.js';
56
+ export { SkillCard } from './chunk-AJTJNHKK.js';
57
+ export { SocialAuthRow } from './chunk-YYW6AEIT.js';
58
+ export { StatTile } from './chunk-UAZOFC4W.js';
59
+ export { StatusDot } from './chunk-QYAMLIG2.js';
60
+ export { StepsRail } from './chunk-OUXESQ2R.js';
61
+ export { RuleCard } from './chunk-WHFIQUCC.js';
62
+ export { RunStats } from './chunk-3TBXLYNM.js';
63
+ export { RunStatusPill } from './chunk-VT7VSYH5.js';
64
+ export { RunningTasksPanel } from './chunk-YD6FLXBV.js';
65
+ export { ScrollArea } from './chunk-QNUITYSY.js';
66
+ export { Select } from './chunk-27ENTTY7.js';
67
+ export { SessionListItem } from './chunk-LLL7QQ52.js';
68
+ export { SessionTimeline } from './chunk-QSWVN3RT.js';
69
+ export { PinInput } from './chunk-DC43CHAM.js';
70
+ export { PlanBadge } from './chunk-NGZWBFTP.js';
71
+ export { Progress } from './chunk-SA7ED3PN.js';
72
+ export { ProgressChecklist } from './chunk-AX5EH73R.js';
73
+ export { ProjectSwitcher } from './chunk-TR6NPSMX.js';
74
+ export { QuickActionChips } from './chunk-6CO4LEXZ.js';
75
+ export { RadioGroup } from './chunk-PSPAZJUQ.js';
76
+ export { RecentFoldersList } from './chunk-4BCGKM65.js';
77
+ export { MCPServerCard } from './chunk-36KJGXEK.js';
78
+ export { MemoryEditor } from './chunk-KQTHJ22B.js';
79
+ export { MentionMenu } from './chunk-REILH4XF.js';
80
+ export { MetricsPanel } from './chunk-KRC43RZR.js';
81
+ export { ModelCard, modelCapabilityPresets } from './chunk-PPBGGNPV.js';
82
+ export { ModelSelector } from './chunk-HNTOGGVD.js';
83
+ export { Pagination, computePageRange } from './chunk-VVBAEYKI.js';
84
+ export { PermissionMatrix } from './chunk-AMT3CPMC.js';
85
+ export { GatewayStatusIndicator } from './chunk-BYZ6OFH4.js';
86
+ export { HOOK_EVENTS, HookConfig } from './chunk-KI7KZBSN.js';
87
+ export { HookEventLog } from './chunk-M5G3O6H6.js';
88
+ export { Input } from './chunk-B3VAJSZ2.js';
89
+ export { IntentSelector } from './chunk-M3FSLEHQ.js';
90
+ export { Label } from './chunk-DW34WXCG.js';
91
+ export { LaneBoard } from './chunk-P6Y2PI6L.js';
92
+ export { LoginSplit } from './chunk-FGYJ2WPX.js';
93
+ export { Dialog } from './chunk-JRBGZ6NI.js';
94
+ export { DiffViewer } from './chunk-S6SSK6QX.js';
95
+ export { DropdownMenu } from './chunk-65NVO6TK.js';
96
+ export { EmptyState } from './chunk-XJ3EG6XY.js';
97
+ export { ExportChatDialog } from './chunk-X2DDPD3D.js';
98
+ export { FolderContextCard } from './chunk-WPSESV5Z.js';
99
+ export { FolderSelector } from './chunk-3OHV7EEI.js';
100
+ export { FormField } from './chunk-EG6IHP3H.js';
101
+ export { Checkbox } from './chunk-PA7TDXUQ.js';
102
+ export { ContextCard } from './chunk-HQW2ABO4.js';
103
+ export { ContextWindowBar } from './chunk-2Y5V2PAL.js';
104
+ export { CopyButton } from './chunk-ZEVGXKRU.js';
105
+ export { CostMeter } from './chunk-E67WQXBV.js';
106
+ export { CreatedFilesCard } from './chunk-SIJOEM4N.js';
107
+ export { CronJobCard } from './chunk-U4THNRV5.js';
108
+ export { DangerZone } from './chunk-34NAFDVL.js';
109
+ export { BranchIndicator } from './chunk-2H6TQELG.js';
110
+ export { BrowserControls } from './chunk-6A5TPCKP.js';
111
+ export { BuildLogStream } from './chunk-ITA3SNOR.js';
112
+ export { Button, buttonVariants } from './chunk-5VOSCJKQ.js';
113
+ export { CapabilityIndicator, capabilityPresets } from './chunk-TXOBNSQ5.js';
114
+ export { Card } from './chunk-K45OO62F.js';
115
+ export { ChannelCard } from './chunk-2L6MRJD4.js';
116
+ export { ChatThread } from './chunk-XOT5HWSF.js';
117
+ export { AgentStreaming } from './chunk-KDTKA667.js';
118
+ export { Alert } from './chunk-DOLKDYMS.js';
119
+ export { ArtifactPreview } from './chunk-OSD3U3HT.js';
120
+ export { AttachmentChip } from './chunk-VQ37VLAS.js';
121
+ export { AuditLogEntry } from './chunk-IYNUPG2G.js';
122
+ export { AutoCompactNotice } from './chunk-U44DRLMM.js';
123
+ export { Avatar, avatarVariants } from './chunk-SLOKAAH2.js';
124
+ export { BadgeWithDot as Badge, badgeVariants } from './chunk-P57HUMAE.js';
125
+ export { ActionBar } from './chunk-7EI7424P.js';
126
+ export { AgentErrorCard } from './chunk-WXEXCHEN.js';
127
+ export { AgentEvent } from './chunk-E4IRSSHO.js';
128
+ export { AgentHandoff } from './chunk-55TDVDPG.js';
129
+ export { AgentProfile } from './chunk-HDM4RCIF.js';
130
+ export { AgentStartingState } from './chunk-5HOQLE6Y.js';
131
+ import './chunk-UGKI466V.js';
132
+ import { cn } from './chunk-EWDN56AS.js';
133
+ export { cn } from './chunk-EWDN56AS.js';
134
+ import { createContext, useContext, useMemo, useState, useEffect, useRef, useCallback } from 'react';
135
+ import { jsx, jsxs } from 'react/jsx-runtime';
136
+ import * as DropdownMenu2 from '@radix-ui/react-dropdown-menu';
137
+ import { Palette, Check, Moon, Sun } from 'lucide-react';
138
+
139
+ var DensityContext = createContext(void 0);
140
+ var STYLE_ELEMENT_ID = "theo-ui-density-vars";
141
+ var DENSITY_CSS = `[data-density="compact"] { --theo-control-h: 2rem; --theo-control-px: 0.75rem; }
142
+ [data-density="comfortable"] { --theo-control-h: 2.25rem; --theo-control-px: 0.875rem; }
143
+ [data-density="spacious"] { --theo-control-h: 2.75rem; --theo-control-px: 1rem; }
144
+ `;
145
+ function injectDensityCss() {
146
+ if (typeof document === "undefined") return false;
147
+ if (document.getElementById(STYLE_ELEMENT_ID)) return false;
148
+ const style = document.createElement("style");
149
+ style.id = STYLE_ELEMENT_ID;
150
+ style.textContent = DENSITY_CSS;
151
+ document.head.appendChild(style);
152
+ return true;
153
+ }
154
+ function useDensity() {
155
+ const ctx = useContext(DensityContext);
156
+ if (!ctx) {
157
+ throw new Error("useDensity must be used inside <ThemeProvider>.");
158
+ }
159
+ return ctx;
160
+ }
161
+ var ThemeContext = createContext(void 0);
162
+ var STYLE_ELEMENT_ID2 = "theo-ui-theme-vars";
163
+ var COLOR_VALUE_PATTERN = /^(#[0-9a-fA-F]{3,8}|(?:oklch|oklab|rgb|rgba|hsl|hsla|lab|lch|color)\(\s*[\d.\s%,/+\-]+\s*\)|-?\d+(?:\.\d+)?%?(?:\s+-?\d+(?:\.\d+)?%?){1,3}|var\(--[a-zA-Z0-9-]+(?:\s*,\s*[^();{}]+)?\)|transparent|currentColor|inherit|initial|unset)$/;
164
+ var FONT_FAMILY_PATTERN = /^[\w\s,"'\-.]+$/;
165
+ var THEME_NAME_PATTERN = /^[a-z][a-z0-9-]*$/;
166
+ var IS_DEV = typeof process === "undefined" || process.env.NODE_ENV !== "production";
167
+ function rejectOrFallback(scope, value, fallback) {
168
+ if (IS_DEV) {
169
+ throw new Error(
170
+ `[@theokit/ui] invalid ${scope} value: ${JSON.stringify(value)}. Theme values must match the allowlist (see src/themes/theme-provider.tsx). Refusing to inject potentially unsafe CSS.`
171
+ );
172
+ }
173
+ return fallback;
174
+ }
175
+ function validatedColor(token, value) {
176
+ if (COLOR_VALUE_PATTERN.test(value)) return value;
177
+ return rejectOrFallback(`color "${token}"`, value, "transparent");
178
+ }
179
+ function validatedFontFamily(slot, value) {
180
+ if (FONT_FAMILY_PATTERN.test(value)) return value;
181
+ return rejectOrFallback(`fontFamily "${slot}"`, value, "inherit");
182
+ }
183
+ function validatedThemeName(value) {
184
+ if (THEME_NAME_PATTERN.test(value)) return value;
185
+ return rejectOrFallback("theme.name", value, "invalid-theme");
186
+ }
187
+ function colorScaleToCss(name, mode, colors) {
188
+ const safeName = validatedThemeName(name);
189
+ const selector = mode === "light" ? `[data-theme="${safeName}"]` : `[data-theme="${safeName}"].dark, [data-theme="${safeName}"][data-mode="dark"]`;
190
+ const decls = Object.entries(colors).map(([token, value]) => ` --${token}: ${validatedColor(token, value)};`).join("\n");
191
+ return `${selector} {
192
+ ${decls}
193
+ }`;
194
+ }
195
+ function fontsToCss(name, fonts) {
196
+ const safeName = validatedThemeName(name);
197
+ const display = validatedFontFamily("display", fonts.display);
198
+ const body = validatedFontFamily("body", fonts.body);
199
+ const mono = validatedFontFamily("mono", fonts.mono);
200
+ return `[data-theme="${safeName}"] {
201
+ --font-display: ${display};
202
+ --font-body: ${body};
203
+ --font-mono: ${mono};
204
+ }`;
205
+ }
206
+ function injectThemeCss(themes) {
207
+ if (typeof document === "undefined") return;
208
+ let style = document.getElementById(STYLE_ELEMENT_ID2);
209
+ if (!style) {
210
+ style = document.createElement("style");
211
+ style.id = STYLE_ELEMENT_ID2;
212
+ document.head.appendChild(style);
213
+ }
214
+ const blocks = [];
215
+ for (const theme of themes) {
216
+ blocks.push(fontsToCss(theme.name, theme.fonts));
217
+ blocks.push(colorScaleToCss(theme.name, "light", theme.light));
218
+ blocks.push(colorScaleToCss(theme.name, "dark", theme.dark));
219
+ }
220
+ style.textContent = blocks.join("\n\n");
221
+ }
222
+ function loadThemeFonts(theme) {
223
+ if (typeof document === "undefined") return;
224
+ if (!theme.fontUrls) return;
225
+ for (const url of theme.fontUrls) {
226
+ const safe2 = safeHref(url);
227
+ if (!safe2) continue;
228
+ if (document.head.querySelector(`link[rel="stylesheet"][href="${CSS.escape(safe2)}"]`)) {
229
+ continue;
230
+ }
231
+ const link = document.createElement("link");
232
+ link.rel = "stylesheet";
233
+ link.href = safe2;
234
+ document.head.appendChild(link);
235
+ }
236
+ }
237
+ function warnStorageFailure(scope, err) {
238
+ if (typeof process === "undefined" || process.env.NODE_ENV === "production") return;
239
+ console.warn(`[@theokit/ui] theme storage failure (${scope}):`, err);
240
+ }
241
+ function ThemeProvider({
242
+ children,
243
+ defaultTheme = "violet-forge",
244
+ defaultMode = "dark",
245
+ themes: themesProp,
246
+ storageKey = "theo-ui:theme",
247
+ defaultDensity = "comfortable"
248
+ }) {
249
+ if (!themesProp || themesProp.length === 0) {
250
+ throw new Error(
251
+ "<ThemeProvider> requires the `themes` prop with at least one Theme. Pass `themes={builtinThemes}` for the Violet Forge defaults (importable via the package barrel), or use <TheoUIProvider> which sets this for you."
252
+ );
253
+ }
254
+ const mergedThemes = useMemo(() => {
255
+ for (const t of themesProp) {
256
+ validatedThemeName(t.name);
257
+ validatedFontFamily("display", t.fonts.display);
258
+ validatedFontFamily("body", t.fonts.body);
259
+ validatedFontFamily("mono", t.fonts.mono);
260
+ for (const [token, value2] of Object.entries(t.light)) {
261
+ validatedColor(token, value2);
262
+ }
263
+ for (const [token, value2] of Object.entries(t.dark)) {
264
+ validatedColor(token, value2);
265
+ }
266
+ }
267
+ const map = /* @__PURE__ */ new Map();
268
+ for (const t of themesProp) map.set(t.name, t);
269
+ return Array.from(map.values());
270
+ }, [themesProp]);
271
+ const [themes, setThemes] = useState(mergedThemes);
272
+ useEffect(() => {
273
+ setThemes(mergedThemes);
274
+ }, [mergedThemes]);
275
+ const [themeName, setThemeName] = useState(defaultTheme);
276
+ const [mode, setModeState] = useState(defaultMode);
277
+ const [density, setDensityState] = useState(defaultDensity);
278
+ const skipFirstPersistRef = useRef(true);
279
+ useEffect(() => {
280
+ if (typeof window === "undefined" || !storageKey) return;
281
+ try {
282
+ const storedName = window.localStorage.getItem(`${storageKey}:name`);
283
+ const storedMode = window.localStorage.getItem(`${storageKey}:mode`);
284
+ const storedDensity = window.localStorage.getItem(`${storageKey}:density`);
285
+ if (storedName) setThemeName(storedName);
286
+ if (storedMode === "dark" || storedMode === "light") setModeState(storedMode);
287
+ if (storedDensity === "compact" || storedDensity === "comfortable" || storedDensity === "spacious") {
288
+ setDensityState(storedDensity);
289
+ }
290
+ } catch (err) {
291
+ warnStorageFailure("read theme + mode + density", err);
292
+ }
293
+ }, [storageKey]);
294
+ useEffect(() => {
295
+ injectThemeCss(themes);
296
+ }, [themes]);
297
+ useEffect(() => {
298
+ if (typeof document === "undefined") return;
299
+ const active2 = themes.find((t) => t.name === themeName) ?? themes[0];
300
+ if (!active2) return;
301
+ document.documentElement.setAttribute("data-theme", active2.name);
302
+ document.documentElement.setAttribute("data-mode", mode);
303
+ document.documentElement.setAttribute("data-density", density);
304
+ document.documentElement.classList.toggle("dark", mode === "dark");
305
+ loadThemeFonts(active2);
306
+ injectDensityCss();
307
+ }, [themeName, mode, density, themes]);
308
+ useEffect(() => {
309
+ if (skipFirstPersistRef.current) {
310
+ skipFirstPersistRef.current = false;
311
+ return;
312
+ }
313
+ if (typeof window === "undefined" || !storageKey) return;
314
+ try {
315
+ window.localStorage.setItem(`${storageKey}:name`, themeName);
316
+ window.localStorage.setItem(`${storageKey}:mode`, mode);
317
+ window.localStorage.setItem(`${storageKey}:density`, density);
318
+ } catch (err) {
319
+ warnStorageFailure("persist theme + mode + density", err);
320
+ }
321
+ }, [themeName, mode, density, storageKey]);
322
+ const setTheme = useCallback((name) => setThemeName(name), []);
323
+ const setMode = useCallback((next) => setModeState(next), []);
324
+ const toggleMode = useCallback(
325
+ () => setModeState((cur) => cur === "light" ? "dark" : "light"),
326
+ []
327
+ );
328
+ const setDensity = useCallback((next) => setDensityState(next), []);
329
+ const registerTheme = useCallback((theme) => {
330
+ setThemes((cur) => {
331
+ const idx = cur.findIndex((t) => t.name === theme.name);
332
+ if (idx >= 0) {
333
+ const next = cur.slice();
334
+ next[idx] = theme;
335
+ return next;
336
+ }
337
+ return [...cur, theme];
338
+ });
339
+ }, []);
340
+ const active = themes.find((t) => t.name === themeName) ?? themes[0];
341
+ const value = useMemo(
342
+ () => ({
343
+ theme: active,
344
+ mode,
345
+ themes,
346
+ setTheme,
347
+ setMode,
348
+ toggleMode,
349
+ registerTheme
350
+ }),
351
+ [active, mode, themes, setTheme, setMode, toggleMode, registerTheme]
352
+ );
353
+ const densityValue = useMemo(() => ({ density, setDensity }), [density, setDensity]);
354
+ return /* @__PURE__ */ jsx(ThemeContext.Provider, { value, children: /* @__PURE__ */ jsx(DensityContext.Provider, { value: densityValue, children }) });
355
+ }
356
+ function useTheme() {
357
+ const ctx = useContext(ThemeContext);
358
+ if (!ctx) {
359
+ throw new Error("useTheme must be used inside <ThemeProvider>.");
360
+ }
361
+ return ctx;
362
+ }
363
+ function safe(value) {
364
+ return JSON.stringify(value).replace(/</g, "\\u003c");
365
+ }
366
+ function buildScript(defaultTheme, defaultMode, defaultDensity, storageKey) {
367
+ const k = safe(storageKey);
368
+ const t = safe(defaultTheme);
369
+ const m = safe(defaultMode);
370
+ const dn = safe(defaultDensity);
371
+ return `(function(){try{var k=${k};var d=document.documentElement;var t=null;var m=null;var dn=null;if(k){t=localStorage.getItem(k+":name");m=localStorage.getItem(k+":mode");dn=localStorage.getItem(k+":density");}d.setAttribute("data-theme",t||${t});d.setAttribute("data-mode",m||${m});d.setAttribute("data-density",dn||${dn});if((m||${m})==="dark"){d.classList.add("dark");}}catch(e){}})();`;
372
+ }
373
+ function ThemeScript({
374
+ defaultTheme = "violet-forge",
375
+ defaultMode = "dark",
376
+ defaultDensity = "comfortable",
377
+ storageKey = "theo-ui:theme"
378
+ }) {
379
+ const code = buildScript(defaultTheme, defaultMode, defaultDensity, storageKey);
380
+ return /* @__PURE__ */ jsx("script", { suppressHydrationWarning: true, dangerouslySetInnerHTML: { __html: code } });
381
+ }
382
+ function ThemeSwitcher({ className, showModeToggle = true }) {
383
+ const { theme, themes, setTheme, mode, toggleMode } = useTheme();
384
+ return /* @__PURE__ */ jsxs("div", { className: cn("inline-flex items-center gap-1", className), children: [
385
+ /* @__PURE__ */ jsxs("span", { "aria-live": "polite", "aria-atomic": "true", className: "sr-only", children: [
386
+ "Theme: ",
387
+ theme.label,
388
+ ", mode: ",
389
+ mode
390
+ ] }),
391
+ /* @__PURE__ */ jsxs(DropdownMenu2.Root, { children: [
392
+ /* @__PURE__ */ jsx(DropdownMenu2.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs(
393
+ "button",
394
+ {
395
+ type: "button",
396
+ "aria-label": `Theme: ${theme.label}`,
397
+ className: cn(
398
+ "inline-flex h-9 items-center gap-2 rounded-lg border border-border/60 bg-card px-3",
399
+ "font-medium font-sans text-body-sm text-foreground",
400
+ "transition-colors hover:bg-muted",
401
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background"
402
+ ),
403
+ children: [
404
+ /* @__PURE__ */ jsx(Palette, { className: "size-4 text-primary", "aria-hidden": "true" }),
405
+ /* @__PURE__ */ jsx("span", { children: theme.label })
406
+ ]
407
+ }
408
+ ) }),
409
+ /* @__PURE__ */ jsx(DropdownMenu2.Portal, { children: /* @__PURE__ */ jsx(
410
+ DropdownMenu2.Content,
411
+ {
412
+ align: "end",
413
+ sideOffset: 6,
414
+ className: cn(
415
+ "z-50 min-w-[16rem] overflow-hidden rounded-lg border bg-popover p-1 text-popover-foreground shadow-md",
416
+ "data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:animate-in",
417
+ "data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:animate-out"
418
+ ),
419
+ children: themes.map((t) => /* @__PURE__ */ jsxs(
420
+ DropdownMenu2.Item,
421
+ {
422
+ onSelect: () => setTheme(t.name),
423
+ className: cn(
424
+ "flex cursor-pointer items-start justify-between gap-3 rounded-md px-2 py-2",
425
+ "focus:bg-muted focus:outline-none data-[highlighted]:bg-muted"
426
+ ),
427
+ children: [
428
+ /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 flex-col", children: [
429
+ /* @__PURE__ */ jsx("span", { className: "font-medium text-body-sm", children: t.label }),
430
+ t.description ? /* @__PURE__ */ jsx("span", { className: "text-body-sm text-muted-foreground", children: t.description }) : null
431
+ ] }),
432
+ t.name === theme.name ? /* @__PURE__ */ jsx(Check, { className: "mt-1 size-4 shrink-0 text-primary", "aria-hidden": "true" }) : null
433
+ ]
434
+ },
435
+ t.name
436
+ ))
437
+ }
438
+ ) })
439
+ ] }),
440
+ showModeToggle ? /* @__PURE__ */ jsx(
441
+ "button",
442
+ {
443
+ type: "button",
444
+ onClick: toggleMode,
445
+ "aria-label": `Switch to ${mode === "light" ? "dark" : "light"} mode`,
446
+ className: cn(
447
+ "inline-flex size-9 items-center justify-center rounded-lg border border-border/60 bg-card",
448
+ "text-foreground transition-colors hover:bg-muted",
449
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background"
450
+ ),
451
+ children: mode === "light" ? /* @__PURE__ */ jsx(Moon, { className: "size-4" }) : /* @__PURE__ */ jsx(Sun, { className: "size-4" })
452
+ }
453
+ ) : null
454
+ ] });
455
+ }
456
+
457
+ // src/themes/violet-forge.ts
458
+ var violetForge = {
459
+ name: "violet-forge",
460
+ label: "Violet Forge",
461
+ description: "Theo default \u2014 violet primary, burnt sienna accent, Geist Sans + Geist Mono.",
462
+ fonts: {
463
+ display: '"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',
464
+ body: '"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',
465
+ mono: '"Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace'
466
+ },
467
+ fontUrls: [
468
+ "https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Geist+Mono:wght@100..900&display=swap"
469
+ ],
470
+ light: {
471
+ background: "0 0% 100%",
472
+ foreground: "0 0% 4%",
473
+ card: "0 0% 100%",
474
+ "card-foreground": "0 0% 4%",
475
+ popover: "0 0% 100%",
476
+ "popover-foreground": "0 0% 4%",
477
+ primary: "262 83% 58%",
478
+ "primary-deep": "263 70% 42%",
479
+ "primary-glow": "263 90% 76%",
480
+ "primary-foreground": "0 0% 100%",
481
+ secondary: "0 0% 96%",
482
+ "secondary-foreground": "0 0% 4%",
483
+ accent: "15 54% 53%",
484
+ "accent-deep": "15 55% 40%",
485
+ "accent-foreground": "0 0% 100%",
486
+ muted: "0 0% 96%",
487
+ "muted-foreground": "0 0% 45%",
488
+ border: "0 0% 91%",
489
+ input: "0 0% 91%",
490
+ ring: "262 83% 58%",
491
+ success: "142 71% 36%",
492
+ "success-foreground": "0 0% 100%",
493
+ warning: "33 92% 44%",
494
+ "warning-foreground": "0 0% 100%",
495
+ destructive: "0 72% 51%",
496
+ "destructive-foreground": "0 0% 100%",
497
+ info: "217 91% 60%",
498
+ "info-foreground": "0 0% 100%"
499
+ },
500
+ dark: {
501
+ background: "0 0% 4%",
502
+ foreground: "0 0% 96%",
503
+ card: "0 0% 7%",
504
+ "card-foreground": "0 0% 96%",
505
+ popover: "0 0% 9%",
506
+ "popover-foreground": "0 0% 96%",
507
+ primary: "262 83% 58%",
508
+ "primary-deep": "263 70% 42%",
509
+ "primary-glow": "263 90% 76%",
510
+ "primary-foreground": "0 0% 100%",
511
+ secondary: "0 0% 11%",
512
+ "secondary-foreground": "0 0% 96%",
513
+ accent: "15 54% 53%",
514
+ "accent-deep": "15 55% 40%",
515
+ "accent-foreground": "0 0% 100%",
516
+ muted: "0 0% 11%",
517
+ "muted-foreground": "0 0% 60%",
518
+ border: "0 0% 16%",
519
+ input: "0 0% 11%",
520
+ ring: "262 83% 58%",
521
+ success: "152 79% 52%",
522
+ "success-foreground": "0 0% 4%",
523
+ warning: "38 92% 50%",
524
+ "warning-foreground": "0 0% 4%",
525
+ destructive: "350 100% 65%",
526
+ "destructive-foreground": "0 0% 4%",
527
+ info: "213 100% 70%",
528
+ "info-foreground": "0 0% 4%"
529
+ }
530
+ };
531
+
532
+ // src/themes/classic-paper.ts
533
+ var classicPaper = {
534
+ name: "classic-paper",
535
+ label: "Classic Paper",
536
+ description: "Inter + paper background. Maximum legibility, conservative.",
537
+ fonts: {
538
+ display: '"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
539
+ body: '"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
540
+ mono: '"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace'
541
+ },
542
+ fontUrls: [
543
+ "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;700&display=swap"
544
+ ],
545
+ light: {
546
+ background: "36 30% 98%",
547
+ foreground: "222 47% 11%",
548
+ card: "0 0% 100%",
549
+ "card-foreground": "222 47% 11%",
550
+ popover: "0 0% 100%",
551
+ "popover-foreground": "222 47% 11%",
552
+ primary: "221 83% 53%",
553
+ "primary-deep": "224 76% 38%",
554
+ "primary-glow": "217 91% 70%",
555
+ "primary-foreground": "0 0% 100%",
556
+ secondary: "210 40% 96%",
557
+ "secondary-foreground": "222 47% 11%",
558
+ accent: "37 92% 40%",
559
+ "accent-deep": "32 81% 30%",
560
+ "accent-foreground": "0 0% 100%",
561
+ muted: "210 40% 96%",
562
+ "muted-foreground": "215 16% 47%",
563
+ border: "214 32% 91%",
564
+ input: "214 32% 91%",
565
+ ring: "221 83% 53%",
566
+ success: "142 71% 36%",
567
+ "success-foreground": "0 0% 100%",
568
+ warning: "33 92% 44%",
569
+ "warning-foreground": "0 0% 100%",
570
+ destructive: "0 72% 51%",
571
+ "destructive-foreground": "0 0% 100%",
572
+ info: "217 91% 60%",
573
+ "info-foreground": "0 0% 100%"
574
+ },
575
+ // Dark mirror — mainly the same hues with inverted lightness so the theme
576
+ // still feels coherent if a consumer toggles `.dark`.
577
+ dark: {
578
+ background: "222 47% 8%",
579
+ foreground: "210 40% 98%",
580
+ card: "222 47% 11%",
581
+ "card-foreground": "210 40% 98%",
582
+ popover: "222 47% 11%",
583
+ "popover-foreground": "210 40% 98%",
584
+ primary: "217 91% 60%",
585
+ "primary-deep": "221 83% 45%",
586
+ "primary-glow": "213 100% 80%",
587
+ "primary-foreground": "222 47% 11%",
588
+ secondary: "217 19% 18%",
589
+ "secondary-foreground": "210 40% 98%",
590
+ accent: "37 92% 60%",
591
+ "accent-deep": "32 81% 45%",
592
+ "accent-foreground": "222 47% 11%",
593
+ muted: "217 19% 18%",
594
+ "muted-foreground": "215 20% 65%",
595
+ border: "217 19% 22%",
596
+ input: "217 19% 18%",
597
+ ring: "217 91% 60%",
598
+ success: "152 79% 52%",
599
+ "success-foreground": "222 47% 11%",
600
+ warning: "38 92% 50%",
601
+ "warning-foreground": "222 47% 11%",
602
+ destructive: "350 100% 65%",
603
+ "destructive-foreground": "222 47% 11%",
604
+ info: "213 100% 70%",
605
+ "info-foreground": "222 47% 11%"
606
+ }
607
+ };
608
+
609
+ // src/themes/aurora-terminal.ts
610
+ var auroraTerminal = {
611
+ name: "aurora-terminal",
612
+ label: "Aurora Terminal",
613
+ description: "Dark sci-fi developer console \u2014 cyan-aurora + Geist Mono body.",
614
+ fonts: {
615
+ display: '"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',
616
+ body: '"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',
617
+ mono: '"Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace'
618
+ },
619
+ fontUrls: [
620
+ "https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Geist+Mono:wght@100..900&display=swap"
621
+ ],
622
+ light: {
623
+ background: "220 30% 96%",
624
+ foreground: "222 47% 11%",
625
+ card: "0 0% 100%",
626
+ "card-foreground": "222 47% 11%",
627
+ popover: "0 0% 100%",
628
+ "popover-foreground": "222 47% 11%",
629
+ primary: "178 78% 41%",
630
+ "primary-deep": "180 100% 25%",
631
+ "primary-glow": "180 89% 70%",
632
+ "primary-foreground": "222 47% 11%",
633
+ secondary: "210 40% 96%",
634
+ "secondary-foreground": "222 47% 11%",
635
+ accent: "340 82% 60%",
636
+ "accent-deep": "340 80% 50%",
637
+ "accent-foreground": "0 0% 100%",
638
+ muted: "214 32% 91%",
639
+ "muted-foreground": "215 16% 47%",
640
+ border: "214 32% 91%",
641
+ input: "214 32% 91%",
642
+ ring: "178 78% 41%",
643
+ success: "152 79% 42%",
644
+ "success-foreground": "0 0% 100%",
645
+ warning: "33 92% 44%",
646
+ "warning-foreground": "0 0% 100%",
647
+ destructive: "0 72% 51%",
648
+ "destructive-foreground": "0 0% 100%",
649
+ info: "217 91% 60%",
650
+ "info-foreground": "0 0% 100%"
651
+ },
652
+ dark: {
653
+ background: "224 36% 7%",
654
+ foreground: "220 30% 96%",
655
+ card: "224 35% 10%",
656
+ "card-foreground": "220 30% 96%",
657
+ popover: "224 35% 10%",
658
+ "popover-foreground": "220 30% 96%",
659
+ primary: "178 71% 60%",
660
+ "primary-deep": "180 100% 35%",
661
+ "primary-glow": "180 89% 80%",
662
+ "primary-foreground": "224 36% 7%",
663
+ secondary: "222 30% 14%",
664
+ "secondary-foreground": "220 30% 96%",
665
+ accent: "340 90% 65%",
666
+ "accent-deep": "340 80% 50%",
667
+ "accent-foreground": "224 36% 7%",
668
+ muted: "222 30% 14%",
669
+ "muted-foreground": "215 20% 65%",
670
+ border: "222 28% 18%",
671
+ input: "222 30% 14%",
672
+ ring: "178 71% 60%",
673
+ success: "152 79% 52%",
674
+ "success-foreground": "224 36% 7%",
675
+ warning: "38 92% 50%",
676
+ "warning-foreground": "224 36% 7%",
677
+ destructive: "350 100% 65%",
678
+ "destructive-foreground": "224 36% 7%",
679
+ info: "213 100% 70%",
680
+ "info-foreground": "224 36% 7%"
681
+ }
682
+ };
683
+
684
+ // src/themes/define.ts
685
+ var NAME_PATTERN = /^[a-z][a-z0-9-]*$/i;
686
+ function defaultLabel(name) {
687
+ if (name.length === 0) return name;
688
+ return name.charAt(0).toUpperCase() + name.slice(1);
689
+ }
690
+ function defineTheme(input) {
691
+ if (typeof input?.name !== "string" || input.name.length === 0) {
692
+ throw new Error("defineTheme: `name` is required and cannot be empty.");
693
+ }
694
+ if (!NAME_PATTERN.test(input.name)) {
695
+ throw new Error(
696
+ `defineTheme: invalid name "${input.name}". Must match /^[a-z][a-z0-9-]*$/i \u2014 letters, digits, and hyphens only, starting with a letter.`
697
+ );
698
+ }
699
+ const lightOverride = input.light ?? {};
700
+ const darkOverride = input.dark ?? {};
701
+ const fontsOverride = input.fonts ?? {};
702
+ const theme = {
703
+ name: input.name,
704
+ label: input.label ?? defaultLabel(input.name),
705
+ description: input.description,
706
+ fonts: { ...violetForge.fonts, ...fontsOverride },
707
+ light: { ...violetForge.light, ...lightOverride },
708
+ dark: { ...violetForge.dark, ...darkOverride },
709
+ fontUrls: input.fontUrls ?? violetForge.fontUrls
710
+ };
711
+ return theme;
712
+ }
713
+
714
+ // src/themes/color.ts
715
+ function hexCharToNibble(ch) {
716
+ if (ch >= "0" && ch <= "9") return ch.charCodeAt(0) - 48;
717
+ if (ch >= "a" && ch <= "f") return ch.charCodeAt(0) - 87;
718
+ if (ch >= "A" && ch <= "F") return ch.charCodeAt(0) - 55;
719
+ throw new Error(`hex(): invalid hex character "${ch}"`);
720
+ }
721
+ function parseHex(input) {
722
+ if (!input.startsWith("#")) {
723
+ throw new Error(`hex(): expected '#'-prefixed input, got "${input}"`);
724
+ }
725
+ const body = input.slice(1);
726
+ let r;
727
+ let g;
728
+ let b;
729
+ if (body.length === 3 || body.length === 4) {
730
+ const nr = hexCharToNibble(body.charAt(0));
731
+ const ng = hexCharToNibble(body.charAt(1));
732
+ const nb = hexCharToNibble(body.charAt(2));
733
+ r = nr << 4 | nr;
734
+ g = ng << 4 | ng;
735
+ b = nb << 4 | nb;
736
+ } else if (body.length === 6 || body.length === 8) {
737
+ r = hexCharToNibble(body.charAt(0)) << 4 | hexCharToNibble(body.charAt(1));
738
+ g = hexCharToNibble(body.charAt(2)) << 4 | hexCharToNibble(body.charAt(3));
739
+ b = hexCharToNibble(body.charAt(4)) << 4 | hexCharToNibble(body.charAt(5));
740
+ } else {
741
+ throw new Error(
742
+ `hex(): invalid length ${body.length} for hex input "${input}" \u2014 expected 3, 4, 6, or 8 hex chars after the '#'.`
743
+ );
744
+ }
745
+ return { r, g, b };
746
+ }
747
+ function rgbToHsl(r, g, b) {
748
+ const rn = r / 255;
749
+ const gn = g / 255;
750
+ const bn = b / 255;
751
+ const max = Math.max(rn, gn, bn);
752
+ const min = Math.min(rn, gn, bn);
753
+ const l = (max + min) / 2;
754
+ let h = 0;
755
+ let s = 0;
756
+ if (max !== min) {
757
+ const d = max - min;
758
+ s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
759
+ switch (max) {
760
+ case rn:
761
+ h = (gn - bn) / d + (gn < bn ? 6 : 0);
762
+ break;
763
+ case gn:
764
+ h = (bn - rn) / d + 2;
765
+ break;
766
+ default:
767
+ h = (rn - gn) / d + 4;
768
+ break;
769
+ }
770
+ h *= 60;
771
+ }
772
+ const hh = Math.round(h);
773
+ const ss = Math.round(s * 100);
774
+ const ll = Math.round(l * 100);
775
+ return `${hh} ${ss}% ${ll}%`;
776
+ }
777
+ function hex(input) {
778
+ const { r, g, b } = parseHex(input);
779
+ return rgbToHsl(r, g, b);
780
+ }
781
+ function rgb(r, g, b) {
782
+ for (const value of [r, g, b]) {
783
+ if (!Number.isFinite(value) || value < 0 || value > 255) {
784
+ throw new Error(
785
+ `rgb(): channel out of range \u2014 expected 0..255, got ${value}. Did you mix percentage values?`
786
+ );
787
+ }
788
+ }
789
+ return rgbToHsl(Math.round(r), Math.round(g), Math.round(b));
790
+ }
791
+
792
+ // src/themes/vercel-mono.ts
793
+ var vercelMono = {
794
+ name: "vercel-mono",
795
+ label: "Vercel Mono",
796
+ description: "Inspired by, not affiliated with Vercel. Monochrome canvas + signature blue.",
797
+ fonts: {
798
+ display: '"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',
799
+ body: '"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',
800
+ mono: '"Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace'
801
+ },
802
+ fontUrls: [
803
+ "https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Geist+Mono:wght@100..900&display=swap"
804
+ ],
805
+ light: {
806
+ background: "0 0% 100%",
807
+ foreground: "0 0% 0%",
808
+ card: "0 0% 100%",
809
+ "card-foreground": "0 0% 0%",
810
+ popover: "0 0% 100%",
811
+ "popover-foreground": "0 0% 0%",
812
+ primary: "212 100% 47%",
813
+ "primary-deep": "212 100% 36%",
814
+ "primary-glow": "212 100% 72%",
815
+ "primary-foreground": "0 0% 100%",
816
+ secondary: "0 0% 96%",
817
+ "secondary-foreground": "0 0% 0%",
818
+ accent: "212 100% 47%",
819
+ "accent-deep": "212 100% 36%",
820
+ "accent-foreground": "0 0% 100%",
821
+ muted: "0 0% 96%",
822
+ "muted-foreground": "0 0% 40%",
823
+ border: "0 0% 92%",
824
+ input: "0 0% 92%",
825
+ ring: "212 100% 47%",
826
+ success: "168 76% 40%",
827
+ "success-foreground": "0 0% 100%",
828
+ warning: "34 92% 45%",
829
+ "warning-foreground": "0 0% 100%",
830
+ destructive: "0 100% 40%",
831
+ "destructive-foreground": "0 0% 100%",
832
+ info: "212 100% 47%",
833
+ "info-foreground": "0 0% 100%"
834
+ },
835
+ dark: {
836
+ background: "0 0% 4%",
837
+ foreground: "0 0% 93%",
838
+ card: "0 0% 7%",
839
+ "card-foreground": "0 0% 93%",
840
+ popover: "0 0% 7%",
841
+ "popover-foreground": "0 0% 93%",
842
+ primary: "212 100% 55%",
843
+ "primary-deep": "212 100% 42%",
844
+ "primary-glow": "212 100% 75%",
845
+ "primary-foreground": "0 0% 100%",
846
+ secondary: "0 0% 13%",
847
+ "secondary-foreground": "0 0% 93%",
848
+ accent: "212 100% 60%",
849
+ "accent-deep": "212 100% 47%",
850
+ "accent-foreground": "0 0% 0%",
851
+ muted: "0 0% 13%",
852
+ "muted-foreground": "0 0% 60%",
853
+ border: "0 0% 20%",
854
+ input: "0 0% 20%",
855
+ ring: "212 100% 55%",
856
+ success: "144 89% 50%",
857
+ "success-foreground": "0 0% 0%",
858
+ warning: "34 92% 65%",
859
+ "warning-foreground": "0 0% 0%",
860
+ destructive: "0 100% 55%",
861
+ "destructive-foreground": "0 0% 100%",
862
+ info: "212 100% 55%",
863
+ "info-foreground": "0 0% 100%"
864
+ }
865
+ };
866
+
867
+ // src/themes/github-dark.ts
868
+ var githubDark = {
869
+ name: "github-dark",
870
+ label: "GitHub Dark",
871
+ description: "GitHub's default dark theme. Primer Primitives tokens.",
872
+ fonts: {
873
+ display: '"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',
874
+ body: '"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',
875
+ mono: '"Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace'
876
+ },
877
+ fontUrls: [
878
+ "https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Geist+Mono:wght@100..900&display=swap"
879
+ ],
880
+ light: {
881
+ background: "0 0% 100%",
882
+ foreground: "213 13% 16%",
883
+ card: "210 29% 97%",
884
+ "card-foreground": "213 13% 16%",
885
+ popover: "0 0% 100%",
886
+ "popover-foreground": "213 13% 16%",
887
+ primary: "212 92% 44%",
888
+ "primary-deep": "212 92% 36%",
889
+ "primary-glow": "212 92% 58%",
890
+ "primary-foreground": "0 0% 100%",
891
+ secondary: "210 29% 97%",
892
+ "secondary-foreground": "213 13% 16%",
893
+ accent: "213 84% 52%",
894
+ "accent-deep": "213 84% 42%",
895
+ "accent-foreground": "0 0% 100%",
896
+ muted: "210 29% 97%",
897
+ "muted-foreground": "213 8% 43%",
898
+ border: "210 14% 84%",
899
+ input: "210 14% 84%",
900
+ ring: "212 92% 44%",
901
+ success: "137 66% 30%",
902
+ "success-foreground": "0 0% 100%",
903
+ warning: "41 100% 30%",
904
+ "warning-foreground": "0 0% 100%",
905
+ destructive: "355 71% 47%",
906
+ "destructive-foreground": "0 0% 100%",
907
+ info: "212 92% 44%",
908
+ "info-foreground": "0 0% 100%"
909
+ },
910
+ dark: {
911
+ background: "215 28% 7%",
912
+ foreground: "210 67% 96%",
913
+ card: "215 21% 11%",
914
+ "card-foreground": "210 67% 96%",
915
+ popover: "215 21% 11%",
916
+ "popover-foreground": "210 67% 96%",
917
+ primary: "212 92% 57%",
918
+ "primary-deep": "212 92% 47%",
919
+ "primary-glow": "213 92% 67%",
920
+ "primary-foreground": "0 0% 100%",
921
+ secondary: "215 21% 14%",
922
+ "secondary-foreground": "210 67% 96%",
923
+ accent: "213 92% 61%",
924
+ "accent-deep": "213 92% 50%",
925
+ "accent-foreground": "0 0% 100%",
926
+ muted: "215 21% 14%",
927
+ "muted-foreground": "213 9% 59%",
928
+ border: "213 13% 21%",
929
+ input: "213 13% 21%",
930
+ ring: "212 92% 57%",
931
+ success: "135 53% 49%",
932
+ "success-foreground": "0 0% 0%",
933
+ warning: "41 73% 48%",
934
+ "warning-foreground": "0 0% 0%",
935
+ destructive: "1 90% 62%",
936
+ "destructive-foreground": "0 0% 100%",
937
+ info: "212 92% 57%",
938
+ "info-foreground": "0 0% 100%"
939
+ }
940
+ };
941
+
942
+ // src/themes/dracula.ts
943
+ var dracula = {
944
+ name: "dracula",
945
+ label: "Dracula",
946
+ description: "Cult OSS theme (draculatheme.com, MIT). Light mode is Theo-adapted for WCAG AA.",
947
+ fonts: {
948
+ display: '"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',
949
+ body: '"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',
950
+ mono: '"Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace'
951
+ },
952
+ fontUrls: [
953
+ "https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Geist+Mono:wght@100..900&display=swap"
954
+ ],
955
+ light: {
956
+ background: "60 30% 96%",
957
+ foreground: "231 15% 18%",
958
+ card: "0 0% 100%",
959
+ "card-foreground": "231 15% 18%",
960
+ popover: "0 0% 100%",
961
+ "popover-foreground": "231 15% 18%",
962
+ primary: "275 70% 45%",
963
+ "primary-deep": "271 63% 35%",
964
+ "primary-glow": "265 89% 70%",
965
+ "primary-foreground": "0 0% 100%",
966
+ secondary: "60 20% 92%",
967
+ "secondary-foreground": "231 15% 18%",
968
+ accent: "271 63% 40%",
969
+ "accent-deep": "271 63% 30%",
970
+ "accent-foreground": "0 0% 100%",
971
+ muted: "60 20% 92%",
972
+ "muted-foreground": "225 20% 40%",
973
+ border: "60 15% 88%",
974
+ input: "60 15% 88%",
975
+ ring: "275 70% 45%",
976
+ success: "129 33% 35%",
977
+ "success-foreground": "0 0% 100%",
978
+ warning: "43 89% 30%",
979
+ "warning-foreground": "0 0% 100%",
980
+ destructive: "0 71% 42%",
981
+ "destructive-foreground": "0 0% 100%",
982
+ info: "190 88% 30%",
983
+ "info-foreground": "0 0% 100%"
984
+ },
985
+ dark: {
986
+ background: "231 15% 18%",
987
+ foreground: "60 30% 96%",
988
+ card: "232 14% 22%",
989
+ "card-foreground": "60 30% 96%",
990
+ popover: "232 14% 22%",
991
+ "popover-foreground": "60 30% 96%",
992
+ primary: "326 100% 74%",
993
+ "primary-deep": "326 100% 60%",
994
+ "primary-glow": "326 100% 85%",
995
+ "primary-foreground": "231 15% 18%",
996
+ secondary: "232 14% 28%",
997
+ "secondary-foreground": "60 30% 96%",
998
+ accent: "265 89% 78%",
999
+ "accent-deep": "265 89% 65%",
1000
+ "accent-foreground": "231 15% 18%",
1001
+ muted: "232 14% 28%",
1002
+ "muted-foreground": "225 27% 65%",
1003
+ border: "232 14% 31%",
1004
+ input: "232 14% 31%",
1005
+ ring: "326 100% 74%",
1006
+ success: "135 94% 65%",
1007
+ "success-foreground": "231 15% 18%",
1008
+ warning: "65 92% 76%",
1009
+ "warning-foreground": "231 15% 18%",
1010
+ destructive: "0 100% 67%",
1011
+ "destructive-foreground": "0 0% 100%",
1012
+ info: "191 97% 77%",
1013
+ "info-foreground": "231 15% 18%"
1014
+ }
1015
+ };
1016
+
1017
+ // src/themes/one-dark.ts
1018
+ var oneDark = {
1019
+ name: "one-dark",
1020
+ label: "One Dark",
1021
+ description: "Atom's One Dark + One Light syntax theme (MIT). Iconic IDE look.",
1022
+ fonts: {
1023
+ display: '"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',
1024
+ body: '"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',
1025
+ mono: '"Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace'
1026
+ },
1027
+ fontUrls: [
1028
+ "https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Geist+Mono:wght@100..900&display=swap"
1029
+ ],
1030
+ light: {
1031
+ background: "0 0% 98%",
1032
+ foreground: "230 8% 24%",
1033
+ card: "0 0% 100%",
1034
+ "card-foreground": "230 8% 24%",
1035
+ popover: "0 0% 100%",
1036
+ "popover-foreground": "230 8% 24%",
1037
+ primary: "220 88% 50%",
1038
+ "primary-deep": "220 88% 40%",
1039
+ "primary-glow": "220 88% 70%",
1040
+ "primary-foreground": "0 0% 100%",
1041
+ secondary: "0 0% 95%",
1042
+ "secondary-foreground": "230 8% 24%",
1043
+ accent: "301 62% 40%",
1044
+ "accent-deep": "301 62% 30%",
1045
+ "accent-foreground": "0 0% 100%",
1046
+ muted: "0 0% 95%",
1047
+ "muted-foreground": "230 4% 50%",
1048
+ border: "0 0% 90%",
1049
+ input: "0 0% 90%",
1050
+ ring: "220 88% 50%",
1051
+ success: "119 34% 35%",
1052
+ "success-foreground": "0 0% 100%",
1053
+ warning: "41 99% 30%",
1054
+ "warning-foreground": "0 0% 100%",
1055
+ destructive: "5 74% 45%",
1056
+ "destructive-foreground": "0 0% 100%",
1057
+ info: "198 99% 30%",
1058
+ "info-foreground": "0 0% 100%"
1059
+ },
1060
+ dark: {
1061
+ background: "220 13% 18%",
1062
+ foreground: "220 14% 71%",
1063
+ card: "220 13% 15%",
1064
+ "card-foreground": "220 14% 71%",
1065
+ popover: "220 13% 15%",
1066
+ "popover-foreground": "220 14% 71%",
1067
+ primary: "207 82% 66%",
1068
+ "primary-deep": "207 82% 52%",
1069
+ "primary-glow": "207 82% 78%",
1070
+ "primary-foreground": "220 13% 18%",
1071
+ secondary: "220 13% 23%",
1072
+ "secondary-foreground": "220 14% 71%",
1073
+ accent: "286 60% 67%",
1074
+ "accent-deep": "286 60% 52%",
1075
+ "accent-foreground": "220 13% 18%",
1076
+ muted: "220 13% 23%",
1077
+ "muted-foreground": "220 8% 55%",
1078
+ border: "220 13% 28%",
1079
+ input: "220 13% 28%",
1080
+ ring: "207 82% 66%",
1081
+ success: "95 38% 62%",
1082
+ "success-foreground": "220 13% 18%",
1083
+ warning: "29 54% 61%",
1084
+ "warning-foreground": "220 13% 18%",
1085
+ destructive: "355 65% 65%",
1086
+ "destructive-foreground": "0 0% 100%",
1087
+ info: "187 47% 55%",
1088
+ "info-foreground": "220 13% 18%"
1089
+ }
1090
+ };
1091
+
1092
+ // src/themes/anthropic-style.ts
1093
+ var anthropicStyle = {
1094
+ name: "anthropic-style",
1095
+ label: "Anthropic-style",
1096
+ description: "Inspired by, not affiliated with Anthropic. Warm cream + burnt sienna editorial feel.",
1097
+ fonts: {
1098
+ display: '"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',
1099
+ body: '"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',
1100
+ mono: '"Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace'
1101
+ },
1102
+ fontUrls: [
1103
+ "https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Geist+Mono:wght@100..900&display=swap"
1104
+ ],
1105
+ light: {
1106
+ background: "60 27% 97%",
1107
+ foreground: "0 0% 10%",
1108
+ card: "0 0% 100%",
1109
+ "card-foreground": "0 0% 10%",
1110
+ popover: "0 0% 100%",
1111
+ "popover-foreground": "0 0% 10%",
1112
+ primary: "15 54% 45%",
1113
+ "primary-deep": "15 54% 35%",
1114
+ "primary-glow": "15 54% 65%",
1115
+ "primary-foreground": "0 0% 100%",
1116
+ secondary: "45 22% 92%",
1117
+ "secondary-foreground": "0 0% 10%",
1118
+ accent: "26 39% 39%",
1119
+ "accent-deep": "26 39% 29%",
1120
+ "accent-foreground": "0 0% 100%",
1121
+ muted: "45 22% 92%",
1122
+ "muted-foreground": "0 0% 39%",
1123
+ border: "45 22% 87%",
1124
+ input: "45 22% 87%",
1125
+ ring: "15 54% 45%",
1126
+ success: "127 35% 35%",
1127
+ "success-foreground": "0 0% 100%",
1128
+ warning: "35 65% 35%",
1129
+ "warning-foreground": "0 0% 100%",
1130
+ destructive: "5 60% 40%",
1131
+ "destructive-foreground": "0 0% 100%",
1132
+ info: "200 50% 35%",
1133
+ "info-foreground": "0 0% 100%"
1134
+ },
1135
+ dark: {
1136
+ background: "0 0% 10%",
1137
+ foreground: "36 28% 93%",
1138
+ card: "0 0% 15%",
1139
+ "card-foreground": "36 28% 93%",
1140
+ popover: "0 0% 15%",
1141
+ "popover-foreground": "36 28% 93%",
1142
+ primary: "16 62% 60%",
1143
+ "primary-deep": "16 62% 48%",
1144
+ "primary-glow": "16 62% 72%",
1145
+ "primary-foreground": "0 0% 100%",
1146
+ secondary: "0 0% 18%",
1147
+ "secondary-foreground": "36 28% 93%",
1148
+ accent: "21 33% 55%",
1149
+ "accent-deep": "21 33% 42%",
1150
+ "accent-foreground": "0 0% 100%",
1151
+ muted: "0 0% 18%",
1152
+ "muted-foreground": "30 6% 64%",
1153
+ border: "0 0% 25%",
1154
+ input: "0 0% 25%",
1155
+ ring: "16 62% 60%",
1156
+ success: "142 71% 58%",
1157
+ "success-foreground": "0 0% 10%",
1158
+ warning: "45 96% 65%",
1159
+ "warning-foreground": "0 0% 10%",
1160
+ destructive: "0 84% 60%",
1161
+ "destructive-foreground": "0 0% 100%",
1162
+ info: "200 70% 60%",
1163
+ "info-foreground": "0 0% 10%"
1164
+ }
1165
+ };
1166
+
1167
+ // src/themes/openai-style.ts
1168
+ var openaiStyle = {
1169
+ name: "openai-style",
1170
+ label: "OpenAI-style",
1171
+ description: "Inspired by, not affiliated with OpenAI. Minimal canvas + ChatGPT green.",
1172
+ fonts: {
1173
+ display: '"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',
1174
+ body: '"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',
1175
+ mono: '"Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace'
1176
+ },
1177
+ fontUrls: [
1178
+ "https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Geist+Mono:wght@100..900&display=swap"
1179
+ ],
1180
+ light: {
1181
+ background: "0 0% 100%",
1182
+ foreground: "0 0% 13%",
1183
+ card: "240 5% 97%",
1184
+ "card-foreground": "0 0% 13%",
1185
+ popover: "0 0% 100%",
1186
+ "popover-foreground": "0 0% 13%",
1187
+ primary: "165 82% 35%",
1188
+ "primary-deep": "165 82% 28%",
1189
+ "primary-glow": "165 82% 50%",
1190
+ "primary-foreground": "0 0% 100%",
1191
+ secondary: "240 5% 96%",
1192
+ "secondary-foreground": "0 0% 13%",
1193
+ accent: "165 82% 35%",
1194
+ "accent-deep": "165 82% 28%",
1195
+ "accent-foreground": "0 0% 100%",
1196
+ muted: "240 5% 96%",
1197
+ "muted-foreground": "240 7% 47%",
1198
+ border: "0 0% 90%",
1199
+ input: "0 0% 90%",
1200
+ ring: "165 82% 35%",
1201
+ success: "165 82% 35%",
1202
+ "success-foreground": "0 0% 100%",
1203
+ warning: "30 91% 44%",
1204
+ "warning-foreground": "0 0% 100%",
1205
+ destructive: "0 73% 50%",
1206
+ "destructive-foreground": "0 0% 100%",
1207
+ info: "212 100% 47%",
1208
+ "info-foreground": "0 0% 100%"
1209
+ },
1210
+ dark: {
1211
+ background: "0 0% 13%",
1212
+ foreground: "0 0% 93%",
1213
+ card: "0 0% 18%",
1214
+ "card-foreground": "0 0% 93%",
1215
+ popover: "0 0% 18%",
1216
+ "popover-foreground": "0 0% 93%",
1217
+ primary: "155 78% 30%",
1218
+ "primary-deep": "155 78% 22%",
1219
+ "primary-glow": "155 78% 50%",
1220
+ "primary-foreground": "0 0% 100%",
1221
+ secondary: "0 0% 20%",
1222
+ "secondary-foreground": "0 0% 93%",
1223
+ accent: "155 78% 50%",
1224
+ "accent-deep": "155 78% 40%",
1225
+ "accent-foreground": "0 0% 13%",
1226
+ muted: "0 0% 20%",
1227
+ "muted-foreground": "0 0% 61%",
1228
+ border: "0 0% 26%",
1229
+ input: "0 0% 26%",
1230
+ ring: "155 78% 43%",
1231
+ success: "155 78% 43%",
1232
+ "success-foreground": "0 0% 100%",
1233
+ warning: "38 92% 50%",
1234
+ "warning-foreground": "0 0% 13%",
1235
+ destructive: "0 84% 60%",
1236
+ "destructive-foreground": "0 0% 100%",
1237
+ info: "212 100% 55%",
1238
+ "info-foreground": "0 0% 100%"
1239
+ }
1240
+ };
1241
+
1242
+ // src/themes/linear-glass.ts
1243
+ var linearGlass = {
1244
+ name: "linear-glass",
1245
+ label: "Linear Glass",
1246
+ description: "Inspired by, not affiliated with Linear. Refined indigo on glassy surfaces.",
1247
+ fonts: {
1248
+ display: '"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',
1249
+ body: '"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',
1250
+ mono: '"Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace'
1251
+ },
1252
+ fontUrls: [
1253
+ "https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Geist+Mono:wght@100..900&display=swap"
1254
+ ],
1255
+ light: {
1256
+ background: "0 0% 100%",
1257
+ foreground: "240 5% 12%",
1258
+ card: "220 25% 98%",
1259
+ "card-foreground": "240 5% 12%",
1260
+ popover: "0 0% 100%",
1261
+ "popover-foreground": "240 5% 12%",
1262
+ primary: "233 56% 55%",
1263
+ "primary-deep": "233 56% 45%",
1264
+ "primary-glow": "233 56% 70%",
1265
+ "primary-foreground": "0 0% 100%",
1266
+ secondary: "240 9% 96%",
1267
+ "secondary-foreground": "240 5% 12%",
1268
+ accent: "245 60% 60%",
1269
+ "accent-deep": "245 60% 50%",
1270
+ "accent-foreground": "0 0% 100%",
1271
+ muted: "240 9% 96%",
1272
+ "muted-foreground": "240 4% 44%",
1273
+ border: "240 9% 93%",
1274
+ input: "240 9% 93%",
1275
+ ring: "233 56% 55%",
1276
+ success: "155 62% 35%",
1277
+ "success-foreground": "0 0% 100%",
1278
+ warning: "35 76% 45%",
1279
+ "warning-foreground": "0 0% 100%",
1280
+ destructive: "358 75% 50%",
1281
+ "destructive-foreground": "0 0% 100%",
1282
+ info: "233 56% 55%",
1283
+ "info-foreground": "0 0% 100%"
1284
+ },
1285
+ dark: {
1286
+ background: "240 9% 6%",
1287
+ foreground: "0 0% 90%",
1288
+ card: "240 8% 11%",
1289
+ "card-foreground": "0 0% 90%",
1290
+ popover: "240 8% 11%",
1291
+ "popover-foreground": "0 0% 90%",
1292
+ primary: "245 60% 67%",
1293
+ "primary-deep": "245 60% 55%",
1294
+ "primary-glow": "245 60% 78%",
1295
+ "primary-foreground": "0 0% 100%",
1296
+ secondary: "240 8% 14%",
1297
+ "secondary-foreground": "0 0% 90%",
1298
+ accent: "253 100% 78%",
1299
+ "accent-deep": "253 100% 65%",
1300
+ "accent-foreground": "240 9% 6%",
1301
+ muted: "240 8% 14%",
1302
+ "muted-foreground": "240 5% 67%",
1303
+ border: "240 6% 17%",
1304
+ input: "240 6% 17%",
1305
+ ring: "245 60% 67%",
1306
+ success: "147 49% 53%",
1307
+ "success-foreground": "240 9% 6%",
1308
+ warning: "32 100% 66%",
1309
+ "warning-foreground": "240 9% 6%",
1310
+ destructive: "357 100% 70%",
1311
+ "destructive-foreground": "240 9% 6%",
1312
+ info: "245 60% 67%",
1313
+ "info-foreground": "0 0% 100%"
1314
+ }
1315
+ };
1316
+
1317
+ // src/themes/index.ts
1318
+ var builtinThemes = [
1319
+ violetForge,
1320
+ classicPaper,
1321
+ auroraTerminal,
1322
+ vercelMono,
1323
+ githubDark,
1324
+ dracula,
1325
+ oneDark,
1326
+ anthropicStyle,
1327
+ openaiStyle,
1328
+ linearGlass
1329
+ ];
1330
+ function TheoUIProvider({ children, theme, toaster }) {
1331
+ const { themes, ...restTheme } = theme ?? {};
1332
+ return /* @__PURE__ */ jsx(ThemeProvider, { themes: themes ?? builtinThemes, ...restTheme, children: /* @__PURE__ */ jsx(Toaster, { ...toaster, children }) });
1333
+ }
1334
+ TheoUIProvider.displayName = "TheoUIProvider";
1335
+
1336
+ export { ThemeProvider, ThemeScript, ThemeSwitcher, TheoUIProvider, anthropicStyle, auroraTerminal, builtinThemes, classicPaper, defineTheme, dracula, githubDark, hex, linearGlass, oneDark, openaiStyle, rgb, useDensity, useTheme, vercelMono, violetForge };
1337
+ //# sourceMappingURL=index.js.map
1338
+ //# sourceMappingURL=index.js.map