@mieweb/ui 0.2.4 → 0.3.0-dev.101

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 (422) hide show
  1. package/README.md +17 -0
  2. package/dist/ag-grid.cjs +37 -26
  3. package/dist/ag-grid.cjs.map +1 -1
  4. package/dist/ag-grid.js +33 -22
  5. package/dist/ag-grid.js.map +1 -1
  6. package/dist/brands/bluehive.cjs +3 -3
  7. package/dist/brands/bluehive.css +5 -5
  8. package/dist/brands/bluehive.js +1 -1
  9. package/dist/brands/index.cjs +29 -29
  10. package/dist/brands/index.js +8 -8
  11. package/dist/brands/mieweb.css +5 -5
  12. package/dist/brands/ozwell.cjs +2 -2
  13. package/dist/brands/ozwell.css +5 -5
  14. package/dist/brands/ozwell.js +1 -1
  15. package/dist/brands/types.cjs +4 -4
  16. package/dist/brands/types.d.cts +14 -8
  17. package/dist/brands/types.d.ts +14 -8
  18. package/dist/brands/types.js +1 -1
  19. package/dist/brands/waggleline.css +1 -1
  20. package/dist/brands/webchart.css +5 -5
  21. package/dist/{chunk-QDGZBDBI.cjs → chunk-2LF7PSSX.cjs} +3 -3
  22. package/dist/{chunk-QDGZBDBI.cjs.map → chunk-2LF7PSSX.cjs.map} +1 -1
  23. package/dist/{chunk-OWPWP46L.js → chunk-2NTYAALC.js} +3 -3
  24. package/dist/{chunk-OWPWP46L.js.map → chunk-2NTYAALC.js.map} +1 -1
  25. package/dist/{chunk-6Q4SU72T.js → chunk-3CJBUAJ4.js} +58 -11
  26. package/dist/chunk-3CJBUAJ4.js.map +1 -0
  27. package/dist/{chunk-N3QTYHRZ.cjs → chunk-3GGET5LK.cjs} +40 -22
  28. package/dist/chunk-3GGET5LK.cjs.map +1 -0
  29. package/dist/{chunk-QL2YTVTR.js → chunk-43GBCUSQ.js} +8 -3
  30. package/dist/chunk-43GBCUSQ.js.map +1 -0
  31. package/dist/chunk-4DMZAVB2.js +334 -0
  32. package/dist/chunk-4DMZAVB2.js.map +1 -0
  33. package/dist/{chunk-EKIQE524.cjs → chunk-4FALCEJI.cjs} +3 -2
  34. package/dist/chunk-4FALCEJI.cjs.map +1 -0
  35. package/dist/{chunk-6OCIIIAI.js → chunk-4Z6ZZKIY.js} +40 -22
  36. package/dist/chunk-4Z6ZZKIY.js.map +1 -0
  37. package/dist/{chunk-QIOM5ZV2.cjs → chunk-4ZU53GNR.cjs} +6 -2
  38. package/dist/{chunk-QIOM5ZV2.cjs.map → chunk-4ZU53GNR.cjs.map} +1 -1
  39. package/dist/chunk-5MAGWW5X.cjs +272 -0
  40. package/dist/chunk-5MAGWW5X.cjs.map +1 -0
  41. package/dist/{chunk-S6UNPMAS.cjs → chunk-66S4PT6C.cjs} +3 -3
  42. package/dist/{chunk-S6UNPMAS.cjs.map → chunk-66S4PT6C.cjs.map} +1 -1
  43. package/dist/{chunk-4AWW5WPF.js → chunk-6LFG4JFF.js} +51 -24
  44. package/dist/chunk-6LFG4JFF.js.map +1 -0
  45. package/dist/chunk-7BARESXI.cjs +353 -0
  46. package/dist/chunk-7BARESXI.cjs.map +1 -0
  47. package/dist/{chunk-PEH4ZOEM.cjs → chunk-A2QVQF54.cjs} +12 -6
  48. package/dist/chunk-A2QVQF54.cjs.map +1 -0
  49. package/dist/{chunk-377KAB4C.cjs → chunk-AWUADXYI.cjs} +8 -2
  50. package/dist/chunk-AWUADXYI.cjs.map +1 -0
  51. package/dist/{chunk-PEFJAWNR.cjs → chunk-BWYYA3LQ.cjs} +26 -10
  52. package/dist/chunk-BWYYA3LQ.cjs.map +1 -0
  53. package/dist/chunk-CJQXWFIW.js +829 -0
  54. package/dist/chunk-CJQXWFIW.js.map +1 -0
  55. package/dist/chunk-CV4CVGLO.cjs +617 -0
  56. package/dist/chunk-CV4CVGLO.cjs.map +1 -0
  57. package/dist/{chunk-WH6I7CMP.cjs → chunk-CW75IKA6.cjs} +27 -2
  58. package/dist/chunk-CW75IKA6.cjs.map +1 -0
  59. package/dist/{chunk-3NJ72QU6.js → chunk-DCER2QQB.js} +3 -2
  60. package/dist/chunk-DCER2QQB.js.map +1 -0
  61. package/dist/{chunk-JYMQJ32S.cjs → chunk-DEZ7XSTG.cjs} +9 -5
  62. package/dist/chunk-DEZ7XSTG.cjs.map +1 -0
  63. package/dist/{chunk-QYJ7RQJ2.cjs → chunk-DFCZPVG4.cjs} +84 -38
  64. package/dist/chunk-DFCZPVG4.cjs.map +1 -0
  65. package/dist/{chunk-AWIULTJW.js → chunk-DNPRRYPQ.js} +18 -3
  66. package/dist/chunk-DNPRRYPQ.js.map +1 -0
  67. package/dist/{chunk-SSKI6VTW.cjs → chunk-E35GUUTC.cjs} +23 -4
  68. package/dist/chunk-E35GUUTC.cjs.map +1 -0
  69. package/dist/{chunk-B5364UWR.cjs → chunk-EAXY5X33.cjs} +6 -6
  70. package/dist/{chunk-B5364UWR.cjs.map → chunk-EAXY5X33.cjs.map} +1 -1
  71. package/dist/{chunk-53K3KWXQ.cjs → chunk-EUUQVDXX.cjs} +168 -138
  72. package/dist/chunk-EUUQVDXX.cjs.map +1 -0
  73. package/dist/{chunk-2J2V4TMJ.cjs → chunk-FQ3UCZUX.cjs} +43 -32
  74. package/dist/chunk-FQ3UCZUX.cjs.map +1 -0
  75. package/dist/{chunk-5UUL5EEO.cjs → chunk-FRT6RQND.cjs} +181 -128
  76. package/dist/chunk-FRT6RQND.cjs.map +1 -0
  77. package/dist/{chunk-R4DM4635.cjs → chunk-FSBFQBNE.cjs} +86 -2
  78. package/dist/chunk-FSBFQBNE.cjs.map +1 -0
  79. package/dist/{chunk-UZUBLXVC.js → chunk-FZJBFJJR.js} +3 -2
  80. package/dist/chunk-FZJBFJJR.js.map +1 -0
  81. package/dist/{chunk-UHSPAFY6.js → chunk-GFZNSSSN.js} +3 -3
  82. package/dist/{chunk-UHSPAFY6.js.map → chunk-GFZNSSSN.js.map} +1 -1
  83. package/dist/chunk-GOKC4CCZ.cjs +384 -0
  84. package/dist/chunk-GOKC4CCZ.cjs.map +1 -0
  85. package/dist/{chunk-Z3TFPXVN.cjs → chunk-GXQFRLTN.cjs} +3 -3
  86. package/dist/{chunk-Z3TFPXVN.cjs.map → chunk-GXQFRLTN.cjs.map} +1 -1
  87. package/dist/{chunk-B3L43JGH.js → chunk-HEH3QXOQ.js} +26 -10
  88. package/dist/chunk-HEH3QXOQ.js.map +1 -0
  89. package/dist/{chunk-KWDTTGH2.js → chunk-HYEJLKXI.js} +7 -5
  90. package/dist/chunk-HYEJLKXI.js.map +1 -0
  91. package/dist/{chunk-TA6FVVCM.js → chunk-I56VBDSC.js} +3 -3
  92. package/dist/{chunk-TA6FVVCM.js.map → chunk-I56VBDSC.js.map} +1 -1
  93. package/dist/{chunk-4DJNHPHB.js → chunk-IGWABMSM.js} +3 -3
  94. package/dist/{chunk-4DJNHPHB.js.map → chunk-IGWABMSM.js.map} +1 -1
  95. package/dist/{chunk-SWMRCGL4.cjs → chunk-IKMR2ADM.cjs} +5 -4
  96. package/dist/chunk-IKMR2ADM.cjs.map +1 -0
  97. package/dist/{chunk-4MHTSFPX.js → chunk-IYIYL2SQ.js} +46 -20
  98. package/dist/chunk-IYIYL2SQ.js.map +1 -0
  99. package/dist/{chunk-ONWOB76P.js → chunk-J3BU3JBX.js} +33 -14
  100. package/dist/chunk-J3BU3JBX.js.map +1 -0
  101. package/dist/{chunk-FFJVCQ5R.cjs → chunk-J644FU54.cjs} +49 -19
  102. package/dist/chunk-J644FU54.cjs.map +1 -0
  103. package/dist/chunk-JBB25LFB.js +359 -0
  104. package/dist/chunk-JBB25LFB.js.map +1 -0
  105. package/dist/{chunk-VDMQCSXT.cjs → chunk-JHPFOG2N.cjs} +4 -4
  106. package/dist/{chunk-VDMQCSXT.cjs.map → chunk-JHPFOG2N.cjs.map} +1 -1
  107. package/dist/{chunk-RYQ5NEKH.js → chunk-JV7UJGBM.js} +6 -6
  108. package/dist/{chunk-RYQ5NEKH.js.map → chunk-JV7UJGBM.js.map} +1 -1
  109. package/dist/{chunk-C6MDPPPL.js → chunk-JW5GWKV7.js} +3 -3
  110. package/dist/{chunk-C6MDPPPL.js.map → chunk-JW5GWKV7.js.map} +1 -1
  111. package/dist/{chunk-EYH7OUX5.js → chunk-JYAWYBA3.js} +23 -4
  112. package/dist/chunk-JYAWYBA3.js.map +1 -0
  113. package/dist/{chunk-5T3AWNHG.cjs → chunk-K7IGBNZA.cjs} +70 -39
  114. package/dist/chunk-K7IGBNZA.cjs.map +1 -0
  115. package/dist/{chunk-AU5ADTYD.cjs → chunk-KQAXXJ4G.cjs} +58 -11
  116. package/dist/chunk-KQAXXJ4G.cjs.map +1 -0
  117. package/dist/{chunk-BTJHYGPI.cjs → chunk-L7YQBSEL.cjs} +14 -4
  118. package/dist/chunk-L7YQBSEL.cjs.map +1 -0
  119. package/dist/chunk-LEMY57MI.js +3 -0
  120. package/dist/{chunk-3K7QCDSV.js.map → chunk-LEMY57MI.js.map} +1 -1
  121. package/dist/chunk-MPOWJVV4.js +590 -0
  122. package/dist/chunk-MPOWJVV4.js.map +1 -0
  123. package/dist/{chunk-VV4N4WY6.cjs → chunk-MSRU3XBH.cjs} +61 -35
  124. package/dist/chunk-MSRU3XBH.cjs.map +1 -0
  125. package/dist/{chunk-JFAXLE2J.js → chunk-MUYTGWGE.js} +9 -5
  126. package/dist/chunk-MUYTGWGE.js.map +1 -0
  127. package/dist/{chunk-B26RIQ5R.js → chunk-MV3MTHWQ.js} +6 -2
  128. package/dist/chunk-MV3MTHWQ.js.map +1 -0
  129. package/dist/{chunk-PF3XWKE5.cjs → chunk-NIEIRA5A.cjs} +33 -14
  130. package/dist/chunk-NIEIRA5A.cjs.map +1 -0
  131. package/dist/{chunk-VZUVYJFU.cjs → chunk-NINI4WVS.cjs} +19 -17
  132. package/dist/chunk-NINI4WVS.cjs.map +1 -0
  133. package/dist/{chunk-RRQGH7C5.cjs → chunk-NVHAQOHH.cjs} +8 -3
  134. package/dist/chunk-NVHAQOHH.cjs.map +1 -0
  135. package/dist/{chunk-OT36EMM5.js → chunk-OKBR6PX4.js} +5 -4
  136. package/dist/chunk-OKBR6PX4.js.map +1 -0
  137. package/dist/chunk-OX2RIVN7.js +249 -0
  138. package/dist/chunk-OX2RIVN7.js.map +1 -0
  139. package/dist/{chunk-LZEY55QZ.cjs → chunk-OYKS2JBB.cjs} +18 -3
  140. package/dist/chunk-OYKS2JBB.cjs.map +1 -0
  141. package/dist/{chunk-4LTN2LEN.js → chunk-PSTGFXQG.js} +3 -3
  142. package/dist/{chunk-4LTN2LEN.js.map → chunk-PSTGFXQG.js.map} +1 -1
  143. package/dist/{chunk-OW2BWGST.js → chunk-PU6ZC4GI.js} +48 -31
  144. package/dist/chunk-PU6ZC4GI.js.map +1 -0
  145. package/dist/chunk-PVUDXJAI.js +124 -0
  146. package/dist/chunk-PVUDXJAI.js.map +1 -0
  147. package/dist/{chunk-EF46XW4Z.cjs → chunk-Q2EWNXIB.cjs} +161 -67
  148. package/dist/chunk-Q2EWNXIB.cjs.map +1 -0
  149. package/dist/{chunk-CP7NPDQW.js → chunk-Q7NBJFEB.js} +87 -4
  150. package/dist/chunk-Q7NBJFEB.js.map +1 -0
  151. package/dist/{chunk-ORUPC5TV.cjs → chunk-QASIWBXU.cjs} +9 -5
  152. package/dist/chunk-QASIWBXU.cjs.map +1 -0
  153. package/dist/{chunk-4LNS5QDP.cjs → chunk-QITBJX4A.cjs} +3 -3
  154. package/dist/{chunk-4LNS5QDP.cjs.map → chunk-QITBJX4A.cjs.map} +1 -1
  155. package/dist/{chunk-KEIA2G6O.cjs → chunk-QO6U5VOT.cjs} +3 -3
  156. package/dist/{chunk-KEIA2G6O.cjs.map → chunk-QO6U5VOT.cjs.map} +1 -1
  157. package/dist/{chunk-XVZ4SLQB.js → chunk-QVJBUWJQ.js} +70 -39
  158. package/dist/chunk-QVJBUWJQ.js.map +1 -0
  159. package/dist/{chunk-QSMMFATL.js → chunk-R25H4N4Z.js} +181 -128
  160. package/dist/chunk-R25H4N4Z.js.map +1 -0
  161. package/dist/{chunk-TPGT236K.js → chunk-RC2YMOMS.js} +26 -3
  162. package/dist/chunk-RC2YMOMS.js.map +1 -0
  163. package/dist/{chunk-XXOBTAKA.js → chunk-RGTM53RS.js} +81 -52
  164. package/dist/chunk-RGTM53RS.js.map +1 -0
  165. package/dist/{chunk-BXK5TNJE.cjs → chunk-RH43XBNV.cjs} +3 -2
  166. package/dist/chunk-RH43XBNV.cjs.map +1 -0
  167. package/dist/{chunk-QZLRB3UG.js → chunk-TRZXK57D.js} +168 -138
  168. package/dist/chunk-TRZXK57D.js.map +1 -0
  169. package/dist/{chunk-B7YGVKTE.cjs → chunk-U3ABLVYH.cjs} +51 -24
  170. package/dist/chunk-U3ABLVYH.cjs.map +1 -0
  171. package/dist/{chunk-GV5JQBPX.js → chunk-VCO2IZOG.js} +9 -5
  172. package/dist/chunk-VCO2IZOG.js.map +1 -0
  173. package/dist/chunk-WFS6R2F5.js +328 -0
  174. package/dist/chunk-WFS6R2F5.js.map +1 -0
  175. package/dist/{chunk-IY7UQPDO.cjs → chunk-WGPMTW36.cjs} +6 -2
  176. package/dist/chunk-WGPMTW36.cjs.map +1 -0
  177. package/dist/chunk-WJU3KLVV.cjs +855 -0
  178. package/dist/chunk-WJU3KLVV.cjs.map +1 -0
  179. package/dist/{chunk-NIHESA7O.js → chunk-WO5CAOAN.js} +43 -32
  180. package/dist/chunk-WO5CAOAN.js.map +1 -0
  181. package/dist/{chunk-SOFX4T7M.js → chunk-WOYUQ4AT.js} +49 -19
  182. package/dist/chunk-WOYUQ4AT.js.map +1 -0
  183. package/dist/{chunk-TCQ27C5M.js → chunk-WTDCNXZO.js} +8 -2
  184. package/dist/chunk-WTDCNXZO.js.map +1 -0
  185. package/dist/{chunk-O5HS7ZND.cjs → chunk-X7S76WB7.cjs} +3 -3
  186. package/dist/{chunk-O5HS7ZND.cjs.map → chunk-X7S76WB7.cjs.map} +1 -1
  187. package/dist/{chunk-ULOA7WBW.js → chunk-XB7QCKK7.js} +3 -3
  188. package/dist/{chunk-ULOA7WBW.js.map → chunk-XB7QCKK7.js.map} +1 -1
  189. package/dist/{chunk-G2DOD34H.js → chunk-XCLQZ4FV.js} +84 -38
  190. package/dist/chunk-XCLQZ4FV.js.map +1 -0
  191. package/dist/{chunk-HRA4FUO6.cjs → chunk-YDWWG4A2.cjs} +81 -52
  192. package/dist/chunk-YDWWG4A2.cjs.map +1 -0
  193. package/dist/{chunk-RCMF6KZA.js → chunk-YTZPVEIO.js} +3 -3
  194. package/dist/{chunk-RCMF6KZA.js.map → chunk-YTZPVEIO.js.map} +1 -1
  195. package/dist/{chunk-SWV5E75F.cjs → chunk-Z5J4NTPL.cjs} +3 -3
  196. package/dist/{chunk-SWV5E75F.cjs.map → chunk-Z5J4NTPL.cjs.map} +1 -1
  197. package/dist/{chunk-XHJGYBYG.cjs → chunk-ZKFVGYBK.cjs} +48 -31
  198. package/dist/chunk-ZKFVGYBK.cjs.map +1 -0
  199. package/dist/{chunk-NAATBUHR.cjs → chunk-ZNZZCB2M.cjs} +46 -20
  200. package/dist/chunk-ZNZZCB2M.cjs.map +1 -0
  201. package/dist/{chunk-CEHWXAAI.js → chunk-ZVPJ2MH6.js} +14 -4
  202. package/dist/chunk-ZVPJ2MH6.js.map +1 -0
  203. package/dist/{chunk-VBHPXSCV.js → chunk-ZVSW2KS6.js} +12 -6
  204. package/dist/chunk-ZVSW2KS6.js.map +1 -0
  205. package/dist/components/Alert/index.cjs +5 -5
  206. package/dist/components/Alert/index.js +1 -1
  207. package/dist/components/AudioPlayer/index.cjs +6 -6
  208. package/dist/components/AudioPlayer/index.d.cts +5 -4
  209. package/dist/components/AudioPlayer/index.d.ts +5 -4
  210. package/dist/components/AudioPlayer/index.js +1 -1
  211. package/dist/components/AudioRecorder/index.cjs +6 -6
  212. package/dist/components/AudioRecorder/index.js +1 -1
  213. package/dist/components/Avatar/index.cjs +5 -5
  214. package/dist/components/Avatar/index.js +1 -1
  215. package/dist/components/Badge/index.cjs +3 -3
  216. package/dist/components/Badge/index.js +1 -1
  217. package/dist/components/Breadcrumb/index.cjs +3 -3
  218. package/dist/components/Breadcrumb/index.js +1 -1
  219. package/dist/components/Button/index.cjs +3 -3
  220. package/dist/components/Button/index.js +1 -1
  221. package/dist/components/Card/index.cjs +15 -15
  222. package/dist/components/Card/index.d.cts +6 -2
  223. package/dist/components/Card/index.d.ts +6 -2
  224. package/dist/components/Card/index.js +1 -1
  225. package/dist/components/Checkbox/index.cjs +4 -4
  226. package/dist/components/Checkbox/index.js +1 -1
  227. package/dist/components/CountryCodeDropdown/index.cjs +23 -0
  228. package/dist/components/CountryCodeDropdown/index.cjs.map +1 -0
  229. package/dist/components/CountryCodeDropdown/index.d.cts +69 -0
  230. package/dist/components/CountryCodeDropdown/index.d.ts +69 -0
  231. package/dist/components/CountryCodeDropdown/index.js +6 -0
  232. package/dist/components/CountryCodeDropdown/index.js.map +1 -0
  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 +9 -8
  236. package/dist/components/Dropdown/index.d.cts +29 -1
  237. package/dist/components/Dropdown/index.d.ts +29 -1
  238. package/dist/components/Dropdown/index.js +3 -2
  239. package/dist/components/Input/index.cjs +3 -3
  240. package/dist/components/Input/index.js +1 -1
  241. package/dist/components/Modal/index.cjs +9 -9
  242. package/dist/components/Modal/index.js +1 -1
  243. package/dist/components/Pagination/index.cjs +4 -4
  244. package/dist/components/Pagination/index.d.cts +6 -2
  245. package/dist/components/Pagination/index.d.ts +6 -2
  246. package/dist/components/Pagination/index.js +1 -1
  247. package/dist/components/PhoneInput/index.cjs +5 -5
  248. package/dist/components/PhoneInput/index.js +3 -3
  249. package/dist/components/Progress/index.cjs +6 -6
  250. package/dist/components/Progress/index.js +1 -1
  251. package/dist/components/QuickAction/index.cjs +6 -6
  252. package/dist/components/QuickAction/index.js +1 -1
  253. package/dist/components/Radio/index.cjs +4 -4
  254. package/dist/components/Radio/index.js +1 -1
  255. package/dist/components/RecordButton/index.cjs +4 -4
  256. package/dist/components/RecordButton/index.js +1 -1
  257. package/dist/components/SchedulePicker/index.cjs +10 -10
  258. package/dist/components/SchedulePicker/index.js +1 -1
  259. package/dist/components/Select/index.cjs +3 -3
  260. package/dist/components/Select/index.d.cts +3 -1
  261. package/dist/components/Select/index.d.ts +3 -1
  262. package/dist/components/Select/index.js +1 -1
  263. package/dist/components/Skeleton/index.cjs +6 -6
  264. package/dist/components/Skeleton/index.d.cts +1 -1
  265. package/dist/components/Skeleton/index.d.ts +1 -1
  266. package/dist/components/Skeleton/index.js +1 -1
  267. package/dist/components/Slider/index.cjs +5 -5
  268. package/dist/components/Slider/index.js +1 -1
  269. package/dist/components/Spinner/index.cjs +5 -5
  270. package/dist/components/Spinner/index.js +1 -1
  271. package/dist/components/Switch/index.cjs +4 -4
  272. package/dist/components/Switch/index.js +1 -1
  273. package/dist/components/Table/index.cjs +9 -9
  274. package/dist/components/Table/index.js +1 -1
  275. package/dist/components/Tabs/index.cjs +7 -7
  276. package/dist/components/Tabs/index.js +1 -1
  277. package/dist/components/Text/index.cjs +4 -4
  278. package/dist/components/Text/index.js +1 -1
  279. package/dist/components/Textarea/index.cjs +3 -3
  280. package/dist/components/Textarea/index.js +1 -1
  281. package/dist/components/ThemeProvider/index.cjs +8 -8
  282. package/dist/components/ThemeProvider/index.js +2 -2
  283. package/dist/components/Tooltip/index.cjs +2 -2
  284. package/dist/components/Tooltip/index.js +1 -1
  285. package/dist/datavis.cjs +251 -0
  286. package/dist/datavis.cjs.map +1 -0
  287. package/dist/datavis.d.cts +47 -0
  288. package/dist/datavis.d.ts +47 -0
  289. package/dist/datavis.js +247 -0
  290. package/dist/datavis.js.map +1 -0
  291. package/dist/default-BTEIFIZJ.cjs +18 -0
  292. package/dist/{default-ZGHKI5WF.cjs.map → default-BTEIFIZJ.cjs.map} +1 -1
  293. package/dist/default-ORBRVZRZ.js +3 -0
  294. package/dist/{default-LIRPABBK.js.map → default-ORBRVZRZ.js.map} +1 -1
  295. package/dist/hooks/index.cjs +19 -15
  296. package/dist/hooks/index.d.cts +39 -3
  297. package/dist/hooks/index.d.ts +39 -3
  298. package/dist/hooks/index.js +2 -2
  299. package/dist/index.cjs +13666 -8954
  300. package/dist/index.cjs.map +1 -1
  301. package/dist/index.d.cts +126 -49
  302. package/dist/index.d.ts +126 -49
  303. package/dist/index.js +13035 -8347
  304. package/dist/index.js.map +1 -1
  305. package/dist/mieweb-4XR6UKDQ.cjs +18 -0
  306. package/dist/{mieweb-UJABK5XX.cjs.map → mieweb-4XR6UKDQ.cjs.map} +1 -1
  307. package/dist/mieweb-N6UMH4MU.js +3 -0
  308. package/dist/{mieweb-PV2YKYO7.js.map → mieweb-N6UMH4MU.js.map} +1 -1
  309. package/dist/ozwell.cjs +385 -0
  310. package/dist/ozwell.cjs.map +1 -0
  311. package/dist/ozwell.d.cts +15 -0
  312. package/dist/ozwell.d.ts +15 -0
  313. package/dist/ozwell.js +360 -0
  314. package/dist/ozwell.js.map +1 -0
  315. package/dist/styles/init.css +339 -0
  316. package/dist/styles.css +1 -1
  317. package/dist/tailwind-preset.cjs +4 -4
  318. package/dist/tailwind-preset.d.cts +13 -2
  319. package/dist/tailwind-preset.d.ts +13 -2
  320. package/dist/tailwind-preset.js +1 -1
  321. package/dist/utils/index.cjs +31 -23
  322. package/dist/utils/index.d.cts +19 -2
  323. package/dist/utils/index.d.ts +19 -2
  324. package/dist/utils/index.js +2 -2
  325. package/dist/waggleline-2MLRNVCV.js +3 -0
  326. package/dist/{waggleline-BMUYAFJF.js.map → waggleline-2MLRNVCV.js.map} +1 -1
  327. package/dist/waggleline-I7QWD3YX.cjs +18 -0
  328. package/dist/{waggleline-6IGA66HR.cjs.map → waggleline-I7QWD3YX.cjs.map} +1 -1
  329. package/dist/webchart-F6EIMC3I.js +3 -0
  330. package/dist/{webchart-2SLO5ICI.js.map → webchart-F6EIMC3I.js.map} +1 -1
  331. package/dist/webchart-H3BHYNHB.cjs +18 -0
  332. package/dist/{webchart-EHVGP46N.cjs.map → webchart-H3BHYNHB.cjs.map} +1 -1
  333. package/package.json +42 -4
  334. package/dist/chunk-265CFCCX.js +0 -173
  335. package/dist/chunk-265CFCCX.js.map +0 -1
  336. package/dist/chunk-2J2V4TMJ.cjs.map +0 -1
  337. package/dist/chunk-377KAB4C.cjs.map +0 -1
  338. package/dist/chunk-3K7QCDSV.js +0 -3
  339. package/dist/chunk-3NJ72QU6.js.map +0 -1
  340. package/dist/chunk-4AWW5WPF.js.map +0 -1
  341. package/dist/chunk-4MHTSFPX.js.map +0 -1
  342. package/dist/chunk-4T2ZNPTC.js +0 -220
  343. package/dist/chunk-4T2ZNPTC.js.map +0 -1
  344. package/dist/chunk-4YRAEFYW.js +0 -233
  345. package/dist/chunk-4YRAEFYW.js.map +0 -1
  346. package/dist/chunk-53K3KWXQ.cjs.map +0 -1
  347. package/dist/chunk-5T3AWNHG.cjs.map +0 -1
  348. package/dist/chunk-5UUL5EEO.cjs.map +0 -1
  349. package/dist/chunk-6OCIIIAI.js.map +0 -1
  350. package/dist/chunk-6Q4SU72T.js.map +0 -1
  351. package/dist/chunk-AU5ADTYD.cjs.map +0 -1
  352. package/dist/chunk-AWIULTJW.js.map +0 -1
  353. package/dist/chunk-B26RIQ5R.js.map +0 -1
  354. package/dist/chunk-B3L43JGH.js.map +0 -1
  355. package/dist/chunk-B7YGVKTE.cjs.map +0 -1
  356. package/dist/chunk-BTJHYGPI.cjs.map +0 -1
  357. package/dist/chunk-BV75DAKO.cjs +0 -245
  358. package/dist/chunk-BV75DAKO.cjs.map +0 -1
  359. package/dist/chunk-BXK5TNJE.cjs.map +0 -1
  360. package/dist/chunk-CEHWXAAI.js.map +0 -1
  361. package/dist/chunk-CP7NPDQW.js.map +0 -1
  362. package/dist/chunk-CQCYXHCU.cjs +0 -256
  363. package/dist/chunk-CQCYXHCU.cjs.map +0 -1
  364. package/dist/chunk-DMA74PZ7.js +0 -240
  365. package/dist/chunk-DMA74PZ7.js.map +0 -1
  366. package/dist/chunk-EF46XW4Z.cjs.map +0 -1
  367. package/dist/chunk-EKIQE524.cjs.map +0 -1
  368. package/dist/chunk-EYH7OUX5.js.map +0 -1
  369. package/dist/chunk-FFJVCQ5R.cjs.map +0 -1
  370. package/dist/chunk-FIXAVBUA.cjs +0 -200
  371. package/dist/chunk-FIXAVBUA.cjs.map +0 -1
  372. package/dist/chunk-G2DOD34H.js.map +0 -1
  373. package/dist/chunk-GHRQ3ZJH.js +0 -764
  374. package/dist/chunk-GHRQ3ZJH.js.map +0 -1
  375. package/dist/chunk-GV5JQBPX.js.map +0 -1
  376. package/dist/chunk-HRA4FUO6.cjs.map +0 -1
  377. package/dist/chunk-INFSKLXE.cjs +0 -790
  378. package/dist/chunk-INFSKLXE.cjs.map +0 -1
  379. package/dist/chunk-IY7UQPDO.cjs.map +0 -1
  380. package/dist/chunk-JFAXLE2J.js.map +0 -1
  381. package/dist/chunk-JYMQJ32S.cjs.map +0 -1
  382. package/dist/chunk-KWDTTGH2.js.map +0 -1
  383. package/dist/chunk-LZEY55QZ.cjs.map +0 -1
  384. package/dist/chunk-N3QTYHRZ.cjs.map +0 -1
  385. package/dist/chunk-NAATBUHR.cjs.map +0 -1
  386. package/dist/chunk-NIHESA7O.js.map +0 -1
  387. package/dist/chunk-NXRLGHEC.js +0 -98
  388. package/dist/chunk-NXRLGHEC.js.map +0 -1
  389. package/dist/chunk-ONWOB76P.js.map +0 -1
  390. package/dist/chunk-ORUPC5TV.cjs.map +0 -1
  391. package/dist/chunk-OT36EMM5.js.map +0 -1
  392. package/dist/chunk-OW2BWGST.js.map +0 -1
  393. package/dist/chunk-PEFJAWNR.cjs.map +0 -1
  394. package/dist/chunk-PEH4ZOEM.cjs.map +0 -1
  395. package/dist/chunk-PF3XWKE5.cjs.map +0 -1
  396. package/dist/chunk-QL2YTVTR.js.map +0 -1
  397. package/dist/chunk-QSMMFATL.js.map +0 -1
  398. package/dist/chunk-QYJ7RQJ2.cjs.map +0 -1
  399. package/dist/chunk-QZLRB3UG.js.map +0 -1
  400. package/dist/chunk-R4DM4635.cjs.map +0 -1
  401. package/dist/chunk-RRQGH7C5.cjs.map +0 -1
  402. package/dist/chunk-SOFX4T7M.js.map +0 -1
  403. package/dist/chunk-SSKI6VTW.cjs.map +0 -1
  404. package/dist/chunk-SWMRCGL4.cjs.map +0 -1
  405. package/dist/chunk-TCQ27C5M.js.map +0 -1
  406. package/dist/chunk-TPGT236K.js.map +0 -1
  407. package/dist/chunk-UZUBLXVC.js.map +0 -1
  408. package/dist/chunk-VBHPXSCV.js.map +0 -1
  409. package/dist/chunk-VV4N4WY6.cjs.map +0 -1
  410. package/dist/chunk-VZUVYJFU.cjs.map +0 -1
  411. package/dist/chunk-WH6I7CMP.cjs.map +0 -1
  412. package/dist/chunk-XHJGYBYG.cjs.map +0 -1
  413. package/dist/chunk-XVZ4SLQB.js.map +0 -1
  414. package/dist/chunk-XXOBTAKA.js.map +0 -1
  415. package/dist/default-LIRPABBK.js +0 -3
  416. package/dist/default-ZGHKI5WF.cjs +0 -18
  417. package/dist/mieweb-PV2YKYO7.js +0 -3
  418. package/dist/mieweb-UJABK5XX.cjs +0 -18
  419. package/dist/waggleline-6IGA66HR.cjs +0 -18
  420. package/dist/waggleline-BMUYAFJF.js +0 -3
  421. package/dist/webchart-2SLO5ICI.js +0 -3
  422. package/dist/webchart-EHVGP46N.cjs +0 -18
