@usetheo/ui 0.9.0-next.0 → 0.10.0-next.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 (474) hide show
  1. package/CHANGELOG.md +99 -0
  2. package/dist/chunk-2UJROWAG.js +106 -0
  3. package/dist/chunk-2UJROWAG.js.map +1 -0
  4. package/dist/chunk-2XPWOUEH.js +68 -0
  5. package/dist/chunk-2XPWOUEH.js.map +1 -0
  6. package/dist/chunk-3GHLNCM3.js +42 -0
  7. package/dist/chunk-3GHLNCM3.js.map +1 -0
  8. package/dist/chunk-3HOXC25T.js +48 -0
  9. package/dist/chunk-3HOXC25T.js.map +1 -0
  10. package/dist/chunk-3QGO5SB3.js +46 -0
  11. package/dist/chunk-3QGO5SB3.js.map +1 -0
  12. package/dist/chunk-47QJVWW2.js +85 -0
  13. package/dist/chunk-47QJVWW2.js.map +1 -0
  14. package/dist/chunk-4L63UW3I.js +35 -0
  15. package/dist/chunk-4L63UW3I.js.map +1 -0
  16. package/dist/chunk-4UUSJJFZ.js +25 -0
  17. package/dist/chunk-4UUSJJFZ.js.map +1 -0
  18. package/dist/chunk-4ZBZBRG5.js +127 -0
  19. package/dist/chunk-4ZBZBRG5.js.map +1 -0
  20. package/dist/chunk-57NXT3OX.js +92 -0
  21. package/dist/chunk-57NXT3OX.js.map +1 -0
  22. package/dist/chunk-5FF5EUZP.js +44 -0
  23. package/dist/chunk-5FF5EUZP.js.map +1 -0
  24. package/dist/chunk-5UGQXB2P.js +714 -0
  25. package/dist/chunk-5UGQXB2P.js.map +1 -0
  26. package/dist/chunk-62FT22CI.js +85 -0
  27. package/dist/chunk-62FT22CI.js.map +1 -0
  28. package/dist/chunk-673R3GSK.js +19 -0
  29. package/dist/chunk-673R3GSK.js.map +1 -0
  30. package/dist/chunk-6VINZJBV.js +128 -0
  31. package/dist/chunk-6VINZJBV.js.map +1 -0
  32. package/dist/chunk-74NZ5U3E.js +145 -0
  33. package/dist/chunk-74NZ5U3E.js.map +1 -0
  34. package/dist/chunk-755NWSNW.js +36 -0
  35. package/dist/chunk-755NWSNW.js.map +1 -0
  36. package/dist/chunk-7GLBWWMW.js +70 -0
  37. package/dist/chunk-7GLBWWMW.js.map +1 -0
  38. package/dist/chunk-7RXYW5VM.js +88 -0
  39. package/dist/chunk-7RXYW5VM.js.map +1 -0
  40. package/dist/chunk-AC4MGCXI.js +92 -0
  41. package/dist/chunk-AC4MGCXI.js.map +1 -0
  42. package/dist/chunk-AEVSVDT6.js +67 -0
  43. package/dist/chunk-AEVSVDT6.js.map +1 -0
  44. package/dist/chunk-AODIMN2N.js +68 -0
  45. package/dist/chunk-AODIMN2N.js.map +1 -0
  46. package/dist/chunk-ATHOPBCA.js +61 -0
  47. package/dist/chunk-ATHOPBCA.js.map +1 -0
  48. package/dist/chunk-AXKBNRZW.js +173 -0
  49. package/dist/chunk-AXKBNRZW.js.map +1 -0
  50. package/dist/chunk-B75MEYNR.js +106 -0
  51. package/dist/chunk-B75MEYNR.js.map +1 -0
  52. package/dist/chunk-BGKA6DI6.js +34 -0
  53. package/dist/chunk-BGKA6DI6.js.map +1 -0
  54. package/dist/chunk-BNQAJGEN.js +88 -0
  55. package/dist/chunk-BNQAJGEN.js.map +1 -0
  56. package/dist/chunk-BP2SETUC.js +101 -0
  57. package/dist/chunk-BP2SETUC.js.map +1 -0
  58. package/dist/chunk-BPUQWMBD.js +79 -0
  59. package/dist/chunk-BPUQWMBD.js.map +1 -0
  60. package/dist/chunk-BVDASR3Y.js +74 -0
  61. package/dist/chunk-BVDASR3Y.js.map +1 -0
  62. package/dist/chunk-CDA6RYOX.js +115 -0
  63. package/dist/chunk-CDA6RYOX.js.map +1 -0
  64. package/dist/chunk-CG7O3A42.js +80 -0
  65. package/dist/chunk-CG7O3A42.js.map +1 -0
  66. package/dist/chunk-CIYGNPKT.js +76 -0
  67. package/dist/chunk-CIYGNPKT.js.map +1 -0
  68. package/dist/chunk-CKXY4FTV.js +59 -0
  69. package/dist/chunk-CKXY4FTV.js.map +1 -0
  70. package/dist/chunk-CVOKZITR.js +82 -0
  71. package/dist/chunk-CVOKZITR.js.map +1 -0
  72. package/dist/chunk-CWFMFKDI.js +82 -0
  73. package/dist/chunk-CWFMFKDI.js.map +1 -0
  74. package/dist/chunk-CWVKSV7S.js +124 -0
  75. package/dist/chunk-CWVKSV7S.js.map +1 -0
  76. package/dist/chunk-CYOLRWOX.js +63 -0
  77. package/dist/chunk-CYOLRWOX.js.map +1 -0
  78. package/dist/chunk-D23LRJT6.js +116 -0
  79. package/dist/chunk-D23LRJT6.js.map +1 -0
  80. package/dist/chunk-DAKIL5PC.js +186 -0
  81. package/dist/chunk-DAKIL5PC.js.map +1 -0
  82. package/dist/chunk-DFADMEJK.js +127 -0
  83. package/dist/chunk-DFADMEJK.js.map +1 -0
  84. package/dist/chunk-E5A7HN6H.js +32 -0
  85. package/dist/chunk-E5A7HN6H.js.map +1 -0
  86. package/dist/chunk-EI63GTN7.js +57 -0
  87. package/dist/chunk-EI63GTN7.js.map +1 -0
  88. package/dist/chunk-EP25QJ4N.js +146 -0
  89. package/dist/chunk-EP25QJ4N.js.map +1 -0
  90. package/dist/chunk-ET44426Q.js +80 -0
  91. package/dist/chunk-ET44426Q.js.map +1 -0
  92. package/dist/chunk-ETEIDY34.js +67 -0
  93. package/dist/chunk-ETEIDY34.js.map +1 -0
  94. package/dist/chunk-EU55O4P7.js +76 -0
  95. package/dist/chunk-EU55O4P7.js.map +1 -0
  96. package/dist/chunk-F436537E.js +104 -0
  97. package/dist/chunk-F436537E.js.map +1 -0
  98. package/dist/chunk-FLBTGNQI.js +86 -0
  99. package/dist/chunk-FLBTGNQI.js.map +1 -0
  100. package/dist/chunk-FUT45NFW.js +46 -0
  101. package/dist/chunk-FUT45NFW.js.map +1 -0
  102. package/dist/chunk-G3LWNTVZ.js +51 -0
  103. package/dist/chunk-G3LWNTVZ.js.map +1 -0
  104. package/dist/chunk-GBJB5WLT.js +58 -0
  105. package/dist/chunk-GBJB5WLT.js.map +1 -0
  106. package/dist/chunk-GIEPEFRX.js +110 -0
  107. package/dist/chunk-GIEPEFRX.js.map +1 -0
  108. package/dist/chunk-GSO7MISR.js +58 -0
  109. package/dist/chunk-GSO7MISR.js.map +1 -0
  110. package/dist/chunk-GUQFYUIC.js +61 -0
  111. package/dist/chunk-GUQFYUIC.js.map +1 -0
  112. package/dist/chunk-H3ANHVEL.js +83 -0
  113. package/dist/chunk-H3ANHVEL.js.map +1 -0
  114. package/dist/chunk-H3VJMFJQ.js +35 -0
  115. package/dist/chunk-H3VJMFJQ.js.map +1 -0
  116. package/dist/chunk-HG4WEERE.js +26 -0
  117. package/dist/chunk-HG4WEERE.js.map +1 -0
  118. package/dist/chunk-HGPBGLNP.js +51 -0
  119. package/dist/chunk-HGPBGLNP.js.map +1 -0
  120. package/dist/chunk-HQFTW7SF.js +141 -0
  121. package/dist/chunk-HQFTW7SF.js.map +1 -0
  122. package/dist/chunk-I7WYM63C.js +170 -0
  123. package/dist/chunk-I7WYM63C.js.map +1 -0
  124. package/dist/chunk-JQXLPVWP.js +74 -0
  125. package/dist/chunk-JQXLPVWP.js.map +1 -0
  126. package/dist/chunk-K5ARID4S.js +26 -0
  127. package/dist/chunk-K5ARID4S.js.map +1 -0
  128. package/dist/chunk-K6RTLPIJ.js +41 -0
  129. package/dist/chunk-K6RTLPIJ.js.map +1 -0
  130. package/dist/chunk-KQNKKV2C.js +56 -0
  131. package/dist/chunk-KQNKKV2C.js.map +1 -0
  132. package/dist/chunk-KRN4NE4U.js +155 -0
  133. package/dist/chunk-KRN4NE4U.js.map +1 -0
  134. package/dist/chunk-L2BI762I.js +82 -0
  135. package/dist/chunk-L2BI762I.js.map +1 -0
  136. package/dist/chunk-LEEH63B2.js +56 -0
  137. package/dist/chunk-LEEH63B2.js.map +1 -0
  138. package/dist/chunk-LHRWVM3G.js +42 -0
  139. package/dist/chunk-LHRWVM3G.js.map +1 -0
  140. package/dist/chunk-LIGWMGXM.js +117 -0
  141. package/dist/chunk-LIGWMGXM.js.map +1 -0
  142. package/dist/chunk-LKYSX3QF.js +104 -0
  143. package/dist/chunk-LKYSX3QF.js.map +1 -0
  144. package/dist/chunk-MCIFB6VS.js +54 -0
  145. package/dist/chunk-MCIFB6VS.js.map +1 -0
  146. package/dist/chunk-NQZYY4LR.js +84 -0
  147. package/dist/chunk-NQZYY4LR.js.map +1 -0
  148. package/dist/chunk-O23LKHUR.js +66 -0
  149. package/dist/chunk-O23LKHUR.js.map +1 -0
  150. package/dist/chunk-PASI2U2R.js +23 -0
  151. package/dist/chunk-PASI2U2R.js.map +1 -0
  152. package/dist/chunk-PPH5NTHV.js +34 -0
  153. package/dist/chunk-PPH5NTHV.js.map +1 -0
  154. package/dist/chunk-PR6OZF6D.js +28 -0
  155. package/dist/chunk-PR6OZF6D.js.map +1 -0
  156. package/dist/chunk-PWXOXPFT.js +142 -0
  157. package/dist/chunk-PWXOXPFT.js.map +1 -0
  158. package/dist/chunk-QB6BNHO3.js +112 -0
  159. package/dist/chunk-QB6BNHO3.js.map +1 -0
  160. package/dist/chunk-QSOIJ6J3.js +91 -0
  161. package/dist/chunk-QSOIJ6J3.js.map +1 -0
  162. package/dist/chunk-QU6RLHYH.js +156 -0
  163. package/dist/chunk-QU6RLHYH.js.map +1 -0
  164. package/dist/chunk-R63ZKLQM.js +45 -0
  165. package/dist/chunk-R63ZKLQM.js.map +1 -0
  166. package/dist/chunk-RTYYJPPE.js +77 -0
  167. package/dist/chunk-RTYYJPPE.js.map +1 -0
  168. package/dist/chunk-RVOBP7PO.js +116 -0
  169. package/dist/chunk-RVOBP7PO.js.map +1 -0
  170. package/dist/chunk-SF6R5VMQ.js +97 -0
  171. package/dist/chunk-SF6R5VMQ.js.map +1 -0
  172. package/dist/chunk-SP4CP5HY.js +57 -0
  173. package/dist/chunk-SP4CP5HY.js.map +1 -0
  174. package/dist/chunk-SWJ4EUOI.js +30 -0
  175. package/dist/chunk-SWJ4EUOI.js.map +1 -0
  176. package/dist/chunk-TK24HQJJ.js +128 -0
  177. package/dist/chunk-TK24HQJJ.js.map +1 -0
  178. package/dist/chunk-TO3UAT6O.js +221 -0
  179. package/dist/chunk-TO3UAT6O.js.map +1 -0
  180. package/dist/chunk-UAYOOTRR.js +77 -0
  181. package/dist/chunk-UAYOOTRR.js.map +1 -0
  182. package/dist/chunk-UDTAMHXW.js +55 -0
  183. package/dist/chunk-UDTAMHXW.js.map +1 -0
  184. package/dist/chunk-UGKI466V.js +12 -0
  185. package/dist/chunk-UGKI466V.js.map +1 -0
  186. package/dist/chunk-UOXU7NDY.js +120 -0
  187. package/dist/chunk-UOXU7NDY.js.map +1 -0
  188. package/dist/chunk-V7OOTVK3.js +106 -0
  189. package/dist/chunk-V7OOTVK3.js.map +1 -0
  190. package/dist/chunk-VI5M7KJ2.js +1022 -0
  191. package/dist/chunk-VI5M7KJ2.js.map +1 -0
  192. package/dist/chunk-VM4RMQQN.js +11 -0
  193. package/dist/chunk-VM4RMQQN.js.map +1 -0
  194. package/dist/chunk-VMMATOPE.js +64 -0
  195. package/dist/chunk-VMMATOPE.js.map +1 -0
  196. package/dist/chunk-W2PVSIW3.js +89 -0
  197. package/dist/chunk-W2PVSIW3.js.map +1 -0
  198. package/dist/chunk-W3DUDZDU.js +88 -0
  199. package/dist/chunk-W3DUDZDU.js.map +1 -0
  200. package/dist/chunk-WKEUU2FU.js +114 -0
  201. package/dist/chunk-WKEUU2FU.js.map +1 -0
  202. package/dist/chunk-WKLW7RC6.js +28 -0
  203. package/dist/chunk-WKLW7RC6.js.map +1 -0
  204. package/dist/chunk-WSJGZNUH.js +111 -0
  205. package/dist/chunk-WSJGZNUH.js.map +1 -0
  206. package/dist/chunk-WVPDQMC2.js +144 -0
  207. package/dist/chunk-WVPDQMC2.js.map +1 -0
  208. package/dist/chunk-WWNH5ENT.js +43 -0
  209. package/dist/chunk-WWNH5ENT.js.map +1 -0
  210. package/dist/chunk-X5L62PXY.js +112 -0
  211. package/dist/chunk-X5L62PXY.js.map +1 -0
  212. package/dist/chunk-XGCV5E6W.js +133 -0
  213. package/dist/chunk-XGCV5E6W.js.map +1 -0
  214. package/dist/chunk-XRKIEL5M.js +72 -0
  215. package/dist/chunk-XRKIEL5M.js.map +1 -0
  216. package/dist/chunk-XUJYEADU.js +80 -0
  217. package/dist/chunk-XUJYEADU.js.map +1 -0
  218. package/dist/chunk-XVYNSIQC.js +116 -0
  219. package/dist/chunk-XVYNSIQC.js.map +1 -0
  220. package/dist/chunk-XWTISHXO.js +54 -0
  221. package/dist/chunk-XWTISHXO.js.map +1 -0
  222. package/dist/chunk-YOGHS4UU.js +202 -0
  223. package/dist/chunk-YOGHS4UU.js.map +1 -0
  224. package/dist/chunk-YRSKXEOD.js +135 -0
  225. package/dist/chunk-YRSKXEOD.js.map +1 -0
  226. package/dist/chunk-ZALLCR7X.js +108 -0
  227. package/dist/chunk-ZALLCR7X.js.map +1 -0
  228. package/dist/chunk-ZDAOHMCW.js +46 -0
  229. package/dist/chunk-ZDAOHMCW.js.map +1 -0
  230. package/dist/chunk-ZESICCKK.js +37 -0
  231. package/dist/chunk-ZESICCKK.js.map +1 -0
  232. package/dist/chunk-ZIKFOD6N.js +87 -0
  233. package/dist/chunk-ZIKFOD6N.js.map +1 -0
  234. package/dist/chunk-ZJRWCQEN.js +76 -0
  235. package/dist/chunk-ZJRWCQEN.js.map +1 -0
  236. package/dist/chunk-ZSRJCIWF.js +24 -0
  237. package/dist/chunk-ZSRJCIWF.js.map +1 -0
  238. package/dist/chunk-ZXPDS6DH.js +3 -0
  239. package/dist/chunk-ZXPDS6DH.js.map +1 -0
  240. package/dist/components.css +1 -1
  241. package/dist/composites/account-menu/index.js +6 -0
  242. package/dist/composites/account-menu/index.js.map +1 -0
  243. package/dist/composites/agent-composer/index.js +7 -0
  244. package/dist/composites/agent-composer/index.js.map +1 -0
  245. package/dist/composites/agent-editor/index.js +10 -0
  246. package/dist/composites/agent-editor/index.js.map +1 -0
  247. package/dist/composites/agent-stream/index.js +12 -0
  248. package/dist/composites/agent-stream/index.js.map +1 -0
  249. package/dist/composites/agent-timeline/index.js +5 -0
  250. package/dist/composites/agent-timeline/index.js.map +1 -0
  251. package/dist/composites/approval-card/index.js +5 -0
  252. package/dist/composites/approval-card/index.js.map +1 -0
  253. package/dist/composites/chat-composer/index.js +6 -0
  254. package/dist/composites/chat-composer/index.js.map +1 -0
  255. package/dist/composites/chat-message/index.js +6 -0
  256. package/dist/composites/chat-message/index.js.map +1 -0
  257. package/dist/composites/code-block/index.js +5 -0
  258. package/dist/composites/code-block/index.js.map +1 -0
  259. package/dist/composites/command-palette/index.js +5 -0
  260. package/dist/composites/command-palette/index.js.map +1 -0
  261. package/dist/composites/confirm-dialog/index.js +7 -0
  262. package/dist/composites/confirm-dialog/index.js.map +1 -0
  263. package/dist/composites/cron-jobs-list/index.js +5 -0
  264. package/dist/composites/cron-jobs-list/index.js.map +1 -0
  265. package/dist/composites/deployment-row/index.js +5 -0
  266. package/dist/composites/deployment-row/index.js.map +1 -0
  267. package/dist/composites/domain-config/index.js +7 -0
  268. package/dist/composites/domain-config/index.js.map +1 -0
  269. package/dist/composites/env-var-editor/index.js +7 -0
  270. package/dist/composites/env-var-editor/index.js.map +1 -0
  271. package/dist/composites/mcp-server-list/index.js +5 -0
  272. package/dist/composites/mcp-server-list/index.js.map +1 -0
  273. package/dist/composites/permission-modal/index.js +6 -0
  274. package/dist/composites/permission-modal/index.js.map +1 -0
  275. package/dist/composites/preview-env-card/index.js +6 -0
  276. package/dist/composites/preview-env-card/index.js.map +1 -0
  277. package/dist/composites/preview-panel/index.js +5 -0
  278. package/dist/composites/preview-panel/index.js.map +1 -0
  279. package/dist/composites/project-card/index.js +6 -0
  280. package/dist/composites/project-card/index.js.map +1 -0
  281. package/dist/composites/rollback-ui/index.js +6 -0
  282. package/dist/composites/rollback-ui/index.js.map +1 -0
  283. package/dist/composites/rule-editor/index.js +11 -0
  284. package/dist/composites/rule-editor/index.js.map +1 -0
  285. package/dist/composites/skill-editor/index.js +11 -0
  286. package/dist/composites/skill-editor/index.js.map +1 -0
  287. package/dist/composites/skills-list/index.js +5 -0
  288. package/dist/composites/skills-list/index.js.map +1 -0
  289. package/dist/composites/task-header/index.js +5 -0
  290. package/dist/composites/task-header/index.js.map +1 -0
  291. package/dist/composites/usage-meter/index.js +5 -0
  292. package/dist/composites/usage-meter/index.js.map +1 -0
  293. package/dist/index.js +130 -9493
  294. package/dist/index.js.map +1 -1
  295. package/dist/primitives/agent-error-card/index.js +5 -0
  296. package/dist/primitives/agent-error-card/index.js.map +1 -0
  297. package/dist/primitives/agent-event/index.js +4 -0
  298. package/dist/primitives/agent-event/index.js.map +1 -0
  299. package/dist/primitives/agent-handoff/index.js +4 -0
  300. package/dist/primitives/agent-handoff/index.js.map +1 -0
  301. package/dist/primitives/agent-profile/index.js +4 -0
  302. package/dist/primitives/agent-profile/index.js.map +1 -0
  303. package/dist/primitives/agent-starting-state/index.js +5 -0
  304. package/dist/primitives/agent-starting-state/index.js.map +1 -0
  305. package/dist/primitives/agent-streaming/index.js +5 -0
  306. package/dist/primitives/agent-streaming/index.js.map +1 -0
  307. package/dist/primitives/alert/index.js +4 -0
  308. package/dist/primitives/alert/index.js.map +1 -0
  309. package/dist/primitives/artifact-preview/index.js +4 -0
  310. package/dist/primitives/artifact-preview/index.js.map +1 -0
  311. package/dist/primitives/attachment-chip/index.js +4 -0
  312. package/dist/primitives/attachment-chip/index.js.map +1 -0
  313. package/dist/primitives/audit-log-entry/index.js +4 -0
  314. package/dist/primitives/audit-log-entry/index.js.map +1 -0
  315. package/dist/primitives/auto-compact-notice/index.js +5 -0
  316. package/dist/primitives/auto-compact-notice/index.js.map +1 -0
  317. package/dist/primitives/avatar/index.js +4 -0
  318. package/dist/primitives/avatar/index.js.map +1 -0
  319. package/dist/primitives/badge/index.js +4 -0
  320. package/dist/primitives/badge/index.js.map +1 -0
  321. package/dist/primitives/browser-controls/index.js +4 -0
  322. package/dist/primitives/browser-controls/index.js.map +1 -0
  323. package/dist/primitives/build-log-stream/index.js +5 -0
  324. package/dist/primitives/build-log-stream/index.js.map +1 -0
  325. package/dist/primitives/button/index.js +4 -0
  326. package/dist/primitives/button/index.js.map +1 -0
  327. package/dist/primitives/capability-indicator/index.js +4 -0
  328. package/dist/primitives/capability-indicator/index.js.map +1 -0
  329. package/dist/primitives/card/index.js +4 -0
  330. package/dist/primitives/card/index.js.map +1 -0
  331. package/dist/primitives/chat-thread/index.js +5 -0
  332. package/dist/primitives/chat-thread/index.js.map +1 -0
  333. package/dist/primitives/checkbox/index.js +4 -0
  334. package/dist/primitives/checkbox/index.js.map +1 -0
  335. package/dist/primitives/context-card/index.js +4 -0
  336. package/dist/primitives/context-card/index.js.map +1 -0
  337. package/dist/primitives/context-window-bar/index.js +4 -0
  338. package/dist/primitives/context-window-bar/index.js.map +1 -0
  339. package/dist/primitives/copy-button/index.js +4 -0
  340. package/dist/primitives/copy-button/index.js.map +1 -0
  341. package/dist/primitives/cost-meter/index.js +4 -0
  342. package/dist/primitives/cost-meter/index.js.map +1 -0
  343. package/dist/primitives/created-files-card/index.js +4 -0
  344. package/dist/primitives/created-files-card/index.js.map +1 -0
  345. package/dist/primitives/cron-job-card/index.js +4 -0
  346. package/dist/primitives/cron-job-card/index.js.map +1 -0
  347. package/dist/primitives/danger-zone/index.js +4 -0
  348. package/dist/primitives/danger-zone/index.js.map +1 -0
  349. package/dist/primitives/dialog/index.js +4 -0
  350. package/dist/primitives/dialog/index.js.map +1 -0
  351. package/dist/primitives/diff-viewer/index.js +4 -0
  352. package/dist/primitives/diff-viewer/index.js.map +1 -0
  353. package/dist/primitives/empty-state/index.js +4 -0
  354. package/dist/primitives/empty-state/index.js.map +1 -0
  355. package/dist/primitives/folder-context-card/index.js +4 -0
  356. package/dist/primitives/folder-context-card/index.js.map +1 -0
  357. package/dist/primitives/folder-selector/index.js +4 -0
  358. package/dist/primitives/folder-selector/index.js.map +1 -0
  359. package/dist/primitives/form-field/index.js +4 -0
  360. package/dist/primitives/form-field/index.js.map +1 -0
  361. package/dist/primitives/hook-config/index.js +4 -0
  362. package/dist/primitives/hook-config/index.js.map +1 -0
  363. package/dist/primitives/hook-event-log/index.js +4 -0
  364. package/dist/primitives/hook-event-log/index.js.map +1 -0
  365. package/dist/primitives/input/index.js +4 -0
  366. package/dist/primitives/input/index.js.map +1 -0
  367. package/dist/primitives/intent-selector/index.js +4 -0
  368. package/dist/primitives/intent-selector/index.js.map +1 -0
  369. package/dist/primitives/label/index.js +4 -0
  370. package/dist/primitives/label/index.js.map +1 -0
  371. package/dist/primitives/lane-board/index.js +4 -0
  372. package/dist/primitives/lane-board/index.js.map +1 -0
  373. package/dist/primitives/login-split/index.js +4 -0
  374. package/dist/primitives/login-split/index.js.map +1 -0
  375. package/dist/primitives/mcp-server-card/index.js +4 -0
  376. package/dist/primitives/mcp-server-card/index.js.map +1 -0
  377. package/dist/primitives/memory-editor/index.js +4 -0
  378. package/dist/primitives/memory-editor/index.js.map +1 -0
  379. package/dist/primitives/mention-menu/index.js +4 -0
  380. package/dist/primitives/mention-menu/index.js.map +1 -0
  381. package/dist/primitives/metrics-panel/index.js +4 -0
  382. package/dist/primitives/metrics-panel/index.js.map +1 -0
  383. package/dist/primitives/model-card/index.js +4 -0
  384. package/dist/primitives/model-card/index.js.map +1 -0
  385. package/dist/primitives/model-selector/index.js +4 -0
  386. package/dist/primitives/model-selector/index.js.map +1 -0
  387. package/dist/primitives/pagination/index.js +4 -0
  388. package/dist/primitives/pagination/index.js.map +1 -0
  389. package/dist/primitives/permission-matrix/index.js +4 -0
  390. package/dist/primitives/permission-matrix/index.js.map +1 -0
  391. package/dist/primitives/plan-badge/index.js +4 -0
  392. package/dist/primitives/plan-badge/index.js.map +1 -0
  393. package/dist/primitives/progress/index.js +4 -0
  394. package/dist/primitives/progress/index.js.map +1 -0
  395. package/dist/primitives/progress-checklist/index.js +4 -0
  396. package/dist/primitives/progress-checklist/index.js.map +1 -0
  397. package/dist/primitives/project-switcher/index.js +4 -0
  398. package/dist/primitives/project-switcher/index.js.map +1 -0
  399. package/dist/primitives/quick-action-chips/index.js +4 -0
  400. package/dist/primitives/quick-action-chips/index.js.map +1 -0
  401. package/dist/primitives/radio-group/index.js +4 -0
  402. package/dist/primitives/radio-group/index.js.map +1 -0
  403. package/dist/primitives/recent-folders-list/index.js +4 -0
  404. package/dist/primitives/recent-folders-list/index.js.map +1 -0
  405. package/dist/primitives/rule-card/index.js +4 -0
  406. package/dist/primitives/rule-card/index.js.map +1 -0
  407. package/dist/primitives/run-stats/index.js +4 -0
  408. package/dist/primitives/run-stats/index.js.map +1 -0
  409. package/dist/primitives/running-tasks-panel/index.js +4 -0
  410. package/dist/primitives/running-tasks-panel/index.js.map +1 -0
  411. package/dist/primitives/scroll-area/index.js +4 -0
  412. package/dist/primitives/scroll-area/index.js.map +1 -0
  413. package/dist/primitives/select/index.js +4 -0
  414. package/dist/primitives/select/index.js.map +1 -0
  415. package/dist/primitives/session-list-item/index.js +4 -0
  416. package/dist/primitives/session-list-item/index.js.map +1 -0
  417. package/dist/primitives/session-timeline/index.js +4 -0
  418. package/dist/primitives/session-timeline/index.js.map +1 -0
  419. package/dist/primitives/sheet/index.js +4 -0
  420. package/dist/primitives/sheet/index.js.map +1 -0
  421. package/dist/primitives/sidebar/index.js +4 -0
  422. package/dist/primitives/sidebar/index.js.map +1 -0
  423. package/dist/primitives/skeleton/index.js +5 -0
  424. package/dist/primitives/skeleton/index.js.map +1 -0
  425. package/dist/primitives/skill-card/index.js +4 -0
  426. package/dist/primitives/skill-card/index.js.map +1 -0
  427. package/dist/primitives/social-auth-row/index.js +4 -0
  428. package/dist/primitives/social-auth-row/index.js.map +1 -0
  429. package/dist/primitives/stat-tile/index.js +4 -0
  430. package/dist/primitives/stat-tile/index.js.map +1 -0
  431. package/dist/primitives/status-dot/index.js +4 -0
  432. package/dist/primitives/status-dot/index.js.map +1 -0
  433. package/dist/primitives/steps-rail/index.js +4 -0
  434. package/dist/primitives/steps-rail/index.js.map +1 -0
  435. package/dist/primitives/sub-agent-dispatch/index.js +4 -0
  436. package/dist/primitives/sub-agent-dispatch/index.js.map +1 -0
  437. package/dist/primitives/switch/index.js +4 -0
  438. package/dist/primitives/switch/index.js.map +1 -0
  439. package/dist/primitives/system-prompt-editor/index.js +4 -0
  440. package/dist/primitives/system-prompt-editor/index.js.map +1 -0
  441. package/dist/primitives/table/index.js +4 -0
  442. package/dist/primitives/table/index.js.map +1 -0
  443. package/dist/primitives/tabs/index.js +4 -0
  444. package/dist/primitives/tabs/index.js.map +1 -0
  445. package/dist/primitives/task-plan/index.js +4 -0
  446. package/dist/primitives/task-plan/index.js.map +1 -0
  447. package/dist/primitives/terminal-panel/index.js +5 -0
  448. package/dist/primitives/terminal-panel/index.js.map +1 -0
  449. package/dist/primitives/textarea/index.js +4 -0
  450. package/dist/primitives/textarea/index.js.map +1 -0
  451. package/dist/primitives/timestamp/index.js +4 -0
  452. package/dist/primitives/timestamp/index.js.map +1 -0
  453. package/dist/primitives/toast/index.js +4 -0
  454. package/dist/primitives/toast/index.js.map +1 -0
  455. package/dist/primitives/token-usage-chart/index.js +4 -0
  456. package/dist/primitives/token-usage-chart/index.js.map +1 -0
  457. package/dist/primitives/tool-call/index.js +4 -0
  458. package/dist/primitives/tool-call/index.js.map +1 -0
  459. package/dist/primitives/tool-call-card/index.js +4 -0
  460. package/dist/primitives/tool-call-card/index.js.map +1 -0
  461. package/dist/primitives/tool-result/index.js +4 -0
  462. package/dist/primitives/tool-result/index.js.map +1 -0
  463. package/dist/primitives/tools-list/index.js +4 -0
  464. package/dist/primitives/tools-list/index.js.map +1 -0
  465. package/dist/primitives/tooltip/index.js +4 -0
  466. package/dist/primitives/tooltip/index.js.map +1 -0
  467. package/dist/primitives/topnav/index.js +4 -0
  468. package/dist/primitives/topnav/index.js.map +1 -0
  469. package/dist/slide/index.js +1 -712
  470. package/dist/slide/index.js.map +1 -1
  471. package/dist/slide-deck/index.js +2 -688
  472. package/dist/slide-deck/index.js.map +1 -1
  473. package/llms.txt +6 -5
  474. package/package.json +115 -115
