@mieweb/ui 0.7.1 → 0.7.2

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 (462) hide show
  1. package/dist/CsvBlock-LVJARITD.cjs +15 -0
  2. package/dist/{CsvBlock-2A5VEDD3.cjs.map → CsvBlock-LVJARITD.cjs.map} +1 -1
  3. package/dist/CsvBlock-VTYNQ75L.js +6 -0
  4. package/dist/{CsvBlock-D6PWAJ5X.js.map → CsvBlock-VTYNQ75L.js.map} +1 -1
  5. package/dist/HtmlPreviewBlock-F33P37UD.cjs +15 -0
  6. package/dist/{HtmlPreviewBlock-SYXCV5RH.cjs.map → HtmlPreviewBlock-F33P37UD.cjs.map} +1 -1
  7. package/dist/HtmlPreviewBlock-N4PPVJLJ.js +6 -0
  8. package/dist/{HtmlPreviewBlock-PEHTJ6C3.js.map → HtmlPreviewBlock-N4PPVJLJ.js.map} +1 -1
  9. package/dist/MermaidBlock-G5X4FPUN.cjs +15 -0
  10. package/dist/{MermaidBlock-AFXNP5NK.cjs.map → MermaidBlock-G5X4FPUN.cjs.map} +1 -1
  11. package/dist/MermaidBlock-HUT53CRG.js +6 -0
  12. package/dist/{MermaidBlock-7NK3AVK2.js.map → MermaidBlock-HUT53CRG.js.map} +1 -1
  13. package/dist/SurveyBlock-ORTPGA5T.cjs +15 -0
  14. package/dist/{SurveyBlock-6KRNKFH5.cjs.map → SurveyBlock-ORTPGA5T.cjs.map} +1 -1
  15. package/dist/SurveyBlock-PM3ZMWWR.js +6 -0
  16. package/dist/{SurveyBlock-NNDGXGG4.js.map → SurveyBlock-PM3ZMWWR.js.map} +1 -1
  17. package/dist/ag-grid.cjs +13 -13
  18. package/dist/ag-grid.js +2 -2
  19. package/dist/brands/index.cjs +7 -7
  20. package/dist/brands/index.js +2 -2
  21. package/dist/{chunk-4DMZAVB2.js → chunk-23AYDOCH.js} +3 -3
  22. package/dist/{chunk-4DMZAVB2.js.map → chunk-23AYDOCH.js.map} +1 -1
  23. package/dist/{chunk-MAMY5HTT.cjs → chunk-26DPQUSB.cjs} +22 -22
  24. package/dist/{chunk-MAMY5HTT.cjs.map → chunk-26DPQUSB.cjs.map} +1 -1
  25. package/dist/{chunk-TRZXK57D.js → chunk-2DW4PUJD.js} +3 -3
  26. package/dist/{chunk-TRZXK57D.js.map → chunk-2DW4PUJD.js.map} +1 -1
  27. package/dist/{chunk-OX2RIVN7.js → chunk-3D4ITDLO.js} +4 -4
  28. package/dist/{chunk-OX2RIVN7.js.map → chunk-3D4ITDLO.js.map} +1 -1
  29. package/dist/{chunk-PJAQDAMZ.cjs → chunk-3IAA3KCE.cjs} +15 -6
  30. package/dist/chunk-3IAA3KCE.cjs.map +1 -0
  31. package/dist/chunk-3PXOIAF6.js +3 -0
  32. package/dist/{chunk-DHKYGVP7.js.map → chunk-3PXOIAF6.js.map} +1 -1
  33. package/dist/{chunk-6D5F7EDM.js → chunk-3SRBIXQX.js} +18 -17
  34. package/dist/chunk-3SRBIXQX.js.map +1 -0
  35. package/dist/{chunk-Q2EWNXIB.cjs → chunk-3SZQRMHM.cjs} +9 -9
  36. package/dist/{chunk-Q2EWNXIB.cjs.map → chunk-3SZQRMHM.cjs.map} +1 -1
  37. package/dist/{chunk-JLBT76WH.js → chunk-3YSIZ2CK.js} +14 -5
  38. package/dist/chunk-3YSIZ2CK.js.map +1 -0
  39. package/dist/{chunk-NIEIRA5A.cjs → chunk-4AE2L6AO.cjs} +13 -13
  40. package/dist/{chunk-NIEIRA5A.cjs.map → chunk-4AE2L6AO.cjs.map} +1 -1
  41. package/dist/{chunk-PFWHWIXS.cjs → chunk-54OW6ZPL.cjs} +124 -3
  42. package/dist/chunk-54OW6ZPL.cjs.map +1 -0
  43. package/dist/{chunk-FJH7P5WG.js → chunk-5BDCQBYW.js} +6 -6
  44. package/dist/{chunk-FJH7P5WG.js.map → chunk-5BDCQBYW.js.map} +1 -1
  45. package/dist/{chunk-XP6HELVG.cjs → chunk-5IDYOJHO.cjs} +13 -13
  46. package/dist/{chunk-XP6HELVG.cjs.map → chunk-5IDYOJHO.cjs.map} +1 -1
  47. package/dist/{chunk-3CJBUAJ4.js → chunk-5U6GETAW.js} +3 -3
  48. package/dist/{chunk-3CJBUAJ4.js.map → chunk-5U6GETAW.js.map} +1 -1
  49. package/dist/{chunk-HEH3QXOQ.js → chunk-5Y5FSR4N.js} +3 -3
  50. package/dist/{chunk-HEH3QXOQ.js.map → chunk-5Y5FSR4N.js.map} +1 -1
  51. package/dist/{chunk-MSRU3XBH.cjs → chunk-6ECKH4DJ.cjs} +7 -7
  52. package/dist/{chunk-MSRU3XBH.cjs.map → chunk-6ECKH4DJ.cjs.map} +1 -1
  53. package/dist/{chunk-MV3MTHWQ.js → chunk-6EWJGRC3.js} +3 -3
  54. package/dist/{chunk-MV3MTHWQ.js.map → chunk-6EWJGRC3.js.map} +1 -1
  55. package/dist/{chunk-AES2BKEW.cjs → chunk-6J7UGYT5.cjs} +10 -10
  56. package/dist/{chunk-AES2BKEW.cjs.map → chunk-6J7UGYT5.cjs.map} +1 -1
  57. package/dist/{chunk-7WMSUXOQ.js → chunk-6OCYG6J2.js} +4 -4
  58. package/dist/{chunk-7WMSUXOQ.js.map → chunk-6OCYG6J2.js.map} +1 -1
  59. package/dist/{chunk-JCNPVK74.cjs → chunk-6OQE4ZMG.cjs} +8 -8
  60. package/dist/{chunk-JCNPVK74.cjs.map → chunk-6OQE4ZMG.cjs.map} +1 -1
  61. package/dist/{chunk-KBEKQMVY.cjs → chunk-6QVI6DAO.cjs} +5 -5
  62. package/dist/{chunk-KBEKQMVY.cjs.map → chunk-6QVI6DAO.cjs.map} +1 -1
  63. package/dist/{chunk-CVC4NWFA.cjs → chunk-7AMOKHTW.cjs} +4 -4
  64. package/dist/{chunk-CVC4NWFA.cjs.map → chunk-7AMOKHTW.cjs.map} +1 -1
  65. package/dist/{chunk-44CK4CT2.cjs → chunk-7EB7665B.cjs} +13 -13
  66. package/dist/{chunk-44CK4CT2.cjs.map → chunk-7EB7665B.cjs.map} +1 -1
  67. package/dist/{chunk-BB4WQ4LV.cjs → chunk-ABAOZASX.cjs} +8 -8
  68. package/dist/{chunk-BB4WQ4LV.cjs.map → chunk-ABAOZASX.cjs.map} +1 -1
  69. package/dist/{chunk-6LFG4JFF.js → chunk-AFGADE3B.js} +3 -3
  70. package/dist/{chunk-6LFG4JFF.js.map → chunk-AFGADE3B.js.map} +1 -1
  71. package/dist/{chunk-UOOH356R.cjs → chunk-AIJAFPGJ.cjs} +5 -5
  72. package/dist/{chunk-UOOH356R.cjs.map → chunk-AIJAFPGJ.cjs.map} +1 -1
  73. package/dist/{chunk-43GBCUSQ.js → chunk-AQ564XO7.js} +6 -6
  74. package/dist/chunk-AQ564XO7.js.map +1 -0
  75. package/dist/{chunk-CYMZ2QS5.js → chunk-BCJFOSZX.js} +2 -2
  76. package/dist/{chunk-CYMZ2QS5.js.map → chunk-BCJFOSZX.js.map} +1 -1
  77. package/dist/{chunk-T3C4RNJ4.js → chunk-BJKAVWED.js} +3 -3
  78. package/dist/{chunk-T3C4RNJ4.js.map → chunk-BJKAVWED.js.map} +1 -1
  79. package/dist/{chunk-MKWGKASO.js → chunk-BMRQ4VME.js} +4 -4
  80. package/dist/{chunk-MKWGKASO.js.map → chunk-BMRQ4VME.js.map} +1 -1
  81. package/dist/{chunk-T42BCIUA.js → chunk-BMSG4NBH.js} +4 -4
  82. package/dist/{chunk-T42BCIUA.js.map → chunk-BMSG4NBH.js.map} +1 -1
  83. package/dist/{chunk-QA6ZDHFP.js → chunk-BOOJDRJO.js} +35 -11
  84. package/dist/chunk-BOOJDRJO.js.map +1 -0
  85. package/dist/{chunk-C2544GKZ.js → chunk-BX5ZODPF.js} +4 -4
  86. package/dist/{chunk-C2544GKZ.js.map → chunk-BX5ZODPF.js.map} +1 -1
  87. package/dist/{chunk-IYIYL2SQ.js → chunk-CEQJGUAS.js} +3 -3
  88. package/dist/{chunk-IYIYL2SQ.js.map → chunk-CEQJGUAS.js.map} +1 -1
  89. package/dist/{chunk-6ZYE6JUK.cjs → chunk-CKRRJO7T.cjs} +11 -11
  90. package/dist/{chunk-6ZYE6JUK.cjs.map → chunk-CKRRJO7T.cjs.map} +1 -1
  91. package/dist/{chunk-WO5CAOAN.js → chunk-DCBMTFLE.js} +3 -3
  92. package/dist/{chunk-WO5CAOAN.js.map → chunk-DCBMTFLE.js.map} +1 -1
  93. package/dist/{chunk-J7Z7467B.js → chunk-DLBV42JD.js} +4 -4
  94. package/dist/{chunk-J7Z7467B.js.map → chunk-DLBV42JD.js.map} +1 -1
  95. package/dist/{chunk-MUYTGWGE.js → chunk-DVOQ3JNO.js} +3 -3
  96. package/dist/{chunk-MUYTGWGE.js.map → chunk-DVOQ3JNO.js.map} +1 -1
  97. package/dist/{chunk-LJ2ZWIX6.js → chunk-DWIF6VXZ.js} +124 -3
  98. package/dist/chunk-DWIF6VXZ.js.map +1 -0
  99. package/dist/{chunk-IHTRKWBG.js → chunk-EGWWTIWS.js} +119 -75
  100. package/dist/chunk-EGWWTIWS.js.map +1 -0
  101. package/dist/{chunk-UM6NA7HL.js → chunk-EKRT7K2K.js} +4 -4
  102. package/dist/{chunk-UM6NA7HL.js.map → chunk-EKRT7K2K.js.map} +1 -1
  103. package/dist/{chunk-WGPMTW36.cjs → chunk-EPQPUFS6.cjs} +7 -7
  104. package/dist/{chunk-WGPMTW36.cjs.map → chunk-EPQPUFS6.cjs.map} +1 -1
  105. package/dist/{chunk-J3BU3JBX.js → chunk-FDUA6OGN.js} +3 -3
  106. package/dist/{chunk-J3BU3JBX.js.map → chunk-FDUA6OGN.js.map} +1 -1
  107. package/dist/{chunk-JHYFHEHS.js → chunk-FDV7EQWH.js} +4 -4
  108. package/dist/{chunk-JHYFHEHS.js.map → chunk-FDV7EQWH.js.map} +1 -1
  109. package/dist/{chunk-KQAXXJ4G.cjs → chunk-FF235PKY.cjs} +7 -7
  110. package/dist/{chunk-KQAXXJ4G.cjs.map → chunk-FF235PKY.cjs.map} +1 -1
  111. package/dist/{chunk-FZJBFJJR.js → chunk-FJ7YPVKV.js} +3 -3
  112. package/dist/{chunk-FZJBFJJR.js.map → chunk-FJ7YPVKV.js.map} +1 -1
  113. package/dist/{chunk-5MAGWW5X.cjs → chunk-FKLUSYFP.cjs} +11 -11
  114. package/dist/{chunk-5MAGWW5X.cjs.map → chunk-FKLUSYFP.cjs.map} +1 -1
  115. package/dist/{chunk-ZGSC2CB2.js → chunk-GTHNWP4P.js} +36 -5
  116. package/dist/chunk-GTHNWP4P.js.map +1 -0
  117. package/dist/{chunk-6AHYYWVB.js → chunk-H3HF36ZL.js} +5 -5
  118. package/dist/{chunk-6AHYYWVB.js.map → chunk-H3HF36ZL.js.map} +1 -1
  119. package/dist/{chunk-YZT62IMX.js → chunk-HIDV32ZX.js} +5 -5
  120. package/dist/{chunk-YZT62IMX.js.map → chunk-HIDV32ZX.js.map} +1 -1
  121. package/dist/{chunk-BIT27PPD.js → chunk-HS25RPDW.js} +3 -3
  122. package/dist/{chunk-BIT27PPD.js.map → chunk-HS25RPDW.js.map} +1 -1
  123. package/dist/{chunk-BWYYA3LQ.cjs → chunk-I2ECTLON.cjs} +5 -5
  124. package/dist/{chunk-BWYYA3LQ.cjs.map → chunk-I2ECTLON.cjs.map} +1 -1
  125. package/dist/{chunk-DUPR6FEL.js → chunk-I3WGZPI6.js} +4 -4
  126. package/dist/{chunk-DUPR6FEL.js.map → chunk-I3WGZPI6.js.map} +1 -1
  127. package/dist/{chunk-TN33E2VN.cjs → chunk-IJYTASQQ.cjs} +15 -15
  128. package/dist/{chunk-TN33E2VN.cjs.map → chunk-IJYTASQQ.cjs.map} +1 -1
  129. package/dist/{chunk-BT3ZQJGT.cjs → chunk-IUDY6S7I.cjs} +6 -6
  130. package/dist/{chunk-BT3ZQJGT.cjs.map → chunk-IUDY6S7I.cjs.map} +1 -1
  131. package/dist/{chunk-TR2OJKQ4.cjs → chunk-JTSKPDPH.cjs} +8 -8
  132. package/dist/{chunk-TR2OJKQ4.cjs.map → chunk-JTSKPDPH.cjs.map} +1 -1
  133. package/dist/{chunk-XCLQZ4FV.js → chunk-KFLDXJEE.js} +3 -3
  134. package/dist/{chunk-XCLQZ4FV.js.map → chunk-KFLDXJEE.js.map} +1 -1
  135. package/dist/{chunk-4LVPQ44A.js → chunk-LMBXJZLG.js} +9 -5
  136. package/dist/chunk-LMBXJZLG.js.map +1 -0
  137. package/dist/{chunk-A2QVQF54.cjs → chunk-M26KJKZG.cjs} +4 -4
  138. package/dist/{chunk-A2QVQF54.cjs.map → chunk-M26KJKZG.cjs.map} +1 -1
  139. package/dist/{chunk-ZHBANUBI.cjs → chunk-MJWFNV3L.cjs} +31 -27
  140. package/dist/chunk-MJWFNV3L.cjs.map +1 -0
  141. package/dist/{chunk-UFYXU7KV.js → chunk-MWPPOX6F.js} +4 -4
  142. package/dist/{chunk-UFYXU7KV.js.map → chunk-MWPPOX6F.js.map} +1 -1
  143. package/dist/{chunk-ZDEYV373.cjs → chunk-MYFZYUPR.cjs} +35 -11
  144. package/dist/chunk-MYFZYUPR.cjs.map +1 -0
  145. package/dist/{chunk-MCCO4A23.js → chunk-NGLI2MSM.js} +256 -45
  146. package/dist/chunk-NGLI2MSM.js.map +1 -0
  147. package/dist/{chunk-FCBQP2U4.cjs → chunk-NPKPCYAT.cjs} +142 -16
  148. package/dist/chunk-NPKPCYAT.cjs.map +1 -0
  149. package/dist/{chunk-T3RWXOCM.js → chunk-NU6QKULE.js} +3 -3
  150. package/dist/{chunk-T3RWXOCM.js.map → chunk-NU6QKULE.js.map} +1 -1
  151. package/dist/{chunk-QUUFKGDF.cjs → chunk-OAHORW4N.cjs} +130 -86
  152. package/dist/chunk-OAHORW4N.cjs.map +1 -0
  153. package/dist/{chunk-BYUV3IZV.cjs → chunk-OGPJ3LRF.cjs} +4 -4
  154. package/dist/{chunk-BYUV3IZV.cjs.map → chunk-OGPJ3LRF.cjs.map} +1 -1
  155. package/dist/{chunk-XL7TTKHP.js → chunk-OLFTGCGD.js} +7 -7
  156. package/dist/{chunk-XL7TTKHP.js.map → chunk-OLFTGCGD.js.map} +1 -1
  157. package/dist/{chunk-BX6BTDTR.js → chunk-OQWZYKJM.js} +3 -3
  158. package/dist/{chunk-BX6BTDTR.js.map → chunk-OQWZYKJM.js.map} +1 -1
  159. package/dist/{chunk-JBB25LFB.js → chunk-OTQ72WX3.js} +3 -3
  160. package/dist/{chunk-JBB25LFB.js.map → chunk-OTQ72WX3.js.map} +1 -1
  161. package/dist/{chunk-AFKKJEV5.cjs → chunk-OZOSWBSI.cjs} +4 -4
  162. package/dist/{chunk-AFKKJEV5.cjs.map → chunk-OZOSWBSI.cjs.map} +1 -1
  163. package/dist/{chunk-KJPOFUF5.cjs → chunk-P2VTQ5AR.cjs} +10 -10
  164. package/dist/{chunk-KJPOFUF5.cjs.map → chunk-P2VTQ5AR.cjs.map} +1 -1
  165. package/dist/{chunk-ZAIEQWRA.js → chunk-P6L74SKG.js} +5 -5
  166. package/dist/{chunk-ZAIEQWRA.js.map → chunk-P6L74SKG.js.map} +1 -1
  167. package/dist/{chunk-QASIWBXU.cjs → chunk-P7UMS4E6.cjs} +7 -7
  168. package/dist/{chunk-QASIWBXU.cjs.map → chunk-P7UMS4E6.cjs.map} +1 -1
  169. package/dist/chunk-PAM5UUBL.cjs +740 -0
  170. package/dist/{chunk-UTYUT5YY.cjs.map → chunk-PAM5UUBL.cjs.map} +1 -1
  171. package/dist/{chunk-NVHAQOHH.cjs → chunk-PLMXN23Q.cjs} +10 -10
  172. package/dist/chunk-PLMXN23Q.cjs.map +1 -0
  173. package/dist/{chunk-KOCTIB6U.js → chunk-PS5INHGC.js} +3 -3
  174. package/dist/{chunk-KOCTIB6U.js.map → chunk-PS5INHGC.js.map} +1 -1
  175. package/dist/{chunk-Y2S6QMKU.js → chunk-PTZB2GKL.js} +3 -3
  176. package/dist/{chunk-Y2S6QMKU.js.map → chunk-PTZB2GKL.js.map} +1 -1
  177. package/dist/{chunk-7VF6WO7H.cjs → chunk-Q5VBO3I5.cjs} +310 -99
  178. package/dist/chunk-Q5VBO3I5.cjs.map +1 -0
  179. package/dist/{chunk-BLPCYP4D.cjs → chunk-QI2SB6U3.cjs} +29 -29
  180. package/dist/{chunk-BLPCYP4D.cjs.map → chunk-QI2SB6U3.cjs.map} +1 -1
  181. package/dist/{chunk-EZKRAW2X.js → chunk-QUUBTNMH.js} +3 -3
  182. package/dist/{chunk-EZKRAW2X.js.map → chunk-QUUBTNMH.js.map} +1 -1
  183. package/dist/{chunk-5BQE6BEL.js → chunk-QYSUYB3S.js} +13 -9
  184. package/dist/chunk-QYSUYB3S.js.map +1 -0
  185. package/dist/{chunk-MZPF2QGM.cjs → chunk-RBS3GHDZ.cjs} +15 -15
  186. package/dist/{chunk-MZPF2QGM.cjs.map → chunk-RBS3GHDZ.cjs.map} +1 -1
  187. package/dist/{chunk-KJ5BSGEO.cjs → chunk-RS5VA6QU.cjs} +17 -13
  188. package/dist/chunk-RS5VA6QU.cjs.map +1 -0
  189. package/dist/{chunk-CKD554XR.cjs → chunk-RUEEDOE3.cjs} +5 -5
  190. package/dist/{chunk-CKD554XR.cjs.map → chunk-RUEEDOE3.cjs.map} +1 -1
  191. package/dist/{chunk-372IIHUA.cjs → chunk-RYQ3S3KO.cjs} +53 -53
  192. package/dist/{chunk-372IIHUA.cjs.map → chunk-RYQ3S3KO.cjs.map} +1 -1
  193. package/dist/{chunk-RHYIFIT5.js → chunk-RZFSJD67.js} +3 -3
  194. package/dist/{chunk-RHYIFIT5.js.map → chunk-RZFSJD67.js.map} +1 -1
  195. package/dist/{chunk-NQME7MCK.js → chunk-RZJXCI53.js} +191 -204
  196. package/dist/chunk-RZJXCI53.js.map +1 -0
  197. package/dist/{chunk-DFCZPVG4.cjs → chunk-S3MKIDYG.cjs} +8 -8
  198. package/dist/{chunk-DFCZPVG4.cjs.map → chunk-S3MKIDYG.cjs.map} +1 -1
  199. package/dist/chunk-S5RVSXDV.cjs +45 -0
  200. package/dist/chunk-S5RVSXDV.cjs.map +1 -0
  201. package/dist/{chunk-XDFDVF2O.js → chunk-SH6B4MG5.js} +4 -4
  202. package/dist/{chunk-XDFDVF2O.js.map → chunk-SH6B4MG5.js.map} +1 -1
  203. package/dist/chunk-SVSHA7XV.js +487 -0
  204. package/dist/chunk-SVSHA7XV.js.map +1 -0
  205. package/dist/{chunk-KL2S36FM.js → chunk-TNUL4LGG.js} +6 -6
  206. package/dist/{chunk-KL2S36FM.js.map → chunk-TNUL4LGG.js.map} +1 -1
  207. package/dist/chunk-TQONQSJO.js +42 -0
  208. package/dist/chunk-TQONQSJO.js.map +1 -0
  209. package/dist/{chunk-V25Z5GR6.cjs → chunk-TU36DBH2.cjs} +9 -9
  210. package/dist/{chunk-V25Z5GR6.cjs.map → chunk-TU36DBH2.cjs.map} +1 -1
  211. package/dist/{chunk-FQ3UCZUX.cjs → chunk-U3JU6BI5.cjs} +7 -7
  212. package/dist/{chunk-FQ3UCZUX.cjs.map → chunk-U3JU6BI5.cjs.map} +1 -1
  213. package/dist/{chunk-VCO2IZOG.js → chunk-UA7E7PDS.js} +3 -3
  214. package/dist/{chunk-VCO2IZOG.js.map → chunk-UA7E7PDS.js.map} +1 -1
  215. package/dist/{chunk-OOYEHBYJ.js → chunk-UUI7WXI5.js} +142 -16
  216. package/dist/chunk-UUI7WXI5.js.map +1 -0
  217. package/dist/{chunk-SNEQXSC5.cjs → chunk-VA7QN4DX.cjs} +2 -2
  218. package/dist/{chunk-SNEQXSC5.cjs.map → chunk-VA7QN4DX.cjs.map} +1 -1
  219. package/dist/{chunk-I2W24RHW.js → chunk-VE6OUO7X.js} +3 -3
  220. package/dist/{chunk-I2W24RHW.js.map → chunk-VE6OUO7X.js.map} +1 -1
  221. package/dist/{chunk-STPK44AU.js → chunk-VNWJTCBQ.js} +3 -3
  222. package/dist/{chunk-STPK44AU.js.map → chunk-VNWJTCBQ.js.map} +1 -1
  223. package/dist/{chunk-ZNZZCB2M.cjs → chunk-VPIYTQCV.cjs} +9 -9
  224. package/dist/{chunk-ZNZZCB2M.cjs.map → chunk-VPIYTQCV.cjs.map} +1 -1
  225. package/dist/{chunk-DLNJLCNO.cjs → chunk-VTKXM7IE.cjs} +4 -4
  226. package/dist/{chunk-DLNJLCNO.cjs.map → chunk-VTKXM7IE.cjs.map} +1 -1
  227. package/dist/{chunk-VPNURIAY.cjs → chunk-VVI32P7L.cjs} +10 -10
  228. package/dist/{chunk-VPNURIAY.cjs.map → chunk-VVI32P7L.cjs.map} +1 -1
  229. package/dist/{chunk-PWHK7SWN.cjs → chunk-VWCMOWGH.cjs} +150 -149
  230. package/dist/chunk-VWCMOWGH.cjs.map +1 -0
  231. package/dist/{chunk-EUUQVDXX.cjs → chunk-W4Q4UEXA.cjs} +14 -14
  232. package/dist/{chunk-EUUQVDXX.cjs.map → chunk-W4Q4UEXA.cjs.map} +1 -1
  233. package/dist/{chunk-ZVSW2KS6.js → chunk-WRYZ2752.js} +3 -3
  234. package/dist/{chunk-ZVSW2KS6.js.map → chunk-WRYZ2752.js.map} +1 -1
  235. package/dist/{chunk-U3ABLVYH.cjs → chunk-WUNWHOLA.cjs} +6 -6
  236. package/dist/{chunk-U3ABLVYH.cjs.map → chunk-WUNWHOLA.cjs.map} +1 -1
  237. package/dist/{chunk-RH43XBNV.cjs → chunk-WWJIW2IH.cjs} +4 -4
  238. package/dist/{chunk-RH43XBNV.cjs.map → chunk-WWJIW2IH.cjs.map} +1 -1
  239. package/dist/chunk-X4LBUPJO.cjs +511 -0
  240. package/dist/chunk-X4LBUPJO.cjs.map +1 -0
  241. package/dist/{chunk-4GXECTPS.cjs → chunk-XB54G7WS.cjs} +37 -3
  242. package/dist/chunk-XB54G7WS.cjs.map +1 -0
  243. package/dist/{chunk-IUFDGB5O.js → chunk-XMCIXHGH.js} +3 -3
  244. package/dist/{chunk-IUFDGB5O.js.map → chunk-XMCIXHGH.js.map} +1 -1
  245. package/dist/{chunk-KAKH2UZA.js → chunk-XO3WLK65.js} +3 -3
  246. package/dist/{chunk-KAKH2UZA.js.map → chunk-XO3WLK65.js.map} +1 -1
  247. package/dist/{chunk-IWDQPSJN.cjs → chunk-XS35KPBZ.cjs} +211 -223
  248. package/dist/chunk-XS35KPBZ.cjs.map +1 -0
  249. package/dist/{chunk-DEZ7XSTG.cjs → chunk-XXVUHLQN.cjs} +7 -7
  250. package/dist/{chunk-DEZ7XSTG.cjs.map → chunk-XXVUHLQN.cjs.map} +1 -1
  251. package/dist/{chunk-3GGET5LK.cjs → chunk-YGA35Z2P.cjs} +7 -7
  252. package/dist/{chunk-3GGET5LK.cjs.map → chunk-YGA35Z2P.cjs.map} +1 -1
  253. package/dist/{chunk-GOKC4CCZ.cjs → chunk-YMHOF6WA.cjs} +8 -8
  254. package/dist/{chunk-GOKC4CCZ.cjs.map → chunk-YMHOF6WA.cjs.map} +1 -1
  255. package/dist/{chunk-OXYFTCRW.cjs → chunk-YP5T6NZD.cjs} +4 -4
  256. package/dist/{chunk-OXYFTCRW.cjs.map → chunk-YP5T6NZD.cjs.map} +1 -1
  257. package/dist/{chunk-EL2RSQTJ.cjs → chunk-YVL3XATO.cjs} +5 -5
  258. package/dist/{chunk-EL2RSQTJ.cjs.map → chunk-YVL3XATO.cjs.map} +1 -1
  259. package/dist/{chunk-PVUDXJAI.js → chunk-YXCE2HSK.js} +4 -4
  260. package/dist/{chunk-PVUDXJAI.js.map → chunk-YXCE2HSK.js.map} +1 -1
  261. package/dist/{chunk-ST2RE5UB.cjs → chunk-Z5KFXHDP.cjs} +6 -6
  262. package/dist/{chunk-ST2RE5UB.cjs.map → chunk-Z5KFXHDP.cjs.map} +1 -1
  263. package/dist/{chunk-DAPZPT5N.cjs → chunk-ZBI52NP2.cjs} +13 -13
  264. package/dist/{chunk-DAPZPT5N.cjs.map → chunk-ZBI52NP2.cjs.map} +1 -1
  265. package/dist/{chunk-4Z6ZZKIY.js → chunk-ZIUADGAR.js} +3 -3
  266. package/dist/{chunk-4Z6ZZKIY.js.map → chunk-ZIUADGAR.js.map} +1 -1
  267. package/dist/{chunk-LOTMAKUG.cjs → chunk-ZZJ4ZVYR.cjs} +11 -11
  268. package/dist/{chunk-LOTMAKUG.cjs.map → chunk-ZZJ4ZVYR.cjs.map} +1 -1
  269. package/dist/collabKit-QZL4P5T5.js +48 -0
  270. package/dist/collabKit-QZL4P5T5.js.map +1 -0
  271. package/dist/collabKit-UF7E6V3N.cjs +72 -0
  272. package/dist/collabKit-UF7E6V3N.cjs.map +1 -0
  273. package/dist/components/Alert/index.cjs +6 -6
  274. package/dist/components/Alert/index.js +2 -2
  275. package/dist/components/AlertDialog/index.cjs +5 -5
  276. package/dist/components/AlertDialog/index.js +4 -4
  277. package/dist/components/AudioPlayer/index.cjs +7 -7
  278. package/dist/components/AudioPlayer/index.js +2 -2
  279. package/dist/components/AudioRecorder/index.cjs +7 -7
  280. package/dist/components/AudioRecorder/index.js +2 -2
  281. package/dist/components/Autocomplete/index.cjs +5 -5
  282. package/dist/components/Autocomplete/index.js +4 -4
  283. package/dist/components/Avatar/index.cjs +6 -6
  284. package/dist/components/Avatar/index.js +2 -2
  285. package/dist/components/Badge/index.cjs +4 -4
  286. package/dist/components/Badge/index.js +2 -2
  287. package/dist/components/Breadcrumb/index.cjs +4 -4
  288. package/dist/components/Breadcrumb/index.js +2 -2
  289. package/dist/components/Button/index.cjs +4 -4
  290. package/dist/components/Button/index.js +2 -2
  291. package/dist/components/Card/index.cjs +16 -16
  292. package/dist/components/Card/index.d.cts +8 -3
  293. package/dist/components/Card/index.d.ts +8 -3
  294. package/dist/components/Card/index.js +2 -2
  295. package/dist/components/Checkbox/index.cjs +5 -5
  296. package/dist/components/Checkbox/index.js +2 -2
  297. package/dist/components/CollabStatus/index.cjs +21 -0
  298. package/dist/components/CollabStatus/index.cjs.map +1 -0
  299. package/dist/components/CollabStatus/index.d.cts +222 -0
  300. package/dist/components/CollabStatus/index.d.ts +222 -0
  301. package/dist/components/CollabStatus/index.js +4 -0
  302. package/dist/components/CollabStatus/index.js.map +1 -0
  303. package/dist/components/Collapsible/index.cjs +5 -5
  304. package/dist/components/Collapsible/index.js +2 -2
  305. package/dist/components/CountryCodeDropdown/index.cjs +6 -6
  306. package/dist/components/CountryCodeDropdown/index.js +3 -3
  307. package/dist/components/DateInput/index.cjs +5 -5
  308. package/dist/components/DateInput/index.d.cts +3 -1
  309. package/dist/components/DateInput/index.d.ts +3 -1
  310. package/dist/components/DateInput/index.js +4 -4
  311. package/dist/components/Dropdown/index.cjs +10 -10
  312. package/dist/components/Dropdown/index.d.cts +1 -1
  313. package/dist/components/Dropdown/index.d.ts +1 -1
  314. package/dist/components/Dropdown/index.js +4 -4
  315. package/dist/components/FloatingWindow/index.cjs +5 -5
  316. package/dist/components/FloatingWindow/index.js +3 -3
  317. package/dist/components/Input/index.cjs +4 -4
  318. package/dist/components/Input/index.js +2 -2
  319. package/dist/components/Label/index.cjs +4 -4
  320. package/dist/components/Label/index.js +2 -2
  321. package/dist/components/Markdown/index.cjs +17 -17
  322. package/dist/components/Markdown/index.js +8 -8
  323. package/dist/components/MediaEditor/index.cjs +16 -16
  324. package/dist/components/MediaEditor/index.d.cts +34 -1
  325. package/dist/components/MediaEditor/index.d.ts +34 -1
  326. package/dist/components/MediaEditor/index.js +11 -11
  327. package/dist/components/MediaPlayer/index.cjs +6 -6
  328. package/dist/components/MediaPlayer/index.js +3 -3
  329. package/dist/components/Modal/index.cjs +10 -10
  330. package/dist/components/Modal/index.js +2 -2
  331. package/dist/components/Pagination/index.cjs +5 -5
  332. package/dist/components/Pagination/index.js +2 -2
  333. package/dist/components/PhoneInput/index.cjs +5 -5
  334. package/dist/components/PhoneInput/index.js +3 -3
  335. package/dist/components/Progress/index.cjs +7 -7
  336. package/dist/components/Progress/index.js +2 -2
  337. package/dist/components/QuickAction/index.cjs +7 -7
  338. package/dist/components/QuickAction/index.js +2 -2
  339. package/dist/components/Radio/index.cjs +5 -5
  340. package/dist/components/Radio/index.js +2 -2
  341. package/dist/components/RecordButton/index.cjs +5 -5
  342. package/dist/components/RecordButton/index.js +2 -2
  343. package/dist/components/RichTextEditor/index.cjs +10 -10
  344. package/dist/components/RichTextEditor/index.js +7 -7
  345. package/dist/components/SchedulePicker/index.cjs +11 -11
  346. package/dist/components/SchedulePicker/index.js +2 -2
  347. package/dist/components/ScrollArea/index.cjs +4 -4
  348. package/dist/components/ScrollArea/index.js +2 -2
  349. package/dist/components/Select/index.cjs +5 -5
  350. package/dist/components/Select/index.js +3 -3
  351. package/dist/components/Separator/index.cjs +4 -4
  352. package/dist/components/Separator/index.js +2 -2
  353. package/dist/components/Sheet/index.cjs +11 -11
  354. package/dist/components/Sheet/index.d.cts +1 -1
  355. package/dist/components/Sheet/index.d.ts +1 -1
  356. package/dist/components/Sheet/index.js +2 -2
  357. package/dist/components/Skeleton/index.cjs +7 -7
  358. package/dist/components/Skeleton/index.js +2 -2
  359. package/dist/components/Slider/index.cjs +6 -6
  360. package/dist/components/Slider/index.js +2 -2
  361. package/dist/components/Spinner/index.cjs +6 -6
  362. package/dist/components/Spinner/index.js +2 -2
  363. package/dist/components/SuperChat/index.cjs +46 -46
  364. package/dist/components/SuperChat/index.d.cts +4 -4
  365. package/dist/components/SuperChat/index.d.ts +4 -4
  366. package/dist/components/SuperChat/index.js +9 -9
  367. package/dist/components/SuperChat/plugins/index.cjs +10 -10
  368. package/dist/components/SuperChat/plugins/index.d.cts +3 -3
  369. package/dist/components/SuperChat/plugins/index.d.ts +3 -3
  370. package/dist/components/SuperChat/plugins/index.js +4 -4
  371. package/dist/components/Switch/index.cjs +5 -5
  372. package/dist/components/Switch/index.js +2 -2
  373. package/dist/components/Table/index.cjs +10 -10
  374. package/dist/components/Table/index.js +2 -2
  375. package/dist/components/Tabs/index.cjs +8 -8
  376. package/dist/components/Tabs/index.js +2 -2
  377. package/dist/components/Text/index.cjs +5 -5
  378. package/dist/components/Text/index.d.cts +1 -1
  379. package/dist/components/Text/index.d.ts +1 -1
  380. package/dist/components/Text/index.js +2 -2
  381. package/dist/components/Textarea/index.cjs +4 -4
  382. package/dist/components/Textarea/index.js +2 -2
  383. package/dist/components/ThemeProvider/index.cjs +9 -9
  384. package/dist/components/ThemeProvider/index.js +3 -3
  385. package/dist/components/Toggle/index.cjs +4 -4
  386. package/dist/components/Toggle/index.js +2 -2
  387. package/dist/components/Tooltip/index.cjs +3 -3
  388. package/dist/components/Tooltip/index.js +2 -2
  389. package/dist/datavis.cjs +7 -7
  390. package/dist/datavis.js +3 -3
  391. package/dist/esheet.cjs +18 -18
  392. package/dist/esheet.js +15 -15
  393. package/dist/hooks/index.cjs +34 -22
  394. package/dist/hooks/index.d.cts +31 -3
  395. package/dist/hooks/index.d.ts +31 -3
  396. package/dist/hooks/index.js +3 -3
  397. package/dist/index.cjs +3422 -1875
  398. package/dist/index.cjs.map +1 -1
  399. package/dist/index.d.cts +212 -22
  400. package/dist/index.d.ts +212 -22
  401. package/dist/index.js +918 -124
  402. package/dist/index.js.map +1 -1
  403. package/dist/kerebron.cjs +60 -17
  404. package/dist/kerebron.cjs.map +1 -1
  405. package/dist/kerebron.d.cts +39 -1
  406. package/dist/kerebron.d.ts +39 -1
  407. package/dist/kerebron.js +60 -17
  408. package/dist/kerebron.js.map +1 -1
  409. package/dist/styles.css +1 -1
  410. package/dist/tailwind-preset.cjs +4 -4
  411. package/dist/tailwind-preset.js +1 -1
  412. package/dist/{types-BYnLjEFg.d.ts → types-B2RLmdVd.d.cts} +3 -1
  413. package/dist/{types-BYnLjEFg.d.cts → types-B2RLmdVd.d.ts} +3 -1
  414. package/dist/{types-CyCwYBlr.d.ts → types-BoTeTPdH.d.ts} +1 -1
  415. package/dist/{types-CBh8Zlje.d.cts → types-DyIB9HYT.d.cts} +1 -1
  416. package/dist/{useAnchoredPosition-nXdSFKHf.d.cts → useAnchoredPosition-C7PNglzD.d.cts} +6 -2
  417. package/dist/{useAnchoredPosition-nXdSFKHf.d.ts → useAnchoredPosition-C7PNglzD.d.ts} +6 -2
  418. package/dist/{useTranscriptEdits-Hy0Vm-H8.d.cts → useTranscriptEdits-CGzlemHT.d.cts} +16 -3
  419. package/dist/{useTranscriptEdits-C2BbMU37.d.ts → useTranscriptEdits-D32bLs0l.d.ts} +16 -3
  420. package/dist/utils/index.cjs +15 -11
  421. package/dist/utils/index.d.cts +6 -1
  422. package/dist/utils/index.d.ts +6 -1
  423. package/dist/utils/index.js +2 -2
  424. package/package.json +30 -12
  425. package/dist/CsvBlock-2A5VEDD3.cjs +0 -15
  426. package/dist/CsvBlock-D6PWAJ5X.js +0 -6
  427. package/dist/HtmlPreviewBlock-PEHTJ6C3.js +0 -6
  428. package/dist/HtmlPreviewBlock-SYXCV5RH.cjs +0 -15
  429. package/dist/MermaidBlock-7NK3AVK2.js +0 -6
  430. package/dist/MermaidBlock-AFXNP5NK.cjs +0 -15
  431. package/dist/SurveyBlock-6KRNKFH5.cjs +0 -15
  432. package/dist/SurveyBlock-NNDGXGG4.js +0 -6
  433. package/dist/chunk-43GBCUSQ.js.map +0 -1
  434. package/dist/chunk-4GXECTPS.cjs.map +0 -1
  435. package/dist/chunk-4LVPQ44A.js.map +0 -1
  436. package/dist/chunk-5BQE6BEL.js.map +0 -1
  437. package/dist/chunk-6D5F7EDM.js.map +0 -1
  438. package/dist/chunk-7VF6WO7H.cjs.map +0 -1
  439. package/dist/chunk-DHKYGVP7.js +0 -3
  440. package/dist/chunk-F3SOEIN2.js +0 -11
  441. package/dist/chunk-F3SOEIN2.js.map +0 -1
  442. package/dist/chunk-FCBQP2U4.cjs.map +0 -1
  443. package/dist/chunk-IHTRKWBG.js.map +0 -1
  444. package/dist/chunk-IWDQPSJN.cjs.map +0 -1
  445. package/dist/chunk-JLBT76WH.js.map +0 -1
  446. package/dist/chunk-KJ5BSGEO.cjs.map +0 -1
  447. package/dist/chunk-LJ2ZWIX6.js.map +0 -1
  448. package/dist/chunk-MCCO4A23.js.map +0 -1
  449. package/dist/chunk-NQME7MCK.js.map +0 -1
  450. package/dist/chunk-NVHAQOHH.cjs.map +0 -1
  451. package/dist/chunk-OOYEHBYJ.js.map +0 -1
  452. package/dist/chunk-OR5DRJCW.cjs +0 -13
  453. package/dist/chunk-OR5DRJCW.cjs.map +0 -1
  454. package/dist/chunk-PFWHWIXS.cjs.map +0 -1
  455. package/dist/chunk-PJAQDAMZ.cjs.map +0 -1
  456. package/dist/chunk-PWHK7SWN.cjs.map +0 -1
  457. package/dist/chunk-QA6ZDHFP.js.map +0 -1
  458. package/dist/chunk-QUUFKGDF.cjs.map +0 -1
  459. package/dist/chunk-UTYUT5YY.cjs +0 -240
  460. package/dist/chunk-ZDEYV373.cjs.map +0 -1
  461. package/dist/chunk-ZGSC2CB2.js.map +0 -1
  462. package/dist/chunk-ZHBANUBI.cjs.map +0 -1
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var chunkGOKC4CCZ_cjs = require('./chunk-GOKC4CCZ.cjs');
4
- var chunkBYUV3IZV_cjs = require('./chunk-BYUV3IZV.cjs');
5
- var chunkDFCZPVG4_cjs = require('./chunk-DFCZPVG4.cjs');
6
- var chunkDAPZPT5N_cjs = require('./chunk-DAPZPT5N.cjs');
7
- var chunkKJPOFUF5_cjs = require('./chunk-KJPOFUF5.cjs');
8
- var chunkMSRU3XBH_cjs = require('./chunk-MSRU3XBH.cjs');
9
- var chunkA2QVQF54_cjs = require('./chunk-A2QVQF54.cjs');
10
- var chunkFCBQP2U4_cjs = require('./chunk-FCBQP2U4.cjs');
3
+ var chunkYMHOF6WA_cjs = require('./chunk-YMHOF6WA.cjs');
4
+ var chunkOGPJ3LRF_cjs = require('./chunk-OGPJ3LRF.cjs');
5
+ var chunkS3MKIDYG_cjs = require('./chunk-S3MKIDYG.cjs');
6
+ var chunkZBI52NP2_cjs = require('./chunk-ZBI52NP2.cjs');
7
+ var chunkP2VTQ5AR_cjs = require('./chunk-P2VTQ5AR.cjs');
8
+ var chunk6ECKH4DJ_cjs = require('./chunk-6ECKH4DJ.cjs');
9
+ var chunkM26KJKZG_cjs = require('./chunk-M26KJKZG.cjs');
10
+ var chunkNPKPCYAT_cjs = require('./chunk-NPKPCYAT.cjs');
11
11
  var chunkNUFUV43P_cjs = require('./chunk-NUFUV43P.cjs');