@@ -0,0 +1,855 @@
1
+ 'use strict';
2
+
3
+ var chunkOR5DRJCW_cjs = require('./chunk-OR5DRJCW.cjs');
4
+ var React = require('react');
5
+ var classVarianceAuthority = require('class-variance-authority');
6
+ var jsxRuntime = require('react/jsx-runtime');
7
+
8
+ function _interopNamespace(e) {
9
+ if (e && e.__esModule) return e;
10
+ var n = Object.create(null);
11
+ if (e) {
12
+ Object.keys(e).forEach(function (k) {
13
+ if (k !== 'default') {
14
+ var d = Object.getOwnPropertyDescriptor(e, k);
15
+ Object.defineProperty(n, k, d.get ? d : {
16
+ enumerable: true,
17
+ get: function () { return e[k]; }
18
+ });
19
+ }
20
+ });
21
+ }
22
+ n.default = e;
23
+ return Object.freeze(n);
24
+ }
25
+
26
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
27
+
28
+ var audioPlayerVariants = classVarianceAuthority.cva("", {
29
+ variants: {
30
+ variant: {
31
+ inline: "inline-flex items-center gap-2",
32
+ compact: [
33
+ "flex items-center gap-3 p-3",
34
+ "rounded-lg border border-border",
35
+ "bg-card text-card-foreground"
36
+ ],
37
+ waveform: [
38
+ "flex flex-col gap-3 p-4",
39
+ "rounded-xl border border-border",
40
+ "bg-card text-card-foreground"
41
+ ]
42
+ },
43
+ size: {
44
+ sm: "",
45
+ md: "",
46
+ lg: ""
47
+ }
48
+ },
49
+ compoundVariants: [
50
+ { variant: "compact", size: "sm", class: "p-2 gap-2" },
51
+ { variant: "compact", size: "lg", class: "p-4 gap-4" },
52
+ { variant: "waveform", size: "sm", class: "p-3 gap-2" },
53
+ { variant: "waveform", size: "lg", class: "p-5 gap-4" }
54
+ ],
55
+ defaultVariants: {
56
+ variant: "compact",
57
+ size: "md"
58
+ }
59
+ });
60
+ var playButtonVariants = classVarianceAuthority.cva(
61
+ [
62
+ "inline-flex items-center justify-center",
63
+ "rounded-full transition-all duration-200",
64
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
65
+ "disabled:pointer-events-none disabled:opacity-50",
66
+ "active:scale-95"
67
+ ],
68
+ {
69
+ variants: {
70
+ variant: {
71
+ inline: [
72
+ "text-neutral-500 hover:text-neutral-700 hover:bg-neutral-100",
73
+ "dark:text-neutral-400 dark:hover:text-neutral-200 dark:hover:bg-neutral-800"
74
+ ],
75
+ compact: [
76
+ "bg-primary-800 text-white",
77
+ "hover:bg-primary-900",
78
+ "active:bg-primary-800"
79
+ ],
80
+ waveform: [
81
+ "bg-primary-800 text-white",
82
+ "hover:bg-primary-900",
83
+ "active:bg-primary-800"
84
+ ]
85
+ },
86
+ size: {
87
+ sm: "h-7 w-7",
88
+ md: "h-9 w-9",
89
+ lg: "h-11 w-11"
90
+ }
91
+ },
92
+ defaultVariants: {
93
+ variant: "compact",
94
+ size: "md"
95
+ }
96
+ }
97
+ );
98
+ function formatTime(seconds) {
99
+ if (!isFinite(seconds) || isNaN(seconds)) return "0:00";
100
+ const mins = Math.floor(seconds / 60);
101
+ const secs = Math.floor(seconds % 60);
102
+ return `${mins}:${secs.toString().padStart(2, "0")}`;
103
+ }
104
+ function PlayIcon({ className }) {
105
+ return /* @__PURE__ */ jsxRuntime.jsx(
106
+ "svg",
107
+ {
108
+ className,
109
+ fill: "currentColor",
110
+ viewBox: "0 0 24 24",
111
+ "aria-hidden": "true",
112
+ children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M8 5v14l11-7z" })
113
+ }
114
+ );
115
+ }
116
+ function PauseIcon({ className }) {
117
+ return /* @__PURE__ */ jsxRuntime.jsx(
118
+ "svg",
119
+ {
120
+ className,
121
+ fill: "currentColor",
122
+ viewBox: "0 0 24 24",
123
+ "aria-hidden": "true",
124
+ children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M6 19h4V5H6v14zm8-14v14h4V5h-4z" })
125
+ }
126
+ );
127
+ }
128
+ function SpinnerIcon({ className }) {
129
+ return /* @__PURE__ */ jsxRuntime.jsxs(
130
+ "svg",
131
+ {
132
+ className: chunkOR5DRJCW_cjs.cn("animate-spin", className),
133
+ fill: "none",
134
+ viewBox: "0 0 24 24",
135
+ "aria-hidden": "true",
136
+ children: [
137
+ /* @__PURE__ */ jsxRuntime.jsx(
138
+ "circle",
139
+ {
140
+ className: "opacity-25",
141
+ cx: "12",
142
+ cy: "12",
143
+ r: "10",
144
+ stroke: "currentColor",
145
+ strokeWidth: "4"
146
+ }
147
+ ),
148
+ /* @__PURE__ */ jsxRuntime.jsx(
149
+ "path",
150
+ {
151
+ className: "opacity-75",
152
+ fill: "currentColor",
153
+ d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
154
+ }
155
+ )
156
+ ]
157
+ }
158
+ );
159
+ }
160
+ function ProgressBar({
161
+ currentTime,
162
+ duration,
163
+ onSeek,
164
+ disabled
165
+ }) {
166
+ const progressRef = React__namespace.useRef(null);
167
+ const progress = duration > 0 ? currentTime / duration * 100 : 0;
168
+ const handleClick = (e) => {
169
+ if (disabled || !progressRef.current || duration <= 0) return;
170
+ const rect = progressRef.current.getBoundingClientRect();
171
+ const x = e.clientX - rect.left;
172
+ const percentage = x / rect.width;
173
+ onSeek(percentage * duration);
174
+ };
175
+ return /* @__PURE__ */ jsxRuntime.jsxs(
176
+ "div",
177
+ {
178
+ ref: progressRef,
179
+ "data-slot": "audio-player-progress",
180
+ role: "slider",
181
+ "aria-label": "Audio progress",
182
+ "aria-valuemin": 0,
183
+ "aria-valuemax": duration,
184
+ "aria-valuenow": currentTime,
185
+ "aria-valuetext": `${formatTime(currentTime)} of ${formatTime(duration)}`,
186
+ tabIndex: disabled ? -1 : 0,
187
+ className: chunkOR5DRJCW_cjs.cn(
188
+ "relative h-1.5 flex-1 cursor-pointer rounded-full bg-neutral-200 dark:bg-neutral-700",
189
+ disabled && "cursor-not-allowed opacity-50"
190
+ ),
191
+ onClick: handleClick,
192
+ onKeyDown: (e) => {
193
+ if (disabled) return;
194
+ const step = duration * 0.05;
195
+ if (e.key === "ArrowRight") {
196
+ onSeek(Math.min(currentTime + step, duration));
197
+ } else if (e.key === "ArrowLeft") {
198
+ onSeek(Math.max(currentTime - step, 0));
199
+ }
200
+ },
201
+ children: [
202
+ /* @__PURE__ */ jsxRuntime.jsx(
203
+ "div",
204
+ {
205
+ className: "bg-primary-800 absolute inset-y-0 left-0 rounded-full transition-all",
206
+ style: { width: `${progress}%` }
207
+ }
208
+ ),
209
+ /* @__PURE__ */ jsxRuntime.jsx(
210
+ "div",
211
+ {
212
+ className: "bg-primary-800 absolute top-1/2 h-3 w-3 -translate-y-1/2 rounded-full shadow-sm transition-all",
213
+ style: { left: `calc(${progress}% - 6px)` }
214
+ }
215
+ )
216
+ ]
217
+ }
218
+ );
219
+ }
220
+ function Waveform({
221
+ src,
222
+ isPlaying,
223
+ playbackRate = 1,
224
+ onReady,
225
+ onTimeUpdate,
226
+ onFinish,
227
+ onSeek,
228
+ waveColor,
229
+ progressColor,
230
+ height = 64,
231
+ showHoverCursor = false,
232
+ waveformRef,
233
+ onHoverTimeChange,
234
+ cursorColor = "var(--color-red-500, rgb(239, 68, 68))"
235
+ }) {
236
+ const containerRef = React__namespace.useRef(null);
237
+ const wavesurferRef = React__namespace.useRef(null);
238
+ const [isLoaded, setIsLoaded] = React__namespace.useState(false);
239
+ const [isHovering, setIsHovering] = React__namespace.useState(false);
240
+ const [hoverPosition, setHoverPosition] = React__namespace.useState(0);
241
+ React__namespace.useEffect(() => {
242
+ if (waveformRef) {
243
+ waveformRef.current = {
244
+ seekTo: (time) => {
245
+ if (wavesurferRef.current && isLoaded) {
246
+ const duration = wavesurferRef.current.getDuration();
247
+ if (duration > 0) {
248
+ const clampedTime = Math.min(Math.max(time, 0), duration);
249
+ const progress = clampedTime / duration;
250
+ wavesurferRef.current.seekTo(progress);
251
+ }
252
+ }
253
+ },
254
+ play: () => {
255
+ if (wavesurferRef.current && isLoaded) {
256
+ wavesurferRef.current.play();
257
+ }
258
+ },
259
+ pause: () => {
260
+ if (wavesurferRef.current && isLoaded) {
261
+ wavesurferRef.current.pause();
262
+ }
263
+ },
264
+ getCurrentTime: () => {
265
+ return wavesurferRef.current?.getCurrentTime?.() ?? 0;
266
+ },
267
+ getDuration: () => {
268
+ return wavesurferRef.current?.getDuration?.() ?? 0;
269
+ }
270
+ };
271
+ }
272
+ return () => {
273
+ if (waveformRef) {
274
+ waveformRef.current = null;
275
+ }
276
+ };
277
+ }, [waveformRef, isLoaded]);
278
+ React__namespace.useEffect(() => {
279
+ if (!containerRef.current) return;
280
+ const initWaveSurfer = async () => {
281
+ try {
282
+ const WaveSurfer = (await import('wavesurfer.js')).default;
283
+ if (wavesurferRef.current) {
284
+ wavesurferRef.current.destroy();
285
+ }
286
+ wavesurferRef.current = WaveSurfer.create({
287
+ container: containerRef.current,
288
+ waveColor: waveColor || "#d1d5db",
289
+ progressColor: progressColor || "var(--color-primary-600, #2563eb)",
290
+ cursorColor: "transparent",
291
+ barWidth: 2,
292
+ barGap: 2,
293
+ barRadius: 2,
294
+ height,
295
+ normalize: true,
296
+ interact: !showHoverCursor
297
+ });
298
+ const emitTimeUpdate = () => {
299
+ onTimeUpdate(
300
+ wavesurferRef.current.getCurrentTime(),
301
+ wavesurferRef.current.getDuration()
302
+ );
303
+ };
304
+ wavesurferRef.current.on("ready", () => {
305
+ setIsLoaded(true);
306
+ const duration = wavesurferRef.current.getDuration();
307
+ onReady(duration);
308
+ onTimeUpdate(wavesurferRef.current.getCurrentTime(), duration);
309
+ });
310
+ wavesurferRef.current.on("timeupdate", emitTimeUpdate);
311
+ wavesurferRef.current.on("audioprocess", emitTimeUpdate);
312
+ wavesurferRef.current.on("seeking", () => {
313
+ emitTimeUpdate();
314
+ });
315
+ if (!showHoverCursor) {
316
+ wavesurferRef.current.on("interaction", () => {
317
+ onSeek(wavesurferRef.current.getCurrentTime());
318
+ });
319
+ }
320
+ wavesurferRef.current.on("finish", () => {
321
+ onFinish();
322
+ });
323
+ wavesurferRef.current.load(src);
324
+ } catch (error) {
325
+ console.error("Failed to load WaveSurfer:", error);
326
+ }
327
+ };
328
+ setIsLoaded(false);
329
+ initWaveSurfer();
330
+ return () => {
331
+ if (wavesurferRef.current) {
332
+ wavesurferRef.current.destroy();
333
+ wavesurferRef.current = null;
334
+ }
335
+ };
336
+ }, [src, showHoverCursor]);
337
+ React__namespace.useEffect(() => {
338
+ if (!wavesurferRef.current || !isLoaded) return;
339
+ if (isPlaying) {
340
+ wavesurferRef.current.play();
341
+ } else {
342
+ wavesurferRef.current.pause();
343
+ }
344
+ }, [isPlaying, isLoaded]);
345
+ React__namespace.useEffect(() => {
346
+ if (!wavesurferRef.current || !isLoaded) return;
347
+ wavesurferRef.current.setPlaybackRate(playbackRate);
348
+ }, [playbackRate, isLoaded]);
349
+ const handleMouseMove = showHoverCursor ? (e) => {
350
+ if (!containerRef.current || !wavesurferRef.current || !isLoaded)
351
+ return;
352
+ const rect = containerRef.current.getBoundingClientRect();
353
+ const x = Math.max(0, Math.min(e.clientX - rect.left, rect.width));
354
+ const percentage = x / rect.width;
355
+ const duration = wavesurferRef.current.getDuration();
356
+ setHoverPosition(percentage * 100);
357
+ onHoverTimeChange?.(percentage * duration);
358
+ } : void 0;
359
+ const handleMouseEnter = showHoverCursor ? () => setIsHovering(true) : void 0;
360
+ const handleMouseLeave = showHoverCursor ? () => {
361
+ setIsHovering(false);
362
+ setHoverPosition(0);
363
+ onHoverTimeChange?.(null);
364
+ } : void 0;
365
+ const handleClick = showHoverCursor ? (e) => {
366
+ if (!containerRef.current || !wavesurferRef.current || !isLoaded)
367
+ return;
368
+ const rect = containerRef.current.getBoundingClientRect();
369
+ const x = Math.max(0, Math.min(e.clientX - rect.left, rect.width));
370
+ const percentage = x / rect.width;
371
+ const duration = wavesurferRef.current.getDuration();
372
+ const time = duration * percentage;
373
+ wavesurferRef.current.seekTo(percentage);
374
+ onSeek(time);
375
+ onTimeUpdate(time, duration);
376
+ onHoverTimeChange?.(null);
377
+ } : void 0;
378
+ const handleKeyDown = showHoverCursor ? (e) => {
379
+ if (!wavesurferRef.current || !isLoaded) return;
380
+ const duration = wavesurferRef.current.getDuration();
381
+ const currentTime = wavesurferRef.current.getCurrentTime();
382
+ const step = duration * 0.05;
383
+ if (e.key === "ArrowRight") {
384
+ e.preventDefault();
385
+ const newTime = Math.min(currentTime + step, duration);
386
+ wavesurferRef.current.seekTo(newTime / duration);
387
+ onSeek(newTime);
388
+ onTimeUpdate(newTime, duration);
389
+ } else if (e.key === "ArrowLeft") {
390
+ e.preventDefault();
391
+ const newTime = Math.max(currentTime - step, 0);
392
+ wavesurferRef.current.seekTo(newTime / duration);
393
+ onSeek(newTime);
394
+ onTimeUpdate(newTime, duration);
395
+ }
396
+ } : void 0;
397
+ return /* @__PURE__ */ jsxRuntime.jsx(
398
+ "div",
399
+ {
400
+ ref: containerRef,
401
+ "data-slot": "audio-player-waveform",
402
+ role: showHoverCursor ? "slider" : void 0,
403
+ "aria-label": showHoverCursor ? "Audio progress" : void 0,
404
+ "aria-valuemin": showHoverCursor ? 0 : void 0,
405
+ "aria-valuemax": showHoverCursor && wavesurferRef.current ? wavesurferRef.current.getDuration() : void 0,
406
+ "aria-valuenow": showHoverCursor && wavesurferRef.current ? wavesurferRef.current.getCurrentTime() : void 0,
407
+ tabIndex: showHoverCursor ? 0 : void 0,
408
+ className: chunkOR5DRJCW_cjs.cn(
409
+ "relative w-full rounded-lg bg-neutral-100 dark:bg-neutral-800",
410
+ showHoverCursor && "cursor-pointer",
411
+ !isLoaded && "animate-pulse"
412
+ ),
413
+ style: { height },
414
+ onMouseMove: handleMouseMove,
415
+ onMouseEnter: handleMouseEnter,
416
+ onMouseLeave: handleMouseLeave,
417
+ onClick: handleClick,
418
+ onKeyDown: handleKeyDown,
419
+ children: showHoverCursor && isHovering && isLoaded && /* @__PURE__ */ jsxRuntime.jsx(
420
+ "div",
421
+ {
422
+ className: "pointer-events-none absolute top-0 bottom-0 z-10 w-0.5",
423
+ style: { left: `${hoverPosition}%`, backgroundColor: cursorColor }
424
+ }
425
+ )
426
+ }
427
+ );
428
+ }
429
+ var AudioPlayer = React__namespace.forwardRef(
430
+ function AudioPlayer2({
431
+ src,
432
+ title,
433
+ variant = "compact",
434
+ size = "md",
435
+ onStateChange,
436
+ onEnded,
437
+ onError,
438
+ onTimeUpdate,
439
+ showTime = true,
440
+ showDuration = true,
441
+ waveColor,
442
+ progressColor,
443
+ waveformHeight = 64,
444
+ showWaveformHoverCursor = true,
445
+ waveformCursorColor,
446
+ disabled = false,
447
+ className,
448
+ "aria-label": ariaLabel,
449
+ playbackRates = [0.5, 0.75, 1, 1.25, 1.5, 2],
450
+ showPlaybackRate = false,
451
+ /** Whether to preload audio (set to false for lists with many items) */
452
+ preload = false,
453
+ /** Fallback duration in seconds to display before audio is loaded */
454
+ fallbackDuration
455
+ }, ref) {
456
+ const [state, setState] = React__namespace.useState("idle");
457
+ const [currentTime, setCurrentTime] = React__namespace.useState(0);
458
+ const [duration, setDuration] = React__namespace.useState(0);
459
+ const [playbackRate, setPlaybackRate] = React__namespace.useState(1);
460
+ const [audioInitialized, setAudioInitialized] = React__namespace.useState(false);
461
+ const [hoverTime, setHoverTime] = React__namespace.useState(null);
462
+ const containerRef = React__namespace.useRef(null);
463
+ const audioRef = React__namespace.useRef(null);
464
+ const waveformMethodsRef = React__namespace.useRef(null);
465
+ const isPlaying = state === "playing";
466
+ const isLoading = state === "loading";
467
+ const displayDuration = duration > 0 ? duration : fallbackDuration ?? 0;
468
+ const updateState = React__namespace.useCallback(
469
+ (newState) => {
470
+ setState(newState);
471
+ onStateChange?.(newState);
472
+ },
473
+ [onStateChange]
474
+ );
475
+ const initAudio = React__namespace.useCallback(() => {
476
+ if (variant === "waveform" || audioInitialized) return null;
477
+ const audio = new globalThis.Audio(src);
478
+ audioRef.current = audio;
479
+ setAudioInitialized(true);
480
+ audio.addEventListener("loadstart", () => updateState("loading"));
481
+ audio.addEventListener("canplay", () => {
482
+ updateState("idle");
483
+ });
484
+ audio.addEventListener("loadedmetadata", () => {
485
+ setDuration(audio.duration);
486
+ onTimeUpdate?.(audio.currentTime, audio.duration);
487
+ });
488
+ audio.addEventListener("timeupdate", () => {
489
+ setCurrentTime(audio.currentTime);
490
+ onTimeUpdate?.(audio.currentTime, audio.duration);
491
+ });
492
+ audio.addEventListener("ended", () => {
493
+ updateState("idle");
494
+ setCurrentTime(0);
495
+ onEnded?.();
496
+ });
497
+ audio.addEventListener("error", () => {
498
+ updateState("error");
499
+ onError?.(new Error("Failed to load audio"));
500
+ });
501
+ return audio;
502
+ }, [
503
+ src,
504
+ variant,
505
+ audioInitialized,
506
+ updateState,
507
+ onTimeUpdate,
508
+ onEnded,
509
+ onError
510
+ ]);
511
+ React__namespace.useImperativeHandle(
512
+ ref,
513
+ () => ({
514
+ get container() {
515
+ return containerRef.current;
516
+ },
517
+ seekTo: (time) => {
518
+ if (variant === "waveform") {
519
+ waveformMethodsRef.current?.seekTo(time);
520
+ } else {
521
+ if (!audioRef.current) {
522
+ initAudio();
523
+ }
524
+ if (audioRef.current) {
525
+ audioRef.current.currentTime = time;
526
+ }
527
+ }
528
+ },
529
+ play: () => {
530
+ if (variant === "waveform") {
531
+ if (waveformMethodsRef.current) {
532
+ waveformMethodsRef.current.play();
533
+ updateState("playing");
534
+ }
535
+ } else {
536
+ if (!audioRef.current) {
537
+ initAudio();
538
+ }
539
+ if (audioRef.current) {
540
+ audioRef.current.play().catch((error) => {
541
+ updateState("error");
542
+ onError?.(error);
543
+ });
544
+ updateState("playing");
545
+ }
546
+ }
547
+ },
548
+ pause: () => {
549
+ if (variant === "waveform") {
550
+ if (waveformMethodsRef.current) {
551
+ waveformMethodsRef.current.pause();
552
+ updateState("paused");
553
+ }
554
+ } else if (audioRef.current) {
555
+ audioRef.current.pause();
556
+ updateState("paused");
557
+ }
558
+ },
559
+ getCurrentTime: () => {
560
+ if (variant === "waveform") {
561
+ return waveformMethodsRef.current?.getCurrentTime() ?? 0;
562
+ }
563
+ return audioRef.current?.currentTime ?? 0;
564
+ },
565
+ getDuration: () => {
566
+ if (variant === "waveform") {
567
+ return waveformMethodsRef.current?.getDuration() ?? 0;
568
+ }
569
+ const rawDuration = audioRef.current?.duration;
570
+ return Number.isFinite(rawDuration) ? rawDuration : 0;
571
+ }
572
+ }),
573
+ [variant, initAudio, updateState, onError]
574
+ );
575
+ React__namespace.useEffect(() => {
576
+ if (preload && !audioInitialized && variant !== "waveform") {
577
+ initAudio();
578
+ }
579
+ }, [preload, audioInitialized, variant, initAudio]);
580
+ React__namespace.useEffect(() => {
581
+ return () => {
582
+ if (audioRef.current) {
583
+ audioRef.current.pause();
584
+ audioRef.current.src = "";
585
+ }
586
+ };
587
+ }, []);
588
+ React__namespace.useEffect(() => {
589
+ if (audioRef.current) {
590
+ audioRef.current.playbackRate = playbackRate;
591
+ }
592
+ }, [playbackRate]);
593
+ const handlePlay = React__namespace.useCallback(() => {
594
+ if (disabled) return;
595
+ if (variant === "waveform") {
596
+ if (isLoading) return;
597
+ updateState(isPlaying ? "paused" : "playing");
598
+ return;
599
+ }
600
+ if (!audioInitialized && !isLoading) {
601
+ const audio = initAudio();
602
+ if (audio) {
603
+ updateState("loading");
604
+ audio.addEventListener(
605
+ "canplay",
606
+ () => {
607
+ audio.play().catch((error) => {
608
+ updateState("error");
609
+ onError?.(error);
610
+ });
611
+ updateState("playing");
612
+ },
613
+ { once: true }
614
+ );
615
+ }
616
+ return;
617
+ }
618
+ if (isLoading) return;
619
+ if (isPlaying) {
620
+ if (audioRef.current) {
621
+ audioRef.current.pause();
622
+ }
623
+ updateState("paused");
624
+ } else {
625
+ if (audioRef.current) {
626
+ audioRef.current.play().catch((error) => {
627
+ updateState("error");
628
+ onError?.(error);
629
+ });
630
+ updateState("playing");
631
+ }
632
+ }
633
+ }, [
634
+ disabled,
635
+ variant,
636
+ audioInitialized,
637
+ isLoading,
638
+ isPlaying,
639
+ initAudio,
640
+ updateState,
641
+ onError
642
+ ]);
643
+ const handleSeek = React__namespace.useCallback(
644
+ (time) => {
645
+ if (audioRef.current) {
646
+ audioRef.current.currentTime = time;
647
+ setCurrentTime(time);
648
+ onTimeUpdate?.(time, audioRef.current.duration);
649
+ }
650
+ },
651
+ [onTimeUpdate]
652
+ );
653
+ const handleWaveformReady = React__namespace.useCallback(
654
+ (dur) => {
655
+ setDuration(dur);
656
+ setState("idle");
657
+ onTimeUpdate?.(currentTime, dur);
658
+ },
659
+ [currentTime, onTimeUpdate]
660
+ );
661
+ const handleWaveformTimeUpdate = React__namespace.useCallback(
662
+ (time, dur) => {
663
+ setCurrentTime(time);
664
+ if (dur > 0) {
665
+ setDuration(dur);
666
+ }
667
+ onTimeUpdate?.(time, dur);
668
+ },
669
+ [onTimeUpdate]
670
+ );
671
+ const handleWaveformFinish = React__namespace.useCallback(() => {
672
+ updateState("idle");
673
+ setCurrentTime(0);
674
+ onEnded?.();
675
+ }, [updateState, onEnded]);
676
+ const handleWaveformSeek = React__namespace.useCallback((time) => {
677
+ setCurrentTime(time);
678
+ }, []);
679
+ const handleHoverTimeChange = React__namespace.useCallback((time) => {
680
+ setHoverTime(time);
681
+ }, []);
682
+ const iconSize = size === "sm" ? "h-3.5 w-3.5" : size === "lg" ? "h-5 w-5" : "h-4 w-4";
683
+ const getAriaLabel = () => {
684
+ if (ariaLabel) return ariaLabel;
685
+ if (title) return `${isPlaying ? "Pause" : "Play"} ${title}`;
686
+ return isPlaying ? "Pause audio" : "Play audio";
687
+ };
688
+ const renderPlayButton = () => /* @__PURE__ */ jsxRuntime.jsx(
689
+ "button",
690
+ {
691
+ type: "button",
692
+ "data-slot": "audio-player-play-btn",
693
+ onClick: handlePlay,
694
+ disabled: disabled || isLoading,
695
+ className: chunkOR5DRJCW_cjs.cn(playButtonVariants({ variant, size })),
696
+ "aria-label": getAriaLabel(),
697
+ "aria-pressed": isPlaying,
698
+ children: isLoading ? /* @__PURE__ */ jsxRuntime.jsx(SpinnerIcon, { className: iconSize }) : isPlaying ? /* @__PURE__ */ jsxRuntime.jsx(PauseIcon, { className: iconSize }) : /* @__PURE__ */ jsxRuntime.jsx(PlayIcon, { className: iconSize })
699
+ }
700
+ );
701
+ const renderTime = (useHoverTime = false) => {
702
+ if (!showTime) return null;
703
+ const displayTime = useHoverTime && hoverTime !== null ? hoverTime : currentTime;
704
+ const isShowingHoverTime = useHoverTime && hoverTime !== null;
705
+ return /* @__PURE__ */ jsxRuntime.jsxs(
706
+ "span",
707
+ {
708
+ "data-slot": "audio-player-time",
709
+ className: chunkOR5DRJCW_cjs.cn(
710
+ "font-mono text-xs tabular-nums",
711
+ isShowingHoverTime ? "text-primary-800 dark:text-primary-400" : "text-neutral-600 dark:text-neutral-400"
712
+ ),
713
+ children: [
714
+ formatTime(displayTime),
715
+ " / ",
716
+ formatTime(displayDuration)
717
+ ]
718
+ }
719
+ );
720
+ };
721
+ const renderPlaybackRateControl = () => {
722
+ if (!showPlaybackRate) return null;
723
+ return /* @__PURE__ */ jsxRuntime.jsx(
724
+ "select",
725
+ {
726
+ "data-slot": "audio-player-rate",
727
+ value: playbackRate,
728
+ onChange: (e) => setPlaybackRate(Number(e.target.value)),
729
+ className: "rounded border border-neutral-200 bg-transparent px-1 py-0.5 text-xs dark:border-neutral-700",
730
+ "aria-label": "Playback speed",
731
+ children: playbackRates.map((rate) => /* @__PURE__ */ jsxRuntime.jsxs("option", { value: rate, children: [
732
+ rate,
733
+ "x"
734
+ ] }, rate))
735
+ }
736
+ );
737
+ };
738
+ if (variant === "inline") {
739
+ return /* @__PURE__ */ jsxRuntime.jsxs(
740
+ "div",
741
+ {
742
+ ref: containerRef,
743
+ "data-slot": "audio-player",
744
+ "data-variant": "inline",
745
+ className: chunkOR5DRJCW_cjs.cn(audioPlayerVariants({ variant, size }), className),
746
+ children: [
747
+ renderPlayButton(),
748
+ title && /* @__PURE__ */ jsxRuntime.jsx(
749
+ "span",
750
+ {
751
+ "data-slot": "audio-player-title",
752
+ className: "text-sm font-medium text-neutral-700 dark:text-neutral-300",
753
+ children: title
754
+ }
755
+ ),
756
+ showDuration && displayDuration > 0 && /* @__PURE__ */ jsxRuntime.jsx(
757
+ "span",
758
+ {
759
+ "data-slot": "audio-player-duration",
760
+ className: "font-mono text-xs text-neutral-500 tabular-nums dark:text-neutral-400",
761
+ children: isPlaying ? formatTime(currentTime) : formatTime(displayDuration)
762
+ }
763
+ )
764
+ ]
765
+ }
766
+ );
767
+ }
768
+ if (variant === "compact") {
769
+ return /* @__PURE__ */ jsxRuntime.jsxs(
770
+ "div",
771
+ {
772
+ ref: containerRef,
773
+ "data-slot": "audio-player",
774
+ "data-variant": "compact",
775
+ className: chunkOR5DRJCW_cjs.cn(audioPlayerVariants({ variant, size }), className),
776
+ children: [
777
+ renderPlayButton(),
778
+ /* @__PURE__ */ jsxRuntime.jsx(
779
+ ProgressBar,
780
+ {
781
+ currentTime,
782
+ duration: displayDuration,
783
+ onSeek: handleSeek,
784
+ disabled
785
+ }
786
+ ),
787
+ renderTime(),
788
+ renderPlaybackRateControl()
789
+ ]
790
+ }
791
+ );
792
+ }
793
+ return /* @__PURE__ */ jsxRuntime.jsxs(
794
+ "div",
795
+ {
796
+ ref: containerRef,
797
+ "data-slot": "audio-player",
798
+ "data-variant": "waveform",
799
+ className: chunkOR5DRJCW_cjs.cn(audioPlayerVariants({ variant, size }), className),
800
+ children: [
801
+ title && /* @__PURE__ */ jsxRuntime.jsx(
802
+ "span",
803
+ {
804
+ "data-slot": "audio-player-title",
805
+ className: "text-sm font-medium text-neutral-700 dark:text-neutral-300",
806
+ children: title
807
+ }
808
+ ),
809
+ /* @__PURE__ */ jsxRuntime.jsx(
810
+ Waveform,
811
+ {
812
+ src,
813
+ isPlaying,
814
+ playbackRate,
815
+ onReady: handleWaveformReady,
816
+ onTimeUpdate: handleWaveformTimeUpdate,
817
+ onFinish: handleWaveformFinish,
818
+ onSeek: handleWaveformSeek,
819
+ waveColor,
820
+ progressColor,
821
+ height: waveformHeight,
822
+ showHoverCursor: showWaveformHoverCursor,
823
+ onHoverTimeChange: handleHoverTimeChange,
824
+ cursorColor: waveformCursorColor,
825
+ waveformRef: waveformMethodsRef
826
+ }
827
+ ),
828
+ /* @__PURE__ */ jsxRuntime.jsxs(
829
+ "div",
830
+ {
831
+ "data-slot": "audio-player-controls",
832
+ className: "flex items-center gap-3",
833
+ children: [
834
+ renderPlayButton(),
835
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-1 items-center justify-between", children: [
836
+ renderTime(true),
837
+ renderPlaybackRateControl()
838
+ ] })
839
+ ]
840
+ }
841
+ )
842
+ ]
843
+ }
844
+ );
845
+ }
846
+ );
847
+ AudioPlayer.displayName = "AudioPlayer";
848
+
849
+ exports.AudioPlayer = AudioPlayer;
850
+ exports.ProgressBar = ProgressBar;
851
+ exports.audioPlayerVariants = audioPlayerVariants;
852
+ exports.formatTime = formatTime;
853
+ exports.playButtonVariants = playButtonVariants;
854
+ //# sourceMappingURL=chunk-WJU3KLVV.cjs.map
855
+ //# sourceMappingURL=chunk-WJU3KLVV.cjs.map