@orion-ds/react 4.0.5 → 4.2.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 (444) hide show
  1. package/dist/contexts/ThemeContext.d.ts.map +1 -1
  2. package/dist/index.d.ts +2 -3
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index10.cjs +1 -1
  5. package/dist/index10.mjs +1 -1
  6. package/dist/index100.cjs +1 -1
  7. package/dist/index100.mjs +20 -40
  8. package/dist/index100.mjs.map +1 -1
  9. package/dist/index101.cjs +1 -1
  10. package/dist/index101.mjs +28 -40
  11. package/dist/index101.mjs.map +1 -1
  12. package/dist/index102.cjs +1 -1
  13. package/dist/index102.mjs +46 -33
  14. package/dist/index102.mjs.map +1 -1
  15. package/dist/index103.cjs +1 -1
  16. package/dist/index103.mjs +42 -27
  17. package/dist/index103.mjs.map +1 -1
  18. package/dist/index104.cjs +1 -1
  19. package/dist/index104.mjs +56 -30
  20. package/dist/index104.mjs.map +1 -1
  21. package/dist/index105.cjs +1 -1
  22. package/dist/index105.mjs +25 -15
  23. package/dist/index105.mjs.map +1 -1
  24. package/dist/index106.cjs +1 -1
  25. package/dist/index106.mjs +64 -52
  26. package/dist/index106.mjs.map +1 -1
  27. package/dist/index107.cjs +1 -1
  28. package/dist/index107.mjs +20 -20
  29. package/dist/index108.cjs +1 -1
  30. package/dist/index108.mjs +45 -36
  31. package/dist/index108.mjs.map +1 -1
  32. package/dist/index109.cjs +1 -1
  33. package/dist/index109.mjs +24 -42
  34. package/dist/index109.mjs.map +1 -1
  35. package/dist/index11.cjs +1 -1
  36. package/dist/index11.mjs +1 -1
  37. package/dist/index110.cjs +1 -1
  38. package/dist/index110.mjs +40 -18
  39. package/dist/index110.mjs.map +1 -1
  40. package/dist/index111.cjs +1 -1
  41. package/dist/index111.mjs +18 -28
  42. package/dist/index111.mjs.map +1 -1
  43. package/dist/index112.cjs +1 -1
  44. package/dist/index112.mjs +55 -12
  45. package/dist/index112.mjs.map +1 -1
  46. package/dist/index114.cjs +1 -1
  47. package/dist/index114.mjs +62 -28
  48. package/dist/index114.mjs.map +1 -1
  49. package/dist/index115.cjs +1 -1
  50. package/dist/index115.mjs +65 -45
  51. package/dist/index115.mjs.map +1 -1
  52. package/dist/index116.cjs +1 -1
  53. package/dist/index116.mjs +234 -18
  54. package/dist/index116.mjs.map +1 -1
  55. package/dist/index117.cjs +1 -1
  56. package/dist/index117.cjs.map +1 -1
  57. package/dist/index117.mjs +34 -29
  58. package/dist/index117.mjs.map +1 -1
  59. package/dist/index118.cjs +1 -1
  60. package/dist/index118.cjs.map +1 -1
  61. package/dist/index118.mjs +44 -31
  62. package/dist/index118.mjs.map +1 -1
  63. package/dist/index119.cjs +1 -1
  64. package/dist/index119.cjs.map +1 -1
  65. package/dist/index119.mjs +170 -22
  66. package/dist/index119.mjs.map +1 -1
  67. package/dist/index12.cjs +1 -1
  68. package/dist/index12.mjs +1 -1
  69. package/dist/index120.cjs +1 -1
  70. package/dist/index120.cjs.map +1 -1
  71. package/dist/index120.mjs +186 -39
  72. package/dist/index120.mjs.map +1 -1
  73. package/dist/index121.cjs +1 -1
  74. package/dist/index121.cjs.map +1 -1
  75. package/dist/index121.mjs +29 -66
  76. package/dist/index121.mjs.map +1 -1
  77. package/dist/index122.cjs +1 -1
  78. package/dist/index122.cjs.map +1 -1
  79. package/dist/index122.mjs +90 -18
  80. package/dist/index122.mjs.map +1 -1
  81. package/dist/index123.cjs +1 -1
  82. package/dist/index123.cjs.map +1 -1
  83. package/dist/index123.mjs +53 -54
  84. package/dist/index123.mjs.map +1 -1
  85. package/dist/index124.cjs +1 -1
  86. package/dist/index124.cjs.map +1 -1
  87. package/dist/index124.mjs +66 -30
  88. package/dist/index124.mjs.map +1 -1
  89. package/dist/index125.cjs +1 -1
  90. package/dist/index125.cjs.map +1 -1
  91. package/dist/index125.mjs +124 -62
  92. package/dist/index125.mjs.map +1 -1
  93. package/dist/index126.cjs +1 -1
  94. package/dist/index126.cjs.map +1 -1
  95. package/dist/index126.mjs +108 -55
  96. package/dist/index126.mjs.map +1 -1
  97. package/dist/index127.cjs +1 -1
  98. package/dist/index127.cjs.map +1 -1
  99. package/dist/index127.mjs +111 -44
  100. package/dist/index127.mjs.map +1 -1
  101. package/dist/index128.cjs +1 -1
  102. package/dist/index128.cjs.map +1 -1
  103. package/dist/index128.mjs +122 -14
  104. package/dist/index128.mjs.map +1 -1
  105. package/dist/index129.cjs +1 -1
  106. package/dist/index129.cjs.map +1 -1
  107. package/dist/index129.mjs +214 -33
  108. package/dist/index129.mjs.map +1 -1
  109. package/dist/index13.cjs +1 -1
  110. package/dist/index13.mjs +1 -1
  111. package/dist/index130.cjs +1 -1
  112. package/dist/index130.mjs +42 -28
  113. package/dist/index130.mjs.map +1 -1
  114. package/dist/index131.cjs +1 -1
  115. package/dist/index131.mjs +40 -22
  116. package/dist/index131.mjs.map +1 -1
  117. package/dist/index132.cjs +1 -1
  118. package/dist/index132.mjs +106 -64
  119. package/dist/index132.mjs.map +1 -1
  120. package/dist/index133.cjs +1 -1
  121. package/dist/index133.mjs +20 -44
  122. package/dist/index133.mjs.map +1 -1
  123. package/dist/index134.cjs +1 -1
  124. package/dist/index134.mjs +30 -57
  125. package/dist/index134.mjs.map +1 -1
  126. package/dist/index135.cjs +1 -1
  127. package/dist/index135.mjs +46 -44
  128. package/dist/index135.mjs.map +1 -1
  129. package/dist/index136.cjs +1 -1
  130. package/dist/index136.mjs +12 -38
  131. package/dist/index136.mjs.map +1 -1
  132. package/dist/index137.cjs +1 -1
  133. package/dist/index137.mjs +32 -28
  134. package/dist/index137.mjs.map +1 -1
  135. package/dist/index138.cjs +1 -1
  136. package/dist/index138.mjs +27 -24
  137. package/dist/index138.mjs.map +1 -1
  138. package/dist/index139.cjs +1 -1
  139. package/dist/index139.mjs +33 -67
  140. package/dist/index139.mjs.map +1 -1
  141. package/dist/index14.cjs +1 -1
  142. package/dist/index14.mjs +1 -1
  143. package/dist/index140.cjs +1 -1
  144. package/dist/index140.mjs +57 -76
  145. package/dist/index140.mjs.map +1 -1
  146. package/dist/index141.cjs +1 -1
  147. package/dist/index141.mjs +30 -46
  148. package/dist/index141.mjs.map +1 -1
  149. package/dist/index142.cjs +1 -1
  150. package/dist/index142.mjs +32 -234
  151. package/dist/index142.mjs.map +1 -1
  152. package/dist/index143.cjs +1 -1
  153. package/dist/index143.cjs.map +1 -1
  154. package/dist/index143.mjs +51 -34
  155. package/dist/index143.mjs.map +1 -1
  156. package/dist/index144.cjs +1 -1
  157. package/dist/index144.cjs.map +1 -1
  158. package/dist/index144.mjs +17 -44
  159. package/dist/index144.mjs.map +1 -1
  160. package/dist/index145.cjs +1 -1
  161. package/dist/index145.cjs.map +1 -1
  162. package/dist/index145.mjs +30 -170
  163. package/dist/index145.mjs.map +1 -1
  164. package/dist/index146.cjs +1 -1
  165. package/dist/index146.cjs.map +1 -1
  166. package/dist/index146.mjs +47 -186
  167. package/dist/index146.mjs.map +1 -1
  168. package/dist/index147.cjs +1 -1
  169. package/dist/index147.cjs.map +1 -1
  170. package/dist/index147.mjs +43 -29
  171. package/dist/index147.mjs.map +1 -1
  172. package/dist/index148.cjs +1 -1
  173. package/dist/index148.cjs.map +1 -1
  174. package/dist/index148.mjs +28 -90
  175. package/dist/index148.mjs.map +1 -1
  176. package/dist/index149.cjs +1 -1
  177. package/dist/index149.cjs.map +1 -1
  178. package/dist/index149.mjs +29 -53
  179. package/dist/index149.mjs.map +1 -1
  180. package/dist/index15.cjs +1 -1
  181. package/dist/index15.mjs +1 -1
  182. package/dist/index150.cjs +1 -1
  183. package/dist/index150.cjs.map +1 -1
  184. package/dist/index150.mjs +30 -66
  185. package/dist/index150.mjs.map +1 -1
  186. package/dist/index151.cjs +1 -1
  187. package/dist/index151.cjs.map +1 -1
  188. package/dist/index151.mjs +24 -124
  189. package/dist/index151.mjs.map +1 -1
  190. package/dist/index152.cjs +1 -1
  191. package/dist/index152.cjs.map +1 -1
  192. package/dist/index152.mjs +22 -108
  193. package/dist/index152.mjs.map +1 -1
  194. package/dist/index153.cjs +1 -1
  195. package/dist/index153.cjs.map +1 -1
  196. package/dist/index153.mjs +36 -111
  197. package/dist/index153.mjs.map +1 -1
  198. package/dist/index154.cjs +1 -1
  199. package/dist/index154.cjs.map +1 -1
  200. package/dist/index154.mjs +38 -122
  201. package/dist/index154.mjs.map +1 -1
  202. package/dist/index155.cjs +1 -1
  203. package/dist/index155.cjs.map +1 -1
  204. package/dist/index155.mjs +12 -214
  205. package/dist/index155.mjs.map +1 -1
  206. package/dist/index156.cjs +1 -1
  207. package/dist/index156.mjs +27 -49
  208. package/dist/index156.mjs.map +1 -1
  209. package/dist/index157.cjs +1 -1
  210. package/dist/index157.mjs +38 -24
  211. package/dist/index157.mjs.map +1 -1
  212. package/dist/index158.cjs +1 -1
  213. package/dist/index158.mjs +33 -32
  214. package/dist/index158.mjs.map +1 -1
  215. package/dist/index159.cjs +1 -1
  216. package/dist/index159.mjs +30 -18
  217. package/dist/index159.mjs.map +1 -1
  218. package/dist/index16.cjs +1 -1
  219. package/dist/index16.mjs +1 -1
  220. package/dist/index160.cjs +1 -1
  221. package/dist/index160.mjs +14 -26
  222. package/dist/index160.mjs.map +1 -1
  223. package/dist/index161.cjs +1 -1
  224. package/dist/index161.mjs +18 -46
  225. package/dist/index161.mjs.map +1 -1
  226. package/dist/index162.cjs +1 -1
  227. package/dist/index162.mjs +28 -24
  228. package/dist/index162.mjs.map +1 -1
  229. package/dist/index163.cjs +1 -1
  230. package/dist/index163.mjs +18 -56
  231. package/dist/index163.mjs.map +1 -1
  232. package/dist/index164.cjs +1 -1
  233. package/dist/index164.mjs +65 -40
  234. package/dist/index164.mjs.map +1 -1
  235. package/dist/index165.cjs +1 -1
  236. package/dist/index165.mjs +30 -62
  237. package/dist/index165.mjs.map +1 -1
  238. package/dist/index166.cjs +1 -1
  239. package/dist/index166.mjs +44 -20
  240. package/dist/index166.mjs.map +1 -1
  241. package/dist/index167.cjs +1 -1
  242. package/dist/index167.mjs +52 -106
  243. package/dist/index167.mjs.map +1 -1
  244. package/dist/index168.cjs +1 -1
  245. package/dist/index168.cjs.map +1 -1
  246. package/dist/index168.mjs +37 -21
  247. package/dist/index168.mjs.map +1 -1
  248. package/dist/index169.cjs +1 -1
  249. package/dist/index169.mjs +28 -30
  250. package/dist/index169.mjs.map +1 -1
  251. package/dist/index17.cjs +1 -1
  252. package/dist/index17.mjs +1 -1
  253. package/dist/index170.cjs +1 -1
  254. package/dist/index170.mjs +18 -12
  255. package/dist/index170.mjs.map +1 -1
  256. package/dist/index171.cjs +1 -1
  257. package/dist/index171.mjs +33 -32
  258. package/dist/index171.mjs.map +1 -1
  259. package/dist/index172.cjs +1 -1
  260. package/dist/index172.mjs +20 -40
  261. package/dist/index172.mjs.map +1 -1
  262. package/dist/index173.cjs +1 -1
  263. package/dist/index173.cjs.map +1 -1
  264. package/dist/index173.mjs +25 -37
  265. package/dist/index173.mjs.map +1 -1
  266. package/dist/index174.cjs +1 -1
  267. package/dist/index174.mjs +64 -28
  268. package/dist/index174.mjs.map +1 -1
  269. package/dist/index175.cjs +1 -1
  270. package/dist/index175.mjs +76 -33
  271. package/dist/index175.mjs.map +1 -1
  272. package/dist/index176.cjs +1 -1
  273. package/dist/index176.mjs +40 -52
  274. package/dist/index176.mjs.map +1 -1
  275. package/dist/index177.cjs +1 -1
  276. package/dist/index177.mjs +52 -18
  277. package/dist/index177.mjs.map +1 -1
  278. package/dist/index178.cjs +1 -1
  279. package/dist/index178.mjs +53 -42
  280. package/dist/index178.mjs.map +1 -1
  281. package/dist/index179.cjs +1 -1
  282. package/dist/index179.mjs +18 -28
  283. package/dist/index179.mjs.map +1 -1
  284. package/dist/index18.cjs +1 -1
  285. package/dist/index18.mjs +1 -1
  286. package/dist/index180.cjs +1 -1
  287. package/dist/index180.mjs +42 -28
  288. package/dist/index180.mjs.map +1 -1
  289. package/dist/index181.cjs +1 -1
  290. package/dist/index181.mjs +28 -64
  291. package/dist/index181.mjs.map +1 -1
  292. package/dist/index182.cjs +1 -1
  293. package/dist/index182.mjs +17 -17
  294. package/dist/index182.mjs.map +1 -1
  295. package/dist/index183.cjs +1 -1
  296. package/dist/index183.mjs +17 -17
  297. package/dist/index183.mjs.map +1 -1
  298. package/dist/index185.cjs +1 -1
  299. package/dist/index185.mjs +1 -1
  300. package/dist/index19.cjs +1 -1
  301. package/dist/index19.mjs +2 -2
  302. package/dist/index20.cjs +1 -1
  303. package/dist/index20.mjs +14 -14
  304. package/dist/index21.cjs +1 -1
  305. package/dist/index21.cjs.map +1 -1
  306. package/dist/index21.mjs +1 -1
  307. package/dist/index22.cjs +1 -1
  308. package/dist/index22.mjs +1 -1
  309. package/dist/index23.cjs +1 -1
  310. package/dist/index23.mjs +1 -1
  311. package/dist/index24.cjs +1 -1
  312. package/dist/index24.mjs +1 -1
  313. package/dist/index25.cjs +1 -1
  314. package/dist/index25.mjs +1 -1
  315. package/dist/index26.cjs +1 -1
  316. package/dist/index26.cjs.map +1 -1
  317. package/dist/index26.mjs +1 -1
  318. package/dist/index27.cjs +1 -1
  319. package/dist/index27.mjs +1 -1
  320. package/dist/index28.cjs +1 -1
  321. package/dist/index28.mjs +1 -1
  322. package/dist/index29.cjs +1 -1
  323. package/dist/index29.mjs +1 -1
  324. package/dist/index30.cjs +1 -1
  325. package/dist/index30.mjs +1 -1
  326. package/dist/index31.cjs +1 -1
  327. package/dist/index31.mjs +1 -1
  328. package/dist/index32.cjs +1 -1
  329. package/dist/index32.mjs +1 -1
  330. package/dist/index33.cjs +1 -1
  331. package/dist/index33.mjs +1 -1
  332. package/dist/index34.cjs +1 -1
  333. package/dist/index34.mjs +1 -1
  334. package/dist/index35.cjs +1 -1
  335. package/dist/index35.mjs +1 -1
  336. package/dist/index36.cjs +1 -1
  337. package/dist/index36.mjs +1 -1
  338. package/dist/index37.cjs +1 -1
  339. package/dist/index37.mjs +1 -1
  340. package/dist/index38.cjs +1 -1
  341. package/dist/index38.mjs +1 -1
  342. package/dist/index39.cjs +1 -1
  343. package/dist/index39.mjs +1 -1
  344. package/dist/index40.cjs +1 -1
  345. package/dist/index40.mjs +1 -1
  346. package/dist/index42.cjs +1 -1
  347. package/dist/index42.mjs +1 -1
  348. package/dist/index43.cjs +1 -1
  349. package/dist/index43.mjs +1 -1
  350. package/dist/index46.cjs +1 -1
  351. package/dist/index46.mjs +1 -1
  352. package/dist/index47.cjs +1 -1
  353. package/dist/index47.mjs +1 -1
  354. package/dist/index49.cjs +1 -1
  355. package/dist/index49.mjs +1 -1
  356. package/dist/index5.cjs +1 -1
  357. package/dist/index5.mjs +1 -1
  358. package/dist/index50.cjs +1 -1
  359. package/dist/index50.mjs +1 -1
  360. package/dist/index51.cjs +1 -1
  361. package/dist/index51.mjs +1 -1
  362. package/dist/index52.cjs +1 -1
  363. package/dist/index52.mjs +1 -1
  364. package/dist/index53.cjs +1 -1
  365. package/dist/index53.mjs +1 -1
  366. package/dist/index54.cjs +1 -1
  367. package/dist/index54.mjs +1 -1
  368. package/dist/index55.cjs +1 -1
  369. package/dist/index55.mjs +1 -1
  370. package/dist/index56.cjs +1 -1
  371. package/dist/index56.mjs +1 -1
  372. package/dist/index57.cjs +1 -1
  373. package/dist/index57.mjs +1 -1
  374. package/dist/index58.cjs +1 -1
  375. package/dist/index58.mjs +1 -1
  376. package/dist/index59.cjs +1 -1
  377. package/dist/index59.mjs +1 -1
  378. package/dist/index6.cjs +1 -1
  379. package/dist/index6.mjs +1 -1
  380. package/dist/index60.cjs +1 -1
  381. package/dist/index60.mjs +1 -1
  382. package/dist/index61.cjs +1 -1
  383. package/dist/index61.mjs +1 -1
  384. package/dist/index62.cjs +1 -1
  385. package/dist/index62.mjs +1 -1
  386. package/dist/index63.cjs +1 -1
  387. package/dist/index63.mjs +1 -1
  388. package/dist/index64.cjs +1 -1
  389. package/dist/index64.mjs +1 -1
  390. package/dist/index65.cjs +1 -1
  391. package/dist/index65.mjs +1 -1
  392. package/dist/index66.cjs +1 -1
  393. package/dist/index66.mjs +1 -1
  394. package/dist/index67.cjs +1 -1
  395. package/dist/index67.mjs +1 -1
  396. package/dist/index68.cjs +1 -1
  397. package/dist/index68.mjs +1 -1
  398. package/dist/index69.cjs +1 -1
  399. package/dist/index69.mjs +1 -1
  400. package/dist/index7.cjs +1 -1
  401. package/dist/index7.mjs +1 -1
  402. package/dist/index70.cjs +1 -1
  403. package/dist/index70.mjs +1 -1
  404. package/dist/index71.cjs +1 -1
  405. package/dist/index71.mjs +1 -1
  406. package/dist/index72.cjs +1 -1
  407. package/dist/index72.mjs +1 -1
  408. package/dist/index73.cjs +1 -1
  409. package/dist/index73.mjs +1 -1
  410. package/dist/index75.cjs +7 -10
  411. package/dist/index75.cjs.map +1 -1
  412. package/dist/index75.mjs +18 -21
  413. package/dist/index75.mjs.map +1 -1
  414. package/dist/index76.cjs +1 -1
  415. package/dist/index76.mjs +1 -1
  416. package/dist/index77.cjs +1 -1
  417. package/dist/index77.mjs +1 -1
  418. package/dist/index78.cjs +1 -1
  419. package/dist/index78.mjs +1 -1
  420. package/dist/index79.cjs +1 -1
  421. package/dist/index79.mjs +1 -1
  422. package/dist/index8.cjs +1 -1
  423. package/dist/index8.mjs +1 -1
  424. package/dist/index80.cjs +1 -1
  425. package/dist/index80.mjs +1 -1
  426. package/dist/index81.cjs +1 -1
  427. package/dist/index81.mjs +1 -1
  428. package/dist/index82.cjs +1 -1
  429. package/dist/index82.mjs +2 -2
  430. package/dist/index9.cjs +1 -1
  431. package/dist/index9.mjs +1 -1
  432. package/dist/index97.cjs +1 -1
  433. package/dist/index97.cjs.map +1 -1
  434. package/dist/index97.mjs +62 -154
  435. package/dist/index97.mjs.map +1 -1
  436. package/dist/index98.cjs +1 -1
  437. package/dist/index98.cjs.map +1 -1
  438. package/dist/index98.mjs +138 -202
  439. package/dist/index98.mjs.map +1 -1
  440. package/dist/index99.cjs +1 -1
  441. package/dist/index99.cjs.map +1 -1
  442. package/dist/index99.mjs +218 -30
  443. package/dist/index99.mjs.map +1 -1
  444. package/package.json +1 -5
