@cogentic-co/ds 0.6.0 → 0.7.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 (645) hide show
  1. package/dist/animations/animation-ai-analysis.js +4 -3
  2. package/dist/animations/animation-ai-analysis.js.map +1 -1
  3. package/dist/animations/animation-audit-trail.js +2 -1
  4. package/dist/animations/animation-audit-trail.js.map +1 -1
  5. package/dist/animations/animation-compliance-reports.js +4 -3
  6. package/dist/animations/animation-compliance-reports.js.map +1 -1
  7. package/dist/animations/animation-custom-rules.js +4 -3
  8. package/dist/animations/animation-custom-rules.js.map +1 -1
  9. package/dist/animations/animation-jira-ticket.js +3 -2
  10. package/dist/animations/animation-jira-ticket.js.map +1 -1
  11. package/dist/animations/animation-jurisdiction-detection.js +4 -3
  12. package/dist/animations/animation-jurisdiction-detection.js.map +1 -1
  13. package/dist/animations/animation-multi-protocol.js +2 -1
  14. package/dist/animations/animation-multi-protocol.js.map +1 -1
  15. package/dist/animations/animation-pricing-preview.js +4 -3
  16. package/dist/animations/animation-pricing-preview.js.map +1 -1
  17. package/dist/animations/animation-realtime-updates.js +5 -4
  18. package/dist/animations/animation-realtime-updates.js.map +1 -1
  19. package/dist/animations/animation-rest-api.js +2 -1
  20. package/dist/animations/animation-rest-api.js.map +1 -1
  21. package/dist/animations/animation-risk-scoring.js +5 -4
  22. package/dist/animations/animation-risk-scoring.js.map +1 -1
  23. package/dist/animations/animation-sandbox.js +2 -1
  24. package/dist/animations/animation-sandbox.js.map +1 -1
  25. package/dist/animations/animation-scheduled-reports.js +4 -3
  26. package/dist/animations/animation-scheduled-reports.js.map +1 -1
  27. package/dist/animations/animation-secure-messaging.js +3 -2
  28. package/dist/animations/animation-secure-messaging.js.map +1 -1
  29. package/dist/animations/animation-slack-notification.js +3 -2
  30. package/dist/animations/animation-slack-notification.js.map +1 -1
  31. package/dist/animations/animation-sop-mapping.js +2 -1
  32. package/dist/animations/animation-sop-mapping.js.map +1 -1
  33. package/dist/animations/animation-team-routing.js +4 -3
  34. package/dist/animations/animation-team-routing.js.map +1 -1
  35. package/dist/animations/animation-teams-notification.js +3 -2
  36. package/dist/animations/animation-teams-notification.js.map +1 -1
  37. package/dist/animations/animation-vasp-identification.js +4 -3
  38. package/dist/animations/animation-vasp-identification.js.map +1 -1
  39. package/dist/animations/animation-webhooks.js +3 -2
  40. package/dist/animations/animation-webhooks.js.map +1 -1
  41. package/dist/blocks/auth-form.d.ts +1 -1
  42. package/dist/blocks/auth-form.js +7 -4
  43. package/dist/blocks/feature-section.js +3 -2
  44. package/dist/blocks/hero-section.js +3 -2
  45. package/dist/blocks/pricing-table.js +6 -3
  46. package/dist/blocks/stat-card.d.ts +1 -1
  47. package/dist/blocks/stat-card.js +4 -3
  48. package/dist/charts.d.ts +1 -1
  49. package/dist/charts.js +3 -2
  50. package/dist/charts.js.map +1 -1
  51. package/dist/chatbot.js +2 -1
  52. package/dist/chatbot.js.map +1 -1
  53. package/dist/chunk-2BIKWTWM.js +53 -0
  54. package/dist/chunk-2BIKWTWM.js.map +1 -0
  55. package/dist/{chunk-GZNLQE3I.js → chunk-2NMEKWO5.js} +3 -22
  56. package/dist/chunk-2NMEKWO5.js.map +1 -0
  57. package/dist/chunk-2TRJUH3V.js +104 -0
  58. package/dist/chunk-2TRJUH3V.js.map +1 -0
  59. package/dist/chunk-2X37XLH2.js +143 -0
  60. package/dist/chunk-2X37XLH2.js.map +1 -0
  61. package/dist/chunk-37V55OP6.js +191 -0
  62. package/dist/chunk-37V55OP6.js.map +1 -0
  63. package/dist/{chunk-GJAWCIGE.js → chunk-3IXL43BU.js} +4 -3
  64. package/dist/chunk-3IXL43BU.js.map +1 -0
  65. package/dist/chunk-3T2NATO3.js +50 -0
  66. package/dist/chunk-3T2NATO3.js.map +1 -0
  67. package/dist/chunk-455KJGDL.js +185 -0
  68. package/dist/chunk-455KJGDL.js.map +1 -0
  69. package/dist/chunk-466GQKGZ.js +311 -0
  70. package/dist/chunk-466GQKGZ.js.map +1 -0
  71. package/dist/chunk-46UBZI4D.js +119 -0
  72. package/dist/chunk-46UBZI4D.js.map +1 -0
  73. package/dist/chunk-4BLD6BKF.js +53 -0
  74. package/dist/chunk-4BLD6BKF.js.map +1 -0
  75. package/dist/chunk-4FJIJXG4.js +45 -0
  76. package/dist/chunk-4FJIJXG4.js.map +1 -0
  77. package/dist/chunk-4FVHSHHI.js +89 -0
  78. package/dist/chunk-4FVHSHHI.js.map +1 -0
  79. package/dist/chunk-4J2PVZ33.js +43 -0
  80. package/dist/chunk-4J2PVZ33.js.map +1 -0
  81. package/dist/chunk-4VREYXB4.js +136 -0
  82. package/dist/chunk-4VREYXB4.js.map +1 -0
  83. package/dist/chunk-5KYZ5PI5.js +12 -0
  84. package/dist/chunk-5KYZ5PI5.js.map +1 -0
  85. package/dist/{chunk-VWSX75RB.js → chunk-5OVGEXTO.js} +9 -65
  86. package/dist/chunk-5OVGEXTO.js.map +1 -0
  87. package/dist/chunk-5OYIXT3N.js +141 -0
  88. package/dist/chunk-5OYIXT3N.js.map +1 -0
  89. package/dist/chunk-5Q4NJ7WO.js +119 -0
  90. package/dist/chunk-5Q4NJ7WO.js.map +1 -0
  91. package/dist/chunk-5U5NBPQE.js +33 -0
  92. package/dist/chunk-5U5NBPQE.js.map +1 -0
  93. package/dist/chunk-667PB7XR.js +200 -0
  94. package/dist/chunk-667PB7XR.js.map +1 -0
  95. package/dist/chunk-6G52CCDH.js +76 -0
  96. package/dist/chunk-6G52CCDH.js.map +1 -0
  97. package/dist/chunk-6HL4ZHBG.js +16 -0
  98. package/dist/chunk-6HL4ZHBG.js.map +1 -0
  99. package/dist/chunk-6NGFSBVR.js +19 -0
  100. package/dist/chunk-6NGFSBVR.js.map +1 -0
  101. package/dist/chunk-7HOGEYHD.js +99 -0
  102. package/dist/chunk-7HOGEYHD.js.map +1 -0
  103. package/dist/chunk-7IUV2ARF.js +29 -0
  104. package/dist/chunk-7IUV2ARF.js.map +1 -0
  105. package/dist/chunk-7KDR2RWZ.js +121 -0
  106. package/dist/chunk-7KDR2RWZ.js.map +1 -0
  107. package/dist/chunk-7Q7O5LKS.js +155 -0
  108. package/dist/chunk-7Q7O5LKS.js.map +1 -0
  109. package/dist/chunk-7U72AXXX.js +172 -0
  110. package/dist/chunk-7U72AXXX.js.map +1 -0
  111. package/dist/{chunk-LW6GAWZM.js → chunk-AX7QXZKM.js} +10 -35
  112. package/dist/chunk-AX7QXZKM.js.map +1 -0
  113. package/dist/{chunk-XQYFQ6PU.js → chunk-B62UTODY.js} +4 -3
  114. package/dist/chunk-B62UTODY.js.map +1 -0
  115. package/dist/chunk-BB7XG36P.js +98 -0
  116. package/dist/chunk-BB7XG36P.js.map +1 -0
  117. package/dist/chunk-BEU3AQZQ.js +78 -0
  118. package/dist/chunk-BEU3AQZQ.js.map +1 -0
  119. package/dist/chunk-BSKXC3ZQ.js +504 -0
  120. package/dist/chunk-BSKXC3ZQ.js.map +1 -0
  121. package/dist/chunk-BU3PTFMI.js +99 -0
  122. package/dist/chunk-BU3PTFMI.js.map +1 -0
  123. package/dist/chunk-BWCIJWG4.js +20 -0
  124. package/dist/chunk-BWCIJWG4.js.map +1 -0
  125. package/dist/chunk-BYBN4NTY.js +284 -0
  126. package/dist/chunk-BYBN4NTY.js.map +1 -0
  127. package/dist/chunk-CIGS6SLR.js +261 -0
  128. package/dist/chunk-CIGS6SLR.js.map +1 -0
  129. package/dist/{chunk-TAPJEVUA.js → chunk-D3KGHRRC.js} +2 -2
  130. package/dist/{chunk-TAPJEVUA.js.map → chunk-D3KGHRRC.js.map} +1 -1
  131. package/dist/chunk-D75EQCUR.js +81 -0
  132. package/dist/chunk-D75EQCUR.js.map +1 -0
  133. package/dist/chunk-DF7TNBDD.js +84 -0
  134. package/dist/chunk-DF7TNBDD.js.map +1 -0
  135. package/dist/chunk-DO5JNX44.js +123 -0
  136. package/dist/chunk-DO5JNX44.js.map +1 -0
  137. package/dist/chunk-EALF3HQS.js +64 -0
  138. package/dist/chunk-EALF3HQS.js.map +1 -0
  139. package/dist/chunk-EDESQ6HE.js +24 -0
  140. package/dist/chunk-EDESQ6HE.js.map +1 -0
  141. package/dist/{chunk-BNFSXNP2.js → chunk-EN6GS7O4.js} +4 -3
  142. package/dist/chunk-EN6GS7O4.js.map +1 -0
  143. package/dist/chunk-EUAZ42RE.js +32 -0
  144. package/dist/chunk-EUAZ42RE.js.map +1 -0
  145. package/dist/chunk-FDLCCVWI.js +56 -0
  146. package/dist/chunk-FDLCCVWI.js.map +1 -0
  147. package/dist/chunk-FGSFWKIJ.js +60 -0
  148. package/dist/chunk-FGSFWKIJ.js.map +1 -0
  149. package/dist/chunk-FOCJAO6Y.js +167 -0
  150. package/dist/chunk-FOCJAO6Y.js.map +1 -0
  151. package/dist/chunk-FRAFAAPK.js +3 -0
  152. package/dist/chunk-FRAFAAPK.js.map +1 -0
  153. package/dist/chunk-GF3A7RZS.js +118 -0
  154. package/dist/chunk-GF3A7RZS.js.map +1 -0
  155. package/dist/chunk-GHZL6VY5.js +216 -0
  156. package/dist/chunk-GHZL6VY5.js.map +1 -0
  157. package/dist/chunk-GQTDZUUX.js +38 -0
  158. package/dist/chunk-GQTDZUUX.js.map +1 -0
  159. package/dist/chunk-GR6J7HQK.js +24 -0
  160. package/dist/chunk-GR6J7HQK.js.map +1 -0
  161. package/dist/chunk-GV7JJHY5.js +21 -0
  162. package/dist/chunk-GV7JJHY5.js.map +1 -0
  163. package/dist/chunk-H4PJG7O3.js +193 -0
  164. package/dist/chunk-H4PJG7O3.js.map +1 -0
  165. package/dist/chunk-H4T5OTVO.js +83 -0
  166. package/dist/chunk-H4T5OTVO.js.map +1 -0
  167. package/dist/chunk-H5JU3APN.js +36 -0
  168. package/dist/chunk-H5JU3APN.js.map +1 -0
  169. package/dist/chunk-H6BQJNUX.js +39 -0
  170. package/dist/chunk-H6BQJNUX.js.map +1 -0
  171. package/dist/chunk-HK73AOFX.js +646 -0
  172. package/dist/chunk-HK73AOFX.js.map +1 -0
  173. package/dist/chunk-IKY6E2H6.js +38 -0
  174. package/dist/chunk-IKY6E2H6.js.map +1 -0
  175. package/dist/chunk-IVPZ37VC.js +95 -0
  176. package/dist/chunk-IVPZ37VC.js.map +1 -0
  177. package/dist/chunk-J7CT7LH6.js +22 -0
  178. package/dist/chunk-J7CT7LH6.js.map +1 -0
  179. package/dist/chunk-JCJCCQLD.js +182 -0
  180. package/dist/chunk-JCJCCQLD.js.map +1 -0
  181. package/dist/chunk-K4H74FZT.js +43 -0
  182. package/dist/chunk-K4H74FZT.js.map +1 -0
  183. package/dist/chunk-KB665WXG.js +62 -0
  184. package/dist/chunk-KB665WXG.js.map +1 -0
  185. package/dist/chunk-KCPMWAQJ.js +71 -0
  186. package/dist/chunk-KCPMWAQJ.js.map +1 -0
  187. package/dist/chunk-KI4SRSCR.js +83 -0
  188. package/dist/chunk-KI4SRSCR.js.map +1 -0
  189. package/dist/chunk-KKKVOC6T.js +68 -0
  190. package/dist/chunk-KKKVOC6T.js.map +1 -0
  191. package/dist/chunk-KLOBSEH3.js +32 -0
  192. package/dist/chunk-KLOBSEH3.js.map +1 -0
  193. package/dist/{chunk-4NEQV6H2.js → chunk-KX3W7BKP.js} +4 -3
  194. package/dist/chunk-KX3W7BKP.js.map +1 -0
  195. package/dist/chunk-L52PKRST.js +15 -0
  196. package/dist/chunk-L52PKRST.js.map +1 -0
  197. package/dist/chunk-LZ7QCH6T.js +151 -0
  198. package/dist/chunk-LZ7QCH6T.js.map +1 -0
  199. package/dist/chunk-MEQYYN4D.js +22 -0
  200. package/dist/chunk-MEQYYN4D.js.map +1 -0
  201. package/dist/chunk-MHRCB42B.js +24 -0
  202. package/dist/chunk-MHRCB42B.js.map +1 -0
  203. package/dist/chunk-N4YLACF7.js +95 -0
  204. package/dist/chunk-N4YLACF7.js.map +1 -0
  205. package/dist/chunk-NDC2EAYA.js +28 -0
  206. package/dist/chunk-NDC2EAYA.js.map +1 -0
  207. package/dist/chunk-NN2YBLVZ.js +38 -0
  208. package/dist/chunk-NN2YBLVZ.js.map +1 -0
  209. package/dist/chunk-NPIDODOZ.js +100 -0
  210. package/dist/chunk-NPIDODOZ.js.map +1 -0
  211. package/dist/chunk-NSRUYLBC.js +65 -0
  212. package/dist/chunk-NSRUYLBC.js.map +1 -0
  213. package/dist/chunk-NUZM7GDQ.js +49 -0
  214. package/dist/chunk-NUZM7GDQ.js.map +1 -0
  215. package/dist/chunk-O6QB2KVL.js +86 -0
  216. package/dist/chunk-O6QB2KVL.js.map +1 -0
  217. package/dist/chunk-OAVWHBUD.js +250 -0
  218. package/dist/chunk-OAVWHBUD.js.map +1 -0
  219. package/dist/chunk-OG7CCUKC.js +45 -0
  220. package/dist/chunk-OG7CCUKC.js.map +1 -0
  221. package/dist/chunk-PKGKB7JG.js +20 -0
  222. package/dist/chunk-PKGKB7JG.js.map +1 -0
  223. package/dist/chunk-QCY3TBJU.js +130 -0
  224. package/dist/chunk-QCY3TBJU.js.map +1 -0
  225. package/dist/chunk-QTHRRLHF.js +89 -0
  226. package/dist/chunk-QTHRRLHF.js.map +1 -0
  227. package/dist/chunk-REBDYEZX.js +67 -0
  228. package/dist/chunk-REBDYEZX.js.map +1 -0
  229. package/dist/chunk-RI7KG3TF.js +87 -0
  230. package/dist/chunk-RI7KG3TF.js.map +1 -0
  231. package/dist/{chunk-RXV2XUDZ.js → chunk-SLSJ6OOL.js} +2 -2
  232. package/dist/{chunk-RXV2XUDZ.js.map → chunk-SLSJ6OOL.js.map} +1 -1
  233. package/dist/chunk-ST22RZYN.js +122 -0
  234. package/dist/chunk-ST22RZYN.js.map +1 -0
  235. package/dist/chunk-SZFIXV43.js +3 -0
  236. package/dist/chunk-SZFIXV43.js.map +1 -0
  237. package/dist/chunk-TJVE6LDU.js +205 -0
  238. package/dist/chunk-TJVE6LDU.js.map +1 -0
  239. package/dist/chunk-TVGQEQOW.js +83 -0
  240. package/dist/chunk-TVGQEQOW.js.map +1 -0
  241. package/dist/chunk-U37L3S2U.js +22 -0
  242. package/dist/chunk-U37L3S2U.js.map +1 -0
  243. package/dist/chunk-UAFRUBYX.js +42 -0
  244. package/dist/chunk-UAFRUBYX.js.map +1 -0
  245. package/dist/chunk-UAXOFYFR.js +37 -0
  246. package/dist/chunk-UAXOFYFR.js.map +1 -0
  247. package/dist/{chunk-7HRPF2N2.js → chunk-UIDMLHT7.js} +5 -4
  248. package/dist/chunk-UIDMLHT7.js.map +1 -0
  249. package/dist/chunk-V43Q47PK.js +28 -0
  250. package/dist/chunk-V43Q47PK.js.map +1 -0
  251. package/dist/chunk-VUKVUFHU.js +237 -0
  252. package/dist/chunk-VUKVUFHU.js.map +1 -0
  253. package/dist/{chunk-CG5JA7FM.js → chunk-VWZTLFXK.js} +4 -3
  254. package/dist/chunk-VWZTLFXK.js.map +1 -0
  255. package/dist/chunk-VY2ZHEY2.js +170 -0
  256. package/dist/chunk-VY2ZHEY2.js.map +1 -0
  257. package/dist/chunk-WGFU2D4A.js +63 -0
  258. package/dist/chunk-WGFU2D4A.js.map +1 -0
  259. package/dist/chunk-WJRJBMFN.js +22 -0
  260. package/dist/chunk-WJRJBMFN.js.map +1 -0
  261. package/dist/chunk-X5R5H4TO.js +36 -0
  262. package/dist/chunk-X5R5H4TO.js.map +1 -0
  263. package/dist/{chunk-6RWCZUAD.js → chunk-XAIRLU4F.js} +3 -3
  264. package/dist/{chunk-6RWCZUAD.js.map → chunk-XAIRLU4F.js.map} +1 -1
  265. package/dist/chunk-XCZNB4NP.js +86 -0
  266. package/dist/chunk-XCZNB4NP.js.map +1 -0
  267. package/dist/chunk-XWCSV3E4.js +263 -0
  268. package/dist/chunk-XWCSV3E4.js.map +1 -0
  269. package/dist/chunk-XX6UWWUW.js +197 -0
  270. package/dist/chunk-XX6UWWUW.js.map +1 -0
  271. package/dist/chunk-YCBEMVM7.js +145 -0
  272. package/dist/chunk-YCBEMVM7.js.map +1 -0
  273. package/dist/chunk-YEV262XN.js +172 -0
  274. package/dist/chunk-YEV262XN.js.map +1 -0
  275. package/dist/chunk-YJHTT2YB.js +178 -0
  276. package/dist/chunk-YJHTT2YB.js.map +1 -0
  277. package/dist/chunk-YS7M4GKW.js +117 -0
  278. package/dist/chunk-YS7M4GKW.js.map +1 -0
  279. package/dist/chunk-Z2IWEIXF.js +43 -0
  280. package/dist/chunk-Z2IWEIXF.js.map +1 -0
  281. package/dist/chunk-Z3FYDYSM.js +32 -0
  282. package/dist/chunk-Z3FYDYSM.js.map +1 -0
  283. package/dist/chunk-Z3XX65K6.js +84 -0
  284. package/dist/chunk-Z3XX65K6.js.map +1 -0
  285. package/dist/chunk-Z5EHDRCT.js +39 -0
  286. package/dist/chunk-Z5EHDRCT.js.map +1 -0
  287. package/dist/chunk-ZJ7UBKLA.js +21 -0
  288. package/dist/chunk-ZJ7UBKLA.js.map +1 -0
  289. package/dist/components/accordion.d.ts +9 -0
  290. package/dist/components/accordion.js +5 -0
  291. package/dist/components/accordion.js.map +1 -0
  292. package/dist/components/alert-dialog.d.ts +24 -0
  293. package/dist/components/alert-dialog.js +6 -0
  294. package/dist/components/alert-dialog.js.map +1 -0
  295. package/dist/components/alert.d.ts +14 -0
  296. package/dist/components/alert.js +5 -0
  297. package/dist/components/alert.js.map +1 -0
  298. package/dist/components/animated-counter.d.ts +18 -0
  299. package/dist/components/animated-counter.js +4 -0
  300. package/dist/components/animated-counter.js.map +1 -0
  301. package/dist/components/approval-actions.d.ts +30 -0
  302. package/dist/components/approval-actions.js +8 -0
  303. package/dist/components/approval-actions.js.map +1 -0
  304. package/dist/components/ascii-shader.d.ts +8 -0
  305. package/dist/components/ascii-shader.js +5 -0
  306. package/dist/components/ascii-shader.js.map +1 -0
  307. package/dist/components/aspect-ratio.d.ts +7 -0
  308. package/dist/components/aspect-ratio.js +5 -0
  309. package/dist/components/aspect-ratio.js.map +1 -0
  310. package/dist/components/audit-log.d.ts +17 -0
  311. package/dist/components/audit-log.js +5 -0
  312. package/dist/components/audit-log.js.map +1 -0
  313. package/dist/components/avatar.d.ts +14 -0
  314. package/dist/components/avatar.js +5 -0
  315. package/dist/components/avatar.js.map +1 -0
  316. package/dist/components/badge.d.ts +13 -0
  317. package/dist/components/badge.js +5 -0
  318. package/dist/components/badge.js.map +1 -0
  319. package/dist/components/bg-shader.d.ts +18 -0
  320. package/dist/components/bg-shader.js +5 -0
  321. package/dist/components/bg-shader.js.map +1 -0
  322. package/dist/components/blocky-shader.d.ts +8 -0
  323. package/dist/components/blocky-shader.js +5 -0
  324. package/dist/components/blocky-shader.js.map +1 -0
  325. package/dist/components/breadcrumb.d.ts +13 -0
  326. package/dist/components/breadcrumb.js +5 -0
  327. package/dist/components/breadcrumb.js.map +1 -0
  328. package/dist/components/button-group.d.ts +16 -0
  329. package/dist/components/button-group.js +6 -0
  330. package/dist/components/button-group.js.map +1 -0
  331. package/dist/components/button.d.ts +13 -0
  332. package/dist/components/button.js +5 -0
  333. package/dist/components/button.js.map +1 -0
  334. package/dist/components/calendar.d.ts +16 -0
  335. package/dist/components/calendar.js +6 -0
  336. package/dist/components/calendar.js.map +1 -0
  337. package/dist/components/callout.d.ts +12 -0
  338. package/dist/components/callout.js +5 -0
  339. package/dist/components/callout.js.map +1 -0
  340. package/dist/{card-Cumdyf_G.d.ts → components/card.d.ts} +1 -1
  341. package/dist/components/card.js +5 -0
  342. package/dist/components/card.js.map +1 -0
  343. package/dist/components/carousel.d.ts +34 -0
  344. package/dist/components/carousel.js +6 -0
  345. package/dist/components/carousel.js.map +1 -0
  346. package/dist/components/case-card.d.ts +36 -0
  347. package/dist/components/case-card.js +10 -0
  348. package/dist/components/case-card.js.map +1 -0
  349. package/dist/{chart-DkwdRX-i.d.ts → components/chart.d.ts} +1 -1
  350. package/dist/components/chart.js +5 -0
  351. package/dist/components/chart.js.map +1 -0
  352. package/dist/components/checkbox.d.ts +6 -0
  353. package/dist/components/checkbox.js +5 -0
  354. package/dist/components/checkbox.js.map +1 -0
  355. package/dist/components/code-block.d.ts +16 -0
  356. package/dist/components/code-block.js +5 -0
  357. package/dist/components/code-block.js.map +1 -0
  358. package/dist/components/collapsible.d.ts +8 -0
  359. package/dist/components/collapsible.js +4 -0
  360. package/dist/components/collapsible.js.map +1 -0
  361. package/dist/components/combobox.d.ts +27 -0
  362. package/dist/components/combobox.js +9 -0
  363. package/dist/components/combobox.js.map +1 -0
  364. package/dist/components/command.d.ts +23 -0
  365. package/dist/components/command.js +10 -0
  366. package/dist/components/command.js.map +1 -0
  367. package/dist/components/comment-thread.d.ts +18 -0
  368. package/dist/components/comment-thread.js +5 -0
  369. package/dist/components/comment-thread.js.map +1 -0
  370. package/dist/components/compliance-score.d.ts +20 -0
  371. package/dist/components/compliance-score.js +5 -0
  372. package/dist/components/compliance-score.js.map +1 -0
  373. package/dist/components/context-menu.d.ts +32 -0
  374. package/dist/components/context-menu.js +5 -0
  375. package/dist/components/context-menu.js.map +1 -0
  376. package/dist/components/copy-button.d.ts +16 -0
  377. package/dist/components/copy-button.js +6 -0
  378. package/dist/components/copy-button.js.map +1 -0
  379. package/dist/components/data-table.d.ts +84 -0
  380. package/dist/components/data-table.js +18 -0
  381. package/dist/components/data-table.js.map +1 -0
  382. package/dist/components/date-picker.d.ts +58 -0
  383. package/dist/components/date-picker.js +9 -0
  384. package/dist/components/date-picker.js.map +1 -0
  385. package/dist/components/deadline-countdown.d.ts +26 -0
  386. package/dist/components/deadline-countdown.js +5 -0
  387. package/dist/components/deadline-countdown.js.map +1 -0
  388. package/dist/components/description-list.d.ts +9 -0
  389. package/dist/components/description-list.js +5 -0
  390. package/dist/components/description-list.js.map +1 -0
  391. package/dist/components/dialog.d.ts +20 -0
  392. package/dist/components/dialog.js +6 -0
  393. package/dist/components/dialog.js.map +1 -0
  394. package/dist/components/direction.d.ts +2 -0
  395. package/dist/components/direction.js +4 -0
  396. package/dist/components/direction.js.map +1 -0
  397. package/dist/components/drawer.d.ts +16 -0
  398. package/dist/components/drawer.js +5 -0
  399. package/dist/components/drawer.js.map +1 -0
  400. package/dist/components/dropdown-menu.d.ts +32 -0
  401. package/dist/components/dropdown-menu.js +5 -0
  402. package/dist/components/dropdown-menu.js.map +1 -0
  403. package/dist/components/empty.d.ts +15 -0
  404. package/dist/components/empty.js +5 -0
  405. package/dist/components/empty.js.map +1 -0
  406. package/dist/components/entity-header.d.ts +26 -0
  407. package/dist/components/entity-header.js +5 -0
  408. package/dist/components/entity-header.js.map +1 -0
  409. package/dist/components/fade-in.d.ts +11 -0
  410. package/dist/components/fade-in.js +5 -0
  411. package/dist/components/fade-in.js.map +1 -0
  412. package/dist/components/field.d.ts +30 -0
  413. package/dist/components/field.js +7 -0
  414. package/dist/components/field.js.map +1 -0
  415. package/dist/components/file-upload.d.ts +18 -0
  416. package/dist/components/file-upload.js +5 -0
  417. package/dist/components/file-upload.js.map +1 -0
  418. package/dist/components/filter-bar.d.ts +11 -0
  419. package/dist/components/filter-bar.js +5 -0
  420. package/dist/components/filter-bar.js.map +1 -0
  421. package/dist/components/form.d.ts +1 -0
  422. package/dist/components/form.js +4 -0
  423. package/dist/components/form.js.map +1 -0
  424. package/dist/components/grid.d.ts +58 -0
  425. package/dist/components/grid.js +5 -0
  426. package/dist/components/grid.js.map +1 -0
  427. package/dist/components/hover-card.d.ts +8 -0
  428. package/dist/components/hover-card.js +5 -0
  429. package/dist/components/hover-card.js.map +1 -0
  430. package/dist/components/inline-edit.d.ts +16 -0
  431. package/dist/components/inline-edit.js +5 -0
  432. package/dist/components/inline-edit.js.map +1 -0
  433. package/dist/components/input-group.d.ts +23 -0
  434. package/dist/components/input-group.js +8 -0
  435. package/dist/components/input-group.js.map +1 -0
  436. package/dist/components/input-otp.d.ts +14 -0
  437. package/dist/components/input-otp.js +5 -0
  438. package/dist/components/input-otp.js.map +1 -0
  439. package/dist/components/input.d.ts +6 -0
  440. package/dist/components/input.js +5 -0
  441. package/dist/components/input.js.map +1 -0
  442. package/dist/components/item.d.ts +27 -0
  443. package/dist/components/item.js +6 -0
  444. package/dist/components/item.js.map +1 -0
  445. package/dist/components/kbd.d.ts +6 -0
  446. package/dist/components/kbd.js +5 -0
  447. package/dist/components/kbd.js.map +1 -0
  448. package/dist/components/label.d.ts +6 -0
  449. package/dist/components/label.js +5 -0
  450. package/dist/components/label.js.map +1 -0
  451. package/dist/components/loading-overlay.d.ts +12 -0
  452. package/dist/components/loading-overlay.js +6 -0
  453. package/dist/components/loading-overlay.js.map +1 -0
  454. package/dist/components/logo-vasp.d.ts +11 -0
  455. package/dist/components/logo-vasp.js +5 -0
  456. package/dist/components/logo-vasp.js.map +1 -0
  457. package/dist/components/marquee.d.ts +17 -0
  458. package/dist/components/marquee.js +5 -0
  459. package/dist/components/marquee.js.map +1 -0
  460. package/dist/components/menubar.d.ts +32 -0
  461. package/dist/components/menubar.js +6 -0
  462. package/dist/components/menubar.js.map +1 -0
  463. package/dist/components/native-select.d.ts +11 -0
  464. package/dist/components/native-select.js +5 -0
  465. package/dist/components/native-select.js.map +1 -0
  466. package/dist/components/navigation-menu.d.ts +15 -0
  467. package/dist/components/navigation-menu.js +5 -0
  468. package/dist/components/navigation-menu.js.map +1 -0
  469. package/dist/components/number-input.d.ts +14 -0
  470. package/dist/components/number-input.js +7 -0
  471. package/dist/components/number-input.js.map +1 -0
  472. package/dist/components/pagination.d.ts +23 -0
  473. package/dist/components/pagination.js +6 -0
  474. package/dist/components/pagination.js.map +1 -0
  475. package/dist/components/policy-banner.d.ts +21 -0
  476. package/dist/components/policy-banner.js +5 -0
  477. package/dist/components/policy-banner.js.map +1 -0
  478. package/dist/components/popover.d.ts +12 -0
  479. package/dist/components/popover.js +5 -0
  480. package/dist/components/popover.js.map +1 -0
  481. package/dist/components/progress.d.ts +17 -0
  482. package/dist/components/progress.js +5 -0
  483. package/dist/components/progress.js.map +1 -0
  484. package/dist/components/radio-group.d.ts +8 -0
  485. package/dist/components/radio-group.js +5 -0
  486. package/dist/components/radio-group.js.map +1 -0
  487. package/dist/components/resizable.d.ts +10 -0
  488. package/dist/components/resizable.js +5 -0
  489. package/dist/components/resizable.js.map +1 -0
  490. package/dist/components/risk-gauge.d.ts +20 -0
  491. package/dist/components/risk-gauge.js +5 -0
  492. package/dist/components/risk-gauge.js.map +1 -0
  493. package/dist/components/scroll-area.d.ts +7 -0
  494. package/dist/components/scroll-area.js +5 -0
  495. package/dist/components/scroll-area.js.map +1 -0
  496. package/dist/components/search-input.d.ts +17 -0
  497. package/dist/components/search-input.js +7 -0
  498. package/dist/components/search-input.js.map +1 -0
  499. package/dist/components/segmented-control.d.ts +15 -0
  500. package/dist/components/segmented-control.js +5 -0
  501. package/dist/components/segmented-control.js.map +1 -0
  502. package/dist/components/select.d.ts +18 -0
  503. package/dist/components/select.js +5 -0
  504. package/dist/components/select.js.map +1 -0
  505. package/dist/components/separator.d.ts +6 -0
  506. package/dist/components/separator.js +5 -0
  507. package/dist/components/separator.js.map +1 -0
  508. package/dist/components/shadow-root-host.d.ts +16 -0
  509. package/dist/components/shadow-root-host.js +51 -0
  510. package/dist/components/shadow-root-host.js.map +1 -0
  511. package/dist/components/sheet.d.ts +17 -0
  512. package/dist/components/sheet.js +6 -0
  513. package/dist/components/sheet.js.map +1 -0
  514. package/dist/components/sidebar.d.ts +70 -0
  515. package/dist/components/sidebar.js +12 -0
  516. package/dist/components/sidebar.js.map +1 -0
  517. package/dist/components/skeleton.d.ts +5 -0
  518. package/dist/components/skeleton.js +5 -0
  519. package/dist/components/skeleton.js.map +1 -0
  520. package/dist/components/slider.d.ts +6 -0
  521. package/dist/components/slider.js +5 -0
  522. package/dist/components/slider.js.map +1 -0
  523. package/dist/components/sonner.d.ts +6 -0
  524. package/dist/components/sonner.js +4 -0
  525. package/dist/components/sonner.js.map +1 -0
  526. package/dist/components/spinner.d.ts +9 -0
  527. package/dist/components/spinner.js +5 -0
  528. package/dist/components/spinner.js.map +1 -0
  529. package/dist/components/split-pane.d.ts +21 -0
  530. package/dist/components/split-pane.js +6 -0
  531. package/dist/components/split-pane.js.map +1 -0
  532. package/dist/components/stat.d.ts +15 -0
  533. package/dist/components/stat.js +5 -0
  534. package/dist/components/stat.js.map +1 -0
  535. package/dist/components/status-indicator.d.ts +16 -0
  536. package/dist/components/status-indicator.js +5 -0
  537. package/dist/components/status-indicator.js.map +1 -0
  538. package/dist/components/step-progress.d.ts +26 -0
  539. package/dist/components/step-progress.js +5 -0
  540. package/dist/components/step-progress.js.map +1 -0
  541. package/dist/components/streaming-cards.d.ts +16 -0
  542. package/dist/components/streaming-cards.js +66 -0
  543. package/dist/components/streaming-cards.js.map +1 -0
  544. package/dist/components/striped-bar.d.ts +20 -0
  545. package/dist/components/striped-bar.js +6 -0
  546. package/dist/components/striped-bar.js.map +1 -0
  547. package/dist/components/subtle-shader.d.ts +10 -0
  548. package/dist/components/subtle-shader.js +5 -0
  549. package/dist/components/subtle-shader.js.map +1 -0
  550. package/dist/components/switch.d.ts +8 -0
  551. package/dist/components/switch.js +5 -0
  552. package/dist/components/switch.js.map +1 -0
  553. package/dist/components/table.d.ts +13 -0
  554. package/dist/components/table.js +5 -0
  555. package/dist/components/table.js.map +1 -0
  556. package/dist/components/tabs.d.ts +14 -0
  557. package/dist/components/tabs.js +5 -0
  558. package/dist/components/tabs.js.map +1 -0
  559. package/dist/components/tag.d.ts +15 -0
  560. package/dist/components/tag.js +5 -0
  561. package/dist/components/tag.js.map +1 -0
  562. package/dist/components/textarea.d.ts +6 -0
  563. package/dist/components/textarea.js +5 -0
  564. package/dist/components/textarea.js.map +1 -0
  565. package/dist/components/theme-script.d.ts +26 -0
  566. package/dist/components/theme-script.js +4 -0
  567. package/dist/components/theme-script.js.map +1 -0
  568. package/dist/components/timeline.d.ts +13 -0
  569. package/dist/components/timeline.js +5 -0
  570. package/dist/components/timeline.js.map +1 -0
  571. package/dist/components/toggle-group.d.ts +14 -0
  572. package/dist/components/toggle-group.js +6 -0
  573. package/dist/components/toggle-group.js.map +1 -0
  574. package/dist/components/toggle.d.ts +12 -0
  575. package/dist/components/toggle.js +5 -0
  576. package/dist/components/toggle.js.map +1 -0
  577. package/dist/components/tooltip.d.ts +9 -0
  578. package/dist/components/tooltip.js +5 -0
  579. package/dist/components/tooltip.js.map +1 -0
  580. package/dist/components/typewriter.d.ts +25 -0
  581. package/dist/components/typewriter.js +5 -0
  582. package/dist/components/typewriter.js.map +1 -0
  583. package/dist/components/typography.d.ts +26 -0
  584. package/dist/components/typography.js +5 -0
  585. package/dist/components/typography.js.map +1 -0
  586. package/dist/components/visually-hidden.d.ts +6 -0
  587. package/dist/components/visually-hidden.js +5 -0
  588. package/dist/components/visually-hidden.js.map +1 -0
  589. package/dist/components/waffle-chart.d.ts +46 -0
  590. package/dist/components/waffle-chart.js +5 -0
  591. package/dist/components/waffle-chart.js.map +1 -0
  592. package/dist/hooks/use-animation-timer.d.ts +11 -0
  593. package/dist/hooks/use-animation-timer.js +4 -0
  594. package/dist/hooks/use-animation-timer.js.map +1 -0
  595. package/dist/hooks/use-carousel.d.ts +22 -0
  596. package/dist/hooks/use-carousel.js +4 -0
  597. package/dist/hooks/use-carousel.js.map +1 -0
  598. package/dist/hooks/use-clipboard.d.ts +10 -0
  599. package/dist/hooks/use-clipboard.js +4 -0
  600. package/dist/hooks/use-clipboard.js.map +1 -0
  601. package/dist/hooks/use-cycle-index.d.ts +13 -0
  602. package/dist/hooks/use-cycle-index.js +5 -0
  603. package/dist/hooks/use-cycle-index.js.map +1 -0
  604. package/dist/hooks/use-debounce.d.ts +3 -0
  605. package/dist/hooks/use-debounce.js +4 -0
  606. package/dist/hooks/use-debounce.js.map +1 -0
  607. package/dist/hooks/use-disclosure.d.ts +9 -0
  608. package/dist/hooks/use-disclosure.js +4 -0
  609. package/dist/hooks/use-disclosure.js.map +1 -0
  610. package/dist/hooks/use-intersection-observer.d.ts +15 -0
  611. package/dist/hooks/use-intersection-observer.js +4 -0
  612. package/dist/hooks/use-intersection-observer.js.map +1 -0
  613. package/dist/hooks/use-local-storage.d.ts +3 -0
  614. package/dist/hooks/use-local-storage.js +4 -0
  615. package/dist/hooks/use-local-storage.js.map +1 -0
  616. package/dist/hooks/use-media-query.d.ts +3 -0
  617. package/dist/hooks/use-media-query.js +4 -0
  618. package/dist/hooks/use-media-query.js.map +1 -0
  619. package/dist/hooks/use-mobile.d.ts +3 -0
  620. package/dist/hooks/use-mobile.js +4 -0
  621. package/dist/hooks/use-mobile.js.map +1 -0
  622. package/dist/index.d.ts +150 -1499
  623. package/dist/index.js +125 -9475
  624. package/dist/index.js.map +1 -1
  625. package/dist/lib/animation.d.ts +63 -0
  626. package/dist/lib/animation.js +4 -0
  627. package/dist/lib/animation.js.map +1 -0
  628. package/dist/lib/utils.d.ts +6 -0
  629. package/dist/lib/utils.js +4 -0
  630. package/dist/lib/utils.js.map +1 -0
  631. package/dist/shells/app-shell.d.ts +60 -0
  632. package/dist/shells/app-shell.js +18 -0
  633. package/dist/shells/app-shell.js.map +1 -0
  634. package/dist/workflow.js +2 -1
  635. package/dist/workflow.js.map +1 -1
  636. package/package.json +685 -1
  637. package/dist/chunk-4NEQV6H2.js.map +0 -1
  638. package/dist/chunk-7HRPF2N2.js.map +0 -1
  639. package/dist/chunk-BNFSXNP2.js.map +0 -1
  640. package/dist/chunk-CG5JA7FM.js.map +0 -1
  641. package/dist/chunk-GJAWCIGE.js.map +0 -1
  642. package/dist/chunk-GZNLQE3I.js.map +0 -1
  643. package/dist/chunk-LW6GAWZM.js.map +0 -1
  644. package/dist/chunk-VWSX75RB.js.map +0 -1
  645. package/dist/chunk-XQYFQ6PU.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/chatbot/attachments.tsx","../src/chatbot/chain-of-thought.tsx","../src/chatbot/checkpoint.tsx","../src/chatbot/confirmation.tsx","../src/chatbot/context.tsx","../src/chatbot/conversation.tsx","../src/chatbot/inline-citation.tsx","../src/chatbot/message.tsx","../src/chatbot/model-selector.tsx","../src/chatbot/plan.tsx","../src/chatbot/prompt-input.tsx","../src/chatbot/queue.tsx","../src/chatbot/reasoning.tsx","../src/chatbot/shimmer.tsx","../src/chatbot/sources.tsx","../src/chatbot/suggestion.tsx","../src/chatbot/task.tsx","../src/chatbot/tool.tsx"],"names":["jsx","jsxs","X","useState","useCallback","_a","createContext","cva","useContext","next","useEffect","ChevronDown","useRef","Search","Check","useId","Fragment","ExternalLink"],"mappings":"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","file":"chatbot.js","sourcesContent":["\"use client\"\n\nimport { File, FileAudio, FileImage, FileVideo, X } from \"lucide-react\"\nimport type { ComponentProps } from \"react\"\nimport { cn } from \"../lib/utils\"\n\nfunction Attachments({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div data-slot=\"attachments\" className={cn(\"flex flex-wrap gap-2\", className)} {...props} />\n )\n}\n\ntype AttachmentType = \"image\" | \"video\" | \"audio\" | \"file\"\n\nconst typeIcons: Record<AttachmentType, typeof File> = {\n image: FileImage,\n video: FileVideo,\n audio: FileAudio,\n file: File,\n}\n\nfunction Attachment({\n name,\n type = \"file\",\n url,\n onRemove,\n className,\n ...props\n}: ComponentProps<\"div\"> & {\n name: string\n type?: AttachmentType\n url?: string\n onRemove?: () => void\n}) {\n const Icon = typeIcons[type]\n\n return (\n <div\n data-slot=\"attachment\"\n className={cn(\n \"group/attachment relative flex items-center gap-2 rounded-lg border border-border bg-card px-3 py-2\",\n \"text-sm transition-colors\",\n className,\n )}\n {...props}\n >\n {type === \"image\" && url ? (\n <img src={url} alt={name} className=\"size-8 rounded object-cover\" />\n ) : (\n <Icon className=\"size-4 shrink-0 text-muted-foreground\" />\n )}\n <span className=\"min-w-0 truncate text-foreground\">{name}</span>\n {onRemove && (\n <button\n type=\"button\"\n onClick={onRemove}\n aria-label={`Remove ${name}`}\n className=\"ml-1 shrink-0 rounded-full p-0.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground\"\n >\n <X aria-hidden=\"true\" className=\"size-3\" />\n </button>\n )}\n </div>\n )\n}\n\nexport { Attachments, Attachment }\nexport type { AttachmentType }\n","\"use client\"\n\nimport { ChevronDown, Search } from \"lucide-react\"\nimport { type ComponentProps, createContext, useCallback, useContext, useId, useState } from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype ChainOfThoughtContextValue = {\n open: boolean\n toggle: () => void\n contentId: string\n}\n\nconst ChainOfThoughtContext = createContext<ChainOfThoughtContextValue | null>(null)\n\nfunction ChainOfThought({\n defaultOpen = false,\n className,\n children,\n ...props\n}: ComponentProps<\"div\"> & { defaultOpen?: boolean }) {\n const [open, setOpen] = useState(defaultOpen)\n const toggle = useCallback(() => setOpen((o) => !o), [])\n const contentId = useId()\n\n return (\n <ChainOfThoughtContext.Provider value={{ open, toggle, contentId }}>\n <div\n data-slot=\"chain-of-thought\"\n data-state={open ? \"open\" : \"closed\"}\n className={cn(\"rounded-xl border border-border bg-card\", className)}\n {...props}\n >\n {children}\n </div>\n </ChainOfThoughtContext.Provider>\n )\n}\n\nfunction ChainOfThoughtHeader({ className, children, ...props }: ComponentProps<\"button\">) {\n const ctx = useContext(ChainOfThoughtContext)\n if (!ctx) throw new Error(\"ChainOfThoughtHeader must be used within <ChainOfThought>\")\n\n return (\n <button\n data-slot=\"chain-of-thought-header\"\n type=\"button\"\n onClick={ctx.toggle}\n aria-expanded={ctx.open}\n aria-controls={ctx.contentId}\n className={cn(\n \"flex w-full items-center gap-2 px-4 py-3 font-medium text-sm\",\n \"text-muted-foreground transition-colors hover:text-foreground\",\n className,\n )}\n {...props}\n >\n <ChevronDown\n aria-hidden=\"true\"\n className={cn(\n \"size-4 shrink-0 transition-transform duration-200\",\n ctx.open && \"rotate-180\",\n )}\n />\n {children ?? \"Chain of thought\"}\n </button>\n )\n}\n\nfunction ChainOfThoughtContent({ className, ...props }: ComponentProps<\"div\">) {\n const ctx = useContext(ChainOfThoughtContext)\n if (!ctx?.open) return null\n\n return (\n <div\n id={ctx.contentId}\n data-slot=\"chain-of-thought-content\"\n role=\"region\"\n className={cn(\"space-y-3 border-border border-t px-4 py-3\", className)}\n {...props}\n />\n )\n}\n\nfunction ChainOfThoughtStep({\n step,\n status,\n className,\n children,\n ...props\n}: ComponentProps<\"div\"> & {\n step: number\n status?: \"pending\" | \"active\" | \"complete\"\n}) {\n return (\n <div\n data-slot=\"chain-of-thought-step\"\n data-status={status}\n className={cn(\"flex gap-3\", className)}\n {...props}\n >\n <span\n className={cn(\n \"flex size-6 shrink-0 items-center justify-center rounded-full font-bold text-xs\",\n status === \"complete\" && \"bg-primary text-primary-foreground\",\n status === \"active\" && \"bg-primary/20 text-primary ring-2 ring-primary/30\",\n (!status || status === \"pending\") && \"bg-muted text-muted-foreground\",\n )}\n >\n {step}\n </span>\n <div className=\"min-w-0 flex-1 text-foreground text-sm\">{children}</div>\n </div>\n )\n}\n\nfunction ChainOfThoughtSearchResults({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"chain-of-thought-search-results\"\n className={cn(\"space-y-2 pl-9\", className)}\n {...props}\n />\n )\n}\n\nfunction ChainOfThoughtSearchResult({\n title,\n url,\n className,\n ...props\n}: ComponentProps<\"a\"> & { title: string; url: string }) {\n return (\n <a\n data-slot=\"chain-of-thought-search-result\"\n href={url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={cn(\n \"flex items-center gap-2 rounded-lg p-2 text-sm transition-colors hover:bg-muted/50\",\n className,\n )}\n {...props}\n >\n <Search className=\"size-3.5 shrink-0 text-muted-foreground\" />\n <span className=\"truncate text-foreground\">{title}</span>\n </a>\n )\n}\n\nexport {\n ChainOfThought,\n ChainOfThoughtHeader,\n ChainOfThoughtContent,\n ChainOfThoughtStep,\n ChainOfThoughtSearchResults,\n ChainOfThoughtSearchResult,\n}\n","\"use client\"\n\nimport { Bookmark } from \"lucide-react\"\nimport type { ComponentProps, ReactNode } from \"react\"\nimport { cn } from \"../lib/utils\"\n\nfunction Checkpoint({ className, children, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"checkpoint\"\n className={cn(\n \"flex items-center gap-3 rounded-lg border border-border border-dashed bg-muted/30 px-4 py-2.5\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n )\n}\n\nfunction CheckpointIcon({\n icon,\n className,\n ...props\n}: ComponentProps<\"span\"> & { icon?: ReactNode }) {\n return (\n <span\n data-slot=\"checkpoint-icon\"\n className={cn(\"shrink-0 text-muted-foreground\", className)}\n {...props}\n >\n {icon ?? <Bookmark className=\"size-4\" />}\n </span>\n )\n}\n\nfunction CheckpointTrigger({ className, ...props }: ComponentProps<\"button\">) {\n return (\n <button\n data-slot=\"checkpoint-trigger\"\n type=\"button\"\n className={cn(\n \"flex-1 truncate text-left text-muted-foreground text-sm transition-colors hover:text-foreground\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Checkpoint, CheckpointIcon, CheckpointTrigger }\n","\"use client\"\n\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { AlertTriangle, Check, X } from \"lucide-react\"\nimport type { ComponentProps, ReactNode } from \"react\"\nimport { cn } from \"../lib/utils\"\n\nconst confirmationVariants = cva(\"rounded-xl border p-4 space-y-3\", {\n variants: {\n status: {\n pending: \"border-border bg-card\",\n accepted: \"border-emerald-500/30 bg-emerald-500/5\",\n rejected: \"border-red-500/30 bg-red-500/5\",\n },\n },\n defaultVariants: { status: \"pending\" },\n})\n\nfunction Confirmation({\n status = \"pending\",\n className,\n children,\n ...props\n}: ComponentProps<\"div\"> & VariantProps<typeof confirmationVariants>) {\n return (\n <div\n data-slot=\"confirmation\"\n data-status={status}\n role=\"alert\"\n className={cn(confirmationVariants({ status }), className)}\n {...props}\n >\n {children}\n </div>\n )\n}\n\nfunction ConfirmationRequest({\n icon,\n title,\n description,\n className,\n ...props\n}: ComponentProps<\"div\"> & {\n icon?: ReactNode\n title: string\n description?: string\n}) {\n return (\n <div\n data-slot=\"confirmation-request\"\n className={cn(\"flex items-start gap-3\", className)}\n {...props}\n >\n {icon ?? (\n <AlertTriangle aria-hidden=\"true\" className=\"mt-0.5 size-5 shrink-0 text-amber-500\" />\n )}\n <div className=\"min-w-0\">\n <p className=\"font-medium text-foreground text-sm\">{title}</p>\n {description && <p className=\"mt-0.5 text-muted-foreground text-xs\">{description}</p>}\n </div>\n </div>\n )\n}\n\nfunction ConfirmationAccepted({ className, children, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"confirmation-accepted\"\n className={cn(\n \"flex items-center gap-2 text-emerald-600 text-sm dark:text-emerald-400\",\n className,\n )}\n {...props}\n >\n <Check className=\"size-4 shrink-0\" />\n {children ?? \"Approved\"}\n </div>\n )\n}\n\nfunction ConfirmationRejected({ className, children, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"confirmation-rejected\"\n className={cn(\"flex items-center gap-2 text-red-600 text-sm dark:text-red-400\", className)}\n {...props}\n >\n <X className=\"size-4 shrink-0\" />\n {children ?? \"Rejected\"}\n </div>\n )\n}\n\nfunction ConfirmationActions({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"confirmation-actions\"\n className={cn(\"flex items-center gap-2\", className)}\n {...props}\n />\n )\n}\n\nfunction ConfirmationAction({\n variant = \"default\",\n className,\n ...props\n}: ComponentProps<\"button\"> & {\n variant?: \"default\" | \"destructive\"\n}) {\n return (\n <button\n data-slot=\"confirmation-action\"\n type=\"button\"\n className={cn(\n \"inline-flex items-center justify-center rounded-lg px-3 py-1.5 font-medium text-sm transition-colors\",\n variant === \"destructive\"\n ? \"bg-red-500/10 text-red-600 hover:bg-red-500/20 dark:text-red-400\"\n : \"bg-primary text-primary-foreground hover:bg-primary/90\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport {\n Confirmation,\n ConfirmationRequest,\n ConfirmationAccepted,\n ConfirmationRejected,\n ConfirmationActions,\n ConfirmationAction,\n confirmationVariants,\n}\n","\"use client\"\n\nimport { Info } from \"lucide-react\"\nimport type { ComponentProps } from \"react\"\nimport { cn } from \"../lib/utils\"\n\nfunction Context({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"context\"\n className={cn(\"space-y-3 rounded-xl border border-border bg-card p-4\", className)}\n {...props}\n />\n )\n}\n\nfunction ContextHeader({ className, children, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"context-header\"\n className={cn(\"flex items-center gap-2 font-medium text-foreground text-sm\", className)}\n {...props}\n >\n <Info aria-hidden=\"true\" className=\"size-4 shrink-0 text-muted-foreground\" />\n {children ?? \"Context\"}\n </div>\n )\n}\n\nfunction ContextBody({ className, ...props }: ComponentProps<\"div\">) {\n return <div data-slot=\"context-body\" className={cn(\"space-y-2\", className)} {...props} />\n}\n\nfunction ContextUsage({\n label,\n used,\n total,\n className,\n ...props\n}: ComponentProps<\"div\"> & {\n label: string\n used: number\n total: number\n}) {\n const percentage = Math.min(100, Math.round((used / total) * 100))\n const isHigh = percentage > 80\n\n return (\n <div data-slot=\"context-usage\" className={cn(\"space-y-1.5\", className)} {...props}>\n <div className=\"flex items-center justify-between text-xs\">\n <span className=\"text-muted-foreground\">{label}</span>\n <span\n className={cn(\"font-mono tabular-nums\", isHigh ? \"text-amber-500\" : \"text-foreground\")}\n >\n {used.toLocaleString()} / {total.toLocaleString()}\n </span>\n </div>\n <div\n role=\"progressbar\"\n aria-valuenow={used}\n aria-valuemin={0}\n aria-valuemax={total}\n aria-label={label}\n className=\"h-1.5 overflow-hidden rounded-full bg-muted\"\n >\n <div\n className={cn(\n \"h-full rounded-full transition-all duration-300\",\n isHigh ? \"bg-amber-500\" : \"bg-primary\",\n )}\n style={{ width: `${percentage}%` }}\n />\n </div>\n </div>\n )\n}\n\nexport { Context, ContextHeader, ContextBody, ContextUsage }\n","\"use client\"\n\nimport { ArrowDown, Download, MessageSquare } from \"lucide-react\"\nimport {\n type ComponentProps,\n type ReactNode,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\"\nimport { cn } from \"../lib/utils\"\n\n// ---------------------------------------------------------------------------\n// Root — manages auto-scroll to bottom\n// ---------------------------------------------------------------------------\n\nfunction Conversation({ className, children, ...props }: ComponentProps<\"div\">) {\n const ref = useRef<HTMLDivElement>(null)\n const [isAtBottom, setIsAtBottom] = useState(true)\n\n useEffect(() => {\n const el = ref.current\n if (!el) return\n\n function handleScroll() {\n const threshold = 100\n setIsAtBottom(el!.scrollHeight - el!.scrollTop - el!.clientHeight < threshold)\n }\n\n el.addEventListener(\"scroll\", handleScroll, { passive: true })\n return () => el.removeEventListener(\"scroll\", handleScroll)\n }, [])\n\n // Auto-scroll when new content arrives and user is at bottom\n useEffect(() => {\n if (isAtBottom && ref.current) {\n ref.current.scrollTop = ref.current.scrollHeight\n }\n })\n\n const scrollToBottom = useCallback(() => {\n ref.current?.scrollTo({ top: ref.current.scrollHeight, behavior: \"smooth\" })\n }, [])\n\n return (\n <div data-slot=\"conversation\" className={cn(\"relative flex flex-col\", className)} {...props}>\n <div ref={ref} role=\"log\" aria-live=\"polite\" className=\"flex-1 overflow-y-auto\">\n {children}\n </div>\n {!isAtBottom && <ConversationScrollButton onClick={scrollToBottom} />}\n </div>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Content — message list area with padding\n// ---------------------------------------------------------------------------\n\nfunction ConversationContent({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"conversation-content\"\n className={cn(\"flex flex-col gap-6 p-4\", className)}\n {...props}\n />\n )\n}\n\n// ---------------------------------------------------------------------------\n// Empty state\n// ---------------------------------------------------------------------------\n\nfunction ConversationEmptyState({\n title = \"No messages yet\",\n description = \"Start a conversation to see messages here\",\n icon,\n className,\n children,\n ...props\n}: ComponentProps<\"div\"> & {\n title?: string\n description?: string\n icon?: ReactNode\n}) {\n return (\n <div\n data-slot=\"conversation-empty-state\"\n className={cn(\n \"flex flex-1 flex-col items-center justify-center gap-4 p-8 text-center\",\n className,\n )}\n {...props}\n >\n {icon ?? <MessageSquare aria-hidden=\"true\" className=\"size-10 text-muted-foreground/40\" />}\n <div className=\"space-y-1\">\n <p className=\"font-medium text-foreground text-sm\">{title}</p>\n <p className=\"text-muted-foreground text-sm\">{description}</p>\n </div>\n {children}\n </div>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Scroll-to-bottom button\n// ---------------------------------------------------------------------------\n\nfunction ConversationScrollButton({ className, ...props }: ComponentProps<\"button\">) {\n return (\n <button\n data-slot=\"conversation-scroll-button\"\n type=\"button\"\n className={cn(\n \"absolute bottom-4 left-1/2 -translate-x-1/2\",\n \"inline-flex items-center gap-1.5 rounded-full border border-border bg-card px-3 py-1.5\",\n \"font-medium text-muted-foreground text-xs shadow-sm\",\n \"transition-colors hover:bg-accent hover:text-foreground\",\n className,\n )}\n {...props}\n >\n <ArrowDown className=\"size-3\" />\n Scroll to bottom\n </button>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Download conversation\n// ---------------------------------------------------------------------------\n\nfunction ConversationDownload({\n messages,\n filename = \"conversation.md\",\n formatMessage,\n className,\n ...props\n}: Omit<ComponentProps<\"button\">, \"onClick\"> & {\n messages: Array<{ role: string; content: string }>\n filename?: string\n formatMessage?: (msg: { role: string; content: string }, index: number) => string\n}) {\n const handleDownload = useCallback(() => {\n const md = messages\n .map(\n (msg, i) =>\n formatMessage?.(msg, i) ??\n `## ${msg.role === \"user\" ? \"You\" : msg.role === \"assistant\" ? \"Assistant\" : \"System\"}\\n\\n${msg.content}`,\n )\n .join(\"\\n\\n---\\n\\n\")\n\n const blob = new Blob([md], { type: \"text/markdown\" })\n const url = URL.createObjectURL(blob)\n const a = document.createElement(\"a\")\n a.href = url\n a.download = filename\n a.click()\n URL.revokeObjectURL(url)\n }, [messages, filename, formatMessage])\n\n return (\n <button\n data-slot=\"conversation-download\"\n type=\"button\"\n onClick={handleDownload}\n className={cn(\n \"inline-flex items-center gap-1.5 rounded-md px-2.5 py-1.5 text-xs\",\n \"text-muted-foreground transition-colors hover:text-foreground\",\n className,\n )}\n {...props}\n >\n <Download className=\"size-3.5\" />\n Download\n </button>\n )\n}\n\nexport {\n Conversation,\n ConversationContent,\n ConversationEmptyState,\n ConversationScrollButton,\n ConversationDownload,\n}\n","\"use client\"\n\nimport { ExternalLink } from \"lucide-react\"\nimport { type ComponentProps, useState } from \"react\"\nimport { cn } from \"../lib/utils\"\n\nfunction InlineCitation({\n index,\n href,\n title,\n description,\n children,\n className,\n ...props\n}: ComponentProps<\"span\"> & {\n index: number\n href: string\n title: string\n description?: string\n}) {\n const [showCard, setShowCard] = useState(false)\n\n return (\n <span\n data-slot=\"inline-citation\"\n className={cn(\"relative inline-flex items-baseline\", className)}\n onMouseEnter={() => setShowCard(true)}\n onMouseLeave={() => setShowCard(false)}\n onFocus={() => setShowCard(true)}\n onBlur={() => setShowCard(false)}\n {...props}\n >\n {children}\n <a\n href={href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label={`Citation ${index}: ${title}`}\n className=\"ml-0.5 inline-flex size-4 items-center justify-center rounded-full bg-primary/10 align-super font-bold text-[10px] text-primary transition-colors hover:bg-primary/20\"\n >\n {index}\n </a>\n\n {showCard && (\n <span role=\"tooltip\" className=\"absolute bottom-full left-1/2 z-50 mb-2 -translate-x-1/2\">\n <InlineCitationCard href={href} title={title} description={description} />\n </span>\n )}\n </span>\n )\n}\n\nfunction InlineCitationCard({\n href,\n title,\n description,\n className,\n ...props\n}: ComponentProps<\"a\"> & {\n title: string\n description?: string\n}) {\n return (\n <a\n data-slot=\"inline-citation-card\"\n href={href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={cn(\n \"block w-64 rounded-lg border border-border bg-popover p-3 shadow-md\",\n \"transition-colors hover:bg-muted/50\",\n className,\n )}\n {...props}\n >\n <p className=\"truncate font-medium text-popover-foreground text-sm\">{title}</p>\n {description && (\n <p className=\"mt-1 line-clamp-2 text-muted-foreground text-xs\">{description}</p>\n )}\n <span className=\"mt-2 inline-flex items-center gap-1 text-primary text-xs\">\n Open <ExternalLink className=\"size-3\" />\n </span>\n </a>\n )\n}\n\nexport { InlineCitation, InlineCitationCard }\n","\"use client\"\n\nimport { cva } from \"class-variance-authority\"\nimport { ChevronLeft, ChevronRight, Copy, RefreshCw, ThumbsDown, ThumbsUp } from \"lucide-react\"\nimport { type ComponentProps, createContext, useCallback, useContext, useState } from \"react\"\nimport { cn } from \"../lib/utils\"\n\n// ---------------------------------------------------------------------------\n// Message role context\n// ---------------------------------------------------------------------------\n\ntype MessageRole = \"user\" | \"assistant\" | \"system\"\n\nconst MessageContext = createContext<{ role: MessageRole }>({ role: \"assistant\" })\n\n// ---------------------------------------------------------------------------\n// CVA — message alignment and styling per role\n// ---------------------------------------------------------------------------\n\nconst messageVariants = cva(\"group/message flex gap-3\", {\n variants: {\n from: {\n user: \"flex-row-reverse\",\n assistant: \"flex-row\",\n system: \"flex-row justify-center\",\n },\n },\n defaultVariants: { from: \"assistant\" },\n})\n\n// ---------------------------------------------------------------------------\n// Root\n// ---------------------------------------------------------------------------\n\nfunction Message({\n from = \"assistant\",\n className,\n children,\n ...props\n}: ComponentProps<\"div\"> & { from?: MessageRole }) {\n return (\n <MessageContext.Provider value={{ role: from }}>\n <div\n data-slot=\"message\"\n data-role={from}\n className={cn(messageVariants({ from }), className)}\n {...props}\n >\n {children}\n </div>\n </MessageContext.Provider>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Avatar — rendered before/after content depending on role\n// ---------------------------------------------------------------------------\n\nfunction MessageAvatar({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"message-avatar\"\n className={cn(\n \"flex size-8 shrink-0 items-center justify-center rounded-full bg-muted text-muted-foreground\",\n className,\n )}\n {...props}\n />\n )\n}\n\n// ---------------------------------------------------------------------------\n// Content wrapper\n// ---------------------------------------------------------------------------\n\nfunction MessageContent({ className, ...props }: ComponentProps<\"div\">) {\n const { role } = useContext(MessageContext)\n\n return (\n <div\n data-slot=\"message-content\"\n className={cn(\n \"flex max-w-[80%] flex-col gap-1\",\n role === \"user\" && \"items-end\",\n role === \"system\" && \"max-w-full items-center\",\n className,\n )}\n {...props}\n />\n )\n}\n\n// ---------------------------------------------------------------------------\n// Response bubble — the actual message body\n// ---------------------------------------------------------------------------\n\nconst responseBubbleVariants = cva(\"rounded-2xl px-4 py-3 text-sm leading-relaxed\", {\n variants: {\n from: {\n user: \"bg-primary text-primary-foreground\",\n assistant: \"bg-muted text-foreground\",\n system: \"bg-muted/50 text-muted-foreground italic text-center\",\n },\n },\n defaultVariants: { from: \"assistant\" },\n})\n\nfunction MessageResponse({ className, ...props }: ComponentProps<\"div\">) {\n const { role } = useContext(MessageContext)\n\n return (\n <div\n data-slot=\"message-response\"\n className={cn(\n responseBubbleVariants({ from: role }),\n \"prose prose-sm dark:prose-invert max-w-none\",\n \"[&_pre]:rounded-lg [&_pre]:bg-card [&_pre]:p-3 [&_pre]:font-mono [&_pre]:text-xs\",\n \"[&_code]:rounded [&_code]:bg-card [&_code]:px-1.5 [&_code]:py-0.5 [&_code]:font-mono [&_code]:text-xs\",\n className,\n )}\n {...props}\n />\n )\n}\n\n// ---------------------------------------------------------------------------\n// Actions toolbar\n// ---------------------------------------------------------------------------\n\nfunction MessageActions({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"message-actions\"\n className={cn(\n \"flex items-center gap-1 opacity-0 transition-opacity group-hover/message:opacity-100\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction MessageAction({\n tooltip,\n className,\n ...props\n}: ComponentProps<\"button\"> & { tooltip?: string }) {\n return (\n <button\n data-slot=\"message-action\"\n type=\"button\"\n title={tooltip}\n className={cn(\n \"inline-flex items-center justify-center rounded-md p-1.5\",\n \"text-muted-foreground transition-colors hover:bg-muted hover:text-foreground\",\n className,\n )}\n {...props}\n />\n )\n}\n\n// ---------------------------------------------------------------------------\n// Convenience action buttons\n// ---------------------------------------------------------------------------\n\nfunction MessageCopyAction({\n content,\n className,\n ...props\n}: ComponentProps<\"button\"> & { content: string }) {\n const [copied, setCopied] = useState(false)\n\n const handleCopy = useCallback(() => {\n navigator.clipboard.writeText(content)\n setCopied(true)\n setTimeout(() => setCopied(false), 2000)\n }, [content])\n\n return (\n <MessageAction\n tooltip={copied ? \"Copied!\" : \"Copy\"}\n onClick={handleCopy}\n className={className}\n {...props}\n >\n <Copy className=\"size-3.5\" />\n </MessageAction>\n )\n}\n\nfunction MessageRegenerateAction(props: ComponentProps<\"button\">) {\n return (\n <MessageAction tooltip=\"Regenerate\" {...props}>\n <RefreshCw className=\"size-3.5\" />\n </MessageAction>\n )\n}\n\nfunction MessageFeedbackActions({\n onThumbsUp,\n onThumbsDown,\n}: {\n onThumbsUp?: () => void\n onThumbsDown?: () => void\n}) {\n return (\n <>\n <MessageAction tooltip=\"Good response\" onClick={onThumbsUp}>\n <ThumbsUp className=\"size-3.5\" />\n </MessageAction>\n <MessageAction tooltip=\"Bad response\" onClick={onThumbsDown}>\n <ThumbsDown className=\"size-3.5\" />\n </MessageAction>\n </>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Branch selector (for multiple response variants)\n// ---------------------------------------------------------------------------\n\ntype BranchContextValue = {\n branch: number\n total: number\n prev: () => void\n next: () => void\n}\n\nconst BranchContext = createContext<BranchContextValue | null>(null)\n\nfunction MessageBranch({\n total,\n defaultBranch = 0,\n onBranchChange,\n children,\n}: {\n total: number\n defaultBranch?: number\n onBranchChange?: (index: number) => void\n children: React.ReactNode\n}) {\n const [branch, setBranch] = useState(defaultBranch)\n\n const prev = useCallback(() => {\n setBranch((b) => {\n const next = Math.max(0, b - 1)\n onBranchChange?.(next)\n return next\n })\n }, [onBranchChange])\n\n const next = useCallback(() => {\n setBranch((b) => {\n const next = Math.min(total - 1, b + 1)\n onBranchChange?.(next)\n return next\n })\n }, [total, onBranchChange])\n\n return (\n <BranchContext.Provider value={{ branch, total, prev, next }}>\n {children}\n </BranchContext.Provider>\n )\n}\n\nfunction MessageBranchSelector({ className, ...props }: ComponentProps<\"div\">) {\n const ctx = useContext(BranchContext)\n if (!ctx || ctx.total <= 1) return null\n\n return (\n <div\n data-slot=\"message-branch-selector\"\n className={cn(\"inline-flex items-center gap-1 text-muted-foreground text-xs\", className)}\n {...props}\n >\n <button\n type=\"button\"\n onClick={ctx.prev}\n disabled={ctx.branch === 0}\n aria-label=\"Previous response\"\n className=\"rounded p-0.5 transition-colors hover:bg-muted disabled:opacity-30\"\n >\n <ChevronLeft aria-hidden=\"true\" className=\"size-3.5\" />\n </button>\n <span className=\"tabular-nums\" aria-label={`Response ${ctx.branch + 1} of ${ctx.total}`}>\n {ctx.branch + 1} / {ctx.total}\n </span>\n <button\n type=\"button\"\n onClick={ctx.next}\n disabled={ctx.branch === ctx.total - 1}\n aria-label=\"Next response\"\n className=\"rounded p-0.5 transition-colors hover:bg-muted disabled:opacity-30\"\n >\n <ChevronRight aria-hidden=\"true\" className=\"size-3.5\" />\n </button>\n </div>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Attachments within a message\n// ---------------------------------------------------------------------------\n\nfunction MessageAttachments({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"message-attachments\"\n className={cn(\"flex flex-wrap gap-2\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Message,\n MessageAvatar,\n MessageContent,\n MessageResponse,\n MessageActions,\n MessageAction,\n MessageCopyAction,\n MessageRegenerateAction,\n MessageFeedbackActions,\n MessageBranch,\n MessageBranchSelector,\n MessageAttachments,\n messageVariants,\n responseBubbleVariants,\n}\nexport type { MessageRole }\n","\"use client\"\n\nimport { Check, ChevronDown, Search } from \"lucide-react\"\nimport {\n type ComponentProps,\n createContext,\n type ReactNode,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\"\nimport { cn } from \"../lib/utils\"\n\n// ---------------------------------------------------------------------------\n// Context\n// ---------------------------------------------------------------------------\n\ntype ModelSelectorContextValue = {\n open: boolean\n setOpen: (open: boolean) => void\n search: string\n setSearch: (search: string) => void\n selected: string | null\n onSelect: (modelId: string) => void\n}\n\nconst ModelSelectorContext = createContext<ModelSelectorContextValue | null>(null)\n\nfunction useModelSelector() {\n const ctx = useContext(ModelSelectorContext)\n if (!ctx) throw new Error(\"useModelSelector must be used within <ModelSelector>\")\n return ctx\n}\n\n// ---------------------------------------------------------------------------\n// Root\n// ---------------------------------------------------------------------------\n\nfunction ModelSelector({\n value,\n onValueChange,\n children,\n}: {\n value?: string\n onValueChange?: (modelId: string) => void\n children: ReactNode\n}) {\n const [open, setOpen] = useState(false)\n const [search, setSearch] = useState(\"\")\n const [selected, setSelected] = useState(value ?? null)\n\n useEffect(() => {\n if (value !== undefined) setSelected(value)\n }, [value])\n\n const onSelect = useCallback(\n (modelId: string) => {\n setSelected(modelId)\n onValueChange?.(modelId)\n setOpen(false)\n setSearch(\"\")\n },\n [onValueChange],\n )\n\n return (\n <ModelSelectorContext.Provider value={{ open, setOpen, search, setSearch, selected, onSelect }}>\n <div data-slot=\"model-selector\" className=\"relative\">\n {children}\n </div>\n </ModelSelectorContext.Provider>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Trigger\n// ---------------------------------------------------------------------------\n\nfunction ModelSelectorTrigger({ className, children, ...props }: ComponentProps<\"button\">) {\n const { open, setOpen, selected } = useModelSelector()\n\n return (\n <button\n data-slot=\"model-selector-trigger\"\n type=\"button\"\n onClick={() => setOpen(!open)}\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n className={cn(\n \"inline-flex items-center gap-2 rounded-lg border border-border bg-card px-3 py-2 text-sm\",\n \"transition-colors hover:bg-accent\",\n className,\n )}\n {...props}\n >\n {children ?? selected ?? \"Select model\"}\n <ChevronDown\n aria-hidden=\"true\"\n className={cn(\"size-3.5 text-muted-foreground transition-transform\", open && \"rotate-180\")}\n />\n </button>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Content (dropdown)\n// ---------------------------------------------------------------------------\n\nfunction ModelSelectorContent({ className, children, ...props }: ComponentProps<\"div\">) {\n const { open, setOpen } = useModelSelector()\n const ref = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n if (!open) return\n function handleClickOutside(e: MouseEvent) {\n if (ref.current && !ref.current.contains(e.target as Node)) {\n setOpen(false)\n }\n }\n function handleEscape(e: KeyboardEvent) {\n if (e.key === \"Escape\") setOpen(false)\n }\n document.addEventListener(\"mousedown\", handleClickOutside)\n document.addEventListener(\"keydown\", handleEscape)\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside)\n document.removeEventListener(\"keydown\", handleEscape)\n }\n }, [open, setOpen])\n\n if (!open) return null\n\n return (\n <div\n ref={ref}\n data-slot=\"model-selector-content\"\n className={cn(\n \"absolute top-full left-0 z-50 mt-1 w-72\",\n \"rounded-xl border border-border bg-popover p-1 shadow-lg\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Search input\n// ---------------------------------------------------------------------------\n\nfunction ModelSelectorInput({ className, ...props }: ComponentProps<\"input\">) {\n const { search, setSearch } = useModelSelector()\n\n return (\n <div className=\"relative px-1 pb-1\">\n <Search\n aria-hidden=\"true\"\n className=\"absolute top-1/2 left-3 size-3.5 -translate-y-1/2 text-muted-foreground\"\n />\n <input\n data-slot=\"model-selector-input\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n placeholder=\"Search models...\"\n aria-label=\"Search models\"\n className={cn(\n \"w-full rounded-lg bg-muted/50 py-2 pr-3 pl-8 text-sm\",\n \"placeholder:text-muted-foreground focus:outline-none\",\n className,\n )}\n {...props}\n />\n </div>\n )\n}\n\n// ---------------------------------------------------------------------------\n// List / Group / Item\n// ---------------------------------------------------------------------------\n\nfunction ModelSelectorList({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"model-selector-list\"\n role=\"listbox\"\n aria-label=\"Models\"\n className={cn(\"max-h-64 overflow-y-auto\", className)}\n {...props}\n />\n )\n}\n\nfunction ModelSelectorGroup({\n label,\n className,\n children,\n ...props\n}: ComponentProps<\"div\"> & { label?: string }) {\n return (\n <div data-slot=\"model-selector-group\" className={cn(\"py-1\", className)} {...props}>\n {label && (\n <p className=\"px-2 py-1.5 font-medium text-[10px] text-muted-foreground uppercase tracking-wider\">\n {label}\n </p>\n )}\n {children}\n </div>\n )\n}\n\nfunction ModelSelectorItem({\n value,\n logo,\n name,\n description,\n className,\n ...props\n}: ComponentProps<\"button\"> & {\n value: string\n logo?: ReactNode\n name: string\n description?: string\n}) {\n const { selected, onSelect, search } = useModelSelector()\n const isSelected = selected === value\n\n // Filter by search\n const visible = useMemo(() => {\n if (!search) return true\n const q = search.toLowerCase()\n return name.toLowerCase().includes(q) || value.toLowerCase().includes(q)\n }, [search, name, value])\n\n if (!visible) return null\n\n return (\n <button\n data-slot=\"model-selector-item\"\n type=\"button\"\n role=\"option\"\n aria-selected={isSelected}\n onClick={() => onSelect(value)}\n className={cn(\n \"flex w-full items-center gap-3 rounded-lg px-2 py-2 text-left text-sm\",\n \"transition-colors hover:bg-muted/50\",\n isSelected && \"bg-muted\",\n className,\n )}\n {...props}\n >\n {logo && (\n <span className=\"shrink-0 [&>img]:size-5 [&>img]:rounded [&>svg]:size-4\">{logo}</span>\n )}\n <span className=\"min-w-0 flex-1\">\n <span className=\"block truncate font-medium text-foreground\">{name}</span>\n {description && (\n <span className=\"block truncate text-muted-foreground text-xs\">{description}</span>\n )}\n </span>\n {isSelected && <Check aria-hidden=\"true\" className=\"size-4 shrink-0 text-primary\" />}\n </button>\n )\n}\n\nfunction ModelSelectorEmpty({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"model-selector-empty\"\n className={cn(\"py-6 text-center text-muted-foreground text-sm\", className)}\n {...props}\n >\n {props.children ?? \"No models found.\"}\n </div>\n )\n}\n\nfunction ModelSelectorSeparator({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"model-selector-separator\"\n role=\"separator\"\n className={cn(\"mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nexport {\n ModelSelector,\n ModelSelectorTrigger,\n ModelSelectorContent,\n ModelSelectorInput,\n ModelSelectorList,\n ModelSelectorGroup,\n ModelSelectorItem,\n ModelSelectorEmpty,\n ModelSelectorSeparator,\n useModelSelector,\n}\n","\"use client\"\n\nimport { ChevronDown, ListChecks } from \"lucide-react\"\nimport { type ComponentProps, createContext, useCallback, useContext, useId, useState } from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype PlanContextValue = {\n open: boolean\n toggle: () => void\n contentId: string\n}\n\nconst PlanContext = createContext<PlanContextValue | null>(null)\n\nfunction Plan({\n defaultOpen = true,\n className,\n children,\n ...props\n}: ComponentProps<\"div\"> & { defaultOpen?: boolean }) {\n const [open, setOpen] = useState(defaultOpen)\n const toggle = useCallback(() => setOpen((o) => !o), [])\n const contentId = useId()\n\n return (\n <PlanContext.Provider value={{ open, toggle, contentId }}>\n <div\n data-slot=\"plan\"\n data-state={open ? \"open\" : \"closed\"}\n className={cn(\"rounded-xl border border-border bg-card\", className)}\n {...props}\n >\n {children}\n </div>\n </PlanContext.Provider>\n )\n}\n\nfunction PlanHeader({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"plan-header\"\n className={cn(\"flex items-center gap-3 px-4 py-3\", className)}\n {...props}\n />\n )\n}\n\nfunction PlanTitle({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"plan-title\"\n className={cn(\"flex-1 font-medium text-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction PlanDescription({ className, ...props }: ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"plan-description\"\n className={cn(\"px-4 pb-3 text-muted-foreground text-xs\", className)}\n {...props}\n />\n )\n}\n\nfunction PlanTrigger({ className, ...props }: ComponentProps<\"button\">) {\n const ctx = useContext(PlanContext)\n if (!ctx) throw new Error(\"PlanTrigger must be used within <Plan>\")\n\n return (\n <button\n data-slot=\"plan-trigger\"\n type=\"button\"\n onClick={ctx.toggle}\n aria-expanded={ctx.open}\n aria-controls={ctx.contentId}\n className={cn(\n \"flex w-full items-center gap-2 px-4 py-3 font-medium text-sm\",\n \"text-muted-foreground transition-colors hover:text-foreground\",\n className,\n )}\n {...props}\n >\n <ListChecks aria-hidden=\"true\" className=\"size-4 shrink-0\" />\n <span className=\"flex-1 text-left\">{props.children ?? \"Execution Plan\"}</span>\n <ChevronDown\n aria-hidden=\"true\"\n className={cn(\n \"size-4 shrink-0 transition-transform duration-200\",\n ctx.open && \"rotate-180\",\n )}\n />\n </button>\n )\n}\n\nfunction PlanContent({ className, ...props }: ComponentProps<\"div\">) {\n const ctx = useContext(PlanContext)\n if (!ctx?.open) return null\n\n return (\n <div\n id={ctx.contentId}\n data-slot=\"plan-content\"\n role=\"region\"\n className={cn(\"space-y-2 border-border border-t px-4 py-3\", className)}\n {...props}\n />\n )\n}\n\nfunction PlanFooter({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"plan-footer\"\n className={cn(\"flex items-center gap-2 border-border border-t px-4 py-2.5\", className)}\n {...props}\n />\n )\n}\n\nfunction PlanAction({ className, ...props }: ComponentProps<\"button\">) {\n return (\n <button\n data-slot=\"plan-action\"\n type=\"button\"\n className={cn(\n \"inline-flex items-center rounded-lg px-3 py-1.5 font-medium text-xs\",\n \"bg-primary text-primary-foreground transition-colors hover:bg-primary/90\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport {\n Plan,\n PlanHeader,\n PlanTitle,\n PlanDescription,\n PlanTrigger,\n PlanContent,\n PlanFooter,\n PlanAction,\n}\n","\"use client\"\n\nimport { ArrowUp, Paperclip, Square, X } from \"lucide-react\"\nimport {\n type ComponentProps,\n createContext,\n type FormEvent,\n useCallback,\n useContext,\n useRef,\n useState,\n} from \"react\"\nimport { cn } from \"../lib/utils\"\n\n// ---------------------------------------------------------------------------\n// Context for sharing input state\n// ---------------------------------------------------------------------------\n\ntype PromptInputContextValue = {\n value: string\n setValue: (value: string) => void\n files: File[]\n addFiles: (files: File[]) => void\n removeFile: (index: number) => void\n clearFiles: () => void\n submit: () => void\n isLoading: boolean\n}\n\nconst PromptInputContext = createContext<PromptInputContextValue | null>(null)\n\nfunction usePromptInput() {\n const ctx = useContext(PromptInputContext)\n if (!ctx) throw new Error(\"usePromptInput must be used within <PromptInput>\")\n return ctx\n}\n\n// ---------------------------------------------------------------------------\n// Root — form wrapper with context\n// ---------------------------------------------------------------------------\n\nfunction PromptInput({\n onSubmit,\n isLoading = false,\n className,\n children,\n ...props\n}: Omit<ComponentProps<\"form\">, \"onSubmit\"> & {\n onSubmit?: (message: string, files: File[]) => void\n isLoading?: boolean\n}) {\n const [value, setValue] = useState(\"\")\n const [files, setFiles] = useState<File[]>([])\n\n const addFiles = useCallback((newFiles: File[]) => {\n setFiles((prev) => [...prev, ...newFiles])\n }, [])\n\n const removeFile = useCallback((index: number) => {\n setFiles((prev) => prev.filter((_, i) => i !== index))\n }, [])\n\n const clearFiles = useCallback(() => setFiles([]), [])\n\n const submit = useCallback(() => {\n if (!value.trim() && files.length === 0) return\n onSubmit?.(value.trim(), files)\n setValue(\"\")\n setFiles([])\n }, [value, files, onSubmit])\n\n const handleSubmit = useCallback(\n (e: FormEvent) => {\n e.preventDefault()\n submit()\n },\n [submit],\n )\n\n return (\n <PromptInputContext.Provider\n value={{ value, setValue, files, addFiles, removeFile, clearFiles, submit, isLoading }}\n >\n <form\n data-slot=\"prompt-input\"\n onSubmit={handleSubmit}\n className={cn(\n \"flex flex-col rounded-2xl border border-border bg-card shadow-sm\",\n \"focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2\",\n className,\n )}\n {...props}\n >\n {children}\n </form>\n </PromptInputContext.Provider>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Layout areas\n// ---------------------------------------------------------------------------\n\nfunction PromptInputHeader({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"prompt-input-header\"\n className={cn(\"border-border border-b px-4 py-2\", className)}\n {...props}\n />\n )\n}\n\nfunction PromptInputBody({ className, ...props }: ComponentProps<\"div\">) {\n return <div data-slot=\"prompt-input-body\" className={cn(\"flex-1\", className)} {...props} />\n}\n\nfunction PromptInputFooter({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"prompt-input-footer\"\n className={cn(\"flex items-center gap-2 px-3 py-2\", className)}\n {...props}\n />\n )\n}\n\n// ---------------------------------------------------------------------------\n// Textarea — auto-resizing input\n// ---------------------------------------------------------------------------\n\nfunction PromptInputTextarea({ className, onKeyDown, ...props }: ComponentProps<\"textarea\">) {\n const { value, setValue, submit, isLoading } = usePromptInput()\n const ref = useRef<HTMLTextAreaElement>(null)\n\n const handleInput = useCallback(() => {\n const el = ref.current\n if (!el) return\n el.style.height = \"auto\"\n el.style.height = `${Math.min(el.scrollHeight, 200)}px`\n }, [])\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (e.key === \"Enter\" && !e.shiftKey) {\n e.preventDefault()\n if (!isLoading) submit()\n }\n onKeyDown?.(e)\n },\n [submit, isLoading, onKeyDown],\n )\n\n return (\n <textarea\n ref={ref}\n data-slot=\"prompt-input-textarea\"\n value={value}\n onChange={(e) => {\n setValue(e.target.value)\n handleInput()\n }}\n onKeyDown={handleKeyDown}\n placeholder=\"Type a message...\"\n rows={1}\n disabled={isLoading}\n className={cn(\n \"w-full resize-none bg-transparent px-4 py-3 text-foreground text-sm\",\n \"placeholder:text-muted-foreground\",\n \"focus:outline-none\",\n \"disabled:opacity-50\",\n className,\n )}\n {...props}\n />\n )\n}\n\n// ---------------------------------------------------------------------------\n// Toolbar / tools\n// ---------------------------------------------------------------------------\n\nfunction PromptInputTools({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"prompt-input-tools\"\n className={cn(\"flex items-center gap-1\", className)}\n {...props}\n />\n )\n}\n\n// ---------------------------------------------------------------------------\n// Attach button\n// ---------------------------------------------------------------------------\n\nfunction PromptInputAttachButton({\n accept,\n multiple = true,\n className,\n ...props\n}: Omit<ComponentProps<\"button\">, \"onClick\"> & {\n accept?: string\n multiple?: boolean\n}) {\n const { addFiles } = usePromptInput()\n const inputRef = useRef<HTMLInputElement>(null)\n\n const handleClick = useCallback(() => {\n inputRef.current?.click()\n }, [])\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const fileList = e.target.files\n if (fileList) {\n addFiles(Array.from(fileList))\n e.target.value = \"\"\n }\n },\n [addFiles],\n )\n\n return (\n <>\n <input\n ref={inputRef}\n type=\"file\"\n accept={accept}\n multiple={multiple}\n onChange={handleChange}\n className=\"hidden\"\n aria-hidden=\"true\"\n tabIndex={-1}\n />\n <button\n data-slot=\"prompt-input-attach-button\"\n type=\"button\"\n onClick={handleClick}\n aria-label=\"Attach files\"\n className={cn(\n \"inline-flex items-center justify-center rounded-md p-2\",\n \"text-muted-foreground transition-colors hover:bg-muted hover:text-foreground\",\n className,\n )}\n {...props}\n >\n <Paperclip aria-hidden=\"true\" className=\"size-4\" />\n </button>\n </>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Submit button\n// ---------------------------------------------------------------------------\n\nfunction PromptInputSubmit({ className, ...props }: ComponentProps<\"button\">) {\n const { value, files, isLoading } = usePromptInput()\n const hasContent = value.trim().length > 0 || files.length > 0\n\n return (\n <button\n data-slot=\"prompt-input-submit\"\n type=\"submit\"\n disabled={!hasContent && !isLoading}\n aria-label={isLoading ? \"Stop generation\" : \"Send message\"}\n className={cn(\n \"ml-auto inline-flex items-center justify-center rounded-full p-2\",\n \"transition-colors\",\n isLoading\n ? \"bg-destructive text-destructive-foreground hover:bg-destructive/90\"\n : hasContent\n ? \"bg-primary text-primary-foreground hover:bg-primary/90\"\n : \"bg-muted text-muted-foreground\",\n className,\n )}\n {...props}\n >\n {isLoading ? <Square className=\"size-4\" /> : <ArrowUp className=\"size-4\" />}\n </button>\n )\n}\n\n// ---------------------------------------------------------------------------\n// File preview list\n// ---------------------------------------------------------------------------\n\nfunction PromptInputFiles({ className, ...props }: ComponentProps<\"div\">) {\n const { files, removeFile } = usePromptInput()\n if (files.length === 0) return null\n\n return (\n <div\n data-slot=\"prompt-input-files\"\n className={cn(\"flex flex-wrap gap-2 px-4 pt-2\", className)}\n {...props}\n >\n {files.map((file, i) => (\n <span\n key={`${file.name}-${i}`}\n className=\"inline-flex items-center gap-1.5 rounded-lg border border-border bg-muted/50 px-2.5 py-1 text-foreground text-xs\"\n >\n {file.name}\n <button\n type=\"button\"\n onClick={() => removeFile(i)}\n aria-label={`Remove ${file.name}`}\n className=\"rounded-full p-0.5 text-muted-foreground transition-colors hover:text-foreground\"\n >\n <X aria-hidden=\"true\" className=\"size-3\" />\n </button>\n </span>\n ))}\n </div>\n )\n}\n\nexport {\n PromptInput,\n PromptInputHeader,\n PromptInputBody,\n PromptInputFooter,\n PromptInputTextarea,\n PromptInputTools,\n PromptInputAttachButton,\n PromptInputSubmit,\n PromptInputFiles,\n usePromptInput,\n}\n","\"use client\"\n\nimport { cva } from \"class-variance-authority\"\nimport { ChevronDown } from \"lucide-react\"\nimport { type ComponentProps, createContext, useCallback, useContext, useId, useState } from \"react\"\nimport { cn } from \"../lib/utils\"\n\n// ---------------------------------------------------------------------------\n// Queue section (collapsible group)\n// ---------------------------------------------------------------------------\n\ntype QueueSectionContextValue = {\n open: boolean\n toggle: () => void\n contentId: string\n}\n\nconst QueueSectionContext = createContext<QueueSectionContextValue | null>(null)\n\nfunction QueueSection({\n defaultOpen = true,\n className,\n children,\n ...props\n}: ComponentProps<\"div\"> & { defaultOpen?: boolean }) {\n const [open, setOpen] = useState(defaultOpen)\n const toggle = useCallback(() => setOpen((o) => !o), [])\n const contentId = useId()\n\n return (\n <QueueSectionContext.Provider value={{ open, toggle, contentId }}>\n <div data-slot=\"queue-section\" className={cn(\"space-y-1\", className)} {...props}>\n {children}\n </div>\n </QueueSectionContext.Provider>\n )\n}\n\nfunction QueueSectionTrigger({ className, ...props }: ComponentProps<\"button\">) {\n const ctx = useContext(QueueSectionContext)\n if (!ctx) throw new Error(\"QueueSectionTrigger must be used within <QueueSection>\")\n\n return (\n <button\n data-slot=\"queue-section-trigger\"\n type=\"button\"\n onClick={ctx.toggle}\n aria-expanded={ctx.open}\n aria-controls={ctx.contentId}\n className={cn(\n \"flex w-full items-center gap-2 px-2 py-1.5 font-medium text-muted-foreground text-xs\",\n \"rounded-md transition-colors hover:text-foreground\",\n className,\n )}\n {...props}\n >\n <ChevronDown\n aria-hidden=\"true\"\n className={cn(\n \"size-3.5 shrink-0 transition-transform duration-200\",\n ctx.open && \"rotate-180\",\n )}\n />\n {props.children}\n </button>\n )\n}\n\nfunction QueueSectionLabel({ className, ...props }: ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"queue-section-label\"\n className={cn(\"flex-1 text-left\", className)}\n {...props}\n />\n )\n}\n\nfunction QueueList({ className, ...props }: ComponentProps<\"div\">) {\n const ctx = useContext(QueueSectionContext)\n if (ctx && !ctx.open) return null\n\n return (\n <div\n id={ctx?.contentId}\n data-slot=\"queue-list\"\n role=\"list\"\n className={cn(\"space-y-1\", className)}\n {...props}\n />\n )\n}\n\n// ---------------------------------------------------------------------------\n// Queue item\n// ---------------------------------------------------------------------------\n\ntype QueueItemStatus = \"pending\" | \"active\" | \"complete\" | \"error\"\n\nconst queueItemIndicatorVariants = cva(\"size-2 shrink-0 rounded-full\", {\n variants: {\n status: {\n pending: \"bg-muted-foreground/30\",\n active: \"bg-primary animate-pulse\",\n complete: \"bg-emerald-500\",\n error: \"bg-red-500\",\n },\n },\n defaultVariants: { status: \"pending\" },\n})\n\nfunction QueueItem({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"queue-item\"\n role=\"listitem\"\n className={cn(\n \"flex items-start gap-3 rounded-lg px-3 py-2.5\",\n \"transition-colors hover:bg-muted/50\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction QueueItemIndicator({\n status = \"pending\",\n className,\n ...props\n}: ComponentProps<\"span\"> & { status?: QueueItemStatus }) {\n return (\n <span\n data-slot=\"queue-item-indicator\"\n role=\"img\"\n aria-label={status}\n className={cn(queueItemIndicatorVariants({ status }), \"mt-1.5\", className)}\n {...props}\n />\n )\n}\n\nfunction QueueItemContent({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div data-slot=\"queue-item-content\" className={cn(\"min-w-0 flex-1\", className)} {...props} />\n )\n}\n\nfunction QueueItemDescription({ className, ...props }: ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"queue-item-description\"\n className={cn(\"mt-0.5 text-muted-foreground text-xs\", className)}\n {...props}\n />\n )\n}\n\nfunction QueueItemActions({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"queue-item-actions\"\n className={cn(\"flex shrink-0 items-center gap-1\", className)}\n {...props}\n />\n )\n}\n\nexport {\n QueueSection,\n QueueSectionTrigger,\n QueueSectionLabel,\n QueueList,\n QueueItem,\n QueueItemIndicator,\n QueueItemContent,\n QueueItemDescription,\n QueueItemActions,\n queueItemIndicatorVariants,\n}\nexport type { QueueItemStatus }\n","\"use client\"\n\nimport { ChevronDown } from \"lucide-react\"\nimport { type ComponentProps, createContext, useCallback, useContext, useId, useState } from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype ReasoningContextValue = {\n open: boolean\n toggle: () => void\n contentId: string\n}\n\nconst ReasoningContext = createContext<ReasoningContextValue | null>(null)\n\nfunction useReasoning() {\n const ctx = useContext(ReasoningContext)\n if (!ctx) throw new Error(\"useReasoning must be used within <Reasoning>\")\n return ctx\n}\n\nfunction Reasoning({\n defaultOpen = false,\n className,\n children,\n ...props\n}: ComponentProps<\"div\"> & { defaultOpen?: boolean }) {\n const [open, setOpen] = useState(defaultOpen)\n const toggle = useCallback(() => setOpen((o) => !o), [])\n const contentId = useId()\n\n return (\n <ReasoningContext.Provider value={{ open, toggle, contentId }}>\n <div\n data-slot=\"reasoning\"\n data-state={open ? \"open\" : \"closed\"}\n className={cn(\"rounded-xl border border-border bg-card\", className)}\n {...props}\n >\n {children}\n </div>\n </ReasoningContext.Provider>\n )\n}\n\nfunction ReasoningTrigger({ className, children, ...props }: ComponentProps<\"button\">) {\n const { open, toggle, contentId } = useReasoning()\n\n return (\n <button\n data-slot=\"reasoning-trigger\"\n type=\"button\"\n onClick={toggle}\n aria-expanded={open}\n aria-controls={contentId}\n className={cn(\n \"flex w-full items-center gap-2 px-4 py-3 font-medium text-muted-foreground text-sm\",\n \"transition-colors hover:text-foreground\",\n className,\n )}\n {...props}\n >\n <ChevronDown\n aria-hidden=\"true\"\n className={cn(\"size-4 shrink-0 transition-transform duration-200\", open && \"rotate-180\")}\n />\n {children ?? (open ? \"Hide reasoning\" : \"Show reasoning\")}\n </button>\n )\n}\n\nfunction ReasoningContent({ className, ...props }: ComponentProps<\"div\">) {\n const { open, contentId } = useReasoning()\n if (!open) return null\n\n return (\n <div\n id={contentId}\n data-slot=\"reasoning-content\"\n role=\"region\"\n className={cn(\n \"border-border border-t px-4 py-3\",\n \"font-mono text-muted-foreground text-sm leading-relaxed\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Reasoning, ReasoningTrigger, ReasoningContent, useReasoning }\n","\"use client\"\n\nimport type { ComponentProps, ElementType } from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype ShimmerProps<T extends ElementType = \"p\"> = Omit<ComponentProps<\"p\">, \"as\"> & {\n /** The HTML element to render as */\n as?: T\n /** Animation duration in seconds */\n duration?: number\n /** Size of the shimmer gradient spread (0-1) */\n spread?: number\n}\n\nfunction Shimmer<T extends ElementType = \"p\">({\n as,\n className,\n duration = 2,\n spread = 0.3,\n style,\n ...props\n}: ShimmerProps<T>) {\n const Component = (as || \"p\") as ElementType\n\n return (\n <Component\n data-slot=\"shimmer\"\n role=\"status\"\n aria-label=\"Loading\"\n className={cn(\n \"animate-shimmer bg-clip-text text-transparent\",\n \"bg-[length:200%_100%]\",\n \"bg-gradient-to-r from-muted-foreground via-foreground to-muted-foreground\",\n className,\n )}\n style={{\n animationDuration: `${duration}s`,\n ...style,\n }}\n {...props}\n />\n )\n}\n\nexport { Shimmer }\nexport type { ShimmerProps }\n","\"use client\"\n\nimport { ChevronDown, ExternalLink } from \"lucide-react\"\nimport { type ComponentProps, createContext, useCallback, useContext, useId, useState } from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype SourcesContextValue = {\n open: boolean\n toggle: () => void\n contentId: string\n}\n\nconst SourcesContext = createContext<SourcesContextValue | null>(null)\n\nfunction Sources({\n defaultOpen = false,\n className,\n children,\n ...props\n}: ComponentProps<\"div\"> & { defaultOpen?: boolean }) {\n const [open, setOpen] = useState(defaultOpen)\n const toggle = useCallback(() => setOpen((o) => !o), [])\n const contentId = useId()\n\n return (\n <SourcesContext.Provider value={{ open, toggle, contentId }}>\n <div\n data-slot=\"sources\"\n data-state={open ? \"open\" : \"closed\"}\n className={cn(\"rounded-xl border border-border bg-card\", className)}\n {...props}\n >\n {children}\n </div>\n </SourcesContext.Provider>\n )\n}\n\nfunction SourcesTrigger({ className, children, ...props }: ComponentProps<\"button\">) {\n const ctx = useContext(SourcesContext)\n if (!ctx) throw new Error(\"SourcesTrigger must be used within <Sources>\")\n\n return (\n <button\n data-slot=\"sources-trigger\"\n type=\"button\"\n onClick={ctx.toggle}\n aria-expanded={ctx.open}\n aria-controls={ctx.contentId}\n className={cn(\n \"flex w-full items-center gap-2 px-4 py-3 font-medium text-muted-foreground text-sm\",\n \"transition-colors hover:text-foreground\",\n className,\n )}\n {...props}\n >\n <ChevronDown\n aria-hidden=\"true\"\n className={cn(\n \"size-4 shrink-0 transition-transform duration-200\",\n ctx.open && \"rotate-180\",\n )}\n />\n {children ?? `${ctx.open ? \"Hide\" : \"Show\"} sources`}\n </button>\n )\n}\n\nfunction SourcesContent({ className, ...props }: ComponentProps<\"div\">) {\n const ctx = useContext(SourcesContext)\n if (!ctx) throw new Error(\"SourcesContent must be used within <Sources>\")\n if (!ctx.open) return null\n\n return (\n <div\n id={ctx.contentId}\n data-slot=\"sources-content\"\n role=\"region\"\n className={cn(\"space-y-2 border-border border-t px-4 py-3\", className)}\n {...props}\n />\n )\n}\n\nfunction Source({\n href,\n title,\n description,\n favicon,\n className,\n ...props\n}: ComponentProps<\"a\"> & {\n title: string\n description?: string\n favicon?: string\n}) {\n return (\n <a\n data-slot=\"source\"\n href={href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={cn(\n \"flex items-start gap-3 rounded-lg p-3 transition-colors\",\n \"hover:bg-muted/50\",\n className,\n )}\n {...props}\n >\n {favicon && <img src={favicon} alt=\"\" className=\"mt-0.5 size-4 shrink-0 rounded\" />}\n <div className=\"min-w-0 flex-1\">\n <p className=\"truncate font-medium text-foreground text-sm\">{title}</p>\n {description && (\n <p className=\"mt-0.5 line-clamp-2 text-muted-foreground text-xs\">{description}</p>\n )}\n </div>\n <ExternalLink className=\"mt-0.5 size-3.5 shrink-0 text-muted-foreground\" />\n </a>\n )\n}\n\nexport { Sources, SourcesTrigger, SourcesContent, Source }\n","\"use client\"\n\nimport type { ComponentProps } from \"react\"\nimport { cn } from \"../lib/utils\"\n\nfunction Suggestions({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div data-slot=\"suggestions\" className={cn(\"flex flex-wrap gap-2\", className)} {...props} />\n )\n}\n\nfunction Suggestion({ className, ...props }: ComponentProps<\"button\">) {\n return (\n <button\n data-slot=\"suggestion\"\n type=\"button\"\n className={cn(\n \"inline-flex items-center gap-2 rounded-full border border-border bg-card px-4 py-2\",\n \"text-foreground text-sm transition-colors\",\n \"hover:bg-accent hover:text-accent-foreground\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Suggestions, Suggestion }\n","\"use client\"\n\nimport { Check, ChevronDown, Circle, Loader2 } from \"lucide-react\"\nimport { type ComponentProps, createContext, useCallback, useContext, useId, useState } from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype TaskContextValue = {\n open: boolean\n toggle: () => void\n contentId: string\n}\n\nconst TaskContext = createContext<TaskContextValue | null>(null)\n\ntype TaskStatus = \"pending\" | \"running\" | \"complete\" | \"error\"\n\nconst statusIcons: Record<TaskStatus, typeof Check> = {\n pending: Circle,\n running: Loader2,\n complete: Check,\n error: Circle,\n}\n\nfunction Task({\n defaultOpen = false,\n className,\n children,\n ...props\n}: ComponentProps<\"div\"> & { defaultOpen?: boolean }) {\n const [open, setOpen] = useState(defaultOpen)\n const toggle = useCallback(() => setOpen((o) => !o), [])\n const contentId = useId()\n\n return (\n <TaskContext.Provider value={{ open, toggle, contentId }}>\n <div\n data-slot=\"task\"\n data-state={open ? \"open\" : \"closed\"}\n className={cn(\"rounded-xl border border-border bg-card\", className)}\n {...props}\n >\n {children}\n </div>\n </TaskContext.Provider>\n )\n}\n\nfunction TaskTrigger({\n status = \"pending\",\n className,\n children,\n ...props\n}: ComponentProps<\"button\"> & { status?: TaskStatus }) {\n const ctx = useContext(TaskContext)\n if (!ctx) throw new Error(\"TaskTrigger must be used within <Task>\")\n\n const Icon = statusIcons[status]\n\n return (\n <button\n data-slot=\"task-trigger\"\n type=\"button\"\n onClick={ctx.toggle}\n aria-expanded={ctx.open}\n aria-controls={ctx.contentId}\n className={cn(\n \"flex w-full items-center gap-2.5 px-4 py-3 text-sm\",\n \"text-foreground transition-colors hover:bg-muted/50\",\n className,\n )}\n {...props}\n >\n <Icon\n aria-hidden=\"true\"\n className={cn(\n \"size-4 shrink-0\",\n status === \"complete\" && \"text-emerald-500\",\n status === \"running\" && \"animate-spin text-primary\",\n status === \"error\" && \"text-red-500\",\n status === \"pending\" && \"text-muted-foreground\",\n )}\n />\n <span className=\"flex-1 truncate text-left font-medium\">{children}</span>\n <ChevronDown\n aria-hidden=\"true\"\n className={cn(\n \"size-4 shrink-0 text-muted-foreground transition-transform duration-200\",\n ctx.open && \"rotate-180\",\n )}\n />\n </button>\n )\n}\n\nfunction TaskContent({ className, ...props }: ComponentProps<\"div\">) {\n const ctx = useContext(TaskContext)\n if (!ctx?.open) return null\n\n return (\n <div\n id={ctx.contentId}\n data-slot=\"task-content\"\n role=\"region\"\n className={cn(\n \"space-y-2 border-border border-t px-4 py-3 text-muted-foreground text-sm\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction TaskItem({\n status = \"pending\",\n className,\n ...props\n}: ComponentProps<\"div\"> & { status?: TaskStatus }) {\n const Icon = statusIcons[status]\n\n return (\n <div data-slot=\"task-item\" className={cn(\"flex items-center gap-2 py-1\", className)} {...props}>\n <Icon\n className={cn(\n \"size-3.5 shrink-0\",\n status === \"complete\" && \"text-emerald-500\",\n status === \"running\" && \"animate-spin text-primary\",\n status === \"error\" && \"text-red-500\",\n status === \"pending\" && \"text-muted-foreground/50\",\n )}\n />\n <span\n className={cn(\"text-sm\", status === \"complete\" && \"text-muted-foreground line-through\")}\n >\n {props.children}\n </span>\n </div>\n )\n}\n\nfunction TaskItemFile({\n filename,\n className,\n ...props\n}: ComponentProps<\"span\"> & { filename: string }) {\n return (\n <span\n data-slot=\"task-item-file\"\n className={cn(\n \"inline-flex items-center rounded bg-muted px-1.5 py-0.5 font-mono text-xs\",\n className,\n )}\n {...props}\n >\n {filename}\n </span>\n )\n}\n\nexport { Task, TaskTrigger, TaskContent, TaskItem, TaskItemFile }\nexport type { TaskStatus }\n","\"use client\"\n\nimport { cva } from \"class-variance-authority\"\nimport { ChevronDown, Terminal } from \"lucide-react\"\nimport { type ComponentProps, createContext, useCallback, useContext, useId, useState } from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype ToolContextValue = {\n open: boolean\n toggle: () => void\n contentId: string\n}\n\nconst ToolContext = createContext<ToolContextValue | null>(null)\n\ntype ToolStatus = \"pending\" | \"running\" | \"success\" | \"error\"\n\nconst statusBadgeVariants = cva(\n \"inline-flex items-center rounded-full px-2 py-0.5 text-[10px] font-medium uppercase tracking-wider\",\n {\n variants: {\n status: {\n pending: \"bg-muted text-muted-foreground\",\n running: \"bg-primary/10 text-primary\",\n success: \"bg-emerald-500/10 text-emerald-600 dark:text-emerald-400\",\n error: \"bg-red-500/10 text-red-600 dark:text-red-400\",\n },\n },\n defaultVariants: { status: \"pending\" },\n },\n)\n\nfunction getStatusLabel(status: ToolStatus): string {\n switch (status) {\n case \"pending\":\n return \"Pending\"\n case \"running\":\n return \"Running\"\n case \"success\":\n return \"Done\"\n case \"error\":\n return \"Error\"\n }\n}\n\nfunction Tool({\n defaultOpen = false,\n className,\n children,\n ...props\n}: ComponentProps<\"div\"> & { defaultOpen?: boolean }) {\n const [open, setOpen] = useState(defaultOpen)\n const toggle = useCallback(() => setOpen((o) => !o), [])\n const contentId = useId()\n\n return (\n <ToolContext.Provider value={{ open, toggle, contentId }}>\n <div\n data-slot=\"tool\"\n data-state={open ? \"open\" : \"closed\"}\n className={cn(\"rounded-xl border border-border bg-card\", className)}\n {...props}\n >\n {children}\n </div>\n </ToolContext.Provider>\n )\n}\n\nfunction ToolHeader({\n name,\n status = \"pending\",\n icon,\n className,\n ...props\n}: ComponentProps<\"button\"> & {\n name: string\n status?: ToolStatus\n icon?: React.ReactNode\n}) {\n const ctx = useContext(ToolContext)\n if (!ctx) throw new Error(\"ToolHeader must be used within <Tool>\")\n\n return (\n <button\n data-slot=\"tool-header\"\n type=\"button\"\n onClick={ctx.toggle}\n aria-expanded={ctx.open}\n aria-controls={ctx.contentId}\n className={cn(\n \"flex w-full items-center gap-2.5 px-4 py-3 text-sm transition-colors hover:bg-muted/50\",\n className,\n )}\n {...props}\n >\n {icon ?? <Terminal aria-hidden=\"true\" className=\"size-4 shrink-0 text-muted-foreground\" />}\n <span className=\"flex-1 truncate text-left font-medium font-mono text-foreground\">\n {name}\n </span>\n <span className={statusBadgeVariants({ status })}>{getStatusLabel(status)}</span>\n <ChevronDown\n aria-hidden=\"true\"\n className={cn(\n \"size-4 shrink-0 text-muted-foreground transition-transform duration-200\",\n ctx.open && \"rotate-180\",\n )}\n />\n </button>\n )\n}\n\nfunction ToolContent({ className, ...props }: ComponentProps<\"div\">) {\n const ctx = useContext(ToolContext)\n if (!ctx?.open) return null\n\n return (\n <div\n id={ctx.contentId}\n data-slot=\"tool-content\"\n role=\"region\"\n className={cn(\"border-border border-t\", className)}\n {...props}\n />\n )\n}\n\nfunction ToolInput({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div data-slot=\"tool-input\" className={cn(\"space-y-1 px-4 py-3\", className)} {...props}>\n <p className=\"font-medium text-[10px] text-muted-foreground uppercase tracking-wider\">\n Input\n </p>\n <pre className=\"overflow-x-auto rounded-lg bg-muted p-3 font-mono text-xs\">\n {props.children}\n </pre>\n </div>\n )\n}\n\nfunction ToolOutput({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"tool-output\"\n className={cn(\"space-y-1 border-border border-t px-4 py-3\", className)}\n {...props}\n >\n <p className=\"font-medium text-[10px] text-muted-foreground uppercase tracking-wider\">\n Output\n </p>\n <pre className=\"overflow-x-auto rounded-lg bg-muted p-3 font-mono text-xs\">\n {props.children}\n </pre>\n </div>\n )\n}\n\nexport { Tool, ToolHeader, ToolContent, ToolInput, ToolOutput, statusBadgeVariants, getStatusLabel }\nexport type { ToolStatus }\n"]}
