@particle-academy/react-fancy 5.12.0 → 5.14.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 (959) hide show
  1. package/dist/AudioViewer.types-VWhRx6XG.d.cts +22 -0
  2. package/dist/AudioViewer.types-VWhRx6XG.d.ts +22 -0
  3. package/dist/Card-BZ5F6-wd.d.cts +50 -0
  4. package/dist/Card-BZ5F6-wd.d.ts +50 -0
  5. package/dist/Carousel.context-Ba3gKZHQ.d.cts +61 -0
  6. package/dist/Carousel.context-Ba3gKZHQ.d.ts +61 -0
  7. package/dist/FieldMode.context-Bv_wuS8V.d.ts +74 -0
  8. package/dist/FieldMode.context-C28RH8GR.d.cts +74 -0
  9. package/dist/ImageViewer.types-BaqlDeuo.d.cts +55 -0
  10. package/dist/ImageViewer.types-BaqlDeuo.d.ts +55 -0
  11. package/dist/PdfViewer.types-_u6vboSl.d.cts +14 -0
  12. package/dist/PdfViewer.types-_u6vboSl.d.ts +14 -0
  13. package/dist/Timeline-7zHhIk3P.d.cts +73 -0
  14. package/dist/Timeline-Cvrd7N7-.d.ts +73 -0
  15. package/dist/VideoViewer.types-CTwS6PcM.d.cts +26 -0
  16. package/dist/VideoViewer.types-CTwS6PcM.d.ts +26 -0
  17. package/dist/accordion-panel.cjs +34 -0
  18. package/dist/accordion-panel.cjs.map +1 -0
  19. package/dist/accordion-panel.d.cts +186 -0
  20. package/dist/accordion-panel.d.ts +186 -0
  21. package/dist/accordion-panel.js +5 -0
  22. package/dist/accordion-panel.js.map +1 -0
  23. package/dist/accordion.cjs +17 -0
  24. package/dist/accordion.cjs.map +1 -0
  25. package/dist/accordion.d.cts +53 -0
  26. package/dist/accordion.d.ts +53 -0
  27. package/dist/accordion.js +4 -0
  28. package/dist/accordion.js.map +1 -0
  29. package/dist/audio-viewer.cjs +13 -0
  30. package/dist/audio-viewer.cjs.map +1 -0
  31. package/dist/audio-viewer.d.cts +14 -0
  32. package/dist/audio-viewer.d.ts +14 -0
  33. package/dist/audio-viewer.js +4 -0
  34. package/dist/audio-viewer.js.map +1 -0
  35. package/dist/autocomplete.cjs +20 -0
  36. package/dist/autocomplete.cjs.map +1 -0
  37. package/dist/autocomplete.d.cts +28 -0
  38. package/dist/autocomplete.d.ts +28 -0
  39. package/dist/autocomplete.js +11 -0
  40. package/dist/autocomplete.js.map +1 -0
  41. package/dist/avatar.cjs +13 -0
  42. package/dist/avatar.cjs.map +1 -0
  43. package/dist/avatar.d.cts +26 -0
  44. package/dist/avatar.d.ts +26 -0
  45. package/dist/avatar.js +4 -0
  46. package/dist/avatar.js.map +1 -0
  47. package/dist/badge.cjs +13 -0
  48. package/dist/badge.cjs.map +1 -0
  49. package/dist/badge.d.cts +18 -0
  50. package/dist/badge.d.ts +18 -0
  51. package/dist/badge.js +4 -0
  52. package/dist/badge.js.map +1 -0
  53. package/dist/brand.cjs +17 -0
  54. package/dist/brand.cjs.map +1 -0
  55. package/dist/brand.d.cts +43 -0
  56. package/dist/brand.d.ts +43 -0
  57. package/dist/brand.js +4 -0
  58. package/dist/brand.js.map +1 -0
  59. package/dist/breadcrumbs.cjs +15 -0
  60. package/dist/breadcrumbs.cjs.map +1 -0
  61. package/dist/breadcrumbs.d.cts +36 -0
  62. package/dist/breadcrumbs.d.ts +36 -0
  63. package/dist/breadcrumbs.js +6 -0
  64. package/dist/breadcrumbs.js.map +1 -0
  65. package/dist/button.cjs +20 -0
  66. package/dist/button.cjs.map +1 -0
  67. package/dist/button.d.cts +84 -0
  68. package/dist/button.d.ts +84 -0
  69. package/dist/button.js +7 -0
  70. package/dist/button.js.map +1 -0
  71. package/dist/calendar.cjs +13 -0
  72. package/dist/calendar.cjs.map +1 -0
  73. package/dist/calendar.d.cts +20 -0
  74. package/dist/calendar.d.ts +20 -0
  75. package/dist/calendar.js +4 -0
  76. package/dist/calendar.js.map +1 -0
  77. package/dist/callout.cjs +13 -0
  78. package/dist/callout.cjs.map +1 -0
  79. package/dist/callout.d.cts +16 -0
  80. package/dist/callout.d.ts +16 -0
  81. package/dist/callout.js +4 -0
  82. package/dist/callout.js.map +1 -0
  83. package/dist/card.cjs +29 -0
  84. package/dist/card.cjs.map +1 -0
  85. package/dist/card.d.cts +29 -0
  86. package/dist/card.d.ts +29 -0
  87. package/dist/card.js +4 -0
  88. package/dist/card.js.map +1 -0
  89. package/dist/carousel.cjs +34 -0
  90. package/dist/carousel.cjs.map +1 -0
  91. package/dist/carousel.d.cts +13 -0
  92. package/dist/carousel.d.ts +13 -0
  93. package/dist/carousel.js +5 -0
  94. package/dist/carousel.js.map +1 -0
  95. package/dist/chart.cjs +13 -0
  96. package/dist/chart.cjs.map +1 -0
  97. package/dist/chart.d.cts +140 -0
  98. package/dist/chart.d.ts +140 -0
  99. package/dist/chart.js +4 -0
  100. package/dist/chart.js.map +1 -0
  101. package/dist/chat-drawer.cjs +15 -0
  102. package/dist/chat-drawer.cjs.map +1 -0
  103. package/dist/chat-drawer.d.cts +63 -0
  104. package/dist/chat-drawer.d.ts +63 -0
  105. package/dist/chat-drawer.js +6 -0
  106. package/dist/chat-drawer.js.map +1 -0
  107. package/dist/checkbox-group.cjs +19 -0
  108. package/dist/checkbox-group.cjs.map +1 -0
  109. package/dist/checkbox-group.d.cts +18 -0
  110. package/dist/checkbox-group.d.ts +18 -0
  111. package/dist/checkbox-group.js +10 -0
  112. package/dist/checkbox-group.js.map +1 -0
  113. package/dist/checkbox.cjs +17 -0
  114. package/dist/checkbox.cjs.map +1 -0
  115. package/dist/checkbox.d.cts +16 -0
  116. package/dist/checkbox.d.ts +16 -0
  117. package/dist/checkbox.js +8 -0
  118. package/dist/checkbox.js.map +1 -0
  119. package/dist/chunk-2CNSZCVE.cjs +119 -0
  120. package/dist/chunk-2CNSZCVE.cjs.map +1 -0
  121. package/dist/chunk-2CYRAKWI.cjs +241 -0
  122. package/dist/chunk-2CYRAKWI.cjs.map +1 -0
  123. package/dist/chunk-2G3L4BLU.cjs +257 -0
  124. package/dist/chunk-2G3L4BLU.cjs.map +1 -0
  125. package/dist/chunk-2PELJ4VA.cjs +335 -0
  126. package/dist/chunk-2PELJ4VA.cjs.map +1 -0
  127. package/dist/chunk-2S7WRR5P.cjs +156 -0
  128. package/dist/chunk-2S7WRR5P.cjs.map +1 -0
  129. package/dist/chunk-32AJIHBZ.js +201 -0
  130. package/dist/chunk-32AJIHBZ.js.map +1 -0
  131. package/dist/chunk-3DJGPNUI.js +39 -0
  132. package/dist/chunk-3DJGPNUI.js.map +1 -0
  133. package/dist/chunk-3ETOEEVN.cjs +62 -0
  134. package/dist/chunk-3ETOEEVN.cjs.map +1 -0
  135. package/dist/chunk-3F66SAE7.js +40 -0
  136. package/dist/chunk-3F66SAE7.js.map +1 -0
  137. package/dist/chunk-3GRC5J2L.cjs +54 -0
  138. package/dist/chunk-3GRC5J2L.cjs.map +1 -0
  139. package/dist/chunk-3SQ34IQC.cjs +124 -0
  140. package/dist/chunk-3SQ34IQC.cjs.map +1 -0
  141. package/dist/chunk-3WGRVDQR.cjs +39 -0
  142. package/dist/chunk-3WGRVDQR.cjs.map +1 -0
  143. package/dist/chunk-3Z6ALUWP.cjs +13 -0
  144. package/dist/chunk-3Z6ALUWP.cjs.map +1 -0
  145. package/dist/chunk-45BBNJQD.js +2019 -0
  146. package/dist/chunk-45BBNJQD.js.map +1 -0
  147. package/dist/chunk-47TFRODY.cjs +107 -0
  148. package/dist/chunk-47TFRODY.cjs.map +1 -0
  149. package/dist/chunk-4DQ6HX27.cjs +187 -0
  150. package/dist/chunk-4DQ6HX27.cjs.map +1 -0
  151. package/dist/chunk-4UA45GB4.js +129 -0
  152. package/dist/chunk-4UA45GB4.js.map +1 -0
  153. package/dist/chunk-57FQGQJK.cjs +26 -0
  154. package/dist/chunk-57FQGQJK.cjs.map +1 -0
  155. package/dist/chunk-5FV6GMFP.cjs +4 -0
  156. package/dist/chunk-5FV6GMFP.cjs.map +1 -0
  157. package/dist/chunk-5HOQ2PHR.cjs +287 -0
  158. package/dist/chunk-5HOQ2PHR.cjs.map +1 -0
  159. package/dist/chunk-5I4PR2KV.cjs +131 -0
  160. package/dist/chunk-5I4PR2KV.cjs.map +1 -0
  161. package/dist/chunk-5LHG7HEY.cjs +42 -0
  162. package/dist/chunk-5LHG7HEY.cjs.map +1 -0
  163. package/dist/chunk-5OC6DUYT.js +139 -0
  164. package/dist/chunk-5OC6DUYT.js.map +1 -0
  165. package/dist/chunk-5QL7XT3N.js +80 -0
  166. package/dist/chunk-5QL7XT3N.js.map +1 -0
  167. package/dist/chunk-5U2DZ7AV.js +49 -0
  168. package/dist/chunk-5U2DZ7AV.js.map +1 -0
  169. package/dist/chunk-5UOQVGZC.cjs +930 -0
  170. package/dist/chunk-5UOQVGZC.cjs.map +1 -0
  171. package/dist/chunk-6BW5BQMN.cjs +57 -0
  172. package/dist/chunk-6BW5BQMN.cjs.map +1 -0
  173. package/dist/chunk-6FBFE66M.cjs +292 -0
  174. package/dist/chunk-6FBFE66M.cjs.map +1 -0
  175. package/dist/chunk-6FQGMVF2.js +25 -0
  176. package/dist/chunk-6FQGMVF2.js.map +1 -0
  177. package/dist/chunk-6GC5DMOK.cjs +141 -0
  178. package/dist/chunk-6GC5DMOK.cjs.map +1 -0
  179. package/dist/chunk-6H6OYLMJ.js +105 -0
  180. package/dist/chunk-6H6OYLMJ.js.map +1 -0
  181. package/dist/chunk-6L6LI2RL.cjs +37 -0
  182. package/dist/chunk-6L6LI2RL.cjs.map +1 -0
  183. package/dist/chunk-6MDZQIMZ.cjs +18 -0
  184. package/dist/chunk-6MDZQIMZ.cjs.map +1 -0
  185. package/dist/chunk-6OSHAP6L.cjs +110 -0
  186. package/dist/chunk-6OSHAP6L.cjs.map +1 -0
  187. package/dist/chunk-7AFEKDUS.js +202 -0
  188. package/dist/chunk-7AFEKDUS.js.map +1 -0
  189. package/dist/chunk-7C7VF4WY.cjs +155 -0
  190. package/dist/chunk-7C7VF4WY.cjs.map +1 -0
  191. package/dist/chunk-7NLKXBZ2.cjs +88 -0
  192. package/dist/chunk-7NLKXBZ2.cjs.map +1 -0
  193. package/dist/chunk-7XDKIZQE.js +382 -0
  194. package/dist/chunk-7XDKIZQE.js.map +1 -0
  195. package/dist/chunk-A22T6DKO.cjs +283 -0
  196. package/dist/chunk-A22T6DKO.cjs.map +1 -0
  197. package/dist/chunk-A3CNYKT3.js +197 -0
  198. package/dist/chunk-A3CNYKT3.js.map +1 -0
  199. package/dist/chunk-AC7M7JDO.cjs +199 -0
  200. package/dist/chunk-AC7M7JDO.cjs.map +1 -0
  201. package/dist/chunk-AGDW5ENV.js +37 -0
  202. package/dist/chunk-AGDW5ENV.js.map +1 -0
  203. package/dist/chunk-AIA5UNQ5.cjs +4 -0
  204. package/dist/chunk-AIA5UNQ5.cjs.map +1 -0
  205. package/dist/chunk-AKIUDPJU.js +119 -0
  206. package/dist/chunk-AKIUDPJU.js.map +1 -0
  207. package/dist/chunk-ANEX75DF.cjs +39 -0
  208. package/dist/chunk-ANEX75DF.cjs.map +1 -0
  209. package/dist/chunk-AOOBRPTE.cjs +142 -0
  210. package/dist/chunk-AOOBRPTE.cjs.map +1 -0
  211. package/dist/chunk-ARSQY4P7.cjs +101 -0
  212. package/dist/chunk-ARSQY4P7.cjs.map +1 -0
  213. package/dist/chunk-ATFXU6R6.js +122 -0
  214. package/dist/chunk-ATFXU6R6.js.map +1 -0
  215. package/dist/chunk-AUTW5O4W.js +3 -0
  216. package/dist/chunk-AUTW5O4W.js.map +1 -0
  217. package/dist/chunk-AVR5P4GA.cjs +832 -0
  218. package/dist/chunk-AVR5P4GA.cjs.map +1 -0
  219. package/dist/chunk-B3HVWXIQ.cjs +112 -0
  220. package/dist/chunk-B3HVWXIQ.cjs.map +1 -0
  221. package/dist/chunk-BEGDL2CD.js +81 -0
  222. package/dist/chunk-BEGDL2CD.js.map +1 -0
  223. package/dist/chunk-BFKCVSNK.cjs +80 -0
  224. package/dist/chunk-BFKCVSNK.cjs.map +1 -0
  225. package/dist/chunk-BPBI3WWQ.cjs +364 -0
  226. package/dist/chunk-BPBI3WWQ.cjs.map +1 -0
  227. package/dist/chunk-BYIY6BH2.js +927 -0
  228. package/dist/chunk-BYIY6BH2.js.map +1 -0
  229. package/dist/chunk-C4Z4S3CX.js +164 -0
  230. package/dist/chunk-C4Z4S3CX.js.map +1 -0
  231. package/dist/chunk-C5AZNBVB.js +153 -0
  232. package/dist/chunk-C5AZNBVB.js.map +1 -0
  233. package/dist/chunk-CFBK5RIZ.js +35 -0
  234. package/dist/chunk-CFBK5RIZ.js.map +1 -0
  235. package/dist/chunk-CHADHN6M.js +37 -0
  236. package/dist/chunk-CHADHN6M.js.map +1 -0
  237. package/dist/chunk-CPY7NHXM.js +88 -0
  238. package/dist/chunk-CPY7NHXM.js.map +1 -0
  239. package/dist/chunk-CS4GQXYY.js +131 -0
  240. package/dist/chunk-CS4GQXYY.js.map +1 -0
  241. package/dist/chunk-CTMJYV3O.js +99 -0
  242. package/dist/chunk-CTMJYV3O.js.map +1 -0
  243. package/dist/chunk-CZZH45GQ.cjs +122 -0
  244. package/dist/chunk-CZZH45GQ.cjs.map +1 -0
  245. package/dist/chunk-D4WM23Y4.js +109 -0
  246. package/dist/chunk-D4WM23Y4.js.map +1 -0
  247. package/dist/chunk-D7NAXQ2N.js +86 -0
  248. package/dist/chunk-D7NAXQ2N.js.map +1 -0
  249. package/dist/chunk-DJ3YM72H.cjs +353 -0
  250. package/dist/chunk-DJ3YM72H.cjs.map +1 -0
  251. package/dist/chunk-DOSSIU6S.cjs +162 -0
  252. package/dist/chunk-DOSSIU6S.cjs.map +1 -0
  253. package/dist/chunk-DSUHZO6T.js +11 -0
  254. package/dist/chunk-DSUHZO6T.js.map +1 -0
  255. package/dist/chunk-DTPGJNOI.js +204 -0
  256. package/dist/chunk-DTPGJNOI.js.map +1 -0
  257. package/dist/chunk-DV4IMAQW.js +100 -0
  258. package/dist/chunk-DV4IMAQW.js.map +1 -0
  259. package/dist/chunk-DWRMC2FN.cjs +95 -0
  260. package/dist/chunk-DWRMC2FN.cjs.map +1 -0
  261. package/dist/chunk-DZD2RJVD.js +47 -0
  262. package/dist/chunk-DZD2RJVD.js.map +1 -0
  263. package/dist/chunk-E4LFD44D.js +69 -0
  264. package/dist/chunk-E4LFD44D.js.map +1 -0
  265. package/dist/chunk-E7PHL3TD.cjs +144 -0
  266. package/dist/chunk-E7PHL3TD.cjs.map +1 -0
  267. package/dist/chunk-ECZ66DKF.js +522 -0
  268. package/dist/chunk-ECZ66DKF.js.map +1 -0
  269. package/dist/chunk-EERAEPQO.cjs +177 -0
  270. package/dist/chunk-EERAEPQO.cjs.map +1 -0
  271. package/dist/chunk-EIBW5YLS.js +52 -0
  272. package/dist/chunk-EIBW5YLS.js.map +1 -0
  273. package/dist/chunk-ESKVRRVA.js +56 -0
  274. package/dist/chunk-ESKVRRVA.js.map +1 -0
  275. package/dist/chunk-EVXDG2XN.js +108 -0
  276. package/dist/chunk-EVXDG2XN.js.map +1 -0
  277. package/dist/chunk-F6NEPU67.cjs +218 -0
  278. package/dist/chunk-F6NEPU67.cjs.map +1 -0
  279. package/dist/chunk-F6SCZCJE.js +176 -0
  280. package/dist/chunk-F6SCZCJE.js.map +1 -0
  281. package/dist/chunk-FA3D4GFC.cjs +323 -0
  282. package/dist/chunk-FA3D4GFC.cjs.map +1 -0
  283. package/dist/chunk-FCAV5IFW.js +63 -0
  284. package/dist/chunk-FCAV5IFW.js.map +1 -0
  285. package/dist/chunk-FVV76TRF.js +101 -0
  286. package/dist/chunk-FVV76TRF.js.map +1 -0
  287. package/dist/chunk-G2W7B3OG.js +420 -0
  288. package/dist/chunk-G2W7B3OG.js.map +1 -0
  289. package/dist/chunk-G34OBTU3.cjs +27 -0
  290. package/dist/chunk-G34OBTU3.cjs.map +1 -0
  291. package/dist/chunk-GFYSELJF.js +35 -0
  292. package/dist/chunk-GFYSELJF.js.map +1 -0
  293. package/dist/chunk-GIDW3SUE.cjs +59 -0
  294. package/dist/chunk-GIDW3SUE.cjs.map +1 -0
  295. package/dist/chunk-GKGL7F36.js +290 -0
  296. package/dist/chunk-GKGL7F36.js.map +1 -0
  297. package/dist/chunk-GKPCXPCD.js +262 -0
  298. package/dist/chunk-GKPCXPCD.js.map +1 -0
  299. package/dist/chunk-GZIUE4DE.js +117 -0
  300. package/dist/chunk-GZIUE4DE.js.map +1 -0
  301. package/dist/chunk-HAOYXGGJ.js +104 -0
  302. package/dist/chunk-HAOYXGGJ.js.map +1 -0
  303. package/dist/chunk-HBFVOHQC.cjs +102 -0
  304. package/dist/chunk-HBFVOHQC.cjs.map +1 -0
  305. package/dist/chunk-HG6XUJOT.js +328 -0
  306. package/dist/chunk-HG6XUJOT.js.map +1 -0
  307. package/dist/chunk-I6L7OP7G.cjs +203 -0
  308. package/dist/chunk-I6L7OP7G.cjs.map +1 -0
  309. package/dist/chunk-IE4CM2SN.js +122 -0
  310. package/dist/chunk-IE4CM2SN.js.map +1 -0
  311. package/dist/chunk-IF25CE6S.cjs +202 -0
  312. package/dist/chunk-IF25CE6S.cjs.map +1 -0
  313. package/dist/chunk-IF3T3ZCB.cjs +273 -0
  314. package/dist/chunk-IF3T3ZCB.cjs.map +1 -0
  315. package/dist/chunk-IF5LOWUL.js +273 -0
  316. package/dist/chunk-IF5LOWUL.js.map +1 -0
  317. package/dist/chunk-IGU5YXRV.cjs +138 -0
  318. package/dist/chunk-IGU5YXRV.cjs.map +1 -0
  319. package/dist/chunk-IGYIMS6J.js +174 -0
  320. package/dist/chunk-IGYIMS6J.js.map +1 -0
  321. package/dist/chunk-IJ4I55QQ.cjs +38 -0
  322. package/dist/chunk-IJ4I55QQ.cjs.map +1 -0
  323. package/dist/chunk-IXHZVFHX.cjs +44 -0
  324. package/dist/chunk-IXHZVFHX.cjs.map +1 -0
  325. package/dist/chunk-J2DI6RMR.cjs +115 -0
  326. package/dist/chunk-J2DI6RMR.cjs.map +1 -0
  327. package/dist/chunk-J3XS4HHX.js +230 -0
  328. package/dist/chunk-J3XS4HHX.js.map +1 -0
  329. package/dist/chunk-JCOBDDHF.js +118 -0
  330. package/dist/chunk-JCOBDDHF.js.map +1 -0
  331. package/dist/chunk-JHEM6IGT.cjs +49 -0
  332. package/dist/chunk-JHEM6IGT.cjs.map +1 -0
  333. package/dist/chunk-JIYP73OJ.js +169 -0
  334. package/dist/chunk-JIYP73OJ.js.map +1 -0
  335. package/dist/chunk-JKO2Y5SH.js +60 -0
  336. package/dist/chunk-JKO2Y5SH.js.map +1 -0
  337. package/dist/chunk-JPTWZ3RF.cjs +280 -0
  338. package/dist/chunk-JPTWZ3RF.cjs.map +1 -0
  339. package/dist/chunk-JXE5XID6.js +19 -0
  340. package/dist/chunk-JXE5XID6.js.map +1 -0
  341. package/dist/chunk-JXIBUIEY.cjs +144 -0
  342. package/dist/chunk-JXIBUIEY.cjs.map +1 -0
  343. package/dist/chunk-JYKZKSZJ.js +122 -0
  344. package/dist/chunk-JYKZKSZJ.js.map +1 -0
  345. package/dist/chunk-K2DZEYBF.js +321 -0
  346. package/dist/chunk-K2DZEYBF.js.map +1 -0
  347. package/dist/chunk-K7JGOQJG.js +55 -0
  348. package/dist/chunk-K7JGOQJG.js.map +1 -0
  349. package/dist/chunk-KC6QBKKB.cjs +173 -0
  350. package/dist/chunk-KC6QBKKB.cjs.map +1 -0
  351. package/dist/chunk-KE7KXY5C.cjs +233 -0
  352. package/dist/chunk-KE7KXY5C.cjs.map +1 -0
  353. package/dist/chunk-KICZTIZL.cjs +133 -0
  354. package/dist/chunk-KICZTIZL.cjs.map +1 -0
  355. package/dist/chunk-KJ22KE56.cjs +19 -0
  356. package/dist/chunk-KJ22KE56.cjs.map +1 -0
  357. package/dist/chunk-KUKYJZIU.cjs +179 -0
  358. package/dist/chunk-KUKYJZIU.cjs.map +1 -0
  359. package/dist/chunk-L3V3BYVS.cjs +15 -0
  360. package/dist/chunk-L3V3BYVS.cjs.map +1 -0
  361. package/dist/chunk-LNWO23PU.cjs +131 -0
  362. package/dist/chunk-LNWO23PU.cjs.map +1 -0
  363. package/dist/chunk-LPQVXTKV.js +36 -0
  364. package/dist/chunk-LPQVXTKV.js.map +1 -0
  365. package/dist/chunk-LZL2KD4P.cjs +207 -0
  366. package/dist/chunk-LZL2KD4P.cjs.map +1 -0
  367. package/dist/chunk-M24NCWBU.js +239 -0
  368. package/dist/chunk-M24NCWBU.js.map +1 -0
  369. package/dist/chunk-M7EEQPE7.js +137 -0
  370. package/dist/chunk-M7EEQPE7.js.map +1 -0
  371. package/dist/chunk-MDUSUJWY.cjs +31 -0
  372. package/dist/chunk-MDUSUJWY.cjs.map +1 -0
  373. package/dist/chunk-MGZE2QEM.cjs +51 -0
  374. package/dist/chunk-MGZE2QEM.cjs.map +1 -0
  375. package/dist/chunk-MILTPAF6.js +255 -0
  376. package/dist/chunk-MILTPAF6.js.map +1 -0
  377. package/dist/chunk-MQ6VGG62.js +113 -0
  378. package/dist/chunk-MQ6VGG62.js.map +1 -0
  379. package/dist/chunk-MYF2PDTU.js +137 -0
  380. package/dist/chunk-MYF2PDTU.js.map +1 -0
  381. package/dist/chunk-MZIU27UY.js +133 -0
  382. package/dist/chunk-MZIU27UY.js.map +1 -0
  383. package/dist/chunk-N7WQ53US.js +211 -0
  384. package/dist/chunk-N7WQ53US.js.map +1 -0
  385. package/dist/chunk-NBZC6LOB.cjs +43 -0
  386. package/dist/chunk-NBZC6LOB.cjs.map +1 -0
  387. package/dist/chunk-NH7NRRII.js +167 -0
  388. package/dist/chunk-NH7NRRII.js.map +1 -0
  389. package/dist/chunk-NLJGNPNN.js +284 -0
  390. package/dist/chunk-NLJGNPNN.js.map +1 -0
  391. package/dist/chunk-NNSNANNY.cjs +224 -0
  392. package/dist/chunk-NNSNANNY.cjs.map +1 -0
  393. package/dist/chunk-NPKE2IX6.js +154 -0
  394. package/dist/chunk-NPKE2IX6.js.map +1 -0
  395. package/dist/chunk-NRXK42LO.js +12 -0
  396. package/dist/chunk-NRXK42LO.js.map +1 -0
  397. package/dist/chunk-O432BDEO.js +160 -0
  398. package/dist/chunk-O432BDEO.js.map +1 -0
  399. package/dist/chunk-O4MKOSU2.js +29 -0
  400. package/dist/chunk-O4MKOSU2.js.map +1 -0
  401. package/dist/chunk-O5IO7TCO.cjs +4 -0
  402. package/dist/chunk-O5IO7TCO.cjs.map +1 -0
  403. package/dist/chunk-OL53XYHF.js +17 -0
  404. package/dist/chunk-OL53XYHF.js.map +1 -0
  405. package/dist/chunk-ORCXPDDG.js +3 -0
  406. package/dist/chunk-ORCXPDDG.js.map +1 -0
  407. package/dist/chunk-ORFHF6PT.cjs +172 -0
  408. package/dist/chunk-ORFHF6PT.cjs.map +1 -0
  409. package/dist/chunk-ORPYY2MO.cjs +124 -0
  410. package/dist/chunk-ORPYY2MO.cjs.map +1 -0
  411. package/dist/chunk-OUOEQZHY.cjs +27 -0
  412. package/dist/chunk-OUOEQZHY.cjs.map +1 -0
  413. package/dist/chunk-PBXYU4EV.cjs +121 -0
  414. package/dist/chunk-PBXYU4EV.cjs.map +1 -0
  415. package/dist/chunk-PH3WGR5P.cjs +82 -0
  416. package/dist/chunk-PH3WGR5P.cjs.map +1 -0
  417. package/dist/chunk-POZZY3D5.cjs +135 -0
  418. package/dist/chunk-POZZY3D5.cjs.map +1 -0
  419. package/dist/chunk-PPLR2DNC.cjs +41 -0
  420. package/dist/chunk-PPLR2DNC.cjs.map +1 -0
  421. package/dist/chunk-PQWQ5K6J.js +15 -0
  422. package/dist/chunk-PQWQ5K6J.js.map +1 -0
  423. package/dist/chunk-PRDWJ4AR.js +215 -0
  424. package/dist/chunk-PRDWJ4AR.js.map +1 -0
  425. package/dist/chunk-PRJSEZ5F.cjs +285 -0
  426. package/dist/chunk-PRJSEZ5F.cjs.map +1 -0
  427. package/dist/chunk-PVWPZYTR.js +830 -0
  428. package/dist/chunk-PVWPZYTR.js.map +1 -0
  429. package/dist/chunk-PYRMH34E.js +49 -0
  430. package/dist/chunk-PYRMH34E.js.map +1 -0
  431. package/dist/chunk-PZIAL4OP.cjs +524 -0
  432. package/dist/chunk-PZIAL4OP.cjs.map +1 -0
  433. package/dist/chunk-QFFC2DKK.js +56 -0
  434. package/dist/chunk-QFFC2DKK.js.map +1 -0
  435. package/dist/chunk-R55HE5C5.js +81 -0
  436. package/dist/chunk-R55HE5C5.js.map +1 -0
  437. package/dist/chunk-RA3P63XW.cjs +65 -0
  438. package/dist/chunk-RA3P63XW.cjs.map +1 -0
  439. package/dist/chunk-RES2GOQQ.js +139 -0
  440. package/dist/chunk-RES2GOQQ.js.map +1 -0
  441. package/dist/chunk-RGANGU7X.js +24 -0
  442. package/dist/chunk-RGANGU7X.js.map +1 -0
  443. package/dist/chunk-RID7CYGD.js +344 -0
  444. package/dist/chunk-RID7CYGD.js.map +1 -0
  445. package/dist/chunk-RM4QWJS3.js +200 -0
  446. package/dist/chunk-RM4QWJS3.js.map +1 -0
  447. package/dist/chunk-RNHIDZLE.cjs +103 -0
  448. package/dist/chunk-RNHIDZLE.cjs.map +1 -0
  449. package/dist/chunk-RNPFSVFN.js +24 -0
  450. package/dist/chunk-RNPFSVFN.js.map +1 -0
  451. package/dist/chunk-RR7BWUVP.cjs +58 -0
  452. package/dist/chunk-RR7BWUVP.cjs.map +1 -0
  453. package/dist/chunk-RXDRYWVD.cjs +21 -0
  454. package/dist/chunk-RXDRYWVD.cjs.map +1 -0
  455. package/dist/chunk-S3TRSECD.cjs +4 -0
  456. package/dist/chunk-S3TRSECD.cjs.map +1 -0
  457. package/dist/chunk-SCPHSBBU.cjs +83 -0
  458. package/dist/chunk-SCPHSBBU.cjs.map +1 -0
  459. package/dist/chunk-SKI33QNW.js +133 -0
  460. package/dist/chunk-SKI33QNW.js.map +1 -0
  461. package/dist/chunk-T6IXZZBQ.cjs +83 -0
  462. package/dist/chunk-T6IXZZBQ.cjs.map +1 -0
  463. package/dist/chunk-T6YELZPJ.cjs +90 -0
  464. package/dist/chunk-T6YELZPJ.cjs.map +1 -0
  465. package/dist/chunk-TECFGOV2.js +222 -0
  466. package/dist/chunk-TECFGOV2.js.map +1 -0
  467. package/dist/chunk-TJ66S5K6.js +3 -0
  468. package/dist/chunk-TJ66S5K6.js.map +1 -0
  469. package/dist/chunk-TVRCOKJQ.cjs +106 -0
  470. package/dist/chunk-TVRCOKJQ.cjs.map +1 -0
  471. package/dist/chunk-TXTRTTG7.cjs +51 -0
  472. package/dist/chunk-TXTRTTG7.cjs.map +1 -0
  473. package/dist/chunk-TZKZ2LUF.cjs +140 -0
  474. package/dist/chunk-TZKZ2LUF.cjs.map +1 -0
  475. package/dist/chunk-UCYAHLGM.js +142 -0
  476. package/dist/chunk-UCYAHLGM.js.map +1 -0
  477. package/dist/chunk-UH2YXQ2B.cjs +166 -0
  478. package/dist/chunk-UH2YXQ2B.cjs.map +1 -0
  479. package/dist/chunk-UWVVEB2N.js +55 -0
  480. package/dist/chunk-UWVVEB2N.js.map +1 -0
  481. package/dist/chunk-VBZZ4CMM.cjs +71 -0
  482. package/dist/chunk-VBZZ4CMM.cjs.map +1 -0
  483. package/dist/chunk-VE3EM4K2.cjs +57 -0
  484. package/dist/chunk-VE3EM4K2.cjs.map +1 -0
  485. package/dist/chunk-VNDOT3NK.cjs +426 -0
  486. package/dist/chunk-VNDOT3NK.cjs.map +1 -0
  487. package/dist/chunk-VXHFR5MV.js +3 -0
  488. package/dist/chunk-VXHFR5MV.js.map +1 -0
  489. package/dist/chunk-W2Q4OWHX.cjs +204 -0
  490. package/dist/chunk-W2Q4OWHX.cjs.map +1 -0
  491. package/dist/chunk-WEGL4S52.js +450 -0
  492. package/dist/chunk-WEGL4S52.js.map +1 -0
  493. package/dist/chunk-WHEXTDPV.js +41 -0
  494. package/dist/chunk-WHEXTDPV.js.map +1 -0
  495. package/dist/chunk-WT72KW5M.cjs +347 -0
  496. package/dist/chunk-WT72KW5M.cjs.map +1 -0
  497. package/dist/chunk-WVO2EKE6.cjs +101 -0
  498. package/dist/chunk-WVO2EKE6.cjs.map +1 -0
  499. package/dist/chunk-WXADO5TS.cjs +124 -0
  500. package/dist/chunk-WXADO5TS.cjs.map +1 -0
  501. package/dist/chunk-X36ZGYTF.js +281 -0
  502. package/dist/chunk-X36ZGYTF.js.map +1 -0
  503. package/dist/chunk-XBBEQLMY.cjs +214 -0
  504. package/dist/chunk-XBBEQLMY.cjs.map +1 -0
  505. package/dist/chunk-XCZZVRBY.cjs +2030 -0
  506. package/dist/chunk-XCZZVRBY.cjs.map +1 -0
  507. package/dist/chunk-XJXQG34J.js +77 -0
  508. package/dist/chunk-XJXQG34J.js.map +1 -0
  509. package/dist/chunk-XMBOZ73D.js +92 -0
  510. package/dist/chunk-XMBOZ73D.js.map +1 -0
  511. package/dist/chunk-XZYKPGSK.cjs +453 -0
  512. package/dist/chunk-XZYKPGSK.cjs.map +1 -0
  513. package/dist/chunk-YCZN4FWI.js +42 -0
  514. package/dist/chunk-YCZN4FWI.js.map +1 -0
  515. package/dist/chunk-YHXE274U.js +129 -0
  516. package/dist/chunk-YHXE274U.js.map +1 -0
  517. package/dist/chunk-YLGTDBB2.cjs +43 -0
  518. package/dist/chunk-YLGTDBB2.cjs.map +1 -0
  519. package/dist/chunk-YT42J4VQ.js +361 -0
  520. package/dist/chunk-YT42J4VQ.js.map +1 -0
  521. package/dist/chunk-YT6N44Z3.js +99 -0
  522. package/dist/chunk-YT6N44Z3.js.map +1 -0
  523. package/dist/chunk-YXC7QHNT.cjs +385 -0
  524. package/dist/chunk-YXC7QHNT.cjs.map +1 -0
  525. package/dist/chunk-ZFVSEO5Z.cjs +136 -0
  526. package/dist/chunk-ZFVSEO5Z.cjs.map +1 -0
  527. package/dist/chunk-ZLCVKYHY.js +344 -0
  528. package/dist/chunk-ZLCVKYHY.js.map +1 -0
  529. package/dist/chunk-ZNTEM7F2.js +184 -0
  530. package/dist/chunk-ZNTEM7F2.js.map +1 -0
  531. package/dist/chunk-ZT36VWIA.js +136 -0
  532. package/dist/chunk-ZT36VWIA.js.map +1 -0
  533. package/dist/chunk-ZWOEKDNI.js +281 -0
  534. package/dist/chunk-ZWOEKDNI.js.map +1 -0
  535. package/dist/code-view.cjs +13 -0
  536. package/dist/code-view.cjs.map +1 -0
  537. package/dist/code-view.d.cts +44 -0
  538. package/dist/code-view.d.ts +44 -0
  539. package/dist/code-view.js +4 -0
  540. package/dist/code-view.js.map +1 -0
  541. package/dist/color-picker.cjs +16 -0
  542. package/dist/color-picker.cjs.map +1 -0
  543. package/dist/color-picker.d.cts +20 -0
  544. package/dist/color-picker.d.ts +20 -0
  545. package/dist/color-picker.js +7 -0
  546. package/dist/color-picker.js.map +1 -0
  547. package/dist/command.cjs +21 -0
  548. package/dist/command.cjs.map +1 -0
  549. package/dist/command.d.cts +78 -0
  550. package/dist/command.d.ts +78 -0
  551. package/dist/command.js +8 -0
  552. package/dist/command.js.map +1 -0
  553. package/dist/composer.cjs +14 -0
  554. package/dist/composer.cjs.map +1 -0
  555. package/dist/composer.d.cts +17 -0
  556. package/dist/composer.d.ts +17 -0
  557. package/dist/composer.js +5 -0
  558. package/dist/composer.js.map +1 -0
  559. package/dist/content-renderer.cjs +23 -0
  560. package/dist/content-renderer.cjs.map +1 -0
  561. package/dist/content-renderer.d.cts +27 -0
  562. package/dist/content-renderer.d.ts +27 -0
  563. package/dist/content-renderer.js +6 -0
  564. package/dist/content-renderer.js.map +1 -0
  565. package/dist/context-menu.cjs +21 -0
  566. package/dist/context-menu.cjs.map +1 -0
  567. package/dist/context-menu.d.cts +91 -0
  568. package/dist/context-menu.d.ts +91 -0
  569. package/dist/context-menu.js +8 -0
  570. package/dist/context-menu.js.map +1 -0
  571. package/dist/date-picker.cjs +19 -0
  572. package/dist/date-picker.cjs.map +1 -0
  573. package/dist/date-picker.d.cts +26 -0
  574. package/dist/date-picker.d.ts +26 -0
  575. package/dist/date-picker.js +10 -0
  576. package/dist/date-picker.js.map +1 -0
  577. package/dist/drawer.cjs +21 -0
  578. package/dist/drawer.cjs.map +1 -0
  579. package/dist/drawer.d.cts +116 -0
  580. package/dist/drawer.d.ts +116 -0
  581. package/dist/drawer.js +8 -0
  582. package/dist/drawer.js.map +1 -0
  583. package/dist/dropdown.cjs +22 -0
  584. package/dist/dropdown.cjs.map +1 -0
  585. package/dist/dropdown.d.cts +67 -0
  586. package/dist/dropdown.d.ts +67 -0
  587. package/dist/dropdown.js +9 -0
  588. package/dist/dropdown.js.map +1 -0
  589. package/dist/editor.cjs +29 -0
  590. package/dist/editor.cjs.map +1 -0
  591. package/dist/editor.d.cts +153 -0
  592. package/dist/editor.d.ts +153 -0
  593. package/dist/editor.js +16 -0
  594. package/dist/editor.js.map +1 -0
  595. package/dist/emoji-select.cjs +15 -0
  596. package/dist/emoji-select.cjs.map +1 -0
  597. package/dist/emoji-select.d.cts +13 -0
  598. package/dist/emoji-select.d.ts +13 -0
  599. package/dist/emoji-select.js +6 -0
  600. package/dist/emoji-select.js.map +1 -0
  601. package/dist/emoji.cjs +14 -0
  602. package/dist/emoji.cjs.map +1 -0
  603. package/dist/emoji.d.cts +2 -0
  604. package/dist/emoji.d.ts +2 -0
  605. package/dist/emoji.js +5 -0
  606. package/dist/emoji.js.map +1 -0
  607. package/dist/extensions-6PVd3-vB.d.cts +38 -0
  608. package/dist/extensions-6PVd3-vB.d.ts +38 -0
  609. package/dist/eyebrow.cjs +13 -0
  610. package/dist/eyebrow.cjs.map +1 -0
  611. package/dist/eyebrow.d.cts +33 -0
  612. package/dist/eyebrow.d.ts +33 -0
  613. package/dist/eyebrow.js +4 -0
  614. package/dist/eyebrow.js.map +1 -0
  615. package/dist/faux-client.cjs +13 -0
  616. package/dist/faux-client.cjs.map +1 -0
  617. package/dist/faux-client.d.cts +39 -0
  618. package/dist/faux-client.d.ts +39 -0
  619. package/dist/faux-client.js +4 -0
  620. package/dist/faux-client.js.map +1 -0
  621. package/dist/field.cjs +14 -0
  622. package/dist/field.cjs.map +1 -0
  623. package/dist/field.d.cts +18 -0
  624. package/dist/field.d.ts +18 -0
  625. package/dist/field.js +5 -0
  626. package/dist/field.js.map +1 -0
  627. package/dist/file-browser.cjs +18 -0
  628. package/dist/file-browser.cjs.map +1 -0
  629. package/dist/file-browser.d.cts +269 -0
  630. package/dist/file-browser.d.ts +269 -0
  631. package/dist/file-browser.js +5 -0
  632. package/dist/file-browser.js.map +1 -0
  633. package/dist/file-upload.cjs +17 -0
  634. package/dist/file-upload.cjs.map +1 -0
  635. package/dist/file-upload.d.cts +48 -0
  636. package/dist/file-upload.d.ts +48 -0
  637. package/dist/file-upload.js +4 -0
  638. package/dist/file-upload.js.map +1 -0
  639. package/dist/heading.cjs +13 -0
  640. package/dist/heading.cjs.map +1 -0
  641. package/dist/heading.d.cts +25 -0
  642. package/dist/heading.d.ts +25 -0
  643. package/dist/heading.js +4 -0
  644. package/dist/heading.js.map +1 -0
  645. package/dist/icon.cjs +34 -0
  646. package/dist/icon.cjs.map +1 -0
  647. package/dist/icon.d.cts +51 -0
  648. package/dist/icon.d.ts +51 -0
  649. package/dist/icon.js +5 -0
  650. package/dist/icon.js.map +1 -0
  651. package/dist/image-viewer.cjs +14 -0
  652. package/dist/image-viewer.cjs.map +1 -0
  653. package/dist/image-viewer.d.cts +19 -0
  654. package/dist/image-viewer.d.ts +19 -0
  655. package/dist/image-viewer.js +5 -0
  656. package/dist/image-viewer.js.map +1 -0
  657. package/dist/index-B71wa9AW.d.cts +79 -0
  658. package/dist/index-BktWpyRH.d.cts +53 -0
  659. package/dist/index-BktWpyRH.d.ts +53 -0
  660. package/dist/index-bIntFOl5.d.ts +79 -0
  661. package/dist/index-list.cjs +13 -0
  662. package/dist/index-list.cjs.map +1 -0
  663. package/dist/index-list.d.cts +49 -0
  664. package/dist/index-list.d.ts +49 -0
  665. package/dist/index-list.js +4 -0
  666. package/dist/index-list.js.map +1 -0
  667. package/dist/index.cjs +671 -16826
  668. package/dist/index.cjs.map +1 -1
  669. package/dist/index.d.cts +94 -4078
  670. package/dist/index.d.ts +94 -4078
  671. package/dist/index.js +104 -16708
  672. package/dist/index.js.map +1 -1
  673. package/dist/input-tag.cjs +28 -0
  674. package/dist/input-tag.cjs.map +1 -0
  675. package/dist/input-tag.d.cts +134 -0
  676. package/dist/input-tag.d.ts +134 -0
  677. package/dist/input-tag.js +3 -0
  678. package/dist/input-tag.js.map +1 -0
  679. package/dist/input.cjs +20 -0
  680. package/dist/input.cjs.map +1 -0
  681. package/dist/input.d.cts +32 -0
  682. package/dist/input.d.ts +32 -0
  683. package/dist/input.js +11 -0
  684. package/dist/input.js.map +1 -0
  685. package/dist/inputs.cjs +100 -0
  686. package/dist/inputs.cjs.map +1 -0
  687. package/dist/inputs.d.cts +16 -0
  688. package/dist/inputs.d.ts +16 -0
  689. package/dist/inputs.js +27 -0
  690. package/dist/inputs.js.map +1 -0
  691. package/dist/inputs.types-CkWdvN-t.d.cts +44 -0
  692. package/dist/inputs.types-DERzxpe1.d.ts +44 -0
  693. package/dist/kanban.cjs +17 -0
  694. package/dist/kanban.cjs.map +1 -0
  695. package/dist/kanban.d.cts +136 -0
  696. package/dist/kanban.d.ts +136 -0
  697. package/dist/kanban.js +4 -0
  698. package/dist/kanban.js.map +1 -0
  699. package/dist/kbd.cjs +13 -0
  700. package/dist/kbd.cjs.map +1 -0
  701. package/dist/kbd.d.cts +30 -0
  702. package/dist/kbd.d.ts +30 -0
  703. package/dist/kbd.js +4 -0
  704. package/dist/kbd.js.map +1 -0
  705. package/dist/magic-wand.cjs +25 -0
  706. package/dist/magic-wand.cjs.map +1 -0
  707. package/dist/magic-wand.d.cts +62 -0
  708. package/dist/magic-wand.d.ts +62 -0
  709. package/dist/magic-wand.js +16 -0
  710. package/dist/magic-wand.js.map +1 -0
  711. package/dist/marquee.cjs +13 -0
  712. package/dist/marquee.cjs.map +1 -0
  713. package/dist/marquee.d.cts +48 -0
  714. package/dist/marquee.d.ts +48 -0
  715. package/dist/marquee.js +4 -0
  716. package/dist/marquee.js.map +1 -0
  717. package/dist/media-viewer.cjs +18 -0
  718. package/dist/media-viewer.cjs.map +1 -0
  719. package/dist/media-viewer.d.cts +6 -0
  720. package/dist/media-viewer.d.ts +6 -0
  721. package/dist/media-viewer.js +9 -0
  722. package/dist/media-viewer.js.map +1 -0
  723. package/dist/menu.cjs +17 -0
  724. package/dist/menu.cjs.map +1 -0
  725. package/dist/menu.d.cts +60 -0
  726. package/dist/menu.d.ts +60 -0
  727. package/dist/menu.js +4 -0
  728. package/dist/menu.js.map +1 -0
  729. package/dist/mobile-menu.cjs +26 -0
  730. package/dist/mobile-menu.cjs.map +1 -0
  731. package/dist/mobile-menu.d.cts +60 -0
  732. package/dist/mobile-menu.d.ts +60 -0
  733. package/dist/mobile-menu.js +13 -0
  734. package/dist/mobile-menu.js.map +1 -0
  735. package/dist/modal.cjs +21 -0
  736. package/dist/modal.cjs.map +1 -0
  737. package/dist/modal.d.cts +52 -0
  738. package/dist/modal.d.ts +52 -0
  739. package/dist/modal.js +8 -0
  740. package/dist/modal.js.map +1 -0
  741. package/dist/mode.cjs +37 -0
  742. package/dist/mode.cjs.map +1 -0
  743. package/dist/mode.d.cts +28 -0
  744. package/dist/mode.d.ts +28 -0
  745. package/dist/mode.js +8 -0
  746. package/dist/mode.js.map +1 -0
  747. package/dist/mood-meter.cjs +12 -0
  748. package/dist/mood-meter.cjs.map +1 -0
  749. package/dist/mood-meter.d.cts +67 -0
  750. package/dist/mood-meter.d.ts +67 -0
  751. package/dist/mood-meter.js +3 -0
  752. package/dist/mood-meter.js.map +1 -0
  753. package/dist/multi-switch.cjs +19 -0
  754. package/dist/multi-switch.cjs.map +1 -0
  755. package/dist/multi-switch.d.cts +18 -0
  756. package/dist/multi-switch.d.ts +18 -0
  757. package/dist/multi-switch.js +10 -0
  758. package/dist/multi-switch.js.map +1 -0
  759. package/dist/navbar.cjs +17 -0
  760. package/dist/navbar.cjs.map +1 -0
  761. package/dist/navbar.d.cts +60 -0
  762. package/dist/navbar.d.ts +60 -0
  763. package/dist/navbar.js +4 -0
  764. package/dist/navbar.js.map +1 -0
  765. package/dist/otp-input.cjs +16 -0
  766. package/dist/otp-input.cjs.map +1 -0
  767. package/dist/otp-input.d.cts +18 -0
  768. package/dist/otp-input.d.ts +18 -0
  769. package/dist/otp-input.js +7 -0
  770. package/dist/otp-input.js.map +1 -0
  771. package/dist/pagination.cjs +13 -0
  772. package/dist/pagination.cjs.map +1 -0
  773. package/dist/pagination.d.cts +16 -0
  774. package/dist/pagination.d.ts +16 -0
  775. package/dist/pagination.js +4 -0
  776. package/dist/pagination.js.map +1 -0
  777. package/dist/pdf-viewer.cjs +13 -0
  778. package/dist/pdf-viewer.cjs.map +1 -0
  779. package/dist/pdf-viewer.d.cts +16 -0
  780. package/dist/pdf-viewer.d.ts +16 -0
  781. package/dist/pdf-viewer.js +4 -0
  782. package/dist/pdf-viewer.js.map +1 -0
  783. package/dist/pillbox.cjs +14 -0
  784. package/dist/pillbox.cjs.map +1 -0
  785. package/dist/pillbox.d.cts +15 -0
  786. package/dist/pillbox.d.ts +15 -0
  787. package/dist/pillbox.js +5 -0
  788. package/dist/pillbox.js.map +1 -0
  789. package/dist/popover.cjs +21 -0
  790. package/dist/popover.cjs.map +1 -0
  791. package/dist/popover.d.cts +71 -0
  792. package/dist/popover.d.ts +71 -0
  793. package/dist/popover.js +8 -0
  794. package/dist/popover.js.map +1 -0
  795. package/dist/portal.cjs +12 -0
  796. package/dist/portal.cjs.map +1 -0
  797. package/dist/portal.d.cts +10 -0
  798. package/dist/portal.d.ts +10 -0
  799. package/dist/portal.js +3 -0
  800. package/dist/portal.js.map +1 -0
  801. package/dist/profile.cjs +14 -0
  802. package/dist/profile.cjs.map +1 -0
  803. package/dist/profile.d.cts +16 -0
  804. package/dist/profile.d.ts +16 -0
  805. package/dist/profile.js +5 -0
  806. package/dist/profile.js.map +1 -0
  807. package/dist/progress.cjs +13 -0
  808. package/dist/progress.cjs.map +1 -0
  809. package/dist/progress.d.cts +25 -0
  810. package/dist/progress.d.ts +25 -0
  811. package/dist/progress.js +4 -0
  812. package/dist/progress.js.map +1 -0
  813. package/dist/prompt-input.cjs +20 -0
  814. package/dist/prompt-input.cjs.map +1 -0
  815. package/dist/prompt-input.d.cts +76 -0
  816. package/dist/prompt-input.d.ts +76 -0
  817. package/dist/prompt-input.js +11 -0
  818. package/dist/prompt-input.js.map +1 -0
  819. package/dist/pull-quote.cjs +13 -0
  820. package/dist/pull-quote.cjs.map +1 -0
  821. package/dist/pull-quote.d.cts +33 -0
  822. package/dist/pull-quote.d.ts +33 -0
  823. package/dist/pull-quote.js +4 -0
  824. package/dist/pull-quote.js.map +1 -0
  825. package/dist/radio-group.cjs +19 -0
  826. package/dist/radio-group.cjs.map +1 -0
  827. package/dist/radio-group.d.cts +18 -0
  828. package/dist/radio-group.d.ts +18 -0
  829. package/dist/radio-group.js +10 -0
  830. package/dist/radio-group.js.map +1 -0
  831. package/dist/reason-tag.cjs +22 -0
  832. package/dist/reason-tag.cjs.map +1 -0
  833. package/dist/reason-tag.d.cts +57 -0
  834. package/dist/reason-tag.d.ts +57 -0
  835. package/dist/reason-tag.js +13 -0
  836. package/dist/reason-tag.js.map +1 -0
  837. package/dist/select.cjs +23 -0
  838. package/dist/select.cjs.map +1 -0
  839. package/dist/select.d.cts +41 -0
  840. package/dist/select.d.ts +41 -0
  841. package/dist/select.js +14 -0
  842. package/dist/select.js.map +1 -0
  843. package/dist/separator.cjs +13 -0
  844. package/dist/separator.cjs.map +1 -0
  845. package/dist/separator.d.cts +14 -0
  846. package/dist/separator.d.ts +14 -0
  847. package/dist/separator.js +4 -0
  848. package/dist/separator.js.map +1 -0
  849. package/dist/sidebar.cjs +25 -0
  850. package/dist/sidebar.cjs.map +1 -0
  851. package/dist/sidebar.d.cts +80 -0
  852. package/dist/sidebar.d.ts +80 -0
  853. package/dist/sidebar.js +12 -0
  854. package/dist/sidebar.js.map +1 -0
  855. package/dist/skeleton.cjs +13 -0
  856. package/dist/skeleton.cjs.map +1 -0
  857. package/dist/skeleton.d.cts +16 -0
  858. package/dist/skeleton.d.ts +16 -0
  859. package/dist/skeleton.js +4 -0
  860. package/dist/skeleton.js.map +1 -0
  861. package/dist/slider.cjs +19 -0
  862. package/dist/slider.cjs.map +1 -0
  863. package/dist/slider.d.cts +34 -0
  864. package/dist/slider.d.ts +34 -0
  865. package/dist/slider.js +10 -0
  866. package/dist/slider.js.map +1 -0
  867. package/dist/stat-list.cjs +13 -0
  868. package/dist/stat-list.cjs.map +1 -0
  869. package/dist/stat-list.d.cts +43 -0
  870. package/dist/stat-list.d.ts +43 -0
  871. package/dist/stat-list.js +4 -0
  872. package/dist/stat-list.js.map +1 -0
  873. package/dist/stat.cjs +17 -0
  874. package/dist/stat.cjs.map +1 -0
  875. package/dist/stat.d.cts +29 -0
  876. package/dist/stat.d.ts +29 -0
  877. package/dist/stat.js +4 -0
  878. package/dist/stat.js.map +1 -0
  879. package/dist/sticky-note.cjs +13 -0
  880. package/dist/sticky-note.cjs.map +1 -0
  881. package/dist/sticky-note.d.cts +53 -0
  882. package/dist/sticky-note.d.ts +53 -0
  883. package/dist/sticky-note.js +4 -0
  884. package/dist/sticky-note.js.map +1 -0
  885. package/dist/switch.cjs +17 -0
  886. package/dist/switch.cjs.map +1 -0
  887. package/dist/switch.d.cts +16 -0
  888. package/dist/switch.d.ts +16 -0
  889. package/dist/switch.js +8 -0
  890. package/dist/switch.js.map +1 -0
  891. package/dist/table.cjs +50 -0
  892. package/dist/table.cjs.map +1 -0
  893. package/dist/table.d.cts +89 -0
  894. package/dist/table.d.ts +89 -0
  895. package/dist/table.js +5 -0
  896. package/dist/table.js.map +1 -0
  897. package/dist/tabs.cjs +18 -0
  898. package/dist/tabs.cjs.map +1 -0
  899. package/dist/tabs.d.cts +68 -0
  900. package/dist/tabs.d.ts +68 -0
  901. package/dist/tabs.js +5 -0
  902. package/dist/tabs.js.map +1 -0
  903. package/dist/text.cjs +13 -0
  904. package/dist/text.cjs.map +1 -0
  905. package/dist/text.d.cts +17 -0
  906. package/dist/text.d.ts +17 -0
  907. package/dist/text.js +4 -0
  908. package/dist/text.js.map +1 -0
  909. package/dist/textarea.cjs +20 -0
  910. package/dist/textarea.cjs.map +1 -0
  911. package/dist/textarea.d.cts +15 -0
  912. package/dist/textarea.d.ts +15 -0
  913. package/dist/textarea.js +11 -0
  914. package/dist/textarea.js.map +1 -0
  915. package/dist/time-grid.cjs +13 -0
  916. package/dist/time-grid.cjs.map +1 -0
  917. package/dist/time-grid.d.cts +53 -0
  918. package/dist/time-grid.d.ts +53 -0
  919. package/dist/time-grid.js +4 -0
  920. package/dist/time-grid.js.map +1 -0
  921. package/dist/time-picker.cjs +16 -0
  922. package/dist/time-picker.cjs.map +1 -0
  923. package/dist/time-picker.d.cts +19 -0
  924. package/dist/time-picker.d.ts +19 -0
  925. package/dist/time-picker.js +7 -0
  926. package/dist/time-picker.js.map +1 -0
  927. package/dist/timeline.cjs +21 -0
  928. package/dist/timeline.cjs.map +1 -0
  929. package/dist/timeline.d.cts +10 -0
  930. package/dist/timeline.d.ts +10 -0
  931. package/dist/timeline.js +4 -0
  932. package/dist/timeline.js.map +1 -0
  933. package/dist/toast.cjs +18 -0
  934. package/dist/toast.cjs.map +1 -0
  935. package/dist/toast.d.cts +54 -0
  936. package/dist/toast.d.ts +54 -0
  937. package/dist/toast.js +5 -0
  938. package/dist/toast.js.map +1 -0
  939. package/dist/tooltip.cjs +15 -0
  940. package/dist/tooltip.cjs.map +1 -0
  941. package/dist/tooltip.d.cts +16 -0
  942. package/dist/tooltip.d.ts +16 -0
  943. package/dist/tooltip.js +6 -0
  944. package/dist/tooltip.js.map +1 -0
  945. package/dist/tree-nav.cjs +17 -0
  946. package/dist/tree-nav.cjs.map +1 -0
  947. package/dist/tree-nav.d.cts +114 -0
  948. package/dist/tree-nav.d.ts +114 -0
  949. package/dist/tree-nav.js +4 -0
  950. package/dist/tree-nav.js.map +1 -0
  951. package/dist/types-8Sv0rCjw.d.cts +58 -0
  952. package/dist/types-8Sv0rCjw.d.ts +58 -0
  953. package/dist/video-viewer.cjs +13 -0
  954. package/dist/video-viewer.cjs.map +1 -0
  955. package/dist/video-viewer.d.cts +14 -0
  956. package/dist/video-viewer.d.ts +14 -0
  957. package/dist/video-viewer.js +4 -0
  958. package/dist/video-viewer.js.map +1 -0
  959. package/package.json +855 -5