package/dist/index126.mjs CHANGED
@@ -1,59 +1,112 @@
1
- const t = "_pageHeader_1wcp9_8", c = "_bordered_1wcp9_15", a = "_sticky_1wcp9_19", _ = "_backLink_1wcp9_29", r = "_backLinkAnchor_1wcp9_33", e = "_backLinkButton_1wcp9_34", b = "_breadcrumbs_1wcp9_59", n = "_breadcrumbList_1wcp9_63", i = "_breadcrumbItem_1wcp9_72", s = "_breadcrumbSeparator_1wcp9_78", o = "_breadcrumbLink_1wcp9_83", p = "_breadcrumbButton_1wcp9_84", d = "_breadcrumbCurrent_1wcp9_101", w = "_main_1wcp9_111", m = "_titleSection_1wcp9_119", u = "_titleRow_1wcp9_124", k = "_title_1wcp9_119", L = "_badge_1wcp9_141", l = "_description_1wcp9_145", g = "_actions_1wcp9_158", v = "_tabs_1wcp9_170", B = "_tab_1wcp9_170", A = "_tabActive_1wcp9_205", S = "_tabBadge_1wcp9_210", h = {
2
- pageHeader: t,
3
- bordered: c,
4
- sticky: a,
5
- backLink: _,
6
- backLinkAnchor: r,
7
- backLinkButton: e,
8
- breadcrumbs: b,
9
- breadcrumbList: n,
10
- breadcrumbItem: i,
11
- breadcrumbSeparator: s,
12
- breadcrumbLink: o,
13
- breadcrumbButton: p,
14
- breadcrumbCurrent: d,
15
- main: w,
16
- titleSection: m,
17
- titleRow: u,
18
- title: k,
19
- badge: L,
20
- description: l,
21
- actions: g,
22
- tabs: v,
23
- tab: B,
24
- tabActive: A,
25
- tabBadge: S,
26
- "size-sm": "_size-sm_1wcp9_228",
27
- "size-lg": "_size-lg_1wcp9_240",
28
- "variant-compact": "_variant-compact_1wcp9_252",
29
- "variant-with-tabs": "_variant-with-tabs_1wcp9_277",
30
- "variant-transparent": "_variant-transparent_1wcp9_285"
1
+ import { jsx as r, jsxs as c } from "react/jsx-runtime";
2
+ import { X as t, Square as b, Send as C, Mic as j } from "lucide-react";
3
+ import { useVoiceRecorder as S } from "./index95.mjs";
4
+ import { formatTime as k } from "./index184.mjs";
5
+ import e from "./index116.mjs";
6
+ const z = ({
7
+ onRecordingComplete: d,
8
+ onCancel: v,
9
+ maxDuration: m = 300,
10
+ className: a,
11
+ ...n
12
+ }) => {
13
+ const {
14
+ isRecording: o,
15
+ duration: R,
16
+ audioBlob: i,
17
+ error: s,
18
+ startRecording: h,
19
+ stopRecording: u,
20
+ cancelRecording: N,
21
+ reset: l,
22
+ isSupported: f
23
+ } = S({
24
+ maxDuration: m,
25
+ onRecordingComplete: d,
26
+ onError: (g) => console.error("Recording error:", g)
27
+ }), p = () => {
28
+ o ? u() : i ? (d?.(i), l()) : h();
29
+ }, B = () => {
30
+ N(), v?.();
31
+ };
32
+ return f ? s ? /* @__PURE__ */ c(
33
+ "div",
34
+ {
35
+ className: [e.voiceRecorder, a].filter(Boolean).join(" "),
36
+ ...n,
37
+ children: [
38
+ /* @__PURE__ */ r("div", { className: e.voiceRecorderInfo, children: /* @__PURE__ */ r(
39
+ "span",
40
+ {
41
+ className: [
42
+ e.voiceRecorderLabel,
43
+ e.voiceRecorderError
44
+ ].join(" "),
45
+ children: s
46
+ }
47
+ ) }),
48
+ /* @__PURE__ */ r(
49
+ "button",
50
+ {
51
+ className: e.inputButton,
52
+ onClick: l,
53
+ "aria-label": "Try again",
54
+ children: /* @__PURE__ */ r(t, { size: 20 })
55
+ }
56
+ )
57
+ ]
58
+ }
59
+ ) : /* @__PURE__ */ c(
60
+ "div",
61
+ {
62
+ className: [e.voiceRecorder, a].filter(Boolean).join(" "),
63
+ ...n,
64
+ children: [
65
+ /* @__PURE__ */ r(
66
+ "button",
67
+ {
68
+ className: [
69
+ e.voiceRecorderButton,
70
+ !o && !i && e.voiceRecorderButtonIdle
71
+ ].filter(Boolean).join(" "),
72
+ onClick: p,
73
+ "aria-label": o ? "Stop recording" : i ? "Send recording" : "Start recording",
74
+ children: o ? /* @__PURE__ */ r(b, { size: 20 }) : i ? /* @__PURE__ */ r(C, { size: 20 }) : /* @__PURE__ */ r(j, { size: 20 })
75
+ }
76
+ ),
77
+ /* @__PURE__ */ c("div", { className: e.voiceRecorderInfo, children: [
78
+ /* @__PURE__ */ r("span", { className: e.voiceRecorderDuration, children: k(R) }),
79
+ /* @__PURE__ */ r("span", { className: e.voiceRecorderLabel, children: o ? "Recording..." : i ? "Recording ready" : "Click to record" })
80
+ ] }),
81
+ o && /* @__PURE__ */ c("div", { className: e.voiceRecorderWaveform, children: [
82
+ /* @__PURE__ */ r("div", { className: e.voiceRecorderBar }),
83
+ /* @__PURE__ */ r("div", { className: e.voiceRecorderBar }),
84
+ /* @__PURE__ */ r("div", { className: e.voiceRecorderBar }),
85
+ /* @__PURE__ */ r("div", { className: e.voiceRecorderBar }),
86
+ /* @__PURE__ */ r("div", { className: e.voiceRecorderBar })
87
+ ] }),
88
+ (o || i) && /* @__PURE__ */ r("div", { className: e.voiceRecorderActions, children: /* @__PURE__ */ r(
89
+ "button",
90
+ {
91
+ className: e.inputButton,
92
+ onClick: B,
93
+ "aria-label": "Cancel recording",
94
+ children: /* @__PURE__ */ r(t, { size: 20 })
95
+ }
96
+ ) })
97
+ ]
98
+ }
99
+ ) : /* @__PURE__ */ r(
100
+ "div",
101
+ {
102
+ className: [e.voiceRecorder, a].filter(Boolean).join(" "),
103
+ ...n,
104
+ children: /* @__PURE__ */ r("div", { className: e.voiceRecorderInfo, children: /* @__PURE__ */ r("span", { className: e.voiceRecorderLabel, children: "Voice recording is not supported in this browser" }) })
105
+ }
106
+ );
31
107
  };
108
+ z.displayName = "ChatVoiceRecorder";
32
109
  export {
33
- g as actions,
34
- _ as backLink,
35
- r as backLinkAnchor,
36
- e as backLinkButton,
37
- L as badge,
38
- c as bordered,
39
- p as breadcrumbButton,
40
- d as breadcrumbCurrent,
41
- i as breadcrumbItem,
42
- o as breadcrumbLink,
43
- n as breadcrumbList,
44
- s as breadcrumbSeparator,
45
- b as breadcrumbs,
46
- h as default,
47
- l as description,
48
- w as main,
49
- t as pageHeader,
50
- a as sticky,
51
- B as tab,
52
- A as tabActive,
53
- S as tabBadge,
54
- v as tabs,
55
- k as title,
56
- u as titleRow,
57
- m as titleSection
110
+ z as ChatVoiceRecorder
58
111
  };
59
112
  //# sourceMappingURL=index126.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index126.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index126.mjs","sources":["../src/components/Chat/components/ChatVoiceRecorder.tsx"],"sourcesContent":["/**\n * ChatVoiceRecorder Component\n *\n * Voice recording UI with waveform visualization.\n */\n\nimport React from \"react\";\nimport { Mic, Square, X, Send } from \"lucide-react\";\nimport type { ChatVoiceRecorderProps } from \"../Chat.types\";\nimport { useVoiceRecorder } from \"../hooks/useVoiceRecorder\";\nimport { formatTime } from \"../utils\";\nimport styles from \"../Chat.module.css\";\n\nexport const ChatVoiceRecorder: React.FC<ChatVoiceRecorderProps> = ({\n onRecordingComplete,\n onCancel,\n maxDuration = 300,\n className,\n ...rest\n}) => {\n const {\n isRecording,\n duration,\n audioBlob,\n error,\n startRecording,\n stopRecording,\n cancelRecording,\n reset,\n isSupported,\n } = useVoiceRecorder({\n maxDuration,\n onRecordingComplete,\n onError: (err) => console.error(\"Recording error:\", err),\n });\n\n const handleMainButtonClick = () => {\n if (isRecording) {\n stopRecording();\n } else if (audioBlob) {\n // Send the recorded audio\n onRecordingComplete?.(audioBlob);\n reset();\n } else {\n startRecording();\n }\n };\n\n const handleCancel = () => {\n cancelRecording();\n onCancel?.();\n };\n\n if (!isSupported) {\n return (\n <div\n className={[styles.voiceRecorder, className].filter(Boolean).join(\" \")}\n {...rest}\n >\n <div className={styles.voiceRecorderInfo}>\n <span className={styles.voiceRecorderLabel}>\n Voice recording is not supported in this browser\n </span>\n </div>\n </div>\n );\n }\n\n if (error) {\n return (\n <div\n className={[styles.voiceRecorder, className].filter(Boolean).join(\" \")}\n {...rest}\n >\n <div className={styles.voiceRecorderInfo}>\n <span\n className={[\n styles.voiceRecorderLabel,\n styles.voiceRecorderError,\n ].join(\" \")}\n >\n {error}\n </span>\n </div>\n <button\n className={styles.inputButton}\n onClick={reset}\n aria-label=\"Try again\"\n >\n <X size={20} />\n </button>\n </div>\n );\n }\n\n return (\n <div\n className={[styles.voiceRecorder, className].filter(Boolean).join(\" \")}\n {...rest}\n >\n {/* Main record/stop/send button */}\n <button\n className={[\n styles.voiceRecorderButton,\n !isRecording && !audioBlob && styles.voiceRecorderButtonIdle,\n ]\n .filter(Boolean)\n .join(\" \")}\n onClick={handleMainButtonClick}\n aria-label={\n isRecording\n ? \"Stop recording\"\n : audioBlob\n ? \"Send recording\"\n : \"Start recording\"\n }\n >\n {isRecording ? (\n <Square size={20} />\n ) : audioBlob ? (\n <Send size={20} />\n ) : (\n <Mic size={20} />\n )}\n </button>\n\n {/* Info section */}\n <div className={styles.voiceRecorderInfo}>\n <span className={styles.voiceRecorderDuration}>\n {formatTime(duration)}\n </span>\n <span className={styles.voiceRecorderLabel}>\n {isRecording\n ? \"Recording...\"\n : audioBlob\n ? \"Recording ready\"\n : \"Click to record\"}\n </span>\n </div>\n\n {/* Waveform visualization (only when recording) */}\n {isRecording && (\n <div className={styles.voiceRecorderWaveform}>\n <div className={styles.voiceRecorderBar} />\n <div className={styles.voiceRecorderBar} />\n <div className={styles.voiceRecorderBar} />\n <div className={styles.voiceRecorderBar} />\n <div className={styles.voiceRecorderBar} />\n </div>\n )}\n\n {/* Cancel button */}\n {(isRecording || audioBlob) && (\n <div className={styles.voiceRecorderActions}>\n <button\n className={styles.inputButton}\n onClick={handleCancel}\n aria-label=\"Cancel recording\"\n >\n <X size={20} />\n </button>\n </div>\n )}\n </div>\n );\n};\n\nChatVoiceRecorder.displayName = \"ChatVoiceRecorder\";\n"],"names":["ChatVoiceRecorder","onRecordingComplete","onCancel","maxDuration","className","rest","isRecording","duration","audioBlob","error","startRecording","stopRecording","cancelRecording","reset","isSupported","useVoiceRecorder","err","handleMainButtonClick","handleCancel","jsxs","styles","jsx","X","Square","Send","Mic","formatTime"],"mappings":";;;;;AAaO,MAAMA,IAAsD,CAAC;AAAA,EAClE,qBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,WAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AACJ,QAAM;AAAA,IACJ,aAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,OAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,OAAAC;AAAA,IACA,aAAAC;AAAA,EAAA,IACEC,EAAiB;AAAA,IACnB,aAAAZ;AAAA,IACA,qBAAAF;AAAA,IACA,SAAS,CAACe,MAAQ,QAAQ,MAAM,oBAAoBA,CAAG;AAAA,EAAA,CACxD,GAEKC,IAAwB,MAAM;AAClC,IAAIX,IACFK,EAAA,IACSH,KAETP,IAAsBO,CAAS,GAC/BK,EAAA,KAEAH,EAAA;AAAA,EAEJ,GAEMQ,IAAe,MAAM;AACzB,IAAAN,EAAA,GACAV,IAAA;AAAA,EACF;AAEA,SAAKY,IAeDL,IAEA,gBAAAU;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,CAACC,EAAO,eAAehB,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,MACpE,GAAGC;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAgB,EAAC,OAAA,EAAI,WAAWD,EAAO,mBACrB,UAAA,gBAAAC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW;AAAA,cACTD,EAAO;AAAA,cACPA,EAAO;AAAA,YAAA,EACP,KAAK,GAAG;AAAA,YAET,UAAAX;AAAA,UAAA;AAAA,QAAA,GAEL;AAAA,QACA,gBAAAY;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWD,EAAO;AAAA,YAClB,SAASP;AAAA,YACT,cAAW;AAAA,YAEX,UAAA,gBAAAQ,EAACC,GAAA,EAAE,MAAM,GAAA,CAAI;AAAA,UAAA;AAAA,QAAA;AAAA,MACf;AAAA,IAAA;AAAA,EAAA,IAMJ,gBAAAH;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,CAACC,EAAO,eAAehB,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,MACpE,GAAGC;AAAA,MAGJ,UAAA;AAAA,QAAA,gBAAAgB;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW;AAAA,cACTD,EAAO;AAAA,cACP,CAACd,KAAe,CAACE,KAAaY,EAAO;AAAA,YAAA,EAEpC,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,YACX,SAASH;AAAA,YACT,cACEX,IACI,mBACAE,IACE,mBACA;AAAA,YAGP,UAAAF,IACC,gBAAAe,EAACE,GAAA,EAAO,MAAM,IAAI,IAChBf,IACF,gBAAAa,EAACG,GAAA,EAAK,MAAM,IAAI,IAEhB,gBAAAH,EAACI,GAAA,EAAI,MAAM,GAAA,CAAI;AAAA,UAAA;AAAA,QAAA;AAAA,QAKnB,gBAAAN,EAAC,OAAA,EAAI,WAAWC,EAAO,mBACrB,UAAA;AAAA,UAAA,gBAAAC,EAAC,UAAK,WAAWD,EAAO,uBACrB,UAAAM,EAAWnB,CAAQ,GACtB;AAAA,UACA,gBAAAc,EAAC,UAAK,WAAWD,EAAO,oBACrB,UAAAd,IACG,iBACAE,IACE,oBACA,kBAAA,CACR;AAAA,QAAA,GACF;AAAA,QAGCF,KACC,gBAAAa,EAAC,OAAA,EAAI,WAAWC,EAAO,uBACrB,UAAA;AAAA,UAAA,gBAAAC,EAAC,OAAA,EAAI,WAAWD,EAAO,iBAAA,CAAkB;AAAA,UACzC,gBAAAC,EAAC,OAAA,EAAI,WAAWD,EAAO,iBAAA,CAAkB;AAAA,UACzC,gBAAAC,EAAC,OAAA,EAAI,WAAWD,EAAO,iBAAA,CAAkB;AAAA,UACzC,gBAAAC,EAAC,OAAA,EAAI,WAAWD,EAAO,iBAAA,CAAkB;AAAA,UACzC,gBAAAC,EAAC,OAAA,EAAI,WAAWD,EAAO,iBAAA,CAAkB;AAAA,QAAA,GAC3C;AAAA,SAIAd,KAAeE,MACf,gBAAAa,EAAC,OAAA,EAAI,WAAWD,EAAO,sBACrB,UAAA,gBAAAC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWD,EAAO;AAAA,YAClB,SAASF;AAAA,YACT,cAAW;AAAA,YAEX,UAAA,gBAAAG,EAACC,GAAA,EAAE,MAAM,GAAA,CAAI;AAAA,UAAA;AAAA,QAAA,EACf,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,IA1GF,gBAAAD;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,CAACD,EAAO,eAAehB,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,MACpE,GAAGC;AAAA,MAEJ,UAAA,gBAAAgB,EAAC,OAAA,EAAI,WAAWD,EAAO,mBACrB,UAAA,gBAAAC,EAAC,QAAA,EAAK,WAAWD,EAAO,oBAAoB,UAAA,mDAAA,CAE5C,EAAA,CACF;AAAA,IAAA;AAAA,EAAA;AAsGR;AAEApB,EAAkB,cAAc;"}
package/dist/index127.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e="_container_6fdxe_13",r="_disabled_6fdxe_19",o="_label_6fdxe_27",t="_labelText_6fdxe_43",_="_optional_6fdxe_47",n="_required_6fdxe_53",s="_textarea_6fdxe_63",a="_error_6fdxe_137",i="_sm_6fdxe_157",l="_md_6fdxe_163",c="_lg_6fdxe_169",d="_resizeNone_6fdxe_179",x="_resizeVertical_6fdxe_183",f="_resizeHorizontal_6fdxe_187",u="_resizeBoth_6fdxe_191",z="_footer_6fdxe_199",b="_helperText_6fdxe_206",g="_errorMessage_6fdxe_226",m="_counter_6fdxe_241",p="_counterWarning_6fdxe_251",T="_counterError_6fdxe_255",h={container:e,disabled:r,label:o,labelText:t,optional:_,required:n,textarea:s,error:a,sm:i,md:l,lg:c,resizeNone:d,resizeVertical:x,resizeHorizontal:f,resizeBoth:u,footer:z,helperText:b,errorMessage:g,counter:m,counterWarning:p,counterError:T};exports.container=e;exports.counter=m;exports.counterError=T;exports.counterWarning=p;exports.default=h;exports.disabled=r;exports.error=a;exports.errorMessage=g;exports.footer=z;exports.helperText=b;exports.label=o;exports.labelText=t;exports.lg=c;exports.md=l;exports.optional=_;exports.required=n;exports.resizeBoth=u;exports.resizeHorizontal=f;exports.resizeNone=d;exports.resizeVertical=x;exports.sm=i;exports.textarea=s;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),t=require("react"),R=require("lucide-react"),h=require("./index184.cjs"),o=require("./index116.cjs"),g=({onFilesSelected:f,accept:i=["*/*"],multiple:C=!0,maxSize:s=10*1024*1024,children:v,className:D,...k})=>{const[m,u]=t.useState(!1),c=t.useRef(null),d=t.useCallback(e=>{if(!e||e.length===0)return;const r=[];Array.from(e).forEach(l=>{if(s&&l.size>s){console.warn(`File ${l.name} exceeds max size of ${h.formatFileSize(s)}`);return}const F=i.includes("*/*"),q=i.flatMap(n=>(n.endsWith("/*"),n));if(!(F||q.some(n=>{if(n.endsWith("/*")){const N=n.split("/")[0];return l.type.startsWith(`${N}/`)}return l.type===n||l.name.endsWith(n)}))){console.warn(`File ${l.name} type not accepted`);return}r.push(l)}),r.length>0&&f?.(r)},[i,s,f]),b=t.useCallback(e=>{e.preventDefault(),e.stopPropagation(),u(!0)},[]),j=t.useCallback(e=>{e.preventDefault(),e.stopPropagation(),u(!1)},[]),y=t.useCallback(e=>{e.preventDefault(),e.stopPropagation(),u(!1);const{files:r}=e.dataTransfer;d(r)},[d]),x=t.useCallback(e=>{d(e.target.files),c.current&&(c.current.value="")},[d]),p=t.useCallback(()=>{c.current?.click()},[]),U=t.useCallback(e=>{(e.key==="Enter"||e.key===" ")&&(e.preventDefault(),p())},[p]);return a.jsxs("div",{className:[o.default.fileUpload,m&&o.default.fileUploadDragging,D].filter(Boolean).join(" "),onDragOver:b,onDragLeave:j,onDrop:y,onClick:p,onKeyDown:U,role:"button",tabIndex:0,"aria-label":"Upload files",...k,children:[a.jsx("input",{ref:c,type:"file",accept:i.join(","),multiple:C,onChange:x,style:{display:"none"},"aria-hidden":"true"}),v||a.jsxs(a.Fragment,{children:[a.jsx("div",{className:o.default.fileUploadIcon,children:a.jsx(R.Upload,{size:32})}),a.jsxs("div",{className:o.default.fileUploadText,children:[a.jsx("strong",{children:"Click to upload"})," or drag and drop"]}),a.jsxs("div",{className:o.default.fileUploadHint,children:["Max file size: ",h.formatFileSize(s)]})]})]})};g.displayName="ChatFileUpload";exports.ChatFileUpload=g;
2
2
  //# sourceMappingURL=index127.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index127.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"index127.cjs","sources":["../src/components/Chat/components/ChatFileUpload.tsx"],"sourcesContent":["/**\n * ChatFileUpload Component\n *\n * File upload zone with drag-and-drop support.\n */\n\nimport React, { useState, useRef, useCallback } from \"react\";\nimport { Upload } from \"lucide-react\";\nimport type { ChatFileUploadProps } from \"../Chat.types\";\nimport { formatFileSize } from \"../utils\";\nimport styles from \"../Chat.module.css\";\n\nexport const ChatFileUpload: React.FC<ChatFileUploadProps> = ({\n onFilesSelected,\n accept = [\"*/*\"],\n multiple = true,\n maxSize = 10 * 1024 * 1024, // 10MB default\n children,\n className,\n ...rest\n}) => {\n const [isDragging, setIsDragging] = useState(false);\n const inputRef = useRef<HTMLInputElement>(null);\n\n // Handle file selection\n const handleFiles = useCallback(\n (files: FileList | null) => {\n if (!files || files.length === 0) return;\n\n const validFiles: File[] = [];\n\n Array.from(files).forEach((file) => {\n // Check file size\n if (maxSize && file.size > maxSize) {\n console.warn(\n `File ${file.name} exceeds max size of ${formatFileSize(maxSize)}`,\n );\n return;\n }\n\n // Check file type (basic check)\n const acceptAll = accept.includes(\"*/*\");\n const acceptedTypes = accept.flatMap((type) => {\n if (type.endsWith(\"/*\")) {\n return type; // e.g., 'image/*'\n }\n return type;\n });\n\n const isAccepted =\n acceptAll ||\n acceptedTypes.some((type) => {\n if (type.endsWith(\"/*\")) {\n const category = type.split(\"/\")[0];\n return file.type.startsWith(`${category}/`);\n }\n return file.type === type || file.name.endsWith(type);\n });\n\n if (!isAccepted) {\n console.warn(`File ${file.name} type not accepted`);\n return;\n }\n\n validFiles.push(file);\n });\n\n if (validFiles.length > 0) {\n onFilesSelected?.(validFiles);\n }\n },\n [accept, maxSize, onFilesSelected],\n );\n\n // Handle drag events\n const handleDragOver = useCallback((e: React.DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setIsDragging(true);\n }, []);\n\n const handleDragLeave = useCallback((e: React.DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setIsDragging(false);\n }, []);\n\n const handleDrop = useCallback(\n (e: React.DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setIsDragging(false);\n\n const { files } = e.dataTransfer;\n handleFiles(files);\n },\n [handleFiles],\n );\n\n // Handle input change\n const handleInputChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n handleFiles(e.target.files);\n // Reset input so same file can be selected again\n if (inputRef.current) {\n inputRef.current.value = \"\";\n }\n },\n [handleFiles],\n );\n\n // Handle click to open file dialog\n const handleClick = useCallback(() => {\n inputRef.current?.click();\n }, []);\n\n // Handle keyboard interaction\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n handleClick();\n }\n },\n [handleClick],\n );\n\n return (\n <div\n className={[\n styles.fileUpload,\n isDragging && styles.fileUploadDragging,\n className,\n ]\n .filter(Boolean)\n .join(\" \")}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n role=\"button\"\n tabIndex={0}\n aria-label=\"Upload files\"\n {...rest}\n >\n <input\n ref={inputRef}\n type=\"file\"\n accept={accept.join(\",\")}\n multiple={multiple}\n onChange={handleInputChange}\n style={{ display: \"none\" }}\n aria-hidden=\"true\"\n />\n\n {children || (\n <>\n <div className={styles.fileUploadIcon}>\n <Upload size={32} />\n </div>\n <div className={styles.fileUploadText}>\n <strong>Click to upload</strong> or drag and drop\n </div>\n <div className={styles.fileUploadHint}>\n Max file size: {formatFileSize(maxSize)}\n </div>\n </>\n )}\n </div>\n );\n};\n\nChatFileUpload.displayName = \"ChatFileUpload\";\n"],"names":["ChatFileUpload","onFilesSelected","accept","multiple","maxSize","children","className","rest","isDragging","setIsDragging","useState","inputRef","useRef","handleFiles","useCallback","files","validFiles","file","formatFileSize","acceptAll","acceptedTypes","type","category","handleDragOver","handleDragLeave","handleDrop","handleInputChange","handleClick","handleKeyDown","jsxs","styles","jsx","Fragment","Upload"],"mappings":"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"}
