langgraph-ui-components 0.0.10 → 0.0.11-testing

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 (393) hide show
  1. package/dist/index.es.js +3 -2
  2. package/dist/index.es10.js +25 -6
  3. package/dist/index.es10.js.map +1 -1
  4. package/dist/index.es100.js +131 -64
  5. package/dist/index.es100.js.map +1 -1
  6. package/dist/index.es101.js +65 -32
  7. package/dist/index.es101.js.map +1 -1
  8. package/dist/index.es102.js +34 -34
  9. package/dist/index.es102.js.map +1 -1
  10. package/dist/index.es103.js +35 -164
  11. package/dist/index.es103.js.map +1 -1
  12. package/dist/index.es104.js +156 -193
  13. package/dist/index.es104.js.map +1 -1
  14. package/dist/index.es105.js +202 -13
  15. package/dist/index.es105.js.map +1 -1
  16. package/dist/index.es106.js +13 -29
  17. package/dist/index.es106.js.map +1 -1
  18. package/dist/index.es107.js +25 -29
  19. package/dist/index.es107.js.map +1 -1
  20. package/dist/index.es108.js +24 -3147
  21. package/dist/index.es108.js.map +1 -1
  22. package/dist/index.es109.js +3151 -31
  23. package/dist/index.es109.js.map +1 -1
  24. package/dist/index.es110.js +21 -5
  25. package/dist/index.es110.js.map +1 -1
  26. package/dist/index.es111.js +64 -69
  27. package/dist/index.es111.js.map +1 -1
  28. package/dist/index.es112.js +3 -37
  29. package/dist/index.es112.js.map +1 -1
  30. package/dist/index.es113.js +16 -5
  31. package/dist/index.es113.js.map +1 -1
  32. package/dist/index.es114.js +7 -2
  33. package/dist/index.es114.js.map +1 -1
  34. package/dist/index.es115.js +2 -13
  35. package/dist/index.es115.js.map +1 -1
  36. package/dist/index.es116.js +9 -499
  37. package/dist/index.es116.js.map +1 -1
  38. package/dist/index.es117.js +501 -5
  39. package/dist/index.es117.js.map +1 -1
  40. package/dist/index.es118.js +7 -2
  41. package/dist/index.es118.js.map +1 -1
  42. package/dist/index.es119.js +2 -148
  43. package/dist/index.es119.js.map +1 -1
  44. package/dist/index.es120.js +118 -878
  45. package/dist/index.es120.js.map +1 -1
  46. package/dist/index.es121.js +877 -251
  47. package/dist/index.es121.js.map +1 -1
  48. package/dist/index.es122.js +281 -3
  49. package/dist/index.es122.js.map +1 -1
  50. package/dist/index.es123.js +3 -445
  51. package/dist/index.es123.js.map +1 -1
  52. package/dist/index.es124.js +437 -39
  53. package/dist/index.es124.js.map +1 -1
  54. package/dist/index.es125.js +46 -22
  55. package/dist/index.es125.js.map +1 -1
  56. package/dist/index.es126.js +21 -78
  57. package/dist/index.es126.js.map +1 -1
  58. package/dist/index.es127.js +76 -126
  59. package/dist/index.es127.js.map +1 -1
  60. package/dist/index.es128.js +125 -45
  61. package/dist/index.es128.js.map +1 -1
  62. package/dist/index.es129.js +48 -9
  63. package/dist/index.es129.js.map +1 -1
  64. package/dist/index.es130.js +10 -45
  65. package/dist/index.es130.js.map +1 -1
  66. package/dist/index.es131.js +43 -97
  67. package/dist/index.es131.js.map +1 -1
  68. package/dist/index.es132.js +94 -48
  69. package/dist/index.es132.js.map +1 -1
  70. package/dist/index.es133.js +51 -14
  71. package/dist/index.es133.js.map +1 -1
  72. package/dist/index.es134.js +1 -1
  73. package/dist/index.es135.js +1 -1
  74. package/dist/index.es138.js +1 -1
  75. package/dist/index.es139.js +1 -1
  76. package/dist/index.es140.js +1 -1
  77. package/dist/index.es141.js +1 -1
  78. package/dist/index.es142.js +1 -1
  79. package/dist/index.es143.js +1 -1
  80. package/dist/index.es144.js +1 -1
  81. package/dist/index.es145.js +1 -1
  82. package/dist/index.es146.js +1 -1
  83. package/dist/index.es147.js +1 -1
  84. package/dist/index.es148.js +1 -1
  85. package/dist/index.es149.js +1 -1
  86. package/dist/index.es150.js +1 -1
  87. package/dist/index.es151.js +1 -1
  88. package/dist/index.es152.js +1 -1
  89. package/dist/index.es153.js +1 -1
  90. package/dist/index.es154.js +1 -1
  91. package/dist/index.es155.js +1 -1
  92. package/dist/index.es156.js +1 -1
  93. package/dist/index.es157.js +1 -1
  94. package/dist/index.es158.js +1 -1
  95. package/dist/index.es159.js +1 -1
  96. package/dist/index.es16.js +3 -3
  97. package/dist/index.es16.js.map +1 -1
  98. package/dist/index.es160.js +1 -1
  99. package/dist/index.es161.js +1 -1
  100. package/dist/index.es162.js +1 -1
  101. package/dist/index.es163.js +1 -1
  102. package/dist/index.es164.js +1 -1
  103. package/dist/index.es165.js +1 -1
  104. package/dist/index.es166.js +1 -1
  105. package/dist/index.es167.js +1 -1
  106. package/dist/index.es168.js +1 -1
  107. package/dist/index.es169.js +1 -1
  108. package/dist/index.es170.js +1 -1
  109. package/dist/index.es171.js +1 -1
  110. package/dist/index.es172.js +1 -1
  111. package/dist/index.es173.js +1 -1
  112. package/dist/index.es174.js +1 -1
  113. package/dist/index.es175.js +1 -1
  114. package/dist/index.es176.js +1 -1
  115. package/dist/index.es177.js +1 -1
  116. package/dist/index.es178.js +1 -1
  117. package/dist/index.es179.js +1 -1
  118. package/dist/index.es18.js +15 -15
  119. package/dist/index.es180.js +1 -1
  120. package/dist/index.es181.js +1 -1
  121. package/dist/index.es182.js +1 -1
  122. package/dist/index.es183.js +162 -13
  123. package/dist/index.es183.js.map +1 -1
  124. package/dist/index.es184.js +2 -89
  125. package/dist/index.es184.js.map +1 -1
  126. package/dist/index.es185.js +15 -2
  127. package/dist/index.es185.js.map +1 -1
  128. package/dist/index.es186.js +89 -2
  129. package/dist/index.es186.js.map +1 -1
  130. package/dist/index.es187.js +2 -2
  131. package/dist/index.es188.js +56 -2
  132. package/dist/index.es188.js.map +1 -1
  133. package/dist/index.es189.js +100 -2
  134. package/dist/index.es189.js.map +1 -1
  135. package/dist/index.es190.js +191 -2
  136. package/dist/index.es190.js.map +1 -1
  137. package/dist/index.es191.js +110 -2
  138. package/dist/index.es191.js.map +1 -1
  139. package/dist/index.es192.js +35 -2
  140. package/dist/index.es192.js.map +1 -1
  141. package/dist/index.es193.js +10 -2
  142. package/dist/index.es193.js.map +1 -1
  143. package/dist/index.es194.js +11 -2
  144. package/dist/index.es194.js.map +1 -1
  145. package/dist/index.es195.js +12 -2
  146. package/dist/index.es195.js.map +1 -1
  147. package/dist/index.es196.js +91 -2
  148. package/dist/index.es196.js.map +1 -1
  149. package/dist/index.es197.js +275 -2
  150. package/dist/index.es197.js.map +1 -1
  151. package/dist/index.es198.js +2 -2
  152. package/dist/index.es199.js +164 -2
  153. package/dist/index.es199.js.map +1 -1
  154. package/dist/index.es200.js +51 -2
  155. package/dist/index.es200.js.map +1 -1
  156. package/dist/index.es201.js +40 -2
  157. package/dist/index.es201.js.map +1 -1
  158. package/dist/index.es202.js +35 -2
  159. package/dist/index.es202.js.map +1 -1
  160. package/dist/index.es203.js +40 -2
  161. package/dist/index.es203.js.map +1 -1
  162. package/dist/index.es204.js +24 -2
  163. package/dist/index.es204.js.map +1 -1
  164. package/dist/index.es205.js +591 -2
  165. package/dist/index.es205.js.map +1 -1
  166. package/dist/index.es206.js +125 -2
  167. package/dist/index.es206.js.map +1 -1
  168. package/dist/index.es207.js +2 -2
  169. package/dist/index.es208.js +2 -2
  170. package/dist/index.es209.js +2 -2
  171. package/dist/index.es210.js +2 -2
  172. package/dist/index.es211.js +2 -2
  173. package/dist/index.es212.js +2 -2
  174. package/dist/index.es213.js +2 -2
  175. package/dist/index.es214.js +2 -2
  176. package/dist/index.es215.js +2 -2
  177. package/dist/index.es216.js +2 -2
  178. package/dist/index.es217.js +2 -2
  179. package/dist/index.es218.js +2 -2
  180. package/dist/index.es219.js +2 -2
  181. package/dist/index.es220.js +2 -2
  182. package/dist/index.es221.js +2 -2
  183. package/dist/index.es222.js +2 -2
  184. package/dist/index.es223.js +2 -2
  185. package/dist/index.es224.js +2 -2
  186. package/dist/index.es225.js +2 -2
  187. package/dist/index.es226.js +2 -2
  188. package/dist/index.es227.js +2 -2
  189. package/dist/index.es228.js +2 -2
  190. package/dist/index.es229.js +2 -2
  191. package/dist/index.es230.js +2 -2
  192. package/dist/index.es231.js +2 -56
  193. package/dist/index.es231.js.map +1 -1
  194. package/dist/index.es232.js +2 -100
  195. package/dist/index.es232.js.map +1 -1
  196. package/dist/index.es233.js +2 -191
  197. package/dist/index.es233.js.map +1 -1
  198. package/dist/index.es234.js +2 -110
  199. package/dist/index.es234.js.map +1 -1
  200. package/dist/index.es235.js +2 -35
  201. package/dist/index.es235.js.map +1 -1
  202. package/dist/index.es236.js +2 -10
  203. package/dist/index.es236.js.map +1 -1
  204. package/dist/index.es237.js +2 -11
  205. package/dist/index.es237.js.map +1 -1
  206. package/dist/index.es238.js +2 -12
  207. package/dist/index.es238.js.map +1 -1
  208. package/dist/index.es239.js +2 -91
  209. package/dist/index.es239.js.map +1 -1
  210. package/dist/index.es24.js +1 -1
  211. package/dist/index.es240.js +2 -275
  212. package/dist/index.es240.js.map +1 -1
  213. package/dist/index.es241.js +2 -2
  214. package/dist/index.es242.js +2 -164
  215. package/dist/index.es242.js.map +1 -1
  216. package/dist/index.es243.js +2 -51
  217. package/dist/index.es243.js.map +1 -1
  218. package/dist/index.es244.js +2 -40
  219. package/dist/index.es244.js.map +1 -1
  220. package/dist/index.es245.js +2 -35
  221. package/dist/index.es245.js.map +1 -1
  222. package/dist/index.es246.js +2 -40
  223. package/dist/index.es246.js.map +1 -1
  224. package/dist/index.es247.js +2 -24
  225. package/dist/index.es247.js.map +1 -1
  226. package/dist/index.es248.js +2 -591
  227. package/dist/index.es248.js.map +1 -1
  228. package/dist/index.es249.js +2 -125
  229. package/dist/index.es249.js.map +1 -1
  230. package/dist/index.es25.js +3 -1
  231. package/dist/index.es25.js.map +1 -1
  232. package/dist/index.es250.js +2 -164
  233. package/dist/index.es250.js.map +1 -1
  234. package/dist/index.es251.js +2 -2
  235. package/dist/index.es252.js +2 -2
  236. package/dist/index.es253.js +1 -1
  237. package/dist/index.es258.js +1 -1
  238. package/dist/index.es260.js +2 -2
  239. package/dist/index.es262.js +2 -2
  240. package/dist/index.es265.js +1 -1
  241. package/dist/index.es267.js +1 -1
  242. package/dist/index.es277.js +2 -147
  243. package/dist/index.es277.js.map +1 -1
  244. package/dist/index.es278.js +126 -167
  245. package/dist/index.es278.js.map +1 -1
  246. package/dist/index.es279.js +188 -2
  247. package/dist/index.es279.js.map +1 -1
  248. package/dist/index.es280.js +1 -1
  249. package/dist/index.es283.js +1 -1
  250. package/dist/index.es288.js +1 -1
  251. package/dist/index.es29.js +1 -1
  252. package/dist/index.es3.js +24 -9
  253. package/dist/index.es3.js.map +1 -1
  254. package/dist/index.es300.js +1 -1
  255. package/dist/index.es302.js +1 -1
  256. package/dist/index.es31.js +7 -7
  257. package/dist/index.es314.js +1 -1
  258. package/dist/index.es32.js +1 -1
  259. package/dist/index.es334.js +2 -2
  260. package/dist/index.es35.js +4 -4
  261. package/dist/index.es36.js +1185 -111
  262. package/dist/index.es36.js.map +1 -1
  263. package/dist/index.es37.js +7 -71
  264. package/dist/index.es37.js.map +1 -1
  265. package/dist/index.es38.js +9 -18
  266. package/dist/index.es38.js.map +1 -1
  267. package/dist/index.es39.js +136 -250
  268. package/dist/index.es39.js.map +1 -1
  269. package/dist/index.es4.js +2 -1
  270. package/dist/index.es4.js.map +1 -1
  271. package/dist/index.es40.js +116 -41
  272. package/dist/index.es40.js.map +1 -1
  273. package/dist/index.es41.js +64 -208
  274. package/dist/index.es41.js.map +1 -1
  275. package/dist/index.es42.js +17 -66
  276. package/dist/index.es42.js.map +1 -1
  277. package/dist/index.es43.js +236 -117
  278. package/dist/index.es43.js.map +1 -1
  279. package/dist/index.es44.js +38 -19
  280. package/dist/index.es44.js.map +1 -1
  281. package/dist/index.es45.js +202 -217
  282. package/dist/index.es45.js.map +1 -1
  283. package/dist/index.es46.js +65 -7
  284. package/dist/index.es46.js.map +1 -1
  285. package/dist/index.es47.js +131 -1181
  286. package/dist/index.es47.js.map +1 -1
  287. package/dist/index.es48.js +25 -8
  288. package/dist/index.es48.js.map +1 -1
  289. package/dist/index.es49.js +218 -135
  290. package/dist/index.es49.js.map +1 -1
  291. package/dist/index.es5.js.map +1 -1
  292. package/dist/index.es50.js +5 -208
  293. package/dist/index.es50.js.map +1 -1
  294. package/dist/index.es51.js +208 -5
  295. package/dist/index.es51.js.map +1 -1
  296. package/dist/index.es52.js +90 -7
  297. package/dist/index.es52.js.map +1 -1
  298. package/dist/index.es53.js +6 -92
  299. package/dist/index.es53.js.map +1 -1
  300. package/dist/index.es54.js +14 -3
  301. package/dist/index.es54.js.map +1 -1
  302. package/dist/index.es55.js +8 -36
  303. package/dist/index.es55.js.map +1 -1
  304. package/dist/index.es56.js +83 -61
  305. package/dist/index.es56.js.map +1 -1
  306. package/dist/index.es57.js +3 -37
  307. package/dist/index.es57.js.map +1 -1
  308. package/dist/index.es58.js +34 -304
  309. package/dist/index.es58.js.map +1 -1
  310. package/dist/index.es59.js +72 -9
  311. package/dist/index.es59.js.map +1 -1
  312. package/dist/index.es60.js +32 -85
  313. package/dist/index.es60.js.map +1 -1
  314. package/dist/index.es61.js +304 -6
  315. package/dist/index.es61.js.map +1 -1
  316. package/dist/index.es62.js +9 -15
  317. package/dist/index.es62.js.map +1 -1
  318. package/dist/index.es63.js +3 -3
  319. package/dist/index.es64.js +5 -142
  320. package/dist/index.es64.js.map +1 -1
  321. package/dist/index.es65.js +148 -285
  322. package/dist/index.es65.js.map +1 -1
  323. package/dist/index.es66.js +668 -62
  324. package/dist/index.es66.js.map +1 -1
  325. package/dist/index.es67.js +131 -201
  326. package/dist/index.es67.js.map +1 -1
  327. package/dist/index.es68.js +295 -29
  328. package/dist/index.es68.js.map +1 -1
  329. package/dist/index.es69.js +65 -8
  330. package/dist/index.es69.js.map +1 -1
  331. package/dist/index.es7.js +2 -1
  332. package/dist/index.es7.js.map +1 -1
  333. package/dist/index.es70.js +210 -9
  334. package/dist/index.es70.js.map +1 -1
  335. package/dist/index.es71.js +28 -181
  336. package/dist/index.es71.js.map +1 -1
  337. package/dist/index.es72.js +8 -23
  338. package/dist/index.es72.js.map +1 -1
  339. package/dist/index.es73.js +9 -1397
  340. package/dist/index.es73.js.map +1 -1
  341. package/dist/index.es74.js +187 -9
  342. package/dist/index.es74.js.map +1 -1
  343. package/dist/index.es75.js +24 -8
  344. package/dist/index.es75.js.map +1 -1
  345. package/dist/index.es76.js +1399 -5
  346. package/dist/index.es76.js.map +1 -1
  347. package/dist/index.es77.js +9 -163
  348. package/dist/index.es77.js.map +1 -1
  349. package/dist/index.es78.js +8 -672
  350. package/dist/index.es78.js.map +1 -1
  351. package/dist/index.es79.js +36 -20
  352. package/dist/index.es79.js.map +1 -1
  353. package/dist/index.es80.js +5 -68
  354. package/dist/index.es80.js.map +1 -1
  355. package/dist/index.es81.js +73 -3
  356. package/dist/index.es81.js.map +1 -1
  357. package/dist/index.es82.js +36 -11
  358. package/dist/index.es82.js.map +1 -1
  359. package/dist/index.es83.js +10 -38
  360. package/dist/index.es83.js.map +1 -1
  361. package/dist/index.es84.js +34 -28
  362. package/dist/index.es84.js.map +1 -1
  363. package/dist/index.es85.js +28 -226
  364. package/dist/index.es85.js.map +1 -1
  365. package/dist/index.es86.js +228 -26
  366. package/dist/index.es86.js.map +1 -1
  367. package/dist/index.es87.js +26 -71
  368. package/dist/index.es87.js.map +1 -1
  369. package/dist/index.es88.js +41 -42
  370. package/dist/index.es88.js.map +1 -1
  371. package/dist/index.es89.js +71 -47
  372. package/dist/index.es89.js.map +1 -1
  373. package/dist/index.es90.js +37 -15
  374. package/dist/index.es90.js.map +1 -1
  375. package/dist/index.es91.js +6 -19
  376. package/dist/index.es91.js.map +1 -1
  377. package/dist/index.es92.js +40 -54
  378. package/dist/index.es92.js.map +1 -1
  379. package/dist/index.es93.js +56 -12
  380. package/dist/index.es93.js.map +1 -1
  381. package/dist/index.es94.js +13 -137
  382. package/dist/index.es94.js.map +1 -1
  383. package/dist/index.es95.js +135 -19
  384. package/dist/index.es95.js.map +1 -1
  385. package/dist/index.es96.js +18 -179
  386. package/dist/index.es96.js.map +1 -1
  387. package/dist/index.es97.js +163 -222
  388. package/dist/index.es97.js.map +1 -1
  389. package/dist/index.es98.js +187 -301
  390. package/dist/index.es98.js.map +1 -1
  391. package/dist/index.es99.js +348 -130
  392. package/dist/index.es99.js.map +1 -1
  393. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { __exports as a11yDark } from "./index.es195.js";
