@mieweb/ui 0.8.0 → 0.9.0-dev.1

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 (384) 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-XS35KPBZ.cjs → chunk-2A2FLQJC.cjs} +1140 -14
  26. package/dist/chunk-2A2FLQJC.cjs.map +1 -0
  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-QHTDWIED.js → chunk-5H7SAEQO.js} +5 -5
  38. package/dist/{chunk-QHTDWIED.js.map → chunk-5H7SAEQO.js.map} +1 -1
  39. package/dist/chunk-5VXRKOPR.cjs +735 -0
  40. package/dist/chunk-5VXRKOPR.cjs.map +1 -0
  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-LQHI44OZ.cjs → chunk-FUFBRKOG.cjs} +59 -59
  84. package/dist/{chunk-LQHI44OZ.cjs.map → chunk-FUFBRKOG.cjs.map} +1 -1
  85. package/dist/{chunk-DG7KE4YJ.cjs → chunk-FYAKUU2A.cjs} +38 -21
  86. package/dist/chunk-FYAKUU2A.cjs.map +1 -0
  87. package/dist/{chunk-7L7OPISJ.cjs → chunk-H4AVMUOC.cjs} +12 -6
  88. package/dist/chunk-H4AVMUOC.cjs.map +1 -0
  89. package/dist/{chunk-I2ECTLON.cjs → chunk-HXSA6QC5.cjs} +3 -3
  90. package/dist/{chunk-I2ECTLON.cjs.map → chunk-HXSA6QC5.cjs.map} +1 -1
  91. package/dist/{chunk-DCBMTFLE.js → chunk-HZ4MBUC3.js} +3 -3
  92. package/dist/{chunk-DCBMTFLE.js.map → chunk-HZ4MBUC3.js.map} +1 -1
  93. package/dist/{chunk-X5ZPYYMS.js → chunk-I3DQXUSC.js} +3 -3
  94. package/dist/{chunk-X5ZPYYMS.js.map → chunk-I3DQXUSC.js.map} +1 -1
  95. package/dist/{chunk-FN6VHMLM.cjs → chunk-IB54SKWB.cjs} +8 -8
  96. package/dist/{chunk-FN6VHMLM.cjs.map → chunk-IB54SKWB.cjs.map} +1 -1
  97. package/dist/chunk-IF3X2WZP.js +705 -0
  98. package/dist/chunk-IF3X2WZP.js.map +1 -0
  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-RZJXCI53.js → chunk-KATEJG2F.js} +1138 -14
  106. package/dist/chunk-KATEJG2F.js.map +1 -0
  107. package/dist/{chunk-D2GID3YK.js → chunk-KREUYVMZ.js} +58 -6
  108. package/dist/chunk-KREUYVMZ.js.map +1 -0
  109. package/dist/{chunk-Y6YSJPVC.js → chunk-KRU6IGV7.js} +11 -3
  110. package/dist/chunk-KRU6IGV7.js.map +1 -0
  111. package/dist/{chunk-LZU7YBXG.js → chunk-KU3XRHWA.js} +169 -10
  112. package/dist/chunk-KU3XRHWA.js.map +1 -0
  113. package/dist/{chunk-P2VTQ5AR.cjs → chunk-L52N6BEN.cjs} +39 -23
  114. package/dist/chunk-L52N6BEN.cjs.map +1 -0
  115. package/dist/{chunk-XWYKLEKG.js → chunk-L5W7TJQ5.js} +11 -5
  116. package/dist/chunk-L5W7TJQ5.js.map +1 -0
  117. package/dist/{chunk-PAM5UUBL.cjs → chunk-L7L5S2HO.cjs} +18 -2
  118. package/dist/{chunk-PAM5UUBL.cjs.map → chunk-L7L5S2HO.cjs.map} +1 -1
  119. package/dist/{chunk-SEPYBAML.js → chunk-LAEIVOIY.js} +38 -21
  120. package/dist/chunk-LAEIVOIY.js.map +1 -0
  121. package/dist/{chunk-Z5KFXHDP.cjs → chunk-MM7QKUE3.cjs} +5 -5
  122. package/dist/{chunk-Z5KFXHDP.cjs.map → chunk-MM7QKUE3.cjs.map} +1 -1
  123. package/dist/{chunk-FJ7YPVKV.js → chunk-MUIDWFYJ.js} +3 -3
  124. package/dist/{chunk-FJ7YPVKV.js.map → chunk-MUIDWFYJ.js.map} +1 -1
  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-RYQ3S3KO.cjs → chunk-O425FKDI.cjs} +581 -70
  132. package/dist/chunk-O425FKDI.cjs.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-FDV7EQWH.js → chunk-RPG2ZP2T.js} +575 -68
  168. package/dist/chunk-RPG2ZP2T.js.map +1 -0
  169. package/dist/{chunk-P3JEMF6E.cjs → chunk-RSCA5AZW.cjs} +4 -4
  170. package/dist/{chunk-P3JEMF6E.cjs.map → chunk-RSCA5AZW.cjs.map} +1 -1
  171. package/dist/{chunk-5Y5FSR4N.js → chunk-SCXELRRZ.js} +3 -3
  172. package/dist/{chunk-5Y5FSR4N.js.map → chunk-SCXELRRZ.js.map} +1 -1
  173. package/dist/{chunk-JWTCEWQ4.cjs → chunk-SNEQXSC5.cjs} +2 -2
  174. package/dist/{chunk-JWTCEWQ4.cjs.map → chunk-SNEQXSC5.cjs.map} +1 -1
  175. package/dist/{chunk-U5TTXN45.cjs → chunk-SRA2L3SQ.cjs} +9 -7
  176. package/dist/chunk-SRA2L3SQ.cjs.map +1 -0
  177. package/dist/{chunk-5U6GETAW.js → chunk-TQDZLRIE.js} +3 -3
  178. package/dist/chunk-TQDZLRIE.js.map +1 -0
  179. package/dist/{chunk-HK3AMH3Q.cjs → chunk-VROIMIHB.cjs} +11 -3
  180. package/dist/chunk-VROIMIHB.cjs.map +1 -0
  181. package/dist/{chunk-3SHLOF4V.cjs → chunk-VTR2KGLY.cjs} +9 -9
  182. package/dist/{chunk-3SHLOF4V.cjs.map → chunk-VTR2KGLY.cjs.map} +1 -1
  183. package/dist/{chunk-XO3WLK65.js → chunk-VVDE4CHU.js} +3 -3
  184. package/dist/{chunk-XO3WLK65.js.map → chunk-VVDE4CHU.js.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 +292 -115
  282. package/dist/components/SuperChat/index.cjs.map +1 -1
  283. package/dist/components/SuperChat/index.d.cts +29 -8
  284. package/dist/components/SuperChat/index.d.ts +29 -8
  285. package/dist/components/SuperChat/index.js +284 -107
  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 +2509 -2860
  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 +1305 -1700
  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 +0 -1177
  345. package/dist/chunk-26DPQUSB.cjs.map +0 -1
  346. package/dist/chunk-3PXOIAF6.js +0 -3
  347. package/dist/chunk-4AE2L6AO.cjs.map +0 -1
  348. package/dist/chunk-4PIW3Y5M.js.map +0 -1
  349. package/dist/chunk-5JZIDILK.cjs.map +0 -1
  350. package/dist/chunk-5U6GETAW.js.map +0 -1
  351. package/dist/chunk-6EWJGRC3.js.map +0 -1
  352. package/dist/chunk-7L7OPISJ.cjs.map +0 -1
  353. package/dist/chunk-AESFOMSH.js.map +0 -1
  354. package/dist/chunk-BOOJDRJO.js.map +0 -1
  355. package/dist/chunk-BOW7ZGI2.cjs.map +0 -1
  356. package/dist/chunk-D2GID3YK.js.map +0 -1
  357. package/dist/chunk-DG7KE4YJ.cjs.map +0 -1
  358. package/dist/chunk-EKRT7K2K.js +0 -1145
  359. package/dist/chunk-EKRT7K2K.js.map +0 -1
  360. package/dist/chunk-EPQPUFS6.cjs.map +0 -1
  361. package/dist/chunk-FDUA6OGN.js.map +0 -1
  362. package/dist/chunk-FDV7EQWH.js.map +0 -1
  363. package/dist/chunk-FF235PKY.cjs.map +0 -1
  364. package/dist/chunk-H7QSGFMZ.cjs.map +0 -1
  365. package/dist/chunk-HK3AMH3Q.cjs.map +0 -1
  366. package/dist/chunk-IILJGFI5.js.map +0 -1
  367. package/dist/chunk-IYXCFIMP.js.map +0 -1
  368. package/dist/chunk-JHZW3Y62.js.map +0 -1
  369. package/dist/chunk-L6D4CKLV.cjs.map +0 -1
  370. package/dist/chunk-LZU7YBXG.js.map +0 -1
  371. package/dist/chunk-MYFZYUPR.cjs.map +0 -1
  372. package/dist/chunk-N3Y43KOB.js.map +0 -1
  373. package/dist/chunk-P2VTQ5AR.cjs.map +0 -1
  374. package/dist/chunk-RDGRKYQ5.cjs.map +0 -1
  375. package/dist/chunk-RYQ3S3KO.cjs.map +0 -1
  376. package/dist/chunk-RZJXCI53.js.map +0 -1
  377. package/dist/chunk-SEPYBAML.js.map +0 -1
  378. package/dist/chunk-SK7H3Z67.cjs.map +0 -1
  379. package/dist/chunk-SPWVKDGC.cjs.map +0 -1
  380. package/dist/chunk-U5TTXN45.cjs.map +0 -1
  381. package/dist/chunk-XMCIXHGH.js.map +0 -1
  382. package/dist/chunk-XS35KPBZ.cjs.map +0 -1
  383. package/dist/chunk-XWYKLEKG.js.map +0 -1
  384. package/dist/chunk-Y6YSJPVC.js.map +0 -1
@@ -0,0 +1,735 @@
1
+ 'use strict';
2
+
3
+ var chunkS5RVSXDV_cjs = require('./chunk-S5RVSXDV.cjs');
4
+ var chunkAOHJILLU_cjs = require('./chunk-AOHJILLU.cjs');
5
+ var React = require('react');
6
+ var jsxRuntime = require('react/jsx-runtime');
7
+ var reactDom = require('react-dom');
8
+
9
+ function _interopNamespace(e) {
10
+ if (e && e.__esModule) return e;
11
+ var n = Object.create(null);
12
+ if (e) {
13
+ Object.keys(e).forEach(function (k) {
14
+ if (k !== 'default') {
15
+ var d = Object.getOwnPropertyDescriptor(e, k);
16
+ Object.defineProperty(n, k, d.get ? d : {
17
+ enumerable: true,
18
+ get: function () { return e[k]; }
19
+ });
20
+ }
21
+ });
22
+ }
23
+ n.default = e;
24
+ return Object.freeze(n);
25
+ }
26
+
27
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
28
+
29
+ function getFileType(mimeType) {
30
+ if (mimeType.startsWith("image/")) return "image";
31
+ if (mimeType.startsWith("video/")) return "video";
32
+ if (mimeType.startsWith("audio/")) return "audio";
33
+ if (mimeType.includes("pdf") || mimeType.includes("document") || mimeType.includes("text")) {
34
+ return "document";
35
+ }
36
+ return "file";
37
+ }
38
+ function formatFileSize(bytes) {
39
+ if (bytes < 1024) return `${bytes} B`;
40
+ if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;
41
+ return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
42
+ }
43
+ function validateFile(file, acceptedTypes, maxSize) {
44
+ if (acceptedTypes && acceptedTypes.length > 0) {
45
+ const isAccepted = acceptedTypes.some((type) => {
46
+ if (type.startsWith(".")) {
47
+ return file.name.toLowerCase().endsWith(type.toLowerCase());
48
+ }
49
+ if (type.endsWith("/*")) {
50
+ return file.type.startsWith(type.replace("/*", "/"));
51
+ }
52
+ return file.type === type;
53
+ });
54
+ if (!isAccepted) {
55
+ return { valid: false, error: "File type not supported" };
56
+ }
57
+ }
58
+ if (maxSize && file.size > maxSize) {
59
+ return {
60
+ valid: false,
61
+ error: `File too large (max ${formatFileSize(maxSize)})`
62
+ };
63
+ }
64
+ return { valid: true };
65
+ }
66
+ function generateAttachmentId() {
67
+ return `attachment-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
68
+ }
69
+ function AttachmentPreviewItem({
70
+ attachment,
71
+ onRemove,
72
+ onRetry,
73
+ disabled = false,
74
+ className
75
+ }) {
76
+ const { file, previewUrl, type, state, progress } = attachment;
77
+ const isImage = type === "image";
78
+ const isVideo = type === "video";
79
+ const isUploading = state === "uploading";
80
+ const isFailed = state === "failed";
81
+ return /* @__PURE__ */ jsxRuntime.jsxs(
82
+ "div",
83
+ {
84
+ className: chunkS5RVSXDV_cjs.cn(
85
+ "group relative overflow-hidden rounded-lg",
86
+ "bg-neutral-100 dark:bg-neutral-800",
87
+ "border border-neutral-200 dark:border-neutral-700",
88
+ isFailed && "border-red-500",
89
+ className
90
+ ),
91
+ children: [
92
+ (isImage || isVideo) && previewUrl ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative h-20 w-20", children: [
93
+ isVideo ? /* @__PURE__ */ jsxRuntime.jsx(
94
+ "video",
95
+ {
96
+ src: previewUrl,
97
+ "aria-label": file.name,
98
+ muted: true,
99
+ playsInline: true,
100
+ preload: "metadata",
101
+ className: chunkS5RVSXDV_cjs.cn(
102
+ "h-full w-full object-cover",
103
+ (isUploading || isFailed) && "opacity-50"
104
+ )
105
+ }
106
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
107
+ "img",
108
+ {
109
+ src: previewUrl,
110
+ alt: file.name,
111
+ className: chunkS5RVSXDV_cjs.cn(
112
+ "h-full w-full object-cover",
113
+ (isUploading || isFailed) && "opacity-50"
114
+ )
115
+ }
116
+ ),
117
+ isVideo && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(
118
+ "svg",
119
+ {
120
+ "aria-hidden": "true",
121
+ className: "h-6 w-6 text-white drop-shadow",
122
+ fill: "currentColor",
123
+ viewBox: "0 0 24 24",
124
+ children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M8 5v14l11-7z" })
125
+ }
126
+ ) })
127
+ ] }) : (
128
+ /* File preview */
129
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-20 w-20 flex-col items-center justify-center p-2", children: [
130
+ /* @__PURE__ */ jsxRuntime.jsx(
131
+ "svg",
132
+ {
133
+ "aria-hidden": "true",
134
+ className: "h-8 w-8 text-neutral-500",
135
+ fill: "none",
136
+ viewBox: "0 0 24 24",
137
+ stroke: "currentColor",
138
+ children: /* @__PURE__ */ jsxRuntime.jsx(
139
+ "path",
140
+ {
141
+ strokeLinecap: "round",
142
+ strokeLinejoin: "round",
143
+ strokeWidth: 2,
144
+ d: "M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"
145
+ }
146
+ )
147
+ }
148
+ ),
149
+ /* @__PURE__ */ jsxRuntime.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() })
150
+ ] })
151
+ ),
152
+ isUploading && progress !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 flex items-center justify-center bg-black/50", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center text-white", children: [
153
+ /* @__PURE__ */ jsxRuntime.jsxs(
154
+ "svg",
155
+ {
156
+ "aria-hidden": "true",
157
+ className: "mx-auto h-6 w-6 animate-spin",
158
+ fill: "none",
159
+ viewBox: "0 0 24 24",
160
+ children: [
161
+ /* @__PURE__ */ jsxRuntime.jsx(
162
+ "circle",
163
+ {
164
+ className: "opacity-25",
165
+ cx: "12",
166
+ cy: "12",
167
+ r: "10",
168
+ stroke: "currentColor",
169
+ strokeWidth: "4"
170
+ }
171
+ ),
172
+ /* @__PURE__ */ jsxRuntime.jsx(
173
+ "path",
174
+ {
175
+ className: "opacity-75",
176
+ fill: "currentColor",
177
+ d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"
178
+ }
179
+ )
180
+ ]
181
+ }
182
+ ),
183
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "mt-1 text-xs", children: [
184
+ progress,
185
+ "%"
186
+ ] })
187
+ ] }) }),
188
+ isFailed && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 flex items-center justify-center bg-black/50", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center", children: [
189
+ /* @__PURE__ */ jsxRuntime.jsx(
190
+ "svg",
191
+ {
192
+ "aria-hidden": "true",
193
+ className: "mx-auto h-6 w-6 text-red-400",
194
+ fill: "none",
195
+ viewBox: "0 0 24 24",
196
+ stroke: "currentColor",
197
+ children: /* @__PURE__ */ jsxRuntime.jsx(
198
+ "path",
199
+ {
200
+ strokeLinecap: "round",
201
+ strokeLinejoin: "round",
202
+ strokeWidth: 2,
203
+ d: "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"
204
+ }
205
+ )
206
+ }
207
+ ),
208
+ onRetry && /* @__PURE__ */ jsxRuntime.jsx(
209
+ "button",
210
+ {
211
+ type: "button",
212
+ onClick: onRetry,
213
+ disabled,
214
+ className: "mt-1 text-xs text-white underline hover:no-underline disabled:no-underline disabled:opacity-50",
215
+ children: "Retry"
216
+ }
217
+ )
218
+ ] }) }),
219
+ /* @__PURE__ */ jsxRuntime.jsx(
220
+ "button",
221
+ {
222
+ type: "button",
223
+ onClick: onRemove,
224
+ disabled,
225
+ className: chunkS5RVSXDV_cjs.cn(
226
+ "absolute -end-1 -top-1 z-10",
227
+ "rounded-full p-1",
228
+ "bg-neutral-900 text-white",
229
+ "opacity-0 group-hover:opacity-100",
230
+ "focus:ring-primary-500 focus:opacity-100 focus:ring-2 focus:outline-none",
231
+ "transition-opacity",
232
+ "disabled:cursor-not-allowed disabled:group-hover:opacity-0"
233
+ ),
234
+ "aria-label": `Remove ${file.name}`,
235
+ children: /* @__PURE__ */ jsxRuntime.jsx(
236
+ "svg",
237
+ {
238
+ "aria-hidden": "true",
239
+ className: "h-3 w-3",
240
+ fill: "none",
241
+ viewBox: "0 0 24 24",
242
+ stroke: "currentColor",
243
+ children: /* @__PURE__ */ jsxRuntime.jsx(
244
+ "path",
245
+ {
246
+ strokeLinecap: "round",
247
+ strokeLinejoin: "round",
248
+ strokeWidth: 2,
249
+ d: "M6 18L18 6M6 6l12 12"
250
+ }
251
+ )
252
+ }
253
+ )
254
+ }
255
+ ),
256
+ /* @__PURE__ */ jsxRuntime.jsx(
257
+ "div",
258
+ {
259
+ className: chunkS5RVSXDV_cjs.cn(
260
+ "absolute start-0 end-0 bottom-0",
261
+ "bg-black/70 px-1 py-0.5",
262
+ "opacity-0 group-hover:opacity-100",
263
+ "transition-opacity"
264
+ ),
265
+ children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs text-white", children: file.name })
266
+ }
267
+ )
268
+ ]
269
+ }
270
+ );
271
+ }
272
+ AttachmentPreviewItem.displayName = "AttachmentPreviewItem";
273
+ var AttachmentPicker = React__namespace.forwardRef(
274
+ ({
275
+ onFilesSelected,
276
+ acceptedTypes = ["image/*", "video/*", ".pdf", ".doc", ".docx"],
277
+ maxFileSize = 25 * 1024 * 1024,
278
+ // 25MB
279
+ maxFiles = 10,
280
+ multiple = true,
281
+ disabled = false,
282
+ onError,
283
+ className,
284
+ children
285
+ }, ref) => {
286
+ const inputRef = React__namespace.useRef(null);
287
+ React__namespace.useImperativeHandle(ref, () => inputRef.current);
288
+ const handleClick = () => {
289
+ inputRef.current?.click();
290
+ };
291
+ const handleChange = (event) => {
292
+ const files = Array.from(event.target.files || []);
293
+ if (files.length === 0) return;
294
+ const validFiles = [];
295
+ for (const file of files.slice(0, maxFiles)) {
296
+ const validation = validateFile(file, acceptedTypes, maxFileSize);
297
+ if (validation.valid) {
298
+ validFiles.push(file);
299
+ } else if (onError) {
300
+ onError(`${file.name}: ${validation.error}`);
301
+ }
302
+ }
303
+ if (files.length > maxFiles && onError) {
304
+ onError(`Maximum ${maxFiles} files allowed`);
305
+ }
306
+ if (validFiles.length > 0) {
307
+ onFilesSelected(validFiles);
308
+ }
309
+ event.target.value = "";
310
+ };
311
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
312
+ /* @__PURE__ */ jsxRuntime.jsx(
313
+ "input",
314
+ {
315
+ ref: inputRef,
316
+ type: "file",
317
+ accept: acceptedTypes.join(","),
318
+ multiple,
319
+ onChange: handleChange,
320
+ disabled,
321
+ className: "sr-only",
322
+ "aria-label": "Select files to attach"
323
+ }
324
+ ),
325
+ /* @__PURE__ */ jsxRuntime.jsx(
326
+ "button",
327
+ {
328
+ type: "button",
329
+ onClick: handleClick,
330
+ disabled,
331
+ "data-slot": "attachment-picker-button",
332
+ className: chunkS5RVSXDV_cjs.cn(
333
+ "inline-flex items-center justify-center",
334
+ "rounded-full p-2",
335
+ "text-neutral-500 hover:text-neutral-700",
336
+ "dark:text-neutral-400 dark:hover:text-neutral-200",
337
+ "hover:bg-neutral-100 dark:hover:bg-neutral-800",
338
+ "focus:ring-primary-500 focus:ring-2 focus:outline-none",
339
+ "disabled:cursor-not-allowed disabled:opacity-50",
340
+ "transition-colors",
341
+ className
342
+ ),
343
+ "aria-label": "Attach files",
344
+ children: children || /* @__PURE__ */ jsxRuntime.jsx(
345
+ "svg",
346
+ {
347
+ "aria-hidden": "true",
348
+ className: "h-5 w-5",
349
+ fill: "none",
350
+ viewBox: "0 0 24 24",
351
+ stroke: "currentColor",
352
+ children: /* @__PURE__ */ jsxRuntime.jsx(
353
+ "path",
354
+ {
355
+ strokeLinecap: "round",
356
+ strokeLinejoin: "round",
357
+ strokeWidth: 2,
358
+ d: "M15.172 7l-6.586 6.586a2 2 0 102.828 2.828l6.414-6.586a4 4 0 00-5.656-5.656l-6.415 6.585a6 6 0 108.486 8.486L20.5 13"
359
+ }
360
+ )
361
+ }
362
+ )
363
+ }
364
+ )
365
+ ] });
366
+ }
367
+ );
368
+ AttachmentPicker.displayName = "AttachmentPicker";
369
+ function DragDropZone({
370
+ onFilesDropped,
371
+ acceptedTypes,
372
+ maxFileSize,
373
+ maxFiles = 10,
374
+ disabled = false,
375
+ onError,
376
+ overlayLabel = "Drop files here",
377
+ children,
378
+ className
379
+ }) {
380
+ const [isDragging, setIsDragging] = React__namespace.useState(false);
381
+ const dragCounterRef = React__namespace.useRef(0);
382
+ const handleDragEnter = (event) => {
383
+ event.preventDefault();
384
+ event.stopPropagation();
385
+ if (disabled) return;
386
+ dragCounterRef.current++;
387
+ if (event.dataTransfer.items && event.dataTransfer.items.length > 0) {
388
+ setIsDragging(true);
389
+ }
390
+ };
391
+ const handleDragLeave = (event) => {
392
+ event.preventDefault();
393
+ event.stopPropagation();
394
+ if (disabled) return;
395
+ dragCounterRef.current--;
396
+ if (dragCounterRef.current === 0) {
397
+ setIsDragging(false);
398
+ }
399
+ };
400
+ const handleDragOver = (event) => {
401
+ event.preventDefault();
402
+ event.stopPropagation();
403
+ };
404
+ const handleDrop = (event) => {
405
+ event.preventDefault();
406
+ event.stopPropagation();
407
+ if (disabled) return;
408
+ setIsDragging(false);
409
+ dragCounterRef.current = 0;
410
+ const files = Array.from(event.dataTransfer.files);
411
+ if (files.length === 0) return;
412
+ const validFiles = [];
413
+ for (const file of files.slice(0, maxFiles)) {
414
+ const validation = validateFile(file, acceptedTypes, maxFileSize);
415
+ if (validation.valid) {
416
+ validFiles.push(file);
417
+ } else if (onError) {
418
+ onError(`${file.name}: ${validation.error}`);
419
+ }
420
+ }
421
+ if (files.length > maxFiles && onError) {
422
+ onError(`Maximum ${maxFiles} files allowed`);
423
+ }
424
+ if (validFiles.length > 0) {
425
+ onFilesDropped(validFiles);
426
+ }
427
+ };
428
+ return /* @__PURE__ */ jsxRuntime.jsxs(
429
+ "div",
430
+ {
431
+ onDragEnter: handleDragEnter,
432
+ onDragLeave: handleDragLeave,
433
+ onDragOver: handleDragOver,
434
+ onDrop: handleDrop,
435
+ className: chunkS5RVSXDV_cjs.cn("relative", className),
436
+ children: [
437
+ children,
438
+ isDragging && /* @__PURE__ */ jsxRuntime.jsx(
439
+ "div",
440
+ {
441
+ className: chunkS5RVSXDV_cjs.cn(
442
+ "absolute inset-0 z-50",
443
+ "flex items-center justify-center",
444
+ "bg-primary-50/90 dark:bg-primary-900/90",
445
+ "border-primary-500 border-2 border-dashed",
446
+ "rounded-lg"
447
+ ),
448
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center", children: [
449
+ /* @__PURE__ */ jsxRuntime.jsx(
450
+ "svg",
451
+ {
452
+ "aria-hidden": "true",
453
+ className: "text-primary-800 mx-auto h-12 w-12",
454
+ fill: "none",
455
+ viewBox: "0 0 24 24",
456
+ stroke: "currentColor",
457
+ children: /* @__PURE__ */ jsxRuntime.jsx(
458
+ "path",
459
+ {
460
+ strokeLinecap: "round",
461
+ strokeLinejoin: "round",
462
+ strokeWidth: 2,
463
+ d: "M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M15 13l-3-3m0 0l-3 3m3-3v12"
464
+ }
465
+ )
466
+ }
467
+ ),
468
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-primary-700 dark:text-primary-300 mt-2 text-sm font-medium", children: overlayLabel })
469
+ ] })
470
+ }
471
+ )
472
+ ]
473
+ }
474
+ );
475
+ }
476
+ DragDropZone.displayName = "DragDropZone";
477
+ function CameraButton({
478
+ onCapture,
479
+ useFrontCamera = false,
480
+ disabled = false,
481
+ className
482
+ }) {
483
+ const inputRef = React__namespace.useRef(null);
484
+ const handleClick = () => {
485
+ inputRef.current?.click();
486
+ };
487
+ const handleChange = (event) => {
488
+ const file = event.target.files?.[0];
489
+ if (file) {
490
+ onCapture(file);
491
+ }
492
+ event.target.value = "";
493
+ };
494
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
495
+ /* @__PURE__ */ jsxRuntime.jsx(
496
+ "input",
497
+ {
498
+ ref: inputRef,
499
+ type: "file",
500
+ accept: "image/*",
501
+ capture: useFrontCamera ? "user" : "environment",
502
+ onChange: handleChange,
503
+ disabled,
504
+ className: "sr-only",
505
+ "aria-label": "Take a photo"
506
+ }
507
+ ),
508
+ /* @__PURE__ */ jsxRuntime.jsx(
509
+ "button",
510
+ {
511
+ type: "button",
512
+ onClick: handleClick,
513
+ disabled,
514
+ className: chunkS5RVSXDV_cjs.cn(
515
+ "inline-flex items-center justify-center",
516
+ "rounded-full p-2",
517
+ "text-neutral-500 hover:text-neutral-700",
518
+ "dark:text-neutral-400 dark:hover:text-neutral-200",
519
+ "hover:bg-neutral-100 dark:hover:bg-neutral-800",
520
+ "focus:ring-primary-500 focus:ring-2 focus:outline-none",
521
+ "disabled:cursor-not-allowed disabled:opacity-50",
522
+ "transition-colors",
523
+ className
524
+ ),
525
+ "aria-label": "Take a photo",
526
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
527
+ "svg",
528
+ {
529
+ "aria-hidden": "true",
530
+ className: "h-5 w-5",
531
+ fill: "none",
532
+ viewBox: "0 0 24 24",
533
+ stroke: "currentColor",
534
+ children: [
535
+ /* @__PURE__ */ jsxRuntime.jsx(
536
+ "path",
537
+ {
538
+ strokeLinecap: "round",
539
+ strokeLinejoin: "round",
540
+ strokeWidth: 2,
541
+ d: "M3 9a2 2 0 012-2h.93a2 2 0 001.664-.89l.812-1.22A2 2 0 0110.07 4h3.86a2 2 0 011.664.89l.812 1.22A2 2 0 0018.07 7H19a2 2 0 012 2v9a2 2 0 01-2 2H5a2 2 0 01-2-2V9z"
542
+ }
543
+ ),
544
+ /* @__PURE__ */ jsxRuntime.jsx(
545
+ "path",
546
+ {
547
+ strokeLinecap: "round",
548
+ strokeLinejoin: "round",
549
+ strokeWidth: 2,
550
+ d: "M15 13a3 3 0 11-6 0 3 3 0 016 0z"
551
+ }
552
+ )
553
+ ]
554
+ }
555
+ )
556
+ }
557
+ )
558
+ ] });
559
+ }
560
+ CameraButton.displayName = "CameraButton";
561
+ function activeMentionQuery(value, caret) {
562
+ const upToCaret = value.slice(0, caret);
563
+ const match = /(^|\s)@([^\s@]*)$/.exec(upToCaret);
564
+ if (!match) return null;
565
+ const query = match[2];
566
+ return { query, start: caret - query.length - 1 };
567
+ }
568
+ function useMentionAutocomplete({
569
+ options,
570
+ value,
571
+ setValue,
572
+ textareaRef
573
+ }) {
574
+ const enabled = !!options && options.length > 0;
575
+ const [mention, setMention] = React__namespace.useState(null);
576
+ const [highlight, setHighlight] = React__namespace.useState(0);
577
+ const listId = React__namespace.useId();
578
+ const optionId = React__namespace.useCallback(
579
+ (index) => `${listId}-option-${index}`,
580
+ [listId]
581
+ );
582
+ const suggestions = React__namespace.useMemo(() => {
583
+ if (!mention || !options) return [];
584
+ const q = mention.query.toLowerCase();
585
+ return options.filter((o) => o.label.toLowerCase().includes(q));
586
+ }, [mention, options]);
587
+ const menuOpen = enabled && mention !== null && suggestions.length > 0;
588
+ const {
589
+ anchorRef,
590
+ floatingRef,
591
+ style: menuStyle
592
+ } = chunkAOHJILLU_cjs.useAnchoredPosition({
593
+ open: menuOpen,
594
+ placement: "top-start",
595
+ maxHeight: 224
596
+ });
597
+ const clampedHighlight = menuOpen ? Math.min(highlight, suggestions.length - 1) : -1;
598
+ const activeOptionId = menuOpen ? optionId(clampedHighlight) : void 0;
599
+ const sync = React__namespace.useCallback(
600
+ (nextValue, caret) => {
601
+ if (!enabled) return;
602
+ setMention(activeMentionQuery(nextValue, caret));
603
+ setHighlight(0);
604
+ },
605
+ [enabled]
606
+ );
607
+ const insert = (option) => {
608
+ if (!mention) return;
609
+ const insertValue = option.value ?? option.label.split(" ")[0];
610
+ const before = value.slice(0, mention.start);
611
+ const after = value.slice(mention.start + 1 + mention.query.length);
612
+ const insertText = `@${insertValue} `;
613
+ setValue(before + insertText + after);
614
+ setMention(null);
615
+ const caret = before.length + insertText.length;
616
+ requestAnimationFrame(() => {
617
+ const el = textareaRef.current;
618
+ if (el) {
619
+ el.focus();
620
+ el.setSelectionRange(caret, caret);
621
+ }
622
+ });
623
+ };
624
+ const handleKeyDown = (event) => {
625
+ if (!menuOpen) return false;
626
+ if (event.key === "ArrowDown") {
627
+ event.preventDefault();
628
+ setHighlight(
629
+ (h) => (Math.min(h, suggestions.length - 1) + 1) % suggestions.length
630
+ );
631
+ return true;
632
+ }
633
+ if (event.key === "ArrowUp") {
634
+ event.preventDefault();
635
+ setHighlight(
636
+ (h) => (Math.min(h, suggestions.length - 1) - 1 + suggestions.length) % suggestions.length
637
+ );
638
+ return true;
639
+ }
640
+ if (event.key === "Enter" || event.key === "Tab") {
641
+ event.preventDefault();
642
+ const chosen = suggestions[clampedHighlight];
643
+ if (chosen) insert(chosen);
644
+ return true;
645
+ }
646
+ if (event.key === "Escape") {
647
+ event.preventDefault();
648
+ setMention(null);
649
+ return true;
650
+ }
651
+ return false;
652
+ };
653
+ const inputProps = enabled ? {
654
+ "aria-controls": menuOpen ? listId : void 0,
655
+ "aria-activedescendant": activeOptionId,
656
+ "aria-autocomplete": "list"
657
+ } : {};
658
+ return {
659
+ enabled,
660
+ menuOpen,
661
+ suggestions,
662
+ highlight: clampedHighlight,
663
+ listId,
664
+ optionId,
665
+ anchorRef,
666
+ floatingRef,
667
+ menuStyle,
668
+ sync,
669
+ insert,
670
+ setHighlight,
671
+ handleKeyDown,
672
+ inputProps
673
+ };
674
+ }
675
+ function MentionMenu({
676
+ mention,
677
+ label = "Mention",
678
+ dataSlot = "composer-mention-list"
679
+ }) {
680
+ if (!mention.menuOpen) return null;
681
+ return reactDom.createPortal(
682
+ /* @__PURE__ */ jsxRuntime.jsx(
683
+ "ul",
684
+ {
685
+ ref: mention.floatingRef,
686
+ style: mention.menuStyle,
687
+ id: mention.listId,
688
+ role: "listbox",
689
+ "aria-label": label,
690
+ "data-slot": dataSlot,
691
+ 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",
692
+ children: mention.suggestions.map((option, i) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsxs(
693
+ "button",
694
+ {
695
+ type: "button",
696
+ id: mention.optionId(i),
697
+ role: "option",
698
+ "aria-selected": i === mention.highlight,
699
+ onMouseDown: (e) => {
700
+ e.preventDefault();
701
+ mention.insert(option);
702
+ },
703
+ onMouseEnter: () => mention.setHighlight(i),
704
+ className: chunkS5RVSXDV_cjs.cn(
705
+ "flex w-full items-center gap-2 px-3 py-1.5 text-start text-sm",
706
+ 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"
707
+ ),
708
+ children: [
709
+ option.icon,
710
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "min-w-0 flex-1 truncate", children: [
711
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium", children: option.label }),
712
+ option.description && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ms-1 text-xs text-neutral-400", children: option.description })
713
+ ] }),
714
+ option.meta && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-neutral-400", children: option.meta })
715
+ ]
716
+ }
717
+ ) }, option.id))
718
+ }
719
+ ),
720
+ document.body
721
+ );
722
+ }
723
+ MentionMenu.displayName = "MentionMenu";
724
+
725
+ exports.AttachmentPicker = AttachmentPicker;
726
+ exports.AttachmentPreviewItem = AttachmentPreviewItem;
727
+ exports.CameraButton = CameraButton;
728
+ exports.DragDropZone = DragDropZone;
729
+ exports.MentionMenu = MentionMenu;
730
+ exports.generateAttachmentId = generateAttachmentId;
731
+ exports.getFileType = getFileType;
732
+ exports.useMentionAutocomplete = useMentionAutocomplete;
733
+ exports.validateFile = validateFile;
734
+ //# sourceMappingURL=chunk-5VXRKOPR.cjs.map
735
+ //# sourceMappingURL=chunk-5VXRKOPR.cjs.map