package/dist/index127.mjs CHANGED
@@ -1,48 +1,115 @@
1
- const e = "_container_6fdxe_13", r = "_disabled_6fdxe_19", o = "_label_6fdxe_27", t = "_labelText_6fdxe_43", _ = "_optional_6fdxe_47", n = "_required_6fdxe_53", s = "_textarea_6fdxe_63", c = "_error_6fdxe_137", a = "_sm_6fdxe_157", d = "_md_6fdxe_163", i = "_lg_6fdxe_169", l = "_resizeNone_6fdxe_179", x = "_resizeVertical_6fdxe_183", f = "_resizeHorizontal_6fdxe_187", z = "_resizeBoth_6fdxe_191", u = "_footer_6fdxe_199", b = "_helperText_6fdxe_206", g = "_errorMessage_6fdxe_226", p = "_counter_6fdxe_241", h = "_counterWarning_6fdxe_251", m = "_counterError_6fdxe_255", T = {
2
- container: e,
3
- disabled: r,
4
- label: o,
5
- labelText: t,
6
- optional: _,
7
- required: n,
8
- textarea: s,
9
- error: c,
10
- sm: a,
11
- md: d,
12
- lg: i,
13
- resizeNone: l,
14
- resizeVertical: x,
15
- resizeHorizontal: f,
16
- resizeBoth: z,
17
- footer: u,
18
- helperText: b,
19
- errorMessage: g,
20
- counter: p,
21
- counterWarning: h,
22
- counterError: m
1
+ import { jsxs as d, jsx as p, Fragment as A } from "react/jsx-runtime";
2
+ import { useState as I, useRef as W, useCallback as a } from "react";
3
+ import { Upload as $ } from "lucide-react";
4
+ import { formatFileSize as g } from "./index184.mjs";
5
+ import l from "./index116.mjs";
6
+ const P = ({
7
+ onFilesSelected: h,
8
+ accept: s = ["*/*"],
9
+ multiple: m = !0,
10
+ maxSize: r = 10 * 1024 * 1024,
11
+ // 10MB default
12
+ children: D,
13
+ className: v,
14
+ ...y
15
+ }) => {
16
+ const [U, f] = I(!1), i = W(null), c = a(
17
+ (e) => {
18
+ if (!e || e.length === 0) return;
19
+ const o = [];
20
+ Array.from(e).forEach((t) => {
21
+ if (r && t.size > r) {
22
+ console.warn(
23
+ `File ${t.name} exceeds max size of ${g(r)}`
24
+ );
25
+ return;
26
+ }
27
+ const j = s.includes("*/*"), w = s.flatMap((n) => (n.endsWith("/*"), n));
28
+ if (!(j || w.some((n) => {
29
+ if (n.endsWith("/*")) {
30
+ const x = n.split("/")[0];
31
+ return t.type.startsWith(`${x}/`);
32
+ }
33
+ return t.type === n || t.name.endsWith(n);
34
+ }))) {
35
+ console.warn(`File ${t.name} type not accepted`);
36
+ return;
37
+ }
38
+ o.push(t);
39
+ }), o.length > 0 && h?.(o);
40
+ },
41
+ [s, r, h]
42
+ ), C = a((e) => {
43
+ e.preventDefault(), e.stopPropagation(), f(!0);
44
+ }, []), k = a((e) => {
45
+ e.preventDefault(), e.stopPropagation(), f(!1);
46
+ }, []), F = a(
47
+ (e) => {
48
+ e.preventDefault(), e.stopPropagation(), f(!1);
49
+ const { files: o } = e.dataTransfer;
50
+ c(o);
51
+ },
52
+ [c]
53
+ ), N = a(
54
+ (e) => {
55
+ c(e.target.files), i.current && (i.current.value = "");
56
+ },
57
+ [c]
58
+ ), u = a(() => {
59
+ i.current?.click();
60
+ }, []), b = a(
61
+ (e) => {
62
+ (e.key === "Enter" || e.key === " ") && (e.preventDefault(), u());
63
+ },
64
+ [u]
65
+ );
66
+ return /* @__PURE__ */ d(
67
+ "div",
68
+ {
69
+ className: [
70
+ l.fileUpload,
71
+ U && l.fileUploadDragging,
72
+ v
73
+ ].filter(Boolean).join(" "),
74
+ onDragOver: C,
75
+ onDragLeave: k,
76
+ onDrop: F,
77
+ onClick: u,
78
+ onKeyDown: b,
79
+ role: "button",
80
+ tabIndex: 0,
81
+ "aria-label": "Upload files",
82
+ ...y,
83
+ children: [
84
+ /* @__PURE__ */ p(
85
+ "input",
86
+ {
87
+ ref: i,
88
+ type: "file",
89
+ accept: s.join(","),
90
+ multiple: m,
91
+ onChange: N,
92
+ style: { display: "none" },
93
+ "aria-hidden": "true"
94
+ }
95
+ ),
96
+ D || /* @__PURE__ */ d(A, { children: [
97
+ /* @__PURE__ */ p("div", { className: l.fileUploadIcon, children: /* @__PURE__ */ p($, { size: 32 }) }),
98
+ /* @__PURE__ */ d("div", { className: l.fileUploadText, children: [
99
+ /* @__PURE__ */ p("strong", { children: "Click to upload" }),
100
+ " or drag and drop"
101
+ ] }),
102
+ /* @__PURE__ */ d("div", { className: l.fileUploadHint, children: [
103
+ "Max file size: ",
104
+ g(r)
105
+ ] })
106
+ ] })
107
+ ]
108
+ }
109
+ );
23
110
  };
111
+ P.displayName = "ChatFileUpload";
24
112
  export {
25
- e as container,
26
- p as counter,
27
- m as counterError,
28
- h as counterWarning,
29
- T as default,
30
- r as disabled,
31
- c as error,
32
- g as errorMessage,
33
- u as footer,
34
- b as helperText,
35
- o as label,
36
- t as labelText,
37
- i as lg,
38
- d as md,
39
- _ as optional,
40
- n as required,
41
- z as resizeBoth,
42
- f as resizeHorizontal,
43
- l as resizeNone,
44
- x as resizeVertical,
45
- a as sm,
46
- s as textarea
113
+ P as ChatFileUpload
47
114
  };
48
115
  //# sourceMappingURL=index127.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index127.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index127.mjs","sources":["../src/components/Chat/components/ChatFileUpload.tsx"],"sourcesContent":["/**\n * ChatFileUpload Component\n *\n * File upload zone with drag-and-drop support.\n */\n\nimport React, { useState, useRef, useCallback } from \"react\";\nimport { Upload } from \"lucide-react\";\nimport type { ChatFileUploadProps } from \"../Chat.types\";\nimport { formatFileSize } from \"../utils\";\nimport styles from \"../Chat.module.css\";\n\nexport const ChatFileUpload: React.FC<ChatFileUploadProps> = ({\n onFilesSelected,\n accept = [\"*/*\"],\n multiple = true,\n maxSize = 10 * 1024 * 1024, // 10MB default\n children,\n className,\n ...rest\n}) => {\n const [isDragging, setIsDragging] = useState(false);\n const inputRef = useRef<HTMLInputElement>(null);\n\n // Handle file selection\n const handleFiles = useCallback(\n (files: FileList | null) => {\n if (!files || files.length === 0) return;\n\n const validFiles: File[] = [];\n\n Array.from(files).forEach((file) => {\n // Check file size\n if (maxSize && file.size > maxSize) {\n console.warn(\n `File ${file.name} exceeds max size of ${formatFileSize(maxSize)}`,\n );\n return;\n }\n\n // Check file type (basic check)\n const acceptAll = accept.includes(\"*/*\");\n const acceptedTypes = accept.flatMap((type) => {\n if (type.endsWith(\"/*\")) {\n return type; // e.g., 'image/*'\n }\n return type;\n });\n\n const isAccepted =\n acceptAll ||\n acceptedTypes.some((type) => {\n if (type.endsWith(\"/*\")) {\n const category = type.split(\"/\")[0];\n return file.type.startsWith(`${category}/`);\n }\n return file.type === type || file.name.endsWith(type);\n });\n\n if (!isAccepted) {\n console.warn(`File ${file.name} type not accepted`);\n return;\n }\n\n validFiles.push(file);\n });\n\n if (validFiles.length > 0) {\n onFilesSelected?.(validFiles);\n }\n },\n [accept, maxSize, onFilesSelected],\n );\n\n // Handle drag events\n const handleDragOver = useCallback((e: React.DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setIsDragging(true);\n }, []);\n\n const handleDragLeave = useCallback((e: React.DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setIsDragging(false);\n }, []);\n\n const handleDrop = useCallback(\n (e: React.DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setIsDragging(false);\n\n const { files } = e.dataTransfer;\n handleFiles(files);\n },\n [handleFiles],\n );\n\n // Handle input change\n const handleInputChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n handleFiles(e.target.files);\n // Reset input so same file can be selected again\n if (inputRef.current) {\n inputRef.current.value = \"\";\n }\n },\n [handleFiles],\n );\n\n // Handle click to open file dialog\n const handleClick = useCallback(() => {\n inputRef.current?.click();\n }, []);\n\n // Handle keyboard interaction\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n handleClick();\n }\n },\n [handleClick],\n );\n\n return (\n <div\n className={[\n styles.fileUpload,\n isDragging && styles.fileUploadDragging,\n className,\n ]\n .filter(Boolean)\n .join(\" \")}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n role=\"button\"\n tabIndex={0}\n aria-label=\"Upload files\"\n {...rest}\n >\n <input\n ref={inputRef}\n type=\"file\"\n accept={accept.join(\",\")}\n multiple={multiple}\n onChange={handleInputChange}\n style={{ display: \"none\" }}\n aria-hidden=\"true\"\n />\n\n {children || (\n <>\n <div className={styles.fileUploadIcon}>\n <Upload size={32} />\n </div>\n <div className={styles.fileUploadText}>\n <strong>Click to upload</strong> or drag and drop\n </div>\n <div className={styles.fileUploadHint}>\n Max file size: {formatFileSize(maxSize)}\n </div>\n </>\n )}\n </div>\n );\n};\n\nChatFileUpload.displayName = \"ChatFileUpload\";\n"],"names":["ChatFileUpload","onFilesSelected","accept","multiple","maxSize","children","className","rest","isDragging","setIsDragging","useState","inputRef","useRef","handleFiles","useCallback","files","validFiles","file","formatFileSize","acceptAll","acceptedTypes","type","category","handleDragOver","handleDragLeave","handleDrop","handleInputChange","handleClick","handleKeyDown","jsxs","styles","jsx","Fragment","Upload"],"mappings":"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"}
package/dist/index128.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e="_toggle_1lj29_3",l="_pressed_1lj29_38",s="_outline_1lj29_49",t="_sm_1lj29_67",o="_md_1lj29_75",_="_lg_1lj29_83",g={toggle:e,pressed:l,outline:s,sm:t,md:o,lg:_};exports.default=g;exports.lg=_;exports.md=o;exports.outline=s;exports.pressed=l;exports.sm=t;exports.toggle=e;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),a=require("lucide-react"),p=require("./index124.cjs"),P=require("./index125.cjs"),b=require("./index122.cjs"),C=require("./index184.cjs"),t=require("./index116.cjs"),w=d=>{switch(d){case"image":return e.jsx(a.Image,{size:18});case"audio":return e.jsx(a.Music,{size:18});case"code":return e.jsx(a.Code,{size:18});default:return e.jsx(a.FileText,{size:18})}},v=({attachment:d,removable:h=!1,onRemove:i,onClick:n,className:c,...o})=>{const{type:m,name:s,url:l,content:j,language:f,size:x,duration:u,thumbnail:g}=d;switch(m){case"image":if(l)return e.jsxs("div",{className:c,style:{position:"relative"},...o,children:[e.jsx(p.ChatImagePreview,{src:l,alt:s,thumbnail:g,onClick:n}),h&&i&&e.jsx("button",{className:t.default.attachmentPreviewRemove,onClick:r=>{r.stopPropagation(),i()},"aria-label":`Remove ${s}`,style:{position:"absolute",top:4,right:4,background:"var(--surface-base)"},children:e.jsx(a.X,{size:14})})]});break;case"audio":if(l)return e.jsxs("div",{className:c,style:{position:"relative"},...o,children:[e.jsx(P.ChatAudioPlayer,{src:l,duration:u,title:s}),h&&i&&e.jsx("button",{className:t.default.attachmentPreviewRemove,onClick:r=>{r.stopPropagation(),i()},"aria-label":`Remove ${s}`,children:e.jsx(a.X,{size:14})})]});break;case"code":if(j)return e.jsx(b.ChatCodeBlock,{code:j,language:f,className:c,...o});break}return e.jsxs("div",{className:[t.default.attachmentPreview,c].filter(Boolean).join(" "),onClick:n,role:n?"button":void 0,tabIndex:n?0:void 0,...o,children:[e.jsx("div",{className:t.default.attachmentPreviewIcon,children:w(m)}),e.jsxs("div",{className:t.default.attachmentPreviewInfo,children:[e.jsx("span",{className:t.default.attachmentPreviewName,children:s}),x&&e.jsxs("span",{className:t.default.attachmentPreviewMeta,children:[C.formatFileSize(x),u&&` · ${Math.floor(u/60)}:${(u%60).toString().padStart(2,"0")}`]})]}),h&&i&&e.jsx("button",{className:t.default.attachmentPreviewRemove,onClick:r=>{r.stopPropagation(),i()},"aria-label":`Remove ${s}`,children:e.jsx(a.X,{size:14})})]})};v.displayName="ChatAttachment";exports.ChatAttachment=v;
2
2
  //# sourceMappingURL=index128.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index128.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"index128.cjs","sources":["../src/components/Chat/components/ChatAttachment.tsx"],"sourcesContent":["/**\n * ChatAttachment Component\n *\n * Unified attachment preview component that renders the appropriate\n * display based on attachment type (image, audio, file, code).\n */\n\nimport React from \"react\";\nimport { FileText, Code, X, Image as ImageIcon, Music } from \"lucide-react\";\nimport type { ChatAttachmentPreviewProps, AttachmentType } from \"../Chat.types\";\nimport { ChatImagePreview } from \"./ChatImagePreview\";\nimport { ChatAudioPlayer } from \"./ChatAudioPlayer\";\nimport { ChatCodeBlock } from \"./ChatCodeBlock\";\nimport { formatFileSize } from \"../utils\";\nimport styles from \"../Chat.module.css\";\n\n// Get icon for attachment type\nconst getAttachmentIcon = (type: AttachmentType) => {\n switch (type) {\n case \"image\":\n return <ImageIcon size={18} />;\n case \"audio\":\n return <Music size={18} />;\n case \"code\":\n return <Code size={18} />;\n default:\n return <FileText size={18} />;\n }\n};\n\nexport const ChatAttachment: React.FC<ChatAttachmentPreviewProps> = ({\n attachment,\n removable = false,\n onRemove,\n onClick,\n className,\n ...rest\n}) => {\n const { type, name, url, content, language, size, duration, thumbnail } =\n attachment;\n\n // Render based on type\n switch (type) {\n case \"image\":\n if (url) {\n return (\n <div className={className} style={{ position: \"relative\" }} {...rest}>\n <ChatImagePreview\n src={url}\n alt={name}\n thumbnail={thumbnail}\n onClick={onClick}\n />\n {removable && onRemove && (\n <button\n className={styles.attachmentPreviewRemove}\n onClick={(e) => {\n e.stopPropagation();\n onRemove();\n }}\n aria-label={`Remove ${name}`}\n style={{\n position: \"absolute\",\n top: 4,\n right: 4,\n background: \"var(--surface-base)\",\n }}\n >\n <X size={14} />\n </button>\n )}\n </div>\n );\n }\n break;\n\n case \"audio\":\n if (url) {\n return (\n <div className={className} style={{ position: \"relative\" }} {...rest}>\n <ChatAudioPlayer src={url} duration={duration} title={name} />\n {removable && onRemove && (\n <button\n className={styles.attachmentPreviewRemove}\n onClick={(e) => {\n e.stopPropagation();\n onRemove();\n }}\n aria-label={`Remove ${name}`}\n >\n <X size={14} />\n </button>\n )}\n </div>\n );\n }\n break;\n\n case \"code\":\n if (content) {\n return (\n <ChatCodeBlock\n code={content}\n language={language}\n className={className}\n {...rest}\n />\n );\n }\n break;\n }\n\n // Default file preview for unhandled types or missing data\n return (\n <div\n className={[styles.attachmentPreview, className]\n .filter(Boolean)\n .join(\" \")}\n onClick={onClick}\n role={onClick ? \"button\" : undefined}\n tabIndex={onClick ? 0 : undefined}\n {...rest}\n >\n <div className={styles.attachmentPreviewIcon}>\n {getAttachmentIcon(type)}\n </div>\n\n <div className={styles.attachmentPreviewInfo}>\n <span className={styles.attachmentPreviewName}>{name}</span>\n {size && (\n <span className={styles.attachmentPreviewMeta}>\n {formatFileSize(size)}\n {duration &&\n ` · ${Math.floor(duration / 60)}:${(duration % 60).toString().padStart(2, \"0\")}`}\n </span>\n )}\n </div>\n\n {removable && onRemove && (\n <button\n className={styles.attachmentPreviewRemove}\n onClick={(e) => {\n e.stopPropagation();\n onRemove();\n }}\n aria-label={`Remove ${name}`}\n >\n <X size={14} />\n </button>\n )}\n </div>\n );\n};\n\nChatAttachment.displayName = \"ChatAttachment\";\n"],"names":["getAttachmentIcon","type","jsx","ImageIcon","Music","Code","FileText","ChatAttachment","attachment","removable","onRemove","onClick","className","rest","name","url","content","language","size","duration","thumbnail","jsxs","ChatImagePreview","styles","e","X","ChatAudioPlayer","ChatCodeBlock","formatFileSize"],"mappings":"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"}