1
+ import { __exports as a11yDark } from "./index.es216.js";
2
2
  var hasRequiredA11yDark;
3
3
  function requireA11yDark() {
4
4
  if (hasRequiredA11yDark) return a11yDark;
@@ -1,4 +1,4 @@
1
- import { __exports as atomDark } from "./index.es196.js";
1
+ import { __exports as atomDark } from "./index.es217.js";
2
2
  var hasRequiredAtomDark;
3
3
  function requireAtomDark() {
4
4
  if (hasRequiredAtomDark) return atomDark;
@@ -1,4 +1,4 @@
1
- import { __exports as base16Ateliersulphurpool_light } from "./index.es197.js";
1
+ import { __exports as base16Ateliersulphurpool_light } from "./index.es218.js";
2
2
  var hasRequiredBase16Ateliersulphurpool_light;
3
3
  function requireBase16Ateliersulphurpool_light() {
4
4
  if (hasRequiredBase16Ateliersulphurpool_light) return base16Ateliersulphurpool_light;
@@ -1,4 +1,4 @@
1
- import { __exports as cb } from "./index.es198.js";
1
+ import { __exports as cb } from "./index.es219.js";
2
2
  var hasRequiredCb;
3
3
  function requireCb() {
4
4
  if (hasRequiredCb) return cb;
@@ -1,4 +1,4 @@
1
- import { __exports as coldarkCold } from "./index.es199.js";
1
+ import { __exports as coldarkCold } from "./index.es220.js";
2
2
  var hasRequiredColdarkCold;
3
3
  function requireColdarkCold() {
4
4
  if (hasRequiredColdarkCold) return coldarkCold;
@@ -1,4 +1,4 @@
1
- import { __exports as coldarkDark } from "./index.es200.js";
1
+ import { __exports as coldarkDark } from "./index.es221.js";
2
2
  var hasRequiredColdarkDark;
3
3
  function requireColdarkDark() {
4
4
  if (hasRequiredColdarkDark) return coldarkDark;
@@ -1,4 +1,4 @@
1
- import { __exports as coyWithoutShadows } from "./index.es201.js";
1
+ import { __exports as coyWithoutShadows } from "./index.es222.js";
2
2
  var hasRequiredCoyWithoutShadows;
3
3
  function requireCoyWithoutShadows() {
4
4
  if (hasRequiredCoyWithoutShadows) return coyWithoutShadows;
@@ -1,4 +1,4 @@
1
- import { __exports as darcula } from "./index.es202.js";
1
+ import { __exports as darcula } from "./index.es223.js";
2
2
  var hasRequiredDarcula;
3
3
  function requireDarcula() {
4
4
  if (hasRequiredDarcula) return darcula;
@@ -1,4 +1,4 @@
1
- import { __exports as dracula } from "./index.es203.js";
1
+ import { __exports as dracula } from "./index.es224.js";
2
2
  var hasRequiredDracula;
3
3
  function requireDracula() {
4
4
  if (hasRequiredDracula) return dracula;
@@ -1,4 +1,4 @@
1
- import { __exports as duotoneDark } from "./index.es204.js";
1
+ import { __exports as duotoneDark } from "./index.es225.js";
2
2
  var hasRequiredDuotoneDark;
3
3
  function requireDuotoneDark() {
4
4
  if (hasRequiredDuotoneDark) return duotoneDark;
@@ -1,4 +1,4 @@
1
- import { __exports as duotoneEarth } from "./index.es205.js";
1
+ import { __exports as duotoneEarth } from "./index.es226.js";
2
2
  var hasRequiredDuotoneEarth;
3
3
  function requireDuotoneEarth() {
4
4
  if (hasRequiredDuotoneEarth) return duotoneEarth;
@@ -1,4 +1,4 @@
1
- import { __exports as duotoneForest } from "./index.es206.js";
1
+ import { __exports as duotoneForest } from "./index.es227.js";
2
2
  var hasRequiredDuotoneForest;
3
3
  function requireDuotoneForest() {
4
4
  if (hasRequiredDuotoneForest) return duotoneForest;
@@ -1,4 +1,4 @@
1
- import { __exports as duotoneLight } from "./index.es207.js";
1
+ import { __exports as duotoneLight } from "./index.es228.js";
2
2
  var hasRequiredDuotoneLight;
3
3
  function requireDuotoneLight() {
4
4
  if (hasRequiredDuotoneLight) return duotoneLight;
@@ -1,6 +1,6 @@
1
1
  import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
- import useTools from "./index.es10.js";
3
2
  import { useThread } from "./index.es6.js";
3
+ import { useTools } from "./index.es10.js";
4
4
  import { getContentString } from "./index.es23.js";
5
5
  import { PanelLeft, MoreVertical, Pencil, Share2, Archive, Trash2 } from "lucide-react";
6
6
  import { useState, useEffect, useRef } from "react";
@@ -9,7 +9,7 @@ function ThreadHistory() {
9
9
  const [searchOpen, setSearchOpen] = useState(false);
10
10
  const [searchQuery, setSearchQuery] = useState("");
11
11
  const { threads, getThreads, setThreadId, setThreads, setThreadsLoading } = useThread();
12
- const { tool } = useTools();
12
+ const { tools } = useTools();
13
13
  useEffect(() => {
14
14
  if (typeof window === "undefined") return;
15
15
  setThreadsLoading(true);
@@ -33,7 +33,7 @@ function ThreadHistory() {
33
33
  className: `flex h-full flex-col border-r border-white/10 bg-zinc transition-all duration-300 ease-in-out ${collapsed ? "w-14" : "w-64"}`,
34
34
  children: [
35
35
  /* @__PURE__ */ jsx("div", { className: "flex h-14 items-center mx-2 border-b border-white/10", children: /* @__PURE__ */ jsx("div", { className: "flex ml-auto cursor-pointer p-2 hover:bg-white/10 rounded-md", children: /* @__PURE__ */ jsx(PanelLeft, { className: "h-5 w-5 text-white/70", onClick: () => setCollapsed((v) => !v) }) }) }),
36
- /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-1 px-2 py-3", children: tool.map((t, index) => {
36
+ /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-1 px-2 py-3", children: tools.map((t, index) => {
37
37
  let handleClick = t.onClick;
38
38
  if (t.label === "New chat") {
39
39
  handleClick = () => setThreadId(null);
@@ -1 +1 @@
1
- {"version":3,"file":"index.es16.js","sources":["../src/components/threads/ThreadHistory.tsx"],"sourcesContent":["import useTools from \"@/hooks/useTools\";\nimport { useThread } from \"@/providers/Thread\";\nimport { getContentString } from \"@/utils/utils\";\nimport type { Thread } from \"@langchain/langgraph-sdk\";\nimport {\n Archive,\n MoreVertical,\n PanelLeft,\n Pencil,\n Share2,\n Trash2\n} from \"lucide-react\";\nimport { useEffect, useRef, useState } from \"react\";\n\n// type ThreadHeaderProp = {\n// header?: string\n// }\n\nexport default function ThreadHistory() {\n const [collapsed, setCollapsed] = useState(false);\n const [searchOpen, setSearchOpen] = useState(false);\n const [searchQuery, setSearchQuery] = useState(\"\");\n const { threads, getThreads, setThreadId, setThreads, setThreadsLoading } = useThread();\n const { tool } = useTools();\n\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n setThreadsLoading(true);\n getThreads()\n .then(setThreads)\n .catch(console.error)\n .finally(() => setThreadsLoading(false));\n }, []);\n\n // Filter threads based on search query\n const filteredThreads = threads.filter((t) => {\n if (!searchQuery.trim()) return true;\n\n const searchLower = searchQuery.toLowerCase();\n const threadName = (t.metadata?.name as string) || \"\";\n\n // Check thread name\n if (threadName.toLowerCase().includes(searchLower)) return true;\n\n // Check first message content\n const threadValues = t.values as any;\n if (threadValues?.messages?.[0]) {\n const firstMessageContent = getContentString(threadValues.messages[0].content);\n if (firstMessageContent.toLowerCase().includes(searchLower)) return true;\n }\n\n return false;\n });\n\n return (\n <aside\n className={`flex h-full flex-col border-r border-white/10 bg-zinc transition-all duration-300 ease-in-out ${collapsed ? \"w-14\" : \"w-64\"}`}>\n {/* Top */}\n <div className=\"flex h-14 items-center mx-2 border-b border-white/10\">\n {/* <div className=\"flex mx-auto gap-2\">\n {header}\n </div> */}\n <div className=\"flex ml-auto cursor-pointer p-2 hover:bg-white/10 rounded-md\">\n <PanelLeft className=\"h-5 w-5 text-white/70\" onClick={() => setCollapsed(v => !v)} />\n </div>\n </div>\n\n {/* Primary actions */}\n <div className=\"flex flex-col gap-1 px-2 py-3\">\n\n {tool.map((t, index) => {\n // Override onClick for specific tools\n let handleClick = t.onClick;\n if (t.label === 'New chat') {\n handleClick = () => setThreadId(null);\n } else if (t.label === 'Search') {\n handleClick = () => setSearchOpen(true);\n }\n\n // Show search input instead of search button when searchOpen is true\n if (t.label === 'Search' && !collapsed && searchOpen) {\n return (\n <div key={index} className=\"px-2 py-2\">\n <input\n type=\"text\"\n placeholder=\"Search chats...\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n onBlur={() => {\n if (!searchQuery.trim()) {\n setSearchOpen(false);\n }\n }}\n autoFocus\n className=\"w-full bg-zinc-800 text-white/80 text-sm px-3 py-2 rounded-md outline-none focus:ring-1 focus:ring-zinc-600 placeholder:text-white/40\"\n />\n </div>\n );\n }\n\n return (\n <NavItem \n key={index}\n icon={t.icon} \n label={t.label} \n alt={t.alt}\n collapsed={collapsed} \n onClick={handleClick} \n />\n );\n })}\n </div>\n\n {/* Chats (scrollable) */}\n <div className=\"flex-1 flex flex-col px-2 overflow-hidden\">\n {!collapsed && (\n <>\n <p className=\"mb-2 px-2 text-xs uppercase text-white/40\">\n Your chats {searchQuery && `(${filteredThreads.length})`}\n </p>\n <div className=\"flex-1 space-y-1 overflow-y-auto overflow-x-hidden thread-scrollbar\">\n <ThreadList threads={filteredThreads} />\n </div>\n </>\n )}\n\n </div>\n\n {/* User */}\n {/* <div className=\"border-t border-white/10 p-2\">\n <div className=\"flex items-center justify-center rounded-md p-2 hover:bg-white/10\">\n <User className=\"h-5 w-5 text-white/70\" />\n {!collapsed && (\n <span className=\"ml-2 text-sm text-white/70\">Karthik MP</span>\n )}\n </div>\n </div> */}\n </aside>\n );\n}\n\n/* ---------- Components ---------- */\n\nfunction NavItem({\n icon,\n label,\n alt,\n collapsed,\n onClick\n}: {\n label: string;\n icon?: React.ReactNode;\n alt?: string;\n collapsed: boolean;\n onClick?: () => void;\n}) {\n return (\n <button\n className=\"flex items-center gap-3 rounded-md px-2 py-2\n text-white/70 hover:bg-white/10 cursor-pointer\"\n onClick={onClick}\n title={alt || label}\n >\n <div className=\"h-5 w-5\">{icon}</div>\n {!collapsed && <span className=\"text-sm\">{label}</span>}\n </button>\n );\n}\n\nfunction ThreadList({\n threads,\n onThreadClick,\n}: {\n threads: Thread[];\n onThreadClick?: (threadId: string) => void;\n}) {\n\n const { threadId, setThreadId, deleteThread, updateThread } = useThread();\n const [hoveredThread, setHoveredThread] = useState<string | null>(null);\n const [dropdownThread, setDropdownThread] = useState<string | null>(null);\n const [editingThread, setEditingThread] = useState<string | null>(null);\n const [editValue, setEditValue] = useState(\"\");\n const dropdownRef = useRef<HTMLDivElement>(null);\n const editInputRef = useRef<HTMLInputElement>(null);\n\n // Close dropdown when clicking outside\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) {\n setDropdownThread(null);\n }\n };\n\n if (dropdownThread) {\n document.addEventListener('mousedown', handleClickOutside);\n }\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [dropdownThread]);\n\n // Focus input when editing starts\n useEffect(() => {\n if (editingThread && editInputRef.current) {\n editInputRef.current.focus();\n editInputRef.current.select();\n }\n }, [editingThread]);\n\n const handleRenameSubmit = async (thread: Thread) => {\n const threadValues = thread.values as any;\n const originalName = thread.metadata?.name ||\n (threadValues?.messages?.[0] ? getContentString(threadValues.messages[0].content) : thread.thread_id);\n\n if (editValue.trim() && editValue.trim() !== originalName) {\n try {\n await updateThread(thread.thread_id, {\n ...thread.metadata,\n name: editValue.trim()\n });\n } catch (error) {\n console.error('Failed to rename thread:', error);\n alert('Failed to rename thread. Please try again.');\n }\n }\n setEditingThread(null);\n setEditValue(\"\");\n };\n\n const handleRenameCancel = () => {\n setEditingThread(null);\n setEditValue(\"\");\n };\n\n const handleMenuAction = async (action: string, thread: Thread) => {\n setDropdownThread(null);\n\n try {\n switch (action) {\n case 'rename': {\n const threadValues = thread.values as any;\n const currentName: string = (thread.metadata?.name as string) ||\n (threadValues?.messages?.[0] ? getContentString(threadValues.messages[0].content) : thread.thread_id);\n setEditValue(currentName);\n setEditingThread(thread.thread_id);\n break;\n }\n case 'share': {\n // Create shareable link with current URL + thread ID\n const shareableLink = `${window.location.origin}${window.location.pathname}?thread=${thread.thread_id}`;\n await navigator.clipboard.writeText(shareableLink);\n alert('Thread link copied to clipboard!');\n break;\n }\n case 'archive': {\n await updateThread(thread.thread_id, {\n ...thread.metadata,\n archived: true\n });\n break;\n }\n case 'delete': {\n if (confirm('Are you sure you want to delete this thread? This action cannot be undone.')) {\n await deleteThread(thread.thread_id);\n }\n break;\n }\n }\n } catch (error) {\n console.error(`Failed to ${action} thread:`, error);\n alert(`Failed to ${action} thread. Please try again.`);\n }\n };\n\n return (\n <div className=\"flex h-full w-full flex-col items-start justify-start gap-2\">\n {threads.map((t) => {\n let itemText: string = (t.metadata?.name as string) || t.thread_id;\n if (\n !t.metadata?.name &&\n typeof t.values === \"object\" &&\n t.values &&\n \"messages\" in t.values &&\n Array.isArray((t.values as any).messages) &&\n (t.values as any).messages?.length > 0\n ) {\n const firstMessage = (t.values as any).messages[0];\n itemText = getContentString(firstMessage.content);\n }\n\n const isEditing = editingThread === t.thread_id;\n\n return (\n <div\n key={t.thread_id}\n className=\"relative w-full rounded-xl hover:bg-zinc-800 group\"\n onMouseEnter={() => setHoveredThread(t.thread_id)}\n onMouseLeave={() => setHoveredThread(null)}\n >\n <div className=\"flex items-center gap-1 px-2 py-1\">\n {isEditing ? (\n <input\n ref={editInputRef}\n type=\"text\"\n value={editValue}\n onChange={(e) => setEditValue(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n handleRenameSubmit(t);\n } else if (e.key === 'Escape') {\n handleRenameCancel();\n }\n }}\n onBlur={() => handleRenameSubmit(t)}\n className=\"flex-1 bg-zinc-700 text-white/80 text-sm px-2 py-1 rounded outline-none focus:ring-1 focus:ring-zinc-500\"\n />\n ) : (\n <button\n className=\"flex-1 items-start justify-start text-left font-normal min-w-0\"\n onClick={(e) => {\n e.preventDefault();\n onThreadClick?.(t.thread_id);\n if (t.thread_id === threadId) return;\n setThreadId(t.thread_id);\n }}\n >\n <p className=\"truncate text-ellipsis text-sm text-white/80\">{itemText}</p>\n </button>\n )}\n\n {!isEditing && hoveredThread === t.thread_id && (\n <button\n className=\"flex-shrink-0 p-1 rounded-md hover:bg-zinc-700\"\n onClick={(e) => {\n e.stopPropagation();\n setDropdownThread(dropdownThread === t.thread_id ? null : t.thread_id);\n }}\n >\n <MoreVertical className=\"h-4 w-4 text-white/60\" />\n </button>\n )}\n </div>\n\n {/* Dropdown Menu */}\n {dropdownThread === t.thread_id && (\n <div\n ref={dropdownRef}\n className=\"absolute right-2 top-8 z-50 w-48 rounded-md bg-zinc-800 border border-white/10 shadow-lg py-1\">\n <button\n className=\"w-full flex items-center gap-2 px-3 py-2 text-sm text-white/80 hover:bg-zinc-700\"\n onClick={() => handleMenuAction('rename', t)}\n >\n <Pencil className=\"h-4 w-4\" />\n Rename\n </button>\n <button\n className=\"w-full flex items-center gap-2 px-3 py-2 text-sm text-white/80 hover:bg-zinc-700\"\n onClick={() => handleMenuAction('share', t)}\n >\n <Share2 className=\"h-4 w-4\" />\n Share\n </button>\n <button\n className=\"w-full flex items-center gap-2 px-3 py-2 text-sm text-white/80 hover:bg-zinc-700\"\n onClick={() => handleMenuAction('archive', t)}\n >\n <Archive className=\"h-4 w-4\" />\n Archive\n </button>\n <div className=\"my-1 border-t border-white/10\" />\n <button\n className=\"w-full flex items-center gap-2 px-3 py-2 text-sm text-red-400 hover:bg-zinc-700\"\n onClick={() => handleMenuAction('delete', t)}\n >\n <Trash2 className=\"h-4 w-4\" />\n Delete\n </button>\n </div>\n )}\n </div>\n );\n })}\n </div>\n );\n}"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.es16.js","sources":["../src/components/threads/ThreadHistory.tsx"],"sourcesContent":["import { useThread } from \"@/providers/Thread\";\nimport { useTools } from \"@/providers/ToolsProvider\";\nimport { getContentString } from \"@/utils/utils\";\nimport type { Thread } from \"@langchain/langgraph-sdk\";\nimport {\n Archive,\n MoreVertical,\n PanelLeft,\n Pencil,\n Share2,\n Trash2\n} from \"lucide-react\";\nimport { useEffect, useRef, useState } from \"react\";\n\n// type ThreadHeaderProp = {\n// header?: string\n// }\n\nexport default function ThreadHistory() {\n const [collapsed, setCollapsed] = useState(false);\n const [searchOpen, setSearchOpen] = useState(false);\n const [searchQuery, setSearchQuery] = useState(\"\");\n const { threads, getThreads, setThreadId, setThreads, setThreadsLoading } = useThread();\n const { tools } = useTools();\n\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n setThreadsLoading(true);\n getThreads()\n .then(setThreads)\n .catch(console.error)\n .finally(() => setThreadsLoading(false));\n }, []);\n\n // Filter threads based on search query\n const filteredThreads = threads.filter((t) => {\n if (!searchQuery.trim()) return true;\n\n const searchLower = searchQuery.toLowerCase();\n const threadName = (t.metadata?.name as string) || \"\";\n\n // Check thread name\n if (threadName.toLowerCase().includes(searchLower)) return true;\n\n // Check first message content\n const threadValues = t.values as any;\n if (threadValues?.messages?.[0]) {\n const firstMessageContent = getContentString(threadValues.messages[0].content);\n if (firstMessageContent.toLowerCase().includes(searchLower)) return true;\n }\n\n return false;\n });\n\n return (\n <aside\n className={`flex h-full flex-col border-r border-white/10 bg-zinc transition-all duration-300 ease-in-out ${collapsed ? \"w-14\" : \"w-64\"}`}>\n {/* Top */}\n <div className=\"flex h-14 items-center mx-2 border-b border-white/10\">\n {/* <div className=\"flex mx-auto gap-2\">\n {header}\n </div> */}\n <div className=\"flex ml-auto cursor-pointer p-2 hover:bg-white/10 rounded-md\">\n <PanelLeft className=\"h-5 w-5 text-white/70\" onClick={() => setCollapsed(v => !v)} />\n </div>\n </div>\n\n {/* Primary actions */}\n <div className=\"flex flex-col gap-1 px-2 py-3\">\n\n {tools.map((t, index) => {\n // Override onClick for specific tools\n let handleClick = t.onClick;\n if (t.label === 'New chat') {\n handleClick = () => setThreadId(null);\n } else if (t.label === 'Search') {\n handleClick = () => setSearchOpen(true);\n }\n\n // Show search input instead of search button when searchOpen is true\n if (t.label === 'Search' && !collapsed && searchOpen) {\n return (\n <div key={index} className=\"px-2 py-2\">\n <input\n type=\"text\"\n placeholder=\"Search chats...\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n onBlur={() => {\n if (!searchQuery.trim()) {\n setSearchOpen(false);\n }\n }}\n autoFocus\n className=\"w-full bg-zinc-800 text-white/80 text-sm px-3 py-2 rounded-md outline-none focus:ring-1 focus:ring-zinc-600 placeholder:text-white/40\"\n />\n </div>\n );\n }\n\n return (\n <NavItem \n key={index}\n icon={t.icon} \n label={t.label} \n alt={t.alt}\n collapsed={collapsed} \n onClick={handleClick} \n />\n );\n })}\n </div>\n\n {/* Chats (scrollable) */}\n <div className=\"flex-1 flex flex-col px-2 overflow-hidden\">\n {!collapsed && (\n <>\n <p className=\"mb-2 px-2 text-xs uppercase text-white/40\">\n Your chats {searchQuery && `(${filteredThreads.length})`}\n </p>\n <div className=\"flex-1 space-y-1 overflow-y-auto overflow-x-hidden thread-scrollbar\">\n <ThreadList threads={filteredThreads} />\n </div>\n </>\n )}\n\n </div>\n\n {/* User */}\n {/* <div className=\"border-t border-white/10 p-2\">\n <div className=\"flex items-center justify-center rounded-md p-2 hover:bg-white/10\">\n <User className=\"h-5 w-5 text-white/70\" />\n {!collapsed && (\n <span className=\"ml-2 text-sm text-white/70\">Karthik MP</span>\n )}\n </div>\n </div> */}\n </aside>\n );\n}\n\n/* ---------- Components ---------- */\n\nfunction NavItem({\n icon,\n label,\n alt,\n collapsed,\n onClick\n}: {\n label: string;\n icon?: React.ReactNode;\n alt?: string;\n collapsed: boolean;\n onClick?: () => void;\n}) {\n return (\n <button\n className=\"flex items-center gap-3 rounded-md px-2 py-2\n text-white/70 hover:bg-white/10 cursor-pointer\"\n onClick={onClick}\n title={alt || label}\n >\n <div className=\"h-5 w-5\">{icon}</div>\n {!collapsed && <span className=\"text-sm\">{label}</span>}\n </button>\n );\n}\n\nfunction ThreadList({\n threads,\n onThreadClick,\n}: {\n threads: Thread[];\n onThreadClick?: (threadId: string) => void;\n}) {\n\n const { threadId, setThreadId, deleteThread, updateThread } = useThread();\n const [hoveredThread, setHoveredThread] = useState<string | null>(null);\n const [dropdownThread, setDropdownThread] = useState<string | null>(null);\n const [editingThread, setEditingThread] = useState<string | null>(null);\n const [editValue, setEditValue] = useState(\"\");\n const dropdownRef = useRef<HTMLDivElement>(null);\n const editInputRef = useRef<HTMLInputElement>(null);\n\n // Close dropdown when clicking outside\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) {\n setDropdownThread(null);\n }\n };\n\n if (dropdownThread) {\n document.addEventListener('mousedown', handleClickOutside);\n }\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [dropdownThread]);\n\n // Focus input when editing starts\n useEffect(() => {\n if (editingThread && editInputRef.current) {\n editInputRef.current.focus();\n editInputRef.current.select();\n }\n }, [editingThread]);\n\n const handleRenameSubmit = async (thread: Thread) => {\n const threadValues = thread.values as any;\n const originalName = thread.metadata?.name ||\n (threadValues?.messages?.[0] ? getContentString(threadValues.messages[0].content) : thread.thread_id);\n\n if (editValue.trim() && editValue.trim() !== originalName) {\n try {\n await updateThread(thread.thread_id, {\n ...thread.metadata,\n name: editValue.trim()\n });\n } catch (error) {\n console.error('Failed to rename thread:', error);\n alert('Failed to rename thread. Please try again.');\n }\n }\n setEditingThread(null);\n setEditValue(\"\");\n };\n\n const handleRenameCancel = () => {\n setEditingThread(null);\n setEditValue(\"\");\n };\n\n const handleMenuAction = async (action: string, thread: Thread) => {\n setDropdownThread(null);\n\n try {\n switch (action) {\n case 'rename': {\n const threadValues = thread.values as any;\n const currentName: string = (thread.metadata?.name as string) ||\n (threadValues?.messages?.[0] ? getContentString(threadValues.messages[0].content) : thread.thread_id);\n setEditValue(currentName);\n setEditingThread(thread.thread_id);\n break;\n }\n case 'share': {\n // Create shareable link with current URL + thread ID\n const shareableLink = `${window.location.origin}${window.location.pathname}?thread=${thread.thread_id}`;\n await navigator.clipboard.writeText(shareableLink);\n alert('Thread link copied to clipboard!');\n break;\n }\n case 'archive': {\n await updateThread(thread.thread_id, {\n ...thread.metadata,\n archived: true\n });\n break;\n }\n case 'delete': {\n if (confirm('Are you sure you want to delete this thread? This action cannot be undone.')) {\n await deleteThread(thread.thread_id);\n }\n break;\n }\n }\n } catch (error) {\n console.error(`Failed to ${action} thread:`, error);\n alert(`Failed to ${action} thread. Please try again.`);\n }\n };\n\n return (\n <div className=\"flex h-full w-full flex-col items-start justify-start gap-2\">\n {threads.map((t) => {\n let itemText: string = (t.metadata?.name as string) || t.thread_id;\n if (\n !t.metadata?.name &&\n typeof t.values === \"object\" &&\n t.values &&\n \"messages\" in t.values &&\n Array.isArray((t.values as any).messages) &&\n (t.values as any).messages?.length > 0\n ) {\n const firstMessage = (t.values as any).messages[0];\n itemText = getContentString(firstMessage.content);\n }\n\n const isEditing = editingThread === t.thread_id;\n\n return (\n <div\n key={t.thread_id}\n className=\"relative w-full rounded-xl hover:bg-zinc-800 group\"\n onMouseEnter={() => setHoveredThread(t.thread_id)}\n onMouseLeave={() => setHoveredThread(null)}\n >\n <div className=\"flex items-center gap-1 px-2 py-1\">\n {isEditing ? (\n <input\n ref={editInputRef}\n type=\"text\"\n value={editValue}\n onChange={(e) => setEditValue(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n handleRenameSubmit(t);\n } else if (e.key === 'Escape') {\n handleRenameCancel();\n }\n }}\n onBlur={() => handleRenameSubmit(t)}\n className=\"flex-1 bg-zinc-700 text-white/80 text-sm px-2 py-1 rounded outline-none focus:ring-1 focus:ring-zinc-500\"\n />\n ) : (\n <button\n className=\"flex-1 items-start justify-start text-left font-normal min-w-0\"\n onClick={(e) => {\n e.preventDefault();\n onThreadClick?.(t.thread_id);\n if (t.thread_id === threadId) return;\n setThreadId(t.thread_id);\n }}\n >\n <p className=\"truncate text-ellipsis text-sm text-white/80\">{itemText}</p>\n </button>\n )}\n\n {!isEditing && hoveredThread === t.thread_id && (\n <button\n className=\"flex-shrink-0 p-1 rounded-md hover:bg-zinc-700\"\n onClick={(e) => {\n e.stopPropagation();\n setDropdownThread(dropdownThread === t.thread_id ? null : t.thread_id);\n }}\n >\n <MoreVertical className=\"h-4 w-4 text-white/60\" />\n </button>\n )}\n </div>\n\n {/* Dropdown Menu */}\n {dropdownThread === t.thread_id && (\n <div\n ref={dropdownRef}\n className=\"absolute right-2 top-8 z-50 w-48 rounded-md bg-zinc-800 border border-white/10 shadow-lg py-1\">\n <button\n className=\"w-full flex items-center gap-2 px-3 py-2 text-sm text-white/80 hover:bg-zinc-700\"\n onClick={() => handleMenuAction('rename', t)}\n >\n <Pencil className=\"h-4 w-4\" />\n Rename\n </button>\n <button\n className=\"w-full flex items-center gap-2 px-3 py-2 text-sm text-white/80 hover:bg-zinc-700\"\n onClick={() => handleMenuAction('share', t)}\n >\n <Share2 className=\"h-4 w-4\" />\n Share\n </button>\n <button\n className=\"w-full flex items-center gap-2 px-3 py-2 text-sm text-white/80 hover:bg-zinc-700\"\n onClick={() => handleMenuAction('archive', t)}\n >\n <Archive className=\"h-4 w-4\" />\n Archive\n </button>\n <div className=\"my-1 border-t border-white/10\" />\n <button\n className=\"w-full flex items-center gap-2 px-3 py-2 text-sm text-red-400 hover:bg-zinc-700\"\n onClick={() => handleMenuAction('delete', t)}\n >\n <Trash2 className=\"h-4 w-4\" />\n Delete\n </button>\n </div>\n )}\n </div>\n );\n })}\n </div>\n );\n}"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { __exports as duotoneSea } from "./index.es208.js";
1
+ import { __exports as duotoneSea } from "./index.es229.js";
2
2
  var hasRequiredDuotoneSea;
3
3
  function requireDuotoneSea() {
4
4
  if (hasRequiredDuotoneSea) return duotoneSea;
@@ -1,4 +1,4 @@
1
- import { __exports as duotoneSpace } from "./index.es209.js";
1
+ import { __exports as duotoneSpace } from "./index.es230.js";
2
2
  var hasRequiredDuotoneSpace;
3
3
  function requireDuotoneSpace() {
4
4
  if (hasRequiredDuotoneSpace) return duotoneSpace;
@@ -1,4 +1,4 @@
1
- import { __exports as ghcolors } from "./index.es210.js";
1
+ import { __exports as ghcolors } from "./index.es231.js";
2
2
  var hasRequiredGhcolors;
3
3
  function requireGhcolors() {
4
4
  if (hasRequiredGhcolors) return ghcolors;
@@ -1,4 +1,4 @@
1
- import { __exports as gruvboxDark } from "./index.es211.js";
1
+ import { __exports as gruvboxDark } from "./index.es232.js";
2
2
  var hasRequiredGruvboxDark;
3
3
  function requireGruvboxDark() {
4
4
  if (hasRequiredGruvboxDark) return gruvboxDark;
@@ -1,4 +1,4 @@
1
- import { __exports as gruvboxLight } from "./index.es212.js";
1
+ import { __exports as gruvboxLight } from "./index.es233.js";
2
2
  var hasRequiredGruvboxLight;
3
3
  function requireGruvboxLight() {
4
4
  if (hasRequiredGruvboxLight) return gruvboxLight;
@@ -1,4 +1,4 @@
1
- import { __exports as holiTheme } from "./index.es213.js";
1
+ import { __exports as holiTheme } from "./index.es234.js";
2
2
  var hasRequiredHoliTheme;
3
3
  function requireHoliTheme() {
4
4
  if (hasRequiredHoliTheme) return holiTheme;
@@ -1,4 +1,4 @@
1
- import { __exports as hopscotch } from "./index.es214.js";
1
+ import { __exports as hopscotch } from "./index.es235.js";
2
2
  var hasRequiredHopscotch;
3
3
  function requireHopscotch() {
4
4
  if (hasRequiredHopscotch) return hopscotch;
@@ -1,4 +1,4 @@
1
- import { __exports as lucario } from "./index.es215.js";
1
+ import { __exports as lucario } from "./index.es236.js";
2
2
  var hasRequiredLucario;
3
3
  function requireLucario() {
4
4
  if (hasRequiredLucario) return lucario;
@@ -1,4 +1,4 @@
1
- import { __exports as materialDark } from "./index.es216.js";
1
+ import { __exports as materialDark } from "./index.es237.js";
2
2
  var hasRequiredMaterialDark;
3
3
  function requireMaterialDark() {
4
4
  if (hasRequiredMaterialDark) return materialDark;
@@ -1,4 +1,4 @@
1
- import { __exports as materialLight } from "./index.es217.js";
1
+ import { __exports as materialLight } from "./index.es238.js";
2
2
  var hasRequiredMaterialLight;
3
3
  function requireMaterialLight() {
4
4
  if (hasRequiredMaterialLight) return materialLight;
@@ -1,4 +1,4 @@
1
- import { __exports as materialOceanic } from "./index.es218.js";
1
+ import { __exports as materialOceanic } from "./index.es239.js";
2
2
  var hasRequiredMaterialOceanic;
3
3
  function requireMaterialOceanic() {
4
4
  if (hasRequiredMaterialOceanic) return materialOceanic;
@@ -1,4 +1,4 @@
1
- import { __exports as nightOwl } from "./index.es219.js";
1
+ import { __exports as nightOwl } from "./index.es240.js";
2
2
  var hasRequiredNightOwl;
3
3
  function requireNightOwl() {
4
4
  if (hasRequiredNightOwl) return nightOwl;
@@ -1,4 +1,4 @@
1
- import { __exports as nord } from "./index.es220.js";
1
+ import { __exports as nord } from "./index.es241.js";
2
2
  var hasRequiredNord;
3
3
  function requireNord() {
4
4
  if (hasRequiredNord) return nord;
@@ -1,4 +1,4 @@
1
- import { __exports as oneDark } from "./index.es221.js";
1
+ import { __exports as oneDark } from "./index.es242.js";
2
2
  var hasRequiredOneDark;
3
3
  function requireOneDark() {
4
4
  if (hasRequiredOneDark) return oneDark;
@@ -1,4 +1,4 @@
1
- import { __exports as oneLight } from "./index.es222.js";
1
+ import { __exports as oneLight } from "./index.es243.js";
2
2
  var hasRequiredOneLight;
3
3
  function requireOneLight() {
4
4
  if (hasRequiredOneLight) return oneLight;
@@ -1,4 +1,4 @@
1
- import { __exports as pojoaque } from "./index.es223.js";
1
+ import { __exports as pojoaque } from "./index.es244.js";
2
2
  var hasRequiredPojoaque;
3
3
  function requirePojoaque() {
4
4
  if (hasRequiredPojoaque) return pojoaque;
@@ -1,4 +1,4 @@
1
- import { __exports as shadesOfPurple } from "./index.es224.js";
1
+ import { __exports as shadesOfPurple } from "./index.es245.js";
2
2
  var hasRequiredShadesOfPurple;
3
3
  function requireShadesOfPurple() {
4
4
  if (hasRequiredShadesOfPurple) return shadesOfPurple;
@@ -1,4 +1,4 @@
1
- import { __exports as solarizedDarkAtom } from "./index.es225.js";
1
+ import { __exports as solarizedDarkAtom } from "./index.es246.js";
2
2
  var hasRequiredSolarizedDarkAtom;
3
3
  function requireSolarizedDarkAtom() {
4
4
  if (hasRequiredSolarizedDarkAtom) return solarizedDarkAtom;
@@ -1,4 +1,4 @@
1
- import { __exports as synthwave84 } from "./index.es226.js";
1
+ import { __exports as synthwave84 } from "./index.es247.js";
2
2
  var hasRequiredSynthwave84;
3
3
  function requireSynthwave84() {
4
4
  if (hasRequiredSynthwave84) return synthwave84;
@@ -1,4 +1,4 @@
1
- import { __exports as vs } from "./index.es227.js";
1
+ import { __exports as vs } from "./index.es248.js";
2
2
  var hasRequiredVs;
3
3
  function requireVs() {
4
4
  if (hasRequiredVs) return vs;
@@ -1,18 +1,18 @@
1
- import { __export } from "./index.es52.js";
2
- import { parseMimeType, parseBase64DataUrl, isURLContentBlock, isPlainTextContentBlock, isIDContentBlock, isDataContentBlock, isBase64ContentBlock, convertToProviderContentBlock, convertToOpenAIImageBlock } from "./index.es53.js";
3
- import { isMessage } from "./index.es54.js";
4
- import { mergeContent, isOpenAIToolCallArray, isBaseMessageChunk, isBaseMessage, _mergeStatus, _mergeObj, _mergeLists, _mergeDicts, _isMessageFieldWithRole, BaseMessageChunk, BaseMessage } from "./index.es39.js";
5
- import { mergeUsageMetadata, mergeResponseMetadata } from "./index.es55.js";
6
- import { isToolMessageChunk, isToolMessage, isDirectToolOutput, defaultToolCallParser, ToolMessageChunk, ToolMessage } from "./index.es43.js";
7
- import { isChatMessageChunk, isChatMessage, ChatMessageChunk, ChatMessage } from "./index.es56.js";
8
- import { isFunctionMessageChunk, isFunctionMessage, FunctionMessageChunk, FunctionMessage } from "./index.es57.js";
9
- import { isHumanMessageChunk, isHumanMessage, HumanMessageChunk, HumanMessage } from "./index.es40.js";
10
- import { RemoveMessage } from "./index.es44.js";
11
- import { isSystemMessageChunk, isSystemMessage, SystemMessageChunk, SystemMessage } from "./index.es42.js";
12
- import { mapStoredMessagesToChatMessages, mapStoredMessageToChatMessage, mapChatMessagesToStoredMessages, iife, getBufferString, convertToChunk, collapseToolCallChunks, coerceMessageLikeToMessage } from "./index.es45.js";
13
- import { isAIMessageChunk, isAIMessage, AIMessageChunk, AIMessage } from "./index.es41.js";
14
- import { trimMessages, mergeMessageRuns, filterMessages, defaultTextSplitter } from "./index.es58.js";
15
- import { KNOWN_BLOCK_TYPES as KNOWN_BLOCK_TYPES$2 } from "./index.es59.js";
1
+ import { __export } from "./index.es55.js";
2
+ import { parseMimeType, parseBase64DataUrl, isURLContentBlock, isPlainTextContentBlock, isIDContentBlock, isDataContentBlock, isBase64ContentBlock, convertToProviderContentBlock, convertToOpenAIImageBlock } from "./index.es56.js";
3
+ import { isMessage } from "./index.es57.js";
4
+ import { mergeContent, isOpenAIToolCallArray, isBaseMessageChunk, isBaseMessage, _mergeStatus, _mergeObj, _mergeLists, _mergeDicts, _isMessageFieldWithRole, BaseMessageChunk, BaseMessage } from "./index.es43.js";
5
+ import { mergeUsageMetadata, mergeResponseMetadata } from "./index.es58.js";
6
+ import { isToolMessageChunk, isToolMessage, isDirectToolOutput, defaultToolCallParser, ToolMessageChunk, ToolMessage } from "./index.es47.js";
7
+ import { isChatMessageChunk, isChatMessage, ChatMessageChunk, ChatMessage } from "./index.es59.js";
8
+ import { isFunctionMessageChunk, isFunctionMessage, FunctionMessageChunk, FunctionMessage } from "./index.es60.js";
9
+ import { isHumanMessageChunk, isHumanMessage, HumanMessageChunk, HumanMessage } from "./index.es44.js";
10
+ import { RemoveMessage } from "./index.es48.js";
11
+ import { isSystemMessageChunk, isSystemMessage, SystemMessageChunk, SystemMessage } from "./index.es46.js";
12
+ import { mapStoredMessagesToChatMessages, mapStoredMessageToChatMessage, mapChatMessagesToStoredMessages, iife, getBufferString, convertToChunk, collapseToolCallChunks, coerceMessageLikeToMessage } from "./index.es49.js";
13
+ import { isAIMessageChunk, isAIMessage, AIMessageChunk, AIMessage } from "./index.es45.js";
14
+ import { trimMessages, mergeMessageRuns, filterMessages, defaultTextSplitter } from "./index.es61.js";
15
+ import { KNOWN_BLOCK_TYPES as KNOWN_BLOCK_TYPES$2 } from "./index.es62.js";
16
16
  var messages_exports = {};
17
17
  __export(messages_exports, {
18
18
  AIMessage: () => AIMessage,
@@ -1,4 +1,4 @@
1
- import { __exports as vscDarkPlus } from "./index.es228.js";
1
+ import { __exports as vscDarkPlus } from "./index.es249.js";
2
2
  var hasRequiredVscDarkPlus;
3
3
  function requireVscDarkPlus() {
4
4
  if (hasRequiredVscDarkPlus) return vscDarkPlus;
@@ -1,4 +1,4 @@
1
- import { __exports as xonokai } from "./index.es229.js";
1
+ import { __exports as xonokai } from "./index.es250.js";
2
2
  var hasRequiredXonokai;
3
3
  function requireXonokai() {
4
4
  if (hasRequiredXonokai) return xonokai;
@@ -1,4 +1,4 @@
1
- import { __exports as zTouch } from "./index.es230.js";
1
+ import { __exports as zTouch } from "./index.es251.js";
2
2
  var hasRequiredZTouch;
3
3
  function requireZTouch() {
4
4
  if (hasRequiredZTouch) return zTouch;
@@ -1,18 +1,167 @@
1
- var decamelize;
2
- var hasRequiredDecamelize;
3
- function requireDecamelize() {
4
- if (hasRequiredDecamelize) return decamelize;
5
- hasRequiredDecamelize = 1;
6
- decamelize = function(str, sep) {
7
- if (typeof str !== "string") {
8
- throw new TypeError("Expected a string");
1
+ import { __module as eventemitter3 } from "./index.es184.js";
2
+ var hasRequiredEventemitter3;
3
+ function requireEventemitter3() {
4
+ if (hasRequiredEventemitter3) return eventemitter3.exports;
5
+ hasRequiredEventemitter3 = 1;
6
+ (function(module) {
7
+ var has = Object.prototype.hasOwnProperty, prefix = "~";
8
+ function Events() {
9
9
  }
10
- sep = typeof sep === "undefined" ? "_" : sep;
11
- return str.replace(/([a-z\d])([A-Z])/g, "$1" + sep + "$2").replace(/([A-Z]+)([A-Z][a-z\d]+)/g, "$1" + sep + "$2").toLowerCase();
12
- };
13
- return decamelize;
10
+ if (Object.create) {
11
+ Events.prototype = /* @__PURE__ */ Object.create(null);
12
+ if (!new Events().__proto__) prefix = false;
13
+ }
14
+ function EE(fn, context, once) {
15
+ this.fn = fn;
16
+ this.context = context;
17
+ this.once = once || false;
18
+ }
19
+ function addListener(emitter, event, fn, context, once) {
20
+ if (typeof fn !== "function") {
21
+ throw new TypeError("The listener must be a function");
22
+ }
23
+ var listener = new EE(fn, context || emitter, once), evt = prefix ? prefix + event : event;
24
+ if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;
25
+ else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);
26
+ else emitter._events[evt] = [emitter._events[evt], listener];
27
+ return emitter;
28
+ }
29
+ function clearEvent(emitter, evt) {
30
+ if (--emitter._eventsCount === 0) emitter._events = new Events();
31
+ else delete emitter._events[evt];
32
+ }
33
+ function EventEmitter() {
34
+ this._events = new Events();
35
+ this._eventsCount = 0;
36
+ }
37
+ EventEmitter.prototype.eventNames = function eventNames() {
38
+ var names = [], events, name;
39
+ if (this._eventsCount === 0) return names;
40
+ for (name in events = this._events) {
41
+ if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);
42
+ }
43
+ if (Object.getOwnPropertySymbols) {
44
+ return names.concat(Object.getOwnPropertySymbols(events));
45
+ }
46
+ return names;
47
+ };
48
+ EventEmitter.prototype.listeners = function listeners(event) {
49
+ var evt = prefix ? prefix + event : event, handlers = this._events[evt];
50
+ if (!handlers) return [];
51
+ if (handlers.fn) return [handlers.fn];
52
+ for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {
53
+ ee[i] = handlers[i].fn;
54
+ }
55
+ return ee;
56
+ };
57
+ EventEmitter.prototype.listenerCount = function listenerCount(event) {
58
+ var evt = prefix ? prefix + event : event, listeners = this._events[evt];
59
+ if (!listeners) return 0;
60
+ if (listeners.fn) return 1;
61
+ return listeners.length;
62
+ };
63
+ EventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {
64
+ var evt = prefix ? prefix + event : event;
65
+ if (!this._events[evt]) return false;
66
+ var listeners = this._events[evt], len = arguments.length, args, i;
67
+ if (listeners.fn) {
68
+ if (listeners.once) this.removeListener(event, listeners.fn, void 0, true);
69
+ switch (len) {
70
+ case 1:
71
+ return listeners.fn.call(listeners.context), true;
72
+ case 2:
73
+ return listeners.fn.call(listeners.context, a1), true;
74
+ case 3:
75
+ return listeners.fn.call(listeners.context, a1, a2), true;
76
+ case 4:
77
+ return listeners.fn.call(listeners.context, a1, a2, a3), true;
78
+ case 5:
79
+ return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;
80
+ case 6:
81
+ return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;
82
+ }
83
+ for (i = 1, args = new Array(len - 1); i < len; i++) {
84
+ args[i - 1] = arguments[i];
85
+ }
86
+ listeners.fn.apply(listeners.context, args);
87
+ } else {
88
+ var length = listeners.length, j;
89
+ for (i = 0; i < length; i++) {
90
+ if (listeners[i].once) this.removeListener(event, listeners[i].fn, void 0, true);
91
+ switch (len) {
92
+ case 1:
93
+ listeners[i].fn.call(listeners[i].context);
94
+ break;
95
+ case 2:
96
+ listeners[i].fn.call(listeners[i].context, a1);
97
+ break;
98
+ case 3:
99
+ listeners[i].fn.call(listeners[i].context, a1, a2);
100
+ break;
101
+ case 4:
102
+ listeners[i].fn.call(listeners[i].context, a1, a2, a3);
103
+ break;
104
+ default:
105
+ if (!args) for (j = 1, args = new Array(len - 1); j < len; j++) {
106
+ args[j - 1] = arguments[j];
107
+ }
108
+ listeners[i].fn.apply(listeners[i].context, args);
109
+ }
110
+ }
111
+ }
112
+ return true;
113
+ };
114
+ EventEmitter.prototype.on = function on(event, fn, context) {
115
+ return addListener(this, event, fn, context, false);
116
+ };
117
+ EventEmitter.prototype.once = function once(event, fn, context) {
118
+ return addListener(this, event, fn, context, true);
119
+ };
120
+ EventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {
121
+ var evt = prefix ? prefix + event : event;
122
+ if (!this._events[evt]) return this;
123
+ if (!fn) {
124
+ clearEvent(this, evt);
125
+ return this;
126
+ }
127
+ var listeners = this._events[evt];
128
+ if (listeners.fn) {
129
+ if (listeners.fn === fn && (!once || listeners.once) && (!context || listeners.context === context)) {
130
+ clearEvent(this, evt);
131
+ }
132
+ } else {
133
+ for (var i = 0, events = [], length = listeners.length; i < length; i++) {
134
+ if (listeners[i].fn !== fn || once && !listeners[i].once || context && listeners[i].context !== context) {
135
+ events.push(listeners[i]);
136
+ }
137
+ }
138
+ if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;
139
+ else clearEvent(this, evt);
140
+ }
141
+ return this;
142
+ };
143
+ EventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {
144
+ var evt;
145
+ if (event) {
146
+ evt = prefix ? prefix + event : event;
147
+ if (this._events[evt]) clearEvent(this, evt);
148
+ } else {
149
+ this._events = new Events();
150
+ this._eventsCount = 0;
151
+ }
152
+ return this;
153
+ };
154
+ EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
155
+ EventEmitter.prototype.addListener = EventEmitter.prototype.on;
156
+ EventEmitter.prefixed = prefix;
157
+ EventEmitter.EventEmitter = EventEmitter;
158
+ {
159
+ module.exports = EventEmitter;
160
+ }
161
+ })(eventemitter3);
162
+ return eventemitter3.exports;
14
163
  }
15
164
  export {
16
- requireDecamelize as __require
165
+ requireEventemitter3 as __require
17
166
  };
18
167
  //# sourceMappingURL=index.es183.js.map