@mieweb/ui 0.2.2 → 0.3.0-dev.100

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