@mieweb/ui 0.8.0 → 0.9.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 (380) hide show
  1. package/README.md +162 -739
  2. package/agent/mieweb-ui.instructions.md +34 -16
  3. package/dist/Animated-Cs-naa2g.d.cts +175 -0
  4. package/dist/Animated-Cs-naa2g.d.ts +175 -0
  5. package/dist/CsvBlock-D7Z6ZCRP.js +6 -0
  6. package/dist/{CsvBlock-PUSTBQ5B.js.map → CsvBlock-D7Z6ZCRP.js.map} +1 -1
  7. package/dist/CsvBlock-QXXZ7ZUM.cjs +15 -0
  8. package/dist/{CsvBlock-OTFG3PYZ.cjs.map → CsvBlock-QXXZ7ZUM.cjs.map} +1 -1
  9. package/dist/HtmlPreviewBlock-AADG7MVB.cjs +15 -0
  10. package/dist/{HtmlPreviewBlock-QHLSIMWJ.cjs.map → HtmlPreviewBlock-AADG7MVB.cjs.map} +1 -1
  11. package/dist/HtmlPreviewBlock-F5VDM2EN.js +6 -0
  12. package/dist/{HtmlPreviewBlock-YF2YVKKX.js.map → HtmlPreviewBlock-F5VDM2EN.js.map} +1 -1
  13. package/dist/MermaidBlock-6PLITRBZ.js +6 -0
  14. package/dist/{MermaidBlock-H3TWNC4D.js.map → MermaidBlock-6PLITRBZ.js.map} +1 -1
  15. package/dist/MermaidBlock-TQ2O5CLV.cjs +15 -0
  16. package/dist/{MermaidBlock-ZLLBO3VY.cjs.map → MermaidBlock-TQ2O5CLV.cjs.map} +1 -1
  17. package/dist/SurveyBlock-OYL3VNU5.cjs +15 -0
  18. package/dist/{SurveyBlock-M2ZRTGVJ.cjs.map → SurveyBlock-OYL3VNU5.cjs.map} +1 -1
  19. package/dist/SurveyBlock-W5PSQ62F.js +6 -0
  20. package/dist/{SurveyBlock-JLHS3YQD.js.map → SurveyBlock-W5PSQ62F.js.map} +1 -1
  21. package/dist/ag-grid.cjs +5 -5
  22. package/dist/ag-grid.js +1 -1
  23. package/dist/brands/index.cjs +7 -7
  24. package/dist/brands/index.js +2 -2
  25. package/dist/{chunk-RZJXCI53.js → chunk-22CYDCXA.js} +3 -3
  26. package/dist/{chunk-RZJXCI53.js.map → chunk-22CYDCXA.js.map} +1 -1
  27. package/dist/{chunk-OTQ72WX3.js → chunk-2BPIVWAK.js} +3 -3
  28. package/dist/{chunk-OTQ72WX3.js.map → chunk-2BPIVWAK.js.map} +1 -1
  29. package/dist/{chunk-6EWJGRC3.js → chunk-3JWAABYI.js} +6 -6
  30. package/dist/chunk-3JWAABYI.js.map +1 -0
  31. package/dist/{chunk-5JZIDILK.cjs → chunk-3LHICE4I.cjs} +6 -6
  32. package/dist/chunk-3LHICE4I.cjs.map +1 -0
  33. package/dist/{chunk-JHZW3Y62.js → chunk-3RB35GYK.js} +5 -5
  34. package/dist/chunk-3RB35GYK.js.map +1 -0
  35. package/dist/{chunk-BOW7ZGI2.cjs → chunk-4SM3I7WE.cjs} +170 -10
  36. package/dist/chunk-4SM3I7WE.cjs.map +1 -0
  37. package/dist/{chunk-26DPQUSB.cjs → chunk-5BVFVXHN.cjs} +224 -157
  38. package/dist/chunk-5BVFVXHN.cjs.map +1 -0
  39. package/dist/{chunk-QHTDWIED.js → chunk-5H7SAEQO.js} +5 -5
  40. package/dist/{chunk-QHTDWIED.js.map → chunk-5H7SAEQO.js.map} +1 -1
  41. package/dist/{chunk-EMMYFHOT.js → chunk-5WOB4UBD.js} +3 -3
  42. package/dist/{chunk-EMMYFHOT.js.map → chunk-5WOB4UBD.js.map} +1 -1
  43. package/dist/{chunk-4CUFXCC5.cjs → chunk-5Z6UPVGC.cjs} +6 -6
  44. package/dist/{chunk-4CUFXCC5.cjs.map → chunk-5Z6UPVGC.cjs.map} +1 -1
  45. package/dist/{chunk-YIXTGWT4.cjs → chunk-6QKMMKRY.cjs} +5 -5
  46. package/dist/{chunk-YIXTGWT4.cjs.map → chunk-6QKMMKRY.cjs.map} +1 -1
  47. package/dist/{chunk-F57VRLKP.js → chunk-6SAYPXHX.js} +4 -4
  48. package/dist/{chunk-F57VRLKP.js.map → chunk-6SAYPXHX.js.map} +1 -1
  49. package/dist/{chunk-SK7H3Z67.cjs → chunk-6XDPJWSC.cjs} +99 -83
  50. package/dist/chunk-6XDPJWSC.cjs.map +1 -0
  51. package/dist/{chunk-4AE2L6AO.cjs → chunk-7FTBPLA6.cjs} +8 -8
  52. package/dist/chunk-7FTBPLA6.cjs.map +1 -0
  53. package/dist/{chunk-KVE7PQ5P.cjs → chunk-7KN6J7XV.cjs} +20 -20
  54. package/dist/{chunk-KVE7PQ5P.cjs.map → chunk-7KN6J7XV.cjs.map} +1 -1
  55. package/dist/{chunk-K4S4FAYX.cjs → chunk-AHINB2TP.cjs} +11 -11
  56. package/dist/{chunk-K4S4FAYX.cjs.map → chunk-AHINB2TP.cjs.map} +1 -1
  57. package/dist/{chunk-MYFZYUPR.cjs → chunk-AOHJILLU.cjs} +38 -3
  58. package/dist/chunk-AOHJILLU.cjs.map +1 -0
  59. package/dist/chunk-BKSPDTX4.js +3 -0
  60. package/dist/{chunk-3PXOIAF6.js.map → chunk-BKSPDTX4.js.map} +1 -1
  61. package/dist/chunk-BN75TLUN.cjs +163 -0
  62. package/dist/chunk-BN75TLUN.cjs.map +1 -0
  63. package/dist/{chunk-WWJIW2IH.cjs → chunk-BVMABVC4.cjs} +3 -3
  64. package/dist/{chunk-WWJIW2IH.cjs.map → chunk-BVMABVC4.cjs.map} +1 -1
  65. package/dist/{chunk-H7QSGFMZ.cjs → chunk-BZAGP5W6.cjs} +17 -10
  66. package/dist/chunk-BZAGP5W6.cjs.map +1 -0
  67. package/dist/{chunk-RS5VA6QU.cjs → chunk-C3DUS2VE.cjs} +3 -3
  68. package/dist/{chunk-RS5VA6QU.cjs.map → chunk-C3DUS2VE.cjs.map} +1 -1
  69. package/dist/{chunk-NLBT5O2X.js → chunk-CK3KLRNF.js} +3 -3
  70. package/dist/{chunk-NLBT5O2X.js.map → chunk-CK3KLRNF.js.map} +1 -1
  71. package/dist/{chunk-L6D4CKLV.cjs → chunk-CXDMZT45.cjs} +135 -4
  72. package/dist/chunk-CXDMZT45.cjs.map +1 -0
  73. package/dist/{chunk-TXRQQMG5.js → chunk-CYMZ2QS5.js} +2 -2
  74. package/dist/{chunk-TXRQQMG5.js.map → chunk-CYMZ2QS5.js.map} +1 -1
  75. package/dist/{chunk-DX64KLSN.js → chunk-D25WH7MH.js} +7 -7
  76. package/dist/{chunk-DX64KLSN.js.map → chunk-D25WH7MH.js.map} +1 -1
  77. package/dist/{chunk-XBKOZRDO.js → chunk-DFYMIRMW.js} +4 -4
  78. package/dist/{chunk-XBKOZRDO.js.map → chunk-DFYMIRMW.js.map} +1 -1
  79. package/dist/{chunk-AESFOMSH.js → chunk-DGRXAIWK.js} +135 -4
  80. package/dist/chunk-DGRXAIWK.js.map +1 -0
  81. package/dist/{chunk-UZ5NGGMI.js → chunk-EG7XFZ3W.js} +4 -4
  82. package/dist/{chunk-UZ5NGGMI.js.map → chunk-EG7XFZ3W.js.map} +1 -1
  83. package/dist/{chunk-RYQ3S3KO.cjs → chunk-FQBTGS3E.cjs} +23 -20
  84. package/dist/chunk-FQBTGS3E.cjs.map +1 -0
  85. package/dist/{chunk-LQHI44OZ.cjs → chunk-FUFBRKOG.cjs} +59 -59
  86. package/dist/{chunk-LQHI44OZ.cjs.map → chunk-FUFBRKOG.cjs.map} +1 -1
  87. package/dist/{chunk-DG7KE4YJ.cjs → chunk-FYAKUU2A.cjs} +38 -21
  88. package/dist/chunk-FYAKUU2A.cjs.map +1 -0
  89. package/dist/{chunk-7L7OPISJ.cjs → chunk-H4AVMUOC.cjs} +12 -6
  90. package/dist/chunk-H4AVMUOC.cjs.map +1 -0
  91. package/dist/{chunk-I2ECTLON.cjs → chunk-HXSA6QC5.cjs} +3 -3
  92. package/dist/{chunk-I2ECTLON.cjs.map → chunk-HXSA6QC5.cjs.map} +1 -1
  93. package/dist/{chunk-DCBMTFLE.js → chunk-HZ4MBUC3.js} +3 -3
  94. package/dist/{chunk-DCBMTFLE.js.map → chunk-HZ4MBUC3.js.map} +1 -1
  95. package/dist/{chunk-X5ZPYYMS.js → chunk-I3DQXUSC.js} +3 -3
  96. package/dist/{chunk-X5ZPYYMS.js.map → chunk-I3DQXUSC.js.map} +1 -1
  97. package/dist/{chunk-FN6VHMLM.cjs → chunk-IB54SKWB.cjs} +8 -8
  98. package/dist/{chunk-FN6VHMLM.cjs.map → chunk-IB54SKWB.cjs.map} +1 -1
  99. package/dist/{chunk-JP5SGIXA.cjs → chunk-IFDC4TXM.cjs} +4 -4
  100. package/dist/{chunk-JP5SGIXA.cjs.map → chunk-IFDC4TXM.cjs.map} +1 -1
  101. package/dist/{chunk-RDGRKYQ5.cjs → chunk-IINZWUGK.cjs} +58 -6
  102. package/dist/chunk-IINZWUGK.cjs.map +1 -0
  103. package/dist/{chunk-U3JU6BI5.cjs → chunk-JEIW7BSV.cjs} +3 -3
  104. package/dist/{chunk-U3JU6BI5.cjs.map → chunk-JEIW7BSV.cjs.map} +1 -1
  105. package/dist/{chunk-D2GID3YK.js → chunk-KREUYVMZ.js} +58 -6
  106. package/dist/chunk-KREUYVMZ.js.map +1 -0
  107. package/dist/{chunk-Y6YSJPVC.js → chunk-KRU6IGV7.js} +11 -3
  108. package/dist/chunk-KRU6IGV7.js.map +1 -0
  109. package/dist/{chunk-LZU7YBXG.js → chunk-KU3XRHWA.js} +169 -10
  110. package/dist/chunk-KU3XRHWA.js.map +1 -0
  111. package/dist/{chunk-P2VTQ5AR.cjs → chunk-L52N6BEN.cjs} +39 -23
  112. package/dist/chunk-L52N6BEN.cjs.map +1 -0
  113. package/dist/{chunk-XWYKLEKG.js → chunk-L5W7TJQ5.js} +11 -5
  114. package/dist/chunk-L5W7TJQ5.js.map +1 -0
  115. package/dist/{chunk-PAM5UUBL.cjs → chunk-L7L5S2HO.cjs} +18 -2
  116. package/dist/{chunk-PAM5UUBL.cjs.map → chunk-L7L5S2HO.cjs.map} +1 -1
  117. package/dist/{chunk-SEPYBAML.js → chunk-LAEIVOIY.js} +38 -21
  118. package/dist/chunk-LAEIVOIY.js.map +1 -0
  119. package/dist/{chunk-Z5KFXHDP.cjs → chunk-MM7QKUE3.cjs} +5 -5
  120. package/dist/{chunk-Z5KFXHDP.cjs.map → chunk-MM7QKUE3.cjs.map} +1 -1
  121. package/dist/{chunk-FJ7YPVKV.js → chunk-MUIDWFYJ.js} +3 -3
  122. package/dist/{chunk-FJ7YPVKV.js.map → chunk-MUIDWFYJ.js.map} +1 -1
  123. package/dist/{chunk-FDV7EQWH.js → chunk-MXQ7J4BB.js} +21 -18
  124. package/dist/chunk-MXQ7J4BB.js.map +1 -0
  125. package/dist/{chunk-YMHOF6WA.cjs → chunk-MYAU2ZUC.cjs} +3 -3
  126. package/dist/{chunk-YMHOF6WA.cjs.map → chunk-MYAU2ZUC.cjs.map} +1 -1
  127. package/dist/{chunk-5J5PEUUA.js → chunk-NHN6A3ZO.js} +6 -6
  128. package/dist/{chunk-5J5PEUUA.js.map → chunk-NHN6A3ZO.js.map} +1 -1
  129. package/dist/{chunk-EPQPUFS6.cjs → chunk-NYJIXR4Y.cjs} +6 -6
  130. package/dist/chunk-NYJIXR4Y.cjs.map +1 -0
  131. package/dist/{chunk-EKRT7K2K.js → chunk-O6GJ4IYS.js} +222 -157
  132. package/dist/chunk-O6GJ4IYS.js.map +1 -0
  133. package/dist/{chunk-WIYQI35R.cjs → chunk-O7XHHTTP.cjs} +8 -8
  134. package/dist/{chunk-WIYQI35R.cjs.map → chunk-O7XHHTTP.cjs.map} +1 -1
  135. package/dist/{chunk-IILJGFI5.js → chunk-OAZUDUGX.js} +8 -6
  136. package/dist/chunk-OAZUDUGX.js.map +1 -0
  137. package/dist/{chunk-JHGMZX4I.cjs → chunk-OCV33S5Q.cjs} +6 -6
  138. package/dist/{chunk-JHGMZX4I.cjs.map → chunk-OCV33S5Q.cjs.map} +1 -1
  139. package/dist/{chunk-IYXCFIMP.js → chunk-ODYQYLO2.js} +33 -17
  140. package/dist/chunk-ODYQYLO2.js.map +1 -0
  141. package/dist/{chunk-FPVRQCCL.js → chunk-OHDIJOGG.js} +4 -4
  142. package/dist/{chunk-FPVRQCCL.js.map → chunk-OHDIJOGG.js.map} +1 -1
  143. package/dist/{chunk-GQVL2JKQ.cjs → chunk-OHKO5THF.cjs} +3 -3
  144. package/dist/{chunk-GQVL2JKQ.cjs.map → chunk-OHKO5THF.cjs.map} +1 -1
  145. package/dist/{chunk-LMBXJZLG.js → chunk-ON4JULCA.js} +3 -3
  146. package/dist/{chunk-LMBXJZLG.js.map → chunk-ON4JULCA.js.map} +1 -1
  147. package/dist/{chunk-A5YOIJKL.js → chunk-ONNY7UO4.js} +15 -15
  148. package/dist/{chunk-A5YOIJKL.js.map → chunk-ONNY7UO4.js.map} +1 -1
  149. package/dist/{chunk-DWCYEPTT.js → chunk-OSPTA4UR.js} +4 -4
  150. package/dist/{chunk-DWCYEPTT.js.map → chunk-OSPTA4UR.js.map} +1 -1
  151. package/dist/{chunk-FDUA6OGN.js → chunk-PFKRHNYV.js} +8 -8
  152. package/dist/chunk-PFKRHNYV.js.map +1 -0
  153. package/dist/{chunk-XMECP2MD.js → chunk-PHK4XBO5.js} +4 -4
  154. package/dist/{chunk-XMECP2MD.js.map → chunk-PHK4XBO5.js.map} +1 -1
  155. package/dist/{chunk-ZZJ4ZVYR.cjs → chunk-PJ6CC53R.cjs} +3 -3
  156. package/dist/{chunk-ZZJ4ZVYR.cjs.map → chunk-PJ6CC53R.cjs.map} +1 -1
  157. package/dist/{chunk-N3Y43KOB.js → chunk-PYHFVYVZ.js} +12 -5
  158. package/dist/chunk-PYHFVYVZ.js.map +1 -0
  159. package/dist/{chunk-XMCIXHGH.js → chunk-Q7G56ZIO.js} +39 -23
  160. package/dist/chunk-Q7G56ZIO.js.map +1 -0
  161. package/dist/{chunk-4PIW3Y5M.js → chunk-QAKASRE6.js} +34 -26
  162. package/dist/chunk-QAKASRE6.js.map +1 -0
  163. package/dist/{chunk-QGZC43L7.js → chunk-QAQOCS2J.js} +5 -5
  164. package/dist/{chunk-QGZC43L7.js.map → chunk-QAQOCS2J.js.map} +1 -1
  165. package/dist/{chunk-YVIH26FG.cjs → chunk-QKAYRHWP.cjs} +12 -12
  166. package/dist/{chunk-YVIH26FG.cjs.map → chunk-QKAYRHWP.cjs.map} +1 -1
  167. package/dist/{chunk-P3JEMF6E.cjs → chunk-RSCA5AZW.cjs} +4 -4
  168. package/dist/{chunk-P3JEMF6E.cjs.map → chunk-RSCA5AZW.cjs.map} +1 -1
  169. package/dist/{chunk-5Y5FSR4N.js → chunk-SCXELRRZ.js} +3 -3
  170. package/dist/{chunk-5Y5FSR4N.js.map → chunk-SCXELRRZ.js.map} +1 -1
  171. package/dist/{chunk-JWTCEWQ4.cjs → chunk-SNEQXSC5.cjs} +2 -2
  172. package/dist/{chunk-JWTCEWQ4.cjs.map → chunk-SNEQXSC5.cjs.map} +1 -1
  173. package/dist/{chunk-U5TTXN45.cjs → chunk-SRA2L3SQ.cjs} +9 -7
  174. package/dist/chunk-SRA2L3SQ.cjs.map +1 -0
  175. package/dist/{chunk-5U6GETAW.js → chunk-TQDZLRIE.js} +3 -3
  176. package/dist/chunk-TQDZLRIE.js.map +1 -0
  177. package/dist/{chunk-HK3AMH3Q.cjs → chunk-VROIMIHB.cjs} +11 -3
  178. package/dist/chunk-VROIMIHB.cjs.map +1 -0
  179. package/dist/{chunk-3SHLOF4V.cjs → chunk-VTR2KGLY.cjs} +9 -9
  180. package/dist/{chunk-3SHLOF4V.cjs.map → chunk-VTR2KGLY.cjs.map} +1 -1
  181. package/dist/{chunk-XO3WLK65.js → chunk-VVDE4CHU.js} +3 -3
  182. package/dist/{chunk-XO3WLK65.js.map → chunk-VVDE4CHU.js.map} +1 -1
  183. package/dist/{chunk-XS35KPBZ.cjs → chunk-WIAQQNFU.cjs} +4 -4
  184. package/dist/{chunk-XS35KPBZ.cjs.map → chunk-WIAQQNFU.cjs.map} +1 -1
  185. package/dist/{chunk-BOOJDRJO.js → chunk-WSNMQQ4P.js} +38 -3
  186. package/dist/chunk-WSNMQQ4P.js.map +1 -0
  187. package/dist/chunk-WYMO3IIK.js +136 -0
  188. package/dist/chunk-WYMO3IIK.js.map +1 -0
  189. package/dist/{chunk-SPWVKDGC.cjs → chunk-X5QRRMGB.cjs} +35 -27
  190. package/dist/chunk-X5QRRMGB.cjs.map +1 -0
  191. package/dist/{chunk-SH6B4MG5.js → chunk-XBXDUAIM.js} +4 -4
  192. package/dist/{chunk-SH6B4MG5.js.map → chunk-XBXDUAIM.js.map} +1 -1
  193. package/dist/{chunk-56QJHQ5C.cjs → chunk-XEEVDZDK.cjs} +5 -5
  194. package/dist/{chunk-56QJHQ5C.cjs.map → chunk-XEEVDZDK.cjs.map} +1 -1
  195. package/dist/{chunk-GXODR6V4.js → chunk-XOIIUO6O.js} +3 -3
  196. package/dist/{chunk-GXODR6V4.js.map → chunk-XOIIUO6O.js.map} +1 -1
  197. package/dist/{chunk-ELYGV32O.cjs → chunk-XTHMC76F.cjs} +5 -5
  198. package/dist/{chunk-ELYGV32O.cjs.map → chunk-XTHMC76F.cjs.map} +1 -1
  199. package/dist/{chunk-FF235PKY.cjs → chunk-XWZEECEX.cjs} +3 -3
  200. package/dist/chunk-XWZEECEX.cjs.map +1 -0
  201. package/dist/{chunk-TVLZZI5Q.cjs → chunk-YJP6DUFO.cjs} +9 -9
  202. package/dist/{chunk-TVLZZI5Q.cjs.map → chunk-YJP6DUFO.cjs.map} +1 -1
  203. package/dist/{chunk-EHQ77LL5.js → chunk-ZB54MTMQ.js} +3 -3
  204. package/dist/{chunk-EHQ77LL5.js.map → chunk-ZB54MTMQ.js.map} +1 -1
  205. package/dist/components/Accordion/index.cjs +2 -2
  206. package/dist/components/Accordion/index.js +1 -1
  207. package/dist/components/Alert/index.cjs +5 -5
  208. package/dist/components/Alert/index.d.cts +1 -1
  209. package/dist/components/Alert/index.d.ts +1 -1
  210. package/dist/components/Alert/index.js +1 -1
  211. package/dist/components/AlertDialog/index.cjs +6 -5
  212. package/dist/components/AlertDialog/index.js +5 -4
  213. package/dist/components/AudioPlayer/index.cjs +6 -6
  214. package/dist/components/AudioPlayer/index.js +1 -1
  215. package/dist/components/Autocomplete/index.cjs +4 -4
  216. package/dist/components/Autocomplete/index.js +3 -3
  217. package/dist/components/Avatar/index.cjs +5 -5
  218. package/dist/components/Avatar/index.js +1 -1
  219. package/dist/components/Badge/index.d.cts +1 -1
  220. package/dist/components/Badge/index.d.ts +1 -1
  221. package/dist/components/Breadcrumb/index.cjs +3 -3
  222. package/dist/components/Breadcrumb/index.js +1 -1
  223. package/dist/components/Button/index.cjs +3 -3
  224. package/dist/components/Button/index.js +1 -1
  225. package/dist/components/Card/index.d.cts +2 -2
  226. package/dist/components/Card/index.d.ts +2 -2
  227. package/dist/components/CountryCodeDropdown/index.cjs +6 -6
  228. package/dist/components/CountryCodeDropdown/index.d.cts +11 -1
  229. package/dist/components/CountryCodeDropdown/index.d.ts +11 -1
  230. package/dist/components/CountryCodeDropdown/index.js +3 -3
  231. package/dist/components/CustomizableDashboard/index.cjs +11 -11
  232. package/dist/components/CustomizableDashboard/index.js +4 -4
  233. package/dist/components/DateInput/index.cjs +4 -4
  234. package/dist/components/DateInput/index.js +3 -3
  235. package/dist/components/Dropdown/index.cjs +13 -9
  236. package/dist/components/Dropdown/index.d.cts +38 -2
  237. package/dist/components/Dropdown/index.d.ts +38 -2
  238. package/dist/components/Dropdown/index.js +3 -3
  239. package/dist/components/FloatingWindow/index.cjs +4 -4
  240. package/dist/components/FloatingWindow/index.js +2 -2
  241. package/dist/components/GlossaryTooltip/index.cjs +4 -4
  242. package/dist/components/GlossaryTooltip/index.js +3 -3
  243. package/dist/components/KeyboardShortcutsOverlay/index.cjs +6 -5
  244. package/dist/components/KeyboardShortcutsOverlay/index.js +4 -3
  245. package/dist/components/Markdown/index.cjs +19 -19
  246. package/dist/components/Markdown/index.js +7 -7
  247. package/dist/components/MediaEditor/index.cjs +15 -14
  248. package/dist/components/MediaEditor/index.js +10 -9
  249. package/dist/components/MediaPlayer/index.cjs +6 -6
  250. package/dist/components/MediaPlayer/index.js +3 -3
  251. package/dist/components/Modal/index.cjs +11 -10
  252. package/dist/components/Modal/index.d.cts +1 -1
  253. package/dist/components/Modal/index.d.ts +1 -1
  254. package/dist/components/Modal/index.js +3 -2
  255. package/dist/components/Pagination/index.cjs +4 -4
  256. package/dist/components/Pagination/index.d.cts +1 -1
  257. package/dist/components/Pagination/index.d.ts +1 -1
  258. package/dist/components/Pagination/index.js +1 -1
  259. package/dist/components/PhoneInput/index.cjs +4 -4
  260. package/dist/components/PhoneInput/index.js +2 -2
  261. package/dist/components/Progress/index.d.cts +1 -1
  262. package/dist/components/Progress/index.d.ts +1 -1
  263. package/dist/components/QuickAction/index.cjs +6 -6
  264. package/dist/components/QuickAction/index.js +1 -1
  265. package/dist/components/RecordButton/index.d.cts +1 -1
  266. package/dist/components/RecordButton/index.d.ts +1 -1
  267. package/dist/components/RichTextEditor/index.cjs +9 -9
  268. package/dist/components/RichTextEditor/index.js +6 -6
  269. package/dist/components/SectionSpyNav/index.cjs +4 -4
  270. package/dist/components/SectionSpyNav/index.js +3 -3
  271. package/dist/components/Select/index.cjs +5 -5
  272. package/dist/components/Select/index.js +3 -3
  273. package/dist/components/Sheet/index.cjs +11 -11
  274. package/dist/components/Sheet/index.js +2 -2
  275. package/dist/components/Slider/index.cjs +5 -5
  276. package/dist/components/Slider/index.d.cts +2 -2
  277. package/dist/components/Slider/index.d.ts +2 -2
  278. package/dist/components/Slider/index.js +1 -1
  279. package/dist/components/SourceTip/index.cjs +4 -4
  280. package/dist/components/SourceTip/index.js +3 -3
  281. package/dist/components/SuperChat/index.cjs +264 -106
  282. package/dist/components/SuperChat/index.cjs.map +1 -1
  283. package/dist/components/SuperChat/index.d.cts +13 -5
  284. package/dist/components/SuperChat/index.d.ts +13 -5
  285. package/dist/components/SuperChat/index.js +255 -97
  286. package/dist/components/SuperChat/index.js.map +1 -1
  287. package/dist/components/SuperChat/plugins/index.cjs +7 -7
  288. package/dist/components/SuperChat/plugins/index.cjs.map +1 -1
  289. package/dist/components/SuperChat/plugins/index.d.cts +2 -2
  290. package/dist/components/SuperChat/plugins/index.d.ts +2 -2
  291. package/dist/components/SuperChat/plugins/index.js +6 -6
  292. package/dist/components/SuperChat/plugins/index.js.map +1 -1
  293. package/dist/components/Text/index.d.cts +1 -1
  294. package/dist/components/Text/index.d.ts +1 -1
  295. package/dist/components/ThemeProvider/index.cjs +9 -9
  296. package/dist/components/ThemeProvider/index.d.cts +1 -1
  297. package/dist/components/ThemeProvider/index.d.ts +1 -1
  298. package/dist/components/ThemeProvider/index.js +3 -3
  299. package/dist/components/Toggle/index.d.cts +1 -1
  300. package/dist/components/Toggle/index.d.ts +1 -1
  301. package/dist/components/Tooltip/index.cjs +3 -3
  302. package/dist/components/Tooltip/index.js +2 -2
  303. package/dist/components/TranscriptView/index.cjs +3 -3
  304. package/dist/components/TranscriptView/index.js +1 -1
  305. package/dist/datavis.cjs +2 -2
  306. package/dist/datavis.js +1 -1
  307. package/dist/esheet.cjs +15 -14
  308. package/dist/esheet.cjs.map +1 -1
  309. package/dist/esheet.js +12 -11
  310. package/dist/esheet.js.map +1 -1
  311. package/dist/hooks/index.cjs +3 -3
  312. package/dist/hooks/index.d.cts +1 -1
  313. package/dist/hooks/index.d.ts +1 -1
  314. package/dist/hooks/index.js +2 -2
  315. package/dist/index.cjs +2399 -1640
  316. package/dist/index.cjs.map +1 -1
  317. package/dist/index.d.cts +278 -43
  318. package/dist/index.d.ts +278 -43
  319. package/dist/index.js +1296 -574
  320. package/dist/index.js.map +1 -1
  321. package/dist/motion.cjs +87 -0
  322. package/dist/motion.cjs.map +1 -0
  323. package/dist/motion.d.cts +52 -0
  324. package/dist/motion.d.ts +52 -0
  325. package/dist/motion.js +50 -0
  326. package/dist/motion.js.map +1 -0
  327. package/dist/styles/init.css +25 -0
  328. package/dist/styles.css +1 -1
  329. package/dist/tailwind-preset.cjs +4 -4
  330. package/dist/tailwind-preset.js +1 -1
  331. package/dist/{types-BoTeTPdH.d.ts → types-9vK_YdEb.d.ts} +12 -1
  332. package/dist/{types-DyIB9HYT.d.cts → types-DZDroUW8.d.cts} +12 -1
  333. package/dist/{useAnchoredPosition-C7PNglzD.d.ts → useAnchoredPosition-CKwLSQW8.d.cts} +10 -3
  334. package/dist/{useAnchoredPosition-C7PNglzD.d.cts → useAnchoredPosition-CKwLSQW8.d.ts} +10 -3
  335. package/package.json +21 -2
  336. package/dist/CsvBlock-OTFG3PYZ.cjs +0 -15
  337. package/dist/CsvBlock-PUSTBQ5B.js +0 -6
  338. package/dist/HtmlPreviewBlock-QHLSIMWJ.cjs +0 -15
  339. package/dist/HtmlPreviewBlock-YF2YVKKX.js +0 -6
  340. package/dist/MermaidBlock-H3TWNC4D.js +0 -6
  341. package/dist/MermaidBlock-ZLLBO3VY.cjs +0 -15
  342. package/dist/SurveyBlock-JLHS3YQD.js +0 -6
  343. package/dist/SurveyBlock-M2ZRTGVJ.cjs +0 -15
  344. package/dist/chunk-26DPQUSB.cjs.map +0 -1
  345. package/dist/chunk-3PXOIAF6.js +0 -3
  346. package/dist/chunk-4AE2L6AO.cjs.map +0 -1
  347. package/dist/chunk-4PIW3Y5M.js.map +0 -1
  348. package/dist/chunk-5JZIDILK.cjs.map +0 -1
  349. package/dist/chunk-5U6GETAW.js.map +0 -1
  350. package/dist/chunk-6EWJGRC3.js.map +0 -1
  351. package/dist/chunk-7L7OPISJ.cjs.map +0 -1
  352. package/dist/chunk-AESFOMSH.js.map +0 -1
  353. package/dist/chunk-BOOJDRJO.js.map +0 -1
  354. package/dist/chunk-BOW7ZGI2.cjs.map +0 -1
  355. package/dist/chunk-D2GID3YK.js.map +0 -1
  356. package/dist/chunk-DG7KE4YJ.cjs.map +0 -1
  357. package/dist/chunk-EKRT7K2K.js.map +0 -1
  358. package/dist/chunk-EPQPUFS6.cjs.map +0 -1
  359. package/dist/chunk-FDUA6OGN.js.map +0 -1
  360. package/dist/chunk-FDV7EQWH.js.map +0 -1
  361. package/dist/chunk-FF235PKY.cjs.map +0 -1
  362. package/dist/chunk-H7QSGFMZ.cjs.map +0 -1
  363. package/dist/chunk-HK3AMH3Q.cjs.map +0 -1
  364. package/dist/chunk-IILJGFI5.js.map +0 -1
  365. package/dist/chunk-IYXCFIMP.js.map +0 -1
  366. package/dist/chunk-JHZW3Y62.js.map +0 -1
  367. package/dist/chunk-L6D4CKLV.cjs.map +0 -1
  368. package/dist/chunk-LZU7YBXG.js.map +0 -1
  369. package/dist/chunk-MYFZYUPR.cjs.map +0 -1
  370. package/dist/chunk-N3Y43KOB.js.map +0 -1
  371. package/dist/chunk-P2VTQ5AR.cjs.map +0 -1
  372. package/dist/chunk-RDGRKYQ5.cjs.map +0 -1
  373. package/dist/chunk-RYQ3S3KO.cjs.map +0 -1
  374. package/dist/chunk-SEPYBAML.js.map +0 -1
  375. package/dist/chunk-SK7H3Z67.cjs.map +0 -1
  376. package/dist/chunk-SPWVKDGC.cjs.map +0 -1
  377. package/dist/chunk-U5TTXN45.cjs.map +0 -1
  378. package/dist/chunk-XMCIXHGH.js.map +0 -1
  379. package/dist/chunk-XWYKLEKG.js.map +0 -1
  380. package/dist/chunk-Y6YSJPVC.js.map +0 -1