@@ -0,0 +1,25 @@
1
+ import { AgentEvent } from './chunk-D23LRJT6.js';
2
+ import { cn } from './chunk-ZSRJCIWF.js';
3
+ import { forwardRef } from 'react';
4
+ import { jsx } from 'react/jsx-runtime';
5
+
6
+ var AgentTimeline = forwardRef(
7
+ ({ className, events, collapsible = true, showLine = true, ...props }, ref) => /* @__PURE__ */ jsx(
8
+ "ol",
9
+ {
10
+ ref,
11
+ className: cn(
12
+ "grid gap-1",
13
+ showLine && "relative pl-4 before:absolute before:top-1 before:bottom-1 before:left-[11px] before:w-px before:bg-border/60",
14
+ className
15
+ ),
16
+ ...props,
17
+ children: events.map((event) => /* @__PURE__ */ jsx("li", { className: "animate-fade-in-up", children: /* @__PURE__ */ jsx(AgentEvent, { event, collapsible }) }, event.id))
18
+ }
19
+ )
20
+ );
21
+ AgentTimeline.displayName = "AgentTimeline";
22
+
23
+ export { AgentTimeline };
24
+ //# sourceMappingURL=chunk-4UUSJJFZ.js.map
25
+ //# sourceMappingURL=chunk-4UUSJJFZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/composites/agent-timeline/agent-timeline.tsx"],"names":[],"mappings":";;;;;AAyBA,IAAM,aAAA,GAAgB,UAAA;AAAA,EACpB,CAAC,EAAE,SAAA,EAAW,MAAA,EAAQ,WAAA,GAAc,IAAA,EAAM,QAAA,GAAW,IAAA,EAAM,GAAG,KAAA,EAAM,EAAG,GAAA,qBACrE,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,YAAA;AAAA,QACA,QAAA,IACE,+GAAA;AAAA,QACF;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,yBACV,IAAA,EAAA,EAAkB,SAAA,EAAU,oBAAA,EAC3B,QAAA,kBAAA,GAAA,CAAC,cAAW,KAAA,EAAc,WAAA,EAA0B,CAAA,EAAA,EAD7C,KAAA,CAAM,EAEf,CACD;AAAA;AAAA;AAGP;AACA,aAAA,CAAc,WAAA,GAAc,eAAA","file":"chunk-4UUSJJFZ.js","sourcesContent":["import { forwardRef } from \"react\";\nimport type { HTMLAttributes } from \"react\";\nimport { cn } from \"../../../lib/cn.js\";\nimport type { AgentEvent as AgentEventModel } from \"../../../types/agent.js\";\nimport { AgentEvent } from \"../../primitives/agent-event/index.js\";\n\ninterface AgentTimelineProps extends HTMLAttributes<HTMLOListElement> {\n events: AgentEventModel[];\n /**\n * If true, events with `detail` are collapsible.\n */\n collapsible?: boolean;\n /**\n * Renders a vertical line connecting events. Default true.\n */\n showLine?: boolean;\n}\n\n/**\n * AgentTimeline — vertical list of agent events.\n *\n * Visual: optional thin border-left running through the column, with each\n * AgentEvent slightly indented from the line. Events animate in via fade-in-up\n * when first mounted.\n */\nconst AgentTimeline = forwardRef<HTMLOListElement, AgentTimelineProps>(\n ({ className, events, collapsible = true, showLine = true, ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\n \"grid gap-1\",\n showLine &&\n \"relative pl-4 before:absolute before:top-1 before:bottom-1 before:left-[11px] before:w-px before:bg-border/60\",\n className,\n )}\n {...props}\n >\n {events.map((event) => (\n <li key={event.id} className=\"animate-fade-in-up\">\n <AgentEvent event={event} collapsible={collapsible} />\n </li>\n ))}\n </ol>\n ),\n);\nAgentTimeline.displayName = \"AgentTimeline\";\n\nexport { AgentTimeline };\n"]}
@@ -0,0 +1,127 @@
1
+ import { cn } from './chunk-ZSRJCIWF.js';
2
+ import { forwardRef, useState, useEffect } from 'react';
3
+ import { jsx } from 'react/jsx-runtime';
4
+
5
+ function toDate(value) {
6
+ const d = value instanceof Date ? value : new Date(value);
7
+ return Number.isNaN(d.getTime()) ? null : d;
8
+ }
9
+ var SEVEN_DAYS_MS = 7 * 24 * 60 * 60 * 1e3;
10
+ var UNITS = [
11
+ { unit: "year", ms: 365 * 24 * 60 * 60 * 1e3 },
12
+ { unit: "month", ms: 30 * 24 * 60 * 60 * 1e3 },
13
+ { unit: "day", ms: 24 * 60 * 60 * 1e3 },
14
+ { unit: "hour", ms: 60 * 60 * 1e3 },
15
+ { unit: "minute", ms: 60 * 1e3 }
16
+ ];
17
+ function safeRelativeFormatter(locale) {
18
+ try {
19
+ return new Intl.RelativeTimeFormat(locale, { numeric: "auto" });
20
+ } catch {
21
+ if (process.env.NODE_ENV !== "production") {
22
+ console.warn(`<Timestamp locale="${locale}">: invalid locale tag, falling back to default.`);
23
+ }
24
+ try {
25
+ return new Intl.RelativeTimeFormat(void 0, { numeric: "auto" });
26
+ } catch {
27
+ return null;
28
+ }
29
+ }
30
+ }
31
+ function safeAbsoluteFormat(date, locale, withYear) {
32
+ try {
33
+ return date.toLocaleDateString(locale, {
34
+ month: "short",
35
+ day: "numeric",
36
+ ...withYear ? { year: "numeric" } : {}
37
+ });
38
+ } catch {
39
+ return date.toLocaleDateString(void 0, {
40
+ month: "short",
41
+ day: "numeric",
42
+ ...withYear ? { year: "numeric" } : {}
43
+ });
44
+ }
45
+ }
46
+ function formatRelative(date, now, locale) {
47
+ const diffMs = date.getTime() - now.getTime();
48
+ const absMs = Math.abs(diffMs);
49
+ if (absMs < 6e4) return "just now";
50
+ if (diffMs < 0 && absMs > SEVEN_DAYS_MS) {
51
+ const sameYear = date.getFullYear() === now.getFullYear();
52
+ return safeAbsoluteFormat(date, locale, !sameYear);
53
+ }
54
+ const rtf = safeRelativeFormatter(locale);
55
+ if (rtf === null) {
56
+ return safeAbsoluteFormat(date, locale, date.getFullYear() !== now.getFullYear());
57
+ }
58
+ for (const { unit, ms } of UNITS) {
59
+ if (absMs >= ms) {
60
+ return rtf.format(Math.round(diffMs / ms), unit);
61
+ }
62
+ }
63
+ return "just now";
64
+ }
65
+ function formatAbsolute(date, locale) {
66
+ try {
67
+ return date.toLocaleString(locale, {
68
+ year: "numeric",
69
+ month: "short",
70
+ day: "numeric",
71
+ hour: "2-digit",
72
+ minute: "2-digit"
73
+ });
74
+ } catch {
75
+ return date.toLocaleString(void 0, {
76
+ year: "numeric",
77
+ month: "short",
78
+ day: "numeric",
79
+ hour: "2-digit",
80
+ minute: "2-digit"
81
+ });
82
+ }
83
+ }
84
+ var Timestamp = forwardRef(
85
+ ({
86
+ className,
87
+ value,
88
+ format = "relative",
89
+ refreshInterval = 6e4,
90
+ locale,
91
+ noTooltip,
92
+ ...props
93
+ }, ref) => {
94
+ const date = toDate(value);
95
+ const [now, setNow] = useState(() => /* @__PURE__ */ new Date());
96
+ useEffect(() => {
97
+ if (format !== "relative" || refreshInterval === 0 || date === null) return;
98
+ const id = setInterval(() => setNow(/* @__PURE__ */ new Date()), refreshInterval);
99
+ return () => clearInterval(id);
100
+ }, [format, refreshInterval, date]);
101
+ if (date === null) {
102
+ return /* @__PURE__ */ jsx("time", { ref, className: cn(className), suppressHydrationWarning: true, ...props });
103
+ }
104
+ const iso = date.toISOString();
105
+ const absolute = formatAbsolute(date, locale);
106
+ const relative = formatRelative(date, now, locale);
107
+ const visibleText = format === "absolute" ? absolute : format === "both" ? `${absolute} (${relative})` : relative;
108
+ return /* @__PURE__ */ jsx(
109
+ "time",
110
+ {
111
+ ref,
112
+ dateTime: iso,
113
+ title: noTooltip ? void 0 : absolute,
114
+ "aria-label": absolute,
115
+ suppressHydrationWarning: true,
116
+ className: cn(className),
117
+ ...props,
118
+ children: visibleText
119
+ }
120
+ );
121
+ }
122
+ );
123
+ Timestamp.displayName = "Timestamp";
124
+
125
+ export { Timestamp };
126
+ //# sourceMappingURL=chunk-4ZBZBRG5.js.map
127
+ //# sourceMappingURL=chunk-4ZBZBRG5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/primitives/timestamp/timestamp.tsx"],"names":[],"mappings":";;;;AAoCA,SAAS,OAAO,KAAA,EAA4C;AAC1D,EAAA,MAAM,IAAI,KAAA,YAAiB,IAAA,GAAO,KAAA,GAAQ,IAAI,KAAK,KAAK,CAAA;AACxD,EAAA,OAAO,OAAO,KAAA,CAAM,CAAA,CAAE,OAAA,EAAS,IAAI,IAAA,GAAO,CAAA;AAC5C;AAEA,IAAM,aAAA,GAAgB,CAAA,GAAI,EAAA,GAAK,EAAA,GAAK,EAAA,GAAK,GAAA;AACzC,IAAM,KAAA,GAAkE;AAAA,EACtE,EAAE,MAAM,MAAA,EAAQ,EAAA,EAAI,MAAM,EAAA,GAAK,EAAA,GAAK,KAAK,GAAA,EAAK;AAAA,EAC9C,EAAE,MAAM,OAAA,EAAS,EAAA,EAAI,KAAK,EAAA,GAAK,EAAA,GAAK,KAAK,GAAA,EAAK;AAAA,EAC9C,EAAE,IAAA,EAAM,KAAA,EAAO,IAAI,EAAA,GAAK,EAAA,GAAK,KAAK,GAAA,EAAK;AAAA,EACvC,EAAE,IAAA,EAAM,MAAA,EAAQ,EAAA,EAAI,EAAA,GAAK,KAAK,GAAA,EAAK;AAAA,EACnC,EAAE,IAAA,EAAM,QAAA,EAAU,EAAA,EAAI,KAAK,GAAA;AAC7B,CAAA;AAEA,SAAS,sBAAsB,MAAA,EAA4D;AACzF,EAAA,IAAI;AACF,IAAA,OAAO,IAAI,IAAA,CAAK,kBAAA,CAAmB,QAAQ,EAAE,OAAA,EAAS,QAAQ,CAAA;AAAA,EAChE,CAAA,CAAA,MAAQ;AAEN,IAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,YAAA,EAAc;AAEzC,MAAA,OAAA,CAAQ,IAAA,CAAK,CAAA,mBAAA,EAAsB,MAAM,CAAA,gDAAA,CAAkD,CAAA;AAAA,IAC7F;AACA,IAAA,IAAI;AACF,MAAA,OAAO,IAAI,IAAA,CAAK,kBAAA,CAAmB,QAAW,EAAE,OAAA,EAAS,QAAQ,CAAA;AAAA,IACnE,CAAA,CAAA,MAAQ;AACN,MAAA,OAAO,IAAA;AAAA,IACT;AAAA,EACF;AACF;AAEA,SAAS,kBAAA,CAAmB,IAAA,EAAY,MAAA,EAA4B,QAAA,EAA2B;AAC7F,EAAA,IAAI;AACF,IAAA,OAAO,IAAA,CAAK,mBAAmB,MAAA,EAAQ;AAAA,MACrC,KAAA,EAAO,OAAA;AAAA,MACP,GAAA,EAAK,SAAA;AAAA,MACL,GAAI,QAAA,GAAW,EAAE,IAAA,EAAM,SAAA,KAAc;AAAC,KACvC,CAAA;AAAA,EACH,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,IAAA,CAAK,mBAAmB,MAAA,EAAW;AAAA,MACxC,KAAA,EAAO,OAAA;AAAA,MACP,GAAA,EAAK,SAAA;AAAA,MACL,GAAI,QAAA,GAAW,EAAE,IAAA,EAAM,SAAA,KAAc;AAAC,KACvC,CAAA;AAAA,EACH;AACF;AAEA,SAAS,cAAA,CAAe,IAAA,EAAY,GAAA,EAAW,MAAA,EAAoC;AACjF,EAAA,MAAM,MAAA,GAAS,IAAA,CAAK,OAAA,EAAQ,GAAI,IAAI,OAAA,EAAQ;AAC5C,EAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,GAAA,CAAI,MAAM,CAAA;AAE7B,EAAA,IAAI,KAAA,GAAQ,KAAQ,OAAO,UAAA;AAE3B,EAAA,IAAI,MAAA,GAAS,CAAA,IAAK,KAAA,GAAQ,aAAA,EAAe;AACvC,IAAA,MAAM,QAAA,GAAW,IAAA,CAAK,WAAA,EAAY,KAAM,IAAI,WAAA,EAAY;AACxD,IAAA,OAAO,kBAAA,CAAmB,IAAA,EAAM,MAAA,EAAQ,CAAC,QAAQ,CAAA;AAAA,EACnD;AAEA,EAAA,MAAM,GAAA,GAAM,sBAAsB,MAAM,CAAA;AACxC,EAAA,IAAI,QAAQ,IAAA,EAAM;AAChB,IAAA,OAAO,kBAAA,CAAmB,MAAM,MAAA,EAAQ,IAAA,CAAK,aAAY,KAAM,GAAA,CAAI,aAAa,CAAA;AAAA,EAClF;AAEA,EAAA,KAAA,MAAW,EAAE,IAAA,EAAM,EAAA,EAAG,IAAK,KAAA,EAAO;AAChC,IAAA,IAAI,SAAS,EAAA,EAAI;AACf,MAAA,OAAO,IAAI,MAAA,CAAO,IAAA,CAAK,MAAM,MAAA,GAAS,EAAE,GAAG,IAAI,CAAA;AAAA,IACjD;AAAA,EACF;AACA,EAAA,OAAO,UAAA;AACT;AAEA,SAAS,cAAA,CAAe,MAAY,MAAA,EAAoC;AACtE,EAAA,IAAI;AACF,IAAA,OAAO,IAAA,CAAK,eAAe,MAAA,EAAQ;AAAA,MACjC,IAAA,EAAM,SAAA;AAAA,MACN,KAAA,EAAO,OAAA;AAAA,MACP,GAAA,EAAK,SAAA;AAAA,MACL,IAAA,EAAM,SAAA;AAAA,MACN,MAAA,EAAQ;AAAA,KACT,CAAA;AAAA,EACH,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,IAAA,CAAK,eAAe,MAAA,EAAW;AAAA,MACpC,IAAA,EAAM,SAAA;AAAA,MACN,KAAA,EAAO,OAAA;AAAA,MACP,GAAA,EAAK,SAAA;AAAA,MACL,IAAA,EAAM,SAAA;AAAA,MACN,MAAA,EAAQ;AAAA,KACT,CAAA;AAAA,EACH;AACF;AAEA,IAAM,SAAA,GAAY,UAAA;AAAA,EAChB,CACE;AAAA,IACE,SAAA;AAAA,IACA,KAAA;AAAA,IACA,MAAA,GAAS,UAAA;AAAA,IACT,eAAA,GAAkB,GAAA;AAAA,IAClB,MAAA;AAAA,IACA,SAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,IAAA,GAAO,OAAO,KAAK,CAAA;AACzB,IAAA,MAAM,CAAC,KAAK,MAAM,CAAA,GAAI,SAAe,sBAAM,IAAI,MAAM,CAAA;AAErD,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IAAI,MAAA,KAAW,UAAA,IAAc,eAAA,KAAoB,CAAA,IAAK,SAAS,IAAA,EAAM;AACrE,MAAA,MAAM,EAAA,GAAK,YAAY,MAAM,MAAA,qBAAW,IAAA,EAAM,GAAG,eAAe,CAAA;AAChE,MAAA,OAAO,MAAM,cAAc,EAAE,CAAA;AAAA,IAC/B,CAAA,EAAG,CAAC,MAAA,EAAQ,eAAA,EAAiB,IAAI,CAAC,CAAA;AAElC,IAAA,IAAI,SAAS,IAAA,EAAM;AACjB,MAAA,uBAAO,GAAA,CAAC,MAAA,EAAA,EAAK,GAAA,EAAU,SAAA,EAAW,EAAA,CAAG,SAAS,CAAA,EAAG,wBAAA,EAAwB,IAAA,EAAE,GAAG,KAAA,EAAO,CAAA;AAAA,IACvF;AAEA,IAAA,MAAM,GAAA,GAAM,KAAK,WAAA,EAAY;AAC7B,IAAA,MAAM,QAAA,GAAW,cAAA,CAAe,IAAA,EAAM,MAAM,CAAA;AAC5C,IAAA,MAAM,QAAA,GAAW,cAAA,CAAe,IAAA,EAAM,GAAA,EAAK,MAAM,CAAA;AACjD,IAAA,MAAM,WAAA,GACJ,MAAA,KAAW,UAAA,GAAa,QAAA,GAAW,MAAA,KAAW,SAAS,CAAA,EAAG,QAAQ,CAAA,EAAA,EAAK,QAAQ,CAAA,CAAA,CAAA,GAAM,QAAA;AAEvF,IAAA,uBACE,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,QAAA,EAAU,GAAA;AAAA,QACV,KAAA,EAAO,YAAY,MAAA,GAAY,QAAA;AAAA,QAC/B,YAAA,EAAY,QAAA;AAAA,QACZ,wBAAA,EAAwB,IAAA;AAAA,QACxB,SAAA,EAAW,GAAG,SAAS,CAAA;AAAA,QACtB,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AACA,SAAA,CAAU,WAAA,GAAc,WAAA","file":"chunk-4ZBZBRG5.js","sourcesContent":["import { forwardRef, useEffect, useState } from \"react\";\nimport type { TimeHTMLAttributes } from \"react\";\nimport { cn } from \"../../../lib/cn.js\";\n\n/**\n * Timestamp — accessible relative/absolute time primitive.\n *\n * Renders a semantic `<time datetime>` element. Format modes:\n * - `relative` (default) — \"just now\", \"5 minutes ago\", \"2 hours ago\",\n * \"Dec 5\" (>7d), \"Dec 5, 2024\" (different year)\n * - `absolute` — full localized date+time\n * - `both` — \"Dec 5, 2026 (2 hours ago)\"\n *\n * Uses zero-dep `Intl.RelativeTimeFormat`. The tooltip on hover is the\n * HTML `title` attribute (not the `<Tooltip>` component) — keeps this\n * file a true primitive without sibling-primitive imports.\n *\n * Auto-refreshes via `setInterval` (default 60_000ms); pass\n * `refreshInterval={0}` to disable. `aria-label` always carries the\n * absolute time so screen readers read \"May 23, 2026 14:32 — posted\n * 2 hours ago\".\n *\n * @param value Source date — ISO string, Date object, or **Unix ms**\n * (NOT seconds). Passing seconds renders ~1970.\n */\nexport interface TimestampProps extends Omit<TimeHTMLAttributes<HTMLTimeElement>, \"children\"> {\n value: string | Date | number;\n format?: \"relative\" | \"absolute\" | \"both\";\n /** Auto-refresh interval when format=relative. Default 60000. 0 disables. */\n refreshInterval?: number;\n /** Locale for absolute formatting + Intl.RelativeTimeFormat. Default browser locale. */\n locale?: string;\n /** When true, omit the `title` tooltip. */\n noTooltip?: boolean;\n}\n\nfunction toDate(value: string | Date | number): Date | null {\n const d = value instanceof Date ? value : new Date(value);\n return Number.isNaN(d.getTime()) ? null : d;\n}\n\nconst SEVEN_DAYS_MS = 7 * 24 * 60 * 60 * 1000;\nconst UNITS: Array<{ unit: Intl.RelativeTimeFormatUnit; ms: number }> = [\n { unit: \"year\", ms: 365 * 24 * 60 * 60 * 1000 },\n { unit: \"month\", ms: 30 * 24 * 60 * 60 * 1000 },\n { unit: \"day\", ms: 24 * 60 * 60 * 1000 },\n { unit: \"hour\", ms: 60 * 60 * 1000 },\n { unit: \"minute\", ms: 60 * 1000 },\n];\n\nfunction safeRelativeFormatter(locale: string | undefined): Intl.RelativeTimeFormat | null {\n try {\n return new Intl.RelativeTimeFormat(locale, { numeric: \"auto\" });\n } catch {\n // EC-8: invalid locale tag — fall back to default locale.\n if (process.env.NODE_ENV !== \"production\") {\n // biome-ignore lint/suspicious/noConsole: dev-only diagnostic.\n console.warn(`<Timestamp locale=\"${locale}\">: invalid locale tag, falling back to default.`);\n }\n try {\n return new Intl.RelativeTimeFormat(undefined, { numeric: \"auto\" });\n } catch {\n return null;\n }\n }\n}\n\nfunction safeAbsoluteFormat(date: Date, locale: string | undefined, withYear: boolean): string {\n try {\n return date.toLocaleDateString(locale, {\n month: \"short\",\n day: \"numeric\",\n ...(withYear ? { year: \"numeric\" } : {}),\n });\n } catch {\n return date.toLocaleDateString(undefined, {\n month: \"short\",\n day: \"numeric\",\n ...(withYear ? { year: \"numeric\" } : {}),\n });\n }\n}\n\nfunction formatRelative(date: Date, now: Date, locale: string | undefined): string {\n const diffMs = date.getTime() - now.getTime();\n const absMs = Math.abs(diffMs);\n\n if (absMs < 60_000) return \"just now\";\n\n if (diffMs < 0 && absMs > SEVEN_DAYS_MS) {\n const sameYear = date.getFullYear() === now.getFullYear();\n return safeAbsoluteFormat(date, locale, !sameYear);\n }\n\n const rtf = safeRelativeFormatter(locale);\n if (rtf === null) {\n return safeAbsoluteFormat(date, locale, date.getFullYear() !== now.getFullYear());\n }\n\n for (const { unit, ms } of UNITS) {\n if (absMs >= ms) {\n return rtf.format(Math.round(diffMs / ms), unit);\n }\n }\n return \"just now\";\n}\n\nfunction formatAbsolute(date: Date, locale: string | undefined): string {\n try {\n return date.toLocaleString(locale, {\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n });\n } catch {\n return date.toLocaleString(undefined, {\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n });\n }\n}\n\nconst Timestamp = forwardRef<HTMLTimeElement, TimestampProps>(\n (\n {\n className,\n value,\n format = \"relative\",\n refreshInterval = 60_000,\n locale,\n noTooltip,\n ...props\n },\n ref,\n ) => {\n const date = toDate(value);\n const [now, setNow] = useState<Date>(() => new Date());\n\n useEffect(() => {\n if (format !== \"relative\" || refreshInterval === 0 || date === null) return;\n const id = setInterval(() => setNow(new Date()), refreshInterval);\n return () => clearInterval(id);\n }, [format, refreshInterval, date]);\n\n if (date === null) {\n return <time ref={ref} className={cn(className)} suppressHydrationWarning {...props} />;\n }\n\n const iso = date.toISOString();\n const absolute = formatAbsolute(date, locale);\n const relative = formatRelative(date, now, locale);\n const visibleText =\n format === \"absolute\" ? absolute : format === \"both\" ? `${absolute} (${relative})` : relative;\n\n return (\n <time\n ref={ref}\n dateTime={iso}\n title={noTooltip ? undefined : absolute}\n aria-label={absolute}\n suppressHydrationWarning\n className={cn(className)}\n {...props}\n >\n {visibleText}\n </time>\n );\n },\n);\nTimestamp.displayName = \"Timestamp\";\n\nexport { Timestamp };\n"]}
@@ -0,0 +1,92 @@
1
+ import { cn } from './chunk-ZSRJCIWF.js';
2
+ import { Slot } from '@radix-ui/react-slot';
3
+ import { cva } from 'class-variance-authority';
4
+ import { forwardRef } from 'react';
5
+ import { jsx } from 'react/jsx-runtime';
6
+
7
+ var buttonVariants = cva(
8
+ [
9
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-lg",
10
+ // NIT-004: `font-medium` (500) aligns with the design-system.md UI weight.
11
+ // Previously `font-bold` (700) exceeded the normative 400/500/600 weight
12
+ // range declared for Geist Sans in the Violet Forge identity.
13
+ "font-medium font-sans tracking-tight",
14
+ "transition-[box-shadow,background-color,color,transform] duration-base ease-out-soft",
15
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
16
+ // Tailwind v4 dropped the `button { cursor: pointer }` preflight rule
17
+ // (https://tailwindcss.com/docs/upgrade-guide#default-button-cursor) so
18
+ // every <button> now shows the default arrow cursor. Restore the
19
+ // "clickable hand" explicitly for the Button primitive; the
20
+ // `disabled:pointer-events-none` rule below short-circuits cursor
21
+ // application for disabled state (no events → cursor is moot).
22
+ // `aria-disabled:cursor-default` is a belt-and-suspenders override
23
+ // for paths where pointer-events still flow.
24
+ "cursor-pointer disabled:cursor-default aria-disabled:cursor-default",
25
+ "disabled:pointer-events-none disabled:opacity-50",
26
+ "[&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0"
27
+ ],
28
+ {
29
+ variants: {
30
+ variant: {
31
+ primary: [
32
+ "bg-primary text-primary-foreground",
33
+ "hover:bg-primary hover:shadow-glow",
34
+ "active:scale-[0.98] active:bg-primary-deep active:shadow-none"
35
+ ],
36
+ secondary: [
37
+ "border border-border bg-secondary text-secondary-foreground",
38
+ "hover:bg-muted",
39
+ "active:scale-[0.98]"
40
+ ],
41
+ accent: ["bg-accent text-accent-foreground", "hover:bg-accent-deep", "active:scale-[0.98]"],
42
+ ghost: [
43
+ "bg-transparent text-foreground",
44
+ "hover:bg-muted",
45
+ "active:scale-[0.98] active:bg-secondary"
46
+ ],
47
+ link: [
48
+ "bg-transparent text-primary underline-offset-4",
49
+ "hover:text-primary-deep hover:underline",
50
+ "h-auto p-0"
51
+ ],
52
+ destructive: [
53
+ "bg-destructive text-destructive-foreground",
54
+ "hover:bg-destructive/90",
55
+ "active:scale-[0.98]"
56
+ ]
57
+ },
58
+ size: {
59
+ sm: "h-8 px-3 text-body-sm",
60
+ // md: tier ajustável via density (CSS var on :root). See D3 ADR of
61
+ // faang-density-tightening plan. Default `comfortable` density makes
62
+ // this 36px (--theo-control-h: 2.25rem). sm and lg stay hardcoded.
63
+ md: "h-[var(--theo-control-h,2.25rem)] px-[var(--theo-control-px,0.875rem)] text-body-sm",
64
+ lg: "h-11 px-4 text-body-md",
65
+ icon: "h-[var(--theo-control-h,2.25rem)] w-[var(--theo-control-h,2.25rem)] p-0"
66
+ }
67
+ },
68
+ defaultVariants: {
69
+ variant: "primary",
70
+ size: "md"
71
+ }
72
+ }
73
+ );
74
+ var Button = forwardRef(
75
+ ({ className, variant, size, asChild = false, type, ...props }, ref) => {
76
+ const Comp = asChild ? Slot : "button";
77
+ return /* @__PURE__ */ jsx(
78
+ Comp,
79
+ {
80
+ ref,
81
+ type: asChild ? void 0 : type ?? "button",
82
+ className: cn(buttonVariants({ variant, size }), className),
83
+ ...props
84
+ }
85
+ );
86
+ }
87
+ );
88
+ Button.displayName = "Button";
89
+
90
+ export { Button, buttonVariants };
91
+ //# sourceMappingURL=chunk-57NXT3OX.js.map
92
+ //# sourceMappingURL=chunk-57NXT3OX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/primitives/button/button.tsx"],"names":[],"mappings":";;;;;;AAqBA,IAAM,cAAA,GAAiB,GAAA;AAAA,EACrB;AAAA,IACE,4EAAA;AAAA;AAAA;AAAA;AAAA,IAIA,sCAAA;AAAA,IACA,sFAAA;AAAA,IACA,0IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASA,qEAAA;AAAA,IACA,kDAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS;AAAA,UACP,oCAAA;AAAA,UACA,oCAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,SAAA,EAAW;AAAA,UACT,6DAAA;AAAA,UACA,gBAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,MAAA,EAAQ,CAAC,kCAAA,EAAoC,sBAAA,EAAwB,qBAAqB,CAAA;AAAA,QAC1F,KAAA,EAAO;AAAA,UACL,gCAAA;AAAA,UACA,gBAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,IAAA,EAAM;AAAA,UACJ,gDAAA;AAAA,UACA,yCAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,WAAA,EAAa;AAAA,UACX,4CAAA;AAAA,UACA,yBAAA;AAAA,UACA;AAAA;AACF,OACF;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,uBAAA;AAAA;AAAA;AAAA;AAAA,QAIJ,EAAA,EAAI,qFAAA;AAAA,QACJ,EAAA,EAAI,wBAAA;AAAA,QACJ,IAAA,EAAM;AAAA;AACR,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ;AAQA,IAAM,MAAA,GAAS,UAAA;AAAA,EACb,CAAC,EAAE,SAAA,EAAW,OAAA,EAAS,IAAA,EAAM,OAAA,GAAU,KAAA,EAAO,IAAA,EAAM,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACtE,IAAA,MAAM,IAAA,GAAO,UAAU,IAAA,GAAO,QAAA;AAC9B,IAAA,uBACE,GAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,IAAA,EAAM,OAAA,GAAU,MAAA,GAAa,IAAA,IAAQ,QAAA;AAAA,QACrC,SAAA,EAAW,GAAG,cAAA,CAAe,EAAE,SAAS,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,QACzD,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AACA,MAAA,CAAO,WAAA,GAAc,QAAA","file":"chunk-57NXT3OX.js","sourcesContent":["import { Slot } from \"@radix-ui/react-slot\";\nimport { type VariantProps, cva } from \"class-variance-authority\";\nimport { forwardRef } from \"react\";\nimport type { ButtonHTMLAttributes } from \"react\";\nimport { cn } from \"../../../lib/cn.js\";\n\n/**\n * Button — primitive action element in the Violet Forge design system.\n *\n * Variants:\n * - primary Theo violet fill, glow on hover (signature)\n * - secondary surface with hairline border\n * - accent burnt-sienna fill, celebratory actions\n * - ghost transparent, hover lifts surface\n * - link text-only, primary color, underline on hover\n * - destructive for irreversible actions\n *\n * Sizes: sm (32px) · md (40px, default) · lg (48px) · icon (square 40px)\n *\n * `asChild` swaps the root for the consumer's element (Radix Slot pattern).\n */\nconst buttonVariants = cva(\n [\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-lg\",\n // NIT-004: `font-medium` (500) aligns with the design-system.md UI weight.\n // Previously `font-bold` (700) exceeded the normative 400/500/600 weight\n // range declared for Geist Sans in the Violet Forge identity.\n \"font-medium font-sans tracking-tight\",\n \"transition-[box-shadow,background-color,color,transform] duration-base ease-out-soft\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n // Tailwind v4 dropped the `button { cursor: pointer }` preflight rule\n // (https://tailwindcss.com/docs/upgrade-guide#default-button-cursor) so\n // every <button> now shows the default arrow cursor. Restore the\n // \"clickable hand\" explicitly for the Button primitive; the\n // `disabled:pointer-events-none` rule below short-circuits cursor\n // application for disabled state (no events → cursor is moot).\n // `aria-disabled:cursor-default` is a belt-and-suspenders override\n // for paths where pointer-events still flow.\n \"cursor-pointer disabled:cursor-default aria-disabled:cursor-default\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n \"[&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n ],\n {\n variants: {\n variant: {\n primary: [\n \"bg-primary text-primary-foreground\",\n \"hover:bg-primary hover:shadow-glow\",\n \"active:scale-[0.98] active:bg-primary-deep active:shadow-none\",\n ],\n secondary: [\n \"border border-border bg-secondary text-secondary-foreground\",\n \"hover:bg-muted\",\n \"active:scale-[0.98]\",\n ],\n accent: [\"bg-accent text-accent-foreground\", \"hover:bg-accent-deep\", \"active:scale-[0.98]\"],\n ghost: [\n \"bg-transparent text-foreground\",\n \"hover:bg-muted\",\n \"active:scale-[0.98] active:bg-secondary\",\n ],\n link: [\n \"bg-transparent text-primary underline-offset-4\",\n \"hover:text-primary-deep hover:underline\",\n \"h-auto p-0\",\n ],\n destructive: [\n \"bg-destructive text-destructive-foreground\",\n \"hover:bg-destructive/90\",\n \"active:scale-[0.98]\",\n ],\n },\n size: {\n sm: \"h-8 px-3 text-body-sm\",\n // md: tier ajustável via density (CSS var on :root). See D3 ADR of\n // faang-density-tightening plan. Default `comfortable` density makes\n // this 36px (--theo-control-h: 2.25rem). sm and lg stay hardcoded.\n md: \"h-[var(--theo-control-h,2.25rem)] px-[var(--theo-control-px,0.875rem)] text-body-sm\",\n lg: \"h-11 px-4 text-body-md\",\n icon: \"h-[var(--theo-control-h,2.25rem)] w-[var(--theo-control-h,2.25rem)] p-0\",\n },\n },\n defaultVariants: {\n variant: \"primary\",\n size: \"md\",\n },\n },\n);\n\nexport interface ButtonProps\n extends ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n}\n\nconst Button = forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, type, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n return (\n <Comp\n ref={ref}\n type={asChild ? undefined : (type ?? \"button\")}\n className={cn(buttonVariants({ variant, size }), className)}\n {...props}\n />\n );\n },\n);\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\n"]}
@@ -0,0 +1,44 @@
1
+ import { cn } from './chunk-ZSRJCIWF.js';
2
+ import { Folder } from 'lucide-react';
3
+ import { forwardRef } from 'react';
4
+ import { jsxs, jsx } from 'react/jsx-runtime';
5
+
6
+ var RecentFoldersList = forwardRef(
7
+ ({ className, title = "Recent folders", folders, onSelect, ...props }, ref) => /* @__PURE__ */ jsxs("div", { ref, className: cn("rounded-xl border bg-card", className), ...props, children: [
8
+ title ? /* @__PURE__ */ jsx("p", { className: "border-border/40 border-b px-3 py-2 font-sans text-label-caps text-muted-foreground uppercase tracking-wider", children: title }) : null,
9
+ /* @__PURE__ */ jsx("ul", { children: folders.map((folder) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(
10
+ "button",
11
+ {
12
+ type: "button",
13
+ onClick: () => onSelect?.(folder.id),
14
+ className: cn(
15
+ "flex w-full items-center gap-3 px-3 py-2",
16
+ "text-left transition-colors",
17
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
18
+ folder.active ? "bg-primary/10 text-primary" : "hover:bg-muted"
19
+ ),
20
+ children: [
21
+ /* @__PURE__ */ jsx(
22
+ Folder,
23
+ {
24
+ className: cn(
25
+ "size-4 shrink-0",
26
+ folder.active ? "text-primary" : "text-muted-foreground"
27
+ ),
28
+ "aria-hidden": "true"
29
+ }
30
+ ),
31
+ /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
32
+ /* @__PURE__ */ jsx("p", { className: "truncate font-medium text-body-sm", children: folder.name }),
33
+ /* @__PURE__ */ jsx("p", { className: "truncate font-mono text-label text-muted-foreground", children: folder.path })
34
+ ] })
35
+ ]
36
+ }
37
+ ) }, folder.id)) })
38
+ ] })
39
+ );
40
+ RecentFoldersList.displayName = "RecentFoldersList";
41
+
42
+ export { RecentFoldersList };
43
+ //# sourceMappingURL=chunk-5FF5EUZP.js.map
44
+ //# sourceMappingURL=chunk-5FF5EUZP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/primitives/recent-folders-list/recent-folders-list.tsx"],"names":[],"mappings":";;;;;AA0BA,IAAM,iBAAA,GAAoB,UAAA;AAAA,EACxB,CAAC,EAAE,SAAA,EAAW,KAAA,GAAQ,kBAAkB,OAAA,EAAS,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,wBACrE,IAAA,CAAC,KAAA,EAAA,EAAI,KAAU,SAAA,EAAW,EAAA,CAAG,6BAA6B,SAAS,CAAA,EAAI,GAAG,KAAA,EACvE,QAAA,EAAA;AAAA,IAAA,KAAA,mBACC,GAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,8GAAA,EACV,iBACH,CAAA,GACE,IAAA;AAAA,wBACH,IAAA,EAAA,EACE,QAAA,EAAA,OAAA,CAAQ,IAAI,CAAC,MAAA,yBACX,IAAA,EAAA,EACC,QAAA,kBAAA,IAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,OAAA,EAAS,MAAM,QAAA,GAAW,MAAA,CAAO,EAAE,CAAA;AAAA,QACnC,SAAA,EAAW,EAAA;AAAA,UACT,0CAAA;AAAA,UACA,6BAAA;AAAA,UACA,yEAAA;AAAA,UACA,MAAA,CAAO,SAAS,4BAAA,GAA+B;AAAA,SACjD;AAAA,QAEA,QAAA,EAAA;AAAA,0BAAA,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,iBAAA;AAAA,gBACA,MAAA,CAAO,SAAS,cAAA,GAAiB;AAAA,eACnC;AAAA,cACA,aAAA,EAAY;AAAA;AAAA,WACd;AAAA,0BACA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACb,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,mCAAA,EAAqC,QAAA,EAAA,MAAA,CAAO,IAAA,EAAK,CAAA;AAAA,4BAC9D,GAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,qDAAA,EAAuD,iBAAO,IAAA,EAAK;AAAA,WAAA,EAClF;AAAA;AAAA;AAAA,KACF,EAAA,EAtBO,MAAA,CAAO,EAuBhB,CACD,CAAA,EACH;AAAA,GAAA,EACF;AAEJ;AACA,iBAAA,CAAkB,WAAA,GAAc,mBAAA","file":"chunk-5FF5EUZP.js","sourcesContent":["import { Folder } from \"lucide-react\";\nimport { forwardRef } from \"react\";\nimport type { HTMLAttributes, ReactNode } from \"react\";\nimport { cn } from \"../../../lib/cn.js\";\n\nexport interface RecentFolder {\n id: string;\n name: ReactNode;\n path: string;\n /** When true, the row is highlighted as selected. */\n active?: boolean;\n}\n\ninterface RecentFoldersListProps\n extends Omit<HTMLAttributes<HTMLDivElement>, \"title\" | \"onSelect\"> {\n title?: ReactNode;\n folders: RecentFolder[];\n onSelect?: (id: string) => void;\n}\n\n/**\n * RecentFoldersList — recently-used folders for the Files picker.\n *\n * Visual: a stack of rows with folder icon + name + path (smaller, muted),\n * active row highlighted with violet bg.\n */\nconst RecentFoldersList = forwardRef<HTMLDivElement, RecentFoldersListProps>(\n ({ className, title = \"Recent folders\", folders, onSelect, ...props }, ref) => (\n <div ref={ref} className={cn(\"rounded-xl border bg-card\", className)} {...props}>\n {title ? (\n <p className=\"border-border/40 border-b px-3 py-2 font-sans text-label-caps text-muted-foreground uppercase tracking-wider\">\n {title}\n </p>\n ) : null}\n <ul>\n {folders.map((folder) => (\n <li key={folder.id}>\n <button\n type=\"button\"\n onClick={() => onSelect?.(folder.id)}\n className={cn(\n \"flex w-full items-center gap-3 px-3 py-2\",\n \"text-left transition-colors\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\",\n folder.active ? \"bg-primary/10 text-primary\" : \"hover:bg-muted\",\n )}\n >\n <Folder\n className={cn(\n \"size-4 shrink-0\",\n folder.active ? \"text-primary\" : \"text-muted-foreground\",\n )}\n aria-hidden=\"true\"\n />\n <div className=\"min-w-0 flex-1\">\n <p className=\"truncate font-medium text-body-sm\">{folder.name}</p>\n <p className=\"truncate font-mono text-label text-muted-foreground\">{folder.path}</p>\n </div>\n </button>\n </li>\n ))}\n </ul>\n </div>\n ),\n);\nRecentFoldersList.displayName = \"RecentFoldersList\";\n\nexport { RecentFoldersList };\n"]}