1
+ {"version":3,"sources":["../src/chatbot/attachments.tsx","../src/chatbot/chain-of-thought.tsx","../src/chatbot/checkpoint.tsx","../src/chatbot/confirmation.tsx","../src/chatbot/context.tsx","../src/chatbot/conversation.tsx","../src/chatbot/inline-citation.tsx","../src/chatbot/message.tsx","../src/chatbot/model-selector.tsx","../src/chatbot/plan.tsx","../src/chatbot/prompt-input.tsx","../src/chatbot/queue.tsx","../src/chatbot/reasoning.tsx","../src/chatbot/shimmer.tsx","../src/chatbot/sources.tsx","../src/chatbot/suggestion.tsx","../src/chatbot/task.tsx","../src/chatbot/tool.tsx"],"names":["jsx","jsxs","X","useState","useCallback","_a","createContext","cva","useContext","next","useEffect","ChevronDown","useRef","Search","Check","useId","Fragment","ExternalLink"],"mappings":";;;;;;;AAMA,SAAS,YAAY,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EANvB,GAMqB,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AACrB,EAAA,uBACE,GAAA,CAAC,wBAAI,WAAA,EAAU,aAAA,EAAc,WAAW,EAAA,CAAG,sBAAA,EAAwB,SAAS,CAAA,EAAA,EAAO,KAAA,CAAO,CAAA;AAE9F;AAIA,IAAM,SAAA,GAAiD;AAAA,EACrD,KAAA,EAAO,SAAA;AAAA,EACP,KAAA,EAAO,SAAA;AAAA,EACP,KAAA,EAAO,SAAA;AAAA,EACP,IAAA,EAAM;AACR,CAAA;AAEA,SAAS,WAAW,EAAA,EAYjB;AAZiB,EAAA,IAAA,EAAA,GAAA,EAAA,EAClB;AAAA,IAAA,IAAA;AAAA,IACA,IAAA,GAAO,MAAA;AAAA,IACP,GAAA;AAAA,IACA,QAAA;AAAA,IACA;AAAA,GA1BF,GAqBoB,EAAA,EAMf,KAAA,GAAA,SAAA,CANe,EAAA,EAMf;AAAA,IALH,MAAA;AAAA,IACA,MAAA;AAAA,IACA,KAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAQA,EAAA,MAAM,IAAA,GAAO,UAAU,IAAI,CAAA;AAE3B,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,YAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,qGAAA;AAAA,QACA,2BAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA,CAAA,EAPL;AAAA,MASE,QAAA,EAAA;AAAA,QAAA,IAAA,KAAS,OAAA,IAAW,GAAA,mBACnB,GAAA,CAAC,KAAA,EAAA,EAAI,KAAK,GAAA,EAAK,GAAA,EAAK,IAAA,EAAM,SAAA,EAAU,6BAAA,EAA8B,CAAA,mBAElE,GAAA,CAAC,IAAA,EAAA,EAAK,WAAU,uCAAA,EAAwC,CAAA;AAAA,wBAE1D,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kCAAA,EAAoC,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,QACxD,QAAA,oBACC,GAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,OAAA,EAAS,QAAA;AAAA,YACT,YAAA,EAAY,UAAU,IAAI,CAAA,CAAA;AAAA,YAC1B,SAAA,EAAU,+GAAA;AAAA,YAEV,QAAA,kBAAA,GAAA,CAAC,CAAA,EAAA,EAAE,aAAA,EAAY,MAAA,EAAO,WAAU,QAAA,EAAS;AAAA;AAAA;AAC3C;AAAA,KAAA;AAAA,GAEJ;AAEJ;ACpDA,IAAM,qBAAA,GAAwB,cAAiD,IAAI,CAAA;AAEnF,SAAS,eAAe,EAAA,EAK8B;AAL9B,EAAA,IAAA,EAAA,GAAA,EAAA,EACtB;AAAA,IAAA,WAAA,GAAc,KAAA;AAAA,IACd,SAAA;AAAA,IACA;AAAA,GAjBF,GAcwB,EAAA,EAInB,KAAA,GAAA,SAAA,CAJmB,EAAA,EAInB;AAAA,IAHH,aAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAI,SAAS,WAAW,CAAA;AAC5C,EAAA,MAAM,MAAA,GAAS,WAAA,CAAY,MAAM,OAAA,CAAQ,CAAC,MAAM,CAAC,CAAC,CAAA,EAAG,EAAE,CAAA;AACvD,EAAA,MAAM,YAAY,KAAA,EAAM;AAExB,EAAA,uBACEA,GAAAA,CAAC,qBAAA,CAAsB,QAAA,EAAtB,EAA+B,KAAA,EAAO,EAAE,IAAA,EAAM,MAAA,EAAQ,SAAA,EAAU,EAC/D,QAAA,kBAAAA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,kBAAA;AAAA,MACV,YAAA,EAAY,OAAO,MAAA,GAAS,QAAA;AAAA,MAC5B,SAAA,EAAW,EAAA,CAAG,yCAAA,EAA2C,SAAS;AAAA,KAAA,EAC9D,KAAA,CAAA,EAJL;AAAA,MAME;AAAA,KAAA;AAAA,GACH,EACF,CAAA;AAEJ;AAEA,SAAS,qBAAqB,EAAA,EAA6D;AAA7D,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,aAAW,QAAA,EAtC3C,GAsC8B,IAA0B,KAAA,GAAA,SAAA,CAA1B,EAAA,EAA0B,CAAxB,WAAA,EAAW,UAAA,CAAA,CAAA;AACzC,EAAA,MAAM,GAAA,GAAM,WAAW,qBAAqB,CAAA;AAC5C,EAAA,IAAI,CAAC,GAAA,EAAK,MAAM,IAAI,MAAM,2DAA2D,CAAA;AAErF,EAAA,uBACEC,IAAAA;AAAA,IAAC,QAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,yBAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,SAAS,GAAA,CAAI,MAAA;AAAA,MACb,iBAAe,GAAA,CAAI,IAAA;AAAA,MACnB,iBAAe,GAAA,CAAI,SAAA;AAAA,MACnB,SAAA,EAAW,EAAA;AAAA,QACT,8DAAA;AAAA,QACA,+DAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA,CAAA,EAXL;AAAA,MAaC,QAAA,EAAA;AAAA,wBAAAD,GAAAA;AAAA,UAAC,WAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAY,MAAA;AAAA,YACZ,SAAA,EAAW,EAAA;AAAA,cACT,mDAAA;AAAA,cACA,IAAI,IAAA,IAAQ;AAAA;AACd;AAAA,SACF;AAAA,QACC,QAAA,IAAA,IAAA,GAAA,QAAA,GAAY;AAAA;AAAA,KAAA;AAAA,GACf;AAEJ;AAEA,SAAS,sBAAsB,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EApEjC,GAoE+B,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AAC/B,EAAA,MAAM,GAAA,GAAM,WAAW,qBAAqB,CAAA;AAC5C,EAAA,IAAI,EAAC,GAAA,IAAA,IAAA,GAAA,MAAA,GAAA,GAAA,CAAK,IAAA,CAAA,EAAM,OAAO,IAAA;AAEvB,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,IAAI,GAAA,CAAI,SAAA;AAAA,MACR,WAAA,EAAU,0BAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,SAAA,EAAW,EAAA,CAAG,4CAAA,EAA8C,SAAS;AAAA,KAAA,EACjE,KAAA;AAAA,GACN;AAEJ;AAEA,SAAS,mBAAmB,EAAA,EASzB;AATyB,EAAA,IAAA,EAAA,GAAA,EAAA,EAC1B;AAAA,IAAA,IAAA;AAAA,IACA,MAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,GAvFF,GAmF4B,EAAA,EAKvB,KAAA,GAAA,SAAA,CALuB,EAAA,EAKvB;AAAA,IAJH,MAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAMA,EAAA,uBACEC,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,uBAAA;AAAA,MACV,aAAA,EAAa,MAAA;AAAA,MACb,SAAA,EAAW,EAAA,CAAG,YAAA,EAAc,SAAS;AAAA,KAAA,EACjC,KAAA,CAAA,EAJL;AAAA,MAMC,QAAA,EAAA;AAAA,wBAAAD,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,EAAA;AAAA,cACT,iFAAA;AAAA,cACA,WAAW,UAAA,IAAc,oCAAA;AAAA,cACzB,WAAW,QAAA,IAAY,mDAAA;AAAA,cAAA,CACtB,CAAC,MAAA,IAAU,MAAA,KAAW,SAAA,KAAc;AAAA,aACvC;AAAA,YAEC,QAAA,EAAA;AAAA;AAAA,SACH;AAAA,wBACAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0CAA0C,QAAA,EAAS;AAAA;AAAA,KAAA;AAAA,GACpE;AAEJ;AAEA,SAAS,4BAA4B,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAnHvC,GAmHqC,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AACrC,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,iCAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,gBAAA,EAAkB,SAAS;AAAA,KAAA,EACrC,KAAA;AAAA,GACN;AAEJ;AAEA,SAAS,2BAA2B,EAAA,EAKqB;AALrB,EAAA,IAAA,EAAA,GAAA,EAAA,EAClC;AAAA,IAAA,KAAA;AAAA,IACA,GAAA;AAAA,IACA;AAAA,GAhIF,GA6HoC,EAAA,EAI/B,KAAA,GAAA,SAAA,CAJ+B,EAAA,EAI/B;AAAA,IAHH,OAAA;AAAA,IACA,KAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,uBACEC,IAAAA;AAAA,IAAC,GAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,gCAAA;AAAA,MACV,IAAA,EAAM,GAAA;AAAA,MACN,MAAA,EAAO,QAAA;AAAA,MACP,GAAA,EAAI,qBAAA;AAAA,MACJ,SAAA,EAAW,EAAA;AAAA,QACT,oFAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA,CAAA,EATL;AAAA,MAWC,QAAA,EAAA;AAAA,wBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAO,SAAA,EAAU,yCAAA,EAA0C,CAAA;AAAA,wBAC5DA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,4BAA4B,QAAA,EAAA,KAAA,EAAM;AAAA;AAAA,KAAA;AAAA,GACpD;AAEJ;AC7IA,SAAS,WAAW,EAAA,EAA0D;AAA1D,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,aAAW,QAAA,EANjC,GAMoB,IAA0B,KAAA,GAAA,SAAA,CAA1B,EAAA,EAA0B,CAAxB,WAAA,EAAW,UAAA,CAAA,CAAA;AAC/B,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,YAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,+FAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA,CAAA,EANL;AAAA,MAQE;AAAA,KAAA;AAAA,GACH;AAEJ;AAEA,SAAS,eAAe,EAAA,EAI0B;AAJ1B,EAAA,IAAA,EAAA,GAAA,EAAA,EACtB;AAAA,IAAA,IAAA;AAAA,IACA;AAAA,GAvBF,GAqBwB,EAAA,EAGnB,KAAA,GAAA,SAAA,CAHmB,EAAA,EAGnB;AAAA,IAFH,MAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,uBACEA,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,iBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,gCAAA,EAAkC,SAAS;AAAA,KAAA,EACrD,KAAA,CAAA,EAHL;AAAA,MAKE,QAAA,EAAA,IAAA,IAAA,IAAA,GAAA,IAAA,mBAAQA,GAAAA,CAAC,QAAA,EAAA,EAAS,WAAU,QAAA,EAAS;AAAA,KAAA;AAAA,GACxC;AAEJ;AAEA,SAAS,kBAAkB,EAAA,EAAmD;AAAnD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EArC7B,GAqC2B,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AAC3B,EAAA,uBACEA,GAAAA;AAAA,IAAC,QAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,oBAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,SAAA,EAAW,EAAA;AAAA,QACT,iGAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA;AAAA,GACN;AAEJ;AC1CA,IAAM,oBAAA,GAAuB,IAAI,iCAAA,EAAmC;AAAA,EAClE,QAAA,EAAU;AAAA,IACR,MAAA,EAAQ;AAAA,MACN,OAAA,EAAS,uBAAA;AAAA,MACT,QAAA,EAAU,wCAAA;AAAA,MACV,QAAA,EAAU;AAAA;AACZ,GACF;AAAA,EACA,eAAA,EAAiB,EAAE,MAAA,EAAQ,SAAA;AAC7B,CAAC;AAED,SAAS,aAAa,EAAA,EAKgD;AALhD,EAAA,IAAA,EAAA,GAAA,EAAA,EACpB;AAAA,IAAA,MAAA,GAAS,SAAA;AAAA,IACT,SAAA;AAAA,IACA;AAAA,GArBF,GAkBsB,EAAA,EAIjB,KAAA,GAAA,SAAA,CAJiB,EAAA,EAIjB;AAAA,IAHH,QAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,cAAA;AAAA,MACV,aAAA,EAAa,MAAA;AAAA,MACb,IAAA,EAAK,OAAA;AAAA,MACL,WAAW,EAAA,CAAG,oBAAA,CAAqB,EAAE,MAAA,EAAQ,GAAG,SAAS;AAAA,KAAA,EACrD,KAAA,CAAA,EALL;AAAA,MAOE;AAAA,KAAA;AAAA,GACH;AAEJ;AAEA,SAAS,oBAAoB,EAAA,EAU1B;AAV0B,EAAA,IAAA,EAAA,GAAA,EAAA,EAC3B;AAAA,IAAA,IAAA;AAAA,IACA,KAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GAzCF,GAqC6B,EAAA,EAKxB,KAAA,GAAA,SAAA,CALwB,EAAA,EAKxB;AAAA,IAJH,MAAA;AAAA,IACA,OAAA;AAAA,IACA,aAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAOA,EAAA,uBACEC,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,sBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,wBAAA,EAA0B,SAAS;AAAA,KAAA,EAC7C,KAAA,CAAA,EAHL;AAAA,MAKE,QAAA,EAAA;AAAA,QAAA,IAAA,IAAA,IAAA,GAAA,IAAA,mBACCD,GAAAA,CAAC,aAAA,EAAA,EAAc,aAAA,EAAY,MAAA,EAAO,WAAU,uCAAA,EAAwC,CAAA;AAAA,wBAEtFC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,SAAA,EACb,QAAA,EAAA;AAAA,0BAAAD,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,qCAAA,EAAuC,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,UACzD,+BAAeA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,wCAAwC,QAAA,EAAA,WAAA,EAAY;AAAA,SAAA,EACnF;AAAA;AAAA,KAAA;AAAA,GACF;AAEJ;AAEA,SAAS,qBAAqB,EAAA,EAA0D;AAA1D,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,aAAW,QAAA,EAjE3C,GAiE8B,IAA0B,KAAA,GAAA,SAAA,CAA1B,EAAA,EAA0B,CAAxB,WAAA,EAAW,UAAA,CAAA,CAAA;AACzC,EAAA,uBACEC,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,uBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,wEAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA,CAAA,EANL;AAAA,MAQC,QAAA,EAAA;AAAA,wBAAAD,GAAAA,CAAC,KAAA,EAAA,EAAM,SAAA,EAAU,iBAAA,EAAkB,CAAA;AAAA,QAClC,QAAA,IAAA,IAAA,GAAA,QAAA,GAAY;AAAA;AAAA,KAAA;AAAA,GACf;AAEJ;AAEA,SAAS,qBAAqB,EAAA,EAA0D;AAA1D,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,aAAW,QAAA,EAjF3C,GAiF8B,IAA0B,KAAA,GAAA,SAAA,CAA1B,EAAA,EAA0B,CAAxB,WAAA,EAAW,UAAA,CAAA,CAAA;AACzC,EAAA,uBACEC,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,uBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,gEAAA,EAAkE,SAAS;AAAA,KAAA,EACrF,KAAA,CAAA,EAHL;AAAA,MAKC,QAAA,EAAA;AAAA,wBAAAD,GAAAA,CAACE,CAAAA,EAAA,EAAE,SAAA,EAAU,iBAAA,EAAkB,CAAA;AAAA,QAC9B,QAAA,IAAA,IAAA,GAAA,QAAA,GAAY;AAAA;AAAA,KAAA;AAAA,GACf;AAEJ;AAEA,SAAS,oBAAoB,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EA9F/B,GA8F6B,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AAC7B,EAAA,uBACEF,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,sBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,yBAAA,EAA2B,SAAS;AAAA,KAAA,EAC9C,KAAA;AAAA,GACN;AAEJ;AAEA,SAAS,mBAAmB,EAAA,EAMzB;AANyB,EAAA,IAAA,EAAA,GAAA,EAAA,EAC1B;AAAA,IAAA,OAAA,GAAU,SAAA;AAAA,IACV;AAAA,GA1GF,GAwG4B,EAAA,EAGvB,KAAA,GAAA,SAAA,CAHuB,EAAA,EAGvB;AAAA,IAFH,SAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAKA,EAAA,uBACEA,GAAAA;AAAA,IAAC,QAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,qBAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,SAAA,EAAW,EAAA;AAAA,QACT,sGAAA;AAAA,QACA,OAAA,KAAY,gBACR,kEAAA,GACA,wDAAA;AAAA,QACJ;AAAA;AACF,KAAA,EACI,KAAA;AAAA,GACN;AAEJ;ACvHA,SAAS,QAAQ,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EANnB,GAMiB,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AACjB,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,SAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,uDAAA,EAAyD,SAAS;AAAA,KAAA,EAC5E,KAAA;AAAA,GACN;AAEJ;AAEA,SAAS,cAAc,EAAA,EAA0D;AAA1D,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,aAAW,QAAA,EAhBpC,GAgBuB,IAA0B,KAAA,GAAA,SAAA,CAA1B,EAAA,EAA0B,CAAxB,WAAA,EAAW,UAAA,CAAA,CAAA;AAClC,EAAA,uBACEC,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,gBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,6DAAA,EAA+D,SAAS;AAAA,KAAA,EAClF,KAAA,CAAA,EAHL;AAAA,MAKC,QAAA,EAAA;AAAA,wBAAAD,GAAAA,CAAC,IAAA,EAAA,EAAK,aAAA,EAAY,MAAA,EAAO,WAAU,uCAAA,EAAwC,CAAA;AAAA,QAC1E,QAAA,IAAA,IAAA,GAAA,QAAA,GAAY;AAAA;AAAA,KAAA;AAAA,GACf;AAEJ;AAEA,SAAS,YAAY,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EA7BvB,GA6BqB,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AACrB,EAAA,uBAAOA,GAAAA,CAAC,KAAA,EAAA,cAAA,CAAA,EAAI,WAAA,EAAU,cAAA,EAAe,WAAW,EAAA,CAAG,WAAA,EAAa,SAAS,CAAA,EAAA,EAAO,KAAA,CAAO,CAAA;AACzF;AAEA,SAAS,aAAa,EAAA,EAUnB;AAVmB,EAAA,IAAA,EAAA,GAAA,EAAA,EACpB;AAAA,IAAA,KAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA;AAAA,IACA;AAAA,GArCF,GAiCsB,EAAA,EAKjB,KAAA,GAAA,SAAA,CALiB,EAAA,EAKjB;AAAA,IAJH,OAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAOA,EAAA,MAAM,UAAA,GAAa,KAAK,GAAA,CAAI,GAAA,EAAK,KAAK,KAAA,CAAO,IAAA,GAAO,KAAA,GAAS,GAAG,CAAC,CAAA;AACjE,EAAA,MAAM,SAAS,UAAA,GAAa,EAAA;AAE5B,EAAA,uBACEC,IAAAA,CAAC,KAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAI,WAAA,EAAU,eAAA,EAAgB,SAAA,EAAW,EAAA,CAAG,aAAA,EAAe,SAAS,CAAA,EAAA,EAAO,KAAA,CAAA,EAA3E,EACC,QAAA,EAAA;AAAA,oBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2CAAA,EACb,QAAA,EAAA;AAAA,sBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uBAAA,EAAyB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,sBAC/CC,IAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,EAAA,CAAG,wBAAA,EAA0B,MAAA,GAAS,mBAAmB,iBAAiB,CAAA;AAAA,UAEpF,QAAA,EAAA;AAAA,YAAA,IAAA,CAAK,cAAA,EAAe;AAAA,YAAE,KAAA;AAAA,YAAI,MAAM,cAAA;AAAe;AAAA;AAAA;AAClD,KAAA,EACF,CAAA;AAAA,oBACAD,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,aAAA;AAAA,QACL,eAAA,EAAe,IAAA;AAAA,QACf,eAAA,EAAe,CAAA;AAAA,QACf,eAAA,EAAe,KAAA;AAAA,QACf,YAAA,EAAY,KAAA;AAAA,QACZ,SAAA,EAAU,6CAAA;AAAA,QAEV,QAAA,kBAAAA,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,EAAA;AAAA,cACT,iDAAA;AAAA,cACA,SAAS,cAAA,GAAiB;AAAA,aAC5B;AAAA,YACA,KAAA,EAAO,EAAE,KAAA,EAAO,CAAA,EAAG,UAAU,CAAA,CAAA,CAAA;AAAI;AAAA;AACnC;AAAA;AACF,GAAA,EAAA,CACF,CAAA;AAEJ;AC1DA,SAAS,aAAa,EAAA,EAA0D;AAA1D,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,aAAW,QAAA,EAjBnC,GAiBsB,IAA0B,KAAA,GAAA,SAAA,CAA1B,EAAA,EAA0B,CAAxB,WAAA,EAAW,UAAA,CAAA,CAAA;AACjC,EAAA,MAAM,GAAA,GAAM,OAAuB,IAAI,CAAA;AACvC,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAIG,SAAS,IAAI,CAAA;AAEjD,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,KAAK,GAAA,CAAI,OAAA;AACf,IAAA,IAAI,CAAC,EAAA,EAAI;AAET,IAAA,SAAS,YAAA,GAAe;AACtB,MAAA,MAAM,SAAA,GAAY,GAAA;AAClB,MAAA,aAAA,CAAc,GAAI,YAAA,GAAe,EAAA,CAAI,SAAA,GAAY,EAAA,CAAI,eAAe,SAAS,CAAA;AAAA,IAC/E;AAEA,IAAA,EAAA,CAAG,iBAAiB,QAAA,EAAU,YAAA,EAAc,EAAE,OAAA,EAAS,MAAM,CAAA;AAC7D,IAAA,OAAO,MAAM,EAAA,CAAG,mBAAA,CAAoB,QAAA,EAAU,YAAY,CAAA;AAAA,EAC5D,CAAA,EAAG,EAAE,CAAA;AAGL,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,UAAA,IAAc,IAAI,OAAA,EAAS;AAC7B,MAAA,GAAA,CAAI,OAAA,CAAQ,SAAA,GAAY,GAAA,CAAI,OAAA,CAAQ,YAAA;AAAA,IACtC;AAAA,EACF,CAAC,CAAA;AAED,EAAA,MAAM,cAAA,GAAiBC,YAAY,MAAM;AAzC3C,IAAA,IAAAC,GAAAA;AA0CI,IAAA,CAAAA,GAAAA,GAAA,GAAA,CAAI,OAAA,KAAJ,IAAA,GAAA,MAAA,GAAAA,GAAAA,CAAa,QAAA,CAAS,EAAE,GAAA,EAAK,GAAA,CAAI,OAAA,CAAQ,YAAA,EAAc,QAAA,EAAU,QAAA,EAAS,CAAA;AAAA,EAC5E,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,uBACEJ,IAAAA,CAAC,KAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAI,WAAA,EAAU,cAAA,EAAe,SAAA,EAAW,EAAA,CAAG,wBAAA,EAA0B,SAAS,CAAA,EAAA,EAAO,KAAA,CAAA,EAArF,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,SAAI,GAAA,EAAU,IAAA,EAAK,OAAM,WAAA,EAAU,QAAA,EAAS,SAAA,EAAU,wBAAA,EACpD,QAAA,EACH,CAAA;AAAA,IACC,CAAC,UAAA,oBAAcA,GAAAA,CAAC,wBAAA,EAAA,EAAyB,SAAS,cAAA,EAAgB;AAAA,GAAA,EAAA,CACrE,CAAA;AAEJ;AAMA,SAAS,oBAAoB,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EA3D/B,GA2D6B,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AAC7B,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,sBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,yBAAA,EAA2B,SAAS;AAAA,KAAA,EAC9C,KAAA;AAAA,GACN;AAEJ;AAMA,SAAS,uBAAuB,EAAA,EAW7B;AAX6B,EAAA,IAAA,EAAA,GAAA,EAAA,EAC9B;AAAA,IAAA,KAAA,GAAQ,iBAAA;AAAA,IACR,WAAA,GAAc,2CAAA;AAAA,IACd,IAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,GA9EF,GAyEgC,EAAA,EAM3B,KAAA,GAAA,SAAA,CAN2B,EAAA,EAM3B;AAAA,IALH,OAAA;AAAA,IACA,aAAA;AAAA,IACA,MAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAOA,EAAA,uBACEC,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,0BAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,wEAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA,CAAA,EANL;AAAA,MAQE,QAAA,EAAA;AAAA,QAAA,IAAA,IAAA,IAAA,GAAA,IAAA,mBAAQD,GAAAA,CAAC,aAAA,EAAA,EAAc,aAAA,EAAY,MAAA,EAAO,WAAU,kCAAA,EAAmC,CAAA;AAAA,wBACxFC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EACb,QAAA,EAAA;AAAA,0BAAAD,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,qCAAA,EAAuC,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,0BAC1DA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,iCAAiC,QAAA,EAAA,WAAA,EAAY;AAAA,SAAA,EAC5D,CAAA;AAAA,QACC;AAAA;AAAA,KAAA;AAAA,GACH;AAEJ;AAMA,SAAS,yBAAyB,EAAA,EAAmD;AAAnD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EA5GpC,GA4GkC,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AAClC,EAAA,uBACEC,IAAAA;AAAA,IAAC,QAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,4BAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,SAAA,EAAW,EAAA;AAAA,QACT,6CAAA;AAAA,QACA,wFAAA;AAAA,QACA,qDAAA;AAAA,QACA,yDAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA,CAAA,EAVL;AAAA,MAYC,QAAA,EAAA;AAAA,wBAAAD,GAAAA,CAAC,SAAA,EAAA,EAAU,SAAA,EAAU,QAAA,EAAS,CAAA;AAAA,QAAE;AAAA;AAAA,KAAA;AAAA,GAElC;AAEJ;AAMA,SAAS,qBAAqB,EAAA,EAU3B;AAV2B,EAAA,IAAA,EAAA,GAAA,EAAA,EAC5B;AAAA,IAAA,QAAA;AAAA,IACA,QAAA,GAAW,iBAAA;AAAA,IACX,aAAA;AAAA,IACA;AAAA,GAxIF,GAoI8B,EAAA,EAKzB,KAAA,GAAA,SAAA,CALyB,EAAA,EAKzB;AAAA,IAJH,UAAA;AAAA,IACA,UAAA;AAAA,IACA,eAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAOA,EAAA,MAAM,cAAA,GAAiBI,YAAY,MAAM;AACvC,IAAA,MAAM,KAAK,QAAA,CACR,GAAA;AAAA,MACC,CAAC,KAAK,CAAA,KAAG;AAlJjB,QAAA,IAAAC,GAAAA;AAmJU,QAAA,OAAA,CAAAA,GAAAA,GAAA,aAAA,IAAA,IAAA,GAAA,MAAA,GAAA,aAAA,CAAgB,GAAA,EAAK,CAAA,CAAA,KAArB,OAAAA,GAAAA,GACA,CAAA,GAAA,EAAM,GAAA,CAAI,IAAA,KAAS,SAAS,KAAA,GAAQ,GAAA,CAAI,IAAA,KAAS,WAAA,GAAc,cAAc,QAAQ;;AAAA,EAAO,IAAI,OAAO,CAAA,CAAA;AAAA,MAAA;AAAA,KAC3G,CACC,KAAK,aAAa,CAAA;AAErB,IAAA,MAAM,IAAA,GAAO,IAAI,IAAA,CAAK,CAAC,EAAE,CAAA,EAAG,EAAE,IAAA,EAAM,eAAA,EAAiB,CAAA;AACrD,IAAA,MAAM,GAAA,GAAM,GAAA,CAAI,eAAA,CAAgB,IAAI,CAAA;AACpC,IAAA,MAAM,CAAA,GAAI,QAAA,CAAS,aAAA,CAAc,GAAG,CAAA;AACpC,IAAA,CAAA,CAAE,IAAA,GAAO,GAAA;AACT,IAAA,CAAA,CAAE,QAAA,GAAW,QAAA;AACb,IAAA,CAAA,CAAE,KAAA,EAAM;AACR,IAAA,GAAA,CAAI,gBAAgB,GAAG,CAAA;AAAA,EACzB,CAAA,EAAG,CAAC,QAAA,EAAU,QAAA,EAAU,aAAa,CAAC,CAAA;AAEtC,EAAA,uBACEJ,IAAAA;AAAA,IAAC,QAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,uBAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,OAAA,EAAS,cAAA;AAAA,MACT,SAAA,EAAW,EAAA;AAAA,QACT,mEAAA;AAAA,QACA,+DAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA,CAAA,EATL;AAAA,MAWC,QAAA,EAAA;AAAA,wBAAAD,GAAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,UAAA,EAAW,CAAA;AAAA,QAAE;AAAA;AAAA,KAAA;AAAA,GAEnC;AAEJ;AC3KA,SAAS,eAAe,EAAA,EAarB;AAbqB,EAAA,IAAA,EAAA,GAAA,EAAA,EACtB;AAAA,IAAA,KAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA;AAAA,IACA,WAAA;AAAA,IACA,QAAA;AAAA,IACA;AAAA,GAZF,GAMwB,EAAA,EAOnB,KAAA,GAAA,SAAA,CAPmB,EAAA,EAOnB;AAAA,IANH,OAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,aAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAQA,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIG,SAAS,KAAK,CAAA;AAE9C,EAAA,uBACEF,IAAAA;AAAA,IAAC,MAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,iBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,qCAAA,EAAuC,SAAS,CAAA;AAAA,MAC9D,YAAA,EAAc,MAAM,WAAA,CAAY,IAAI,CAAA;AAAA,MACpC,YAAA,EAAc,MAAM,WAAA,CAAY,KAAK,CAAA;AAAA,MACrC,OAAA,EAAS,MAAM,WAAA,CAAY,IAAI,CAAA;AAAA,MAC/B,MAAA,EAAQ,MAAM,WAAA,CAAY,KAAK;AAAA,KAAA,EAC3B,KAAA,CAAA,EAPL;AAAA,MASE,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,wBACDD,GAAAA;AAAA,UAAC,GAAA;AAAA,UAAA;AAAA,YACC,IAAA;AAAA,YACA,MAAA,EAAO,QAAA;AAAA,YACP,GAAA,EAAI,qBAAA;AAAA,YACJ,YAAA,EAAY,CAAA,SAAA,EAAY,KAAK,CAAA,EAAA,EAAK,KAAK,CAAA,CAAA;AAAA,YACvC,SAAA,EAAU,uKAAA;AAAA,YAET,QAAA,EAAA;AAAA;AAAA,SACH;AAAA,QAEC,QAAA,oBACCA,GAAAA,CAAC,MAAA,EAAA,EAAK,MAAK,SAAA,EAAU,SAAA,EAAU,0DAAA,EAC7B,QAAA,kBAAAA,GAAAA,CAAC,kBAAA,EAAA,EAAmB,IAAA,EAAY,KAAA,EAAc,aAA0B,CAAA,EAC1E;AAAA;AAAA,KAAA;AAAA,GAEJ;AAEJ;AAEA,SAAS,mBAAmB,EAAA,EASzB;AATyB,EAAA,IAAA,EAAA,GAAA,EAAA,EAC1B;AAAA,IAAA,IAAA;AAAA,IACA,KAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GAxDF,GAoD4B,EAAA,EAKvB,KAAA,GAAA,SAAA,CALuB,EAAA,EAKvB;AAAA,IAJH,MAAA;AAAA,IACA,OAAA;AAAA,IACA,aAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAMA,EAAA,uBACEC,IAAAA;AAAA,IAAC,GAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,sBAAA;AAAA,MACV,IAAA;AAAA,MACA,MAAA,EAAO,QAAA;AAAA,MACP,GAAA,EAAI,qBAAA;AAAA,MACJ,SAAA,EAAW,EAAA;AAAA,QACT,qEAAA;AAAA,QACA,qCAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA,CAAA,EAVL;AAAA,MAYC,QAAA,EAAA;AAAA,wBAAAD,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,sDAAA,EAAwD,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,QAC1E,+BACCA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,mDAAmD,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,wBAE9EC,IAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,0DAAA,EAA2D,QAAA,EAAA;AAAA,UAAA,OAAA;AAAA,0BACpED,GAAAA,CAAC,YAAA,EAAA,EAAa,SAAA,EAAU,QAAA,EAAS;AAAA,SAAA,EACxC;AAAA;AAAA,KAAA;AAAA,GACF;AAEJ;ACvEA,IAAM,cAAA,GAAiBM,aAAAA,CAAqC,EAAE,IAAA,EAAM,aAAa,CAAA;AAMjF,IAAM,eAAA,GAAkBC,IAAI,0BAAA,EAA4B;AAAA,EACtD,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,IAAA,EAAM,kBAAA;AAAA,MACN,SAAA,EAAW,UAAA;AAAA,MACX,MAAA,EAAQ;AAAA;AACV,GACF;AAAA,EACA,eAAA,EAAiB,EAAE,IAAA,EAAM,WAAA;AAC3B,CAAC;AAMD,SAAS,QAAQ,EAAA,EAKkC;AALlC,EAAA,IAAA,EAAA,GAAA,EAAA,EACf;AAAA,IAAA,IAAA,GAAO,WAAA;AAAA,IACP,SAAA;AAAA,IACA;AAAA,GArCF,GAkCiB,EAAA,EAIZ,KAAA,GAAA,SAAA,CAJY,EAAA,EAIZ;AAAA,IAHH,MAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,uBACEP,GAAAA,CAAC,cAAA,CAAe,QAAA,EAAf,EAAwB,OAAO,EAAE,IAAA,EAAM,IAAA,EAAK,EAC3C,QAAA,kBAAAA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,SAAA;AAAA,MACV,WAAA,EAAW,IAAA;AAAA,MACX,WAAW,EAAA,CAAG,eAAA,CAAgB,EAAE,IAAA,EAAM,GAAG,SAAS;AAAA,KAAA,EAC9C,KAAA,CAAA,EAJL;AAAA,MAME;AAAA,KAAA;AAAA,GACH,EACF,CAAA;AAEJ;AAMA,SAAS,cAAc,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EA1DzB,GA0DuB,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AACvB,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,gBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,8FAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA;AAAA,GACN;AAEJ;AAMA,SAAS,eAAe,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EA3E1B,GA2EwB,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AACxB,EAAA,MAAM,EAAE,IAAA,EAAK,GAAIQ,UAAAA,CAAW,cAAc,CAAA;AAE1C,EAAA,uBACER,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,iBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,iCAAA;AAAA,QACA,SAAS,MAAA,IAAU,WAAA;AAAA,QACnB,SAAS,QAAA,IAAY,yBAAA;AAAA,QACrB;AAAA;AACF,KAAA,EACI,KAAA;AAAA,GACN;AAEJ;AAMA,IAAM,sBAAA,GAAyBO,IAAI,+CAAA,EAAiD;AAAA,EAClF,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,IAAA,EAAM,oCAAA;AAAA,MACN,SAAA,EAAW,0BAAA;AAAA,MACX,MAAA,EAAQ;AAAA;AACV,GACF;AAAA,EACA,eAAA,EAAiB,EAAE,IAAA,EAAM,WAAA;AAC3B,CAAC;AAED,SAAS,gBAAgB,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EA3G3B,GA2GyB,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AACzB,EAAA,MAAM,EAAE,IAAA,EAAK,GAAIC,UAAAA,CAAW,cAAc,CAAA;AAE1C,EAAA,uBACER,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,kBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,sBAAA,CAAuB,EAAE,IAAA,EAAM,IAAA,EAAM,CAAA;AAAA,QACrC,6CAAA;AAAA,QACA,kFAAA;AAAA,QACA,uGAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA;AAAA,GACN;AAEJ;AAMA,SAAS,eAAe,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAjI1B,GAiIwB,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AACxB,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,iBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,sFAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA;AAAA,GACN;AAEJ;AAEA,SAAS,cAAc,EAAA,EAI6B;AAJ7B,EAAA,IAAA,EAAA,GAAA,EAAA,EACrB;AAAA,IAAA,OAAA;AAAA,IACA;AAAA,GAhJF,GA8IuB,EAAA,EAGlB,KAAA,GAAA,SAAA,CAHkB,EAAA,EAGlB;AAAA,IAFH,SAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,uBACEA,GAAAA;AAAA,IAAC,QAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,gBAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,KAAA,EAAO,OAAA;AAAA,MACP,SAAA,EAAW,EAAA;AAAA,QACT,0DAAA;AAAA,QACA,8EAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA;AAAA,GACN;AAEJ;AAMA,SAAS,kBAAkB,EAAA,EAIwB;AAJxB,EAAA,IAAA,EAAA,GAAA,EAAA,EACzB;AAAA,IAAA,OAAA;AAAA,IACA;AAAA,GAxKF,GAsK2B,EAAA,EAGtB,KAAA,GAAA,SAAA,CAHsB,EAAA,EAGtB;AAAA,IAFH,SAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIG,SAAS,KAAK,CAAA;AAE1C,EAAA,MAAM,UAAA,GAAaC,YAAY,MAAM;AACnC,IAAA,SAAA,CAAU,SAAA,CAAU,UAAU,OAAO,CAAA;AACrC,IAAA,SAAA,CAAU,IAAI,CAAA;AACd,IAAA,UAAA,CAAW,MAAM,SAAA,CAAU,KAAK,CAAA,EAAG,GAAI,CAAA;AAAA,EACzC,CAAA,EAAG,CAAC,OAAO,CAAC,CAAA;AAEZ,EAAA,uBACEJ,GAAAA;AAAA,IAAC,aAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,OAAA,EAAS,SAAS,SAAA,GAAY,MAAA;AAAA,MAC9B,OAAA,EAAS,UAAA;AAAA,MACT;AAAA,KAAA,EACI,KAAA,CAAA,EAJL;AAAA,MAMC,QAAA,kBAAAA,GAAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAU,UAAA,EAAW;AAAA,KAAA;AAAA,GAC7B;AAEJ;AAEA,SAAS,wBAAwB,KAAA,EAAiC;AAChE,EAAA,uBACEA,GAAAA,CAAC,aAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAc,OAAA,EAAQ,YAAA,EAAA,EAAiB,KAAA,CAAA,EAAvC,EACC,QAAA,kBAAAA,GAAAA,CAAC,SAAA,EAAA,EAAU,SAAA,EAAU,UAAA,EAAW,CAAA,EAAA,CAClC,CAAA;AAEJ;AAEA,SAAS,sBAAA,CAAuB;AAAA,EAC9B,UAAA;AAAA,EACA;AACF,CAAA,EAGG;AACD,EAAA,uBACEC,KAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,aAAA,EAAA,EAAc,OAAA,EAAQ,eAAA,EAAgB,OAAA,EAAS,UAAA,EAC9C,QAAA,kBAAAA,GAAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,UAAA,EAAW,CAAA,EACjC,CAAA;AAAA,oBACAA,GAAAA,CAAC,aAAA,EAAA,EAAc,OAAA,EAAQ,cAAA,EAAe,OAAA,EAAS,YAAA,EAC7C,QAAA,kBAAAA,GAAAA,CAAC,UAAA,EAAA,EAAW,SAAA,EAAU,UAAA,EAAW,CAAA,EACnC;AAAA,GAAA,EACF,CAAA;AAEJ;AAaA,IAAM,aAAA,GAAgBM,cAAyC,IAAI,CAAA;AAEnE,SAAS,aAAA,CAAc;AAAA,EACrB,KAAA;AAAA,EACA,aAAA,GAAgB,CAAA;AAAA,EAChB,cAAA;AAAA,EACA;AACF,CAAA,EAKG;AACD,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIH,SAAS,aAAa,CAAA;AAElD,EAAA,MAAM,IAAA,GAAOC,YAAY,MAAM;AAC7B,IAAA,SAAA,CAAU,CAAC,CAAA,KAAM;AACf,MAAA,MAAMK,KAAAA,GAAO,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,IAAI,CAAC,CAAA;AAC9B,MAAA,cAAA,IAAA,IAAA,GAAA,MAAA,GAAA,cAAA,CAAiBA,KAAAA,CAAAA;AACjB,MAAA,OAAOA,KAAAA;AAAA,IACT,CAAC,CAAA;AAAA,EACH,CAAA,EAAG,CAAC,cAAc,CAAC,CAAA;AAEnB,EAAA,MAAM,IAAA,GAAOL,YAAY,MAAM;AAC7B,IAAA,SAAA,CAAU,CAAC,CAAA,KAAM;AACf,MAAA,MAAMK,QAAO,IAAA,CAAK,GAAA,CAAI,KAAA,GAAQ,CAAA,EAAG,IAAI,CAAC,CAAA;AACtC,MAAA,cAAA,IAAA,IAAA,GAAA,MAAA,GAAA,cAAA,CAAiBA,KAAAA,CAAAA;AACjB,MAAA,OAAOA,KAAAA;AAAA,IACT,CAAC,CAAA;AAAA,EACH,CAAA,EAAG,CAAC,KAAA,EAAO,cAAc,CAAC,CAAA;AAE1B,EAAA,uBACET,GAAAA,CAAC,aAAA,CAAc,QAAA,EAAd,EAAuB,KAAA,EAAO,EAAE,MAAA,EAAQ,KAAA,EAAO,IAAA,EAAM,IAAA,EAAK,EACxD,QAAA,EACH,CAAA;AAEJ;AAEA,SAAS,sBAAsB,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EA3QjC,GA2Q+B,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AAC/B,EAAA,MAAM,GAAA,GAAMQ,WAAW,aAAa,CAAA;AACpC,EAAA,IAAI,CAAC,GAAA,IAAO,GAAA,CAAI,KAAA,IAAS,GAAG,OAAO,IAAA;AAEnC,EAAA,uBACEP,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,yBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,8DAAA,EAAgE,SAAS;AAAA,KAAA,EACnF,KAAA,CAAA,EAHL;AAAA,MAKC,QAAA,EAAA;AAAA,wBAAAD,GAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,SAAS,GAAA,CAAI,IAAA;AAAA,YACb,QAAA,EAAU,IAAI,MAAA,KAAW,CAAA;AAAA,YACzB,YAAA,EAAW,mBAAA;AAAA,YACX,SAAA,EAAU,oEAAA;AAAA,YAEV,0BAAAA,GAAAA,CAAC,WAAA,EAAA,EAAY,aAAA,EAAY,MAAA,EAAO,WAAU,UAAA,EAAW;AAAA;AAAA,SACvD;AAAA,wBACAC,IAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,cAAA,EAAe,YAAA,EAAY,CAAA,SAAA,EAAY,GAAA,CAAI,MAAA,GAAS,CAAC,CAAA,IAAA,EAAO,GAAA,CAAI,KAAK,CAAA,CAAA,EAClF,QAAA,EAAA;AAAA,UAAA,GAAA,CAAI,MAAA,GAAS,CAAA;AAAA,UAAE,KAAA;AAAA,UAAI,GAAA,CAAI;AAAA,SAAA,EAC1B,CAAA;AAAA,wBACAD,GAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,SAAS,GAAA,CAAI,IAAA;AAAA,YACb,QAAA,EAAU,GAAA,CAAI,MAAA,KAAW,GAAA,CAAI,KAAA,GAAQ,CAAA;AAAA,YACrC,YAAA,EAAW,eAAA;AAAA,YACX,SAAA,EAAU,oEAAA;AAAA,YAEV,0BAAAA,GAAAA,CAAC,YAAA,EAAA,EAAa,aAAA,EAAY,MAAA,EAAO,WAAU,UAAA,EAAW;AAAA;AAAA;AACxD;AAAA,KAAA;AAAA,GACF;AAEJ;AAMA,SAAS,mBAAmB,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAlT9B,GAkT4B,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AAC5B,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,qBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,sBAAA,EAAwB,SAAS;AAAA,KAAA,EAC3C,KAAA;AAAA,GACN;AAEJ;AC7RA,IAAM,oBAAA,GAAuBM,cAAgD,IAAI,CAAA;AAEjF,SAAS,gBAAA,GAAmB;AAC1B,EAAA,MAAM,GAAA,GAAME,WAAW,oBAAoB,CAAA;AAC3C,EAAA,IAAI,CAAC,GAAA,EAAK,MAAM,IAAI,MAAM,sDAAsD,CAAA;AAChF,EAAA,OAAO,GAAA;AACT;AAMA,SAAS,aAAA,CAAc;AAAA,EACrB,KAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAAA,EAIG;AACD,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIL,SAAS,KAAK,CAAA;AACtC,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIA,SAAS,EAAE,CAAA;AACvC,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIA,QAAAA,CAAS,wBAAS,IAAI,CAAA;AAEtD,EAAAO,UAAU,MAAM;AACd,IAAA,IAAI,KAAA,KAAU,MAAA,EAAW,WAAA,CAAY,KAAK,CAAA;AAAA,EAC5C,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AAEV,EAAA,MAAM,QAAA,GAAWN,WAAAA;AAAA,IACf,CAAC,OAAA,KAAoB;AACnB,MAAA,WAAA,CAAY,OAAO,CAAA;AACnB,MAAA,aAAA,IAAA,IAAA,GAAA,MAAA,GAAA,aAAA,CAAgB,OAAA,CAAA;AAChB,MAAA,OAAA,CAAQ,KAAK,CAAA;AACb,MAAA,SAAA,CAAU,EAAE,CAAA;AAAA,IACd,CAAA;AAAA,IACA,CAAC,aAAa;AAAA,GAChB;AAEA,EAAA,uBACEJ,IAAC,oBAAA,CAAqB,QAAA,EAArB,EAA8B,KAAA,EAAO,EAAE,IAAA,EAAM,OAAA,EAAS,MAAA,EAAQ,SAAA,EAAW,UAAU,QAAA,EAAS,EAC3F,0BAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,aAAU,gBAAA,EAAiB,SAAA,EAAU,UAAA,EACvC,QAAA,EACH,CAAA,EACF,CAAA;AAEJ;AAMA,SAAS,qBAAqB,EAAA,EAA6D;AAA7D,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,aAAW,QAAA,EAjF3C,GAiF8B,IAA0B,KAAA,GAAA,SAAA,CAA1B,EAAA,EAA0B,CAAxB,WAAA,EAAW,UAAA,CAAA,CAAA;AAjF3C,EAAA,IAAAK,GAAAA;AAkFE,EAAA,MAAM,EAAE,IAAA,EAAM,OAAA,EAAS,QAAA,KAAa,gBAAA,EAAiB;AAErD,EAAA,uBACEJ,IAAAA;AAAA,IAAC,QAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,wBAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,OAAA,EAAS,MAAM,OAAA,CAAQ,CAAC,IAAI,CAAA;AAAA,MAC5B,eAAA,EAAc,SAAA;AAAA,MACd,eAAA,EAAe,IAAA;AAAA,MACf,SAAA,EAAW,EAAA;AAAA,QACT,0FAAA;AAAA,QACA,mCAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA,CAAA,EAXL;AAAA,MAaE,QAAA,EAAA;AAAA,QAAA,CAAAI,GAAAA,GAAA,QAAA,IAAA,IAAA,GAAA,QAAA,GAAY,QAAA,KAAZ,IAAA,GAAAA,GAAAA,GAAwB,cAAA;AAAA,wBACzBL,GAAAA;AAAA,UAACW,WAAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAY,MAAA;AAAA,YACZ,SAAA,EAAW,EAAA,CAAG,qDAAA,EAAuD,IAAA,IAAQ,YAAY;AAAA;AAAA;AAC3F;AAAA,KAAA;AAAA,GACF;AAEJ;AAMA,SAAS,qBAAqB,EAAA,EAA0D;AAA1D,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,aAAW,QAAA,EA/G3C,GA+G8B,IAA0B,KAAA,GAAA,SAAA,CAA1B,EAAA,EAA0B,CAAxB,WAAA,EAAW,UAAA,CAAA,CAAA;AACzC,EAAA,MAAM,EAAE,IAAA,EAAM,OAAA,EAAQ,GAAI,gBAAA,EAAiB;AAC3C,EAAA,MAAM,GAAA,GAAMC,OAAuB,IAAI,CAAA;AAEvC,EAAAF,UAAU,MAAM;AACd,IAAA,IAAI,CAAC,IAAA,EAAM;AACX,IAAA,SAAS,mBAAmB,CAAA,EAAe;AACzC,MAAA,IAAI,GAAA,CAAI,WAAW,CAAC,GAAA,CAAI,QAAQ,QAAA,CAAS,CAAA,CAAE,MAAc,CAAA,EAAG;AAC1D,QAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,MACf;AAAA,IACF;AACA,IAAA,SAAS,aAAa,CAAA,EAAkB;AACtC,MAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,QAAA,EAAU,OAAA,CAAQ,KAAK,CAAA;AAAA,IACvC;AACA,IAAA,QAAA,CAAS,gBAAA,CAAiB,aAAa,kBAAkB,CAAA;AACzD,IAAA,QAAA,CAAS,gBAAA,CAAiB,WAAW,YAAY,CAAA;AACjD,IAAA,OAAO,MAAM;AACX,MAAA,QAAA,CAAS,mBAAA,CAAoB,aAAa,kBAAkB,CAAA;AAC5D,MAAA,QAAA,CAAS,mBAAA,CAAoB,WAAW,YAAY,CAAA;AAAA,IACtD,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,IAAA,EAAM,OAAO,CAAC,CAAA;AAElB,EAAA,IAAI,CAAC,MAAM,OAAO,IAAA;AAElB,EAAA,uBACEV,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,wBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,yCAAA;AAAA,QACA,0DAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA,CAAA,EARL;AAAA,MAUE;AAAA,KAAA;AAAA,GACH;AAEJ;AAMA,SAAS,mBAAmB,EAAA,EAAkD;AAAlD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EA3J9B,GA2J4B,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AAC5B,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,gBAAA,EAAiB;AAE/C,EAAA,uBACEC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAA,EACb,QAAA,EAAA;AAAA,oBAAAD,GAAAA;AAAA,MAACa,MAAAA;AAAA,MAAA;AAAA,QACC,aAAA,EAAY,MAAA;AAAA,QACZ,SAAA,EAAU;AAAA;AAAA,KACZ;AAAA,oBACAb,GAAAA;AAAA,MAAC,OAAA;AAAA,MAAA,cAAA,CAAA;AAAA,QACC,WAAA,EAAU,sBAAA;AAAA,QACV,KAAA,EAAO,MAAA;AAAA,QACP,UAAU,CAAC,CAAA,KAAM,SAAA,CAAU,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,QACzC,WAAA,EAAY,kBAAA;AAAA,QACZ,YAAA,EAAW,eAAA;AAAA,QACX,SAAA,EAAW,EAAA;AAAA,UACT,sDAAA;AAAA,UACA,sDAAA;AAAA,UACA;AAAA;AACF,OAAA,EACI,KAAA;AAAA;AACN,GAAA,EACF,CAAA;AAEJ;AAMA,SAAS,kBAAkB,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAzL7B,GAyL2B,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AAC3B,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,qBAAA;AAAA,MACV,IAAA,EAAK,SAAA;AAAA,MACL,YAAA,EAAW,QAAA;AAAA,MACX,SAAA,EAAW,EAAA,CAAG,0BAAA,EAA4B,SAAS;AAAA,KAAA,EAC/C,KAAA;AAAA,GACN;AAEJ;AAEA,SAAS,mBAAmB,EAAA,EAKmB;AALnB,EAAA,IAAA,EAAA,GAAA,EAAA,EAC1B;AAAA,IAAA,KAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,GAxMF,GAqM4B,EAAA,EAIvB,KAAA,GAAA,SAAA,CAJuB,EAAA,EAIvB;AAAA,IAHH,OAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,uBACEC,IAAAA,CAAC,KAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAI,WAAA,EAAU,sBAAA,EAAuB,SAAA,EAAW,EAAA,CAAG,MAAA,EAAQ,SAAS,CAAA,EAAA,EAAO,KAAA,CAAA,EAA3E,EACE,QAAA,EAAA;AAAA,IAAA,KAAA,oBACCD,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,sFACV,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,IAED;AAAA,GAAA,EAAA,CACH,CAAA;AAEJ;AAEA,SAAS,kBAAkB,EAAA,EAYxB;AAZwB,EAAA,IAAA,EAAA,GAAA,EAAA,EACzB;AAAA,IAAA,KAAA;AAAA,IACA,IAAA;AAAA,IACA,IAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GA5NF,GAuN2B,EAAA,EAMtB,KAAA,GAAA,SAAA,CANsB,EAAA,EAMtB;AAAA,IALH,OAAA;AAAA,IACA,MAAA;AAAA,IACA,MAAA;AAAA,IACA,aAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAQA,EAAA,MAAM,EAAE,QAAA,EAAU,QAAA,EAAU,MAAA,KAAW,gBAAA,EAAiB;AACxD,EAAA,MAAM,aAAa,QAAA,KAAa,KAAA;AAGhC,EAAA,MAAM,OAAA,GAAU,QAAQ,MAAM;AAC5B,IAAA,IAAI,CAAC,QAAQ,OAAO,IAAA;AACpB,IAAA,MAAM,CAAA,GAAI,OAAO,WAAA,EAAY;AAC7B,IAAA,OAAO,IAAA,CAAK,WAAA,EAAY,CAAE,QAAA,CAAS,CAAC,KAAK,KAAA,CAAM,WAAA,EAAY,CAAE,QAAA,CAAS,CAAC,CAAA;AAAA,EACzE,CAAA,EAAG,CAAC,MAAA,EAAQ,IAAA,EAAM,KAAK,CAAC,CAAA;AAExB,EAAA,IAAI,CAAC,SAAS,OAAO,IAAA;AAErB,EAAA,uBACEC,IAAAA;AAAA,IAAC,QAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,qBAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,IAAA,EAAK,QAAA;AAAA,MACL,eAAA,EAAe,UAAA;AAAA,MACf,OAAA,EAAS,MAAM,QAAA,CAAS,KAAK,CAAA;AAAA,MAC7B,SAAA,EAAW,EAAA;AAAA,QACT,uEAAA;AAAA,QACA,qCAAA;AAAA,QACA,UAAA,IAAc,UAAA;AAAA,QACd;AAAA;AACF,KAAA,EACI,KAAA,CAAA,EAZL;AAAA,MAcE,QAAA,EAAA;AAAA,QAAA,IAAA,oBACCD,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,0DAA0D,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,wBAEjFC,IAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,gBAAA,EACd,QAAA,EAAA;AAAA,0BAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,4CAAA,EAA8C,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,UAClE,+BACCA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,gDAAgD,QAAA,EAAA,WAAA,EAAY;AAAA,SAAA,EAEhF,CAAA;AAAA,QACC,UAAA,oBAAcA,GAAAA,CAACc,KAAAA,EAAA,EAAM,aAAA,EAAY,MAAA,EAAO,WAAU,8BAAA,EAA+B;AAAA;AAAA,KAAA;AAAA,GACpF;AAEJ;AAEA,SAAS,mBAAmB,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EA7Q9B,GA6Q4B,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AA7Q9B,EAAA,IAAAT,GAAAA;AA8QE,EAAA,uBACEL,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,sBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,gDAAA,EAAkD,SAAS;AAAA,KAAA,EACrE,KAAA,CAAA,EAHL;AAAA,MAKE,QAAA,EAAA,CAAAK,GAAAA,GAAA,KAAA,CAAM,QAAA,KAAN,OAAAA,GAAAA,GAAkB;AAAA,KAAA;AAAA,GACrB;AAEJ;AAEA,SAAS,uBAAuB,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAzRlC,GAyRgC,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AAChC,EAAA,uBACEL,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,0BAAA;AAAA,MACV,IAAA,EAAK,WAAA;AAAA,MACL,SAAA,EAAW,EAAA,CAAG,0BAAA,EAA4B,SAAS;AAAA,KAAA,EAC/C,KAAA;AAAA,GACN;AAEJ;ACtRA,IAAM,WAAA,GAAcM,cAAuC,IAAI,CAAA;AAE/D,SAAS,KAAK,EAAA,EAKwC;AALxC,EAAA,IAAA,EAAA,GAAA,EAAA,EACZ;AAAA,IAAA,WAAA,GAAc,IAAA;AAAA,IACd,SAAA;AAAA,IACA;AAAA,GAjBF,GAcc,EAAA,EAIT,KAAA,GAAA,SAAA,CAJS,EAAA,EAIT;AAAA,IAHH,aAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIH,SAAS,WAAW,CAAA;AAC5C,EAAA,MAAM,MAAA,GAASC,WAAAA,CAAY,MAAM,OAAA,CAAQ,CAAC,MAAM,CAAC,CAAC,CAAA,EAAG,EAAE,CAAA;AACvD,EAAA,MAAM,YAAYW,KAAAA,EAAM;AAExB,EAAA,uBACEf,GAAAA,CAAC,WAAA,CAAY,QAAA,EAAZ,EAAqB,KAAA,EAAO,EAAE,IAAA,EAAM,MAAA,EAAQ,SAAA,EAAU,EACrD,QAAA,kBAAAA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,MAAA;AAAA,MACV,YAAA,EAAY,OAAO,MAAA,GAAS,QAAA;AAAA,MAC5B,SAAA,EAAW,EAAA,CAAG,yCAAA,EAA2C,SAAS;AAAA,KAAA,EAC9D,KAAA,CAAA,EAJL;AAAA,MAME;AAAA,KAAA;AAAA,GACH,EACF,CAAA;AAEJ;AAEA,SAAS,WAAW,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAtCtB,GAsCoB,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AACpB,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,aAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,mCAAA,EAAqC,SAAS;AAAA,KAAA,EACxD,KAAA;AAAA,GACN;AAEJ;AAEA,SAAS,UAAU,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAhDrB,GAgDmB,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AACnB,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,YAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,4CAAA,EAA8C,SAAS;AAAA,KAAA,EACjE,KAAA;AAAA,GACN;AAEJ;AAEA,SAAS,gBAAgB,EAAA,EAA8C;AAA9C,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EA1D3B,GA0DyB,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AACzB,EAAA,uBACEA,GAAAA;AAAA,IAAC,GAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,kBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,yCAAA,EAA2C,SAAS;AAAA,KAAA,EAC9D,KAAA;AAAA,GACN;AAEJ;AAEA,SAAS,YAAY,EAAA,EAAmD;AAAnD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EApEvB,GAoEqB,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AApEvB,EAAA,IAAAK,GAAAA;AAqEE,EAAA,MAAM,GAAA,GAAMG,WAAW,WAAW,CAAA;AAClC,EAAA,IAAI,CAAC,GAAA,EAAK,MAAM,IAAI,MAAM,wCAAwC,CAAA;AAElE,EAAA,uBACEP,IAAAA;AAAA,IAAC,QAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,cAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,SAAS,GAAA,CAAI,MAAA;AAAA,MACb,iBAAe,GAAA,CAAI,IAAA;AAAA,MACnB,iBAAe,GAAA,CAAI,SAAA;AAAA,MACnB,SAAA,EAAW,EAAA;AAAA,QACT,8DAAA;AAAA,QACA,+DAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA,CAAA,EAXL;AAAA,MAaC,QAAA,EAAA;AAAA,wBAAAD,GAAAA,CAAC,UAAA,EAAA,EAAW,aAAA,EAAY,MAAA,EAAO,WAAU,iBAAA,EAAkB,CAAA;AAAA,wBAC3DA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kBAAA,EAAoB,QAAA,EAAA,CAAAK,GAAAA,GAAA,KAAA,CAAM,QAAA,KAAN,IAAA,GAAAA,GAAAA,GAAkB,gBAAA,EAAiB,CAAA;AAAA,wBACvEL,GAAAA;AAAA,UAACW,WAAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAY,MAAA;AAAA,YACZ,SAAA,EAAW,EAAA;AAAA,cACT,mDAAA;AAAA,cACA,IAAI,IAAA,IAAQ;AAAA;AACd;AAAA;AACF;AAAA,KAAA;AAAA,GACF;AAEJ;AAEA,SAAS,YAAY,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAnGvB,GAmGqB,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AACrB,EAAA,MAAM,GAAA,GAAMH,WAAW,WAAW,CAAA;AAClC,EAAA,IAAI,EAAC,GAAA,IAAA,IAAA,GAAA,MAAA,GAAA,GAAA,CAAK,IAAA,CAAA,EAAM,OAAO,IAAA;AAEvB,EAAA,uBACER,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,IAAI,GAAA,CAAI,SAAA;AAAA,MACR,WAAA,EAAU,cAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,SAAA,EAAW,EAAA,CAAG,4CAAA,EAA8C,SAAS;AAAA,KAAA,EACjE,KAAA;AAAA,GACN;AAEJ;AAEA,SAAS,WAAW,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAlHtB,GAkHoB,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AACpB,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,aAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,4DAAA,EAA8D,SAAS;AAAA,KAAA,EACjF,KAAA;AAAA,GACN;AAEJ;AAEA,SAAS,WAAW,EAAA,EAAmD;AAAnD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EA5HtB,GA4HoB,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AACpB,EAAA,uBACEA,GAAAA;AAAA,IAAC,QAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,aAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,SAAA,EAAW,EAAA;AAAA,QACT,qEAAA;AAAA,QACA,0EAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA;AAAA,GACN;AAEJ;AC5GA,IAAM,kBAAA,GAAqBM,cAA8C,IAAI,CAAA;AAE7E,SAAS,cAAA,GAAiB;AACxB,EAAA,MAAM,GAAA,GAAME,WAAW,kBAAkB,CAAA;AACzC,EAAA,IAAI,CAAC,GAAA,EAAK,MAAM,IAAI,MAAM,kDAAkD,CAAA;AAC5E,EAAA,OAAO,GAAA;AACT;AAMA,SAAS,YAAY,EAAA,EASlB;AATkB,EAAA,IAAA,EAAA,GAAA,EAAA,EACnB;AAAA,IAAA,QAAA;AAAA,IACA,SAAA,GAAY,KAAA;AAAA,IACZ,SAAA;AAAA,IACA;AAAA,GA7CF,GAyCqB,EAAA,EAKhB,KAAA,GAAA,SAAA,CALgB,EAAA,EAKhB;AAAA,IAJH,UAAA;AAAA,IACA,WAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAMA,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIL,SAAS,EAAE,CAAA;AACrC,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIA,QAAAA,CAAiB,EAAE,CAAA;AAE7C,EAAA,MAAM,QAAA,GAAWC,WAAAA,CAAY,CAAC,QAAA,KAAqB;AACjD,IAAA,QAAA,CAAS,CAAC,IAAA,KAAS,CAAC,GAAG,IAAA,EAAM,GAAG,QAAQ,CAAC,CAAA;AAAA,EAC3C,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,UAAA,GAAaA,WAAAA,CAAY,CAAC,KAAA,KAAkB;AAChD,IAAA,QAAA,CAAS,CAAC,SAAS,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,EAAG,CAAA,KAAM,CAAA,KAAM,KAAK,CAAC,CAAA;AAAA,EACvD,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,UAAA,GAAaA,YAAY,MAAM,QAAA,CAAS,EAAE,CAAA,EAAG,EAAE,CAAA;AAErD,EAAA,MAAM,MAAA,GAASA,YAAY,MAAM;AAC/B,IAAA,IAAI,CAAC,KAAA,CAAM,IAAA,EAAK,IAAK,KAAA,CAAM,WAAW,CAAA,EAAG;AACzC,IAAA,QAAA,IAAA,IAAA,GAAA,MAAA,GAAA,QAAA,CAAW,KAAA,CAAM,MAAK,EAAG,KAAA,CAAA;AACzB,IAAA,QAAA,CAAS,EAAE,CAAA;AACX,IAAA,QAAA,CAAS,EAAE,CAAA;AAAA,EACb,CAAA,EAAG,CAAC,KAAA,EAAO,KAAA,EAAO,QAAQ,CAAC,CAAA;AAE3B,EAAA,MAAM,YAAA,GAAeA,WAAAA;AAAA,IACnB,CAAC,CAAA,KAAiB;AAChB,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,MAAA,EAAO;AAAA,IACT,CAAA;AAAA,IACA,CAAC,MAAM;AAAA,GACT;AAEA,EAAA,uBACEJ,GAAAA;AAAA,IAAC,kBAAA,CAAmB,QAAA;AAAA,IAAnB;AAAA,MACC,KAAA,EAAO,EAAE,KAAA,EAAO,QAAA,EAAU,OAAO,QAAA,EAAU,UAAA,EAAY,UAAA,EAAY,MAAA,EAAQ,SAAA,EAAU;AAAA,MAErF,QAAA,kBAAAA,GAAAA;AAAA,QAAC,MAAA;AAAA,QAAA,aAAA,CAAA,cAAA,CAAA;AAAA,UACC,WAAA,EAAU,cAAA;AAAA,UACV,QAAA,EAAU,YAAA;AAAA,UACV,SAAA,EAAW,EAAA;AAAA,YACT,kEAAA;AAAA,YACA,uEAAA;AAAA,YACA;AAAA;AACF,SAAA,EACI,KAAA,CAAA,EARL;AAAA,UAUE;AAAA,SAAA;AAAA;AACH;AAAA,GACF;AAEJ;AAMA,SAAS,kBAAkB,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAvG7B,GAuG2B,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AAC3B,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,qBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,kCAAA,EAAoC,SAAS;AAAA,KAAA,EACvD,KAAA;AAAA,GACN;AAEJ;AAEA,SAAS,gBAAgB,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAjH3B,GAiHyB,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AACzB,EAAA,uBAAOA,GAAAA,CAAC,KAAA,EAAA,cAAA,CAAA,EAAI,WAAA,EAAU,mBAAA,EAAoB,WAAW,EAAA,CAAG,QAAA,EAAU,SAAS,CAAA,EAAA,EAAO,KAAA,CAAO,CAAA;AAC3F;AAEA,SAAS,kBAAkB,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EArH7B,GAqH2B,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AAC3B,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,qBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,mCAAA,EAAqC,SAAS;AAAA,KAAA,EACxD,KAAA;AAAA,GACN;AAEJ;AAMA,SAAS,oBAAoB,EAAA,EAAgE;AAAhE,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,aAAW,SAAA,EAnI1C,GAmI6B,IAA2B,KAAA,GAAA,SAAA,CAA3B,EAAA,EAA2B,CAAzB,WAAA,EAAW,WAAA,CAAA,CAAA;AACxC,EAAA,MAAM,EAAE,KAAA,EAAO,QAAA,EAAU,MAAA,EAAQ,SAAA,KAAc,cAAA,EAAe;AAC9D,EAAA,MAAM,GAAA,GAAMY,OAA4B,IAAI,CAAA;AAE5C,EAAA,MAAM,WAAA,GAAcR,YAAY,MAAM;AACpC,IAAA,MAAM,KAAK,GAAA,CAAI,OAAA;AACf,IAAA,IAAI,CAAC,EAAA,EAAI;AACT,IAAA,EAAA,CAAG,MAAM,MAAA,GAAS,MAAA;AAClB,IAAA,EAAA,CAAG,KAAA,CAAM,SAAS,CAAA,EAAG,IAAA,CAAK,IAAI,EAAA,CAAG,YAAA,EAAc,GAAG,CAAC,CAAA,EAAA,CAAA;AAAA,EACrD,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,aAAA,GAAgBA,WAAAA;AAAA,IACpB,CAAC,CAAA,KAAgD;AAC/C,MAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,OAAA,IAAW,CAAC,EAAE,QAAA,EAAU;AACpC,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,IAAI,CAAC,WAAW,MAAA,EAAO;AAAA,MACzB;AACA,MAAA,SAAA,IAAA,IAAA,GAAA,MAAA,GAAA,SAAA,CAAY,CAAA,CAAA;AAAA,IACd,CAAA;AAAA,IACA,CAAC,MAAA,EAAQ,SAAA,EAAW,SAAS;AAAA,GAC/B;AAEA,EAAA,uBACEJ,GAAAA;AAAA,IAAC,UAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,uBAAA;AAAA,MACV,KAAA;AAAA,MACA,QAAA,EAAU,CAAC,CAAA,KAAM;AACf,QAAA,QAAA,CAAS,CAAA,CAAE,OAAO,KAAK,CAAA;AACvB,QAAA,WAAA,EAAY;AAAA,MACd,CAAA;AAAA,MACA,SAAA,EAAW,aAAA;AAAA,MACX,WAAA,EAAY,mBAAA;AAAA,MACZ,IAAA,EAAM,CAAA;AAAA,MACN,QAAA,EAAU,SAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,qEAAA;AAAA,QACA,mCAAA;AAAA,QACA,oBAAA;AAAA,QACA,qBAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA;AAAA,GACN;AAEJ;AAMA,SAAS,iBAAiB,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAtL5B,GAsL0B,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AAC1B,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,oBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,yBAAA,EAA2B,SAAS;AAAA,KAAA,EAC9C,KAAA;AAAA,GACN;AAEJ;AAMA,SAAS,wBAAwB,EAAA,EAQ9B;AAR8B,EAAA,IAAA,EAAA,GAAA,EAAA,EAC/B;AAAA,IAAA,MAAA;AAAA,IACA,QAAA,GAAW,IAAA;AAAA,IACX;AAAA,GAvMF,GAoMiC,EAAA,EAI5B,KAAA,GAAA,SAAA,CAJ4B,EAAA,EAI5B;AAAA,IAHH,QAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAMA,EAAA,MAAM,EAAE,QAAA,EAAS,GAAI,cAAA,EAAe;AACpC,EAAA,MAAM,QAAA,GAAWY,OAAyB,IAAI,CAAA;AAE9C,EAAA,MAAM,WAAA,GAAcR,YAAY,MAAM;AAhNxC,IAAA,IAAAC,GAAAA;AAiNI,IAAA,CAAAA,GAAAA,GAAA,QAAA,CAAS,OAAA,KAAT,IAAA,GAAA,MAAA,GAAAA,GAAAA,CAAkB,KAAA,EAAA;AAAA,EACpB,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,YAAA,GAAeD,WAAAA;AAAA,IACnB,CAAC,CAAA,KAA2C;AAC1C,MAAA,MAAM,QAAA,GAAW,EAAE,MAAA,CAAO,KAAA;AAC1B,MAAA,IAAI,QAAA,EAAU;AACZ,QAAA,QAAA,CAAS,KAAA,CAAM,IAAA,CAAK,QAAQ,CAAC,CAAA;AAC7B,QAAA,CAAA,CAAE,OAAO,KAAA,GAAQ,EAAA;AAAA,MACnB;AAAA,IACF,CAAA;AAAA,IACA,CAAC,QAAQ;AAAA,GACX;AAEA,EAAA,uBACEH,IAAAA,CAAAe,QAAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAAhB,GAAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,QAAA;AAAA,QACL,IAAA,EAAK,MAAA;AAAA,QACL,MAAA;AAAA,QACA,QAAA;AAAA,QACA,QAAA,EAAU,YAAA;AAAA,QACV,SAAA,EAAU,QAAA;AAAA,QACV,aAAA,EAAY,MAAA;AAAA,QACZ,QAAA,EAAU;AAAA;AAAA,KACZ;AAAA,oBACAA,GAAAA;AAAA,MAAC,QAAA;AAAA,MAAA,aAAA,CAAA,cAAA,CAAA;AAAA,QACC,WAAA,EAAU,4BAAA;AAAA,QACV,IAAA,EAAK,QAAA;AAAA,QACL,OAAA,EAAS,WAAA;AAAA,QACT,YAAA,EAAW,cAAA;AAAA,QACX,SAAA,EAAW,EAAA;AAAA,UACT,wDAAA;AAAA,UACA,8EAAA;AAAA,UACA;AAAA;AACF,OAAA,EACI,KAAA,CAAA,EAVL;AAAA,QAYC,0BAAAA,GAAAA,CAAC,SAAA,EAAA,EAAU,aAAA,EAAY,MAAA,EAAO,WAAU,QAAA,EAAS;AAAA,OAAA;AAAA;AACnD,GAAA,EACF,CAAA;AAEJ;AAMA,SAAS,kBAAkB,EAAA,EAAmD;AAAnD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAjQ7B,GAiQ2B,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AAC3B,EAAA,MAAM,EAAE,KAAA,EAAO,KAAA,EAAO,SAAA,KAAc,cAAA,EAAe;AACnD,EAAA,MAAM,aAAa,KAAA,CAAM,IAAA,GAAO,MAAA,GAAS,CAAA,IAAK,MAAM,MAAA,GAAS,CAAA;AAE7D,EAAA,uBACEA,GAAAA;AAAA,IAAC,QAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,qBAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,QAAA,EAAU,CAAC,UAAA,IAAc,CAAC,SAAA;AAAA,MAC1B,YAAA,EAAY,YAAY,iBAAA,GAAoB,cAAA;AAAA,MAC5C,SAAA,EAAW,EAAA;AAAA,QACT,kEAAA;AAAA,QACA,mBAAA;AAAA,QACA,SAAA,GACI,oEAAA,GACA,UAAA,GACE,wDAAA,GACA,gCAAA;AAAA,QACN;AAAA;AACF,KAAA,EACI,KAAA,CAAA,EAfL;AAAA,MAiBE,QAAA,EAAA,SAAA,mBAAYA,GAAAA,CAAC,MAAA,EAAA,EAAO,SAAA,EAAU,QAAA,EAAS,CAAA,mBAAKA,GAAAA,CAAC,OAAA,EAAA,EAAQ,SAAA,EAAU,QAAA,EAAS;AAAA,KAAA;AAAA,GAC3E;AAEJ;AAMA,SAAS,iBAAiB,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAhS5B,GAgS0B,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AAC1B,EAAA,MAAM,EAAE,KAAA,EAAO,UAAA,EAAW,GAAI,cAAA,EAAe;AAC7C,EAAA,IAAI,KAAA,CAAM,MAAA,KAAW,CAAA,EAAG,OAAO,IAAA;AAE/B,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,oBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,gCAAA,EAAkC,SAAS;AAAA,KAAA,EACrD,KAAA,CAAA,EAHL;AAAA,MAKE,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,sBAChBC,IAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UAEC,SAAA,EAAU,kHAAA;AAAA,UAET,QAAA,EAAA;AAAA,YAAA,IAAA,CAAK,IAAA;AAAA,4BACND,GAAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,IAAA,EAAK,QAAA;AAAA,gBACL,OAAA,EAAS,MAAM,UAAA,CAAW,CAAC,CAAA;AAAA,gBAC3B,YAAA,EAAY,CAAA,OAAA,EAAU,IAAA,CAAK,IAAI,CAAA,CAAA;AAAA,gBAC/B,SAAA,EAAU,kFAAA;AAAA,gBAEV,0BAAAA,GAAAA,CAACE,CAAAA,EAAA,EAAE,aAAA,EAAY,MAAA,EAAO,WAAU,QAAA,EAAS;AAAA;AAAA;AAC3C;AAAA,SAAA;AAAA,QAXK,CAAA,EAAG,IAAA,CAAK,IAAI,CAAA,CAAA,EAAI,CAAC,CAAA;AAAA,OAazB;AAAA,KAAA;AAAA,GACH;AAEJ;AC3SA,IAAM,mBAAA,GAAsBI,cAA+C,IAAI,CAAA;AAE/E,SAAS,aAAa,EAAA,EAKgC;AALhC,EAAA,IAAA,EAAA,GAAA,EAAA,EACpB;AAAA,IAAA,WAAA,GAAc,IAAA;AAAA,IACd,SAAA;AAAA,IACA;AAAA,GAtBF,GAmBsB,EAAA,EAIjB,KAAA,GAAA,SAAA,CAJiB,EAAA,EAIjB;AAAA,IAHH,aAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIH,SAAS,WAAW,CAAA;AAC5C,EAAA,MAAM,MAAA,GAASC,WAAAA,CAAY,MAAM,OAAA,CAAQ,CAAC,MAAM,CAAC,CAAC,CAAA,EAAG,EAAE,CAAA;AACvD,EAAA,MAAM,YAAYW,KAAAA,EAAM;AAExB,EAAA,uBACEf,GAAAA,CAAC,mBAAA,CAAoB,QAAA,EAApB,EAA6B,OAAO,EAAE,IAAA,EAAM,MAAA,EAAQ,SAAA,EAAU,EAC7D,QAAA,kBAAAA,IAAC,KAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAI,WAAA,EAAU,eAAA,EAAgB,SAAA,EAAW,EAAA,CAAG,WAAA,EAAa,SAAS,CAAA,EAAA,EAAO,KAAA,CAAA,EAAzE,EACE,QAAA,EAAA,CACH,CAAA,EACF,CAAA;AAEJ;AAEA,SAAS,oBAAoB,EAAA,EAAmD;AAAnD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAtC/B,GAsC6B,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AAC7B,EAAA,MAAM,GAAA,GAAMQ,WAAW,mBAAmB,CAAA;AAC1C,EAAA,IAAI,CAAC,GAAA,EAAK,MAAM,IAAI,MAAM,wDAAwD,CAAA;AAElF,EAAA,uBACEP,IAAAA;AAAA,IAAC,QAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,uBAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,SAAS,GAAA,CAAI,MAAA;AAAA,MACb,iBAAe,GAAA,CAAI,IAAA;AAAA,MACnB,iBAAe,GAAA,CAAI,SAAA;AAAA,MACnB,SAAA,EAAW,EAAA;AAAA,QACT,sFAAA;AAAA,QACA,oDAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA,CAAA,EAXL;AAAA,MAaC,QAAA,EAAA;AAAA,wBAAAD,GAAAA;AAAA,UAACW,WAAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAY,MAAA;AAAA,YACZ,SAAA,EAAW,EAAA;AAAA,cACT,qDAAA;AAAA,cACA,IAAI,IAAA,IAAQ;AAAA;AACd;AAAA,SACF;AAAA,QACC,KAAA,CAAM;AAAA;AAAA,KAAA;AAAA,GACT;AAEJ;AAEA,SAAS,kBAAkB,EAAA,EAAiD;AAAjD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EApE7B,GAoE2B,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AAC3B,EAAA,uBACEX,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,qBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,kBAAA,EAAoB,SAAS;AAAA,KAAA,EACvC,KAAA;AAAA,GACN;AAEJ;AAEA,SAAS,UAAU,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EA9ErB,GA8EmB,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AACnB,EAAA,MAAM,GAAA,GAAMQ,WAAW,mBAAmB,CAAA;AAC1C,EAAA,IAAI,GAAA,IAAO,CAAC,GAAA,CAAI,IAAA,EAAM,OAAO,IAAA;AAE7B,EAAA,uBACER,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,IAAI,GAAA,IAAA,IAAA,GAAA,MAAA,GAAA,GAAA,CAAK,SAAA;AAAA,MACT,WAAA,EAAU,YAAA;AAAA,MACV,IAAA,EAAK,MAAA;AAAA,MACL,SAAA,EAAW,EAAA,CAAG,WAAA,EAAa,SAAS;AAAA,KAAA,EAChC,KAAA;AAAA,GACN;AAEJ;AAQA,IAAM,0BAAA,GAA6BO,IAAI,8BAAA,EAAgC;AAAA,EACrE,QAAA,EAAU;AAAA,IACR,MAAA,EAAQ;AAAA,MACN,OAAA,EAAS,wBAAA;AAAA,MACT,MAAA,EAAQ,0BAAA;AAAA,MACR,QAAA,EAAU,gBAAA;AAAA,MACV,KAAA,EAAO;AAAA;AACT,GACF;AAAA,EACA,eAAA,EAAiB,EAAE,MAAA,EAAQ,SAAA;AAC7B,CAAC;AAED,SAAS,UAAU,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EA/GrB,GA+GmB,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AACnB,EAAA,uBACEP,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,YAAA;AAAA,MACV,IAAA,EAAK,UAAA;AAAA,MACL,SAAA,EAAW,EAAA;AAAA,QACT,+CAAA;AAAA,QACA,qCAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA;AAAA,GACN;AAEJ;AAEA,SAAS,mBAAmB,EAAA,EAI8B;AAJ9B,EAAA,IAAA,EAAA,GAAA,EAAA,EAC1B;AAAA,IAAA,MAAA,GAAS,SAAA;AAAA,IACT;AAAA,GAhIF,GA8H4B,EAAA,EAGvB,KAAA,GAAA,SAAA,CAHuB,EAAA,EAGvB;AAAA,IAFH,QAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,uBACEA,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,sBAAA;AAAA,MACV,IAAA,EAAK,KAAA;AAAA,MACL,YAAA,EAAY,MAAA;AAAA,MACZ,SAAA,EAAW,GAAG,0BAAA,CAA2B,EAAE,QAAQ,CAAA,EAAG,UAAU,SAAS;AAAA,KAAA,EACrE,KAAA;AAAA,GACN;AAEJ;AAEA,SAAS,iBAAiB,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EA9I5B,GA8I0B,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AAC1B,EAAA,uBACEA,GAAAA,CAAC,KAAA,EAAA,cAAA,CAAA,EAAI,WAAA,EAAU,oBAAA,EAAqB,WAAW,EAAA,CAAG,gBAAA,EAAkB,SAAS,CAAA,EAAA,EAAO,KAAA,CAAO,CAAA;AAE/F;AAEA,SAAS,qBAAqB,EAAA,EAA8C;AAA9C,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EApJhC,GAoJ8B,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AAC9B,EAAA,uBACEA,GAAAA;AAAA,IAAC,GAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,wBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,sCAAA,EAAwC,SAAS;AAAA,KAAA,EAC3D,KAAA;AAAA,GACN;AAEJ;AAEA,SAAS,iBAAiB,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EA9J5B,GA8J0B,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AAC1B,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,oBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,kCAAA,EAAoC,SAAS;AAAA,KAAA,EACvD,KAAA;AAAA,GACN;AAEJ;AC1JA,IAAM,gBAAA,GAAmBM,cAA4C,IAAI,CAAA;AAEzE,SAAS,YAAA,GAAe;AACtB,EAAA,MAAM,GAAA,GAAME,WAAW,gBAAgB,CAAA;AACvC,EAAA,IAAI,CAAC,GAAA,EAAK,MAAM,IAAI,MAAM,8CAA8C,CAAA;AACxE,EAAA,OAAO,GAAA;AACT;AAEA,SAAS,UAAU,EAAA,EAKmC;AALnC,EAAA,IAAA,EAAA,GAAA,EAAA,EACjB;AAAA,IAAA,WAAA,GAAc,KAAA;AAAA,IACd,SAAA;AAAA,IACA;AAAA,GAvBF,GAoBmB,EAAA,EAId,KAAA,GAAA,SAAA,CAJc,EAAA,EAId;AAAA,IAHH,aAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIL,SAAS,WAAW,CAAA;AAC5C,EAAA,MAAM,MAAA,GAASC,WAAAA,CAAY,MAAM,OAAA,CAAQ,CAAC,MAAM,CAAC,CAAC,CAAA,EAAG,EAAE,CAAA;AACvD,EAAA,MAAM,YAAYW,KAAAA,EAAM;AAExB,EAAA,uBACEf,GAAAA,CAAC,gBAAA,CAAiB,QAAA,EAAjB,EAA0B,KAAA,EAAO,EAAE,IAAA,EAAM,MAAA,EAAQ,SAAA,EAAU,EAC1D,QAAA,kBAAAA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,WAAA;AAAA,MACV,YAAA,EAAY,OAAO,MAAA,GAAS,QAAA;AAAA,MAC5B,SAAA,EAAW,EAAA,CAAG,yCAAA,EAA2C,SAAS;AAAA,KAAA,EAC9D,KAAA,CAAA,EAJL;AAAA,MAME;AAAA,KAAA;AAAA,GACH,EACF,CAAA;AAEJ;AAEA,SAAS,iBAAiB,EAAA,EAA6D;AAA7D,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,aAAW,QAAA,EA5CvC,GA4C0B,IAA0B,KAAA,GAAA,SAAA,CAA1B,EAAA,EAA0B,CAAxB,WAAA,EAAW,UAAA,CAAA,CAAA;AACrC,EAAA,MAAM,EAAE,IAAA,EAAM,MAAA,EAAQ,SAAA,KAAc,YAAA,EAAa;AAEjD,EAAA,uBACEC,IAAAA;AAAA,IAAC,QAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,mBAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,OAAA,EAAS,MAAA;AAAA,MACT,eAAA,EAAe,IAAA;AAAA,MACf,eAAA,EAAe,SAAA;AAAA,MACf,SAAA,EAAW,EAAA;AAAA,QACT,oFAAA;AAAA,QACA,yCAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA,CAAA,EAXL;AAAA,MAaC,QAAA,EAAA;AAAA,wBAAAD,GAAAA;AAAA,UAACW,WAAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAY,MAAA;AAAA,YACZ,SAAA,EAAW,EAAA,CAAG,mDAAA,EAAqD,IAAA,IAAQ,YAAY;AAAA;AAAA,SACzF;AAAA,QACC,QAAA,IAAA,IAAA,GAAA,QAAA,GAAa,OAAO,gBAAA,GAAmB;AAAA;AAAA,KAAA;AAAA,GAC1C;AAEJ;AAEA,SAAS,iBAAiB,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAtE5B,GAsE0B,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AAC1B,EAAA,MAAM,EAAE,IAAA,EAAM,SAAA,EAAU,GAAI,YAAA,EAAa;AACzC,EAAA,IAAI,CAAC,MAAM,OAAO,IAAA;AAElB,EAAA,uBACEX,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,EAAA,EAAI,SAAA;AAAA,MACJ,WAAA,EAAU,mBAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,SAAA,EAAW,EAAA;AAAA,QACT,kCAAA;AAAA,QACA,yDAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA;AAAA,GACN;AAEJ;ACzEA,SAAS,QAAqC,EAAA,EAO1B;AAP0B,EAAA,IAAA,EAAA,GAAA,EAAA,EAC5C;AAAA,IAAA,EAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA,GAAW,CAAA;AAAA,IACX,MAAA,GAAS,GAAA;AAAA,IACT;AAAA,GAnBF,GAc8C,EAAA,EAMzC,KAAA,GAAA,SAAA,CANyC,EAAA,EAMzC;AAAA,IALH,IAAA;AAAA,IACA,WAAA;AAAA,IACA,UAAA;AAAA,IACA,QAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,MAAM,YAAa,EAAA,IAAM,GAAA;AAEzB,EAAA,uBACEA,GAAAA;AAAA,IAAC,SAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,SAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,YAAA,EAAW,SAAA;AAAA,MACX,SAAA,EAAW,EAAA;AAAA,QACT,+CAAA;AAAA,QACA,uBAAA;AAAA,QACA,2EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,KAAA,EAAO,cAAA,CAAA;AAAA,QACL,iBAAA,EAAmB,GAAG,QAAQ,CAAA,CAAA;AAAA,OAAA,EAC3B,KAAA;AAAA,KAAA,EAED,KAAA;AAAA,GACN;AAEJ;AC9BA,IAAM,cAAA,GAAiBM,cAA0C,IAAI,CAAA;AAErE,SAAS,QAAQ,EAAA,EAKqC;AALrC,EAAA,IAAA,EAAA,GAAA,EAAA,EACf;AAAA,IAAA,WAAA,GAAc,KAAA;AAAA,IACd,SAAA;AAAA,IACA;AAAA,GAjBF,GAciB,EAAA,EAIZ,KAAA,GAAA,SAAA,CAJY,EAAA,EAIZ;AAAA,IAHH,aAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIH,SAAS,WAAW,CAAA;AAC5C,EAAA,MAAM,MAAA,GAASC,WAAAA,CAAY,MAAM,OAAA,CAAQ,CAAC,MAAM,CAAC,CAAC,CAAA,EAAG,EAAE,CAAA;AACvD,EAAA,MAAM,YAAYW,KAAAA,EAAM;AAExB,EAAA,uBACEf,GAAAA,CAAC,cAAA,CAAe,QAAA,EAAf,EAAwB,KAAA,EAAO,EAAE,IAAA,EAAM,MAAA,EAAQ,SAAA,EAAU,EACxD,QAAA,kBAAAA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,SAAA;AAAA,MACV,YAAA,EAAY,OAAO,MAAA,GAAS,QAAA;AAAA,MAC5B,SAAA,EAAW,EAAA,CAAG,yCAAA,EAA2C,SAAS;AAAA,KAAA,EAC9D,KAAA,CAAA,EAJL;AAAA,MAME;AAAA,KAAA;AAAA,GACH,EACF,CAAA;AAEJ;AAEA,SAAS,eAAe,EAAA,EAA6D;AAA7D,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,aAAW,QAAA,EAtCrC,GAsCwB,IAA0B,KAAA,GAAA,SAAA,CAA1B,EAAA,EAA0B,CAAxB,WAAA,EAAW,UAAA,CAAA,CAAA;AACnC,EAAA,MAAM,GAAA,GAAMQ,WAAW,cAAc,CAAA;AACrC,EAAA,IAAI,CAAC,GAAA,EAAK,MAAM,IAAI,MAAM,8CAA8C,CAAA;AAExE,EAAA,uBACEP,IAAAA;AAAA,IAAC,QAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,iBAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,SAAS,GAAA,CAAI,MAAA;AAAA,MACb,iBAAe,GAAA,CAAI,IAAA;AAAA,MACnB,iBAAe,GAAA,CAAI,SAAA;AAAA,MACnB,SAAA,EAAW,EAAA;AAAA,QACT,oFAAA;AAAA,QACA,yCAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA,CAAA,EAXL;AAAA,MAaC,QAAA,EAAA;AAAA,wBAAAD,GAAAA;AAAA,UAACW,WAAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAY,MAAA;AAAA,YACZ,SAAA,EAAW,EAAA;AAAA,cACT,mDAAA;AAAA,cACA,IAAI,IAAA,IAAQ;AAAA;AACd;AAAA,SACF;AAAA,QACC,QAAA,IAAA,IAAA,GAAA,QAAA,GAAY,CAAA,EAAG,GAAA,CAAI,IAAA,GAAO,SAAS,MAAM,CAAA,QAAA;AAAA;AAAA,KAAA;AAAA,GAC5C;AAEJ;AAEA,SAAS,eAAe,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EApE1B,GAoEwB,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AACxB,EAAA,MAAM,GAAA,GAAMH,WAAW,cAAc,CAAA;AACrC,EAAA,IAAI,CAAC,GAAA,EAAK,MAAM,IAAI,MAAM,8CAA8C,CAAA;AACxE,EAAA,IAAI,CAAC,GAAA,CAAI,IAAA,EAAM,OAAO,IAAA;AAEtB,EAAA,uBACER,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,IAAI,GAAA,CAAI,SAAA;AAAA,MACR,WAAA,EAAU,iBAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,SAAA,EAAW,EAAA,CAAG,4CAAA,EAA8C,SAAS;AAAA,KAAA,EACjE,KAAA;AAAA,GACN;AAEJ;AAEA,SAAS,OAAO,EAAA,EAWb;AAXa,EAAA,IAAA,EAAA,GAAA,EAAA,EACd;AAAA,IAAA,IAAA;AAAA,IACA,KAAA;AAAA,IACA,WAAA;AAAA,IACA,OAAA;AAAA,IACA;AAAA,GAzFF,GAoFgB,EAAA,EAMX,KAAA,GAAA,SAAA,CANW,EAAA,EAMX;AAAA,IALH,MAAA;AAAA,IACA,OAAA;AAAA,IACA,aAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAOA,EAAA,uBACEC,IAAAA;AAAA,IAAC,GAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,QAAA;AAAA,MACV,IAAA;AAAA,MACA,MAAA,EAAO,QAAA;AAAA,MACP,GAAA,EAAI,qBAAA;AAAA,MACJ,SAAA,EAAW,EAAA;AAAA,QACT,yDAAA;AAAA,QACA,mBAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA,CAAA,EAVL;AAAA,MAYE,QAAA,EAAA;AAAA,QAAA,OAAA,oBAAWD,IAAC,KAAA,EAAA,EAAI,GAAA,EAAK,SAAS,GAAA,EAAI,EAAA,EAAG,WAAU,gCAAA,EAAiC,CAAA;AAAA,wBACjFC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACb,QAAA,EAAA;AAAA,0BAAAD,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,8CAAA,EAAgD,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,UAClE,+BACCA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,qDAAqD,QAAA,EAAA,WAAA,EAAY;AAAA,SAAA,EAElF,CAAA;AAAA,wBACAA,GAAAA,CAACiB,YAAAA,EAAA,EAAa,WAAU,gDAAA,EAAiD;AAAA;AAAA,KAAA;AAAA,GAC3E;AAEJ;AClHA,SAAS,YAAY,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EALvB,GAKqB,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AACrB,EAAA,uBACEjB,GAAAA,CAAC,KAAA,EAAA,cAAA,CAAA,EAAI,WAAA,EAAU,aAAA,EAAc,WAAW,EAAA,CAAG,sBAAA,EAAwB,SAAS,CAAA,EAAA,EAAO,KAAA,CAAO,CAAA;AAE9F;AAEA,SAAS,WAAW,EAAA,EAAmD;AAAnD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAXtB,GAWoB,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AACpB,EAAA,uBACEA,GAAAA;AAAA,IAAC,QAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,YAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,SAAA,EAAW,EAAA;AAAA,QACT,oFAAA;AAAA,QACA,2CAAA;AAAA,QACA,8CAAA;AAAA,QACA,qGAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA;AAAA,GACN;AAEJ;ACdA,IAAM,WAAA,GAAcM,cAAuC,IAAI,CAAA;AAI/D,IAAM,WAAA,GAAgD;AAAA,EACpD,OAAA,EAAS,MAAA;AAAA,EACT,OAAA,EAAS,OAAA;AAAA,EACT,QAAA,EAAUQ,KAAAA;AAAA,EACV,KAAA,EAAO;AACT,CAAA;AAEA,SAAS,KAAK,EAAA,EAKwC;AALxC,EAAA,IAAA,EAAA,GAAA,EAAA,EACZ;AAAA,IAAA,WAAA,GAAc,KAAA;AAAA,IACd,SAAA;AAAA,IACA;AAAA,GA1BF,GAuBc,EAAA,EAIT,KAAA,GAAA,SAAA,CAJS,EAAA,EAIT;AAAA,IAHH,aAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIX,SAAS,WAAW,CAAA;AAC5C,EAAA,MAAM,MAAA,GAASC,WAAAA,CAAY,MAAM,OAAA,CAAQ,CAAC,MAAM,CAAC,CAAC,CAAA,EAAG,EAAE,CAAA;AACvD,EAAA,MAAM,YAAYW,KAAAA,EAAM;AAExB,EAAA,uBACEf,GAAAA,CAAC,WAAA,CAAY,QAAA,EAAZ,EAAqB,KAAA,EAAO,EAAE,IAAA,EAAM,MAAA,EAAQ,SAAA,EAAU,EACrD,QAAA,kBAAAA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,MAAA;AAAA,MACV,YAAA,EAAY,OAAO,MAAA,GAAS,QAAA;AAAA,MAC5B,SAAA,EAAW,EAAA,CAAG,yCAAA,EAA2C,SAAS;AAAA,KAAA,EAC9D,KAAA,CAAA,EAJL;AAAA,MAME;AAAA,KAAA;AAAA,GACH,EACF,CAAA;AAEJ;AAEA,SAAS,YAAY,EAAA,EAKkC;AALlC,EAAA,IAAA,EAAA,GAAA,EAAA,EACnB;AAAA,IAAA,MAAA,GAAS,SAAA;AAAA,IACT,SAAA;AAAA,IACA;AAAA,GAlDF,GA+CqB,EAAA,EAIhB,KAAA,GAAA,SAAA,CAJgB,EAAA,EAIhB;AAAA,IAHH,QAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,MAAM,GAAA,GAAMQ,WAAW,WAAW,CAAA;AAClC,EAAA,IAAI,CAAC,GAAA,EAAK,MAAM,IAAI,MAAM,wCAAwC,CAAA;AAElE,EAAA,MAAM,IAAA,GAAO,YAAY,MAAM,CAAA;AAE/B,EAAA,uBACEP,IAAAA;AAAA,IAAC,QAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,cAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,SAAS,GAAA,CAAI,MAAA;AAAA,MACb,iBAAe,GAAA,CAAI,IAAA;AAAA,MACnB,iBAAe,GAAA,CAAI,SAAA;AAAA,MACnB,SAAA,EAAW,EAAA;AAAA,QACT,oDAAA;AAAA,QACA,qDAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA,CAAA,EAXL;AAAA,MAaC,QAAA,EAAA;AAAA,wBAAAD,GAAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAY,MAAA;AAAA,YACZ,SAAA,EAAW,EAAA;AAAA,cACT,iBAAA;AAAA,cACA,WAAW,UAAA,IAAc,kBAAA;AAAA,cACzB,WAAW,SAAA,IAAa,2BAAA;AAAA,cACxB,WAAW,OAAA,IAAW,cAAA;AAAA,cACtB,WAAW,SAAA,IAAa;AAAA;AAC1B;AAAA,SACF;AAAA,wBACAA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,yCAAyC,QAAA,EAAS,CAAA;AAAA,wBAClEA,GAAAA;AAAA,UAACW,WAAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAY,MAAA;AAAA,YACZ,SAAA,EAAW,EAAA;AAAA,cACT,yEAAA;AAAA,cACA,IAAI,IAAA,IAAQ;AAAA;AACd;AAAA;AACF;AAAA,KAAA;AAAA,GACF;AAEJ;AAEA,SAAS,YAAY,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EA9FvB,GA8FqB,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AACrB,EAAA,MAAM,GAAA,GAAMH,WAAW,WAAW,CAAA;AAClC,EAAA,IAAI,EAAC,GAAA,IAAA,IAAA,GAAA,MAAA,GAAA,GAAA,CAAK,IAAA,CAAA,EAAM,OAAO,IAAA;AAEvB,EAAA,uBACER,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,IAAI,GAAA,CAAI,SAAA;AAAA,MACR,WAAA,EAAU,cAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,SAAA,EAAW,EAAA;AAAA,QACT,0EAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA;AAAA,GACN;AAEJ;AAEA,SAAS,SAAS,EAAA,EAIkC;AAJlC,EAAA,IAAA,EAAA,GAAA,EAAA,EAChB;AAAA,IAAA,MAAA,GAAS,SAAA;AAAA,IACT;AAAA,GAlHF,GAgHkB,EAAA,EAGb,KAAA,GAAA,SAAA,CAHa,EAAA,EAGb;AAAA,IAFH,QAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,MAAM,IAAA,GAAO,YAAY,MAAM,CAAA;AAE/B,EAAA,uBACEC,IAAAA,CAAC,KAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAI,WAAA,EAAU,WAAA,EAAY,SAAA,EAAW,EAAA,CAAG,8BAAA,EAAgC,SAAS,CAAA,EAAA,EAAO,KAAA,CAAA,EAAxF,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,EAAA;AAAA,UACT,mBAAA;AAAA,UACA,WAAW,UAAA,IAAc,kBAAA;AAAA,UACzB,WAAW,SAAA,IAAa,2BAAA;AAAA,UACxB,WAAW,OAAA,IAAW,cAAA;AAAA,UACtB,WAAW,SAAA,IAAa;AAAA;AAC1B;AAAA,KACF;AAAA,oBACAA,GAAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,EAAA,CAAG,SAAA,EAAW,MAAA,KAAW,cAAc,oCAAoC,CAAA;AAAA,QAErF,QAAA,EAAA,KAAA,CAAM;AAAA;AAAA;AACT,GAAA,EAAA,CACF,CAAA;AAEJ;AAEA,SAAS,aAAa,EAAA,EAI4B;AAJ5B,EAAA,IAAA,EAAA,GAAA,EAAA,EACpB;AAAA,IAAA,QAAA;AAAA,IACA;AAAA,GA7IF,GA2IsB,EAAA,EAGjB,KAAA,GAAA,SAAA,CAHiB,EAAA,EAGjB;AAAA,IAFH,UAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,uBACEA,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,gBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,2EAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA,CAAA,EANL;AAAA,MAQE,QAAA,EAAA;AAAA,KAAA;AAAA,GACH;AAEJ;AC/IA,IAAM,WAAA,GAAcM,cAAuC,IAAI,CAAA;AAI/D,IAAM,mBAAA,GAAsBC,GAAAA;AAAA,EAC1B,oGAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ;AAAA,QACN,OAAA,EAAS,gCAAA;AAAA,QACT,OAAA,EAAS,4BAAA;AAAA,QACT,OAAA,EAAS,0DAAA;AAAA,QACT,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB,EAAE,MAAA,EAAQ,SAAA;AAAU;AAEzC;AAEA,SAAS,eAAe,MAAA,EAA4B;AAClD,EAAA,QAAQ,MAAA;AAAQ,IACd,KAAK,SAAA;AACH,MAAA,OAAO,SAAA;AAAA,IACT,KAAK,SAAA;AACH,MAAA,OAAO,SAAA;AAAA,IACT,KAAK,SAAA;AACH,MAAA,OAAO,MAAA;AAAA,IACT,KAAK,OAAA;AACH,MAAA,OAAO,OAAA;AAAA;AAEb;AAEA,SAAS,KAAK,EAAA,EAKwC;AALxC,EAAA,IAAA,EAAA,GAAA,EAAA,EACZ;AAAA,IAAA,WAAA,GAAc,KAAA;AAAA,IACd,SAAA;AAAA,IACA;AAAA,GAhDF,GA6Cc,EAAA,EAIT,KAAA,GAAA,SAAA,CAJS,EAAA,EAIT;AAAA,IAHH,aAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIJ,SAAS,WAAW,CAAA;AAC5C,EAAA,MAAM,MAAA,GAASC,WAAAA,CAAY,MAAM,OAAA,CAAQ,CAAC,MAAM,CAAC,CAAC,CAAA,EAAG,EAAE,CAAA;AACvD,EAAA,MAAM,YAAYW,KAAAA,EAAM;AAExB,EAAA,uBACEf,GAAAA,CAAC,WAAA,CAAY,QAAA,EAAZ,EAAqB,KAAA,EAAO,EAAE,IAAA,EAAM,MAAA,EAAQ,SAAA,EAAU,EACrD,QAAA,kBAAAA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,MAAA;AAAA,MACV,YAAA,EAAY,OAAO,MAAA,GAAS,QAAA;AAAA,MAC5B,SAAA,EAAW,EAAA,CAAG,yCAAA,EAA2C,SAAS;AAAA,KAAA,EAC9D,KAAA,CAAA,EAJL;AAAA,MAME;AAAA,KAAA;AAAA,GACH,EACF,CAAA;AAEJ;AAEA,SAAS,WAAW,EAAA,EAUjB;AAViB,EAAA,IAAA,EAAA,GAAA,EAAA,EAClB;AAAA,IAAA,IAAA;AAAA,IACA,MAAA,GAAS,SAAA;AAAA,IACT,IAAA;AAAA,IACA;AAAA,GAzEF,GAqEoB,EAAA,EAKf,KAAA,GAAA,SAAA,CALe,EAAA,EAKf;AAAA,IAJH,MAAA;AAAA,IACA,QAAA;AAAA,IACA,MAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAOA,EAAA,MAAM,GAAA,GAAMQ,WAAW,WAAW,CAAA;AAClC,EAAA,IAAI,CAAC,GAAA,EAAK,MAAM,IAAI,MAAM,uCAAuC,CAAA;AAEjE,EAAA,uBACEP,IAAAA;AAAA,IAAC,QAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,aAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,SAAS,GAAA,CAAI,MAAA;AAAA,MACb,iBAAe,GAAA,CAAI,IAAA;AAAA,MACnB,iBAAe,GAAA,CAAI,SAAA;AAAA,MACnB,SAAA,EAAW,EAAA;AAAA,QACT,wFAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA,CAAA,EAVL;AAAA,MAYE,QAAA,EAAA;AAAA,QAAA,IAAA,IAAA,IAAA,GAAA,IAAA,mBAAQD,GAAAA,CAAC,QAAA,EAAA,EAAS,aAAA,EAAY,MAAA,EAAO,WAAU,uCAAA,EAAwC,CAAA;AAAA,wBACxFA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mEACb,QAAA,EAAA,IAAA,EACH,CAAA;AAAA,wBACAA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,mBAAA,CAAoB,EAAE,MAAA,EAAQ,CAAA,EAAI,QAAA,EAAA,cAAA,CAAe,MAAM,CAAA,EAAE,CAAA;AAAA,wBAC1EA,GAAAA;AAAA,UAACW,WAAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAY,MAAA;AAAA,YACZ,SAAA,EAAW,EAAA;AAAA,cACT,yEAAA;AAAA,cACA,IAAI,IAAA,IAAQ;AAAA;AACd;AAAA;AACF;AAAA,KAAA;AAAA,GACF;AAEJ;AAEA,SAAS,YAAY,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAhHvB,GAgHqB,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AACrB,EAAA,MAAM,GAAA,GAAMH,WAAW,WAAW,CAAA;AAClC,EAAA,IAAI,EAAC,GAAA,IAAA,IAAA,GAAA,MAAA,GAAA,GAAA,CAAK,IAAA,CAAA,EAAM,OAAO,IAAA;AAEvB,EAAA,uBACER,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,IAAI,GAAA,CAAI,SAAA;AAAA,MACR,WAAA,EAAU,cAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,SAAA,EAAW,EAAA,CAAG,wBAAA,EAA0B,SAAS;AAAA,KAAA,EAC7C,KAAA;AAAA,GACN;AAEJ;AAEA,SAAS,UAAU,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EA/HrB,GA+HmB,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AACnB,EAAA,uBACEC,IAAAA,CAAC,KAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAI,WAAA,EAAU,YAAA,EAAa,SAAA,EAAW,EAAA,CAAG,qBAAA,EAAuB,SAAS,CAAA,EAAA,EAAO,KAAA,CAAA,EAAhF,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,wEAAA,EAAyE,QAAA,EAAA,OAAA,EAEtF,CAAA;AAAA,oBACAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2DAAA,EACZ,gBAAM,QAAA,EACT;AAAA,GAAA,EAAA,CACF,CAAA;AAEJ;AAEA,SAAS,WAAW,EAAA,EAAgD;AAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EA5ItB,GA4IoB,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AACpB,EAAA,uBACEC,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,aAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,4CAAA,EAA8C,SAAS;AAAA,KAAA,EACjE,KAAA,CAAA,EAHL;AAAA,MAKC,QAAA,EAAA;AAAA,wBAAAD,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,wEAAA,EAAyE,QAAA,EAAA,QAAA,EAEtF,CAAA;AAAA,wBACAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2DAAA,EACZ,gBAAM,QAAA,EACT;AAAA;AAAA,KAAA;AAAA,GACF;AAEJ","file":"chatbot.js","sourcesContent":["\"use client\"\n\nimport { File, FileAudio, FileImage, FileVideo, X } from \"lucide-react\"\nimport type { ComponentProps } from \"react\"\nimport { cn } from \"../lib/utils\"\n\nfunction Attachments({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div data-slot=\"attachments\" className={cn(\"flex flex-wrap gap-2\", className)} {...props} />\n )\n}\n\ntype AttachmentType = \"image\" | \"video\" | \"audio\" | \"file\"\n\nconst typeIcons: Record<AttachmentType, typeof File> = {\n image: FileImage,\n video: FileVideo,\n audio: FileAudio,\n file: File,\n}\n\nfunction Attachment({\n name,\n type = \"file\",\n url,\n onRemove,\n className,\n ...props\n}: ComponentProps<\"div\"> & {\n name: string\n type?: AttachmentType\n url?: string\n onRemove?: () => void\n}) {\n const Icon = typeIcons[type]\n\n return (\n <div\n data-slot=\"attachment\"\n className={cn(\n \"group/attachment relative flex items-center gap-2 rounded-lg border border-border bg-card px-3 py-2\",\n \"text-sm transition-colors\",\n className,\n )}\n {...props}\n >\n {type === \"image\" && url ? (\n <img src={url} alt={name} className=\"size-8 rounded object-cover\" />\n ) : (\n <Icon className=\"size-4 shrink-0 text-muted-foreground\" />\n )}\n <span className=\"min-w-0 truncate text-foreground\">{name}</span>\n {onRemove && (\n <button\n type=\"button\"\n onClick={onRemove}\n aria-label={`Remove ${name}`}\n className=\"ml-1 shrink-0 rounded-full p-0.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground\"\n >\n <X aria-hidden=\"true\" className=\"size-3\" />\n </button>\n )}\n </div>\n )\n}\n\nexport { Attachments, Attachment }\nexport type { AttachmentType }\n","\"use client\"\n\nimport { ChevronDown, Search } from \"lucide-react\"\nimport { type ComponentProps, createContext, useCallback, useContext, useId, useState } from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype ChainOfThoughtContextValue = {\n open: boolean\n toggle: () => void\n contentId: string\n}\n\nconst ChainOfThoughtContext = createContext<ChainOfThoughtContextValue | null>(null)\n\nfunction ChainOfThought({\n defaultOpen = false,\n className,\n children,\n ...props\n}: ComponentProps<\"div\"> & { defaultOpen?: boolean }) {\n const [open, setOpen] = useState(defaultOpen)\n const toggle = useCallback(() => setOpen((o) => !o), [])\n const contentId = useId()\n\n return (\n <ChainOfThoughtContext.Provider value={{ open, toggle, contentId }}>\n <div\n data-slot=\"chain-of-thought\"\n data-state={open ? \"open\" : \"closed\"}\n className={cn(\"rounded-xl border border-border bg-card\", className)}\n {...props}\n >\n {children}\n </div>\n </ChainOfThoughtContext.Provider>\n )\n}\n\nfunction ChainOfThoughtHeader({ className, children, ...props }: ComponentProps<\"button\">) {\n const ctx = useContext(ChainOfThoughtContext)\n if (!ctx) throw new Error(\"ChainOfThoughtHeader must be used within <ChainOfThought>\")\n\n return (\n <button\n data-slot=\"chain-of-thought-header\"\n type=\"button\"\n onClick={ctx.toggle}\n aria-expanded={ctx.open}\n aria-controls={ctx.contentId}\n className={cn(\n \"flex w-full items-center gap-2 px-4 py-3 font-medium text-sm\",\n \"text-muted-foreground transition-colors hover:text-foreground\",\n className,\n )}\n {...props}\n >\n <ChevronDown\n aria-hidden=\"true\"\n className={cn(\n \"size-4 shrink-0 transition-transform duration-200\",\n ctx.open && \"rotate-180\",\n )}\n />\n {children ?? \"Chain of thought\"}\n </button>\n )\n}\n\nfunction ChainOfThoughtContent({ className, ...props }: ComponentProps<\"div\">) {\n const ctx = useContext(ChainOfThoughtContext)\n if (!ctx?.open) return null\n\n return (\n <div\n id={ctx.contentId}\n data-slot=\"chain-of-thought-content\"\n role=\"region\"\n className={cn(\"space-y-3 border-border border-t px-4 py-3\", className)}\n {...props}\n />\n )\n}\n\nfunction ChainOfThoughtStep({\n step,\n status,\n className,\n children,\n ...props\n}: ComponentProps<\"div\"> & {\n step: number\n status?: \"pending\" | \"active\" | \"complete\"\n}) {\n return (\n <div\n data-slot=\"chain-of-thought-step\"\n data-status={status}\n className={cn(\"flex gap-3\", className)}\n {...props}\n >\n <span\n className={cn(\n \"flex size-6 shrink-0 items-center justify-center rounded-full font-bold text-xs\",\n status === \"complete\" && \"bg-primary text-primary-foreground\",\n status === \"active\" && \"bg-primary/20 text-primary ring-2 ring-primary/30\",\n (!status || status === \"pending\") && \"bg-muted text-muted-foreground\",\n )}\n >\n {step}\n </span>\n <div className=\"min-w-0 flex-1 text-foreground text-sm\">{children}</div>\n </div>\n )\n}\n\nfunction ChainOfThoughtSearchResults({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"chain-of-thought-search-results\"\n className={cn(\"space-y-2 pl-9\", className)}\n {...props}\n />\n )\n}\n\nfunction ChainOfThoughtSearchResult({\n title,\n url,\n className,\n ...props\n}: ComponentProps<\"a\"> & { title: string; url: string }) {\n return (\n <a\n data-slot=\"chain-of-thought-search-result\"\n href={url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={cn(\n \"flex items-center gap-2 rounded-lg p-2 text-sm transition-colors hover:bg-muted/50\",\n className,\n )}\n {...props}\n >\n <Search className=\"size-3.5 shrink-0 text-muted-foreground\" />\n <span className=\"truncate text-foreground\">{title}</span>\n </a>\n )\n}\n\nexport {\n ChainOfThought,\n ChainOfThoughtHeader,\n ChainOfThoughtContent,\n ChainOfThoughtStep,\n ChainOfThoughtSearchResults,\n ChainOfThoughtSearchResult,\n}\n","\"use client\"\n\nimport { Bookmark } from \"lucide-react\"\nimport type { ComponentProps, ReactNode } from \"react\"\nimport { cn } from \"../lib/utils\"\n\nfunction Checkpoint({ className, children, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"checkpoint\"\n className={cn(\n \"flex items-center gap-3 rounded-lg border border-border border-dashed bg-muted/30 px-4 py-2.5\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n )\n}\n\nfunction CheckpointIcon({\n icon,\n className,\n ...props\n}: ComponentProps<\"span\"> & { icon?: ReactNode }) {\n return (\n <span\n data-slot=\"checkpoint-icon\"\n className={cn(\"shrink-0 text-muted-foreground\", className)}\n {...props}\n >\n {icon ?? <Bookmark className=\"size-4\" />}\n </span>\n )\n}\n\nfunction CheckpointTrigger({ className, ...props }: ComponentProps<\"button\">) {\n return (\n <button\n data-slot=\"checkpoint-trigger\"\n type=\"button\"\n className={cn(\n \"flex-1 truncate text-left text-muted-foreground text-sm transition-colors hover:text-foreground\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Checkpoint, CheckpointIcon, CheckpointTrigger }\n","\"use client\"\n\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { AlertTriangle, Check, X } from \"lucide-react\"\nimport type { ComponentProps, ReactNode } from \"react\"\nimport { cn } from \"../lib/utils\"\n\nconst confirmationVariants = cva(\"rounded-xl border p-4 space-y-3\", {\n variants: {\n status: {\n pending: \"border-border bg-card\",\n accepted: \"border-emerald-500/30 bg-emerald-500/5\",\n rejected: \"border-red-500/30 bg-red-500/5\",\n },\n },\n defaultVariants: { status: \"pending\" },\n})\n\nfunction Confirmation({\n status = \"pending\",\n className,\n children,\n ...props\n}: ComponentProps<\"div\"> & VariantProps<typeof confirmationVariants>) {\n return (\n <div\n data-slot=\"confirmation\"\n data-status={status}\n role=\"alert\"\n className={cn(confirmationVariants({ status }), className)}\n {...props}\n >\n {children}\n </div>\n )\n}\n\nfunction ConfirmationRequest({\n icon,\n title,\n description,\n className,\n ...props\n}: ComponentProps<\"div\"> & {\n icon?: ReactNode\n title: string\n description?: string\n}) {\n return (\n <div\n data-slot=\"confirmation-request\"\n className={cn(\"flex items-start gap-3\", className)}\n {...props}\n >\n {icon ?? (\n <AlertTriangle aria-hidden=\"true\" className=\"mt-0.5 size-5 shrink-0 text-amber-500\" />\n )}\n <div className=\"min-w-0\">\n <p className=\"font-medium text-foreground text-sm\">{title}</p>\n {description && <p className=\"mt-0.5 text-muted-foreground text-xs\">{description}</p>}\n </div>\n </div>\n )\n}\n\nfunction ConfirmationAccepted({ className, children, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"confirmation-accepted\"\n className={cn(\n \"flex items-center gap-2 text-emerald-600 text-sm dark:text-emerald-400\",\n className,\n )}\n {...props}\n >\n <Check className=\"size-4 shrink-0\" />\n {children ?? \"Approved\"}\n </div>\n )\n}\n\nfunction ConfirmationRejected({ className, children, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"confirmation-rejected\"\n className={cn(\"flex items-center gap-2 text-red-600 text-sm dark:text-red-400\", className)}\n {...props}\n >\n <X className=\"size-4 shrink-0\" />\n {children ?? \"Rejected\"}\n </div>\n )\n}\n\nfunction ConfirmationActions({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"confirmation-actions\"\n className={cn(\"flex items-center gap-2\", className)}\n {...props}\n />\n )\n}\n\nfunction ConfirmationAction({\n variant = \"default\",\n className,\n ...props\n}: ComponentProps<\"button\"> & {\n variant?: \"default\" | \"destructive\"\n}) {\n return (\n <button\n data-slot=\"confirmation-action\"\n type=\"button\"\n className={cn(\n \"inline-flex items-center justify-center rounded-lg px-3 py-1.5 font-medium text-sm transition-colors\",\n variant === \"destructive\"\n ? \"bg-red-500/10 text-red-600 hover:bg-red-500/20 dark:text-red-400\"\n : \"bg-primary text-primary-foreground hover:bg-primary/90\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport {\n Confirmation,\n ConfirmationRequest,\n ConfirmationAccepted,\n ConfirmationRejected,\n ConfirmationActions,\n ConfirmationAction,\n confirmationVariants,\n}\n","\"use client\"\n\nimport { Info } from \"lucide-react\"\nimport type { ComponentProps } from \"react\"\nimport { cn } from \"../lib/utils\"\n\nfunction Context({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"context\"\n className={cn(\"space-y-3 rounded-xl border border-border bg-card p-4\", className)}\n {...props}\n />\n )\n}\n\nfunction ContextHeader({ className, children, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"context-header\"\n className={cn(\"flex items-center gap-2 font-medium text-foreground text-sm\", className)}\n {...props}\n >\n <Info aria-hidden=\"true\" className=\"size-4 shrink-0 text-muted-foreground\" />\n {children ?? \"Context\"}\n </div>\n )\n}\n\nfunction ContextBody({ className, ...props }: ComponentProps<\"div\">) {\n return <div data-slot=\"context-body\" className={cn(\"space-y-2\", className)} {...props} />\n}\n\nfunction ContextUsage({\n label,\n used,\n total,\n className,\n ...props\n}: ComponentProps<\"div\"> & {\n label: string\n used: number\n total: number\n}) {\n const percentage = Math.min(100, Math.round((used / total) * 100))\n const isHigh = percentage > 80\n\n return (\n <div data-slot=\"context-usage\" className={cn(\"space-y-1.5\", className)} {...props}>\n <div className=\"flex items-center justify-between text-xs\">\n <span className=\"text-muted-foreground\">{label}</span>\n <span\n className={cn(\"font-mono tabular-nums\", isHigh ? \"text-amber-500\" : \"text-foreground\")}\n >\n {used.toLocaleString()} / {total.toLocaleString()}\n </span>\n </div>\n <div\n role=\"progressbar\"\n aria-valuenow={used}\n aria-valuemin={0}\n aria-valuemax={total}\n aria-label={label}\n className=\"h-1.5 overflow-hidden rounded-full bg-muted\"\n >\n <div\n className={cn(\n \"h-full rounded-full transition-all duration-300\",\n isHigh ? \"bg-amber-500\" : \"bg-primary\",\n )}\n style={{ width: `${percentage}%` }}\n />\n </div>\n </div>\n )\n}\n\nexport { Context, ContextHeader, ContextBody, ContextUsage }\n","\"use client\"\n\nimport { ArrowDown, Download, MessageSquare } from \"lucide-react\"\nimport {\n type ComponentProps,\n type ReactNode,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\"\nimport { cn } from \"../lib/utils\"\n\n// ---------------------------------------------------------------------------\n// Root — manages auto-scroll to bottom\n// ---------------------------------------------------------------------------\n\nfunction Conversation({ className, children, ...props }: ComponentProps<\"div\">) {\n const ref = useRef<HTMLDivElement>(null)\n const [isAtBottom, setIsAtBottom] = useState(true)\n\n useEffect(() => {\n const el = ref.current\n if (!el) return\n\n function handleScroll() {\n const threshold = 100\n setIsAtBottom(el!.scrollHeight - el!.scrollTop - el!.clientHeight < threshold)\n }\n\n el.addEventListener(\"scroll\", handleScroll, { passive: true })\n return () => el.removeEventListener(\"scroll\", handleScroll)\n }, [])\n\n // Auto-scroll when new content arrives and user is at bottom\n useEffect(() => {\n if (isAtBottom && ref.current) {\n ref.current.scrollTop = ref.current.scrollHeight\n }\n })\n\n const scrollToBottom = useCallback(() => {\n ref.current?.scrollTo({ top: ref.current.scrollHeight, behavior: \"smooth\" })\n }, [])\n\n return (\n <div data-slot=\"conversation\" className={cn(\"relative flex flex-col\", className)} {...props}>\n <div ref={ref} role=\"log\" aria-live=\"polite\" className=\"flex-1 overflow-y-auto\">\n {children}\n </div>\n {!isAtBottom && <ConversationScrollButton onClick={scrollToBottom} />}\n </div>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Content — message list area with padding\n// ---------------------------------------------------------------------------\n\nfunction ConversationContent({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"conversation-content\"\n className={cn(\"flex flex-col gap-6 p-4\", className)}\n {...props}\n />\n )\n}\n\n// ---------------------------------------------------------------------------\n// Empty state\n// ---------------------------------------------------------------------------\n\nfunction ConversationEmptyState({\n title = \"No messages yet\",\n description = \"Start a conversation to see messages here\",\n icon,\n className,\n children,\n ...props\n}: ComponentProps<\"div\"> & {\n title?: string\n description?: string\n icon?: ReactNode\n}) {\n return (\n <div\n data-slot=\"conversation-empty-state\"\n className={cn(\n \"flex flex-1 flex-col items-center justify-center gap-4 p-8 text-center\",\n className,\n )}\n {...props}\n >\n {icon ?? <MessageSquare aria-hidden=\"true\" className=\"size-10 text-muted-foreground/40\" />}\n <div className=\"space-y-1\">\n <p className=\"font-medium text-foreground text-sm\">{title}</p>\n <p className=\"text-muted-foreground text-sm\">{description}</p>\n </div>\n {children}\n </div>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Scroll-to-bottom button\n// ---------------------------------------------------------------------------\n\nfunction ConversationScrollButton({ className, ...props }: ComponentProps<\"button\">) {\n return (\n <button\n data-slot=\"conversation-scroll-button\"\n type=\"button\"\n className={cn(\n \"absolute bottom-4 left-1/2 -translate-x-1/2\",\n \"inline-flex items-center gap-1.5 rounded-full border border-border bg-card px-3 py-1.5\",\n \"font-medium text-muted-foreground text-xs shadow-sm\",\n \"transition-colors hover:bg-accent hover:text-foreground\",\n className,\n )}\n {...props}\n >\n <ArrowDown className=\"size-3\" />\n Scroll to bottom\n </button>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Download conversation\n// ---------------------------------------------------------------------------\n\nfunction ConversationDownload({\n messages,\n filename = \"conversation.md\",\n formatMessage,\n className,\n ...props\n}: Omit<ComponentProps<\"button\">, \"onClick\"> & {\n messages: Array<{ role: string; content: string }>\n filename?: string\n formatMessage?: (msg: { role: string; content: string }, index: number) => string\n}) {\n const handleDownload = useCallback(() => {\n const md = messages\n .map(\n (msg, i) =>\n formatMessage?.(msg, i) ??\n `## ${msg.role === \"user\" ? \"You\" : msg.role === \"assistant\" ? \"Assistant\" : \"System\"}\\n\\n${msg.content}`,\n )\n .join(\"\\n\\n---\\n\\n\")\n\n const blob = new Blob([md], { type: \"text/markdown\" })\n const url = URL.createObjectURL(blob)\n const a = document.createElement(\"a\")\n a.href = url\n a.download = filename\n a.click()\n URL.revokeObjectURL(url)\n }, [messages, filename, formatMessage])\n\n return (\n <button\n data-slot=\"conversation-download\"\n type=\"button\"\n onClick={handleDownload}\n className={cn(\n \"inline-flex items-center gap-1.5 rounded-md px-2.5 py-1.5 text-xs\",\n \"text-muted-foreground transition-colors hover:text-foreground\",\n className,\n )}\n {...props}\n >\n <Download className=\"size-3.5\" />\n Download\n </button>\n )\n}\n\nexport {\n Conversation,\n ConversationContent,\n ConversationEmptyState,\n ConversationScrollButton,\n ConversationDownload,\n}\n","\"use client\"\n\nimport { ExternalLink } from \"lucide-react\"\nimport { type ComponentProps, useState } from \"react\"\nimport { cn } from \"../lib/utils\"\n\nfunction InlineCitation({\n index,\n href,\n title,\n description,\n children,\n className,\n ...props\n}: ComponentProps<\"span\"> & {\n index: number\n href: string\n title: string\n description?: string\n}) {\n const [showCard, setShowCard] = useState(false)\n\n return (\n <span\n data-slot=\"inline-citation\"\n className={cn(\"relative inline-flex items-baseline\", className)}\n onMouseEnter={() => setShowCard(true)}\n onMouseLeave={() => setShowCard(false)}\n onFocus={() => setShowCard(true)}\n onBlur={() => setShowCard(false)}\n {...props}\n >\n {children}\n <a\n href={href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label={`Citation ${index}: ${title}`}\n className=\"ml-0.5 inline-flex size-4 items-center justify-center rounded-full bg-primary/10 align-super font-bold text-[10px] text-primary transition-colors hover:bg-primary/20\"\n >\n {index}\n </a>\n\n {showCard && (\n <span role=\"tooltip\" className=\"absolute bottom-full left-1/2 z-50 mb-2 -translate-x-1/2\">\n <InlineCitationCard href={href} title={title} description={description} />\n </span>\n )}\n </span>\n )\n}\n\nfunction InlineCitationCard({\n href,\n title,\n description,\n className,\n ...props\n}: ComponentProps<\"a\"> & {\n title: string\n description?: string\n}) {\n return (\n <a\n data-slot=\"inline-citation-card\"\n href={href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={cn(\n \"block w-64 rounded-lg border border-border bg-popover p-3 shadow-md\",\n \"transition-colors hover:bg-muted/50\",\n className,\n )}\n {...props}\n >\n <p className=\"truncate font-medium text-popover-foreground text-sm\">{title}</p>\n {description && (\n <p className=\"mt-1 line-clamp-2 text-muted-foreground text-xs\">{description}</p>\n )}\n <span className=\"mt-2 inline-flex items-center gap-1 text-primary text-xs\">\n Open <ExternalLink className=\"size-3\" />\n </span>\n </a>\n )\n}\n\nexport { InlineCitation, InlineCitationCard }\n","\"use client\"\n\nimport { cva } from \"class-variance-authority\"\nimport { ChevronLeft, ChevronRight, Copy, RefreshCw, ThumbsDown, ThumbsUp } from \"lucide-react\"\nimport { type ComponentProps, createContext, useCallback, useContext, useState } from \"react\"\nimport { cn } from \"../lib/utils\"\n\n// ---------------------------------------------------------------------------\n// Message role context\n// ---------------------------------------------------------------------------\n\ntype MessageRole = \"user\" | \"assistant\" | \"system\"\n\nconst MessageContext = createContext<{ role: MessageRole }>({ role: \"assistant\" })\n\n// ---------------------------------------------------------------------------\n// CVA — message alignment and styling per role\n// ---------------------------------------------------------------------------\n\nconst messageVariants = cva(\"group/message flex gap-3\", {\n variants: {\n from: {\n user: \"flex-row-reverse\",\n assistant: \"flex-row\",\n system: \"flex-row justify-center\",\n },\n },\n defaultVariants: { from: \"assistant\" },\n})\n\n// ---------------------------------------------------------------------------\n// Root\n// ---------------------------------------------------------------------------\n\nfunction Message({\n from = \"assistant\",\n className,\n children,\n ...props\n}: ComponentProps<\"div\"> & { from?: MessageRole }) {\n return (\n <MessageContext.Provider value={{ role: from }}>\n <div\n data-slot=\"message\"\n data-role={from}\n className={cn(messageVariants({ from }), className)}\n {...props}\n >\n {children}\n </div>\n </MessageContext.Provider>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Avatar — rendered before/after content depending on role\n// ---------------------------------------------------------------------------\n\nfunction MessageAvatar({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"message-avatar\"\n className={cn(\n \"flex size-8 shrink-0 items-center justify-center rounded-full bg-muted text-muted-foreground\",\n className,\n )}\n {...props}\n />\n )\n}\n\n// ---------------------------------------------------------------------------\n// Content wrapper\n// ---------------------------------------------------------------------------\n\nfunction MessageContent({ className, ...props }: ComponentProps<\"div\">) {\n const { role } = useContext(MessageContext)\n\n return (\n <div\n data-slot=\"message-content\"\n className={cn(\n \"flex max-w-[80%] flex-col gap-1\",\n role === \"user\" && \"items-end\",\n role === \"system\" && \"max-w-full items-center\",\n className,\n )}\n {...props}\n />\n )\n}\n\n// ---------------------------------------------------------------------------\n// Response bubble — the actual message body\n// ---------------------------------------------------------------------------\n\nconst responseBubbleVariants = cva(\"rounded-2xl px-4 py-3 text-sm leading-relaxed\", {\n variants: {\n from: {\n user: \"bg-primary text-primary-foreground\",\n assistant: \"bg-muted text-foreground\",\n system: \"bg-muted/50 text-muted-foreground italic text-center\",\n },\n },\n defaultVariants: { from: \"assistant\" },\n})\n\nfunction MessageResponse({ className, ...props }: ComponentProps<\"div\">) {\n const { role } = useContext(MessageContext)\n\n return (\n <div\n data-slot=\"message-response\"\n className={cn(\n responseBubbleVariants({ from: role }),\n \"prose prose-sm dark:prose-invert max-w-none\",\n \"[&_pre]:rounded-lg [&_pre]:bg-card [&_pre]:p-3 [&_pre]:font-mono [&_pre]:text-xs\",\n \"[&_code]:rounded [&_code]:bg-card [&_code]:px-1.5 [&_code]:py-0.5 [&_code]:font-mono [&_code]:text-xs\",\n className,\n )}\n {...props}\n />\n )\n}\n\n// ---------------------------------------------------------------------------\n// Actions toolbar\n// ---------------------------------------------------------------------------\n\nfunction MessageActions({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"message-actions\"\n className={cn(\n \"flex items-center gap-1 opacity-0 transition-opacity group-hover/message:opacity-100\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction MessageAction({\n tooltip,\n className,\n ...props\n}: ComponentProps<\"button\"> & { tooltip?: string }) {\n return (\n <button\n data-slot=\"message-action\"\n type=\"button\"\n title={tooltip}\n className={cn(\n \"inline-flex items-center justify-center rounded-md p-1.5\",\n \"text-muted-foreground transition-colors hover:bg-muted hover:text-foreground\",\n className,\n )}\n {...props}\n />\n )\n}\n\n// ---------------------------------------------------------------------------\n// Convenience action buttons\n// ---------------------------------------------------------------------------\n\nfunction MessageCopyAction({\n content,\n className,\n ...props\n}: ComponentProps<\"button\"> & { content: string }) {\n const [copied, setCopied] = useState(false)\n\n const handleCopy = useCallback(() => {\n navigator.clipboard.writeText(content)\n setCopied(true)\n setTimeout(() => setCopied(false), 2000)\n }, [content])\n\n return (\n <MessageAction\n tooltip={copied ? \"Copied!\" : \"Copy\"}\n onClick={handleCopy}\n className={className}\n {...props}\n >\n <Copy className=\"size-3.5\" />\n </MessageAction>\n )\n}\n\nfunction MessageRegenerateAction(props: ComponentProps<\"button\">) {\n return (\n <MessageAction tooltip=\"Regenerate\" {...props}>\n <RefreshCw className=\"size-3.5\" />\n </MessageAction>\n )\n}\n\nfunction MessageFeedbackActions({\n onThumbsUp,\n onThumbsDown,\n}: {\n onThumbsUp?: () => void\n onThumbsDown?: () => void\n}) {\n return (\n <>\n <MessageAction tooltip=\"Good response\" onClick={onThumbsUp}>\n <ThumbsUp className=\"size-3.5\" />\n </MessageAction>\n <MessageAction tooltip=\"Bad response\" onClick={onThumbsDown}>\n <ThumbsDown className=\"size-3.5\" />\n </MessageAction>\n </>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Branch selector (for multiple response variants)\n// ---------------------------------------------------------------------------\n\ntype BranchContextValue = {\n branch: number\n total: number\n prev: () => void\n next: () => void\n}\n\nconst BranchContext = createContext<BranchContextValue | null>(null)\n\nfunction MessageBranch({\n total,\n defaultBranch = 0,\n onBranchChange,\n children,\n}: {\n total: number\n defaultBranch?: number\n onBranchChange?: (index: number) => void\n children: React.ReactNode\n}) {\n const [branch, setBranch] = useState(defaultBranch)\n\n const prev = useCallback(() => {\n setBranch((b) => {\n const next = Math.max(0, b - 1)\n onBranchChange?.(next)\n return next\n })\n }, [onBranchChange])\n\n const next = useCallback(() => {\n setBranch((b) => {\n const next = Math.min(total - 1, b + 1)\n onBranchChange?.(next)\n return next\n })\n }, [total, onBranchChange])\n\n return (\n <BranchContext.Provider value={{ branch, total, prev, next }}>\n {children}\n </BranchContext.Provider>\n )\n}\n\nfunction MessageBranchSelector({ className, ...props }: ComponentProps<\"div\">) {\n const ctx = useContext(BranchContext)\n if (!ctx || ctx.total <= 1) return null\n\n return (\n <div\n data-slot=\"message-branch-selector\"\n className={cn(\"inline-flex items-center gap-1 text-muted-foreground text-xs\", className)}\n {...props}\n >\n <button\n type=\"button\"\n onClick={ctx.prev}\n disabled={ctx.branch === 0}\n aria-label=\"Previous response\"\n className=\"rounded p-0.5 transition-colors hover:bg-muted disabled:opacity-30\"\n >\n <ChevronLeft aria-hidden=\"true\" className=\"size-3.5\" />\n </button>\n <span className=\"tabular-nums\" aria-label={`Response ${ctx.branch + 1} of ${ctx.total}`}>\n {ctx.branch + 1} / {ctx.total}\n </span>\n <button\n type=\"button\"\n onClick={ctx.next}\n disabled={ctx.branch === ctx.total - 1}\n aria-label=\"Next response\"\n className=\"rounded p-0.5 transition-colors hover:bg-muted disabled:opacity-30\"\n >\n <ChevronRight aria-hidden=\"true\" className=\"size-3.5\" />\n </button>\n </div>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Attachments within a message\n// ---------------------------------------------------------------------------\n\nfunction MessageAttachments({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"message-attachments\"\n className={cn(\"flex flex-wrap gap-2\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Message,\n MessageAvatar,\n MessageContent,\n MessageResponse,\n MessageActions,\n MessageAction,\n MessageCopyAction,\n MessageRegenerateAction,\n MessageFeedbackActions,\n MessageBranch,\n MessageBranchSelector,\n MessageAttachments,\n messageVariants,\n responseBubbleVariants,\n}\nexport type { MessageRole }\n","\"use client\"\n\nimport { Check, ChevronDown, Search } from \"lucide-react\"\nimport {\n type ComponentProps,\n createContext,\n type ReactNode,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\"\nimport { cn } from \"../lib/utils\"\n\n// ---------------------------------------------------------------------------\n// Context\n// ---------------------------------------------------------------------------\n\ntype ModelSelectorContextValue = {\n open: boolean\n setOpen: (open: boolean) => void\n search: string\n setSearch: (search: string) => void\n selected: string | null\n onSelect: (modelId: string) => void\n}\n\nconst ModelSelectorContext = createContext<ModelSelectorContextValue | null>(null)\n\nfunction useModelSelector() {\n const ctx = useContext(ModelSelectorContext)\n if (!ctx) throw new Error(\"useModelSelector must be used within <ModelSelector>\")\n return ctx\n}\n\n// ---------------------------------------------------------------------------\n// Root\n// ---------------------------------------------------------------------------\n\nfunction ModelSelector({\n value,\n onValueChange,\n children,\n}: {\n value?: string\n onValueChange?: (modelId: string) => void\n children: ReactNode\n}) {\n const [open, setOpen] = useState(false)\n const [search, setSearch] = useState(\"\")\n const [selected, setSelected] = useState(value ?? null)\n\n useEffect(() => {\n if (value !== undefined) setSelected(value)\n }, [value])\n\n const onSelect = useCallback(\n (modelId: string) => {\n setSelected(modelId)\n onValueChange?.(modelId)\n setOpen(false)\n setSearch(\"\")\n },\n [onValueChange],\n )\n\n return (\n <ModelSelectorContext.Provider value={{ open, setOpen, search, setSearch, selected, onSelect }}>\n <div data-slot=\"model-selector\" className=\"relative\">\n {children}\n </div>\n </ModelSelectorContext.Provider>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Trigger\n// ---------------------------------------------------------------------------\n\nfunction ModelSelectorTrigger({ className, children, ...props }: ComponentProps<\"button\">) {\n const { open, setOpen, selected } = useModelSelector()\n\n return (\n <button\n data-slot=\"model-selector-trigger\"\n type=\"button\"\n onClick={() => setOpen(!open)}\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n className={cn(\n \"inline-flex items-center gap-2 rounded-lg border border-border bg-card px-3 py-2 text-sm\",\n \"transition-colors hover:bg-accent\",\n className,\n )}\n {...props}\n >\n {children ?? selected ?? \"Select model\"}\n <ChevronDown\n aria-hidden=\"true\"\n className={cn(\"size-3.5 text-muted-foreground transition-transform\", open && \"rotate-180\")}\n />\n </button>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Content (dropdown)\n// ---------------------------------------------------------------------------\n\nfunction ModelSelectorContent({ className, children, ...props }: ComponentProps<\"div\">) {\n const { open, setOpen } = useModelSelector()\n const ref = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n if (!open) return\n function handleClickOutside(e: MouseEvent) {\n if (ref.current && !ref.current.contains(e.target as Node)) {\n setOpen(false)\n }\n }\n function handleEscape(e: KeyboardEvent) {\n if (e.key === \"Escape\") setOpen(false)\n }\n document.addEventListener(\"mousedown\", handleClickOutside)\n document.addEventListener(\"keydown\", handleEscape)\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside)\n document.removeEventListener(\"keydown\", handleEscape)\n }\n }, [open, setOpen])\n\n if (!open) return null\n\n return (\n <div\n ref={ref}\n data-slot=\"model-selector-content\"\n className={cn(\n \"absolute top-full left-0 z-50 mt-1 w-72\",\n \"rounded-xl border border-border bg-popover p-1 shadow-lg\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Search input\n// ---------------------------------------------------------------------------\n\nfunction ModelSelectorInput({ className, ...props }: ComponentProps<\"input\">) {\n const { search, setSearch } = useModelSelector()\n\n return (\n <div className=\"relative px-1 pb-1\">\n <Search\n aria-hidden=\"true\"\n className=\"absolute top-1/2 left-3 size-3.5 -translate-y-1/2 text-muted-foreground\"\n />\n <input\n data-slot=\"model-selector-input\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n placeholder=\"Search models...\"\n aria-label=\"Search models\"\n className={cn(\n \"w-full rounded-lg bg-muted/50 py-2 pr-3 pl-8 text-sm\",\n \"placeholder:text-muted-foreground focus:outline-none\",\n className,\n )}\n {...props}\n />\n </div>\n )\n}\n\n// ---------------------------------------------------------------------------\n// List / Group / Item\n// ---------------------------------------------------------------------------\n\nfunction ModelSelectorList({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"model-selector-list\"\n role=\"listbox\"\n aria-label=\"Models\"\n className={cn(\"max-h-64 overflow-y-auto\", className)}\n {...props}\n />\n )\n}\n\nfunction ModelSelectorGroup({\n label,\n className,\n children,\n ...props\n}: ComponentProps<\"div\"> & { label?: string }) {\n return (\n <div data-slot=\"model-selector-group\" className={cn(\"py-1\", className)} {...props}>\n {label && (\n <p className=\"px-2 py-1.5 font-medium text-[10px] text-muted-foreground uppercase tracking-wider\">\n {label}\n </p>\n )}\n {children}\n </div>\n )\n}\n\nfunction ModelSelectorItem({\n value,\n logo,\n name,\n description,\n className,\n ...props\n}: ComponentProps<\"button\"> & {\n value: string\n logo?: ReactNode\n name: string\n description?: string\n}) {\n const { selected, onSelect, search } = useModelSelector()\n const isSelected = selected === value\n\n // Filter by search\n const visible = useMemo(() => {\n if (!search) return true\n const q = search.toLowerCase()\n return name.toLowerCase().includes(q) || value.toLowerCase().includes(q)\n }, [search, name, value])\n\n if (!visible) return null\n\n return (\n <button\n data-slot=\"model-selector-item\"\n type=\"button\"\n role=\"option\"\n aria-selected={isSelected}\n onClick={() => onSelect(value)}\n className={cn(\n \"flex w-full items-center gap-3 rounded-lg px-2 py-2 text-left text-sm\",\n \"transition-colors hover:bg-muted/50\",\n isSelected && \"bg-muted\",\n className,\n )}\n {...props}\n >\n {logo && (\n <span className=\"shrink-0 [&>img]:size-5 [&>img]:rounded [&>svg]:size-4\">{logo}</span>\n )}\n <span className=\"min-w-0 flex-1\">\n <span className=\"block truncate font-medium text-foreground\">{name}</span>\n {description && (\n <span className=\"block truncate text-muted-foreground text-xs\">{description}</span>\n )}\n </span>\n {isSelected && <Check aria-hidden=\"true\" className=\"size-4 shrink-0 text-primary\" />}\n </button>\n )\n}\n\nfunction ModelSelectorEmpty({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"model-selector-empty\"\n className={cn(\"py-6 text-center text-muted-foreground text-sm\", className)}\n {...props}\n >\n {props.children ?? \"No models found.\"}\n </div>\n )\n}\n\nfunction ModelSelectorSeparator({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"model-selector-separator\"\n role=\"separator\"\n className={cn(\"mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nexport {\n ModelSelector,\n ModelSelectorTrigger,\n ModelSelectorContent,\n ModelSelectorInput,\n ModelSelectorList,\n ModelSelectorGroup,\n ModelSelectorItem,\n ModelSelectorEmpty,\n ModelSelectorSeparator,\n useModelSelector,\n}\n","\"use client\"\n\nimport { ChevronDown, ListChecks } from \"lucide-react\"\nimport { type ComponentProps, createContext, useCallback, useContext, useId, useState } from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype PlanContextValue = {\n open: boolean\n toggle: () => void\n contentId: string\n}\n\nconst PlanContext = createContext<PlanContextValue | null>(null)\n\nfunction Plan({\n defaultOpen = true,\n className,\n children,\n ...props\n}: ComponentProps<\"div\"> & { defaultOpen?: boolean }) {\n const [open, setOpen] = useState(defaultOpen)\n const toggle = useCallback(() => setOpen((o) => !o), [])\n const contentId = useId()\n\n return (\n <PlanContext.Provider value={{ open, toggle, contentId }}>\n <div\n data-slot=\"plan\"\n data-state={open ? \"open\" : \"closed\"}\n className={cn(\"rounded-xl border border-border bg-card\", className)}\n {...props}\n >\n {children}\n </div>\n </PlanContext.Provider>\n )\n}\n\nfunction PlanHeader({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"plan-header\"\n className={cn(\"flex items-center gap-3 px-4 py-3\", className)}\n {...props}\n />\n )\n}\n\nfunction PlanTitle({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"plan-title\"\n className={cn(\"flex-1 font-medium text-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction PlanDescription({ className, ...props }: ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"plan-description\"\n className={cn(\"px-4 pb-3 text-muted-foreground text-xs\", className)}\n {...props}\n />\n )\n}\n\nfunction PlanTrigger({ className, ...props }: ComponentProps<\"button\">) {\n const ctx = useContext(PlanContext)\n if (!ctx) throw new Error(\"PlanTrigger must be used within <Plan>\")\n\n return (\n <button\n data-slot=\"plan-trigger\"\n type=\"button\"\n onClick={ctx.toggle}\n aria-expanded={ctx.open}\n aria-controls={ctx.contentId}\n className={cn(\n \"flex w-full items-center gap-2 px-4 py-3 font-medium text-sm\",\n \"text-muted-foreground transition-colors hover:text-foreground\",\n className,\n )}\n {...props}\n >\n <ListChecks aria-hidden=\"true\" className=\"size-4 shrink-0\" />\n <span className=\"flex-1 text-left\">{props.children ?? \"Execution Plan\"}</span>\n <ChevronDown\n aria-hidden=\"true\"\n className={cn(\n \"size-4 shrink-0 transition-transform duration-200\",\n ctx.open && \"rotate-180\",\n )}\n />\n </button>\n )\n}\n\nfunction PlanContent({ className, ...props }: ComponentProps<\"div\">) {\n const ctx = useContext(PlanContext)\n if (!ctx?.open) return null\n\n return (\n <div\n id={ctx.contentId}\n data-slot=\"plan-content\"\n role=\"region\"\n className={cn(\"space-y-2 border-border border-t px-4 py-3\", className)}\n {...props}\n />\n )\n}\n\nfunction PlanFooter({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"plan-footer\"\n className={cn(\"flex items-center gap-2 border-border border-t px-4 py-2.5\", className)}\n {...props}\n />\n )\n}\n\nfunction PlanAction({ className, ...props }: ComponentProps<\"button\">) {\n return (\n <button\n data-slot=\"plan-action\"\n type=\"button\"\n className={cn(\n \"inline-flex items-center rounded-lg px-3 py-1.5 font-medium text-xs\",\n \"bg-primary text-primary-foreground transition-colors hover:bg-primary/90\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport {\n Plan,\n PlanHeader,\n PlanTitle,\n PlanDescription,\n PlanTrigger,\n PlanContent,\n PlanFooter,\n PlanAction,\n}\n","\"use client\"\n\nimport { ArrowUp, Paperclip, Square, X } from \"lucide-react\"\nimport {\n type ComponentProps,\n createContext,\n type FormEvent,\n useCallback,\n useContext,\n useRef,\n useState,\n} from \"react\"\nimport { cn } from \"../lib/utils\"\n\n// ---------------------------------------------------------------------------\n// Context for sharing input state\n// ---------------------------------------------------------------------------\n\ntype PromptInputContextValue = {\n value: string\n setValue: (value: string) => void\n files: File[]\n addFiles: (files: File[]) => void\n removeFile: (index: number) => void\n clearFiles: () => void\n submit: () => void\n isLoading: boolean\n}\n\nconst PromptInputContext = createContext<PromptInputContextValue | null>(null)\n\nfunction usePromptInput() {\n const ctx = useContext(PromptInputContext)\n if (!ctx) throw new Error(\"usePromptInput must be used within <PromptInput>\")\n return ctx\n}\n\n// ---------------------------------------------------------------------------\n// Root — form wrapper with context\n// ---------------------------------------------------------------------------\n\nfunction PromptInput({\n onSubmit,\n isLoading = false,\n className,\n children,\n ...props\n}: Omit<ComponentProps<\"form\">, \"onSubmit\"> & {\n onSubmit?: (message: string, files: File[]) => void\n isLoading?: boolean\n}) {\n const [value, setValue] = useState(\"\")\n const [files, setFiles] = useState<File[]>([])\n\n const addFiles = useCallback((newFiles: File[]) => {\n setFiles((prev) => [...prev, ...newFiles])\n }, [])\n\n const removeFile = useCallback((index: number) => {\n setFiles((prev) => prev.filter((_, i) => i !== index))\n }, [])\n\n const clearFiles = useCallback(() => setFiles([]), [])\n\n const submit = useCallback(() => {\n if (!value.trim() && files.length === 0) return\n onSubmit?.(value.trim(), files)\n setValue(\"\")\n setFiles([])\n }, [value, files, onSubmit])\n\n const handleSubmit = useCallback(\n (e: FormEvent) => {\n e.preventDefault()\n submit()\n },\n [submit],\n )\n\n return (\n <PromptInputContext.Provider\n value={{ value, setValue, files, addFiles, removeFile, clearFiles, submit, isLoading }}\n >\n <form\n data-slot=\"prompt-input\"\n onSubmit={handleSubmit}\n className={cn(\n \"flex flex-col rounded-2xl border border-border bg-card shadow-sm\",\n \"focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2\",\n className,\n )}\n {...props}\n >\n {children}\n </form>\n </PromptInputContext.Provider>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Layout areas\n// ---------------------------------------------------------------------------\n\nfunction PromptInputHeader({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"prompt-input-header\"\n className={cn(\"border-border border-b px-4 py-2\", className)}\n {...props}\n />\n )\n}\n\nfunction PromptInputBody({ className, ...props }: ComponentProps<\"div\">) {\n return <div data-slot=\"prompt-input-body\" className={cn(\"flex-1\", className)} {...props} />\n}\n\nfunction PromptInputFooter({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"prompt-input-footer\"\n className={cn(\"flex items-center gap-2 px-3 py-2\", className)}\n {...props}\n />\n )\n}\n\n// ---------------------------------------------------------------------------\n// Textarea — auto-resizing input\n// ---------------------------------------------------------------------------\n\nfunction PromptInputTextarea({ className, onKeyDown, ...props }: ComponentProps<\"textarea\">) {\n const { value, setValue, submit, isLoading } = usePromptInput()\n const ref = useRef<HTMLTextAreaElement>(null)\n\n const handleInput = useCallback(() => {\n const el = ref.current\n if (!el) return\n el.style.height = \"auto\"\n el.style.height = `${Math.min(el.scrollHeight, 200)}px`\n }, [])\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (e.key === \"Enter\" && !e.shiftKey) {\n e.preventDefault()\n if (!isLoading) submit()\n }\n onKeyDown?.(e)\n },\n [submit, isLoading, onKeyDown],\n )\n\n return (\n <textarea\n ref={ref}\n data-slot=\"prompt-input-textarea\"\n value={value}\n onChange={(e) => {\n setValue(e.target.value)\n handleInput()\n }}\n onKeyDown={handleKeyDown}\n placeholder=\"Type a message...\"\n rows={1}\n disabled={isLoading}\n className={cn(\n \"w-full resize-none bg-transparent px-4 py-3 text-foreground text-sm\",\n \"placeholder:text-muted-foreground\",\n \"focus:outline-none\",\n \"disabled:opacity-50\",\n className,\n )}\n {...props}\n />\n )\n}\n\n// ---------------------------------------------------------------------------\n// Toolbar / tools\n// ---------------------------------------------------------------------------\n\nfunction PromptInputTools({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"prompt-input-tools\"\n className={cn(\"flex items-center gap-1\", className)}\n {...props}\n />\n )\n}\n\n// ---------------------------------------------------------------------------\n// Attach button\n// ---------------------------------------------------------------------------\n\nfunction PromptInputAttachButton({\n accept,\n multiple = true,\n className,\n ...props\n}: Omit<ComponentProps<\"button\">, \"onClick\"> & {\n accept?: string\n multiple?: boolean\n}) {\n const { addFiles } = usePromptInput()\n const inputRef = useRef<HTMLInputElement>(null)\n\n const handleClick = useCallback(() => {\n inputRef.current?.click()\n }, [])\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const fileList = e.target.files\n if (fileList) {\n addFiles(Array.from(fileList))\n e.target.value = \"\"\n }\n },\n [addFiles],\n )\n\n return (\n <>\n <input\n ref={inputRef}\n type=\"file\"\n accept={accept}\n multiple={multiple}\n onChange={handleChange}\n className=\"hidden\"\n aria-hidden=\"true\"\n tabIndex={-1}\n />\n <button\n data-slot=\"prompt-input-attach-button\"\n type=\"button\"\n onClick={handleClick}\n aria-label=\"Attach files\"\n className={cn(\n \"inline-flex items-center justify-center rounded-md p-2\",\n \"text-muted-foreground transition-colors hover:bg-muted hover:text-foreground\",\n className,\n )}\n {...props}\n >\n <Paperclip aria-hidden=\"true\" className=\"size-4\" />\n </button>\n </>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Submit button\n// ---------------------------------------------------------------------------\n\nfunction PromptInputSubmit({ className, ...props }: ComponentProps<\"button\">) {\n const { value, files, isLoading } = usePromptInput()\n const hasContent = value.trim().length > 0 || files.length > 0\n\n return (\n <button\n data-slot=\"prompt-input-submit\"\n type=\"submit\"\n disabled={!hasContent && !isLoading}\n aria-label={isLoading ? \"Stop generation\" : \"Send message\"}\n className={cn(\n \"ml-auto inline-flex items-center justify-center rounded-full p-2\",\n \"transition-colors\",\n isLoading\n ? \"bg-destructive text-destructive-foreground hover:bg-destructive/90\"\n : hasContent\n ? \"bg-primary text-primary-foreground hover:bg-primary/90\"\n : \"bg-muted text-muted-foreground\",\n className,\n )}\n {...props}\n >\n {isLoading ? <Square className=\"size-4\" /> : <ArrowUp className=\"size-4\" />}\n </button>\n )\n}\n\n// ---------------------------------------------------------------------------\n// File preview list\n// ---------------------------------------------------------------------------\n\nfunction PromptInputFiles({ className, ...props }: ComponentProps<\"div\">) {\n const { files, removeFile } = usePromptInput()\n if (files.length === 0) return null\n\n return (\n <div\n data-slot=\"prompt-input-files\"\n className={cn(\"flex flex-wrap gap-2 px-4 pt-2\", className)}\n {...props}\n >\n {files.map((file, i) => (\n <span\n key={`${file.name}-${i}`}\n className=\"inline-flex items-center gap-1.5 rounded-lg border border-border bg-muted/50 px-2.5 py-1 text-foreground text-xs\"\n >\n {file.name}\n <button\n type=\"button\"\n onClick={() => removeFile(i)}\n aria-label={`Remove ${file.name}`}\n className=\"rounded-full p-0.5 text-muted-foreground transition-colors hover:text-foreground\"\n >\n <X aria-hidden=\"true\" className=\"size-3\" />\n </button>\n </span>\n ))}\n </div>\n )\n}\n\nexport {\n PromptInput,\n PromptInputHeader,\n PromptInputBody,\n PromptInputFooter,\n PromptInputTextarea,\n PromptInputTools,\n PromptInputAttachButton,\n PromptInputSubmit,\n PromptInputFiles,\n usePromptInput,\n}\n","\"use client\"\n\nimport { cva } from \"class-variance-authority\"\nimport { ChevronDown } from \"lucide-react\"\nimport { type ComponentProps, createContext, useCallback, useContext, useId, useState } from \"react\"\nimport { cn } from \"../lib/utils\"\n\n// ---------------------------------------------------------------------------\n// Queue section (collapsible group)\n// ---------------------------------------------------------------------------\n\ntype QueueSectionContextValue = {\n open: boolean\n toggle: () => void\n contentId: string\n}\n\nconst QueueSectionContext = createContext<QueueSectionContextValue | null>(null)\n\nfunction QueueSection({\n defaultOpen = true,\n className,\n children,\n ...props\n}: ComponentProps<\"div\"> & { defaultOpen?: boolean }) {\n const [open, setOpen] = useState(defaultOpen)\n const toggle = useCallback(() => setOpen((o) => !o), [])\n const contentId = useId()\n\n return (\n <QueueSectionContext.Provider value={{ open, toggle, contentId }}>\n <div data-slot=\"queue-section\" className={cn(\"space-y-1\", className)} {...props}>\n {children}\n </div>\n </QueueSectionContext.Provider>\n )\n}\n\nfunction QueueSectionTrigger({ className, ...props }: ComponentProps<\"button\">) {\n const ctx = useContext(QueueSectionContext)\n if (!ctx) throw new Error(\"QueueSectionTrigger must be used within <QueueSection>\")\n\n return (\n <button\n data-slot=\"queue-section-trigger\"\n type=\"button\"\n onClick={ctx.toggle}\n aria-expanded={ctx.open}\n aria-controls={ctx.contentId}\n className={cn(\n \"flex w-full items-center gap-2 px-2 py-1.5 font-medium text-muted-foreground text-xs\",\n \"rounded-md transition-colors hover:text-foreground\",\n className,\n )}\n {...props}\n >\n <ChevronDown\n aria-hidden=\"true\"\n className={cn(\n \"size-3.5 shrink-0 transition-transform duration-200\",\n ctx.open && \"rotate-180\",\n )}\n />\n {props.children}\n </button>\n )\n}\n\nfunction QueueSectionLabel({ className, ...props }: ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"queue-section-label\"\n className={cn(\"flex-1 text-left\", className)}\n {...props}\n />\n )\n}\n\nfunction QueueList({ className, ...props }: ComponentProps<\"div\">) {\n const ctx = useContext(QueueSectionContext)\n if (ctx && !ctx.open) return null\n\n return (\n <div\n id={ctx?.contentId}\n data-slot=\"queue-list\"\n role=\"list\"\n className={cn(\"space-y-1\", className)}\n {...props}\n />\n )\n}\n\n// ---------------------------------------------------------------------------\n// Queue item\n// ---------------------------------------------------------------------------\n\ntype QueueItemStatus = \"pending\" | \"active\" | \"complete\" | \"error\"\n\nconst queueItemIndicatorVariants = cva(\"size-2 shrink-0 rounded-full\", {\n variants: {\n status: {\n pending: \"bg-muted-foreground/30\",\n active: \"bg-primary animate-pulse\",\n complete: \"bg-emerald-500\",\n error: \"bg-red-500\",\n },\n },\n defaultVariants: { status: \"pending\" },\n})\n\nfunction QueueItem({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"queue-item\"\n role=\"listitem\"\n className={cn(\n \"flex items-start gap-3 rounded-lg px-3 py-2.5\",\n \"transition-colors hover:bg-muted/50\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction QueueItemIndicator({\n status = \"pending\",\n className,\n ...props\n}: ComponentProps<\"span\"> & { status?: QueueItemStatus }) {\n return (\n <span\n data-slot=\"queue-item-indicator\"\n role=\"img\"\n aria-label={status}\n className={cn(queueItemIndicatorVariants({ status }), \"mt-1.5\", className)}\n {...props}\n />\n )\n}\n\nfunction QueueItemContent({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div data-slot=\"queue-item-content\" className={cn(\"min-w-0 flex-1\", className)} {...props} />\n )\n}\n\nfunction QueueItemDescription({ className, ...props }: ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"queue-item-description\"\n className={cn(\"mt-0.5 text-muted-foreground text-xs\", className)}\n {...props}\n />\n )\n}\n\nfunction QueueItemActions({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"queue-item-actions\"\n className={cn(\"flex shrink-0 items-center gap-1\", className)}\n {...props}\n />\n )\n}\n\nexport {\n QueueSection,\n QueueSectionTrigger,\n QueueSectionLabel,\n QueueList,\n QueueItem,\n QueueItemIndicator,\n QueueItemContent,\n QueueItemDescription,\n QueueItemActions,\n queueItemIndicatorVariants,\n}\nexport type { QueueItemStatus }\n","\"use client\"\n\nimport { ChevronDown } from \"lucide-react\"\nimport { type ComponentProps, createContext, useCallback, useContext, useId, useState } from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype ReasoningContextValue = {\n open: boolean\n toggle: () => void\n contentId: string\n}\n\nconst ReasoningContext = createContext<ReasoningContextValue | null>(null)\n\nfunction useReasoning() {\n const ctx = useContext(ReasoningContext)\n if (!ctx) throw new Error(\"useReasoning must be used within <Reasoning>\")\n return ctx\n}\n\nfunction Reasoning({\n defaultOpen = false,\n className,\n children,\n ...props\n}: ComponentProps<\"div\"> & { defaultOpen?: boolean }) {\n const [open, setOpen] = useState(defaultOpen)\n const toggle = useCallback(() => setOpen((o) => !o), [])\n const contentId = useId()\n\n return (\n <ReasoningContext.Provider value={{ open, toggle, contentId }}>\n <div\n data-slot=\"reasoning\"\n data-state={open ? \"open\" : \"closed\"}\n className={cn(\"rounded-xl border border-border bg-card\", className)}\n {...props}\n >\n {children}\n </div>\n </ReasoningContext.Provider>\n )\n}\n\nfunction ReasoningTrigger({ className, children, ...props }: ComponentProps<\"button\">) {\n const { open, toggle, contentId } = useReasoning()\n\n return (\n <button\n data-slot=\"reasoning-trigger\"\n type=\"button\"\n onClick={toggle}\n aria-expanded={open}\n aria-controls={contentId}\n className={cn(\n \"flex w-full items-center gap-2 px-4 py-3 font-medium text-muted-foreground text-sm\",\n \"transition-colors hover:text-foreground\",\n className,\n )}\n {...props}\n >\n <ChevronDown\n aria-hidden=\"true\"\n className={cn(\"size-4 shrink-0 transition-transform duration-200\", open && \"rotate-180\")}\n />\n {children ?? (open ? \"Hide reasoning\" : \"Show reasoning\")}\n </button>\n )\n}\n\nfunction ReasoningContent({ className, ...props }: ComponentProps<\"div\">) {\n const { open, contentId } = useReasoning()\n if (!open) return null\n\n return (\n <div\n id={contentId}\n data-slot=\"reasoning-content\"\n role=\"region\"\n className={cn(\n \"border-border border-t px-4 py-3\",\n \"font-mono text-muted-foreground text-sm leading-relaxed\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Reasoning, ReasoningTrigger, ReasoningContent, useReasoning }\n","\"use client\"\n\nimport type { ComponentProps, ElementType } from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype ShimmerProps<T extends ElementType = \"p\"> = Omit<ComponentProps<\"p\">, \"as\"> & {\n /** The HTML element to render as */\n as?: T\n /** Animation duration in seconds */\n duration?: number\n /** Size of the shimmer gradient spread (0-1) */\n spread?: number\n}\n\nfunction Shimmer<T extends ElementType = \"p\">({\n as,\n className,\n duration = 2,\n spread = 0.3,\n style,\n ...props\n}: ShimmerProps<T>) {\n const Component = (as || \"p\") as ElementType\n\n return (\n <Component\n data-slot=\"shimmer\"\n role=\"status\"\n aria-label=\"Loading\"\n className={cn(\n \"animate-shimmer bg-clip-text text-transparent\",\n \"bg-[length:200%_100%]\",\n \"bg-gradient-to-r from-muted-foreground via-foreground to-muted-foreground\",\n className,\n )}\n style={{\n animationDuration: `${duration}s`,\n ...style,\n }}\n {...props}\n />\n )\n}\n\nexport { Shimmer }\nexport type { ShimmerProps }\n","\"use client\"\n\nimport { ChevronDown, ExternalLink } from \"lucide-react\"\nimport { type ComponentProps, createContext, useCallback, useContext, useId, useState } from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype SourcesContextValue = {\n open: boolean\n toggle: () => void\n contentId: string\n}\n\nconst SourcesContext = createContext<SourcesContextValue | null>(null)\n\nfunction Sources({\n defaultOpen = false,\n className,\n children,\n ...props\n}: ComponentProps<\"div\"> & { defaultOpen?: boolean }) {\n const [open, setOpen] = useState(defaultOpen)\n const toggle = useCallback(() => setOpen((o) => !o), [])\n const contentId = useId()\n\n return (\n <SourcesContext.Provider value={{ open, toggle, contentId }}>\n <div\n data-slot=\"sources\"\n data-state={open ? \"open\" : \"closed\"}\n className={cn(\"rounded-xl border border-border bg-card\", className)}\n {...props}\n >\n {children}\n </div>\n </SourcesContext.Provider>\n )\n}\n\nfunction SourcesTrigger({ className, children, ...props }: ComponentProps<\"button\">) {\n const ctx = useContext(SourcesContext)\n if (!ctx) throw new Error(\"SourcesTrigger must be used within <Sources>\")\n\n return (\n <button\n data-slot=\"sources-trigger\"\n type=\"button\"\n onClick={ctx.toggle}\n aria-expanded={ctx.open}\n aria-controls={ctx.contentId}\n className={cn(\n \"flex w-full items-center gap-2 px-4 py-3 font-medium text-muted-foreground text-sm\",\n \"transition-colors hover:text-foreground\",\n className,\n )}\n {...props}\n >\n <ChevronDown\n aria-hidden=\"true\"\n className={cn(\n \"size-4 shrink-0 transition-transform duration-200\",\n ctx.open && \"rotate-180\",\n )}\n />\n {children ?? `${ctx.open ? \"Hide\" : \"Show\"} sources`}\n </button>\n )\n}\n\nfunction SourcesContent({ className, ...props }: ComponentProps<\"div\">) {\n const ctx = useContext(SourcesContext)\n if (!ctx) throw new Error(\"SourcesContent must be used within <Sources>\")\n if (!ctx.open) return null\n\n return (\n <div\n id={ctx.contentId}\n data-slot=\"sources-content\"\n role=\"region\"\n className={cn(\"space-y-2 border-border border-t px-4 py-3\", className)}\n {...props}\n />\n )\n}\n\nfunction Source({\n href,\n title,\n description,\n favicon,\n className,\n ...props\n}: ComponentProps<\"a\"> & {\n title: string\n description?: string\n favicon?: string\n}) {\n return (\n <a\n data-slot=\"source\"\n href={href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={cn(\n \"flex items-start gap-3 rounded-lg p-3 transition-colors\",\n \"hover:bg-muted/50\",\n className,\n )}\n {...props}\n >\n {favicon && <img src={favicon} alt=\"\" className=\"mt-0.5 size-4 shrink-0 rounded\" />}\n <div className=\"min-w-0 flex-1\">\n <p className=\"truncate font-medium text-foreground text-sm\">{title}</p>\n {description && (\n <p className=\"mt-0.5 line-clamp-2 text-muted-foreground text-xs\">{description}</p>\n )}\n </div>\n <ExternalLink className=\"mt-0.5 size-3.5 shrink-0 text-muted-foreground\" />\n </a>\n )\n}\n\nexport { Sources, SourcesTrigger, SourcesContent, Source }\n","\"use client\"\n\nimport type { ComponentProps } from \"react\"\nimport { cn } from \"../lib/utils\"\n\nfunction Suggestions({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div data-slot=\"suggestions\" className={cn(\"flex flex-wrap gap-2\", className)} {...props} />\n )\n}\n\nfunction Suggestion({ className, ...props }: ComponentProps<\"button\">) {\n return (\n <button\n data-slot=\"suggestion\"\n type=\"button\"\n className={cn(\n \"inline-flex items-center gap-2 rounded-full border border-border bg-card px-4 py-2\",\n \"text-foreground text-sm transition-colors\",\n \"hover:bg-accent hover:text-accent-foreground\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Suggestions, Suggestion }\n","\"use client\"\n\nimport { Check, ChevronDown, Circle, Loader2 } from \"lucide-react\"\nimport { type ComponentProps, createContext, useCallback, useContext, useId, useState } from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype TaskContextValue = {\n open: boolean\n toggle: () => void\n contentId: string\n}\n\nconst TaskContext = createContext<TaskContextValue | null>(null)\n\ntype TaskStatus = \"pending\" | \"running\" | \"complete\" | \"error\"\n\nconst statusIcons: Record<TaskStatus, typeof Check> = {\n pending: Circle,\n running: Loader2,\n complete: Check,\n error: Circle,\n}\n\nfunction Task({\n defaultOpen = false,\n className,\n children,\n ...props\n}: ComponentProps<\"div\"> & { defaultOpen?: boolean }) {\n const [open, setOpen] = useState(defaultOpen)\n const toggle = useCallback(() => setOpen((o) => !o), [])\n const contentId = useId()\n\n return (\n <TaskContext.Provider value={{ open, toggle, contentId }}>\n <div\n data-slot=\"task\"\n data-state={open ? \"open\" : \"closed\"}\n className={cn(\"rounded-xl border border-border bg-card\", className)}\n {...props}\n >\n {children}\n </div>\n </TaskContext.Provider>\n )\n}\n\nfunction TaskTrigger({\n status = \"pending\",\n className,\n children,\n ...props\n}: ComponentProps<\"button\"> & { status?: TaskStatus }) {\n const ctx = useContext(TaskContext)\n if (!ctx) throw new Error(\"TaskTrigger must be used within <Task>\")\n\n const Icon = statusIcons[status]\n\n return (\n <button\n data-slot=\"task-trigger\"\n type=\"button\"\n onClick={ctx.toggle}\n aria-expanded={ctx.open}\n aria-controls={ctx.contentId}\n className={cn(\n \"flex w-full items-center gap-2.5 px-4 py-3 text-sm\",\n \"text-foreground transition-colors hover:bg-muted/50\",\n className,\n )}\n {...props}\n >\n <Icon\n aria-hidden=\"true\"\n className={cn(\n \"size-4 shrink-0\",\n status === \"complete\" && \"text-emerald-500\",\n status === \"running\" && \"animate-spin text-primary\",\n status === \"error\" && \"text-red-500\",\n status === \"pending\" && \"text-muted-foreground\",\n )}\n />\n <span className=\"flex-1 truncate text-left font-medium\">{children}</span>\n <ChevronDown\n aria-hidden=\"true\"\n className={cn(\n \"size-4 shrink-0 text-muted-foreground transition-transform duration-200\",\n ctx.open && \"rotate-180\",\n )}\n />\n </button>\n )\n}\n\nfunction TaskContent({ className, ...props }: ComponentProps<\"div\">) {\n const ctx = useContext(TaskContext)\n if (!ctx?.open) return null\n\n return (\n <div\n id={ctx.contentId}\n data-slot=\"task-content\"\n role=\"region\"\n className={cn(\n \"space-y-2 border-border border-t px-4 py-3 text-muted-foreground text-sm\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction TaskItem({\n status = \"pending\",\n className,\n ...props\n}: ComponentProps<\"div\"> & { status?: TaskStatus }) {\n const Icon = statusIcons[status]\n\n return (\n <div data-slot=\"task-item\" className={cn(\"flex items-center gap-2 py-1\", className)} {...props}>\n <Icon\n className={cn(\n \"size-3.5 shrink-0\",\n status === \"complete\" && \"text-emerald-500\",\n status === \"running\" && \"animate-spin text-primary\",\n status === \"error\" && \"text-red-500\",\n status === \"pending\" && \"text-muted-foreground/50\",\n )}\n />\n <span\n className={cn(\"text-sm\", status === \"complete\" && \"text-muted-foreground line-through\")}\n >\n {props.children}\n </span>\n </div>\n )\n}\n\nfunction TaskItemFile({\n filename,\n className,\n ...props\n}: ComponentProps<\"span\"> & { filename: string }) {\n return (\n <span\n data-slot=\"task-item-file\"\n className={cn(\n \"inline-flex items-center rounded bg-muted px-1.5 py-0.5 font-mono text-xs\",\n className,\n )}\n {...props}\n >\n {filename}\n </span>\n )\n}\n\nexport { Task, TaskTrigger, TaskContent, TaskItem, TaskItemFile }\nexport type { TaskStatus }\n","\"use client\"\n\nimport { cva } from \"class-variance-authority\"\nimport { ChevronDown, Terminal } from \"lucide-react\"\nimport { type ComponentProps, createContext, useCallback, useContext, useId, useState } from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype ToolContextValue = {\n open: boolean\n toggle: () => void\n contentId: string\n}\n\nconst ToolContext = createContext<ToolContextValue | null>(null)\n\ntype ToolStatus = \"pending\" | \"running\" | \"success\" | \"error\"\n\nconst statusBadgeVariants = cva(\n \"inline-flex items-center rounded-full px-2 py-0.5 text-[10px] font-medium uppercase tracking-wider\",\n {\n variants: {\n status: {\n pending: \"bg-muted text-muted-foreground\",\n running: \"bg-primary/10 text-primary\",\n success: \"bg-emerald-500/10 text-emerald-600 dark:text-emerald-400\",\n error: \"bg-red-500/10 text-red-600 dark:text-red-400\",\n },\n },\n defaultVariants: { status: \"pending\" },\n },\n)\n\nfunction getStatusLabel(status: ToolStatus): string {\n switch (status) {\n case \"pending\":\n return \"Pending\"\n case \"running\":\n return \"Running\"\n case \"success\":\n return \"Done\"\n case \"error\":\n return \"Error\"\n }\n}\n\nfunction Tool({\n defaultOpen = false,\n className,\n children,\n ...props\n}: ComponentProps<\"div\"> & { defaultOpen?: boolean }) {\n const [open, setOpen] = useState(defaultOpen)\n const toggle = useCallback(() => setOpen((o) => !o), [])\n const contentId = useId()\n\n return (\n <ToolContext.Provider value={{ open, toggle, contentId }}>\n <div\n data-slot=\"tool\"\n data-state={open ? \"open\" : \"closed\"}\n className={cn(\"rounded-xl border border-border bg-card\", className)}\n {...props}\n >\n {children}\n </div>\n </ToolContext.Provider>\n )\n}\n\nfunction ToolHeader({\n name,\n status = \"pending\",\n icon,\n className,\n ...props\n}: ComponentProps<\"button\"> & {\n name: string\n status?: ToolStatus\n icon?: React.ReactNode\n}) {\n const ctx = useContext(ToolContext)\n if (!ctx) throw new Error(\"ToolHeader must be used within <Tool>\")\n\n return (\n <button\n data-slot=\"tool-header\"\n type=\"button\"\n onClick={ctx.toggle}\n aria-expanded={ctx.open}\n aria-controls={ctx.contentId}\n className={cn(\n \"flex w-full items-center gap-2.5 px-4 py-3 text-sm transition-colors hover:bg-muted/50\",\n className,\n )}\n {...props}\n >\n {icon ?? <Terminal aria-hidden=\"true\" className=\"size-4 shrink-0 text-muted-foreground\" />}\n <span className=\"flex-1 truncate text-left font-medium font-mono text-foreground\">\n {name}\n </span>\n <span className={statusBadgeVariants({ status })}>{getStatusLabel(status)}</span>\n <ChevronDown\n aria-hidden=\"true\"\n className={cn(\n \"size-4 shrink-0 text-muted-foreground transition-transform duration-200\",\n ctx.open && \"rotate-180\",\n )}\n />\n </button>\n )\n}\n\nfunction ToolContent({ className, ...props }: ComponentProps<\"div\">) {\n const ctx = useContext(ToolContext)\n if (!ctx?.open) return null\n\n return (\n <div\n id={ctx.contentId}\n data-slot=\"tool-content\"\n role=\"region\"\n className={cn(\"border-border border-t\", className)}\n {...props}\n />\n )\n}\n\nfunction ToolInput({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div data-slot=\"tool-input\" className={cn(\"space-y-1 px-4 py-3\", className)} {...props}>\n <p className=\"font-medium text-[10px] text-muted-foreground uppercase tracking-wider\">\n Input\n </p>\n <pre className=\"overflow-x-auto rounded-lg bg-muted p-3 font-mono text-xs\">\n {props.children}\n </pre>\n </div>\n )\n}\n\nfunction ToolOutput({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"tool-output\"\n className={cn(\"space-y-1 border-border border-t px-4 py-3\", className)}\n {...props}\n >\n <p className=\"font-medium text-[10px] text-muted-foreground uppercase tracking-wider\">\n Output\n </p>\n <pre className=\"overflow-x-auto rounded-lg bg-muted p-3 font-mono text-xs\">\n {props.children}\n </pre>\n </div>\n )\n}\n\nexport { Tool, ToolHeader, ToolContent, ToolInput, ToolOutput, statusBadgeVariants, getStatusLabel }\nexport type { ToolStatus }\n"]}