12
12
  var React6 = require('react');
13
13
  var classVarianceAuthority = require('class-variance-authority');
@@ -54,12 +54,12 @@ var FillerWordsModal = ({
54
54
  }) => {
55
55
  const [searchTerm, setSearchTerm] = React6__namespace.useState("");
56
56
  const [selectedFillers, setSelectedFillers] = React6__namespace.useState(
57
- new Set(chunkFCBQP2U4_cjs.DEFAULT_FILLER_WORDS)
57
+ new Set(chunkNPKPCYAT_cjs.DEFAULT_FILLER_WORDS)
58
58
  );
59
59
  const [customWord, setCustomWord] = React6__namespace.useState("");
60
60
  const [removeSilence, setRemoveSilence] = React6__namespace.useState(false);
61
61
  const [silenceThreshold, setSilenceThreshold] = React6__namespace.useState(0.4);
62
- const filteredFillers = chunkFCBQP2U4_cjs.DEFAULT_FILLER_WORDS.filter(
62
+ const filteredFillers = chunkNPKPCYAT_cjs.DEFAULT_FILLER_WORDS.filter(
63
63
  (word) => word.toLowerCase().includes(searchTerm.toLowerCase())
64
64
  ).sort((a, b) => {
65
65
  const countA = matchingCounts.get(a) || 0;
@@ -67,7 +67,7 @@ var FillerWordsModal = ({
67
67
  if (countB !== countA) return countB - countA;
68
68
  return a.localeCompare(b);
69
69
  });
70
- const customFillers = Array.from(selectedFillers).filter((word) => !chunkFCBQP2U4_cjs.DEFAULT_FILLER_WORDS.includes(word)).filter((word) => word.toLowerCase().includes(searchTerm.toLowerCase())).sort((a, b) => {
70
+ const customFillers = Array.from(selectedFillers).filter((word) => !chunkNPKPCYAT_cjs.DEFAULT_FILLER_WORDS.includes(word)).filter((word) => word.toLowerCase().includes(searchTerm.toLowerCase())).sort((a, b) => {
71
71
  const countA = matchingCounts.get(a) || 0;
72
72
  const countB = matchingCounts.get(b) || 0;
73
73
  if (countB !== countA) return countB - countA;
@@ -105,7 +105,7 @@ var FillerWordsModal = ({
105
105
  onClose();
106
106
  };
107
107
  const selectAll = () => {
108
- setSelectedFillers(/* @__PURE__ */ new Set([...chunkFCBQP2U4_cjs.DEFAULT_FILLER_WORDS, ...customFillers]));
108
+ setSelectedFillers(/* @__PURE__ */ new Set([...chunkNPKPCYAT_cjs.DEFAULT_FILLER_WORDS, ...customFillers]));
109
109
  };
110
110
  const selectNone = () => {
111
111
  setSelectedFillers(/* @__PURE__ */ new Set());
@@ -129,7 +129,7 @@ var FillerWordsModal = ({
129
129
  className: "hover:bg-muted flex cursor-pointer items-center gap-2 rounded-md px-1.5 py-1 text-sm transition-colors",
130
130
  children: [
131
131
  /* @__PURE__ */ jsxRuntime.jsx(
132
- chunkDFCZPVG4_cjs.Checkbox,
132
+ chunkS3MKIDYG_cjs.Checkbox,
133
133
  {
134
134
  size: "sm",
135
135
  checked: selectedFillers.has(word),
@@ -166,7 +166,7 @@ var FillerWordsModal = ({
166
166
  );
167
167
  };
168
168
  return /* @__PURE__ */ jsxRuntime.jsxs(
169
- chunkKJPOFUF5_cjs.Modal,
169
+ chunkP2VTQ5AR_cjs.Modal,
170
170
  {
171
171
  open: isOpen,
172
172
  onOpenChange: (open) => {
@@ -174,13 +174,13 @@ var FillerWordsModal = ({
174
174
  },
175
175
  size: "lg",
176
176
  children: [
177
- /* @__PURE__ */ jsxRuntime.jsxs(chunkKJPOFUF5_cjs.ModalHeader, { children: [
178
- /* @__PURE__ */ jsxRuntime.jsx(chunkKJPOFUF5_cjs.ModalTitle, { children: "Remove Filler Words" }),
179
- /* @__PURE__ */ jsxRuntime.jsx(chunkKJPOFUF5_cjs.ModalClose, { "aria-label": "Close modal" })
177
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkP2VTQ5AR_cjs.ModalHeader, { children: [
178
+ /* @__PURE__ */ jsxRuntime.jsx(chunkP2VTQ5AR_cjs.ModalTitle, { children: "Remove Filler Words" }),
179
+ /* @__PURE__ */ jsxRuntime.jsx(chunkP2VTQ5AR_cjs.ModalClose, { "aria-label": "Close modal" })
180
180
  ] }),
181
- /* @__PURE__ */ jsxRuntime.jsxs(chunkKJPOFUF5_cjs.ModalBody, { className: "flex flex-col gap-3", children: [
181
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkP2VTQ5AR_cjs.ModalBody, { className: "flex flex-col gap-3", children: [
182
182
  /* @__PURE__ */ jsxRuntime.jsx(
183
- chunkMSRU3XBH_cjs.Input,
183
+ chunk6ECKH4DJ_cjs.Input,
184
184
  {
185
185
  size: "sm",
186
186
  type: "text",
@@ -191,12 +191,12 @@ var FillerWordsModal = ({
191
191
  }
192
192
  ),
193
193
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
194
- /* @__PURE__ */ jsxRuntime.jsx(chunkA2QVQF54_cjs.Button, { variant: "ghost", size: "sm", onClick: selectAll, children: "Select All" }),
195
- /* @__PURE__ */ jsxRuntime.jsx(chunkA2QVQF54_cjs.Button, { variant: "ghost", size: "sm", onClick: selectNone, children: "Select None" })
194
+ /* @__PURE__ */ jsxRuntime.jsx(chunkM26KJKZG_cjs.Button, { variant: "ghost", size: "sm", onClick: selectAll, children: "Select All" }),
195
+ /* @__PURE__ */ jsxRuntime.jsx(chunkM26KJKZG_cjs.Button, { variant: "ghost", size: "sm", onClick: selectNone, children: "Select None" })
196
196
  ] }),
197
197
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-border bg-muted/40 flex flex-wrap items-center gap-2 rounded-lg border px-3 py-2", children: [
198
198
  /* @__PURE__ */ jsxRuntime.jsx(
199
- chunkDFCZPVG4_cjs.Checkbox,
199
+ chunkS3MKIDYG_cjs.Checkbox,
200
200
  {
201
201
  size: "sm",
202
202
  label: "Remove silences greater than",
@@ -205,7 +205,7 @@ var FillerWordsModal = ({
205
205
  }
206
206
  ),
207
207
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-24", children: /* @__PURE__ */ jsxRuntime.jsx(
208
- chunkDAPZPT5N_cjs.Select,
208
+ chunkZBI52NP2_cjs.Select,
209
209
  {
210
210
  size: "sm",
211
211
  options: SILENCE_THRESHOLD_OPTIONS.map((t) => ({
@@ -230,7 +230,7 @@ var FillerWordsModal = ({
230
230
  ] }),
231
231
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
232
232
  /* @__PURE__ */ jsxRuntime.jsx(
233
- chunkMSRU3XBH_cjs.Input,
233
+ chunk6ECKH4DJ_cjs.Input,
234
234
  {
235
235
  size: "sm",
236
236
  type: "text",
@@ -247,7 +247,7 @@ var FillerWordsModal = ({
247
247
  }
248
248
  ),
249
249
  /* @__PURE__ */ jsxRuntime.jsx(
250
- chunkA2QVQF54_cjs.Button,
250
+ chunkM26KJKZG_cjs.Button,
251
251
  {
252
252
  variant: "secondary",
253
253
  size: "sm",
@@ -258,7 +258,7 @@ var FillerWordsModal = ({
258
258
  )
259
259
  ] })
260
260
  ] }),
261
- /* @__PURE__ */ jsxRuntime.jsxs(chunkKJPOFUF5_cjs.ModalFooter, { className: "justify-between", children: [
261
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkP2VTQ5AR_cjs.ModalFooter, { className: "justify-between", children: [
262
262
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-muted-foreground text-sm", children: [
263
263
  totalMatches,
264
264
  " items \u2022 saves ",
@@ -268,9 +268,9 @@ var FillerWordsModal = ({
268
268
  formatDuration(newDurationMs)
269
269
  ] }),
270
270
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
271
- /* @__PURE__ */ jsxRuntime.jsx(chunkA2QVQF54_cjs.Button, { variant: "secondary", size: "sm", onClick: onClose, children: "Cancel" }),
271
+ /* @__PURE__ */ jsxRuntime.jsx(chunkM26KJKZG_cjs.Button, { variant: "secondary", size: "sm", onClick: onClose, children: "Cancel" }),
272
272
  /* @__PURE__ */ jsxRuntime.jsxs(
273
- chunkA2QVQF54_cjs.Button,
273
+ chunkM26KJKZG_cjs.Button,
274
274
  {
275
275
  variant: "primary",
276
276
  size: "sm",
@@ -372,7 +372,7 @@ var WordEditorModal = ({
372
372
  const preview = isSilence ? parseSilenceSplit(inputValue) : null;
373
373
  const applyDisabled = isSilence ? !inputValue.trim() || !!preview?.error || !preview || preview.durations.length === 0 : !inputValue.trim();
374
374
  return /* @__PURE__ */ jsxRuntime.jsxs(
375
- chunkKJPOFUF5_cjs.Modal,
375
+ chunkP2VTQ5AR_cjs.Modal,
376
376
  {
377
377
  open: isOpen && editableWord !== null,
378
378
  onOpenChange: (open) => {
@@ -380,11 +380,11 @@ var WordEditorModal = ({
380
380
  },
381
381
  size: "md",
382
382
  children: [
383
- /* @__PURE__ */ jsxRuntime.jsxs(chunkKJPOFUF5_cjs.ModalHeader, { children: [
384
- /* @__PURE__ */ jsxRuntime.jsx(chunkKJPOFUF5_cjs.ModalTitle, { children: isSilence ? "Split Silence" : "Edit Word" }),
385
- /* @__PURE__ */ jsxRuntime.jsx(chunkKJPOFUF5_cjs.ModalClose, { "aria-label": "Close editor" })
383
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkP2VTQ5AR_cjs.ModalHeader, { children: [
384
+ /* @__PURE__ */ jsxRuntime.jsx(chunkP2VTQ5AR_cjs.ModalTitle, { children: isSilence ? "Split Silence" : "Edit Word" }),
385
+ /* @__PURE__ */ jsxRuntime.jsx(chunkP2VTQ5AR_cjs.ModalClose, { "aria-label": "Close editor" })
386
386
  ] }),
387
- /* @__PURE__ */ jsxRuntime.jsx(chunkKJPOFUF5_cjs.ModalBody, { className: "flex flex-col gap-2", children: isSilence ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
387
+ /* @__PURE__ */ jsxRuntime.jsx(chunkP2VTQ5AR_cjs.ModalBody, { className: "flex flex-col gap-2", children: isSilence ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
388
388
  /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-foreground m-0 text-sm", children: [
389
389
  "Silence duration:",
390
390
  " ",
@@ -395,7 +395,7 @@ var WordEditorModal = ({
395
395
  ] }),
396
396
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground m-0 text-xs", children: 'Enter space-separated durations to split (e.g., "1 1 4 1")' }),
397
397
  /* @__PURE__ */ jsxRuntime.jsx(
398
- chunkMSRU3XBH_cjs.Input,
398
+ chunk6ECKH4DJ_cjs.Input,
399
399
  {
400
400
  ref: inputRef,
401
401
  type: "text",
@@ -419,7 +419,7 @@ var WordEditorModal = ({
419
419
  ] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
420
420
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-foreground m-0 text-sm", children: "Edit the word text:" }),
421
421
  /* @__PURE__ */ jsxRuntime.jsx(
422
- chunkMSRU3XBH_cjs.Input,
422
+ chunk6ECKH4DJ_cjs.Input,
423
423
  {
424
424
  ref: inputRef,
425
425
  type: "text",
@@ -430,9 +430,9 @@ var WordEditorModal = ({
430
430
  }
431
431
  )
432
432
  ] }) }),
433
- /* @__PURE__ */ jsxRuntime.jsxs(chunkKJPOFUF5_cjs.ModalFooter, { className: "justify-between", children: [
433
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkP2VTQ5AR_cjs.ModalFooter, { className: "justify-between", children: [
434
434
  /* @__PURE__ */ jsxRuntime.jsx(
435
- chunkA2QVQF54_cjs.Button,
435
+ chunkM26KJKZG_cjs.Button,
436
436
  {
437
437
  variant: editableWord?.deleted ? "secondary" : "danger",
438
438
  size: "sm",
@@ -441,9 +441,9 @@ var WordEditorModal = ({
441
441
  }
442
442
  ),
443
443
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
444
- /* @__PURE__ */ jsxRuntime.jsx(chunkA2QVQF54_cjs.Button, { variant: "secondary", size: "sm", onClick: onClose, children: "Cancel" }),
444
+ /* @__PURE__ */ jsxRuntime.jsx(chunkM26KJKZG_cjs.Button, { variant: "secondary", size: "sm", onClick: onClose, children: "Cancel" }),
445
445
  /* @__PURE__ */ jsxRuntime.jsx(
446
- chunkA2QVQF54_cjs.Button,
446
+ chunkM26KJKZG_cjs.Button,
447
447
  {
448
448
  variant: "primary",
449
449
  size: "sm",
@@ -487,7 +487,7 @@ var SilenceSettingsModal = ({
487
487
  };
488
488
  const formatSeconds = (v) => `${v.toFixed(1)}s`;
489
489
  return /* @__PURE__ */ jsxRuntime.jsxs(
490
- chunkKJPOFUF5_cjs.Modal,
490
+ chunkP2VTQ5AR_cjs.Modal,
491
491
  {
492
492
  open: isOpen,
493
493
  onOpenChange: (open) => {
@@ -495,14 +495,14 @@ var SilenceSettingsModal = ({
495
495
  },
496
496
  size: "md",
497
497
  children: [
498
- /* @__PURE__ */ jsxRuntime.jsxs(chunkKJPOFUF5_cjs.ModalHeader, { children: [
499
- /* @__PURE__ */ jsxRuntime.jsx(chunkKJPOFUF5_cjs.ModalTitle, { children: "Silence Settings" }),
500
- /* @__PURE__ */ jsxRuntime.jsx(chunkKJPOFUF5_cjs.ModalClose, { "aria-label": "Close modal" })
498
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkP2VTQ5AR_cjs.ModalHeader, { children: [
499
+ /* @__PURE__ */ jsxRuntime.jsx(chunkP2VTQ5AR_cjs.ModalTitle, { children: "Silence Settings" }),
500
+ /* @__PURE__ */ jsxRuntime.jsx(chunkP2VTQ5AR_cjs.ModalClose, { "aria-label": "Close modal" })
501
501
  ] }),
502
- /* @__PURE__ */ jsxRuntime.jsxs(chunkKJPOFUF5_cjs.ModalBody, { className: "flex flex-col gap-6", children: [
502
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkP2VTQ5AR_cjs.ModalBody, { className: "flex flex-col gap-6", children: [
503
503
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-1", children: [
504
504
  /* @__PURE__ */ jsxRuntime.jsx(
505
- chunkGOKC4CCZ_cjs.Slider,
505
+ chunkYMHOF6WA_cjs.Slider,
506
506
  {
507
507
  label: "Minimum silence duration",
508
508
  min: 0.1,
@@ -519,7 +519,7 @@ var SilenceSettingsModal = ({
519
519
  ] }),
520
520
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-1", children: [
521
521
  /* @__PURE__ */ jsxRuntime.jsx(
522
- chunkGOKC4CCZ_cjs.Slider,
522
+ chunkYMHOF6WA_cjs.Slider,
523
523
  {
524
524
  label: "Paragraph break threshold",
525
525
  min: threshold,
@@ -535,9 +535,9 @@ var SilenceSettingsModal = ({
535
535
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground m-0 text-xs", children: "Silences longer than this will create paragraph breaks." })
536
536
  ] })
537
537
  ] }),
538
- /* @__PURE__ */ jsxRuntime.jsxs(chunkKJPOFUF5_cjs.ModalFooter, { children: [
539
- /* @__PURE__ */ jsxRuntime.jsx(chunkA2QVQF54_cjs.Button, { variant: "secondary", size: "sm", onClick: onClose, children: "Cancel" }),
540
- /* @__PURE__ */ jsxRuntime.jsx(chunkA2QVQF54_cjs.Button, { variant: "primary", size: "sm", onClick: handleApply, children: "Apply" })
538
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkP2VTQ5AR_cjs.ModalFooter, { children: [
539
+ /* @__PURE__ */ jsxRuntime.jsx(chunkM26KJKZG_cjs.Button, { variant: "secondary", size: "sm", onClick: onClose, children: "Cancel" }),
540
+ /* @__PURE__ */ jsxRuntime.jsx(chunkM26KJKZG_cjs.Button, { variant: "primary", size: "sm", onClick: handleApply, children: "Apply" })
541
541
  ] })
542
542
  ]
543
543
  }
@@ -756,7 +756,7 @@ var ScriptPanel = ({
756
756
  ),
757
757
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground ml-auto text-[10px]", children: readOnly ? "read-only" : dirty ? "edited" : "live" }),
758
758
  /* @__PURE__ */ jsxRuntime.jsx(
759
- chunkA2QVQF54_cjs.Button,
759
+ chunkM26KJKZG_cjs.Button,
760
760
  {
761
761
  variant: "ghost",
762
762
  size: "sm",
@@ -789,9 +789,9 @@ var ScriptPanel = ({
789
789
  }
790
790
  ),
791
791
  !readOnly && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-border flex shrink-0 items-center gap-2 border-t px-3 py-2", children: [
792
- /* @__PURE__ */ jsxRuntime.jsx(chunkA2QVQF54_cjs.Button, { size: "sm", onClick: handleApply, disabled: !dirty, children: "Apply" }),
792
+ /* @__PURE__ */ jsxRuntime.jsx(chunkM26KJKZG_cjs.Button, { size: "sm", onClick: handleApply, disabled: !dirty, children: "Apply" }),
793
793
  /* @__PURE__ */ jsxRuntime.jsx(
794
- chunkA2QVQF54_cjs.Button,
794
+ chunkM26KJKZG_cjs.Button,
795
795
  {
796
796
  variant: "ghost",
797
797
  size: "sm",
@@ -823,6 +823,22 @@ var mediaEditorVariants = classVarianceAuthority.cva(
823
823
  }
824
824
  }
825
825
  );
826
+ function scrollWordIntoTranscript(container, wordIndex) {
827
+ if (!container) return;
828
+ if (container.scrollHeight <= container.clientHeight) return;
829
+ const el = container.querySelector(`[data-word-index="${wordIndex}"]`);
830
+ if (!el) return;
831
+ const containerBox = container.getBoundingClientRect();
832
+ const wordBox = el.getBoundingClientRect();
833
+ const above = wordBox.top - containerBox.top;
834
+ const below = wordBox.bottom - containerBox.bottom;
835
+ const delta = above < 0 ? above : below > 0 ? below : 0;
836
+ if (delta === 0) return;
837
+ container.scrollTo({
838
+ top: container.scrollTop + delta,
839
+ behavior: "smooth"
840
+ });
841
+ }
826
842
  function formatDuration2(ms) {
827
843
  const totalSeconds = Math.round(ms / 1e3);
828
844
  if (totalSeconds < 90) {
@@ -882,6 +898,11 @@ function wordClassName(s) {
882
898
  if (s.hasSpeedMarker) {
883
899
  parts.push("ml-0.5 border-l-[3px] border-l-warning pl-1.5");
884
900
  }
901
+ if (s.isSped) {
902
+ parts.push(
903
+ "underline decoration-warning decoration-dotted decoration-2 underline-offset-4"
904
+ );
905
+ }
885
906
  return parts.join(" ");
886
907
  }
887
908
  var Caret = ({ side }) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -898,18 +919,29 @@ var MediaEditor = React6__namespace.forwardRef(
898
919
  transcript,
899
920
  initialEditedWords,
900
921
  initialUndoStack,
922
+ initialSpeedMarkers,
923
+ initialDefaultSpeed,
901
924
  onEditorStateChange,
902
925
  onHasEditsChange,
903
926
  onCursorTimestampChange,
904
927
  onEditedWordsRender,
928
+ onSpeedStateChange,
929
+ onUndoBeyond,
930
+ canUndoBeyond = false,
931
+ undoBeyondLabel,
932
+ onRedo,
933
+ canRedo = false,
934
+ redoLabel,
905
935
  playerRef: externalPlayerRef,
906
936
  className,
907
937
  splitLayout
908
938
  }, ref) => {
909
- const edits = chunkFCBQP2U4_cjs.useTranscriptEdits({
939
+ const edits = chunkNPKPCYAT_cjs.useTranscriptEdits({
910
940
  transcript,
911
941
  initialEditedWords,
912
942
  initialUndoStack,
943
+ initialSpeedMarkers,
944
+ initialDefaultSpeed,
913
945
  onChange: onEditorStateChange
914
946
  });
915
947
  const {
@@ -918,6 +950,8 @@ var MediaEditor = React6__namespace.forwardRef(
918
950
  clipboard,
919
951
  hasEdits,
920
952
  undo,
953
+ redo,
954
+ canRedo: canRedoWords,
921
955
  toggleWordDeleted,
922
956
  deleteRange,
923
957
  cut,
@@ -934,6 +968,7 @@ var MediaEditor = React6__namespace.forwardRef(
934
968
  defaultSpeed,
935
969
  setDefaultSpeed,
936
970
  toggleSpeedMarker,
971
+ setSpeedForRange,
937
972
  removeSpeedMarker,
938
973
  getSpeedAtIndex,
939
974
  getSpeedMarkerAtIndex,
@@ -941,6 +976,9 @@ var MediaEditor = React6__namespace.forwardRef(
941
976
  stats,
942
977
  fillerAnalysis
943
978
  } = edits;
979
+ const canUndoAnything = undoStack.length > 0 || canUndoBeyond && !!onUndoBeyond;
980
+ const canRedoAnything = canRedoWords || canRedo && !!onRedo;
981
+ const showUndoRedo = canUndoAnything || canRedoAnything || !!onRedo;
944
982
  const [activeWordIndex, setActiveWordIndex] = React6__namespace.useState(
945
983
  null
946
984
  );
@@ -987,6 +1025,10 @@ var MediaEditor = React6__namespace.forwardRef(
987
1025
  null
988
1026
  );
989
1027
  const longPressTriggered = React6__namespace.useRef(false);
1028
+ const selectionAnchorRef = React6__namespace.useRef(null);
1029
+ const dragPointer = React6__namespace.useRef(null);
1030
+ const dragScrollFrame = React6__namespace.useRef(null);
1031
+ const dragListeners = React6__namespace.useRef(null);
990
1032
  const wordPlaybackStartMs = React6__namespace.useRef(null);
991
1033
  const wordPlaybackEndMs = React6__namespace.useRef(null);
992
1034
  const sequenceSegments = React6__namespace.useRef([]);
@@ -997,6 +1039,13 @@ var MediaEditor = React6__namespace.forwardRef(
997
1039
  React6__namespace.useEffect(() => {
998
1040
  onEditedWordsRender?.(editedWords);
999
1041
  }, [editedWords, onEditedWordsRender]);
1042
+ const onSpeedStateChangeRef = React6__namespace.useRef(onSpeedStateChange);
1043
+ React6__namespace.useEffect(() => {
1044
+ onSpeedStateChangeRef.current = onSpeedStateChange;
1045
+ });
1046
+ React6__namespace.useEffect(() => {
1047
+ onSpeedStateChangeRef.current?.(speedMarkers, defaultSpeed);
1048
+ }, [speedMarkers, defaultSpeed]);
1000
1049
  React6__namespace.useEffect(() => {
1001
1050
  if (onCursorTimestampChange) {
1002
1051
  const word = editedWords[cursorIndex];
@@ -1034,13 +1083,10 @@ var MediaEditor = React6__namespace.forwardRef(
1034
1083
  }, [activeWordIndex]);
1035
1084
  React6__namespace.useEffect(() => {
1036
1085
  if (activeWordIndex === null) return;
1037
- const el = contentRef.current?.querySelector(
1038
- `[data-word-index="${activeWordIndex}"]`
1039
- );
1040
- el?.scrollIntoView({ block: "nearest", behavior: "smooth" });
1086
+ scrollWordIntoTranscript(contentRef.current, activeWordIndex);
1041
1087
  }, [activeWordIndex]);
1042
1088
  React6__namespace.useEffect(() => {
1043
- contentRef.current?.focus();
1089
+ contentRef.current?.focus({ preventScroll: true });
1044
1090
  }, [transcript]);
1045
1091
  React6__namespace.useEffect(() => {
1046
1092
  const player = playerRef.current;
@@ -1236,6 +1282,157 @@ var MediaEditor = React6__namespace.forwardRef(
1236
1282
  setSelection(null);
1237
1283
  }
1238
1284
  };
1285
+ const AUTOSCROLL_EDGE_PX = 24;
1286
+ const AUTOSCROLL_MAX_STEP_PX = 24;
1287
+ const extendDragSelection = (index) => {
1288
+ const anchor = selectionAnchorRef.current;
1289
+ if (!isDragging.current || anchor === null) return;
1290
+ setSelection({
1291
+ start: Math.min(anchor, index),
1292
+ end: Math.max(anchor, index)
1293
+ });
1294
+ setCursorIndex(index);
1295
+ };
1296
+ const wordIndexAtPoint = (x, y) => {
1297
+ const span = document.elementFromPoint?.(x, y)?.closest?.("[data-word-index]");
1298
+ if (!span) return null;
1299
+ const parsed = Number(span.dataset.wordIndex);
1300
+ return Number.isInteger(parsed) ? parsed : null;
1301
+ };
1302
+ const extendSelectionToPointer = () => {
1303
+ const container = contentRef.current;
1304
+ const pointer = dragPointer.current;
1305
+ if (!container || !pointer) return;
1306
+ const rect = container.getBoundingClientRect();
1307
+ const top = Math.max(rect.top, 0);
1308
+ const bottom = Math.min(rect.bottom, window.innerHeight);
1309
+ const left = Math.max(rect.left, 0);
1310
+ const right = Math.min(rect.right, window.innerWidth);
1311
+ if (bottom <= top || right <= left) return;
1312
+ const y = Math.min(Math.max(pointer.y, top + 2), bottom - 2);
1313
+ const x = Math.min(Math.max(pointer.x, left + 2), right - 2);
1314
+ for (const rawX of [x, left + (right - left) / 2, left + 16]) {
1315
+ const probeX = Math.min(Math.max(rawX, left + 2), right - 2);
1316
+ const index = wordIndexAtPoint(probeX, y);
1317
+ if (index !== null) {
1318
+ extendDragSelection(index);
1319
+ return;
1320
+ }
1321
+ }
1322
+ const spans = container.querySelectorAll("[data-word-index]");
1323
+ if (spans.length === 0) return;
1324
+ if (spans[0].getBoundingClientRect().top > y) {
1325
+ const parsed = Number(spans[0].dataset.wordIndex);
1326
+ if (Number.isInteger(parsed)) extendDragSelection(parsed);
1327
+ return;
1328
+ }
1329
+ for (let i = spans.length - 1; i >= 0; i--) {
1330
+ const spanRect = spans[i].getBoundingClientRect();
1331
+ if (spanRect.top <= y) {
1332
+ const parsed = Number(spans[i].dataset.wordIndex);
1333
+ if (Number.isInteger(parsed)) extendDragSelection(parsed);
1334
+ return;
1335
+ }
1336
+ }
1337
+ };
1338
+ const stepDragAutoScroll = () => {
1339
+ dragScrollFrame.current = null;
1340
+ const container = contentRef.current;
1341
+ const pointer = dragPointer.current;
1342
+ if (!isDragging.current || !container || !pointer) return;
1343
+ const rect = container.getBoundingClientRect();
1344
+ const top = Math.max(rect.top, 0);
1345
+ const bottom = Math.min(rect.bottom, window.innerHeight);
1346
+ if (bottom <= top) {
1347
+ dragScrollFrame.current = requestAnimationFrame(stepDragAutoScroll);
1348
+ return;
1349
+ }
1350
+ let step = 0;
1351
+ if (pointer.y < top + AUTOSCROLL_EDGE_PX) {
1352
+ step = Math.max(
1353
+ (pointer.y - (top + AUTOSCROLL_EDGE_PX)) / 3,
1354
+ -AUTOSCROLL_MAX_STEP_PX
1355
+ );
1356
+ } else if (pointer.y > bottom - AUTOSCROLL_EDGE_PX) {
1357
+ step = Math.min(
1358
+ (pointer.y - (bottom - AUTOSCROLL_EDGE_PX)) / 3,
1359
+ AUTOSCROLL_MAX_STEP_PX
1360
+ );
1361
+ }
1362
+ if (step !== 0) {
1363
+ const before = container.scrollTop;
1364
+ container.scrollTop += step;
1365
+ if (container.scrollTop !== before) {
1366
+ extendSelectionToPointer();
1367
+ }
1368
+ }
1369
+ dragScrollFrame.current = requestAnimationFrame(stepDragAutoScroll);
1370
+ };
1371
+ const detachDragListeners = () => {
1372
+ if (dragListeners.current) {
1373
+ document.removeEventListener("mousemove", dragListeners.current.move);
1374
+ document.removeEventListener("mouseup", dragListeners.current.up);
1375
+ dragListeners.current = null;
1376
+ }
1377
+ if (dragScrollFrame.current !== null) {
1378
+ cancelAnimationFrame(dragScrollFrame.current);
1379
+ dragScrollFrame.current = null;
1380
+ }
1381
+ };
1382
+ const handleMouseUp = () => {
1383
+ if (longPressTimer.current) {
1384
+ clearTimeout(longPressTimer.current);
1385
+ longPressTimer.current = null;
1386
+ }
1387
+ if (isDragging.current) {
1388
+ isDragging.current = false;
1389
+ }
1390
+ detachDragListeners();
1391
+ };
1392
+ const beginDragTracking = () => {
1393
+ detachDragListeners();
1394
+ const up = () => handleMouseUp();
1395
+ const move = (e) => {
1396
+ if (!isDragging.current) return;
1397
+ if (e.buttons === 0) {
1398
+ up();
1399
+ return;
1400
+ }
1401
+ dragPointer.current = { x: e.clientX, y: e.clientY };
1402
+ const container = contentRef.current;
1403
+ if (container && longPressTimer.current) {
1404
+ const rect = container.getBoundingClientRect();
1405
+ const outside = e.clientX < rect.left || e.clientX > rect.right || e.clientY < rect.top || e.clientY > rect.bottom;
1406
+ if (outside) {
1407
+ clearTimeout(longPressTimer.current);
1408
+ longPressTimer.current = null;
1409
+ }
1410
+ }
1411
+ extendSelectionToPointer();
1412
+ };
1413
+ dragListeners.current = { move, up };
1414
+ document.addEventListener("mousemove", move);
1415
+ document.addEventListener("mouseup", up);
1416
+ dragScrollFrame.current = requestAnimationFrame(stepDragAutoScroll);
1417
+ };
1418
+ React6__namespace.useEffect(
1419
+ () => () => {
1420
+ if (dragListeners.current) {
1421
+ document.removeEventListener("mousemove", dragListeners.current.move);
1422
+ document.removeEventListener("mouseup", dragListeners.current.up);
1423
+ dragListeners.current = null;
1424
+ }
1425
+ if (dragScrollFrame.current !== null) {
1426
+ cancelAnimationFrame(dragScrollFrame.current);
1427
+ dragScrollFrame.current = null;
1428
+ }
1429
+ if (longPressTimer.current) {
1430
+ clearTimeout(longPressTimer.current);
1431
+ longPressTimer.current = null;
1432
+ }
1433
+ },
1434
+ []
1435
+ );
1239
1436
  const handleWordMouseDown = (index, e) => {
1240
1437
  if (e.button !== 0) return;
1241
1438
  longPressTriggered.current = false;
@@ -1244,31 +1441,20 @@ var MediaEditor = React6__namespace.forwardRef(
1244
1441
  openWordEditor(index);
1245
1442
  }, 500);
1246
1443
  isDragging.current = true;
1444
+ selectionAnchorRef.current = index;
1445
+ dragPointer.current = { x: e.clientX, y: e.clientY };
1247
1446
  setSelectionAnchor(index);
1248
1447
  setCursorIndex(index);
1249
1448
  setCursorPosition("before");
1250
1449
  setSelection(null);
1450
+ beginDragTracking();
1251
1451
  };
1252
1452
  const handleWordMouseEnter = (index) => {
1253
1453
  if (longPressTimer.current) {
1254
1454
  clearTimeout(longPressTimer.current);
1255
1455
  longPressTimer.current = null;
1256
1456
  }
1257
- if (!isDragging.current || selectionAnchor === null) return;
1258
- setSelection({
1259
- start: Math.min(selectionAnchor, index),
1260
- end: Math.max(selectionAnchor, index)
1261
- });
1262
- setCursorIndex(index);
1263
- };
1264
- const handleMouseUp = () => {
1265
- if (longPressTimer.current) {
1266
- clearTimeout(longPressTimer.current);
1267
- longPressTimer.current = null;
1268
- }
1269
- if (isDragging.current) {
1270
- isDragging.current = false;
1271
- }
1457
+ extendDragSelection(index);
1272
1458
  };
1273
1459
  const handleWordContextMenu = (index, e) => {
1274
1460
  e.preventDefault();
@@ -1307,6 +1493,10 @@ var MediaEditor = React6__namespace.forwardRef(
1307
1493
  } else if ((e.metaKey || e.ctrlKey) && e.key === "z" && !e.shiftKey) {
1308
1494
  undo();
1309
1495
  handled = true;
1496
+ } else if ((e.metaKey || e.ctrlKey) && (e.key === "z" && e.shiftKey || e.key === "y")) {
1497
+ if (canRedoWords) redo();
1498
+ else if (canRedo && onRedo) onRedo();
1499
+ handled = true;
1310
1500
  } else if (e.key === "ArrowLeft") {
1311
1501
  if (cursorPosition === "after") {
1312
1502
  setCursorPosition("before");
@@ -1420,10 +1610,7 @@ var MediaEditor = React6__namespace.forwardRef(
1420
1610
  setSelection(null);
1421
1611
  setSelectionAnchor(null);
1422
1612
  }
1423
- const wordElement = contentRef.current?.querySelector(
1424
- `[data-word-index="${newIndex}"]`
1425
- );
1426
- wordElement?.scrollIntoView({ block: "nearest", behavior: "smooth" });
1613
+ scrollWordIntoTranscript(contentRef.current, newIndex);
1427
1614
  }
1428
1615
  },
1429
1616
  [
@@ -1438,6 +1625,10 @@ var MediaEditor = React6__namespace.forwardRef(
1438
1625
  handleCut,
1439
1626
  handlePaste,
1440
1627
  undo,
1628
+ redo,
1629
+ canRedoWords,
1630
+ canRedo,
1631
+ onRedo,
1441
1632
  openWordEditor
1442
1633
  ]
1443
1634
  );
@@ -1485,7 +1676,8 @@ var MediaEditor = React6__namespace.forwardRef(
1485
1676
  isSilenceNewline,
1486
1677
  isAnchor,
1487
1678
  isFocused,
1488
- hasSpeedMarker
1679
+ hasSpeedMarker,
1680
+ isSped: effectiveSpeed !== defaultSpeed
1489
1681
  }),
1490
1682
  onClick: (e) => handleWordClick(ew.word, index, e),
1491
1683
  onDoubleClick: (e) => handleWordDoubleClick(index, e),
@@ -1532,9 +1724,9 @@ var MediaEditor = React6__namespace.forwardRef(
1532
1724
  /* @__PURE__ */ jsxRuntime.jsx(
1533
1725
  "div",
1534
1726
  {
1535
- className: `border-border bg-background min-h-0 shrink-0 ${splitLayout === "vertical" ? "md:w-1/2 md:border-r" : "max-h-[50%] border-b"}`,
1727
+ className: `border-border bg-background flex min-h-0 shrink-0 ${splitLayout === "vertical" ? "max-h-[55dvh] md:max-h-none md:w-1/2 md:border-r" : "max-h-[55dvh] border-b md:max-h-[50%]"}`,
1536
1728
  children: /* @__PURE__ */ jsxRuntime.jsx(
1537
- chunkBYUV3IZV_cjs.MediaPlayer,
1729
+ chunkOGPJ3LRF_cjs.MediaPlayer,
1538
1730
  {
1539
1731
  ref: playerRef,
1540
1732
  src,
@@ -1563,7 +1755,7 @@ var MediaEditor = React6__namespace.forwardRef(
1563
1755
  }
1564
1756
  ),
1565
1757
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-20", children: /* @__PURE__ */ jsxRuntime.jsx(
1566
- chunkDAPZPT5N_cjs.Select,
1758
+ chunkZBI52NP2_cjs.Select,
1567
1759
  {
1568
1760
  id: "media-editor-default-speed",
1569
1761
  size: "sm",
@@ -1589,7 +1781,7 @@ var MediaEditor = React6__namespace.forwardRef(
1589
1781
  }
1590
1782
  ),
1591
1783
  /* @__PURE__ */ jsxRuntime.jsx(
1592
- chunkA2QVQF54_cjs.Button,
1784
+ chunkM26KJKZG_cjs.Button,
1593
1785
  {
1594
1786
  variant: "ghost",
1595
1787
  size: "sm",
@@ -1599,25 +1791,42 @@ var MediaEditor = React6__namespace.forwardRef(
1599
1791
  children: "\u2702\uFE0F"
1600
1792
  }
1601
1793
  ),
1602
- undoStack.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
1603
- chunkA2QVQF54_cjs.Button,
1794
+ showUndoRedo && /* @__PURE__ */ jsxRuntime.jsxs(
1795
+ chunkM26KJKZG_cjs.Button,
1604
1796
  {
1605
1797
  variant: "ghost",
1606
1798
  size: "sm",
1607
- onClick: undo,
1608
- "aria-label": `Undo (${undoStack.length} available)`,
1609
- title: "Undo (\u2318Z)",
1799
+ disabled: !canUndoAnything,
1800
+ onClick: undoStack.length > 0 ? undo : onUndoBeyond,
1801
+ "aria-label": undoStack.length > 0 ? `Undo (${undoStack.length} available)` : canUndoBeyond && undoBeyondLabel ? `Undo: ${undoBeyondLabel}` : "Undo",
1802
+ title: undoStack.length > 0 ? `Undo (\u2318Z) \u2014 ${undoStack.length} step${undoStack.length === 1 ? "" : "s"}` : canUndoBeyond ? undoBeyondLabel ? `Undo (\u2318Z) \u2014 back to "${undoBeyondLabel}"` : "Undo (\u2318Z)" : "Nothing to undo",
1610
1803
  children: [
1611
- "Undo (",
1612
- undoStack.length,
1613
- ")"
1804
+ "Undo",
1805
+ undoStack.length > 0 ? ` (${undoStack.length})` : "",
1806
+ " ",
1807
+ /* @__PURE__ */ jsxRuntime.jsx("kbd", { className: "text-[10px] opacity-60", children: "\u2318Z" })
1808
+ ]
1809
+ }
1810
+ ),
1811
+ showUndoRedo && /* @__PURE__ */ jsxRuntime.jsxs(
1812
+ chunkM26KJKZG_cjs.Button,
1813
+ {
1814
+ variant: "ghost",
1815
+ size: "sm",
1816
+ onClick: canRedoWords ? redo : onRedo,
1817
+ disabled: !canRedoAnything,
1818
+ "aria-label": !canRedoWords && canRedo && redoLabel ? `Redo: ${redoLabel}` : "Redo",
1819
+ title: canRedoWords ? "Redo (\u21E7\u2318Z)" : canRedo && redoLabel ? `Redo (\u21E7\u2318Z) \u2014 forward to "${redoLabel}"` : canRedo ? "Redo (\u21E7\u2318Z)" : "Nothing to redo",
1820
+ children: [
1821
+ "Redo ",
1822
+ /* @__PURE__ */ jsxRuntime.jsx("kbd", { className: "text-[10px] opacity-60", children: "\u21E7\u2318Z" })
1614
1823
  ]
1615
1824
  }
1616
1825
  )
1617
1826
  ] }),
1618
1827
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-muted-foreground flex items-center gap-2 text-xs", children: [
1619
1828
  /* @__PURE__ */ jsxRuntime.jsx(
1620
- chunkA2QVQF54_cjs.Button,
1829
+ chunkM26KJKZG_cjs.Button,
1621
1830
  {
1622
1831
  variant: "ghost",
1623
1832
  size: "sm",
@@ -1659,7 +1868,7 @@ var MediaEditor = React6__namespace.forwardRef(
1659
1868
  ] }),
1660
1869
  showEditBar && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-border bg-muted/40 flex shrink-0 items-center gap-1 border-b px-3 py-1", children: [
1661
1870
  /* @__PURE__ */ jsxRuntime.jsxs(
1662
- chunkA2QVQF54_cjs.Button,
1871
+ chunkM26KJKZG_cjs.Button,
1663
1872
  {
1664
1873
  variant: "ghost",
1665
1874
  size: "sm",
@@ -1672,7 +1881,7 @@ var MediaEditor = React6__namespace.forwardRef(
1672
1881
  }
1673
1882
  ),
1674
1883
  /* @__PURE__ */ jsxRuntime.jsxs(
1675
- chunkA2QVQF54_cjs.Button,
1884
+ chunkM26KJKZG_cjs.Button,
1676
1885
  {
1677
1886
  variant: "ghost",
1678
1887
  size: "sm",
@@ -1685,7 +1894,7 @@ var MediaEditor = React6__namespace.forwardRef(
1685
1894
  }
1686
1895
  ),
1687
1896
  /* @__PURE__ */ jsxRuntime.jsxs(
1688
- chunkA2QVQF54_cjs.Button,
1897
+ chunkM26KJKZG_cjs.Button,
1689
1898
  {
1690
1899
  variant: "ghost",
1691
1900
  size: "sm",
@@ -1698,7 +1907,7 @@ var MediaEditor = React6__namespace.forwardRef(
1698
1907
  }
1699
1908
  ),
1700
1909
  /* @__PURE__ */ jsxRuntime.jsxs(
1701
- chunkA2QVQF54_cjs.Button,
1910
+ chunkM26KJKZG_cjs.Button,
1702
1911
  {
1703
1912
  variant: "ghost",
1704
1913
  size: "sm",
@@ -1723,7 +1932,6 @@ var MediaEditor = React6__namespace.forwardRef(
1723
1932
  onFocus: () => setIsFocused(true),
1724
1933
  onBlur: () => setIsFocused(false),
1725
1934
  onMouseUp: handleMouseUp,
1726
- onMouseLeave: handleMouseUp,
1727
1935
  role: "listbox",
1728
1936
  "aria-label": "Transcript words",
1729
1937
  "aria-activedescendant": `word-${cursorIndex}`,
@@ -1787,7 +1995,10 @@ var MediaEditor = React6__namespace.forwardRef(
1787
1995
  currentMarker: speedMenuWordIndex !== null ? getSpeedMarkerAtIndex(speedMenuWordIndex) : void 0,
1788
1996
  defaultSpeed,
1789
1997
  onSetSpeed: (speed) => {
1790
- if (speedMenuWordIndex !== null) {
1998
+ if (speedMenuWordIndex === null) return;
1999
+ if (selection) {
2000
+ setSpeedForRange(selection.start, selection.end, speed);
2001
+ } else {
1791
2002
  toggleSpeedMarker(speedMenuWordIndex, speed);
1792
2003
  }
1793
2004
  },
@@ -1814,5 +2025,5 @@ exports.MediaEditor = MediaEditor;
1814
2025
  exports.SilenceSettingsModal = SilenceSettingsModal;
1815
2026
  exports.SpeedMarkerMenu = SpeedMarkerMenu;
1816
2027
  exports.WordEditorModal = WordEditorModal;
1817
- //# sourceMappingURL=chunk-7VF6WO7H.cjs.map
1818
- //# sourceMappingURL=chunk-7VF6WO7H.cjs.map
2028
+ //# sourceMappingURL=chunk-Q5VBO3I5.cjs.map
2029
+ //# sourceMappingURL=chunk-Q5VBO3I5.cjs.map