@@ -0,0 +1,122 @@
1
+ import { DisplayValue } from './chunk-K7JGOQJG.js';
2
+ import { Field } from './chunk-3DJGPNUI.js';
3
+ import { resolveOption, dirtyRingClasses } from './chunk-GFYSELJF.js';
4
+ import { useInlineEdit } from './chunk-OL53XYHF.js';
5
+ import { useFieldMode } from './chunk-NRXK42LO.js';
6
+ import { useControllableState } from './chunk-6FQGMVF2.js';
7
+ import { cn } from './chunk-DSUHZO6T.js';
8
+ import { useId } from 'react';
9
+ import { jsx, jsxs } from 'react/jsx-runtime';
10
+
11
+ function RadioGroup({
12
+ size = "md",
13
+ dirty,
14
+ error,
15
+ label,
16
+ description,
17
+ required,
18
+ disabled,
19
+ className,
20
+ name,
21
+ list,
22
+ value: controlledValue,
23
+ defaultValue,
24
+ onValueChange,
25
+ orientation = "vertical",
26
+ mode,
27
+ ...rest
28
+ }) {
29
+ const groupId = useId();
30
+ const radioName = name ?? groupId;
31
+ const resolvedMode = useFieldMode(mode);
32
+ const { showControl, interactive, enterEdit, exitEdit } = useInlineEdit(resolvedMode, disabled);
33
+ const [value, setValue] = useControllableState(
34
+ controlledValue,
35
+ defaultValue,
36
+ onValueChange
37
+ );
38
+ const sizeClasses = {
39
+ xs: "h-3.5 w-3.5",
40
+ sm: "h-4 w-4",
41
+ md: "h-[18px] w-[18px]",
42
+ lg: "h-5 w-5",
43
+ xl: "h-6 w-6"
44
+ }[size];
45
+ const selectedIndex = list.map(resolveOption).findIndex((o) => o.value === value);
46
+ const content = !showControl ? /* @__PURE__ */ jsx(DisplayValue, { size, interactive, onActivate: enterEdit, children: list.map(resolveOption).find((o) => o.value === value)?.label }) : /* @__PURE__ */ jsx(
47
+ "div",
48
+ {
49
+ ...rest,
50
+ "data-react-fancy-radio-group": "",
51
+ role: "radiogroup",
52
+ onBlur: (e) => {
53
+ if (interactive && !e.currentTarget.contains(e.relatedTarget)) exitEdit();
54
+ },
55
+ className: cn(
56
+ "flex gap-3",
57
+ orientation === "vertical" ? "flex-col" : "flex-row flex-wrap",
58
+ className
59
+ ),
60
+ children: list.map((option, index) => {
61
+ const resolved = resolveOption(option);
62
+ const optionId = `${groupId}-${index}`;
63
+ const isSelected = value === resolved.value;
64
+ const shouldAutoFocus = interactive && (selectedIndex === -1 ? index === 0 : isSelected);
65
+ return /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2", children: [
66
+ /* @__PURE__ */ jsx(
67
+ "input",
68
+ {
69
+ id: optionId,
70
+ type: "radio",
71
+ name: radioName,
72
+ value: String(resolved.value),
73
+ checked: isSelected,
74
+ disabled: disabled || resolved.disabled,
75
+ autoFocus: shouldAutoFocus,
76
+ onChange: () => setValue(resolved.value),
77
+ className: cn(
78
+ sizeClasses,
79
+ "cursor-pointer border border-zinc-300 bg-white text-blue-600 transition-[border-color,box-shadow] duration-150 focus:ring-2 focus:ring-blue-500/40 focus:ring-offset-0 disabled:cursor-not-allowed disabled:opacity-50 dark:border-zinc-700 dark:bg-[#1e1e24]",
80
+ dirtyRingClasses(dirty),
81
+ error && "border-red-500"
82
+ )
83
+ }
84
+ ),
85
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col", children: [
86
+ /* @__PURE__ */ jsx(
87
+ "label",
88
+ {
89
+ htmlFor: optionId,
90
+ className: cn(
91
+ "cursor-pointer text-sm text-zinc-700 dark:text-zinc-100",
92
+ (disabled || resolved.disabled) && "cursor-not-allowed opacity-50"
93
+ ),
94
+ children: resolved.label
95
+ }
96
+ ),
97
+ resolved.description && /* @__PURE__ */ jsx("span", { className: "text-xs text-zinc-500 dark:text-zinc-400", children: resolved.description })
98
+ ] })
99
+ ] }, optionId);
100
+ })
101
+ }
102
+ );
103
+ if (label || error || description) {
104
+ return /* @__PURE__ */ jsx(
105
+ Field,
106
+ {
107
+ label,
108
+ description,
109
+ error,
110
+ required,
111
+ size,
112
+ children: content
113
+ }
114
+ );
115
+ }
116
+ return content;
117
+ }
118
+ RadioGroup.displayName = "RadioGroup";
119
+
120
+ export { RadioGroup };
121
+ //# sourceMappingURL=chunk-JYKZKSZJ.js.map
122
+ //# sourceMappingURL=chunk-JYKZKSZJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/inputs/RadioGroup/RadioGroup.tsx"],"names":[],"mappings":"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","file":"chunk-JYKZKSZJ.js","sourcesContent":["import { useId } from \"react\";\nimport { cn } from \"../../../utils/cn\";\nimport { useControllableState } from \"../../../hooks/use-controllable-state\";\nimport { Field } from \"../Field\";\nimport { useFieldMode } from \"../mode/FieldMode.context\";\nimport { DisplayValue } from \"../mode/DisplayValue\";\nimport { useInlineEdit } from \"../mode/useInlineEdit\";\nimport { dirtyRingClasses, resolveOption } from \"../inputs.utils\";\nimport type { RadioGroupProps } from \"./RadioGroup.types\";\n\nexport function RadioGroup<V = string>({\n size = \"md\",\n dirty,\n error,\n label,\n description,\n required,\n disabled,\n className,\n name,\n list,\n value: controlledValue,\n defaultValue,\n onValueChange,\n orientation = \"vertical\",\n mode,\n ...rest\n}: RadioGroupProps<V>) {\n const groupId = useId();\n const radioName = name ?? groupId;\n const resolvedMode = useFieldMode(mode);\n const { showControl, interactive, enterEdit, exitEdit } = useInlineEdit(resolvedMode, disabled);\n const [value, setValue] = useControllableState(\n controlledValue,\n defaultValue as V,\n onValueChange,\n );\n\n const sizeClasses = {\n xs: \"h-3.5 w-3.5\",\n sm: \"h-4 w-4\",\n md: \"h-[18px] w-[18px]\",\n lg: \"h-5 w-5\",\n xl: \"h-6 w-6\",\n }[size];\n\n const selectedIndex = list.map(resolveOption).findIndex((o) => o.value === value);\n\n const content = !showControl ? (\n <DisplayValue size={size} interactive={interactive} onActivate={enterEdit}>\n {list.map(resolveOption).find((o) => o.value === value)?.label}\n </DisplayValue>\n ) : (\n <div\n {...rest}\n data-react-fancy-radio-group=\"\"\n role=\"radiogroup\"\n onBlur={(e) => {\n if (interactive && !e.currentTarget.contains(e.relatedTarget as Node)) exitEdit();\n }}\n className={cn(\n \"flex gap-3\",\n orientation === \"vertical\" ? \"flex-col\" : \"flex-row flex-wrap\",\n className,\n )}\n >\n {list.map((option, index) => {\n const resolved = resolveOption(option);\n const optionId = `${groupId}-${index}`;\n const isSelected = value === resolved.value;\n // Focus the selected radio on entering edit (or the first if none).\n const shouldAutoFocus =\n interactive && (selectedIndex === -1 ? index === 0 : isSelected);\n\n return (\n <div key={optionId} className=\"flex items-start gap-2\">\n <input\n id={optionId}\n type=\"radio\"\n name={radioName}\n value={String(resolved.value)}\n checked={isSelected}\n disabled={disabled || resolved.disabled}\n autoFocus={shouldAutoFocus}\n onChange={() => setValue(resolved.value)}\n className={cn(\n sizeClasses,\n \"cursor-pointer border border-zinc-300 bg-white text-blue-600 transition-[border-color,box-shadow] duration-150 focus:ring-2 focus:ring-blue-500/40 focus:ring-offset-0 disabled:cursor-not-allowed disabled:opacity-50 dark:border-zinc-700 dark:bg-[#1e1e24]\",\n dirtyRingClasses(dirty),\n error && \"border-red-500\",\n )}\n />\n <div className=\"flex flex-col\">\n <label\n htmlFor={optionId}\n className={cn(\n \"cursor-pointer text-sm text-zinc-700 dark:text-zinc-100\",\n (disabled || resolved.disabled) &&\n \"cursor-not-allowed opacity-50\",\n )}\n >\n {resolved.label}\n </label>\n {resolved.description && (\n <span className=\"text-xs text-zinc-500 dark:text-zinc-400\">\n {resolved.description}\n </span>\n )}\n </div>\n </div>\n );\n })}\n </div>\n );\n\n if (label || error || description) {\n return (\n <Field\n label={label}\n description={description}\n error={error}\n required={required}\n size={size}\n >\n {content}\n </Field>\n );\n }\n\n return content;\n}\n\nRadioGroup.displayName = \"RadioGroup\";\n"]}
@@ -0,0 +1,321 @@
1
+ import { Tooltip } from './chunk-E4LFD44D.js';
2
+ import { Button } from './chunk-WEGL4S52.js';
3
+ import { useState, useRef, useMemo, useEffect } from 'react';
4
+ import { jsxs, jsx } from 'react/jsx-runtime';
5
+
6
+ var DEFAULT_MENTION_COLOR = {
7
+ agent: "#a855f7",
8
+ file: "#10b981",
9
+ person: "#3b82f6"
10
+ };
11
+ function PromptInput({
12
+ budgetTokens,
13
+ commands = [],
14
+ mentions = [],
15
+ showHint = true,
16
+ onSubmit,
17
+ placeholder = "Ask anything. Type / for commands, @ for mentions. \u2318/Ctrl+Enter to send.",
18
+ charsPerToken = 4,
19
+ mentionColor,
20
+ maxHeight = 280,
21
+ aboveInput
22
+ }) {
23
+ const [text, setText] = useState("");
24
+ const [attachments, setAttachments] = useState([]);
25
+ const [picker, setPicker] = useState(null);
26
+ const taRef = useRef(null);
27
+ const fileRef = useRef(null);
28
+ const [dragOver, setDragOver] = useState(false);
29
+ const colors = mentionColor ?? DEFAULT_MENTION_COLOR;
30
+ const tokens = useMemo(
31
+ () => Math.ceil(text.length / Math.max(1, charsPerToken)),
32
+ [text, charsPerToken]
33
+ );
34
+ const ratio = Math.min(1, tokens / budgetTokens);
35
+ const meterColor = ratio < 0.6 ? "#10b981" : ratio < 0.85 ? "#f59e0b" : "#ef4444";
36
+ const filteredCmds = useMemo(
37
+ () => picker?.kind === "cmd" ? commands.filter(
38
+ (c) => c.name.slice(1).toLowerCase().startsWith(picker.query.toLowerCase())
39
+ ) : [],
40
+ [picker, commands]
41
+ );
42
+ const filteredMentions = useMemo(
43
+ () => picker?.kind === "mention" ? mentions.filter(
44
+ (m) => m.name.toLowerCase().includes(picker.query.toLowerCase())
45
+ ) : [],
46
+ [picker, mentions]
47
+ );
48
+ const items = picker?.kind === "cmd" ? filteredCmds : picker?.kind === "mention" ? filteredMentions : [];
49
+ useEffect(() => {
50
+ const ta = taRef.current;
51
+ if (!ta) return;
52
+ ta.style.height = "auto";
53
+ ta.style.height = Math.min(maxHeight, ta.scrollHeight) + "px";
54
+ }, [text, maxHeight]);
55
+ const updateText = (next, caret) => {
56
+ setText(next);
57
+ let triggerIdx = -1;
58
+ let triggerKind = null;
59
+ for (let i = caret - 1; i >= 0; i--) {
60
+ const ch = next[i];
61
+ if (ch === "@") {
62
+ triggerKind = "mention";
63
+ triggerIdx = i;
64
+ break;
65
+ }
66
+ if (ch === "/" && (i === 0 || /\s/.test(next[i - 1] ?? ""))) {
67
+ triggerKind = "cmd";
68
+ triggerIdx = i;
69
+ break;
70
+ }
71
+ if (/\s/.test(ch)) break;
72
+ }
73
+ if (triggerKind !== null && triggerIdx >= 0) {
74
+ const query = next.slice(triggerIdx + 1, caret);
75
+ setPicker({ kind: triggerKind, start: triggerIdx, query, cursor: 0 });
76
+ } else {
77
+ setPicker(null);
78
+ }
79
+ };
80
+ const insertChoice = (i) => {
81
+ if (!picker || items.length === 0) return;
82
+ const choice = items[i] ?? items[0];
83
+ const insert = picker.kind === "cmd" ? choice.name + " " : `@${choice.id} `;
84
+ const before = text.slice(0, picker.start);
85
+ const after = text.slice(picker.start + 1 + picker.query.length);
86
+ const next = before + insert + after;
87
+ setText(next);
88
+ setPicker(null);
89
+ requestAnimationFrame(() => {
90
+ const ta = taRef.current;
91
+ if (!ta) return;
92
+ ta.focus();
93
+ const pos = before.length + insert.length;
94
+ ta.setSelectionRange(pos, pos);
95
+ });
96
+ };
97
+ const submit = () => {
98
+ if (!text.trim() && attachments.length === 0) return;
99
+ onSubmit(text, attachments);
100
+ setText("");
101
+ setAttachments([]);
102
+ setPicker(null);
103
+ };
104
+ const onKeyDown = (e) => {
105
+ if (picker) {
106
+ if (e.key === "ArrowDown") {
107
+ e.preventDefault();
108
+ setPicker(
109
+ (p) => p ? { ...p, cursor: Math.min(items.length - 1, p.cursor + 1) } : p
110
+ );
111
+ return;
112
+ }
113
+ if (e.key === "ArrowUp") {
114
+ e.preventDefault();
115
+ setPicker((p) => p ? { ...p, cursor: Math.max(0, p.cursor - 1) } : p);
116
+ return;
117
+ }
118
+ if (e.key === "Enter" && !e.metaKey && !e.ctrlKey && items.length > 0) {
119
+ e.preventDefault();
120
+ insertChoice(picker.cursor);
121
+ return;
122
+ }
123
+ if (e.key === "Escape") {
124
+ e.preventDefault();
125
+ setPicker(null);
126
+ return;
127
+ }
128
+ }
129
+ if (e.key === "Enter" && (e.metaKey || e.ctrlKey)) {
130
+ e.preventDefault();
131
+ submit();
132
+ }
133
+ };
134
+ const attach = (list) => {
135
+ const files = Array.from(list ?? []);
136
+ if (files.length === 0) return;
137
+ setAttachments((cur) => [
138
+ ...cur,
139
+ ...files.map((f) => ({
140
+ id: crypto.randomUUID(),
141
+ name: f.name,
142
+ bytes: f.size,
143
+ file: f,
144
+ type: f.type
145
+ }))
146
+ ]);
147
+ };
148
+ const onDrop = (e) => {
149
+ e.preventDefault();
150
+ setDragOver(false);
151
+ attach(e.dataTransfer.files);
152
+ };
153
+ return /* @__PURE__ */ jsxs(
154
+ "div",
155
+ {
156
+ onDragOver: (e) => {
157
+ e.preventDefault();
158
+ setDragOver(true);
159
+ },
160
+ onDragLeave: () => setDragOver(false),
161
+ onDrop,
162
+ className: `relative rounded-md border transition ${dragOver ? "border-violet-400 bg-violet-50/50 dark:border-violet-600 dark:bg-violet-950/30" : "border-zinc-200 dark:border-zinc-800"} bg-white dark:bg-zinc-900`,
163
+ children: [
164
+ aboveInput && /* @__PURE__ */ jsx("div", { className: "border-b border-zinc-200 dark:border-zinc-800", children: aboveInput }),
165
+ attachments.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1.5 border-b border-zinc-200 px-3 py-2 dark:border-zinc-800", children: attachments.map((a) => /* @__PURE__ */ jsxs(
166
+ "span",
167
+ {
168
+ className: "inline-flex items-center gap-1.5 rounded-md bg-zinc-100 px-2 py-0.5 text-[11px] dark:bg-zinc-800",
169
+ children: [
170
+ /* @__PURE__ */ jsx("span", { children: "\u{1F4CE}" }),
171
+ /* @__PURE__ */ jsx("span", { className: "font-mono", children: a.name }),
172
+ /* @__PURE__ */ jsx("span", { className: "text-zinc-400", children: fmtSize(a.bytes) }),
173
+ /* @__PURE__ */ jsx(
174
+ "button",
175
+ {
176
+ onClick: () => setAttachments((cur) => cur.filter((x) => x.id !== a.id)),
177
+ className: "opacity-50 hover:opacity-100",
178
+ "aria-label": "Remove attachment",
179
+ children: "\xD7"
180
+ }
181
+ )
182
+ ]
183
+ },
184
+ a.id
185
+ )) }),
186
+ /* @__PURE__ */ jsxs("div", { className: "relative", children: [
187
+ /* @__PURE__ */ jsx(
188
+ "textarea",
189
+ {
190
+ ref: taRef,
191
+ value: text,
192
+ onChange: (e) => updateText(e.target.value, e.target.selectionStart),
193
+ onKeyDown,
194
+ placeholder,
195
+ spellCheck: false,
196
+ className: "block w-full resize-none bg-transparent px-3 py-2.5 text-[14px] leading-relaxed outline-none placeholder:text-zinc-400",
197
+ rows: 3
198
+ }
199
+ ),
200
+ picker && items.length > 0 && /* @__PURE__ */ jsxs("div", { className: "absolute bottom-full left-2 z-10 mb-1 w-72 overflow-hidden rounded-md border border-zinc-200 bg-white shadow-lg dark:border-zinc-700 dark:bg-zinc-900", children: [
201
+ /* @__PURE__ */ jsxs("div", { className: "border-b border-zinc-100 bg-zinc-50 px-2 py-1 text-[10px] font-semibold uppercase tracking-wider text-zinc-500 dark:border-zinc-800 dark:bg-zinc-950", children: [
202
+ picker.kind === "cmd" ? "Commands" : "Mention",
203
+ " \xB7 ",
204
+ items.length
205
+ ] }),
206
+ /* @__PURE__ */ jsx("ul", { className: "max-h-56 overflow-y-auto", children: items.map((item, i) => {
207
+ const active = i === picker.cursor;
208
+ if (picker.kind === "cmd") {
209
+ const c = item;
210
+ return /* @__PURE__ */ jsxs(
211
+ "li",
212
+ {
213
+ onMouseDown: (e) => {
214
+ e.preventDefault();
215
+ insertChoice(i);
216
+ },
217
+ onMouseEnter: () => setPicker((p) => p ? { ...p, cursor: i } : p),
218
+ className: `cursor-pointer px-2 py-1.5 text-[12px] ${active ? "bg-violet-100 dark:bg-violet-900/30" : "hover:bg-zinc-50 dark:hover:bg-zinc-800"}`,
219
+ children: [
220
+ /* @__PURE__ */ jsx("div", { className: "font-mono font-medium text-violet-700 dark:text-violet-300", children: c.name }),
221
+ /* @__PURE__ */ jsx("div", { className: "text-[11px] text-zinc-500", children: c.hint })
222
+ ]
223
+ },
224
+ c.name
225
+ );
226
+ }
227
+ const m = item;
228
+ return /* @__PURE__ */ jsxs(
229
+ "li",
230
+ {
231
+ onMouseDown: (e) => {
232
+ e.preventDefault();
233
+ insertChoice(i);
234
+ },
235
+ onMouseEnter: () => setPicker((p) => p ? { ...p, cursor: i } : p),
236
+ className: `flex cursor-pointer items-center gap-2 px-2 py-1.5 text-[12px] ${active ? "bg-violet-100 dark:bg-violet-900/30" : "hover:bg-zinc-50 dark:hover:bg-zinc-800"}`,
237
+ children: [
238
+ /* @__PURE__ */ jsx(
239
+ "span",
240
+ {
241
+ className: "h-2 w-2 rounded-full",
242
+ style: { backgroundColor: colors[m.kind] ?? "#71717a" }
243
+ }
244
+ ),
245
+ /* @__PURE__ */ jsx("span", { className: "font-medium", children: m.name }),
246
+ /* @__PURE__ */ jsx("span", { className: "ml-auto text-[10px] uppercase tracking-wider text-zinc-400", children: m.kind })
247
+ ]
248
+ },
249
+ m.id
250
+ );
251
+ }) })
252
+ ] })
253
+ ] }),
254
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 border-t border-zinc-200 bg-zinc-50/60 px-3 py-2 dark:border-zinc-800 dark:bg-zinc-900/40", children: [
255
+ /* @__PURE__ */ jsx(Tooltip, { content: "Drop files here, or click", children: /* @__PURE__ */ jsx(
256
+ Button,
257
+ {
258
+ variant: "ghost",
259
+ size: "sm",
260
+ className: "shrink-0",
261
+ onClick: () => fileRef.current?.click(),
262
+ children: "\u{1F4CE} attach"
263
+ }
264
+ ) }),
265
+ /* @__PURE__ */ jsx(
266
+ "input",
267
+ {
268
+ ref: fileRef,
269
+ type: "file",
270
+ multiple: true,
271
+ className: "hidden",
272
+ onChange: (e) => {
273
+ attach(e.target.files);
274
+ e.target.value = "";
275
+ }
276
+ }
277
+ ),
278
+ /* @__PURE__ */ jsxs("div", { className: "ml-2 flex min-w-0 items-center gap-1.5 overflow-hidden", children: [
279
+ /* @__PURE__ */ jsx("div", { className: "h-1.5 w-24 shrink overflow-hidden rounded-full bg-zinc-200 dark:bg-zinc-700", children: /* @__PURE__ */ jsx(
280
+ "div",
281
+ {
282
+ className: "h-full rounded-full transition-all",
283
+ style: { width: `${ratio * 100}%`, backgroundColor: meterColor }
284
+ }
285
+ ) }),
286
+ /* @__PURE__ */ jsxs("span", { className: "font-mono text-[11px]", style: { color: meterColor }, children: [
287
+ fmtTokens(tokens),
288
+ " / ",
289
+ fmtTokens(budgetTokens)
290
+ ] })
291
+ ] }),
292
+ /* @__PURE__ */ jsxs("div", { className: "ml-auto flex shrink-0 items-center gap-2", children: [
293
+ showHint && /* @__PURE__ */ jsxs("span", { className: "hidden text-[10px] text-zinc-500 sm:inline", children: [
294
+ /* @__PURE__ */ jsx("kbd", { className: "rounded border border-zinc-300 bg-zinc-50 px-1 py-0.5 font-mono text-[9px] text-zinc-700 dark:border-zinc-700 dark:bg-zinc-800 dark:text-zinc-300", children: "\u2318" }),
295
+ " ",
296
+ "+",
297
+ " ",
298
+ /* @__PURE__ */ jsx("kbd", { className: "rounded border border-zinc-300 bg-zinc-50 px-1 py-0.5 font-mono text-[9px] text-zinc-700 dark:border-zinc-700 dark:bg-zinc-800 dark:text-zinc-300", children: "Enter" }),
299
+ " ",
300
+ "to send"
301
+ ] }),
302
+ /* @__PURE__ */ jsx(Button, { color: "violet", size: "sm", className: "shrink-0", onClick: submit, children: "send \u2192" })
303
+ ] })
304
+ ] })
305
+ ]
306
+ }
307
+ );
308
+ }
309
+ function fmtTokens(n) {
310
+ if (n < 1e3) return `${n}`;
311
+ return `${(n / 1e3).toFixed(1)}k`;
312
+ }
313
+ function fmtSize(b) {
314
+ if (b < 1024) return `${b} B`;
315
+ if (b < 1024 * 1024) return `${(b / 1024).toFixed(0)} KB`;
316
+ return `${(b / 1024 / 1024).toFixed(1)} MB`;
317
+ }
318
+
319
+ export { PromptInput };
320
+ //# sourceMappingURL=chunk-K2DZEYBF.js.map
321
+ //# sourceMappingURL=chunk-K2DZEYBF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/PromptInput/PromptInput.tsx"],"names":[],"mappings":"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","file":"chunk-K2DZEYBF.js","sourcesContent":["import { useEffect, useMemo, useRef, useState, type ReactNode } from \"react\";\nimport { Button } from \"../Button\";\nimport { Tooltip } from \"../Tooltip\";\n\n/**\n * PromptInput — the chat composer every AI app rebuilds. Auto-growing\n * multi-line input with:\n *\n * • slash-command picker (`/` triggers a filtered command palette,\n * ↑/↓ navigate, Enter inserts)\n * • mention picker (`@` triggers, filtered against `mentions`)\n * • drop-to-attach (drag files anywhere on the surface) + chip bar\n * • submit on ⌘/Ctrl+Enter (plain Enter inserts a newline)\n * • live token-budget meter (green → amber → red as headroom drops)\n *\n * Wire it up:\n *\n * <PromptInput\n * budgetTokens={32000}\n * commands={[{ name: \"/rewrite\", hint: \"rewrite the selection\" }]}\n * mentions={[{ id: \"ada\", name: \"Ada\", kind: \"person\" }]}\n * onSubmit={(text, attachments) => sendToAgent(text, attachments)}\n * />\n */\nexport type PromptCmd = { name: string; hint: string };\nexport type PromptMention = {\n id: string;\n name: string;\n kind: \"agent\" | \"file\" | \"person\" | string;\n};\nexport type PromptAttachment = {\n id: string;\n name: string;\n bytes: number;\n /**\n * The file the user actually attached.\n *\n * Optional because an attachment restored from a server has no File — but for\n * anything the user dropped or picked it is always present. Without it a host\n * can render a chip and nothing else: no POST, no FormData, no send-to-model.\n */\n file?: File;\n /** MIME type. Hosts branch on this to decide whether a file can be sent as-is. */\n type?: string;\n};\n\nexport interface PromptInputProps {\n /** Token budget for the meter. */\n budgetTokens: number;\n /** Slash-commands. Names must start with `/`. */\n commands?: PromptCmd[];\n /** @-mentions. */\n mentions?: PromptMention[];\n /** Show the keyboard hint (\"⌘ + Enter to send\"). */\n showHint?: boolean;\n /** Called on ⌘/Ctrl+Enter or send button. */\n onSubmit: (text: string, attachments: PromptAttachment[]) => void;\n /** Placeholder text. */\n placeholder?: string;\n /** Rough estimator: chars-per-token. Defaults to 4. */\n charsPerToken?: number;\n /** Color → CSS chip mapping for mention kinds. */\n mentionColor?: Record<string, string>;\n /** Optional max textarea height in px. Defaults to 280. */\n maxHeight?: number;\n /**\n * Rendered INSIDE the rounded shell, ABOVE the attachments bar and\n * textarea. Use this slot for a drawer of tools/files/prompts/etc. so\n * the drawer and composer share one visual panel. See {@link ChatDrawer}.\n */\n aboveInput?: ReactNode;\n}\n\nconst DEFAULT_MENTION_COLOR: Record<string, string> = {\n agent: \"#a855f7\",\n file: \"#10b981\",\n person: \"#3b82f6\",\n};\n\nexport function PromptInput({\n budgetTokens,\n commands = [],\n mentions = [],\n showHint = true,\n onSubmit,\n placeholder = \"Ask anything. Type / for commands, @ for mentions. ⌘/Ctrl+Enter to send.\",\n charsPerToken = 4,\n mentionColor,\n maxHeight = 280,\n aboveInput,\n}: PromptInputProps) {\n const [text, setText] = useState(\"\");\n const [attachments, setAttachments] = useState<PromptAttachment[]>([]);\n const [picker, setPicker] = useState<null | {\n kind: \"cmd\" | \"mention\";\n start: number;\n query: string;\n cursor: number;\n }>(null);\n const taRef = useRef<HTMLTextAreaElement>(null);\n const fileRef = useRef<HTMLInputElement>(null);\n const [dragOver, setDragOver] = useState(false);\n\n const colors = mentionColor ?? DEFAULT_MENTION_COLOR;\n\n const tokens = useMemo(\n () => Math.ceil(text.length / Math.max(1, charsPerToken)),\n [text, charsPerToken],\n );\n const ratio = Math.min(1, tokens / budgetTokens);\n const meterColor = ratio < 0.6 ? \"#10b981\" : ratio < 0.85 ? \"#f59e0b\" : \"#ef4444\";\n\n const filteredCmds = useMemo(\n () =>\n picker?.kind === \"cmd\"\n ? commands.filter((c) =>\n c.name.slice(1).toLowerCase().startsWith(picker.query.toLowerCase()),\n )\n : [],\n [picker, commands],\n );\n const filteredMentions = useMemo(\n () =>\n picker?.kind === \"mention\"\n ? mentions.filter((m) =>\n m.name.toLowerCase().includes(picker.query.toLowerCase()),\n )\n : [],\n [picker, mentions],\n );\n const items: Array<PromptCmd | PromptMention> =\n picker?.kind === \"cmd\"\n ? filteredCmds\n : picker?.kind === \"mention\"\n ? filteredMentions\n : [];\n\n useEffect(() => {\n const ta = taRef.current;\n if (!ta) return;\n ta.style.height = \"auto\";\n ta.style.height = Math.min(maxHeight, ta.scrollHeight) + \"px\";\n }, [text, maxHeight]);\n\n const updateText = (next: string, caret: number) => {\n setText(next);\n let triggerIdx = -1;\n let triggerKind: \"cmd\" | \"mention\" | null = null;\n for (let i = caret - 1; i >= 0; i--) {\n const ch = next[i];\n if (ch === \"@\") {\n triggerKind = \"mention\";\n triggerIdx = i;\n break;\n }\n if (ch === \"/\" && (i === 0 || /\\s/.test(next[i - 1] ?? \"\"))) {\n triggerKind = \"cmd\";\n triggerIdx = i;\n break;\n }\n if (/\\s/.test(ch)) break;\n }\n if (triggerKind !== null && triggerIdx >= 0) {\n const query = next.slice(triggerIdx + 1, caret);\n setPicker({ kind: triggerKind, start: triggerIdx, query, cursor: 0 });\n } else {\n setPicker(null);\n }\n };\n\n const insertChoice = (i: number) => {\n if (!picker || items.length === 0) return;\n const choice = items[i] ?? items[0];\n const insert =\n picker.kind === \"cmd\"\n ? (choice as PromptCmd).name + \" \"\n : `@${(choice as PromptMention).id} `;\n const before = text.slice(0, picker.start);\n const after = text.slice(picker.start + 1 + picker.query.length);\n const next = before + insert + after;\n setText(next);\n setPicker(null);\n requestAnimationFrame(() => {\n const ta = taRef.current;\n if (!ta) return;\n ta.focus();\n const pos = before.length + insert.length;\n ta.setSelectionRange(pos, pos);\n });\n };\n\n const submit = () => {\n if (!text.trim() && attachments.length === 0) return;\n onSubmit(text, attachments);\n setText(\"\");\n setAttachments([]);\n setPicker(null);\n };\n\n const onKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (picker) {\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n setPicker((p) =>\n p ? { ...p, cursor: Math.min(items.length - 1, p.cursor + 1) } : p,\n );\n return;\n }\n if (e.key === \"ArrowUp\") {\n e.preventDefault();\n setPicker((p) => (p ? { ...p, cursor: Math.max(0, p.cursor - 1) } : p));\n return;\n }\n if (e.key === \"Enter\" && !e.metaKey && !e.ctrlKey && items.length > 0) {\n e.preventDefault();\n insertChoice(picker.cursor);\n return;\n }\n if (e.key === \"Escape\") {\n e.preventDefault();\n setPicker(null);\n return;\n }\n }\n if (e.key === \"Enter\" && (e.metaKey || e.ctrlKey)) {\n e.preventDefault();\n submit();\n }\n };\n\n /**\n * Build attachments from a FileList, KEEPING the File.\n *\n * Shared by the drop handler and the picker so the two cannot drift — the\n * picker being a second, subtly different copy of this is exactly how one of\n * them would end up dropping the File again.\n */\n const attach = (list: FileList | File[] | null) => {\n const files = Array.from(list ?? []);\n if (files.length === 0) return;\n\n setAttachments((cur) => [\n ...cur,\n ...files.map((f) => ({\n id: crypto.randomUUID(),\n name: f.name,\n bytes: f.size,\n file: f,\n type: f.type,\n })),\n ]);\n };\n\n const onDrop = (e: React.DragEvent<HTMLDivElement>) => {\n e.preventDefault();\n setDragOver(false);\n attach(e.dataTransfer.files);\n };\n\n return (\n <div\n onDragOver={(e) => {\n e.preventDefault();\n setDragOver(true);\n }}\n onDragLeave={() => setDragOver(false)}\n onDrop={onDrop}\n className={`relative rounded-md border transition ${\n dragOver\n ? \"border-violet-400 bg-violet-50/50 dark:border-violet-600 dark:bg-violet-950/30\"\n : \"border-zinc-200 dark:border-zinc-800\"\n } bg-white dark:bg-zinc-900`}\n >\n {aboveInput && (\n <div className=\"border-b border-zinc-200 dark:border-zinc-800\">\n {aboveInput}\n </div>\n )}\n {attachments.length > 0 && (\n <div className=\"flex flex-wrap gap-1.5 border-b border-zinc-200 px-3 py-2 dark:border-zinc-800\">\n {attachments.map((a) => (\n <span\n key={a.id}\n className=\"inline-flex items-center gap-1.5 rounded-md bg-zinc-100 px-2 py-0.5 text-[11px] dark:bg-zinc-800\"\n >\n <span>📎</span>\n <span className=\"font-mono\">{a.name}</span>\n <span className=\"text-zinc-400\">{fmtSize(a.bytes)}</span>\n <button\n onClick={() =>\n setAttachments((cur) => cur.filter((x) => x.id !== a.id))\n }\n className=\"opacity-50 hover:opacity-100\"\n aria-label=\"Remove attachment\"\n >\n ×\n </button>\n </span>\n ))}\n </div>\n )}\n\n <div className=\"relative\">\n <textarea\n ref={taRef}\n value={text}\n onChange={(e) => updateText(e.target.value, e.target.selectionStart)}\n onKeyDown={onKeyDown}\n placeholder={placeholder}\n spellCheck={false}\n className=\"block w-full resize-none bg-transparent px-3 py-2.5 text-[14px] leading-relaxed outline-none placeholder:text-zinc-400\"\n rows={3}\n />\n\n {picker && items.length > 0 && (\n <div className=\"absolute bottom-full left-2 z-10 mb-1 w-72 overflow-hidden rounded-md border border-zinc-200 bg-white shadow-lg dark:border-zinc-700 dark:bg-zinc-900\">\n <div className=\"border-b border-zinc-100 bg-zinc-50 px-2 py-1 text-[10px] font-semibold uppercase tracking-wider text-zinc-500 dark:border-zinc-800 dark:bg-zinc-950\">\n {picker.kind === \"cmd\" ? \"Commands\" : \"Mention\"} · {items.length}\n </div>\n <ul className=\"max-h-56 overflow-y-auto\">\n {items.map((item, i) => {\n const active = i === picker.cursor;\n if (picker.kind === \"cmd\") {\n const c = item as PromptCmd;\n return (\n <li\n key={c.name}\n onMouseDown={(e) => {\n e.preventDefault();\n insertChoice(i);\n }}\n onMouseEnter={() =>\n setPicker((p) => (p ? { ...p, cursor: i } : p))\n }\n className={`cursor-pointer px-2 py-1.5 text-[12px] ${\n active\n ? \"bg-violet-100 dark:bg-violet-900/30\"\n : \"hover:bg-zinc-50 dark:hover:bg-zinc-800\"\n }`}\n >\n <div className=\"font-mono font-medium text-violet-700 dark:text-violet-300\">\n {c.name}\n </div>\n <div className=\"text-[11px] text-zinc-500\">{c.hint}</div>\n </li>\n );\n }\n const m = item as PromptMention;\n return (\n <li\n key={m.id}\n onMouseDown={(e) => {\n e.preventDefault();\n insertChoice(i);\n }}\n onMouseEnter={() =>\n setPicker((p) => (p ? { ...p, cursor: i } : p))\n }\n className={`flex cursor-pointer items-center gap-2 px-2 py-1.5 text-[12px] ${\n active\n ? \"bg-violet-100 dark:bg-violet-900/30\"\n : \"hover:bg-zinc-50 dark:hover:bg-zinc-800\"\n }`}\n >\n <span\n className=\"h-2 w-2 rounded-full\"\n style={{ backgroundColor: colors[m.kind] ?? \"#71717a\" }}\n />\n <span className=\"font-medium\">{m.name}</span>\n <span className=\"ml-auto text-[10px] uppercase tracking-wider text-zinc-400\">\n {m.kind}\n </span>\n </li>\n );\n })}\n </ul>\n </div>\n )}\n </div>\n\n <div className=\"flex items-center gap-2 border-t border-zinc-200 bg-zinc-50/60 px-3 py-2 dark:border-zinc-800 dark:bg-zinc-900/40\">\n <Tooltip content=\"Drop files here, or click\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"shrink-0\"\n onClick={() => fileRef.current?.click()}\n >\n 📎 attach\n </Button>\n </Tooltip>\n {/*\n The button above shipped with a no-op onClick and a tooltip reading\n \"Drop files here, or click\" — an affordance that lied. Drop-only also\n meant keyboard and touch users could not attach at all.\n */}\n <input\n ref={fileRef}\n type=\"file\"\n multiple\n className=\"hidden\"\n onChange={(e) => {\n attach(e.target.files);\n // Let the same file be picked twice in a row.\n e.target.value = \"\";\n }}\n />\n <div className=\"ml-2 flex min-w-0 items-center gap-1.5 overflow-hidden\">\n <div className=\"h-1.5 w-24 shrink overflow-hidden rounded-full bg-zinc-200 dark:bg-zinc-700\">\n <div\n className=\"h-full rounded-full transition-all\"\n style={{ width: `${ratio * 100}%`, backgroundColor: meterColor }}\n />\n </div>\n <span className=\"font-mono text-[11px]\" style={{ color: meterColor }}>\n {fmtTokens(tokens)} / {fmtTokens(budgetTokens)}\n </span>\n </div>\n <div className=\"ml-auto flex shrink-0 items-center gap-2\">\n {showHint && (\n <span className=\"hidden text-[10px] text-zinc-500 sm:inline\">\n <kbd className=\"rounded border border-zinc-300 bg-zinc-50 px-1 py-0.5 font-mono text-[9px] text-zinc-700 dark:border-zinc-700 dark:bg-zinc-800 dark:text-zinc-300\">\n ⌘\n </kbd>{\" \"}\n +{\" \"}\n <kbd className=\"rounded border border-zinc-300 bg-zinc-50 px-1 py-0.5 font-mono text-[9px] text-zinc-700 dark:border-zinc-700 dark:bg-zinc-800 dark:text-zinc-300\">\n Enter\n </kbd>{\" \"}\n to send\n </span>\n )}\n <Button color=\"violet\" size=\"sm\" className=\"shrink-0\" onClick={submit}>\n send →\n </Button>\n </div>\n </div>\n </div>\n );\n}\n\nfunction fmtTokens(n: number): string {\n if (n < 1000) return `${n}`;\n return `${(n / 1000).toFixed(1)}k`;\n}\n\nfunction fmtSize(b: number): string {\n if (b < 1024) return `${b} B`;\n if (b < 1024 * 1024) return `${(b / 1024).toFixed(0)} KB`;\n return `${(b / 1024 / 1024).toFixed(1)} MB`;\n}\n"]}
@@ -0,0 +1,55 @@
1
+ import { inputSizeClasses } from './chunk-GFYSELJF.js';
2
+ import { cn } from './chunk-DSUHZO6T.js';
3
+ import { jsxs, jsx } from 'react/jsx-runtime';
4
+
5
+ function isEmpty(value) {
6
+ return value === null || value === void 0 || value === "";
7
+ }
8
+ function DisplayValue({
9
+ children,
10
+ size = "md",
11
+ leading,
12
+ trailing,
13
+ empty = "\u2014",
14
+ interactive,
15
+ onActivate,
16
+ className
17
+ }) {
18
+ const empties = isEmpty(children);
19
+ const onKeyDown = interactive ? (e) => {
20
+ if (e.key === "Enter" || e.key === " ") {
21
+ e.preventDefault();
22
+ onActivate?.();
23
+ }
24
+ } : void 0;
25
+ return /* @__PURE__ */ jsxs(
26
+ "div",
27
+ {
28
+ "data-react-fancy-display": "",
29
+ "data-mode": "view",
30
+ role: interactive ? "button" : void 0,
31
+ tabIndex: interactive ? 0 : void 0,
32
+ title: interactive ? "Click to edit" : void 0,
33
+ onClick: interactive ? onActivate : void 0,
34
+ onKeyDown,
35
+ className: cn(
36
+ "flex w-full items-center gap-2 text-zinc-900 dark:text-zinc-100",
37
+ inputSizeClasses[size],
38
+ // Strip the editable box look — keep only the size/padding rhythm.
39
+ "border-0 bg-transparent px-0",
40
+ interactive && "-mx-2 cursor-text rounded-md px-2 outline-none transition-colors hover:bg-zinc-100 focus-visible:ring-2 focus-visible:ring-blue-500/40 dark:hover:bg-zinc-800",
41
+ empties && "text-zinc-400 dark:text-zinc-500",
42
+ className
43
+ ),
44
+ children: [
45
+ leading && /* @__PURE__ */ jsx("span", { className: "text-zinc-400 dark:text-zinc-500", children: leading }),
46
+ /* @__PURE__ */ jsx("span", { className: "min-w-0 truncate", children: empties ? empty : children }),
47
+ trailing && /* @__PURE__ */ jsx("span", { className: "text-zinc-400 dark:text-zinc-500", children: trailing })
48
+ ]
49
+ }
50
+ );
51
+ }
52
+
53
+ export { DisplayValue };
54
+ //# sourceMappingURL=chunk-K7JGOQJG.js.map
55
+ //# sourceMappingURL=chunk-K7JGOQJG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/inputs/mode/DisplayValue.tsx"],"names":[],"mappings":";;;;AAsBA,SAAS,QAAQ,KAAA,EAA2B;AAC1C,EAAA,OAAO,KAAA,KAAU,IAAA,IAAQ,KAAA,KAAU,MAAA,IAAa,KAAA,KAAU,EAAA;AAC5D;AAgBO,SAAS,YAAA,CAAa;AAAA,EAC3B,QAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP,OAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA,GAAQ,QAAA;AAAA,EACR,WAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAA,EAAsB;AACpB,EAAA,MAAM,OAAA,GAAU,QAAQ,QAAQ,CAAA;AAEhC,EAAA,MAAM,SAAA,GAAY,WAAA,GACd,CAAC,CAAA,KAAqC;AACpC,IAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,OAAA,IAAW,CAAA,CAAE,QAAQ,GAAA,EAAK;AACtC,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,UAAA,IAAa;AAAA,IACf;AAAA,EACF,CAAA,GACA,MAAA;AAEJ,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,0BAAA,EAAyB,EAAA;AAAA,MACzB,WAAA,EAAU,MAAA;AAAA,MACV,IAAA,EAAM,cAAc,QAAA,GAAW,MAAA;AAAA,MAC/B,QAAA,EAAU,cAAc,CAAA,GAAI,MAAA;AAAA,MAC5B,KAAA,EAAO,cAAc,eAAA,GAAkB,MAAA;AAAA,MACvC,OAAA,EAAS,cAAc,UAAA,GAAa,MAAA;AAAA,MACpC,SAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,iEAAA;AAAA,QACA,iBAAiB,IAAI,CAAA;AAAA;AAAA,QAErB,8BAAA;AAAA,QACA,WAAA,IACE,+JAAA;AAAA,QACF,OAAA,IAAW,kCAAA;AAAA,QACX;AAAA,OACF;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,OAAA,oBAAW,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kCAAA,EAAoC,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,4BACvE,MAAA,EAAA,EAAK,SAAA,EAAU,kBAAA,EAAoB,QAAA,EAAA,OAAA,GAAU,QAAQ,QAAA,EAAS,CAAA;AAAA,QAC9D,QAAA,oBAAY,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oCAAoC,QAAA,EAAA,QAAA,EAAS;AAAA;AAAA;AAAA,GAC5E;AAEJ","file":"chunk-K7JGOQJG.js","sourcesContent":["import type { KeyboardEvent, ReactNode } from \"react\";\nimport { cn } from \"../../../utils/cn\";\nimport type { Size } from \"../../../utils/types\";\nimport { inputSizeClasses } from \"../inputs.utils\";\n\nexport interface DisplayValueProps {\n /** The formatted value to show. Empty / null / undefined renders `empty`. */\n children?: ReactNode;\n size?: Size;\n /** Static adornment rendered before the value (mirrors an input's `leading`/`prefix`). */\n leading?: ReactNode;\n /** Static adornment rendered after the value (mirrors an input's `trailing`/`suffix`). */\n trailing?: ReactNode;\n /** Shown when the value is empty. Default `—`. */\n empty?: ReactNode;\n /** When true the value is clickable to enter edit mode (inline click-to-edit). */\n interactive?: boolean;\n /** Called when an interactive value is activated (click / Enter / Space). */\n onActivate?: () => void;\n className?: string;\n}\n\nfunction isEmpty(value: ReactNode): boolean {\n return value === null || value === undefined || value === \"\";\n}\n\n/**\n * The read-only counterpart to an `<input>`. Renders a non-interactive value\n * with the same size rhythm as the editable control (reusing\n * {@link inputSizeClasses}) but without the border / background / focus ring.\n *\n * When `interactive` (inline click-to-edit), the value becomes a focusable,\n * hoverable target that calls `onActivate` on click / Enter / Space to swap in\n * the real control. Dropped into the SAME `Field` wrapper the editable control\n * uses, so label / description / error chrome stays byte-identical between the\n * display and the editor.\n *\n * Carries `data-react-fancy-display` / `data-mode=\"view\"` stable handles for\n * agents and tests (Human+ contract).\n */\nexport function DisplayValue({\n children,\n size = \"md\",\n leading,\n trailing,\n empty = \"—\",\n interactive,\n onActivate,\n className,\n}: DisplayValueProps) {\n const empties = isEmpty(children);\n\n const onKeyDown = interactive\n ? (e: KeyboardEvent<HTMLDivElement>) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n onActivate?.();\n }\n }\n : undefined;\n\n return (\n <div\n data-react-fancy-display=\"\"\n data-mode=\"view\"\n role={interactive ? \"button\" : undefined}\n tabIndex={interactive ? 0 : undefined}\n title={interactive ? \"Click to edit\" : undefined}\n onClick={interactive ? onActivate : undefined}\n onKeyDown={onKeyDown}\n className={cn(\n \"flex w-full items-center gap-2 text-zinc-900 dark:text-zinc-100\",\n inputSizeClasses[size],\n // Strip the editable box look — keep only the size/padding rhythm.\n \"border-0 bg-transparent px-0\",\n interactive &&\n \"-mx-2 cursor-text rounded-md px-2 outline-none transition-colors hover:bg-zinc-100 focus-visible:ring-2 focus-visible:ring-blue-500/40 dark:hover:bg-zinc-800\",\n empties && \"text-zinc-400 dark:text-zinc-500\",\n className,\n )}\n >\n {leading && <span className=\"text-zinc-400 dark:text-zinc-500\">{leading}</span>}\n <span className=\"min-w-0 truncate\">{empties ? empty : children}</span>\n {trailing && <span className=\"text-zinc-400 dark:text-zinc-500\">{trailing}</span>}\n </div>\n );\n}\n"]}