@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
@@ -0,0 +1,829 @@
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-800 text-white",
55
+ "hover:bg-primary-900",
56
+ "active:bg-primary-800"
57
+ ],
58
+ waveform: [
59
+ "bg-primary-800 text-white",
60
+ "hover:bg-primary-900",
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
+ "data-slot": "audio-player-progress",
158
+ role: "slider",
159
+ "aria-label": "Audio progress",
160
+ "aria-valuemin": 0,
161
+ "aria-valuemax": duration,
162
+ "aria-valuenow": currentTime,
163
+ "aria-valuetext": `${formatTime(currentTime)} of ${formatTime(duration)}`,
164
+ tabIndex: disabled ? -1 : 0,
165
+ className: cn(
166
+ "relative h-1.5 flex-1 cursor-pointer rounded-full bg-neutral-200 dark:bg-neutral-700",
167
+ disabled && "cursor-not-allowed opacity-50"
168
+ ),
169
+ onClick: handleClick,
170
+ onKeyDown: (e) => {
171
+ if (disabled) return;
172
+ const step = duration * 0.05;
173
+ if (e.key === "ArrowRight") {
174
+ onSeek(Math.min(currentTime + step, duration));
175
+ } else if (e.key === "ArrowLeft") {
176
+ onSeek(Math.max(currentTime - step, 0));
177
+ }
178
+ },
179
+ children: [
180
+ /* @__PURE__ */ jsx(
181
+ "div",
182
+ {
183
+ className: "bg-primary-800 absolute inset-y-0 left-0 rounded-full transition-all",
184
+ style: { width: `${progress}%` }
185
+ }
186
+ ),
187
+ /* @__PURE__ */ jsx(
188
+ "div",
189
+ {
190
+ className: "bg-primary-800 absolute top-1/2 h-3 w-3 -translate-y-1/2 rounded-full shadow-sm transition-all",
191
+ style: { left: `calc(${progress}% - 6px)` }
192
+ }
193
+ )
194
+ ]
195
+ }
196
+ );
197
+ }
198
+ function Waveform({
199
+ src,
200
+ isPlaying,
201
+ playbackRate = 1,
202
+ onReady,
203
+ onTimeUpdate,
204
+ onFinish,
205
+ onSeek,
206
+ waveColor,
207
+ progressColor,
208
+ height = 64,
209
+ showHoverCursor = false,
210
+ waveformRef,
211
+ onHoverTimeChange,
212
+ cursorColor = "var(--color-red-500, rgb(239, 68, 68))"
213
+ }) {
214
+ const containerRef = React.useRef(null);
215
+ const wavesurferRef = React.useRef(null);
216
+ const [isLoaded, setIsLoaded] = React.useState(false);
217
+ const [isHovering, setIsHovering] = React.useState(false);
218
+ const [hoverPosition, setHoverPosition] = React.useState(0);
219
+ React.useEffect(() => {
220
+ if (waveformRef) {
221
+ waveformRef.current = {
222
+ seekTo: (time) => {
223
+ if (wavesurferRef.current && isLoaded) {
224
+ const duration = wavesurferRef.current.getDuration();
225
+ if (duration > 0) {
226
+ const clampedTime = Math.min(Math.max(time, 0), duration);
227
+ const progress = clampedTime / duration;
228
+ wavesurferRef.current.seekTo(progress);
229
+ }
230
+ }
231
+ },
232
+ play: () => {
233
+ if (wavesurferRef.current && isLoaded) {
234
+ wavesurferRef.current.play();
235
+ }
236
+ },
237
+ pause: () => {
238
+ if (wavesurferRef.current && isLoaded) {
239
+ wavesurferRef.current.pause();
240
+ }
241
+ },
242
+ getCurrentTime: () => {
243
+ return wavesurferRef.current?.getCurrentTime?.() ?? 0;
244
+ },
245
+ getDuration: () => {
246
+ return wavesurferRef.current?.getDuration?.() ?? 0;
247
+ }
248
+ };
249
+ }
250
+ return () => {
251
+ if (waveformRef) {
252
+ waveformRef.current = null;
253
+ }
254
+ };
255
+ }, [waveformRef, isLoaded]);
256
+ React.useEffect(() => {
257
+ if (!containerRef.current) return;
258
+ const initWaveSurfer = async () => {
259
+ try {
260
+ const WaveSurfer = (await import('wavesurfer.js')).default;
261
+ if (wavesurferRef.current) {
262
+ wavesurferRef.current.destroy();
263
+ }
264
+ wavesurferRef.current = WaveSurfer.create({
265
+ container: containerRef.current,
266
+ waveColor: waveColor || "#d1d5db",
267
+ progressColor: progressColor || "var(--color-primary-600, #2563eb)",
268
+ cursorColor: "transparent",
269
+ barWidth: 2,
270
+ barGap: 2,
271
+ barRadius: 2,
272
+ height,
273
+ normalize: true,
274
+ interact: !showHoverCursor
275
+ });
276
+ const emitTimeUpdate = () => {
277
+ onTimeUpdate(
278
+ wavesurferRef.current.getCurrentTime(),
279
+ wavesurferRef.current.getDuration()
280
+ );
281
+ };
282
+ wavesurferRef.current.on("ready", () => {
283
+ setIsLoaded(true);
284
+ const duration = wavesurferRef.current.getDuration();
285
+ onReady(duration);
286
+ onTimeUpdate(wavesurferRef.current.getCurrentTime(), duration);
287
+ });
288
+ wavesurferRef.current.on("timeupdate", emitTimeUpdate);
289
+ wavesurferRef.current.on("audioprocess", emitTimeUpdate);
290
+ wavesurferRef.current.on("seeking", () => {
291
+ emitTimeUpdate();
292
+ });
293
+ if (!showHoverCursor) {
294
+ wavesurferRef.current.on("interaction", () => {
295
+ onSeek(wavesurferRef.current.getCurrentTime());
296
+ });
297
+ }
298
+ wavesurferRef.current.on("finish", () => {
299
+ onFinish();
300
+ });
301
+ wavesurferRef.current.load(src);
302
+ } catch (error) {
303
+ console.error("Failed to load WaveSurfer:", error);
304
+ }
305
+ };
306
+ setIsLoaded(false);
307
+ initWaveSurfer();
308
+ return () => {
309
+ if (wavesurferRef.current) {
310
+ wavesurferRef.current.destroy();
311
+ wavesurferRef.current = null;
312
+ }
313
+ };
314
+ }, [src, showHoverCursor]);
315
+ React.useEffect(() => {
316
+ if (!wavesurferRef.current || !isLoaded) return;
317
+ if (isPlaying) {
318
+ wavesurferRef.current.play();
319
+ } else {
320
+ wavesurferRef.current.pause();
321
+ }
322
+ }, [isPlaying, isLoaded]);
323
+ React.useEffect(() => {
324
+ if (!wavesurferRef.current || !isLoaded) return;
325
+ wavesurferRef.current.setPlaybackRate(playbackRate);
326
+ }, [playbackRate, isLoaded]);
327
+ const handleMouseMove = showHoverCursor ? (e) => {
328
+ if (!containerRef.current || !wavesurferRef.current || !isLoaded)
329
+ return;
330
+ const rect = containerRef.current.getBoundingClientRect();
331
+ const x = Math.max(0, Math.min(e.clientX - rect.left, rect.width));
332
+ const percentage = x / rect.width;
333
+ const duration = wavesurferRef.current.getDuration();
334
+ setHoverPosition(percentage * 100);
335
+ onHoverTimeChange?.(percentage * duration);
336
+ } : void 0;
337
+ const handleMouseEnter = showHoverCursor ? () => setIsHovering(true) : void 0;
338
+ const handleMouseLeave = showHoverCursor ? () => {
339
+ setIsHovering(false);
340
+ setHoverPosition(0);
341
+ onHoverTimeChange?.(null);
342
+ } : void 0;
343
+ const handleClick = showHoverCursor ? (e) => {
344
+ if (!containerRef.current || !wavesurferRef.current || !isLoaded)
345
+ return;
346
+ const rect = containerRef.current.getBoundingClientRect();
347
+ const x = Math.max(0, Math.min(e.clientX - rect.left, rect.width));
348
+ const percentage = x / rect.width;
349
+ const duration = wavesurferRef.current.getDuration();
350
+ const time = duration * percentage;
351
+ wavesurferRef.current.seekTo(percentage);
352
+ onSeek(time);
353
+ onTimeUpdate(time, duration);
354
+ onHoverTimeChange?.(null);
355
+ } : void 0;
356
+ const handleKeyDown = showHoverCursor ? (e) => {
357
+ if (!wavesurferRef.current || !isLoaded) return;
358
+ const duration = wavesurferRef.current.getDuration();
359
+ const currentTime = wavesurferRef.current.getCurrentTime();
360
+ const step = duration * 0.05;
361
+ if (e.key === "ArrowRight") {
362
+ e.preventDefault();
363
+ const newTime = Math.min(currentTime + step, duration);
364
+ wavesurferRef.current.seekTo(newTime / duration);
365
+ onSeek(newTime);
366
+ onTimeUpdate(newTime, duration);
367
+ } else if (e.key === "ArrowLeft") {
368
+ e.preventDefault();
369
+ const newTime = Math.max(currentTime - step, 0);
370
+ wavesurferRef.current.seekTo(newTime / duration);
371
+ onSeek(newTime);
372
+ onTimeUpdate(newTime, duration);
373
+ }
374
+ } : void 0;
375
+ return /* @__PURE__ */ jsx(
376
+ "div",
377
+ {
378
+ ref: containerRef,
379
+ "data-slot": "audio-player-waveform",
380
+ role: showHoverCursor ? "slider" : void 0,
381
+ "aria-label": showHoverCursor ? "Audio progress" : void 0,
382
+ "aria-valuemin": showHoverCursor ? 0 : void 0,
383
+ "aria-valuemax": showHoverCursor && wavesurferRef.current ? wavesurferRef.current.getDuration() : void 0,
384
+ "aria-valuenow": showHoverCursor && wavesurferRef.current ? wavesurferRef.current.getCurrentTime() : void 0,
385
+ tabIndex: showHoverCursor ? 0 : void 0,
386
+ className: cn(
387
+ "relative w-full rounded-lg bg-neutral-100 dark:bg-neutral-800",
388
+ showHoverCursor && "cursor-pointer",
389
+ !isLoaded && "animate-pulse"
390
+ ),
391
+ style: { height },
392
+ onMouseMove: handleMouseMove,
393
+ onMouseEnter: handleMouseEnter,
394
+ onMouseLeave: handleMouseLeave,
395
+ onClick: handleClick,
396
+ onKeyDown: handleKeyDown,
397
+ children: showHoverCursor && isHovering && isLoaded && /* @__PURE__ */ jsx(
398
+ "div",
399
+ {
400
+ className: "pointer-events-none absolute top-0 bottom-0 z-10 w-0.5",
401
+ style: { left: `${hoverPosition}%`, backgroundColor: cursorColor }
402
+ }
403
+ )
404
+ }
405
+ );
406
+ }
407
+ var AudioPlayer = React.forwardRef(
408
+ function AudioPlayer2({
409
+ src,
410
+ title,
411
+ variant = "compact",
412
+ size = "md",
413
+ onStateChange,
414
+ onEnded,
415
+ onError,
416
+ onTimeUpdate,
417
+ showTime = true,
418
+ showDuration = true,
419
+ waveColor,
420
+ progressColor,
421
+ waveformHeight = 64,
422
+ showWaveformHoverCursor = true,
423
+ waveformCursorColor,
424
+ disabled = false,
425
+ className,
426
+ "aria-label": ariaLabel,
427
+ playbackRates = [0.5, 0.75, 1, 1.25, 1.5, 2],
428
+ showPlaybackRate = false,
429
+ /** Whether to preload audio (set to false for lists with many items) */
430
+ preload = false,
431
+ /** Fallback duration in seconds to display before audio is loaded */
432
+ fallbackDuration
433
+ }, ref) {
434
+ const [state, setState] = React.useState("idle");
435
+ const [currentTime, setCurrentTime] = React.useState(0);
436
+ const [duration, setDuration] = React.useState(0);
437
+ const [playbackRate, setPlaybackRate] = React.useState(1);
438
+ const [audioInitialized, setAudioInitialized] = React.useState(false);
439
+ const [hoverTime, setHoverTime] = React.useState(null);
440
+ const containerRef = React.useRef(null);
441
+ const audioRef = React.useRef(null);
442
+ const waveformMethodsRef = React.useRef(null);
443
+ const isPlaying = state === "playing";
444
+ const isLoading = state === "loading";
445
+ const displayDuration = duration > 0 ? duration : fallbackDuration ?? 0;
446
+ const updateState = React.useCallback(
447
+ (newState) => {
448
+ setState(newState);
449
+ onStateChange?.(newState);
450
+ },
451
+ [onStateChange]
452
+ );
453
+ const initAudio = React.useCallback(() => {
454
+ if (variant === "waveform" || audioInitialized) return null;
455
+ const audio = new globalThis.Audio(src);
456
+ audioRef.current = audio;
457
+ setAudioInitialized(true);
458
+ audio.addEventListener("loadstart", () => updateState("loading"));
459
+ audio.addEventListener("canplay", () => {
460
+ updateState("idle");
461
+ });
462
+ audio.addEventListener("loadedmetadata", () => {
463
+ setDuration(audio.duration);
464
+ onTimeUpdate?.(audio.currentTime, audio.duration);
465
+ });
466
+ audio.addEventListener("timeupdate", () => {
467
+ setCurrentTime(audio.currentTime);
468
+ onTimeUpdate?.(audio.currentTime, audio.duration);
469
+ });
470
+ audio.addEventListener("ended", () => {
471
+ updateState("idle");
472
+ setCurrentTime(0);
473
+ onEnded?.();
474
+ });
475
+ audio.addEventListener("error", () => {
476
+ updateState("error");
477
+ onError?.(new Error("Failed to load audio"));
478
+ });
479
+ return audio;
480
+ }, [
481
+ src,
482
+ variant,
483
+ audioInitialized,
484
+ updateState,
485
+ onTimeUpdate,
486
+ onEnded,
487
+ onError
488
+ ]);
489
+ React.useImperativeHandle(
490
+ ref,
491
+ () => ({
492
+ get container() {
493
+ return containerRef.current;
494
+ },
495
+ seekTo: (time) => {
496
+ if (variant === "waveform") {
497
+ waveformMethodsRef.current?.seekTo(time);
498
+ } else {
499
+ if (!audioRef.current) {
500
+ initAudio();
501
+ }
502
+ if (audioRef.current) {
503
+ audioRef.current.currentTime = time;
504
+ }
505
+ }
506
+ },
507
+ play: () => {
508
+ if (variant === "waveform") {
509
+ if (waveformMethodsRef.current) {
510
+ waveformMethodsRef.current.play();
511
+ updateState("playing");
512
+ }
513
+ } else {
514
+ if (!audioRef.current) {
515
+ initAudio();
516
+ }
517
+ if (audioRef.current) {
518
+ audioRef.current.play().catch((error) => {
519
+ updateState("error");
520
+ onError?.(error);
521
+ });
522
+ updateState("playing");
523
+ }
524
+ }
525
+ },
526
+ pause: () => {
527
+ if (variant === "waveform") {
528
+ if (waveformMethodsRef.current) {
529
+ waveformMethodsRef.current.pause();
530
+ updateState("paused");
531
+ }
532
+ } else if (audioRef.current) {
533
+ audioRef.current.pause();
534
+ updateState("paused");
535
+ }
536
+ },
537
+ getCurrentTime: () => {
538
+ if (variant === "waveform") {
539
+ return waveformMethodsRef.current?.getCurrentTime() ?? 0;
540
+ }
541
+ return audioRef.current?.currentTime ?? 0;
542
+ },
543
+ getDuration: () => {
544
+ if (variant === "waveform") {
545
+ return waveformMethodsRef.current?.getDuration() ?? 0;
546
+ }
547
+ const rawDuration = audioRef.current?.duration;
548
+ return Number.isFinite(rawDuration) ? rawDuration : 0;
549
+ }
550
+ }),
551
+ [variant, initAudio, updateState, onError]
552
+ );
553
+ React.useEffect(() => {
554
+ if (preload && !audioInitialized && variant !== "waveform") {
555
+ initAudio();
556
+ }
557
+ }, [preload, audioInitialized, variant, initAudio]);
558
+ React.useEffect(() => {
559
+ return () => {
560
+ if (audioRef.current) {
561
+ audioRef.current.pause();
562
+ audioRef.current.src = "";
563
+ }
564
+ };
565
+ }, []);
566
+ React.useEffect(() => {
567
+ if (audioRef.current) {
568
+ audioRef.current.playbackRate = playbackRate;
569
+ }
570
+ }, [playbackRate]);
571
+ const handlePlay = React.useCallback(() => {
572
+ if (disabled) return;
573
+ if (variant === "waveform") {
574
+ if (isLoading) return;
575
+ updateState(isPlaying ? "paused" : "playing");
576
+ return;
577
+ }
578
+ if (!audioInitialized && !isLoading) {
579
+ const audio = initAudio();
580
+ if (audio) {
581
+ updateState("loading");
582
+ audio.addEventListener(
583
+ "canplay",
584
+ () => {
585
+ audio.play().catch((error) => {
586
+ updateState("error");
587
+ onError?.(error);
588
+ });
589
+ updateState("playing");
590
+ },
591
+ { once: true }
592
+ );
593
+ }
594
+ return;
595
+ }
596
+ if (isLoading) return;
597
+ if (isPlaying) {
598
+ if (audioRef.current) {
599
+ audioRef.current.pause();
600
+ }
601
+ updateState("paused");
602
+ } else {
603
+ if (audioRef.current) {
604
+ audioRef.current.play().catch((error) => {
605
+ updateState("error");
606
+ onError?.(error);
607
+ });
608
+ updateState("playing");
609
+ }
610
+ }
611
+ }, [
612
+ disabled,
613
+ variant,
614
+ audioInitialized,
615
+ isLoading,
616
+ isPlaying,
617
+ initAudio,
618
+ updateState,
619
+ onError
620
+ ]);
621
+ const handleSeek = React.useCallback(
622
+ (time) => {
623
+ if (audioRef.current) {
624
+ audioRef.current.currentTime = time;
625
+ setCurrentTime(time);
626
+ onTimeUpdate?.(time, audioRef.current.duration);
627
+ }
628
+ },
629
+ [onTimeUpdate]
630
+ );
631
+ const handleWaveformReady = React.useCallback(
632
+ (dur) => {
633
+ setDuration(dur);
634
+ setState("idle");
635
+ onTimeUpdate?.(currentTime, dur);
636
+ },
637
+ [currentTime, onTimeUpdate]
638
+ );
639
+ const handleWaveformTimeUpdate = React.useCallback(
640
+ (time, dur) => {
641
+ setCurrentTime(time);
642
+ if (dur > 0) {
643
+ setDuration(dur);
644
+ }
645
+ onTimeUpdate?.(time, dur);
646
+ },
647
+ [onTimeUpdate]
648
+ );
649
+ const handleWaveformFinish = React.useCallback(() => {
650
+ updateState("idle");
651
+ setCurrentTime(0);
652
+ onEnded?.();
653
+ }, [updateState, onEnded]);
654
+ const handleWaveformSeek = React.useCallback((time) => {
655
+ setCurrentTime(time);
656
+ }, []);
657
+ const handleHoverTimeChange = React.useCallback((time) => {
658
+ setHoverTime(time);
659
+ }, []);
660
+ const iconSize = size === "sm" ? "h-3.5 w-3.5" : size === "lg" ? "h-5 w-5" : "h-4 w-4";
661
+ const getAriaLabel = () => {
662
+ if (ariaLabel) return ariaLabel;
663
+ if (title) return `${isPlaying ? "Pause" : "Play"} ${title}`;
664
+ return isPlaying ? "Pause audio" : "Play audio";
665
+ };
666
+ const renderPlayButton = () => /* @__PURE__ */ jsx(
667
+ "button",
668
+ {
669
+ type: "button",
670
+ "data-slot": "audio-player-play-btn",
671
+ onClick: handlePlay,
672
+ disabled: disabled || isLoading,
673
+ className: cn(playButtonVariants({ variant, size })),
674
+ "aria-label": getAriaLabel(),
675
+ "aria-pressed": isPlaying,
676
+ children: isLoading ? /* @__PURE__ */ jsx(SpinnerIcon, { className: iconSize }) : isPlaying ? /* @__PURE__ */ jsx(PauseIcon, { className: iconSize }) : /* @__PURE__ */ jsx(PlayIcon, { className: iconSize })
677
+ }
678
+ );
679
+ const renderTime = (useHoverTime = false) => {
680
+ if (!showTime) return null;
681
+ const displayTime = useHoverTime && hoverTime !== null ? hoverTime : currentTime;
682
+ const isShowingHoverTime = useHoverTime && hoverTime !== null;
683
+ return /* @__PURE__ */ jsxs(
684
+ "span",
685
+ {
686
+ "data-slot": "audio-player-time",
687
+ className: cn(
688
+ "font-mono text-xs tabular-nums",
689
+ isShowingHoverTime ? "text-primary-800 dark:text-primary-400" : "text-neutral-600 dark:text-neutral-400"
690
+ ),
691
+ children: [
692
+ formatTime(displayTime),
693
+ " / ",
694
+ formatTime(displayDuration)
695
+ ]
696
+ }
697
+ );
698
+ };
699
+ const renderPlaybackRateControl = () => {
700
+ if (!showPlaybackRate) return null;
701
+ return /* @__PURE__ */ jsx(
702
+ "select",
703
+ {
704
+ "data-slot": "audio-player-rate",
705
+ value: playbackRate,
706
+ onChange: (e) => setPlaybackRate(Number(e.target.value)),
707
+ className: "rounded border border-neutral-200 bg-transparent px-1 py-0.5 text-xs dark:border-neutral-700",
708
+ "aria-label": "Playback speed",
709
+ children: playbackRates.map((rate) => /* @__PURE__ */ jsxs("option", { value: rate, children: [
710
+ rate,
711
+ "x"
712
+ ] }, rate))
713
+ }
714
+ );
715
+ };
716
+ if (variant === "inline") {
717
+ return /* @__PURE__ */ jsxs(
718
+ "div",
719
+ {
720
+ ref: containerRef,
721
+ "data-slot": "audio-player",
722
+ "data-variant": "inline",
723
+ className: cn(audioPlayerVariants({ variant, size }), className),
724
+ children: [
725
+ renderPlayButton(),
726
+ title && /* @__PURE__ */ jsx(
727
+ "span",
728
+ {
729
+ "data-slot": "audio-player-title",
730
+ className: "text-sm font-medium text-neutral-700 dark:text-neutral-300",
731
+ children: title
732
+ }
733
+ ),
734
+ showDuration && displayDuration > 0 && /* @__PURE__ */ jsx(
735
+ "span",
736
+ {
737
+ "data-slot": "audio-player-duration",
738
+ className: "font-mono text-xs text-neutral-500 tabular-nums dark:text-neutral-400",
739
+ children: isPlaying ? formatTime(currentTime) : formatTime(displayDuration)
740
+ }
741
+ )
742
+ ]
743
+ }
744
+ );
745
+ }
746
+ if (variant === "compact") {
747
+ return /* @__PURE__ */ jsxs(
748
+ "div",
749
+ {
750
+ ref: containerRef,
751
+ "data-slot": "audio-player",
752
+ "data-variant": "compact",
753
+ className: cn(audioPlayerVariants({ variant, size }), className),
754
+ children: [
755
+ renderPlayButton(),
756
+ /* @__PURE__ */ jsx(
757
+ ProgressBar,
758
+ {
759
+ currentTime,
760
+ duration: displayDuration,
761
+ onSeek: handleSeek,
762
+ disabled
763
+ }
764
+ ),
765
+ renderTime(),
766
+ renderPlaybackRateControl()
767
+ ]
768
+ }
769
+ );
770
+ }
771
+ return /* @__PURE__ */ jsxs(
772
+ "div",
773
+ {
774
+ ref: containerRef,
775
+ "data-slot": "audio-player",
776
+ "data-variant": "waveform",
777
+ className: cn(audioPlayerVariants({ variant, size }), className),
778
+ children: [
779
+ title && /* @__PURE__ */ jsx(
780
+ "span",
781
+ {
782
+ "data-slot": "audio-player-title",
783
+ className: "text-sm font-medium text-neutral-700 dark:text-neutral-300",
784
+ children: title
785
+ }
786
+ ),
787
+ /* @__PURE__ */ jsx(
788
+ Waveform,
789
+ {
790
+ src,
791
+ isPlaying,
792
+ playbackRate,
793
+ onReady: handleWaveformReady,
794
+ onTimeUpdate: handleWaveformTimeUpdate,
795
+ onFinish: handleWaveformFinish,
796
+ onSeek: handleWaveformSeek,
797
+ waveColor,
798
+ progressColor,
799
+ height: waveformHeight,
800
+ showHoverCursor: showWaveformHoverCursor,
801
+ onHoverTimeChange: handleHoverTimeChange,
802
+ cursorColor: waveformCursorColor,
803
+ waveformRef: waveformMethodsRef
804
+ }
805
+ ),
806
+ /* @__PURE__ */ jsxs(
807
+ "div",
808
+ {
809
+ "data-slot": "audio-player-controls",
810
+ className: "flex items-center gap-3",
811
+ children: [
812
+ renderPlayButton(),
813
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-1 items-center justify-between", children: [
814
+ renderTime(true),
815
+ renderPlaybackRateControl()
816
+ ] })
817
+ ]
818
+ }
819
+ )
820
+ ]
821
+ }
822
+ );
823
+ }
824
+ );
825
+ AudioPlayer.displayName = "AudioPlayer";
826
+
827
+ export { AudioPlayer, ProgressBar, audioPlayerVariants, formatTime, playButtonVariants };
828
+ //# sourceMappingURL=chunk-CJQXWFIW.js.map
829
+ //# sourceMappingURL=chunk-CJQXWFIW.js.map