@@ -29,7 +29,7 @@ var React__namespace = /*#__PURE__*/_interopNamespace(React);
29
29
  var alertVariants = classVarianceAuthority.cva(
30
30
  [
31
31
  "relative w-full rounded-lg border p-4",
32
- "[&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-current",
32
+ "[&>svg]:absolute [&>svg]:start-4 [&>svg]:top-4 [&>svg]:text-current",
33
33
  "[&>svg+div]:translate-y-[-3px]"
34
34
  ],
35
35
  {
@@ -66,8 +66,8 @@ var Alert = React__namespace.forwardRef(
66
66
  "data-slot": "alert",
67
67
  className: chunkS5RVSXDV_cjs.cn(
68
68
  alertVariants({ variant }),
69
- React__namespace.isValidElement(icon) && "pl-11",
70
- dismissible && "pr-10",
69
+ React__namespace.isValidElement(icon) && "ps-11",
70
+ dismissible && "pe-10",
71
71
  className
72
72
  ),
73
73
  ...props,
@@ -81,7 +81,7 @@ var Alert = React__namespace.forwardRef(
81
81
  "data-slot": "alert-dismiss",
82
82
  onClick: onDismiss,
83
83
  className: chunkS5RVSXDV_cjs.cn(
84
- "absolute top-2 right-2 rounded-md p-1",
84
+ "absolute end-2 top-2 rounded-md p-1",
85
85
  "opacity-70 hover:opacity-100",
86
86
  "focus-visible:ring-ring focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none",
87
87
  "transition-opacity"
@@ -122,5 +122,5 @@ exports.Alert = Alert;
122
122
  exports.AlertDescription = AlertDescription;
123
123
  exports.AlertTitle = AlertTitle;
124
124
  exports.alertVariants = alertVariants;
125
- //# sourceMappingURL=chunk-EPQPUFS6.cjs.map
126
- //# sourceMappingURL=chunk-EPQPUFS6.cjs.map
125
+ //# sourceMappingURL=chunk-NYJIXR4Y.cjs.map
126
+ //# sourceMappingURL=chunk-NYJIXR4Y.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Alert/Alert.tsx"],"names":["cva","React","jsxs","cn","jsx","X"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,IAAM,aAAA,GAAgBA,0BAAA;AAAA,EACpB;AAAA,IACE,uCAAA;AAAA,IACA,qEAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,6CAAA;AAAA,QACT,IAAA,EAAM,qHAAA;AAAA,QACN,OAAA,EACE,yGAAA;AAAA,QACF,OAAA,EACE,+GAAA;AAAA,QACF,MAAA,EACE;AAAA;AACJ,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ;AA2BA,IAAM,KAAA,GAAcC,gBAAA,CAAA,UAAA;AAAA,EAClB,CACE;AAAA,IACE,SAAA;AAAA,IACA,OAAA;AAAA,IACA,IAAA;AAAA,IACA,WAAA;AAAA,IACA,SAAA;AAAA,IACA,YAAA,GAAe,eAAA;AAAA,IACf,QAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,uBACEC,eAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,IAAA,EAAK,OAAA;AAAA,QACL,WAAA,EAAU,OAAA;AAAA,QACV,SAAA,EAAWC,oBAAA;AAAA,UACT,aAAA,CAAc,EAAE,OAAA,EAAS,CAAA;AAAA,UACnBF,gBAAA,CAAA,cAAA,CAAe,IAAI,CAAA,IAAK,OAAA;AAAA,UAC9B,WAAA,IAAe,OAAA;AAAA,UACf;AAAA,SACF;AAAA,QACC,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAMA,gBAAA,CAAA,cAAA,CAAe,IAAI,CAAA,IAAK,IAAA;AAAA,0BAC/BG,cAAA,CAAC,SAAK,QAAA,EAAS,CAAA;AAAA,UACd,WAAA,oBACCA,cAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,WAAA,EAAU,eAAA;AAAA,cACV,OAAA,EAAS,SAAA;AAAA,cACT,SAAA,EAAWD,oBAAA;AAAA,gBACT,qCAAA;AAAA,gBACA,8BAAA;AAAA,gBACA,qGAAA;AAAA,gBACA;AAAA,eACF;AAAA,cACA,YAAA,EAAY,YAAA;AAAA,cAEZ,QAAA,kBAAAC,cAAA,CAACC,aAAA,EAAA,EAAE,IAAA,EAAM,EAAA,EAAI,eAAY,MAAA,EAAO;AAAA;AAAA;AAClC;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AAEA,KAAA,CAAM,WAAA,GAAc,OAAA;AAKpB,IAAM,UAAA,GAAmBJ,4BAGvB,CAAC,EAAE,WAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpCG,cAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,WAAA,EAAU,aAAA;AAAA,IACV,SAAA,EAAWD,oBAAA,CAAG,gDAAA,EAAkD,SAAS,CAAA;AAAA,IACxE,GAAG,KAAA;AAAA,IAEH;AAAA;AACH,CACD;AAED,UAAA,CAAW,WAAA,GAAc,YAAA;AAKzB,IAAM,gBAAA,GAAyBF,4BAG7B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BG,cAAA;AAAA,EAAC,GAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,WAAA,EAAU,mBAAA;AAAA,IACV,SAAA,EAAWD,oBAAA,CAAG,+BAAA,EAAiC,SAAS,CAAA;AAAA,IACvD,GAAG;AAAA;AACN,CACD;AAED,gBAAA,CAAiB,WAAA,GAAc,kBAAA","file":"chunk-NYJIXR4Y.cjs","sourcesContent":["import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { X } from 'lucide-react';\nimport { cn } from '../../utils/cn';\n\nconst alertVariants = cva(\n [\n 'relative w-full rounded-lg border p-4',\n '[&>svg]:absolute [&>svg]:start-4 [&>svg]:top-4 [&>svg]:text-current',\n '[&>svg+div]:translate-y-[-3px]',\n ],\n {\n variants: {\n variant: {\n default: 'bg-background text-foreground border-border',\n info: 'bg-primary-50 text-primary-900 border-primary-200 dark:bg-primary-950 dark:text-primary-100 dark:border-primary-800',\n success:\n 'bg-green-50 text-green-900 border-green-200 dark:bg-green-950 dark:text-green-100 dark:border-green-800',\n warning:\n 'bg-yellow-50 text-yellow-900 border-yellow-200 dark:bg-yellow-950 dark:text-yellow-100 dark:border-yellow-800',\n danger:\n 'bg-red-50 text-red-900 border-red-200 dark:bg-red-950 dark:text-red-100 dark:border-red-800',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport interface AlertProps\n extends\n React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof alertVariants> {\n /** Icon to display in the alert */\n icon?: React.ReactElement | null;\n /** Whether the alert can be dismissed */\n dismissible?: boolean;\n /** Callback when the alert is dismissed */\n onDismiss?: () => void;\n /** Accessible label for the dismiss button */\n dismissLabel?: string;\n}\n\n/**\n * An alert component for displaying important messages.\n *\n * @example\n * ```tsx\n * <Alert variant=\"success\">\n * <AlertTitle>Success!</AlertTitle>\n * <AlertDescription>Your changes have been saved.</AlertDescription>\n * </Alert>\n * ```\n */\nconst Alert = React.forwardRef<HTMLDivElement, AlertProps>(\n (\n {\n className,\n variant,\n icon,\n dismissible,\n onDismiss,\n dismissLabel = 'Dismiss alert',\n children,\n ...props\n },\n ref\n ) => {\n return (\n <div\n ref={ref}\n role=\"alert\"\n data-slot=\"alert\"\n className={cn(\n alertVariants({ variant }),\n React.isValidElement(icon) && 'ps-11',\n dismissible && 'pe-10',\n className\n )}\n {...props}\n >\n {React.isValidElement(icon) && icon}\n <div>{children}</div>\n {dismissible && (\n <button\n type=\"button\"\n data-slot=\"alert-dismiss\"\n onClick={onDismiss}\n className={cn(\n 'absolute end-2 top-2 rounded-md p-1',\n 'opacity-70 hover:opacity-100',\n 'focus-visible:ring-ring focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none',\n 'transition-opacity'\n )}\n aria-label={dismissLabel}\n >\n <X size={16} aria-hidden=\"true\" />\n </button>\n )}\n </div>\n );\n }\n);\n\nAlert.displayName = 'Alert';\n\n/**\n * Title for an Alert component.\n */\nconst AlertTitle = React.forwardRef<\n globalThis.HTMLHeadingElement,\n React.HTMLAttributes<globalThis.HTMLHeadingElement>\n>(({ className, children, ...props }, ref) => (\n <h5\n ref={ref}\n data-slot=\"alert-title\"\n className={cn('mb-1 leading-none font-semibold tracking-tight', className)}\n {...props}\n >\n {children}\n </h5>\n));\n\nAlertTitle.displayName = 'AlertTitle';\n\n/**\n * Description text for an Alert component.\n */\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n data-slot=\"alert-description\"\n className={cn('text-sm [&_p]:leading-relaxed', className)}\n {...props}\n />\n));\n\nAlertDescription.displayName = 'AlertDescription';\n\nexport { Alert, AlertTitle, AlertDescription, alertVariants };\n"]}
@@ -1,9 +1,9 @@
1
- import { useAnchoredPosition } from './chunk-BOOJDRJO.js';
2
1
  import { cn } from './chunk-TQONQSJO.js';
3
- import * as React2 from 'react';
2
+ import { useAnchoredPosition } from './chunk-WSNMQQ4P.js';
3
+ import * as React3 from 'react';
4
4
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
5
- import { createPortal } from 'react-dom';
6
5
  import { cva } from 'class-variance-authority';
6
+ import { createPortal } from 'react-dom';
7
7
 
8
8
  function getFileType(mimeType) {
9
9
  if (mimeType.startsWith("image/")) return "image";
@@ -49,6 +49,7 @@ function AttachmentPreviewItem({
49
49
  attachment,
50
50
  onRemove,
51
51
  onRetry,
52
+ disabled = false,
52
53
  className
53
54
  }) {
54
55
  const { file, previewUrl, type, state, progress } = attachment;
@@ -68,7 +69,20 @@ function AttachmentPreviewItem({
68
69
  ),
69
70
  children: [
70
71
  (isImage || isVideo) && previewUrl ? /* @__PURE__ */ jsxs("div", { className: "relative h-20 w-20", children: [
71
- /* @__PURE__ */ jsx(
72
+ isVideo ? /* @__PURE__ */ jsx(
73
+ "video",
74
+ {
75
+ src: previewUrl,
76
+ "aria-label": file.name,
77
+ muted: true,
78
+ playsInline: true,
79
+ preload: "metadata",
80
+ className: cn(
81
+ "h-full w-full object-cover",
82
+ (isUploading || isFailed) && "opacity-50"
83
+ )
84
+ }
85
+ ) : /* @__PURE__ */ jsx(
72
86
  "img",
73
87
  {
74
88
  src: previewUrl,
@@ -111,7 +125,7 @@ function AttachmentPreviewItem({
111
125
  )
112
126
  }
113
127
  ),
114
- /* @__PURE__ */ jsx("span", { className: "mt-1 max-w-full truncate px-1 text-xs text-neutral-500", children: file.name.split(".").pop()?.toUpperCase() })
128
+ /* @__PURE__ */ jsx("span", { className: "mt-1 max-w-full truncate px-1 text-xs text-neutral-600 dark:text-neutral-400", children: file.name.split(".").pop()?.toUpperCase() })
115
129
  ] })
116
130
  ),
117
131
  isUploading && progress !== void 0 && /* @__PURE__ */ jsx("div", { className: "absolute inset-0 flex items-center justify-center bg-black/50", children: /* @__PURE__ */ jsxs("div", { className: "text-center text-white", children: [
@@ -175,7 +189,8 @@ function AttachmentPreviewItem({
175
189
  {
176
190
  type: "button",
177
191
  onClick: onRetry,
178
- className: "mt-1 text-xs text-white underline hover:no-underline",
192
+ disabled,
193
+ className: "mt-1 text-xs text-white underline hover:no-underline disabled:no-underline disabled:opacity-50",
179
194
  children: "Retry"
180
195
  }
181
196
  )
@@ -185,13 +200,15 @@ function AttachmentPreviewItem({
185
200
  {
186
201
  type: "button",
187
202
  onClick: onRemove,
203
+ disabled,
188
204
  className: cn(
189
- "absolute -top-1 -right-1 z-10",
205
+ "absolute -end-1 -top-1 z-10",
190
206
  "rounded-full p-1",
191
207
  "bg-neutral-900 text-white",
192
208
  "opacity-0 group-hover:opacity-100",
193
209
  "focus:ring-primary-500 focus:opacity-100 focus:ring-2 focus:outline-none",
194
- "transition-opacity"
210
+ "transition-opacity",
211
+ "disabled:cursor-not-allowed disabled:group-hover:opacity-0"
195
212
  ),
196
213
  "aria-label": `Remove ${file.name}`,
197
214
  children: /* @__PURE__ */ jsx(
@@ -219,7 +236,7 @@ function AttachmentPreviewItem({
219
236
  "div",
220
237
  {
221
238
  className: cn(
222
- "absolute right-0 bottom-0 left-0",
239
+ "absolute start-0 end-0 bottom-0",
223
240
  "bg-black/70 px-1 py-0.5",
224
241
  "opacity-0 group-hover:opacity-100",
225
242
  "transition-opacity"
@@ -232,7 +249,7 @@ function AttachmentPreviewItem({
232
249
  );
233
250
  }
234
251
  AttachmentPreviewItem.displayName = "AttachmentPreviewItem";
235
- var AttachmentPicker = React2.forwardRef(
252
+ var AttachmentPicker = React3.forwardRef(
236
253
  ({
237
254
  onFilesSelected,
238
255
  acceptedTypes = ["image/*", "video/*", ".pdf", ".doc", ".docx"],
@@ -245,8 +262,8 @@ var AttachmentPicker = React2.forwardRef(
245
262
  className,
246
263
  children
247
264
  }, ref) => {
248
- const inputRef = React2.useRef(null);
249
- React2.useImperativeHandle(ref, () => inputRef.current);
265
+ const inputRef = React3.useRef(null);
266
+ React3.useImperativeHandle(ref, () => inputRef.current);
250
267
  const handleClick = () => {
251
268
  inputRef.current?.click();
252
269
  };
@@ -335,11 +352,12 @@ function DragDropZone({
335
352
  maxFiles = 10,
336
353
  disabled = false,
337
354
  onError,
355
+ overlayLabel = "Drop files here",
338
356
  children,
339
357
  className
340
358
  }) {
341
- const [isDragging, setIsDragging] = React2.useState(false);
342
- const dragCounterRef = React2.useRef(0);
359
+ const [isDragging, setIsDragging] = React3.useState(false);
360
+ const dragCounterRef = React3.useRef(0);
343
361
  const handleDragEnter = (event) => {
344
362
  event.preventDefault();
345
363
  event.stopPropagation();
@@ -426,7 +444,7 @@ function DragDropZone({
426
444
  )
427
445
  }
428
446
  ),
429
- /* @__PURE__ */ jsx("p", { className: "text-primary-700 dark:text-primary-300 mt-2 text-sm font-medium", children: "Drop files here" })
447
+ /* @__PURE__ */ jsx("p", { className: "text-primary-700 dark:text-primary-300 mt-2 text-sm font-medium", children: overlayLabel })
430
448
  ] })
431
449
  }
432
450
  )
@@ -441,7 +459,7 @@ function CameraButton({
441
459
  disabled = false,
442
460
  className
443
461
  }) {
444
- const inputRef = React2.useRef(null);
462
+ const inputRef = React3.useRef(null);
445
463
  const handleClick = () => {
446
464
  inputRef.current?.click();
447
465
  };
@@ -526,6 +544,162 @@ function activeMentionQuery(value, caret) {
526
544
  const query = match[2];
527
545
  return { query, start: caret - query.length - 1 };
528
546
  }
547
+ function useMentionAutocomplete({
548
+ options,
549
+ value,
550
+ setValue,
551
+ textareaRef
552
+ }) {
553
+ const enabled = !!options && options.length > 0;
554
+ const [mention, setMention] = React3.useState(null);
555
+ const [highlight, setHighlight] = React3.useState(0);
556
+ const listId = React3.useId();
557
+ const optionId = React3.useCallback(
558
+ (index) => `${listId}-option-${index}`,
559
+ [listId]
560
+ );
561
+ const suggestions = React3.useMemo(() => {
562
+ if (!mention || !options) return [];
563
+ const q = mention.query.toLowerCase();
564
+ return options.filter((o) => o.label.toLowerCase().includes(q));
565
+ }, [mention, options]);
566
+ const menuOpen = enabled && mention !== null && suggestions.length > 0;
567
+ const {
568
+ anchorRef,
569
+ floatingRef,
570
+ style: menuStyle
571
+ } = useAnchoredPosition({
572
+ open: menuOpen,
573
+ placement: "top-start",
574
+ maxHeight: 224
575
+ });
576
+ const clampedHighlight = menuOpen ? Math.min(highlight, suggestions.length - 1) : -1;
577
+ const activeOptionId = menuOpen ? optionId(clampedHighlight) : void 0;
578
+ const sync = React3.useCallback(
579
+ (nextValue, caret) => {
580
+ if (!enabled) return;
581
+ setMention(activeMentionQuery(nextValue, caret));
582
+ setHighlight(0);
583
+ },
584
+ [enabled]
585
+ );
586
+ const insert = (option) => {
587
+ if (!mention) return;
588
+ const insertValue = option.value ?? option.label.split(" ")[0];
589
+ const before = value.slice(0, mention.start);
590
+ const after = value.slice(mention.start + 1 + mention.query.length);
591
+ const insertText = `@${insertValue} `;
592
+ setValue(before + insertText + after);
593
+ setMention(null);
594
+ const caret = before.length + insertText.length;
595
+ requestAnimationFrame(() => {
596
+ const el = textareaRef.current;
597
+ if (el) {
598
+ el.focus();
599
+ el.setSelectionRange(caret, caret);
600
+ }
601
+ });
602
+ };
603
+ const handleKeyDown = (event) => {
604
+ if (!menuOpen) return false;
605
+ if (event.key === "ArrowDown") {
606
+ event.preventDefault();
607
+ setHighlight(
608
+ (h) => (Math.min(h, suggestions.length - 1) + 1) % suggestions.length
609
+ );
610
+ return true;
611
+ }
612
+ if (event.key === "ArrowUp") {
613
+ event.preventDefault();
614
+ setHighlight(
615
+ (h) => (Math.min(h, suggestions.length - 1) - 1 + suggestions.length) % suggestions.length
616
+ );
617
+ return true;
618
+ }
619
+ if (event.key === "Enter" || event.key === "Tab") {
620
+ event.preventDefault();
621
+ const chosen = suggestions[clampedHighlight];
622
+ if (chosen) insert(chosen);
623
+ return true;
624
+ }
625
+ if (event.key === "Escape") {
626
+ event.preventDefault();
627
+ setMention(null);
628
+ return true;
629
+ }
630
+ return false;
631
+ };
632
+ const inputProps = enabled ? {
633
+ "aria-controls": menuOpen ? listId : void 0,
634
+ "aria-activedescendant": activeOptionId,
635
+ "aria-autocomplete": "list"
636
+ } : {};
637
+ return {
638
+ enabled,
639
+ menuOpen,
640
+ suggestions,
641
+ highlight: clampedHighlight,
642
+ listId,
643
+ optionId,
644
+ anchorRef,
645
+ floatingRef,
646
+ menuStyle,
647
+ sync,
648
+ insert,
649
+ setHighlight,
650
+ handleKeyDown,
651
+ inputProps
652
+ };
653
+ }
654
+ function MentionMenu({
655
+ mention,
656
+ label = "Mention",
657
+ dataSlot = "composer-mention-list"
658
+ }) {
659
+ if (!mention.menuOpen) return null;
660
+ return createPortal(
661
+ /* @__PURE__ */ jsx(
662
+ "ul",
663
+ {
664
+ ref: mention.floatingRef,
665
+ style: mention.menuStyle,
666
+ id: mention.listId,
667
+ role: "listbox",
668
+ "aria-label": label,
669
+ "data-slot": dataSlot,
670
+ className: "w-64 overflow-y-auto rounded-lg border border-neutral-200 bg-white py-1 shadow-lg dark:border-neutral-700 dark:bg-neutral-800",
671
+ children: mention.suggestions.map((option, i) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(
672
+ "button",
673
+ {
674
+ type: "button",
675
+ id: mention.optionId(i),
676
+ role: "option",
677
+ "aria-selected": i === mention.highlight,
678
+ onMouseDown: (e) => {
679
+ e.preventDefault();
680
+ mention.insert(option);
681
+ },
682
+ onMouseEnter: () => mention.setHighlight(i),
683
+ className: cn(
684
+ "flex w-full items-center gap-2 px-3 py-1.5 text-start text-sm",
685
+ i === mention.highlight ? "bg-primary-100 text-primary-900 dark:bg-primary-900/40 dark:text-primary-100" : "text-neutral-700 dark:text-neutral-200"
686
+ ),
687
+ children: [
688
+ option.icon,
689
+ /* @__PURE__ */ jsxs("span", { className: "min-w-0 flex-1 truncate", children: [
690
+ /* @__PURE__ */ jsx("span", { className: "font-medium", children: option.label }),
691
+ option.description && /* @__PURE__ */ jsx("span", { className: "ms-1 text-xs text-neutral-400", children: option.description })
692
+ ] }),
693
+ option.meta && /* @__PURE__ */ jsx("span", { className: "text-[10px] text-neutral-400", children: option.meta })
694
+ ]
695
+ }
696
+ ) }, option.id))
697
+ }
698
+ ),
699
+ document.body
700
+ );
701
+ }
702
+ MentionMenu.displayName = "MentionMenu";
529
703
  function isFileAccepted(file, accepted) {
530
704
  if (!accepted || accepted.length === 0) return true;
531
705
  const mime = file.type;
@@ -597,7 +771,7 @@ var sendButtonVariants = cva(
597
771
  }
598
772
  }
599
773
  );
600
- var SendButton = React2.forwardRef(
774
+ var SendButton = React3.forwardRef(
601
775
  ({ className, variant, canSend, isLoading, disabled, ...props }, ref) => {
602
776
  return /* @__PURE__ */ jsx(
603
777
  "button",
@@ -662,7 +836,7 @@ var SendButton = React2.forwardRef(
662
836
  }
663
837
  );
664
838
  SendButton.displayName = "SendButton";
665
- var MessageComposer = React2.forwardRef(
839
+ var MessageComposer = React3.forwardRef(
666
840
  ({
667
841
  onSend,
668
842
  onTypingStart,
@@ -688,11 +862,11 @@ var MessageComposer = React2.forwardRef(
688
862
  mentionOptions,
689
863
  className
690
864
  }, ref) => {
691
- const textareaRef = React2.useRef(null);
692
- const [internalContent, setInternalContent] = React2.useState("");
865
+ const textareaRef = React3.useRef(null);
866
+ const [internalContent, setInternalContent] = React3.useState("");
693
867
  const isControlled = controlledValue !== void 0;
694
868
  const content = isControlled ? controlledValue : internalContent;
695
- const setContent = React2.useCallback(
869
+ const setContent = React3.useCallback(
696
870
  (val) => {
697
871
  if (isControlled) {
698
872
  const newVal = typeof val === "function" ? val(controlledValue) : val;
@@ -703,20 +877,20 @@ var MessageComposer = React2.forwardRef(
703
877
  },
704
878
  [isControlled, controlledValue, onValueChange]
705
879
  );
706
- const [attachments, setAttachments] = React2.useState(
880
+ const [attachments, setAttachments] = React3.useState(
707
881
  []
708
882
  );
709
- const [isTyping, setIsTyping] = React2.useState(false);
710
- const typingTimeoutRef = React2.useRef(null);
711
- React2.useImperativeHandle(ref, () => textareaRef.current);
712
- React2.useEffect(() => {
883
+ const [isTyping, setIsTyping] = React3.useState(false);
884
+ const typingTimeoutRef = React3.useRef(null);
885
+ React3.useImperativeHandle(ref, () => textareaRef.current);
886
+ React3.useEffect(() => {
713
887
  const textarea = textareaRef.current;
714
888
  if (textarea) {
715
889
  textarea.style.height = "auto";
716
890
  textarea.style.height = `${Math.min(textarea.scrollHeight, 150)}px`;
717
891
  }
718
892
  }, [content]);
719
- React2.useEffect(() => {
893
+ React3.useEffect(() => {
720
894
  if (content.length > 0 && !isTyping) {
721
895
  setIsTyping(true);
722
896
  onTypingStart?.();
@@ -736,63 +910,22 @@ var MessageComposer = React2.forwardRef(
736
910
  }
737
911
  };
738
912
  }, [content, isTyping, onTypingStart, onTypingStop]);
739
- React2.useEffect(() => {
913
+ React3.useEffect(() => {
740
914
  if (autoFocus) {
741
915
  textareaRef.current?.focus();
742
916
  }
743
917
  }, [autoFocus]);
744
- React2.useEffect(() => {
918
+ React3.useEffect(() => {
745
919
  if (replyTo) {
746
920
  textareaRef.current?.focus();
747
921
  }
748
922
  }, [replyTo]);
749
- const mentionsEnabled = !!mentionOptions && mentionOptions.length > 0;
750
- const [mention, setMention] = React2.useState(null);
751
- const [mentionHighlight, setMentionHighlight] = React2.useState(0);
752
- const mentionListId = React2.useId();
753
- const mentionOptionId = (i) => `${mentionListId}-option-${i}`;
754
- const mentionSuggestions = React2.useMemo(() => {
755
- if (!mention || !mentionOptions) return [];
756
- const q = mention.query.toLowerCase();
757
- return mentionOptions.filter((o) => o.label.toLowerCase().includes(q));
758
- }, [mention, mentionOptions]);
759
- const mentionMenuOpen = mentionsEnabled && mention !== null && mentionSuggestions.length > 0;
760
- const {
761
- anchorRef: mentionAnchorRef,
762
- floatingRef: mentionFloatingRef,
763
- style: mentionStyle
764
- } = useAnchoredPosition({
765
- open: mentionMenuOpen,
766
- placement: "top-start",
767
- maxHeight: 224
923
+ const mention = useMentionAutocomplete({
924
+ options: mentionOptions,
925
+ value: content,
926
+ setValue: setContent,
927
+ textareaRef
768
928
  });
769
- const clampedMentionHighlight = mentionMenuOpen ? Math.min(mentionHighlight, mentionSuggestions.length - 1) : -1;
770
- const activeMentionOptionId = mentionMenuOpen ? mentionOptionId(clampedMentionHighlight) : void 0;
771
- const syncMention = React2.useCallback(
772
- (value, caret) => {
773
- if (!mentionsEnabled) return;
774
- setMention(activeMentionQuery(value, caret));
775
- setMentionHighlight(0);
776
- },
777
- [mentionsEnabled]
778
- );
779
- const insertMention = (option) => {
780
- if (!mention) return;
781
- const insertValue = option.value ?? option.label.split(" ")[0];
782
- const before = content.slice(0, mention.start);
783
- const after = content.slice(mention.start + 1 + mention.query.length);
784
- const insert = `@${insertValue} `;
785
- setContent(before + insert + after);
786
- setMention(null);
787
- const caret = before.length + insert.length;
788
- requestAnimationFrame(() => {
789
- const el = textareaRef.current;
790
- if (el) {
791
- el.focus();
792
- el.setSelectionRange(caret, caret);
793
- }
794
- });
795
- };
796
929
  const canSend = (content.trim().length > 0 || attachments.length > 0) && content.length <= maxLength && !disabled && !isSending;
797
930
  const handleSubmit = async (event) => {
798
931
  event.preventDefault();
@@ -814,31 +947,7 @@ var MessageComposer = React2.forwardRef(
814
947
  }
815
948
  };
816
949
  const handleKeyDown = (event) => {
817
- if (mentionMenuOpen) {
818
- if (event.key === "ArrowDown") {
819
- event.preventDefault();
820
- setMentionHighlight((h) => (h + 1) % mentionSuggestions.length);
821
- return;
822
- }
823
- if (event.key === "ArrowUp") {
824
- event.preventDefault();
825
- setMentionHighlight(
826
- (h) => (h - 1 + mentionSuggestions.length) % mentionSuggestions.length
827
- );
828
- return;
829
- }
830
- if (event.key === "Enter" || event.key === "Tab") {
831
- event.preventDefault();
832
- const chosen = mentionSuggestions[mentionHighlight] ?? mentionSuggestions[0];
833
- if (chosen) insertMention(chosen);
834
- return;
835
- }
836
- if (event.key === "Escape") {
837
- event.preventDefault();
838
- setMention(null);
839
- return;
840
- }
841
- }
950
+ if (mention.handleKeyDown(event)) return;
842
951
  if (event.key === "Enter" && !event.shiftKey) {
843
952
  event.preventDefault();
844
953
  if (canSend) {
@@ -884,7 +993,7 @@ var MessageComposer = React2.forwardRef(
884
993
  return prev.filter((a) => a.id !== attachmentId);
885
994
  });
886
995
  };
887
- React2.useEffect(() => {
996
+ React3.useEffect(() => {
888
997
  const currentAttachments = attachments;
889
998
  return () => {
890
999
  currentAttachments.forEach((a) => {
@@ -918,7 +1027,7 @@ var MessageComposer = React2.forwardRef(
918
1027
  className: cn(
919
1028
  "flex items-center gap-2 px-4 py-2",
920
1029
  "bg-neutral-50 dark:bg-neutral-800/50",
921
- "border-primary-500 border-l-4"
1030
+ "border-primary-500 border-s-4"
922
1031
  ),
923
1032
  children: [
924
1033
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
@@ -1015,49 +1124,9 @@ var MessageComposer = React2.forwardRef(
1015
1124
  {
1016
1125
  "data-slot": "composer-input-wrapper",
1017
1126
  className: "relative flex-1",
1018
- ref: mentionAnchorRef,
1127
+ ref: mention.anchorRef,
1019
1128
  children: [
1020
- mentionMenuOpen && createPortal(
1021
- /* @__PURE__ */ jsx(
1022
- "ul",
1023
- {
1024
- ref: mentionFloatingRef,
1025
- style: mentionStyle,
1026
- id: mentionListId,
1027
- role: "listbox",
1028
- "aria-label": "Mention",
1029
- "data-slot": "composer-mention-list",
1030
- className: "w-64 overflow-y-auto rounded-lg border border-neutral-200 bg-white py-1 shadow-lg dark:border-neutral-700 dark:bg-neutral-800",
1031
- children: mentionSuggestions.map((option, i) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(
1032
- "button",
1033
- {
1034
- type: "button",
1035
- id: mentionOptionId(i),
1036
- role: "option",
1037
- "aria-selected": i === clampedMentionHighlight,
1038
- onMouseDown: (e) => {
1039
- e.preventDefault();
1040
- insertMention(option);
1041
- },
1042
- onMouseEnter: () => setMentionHighlight(i),
1043
- className: cn(
1044
- "flex w-full items-center gap-2 px-3 py-1.5 text-left text-sm",
1045
- i === clampedMentionHighlight ? "bg-primary-100 text-primary-900 dark:bg-primary-900/40 dark:text-primary-100" : "text-neutral-700 dark:text-neutral-200"
1046
- ),
1047
- children: [
1048
- option.icon,
1049
- /* @__PURE__ */ jsxs("span", { className: "min-w-0 flex-1 truncate", children: [
1050
- /* @__PURE__ */ jsx("span", { className: "font-medium", children: option.label }),
1051
- option.description && /* @__PURE__ */ jsx("span", { className: "ml-1 text-xs text-neutral-400", children: option.description })
1052
- ] }),
1053
- option.meta && /* @__PURE__ */ jsx("span", { className: "text-[10px] text-neutral-400", children: option.meta })
1054
- ]
1055
- }
1056
- ) }, option.id))
1057
- }
1058
- ),
1059
- document.body
1060
- ),
1129
+ /* @__PURE__ */ jsx(MentionMenu, { mention }),
1061
1130
  /* @__PURE__ */ jsx(
1062
1131
  "textarea",
1063
1132
  {
@@ -1066,14 +1135,14 @@ var MessageComposer = React2.forwardRef(
1066
1135
  value: content,
1067
1136
  onChange: (e) => {
1068
1137
  setContent(e.target.value);
1069
- syncMention(
1138
+ mention.sync(
1070
1139
  e.target.value,
1071
1140
  e.target.selectionStart ?? e.target.value.length
1072
1141
  );
1073
1142
  },
1074
1143
  onClick: (e) => {
1075
1144
  const el = e.currentTarget;
1076
- syncMention(el.value, el.selectionStart ?? el.value.length);
1145
+ mention.sync(el.value, el.selectionStart ?? el.value.length);
1077
1146
  },
1078
1147
  onKeyDown: handleKeyDown,
1079
1148
  onPaste: handlePaste,
@@ -1082,7 +1151,7 @@ var MessageComposer = React2.forwardRef(
1082
1151
  rows: 1,
1083
1152
  className: cn(
1084
1153
  "w-full resize-none rounded-2xl py-2.5",
1085
- inputTrailing ? "pr-10 pl-4" : "px-4",
1154
+ inputTrailing ? "ps-4 pe-10" : "px-4",
1086
1155
  "bg-neutral-100 dark:bg-neutral-800",
1087
1156
  "text-neutral-900 dark:text-neutral-100",
1088
1157
  "placeholder:text-neutral-400 dark:placeholder:text-neutral-500",
@@ -1093,18 +1162,14 @@ var MessageComposer = React2.forwardRef(
1093
1162
  ),
1094
1163
  "aria-label": "Message",
1095
1164
  "aria-describedby": showCharacterCount ? "char-count" : void 0,
1096
- ...mentionsEnabled ? {
1097
- "aria-controls": mentionMenuOpen ? mentionListId : void 0,
1098
- "aria-activedescendant": activeMentionOptionId,
1099
- "aria-autocomplete": "list"
1100
- } : {}
1165
+ ...mention.inputProps
1101
1166
  }
1102
1167
  ),
1103
1168
  inputTrailing && /* @__PURE__ */ jsx(
1104
1169
  "div",
1105
1170
  {
1106
1171
  "data-slot": "composer-input-trailing",
1107
- className: "pointer-events-none absolute top-0 right-1 flex h-[44px] items-center [&>*]:pointer-events-auto",
1172
+ className: "pointer-events-none absolute end-1 top-0 flex h-[44px] items-center [&>*]:pointer-events-auto",
1108
1173
  children: inputTrailing
1109
1174
  }
1110
1175
  ),
@@ -1113,7 +1178,7 @@ var MessageComposer = React2.forwardRef(
1113
1178
  {
1114
1179
  "data-slot": "composer-char-count",
1115
1180
  id: "char-count",
1116
- className: "absolute right-3 bottom-1.5",
1181
+ className: "absolute end-3 bottom-1.5",
1117
1182
  children: /* @__PURE__ */ jsx(CharacterCounter, { current: content.length, max: maxLength })
1118
1183
  }
1119
1184
  )
@@ -1140,6 +1205,6 @@ var MessageComposer = React2.forwardRef(
1140
1205
  );
1141
1206
  MessageComposer.displayName = "MessageComposer";
1142
1207
 
1143
- export { AttachmentPicker, AttachmentPreviewItem, CameraButton, CharacterCounter, DragDropZone, MessageComposer, SendButton, generateAttachmentId, getFileType, sendButtonVariants, validateFile };
1144
- //# sourceMappingURL=chunk-EKRT7K2K.js.map
1145
- //# sourceMappingURL=chunk-EKRT7K2K.js.map
1208
+ export { AttachmentPicker, AttachmentPreviewItem, CameraButton, CharacterCounter, DragDropZone, MentionMenu, MessageComposer, SendButton, generateAttachmentId, getFileType, sendButtonVariants, useMentionAutocomplete, validateFile };
1209
+ //# sourceMappingURL=chunk-O6GJ4IYS.js.map
1210
+ //# sourceMappingURL=chunk-O6GJ4IYS.js.map