@usetheo/ui 0.13.2 → 0.15.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 (1025) hide show
  1. package/README.md +4 -466
  2. package/dist/components/composites/command-palette/command-palette.d.ts +1 -1
  3. package/dist/components/composites/metric-card/metric-card.d.ts +1 -1
  4. package/dist/components/primitives/alert/alert.d.ts +1 -1
  5. package/dist/components/primitives/badge/badge.d.ts +1 -1
  6. package/dist/components/primitives/button/button.d.ts +1 -1
  7. package/dist/components/primitives/danger-zone/danger-zone.d.ts +1 -1
  8. package/dist/components/primitives/dialog/dialog.d.ts +3 -3
  9. package/dist/components/primitives/dropdown-menu/dropdown-menu.d.ts +1 -1
  10. package/dist/components/primitives/empty-state/empty-state.d.ts +1 -1
  11. package/dist/components/primitives/plan-badge/plan-badge.d.ts +1 -1
  12. package/dist/components/primitives/sheet/sheet.d.ts +3 -3
  13. package/dist/components/primitives/stat-tile/stat-tile.d.ts +1 -1
  14. package/dist/components/primitives/toast/toast.d.ts +1 -1
  15. package/dist/components/primitives/update-banner/update-banner.d.ts +1 -1
  16. package/dist/index.d.ts +0 -89
  17. package/dist/index.js +4657 -1545
  18. package/dist/lib/cn.d.ts +1 -1
  19. package/dist/{preset-v3-legacy.js → tailwind-preset.js} +1 -16
  20. package/package.json +29 -788
  21. package/CHANGELOG.md +0 -1797
  22. package/DESIGN.md +0 -456
  23. package/NOTICE +0 -38
  24. package/dist/chunk-23YEYNDS.js +0 -89
  25. package/dist/chunk-23YEYNDS.js.map +0 -1
  26. package/dist/chunk-25KBUQEQ.js +0 -95
  27. package/dist/chunk-25KBUQEQ.js.map +0 -1
  28. package/dist/chunk-2NTEJRPA.js +0 -212
  29. package/dist/chunk-2NTEJRPA.js.map +0 -1
  30. package/dist/chunk-2NZYMQKT.js +0 -56
  31. package/dist/chunk-2NZYMQKT.js.map +0 -1
  32. package/dist/chunk-2OVFVPSZ.js +0 -26
  33. package/dist/chunk-2OVFVPSZ.js.map +0 -1
  34. package/dist/chunk-2UP7SECE.js +0 -78
  35. package/dist/chunk-2UP7SECE.js.map +0 -1
  36. package/dist/chunk-33ETHPT7.js +0 -112
  37. package/dist/chunk-33ETHPT7.js.map +0 -1
  38. package/dist/chunk-33IIDFSM.js +0 -43
  39. package/dist/chunk-33IIDFSM.js.map +0 -1
  40. package/dist/chunk-345HYADQ.js +0 -88
  41. package/dist/chunk-345HYADQ.js.map +0 -1
  42. package/dist/chunk-357XIC2N.js +0 -98
  43. package/dist/chunk-357XIC2N.js.map +0 -1
  44. package/dist/chunk-3YOPTHZH.js +0 -31
  45. package/dist/chunk-3YOPTHZH.js.map +0 -1
  46. package/dist/chunk-44ZNZZUS.js +0 -111
  47. package/dist/chunk-44ZNZZUS.js.map +0 -1
  48. package/dist/chunk-45FWKR23.js +0 -62
  49. package/dist/chunk-45FWKR23.js.map +0 -1
  50. package/dist/chunk-47IPOYLQ.js +0 -116
  51. package/dist/chunk-47IPOYLQ.js.map +0 -1
  52. package/dist/chunk-4EH6F54D.js +0 -69
  53. package/dist/chunk-4EH6F54D.js.map +0 -1
  54. package/dist/chunk-4EKF4EIE.js +0 -140
  55. package/dist/chunk-4EKF4EIE.js.map +0 -1
  56. package/dist/chunk-4XYFJIRC.js +0 -65
  57. package/dist/chunk-4XYFJIRC.js.map +0 -1
  58. package/dist/chunk-52J7SDYH.js +0 -48
  59. package/dist/chunk-52J7SDYH.js.map +0 -1
  60. package/dist/chunk-5YX76GH6.js +0 -70
  61. package/dist/chunk-5YX76GH6.js.map +0 -1
  62. package/dist/chunk-624AATQZ.js +0 -77
  63. package/dist/chunk-624AATQZ.js.map +0 -1
  64. package/dist/chunk-65YSFZAN.js +0 -192
  65. package/dist/chunk-65YSFZAN.js.map +0 -1
  66. package/dist/chunk-6IODJQWC.js +0 -47
  67. package/dist/chunk-6IODJQWC.js.map +0 -1
  68. package/dist/chunk-6ORS6XOE.js +0 -57
  69. package/dist/chunk-6ORS6XOE.js.map +0 -1
  70. package/dist/chunk-6V2LQEPT.js +0 -165
  71. package/dist/chunk-6V2LQEPT.js.map +0 -1
  72. package/dist/chunk-75IDWFYX.js +0 -134
  73. package/dist/chunk-75IDWFYX.js.map +0 -1
  74. package/dist/chunk-7BQXMG2A.js +0 -93
  75. package/dist/chunk-7BQXMG2A.js.map +0 -1
  76. package/dist/chunk-7RFWVNQA.js +0 -47
  77. package/dist/chunk-7RFWVNQA.js.map +0 -1
  78. package/dist/chunk-ABBXLAJW.js +0 -74
  79. package/dist/chunk-ABBXLAJW.js.map +0 -1
  80. package/dist/chunk-ACZNFEOZ.js +0 -180
  81. package/dist/chunk-ACZNFEOZ.js.map +0 -1
  82. package/dist/chunk-AJ2LNQUQ.js +0 -108
  83. package/dist/chunk-AJ2LNQUQ.js.map +0 -1
  84. package/dist/chunk-AX6P3SDS.js +0 -89
  85. package/dist/chunk-AX6P3SDS.js.map +0 -1
  86. package/dist/chunk-AXUAQM45.js +0 -154
  87. package/dist/chunk-AXUAQM45.js.map +0 -1
  88. package/dist/chunk-B2FL7KBJ.js +0 -65
  89. package/dist/chunk-B2FL7KBJ.js.map +0 -1
  90. package/dist/chunk-B42EOFRD.js +0 -106
  91. package/dist/chunk-B42EOFRD.js.map +0 -1
  92. package/dist/chunk-BE232OKN.js +0 -42
  93. package/dist/chunk-BE232OKN.js.map +0 -1
  94. package/dist/chunk-BSF4Y4UT.js +0 -77
  95. package/dist/chunk-BSF4Y4UT.js.map +0 -1
  96. package/dist/chunk-BYUWQ6OP.js +0 -45
  97. package/dist/chunk-BYUWQ6OP.js.map +0 -1
  98. package/dist/chunk-C5ULP2P5.js +0 -140
  99. package/dist/chunk-C5ULP2P5.js.map +0 -1
  100. package/dist/chunk-CCG7PXLX.js +0 -24
  101. package/dist/chunk-CCG7PXLX.js.map +0 -1
  102. package/dist/chunk-CFVSXYVT.js +0 -59
  103. package/dist/chunk-CFVSXYVT.js.map +0 -1
  104. package/dist/chunk-CGWIOIEO.js +0 -27
  105. package/dist/chunk-CGWIOIEO.js.map +0 -1
  106. package/dist/chunk-CVFSNA4K.js +0 -716
  107. package/dist/chunk-CVFSNA4K.js.map +0 -1
  108. package/dist/chunk-CX54TUTT.js +0 -144
  109. package/dist/chunk-CX54TUTT.js.map +0 -1
  110. package/dist/chunk-DJK6H3FD.js +0 -200
  111. package/dist/chunk-DJK6H3FD.js.map +0 -1
  112. package/dist/chunk-E26M7ATD.js +0 -61
  113. package/dist/chunk-E26M7ATD.js.map +0 -1
  114. package/dist/chunk-E63IRXZZ.js +0 -78
  115. package/dist/chunk-E63IRXZZ.js.map +0 -1
  116. package/dist/chunk-EOTSD2GL.js +0 -83
  117. package/dist/chunk-EOTSD2GL.js.map +0 -1
  118. package/dist/chunk-ESJUISWY.js +0 -45
  119. package/dist/chunk-ESJUISWY.js.map +0 -1
  120. package/dist/chunk-ET7A3TQZ.js +0 -158
  121. package/dist/chunk-ET7A3TQZ.js.map +0 -1
  122. package/dist/chunk-ETTL6XGU.js +0 -139
  123. package/dist/chunk-ETTL6XGU.js.map +0 -1
  124. package/dist/chunk-EWDN56AS.js +0 -24
  125. package/dist/chunk-EWDN56AS.js.map +0 -1
  126. package/dist/chunk-FELH4AAQ.js +0 -90
  127. package/dist/chunk-FELH4AAQ.js.map +0 -1
  128. package/dist/chunk-FJZKA2LV.js +0 -165
  129. package/dist/chunk-FJZKA2LV.js.map +0 -1
  130. package/dist/chunk-FM72LBCJ.js +0 -102
  131. package/dist/chunk-FM72LBCJ.js.map +0 -1
  132. package/dist/chunk-FNQASFTK.js +0 -53
  133. package/dist/chunk-FNQASFTK.js.map +0 -1
  134. package/dist/chunk-FOE3XXBJ.js +0 -965
  135. package/dist/chunk-FOE3XXBJ.js.map +0 -1
  136. package/dist/chunk-GC52HWIL.js +0 -41
  137. package/dist/chunk-GC52HWIL.js.map +0 -1
  138. package/dist/chunk-GCKFA7X7.js +0 -83
  139. package/dist/chunk-GCKFA7X7.js.map +0 -1
  140. package/dist/chunk-GDMCDW66.js +0 -19
  141. package/dist/chunk-GDMCDW66.js.map +0 -1
  142. package/dist/chunk-GLRUM43F.js +0 -121
  143. package/dist/chunk-GLRUM43F.js.map +0 -1
  144. package/dist/chunk-H3L7WZDZ.js +0 -74
  145. package/dist/chunk-H3L7WZDZ.js.map +0 -1
  146. package/dist/chunk-H55WXDME.js +0 -45
  147. package/dist/chunk-H55WXDME.js.map +0 -1
  148. package/dist/chunk-HB45JHMM.js +0 -43
  149. package/dist/chunk-HB45JHMM.js.map +0 -1
  150. package/dist/chunk-HETHTYEZ.js +0 -80
  151. package/dist/chunk-HETHTYEZ.js.map +0 -1
  152. package/dist/chunk-HHSKNB32.js +0 -55
  153. package/dist/chunk-HHSKNB32.js.map +0 -1
  154. package/dist/chunk-HILOUYES.js +0 -151
  155. package/dist/chunk-HILOUYES.js.map +0 -1
  156. package/dist/chunk-HKVOCYTN.js +0 -113
  157. package/dist/chunk-HKVOCYTN.js.map +0 -1
  158. package/dist/chunk-HNRFBJ25.js +0 -129
  159. package/dist/chunk-HNRFBJ25.js.map +0 -1
  160. package/dist/chunk-HTJVHFNW.js +0 -178
  161. package/dist/chunk-HTJVHFNW.js.map +0 -1
  162. package/dist/chunk-HZ7Z22VW.js +0 -130
  163. package/dist/chunk-HZ7Z22VW.js.map +0 -1
  164. package/dist/chunk-II5Q5RIO.js +0 -236
  165. package/dist/chunk-II5Q5RIO.js.map +0 -1
  166. package/dist/chunk-ITEIRMSH.js +0 -121
  167. package/dist/chunk-ITEIRMSH.js.map +0 -1
  168. package/dist/chunk-JIZKW3WC.js +0 -74
  169. package/dist/chunk-JIZKW3WC.js.map +0 -1
  170. package/dist/chunk-JP3SHERK.js +0 -154
  171. package/dist/chunk-JP3SHERK.js.map +0 -1
  172. package/dist/chunk-JR4H3FJ2.js +0 -74
  173. package/dist/chunk-JR4H3FJ2.js.map +0 -1
  174. package/dist/chunk-JRW53TVG.js +0 -53
  175. package/dist/chunk-JRW53TVG.js.map +0 -1
  176. package/dist/chunk-JS5T2CRO.js +0 -86
  177. package/dist/chunk-JS5T2CRO.js.map +0 -1
  178. package/dist/chunk-JXOCE27Z.js +0 -82
  179. package/dist/chunk-JXOCE27Z.js.map +0 -1
  180. package/dist/chunk-JYW5YNF7.js +0 -188
  181. package/dist/chunk-JYW5YNF7.js.map +0 -1
  182. package/dist/chunk-KHBXI6AV.js +0 -149
  183. package/dist/chunk-KHBXI6AV.js.map +0 -1
  184. package/dist/chunk-KXZH7BTX.js +0 -92
  185. package/dist/chunk-KXZH7BTX.js.map +0 -1
  186. package/dist/chunk-LB4PMLCX.js +0 -57
  187. package/dist/chunk-LB4PMLCX.js.map +0 -1
  188. package/dist/chunk-LMGE2QEO.js +0 -117
  189. package/dist/chunk-LMGE2QEO.js.map +0 -1
  190. package/dist/chunk-M74ZYBOK.js +0 -93
  191. package/dist/chunk-M74ZYBOK.js.map +0 -1
  192. package/dist/chunk-ML7WLNIK.js +0 -11
  193. package/dist/chunk-ML7WLNIK.js.map +0 -1
  194. package/dist/chunk-MLEPCMTF.js +0 -147
  195. package/dist/chunk-MLEPCMTF.js.map +0 -1
  196. package/dist/chunk-NSZEZTDO.js +0 -98
  197. package/dist/chunk-NSZEZTDO.js.map +0 -1
  198. package/dist/chunk-OMR6ZGME.js +0 -63
  199. package/dist/chunk-OMR6ZGME.js.map +0 -1
  200. package/dist/chunk-ORVYP73T.js +0 -223
  201. package/dist/chunk-ORVYP73T.js.map +0 -1
  202. package/dist/chunk-OZFUUO2Q.js +0 -50
  203. package/dist/chunk-OZFUUO2Q.js.map +0 -1
  204. package/dist/chunk-PJWYIOY4.js +0 -3
  205. package/dist/chunk-PJWYIOY4.js.map +0 -1
  206. package/dist/chunk-PXT47DRZ.js +0 -59
  207. package/dist/chunk-PXT47DRZ.js.map +0 -1
  208. package/dist/chunk-QBSJM4XI.js +0 -83
  209. package/dist/chunk-QBSJM4XI.js.map +0 -1
  210. package/dist/chunk-QBUTRD2M.js +0 -58
  211. package/dist/chunk-QBUTRD2M.js.map +0 -1
  212. package/dist/chunk-QCSMJTA6.js +0 -68
  213. package/dist/chunk-QCSMJTA6.js.map +0 -1
  214. package/dist/chunk-QNYOIVQ4.js +0 -36
  215. package/dist/chunk-QNYOIVQ4.js.map +0 -1
  216. package/dist/chunk-QPURZJJM.js +0 -88
  217. package/dist/chunk-QPURZJJM.js.map +0 -1
  218. package/dist/chunk-QTG266XU.js +0 -69
  219. package/dist/chunk-QTG266XU.js.map +0 -1
  220. package/dist/chunk-QV4BQRNH.js +0 -29
  221. package/dist/chunk-QV4BQRNH.js.map +0 -1
  222. package/dist/chunk-RJ6RAMKH.js +0 -89
  223. package/dist/chunk-RJ6RAMKH.js.map +0 -1
  224. package/dist/chunk-RJBCTMVW.js +0 -59
  225. package/dist/chunk-RJBCTMVW.js.map +0 -1
  226. package/dist/chunk-RMJYXHBX.js +0 -113
  227. package/dist/chunk-RMJYXHBX.js.map +0 -1
  228. package/dist/chunk-RQT5DWGG.js +0 -34
  229. package/dist/chunk-RQT5DWGG.js.map +0 -1
  230. package/dist/chunk-SPGNNN4R.js +0 -115
  231. package/dist/chunk-SPGNNN4R.js.map +0 -1
  232. package/dist/chunk-SQ66DCXY.js +0 -35
  233. package/dist/chunk-SQ66DCXY.js.map +0 -1
  234. package/dist/chunk-SXKGWHAM.js +0 -179
  235. package/dist/chunk-SXKGWHAM.js.map +0 -1
  236. package/dist/chunk-T2OKGV6M.js +0 -13
  237. package/dist/chunk-T2OKGV6M.js.map +0 -1
  238. package/dist/chunk-T4Z7HBZR.js +0 -110
  239. package/dist/chunk-T4Z7HBZR.js.map +0 -1
  240. package/dist/chunk-TW5I37AE.js +0 -142
  241. package/dist/chunk-TW5I37AE.js.map +0 -1
  242. package/dist/chunk-TY6NTWN5.js +0 -29
  243. package/dist/chunk-TY6NTWN5.js.map +0 -1
  244. package/dist/chunk-UGKI466V.js +0 -12
  245. package/dist/chunk-UGKI466V.js.map +0 -1
  246. package/dist/chunk-UJAWV6LM.js +0 -136
  247. package/dist/chunk-UJAWV6LM.js.map +0 -1
  248. package/dist/chunk-V2WCZBVE.js +0 -122
  249. package/dist/chunk-V2WCZBVE.js.map +0 -1
  250. package/dist/chunk-V4LRBYOD.js +0 -55
  251. package/dist/chunk-V4LRBYOD.js.map +0 -1
  252. package/dist/chunk-V6H2RUVP.js +0 -77
  253. package/dist/chunk-V6H2RUVP.js.map +0 -1
  254. package/dist/chunk-VFRFUU7A.js +0 -35
  255. package/dist/chunk-VFRFUU7A.js.map +0 -1
  256. package/dist/chunk-VHK2OUCW.js +0 -38
  257. package/dist/chunk-VHK2OUCW.js.map +0 -1
  258. package/dist/chunk-VLNFUEOR.js +0 -86
  259. package/dist/chunk-VLNFUEOR.js.map +0 -1
  260. package/dist/chunk-VM4RMQQN.js +0 -11
  261. package/dist/chunk-VM4RMQQN.js.map +0 -1
  262. package/dist/chunk-VU7XKD4G.js +0 -66
  263. package/dist/chunk-VU7XKD4G.js.map +0 -1
  264. package/dist/chunk-VZX4HLBM.js +0 -84
  265. package/dist/chunk-VZX4HLBM.js.map +0 -1
  266. package/dist/chunk-W24RR5OD.js +0 -102
  267. package/dist/chunk-W24RR5OD.js.map +0 -1
  268. package/dist/chunk-W47V2F3Q.js +0 -115
  269. package/dist/chunk-W47V2F3Q.js.map +0 -1
  270. package/dist/chunk-W743ORLA.js +0 -91
  271. package/dist/chunk-W743ORLA.js.map +0 -1
  272. package/dist/chunk-W7I3ZX66.js +0 -76
  273. package/dist/chunk-W7I3ZX66.js.map +0 -1
  274. package/dist/chunk-WD42UBGR.js +0 -64
  275. package/dist/chunk-WD42UBGR.js.map +0 -1
  276. package/dist/chunk-WQVEJJV7.js +0 -108
  277. package/dist/chunk-WQVEJJV7.js.map +0 -1
  278. package/dist/chunk-WX4Q4DTX.js +0 -121
  279. package/dist/chunk-WX4Q4DTX.js.map +0 -1
  280. package/dist/chunk-XC7SYZYR.js +0 -86
  281. package/dist/chunk-XC7SYZYR.js.map +0 -1
  282. package/dist/chunk-XSENM65D.js +0 -128
  283. package/dist/chunk-XSENM65D.js.map +0 -1
  284. package/dist/chunk-Y7JTBQUQ.js +0 -152
  285. package/dist/chunk-Y7JTBQUQ.js.map +0 -1
  286. package/dist/chunk-YD2QEVHO.js +0 -68
  287. package/dist/chunk-YD2QEVHO.js.map +0 -1
  288. package/dist/chunk-YDKRUSB5.js +0 -35
  289. package/dist/chunk-YDKRUSB5.js.map +0 -1
  290. package/dist/chunk-YNDHYMPI.js +0 -46
  291. package/dist/chunk-YNDHYMPI.js.map +0 -1
  292. package/dist/chunk-YO3WEMOH.js +0 -130
  293. package/dist/chunk-YO3WEMOH.js.map +0 -1
  294. package/dist/chunk-YVXMWUWD.js +0 -118
  295. package/dist/chunk-YVXMWUWD.js.map +0 -1
  296. package/dist/chunk-Z6HZMGO2.js +0 -106
  297. package/dist/chunk-Z6HZMGO2.js.map +0 -1
  298. package/dist/chunk-ZAP4RIUL.js +0 -81
  299. package/dist/chunk-ZAP4RIUL.js.map +0 -1
  300. package/dist/chunk-ZEDDWVBB.js +0 -112
  301. package/dist/chunk-ZEDDWVBB.js.map +0 -1
  302. package/dist/chunk-ZEFOXF2I.js +0 -87
  303. package/dist/chunk-ZEFOXF2I.js.map +0 -1
  304. package/dist/chunk-ZPURFK4C.js +0 -203
  305. package/dist/chunk-ZPURFK4C.js.map +0 -1
  306. package/dist/chunk-ZXPDS6DH.js +0 -3
  307. package/dist/chunk-ZXPDS6DH.js.map +0 -1
  308. package/dist/chunk-ZZZIOTLC.js +0 -89
  309. package/dist/chunk-ZZZIOTLC.js.map +0 -1
  310. package/dist/components/composites/agent-composer/agent-composer.d.ts +0 -41
  311. package/dist/components/composites/agent-composer/index.d.ts +0 -1
  312. package/dist/components/composites/agent-editor/agent-editor.d.ts +0 -31
  313. package/dist/components/composites/agent-editor/index.d.ts +0 -1
  314. package/dist/components/composites/agent-stream/agent-stream.d.ts +0 -72
  315. package/dist/components/composites/agent-stream/index.d.ts +0 -2
  316. package/dist/components/composites/agent-stream/to-agent-stream-items.d.ts +0 -32
  317. package/dist/components/composites/agent-timeline/agent-timeline.d.ts +0 -22
  318. package/dist/components/composites/agent-timeline/index.d.ts +0 -1
  319. package/dist/components/composites/agent-tool-renderer/agent-tool-renderer.d.ts +0 -60
  320. package/dist/components/composites/agent-tool-renderer/index.d.ts +0 -1
  321. package/dist/components/composites/agent-tool-renderer/tool-call-part.d.ts +0 -5
  322. package/dist/components/composites/approval-card/approval-card.d.ts +0 -35
  323. package/dist/components/composites/approval-card/index.d.ts +0 -1
  324. package/dist/components/composites/chat-composer/chat-composer.d.ts +0 -68
  325. package/dist/components/composites/chat-composer/index.d.ts +0 -1
  326. package/dist/components/composites/chat-message/chat-message-actions.d.ts +0 -22
  327. package/dist/components/composites/chat-message/chat-message-branch.d.ts +0 -17
  328. package/dist/components/composites/chat-message/chat-message-response.d.ts +0 -15
  329. package/dist/components/composites/chat-message/chat-message-toolbar.d.ts +0 -7
  330. package/dist/components/composites/chat-message/chat-message.d.ts +0 -94
  331. package/dist/components/composites/chat-message/index.d.ts +0 -23
  332. package/dist/components/composites/chat-message/parts/data-part.d.ts +0 -9
  333. package/dist/components/composites/chat-message/parts/file-part.d.ts +0 -5
  334. package/dist/components/composites/chat-message/parts/reasoning-part.d.ts +0 -7
  335. package/dist/components/composites/chat-message/parts/source-part.d.ts +0 -9
  336. package/dist/components/composites/chat-message/parts/text-part.d.ts +0 -11
  337. package/dist/components/composites/choice-prompt/choice-prompt.d.ts +0 -65
  338. package/dist/components/composites/choice-prompt/index.d.ts +0 -2
  339. package/dist/components/composites/confirm-prompt/confirm-prompt.d.ts +0 -31
  340. package/dist/components/composites/confirm-prompt/index.d.ts +0 -1
  341. package/dist/components/composites/cron-jobs-list/cron-jobs-list.d.ts +0 -15
  342. package/dist/components/composites/cron-jobs-list/index.d.ts +0 -1
  343. package/dist/components/composites/mcp-server-list/index.d.ts +0 -1
  344. package/dist/components/composites/mcp-server-list/mcp-server-list.d.ts +0 -15
  345. package/dist/components/composites/multi-select-prompt/index.d.ts +0 -1
  346. package/dist/components/composites/multi-select-prompt/multi-select-prompt.d.ts +0 -61
  347. package/dist/components/composites/permission-modal/index.d.ts +0 -1
  348. package/dist/components/composites/permission-modal/permission-modal.d.ts +0 -48
  349. package/dist/components/composites/preview-panel/index.d.ts +0 -1
  350. package/dist/components/composites/preview-panel/preview-panel.d.ts +0 -24
  351. package/dist/components/composites/rule-editor/index.d.ts +0 -1
  352. package/dist/components/composites/rule-editor/rule-editor.d.ts +0 -18
  353. package/dist/components/composites/skill-editor/index.d.ts +0 -1
  354. package/dist/components/composites/skill-editor/skill-editor.d.ts +0 -19
  355. package/dist/components/composites/skills-list/index.d.ts +0 -1
  356. package/dist/components/composites/skills-list/skills-list.d.ts +0 -15
  357. package/dist/components/composites/slide-deck/context.d.ts +0 -23
  358. package/dist/components/composites/slide-deck/controls.d.ts +0 -8
  359. package/dist/components/composites/slide-deck/fragments.d.ts +0 -20
  360. package/dist/components/composites/slide-deck/index.d.ts +0 -21
  361. package/dist/components/composites/slide-deck/notes.d.ts +0 -14
  362. package/dist/components/composites/slide-deck/presenter-view.d.ts +0 -15
  363. package/dist/components/composites/slide-deck/print-styles.d.ts +0 -21
  364. package/dist/components/composites/slide-deck/progress-bar.d.ts +0 -8
  365. package/dist/components/composites/slide-deck/schema.d.ts +0 -31
  366. package/dist/components/composites/slide-deck/slide-deck.d.ts +0 -78
  367. package/dist/components/composites/slide-deck/slide-number.d.ts +0 -11
  368. package/dist/components/composites/slide-deck/split-deck.d.ts +0 -2
  369. package/dist/components/composites/slide-deck/thumbnails.d.ts +0 -19
  370. package/dist/components/composites/slide-deck/use-deck-hash-routing.d.ts +0 -23
  371. package/dist/components/composites/slide-deck/use-deck-keyboard.d.ts +0 -25
  372. package/dist/components/composites/slide-deck/use-deck-state.d.ts +0 -57
  373. package/dist/components/composites/slide-deck/use-deck-swipe.d.ts +0 -20
  374. package/dist/components/composites/slide-deck/use-fullscreen.d.ts +0 -18
  375. package/dist/components/composites/stability-bundle-viewer/index.d.ts +0 -1
  376. package/dist/components/composites/stability-bundle-viewer/stability-bundle-viewer.d.ts +0 -28
  377. package/dist/components/composites/text-prompt/index.d.ts +0 -1
  378. package/dist/components/composites/text-prompt/text-prompt.d.ts +0 -48
  379. package/dist/components/composites/usage-meter/index.d.ts +0 -1
  380. package/dist/components/composites/usage-meter/usage-meter.d.ts +0 -56
  381. package/dist/components/primitives/agent-error-card/agent-error-card.d.ts +0 -47
  382. package/dist/components/primitives/agent-error-card/index.d.ts +0 -1
  383. package/dist/components/primitives/agent-event/agent-event.d.ts +0 -25
  384. package/dist/components/primitives/agent-event/index.d.ts +0 -1
  385. package/dist/components/primitives/agent-handoff/agent-handoff.d.ts +0 -24
  386. package/dist/components/primitives/agent-handoff/index.d.ts +0 -1
  387. package/dist/components/primitives/agent-profile/agent-profile.d.ts +0 -28
  388. package/dist/components/primitives/agent-profile/index.d.ts +0 -1
  389. package/dist/components/primitives/agent-starting-state/agent-starting-state.d.ts +0 -15
  390. package/dist/components/primitives/agent-starting-state/index.d.ts +0 -1
  391. package/dist/components/primitives/agent-streaming/agent-streaming.d.ts +0 -16
  392. package/dist/components/primitives/agent-streaming/index.d.ts +0 -1
  393. package/dist/components/primitives/artifact-preview/artifact-preview.d.ts +0 -25
  394. package/dist/components/primitives/artifact-preview/index.d.ts +0 -1
  395. package/dist/components/primitives/attachment-chip/attachment-chip.d.ts +0 -14
  396. package/dist/components/primitives/attachment-chip/index.d.ts +0 -1
  397. package/dist/components/primitives/audit-log-entry/audit-log-entry.d.ts +0 -29
  398. package/dist/components/primitives/audit-log-entry/index.d.ts +0 -1
  399. package/dist/components/primitives/auto-compact-notice/auto-compact-notice.d.ts +0 -24
  400. package/dist/components/primitives/auto-compact-notice/index.d.ts +0 -1
  401. package/dist/components/primitives/branch-indicator/branch-indicator.d.ts +0 -13
  402. package/dist/components/primitives/branch-indicator/index.d.ts +0 -1
  403. package/dist/components/primitives/browser-controls/browser-controls.d.ts +0 -19
  404. package/dist/components/primitives/browser-controls/index.d.ts +0 -1
  405. package/dist/components/primitives/build-log-stream/build-log-stream.d.ts +0 -51
  406. package/dist/components/primitives/build-log-stream/index.d.ts +0 -1
  407. package/dist/components/primitives/capability-indicator/capability-indicator.d.ts +0 -57
  408. package/dist/components/primitives/capability-indicator/index.d.ts +0 -1
  409. package/dist/components/primitives/channel-card/channel-card.d.ts +0 -28
  410. package/dist/components/primitives/channel-card/index.d.ts +0 -1
  411. package/dist/components/primitives/chat-thread/chat-thread.d.ts +0 -12
  412. package/dist/components/primitives/chat-thread/index.d.ts +0 -1
  413. package/dist/components/primitives/context-card/context-card.d.ts +0 -18
  414. package/dist/components/primitives/context-card/index.d.ts +0 -1
  415. package/dist/components/primitives/context-window-bar/context-window-bar.d.ts +0 -27
  416. package/dist/components/primitives/context-window-bar/index.d.ts +0 -1
  417. package/dist/components/primitives/cost-meter/cost-meter.d.ts +0 -23
  418. package/dist/components/primitives/cost-meter/index.d.ts +0 -1
  419. package/dist/components/primitives/created-files-card/created-files-card.d.ts +0 -30
  420. package/dist/components/primitives/created-files-card/index.d.ts +0 -1
  421. package/dist/components/primitives/cron-job-card/cron-job-card.d.ts +0 -30
  422. package/dist/components/primitives/cron-job-card/index.d.ts +0 -1
  423. package/dist/components/primitives/diff-viewer/diff-viewer.d.ts +0 -45
  424. package/dist/components/primitives/diff-viewer/index.d.ts +0 -1
  425. package/dist/components/primitives/export-chat-dialog/export-chat-dialog.d.ts +0 -18
  426. package/dist/components/primitives/export-chat-dialog/index.d.ts +0 -1
  427. package/dist/components/primitives/folder-context-card/folder-context-card.d.ts +0 -40
  428. package/dist/components/primitives/folder-context-card/index.d.ts +0 -1
  429. package/dist/components/primitives/folder-selector/folder-selector.d.ts +0 -18
  430. package/dist/components/primitives/folder-selector/index.d.ts +0 -1
  431. package/dist/components/primitives/gateway-status-indicator/gateway-status-indicator.d.ts +0 -19
  432. package/dist/components/primitives/gateway-status-indicator/index.d.ts +0 -1
  433. package/dist/components/primitives/hook-config/hook-config.d.ts +0 -27
  434. package/dist/components/primitives/hook-config/index.d.ts +0 -1
  435. package/dist/components/primitives/hook-event-log/hook-event-log.d.ts +0 -27
  436. package/dist/components/primitives/hook-event-log/index.d.ts +0 -1
  437. package/dist/components/primitives/intent-selector/index.d.ts +0 -1
  438. package/dist/components/primitives/intent-selector/intent-selector.d.ts +0 -22
  439. package/dist/components/primitives/lane-board/index.d.ts +0 -1
  440. package/dist/components/primitives/lane-board/lane-board.d.ts +0 -26
  441. package/dist/components/primitives/mcp-server-card/index.d.ts +0 -1
  442. package/dist/components/primitives/mcp-server-card/mcp-server-card.d.ts +0 -32
  443. package/dist/components/primitives/memory-editor/index.d.ts +0 -1
  444. package/dist/components/primitives/memory-editor/memory-editor.d.ts +0 -29
  445. package/dist/components/primitives/mention-menu/index.d.ts +0 -1
  446. package/dist/components/primitives/mention-menu/mention-menu.d.ts +0 -44
  447. package/dist/components/primitives/model-card/index.d.ts +0 -1
  448. package/dist/components/primitives/model-card/model-card.d.ts +0 -72
  449. package/dist/components/primitives/model-selector/index.d.ts +0 -1
  450. package/dist/components/primitives/model-selector/model-selector.d.ts +0 -21
  451. package/dist/components/primitives/permission-matrix/index.d.ts +0 -1
  452. package/dist/components/primitives/permission-matrix/permission-matrix.d.ts +0 -43
  453. package/dist/components/primitives/progress-checklist/index.d.ts +0 -1
  454. package/dist/components/primitives/progress-checklist/progress-checklist.d.ts +0 -18
  455. package/dist/components/primitives/project-switcher/index.d.ts +0 -1
  456. package/dist/components/primitives/project-switcher/project-switcher.d.ts +0 -32
  457. package/dist/components/primitives/quick-action-chips/index.d.ts +0 -1
  458. package/dist/components/primitives/quick-action-chips/quick-action-chips.d.ts +0 -22
  459. package/dist/components/primitives/recent-folders-list/index.d.ts +0 -1
  460. package/dist/components/primitives/recent-folders-list/recent-folders-list.d.ts +0 -21
  461. package/dist/components/primitives/rule-card/index.d.ts +0 -1
  462. package/dist/components/primitives/rule-card/rule-card.d.ts +0 -15
  463. package/dist/components/primitives/run-stats/index.d.ts +0 -1
  464. package/dist/components/primitives/run-stats/run-stats.d.ts +0 -16
  465. package/dist/components/primitives/run-status-pill/index.d.ts +0 -1
  466. package/dist/components/primitives/run-status-pill/run-status-pill.d.ts +0 -13
  467. package/dist/components/primitives/running-tasks-panel/index.d.ts +0 -1
  468. package/dist/components/primitives/running-tasks-panel/running-tasks-panel.d.ts +0 -20
  469. package/dist/components/primitives/session-list-item/index.d.ts +0 -1
  470. package/dist/components/primitives/session-list-item/session-list-item.d.ts +0 -35
  471. package/dist/components/primitives/session-timeline/index.d.ts +0 -1
  472. package/dist/components/primitives/session-timeline/session-timeline.d.ts +0 -32
  473. package/dist/components/primitives/skill-card/index.d.ts +0 -1
  474. package/dist/components/primitives/skill-card/skill-card.d.ts +0 -28
  475. package/dist/components/primitives/slide/alerts.d.ts +0 -31
  476. package/dist/components/primitives/slide/frontmatter.d.ts +0 -23
  477. package/dist/components/primitives/slide/index.d.ts +0 -16
  478. package/dist/components/primitives/slide/json-schema.d.ts +0 -9
  479. package/dist/components/primitives/slide/marpit-bg.d.ts +0 -36
  480. package/dist/components/primitives/slide/parse.d.ts +0 -59
  481. package/dist/components/primitives/slide/plugin.d.ts +0 -79
  482. package/dist/components/primitives/slide/plugins/emoji/index.d.ts +0 -8
  483. package/dist/components/primitives/slide/plugins/emoji/map.d.ts +0 -15
  484. package/dist/components/primitives/slide/plugins/math/index.d.ts +0 -6
  485. package/dist/components/primitives/slide/plugins/mermaid/index.d.ts +0 -48
  486. package/dist/components/primitives/slide/plugins/shiki/index.d.ts +0 -11
  487. package/dist/components/primitives/slide/sanitize.d.ts +0 -33
  488. package/dist/components/primitives/slide/schema.d.ts +0 -109
  489. package/dist/components/primitives/slide/slide.d.ts +0 -53
  490. package/dist/components/primitives/slide/themes/index.d.ts +0 -9
  491. package/dist/components/primitives/slide/use-slide-fit.d.ts +0 -21
  492. package/dist/components/primitives/slide/validate.d.ts +0 -33
  493. package/dist/components/primitives/steps-rail/index.d.ts +0 -1
  494. package/dist/components/primitives/steps-rail/steps-rail.d.ts +0 -24
  495. package/dist/components/primitives/sub-agent-dispatch/index.d.ts +0 -1
  496. package/dist/components/primitives/sub-agent-dispatch/sub-agent-dispatch.d.ts +0 -30
  497. package/dist/components/primitives/system-prompt-editor/index.d.ts +0 -1
  498. package/dist/components/primitives/system-prompt-editor/system-prompt-editor.d.ts +0 -25
  499. package/dist/components/primitives/task-plan/index.d.ts +0 -1
  500. package/dist/components/primitives/task-plan/task-plan.d.ts +0 -36
  501. package/dist/components/primitives/terminal-panel/index.d.ts +0 -1
  502. package/dist/components/primitives/terminal-panel/terminal-panel.d.ts +0 -32
  503. package/dist/components/primitives/thinking-level-selector/index.d.ts +0 -1
  504. package/dist/components/primitives/thinking-level-selector/thinking-level-selector.d.ts +0 -24
  505. package/dist/components/primitives/token-usage-chart/index.d.ts +0 -2
  506. package/dist/components/primitives/token-usage-chart/token-usage-chart.d.ts +0 -44
  507. package/dist/components/primitives/token-usage-chart/usage-metrics.d.ts +0 -23
  508. package/dist/components/primitives/tool-call/index.d.ts +0 -1
  509. package/dist/components/primitives/tool-call/tool-call.d.ts +0 -30
  510. package/dist/components/primitives/tool-call-card/index.d.ts +0 -1
  511. package/dist/components/primitives/tool-call-card/tool-call-card.d.ts +0 -30
  512. package/dist/components/primitives/tool-result/index.d.ts +0 -1
  513. package/dist/components/primitives/tool-result/tool-result.d.ts +0 -19
  514. package/dist/components/primitives/tools-list/index.d.ts +0 -1
  515. package/dist/components/primitives/tools-list/tools-list.d.ts +0 -32
  516. package/dist/components/primitives/whiteboard/index.d.ts +0 -2
  517. package/dist/components/primitives/whiteboard/render/freedraw.d.ts +0 -2
  518. package/dist/components/primitives/whiteboard/render/line.d.ts +0 -4
  519. package/dist/components/primitives/whiteboard/render/rough-paths.d.ts +0 -16
  520. package/dist/components/primitives/whiteboard/render/scene.d.ts +0 -3
  521. package/dist/components/primitives/whiteboard/render/shape.d.ts +0 -5
  522. package/dist/components/primitives/whiteboard/render/style.d.ts +0 -24
  523. package/dist/components/primitives/whiteboard/render/text.d.ts +0 -2
  524. package/dist/components/primitives/whiteboard/schema.d.ts +0 -596
  525. package/dist/components/primitives/whiteboard/seed.d.ts +0 -22
  526. package/dist/components/primitives/whiteboard/validate.d.ts +0 -26
  527. package/dist/components/primitives/whiteboard/viewport/use-pointer-pan.d.ts +0 -11
  528. package/dist/components/primitives/whiteboard/viewport/use-viewport.d.ts +0 -33
  529. package/dist/components/primitives/whiteboard/whiteboard.d.ts +0 -21
  530. package/dist/components.css +0 -2
  531. package/dist/composites/account-menu/index.js +0 -6
  532. package/dist/composites/account-menu/index.js.map +0 -1
  533. package/dist/composites/agent-composer/index.js +0 -8
  534. package/dist/composites/agent-composer/index.js.map +0 -1
  535. package/dist/composites/agent-editor/index.js +0 -11
  536. package/dist/composites/agent-editor/index.js.map +0 -1
  537. package/dist/composites/agent-stream/index.js +0 -24
  538. package/dist/composites/agent-stream/index.js.map +0 -1
  539. package/dist/composites/agent-timeline/index.js +0 -5
  540. package/dist/composites/agent-timeline/index.js.map +0 -1
  541. package/dist/composites/agent-tool-renderer/index.js +0 -17
  542. package/dist/composites/agent-tool-renderer/index.js.map +0 -1
  543. package/dist/composites/approval-card/index.js +0 -5
  544. package/dist/composites/approval-card/index.js.map +0 -1
  545. package/dist/composites/chat-composer/index.js +0 -6
  546. package/dist/composites/chat-composer/index.js.map +0 -1
  547. package/dist/composites/chat-message/index.js +0 -20
  548. package/dist/composites/chat-message/index.js.map +0 -1
  549. package/dist/composites/choice-prompt/index.js +0 -11
  550. package/dist/composites/choice-prompt/index.js.map +0 -1
  551. package/dist/composites/code-block/index.js +0 -5
  552. package/dist/composites/code-block/index.js.map +0 -1
  553. package/dist/composites/command-palette/index.js +0 -6
  554. package/dist/composites/command-palette/index.js.map +0 -1
  555. package/dist/composites/confirm-dialog/index.js +0 -8
  556. package/dist/composites/confirm-dialog/index.js.map +0 -1
  557. package/dist/composites/confirm-prompt/index.js +0 -7
  558. package/dist/composites/confirm-prompt/index.js.map +0 -1
  559. package/dist/composites/cron-jobs-list/index.js +0 -5
  560. package/dist/composites/cron-jobs-list/index.js.map +0 -1
  561. package/dist/composites/data-table/index.js +0 -11
  562. package/dist/composites/data-table/index.js.map +0 -1
  563. package/dist/composites/deployment-row/index.js +0 -5
  564. package/dist/composites/deployment-row/index.js.map +0 -1
  565. package/dist/composites/domain-config/index.js +0 -8
  566. package/dist/composites/domain-config/index.js.map +0 -1
  567. package/dist/composites/env-var-editor/index.js +0 -9
  568. package/dist/composites/env-var-editor/index.js.map +0 -1
  569. package/dist/composites/mcp-server-list/index.js +0 -6
  570. package/dist/composites/mcp-server-list/index.js.map +0 -1
  571. package/dist/composites/metric-card/index.js +0 -5
  572. package/dist/composites/metric-card/index.js.map +0 -1
  573. package/dist/composites/multi-select-prompt/index.js +0 -11
  574. package/dist/composites/multi-select-prompt/index.js.map +0 -1
  575. package/dist/composites/page-shell/index.js +0 -8
  576. package/dist/composites/page-shell/index.js.map +0 -1
  577. package/dist/composites/permission-modal/index.js +0 -7
  578. package/dist/composites/permission-modal/index.js.map +0 -1
  579. package/dist/composites/preview-env-card/index.js +0 -6
  580. package/dist/composites/preview-env-card/index.js.map +0 -1
  581. package/dist/composites/preview-panel/index.js +0 -5
  582. package/dist/composites/preview-panel/index.js.map +0 -1
  583. package/dist/composites/project-card/index.js +0 -6
  584. package/dist/composites/project-card/index.js.map +0 -1
  585. package/dist/composites/rollback-ui/index.js +0 -7
  586. package/dist/composites/rollback-ui/index.js.map +0 -1
  587. package/dist/composites/rule-editor/index.js +0 -12
  588. package/dist/composites/rule-editor/index.js.map +0 -1
  589. package/dist/composites/skill-editor/index.js +0 -12
  590. package/dist/composites/skill-editor/index.js.map +0 -1
  591. package/dist/composites/skills-list/index.js +0 -6
  592. package/dist/composites/skills-list/index.js.map +0 -1
  593. package/dist/composites/stability-bundle-viewer/index.js +0 -5
  594. package/dist/composites/stability-bundle-viewer/index.js.map +0 -1
  595. package/dist/composites/status-indicator/index.js +0 -4
  596. package/dist/composites/status-indicator/index.js.map +0 -1
  597. package/dist/composites/task-header/index.js +0 -5
  598. package/dist/composites/task-header/index.js.map +0 -1
  599. package/dist/composites/text-prompt/index.js +0 -10
  600. package/dist/composites/text-prompt/index.js.map +0 -1
  601. package/dist/composites/usage-meter/index.js +0 -5
  602. package/dist/composites/usage-meter/index.js.map +0 -1
  603. package/dist/fonts/LICENSE-GEIST.txt +0 -92
  604. package/dist/fonts/geist-400.woff2 +0 -0
  605. package/dist/fonts/geist-500.woff2 +0 -0
  606. package/dist/fonts/geist-600.woff2 +0 -0
  607. package/dist/fonts/geist-mono-400.woff2 +0 -0
  608. package/dist/fonts/geist-mono-500.woff2 +0 -0
  609. package/dist/fonts/geist-mono-600.woff2 +0 -0
  610. package/dist/fonts-cdn.css +0 -28
  611. package/dist/fonts.css +0 -75
  612. package/dist/index.js.map +0 -1
  613. package/dist/lib/markdown/code-block.d.ts +0 -14
  614. package/dist/lib/markdown/inline-code.d.ts +0 -10
  615. package/dist/lib/markdown/math.d.ts +0 -12
  616. package/dist/lib/markdown/mermaid.d.ts +0 -6
  617. package/dist/lib/markdown/parser.d.ts +0 -47
  618. package/dist/lib/markdown/streaming-preprocess.d.ts +0 -39
  619. package/dist/lib/prompt.d.ts +0 -40
  620. package/dist/lib/sdk-tools-adapters/index.d.ts +0 -1
  621. package/dist/lib/sdk-tools-adapters/index.js +0 -3
  622. package/dist/lib/sdk-tools-adapters/index.js.map +0 -1
  623. package/dist/lib/sdk-tools-adapters/sdk-tools-adapters.d.ts +0 -60
  624. package/dist/preset-v3-legacy.d.ts +0 -32
  625. package/dist/preset-v3-legacy.js.map +0 -1
  626. package/dist/preset.css +0 -27
  627. package/dist/primitives/action-bar/index.js +0 -4
  628. package/dist/primitives/action-bar/index.js.map +0 -1
  629. package/dist/primitives/agent-error-card/index.js +0 -5
  630. package/dist/primitives/agent-error-card/index.js.map +0 -1
  631. package/dist/primitives/agent-event/index.js +0 -5
  632. package/dist/primitives/agent-event/index.js.map +0 -1
  633. package/dist/primitives/agent-handoff/index.js +0 -4
  634. package/dist/primitives/agent-handoff/index.js.map +0 -1
  635. package/dist/primitives/agent-profile/index.js +0 -4
  636. package/dist/primitives/agent-profile/index.js.map +0 -1
  637. package/dist/primitives/agent-starting-state/index.js +0 -5
  638. package/dist/primitives/agent-starting-state/index.js.map +0 -1
  639. package/dist/primitives/agent-streaming/index.js +0 -5
  640. package/dist/primitives/agent-streaming/index.js.map +0 -1
  641. package/dist/primitives/alert/index.js +0 -4
  642. package/dist/primitives/alert/index.js.map +0 -1
  643. package/dist/primitives/artifact-preview/index.js +0 -4
  644. package/dist/primitives/artifact-preview/index.js.map +0 -1
  645. package/dist/primitives/attachment-chip/index.js +0 -4
  646. package/dist/primitives/attachment-chip/index.js.map +0 -1
  647. package/dist/primitives/audit-log-entry/index.js +0 -4
  648. package/dist/primitives/audit-log-entry/index.js.map +0 -1
  649. package/dist/primitives/auto-compact-notice/index.js +0 -5
  650. package/dist/primitives/auto-compact-notice/index.js.map +0 -1
  651. package/dist/primitives/avatar/index.js +0 -4
  652. package/dist/primitives/avatar/index.js.map +0 -1
  653. package/dist/primitives/badge/index.js +0 -4
  654. package/dist/primitives/badge/index.js.map +0 -1
  655. package/dist/primitives/branch-indicator/index.js +0 -4
  656. package/dist/primitives/branch-indicator/index.js.map +0 -1
  657. package/dist/primitives/browser-controls/index.js +0 -4
  658. package/dist/primitives/browser-controls/index.js.map +0 -1
  659. package/dist/primitives/build-log-stream/index.js +0 -7
  660. package/dist/primitives/build-log-stream/index.js.map +0 -1
  661. package/dist/primitives/button/index.js +0 -4
  662. package/dist/primitives/button/index.js.map +0 -1
  663. package/dist/primitives/capability-indicator/index.js +0 -4
  664. package/dist/primitives/capability-indicator/index.js.map +0 -1
  665. package/dist/primitives/card/index.js +0 -5
  666. package/dist/primitives/card/index.js.map +0 -1
  667. package/dist/primitives/channel-card/index.js +0 -4
  668. package/dist/primitives/channel-card/index.js.map +0 -1
  669. package/dist/primitives/chat-thread/index.js +0 -5
  670. package/dist/primitives/chat-thread/index.js.map +0 -1
  671. package/dist/primitives/checkbox/index.js +0 -4
  672. package/dist/primitives/checkbox/index.js.map +0 -1
  673. package/dist/primitives/context-card/index.js +0 -4
  674. package/dist/primitives/context-card/index.js.map +0 -1
  675. package/dist/primitives/context-window-bar/index.js +0 -4
  676. package/dist/primitives/context-window-bar/index.js.map +0 -1
  677. package/dist/primitives/copy-button/index.js +0 -5
  678. package/dist/primitives/copy-button/index.js.map +0 -1
  679. package/dist/primitives/cost-meter/index.js +0 -4
  680. package/dist/primitives/cost-meter/index.js.map +0 -1
  681. package/dist/primitives/created-files-card/index.js +0 -4
  682. package/dist/primitives/created-files-card/index.js.map +0 -1
  683. package/dist/primitives/cron-job-card/index.js +0 -4
  684. package/dist/primitives/cron-job-card/index.js.map +0 -1
  685. package/dist/primitives/danger-zone/index.js +0 -4
  686. package/dist/primitives/danger-zone/index.js.map +0 -1
  687. package/dist/primitives/dialog/index.js +0 -4
  688. package/dist/primitives/dialog/index.js.map +0 -1
  689. package/dist/primitives/diff-viewer/index.js +0 -4
  690. package/dist/primitives/diff-viewer/index.js.map +0 -1
  691. package/dist/primitives/dropdown-menu/index.js +0 -4
  692. package/dist/primitives/dropdown-menu/index.js.map +0 -1
  693. package/dist/primitives/empty-state/index.js +0 -4
  694. package/dist/primitives/empty-state/index.js.map +0 -1
  695. package/dist/primitives/export-chat-dialog/index.js +0 -5
  696. package/dist/primitives/export-chat-dialog/index.js.map +0 -1
  697. package/dist/primitives/folder-context-card/index.js +0 -4
  698. package/dist/primitives/folder-context-card/index.js.map +0 -1
  699. package/dist/primitives/folder-selector/index.js +0 -4
  700. package/dist/primitives/folder-selector/index.js.map +0 -1
  701. package/dist/primitives/form-field/index.js +0 -5
  702. package/dist/primitives/form-field/index.js.map +0 -1
  703. package/dist/primitives/gateway-status-indicator/index.js +0 -4
  704. package/dist/primitives/gateway-status-indicator/index.js.map +0 -1
  705. package/dist/primitives/hook-config/index.js +0 -5
  706. package/dist/primitives/hook-config/index.js.map +0 -1
  707. package/dist/primitives/hook-event-log/index.js +0 -4
  708. package/dist/primitives/hook-event-log/index.js.map +0 -1
  709. package/dist/primitives/input/index.js +0 -4
  710. package/dist/primitives/input/index.js.map +0 -1
  711. package/dist/primitives/intent-selector/index.js +0 -4
  712. package/dist/primitives/intent-selector/index.js.map +0 -1
  713. package/dist/primitives/label/index.js +0 -4
  714. package/dist/primitives/label/index.js.map +0 -1
  715. package/dist/primitives/lane-board/index.js +0 -4
  716. package/dist/primitives/lane-board/index.js.map +0 -1
  717. package/dist/primitives/login-split/index.js +0 -4
  718. package/dist/primitives/login-split/index.js.map +0 -1
  719. package/dist/primitives/mcp-server-card/index.js +0 -4
  720. package/dist/primitives/mcp-server-card/index.js.map +0 -1
  721. package/dist/primitives/memory-editor/index.js +0 -4
  722. package/dist/primitives/memory-editor/index.js.map +0 -1
  723. package/dist/primitives/mention-menu/index.js +0 -5
  724. package/dist/primitives/mention-menu/index.js.map +0 -1
  725. package/dist/primitives/metrics-panel/index.js +0 -4
  726. package/dist/primitives/metrics-panel/index.js.map +0 -1
  727. package/dist/primitives/model-card/index.js +0 -4
  728. package/dist/primitives/model-card/index.js.map +0 -1
  729. package/dist/primitives/model-selector/index.js +0 -4
  730. package/dist/primitives/model-selector/index.js.map +0 -1
  731. package/dist/primitives/pagination/index.js +0 -4
  732. package/dist/primitives/pagination/index.js.map +0 -1
  733. package/dist/primitives/permission-matrix/index.js +0 -5
  734. package/dist/primitives/permission-matrix/index.js.map +0 -1
  735. package/dist/primitives/pin-input/index.js +0 -5
  736. package/dist/primitives/pin-input/index.js.map +0 -1
  737. package/dist/primitives/plan-badge/index.js +0 -4
  738. package/dist/primitives/plan-badge/index.js.map +0 -1
  739. package/dist/primitives/progress/index.js +0 -4
  740. package/dist/primitives/progress/index.js.map +0 -1
  741. package/dist/primitives/progress-checklist/index.js +0 -4
  742. package/dist/primitives/progress-checklist/index.js.map +0 -1
  743. package/dist/primitives/project-switcher/index.js +0 -4
  744. package/dist/primitives/project-switcher/index.js.map +0 -1
  745. package/dist/primitives/quick-action-chips/index.js +0 -4
  746. package/dist/primitives/quick-action-chips/index.js.map +0 -1
  747. package/dist/primitives/radio-group/index.js +0 -4
  748. package/dist/primitives/radio-group/index.js.map +0 -1
  749. package/dist/primitives/recent-folders-list/index.js +0 -4
  750. package/dist/primitives/recent-folders-list/index.js.map +0 -1
  751. package/dist/primitives/rule-card/index.js +0 -4
  752. package/dist/primitives/rule-card/index.js.map +0 -1
  753. package/dist/primitives/run-stats/index.js +0 -4
  754. package/dist/primitives/run-stats/index.js.map +0 -1
  755. package/dist/primitives/run-status-pill/index.js +0 -4
  756. package/dist/primitives/run-status-pill/index.js.map +0 -1
  757. package/dist/primitives/running-tasks-panel/index.js +0 -4
  758. package/dist/primitives/running-tasks-panel/index.js.map +0 -1
  759. package/dist/primitives/scroll-area/index.js +0 -5
  760. package/dist/primitives/scroll-area/index.js.map +0 -1
  761. package/dist/primitives/select/index.js +0 -4
  762. package/dist/primitives/select/index.js.map +0 -1
  763. package/dist/primitives/session-list-item/index.js +0 -4
  764. package/dist/primitives/session-list-item/index.js.map +0 -1
  765. package/dist/primitives/session-timeline/index.js +0 -4
  766. package/dist/primitives/session-timeline/index.js.map +0 -1
  767. package/dist/primitives/sheet/index.js +0 -4
  768. package/dist/primitives/sheet/index.js.map +0 -1
  769. package/dist/primitives/sidebar/index.js +0 -4
  770. package/dist/primitives/sidebar/index.js.map +0 -1
  771. package/dist/primitives/skeleton/index.js +0 -5
  772. package/dist/primitives/skeleton/index.js.map +0 -1
  773. package/dist/primitives/skill-card/index.js +0 -4
  774. package/dist/primitives/skill-card/index.js.map +0 -1
  775. package/dist/primitives/social-auth-row/index.js +0 -4
  776. package/dist/primitives/social-auth-row/index.js.map +0 -1
  777. package/dist/primitives/stat-tile/index.js +0 -4
  778. package/dist/primitives/stat-tile/index.js.map +0 -1
  779. package/dist/primitives/status-dot/index.js +0 -6
  780. package/dist/primitives/status-dot/index.js.map +0 -1
  781. package/dist/primitives/steps-rail/index.js +0 -4
  782. package/dist/primitives/steps-rail/index.js.map +0 -1
  783. package/dist/primitives/sub-agent-dispatch/index.js +0 -4
  784. package/dist/primitives/sub-agent-dispatch/index.js.map +0 -1
  785. package/dist/primitives/switch/index.js +0 -4
  786. package/dist/primitives/switch/index.js.map +0 -1
  787. package/dist/primitives/system-prompt-editor/index.js +0 -5
  788. package/dist/primitives/system-prompt-editor/index.js.map +0 -1
  789. package/dist/primitives/table/index.js +0 -5
  790. package/dist/primitives/table/index.js.map +0 -1
  791. package/dist/primitives/tabs/index.js +0 -4
  792. package/dist/primitives/tabs/index.js.map +0 -1
  793. package/dist/primitives/task-plan/index.js +0 -4
  794. package/dist/primitives/task-plan/index.js.map +0 -1
  795. package/dist/primitives/terminal-panel/index.js +0 -5
  796. package/dist/primitives/terminal-panel/index.js.map +0 -1
  797. package/dist/primitives/textarea/index.js +0 -4
  798. package/dist/primitives/textarea/index.js.map +0 -1
  799. package/dist/primitives/thinking-level-selector/index.js +0 -5
  800. package/dist/primitives/thinking-level-selector/index.js.map +0 -1
  801. package/dist/primitives/timestamp/index.js +0 -6
  802. package/dist/primitives/timestamp/index.js.map +0 -1
  803. package/dist/primitives/toast/index.js +0 -5
  804. package/dist/primitives/toast/index.js.map +0 -1
  805. package/dist/primitives/token-usage-chart/index.js +0 -4
  806. package/dist/primitives/token-usage-chart/index.js.map +0 -1
  807. package/dist/primitives/tool-call/index.js +0 -5
  808. package/dist/primitives/tool-call/index.js.map +0 -1
  809. package/dist/primitives/tool-call-card/index.js +0 -5
  810. package/dist/primitives/tool-call-card/index.js.map +0 -1
  811. package/dist/primitives/tool-result/index.js +0 -4
  812. package/dist/primitives/tool-result/index.js.map +0 -1
  813. package/dist/primitives/tools-list/index.js +0 -4
  814. package/dist/primitives/tools-list/index.js.map +0 -1
  815. package/dist/primitives/tooltip/index.js +0 -4
  816. package/dist/primitives/tooltip/index.js.map +0 -1
  817. package/dist/primitives/topnav/index.js +0 -4
  818. package/dist/primitives/topnav/index.js.map +0 -1
  819. package/dist/primitives/update-banner/index.js +0 -4
  820. package/dist/primitives/update-banner/index.js.map +0 -1
  821. package/dist/screens/theo-code-shell.d.ts +0 -9
  822. package/dist/screens/theo-code-shell.data.d.ts +0 -147
  823. package/dist/slide/index.js +0 -4
  824. package/dist/slide/index.js.map +0 -1
  825. package/dist/slide/plugins/emoji/index.js +0 -157
  826. package/dist/slide/plugins/emoji/index.js.map +0 -1
  827. package/dist/slide/plugins/math/index.js +0 -145
  828. package/dist/slide/plugins/math/index.js.map +0 -1
  829. package/dist/slide/plugins/mermaid/index.js +0 -218
  830. package/dist/slide/plugins/mermaid/index.js.map +0 -1
  831. package/dist/slide/plugins/shiki/index.js +0 -87
  832. package/dist/slide/plugins/shiki/index.js.map +0 -1
  833. package/dist/slide/themes/default.css +0 -256
  834. package/dist/slide/themes/layouts.css +0 -143
  835. package/dist/slide/themes/violet-forge.css +0 -256
  836. package/dist/slide-deck/index.css +0 -52
  837. package/dist/slide-deck/index.css.map +0 -1
  838. package/dist/slide-deck/index.js +0 -1122
  839. package/dist/slide-deck/index.js.map +0 -1
  840. package/dist/styles-v3-legacy.css +0 -88
  841. package/dist/styles.css +0 -137
  842. package/dist/themes/anthropic-style.d.ts +0 -11
  843. package/dist/themes/aurora-terminal.d.ts +0 -9
  844. package/dist/themes/classic-paper.d.ts +0 -17
  845. package/dist/themes/color-value-pattern.d.ts +0 -22
  846. package/dist/themes/color.d.ts +0 -62
  847. package/dist/themes/define.d.ts +0 -65
  848. package/dist/themes/density.d.ts +0 -17
  849. package/dist/themes/dracula.d.ts +0 -14
  850. package/dist/themes/github-dark.d.ts +0 -11
  851. package/dist/themes/index.d.ts +0 -26
  852. package/dist/themes/linear-glass.d.ts +0 -11
  853. package/dist/themes/one-dark.d.ts +0 -11
  854. package/dist/themes/openai-style.d.ts +0 -10
  855. package/dist/themes/schema.d.ts +0 -112
  856. package/dist/themes/theme-provider.d.ts +0 -82
  857. package/dist/themes/theme-script.d.ts +0 -48
  858. package/dist/themes/theme-switcher.d.ts +0 -17
  859. package/dist/themes/types.d.ts +0 -88
  860. package/dist/themes/vercel-mono.d.ts +0 -11
  861. package/dist/themes/violet-forge.d.ts +0 -12
  862. package/dist/theo-ui-provider.d.ts +0 -50
  863. package/dist/tokens-v4.css +0 -223
  864. package/dist/tokens.css +0 -315
  865. package/dist/types/agent.d.ts +0 -19
  866. package/dist/types/chat.d.ts +0 -173
  867. package/dist/types/mode.d.ts +0 -16
  868. package/dist/types/permission.d.ts +0 -8
  869. package/dist/types/rule.d.ts +0 -28
  870. package/dist/vite-plugin.d.ts +0 -25
  871. package/dist/vite-plugin.js +0 -76
  872. package/dist/vite-plugin.js.map +0 -1
  873. package/dist/whiteboard/index.js +0 -741
  874. package/dist/whiteboard/index.js.map +0 -1
  875. package/llms.txt +0 -273
  876. package/registry/index.json +0 -910
  877. package/registry/r/account-menu.json +0 -24
  878. package/registry/r/action-bar.json +0 -22
  879. package/registry/r/agent-composer.json +0 -22
  880. package/registry/r/agent-editor.json +0 -27
  881. package/registry/r/agent-error-card.json +0 -22
  882. package/registry/r/agent-event.json +0 -24
  883. package/registry/r/agent-handoff.json +0 -22
  884. package/registry/r/agent-profile.json +0 -23
  885. package/registry/r/agent-starting-state.json +0 -22
  886. package/registry/r/agent-stream.json +0 -27
  887. package/registry/r/agent-streaming.json +0 -22
  888. package/registry/r/agent-timeline.json +0 -22
  889. package/registry/r/agent-tool-renderer.json +0 -40
  890. package/registry/r/agent-types.json +0 -15
  891. package/registry/r/alert.json +0 -22
  892. package/registry/r/approval-card.json +0 -25
  893. package/registry/r/artifact-preview.json +0 -22
  894. package/registry/r/attachment-chip.json +0 -24
  895. package/registry/r/audit-log-entry.json +0 -23
  896. package/registry/r/auto-compact-notice.json +0 -22
  897. package/registry/r/avatar.json +0 -23
  898. package/registry/r/badge.json +0 -22
  899. package/registry/r/browser-controls.json +0 -22
  900. package/registry/r/build-log-stream.json +0 -20
  901. package/registry/r/button.json +0 -23
  902. package/registry/r/capability-indicator.json +0 -23
  903. package/registry/r/card.json +0 -22
  904. package/registry/r/chat-composer.json +0 -23
  905. package/registry/r/chat-message.json +0 -124
  906. package/registry/r/chat-thread.json +0 -20
  907. package/registry/r/chat-types.json +0 -15
  908. package/registry/r/checkbox.json +0 -24
  909. package/registry/r/choice-prompt.json +0 -25
  910. package/registry/r/cn.json +0 -19
  911. package/registry/r/code-block.json +0 -21
  912. package/registry/r/command-palette.json +0 -25
  913. package/registry/r/confirm-dialog.json +0 -25
  914. package/registry/r/confirm-prompt.json +0 -21
  915. package/registry/r/context-card.json +0 -23
  916. package/registry/r/context-window-bar.json +0 -20
  917. package/registry/r/copy-button.json +0 -22
  918. package/registry/r/cost-meter.json +0 -22
  919. package/registry/r/created-files-card.json +0 -23
  920. package/registry/r/cron-job-card.json +0 -22
  921. package/registry/r/cron-jobs-list.json +0 -23
  922. package/registry/r/danger-zone.json +0 -20
  923. package/registry/r/data-table.json +0 -27
  924. package/registry/r/deployment-row.json +0 -23
  925. package/registry/r/dialog.json +0 -23
  926. package/registry/r/diff-viewer.json +0 -20
  927. package/registry/r/domain-config.json +0 -25
  928. package/registry/r/dropdown-menu.json +0 -23
  929. package/registry/r/empty-state.json +0 -20
  930. package/registry/r/env-var-editor.json +0 -26
  931. package/registry/r/env.json +0 -15
  932. package/registry/r/folder-context-card.json +0 -23
  933. package/registry/r/folder-selector.json +0 -22
  934. package/registry/r/form-field.json +0 -23
  935. package/registry/r/hook-config.json +0 -22
  936. package/registry/r/hook-event-log.json +0 -22
  937. package/registry/r/input.json +0 -22
  938. package/registry/r/intent-selector.json +0 -24
  939. package/registry/r/label.json +0 -22
  940. package/registry/r/lane-board.json +0 -20
  941. package/registry/r/live-region-context.json +0 -16
  942. package/registry/r/login-split.json +0 -20
  943. package/registry/r/mcp-server-card.json +0 -22
  944. package/registry/r/mcp-server-list.json +0 -23
  945. package/registry/r/memory-editor.json +0 -23
  946. package/registry/r/mention-menu.json +0 -23
  947. package/registry/r/metric-card.json +0 -23
  948. package/registry/r/metrics-panel.json +0 -22
  949. package/registry/r/mode-types.json +0 -15
  950. package/registry/r/model-card.json +0 -23
  951. package/registry/r/model-selector.json +0 -23
  952. package/registry/r/multi-select-prompt.json +0 -25
  953. package/registry/r/page-shell.json +0 -25
  954. package/registry/r/pagination.json +0 -22
  955. package/registry/r/permission-matrix.json +0 -22
  956. package/registry/r/permission-modal.json +0 -24
  957. package/registry/r/permission-types.json +0 -15
  958. package/registry/r/pin-input.json +0 -20
  959. package/registry/r/plan-badge.json +0 -20
  960. package/registry/r/preview-env-card.json +0 -25
  961. package/registry/r/preview-panel.json +0 -21
  962. package/registry/r/progress-checklist.json +0 -23
  963. package/registry/r/progress.json +0 -20
  964. package/registry/r/project-card.json +0 -25
  965. package/registry/r/project-switcher.json +0 -22
  966. package/registry/r/prompt.json +0 -15
  967. package/registry/r/quick-action-chips.json +0 -21
  968. package/registry/r/radio-group.json +0 -23
  969. package/registry/r/recent-folders-list.json +0 -22
  970. package/registry/r/rollback-ui.json +0 -24
  971. package/registry/r/rule-card.json +0 -23
  972. package/registry/r/rule-editor.json +0 -28
  973. package/registry/r/rule-types.json +0 -18
  974. package/registry/r/run-stats.json +0 -22
  975. package/registry/r/running-tasks-panel.json +0 -22
  976. package/registry/r/safe-href.json +0 -16
  977. package/registry/r/scroll-area.json +0 -22
  978. package/registry/r/select.json +0 -24
  979. package/registry/r/session-list-item.json +0 -20
  980. package/registry/r/session-timeline.json +0 -22
  981. package/registry/r/sheet.json +0 -24
  982. package/registry/r/sidebar.json +0 -19
  983. package/registry/r/skeleton.json +0 -19
  984. package/registry/r/skill-card.json +0 -24
  985. package/registry/r/skill-editor.json +0 -28
  986. package/registry/r/skills-list.json +0 -23
  987. package/registry/r/slide-deck.json +0 -130
  988. package/registry/r/slide-plugin-emoji.json +0 -28
  989. package/registry/r/slide-plugin-math.json +0 -24
  990. package/registry/r/slide-plugin-mermaid.json +0 -23
  991. package/registry/r/slide-plugin-shiki.json +0 -23
  992. package/registry/r/slide.json +0 -123
  993. package/registry/r/social-auth-row.json +0 -21
  994. package/registry/r/stat-tile.json +0 -22
  995. package/registry/r/status-dot.json +0 -21
  996. package/registry/r/status-indicator.json +0 -20
  997. package/registry/r/steps-rail.json +0 -20
  998. package/registry/r/sub-agent-dispatch.json +0 -22
  999. package/registry/r/switch.json +0 -23
  1000. package/registry/r/system-prompt-editor.json +0 -22
  1001. package/registry/r/table.json +0 -22
  1002. package/registry/r/tabs.json +0 -22
  1003. package/registry/r/tailwind-preset.json +0 -19
  1004. package/registry/r/task-header.json +0 -24
  1005. package/registry/r/task-plan.json +0 -22
  1006. package/registry/r/task-types.json +0 -15
  1007. package/registry/r/terminal-panel.json +0 -22
  1008. package/registry/r/text-prompt.json +0 -24
  1009. package/registry/r/textarea.json +0 -22
  1010. package/registry/r/theme-provider.json +0 -60
  1011. package/registry/r/theme-script.json +0 -18
  1012. package/registry/r/theo-ui-provider.json +0 -20
  1013. package/registry/r/timestamp.json +0 -21
  1014. package/registry/r/toast.json +0 -30
  1015. package/registry/r/token-usage-chart.json +0 -20
  1016. package/registry/r/tokens.json +0 -21
  1017. package/registry/r/tool-call-card.json +0 -23
  1018. package/registry/r/tool-call.json +0 -22
  1019. package/registry/r/tool-result.json +0 -20
  1020. package/registry/r/tools-list.json +0 -23
  1021. package/registry/r/tooltip.json +0 -22
  1022. package/registry/r/topnav.json +0 -22
  1023. package/registry/r/types.json +0 -15
  1024. package/registry/r/usage-meter.json +0 -21
  1025. package/registry/r/whiteboard.json +0 -101
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/themes/color-value-pattern.ts","../src/themes/density.ts","../src/themes/schema.ts","../src/themes/theme-provider.tsx","../src/themes/theme-script.tsx","../src/themes/theme-switcher.tsx","../src/themes/violet-forge.ts","../src/themes/classic-paper.ts","../src/themes/aurora-terminal.ts","../src/themes/define.ts","../src/themes/color.ts","../src/themes/vercel-mono.ts","../src/themes/github-dark.ts","../src/themes/dracula.ts","../src/themes/one-dark.ts","../src/themes/anthropic-style.ts","../src/themes/openai-style.ts","../src/themes/linear-glass.ts","../src/themes/index.ts","../src/theo-ui-provider.tsx"],"names":["createContext","STYLE_ELEMENT_ID","FONT_FAMILY_PATTERN","THEME_NAME_PATTERN","url","safe","value","active","useContext","jsx","cn"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Theme color value validation pattern — Phase 2 T2.5, EC-5 absorbed.\n *\n * Allowed forms (one or more, single string per token):\n * 1. Hex: `#fff`, `#0a0a0a`, `#0a0a0aff`\n * 2. CSS color functions:\n * - oklch/oklab: supports relative-color syntax `oklch(from var(--x) l c h)`,\n * `calc(...)` of depth 1, `none` keyword, and single-char component\n * identifiers (`l`, `c`, `h`, `a`, `b`).\n * - rgb, rgba, hsl, hsla, lab, lch, color: conservative content\n * `[\\d.\\s%,/+\\-]+` — no nested function calls.\n * 3. HSL split tuple (legacy ColorScale convention pre-T2.4):\n * `\"0 0% 100%\"`, `\"262 83% 58%\"` — space-separated numeric components.\n * 4. `var(--token)` reference with optional safe fallback value.\n * 5. CSS keywords: `transparent`, `currentColor`, `inherit`, `initial`, `unset`.\n *\n * Defense in depth: rejects values that contain `;`, `{`, `}`, `url(` — the\n * vectors used to break out of the CSS declaration injected by ThemeProvider.\n * `oklch(from ...)` permits a single bare var() identifier and at most ONE\n * level of nested `calc(...)` to keep the surface scoped.\n */\n\n// OKLCH/oklab relative-color or static form.\n// Allows: `oklch(0.5 0.2 270)`, `oklch(0.5 0.2 270 / 0.5)`,\n// `oklch(from var(--primary) calc(l - 0.16) c h)`,\n// `oklch(none none none)`, `oklch(from var(--x) l c h / 0.5)`.\nconst OKLCH_RELATIVE_OR_STATIC =\n String.raw`(?:oklch|oklab)\\(\\s*` +\n // Optional `from var(--token)` prefix.\n String.raw`(?:from\\s+var\\(--[a-zA-Z0-9-]+\\)\\s+)?` +\n // 1+ component tokens: calc(no-nested) | single letter | numeric | `none` | `/`.\n // max()/min() may wrap a calc(); calc() itself stays flat. Single nesting depth.\n String.raw`(?:max\\([^(){}]*(?:\\([^(){}]*\\))?[^(){}]*\\)|min\\([^(){}]*(?:\\([^(){}]*\\))?[^(){}]*\\)|calc\\([^();{}]+\\)|[a-z]|-?\\d+(?:\\.\\d+)?%?|none|\\/|\\s)+` +\n String.raw`\\)`;\n\n// Other CSS color functions — conservative content (no nested parens/words).\nconst CONSERVATIVE_COLOR_FN = String.raw`(?:rgb|rgba|hsl|hsla|lab|lch|color)\\(\\s*[\\d.\\s%,/+\\-]+\\s*\\)`;\n\nconst HEX = String.raw`#[0-9a-fA-F]{3,8}`;\n\n// HSL split: \"H S% L%\" or \"H S L\" (legacy ColorScale convention).\nconst HSL_SPLIT = String.raw`-?\\d+(?:\\.\\d+)?%?(?:\\s+-?\\d+(?:\\.\\d+)?%?){1,3}`;\n\nconst VAR_REF = String.raw`var\\(--[a-zA-Z0-9-]+(?:\\s*,\\s*[^();{}]+)?\\)`;\n\nconst KEYWORDS = String.raw`transparent|currentColor|inherit|initial|unset`;\n\nexport const COLOR_VALUE_PATTERN = new RegExp(\n `^(${HEX}|${OKLCH_RELATIVE_OR_STATIC}|${CONSERVATIVE_COLOR_FN}|${HSL_SPLIT}|${VAR_REF}|${KEYWORDS})$`,\n);\n","\"use client\";\n\n/**\n * `useDensity()` — runtime control of the global UI density.\n *\n * FAANG-modern dashboards (Vercel / Linear / Stripe) ship at \"comfortable\"\n * density: form controls at 36px, body text 14px, card padding 20px. For\n * dense surfaces (data tables, agent tool lists, admin grids) `compact` mode\n * tightens form controls to 32px without touching `sm`/`lg` props the\n * consumer already passed. Spacious mode bumps the default up to 44px for\n * accessibility-first surfaces.\n *\n * Mechanism (EC-1 fix from edge-case review 2026-05-22):\n * - ThemeProvider sets `data-density=\"{value}\"` on `<html>`.\n * - A `<style id=\"theo-ui-density-vars\">` block defines CSS custom\n * properties under each `[data-density=...]` selector:\n * --theo-control-h, --theo-control-px\n * - Form-control `cva` variants for the `md` tier read from these vars:\n * `md: \"h-[var(--theo-control-h,2.25rem)] px-[var(--theo-control-px,0.875rem)] text-body-sm\"`\n * - `sm` and `lg` variants stay hardcoded → explicit `size` prop always\n * wins over density.\n *\n * Plan: `.claude/knowledge-base/plans/faang-density-tightening-plan.md` T4.1.\n */\nimport { createContext, useContext } from \"react\";\n\nexport type Density = \"compact\" | \"comfortable\" | \"spacious\";\n\nexport interface DensityContextValue {\n density: Density;\n setDensity: (next: Density) => void;\n}\n\nexport const DensityContext = createContext<DensityContextValue | undefined>(undefined);\n\nconst STYLE_ELEMENT_ID = \"theo-ui-density-vars\";\n\nconst DENSITY_CSS = `[data-density=\"compact\"] { --theo-control-h: 2rem; --theo-control-px: 0.75rem; }\n[data-density=\"comfortable\"] { --theo-control-h: 2.25rem; --theo-control-px: 0.875rem; }\n[data-density=\"spacious\"] { --theo-control-h: 2.75rem; --theo-control-px: 1rem; }\n`;\n\n/**\n * Inject (idempotent) the density CSS variable definitions into the document\n * head. Returns true if the style tag was newly created. Safe to call on\n * every ThemeProvider mount — duplicates are skipped.\n */\nexport function injectDensityCss(): boolean {\n if (typeof document === \"undefined\") return false;\n if (document.getElementById(STYLE_ELEMENT_ID)) return false;\n const style = document.createElement(\"style\");\n style.id = STYLE_ELEMENT_ID;\n style.textContent = DENSITY_CSS;\n document.head.appendChild(style);\n return true;\n}\n\n/**\n * Read the current density from the active ThemeProvider context. Throws\n * outside the provider so misuse fails loud — analogous to `useTheme`.\n */\nexport function useDensity(): DensityContextValue {\n const ctx = useContext(DensityContext);\n if (!ctx) {\n throw new Error(\"useDensity must be used inside <ThemeProvider>.\");\n }\n return ctx;\n}\n","/**\n * Valibot schema for Theme — Phase 2 T2.7 / D5 (revised post-EC-6).\n *\n * Validates the shape and types of a Theme object passed to <ThemeProvider>\n * or registerTheme(). Complements the COLOR_VALUE_PATTERN regex (the second\n * defense layer against CSS injection): valibot validates shape; regex\n * validates that each individual color value is safe to interpolate.\n *\n * Why valibot (not zod): valibot core is ~1.5KB gzipped vs zod ~12KB.\n * <ThemeProvider> is a sync constructor — dynamic import does not tree-shake.\n * For our use case (validating ~37 string fields) valibot is strictly\n * better in bundle size and API parity.\n *\n * Output of safeParse → { success: true, output } or { success: false, issues }.\n * formatThemeIssues() produces human-readable error message with the failing\n * field path so consumers see what to fix.\n */\n\nimport * as v from \"valibot\";\n\nimport { COLOR_VALUE_PATTERN } from \"./color-value-pattern.js\";\n\nconst THEME_NAME_PATTERN = /^[a-z][a-z0-9-]*$/;\nconst FONT_FAMILY_PATTERN = /^[\\w\\s,\"'\\-.]+$/;\n\nconst colorValueSchema = v.pipe(\n v.string(),\n v.check(\n (value) => COLOR_VALUE_PATTERN.test(value),\n \"color value did not match the allowed format (hex, oklch, hsl, rgb, var(), HSL split, or CSS keyword)\",\n ),\n);\n\nconst themeNameSchema = v.pipe(\n v.string(),\n v.check(\n (value) => THEME_NAME_PATTERN.test(value),\n \"theme name must match /^[a-z][a-z0-9-]*$/ (lowercase + digits + hyphens, starts with a letter)\",\n ),\n);\n\nconst fontFamilySchema = v.pipe(\n v.string(),\n v.check(\n (value) => FONT_FAMILY_PATTERN.test(value),\n \"font family contains disallowed characters (parens, semicolons, etc.)\",\n ),\n);\n\nconst fontsSchema = v.object({\n display: fontFamilySchema,\n body: fontFamilySchema,\n mono: fontFamilySchema,\n});\n\n// All 37 ColorScale keys (29 base + 8 status — D4).\nconst colorScaleSchema = v.object({\n background: colorValueSchema,\n foreground: colorValueSchema,\n card: colorValueSchema,\n \"card-foreground\": colorValueSchema,\n popover: colorValueSchema,\n \"popover-foreground\": colorValueSchema,\n primary: colorValueSchema,\n // Optional since T3.2 (ADR-0006) — CSS derives via oklch(from var(--primary) ...).\n \"primary-deep\": v.optional(colorValueSchema),\n \"primary-glow\": v.optional(colorValueSchema),\n \"primary-foreground\": colorValueSchema,\n secondary: colorValueSchema,\n \"secondary-foreground\": colorValueSchema,\n accent: colorValueSchema,\n \"accent-deep\": v.optional(colorValueSchema),\n \"accent-foreground\": colorValueSchema,\n muted: colorValueSchema,\n \"muted-foreground\": colorValueSchema,\n border: colorValueSchema,\n input: colorValueSchema,\n ring: colorValueSchema,\n success: colorValueSchema,\n \"success-foreground\": colorValueSchema,\n warning: colorValueSchema,\n \"warning-foreground\": colorValueSchema,\n destructive: colorValueSchema,\n \"destructive-foreground\": colorValueSchema,\n info: colorValueSchema,\n \"info-foreground\": colorValueSchema,\n \"status-online\": colorValueSchema,\n \"status-online-foreground\": colorValueSchema,\n \"status-offline\": colorValueSchema,\n \"status-offline-foreground\": colorValueSchema,\n \"status-degraded\": colorValueSchema,\n \"status-degraded-foreground\": colorValueSchema,\n \"status-info\": colorValueSchema,\n \"status-info-foreground\": colorValueSchema,\n});\n\nexport const themeSchema = v.object({\n name: themeNameSchema,\n label: v.string(),\n description: v.optional(v.string()),\n fonts: fontsSchema,\n light: colorScaleSchema,\n dark: colorScaleSchema,\n fontUrls: v.optional(\n v.array(\n v.pipe(\n v.string(),\n v.url(),\n v.check(\n (value) => /^https?:\\/\\//i.test(value),\n \"fontUrls must use http(s) protocol (javascript:, data:, etc. are rejected)\",\n ),\n ),\n ),\n ),\n});\n\nexport type ThemeIssue = v.InferIssue<typeof themeSchema>;\n\nexport interface ThemeValidationResult {\n success: boolean;\n issues?: ThemeIssue[];\n}\n\nexport function validateTheme(theme: unknown): ThemeValidationResult {\n const result = v.safeParse(themeSchema, theme);\n if (result.success) return { success: true };\n return { success: false, issues: result.issues };\n}\n\nexport function formatThemeIssues(themeName: string, issues: ThemeIssue[]): string {\n const lines: string[] = [`[@theokit/ui] theme '${themeName}' failed validation:`];\n for (const issue of issues) {\n const path = (issue.path ?? [])\n .map((segment) => (typeof segment.key === \"string\" ? segment.key : String(segment.key)))\n .join(\".\");\n lines.push(` - ${path || \"(root)\"}: ${issue.message}`);\n }\n return lines.join(\"\\n\");\n}\n","import {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport type { JSX, ReactNode } from \"react\";\nimport { isDev } from \"../lib/env.js\";\nimport { safeHref } from \"../lib/safe-href.js\";\nimport { COLOR_VALUE_PATTERN } from \"./color-value-pattern.js\";\nimport { type Density, DensityContext, injectDensityCss } from \"./density.js\";\nimport { formatThemeIssues, validateTheme } from \"./schema.js\";\nimport type { ColorScale, Theme, ThemeMode } from \"./types.js\";\n\ninterface ThemeContextValue {\n /** Active theme (full descriptor). */\n theme: Theme;\n /** Active mode: light or dark. */\n mode: ThemeMode;\n /** All available themes. */\n themes: Theme[];\n /** Swap the active theme by name. */\n setTheme: (name: string) => void;\n /** Set light/dark explicitly. */\n setMode: (mode: ThemeMode) => void;\n /** Toggle light <> dark. */\n toggleMode: () => void;\n /** Register an additional theme at runtime. */\n registerTheme: (theme: Theme) => void;\n}\n\nconst ThemeContext = createContext<ThemeContextValue | undefined>(undefined);\n\nconst STYLE_ELEMENT_ID = \"theo-ui-theme-vars\";\n\n// T3.2 (SEC-001): allowlist validators for theme values. injectThemeCss\n// interpolates theme name + color values + font families into a <style>\n// textContent. Without validation, a theme object from an untrusted source\n// (e.g., a feature-flag service, a CMS) could inject arbitrary CSS via\n// closing the declaration with `}` or smuggling `url(...)` for exfiltration.\n// We reject rather than escape: themes are code, not user input. Invalid\n// values cause a dev-time throw (caller sees the problem); production\n// silently substitutes a safe fallback so a misconfigured theme can't\n// crash the app.\n\n// COLOR_VALUE_PATTERN was inlined here pre-T2.5. Now extracted to\n// `color-value-pattern.ts` so the regex is reusable by the Valibot schema (T2.7)\n// and so the OKLCH relative-color syntax (`oklch(from var(--x) calc(l - 0.16) c h)`,\n// required by T3.1 tonal derivations) is supported without expanding the inline\n// regex monolith. See EC-5 in the edge-case review.\n\n// Font family: word chars, spaces, commas, hyphens, dots, quotes. Excludes\n// parens (blocks `url(...)`) and semicolons (blocks declaration breakouts).\nconst FONT_FAMILY_PATTERN = /^[\\w\\s,\"'\\-.]+$/;\n\n// Theme name: kebab-case identifier. Excludes anything that could break out\n// of an attribute selector or inject additional rules.\nconst THEME_NAME_PATTERN = /^[a-z][a-z0-9-]*$/;\n\nconst IS_DEV = isDev();\n\nfunction rejectOrFallback(scope: string, value: string, fallback: string): string {\n if (IS_DEV) {\n throw new Error(\n `[@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.`,\n );\n }\n return fallback;\n}\n\nfunction validatedColor(token: string, value: string): string {\n if (COLOR_VALUE_PATTERN.test(value)) return value;\n return rejectOrFallback(`color \"${token}\"`, value, \"transparent\");\n}\n\nfunction validatedFontFamily(slot: string, value: string): string {\n if (FONT_FAMILY_PATTERN.test(value)) return value;\n return rejectOrFallback(`fontFamily \"${slot}\"`, value, \"inherit\");\n}\n\nfunction validatedThemeName(value: string): string {\n if (THEME_NAME_PATTERN.test(value)) return value;\n return rejectOrFallback(\"theme.name\", value, \"invalid-theme\");\n}\n\nfunction colorScaleToCss(name: string, mode: ThemeMode, colors: ColorScale): string {\n const safeName = validatedThemeName(name);\n const selector =\n mode === \"light\"\n ? `[data-theme=\"${safeName}\"]`\n : `[data-theme=\"${safeName}\"].dark, [data-theme=\"${safeName}\"][data-mode=\"dark\"]`;\n const decls = Object.entries(colors)\n .map(([token, value]) => ` --${token}: ${validatedColor(token, value)};`)\n .join(\"\\n\");\n return `${selector} {\\n${decls}\\n}`;\n}\n\nfunction fontsToCss(name: string, fonts: Theme[\"fonts\"]): string {\n const safeName = validatedThemeName(name);\n const display = validatedFontFamily(\"display\", fonts.display);\n const body = validatedFontFamily(\"body\", fonts.body);\n const mono = validatedFontFamily(\"mono\", fonts.mono);\n return `[data-theme=\"${safeName}\"] {\\n --font-display: ${display};\\n --font-body: ${body};\\n --font-mono: ${mono};\\n}`;\n}\n\nfunction injectThemeCss(themes: Theme[]): void {\n if (typeof document === \"undefined\") return;\n let style = document.getElementById(STYLE_ELEMENT_ID) as HTMLStyleElement | null;\n if (!style) {\n style = document.createElement(\"style\");\n style.id = STYLE_ELEMENT_ID;\n document.head.appendChild(style);\n }\n const blocks: string[] = [];\n for (const theme of themes) {\n blocks.push(fontsToCss(theme.name, theme.fonts));\n blocks.push(colorScaleToCss(theme.name, \"light\", theme.light));\n blocks.push(colorScaleToCss(theme.name, \"dark\", theme.dark));\n }\n style.textContent = blocks.join(\"\\n\\n\");\n}\n\n/**\n * loadThemeFonts — idempotently inject `<link rel=\"stylesheet\">` for each\n * font URL declared by the theme.\n *\n * T4.2: the previous implementation kept a module-level `Set` to track\n * already-injected URLs. That singleton broke test isolation (state\n * leaked across renders) and silently skipped injection in micro-frontend\n * setups with multiple `<ThemeProvider>` mounts. Replaced with a DOM\n * check: we query `document.head` for an existing link with the same\n * `href` before appending a new one. The DOM is the single source of\n * truth; no shared state across instances.\n */\nfunction loadThemeFonts(theme: Theme): void {\n if (typeof document === \"undefined\") return;\n if (!theme.fontUrls) return;\n for (const url of theme.fontUrls) {\n // Re-audit NEW-001 (SSRF, LOW): defang dangerous protocols on\n // consumer-provided font URLs. Built-in themes use\n // fonts.googleapis.com/gstatic.com — safe. registerTheme accepts\n // arbitrary objects at runtime; a malicious theme could try to inject\n // javascript:/data:text/html via fontUrls. safeHref returns undefined\n // for dangerous protocols, which we skip silently.\n const safe = safeHref(url);\n if (!safe) continue;\n if (document.head.querySelector(`link[rel=\"stylesheet\"][href=\"${CSS.escape(safe)}\"]`)) {\n continue;\n }\n const link = document.createElement(\"link\");\n link.rel = \"stylesheet\";\n link.href = safe;\n document.head.appendChild(link);\n }\n}\n\ninterface ThemeProviderProps {\n children: ReactNode;\n /**\n * Theme to start with. Must match the `name` of an entry in `themes`.\n * Defaults to `\"violet-forge\"` for backward compat — if you don't pass\n * `violet-forge` in `themes`, set this prop explicitly.\n */\n defaultTheme?: string;\n /** Mode to start with. Defaults to `\"dark\"` (library is dark-first). */\n defaultMode?: ThemeMode;\n /**\n * Available themes. **Required**: ThemeProvider does not auto-include any\n * built-in theme since v0.1.0-next.0 — pass `builtinThemes` for all three\n * Violet Forge defaults, or your own array for a slimmer bundle.\n *\n * Migration: consumers previously calling `<ThemeProvider>` without this\n * prop now must pass `themes={builtinThemes}` (or use `<TheoUIProvider>`\n * which defaults to `builtinThemes` for you).\n */\n themes: Theme[];\n /**\n * Persist selection in localStorage under this key. Pass `null` to disable.\n * Default: \"theo-ui:theme\".\n */\n storageKey?: string | null;\n /**\n * Initial density. Drives `data-density` on `<html>` and the `--theo-control-h`\n * / `--theo-control-px` CSS vars consumed by form-control `md` variants.\n * Defaults to `\"comfortable\"` (36px controls — FAANG-tier modern density).\n * Plan: faang-density-tightening (D3).\n */\n defaultDensity?: Density;\n /**\n * Respect the consumer's OS `prefers-color-scheme` preference on initial\n * mount (D6 / T5.1). When `true` (default) and no theme-mode is stored in\n * `localStorage[storageKey]`, the provider reads\n * `matchMedia('(prefers-color-scheme: dark)')` and subscribes to changes.\n * User-driven `setMode()` overrides the system signal — subsequent OS\n * changes are ignored after the user fixes a preference.\n *\n * Pass `false` to force `defaultMode` regardless of the system preference.\n * EC-12: matchMedia listener is cleaned up on unmount.\n */\n respectSystemMode?: boolean;\n}\n\n/**\n * Storage failure diagnostic — dev-only one-line warn so engineers see\n * something when localStorage throws (Safari private mode, blocked\n * third-party cookies, sandboxed iframes). In production we stay silent;\n * runtime behavior is fail-safe (state still lives in memory).\n *\n * Per HIGH-006: silent catches diverge from the \"fail loud\" principle\n * declared in the global CLAUDE.md. We accept silence in prod because the\n * fallback is correct, but we surface a single warn per call site in dev.\n */\nfunction warnStorageFailure(scope: string, err: unknown): void {\n if (!isDev()) return;\n // biome-ignore lint/suspicious/noConsole: dev-only diagnostic for storage failures (HIGH-006)\n console.warn(`[@theokit/ui] theme storage failure (${scope}):`, err);\n}\n\n// T2.7: production-mode diagnostic for invalid themes that fall through\n// dev-time throw. Single console.warn so engineer sees something instead of\n// total silence; theme is kept in the array but per-value regex fallback\n// substitutes `transparent` for unsafe values downstream.\nfunction warnInvalidTheme(message: string): void {\n // biome-ignore lint/suspicious/noConsole: dev/prod diagnostic for invalid theme (T2.7/D5)\n console.warn(message);\n}\n\n/**\n * ThemeProvider — central registry + runtime switcher for Theo themes.\n *\n * Behavior:\n * 1. On mount, injects a `<style id=\"theo-ui-theme-vars\">` element with\n * one CSS block per theme (`[data-theme=\"<name>\"] { --token: ... }`).\n * 2. Sets `data-theme` and `data-mode` on `<html>` so any element nested\n * below inherits the right tokens (the Tailwind config consumes them).\n * 3. Lazy-loads theme font URLs by injecting `<link rel=\"stylesheet\">`.\n * 4. Optionally persists choice in localStorage.\n */\nfunction ThemeProvider({\n children,\n defaultTheme = \"violet-forge\",\n defaultMode = \"dark\",\n themes: themesProp,\n storageKey = \"theo-ui:theme\",\n defaultDensity = \"comfortable\",\n respectSystemMode = true,\n}: ThemeProviderProps): JSX.Element {\n // Themes prop is required since v0.1.0-next.0 — see migration note in\n // the JSDoc on ThemeProviderProps. Pass `builtinThemes` for the legacy\n // default behavior (violet-forge + classic-paper + aurora-terminal), or\n // an array of your own. Empty array is rejected: ThemeProvider has no\n // valid state without at least one registered theme.\n if (!themesProp || themesProp.length === 0) {\n throw new Error(\n \"<ThemeProvider> requires the `themes` prop with at least one Theme. \" +\n \"Pass `themes={builtinThemes}` for the Violet Forge defaults (importable \" +\n \"via the package barrel), or use <TheoUIProvider> which sets this for you.\",\n );\n }\n\n // T3.2 (SEC-001): eager validation. Calling validatedColor/FontFamily/\n // ThemeName here ensures CSS-injection attempts throw at construction\n // time rather than inside the deferred useEffect that injects the\n // <style>. Production-mode fallbacks keep the app rendering even if a\n // theme has bad values.\n //\n // Re-audit NEW-3: wrapped in useMemo so the validation cost (O(themes *\n // tokens), ~60 ops per built-in theme) only runs when themesProp's\n // reference changes — not on every parent re-render. Consumers passing\n // inline array literals (`themes={[violetForge, classicPaper]}`) would\n // otherwise pay this on every parent update.\n const mergedThemes = useMemo<Theme[]>(() => {\n // T2.7 (D5): valibot shape validation runs FIRST — catches missing keys,\n // wrong types, malformed font URLs. Existing per-value regex validation\n // below stays as the second defense layer against CSS injection.\n for (const t of themesProp) {\n const result = validateTheme(t);\n if (!result.success) {\n const message = formatThemeIssues(\n (t as { name?: string }).name ?? \"(unnamed)\",\n result.issues ?? [],\n );\n if (IS_DEV) throw new Error(message);\n warnInvalidTheme(message);\n // In production we keep the theme array intact; the per-value regex\n // fallbacks below will substitute `transparent` for any value that\n // still fails the second layer, so the app continues rendering.\n }\n }\n for (const t of themesProp) {\n validatedThemeName(t.name);\n validatedFontFamily(\"display\", t.fonts.display);\n validatedFontFamily(\"body\", t.fonts.body);\n validatedFontFamily(\"mono\", t.fonts.mono);\n for (const [token, value] of Object.entries(t.light)) {\n validatedColor(token, value);\n }\n for (const [token, value] of Object.entries(t.dark)) {\n validatedColor(token, value);\n }\n }\n // Dedup by theme name; last writer wins (allows registerTheme override).\n const map = new Map<string, Theme>();\n for (const t of themesProp) map.set(t.name, t);\n return Array.from(map.values());\n }, [themesProp]);\n\n const [themes, setThemes] = useState<Theme[]>(mergedThemes);\n\n // Re-sync state when the `themes` prop changes between renders. Avoids the\n // common pitfall where the user passes a different array later and the\n // initial-state-only seed silently ignores the change.\n useEffect(() => {\n setThemes(mergedThemes);\n }, [mergedThemes]);\n\n // SSR-safe initialization (0.6.3-next.0 hydration-mismatch fix).\n //\n // Previously: `useState(() => localStorage.getItem(…))`. The initializer\n // ran on BOTH server (no `window`, returned default) AND client at\n // hydration time (with `window`, returned the stored value). The two\n // results disagreed → React threw a hydration error on every page load\n // for any user who had previously changed themes, and re-rendered the\n // entire tree from scratch — defeating SSR.\n //\n // Fix: initialize with the SSR default ALWAYS. Promote to the stored\n // value in a post-mount `useEffect` below. The 1-frame visual flicker\n // is mitigated by the optional `<ThemeScript>` component, which sets\n // `data-theme` / `data-mode` / `data-density` on `<html>` before React\n // hydrates — see `theme-script.tsx`.\n //\n // The `hydratedRef` flag below guards the persist effect so that\n // first-mount writes (with the SSR default values) don't clobber the\n // user's stored preference in the brief window between mount and the\n // post-mount hydration effect.\n const [themeName, setThemeName] = useState<string>(defaultTheme);\n const [mode, setModeState] = useState<ThemeMode>(defaultMode);\n const [density, setDensityState] = useState<Density>(defaultDensity);\n\n // T5.1 / D6: track whether the user has explicitly fixed the mode via\n // setMode / toggleMode. Once true, OS prefers-color-scheme changes do\n // NOT override the user's choice.\n const userOverrodeModeRef = useRef(false);\n\n // First-run guard for the persist effect below. On initial mount the\n // state is the SSR-safe default; we MUST NOT clobber the user's stored\n // preference with that default before the post-mount hydration effect\n // can promote it. After the first persist-effect call returns early,\n // every subsequent change (post-hydration setState OR user-driven)\n // persists normally.\n const skipFirstPersistRef = useRef(true);\n\n // Post-mount hydration: read localStorage and promote stored values to\n // state. Runs ONCE on mount. If `storageKey` is null or no value is\n // stored, this is a no-op — state stays at the SSR defaults.\n useEffect(() => {\n if (typeof window === \"undefined\" || !storageKey) return;\n try {\n const storedName = window.localStorage.getItem(`${storageKey}:name`);\n const storedMode = window.localStorage.getItem(`${storageKey}:mode`);\n const storedDensity = window.localStorage.getItem(`${storageKey}:density`);\n if (storedName) setThemeName(storedName);\n if (storedMode === \"dark\" || storedMode === \"light\") {\n setModeState(storedMode);\n // Stored value implies user fixed a preference at some point.\n userOverrodeModeRef.current = true;\n }\n if (\n storedDensity === \"compact\" ||\n storedDensity === \"comfortable\" ||\n storedDensity === \"spacious\"\n ) {\n setDensityState(storedDensity);\n }\n } catch (err) {\n warnStorageFailure(\"read theme + mode + density\", err);\n }\n }, [storageKey]);\n\n // T5.1 / D6 / EC-12: subscribe to OS prefers-color-scheme when\n // respectSystemMode is true. On mount, if user has NOT overridden the\n // mode (no stored preference), align with the OS signal. Re-aligns on\n // OS changes UNLESS user explicitly fixed a preference. Cleanup on\n // unmount via removeEventListener (EC-12) to avoid listener leaks in\n // micro-frontend scenarios.\n useEffect(() => {\n if (!respectSystemMode) return;\n if (typeof window === \"undefined\" || typeof window.matchMedia !== \"function\") return;\n const mql = window.matchMedia(\"(prefers-color-scheme: dark)\");\n // Align on first run if user hasn't overridden.\n if (!userOverrodeModeRef.current) {\n setModeState(mql.matches ? \"dark\" : \"light\");\n }\n const onChange = (event: MediaQueryListEvent): void => {\n if (!userOverrodeModeRef.current) {\n setModeState(event.matches ? \"dark\" : \"light\");\n }\n };\n mql.addEventListener(\"change\", onChange);\n return () => {\n mql.removeEventListener(\"change\", onChange);\n };\n }, [respectSystemMode]);\n\n // Inject CSS vars whenever the themes list changes.\n useEffect(() => {\n injectThemeCss(themes);\n }, [themes]);\n\n // Apply data-theme + data-mode + data-density to <html>, load fonts,\n // inject density CSS vars.\n useEffect(() => {\n if (typeof document === \"undefined\") return;\n const active = themes.find((t) => t.name === themeName) ?? themes[0];\n if (!active) return;\n document.documentElement.setAttribute(\"data-theme\", active.name);\n document.documentElement.setAttribute(\"data-mode\", mode);\n document.documentElement.setAttribute(\"data-density\", density);\n document.documentElement.classList.toggle(\"dark\", mode === \"dark\");\n loadThemeFonts(active);\n injectDensityCss();\n }, [themeName, mode, density, themes]);\n\n // Persist on change.\n //\n // The first run is SKIPPED via `skipFirstPersistRef`: state at mount\n // is the SSR-safe default. If we wrote it to storage immediately,\n // we'd clobber the user's stored preference between mount and the\n // post-mount hydration effect that promotes the stored value. After\n // the first call, every subsequent run persists — whether the change\n // came from the hydration effect (no-op write back of the stored\n // value) or a user-driven `setTheme` / `toggleMode` / `setDensity`.\n useEffect(() => {\n if (skipFirstPersistRef.current) {\n skipFirstPersistRef.current = false;\n return;\n }\n if (typeof window === \"undefined\" || !storageKey) return;\n try {\n window.localStorage.setItem(`${storageKey}:name`, themeName);\n window.localStorage.setItem(`${storageKey}:mode`, mode);\n window.localStorage.setItem(`${storageKey}:density`, density);\n } catch (err) {\n // Storage may fail in private mode; behavior remains correct (state\n // lives in memory). Per HIGH-006 we surface a one-time dev warning so\n // the engineer sees something instead of complete silence.\n warnStorageFailure(\"persist theme + mode + density\", err);\n }\n }, [themeName, mode, density, storageKey]);\n\n const setTheme = useCallback((name: string) => setThemeName(name), []);\n const setMode = useCallback((next: ThemeMode) => {\n // T5.1 / D6: fix the user preference; subsequent system changes no longer override.\n userOverrodeModeRef.current = true;\n setModeState(next);\n }, []);\n const toggleMode = useCallback(() => {\n userOverrodeModeRef.current = true;\n setModeState((cur) => (cur === \"light\" ? \"dark\" : \"light\"));\n }, []);\n const setDensity = useCallback((next: Density) => setDensityState(next), []);\n const registerTheme = useCallback((theme: Theme) => {\n setThemes((cur) => {\n const idx = cur.findIndex((t) => t.name === theme.name);\n if (idx >= 0) {\n const next = cur.slice();\n next[idx] = theme;\n return next;\n }\n return [...cur, theme];\n });\n }, []);\n\n // themes[0] is guaranteed non-undefined by the constructor-time check\n // above (themesProp is non-empty); the non-null assert encodes that\n // invariant for TypeScript, which can't trace it through useState.\n // biome-ignore lint/style/noNonNullAssertion: T2.5 runtime invariant — themesProp non-empty validated at top of function\n const active = themes.find((t) => t.name === themeName) ?? themes[0]!;\n\n const value = useMemo<ThemeContextValue>(\n () => ({\n theme: active,\n mode,\n themes,\n setTheme,\n setMode,\n toggleMode,\n registerTheme,\n }),\n [active, mode, themes, setTheme, setMode, toggleMode, registerTheme],\n );\n\n const densityValue = useMemo(() => ({ density, setDensity }), [density, setDensity]);\n\n return (\n <ThemeContext.Provider value={value}>\n <DensityContext.Provider value={densityValue}>{children}</DensityContext.Provider>\n </ThemeContext.Provider>\n );\n}\n\n/**\n * useTheme — access theme state from any component inside <ThemeProvider>.\n * Throws if used outside the provider — fail-fast.\n */\nfunction useTheme(): ThemeContextValue {\n const ctx = useContext(ThemeContext);\n if (!ctx) {\n throw new Error(\"useTheme must be used inside <ThemeProvider>.\");\n }\n return ctx;\n}\n\nexport { ThemeProvider, useTheme };\n","/**\n * ThemeScript — inline `<script>` for SSR-safe theme initialization.\n *\n * Renders a synchronous script that runs BEFORE React hydration. It reads the\n * persisted theme + mode from localStorage (or falls back to the defaults) and\n * sets `data-theme` / `data-mode` on `<html>`, plus the `.dark` class when\n * mode is dark. This eliminates FOUC and avoids hydration mismatch warnings\n * when the user's persisted choice differs from the SSR defaults.\n *\n * Place this in `<head>` ABOVE `<body>`. The component does not need to live\n * inside `<ThemeProvider>`.\n *\n * Security: every interpolated value is passed through `safe()`, which both\n * `JSON.stringify`s the value AND escapes `<` to `<`. The `<` escape is\n * REQUIRED because `JSON.stringify` alone does NOT escape `/`, so a payload\n * like `\"</script><script>alert(1)</script>\"` would otherwise break out of\n * the inline `<script>` tag even though it stays inside a JS string literal.\n * (The browser tokenizes `</script>` at the HTML layer before JS parses.)\n *\n * Example (Next.js App Router): see docs/design-system.md → SSR section.\n * Pass `defaultTheme` and `defaultMode` to align with the consumer's\n * preferred initial state. Always wrap the root in `<html\n * suppressHydrationWarning>` to silence the expected one-render diff.\n */\nimport type { JSX } from \"react\";\nimport type { ThemeMode } from \"./types.js\";\n\ninterface ThemeScriptProps {\n /** Theme name to apply when no persisted value exists. Default `\"violet-forge\"`. */\n defaultTheme?: string;\n /** Mode to apply when no persisted value exists. Default `\"dark\"`. */\n defaultMode?: ThemeMode;\n /**\n * Density to apply when no persisted value exists. Default `\"comfortable\"`.\n * Mirrors `ThemeProvider`'s `defaultDensity` so the inline-script and\n * the React provider agree on the SSR-default density (and the\n * `data-density` attribute set by this script matches what\n * `ThemeProvider` promotes via its post-mount hydration effect).\n */\n defaultDensity?: \"compact\" | \"comfortable\" | \"spacious\";\n /**\n * localStorage namespace. Must match the `storageKey` passed to\n * `<ThemeProvider>`. Default `\"theo-ui:theme\"`. Pass `null` to disable\n * persistence reads (the script will always apply defaults).\n */\n storageKey?: string | null;\n}\n\n/**\n * Encode a value for safe embedding inside an inline `<script>` block.\n *\n * `JSON.stringify` does NOT escape `/` by default, so `\"</script>\"` survives\n * as the literal three-character sequence inside the resulting string. When\n * that string is then rendered inside `<script>...</script>`, the browser's\n * HTML tokenizer sees `</script>` and ends the script tag — regardless of\n * whether the JS parser would have kept it inside a string. Escaping `<` to\n * its Unicode escape `<` preserves JS semantics (the JS parser still\n * resolves the escape to `<`) while making the HTML tokenizer happy.\n *\n * Reference: OWASP \"JSON-in-script\" guidance; React's own server-renderer\n * applies the same escape for inline JSON.\n */\nfunction safe(value: unknown): string {\n return JSON.stringify(value).replace(/</g, \"\\\\u003c\");\n}\n\nfunction buildScript(\n defaultTheme: string,\n defaultMode: ThemeMode,\n defaultDensity: \"compact\" | \"comfortable\" | \"spacious\",\n storageKey: string | null,\n): string {\n const k = safe(storageKey);\n const t = safe(defaultTheme);\n const m = safe(defaultMode);\n const dn = safe(defaultDensity);\n 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){}})();`;\n}\n\nfunction ThemeScript({\n defaultTheme = \"violet-forge\",\n defaultMode = \"dark\",\n defaultDensity = \"comfortable\",\n storageKey = \"theo-ui:theme\",\n}: ThemeScriptProps): JSX.Element {\n const code = buildScript(defaultTheme, defaultMode, defaultDensity, storageKey);\n // biome-ignore lint/security/noDangerouslySetInnerHtml: payload is JSON.stringify-encoded literals (no user input); intentional for SSR theme bootstrap before React hydrates\n return <script suppressHydrationWarning dangerouslySetInnerHTML={{ __html: code }} />;\n}\n\nexport { ThemeScript };\n","import * as DropdownMenu from \"@radix-ui/react-dropdown-menu\";\nimport { Check, Moon, Palette, Sun } from \"lucide-react\";\nimport type { JSX } from \"react\";\nimport { cn } from \"../lib/cn.js\";\nimport { useTheme } from \"./theme-provider.js\";\n\ninterface ThemeSwitcherProps {\n className?: string;\n /** If true, renders mode toggle inline next to the theme menu. */\n showModeToggle?: boolean;\n}\n\n/**\n * ThemeSwitcher — drop-in theme + mode picker.\n *\n * Two affordances:\n * - Palette dropdown lists all registered themes with the active marked.\n * - Optional sun/moon button toggles light/dark.\n *\n * Stateless wrt itself — pulls state from `useTheme()`.\n */\nfunction ThemeSwitcher({ className, showModeToggle = true }: ThemeSwitcherProps): JSX.Element {\n const { theme, themes, setTheme, mode, toggleMode } = useTheme();\n\n return (\n <div className={cn(\"inline-flex items-center gap-1\", className)}>\n {/* LOW-006: announce theme + mode changes to assistive tech. The\n * Provider applies tokens via `data-theme`/`data-mode` (visual cue),\n * but screen-reader users get no feedback without this aria-live\n * region. Polite so it doesn't interrupt the user's flow. */}\n <span aria-live=\"polite\" aria-atomic=\"true\" className=\"sr-only\">\n Theme: {theme.label}, mode: {mode}\n </span>\n <DropdownMenu.Root>\n <DropdownMenu.Trigger asChild>\n <button\n type=\"button\"\n aria-label={`Theme: ${theme.label}`}\n className={cn(\n \"inline-flex h-9 items-center gap-2 rounded-lg border border-border/60 bg-card px-3\",\n \"font-medium font-sans text-body-sm text-foreground\",\n \"transition-colors hover:bg-muted\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n )}\n >\n <Palette className=\"size-4 text-primary\" aria-hidden=\"true\" />\n <span>{theme.label}</span>\n </button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Portal>\n <DropdownMenu.Content\n align=\"end\"\n sideOffset={6}\n className={cn(\n \"z-50 min-w-[16rem] overflow-hidden rounded-lg border bg-popover p-1 text-popover-foreground shadow-md\",\n \"data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:animate-in\",\n \"data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:animate-out\",\n )}\n >\n {themes.map((t) => (\n <DropdownMenu.Item\n key={t.name}\n onSelect={() => setTheme(t.name)}\n className={cn(\n \"flex cursor-pointer items-start justify-between gap-3 rounded-md px-2 py-2\",\n \"focus:bg-muted focus:outline-none data-[highlighted]:bg-muted\",\n )}\n >\n <span className=\"flex min-w-0 flex-col\">\n <span className=\"font-medium text-body-sm\">{t.label}</span>\n {t.description ? (\n <span className=\"text-body-sm text-muted-foreground\">{t.description}</span>\n ) : null}\n </span>\n {t.name === theme.name ? (\n <Check className=\"mt-1 size-4 shrink-0 text-primary\" aria-hidden=\"true\" />\n ) : null}\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu.Portal>\n </DropdownMenu.Root>\n\n {showModeToggle ? (\n <button\n type=\"button\"\n onClick={toggleMode}\n aria-label={`Switch to ${mode === \"light\" ? \"dark\" : \"light\"} mode`}\n className={cn(\n \"inline-flex size-9 items-center justify-center rounded-lg border border-border/60 bg-card\",\n \"text-foreground transition-colors hover:bg-muted\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n )}\n >\n {mode === \"light\" ? <Moon className=\"size-4\" /> : <Sun className=\"size-4\" />}\n </button>\n ) : null}\n </div>\n );\n}\n\nexport { ThemeSwitcher };\n","import type { Theme } from \"./types.js\";\n\n/**\n * Violet Forge — the default Theo theme.\n *\n * Identity: Theo violet electric primary (#A855F7, unified 2026-06-09),\n * burnt sienna accent (#C96442), Vercel-style neutral surfaces\n * (pure white light / charcoal dark), Geist Sans + Geist Mono throughout.\n *\n * Source of truth for `data-theme` overrides. Values mirror\n * src/styles/tokens.css for the default `:root`.\n */\nexport const violetForge: Theme = {\n name: \"violet-forge\",\n label: \"Violet Forge\",\n description: \"Theo default — violet primary, burnt sienna accent, Geist Sans + Geist Mono.\",\n fonts: {\n display: '\"Geist\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n body: '\"Geist\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n mono: '\"Geist Mono\", ui-monospace, SFMono-Regular, Menlo, monospace',\n },\n fontUrls: [\n \"https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Geist+Mono:wght@100..900&display=swap\",\n ],\n light: {\n background: \"oklch(1 0 0)\",\n foreground: \"oklch(0.146 0 0)\",\n card: \"oklch(1 0 0)\",\n \"card-foreground\": \"oklch(0.146 0 0)\",\n popover: \"oklch(1 0 0)\",\n \"popover-foreground\": \"oklch(0.146 0 0)\",\n primary: \"oklch(0.628 0.225 296)\",\n \"primary-foreground\": \"oklch(1 0 0)\",\n secondary: \"oklch(0.97 0 0)\",\n \"secondary-foreground\": \"oklch(0.146 0 0)\",\n accent: \"oklch(0.621 0.132 39)\",\n \"accent-foreground\": \"oklch(1 0 0)\",\n muted: \"oklch(0.97 0 0)\",\n \"muted-foreground\": \"oklch(0.555 0 0)\",\n border: \"oklch(0.931 0 0)\",\n input: \"oklch(0.931 0 0)\",\n ring: \"oklch(0.628 0.225 296)\",\n success: \"oklch(0.611 0.161 149.7)\",\n \"success-foreground\": \"oklch(1 0 0)\",\n warning: \"oklch(0.67 0.154 60.6)\",\n \"warning-foreground\": \"oklch(1 0 0)\",\n destructive: \"oklch(0.579 0.214 27.2)\",\n \"destructive-foreground\": \"oklch(1 0 0)\",\n info: \"oklch(0.626 0.186 259.6)\",\n \"info-foreground\": \"oklch(1 0 0)\",\n \"status-online\": \"oklch(0.611 0.161 149.7)\",\n \"status-online-foreground\": \"oklch(1 0 0)\",\n \"status-offline\": \"oklch(0.579 0.214 27.2)\",\n \"status-offline-foreground\": \"oklch(1 0 0)\",\n \"status-degraded\": \"oklch(0.67 0.154 60.6)\",\n \"status-degraded-foreground\": \"oklch(1 0 0)\",\n \"status-info\": \"oklch(0.626 0.186 259.6)\",\n \"status-info-foreground\": \"oklch(1 0 0)\",\n },\n dark: {\n background: \"oklch(0.146 0 0)\",\n foreground: \"oklch(0.97 0 0)\",\n card: \"oklch(0.182 0 0)\",\n \"card-foreground\": \"oklch(0.97 0 0)\",\n popover: \"oklch(0.204 0 0)\",\n \"popover-foreground\": \"oklch(0.97 0 0)\",\n primary: \"oklch(0.628 0.225 296)\",\n \"primary-foreground\": \"oklch(1 0 0)\",\n secondary: \"oklch(0.227 0 0)\",\n \"secondary-foreground\": \"oklch(0.97 0 0)\",\n accent: \"oklch(0.621 0.132 39)\",\n \"accent-foreground\": \"oklch(1 0 0)\",\n muted: \"oklch(0.227 0 0)\",\n \"muted-foreground\": \"oklch(0.683 0 0)\",\n border: \"oklch(0.28 0 0)\",\n input: \"oklch(0.227 0 0)\",\n ring: \"oklch(0.628 0.225 296)\",\n success: \"oklch(0.814 0.192 155.7)\",\n \"success-foreground\": \"oklch(0.146 0 0)\",\n warning: \"oklch(0.77 0.165 70.6)\",\n \"warning-foreground\": \"oklch(0.146 0 0)\",\n destructive: \"oklch(0.677 0.213 15.6)\",\n \"destructive-foreground\": \"oklch(0.146 0 0)\",\n info: \"oklch(0.732 0.142 254.4)\",\n \"info-foreground\": \"oklch(0.146 0 0)\",\n \"status-online\": \"oklch(0.814 0.192 155.7)\",\n \"status-online-foreground\": \"oklch(0.146 0 0)\",\n \"status-offline\": \"oklch(0.677 0.213 15.6)\",\n \"status-offline-foreground\": \"oklch(0.146 0 0)\",\n \"status-degraded\": \"oklch(0.77 0.165 70.6)\",\n \"status-degraded-foreground\": \"oklch(0.146 0 0)\",\n \"status-info\": \"oklch(0.732 0.142 254.4)\",\n \"status-info-foreground\": \"oklch(0.146 0 0)\",\n },\n};\n","import type { Theme } from \"./types.js\";\n\n/**\n * Classic Paper — visibly warm cream surface; Inter + JetBrains Mono.\n *\n * Identity: cream paper background with sepia warmth (calibrated against the\n * Vintage Paper / Anthropic Claude UI references), deep navy foreground,\n * indigo primary. Optimized for long agent/chat sessions where pure-white\n * surfaces cause vision fatigue (per IxDF 2026 + ACM 2025 light-mode studies).\n *\n * Token calibration (light mode):\n * - background L=0.95 chroma=0.025 hue=80 — visibly cream paper\n * - card L=0.97 chroma=0.012 hue=80 — sub-paper layer (cards stand out)\n * - foreground unchanged (deep navy, AAA contrast >12:1 vs background)\n *\n * Dark mirror unchanged.\n */\nexport const classicPaper: Theme = {\n name: \"classic-paper\",\n label: \"Classic Paper\",\n description: \"Inter + paper background. Maximum legibility, conservative.\",\n fonts: {\n display: '\"Inter\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n body: '\"Inter\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n mono: '\"JetBrains Mono\", ui-monospace, SFMono-Regular, Menlo, monospace',\n },\n fontUrls: [\n \"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;700&display=swap\",\n ],\n light: {\n background: \"oklch(0.95 0.025 80)\",\n foreground: \"oklch(0.206 0.039 265.5)\",\n card: \"oklch(0.97 0.012 80)\",\n \"card-foreground\": \"oklch(0.206 0.039 265.5)\",\n popover: \"oklch(0.98 0.008 80)\",\n \"popover-foreground\": \"oklch(0.206 0.039 265.5)\",\n primary: \"oklch(0.545 0.215 262.7)\",\n \"primary-foreground\": \"oklch(1 0 0)\",\n secondary: \"oklch(0.93 0.02 80)\",\n \"secondary-foreground\": \"oklch(0.206 0.039 265.5)\",\n accent: \"oklch(0.647 0.139 69)\",\n \"accent-foreground\": \"oklch(1 0 0)\",\n muted: \"oklch(0.93 0.02 80)\",\n \"muted-foreground\": \"oklch(0.45 0.03 80)\",\n border: \"oklch(0.88 0.025 80)\",\n input: \"oklch(0.92 0.02 80)\",\n ring: \"oklch(0.545 0.215 262.7)\",\n success: \"oklch(0.611 0.161 149.7)\",\n \"success-foreground\": \"oklch(1 0 0)\",\n warning: \"oklch(0.67 0.154 60.6)\",\n \"warning-foreground\": \"oklch(1 0 0)\",\n destructive: \"oklch(0.579 0.214 27.2)\",\n \"destructive-foreground\": \"oklch(1 0 0)\",\n info: \"oklch(0.626 0.186 259.6)\",\n \"info-foreground\": \"oklch(1 0 0)\",\n \"status-online\": \"oklch(0.611 0.161 149.7)\",\n \"status-online-foreground\": \"oklch(1 0 0)\",\n \"status-offline\": \"oklch(0.579 0.214 27.2)\",\n \"status-offline-foreground\": \"oklch(1 0 0)\",\n \"status-degraded\": \"oklch(0.67 0.154 60.6)\",\n \"status-degraded-foreground\": \"oklch(1 0 0)\",\n \"status-info\": \"oklch(0.626 0.186 259.6)\",\n \"status-info-foreground\": \"oklch(1 0 0)\",\n },\n // Dark mirror — mainly the same hues with inverted lightness so the theme\n // still feels coherent if a consumer toggles `.dark`.\n dark: {\n background: \"oklch(0.177 0.029 265.8)\",\n foreground: \"oklch(0.984 0.003 247.9)\",\n card: \"oklch(0.206 0.039 265.5)\",\n \"card-foreground\": \"oklch(0.984 0.003 247.9)\",\n popover: \"oklch(0.206 0.039 265.5)\",\n \"popover-foreground\": \"oklch(0.984 0.003 247.9)\",\n primary: \"oklch(0.626 0.186 259.6)\",\n \"primary-foreground\": \"oklch(0.206 0.039 265.5)\",\n secondary: \"oklch(0.291 0.022 259.9)\",\n \"secondary-foreground\": \"oklch(0.984 0.003 247.9)\",\n accent: \"oklch(0.803 0.15 74.7)\",\n \"accent-foreground\": \"oklch(0.206 0.039 265.5)\",\n muted: \"oklch(0.291 0.022 259.9)\",\n \"muted-foreground\": \"oklch(0.71 0.035 256.8)\",\n border: \"oklch(0.329 0.026 259.9)\",\n input: \"oklch(0.291 0.022 259.9)\",\n ring: \"oklch(0.626 0.186 259.6)\",\n success: \"oklch(0.814 0.192 155.7)\",\n \"success-foreground\": \"oklch(0.206 0.039 265.5)\",\n warning: \"oklch(0.77 0.165 70.6)\",\n \"warning-foreground\": \"oklch(0.206 0.039 265.5)\",\n destructive: \"oklch(0.677 0.213 15.6)\",\n \"destructive-foreground\": \"oklch(0.206 0.039 265.5)\",\n info: \"oklch(0.732 0.142 254.4)\",\n \"info-foreground\": \"oklch(0.206 0.039 265.5)\",\n \"status-online\": \"oklch(0.814 0.192 155.7)\",\n \"status-online-foreground\": \"oklch(0.206 0.039 265.5)\",\n \"status-offline\": \"oklch(0.677 0.213 15.6)\",\n \"status-offline-foreground\": \"oklch(0.206 0.039 265.5)\",\n \"status-degraded\": \"oklch(0.77 0.165 70.6)\",\n \"status-degraded-foreground\": \"oklch(0.206 0.039 265.5)\",\n \"status-info\": \"oklch(0.732 0.142 254.4)\",\n \"status-info-foreground\": \"oklch(0.206 0.039 265.5)\",\n },\n};\n","import type { Theme } from \"./types.js\";\n\n/**\n * Aurora Terminal — dark-first, cyan-aurora primary, Geist Mono everywhere.\n *\n * Identity: deep oceanic background, cyan-aurora primary, aurora-pink accent.\n * Headers use Geist with heavier tracking; body uses Geist Mono for full\n * \"developer console\" feel. Suits CLI/devtools showcase.\n */\nexport const auroraTerminal: Theme = {\n name: \"aurora-terminal\",\n label: \"Aurora Terminal\",\n description: \"Dark sci-fi developer console — cyan-aurora + Geist Mono body.\",\n fonts: {\n display: '\"Geist\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n body: '\"Geist\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n mono: '\"Geist Mono\", ui-monospace, SFMono-Regular, Menlo, monospace',\n },\n fontUrls: [\n \"https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Geist+Mono:wght@100..900&display=swap\",\n ],\n light: {\n background: \"oklch(0.966 0.006 264.5)\",\n foreground: \"oklch(0.206 0.039 265.5)\",\n card: \"oklch(1 0 0)\",\n \"card-foreground\": \"oklch(0.206 0.039 265.5)\",\n popover: \"oklch(1 0 0)\",\n \"popover-foreground\": \"oklch(0.206 0.039 265.5)\",\n primary: \"oklch(0.714 0.12 191)\",\n \"primary-foreground\": \"oklch(0.206 0.039 265.5)\",\n secondary: \"oklch(0.968 0.007 247.9)\",\n \"secondary-foreground\": \"oklch(0.206 0.039 265.5)\",\n accent: \"oklch(0.646 0.206 4.9)\",\n \"accent-foreground\": \"oklch(1 0 0)\",\n muted: \"oklch(0.926 0.013 255)\",\n \"muted-foreground\": \"oklch(0.556 0.04 256.8)\",\n border: \"oklch(0.926 0.013 255)\",\n input: \"oklch(0.926 0.013 255)\",\n ring: \"oklch(0.714 0.12 191)\",\n success: \"oklch(0.711 0.171 155.2)\",\n \"success-foreground\": \"oklch(1 0 0)\",\n warning: \"oklch(0.67 0.154 60.6)\",\n \"warning-foreground\": \"oklch(1 0 0)\",\n destructive: \"oklch(0.579 0.214 27.2)\",\n \"destructive-foreground\": \"oklch(1 0 0)\",\n info: \"oklch(0.626 0.186 259.6)\",\n \"info-foreground\": \"oklch(1 0 0)\",\n \"status-online\": \"oklch(0.711 0.171 155.2)\",\n \"status-online-foreground\": \"oklch(1 0 0)\",\n \"status-offline\": \"oklch(0.579 0.214 27.2)\",\n \"status-offline-foreground\": \"oklch(1 0 0)\",\n \"status-degraded\": \"oklch(0.67 0.154 60.6)\",\n \"status-degraded-foreground\": \"oklch(1 0 0)\",\n \"status-info\": \"oklch(0.626 0.186 259.6)\",\n \"status-info-foreground\": \"oklch(1 0 0)\",\n },\n dark: {\n background: \"oklch(0.169 0.021 268.7)\",\n foreground: \"oklch(0.966 0.006 264.5)\",\n card: \"oklch(0.199 0.027 268.5)\",\n \"card-foreground\": \"oklch(0.966 0.006 264.5)\",\n popover: \"oklch(0.199 0.027 268.5)\",\n \"popover-foreground\": \"oklch(0.966 0.006 264.5)\",\n primary: \"oklch(0.834 0.122 191.9)\",\n \"primary-foreground\": \"oklch(0.169 0.021 268.7)\",\n secondary: \"oklch(0.242 0.03 266.3)\",\n \"secondary-foreground\": \"oklch(0.966 0.006 264.5)\",\n accent: \"oklch(0.68 0.2 3.6)\",\n \"accent-foreground\": \"oklch(0.169 0.021 268.7)\",\n muted: \"oklch(0.242 0.03 266.3)\",\n \"muted-foreground\": \"oklch(0.71 0.035 256.8)\",\n border: \"oklch(0.281 0.035 266.3)\",\n input: \"oklch(0.242 0.03 266.3)\",\n ring: \"oklch(0.834 0.122 191.9)\",\n success: \"oklch(0.814 0.192 155.7)\",\n \"success-foreground\": \"oklch(0.169 0.021 268.7)\",\n warning: \"oklch(0.77 0.165 70.6)\",\n \"warning-foreground\": \"oklch(0.169 0.021 268.7)\",\n destructive: \"oklch(0.677 0.213 15.6)\",\n \"destructive-foreground\": \"oklch(0.169 0.021 268.7)\",\n info: \"oklch(0.732 0.142 254.4)\",\n \"info-foreground\": \"oklch(0.169 0.021 268.7)\",\n \"status-online\": \"oklch(0.814 0.192 155.7)\",\n \"status-online-foreground\": \"oklch(0.169 0.021 268.7)\",\n \"status-offline\": \"oklch(0.677 0.213 15.6)\",\n \"status-offline-foreground\": \"oklch(0.169 0.021 268.7)\",\n \"status-degraded\": \"oklch(0.77 0.165 70.6)\",\n \"status-degraded-foreground\": \"oklch(0.169 0.021 268.7)\",\n \"status-info\": \"oklch(0.732 0.142 254.4)\",\n \"status-info-foreground\": \"oklch(0.169 0.021 268.7)\",\n },\n};\n","/**\n * `defineTheme(input)` — build a `Theme` from a partial override.\n *\n * Reduces the boilerplate of authoring a custom theme from 58 colour\n * keys (`light` × 29 + `dark` × 29) to \"just what you want to change\".\n * The merge always uses `violetForge` as the base — this is a pure,\n * deterministic helper that does not depend on whatever theme is active\n * at the call site.\n *\n * The `Theme` object it returns is drop-in compatible with\n * `<ThemeProvider themes={[...]}>` — same shape as `violetForge`,\n * `classicPaper`, and `auroraTerminal`.\n *\n * Honest caveat: if you override `light.primary` but NOT `dark.primary`,\n * the two modes will use different colours — your override in light,\n * Violet Forge's default in dark. That's intentional. Pass both sides\n * to keep them in sync.\n *\n * @example\n * import { defineTheme, hex } from \"@theokit/ui\";\n * export const corp = defineTheme({\n * name: \"corp\",\n * light: { primary: hex(\"#0EA5E9\") },\n * dark: { primary: hex(\"#38BDF8\") },\n * });\n *\n * Plan: `.claude/knowledge-base/plans/theming-and-sizes-plan.md` T2.1.\n */\nimport type { ColorScale, Theme, ThemeFonts } from \"./types.js\";\nimport { violetForge } from \"./violet-forge.js\";\n\nconst NAME_PATTERN = /^[a-z][a-z0-9-]*$/i;\n\nexport interface DefineThemeInput {\n /**\n * Stable id used in `data-theme=\"<name>\"` on the root element. Must\n * match `/^[a-z][a-z0-9-]*$/i` (CSS-identifier-safe). Required.\n */\n name: string;\n /**\n * Human-readable label for theme switchers. Defaults to the\n * capitalized version of `name` (e.g. \"corp\" → \"Corp\").\n */\n label?: string;\n /** Optional one-line description shown in switchers. */\n description?: string;\n /**\n * Override light-mode colours. Any key omitted is inherited from\n * `violetForge.light`. See `ColorScale` for the full list.\n */\n light?: Partial<ColorScale>;\n /**\n * Override dark-mode colours. Any key omitted is inherited from\n * `violetForge.dark`.\n */\n dark?: Partial<ColorScale>;\n /**\n * Override fonts (`display`, `body`, `mono`). Any key omitted is\n * inherited from `violetForge.fonts`.\n */\n fonts?: Partial<ThemeFonts>;\n /**\n * Replace the default remote font URLs. Pass an empty array to skip\n * font fetching entirely. Defaults to `violetForge.fontUrls` when\n * omitted (so consumers that don't care still get Geist preloaded).\n */\n fontUrls?: string[];\n}\n\nfunction defaultLabel(name: string): string {\n if (name.length === 0) return name;\n return name.charAt(0).toUpperCase() + name.slice(1);\n}\n\nexport function defineTheme(input: DefineThemeInput): Theme {\n if (typeof input?.name !== \"string\" || input.name.length === 0) {\n throw new Error(\"defineTheme: `name` is required and cannot be empty.\");\n }\n if (!NAME_PATTERN.test(input.name)) {\n throw new Error(\n `defineTheme: invalid name \"${input.name}\". Must match /^[a-z][a-z0-9-]*$/i — letters, digits, and hyphens only, starting with a letter.`,\n );\n }\n\n const lightOverride = input.light ?? {};\n const darkOverride = input.dark ?? {};\n const fontsOverride = input.fonts ?? {};\n\n const theme: Theme = {\n name: input.name,\n label: input.label ?? defaultLabel(input.name),\n description: input.description,\n fonts: { ...violetForge.fonts, ...fontsOverride },\n light: { ...violetForge.light, ...lightOverride },\n dark: { ...violetForge.dark, ...darkOverride },\n fontUrls: input.fontUrls ?? violetForge.fontUrls,\n };\n\n return theme;\n}\n","/**\n * Color helpers for `ColorScale` and `defineTheme`.\n *\n * Post-T2.6 (community-best-practices alignment, ADR-0005): the canonical\n * output format is OKLCH (`\"oklch(L C H)\"`). Built-in themes also use OKLCH\n * after the T2.4 migration. The CSS regex (`COLOR_VALUE_PATTERN`) accepts\n * both formats for backward compatibility — legacy themes pinned to the\n * HSL split format keep working.\n *\n * Helpers:\n * - hex(input) → \"oklch(L C H)\" (NEW — primary path post-T2.6)\n * - rgb(r, g, b) → \"oklch(L C H)\" (NEW)\n * - hexToHsl(input) → \"H S% L%\" (legacy — deprecated, kept 1 minor)\n * - rgbToHsl(...) → \"H S% L%\" (legacy — deprecated)\n *\n * Alpha channels are intentionally discarded — `ColorScale` is opaque;\n * compose alpha in CSS via `color-mix(in oklch, var(--primary) 50%, transparent)`.\n *\n * Original plan: `.claude/knowledge-base/plans/theming-and-sizes-plan.md` T2.2.\n * Updated by: `.claude/knowledge-base/plans/theo-ui-community-best-practices-alignment-plan.md` T2.6.\n */\n\nfunction hexCharToNibble(ch: string): number {\n if (ch >= \"0\" && ch <= \"9\") return ch.charCodeAt(0) - 48;\n if (ch >= \"a\" && ch <= \"f\") return ch.charCodeAt(0) - 87;\n if (ch >= \"A\" && ch <= \"F\") return ch.charCodeAt(0) - 55;\n throw new Error(`hex(): invalid hex character \"${ch}\"`);\n}\n\nfunction parseHex(input: string): { r: number; g: number; b: number } {\n if (!input.startsWith(\"#\")) {\n throw new Error(`hex(): expected '#'-prefixed input, got \"${input}\"`);\n }\n const body = input.slice(1);\n let r: number;\n let g: number;\n let b: number;\n if (body.length === 3 || body.length === 4) {\n // Short form #rgb or #rgba — expand each nibble. charAt always returns\n // a string (empty for OOB), so hexCharToNibble throws on the empty\n // string the same way it does on any invalid char — no NonNull needed.\n const nr = hexCharToNibble(body.charAt(0));\n const ng = hexCharToNibble(body.charAt(1));\n const nb = hexCharToNibble(body.charAt(2));\n r = (nr << 4) | nr;\n g = (ng << 4) | ng;\n b = (nb << 4) | nb;\n // Alpha char (body[3]) is silently dropped per spec — ColorScale is opaque.\n } else if (body.length === 6 || body.length === 8) {\n r = (hexCharToNibble(body.charAt(0)) << 4) | hexCharToNibble(body.charAt(1));\n g = (hexCharToNibble(body.charAt(2)) << 4) | hexCharToNibble(body.charAt(3));\n b = (hexCharToNibble(body.charAt(4)) << 4) | hexCharToNibble(body.charAt(5));\n // Bytes 6-7 (alpha) silently dropped.\n } else {\n throw new Error(\n `hex(): invalid length ${body.length} for hex input \"${input}\" — expected 3, 4, 6, or 8 hex chars after the '#'.`,\n );\n }\n return { r, g, b };\n}\n\n/**\n * Convert sRGB ([0, 255]^3) to OKLCH via D65 linearization and Oklab matrices.\n * Inline implementation (no external dep): the Oklab paper (Björn Ottosson,\n * 2020) defines the conversion as two matrix products + cube-root nonlinearity.\n * Output: rounded to 3 decimals for L/C, 1 decimal for H.\n */\nfunction rgbToOklch(r: number, g: number, b: number): string {\n // sRGB → linear RGB (gamma decoding).\n const linearize = (c: number): number => {\n const cn = c / 255;\n return cn <= 0.04045 ? cn / 12.92 : ((cn + 0.055) / 1.055) ** 2.4;\n };\n const rl = linearize(r);\n const gl = linearize(g);\n const bl = linearize(b);\n\n // Linear RGB → LMS via Oklab matrix.\n const l_ = 0.4122214708 * rl + 0.5363325363 * gl + 0.0514459929 * bl;\n const m_ = 0.2119034982 * rl + 0.6806995451 * gl + 0.1073969566 * bl;\n const s_ = 0.0883024619 * rl + 0.2817188376 * gl + 0.6299787005 * bl;\n\n const l = Math.cbrt(l_);\n const m = Math.cbrt(m_);\n const s = Math.cbrt(s_);\n\n // LMS' → Oklab.\n const L = 0.2104542553 * l + 0.793617785 * m - 0.0040720468 * s;\n const a = 1.9779984951 * l - 2.428592205 * m + 0.4505937099 * s;\n const bComp = 0.0259040371 * l + 0.7827717662 * m - 0.808675766 * s;\n\n // Oklab → OKLCH.\n const C = Math.sqrt(a * a + bComp * bComp);\n let H = (Math.atan2(bComp, a) * 180) / Math.PI;\n if (H < 0) H += 360;\n\n const round = (n: number, d: number): number => {\n const f = 10 ** d;\n return Math.round(n * f) / f;\n };\n // Neutrals (C ≈ 0) have an undefined hue; emit 0 to keep regex-friendly.\n const hOut = C < 1e-4 ? 0 : round(H, 1);\n return `oklch(${round(L, 3)} ${round(C, 3)} ${hOut})`;\n}\n\nfunction rgbToHsl(r: number, g: number, b: number): string {\n const rn = r / 255;\n const gn = g / 255;\n const bn = b / 255;\n const max = Math.max(rn, gn, bn);\n const min = Math.min(rn, gn, bn);\n const l = (max + min) / 2;\n let h = 0;\n let s = 0;\n if (max !== min) {\n const d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case rn:\n h = (gn - bn) / d + (gn < bn ? 6 : 0);\n break;\n case gn:\n h = (bn - rn) / d + 2;\n break;\n default:\n h = (rn - gn) / d + 4;\n break;\n }\n h *= 60;\n }\n const hh = Math.round(h);\n const ss = Math.round(s * 100);\n const ll = Math.round(l * 100);\n return `${hh} ${ss}% ${ll}%`;\n}\n\n/**\n * Convert a hex color string to the HSL string-tuple format used by\n * `ColorScale` (\"`H S% L%`\", e.g. `\"262 83% 58%\"`).\n *\n * Accepts `#rgb`, `#rgba`, `#rrggbb`, `#rrggbbaa`. Case-insensitive.\n * Alpha bytes are silently dropped — use `hsl(var(--primary) / 0.5)`\n * in CSS for transparency.\n *\n * @throws if the input is malformed.\n *\n * @example\n * hex(\"#A855F7\") // \"oklch(0.628 0.225 296)\"\n * hex(\"#a855f7\") // same — case-insensitive\n * hex(\"#abc\") // expanded to \"#aabbcc\"\n */\nexport function hex(input: string): string {\n const { r, g, b } = parseHex(input);\n return rgbToOklch(r, g, b);\n}\n\n/**\n * Legacy helper that returns HSL string-tuple format (pre-T2.6).\n *\n * @deprecated Since 2026-06-03 — use `hex(input)` which returns OKLCH.\n * Kept for one minor cycle to avoid breaking consumers that authored\n * themes using the HSL split format. Both formats are accepted by\n * `ColorScale` and by `<ThemeProvider>` runtime validation.\n */\nexport function hexToHsl(input: string): string {\n const { r, g, b } = parseHex(input);\n return rgbToHsl(r, g, b);\n}\n\n/**\n * Convert an RGB triplet (each in `[0, 255]`) to the HSL string-tuple\n * format used by `ColorScale`.\n *\n * @throws if any channel is out of `[0, 255]`.\n *\n * @example\n * rgb(168, 85, 247) // \"oklch(0.628 0.225 296)\"\n */\nexport function rgb(r: number, g: number, b: number): string {\n for (const value of [r, g, b]) {\n if (!Number.isFinite(value) || value < 0 || value > 255) {\n throw new Error(\n `rgb(): channel out of range — expected 0..255, got ${value}. Did you mix percentage values?`,\n );\n }\n }\n return rgbToOklch(Math.round(r), Math.round(g), Math.round(b));\n}\n\n/**\n * Legacy helper that returns HSL string-tuple format (pre-T2.6).\n *\n * @deprecated Since 2026-06-03 — use `rgb(r, g, b)` which returns OKLCH.\n */\nexport function rgbToHslLegacy(r: number, g: number, b: number): string {\n for (const value of [r, g, b]) {\n if (!Number.isFinite(value) || value < 0 || value > 255) {\n throw new Error(`rgbToHslLegacy(): channel out of range — expected 0..255, got ${value}.`);\n }\n }\n return rgbToHsl(Math.round(r), Math.round(g), Math.round(b));\n}\n","import type { Theme } from \"./types.js\";\n\n/**\n * Vercel Mono — razor-sharp monochrome + signature blue.\n *\n * Inspired by, not affiliated with Vercel. Based on Geist Design tokens\n * (https://github.com/vercel/geist). Light = pure white + black ink + blue\n * accent (#0070F3); dark = near-black canvas + white text + same blue.\n *\n * Plan: .claude/knowledge-base/plans/seven-themes-plan.md T2.1\n */\nexport const vercelMono: Theme = {\n name: \"vercel-mono\",\n label: \"Vercel Mono\",\n description: \"Inspired by, not affiliated with Vercel. Monochrome canvas + signature blue.\",\n fonts: {\n display: '\"Geist\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n body: '\"Geist\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n mono: '\"Geist Mono\", ui-monospace, SFMono-Regular, Menlo, monospace',\n },\n fontUrls: [\n \"https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Geist+Mono:wght@100..900&display=swap\",\n ],\n light: {\n background: \"oklch(1 0 0)\",\n foreground: \"oklch(0 0 0)\",\n card: \"oklch(1 0 0)\",\n \"card-foreground\": \"oklch(0 0 0)\",\n popover: \"oklch(1 0 0)\",\n \"popover-foreground\": \"oklch(0 0 0)\",\n primary: \"oklch(0.57 0.211 257.9)\",\n \"primary-foreground\": \"oklch(1 0 0)\",\n secondary: \"oklch(0.97 0 0)\",\n \"secondary-foreground\": \"oklch(0 0 0)\",\n accent: \"oklch(0.57 0.211 257.9)\",\n \"accent-foreground\": \"oklch(1 0 0)\",\n muted: \"oklch(0.97 0 0)\",\n \"muted-foreground\": \"oklch(0.51 0 0)\",\n border: \"oklch(0.939 0 0)\",\n input: \"oklch(0.939 0 0)\",\n ring: \"oklch(0.57 0.211 257.9)\",\n success: \"oklch(0.687 0.127 174)\",\n \"success-foreground\": \"oklch(1 0 0)\",\n warning: \"oklch(0.687 0.155 62.5)\",\n \"warning-foreground\": \"oklch(1 0 0)\",\n destructive: \"oklch(0.531 0.218 29.2)\",\n \"destructive-foreground\": \"oklch(1 0 0)\",\n info: \"oklch(0.57 0.211 257.9)\",\n \"info-foreground\": \"oklch(1 0 0)\",\n \"status-online\": \"oklch(0.687 0.127 174)\",\n \"status-online-foreground\": \"oklch(1 0 0)\",\n \"status-offline\": \"oklch(0.531 0.218 29.2)\",\n \"status-offline-foreground\": \"oklch(1 0 0)\",\n \"status-degraded\": \"oklch(0.687 0.155 62.5)\",\n \"status-degraded-foreground\": \"oklch(1 0 0)\",\n \"status-info\": \"oklch(0.57 0.211 257.9)\",\n \"status-info-foreground\": \"oklch(1 0 0)\",\n },\n dark: {\n background: \"oklch(0.146 0 0)\",\n foreground: \"oklch(0.947 0 0)\",\n card: \"oklch(0.182 0 0)\",\n \"card-foreground\": \"oklch(0.947 0 0)\",\n popover: \"oklch(0.182 0 0)\",\n \"popover-foreground\": \"oklch(0.947 0 0)\",\n primary: \"oklch(0.627 0.203 256.2)\",\n \"primary-foreground\": \"oklch(1 0 0)\",\n secondary: \"oklch(0.248 0 0)\",\n \"secondary-foreground\": \"oklch(0.947 0 0)\",\n accent: \"oklch(0.661 0.184 254.7)\",\n \"accent-foreground\": \"oklch(0 0 0)\",\n muted: \"oklch(0.248 0 0)\",\n \"muted-foreground\": \"oklch(0.683 0 0)\",\n border: \"oklch(0.321 0 0)\",\n input: \"oklch(0.321 0 0)\",\n ring: \"oklch(0.627 0.203 256.2)\",\n success: \"oklch(0.837 0.237 148.6)\",\n \"success-foreground\": \"oklch(0 0 0)\",\n warning: \"oklch(0.81 0.136 70.9)\",\n \"warning-foreground\": \"oklch(0 0 0)\",\n destructive: \"oklch(0.634 0.251 28.5)\",\n \"destructive-foreground\": \"oklch(1 0 0)\",\n info: \"oklch(0.627 0.203 256.2)\",\n \"info-foreground\": \"oklch(1 0 0)\",\n \"status-online\": \"oklch(0.837 0.237 148.6)\",\n \"status-online-foreground\": \"oklch(0 0 0)\",\n \"status-offline\": \"oklch(0.634 0.251 28.5)\",\n \"status-offline-foreground\": \"oklch(1 0 0)\",\n \"status-degraded\": \"oklch(0.81 0.136 70.9)\",\n \"status-degraded-foreground\": \"oklch(0 0 0)\",\n \"status-info\": \"oklch(0.627 0.203 256.2)\",\n \"status-info-foreground\": \"oklch(1 0 0)\",\n },\n};\n","import type { Theme } from \"./types.js\";\n\n/**\n * GitHub Dark — GitHub's default dark theme.\n *\n * Based on the canonical Primer Primitives tokens\n * (https://github.com/primer/primitives, MIT). Light fallback uses GitHub's\n * \"light-default\" Primer scale.\n *\n * Plan: .claude/knowledge-base/plans/seven-themes-plan.md T3.1\n */\nexport const githubDark: Theme = {\n name: \"github-dark\",\n label: \"GitHub Dark\",\n description: \"GitHub's default dark theme. Primer Primitives tokens.\",\n fonts: {\n display: '\"Geist\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n body: '\"Geist\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n mono: '\"Geist Mono\", ui-monospace, SFMono-Regular, Menlo, monospace',\n },\n fontUrls: [\n \"https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Geist+Mono:wght@100..900&display=swap\",\n ],\n light: {\n background: \"oklch(1 0 0)\",\n foreground: \"oklch(0.276 0.013 253.5)\",\n card: \"oklch(0.976 0.004 247.9)\",\n \"card-foreground\": \"oklch(0.276 0.013 253.5)\",\n popover: \"oklch(1 0 0)\",\n \"popover-foreground\": \"oklch(0.276 0.013 253.5)\",\n primary: \"oklch(0.539 0.187 257.1)\",\n \"primary-foreground\": \"oklch(1 0 0)\",\n secondary: \"oklch(0.976 0.004 247.9)\",\n \"secondary-foreground\": \"oklch(0.276 0.013 253.5)\",\n accent: \"oklch(0.592 0.19 256.7)\",\n \"accent-foreground\": \"oklch(1 0 0)\",\n muted: \"oklch(0.976 0.004 247.9)\",\n \"muted-foreground\": \"oklch(0.531 0.018 253.4)\",\n border: \"oklch(0.874 0.01 247.9)\",\n input: \"oklch(0.874 0.01 247.9)\",\n ring: \"oklch(0.539 0.187 257.1)\",\n success: \"oklch(0.524 0.14 147.9)\",\n \"success-foreground\": \"oklch(1 0 0)\",\n warning: \"oklch(0.556 0.116 76.9)\",\n \"warning-foreground\": \"oklch(1 0 0)\",\n destructive: \"oklch(0.549 0.203 23.7)\",\n \"destructive-foreground\": \"oklch(1 0 0)\",\n info: \"oklch(0.539 0.187 257.1)\",\n \"info-foreground\": \"oklch(1 0 0)\",\n \"status-online\": \"oklch(0.524 0.14 147.9)\",\n \"status-online-foreground\": \"oklch(1 0 0)\",\n \"status-offline\": \"oklch(0.549 0.203 23.7)\",\n \"status-offline-foreground\": \"oklch(1 0 0)\",\n \"status-degraded\": \"oklch(0.556 0.116 76.9)\",\n \"status-degraded-foreground\": \"oklch(1 0 0)\",\n \"status-info\": \"oklch(0.539 0.187 257.1)\",\n \"status-info-foreground\": \"oklch(1 0 0)\",\n },\n dark: {\n background: \"oklch(0.176 0.014 256.8)\",\n foreground: \"oklch(0.966 0.012 247.9)\",\n card: \"oklch(0.221 0.015 256.8)\",\n \"card-foreground\": \"oklch(0.966 0.012 247.9)\",\n popover: \"oklch(0.221 0.015 256.8)\",\n \"popover-foreground\": \"oklch(0.966 0.012 247.9)\",\n primary: \"oklch(0.637 0.182 254.9)\",\n \"primary-foreground\": \"oklch(1 0 0)\",\n secondary: \"oklch(0.252 0.019 256.8)\",\n \"secondary-foreground\": \"oklch(0.966 0.012 247.9)\",\n accent: \"oklch(0.66 0.17 255.2)\",\n \"accent-foreground\": \"oklch(1 0 0)\",\n muted: \"oklch(0.252 0.019 256.8)\",\n \"muted-foreground\": \"oklch(0.668 0.018 253.4)\",\n border: \"oklch(0.326 0.016 253.5)\",\n input: \"oklch(0.326 0.016 253.5)\",\n ring: \"oklch(0.637 0.182 254.9)\",\n success: \"oklch(0.712 0.18 147.9)\",\n \"success-foreground\": \"oklch(0 0 0)\",\n warning: \"oklch(0.726 0.142 80.6)\",\n \"warning-foreground\": \"oklch(0 0 0)\",\n destructive: \"oklch(0.653 0.209 25.9)\",\n \"destructive-foreground\": \"oklch(1 0 0)\",\n info: \"oklch(0.637 0.182 254.9)\",\n \"info-foreground\": \"oklch(1 0 0)\",\n \"status-online\": \"oklch(0.712 0.18 147.9)\",\n \"status-online-foreground\": \"oklch(0 0 0)\",\n \"status-offline\": \"oklch(0.653 0.209 25.9)\",\n \"status-offline-foreground\": \"oklch(1 0 0)\",\n \"status-degraded\": \"oklch(0.726 0.142 80.6)\",\n \"status-degraded-foreground\": \"oklch(0 0 0)\",\n \"status-info\": \"oklch(0.637 0.182 254.9)\",\n \"status-info-foreground\": \"oklch(1 0 0)\",\n },\n};\n","import type { Theme } from \"./types.js\";\n\n/**\n * Dracula — the cult OSS dark theme (https://draculatheme.com, MIT).\n *\n * Dark mode = canonical Dracula spec (background #282A36, signature pink\n * #FF79C6, purple #BD93F9, etc.).\n *\n * Note: \"light\" mode is a Theo-original adaptation — Dracula upstream\n * spec is dark-only. We darken the signature pink/purple to pass WCAG AA\n * against light backgrounds, sacrificing palette purity for accessibility.\n *\n * Plan: .claude/knowledge-base/plans/seven-themes-plan.md T4.1\n */\nexport const dracula: Theme = {\n name: \"dracula\",\n label: \"Dracula\",\n description: \"Cult OSS theme (draculatheme.com, MIT). Light mode is Theo-adapted for WCAG AA.\",\n fonts: {\n display: '\"Geist\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n body: '\"Geist\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n mono: '\"Geist Mono\", ui-monospace, SFMono-Regular, Menlo, monospace',\n },\n fontUrls: [\n \"https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Geist+Mono:wght@100..900&display=swap\",\n ],\n light: {\n background: \"oklch(0.977 0.008 106.5)\",\n foreground: \"oklch(0.284 0.022 277.1)\",\n card: \"oklch(1 0 0)\",\n \"card-foreground\": \"oklch(0.284 0.022 277.1)\",\n popover: \"oklch(1 0 0)\",\n \"popover-foreground\": \"oklch(0.284 0.022 277.1)\",\n primary: \"oklch(0.489 0.227 305.4)\",\n \"primary-foreground\": \"oklch(1 0 0)\",\n secondary: \"oklch(0.949 0.011 106.6)\",\n \"secondary-foreground\": \"oklch(0.284 0.022 277.1)\",\n accent: \"oklch(0.438 0.191 302.4)\",\n \"accent-foreground\": \"oklch(1 0 0)\",\n muted: \"oklch(0.949 0.011 106.6)\",\n \"muted-foreground\": \"oklch(0.478 0.051 270.1)\",\n border: \"oklch(0.919 0.012 106.6)\",\n input: \"oklch(0.919 0.012 106.6)\",\n ring: \"oklch(0.489 0.227 305.4)\",\n success: \"oklch(0.515 0.1 147.3)\",\n \"success-foreground\": \"oklch(1 0 0)\",\n warning: \"oklch(0.549 0.111 82.7)\",\n \"warning-foreground\": \"oklch(1 0 0)\",\n destructive: \"oklch(0.504 0.187 27.2)\",\n \"destructive-foreground\": \"oklch(1 0 0)\",\n info: \"oklch(0.533 0.093 217.1)\",\n \"info-foreground\": \"oklch(1 0 0)\",\n \"status-online\": \"oklch(0.515 0.1 147.3)\",\n \"status-online-foreground\": \"oklch(1 0 0)\",\n \"status-offline\": \"oklch(0.504 0.187 27.2)\",\n \"status-offline-foreground\": \"oklch(1 0 0)\",\n \"status-degraded\": \"oklch(0.549 0.111 82.7)\",\n \"status-degraded-foreground\": \"oklch(1 0 0)\",\n \"status-info\": \"oklch(0.533 0.093 217.1)\",\n \"status-info-foreground\": \"oklch(1 0 0)\",\n },\n dark: {\n background: \"oklch(0.284 0.022 277.1)\",\n foreground: \"oklch(0.977 0.008 106.5)\",\n card: \"oklch(0.322 0.024 278.1)\",\n \"card-foreground\": \"oklch(0.977 0.008 106.5)\",\n popover: \"oklch(0.322 0.024 278.1)\",\n \"popover-foreground\": \"oklch(0.977 0.008 106.5)\",\n primary: \"oklch(0.756 0.181 347.2)\",\n \"primary-foreground\": \"oklch(0.284 0.022 277.1)\",\n secondary: \"oklch(0.376 0.03 278)\",\n \"secondary-foreground\": \"oklch(0.977 0.008 106.5)\",\n accent: \"oklch(0.747 0.146 302.2)\",\n \"accent-foreground\": \"oklch(0.284 0.022 277.1)\",\n muted: \"oklch(0.376 0.03 278)\",\n \"muted-foreground\": \"oklch(0.688 0.055 270.5)\",\n border: \"oklch(0.403 0.032 278)\",\n input: \"oklch(0.403 0.032 278)\",\n ring: \"oklch(0.756 0.181 347.2)\",\n success: \"oklch(0.871 0.218 148)\",\n \"success-foreground\": \"oklch(0.284 0.022 277.1)\",\n warning: \"oklch(0.955 0.137 112.9)\",\n \"warning-foreground\": \"oklch(0.284 0.022 277.1)\",\n destructive: \"oklch(0.684 0.205 24.3)\",\n \"destructive-foreground\": \"oklch(1 0 0)\",\n info: \"oklch(0.882 0.093 213.7)\",\n \"info-foreground\": \"oklch(0.284 0.022 277.1)\",\n \"status-online\": \"oklch(0.871 0.218 148)\",\n \"status-online-foreground\": \"oklch(0.284 0.022 277.1)\",\n \"status-offline\": \"oklch(0.684 0.205 24.3)\",\n \"status-offline-foreground\": \"oklch(1 0 0)\",\n \"status-degraded\": \"oklch(0.955 0.137 112.9)\",\n \"status-degraded-foreground\": \"oklch(0.284 0.022 277.1)\",\n \"status-info\": \"oklch(0.882 0.093 213.7)\",\n \"status-info-foreground\": \"oklch(0.284 0.022 277.1)\",\n },\n};\n","import type { Theme } from \"./types.js\";\n\n/**\n * One Dark / One Light — Atom's iconic syntax theme.\n *\n * Sources:\n * - atom/one-dark-syntax (MIT) — dark mode canonical\n * - atom/one-light-syntax (MIT) — light mode canonical\n *\n * Plan: .claude/knowledge-base/plans/seven-themes-plan.md T5.1\n */\nexport const oneDark: Theme = {\n name: \"one-dark\",\n label: \"One Dark\",\n description: \"Atom's One Dark + One Light syntax theme (MIT). Iconic IDE look.\",\n fonts: {\n display: '\"Geist\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n body: '\"Geist\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n mono: '\"Geist Mono\", ui-monospace, SFMono-Regular, Menlo, monospace',\n },\n fontUrls: [\n \"https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Geist+Mono:wght@100..900&display=swap\",\n ],\n light: {\n background: \"oklch(0.985 0 0)\",\n foreground: \"oklch(0.35 0.014 276.7)\",\n card: \"oklch(1 0 0)\",\n \"card-foreground\": \"oklch(0.35 0.014 276.7)\",\n popover: \"oklch(1 0 0)\",\n \"popover-foreground\": \"oklch(0.35 0.014 276.7)\",\n primary: \"oklch(0.529 0.235 262.3)\",\n \"primary-foreground\": \"oklch(1 0 0)\",\n secondary: \"oklch(0.962 0 0)\",\n \"secondary-foreground\": \"oklch(0.35 0.014 276.7)\",\n accent: \"oklch(0.522 0.209 328.8)\",\n \"accent-foreground\": \"oklch(1 0 0)\",\n muted: \"oklch(0.962 0 0)\",\n \"muted-foreground\": \"oklch(0.588 0.013 276.9)\",\n border: \"oklch(0.923 0 0)\",\n input: \"oklch(0.923 0 0)\",\n ring: \"oklch(0.529 0.235 262.3)\",\n success: \"oklch(0.515 0.111 143.4)\",\n \"success-foreground\": \"oklch(1 0 0)\",\n warning: \"oklch(0.555 0.116 77)\",\n \"warning-foreground\": \"oklch(1 0 0)\",\n destructive: \"oklch(0.544 0.194 29.8)\",\n \"destructive-foreground\": \"oklch(1 0 0)\",\n info: \"oklch(0.499 0.108 236.7)\",\n \"info-foreground\": \"oklch(1 0 0)\",\n \"status-online\": \"oklch(0.515 0.111 143.4)\",\n \"status-online-foreground\": \"oklch(1 0 0)\",\n \"status-offline\": \"oklch(0.544 0.194 29.8)\",\n \"status-offline-foreground\": \"oklch(1 0 0)\",\n \"status-degraded\": \"oklch(0.555 0.116 77)\",\n \"status-degraded-foreground\": \"oklch(1 0 0)\",\n \"status-info\": \"oklch(0.499 0.108 236.7)\",\n \"status-info-foreground\": \"oklch(1 0 0)\",\n },\n dark: {\n background: \"oklch(0.292 0.016 264.3)\",\n foreground: \"oklch(0.761 0.021 264.4)\",\n card: \"oklch(0.262 0.013 264.3)\",\n \"card-foreground\": \"oklch(0.761 0.021 264.4)\",\n popover: \"oklch(0.262 0.013 264.3)\",\n \"popover-foreground\": \"oklch(0.761 0.021 264.4)\",\n primary: \"oklch(0.732 0.121 245.2)\",\n \"primary-foreground\": \"oklch(0.292 0.016 264.3)\",\n secondary: \"oklch(0.34 0.019 264.3)\",\n \"secondary-foreground\": \"oklch(0.761 0.021 264.4)\",\n accent: \"oklch(0.694 0.163 318)\",\n \"accent-foreground\": \"oklch(0.292 0.016 264.3)\",\n muted: \"oklch(0.34 0.019 264.3)\",\n \"muted-foreground\": \"oklch(0.63 0.02 264.4)\",\n border: \"oklch(0.387 0.023 264.3)\",\n input: \"oklch(0.387 0.023 264.3)\",\n ring: \"oklch(0.732 0.121 245.2)\",\n success: \"oklch(0.768 0.11 133.1)\",\n \"success-foreground\": \"oklch(0.292 0.016 264.3)\",\n warning: \"oklch(0.727 0.095 63.5)\",\n \"warning-foreground\": \"oklch(0.292 0.016 264.3)\",\n destructive: \"oklch(0.67 0.145 16.7)\",\n \"destructive-foreground\": \"oklch(1 0 0)\",\n info: \"oklch(0.722 0.091 206.9)\",\n \"info-foreground\": \"oklch(0.292 0.016 264.3)\",\n \"status-online\": \"oklch(0.768 0.11 133.1)\",\n \"status-online-foreground\": \"oklch(0.292 0.016 264.3)\",\n \"status-offline\": \"oklch(0.67 0.145 16.7)\",\n \"status-offline-foreground\": \"oklch(1 0 0)\",\n \"status-degraded\": \"oklch(0.727 0.095 63.5)\",\n \"status-degraded-foreground\": \"oklch(0.292 0.016 264.3)\",\n \"status-info\": \"oklch(0.722 0.091 206.9)\",\n \"status-info-foreground\": \"oklch(0.292 0.016 264.3)\",\n },\n};\n","import type { Theme } from \"./types.js\";\n\n/**\n * Anthropic-style — claude.ai-inspired editorial calm.\n *\n * Inspired by, not affiliated with Anthropic. Visually informed by claude.ai's\n * warm cream canvas + burnt sienna primary + ink-on-paper feel. No proprietary\n * assets reproduced (font is Geist, colors are independent measurements).\n *\n * Plan: .claude/knowledge-base/plans/seven-themes-plan.md T6.1\n */\nexport const anthropicStyle: Theme = {\n name: \"anthropic-style\",\n label: \"Anthropic-style\",\n description:\n \"Inspired by, not affiliated with Anthropic. Warm cream + burnt sienna editorial feel.\",\n fonts: {\n display: '\"Geist\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n body: '\"Geist\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n mono: '\"Geist Mono\", ui-monospace, SFMono-Regular, Menlo, monospace',\n },\n fontUrls: [\n \"https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Geist+Mono:wght@100..900&display=swap\",\n ],\n light: {\n background: \"oklch(0.982 0.005 106.5)\",\n foreground: \"oklch(0.216 0 0)\",\n card: \"oklch(1 0 0)\",\n \"card-foreground\": \"oklch(0.216 0 0)\",\n popover: \"oklch(1 0 0)\",\n \"popover-foreground\": \"oklch(0.216 0 0)\",\n primary: \"oklch(0.555 0.13 38.8)\",\n \"primary-foreground\": \"oklch(1 0 0)\",\n secondary: \"oklch(0.946 0.009 91.5)\",\n \"secondary-foreground\": \"oklch(0.216 0 0)\",\n accent: \"oklch(0.522 0.075 57.6)\",\n \"accent-foreground\": \"oklch(1 0 0)\",\n muted: \"oklch(0.946 0.009 91.5)\",\n \"muted-foreground\": \"oklch(0.501 0 0)\",\n border: \"oklch(0.911 0.015 91.5)\",\n input: \"oklch(0.911 0.015 91.5)\",\n ring: \"oklch(0.555 0.13 38.8)\",\n success: \"oklch(0.518 0.107 146.3)\",\n \"success-foreground\": \"oklch(1 0 0)\",\n warning: \"oklch(0.539 0.102 70.9)\",\n \"warning-foreground\": \"oklch(1 0 0)\",\n destructive: \"oklch(0.487 0.15 28.9)\",\n \"destructive-foreground\": \"oklch(1 0 0)\",\n info: \"oklch(0.492 0.078 233.2)\",\n \"info-foreground\": \"oklch(1 0 0)\",\n \"status-online\": \"oklch(0.518 0.107 146.3)\",\n \"status-online-foreground\": \"oklch(1 0 0)\",\n \"status-offline\": \"oklch(0.487 0.15 28.9)\",\n \"status-offline-foreground\": \"oklch(1 0 0)\",\n \"status-degraded\": \"oklch(0.539 0.102 70.9)\",\n \"status-degraded-foreground\": \"oklch(1 0 0)\",\n \"status-info\": \"oklch(0.492 0.078 233.2)\",\n \"status-info-foreground\": \"oklch(1 0 0)\",\n },\n dark: {\n background: \"oklch(0.216 0 0)\",\n foreground: \"oklch(0.951 0.009 78.3)\",\n card: \"oklch(0.27 0 0)\",\n \"card-foreground\": \"oklch(0.951 0.009 78.3)\",\n popover: \"oklch(0.27 0 0)\",\n \"popover-foreground\": \"oklch(0.951 0.009 78.3)\",\n primary: \"oklch(0.679 0.125 40.5)\",\n \"primary-foreground\": \"oklch(1 0 0)\",\n secondary: \"oklch(0.301 0 0)\",\n \"secondary-foreground\": \"oklch(0.951 0.009 78.3)\",\n accent: \"oklch(0.645 0.072 49.3)\",\n \"accent-foreground\": \"oklch(1 0 0)\",\n muted: \"oklch(0.301 0 0)\",\n \"muted-foreground\": \"oklch(0.719 0.01 67.7)\",\n border: \"oklch(0.371 0 0)\",\n input: \"oklch(0.371 0 0)\",\n ring: \"oklch(0.679 0.125 40.5)\",\n success: \"oklch(0.805 0.186 151.6)\",\n \"success-foreground\": \"oklch(0.216 0 0)\",\n warning: \"oklch(0.874 0.15 90.2)\",\n \"warning-foreground\": \"oklch(0.216 0 0)\",\n destructive: \"oklch(0.636 0.208 25.4)\",\n \"destructive-foreground\": \"oklch(1 0 0)\",\n info: \"oklch(0.722 0.113 233.1)\",\n \"info-foreground\": \"oklch(0.216 0 0)\",\n \"status-online\": \"oklch(0.805 0.186 151.6)\",\n \"status-online-foreground\": \"oklch(0.216 0 0)\",\n \"status-offline\": \"oklch(0.636 0.208 25.4)\",\n \"status-offline-foreground\": \"oklch(1 0 0)\",\n \"status-degraded\": \"oklch(0.874 0.15 90.2)\",\n \"status-degraded-foreground\": \"oklch(0.216 0 0)\",\n \"status-info\": \"oklch(0.722 0.113 233.1)\",\n \"status-info-foreground\": \"oklch(0.216 0 0)\",\n },\n};\n","import type { Theme } from \"./types.js\";\n\n/**\n * OpenAI-style — chatgpt.com-inspired minimal tech-utility.\n *\n * Inspired by, not affiliated with OpenAI. Pure white / charcoal canvas +\n * signature ChatGPT green (#10A37F). Minimal saturation, high contrast.\n *\n * Plan: .claude/knowledge-base/plans/seven-themes-plan.md T7.1\n */\nexport const openaiStyle: Theme = {\n name: \"openai-style\",\n label: \"OpenAI-style\",\n description: \"Inspired by, not affiliated with OpenAI. Minimal canvas + ChatGPT green.\",\n fonts: {\n display: '\"Geist\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n body: '\"Geist\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n mono: '\"Geist Mono\", ui-monospace, SFMono-Regular, Menlo, monospace',\n },\n fontUrls: [\n \"https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Geist+Mono:wght@100..900&display=swap\",\n ],\n light: {\n background: \"oklch(1 0 0)\",\n foreground: \"oklch(0.248 0 0)\",\n card: \"oklch(0.976 0.001 286.4)\",\n \"card-foreground\": \"oklch(0.248 0 0)\",\n popover: \"oklch(1 0 0)\",\n \"popover-foreground\": \"oklch(0.248 0 0)\",\n primary: \"oklch(0.636 0.124 169.1)\",\n \"primary-foreground\": \"oklch(1 0 0)\",\n secondary: \"oklch(0.968 0.001 286.4)\",\n \"secondary-foreground\": \"oklch(0.248 0 0)\",\n accent: \"oklch(0.636 0.124 169.1)\",\n \"accent-foreground\": \"oklch(1 0 0)\",\n muted: \"oklch(0.968 0.001 286.4)\",\n \"muted-foreground\": \"oklch(0.549 0.026 285.5)\",\n border: \"oklch(0.923 0 0)\",\n input: \"oklch(0.923 0 0)\",\n ring: \"oklch(0.636 0.124 169.1)\",\n success: \"oklch(0.636 0.124 169.1)\",\n \"success-foreground\": \"oklch(1 0 0)\",\n warning: \"oklch(0.651 0.158 55.2)\",\n \"warning-foreground\": \"oklch(1 0 0)\",\n destructive: \"oklch(0.576 0.218 27.6)\",\n \"destructive-foreground\": \"oklch(1 0 0)\",\n info: \"oklch(0.57 0.211 257.9)\",\n \"info-foreground\": \"oklch(1 0 0)\",\n \"status-online\": \"oklch(0.636 0.124 169.1)\",\n \"status-online-foreground\": \"oklch(1 0 0)\",\n \"status-offline\": \"oklch(0.576 0.218 27.6)\",\n \"status-offline-foreground\": \"oklch(1 0 0)\",\n \"status-degraded\": \"oklch(0.651 0.158 55.2)\",\n \"status-degraded-foreground\": \"oklch(1 0 0)\",\n \"status-info\": \"oklch(0.57 0.211 257.9)\",\n \"status-info-foreground\": \"oklch(1 0 0)\",\n },\n dark: {\n background: \"oklch(0.248 0 0)\",\n foreground: \"oklch(0.947 0 0)\",\n card: \"oklch(0.301 0 0)\",\n \"card-foreground\": \"oklch(0.947 0 0)\",\n popover: \"oklch(0.301 0 0)\",\n \"popover-foreground\": \"oklch(0.947 0 0)\",\n primary: \"oklch(0.555 0.125 158.4)\",\n \"primary-foreground\": \"oklch(1 0 0)\",\n secondary: \"oklch(0.321 0 0)\",\n \"secondary-foreground\": \"oklch(0.947 0 0)\",\n accent: \"oklch(0.808 0.186 157.7)\",\n \"accent-foreground\": \"oklch(0.248 0 0)\",\n muted: \"oklch(0.321 0 0)\",\n \"muted-foreground\": \"oklch(0.691 0 0)\",\n border: \"oklch(0.38 0 0)\",\n input: \"oklch(0.38 0 0)\",\n ring: \"oklch(0.722 0.165 157.9)\",\n success: \"oklch(0.722 0.165 157.9)\",\n \"success-foreground\": \"oklch(1 0 0)\",\n warning: \"oklch(0.77 0.165 70.6)\",\n \"warning-foreground\": \"oklch(0.248 0 0)\",\n destructive: \"oklch(0.636 0.208 25.4)\",\n \"destructive-foreground\": \"oklch(1 0 0)\",\n info: \"oklch(0.627 0.203 256.2)\",\n \"info-foreground\": \"oklch(1 0 0)\",\n \"status-online\": \"oklch(0.722 0.165 157.9)\",\n \"status-online-foreground\": \"oklch(1 0 0)\",\n \"status-offline\": \"oklch(0.636 0.208 25.4)\",\n \"status-offline-foreground\": \"oklch(1 0 0)\",\n \"status-degraded\": \"oklch(0.77 0.165 70.6)\",\n \"status-degraded-foreground\": \"oklch(0.248 0 0)\",\n \"status-info\": \"oklch(0.627 0.203 256.2)\",\n \"status-info-foreground\": \"oklch(1 0 0)\",\n },\n};\n","import type { Theme } from \"./types.js\";\n\n/**\n * Linear Glass — linear.app-inspired glassy indigo.\n *\n * Inspired by, not affiliated with Linear. Refined indigo-violet primary\n * (#5E6AD2) on near-black canvas in dark, pure white in light. Subtle\n * glassmorphic surface temperature.\n *\n * Plan: .claude/knowledge-base/plans/seven-themes-plan.md T8.1\n */\nexport const linearGlass: Theme = {\n name: \"linear-glass\",\n label: \"Linear Glass\",\n description: \"Inspired by, not affiliated with Linear. Refined indigo on glassy surfaces.\",\n fonts: {\n display: '\"Geist\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n body: '\"Geist\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n mono: '\"Geist Mono\", ui-monospace, SFMono-Regular, Menlo, monospace',\n },\n fontUrls: [\n \"https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Geist+Mono:wght@100..900&display=swap\",\n ],\n light: {\n background: \"oklch(1 0 0)\",\n foreground: \"oklch(0.232 0.006 285.9)\",\n card: \"oklch(0.983 0.002 264.5)\",\n \"card-foreground\": \"oklch(0.232 0.006 285.9)\",\n popover: \"oklch(1 0 0)\",\n \"popover-foreground\": \"oklch(0.232 0.006 285.9)\",\n primary: \"oklch(0.523 0.175 273.1)\",\n \"primary-foreground\": \"oklch(1 0 0)\",\n secondary: \"oklch(0.967 0.002 286.4)\",\n \"secondary-foreground\": \"oklch(0.232 0.006 285.9)\",\n accent: \"oklch(0.55 0.181 282.4)\",\n \"accent-foreground\": \"oklch(1 0 0)\",\n muted: \"oklch(0.967 0.002 286.4)\",\n \"muted-foreground\": \"oklch(0.533 0.014 285.9)\",\n border: \"oklch(0.943 0.004 286.3)\",\n input: \"oklch(0.943 0.004 286.3)\",\n ring: \"oklch(0.523 0.175 273.1)\",\n success: \"oklch(0.583 0.12 160.3)\",\n \"success-foreground\": \"oklch(1 0 0)\",\n warning: \"oklch(0.665 0.138 68.3)\",\n \"warning-foreground\": \"oklch(1 0 0)\",\n destructive: \"oklch(0.579 0.221 26.6)\",\n \"destructive-foreground\": \"oklch(1 0 0)\",\n info: \"oklch(0.523 0.175 273.1)\",\n \"info-foreground\": \"oklch(1 0 0)\",\n \"status-online\": \"oklch(0.583 0.12 160.3)\",\n \"status-online-foreground\": \"oklch(1 0 0)\",\n \"status-offline\": \"oklch(0.579 0.221 26.6)\",\n \"status-offline-foreground\": \"oklch(1 0 0)\",\n \"status-degraded\": \"oklch(0.665 0.138 68.3)\",\n \"status-degraded-foreground\": \"oklch(1 0 0)\",\n \"status-info\": \"oklch(0.523 0.175 273.1)\",\n \"status-info-foreground\": \"oklch(1 0 0)\",\n },\n dark: {\n background: \"oklch(0.165 0.006 285.8)\",\n foreground: \"oklch(0.923 0 0)\",\n card: \"oklch(0.219 0.009 285.7)\",\n \"card-foreground\": \"oklch(0.923 0 0)\",\n popover: \"oklch(0.219 0.009 285.7)\",\n \"popover-foreground\": \"oklch(0.923 0 0)\",\n primary: \"oklch(0.627 0.149 285.1)\",\n \"primary-foreground\": \"oklch(1 0 0)\",\n secondary: \"oklch(0.25 0.011 285.6)\",\n \"secondary-foreground\": \"oklch(0.923 0 0)\",\n accent: \"oklch(0.718 0.16 291.8)\",\n \"accent-foreground\": \"oklch(0.165 0.006 285.8)\",\n muted: \"oklch(0.25 0.011 285.6)\",\n \"muted-foreground\": \"oklch(0.73 0.012 286.1)\",\n border: \"oklch(0.282 0.009 285.8)\",\n input: \"oklch(0.282 0.009 285.8)\",\n ring: \"oklch(0.627 0.149 285.1)\",\n success: \"oklch(0.73 0.142 156)\",\n \"success-foreground\": \"oklch(0.165 0.006 285.8)\",\n warning: \"oklch(0.813 0.143 66.8)\",\n \"warning-foreground\": \"oklch(0.165 0.006 285.8)\",\n destructive: \"oklch(0.706 0.187 20.3)\",\n \"destructive-foreground\": \"oklch(0.165 0.006 285.8)\",\n info: \"oklch(0.627 0.149 285.1)\",\n \"info-foreground\": \"oklch(1 0 0)\",\n \"status-online\": \"oklch(0.73 0.142 156)\",\n \"status-online-foreground\": \"oklch(0.165 0.006 285.8)\",\n \"status-offline\": \"oklch(0.706 0.187 20.3)\",\n \"status-offline-foreground\": \"oklch(0.165 0.006 285.8)\",\n \"status-degraded\": \"oklch(0.813 0.143 66.8)\",\n \"status-degraded-foreground\": \"oklch(0.165 0.006 285.8)\",\n \"status-info\": \"oklch(0.627 0.149 285.1)\",\n \"status-info-foreground\": \"oklch(1 0 0)\",\n },\n};\n","export type { ColorScale, Theme, ThemeFonts, ThemeMode } from \"./types.js\";\nexport { ThemeProvider, useTheme } from \"./theme-provider.js\";\nexport { ThemeScript } from \"./theme-script.js\";\nexport { ThemeSwitcher } from \"./theme-switcher.js\";\nexport { violetForge } from \"./violet-forge.js\";\nexport { classicPaper } from \"./classic-paper.js\";\nexport { auroraTerminal } from \"./aurora-terminal.js\";\nexport { defineTheme, type DefineThemeInput } from \"./define.js\";\nexport { hex, hexToHsl, rgb, rgbToHslLegacy } from \"./color.js\";\nexport { useDensity, type Density, type DensityContextValue } from \"./density.js\";\n// Seven new themes — RFC 0007, plan: seven-themes (2026-05-22).\n// Trademark-safe slugs (D1.1) — `*-style` / `*-mono` / `*-glass` suffixes,\n// description includes \"Inspired by, not affiliated with [X]\".\nexport { vercelMono } from \"./vercel-mono.js\";\nexport { githubDark } from \"./github-dark.js\";\nexport { dracula } from \"./dracula.js\";\nexport { oneDark } from \"./one-dark.js\";\nexport { anthropicStyle } from \"./anthropic-style.js\";\nexport { openaiStyle } from \"./openai-style.js\";\nexport { linearGlass } from \"./linear-glass.js\";\n\nimport { anthropicStyle } from \"./anthropic-style.js\";\nimport { auroraTerminal } from \"./aurora-terminal.js\";\nimport { classicPaper } from \"./classic-paper.js\";\nimport { dracula } from \"./dracula.js\";\nimport { githubDark } from \"./github-dark.js\";\nimport { linearGlass } from \"./linear-glass.js\";\nimport { oneDark } from \"./one-dark.js\";\nimport { openaiStyle } from \"./openai-style.js\";\nimport { vercelMono } from \"./vercel-mono.js\";\nimport { violetForge } from \"./violet-forge.js\";\n\n/**\n * All themes bundled with Theo UI. Pass to `<ThemeProvider themes={builtinThemes}>`\n * if you want all 10 available out of the box.\n *\n * EC-4 note: passing the full 10-entry list triggers ~60 KB CSS injection in\n * `<style id=\"theo-ui-theme-vars\">`. For apps focused on 1-2 themes, prefer\n * `themes={[violetForge, dracula]}` to keep the payload at ~12 KB.\n */\nexport const builtinThemes = [\n violetForge,\n classicPaper,\n auroraTerminal,\n vercelMono,\n githubDark,\n dracula,\n oneDark,\n anthropicStyle,\n openaiStyle,\n linearGlass,\n];\n","\"use client\";\n\nimport type { ComponentProps, JSX, ReactNode } from \"react\";\nimport { Toaster } from \"./components/primitives/toast/toaster.js\";\nimport { builtinThemes } from \"./themes/index.js\";\nimport { ThemeProvider } from \"./themes/theme-provider.js\";\n\n/**\n * TheoUIProvider — primary entry point composing `<ThemeProvider>` and\n * `<Toaster>` in the correct order with sensible defaults.\n *\n * Recommended for consumer apps to avoid hand-wiring the provider stack.\n * Equivalent to:\n *\n * <ThemeProvider themes={builtinThemes} {...theme}>\n * <Toaster {...toaster}>{children}</Toaster>\n * </ThemeProvider>\n *\n * Notes:\n * - Since v0.1.0-next.0, `<ThemeProvider>` requires the `themes` prop\n * (T2.5 decoupling). `<TheoUIProvider>` defaults it to `builtinThemes`\n * to preserve \"works out of the box\" DX. Pass `theme.themes` to override.\n * - The `\"use client\"` directive is required for Next.js App Router (RSC)\n * because `<ThemeProvider>` uses React state and effects internally.\n * - `<Tooltip>` provider stays per-instance (Radix recommendation) — this\n * wrapper does NOT introduce a global tooltip context.\n * - `<ThemeProvider>` and `<Toaster>` remain independently exported for\n * consumers who want bespoke control.\n *\n * SSR:\n * - Place `<ThemeScript>` in `<head>` to avoid FOUC + hydration mismatch.\n * - Wrap `<html lang=\"en\" suppressHydrationWarning>`.\n *\n * @example\n * import { TheoUIProvider } from \"@theokit/ui\";\n *\n * export default function App({ children }) {\n * return <TheoUIProvider>{children}</TheoUIProvider>;\n * }\n */\nexport interface TheoUIProviderProps {\n children: ReactNode;\n /** Pass-through props for the inner `<ThemeProvider>`. Optional. */\n theme?: Omit<ComponentProps<typeof ThemeProvider>, \"children\" | \"themes\"> & {\n /** Override the default theme set (defaults to `builtinThemes`). */\n themes?: ComponentProps<typeof ThemeProvider>[\"themes\"];\n };\n /** Pass-through props for the inner `<Toaster>`. */\n toaster?: Omit<ComponentProps<typeof Toaster>, \"children\">;\n}\n\nexport function TheoUIProvider({ children, theme, toaster }: TheoUIProviderProps): JSX.Element {\n const { themes, ...restTheme } = theme ?? {};\n return (\n <ThemeProvider themes={themes ?? builtinThemes} {...restTheme}>\n <Toaster {...toaster}>{children}</Toaster>\n </ThemeProvider>\n );\n}\n\nTheoUIProvider.displayName = \"TheoUIProvider\";\n"]}
@@ -1,14 +0,0 @@
1
- export interface CodeBlockProps {
2
- /** The raw source code. Newlines preserved verbatim. */
3
- code: string;
4
- /** Language hint (`typescript`, `python`, `bash`, …). Falls through if unknown. */
5
- language?: string;
6
- /** Dual-theme map — Shiki theme names. */
7
- themes?: {
8
- light: string;
9
- dark: string;
10
- };
11
- /** Extra className for the outer wrapper. */
12
- className?: string;
13
- }
14
- export declare function CodeBlock({ code, language, themes, className }: CodeBlockProps): JSX.Element;
@@ -1,10 +0,0 @@
1
- /**
2
- * `<InlineCode>` — styled inline `<code>` for markdown rendering.
3
- *
4
- * Differentiates inline code from fenced code-blocks (which use `<CodeBlock>`)
5
- * via subtle surface treatment. Per Violet Forge: muted background, mono
6
- * font, slight horizontal padding.
7
- */
8
- import type { HTMLAttributes } from "react";
9
- export type InlineCodeProps = HTMLAttributes<HTMLElement>;
10
- export declare function InlineCode({ className, children, ...props }: InlineCodeProps): JSX.Element;
@@ -1,12 +0,0 @@
1
- interface MathProps {
2
- /** The TeX source string (without `$` or `$$` wrappers). */
3
- tex: string;
4
- /** Inline (true) vs display (false). */
5
- inline: boolean;
6
- className?: string;
7
- }
8
- export type MathInlineProps = Omit<MathProps, "inline">;
9
- export type MathBlockProps = Omit<MathProps, "inline">;
10
- export declare function MathInline(props: MathInlineProps): JSX.Element;
11
- export declare function MathBlock(props: MathBlockProps): JSX.Element;
12
- export {};
@@ -1,6 +0,0 @@
1
- export interface MermaidDiagramProps {
2
- /** The Mermaid source code (e.g. `flowchart TD\nA-->B`). */
3
- source: string;
4
- className?: string;
5
- }
6
- export declare function MermaidDiagram({ source, className }: MermaidDiagramProps): JSX.Element;
@@ -1,47 +0,0 @@
1
- /**
2
- * Markdown → React pipeline for chat messages.
3
- *
4
- * parseMarkdownToReact(md, opts)
5
- * ├─ preprocessStreaming(md, isStreaming) → auto-close incomplete tokens
6
- * ├─ parseBody(md) → mdast Root (micromark + GFM)
7
- * ├─ mdastToHast(mdastTree) → hast Root (allowDangerousHtml=false)
8
- * ├─ sanitizeHast(hastTree) → hast Root via hast-util-sanitize
9
- * └─ hastToReact(hastTree) → React tree (jsx-runtime)
10
- *
11
- * Every transform lazily imports its peer-dep so the barrel never vendors the
12
- * markdown stack. Consumers that install the optional peer-deps (already
13
- * declared by the Slide engine) get rich rendering; consumers that don't get
14
- * a plain-text fallback via `parseMarkdownToReactSafe`.
15
- */
16
- import type { Root as HastRoot } from "hast";
17
- import type { Root as MdastRoot } from "mdast";
18
- import { type ReactElement } from "react";
19
- export interface ParseMarkdownOptions {
20
- /**
21
- * Override individual element renderers. The `components` map is passed
22
- * through to `hast-util-to-jsx-runtime` (e.g. `{ code: MyCodeBlock }`).
23
- */
24
- components?: Record<string, unknown>;
25
- /**
26
- * True while tokens are still arriving from the model. Enables the
27
- * streaming-safe preprocess pass. Default: `false`.
28
- */
29
- isStreaming?: boolean;
30
- }
31
- export declare function parseBody(body: string): Promise<MdastRoot>;
32
- export declare function mdastToHast(tree: MdastRoot): Promise<HastRoot>;
33
- export declare function sanitizeHast(tree: HastRoot): Promise<HastRoot>;
34
- export declare function hastToReact(tree: HastRoot, components?: Record<string, unknown>): Promise<ReactElement>;
35
- /**
36
- * Public entry point. Returns a Promise<ReactElement> ready to render inline.
37
- * If any peer-dep is missing at runtime, the function rejects — callers
38
- * should use `parseMarkdownToReactSafe` for a graceful fallback.
39
- */
40
- export declare function parseMarkdownToReact(markdown: string, opts?: ParseMarkdownOptions): Promise<ReactElement>;
41
- /**
42
- * Same as `parseMarkdownToReact` but returns a plain-text `<span>` fallback
43
- * if any peer-dep is missing (instead of rejecting). Used by `<ChatMessage>`
44
- * to keep the surface rendering when consumers opted out of the markdown
45
- * stack.
46
- */
47
- export declare function parseMarkdownToReactSafe(markdown: string, opts?: ParseMarkdownOptions): Promise<ReactElement>;
@@ -1,39 +0,0 @@
1
- /**
2
- * Streaming-safe markdown preprocessor.
3
- *
4
- * When markdown arrives token-by-token from an LLM, the tail of the buffer
5
- * is almost always mid-token: `**bold` (unclosed), `[link` (no `]`), an
6
- * unterminated ` ```fence`, an unfinished `$math$`. A vanilla markdown
7
- * parser treats those as literal text — the user sees `**bold` instead of
8
- * **bold** for the few hundred ms until the matching token arrives. This
9
- * "flash" is the single biggest UX defect of naïve streaming markdown
10
- * (cf. Streamdown's design note).
11
- *
12
- * The trick — adopted from Streamdown (MIT, vercel) and re-implemented
13
- * here — is to NEVER mutate the original buffer (the model's authoritative
14
- * stream), but to feed a TRANSIENTLY auto-closed copy to the parser. When
15
- * the next token actually closes the syntax, the temporary close was a
16
- * no-op and the real one takes over.
17
- *
18
- * Scope:
19
- * - bold/italic markers: `**`, `__`, `*`, `_`
20
- * - inline code: single backtick `` ` ``
21
- * - fenced code: triple-backtick (with optional language)
22
- * - inline math: `$` … `$`
23
- * - block math: `$$` … `$$`
24
- * - links: `[text](url)` — close the `)` if missing
25
- *
26
- * Out of scope (yet):
27
- * - reference-style links `[text][ref]` — rare in LLM output
28
- * - HTML tags — Tailwind v4 already sanitizes downstream
29
- * - tables — partial tables render OK as plain text mid-stream
30
- */
31
- /**
32
- * Auto-close incomplete markdown tokens in the tail of a streaming buffer.
33
- * Returns a copy that's safe to pass to the parser; the original buffer
34
- * stays untouched.
35
- *
36
- * `isStreaming = false` short-circuits (returns input unchanged) — the
37
- * close-tokens are only synthesized while content is still arriving.
38
- */
39
- export declare function preprocessStreaming(markdown: string, isStreaming?: boolean): string;
@@ -1,40 +0,0 @@
1
- import type { ReactNode } from "react";
2
- /**
3
- * A selectable option shared by the prompt composites (`ChoicePrompt`,
4
- * `MultiSelectPrompt`). Modeled on the question/option shape that drives an
5
- * AI-agent "ask the user" surface (the same UX Claude Code's question card
6
- * exposes): a stable value, a visible label, an optional secondary line, and
7
- * an optional rich preview shown side-by-side.
8
- */
9
- export interface PromptOption {
10
- /** Stable value returned on selection. Must be unique within the option set. */
11
- value: string;
12
- /** Visible primary label. */
13
- label: ReactNode;
14
- /** Optional secondary line rendered under the label. */
15
- description?: ReactNode;
16
- /** When true, the option cannot be selected. */
17
- disabled?: boolean;
18
- /**
19
- * Optional rich preview (markdown-ish mockup, code snippet, diagram) shown in
20
- * the side-by-side pane while the option is selected. The presence of any
21
- * preview across the option set switches the layout to two columns — matching
22
- * the Claude Code question card's focused-option preview.
23
- */
24
- preview?: ReactNode;
25
- }
26
- /**
27
- * Reserved value for the synthesized free-text "Other" option that the choice
28
- * composites inject when `allowOther` is set. Kept out of the public barrel so
29
- * consumers cannot collide with it accidentally; compare against it via the
30
- * exported `isOtherValue` helper instead.
31
- */
32
- export declare const OTHER_OPTION_VALUE = "__theo_other__";
33
- /** True when `value` is the synthesized free-text "Other" option. */
34
- export declare function isOtherValue(value: string | undefined): boolean;
35
- /**
36
- * Map a single keyboard digit to a zero-based option index. Returns `null` when
37
- * the key is not a `1`..`9` digit. `"1"` → `0`, `"9"` → `8`. Used by the choice
38
- * composites to wire number-key shortcuts (terminal-style selection).
39
- */
40
- export declare function digitKeyToIndex(key: string): number | null;
@@ -1 +0,0 @@
1
- export { adaptApplyPatchResult, adaptGitDiffResult, adaptListDirResult, adaptReadFileResult, adaptShellResult, type CodeBlockAdapterProps, type CreatedFilesAdapterProps, type DataTableAdapterProps, type ParsedDiff, parseResult, parseUnifiedDiff, } from "./sdk-tools-adapters.js";
@@ -1,3 +0,0 @@
1
- export { adaptApplyPatchResult, adaptGitDiffResult, adaptListDirResult, adaptReadFileResult, adaptShellResult, parseResult, parseUnifiedDiff } from '../../chunk-4EKF4EIE.js';
2
- //# sourceMappingURL=index.js.map
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}