package/dist/index128.mjs CHANGED
@@ -1,18 +1,126 @@
1
- const s = "_toggle_1lj29_3", _ = "_pressed_1lj29_38", l = "_outline_1lj29_49", t = "_sm_1lj29_67", e = "_md_1lj29_75", o = "_lg_1lj29_83", n = {
2
- toggle: s,
3
- pressed: _,
4
- outline: l,
5
- sm: t,
6
- md: e,
7
- lg: o
1
+ import { jsx as e, jsxs as o } from "react/jsx-runtime";
2
+ import { X as u, FileText as P, Code as w, Music as z, Image as y } from "lucide-react";
3
+ import { ChatImagePreview as C } from "./index124.mjs";
4
+ import { ChatAudioPlayer as N } from "./index125.mjs";
5
+ import { ChatCodeBlock as I } from "./index122.mjs";
6
+ import { formatFileSize as k } from "./index184.mjs";
7
+ import t from "./index116.mjs";
8
+ const x = (d) => {
9
+ switch (d) {
10
+ case "image":
11
+ return /* @__PURE__ */ e(y, { size: 18 });
12
+ case "audio":
13
+ return /* @__PURE__ */ e(z, { size: 18 });
14
+ case "code":
15
+ return /* @__PURE__ */ e(w, { size: 18 });
16
+ default:
17
+ return /* @__PURE__ */ e(P, { size: 18 });
18
+ }
19
+ }, $ = ({
20
+ attachment: d,
21
+ removable: h = !1,
22
+ onRemove: a,
23
+ onClick: n,
24
+ className: s,
25
+ ...c
26
+ }) => {
27
+ const { type: p, name: i, url: l, content: v, language: b, size: f, duration: m, thumbnail: g } = d;
28
+ switch (p) {
29
+ case "image":
30
+ if (l)
31
+ return /* @__PURE__ */ o("div", { className: s, style: { position: "relative" }, ...c, children: [
32
+ /* @__PURE__ */ e(
33
+ C,
34
+ {
35
+ src: l,
36
+ alt: i,
37
+ thumbnail: g,
38
+ onClick: n
39
+ }
40
+ ),
41
+ h && a && /* @__PURE__ */ e(
42
+ "button",
43
+ {
44
+ className: t.attachmentPreviewRemove,
45
+ onClick: (r) => {
46
+ r.stopPropagation(), a();
47
+ },
48
+ "aria-label": `Remove ${i}`,
49
+ style: {
50
+ position: "absolute",
51
+ top: 4,
52
+ right: 4,
53
+ background: "var(--surface-base)"
54
+ },
55
+ children: /* @__PURE__ */ e(u, { size: 14 })
56
+ }
57
+ )
58
+ ] });
59
+ break;
60
+ case "audio":
61
+ if (l)
62
+ return /* @__PURE__ */ o("div", { className: s, style: { position: "relative" }, ...c, children: [
63
+ /* @__PURE__ */ e(N, { src: l, duration: m, title: i }),
64
+ h && a && /* @__PURE__ */ e(
65
+ "button",
66
+ {
67
+ className: t.attachmentPreviewRemove,
68
+ onClick: (r) => {
69
+ r.stopPropagation(), a();
70
+ },
71
+ "aria-label": `Remove ${i}`,
72
+ children: /* @__PURE__ */ e(u, { size: 14 })
73
+ }
74
+ )
75
+ ] });
76
+ break;
77
+ case "code":
78
+ if (v)
79
+ return /* @__PURE__ */ e(
80
+ I,
81
+ {
82
+ code: v,
83
+ language: b,
84
+ className: s,
85
+ ...c
86
+ }
87
+ );
88
+ break;
89
+ }
90
+ return /* @__PURE__ */ o(
91
+ "div",
92
+ {
93
+ className: [t.attachmentPreview, s].filter(Boolean).join(" "),
94
+ onClick: n,
95
+ role: n ? "button" : void 0,
96
+ tabIndex: n ? 0 : void 0,
97
+ ...c,
98
+ children: [
99
+ /* @__PURE__ */ e("div", { className: t.attachmentPreviewIcon, children: x(p) }),
100
+ /* @__PURE__ */ o("div", { className: t.attachmentPreviewInfo, children: [
101
+ /* @__PURE__ */ e("span", { className: t.attachmentPreviewName, children: i }),
102
+ f && /* @__PURE__ */ o("span", { className: t.attachmentPreviewMeta, children: [
103
+ k(f),
104
+ m && ` · ${Math.floor(m / 60)}:${(m % 60).toString().padStart(2, "0")}`
105
+ ] })
106
+ ] }),
107
+ h && a && /* @__PURE__ */ e(
108
+ "button",
109
+ {
110
+ className: t.attachmentPreviewRemove,
111
+ onClick: (r) => {
112
+ r.stopPropagation(), a();
113
+ },
114
+ "aria-label": `Remove ${i}`,
115
+ children: /* @__PURE__ */ e(u, { size: 14 })
116
+ }
117
+ )
118
+ ]
119
+ }
120
+ );
8
121
  };
122
+ $.displayName = "ChatAttachment";
9
123
  export {
10
- n as default,
11
- o as lg,
12
- e as md,
13
- l as outline,
14
- _ as pressed,
15
- t as sm,
16
- s as toggle
124
+ $ as ChatAttachment
17
125
  };
18
126
  //# sourceMappingURL=index128.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index128.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
1
+ {"version":3,"file":"index128.mjs","sources":["../src/components/Chat/components/ChatAttachment.tsx"],"sourcesContent":["/**\n * ChatAttachment Component\n *\n * Unified attachment preview component that renders the appropriate\n * display based on attachment type (image, audio, file, code).\n */\n\nimport React from \"react\";\nimport { FileText, Code, X, Image as ImageIcon, Music } from \"lucide-react\";\nimport type { ChatAttachmentPreviewProps, AttachmentType } from \"../Chat.types\";\nimport { ChatImagePreview } from \"./ChatImagePreview\";\nimport { ChatAudioPlayer } from \"./ChatAudioPlayer\";\nimport { ChatCodeBlock } from \"./ChatCodeBlock\";\nimport { formatFileSize } from \"../utils\";\nimport styles from \"../Chat.module.css\";\n\n// Get icon for attachment type\nconst getAttachmentIcon = (type: AttachmentType) => {\n switch (type) {\n case \"image\":\n return <ImageIcon size={18} />;\n case \"audio\":\n return <Music size={18} />;\n case \"code\":\n return <Code size={18} />;\n default:\n return <FileText size={18} />;\n }\n};\n\nexport const ChatAttachment: React.FC<ChatAttachmentPreviewProps> = ({\n attachment,\n removable = false,\n onRemove,\n onClick,\n className,\n ...rest\n}) => {\n const { type, name, url, content, language, size, duration, thumbnail } =\n attachment;\n\n // Render based on type\n switch (type) {\n case \"image\":\n if (url) {\n return (\n <div className={className} style={{ position: \"relative\" }} {...rest}>\n <ChatImagePreview\n src={url}\n alt={name}\n thumbnail={thumbnail}\n onClick={onClick}\n />\n {removable && onRemove && (\n <button\n className={styles.attachmentPreviewRemove}\n onClick={(e) => {\n e.stopPropagation();\n onRemove();\n }}\n aria-label={`Remove ${name}`}\n style={{\n position: \"absolute\",\n top: 4,\n right: 4,\n background: \"var(--surface-base)\",\n }}\n >\n <X size={14} />\n </button>\n )}\n </div>\n );\n }\n break;\n\n case \"audio\":\n if (url) {\n return (\n <div className={className} style={{ position: \"relative\" }} {...rest}>\n <ChatAudioPlayer src={url} duration={duration} title={name} />\n {removable && onRemove && (\n <button\n className={styles.attachmentPreviewRemove}\n onClick={(e) => {\n e.stopPropagation();\n onRemove();\n }}\n aria-label={`Remove ${name}`}\n >\n <X size={14} />\n </button>\n )}\n </div>\n );\n }\n break;\n\n case \"code\":\n if (content) {\n return (\n <ChatCodeBlock\n code={content}\n language={language}\n className={className}\n {...rest}\n />\n );\n }\n break;\n }\n\n // Default file preview for unhandled types or missing data\n return (\n <div\n className={[styles.attachmentPreview, className]\n .filter(Boolean)\n .join(\" \")}\n onClick={onClick}\n role={onClick ? \"button\" : undefined}\n tabIndex={onClick ? 0 : undefined}\n {...rest}\n >\n <div className={styles.attachmentPreviewIcon}>\n {getAttachmentIcon(type)}\n </div>\n\n <div className={styles.attachmentPreviewInfo}>\n <span className={styles.attachmentPreviewName}>{name}</span>\n {size && (\n <span className={styles.attachmentPreviewMeta}>\n {formatFileSize(size)}\n {duration &&\n ` · ${Math.floor(duration / 60)}:${(duration % 60).toString().padStart(2, \"0\")}`}\n </span>\n )}\n </div>\n\n {removable && onRemove && (\n <button\n className={styles.attachmentPreviewRemove}\n onClick={(e) => {\n e.stopPropagation();\n onRemove();\n }}\n aria-label={`Remove ${name}`}\n >\n <X size={14} />\n </button>\n )}\n </div>\n );\n};\n\nChatAttachment.displayName = \"ChatAttachment\";\n"],"names":["getAttachmentIcon","type","jsx","ImageIcon","Music","Code","FileText","ChatAttachment","attachment","removable","onRemove","onClick","className","rest","name","url","content","language","size","duration","thumbnail","jsxs","ChatImagePreview","styles","e","X","ChatAudioPlayer","ChatCodeBlock","formatFileSize"],"mappings":"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"}
package/dist/index129.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e="_accordion_4ap52_9",n="_item_4ap52_24",t="_bordered_4ap52_33",a="_header_4ap52_43",d="_expanded_4ap52_57",o="_contentInner_4ap52_62",c="_separated_4ap52_69",_="_disabled_4ap52_91",r="_icon_4ap52_130",p="_title_4ap52_137",s="_chevron_4ap52_141",i="_chevronExpanded_4ap52_149",l="_content_4ap52_62",h="_animated_4ap52_161",x="_contentExpanded_4ap52_171",b={accordion:e,default:"_default_4ap52_20",item:n,bordered:t,header:a,expanded:d,contentInner:o,separated:c,disabled:_,icon:r,title:p,chevron:s,chevronExpanded:i,content:l,animated:h,contentExpanded:x};exports.accordion=e;exports.animated=h;exports.bordered=t;exports.chevron=s;exports.chevronExpanded=i;exports.content=l;exports.contentExpanded=x;exports.contentInner=o;exports.default=b;exports.disabled=_;exports.expanded=d;exports.header=a;exports.icon=r;exports.item=n;exports.separated=c;exports.title=p;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),d=require("react"),c=require("lucide-react"),t=require("./index116.cjs"),O={today:"Today",yesterday:"Yesterday",previous7:"Previous 7 days",previous30:"Previous 30 days",older:"Older"},y=["today","yesterday","previous7","previous30","older"],C=a=>{const r=new Date,u=(new Date(r.getFullYear(),r.getMonth(),r.getDate()).getTime()-new Date(a.getFullYear(),a.getMonth(),a.getDate()).getTime())/(1e3*60*60*24);return u<1?"today":u<2?"yesterday":u<7?"previous7":u<30?"previous30":"older"},P=a=>{const r=C(a);return r==="today"?new Intl.DateTimeFormat("en-US",{hour:"numeric",minute:"2-digit"}).format(a):r==="yesterday"?"Yesterday":r==="previous7"?new Intl.DateTimeFormat("en-US",{weekday:"short"}).format(a):new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(a)},z=a=>{const r=new Map;return y.forEach(n=>r.set(n,[])),a.forEach(n=>{const b=C(n.updatedAt);r.get(b)?.push(n)}),r},S=({conversations:a=[],activeConversationId:r,onSelectConversation:n,onNewConversation:b,onDeleteConversation:u,onSearch:x,header:w,footer:N,collapsed:m=!1,onCollapsedChange:f,className:I,...D})=>{const[h,T]=d.useState(""),[p,j]=d.useState(null),o=d.useRef(void 0);d.useEffect(()=>()=>{o.current&&clearTimeout(o.current)},[]);const g=d.useMemo(()=>{if(!h.trim())return a;const s=h.toLowerCase();return a.filter(l=>l.title.toLowerCase().includes(s)||l.preview?.toLowerCase().includes(s))},[a,h]),v=d.useMemo(()=>z(g),[g]),B=d.useCallback(s=>{const l=s.target.value;T(l),x?.(l)},[x]),k=d.useCallback(s=>{n?.(s),m&&f&&f(!0)},[n,m,f]),F=d.useCallback((s,l)=>{s.stopPropagation(),p===l?(u?.(l),j(null),o.current&&clearTimeout(o.current)):(j(l),o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{j(null)},3e3))},[p,u]),M=y.some(s=>(v.get(s)?.length??0)>0);return e.jsxs(e.Fragment,{children:[!m&&e.jsx("div",{className:t.default.sidebarOverlay,onClick:()=>f?.(!0),"aria-hidden":"true"}),e.jsxs("aside",{className:[t.default.sidebar,m&&t.default.sidebarCollapsed,!m&&t.default.sidebarOpen,I].filter(Boolean).join(" "),...D,children:[e.jsx("div",{className:t.default.sidebarHeader,children:w||e.jsxs(e.Fragment,{children:[e.jsx("button",{className:[t.default.inputButton,t.default.inputButtonPrimary,t.default.sidebarNewButton].filter(Boolean).join(" "),onClick:b,"aria-label":"New conversation",children:e.jsxs("span",{className:t.default.sidebarNewButtonInner,children:[e.jsx(c.Plus,{size:18}),e.jsx("span",{children:"New Chat"})]})}),e.jsx("button",{className:[t.default.inputButton,t.default.sidebarCloseButton].join(" "),onClick:()=>f?.(!0),"aria-label":"Close sidebar",children:e.jsx(c.X,{size:20})})]})}),e.jsx("div",{className:t.default.sidebarSearch,children:e.jsxs("div",{className:t.default.sidebarSearchWrapper,children:[e.jsx(c.Search,{size:16,className:t.default.sidebarSearchIcon}),e.jsx("input",{type:"search",className:[t.default.sidebarSearchInput,t.default.sidebarSearchInputWithIcon].join(" "),placeholder:"Search conversations...",value:h,onChange:B,"aria-label":"Search conversations"})]})}),e.jsx("div",{className:t.default.sidebarList,role:"list","aria-label":"Conversations",children:M?y.map(s=>{const l=v.get(s)??[];return l.length===0?null:e.jsxs("div",{children:[e.jsx("div",{className:t.default.sidebarGroupHeader,children:O[s]}),l.map(i=>e.jsxs("button",{className:[t.default.sidebarItem,i.id===r&&t.default.sidebarItemActive].filter(Boolean).join(" "),onClick:()=>k(i.id),role:"listitem","aria-selected":i.id===r,"aria-label":`Conversation: ${i.title}`,children:[e.jsx(c.MessageSquare,{size:18,className:t.default.sidebarItemIcon}),e.jsxs("div",{className:t.default.sidebarItemContent,children:[e.jsx("span",{className:t.default.sidebarItemTitle,children:i.title}),i.preview&&e.jsx("span",{className:t.default.sidebarItemPreview,children:i.preview})]}),e.jsx("span",{className:t.default.sidebarItemDate,children:P(i.updatedAt)}),u&&e.jsx("button",{className:t.default.sidebarItemDelete,onClick:q=>F(q,i.id),"aria-label":p===i.id?`Confirm delete ${i.title}`:`Delete ${i.title}`,children:p===i.id?e.jsx("span",{className:t.default.sidebarItemDeleteConfirm,children:"Delete?"}):e.jsx(c.Trash2,{size:16})})]},i.id))]},s)}):e.jsxs("div",{className:t.default.sidebarEmpty,children:[e.jsx(c.MessageSquare,{size:32,className:t.default.sidebarEmptyIcon}),e.jsx("p",{children:h?"No conversations found":"No conversations yet"})]})}),N&&e.jsx("div",{className:t.default.sidebarFooter,children:N})]})]})};S.displayName="ChatSidebar";exports.ChatSidebar=S;
2
2
  //# sourceMappingURL=index129.cjs.map