@xiping/react-components 1.0.49 → 1.0.51

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 (243) hide show
  1. package/dist/cjs/components/gradient-text/index.js +1 -1
  2. package/dist/cjs/components/message/Message.js +1 -1
  3. package/dist/cjs/components/subtitle-player/CurrentMode.d.ts +20 -0
  4. package/dist/cjs/components/subtitle-player/CurrentMode.js +2 -0
  5. package/dist/cjs/components/subtitle-player/LyricsMode.d.ts +26 -0
  6. package/dist/cjs/components/subtitle-player/LyricsMode.js +2 -0
  7. package/dist/cjs/components/subtitle-player/SubtitlePlayer.d.ts +3 -2
  8. package/dist/cjs/components/subtitle-player/SubtitlePlayer.js +1 -3
  9. package/dist/cjs/components/subtitle-player/utils.d.ts +28 -0
  10. package/dist/cjs/components/subtitle-player/utils.js +1 -0
  11. package/dist/cjs/components/text-animate/TextAnimate.js +1 -1
  12. package/dist/cjs/components/text-type/TextType.js +1 -1
  13. package/dist/cjs/components/txt-reader/TxtReader.js +1 -1
  14. package/dist/cjs/components/txt-reader/index.module.css.js +1 -1
  15. package/dist/cjs/components/variable-proximity/index.js +1 -1
  16. package/dist/cjs/components/video-subtitle-player/VideoSubtitlePlayer.js +1 -1
  17. package/dist/cjs/components/video-subtitle-player/useVideoSubtitleStore.js +1 -1
  18. package/dist/cjs/react-components.css +1 -1
  19. package/dist/es/components/gradient-text/index.js +8 -8
  20. package/dist/es/components/message/Message.js +72 -72
  21. package/dist/es/components/subtitle-player/CurrentMode.d.ts +20 -0
  22. package/dist/es/components/subtitle-player/CurrentMode.js +40 -0
  23. package/dist/es/components/subtitle-player/LyricsMode.d.ts +26 -0
  24. package/dist/es/components/subtitle-player/LyricsMode.js +67 -0
  25. package/dist/es/components/subtitle-player/SubtitlePlayer.d.ts +3 -2
  26. package/dist/es/components/subtitle-player/SubtitlePlayer.js +121 -238
  27. package/dist/es/components/subtitle-player/utils.d.ts +28 -0
  28. package/dist/es/components/subtitle-player/utils.js +72 -0
  29. package/dist/es/components/text-animate/TextAnimate.js +0 -1
  30. package/dist/es/components/text-type/TextType.js +31 -31
  31. package/dist/es/components/txt-reader/TxtReader.js +9 -9
  32. package/dist/es/components/txt-reader/index.module.css.js +7 -8
  33. package/dist/es/components/variable-proximity/index.js +8 -9
  34. package/dist/es/components/video-subtitle-player/VideoSubtitlePlayer.js +64 -64
  35. package/dist/es/components/video-subtitle-player/useVideoSubtitleStore.js +1 -1
  36. package/dist/es/react-components.css +1 -1
  37. package/package.json +14 -14
  38. package/dist/cjs/_virtual/_commonjsHelpers.js +0 -1
  39. package/dist/cjs/_virtual/delegate.js +0 -1
  40. package/dist/cjs/_virtual/download.js +0 -1
  41. package/dist/cjs/_virtual/download2.js +0 -1
  42. package/dist/cjs/_virtual/index.js +0 -1
  43. package/dist/cjs/_virtual/index2.js +0 -1
  44. package/dist/cjs/node_modules/.pnpm/delegate@3.2.0/node_modules/delegate/src/closest.js +0 -1
  45. package/dist/cjs/node_modules/.pnpm/delegate@3.2.0/node_modules/delegate/src/delegate.js +0 -1
  46. package/dist/cjs/node_modules/.pnpm/downloadjs@1.4.7/node_modules/downloadjs/download.js +0 -3
  47. package/dist/cjs/node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.js +0 -1
  48. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/_virtual/_rollupPluginBabelHelpers.js +0 -2
  49. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/constant.js +0 -1
  50. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/defaultConfig.js +0 -1
  51. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/error.js +0 -1
  52. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/events.js +0 -1
  53. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/index.umd.js +0 -1
  54. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/instManager.js +0 -1
  55. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/lang/en.js +0 -1
  56. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/lang/i18n.js +0 -1
  57. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/lang/zh-cn.js +0 -1
  58. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/mediaProxy.js +0 -1
  59. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/player.js +0 -1
  60. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugin/basePlugin.js +0 -1
  61. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugin/hooksDescriptor.js +0 -1
  62. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugin/plugin.js +0 -1
  63. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugin/pluginsManager.js +0 -1
  64. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugin/preset.js +0 -1
  65. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugin/resizeObserver.js +0 -1
  66. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/back.js +0 -5
  67. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/download.js +0 -15
  68. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/exitCssFull.js +0 -4
  69. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/exitFull.js +0 -4
  70. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/loading.js +0 -4
  71. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/pause.js +0 -4
  72. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/pipIcon.js +0 -5
  73. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/pipIconExit.js +0 -8
  74. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/play.js +0 -4
  75. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/playNext.js +0 -4
  76. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/replay.js +0 -4
  77. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/requestCssFull.js +0 -4
  78. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/requestFull.js +0 -4
  79. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/rotate.js +0 -12
  80. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/seekicon.js +0 -7
  81. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/volumeLarge.js +0 -5
  82. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/volumeMuted.js +0 -5
  83. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/volumeSmall.js +0 -5
  84. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/common/iconPlugin.js +0 -1
  85. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/common/iconTools.js +0 -3
  86. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/common/optionList.js +0 -1
  87. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/common/optionsIcon.js +0 -4
  88. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/common/thumbnail.js +0 -1
  89. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/controls/index.js +0 -9
  90. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/cssFullScreen/index.js +0 -5
  91. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/definition/index.js +0 -1
  92. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/download/index.js +0 -5
  93. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/dynamicBg/index.js +0 -2
  94. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/enter/index.js +0 -1
  95. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/error/index.js +0 -6
  96. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/fpsDetect/index.js +0 -1
  97. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/fullscreen/backicon.js +0 -2
  98. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/fullscreen/index.js +0 -5
  99. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/gapJump/index.js +0 -1
  100. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/keyboard/index.js +0 -1
  101. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/loading/index.js +0 -4
  102. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/logger/index.js +0 -1
  103. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/miniScreen/index.js +0 -13
  104. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/miniScreen/miniScreenIcon.js +0 -4
  105. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/mobile/index.js +0 -19
  106. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/mobile/touch.js +0 -1
  107. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/pc/index.js +0 -1
  108. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/pip/index.js +0 -8
  109. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/play/index.js +0 -5
  110. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/playNext/index.js +0 -7
  111. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/playbackRate/index.js +0 -1
  112. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/poster/index.js +0 -2
  113. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/progress/index.js +0 -7
  114. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/progress/innerList.js +0 -1
  115. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/progress/miniProgress.js +0 -4
  116. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/progressPreview/dotsApi.js +0 -1
  117. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/progressPreview/index.js +0 -11
  118. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/prompt/index.js +0 -3
  119. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/replay/index.js +0 -3
  120. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/rotate/index.js +0 -6
  121. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/screenShot/index.js +0 -6
  122. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/start/index.js +0 -4
  123. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/stats/index.js +0 -1
  124. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/testspeed/index.js +0 -1
  125. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/time/index.js +0 -6
  126. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/time/timesegments.js +0 -1
  127. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/volume/index.js +0 -11
  128. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/waitingTimeoutJump/index.js +0 -1
  129. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/presets/default.js +0 -1
  130. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/state.js +0 -1
  131. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/stateClassMap.js +0 -1
  132. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/utils/database.js +0 -1
  133. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/utils/debug.js +0 -1
  134. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/utils/draggabilly.js +0 -1
  135. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/utils/sniffer.js +0 -1
  136. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/utils/util.js +0 -1
  137. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/utils/xgplayerTimeRange.js +0 -1
  138. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/version.js +0 -1
  139. package/dist/cjs/node_modules/.pnpm/zustand@5.0.9_@types_react@19.2.7_react@19.2.3_use-sync-external-store@1.6.0_react@19.2.3_/node_modules/zustand/esm/react.js +0 -1
  140. package/dist/cjs/node_modules/.pnpm/zustand@5.0.9_@types_react@19.2.7_react@19.2.3_use-sync-external-store@1.6.0_react@19.2.3_/node_modules/zustand/esm/vanilla.js +0 -1
  141. package/dist/es/_virtual/_commonjsHelpers.js +0 -6
  142. package/dist/es/_virtual/delegate.js +0 -7
  143. package/dist/es/_virtual/download.js +0 -7
  144. package/dist/es/_virtual/download2.js +0 -4
  145. package/dist/es/_virtual/index.js +0 -8
  146. package/dist/es/_virtual/index2.js +0 -4
  147. package/dist/es/node_modules/.pnpm/delegate@3.2.0/node_modules/delegate/src/closest.js +0 -21
  148. package/dist/es/node_modules/.pnpm/delegate@3.2.0/node_modules/delegate/src/delegate.js +0 -29
  149. package/dist/es/node_modules/.pnpm/downloadjs@1.4.7/node_modules/downloadjs/download.js +0 -77
  150. package/dist/es/node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.js +0 -111
  151. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/_virtual/_rollupPluginBabelHelpers.js +0 -197
  152. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/constant.js +0 -7
  153. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/defaultConfig.js +0 -87
  154. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/error.js +0 -64
  155. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/events.js +0 -67
  156. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/index.umd.js +0 -45
  157. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/instManager.js +0 -101
  158. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/lang/en.js +0 -79
  159. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/lang/i18n.js +0 -75
  160. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/lang/zh-cn.js +0 -79
  161. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/mediaProxy.js +0 -466
  162. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/player.js +0 -1240
  163. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugin/basePlugin.js +0 -207
  164. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugin/hooksDescriptor.js +0 -130
  165. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugin/plugin.js +0 -366
  166. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugin/pluginsManager.js +0 -204
  167. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugin/preset.js +0 -14
  168. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugin/resizeObserver.js +0 -81
  169. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/back.js +0 -10
  170. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/download.js +0 -20
  171. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/exitCssFull.js +0 -9
  172. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/exitFull.js +0 -9
  173. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/loading.js +0 -9
  174. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/pause.js +0 -9
  175. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/pipIcon.js +0 -10
  176. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/pipIconExit.js +0 -13
  177. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/play.js +0 -9
  178. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/playNext.js +0 -9
  179. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/replay.js +0 -9
  180. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/requestCssFull.js +0 -9
  181. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/requestFull.js +0 -9
  182. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/rotate.js +0 -17
  183. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/seekicon.js +0 -12
  184. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/volumeLarge.js +0 -10
  185. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/volumeMuted.js +0 -10
  186. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/volumeSmall.js +0 -10
  187. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/common/iconPlugin.js +0 -35
  188. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/common/iconTools.js +0 -12
  189. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/common/optionList.js +0 -79
  190. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/common/optionsIcon.js +0 -193
  191. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/common/thumbnail.js +0 -141
  192. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/controls/index.js +0 -171
  193. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/cssFullScreen/index.js +0 -105
  194. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/definition/index.js +0 -110
  195. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/download/index.js +0 -83
  196. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/dynamicBg/index.js +0 -232
  197. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/enter/index.js +0 -42
  198. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/error/index.js +0 -68
  199. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/fpsDetect/index.js +0 -116
  200. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/fullscreen/backicon.js +0 -68
  201. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/fullscreen/index.js +0 -150
  202. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/gapJump/index.js +0 -96
  203. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/keyboard/index.js +0 -299
  204. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/loading/index.js +0 -46
  205. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/logger/index.js +0 -171
  206. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/miniScreen/index.js +0 -169
  207. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/miniScreen/miniScreenIcon.js +0 -55
  208. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/mobile/index.js +0 -448
  209. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/mobile/touch.js +0 -138
  210. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/pc/index.js +0 -122
  211. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/pip/index.js +0 -216
  212. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/play/index.js +0 -102
  213. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/playNext/index.js +0 -78
  214. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/playbackRate/index.js +0 -100
  215. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/poster/index.js +0 -119
  216. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/progress/index.js +0 -431
  217. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/progress/innerList.js +0 -215
  218. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/progress/miniProgress.js +0 -93
  219. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/progressPreview/dotsApi.js +0 -175
  220. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/progressPreview/index.js +0 -292
  221. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/prompt/index.js +0 -86
  222. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/replay/index.js +0 -92
  223. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/rotate/index.js +0 -106
  224. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/screenShot/index.js +0 -134
  225. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/start/index.js +0 -222
  226. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/stats/index.js +0 -152
  227. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/testspeed/index.js +0 -134
  228. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/time/index.js +0 -164
  229. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/time/timesegments.js +0 -146
  230. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/volume/index.js +0 -206
  231. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/waitingTimeoutJump/index.js +0 -53
  232. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/presets/default.js +0 -61
  233. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/state.js +0 -13
  234. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/stateClassMap.js +0 -34
  235. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/utils/database.js +0 -83
  236. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/utils/debug.js +0 -34
  237. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/utils/draggabilly.js +0 -271
  238. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/utils/sniffer.js +0 -111
  239. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/utils/util.js +0 -517
  240. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/utils/xgplayerTimeRange.js +0 -25
  241. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/version.js +0 -4
  242. package/dist/es/node_modules/.pnpm/zustand@5.0.9_@types_react@19.2.7_react@19.2.3_use-sync-external-store@1.6.0_react@19.2.3_/node_modules/zustand/esm/react.js +0 -19
  243. package/dist/es/node_modules/.pnpm/zustand@5.0.9_@types_react@19.2.7_react@19.2.3_use-sync-external-store@1.6.0_react@19.2.3_/node_modules/zustand/esm/vanilla.js +0 -14
@@ -1,301 +1,184 @@
1
- import { jsx as p, jsxs as $ } from "react/jsx-runtime";
2
- import { useMemo as x, useRef as D, useState as G, useEffect as O, useCallback as R } from "react";
3
- import { parseSRT as I, parseVTT as A } from "../../packages/subtitle/lib/src/parser.js";
4
- import { srtToJson as U, vttToJson as X } from "../../packages/subtitle/lib/src/json-converter.js";
1
+ import { jsx as d, jsxs as W } from "react/jsx-runtime";
2
+ import { useMemo as u, useRef as O, useState as j, useEffect as _, useCallback as T } from "react";
3
+ import { parseSRT as S, parseVTT as v } from "../../packages/subtitle/lib/src/parser.js";
4
+ import { srtToJson as k, vttToJson as z } from "../../packages/subtitle/lib/src/json-converter.js";
5
+ import C from "clsx";
6
+ import { CurrentMode as D } from "./CurrentMode.js";
7
+ import { LyricsMode as F } from "./LyricsMode.js";
8
+ import { getCurrentSubtitleEntry as G, timeStringToSeconds as A } from "./utils.js";
5
9
  /* empty css */
6
- function E(l) {
7
- const c = l.replace(",", ".").split(":");
8
- if (c.length !== 3)
9
- return 0;
10
- const h = parseInt(c[0], 10) || 0, g = parseInt(c[1], 10) || 0, i = parseFloat(c[2]) || 0;
11
- return h * 3600 + g * 60 + i;
12
- }
13
- function Y(l) {
14
- const a = Math.floor(l / 3600), c = Math.floor(l % 3600 / 60), h = Math.floor(l % 60);
15
- return a > 0 ? `${a.toString().padStart(2, "0")}:${c.toString().padStart(2, "0")}:${h.toString().padStart(2, "0")}` : `${c.toString().padStart(2, "0")}:${h.toString().padStart(2, "0")}`;
16
- }
17
- function Z(l, a) {
18
- for (const c of l) {
19
- const h = E(c.startTime), g = E(c.endTime);
20
- if (a >= h && a <= g)
21
- return c;
22
- }
23
- return null;
24
- }
25
- function q(l, a, c, h, g) {
26
- if (!a || a.length === 0)
27
- return { nodes: l, nextWordIndex: c };
28
- const i = [];
29
- let d = 0;
30
- for (let u = c; u < a.length; u++) {
31
- const m = a[u], f = l.substring(d).indexOf(m);
32
- if (f === -1)
33
- return {
34
- nodes: i.length > 0 ? i : l,
35
- nextWordIndex: u
36
- };
37
- const b = d + f;
38
- if (b > d) {
39
- const S = l.substring(d, b);
40
- S && i.push(
41
- /* @__PURE__ */ p("span", { className: "subtitle-word-before", children: S }, `before-${h}-${u}`)
42
- );
43
- }
44
- const y = g?.(m, u, h);
45
- if (i.push(
46
- /* @__PURE__ */ p(
47
- "span",
48
- {
49
- className: "subtitle-word",
50
- "data-word": m,
51
- onMouseEnter: y?.onMouseEnter,
52
- onMouseLeave: y?.onMouseLeave,
53
- children: m
54
- },
55
- `word-${h}-${u}`
56
- )
57
- ), d = b + m.length, d >= l.length)
58
- return { nodes: i, nextWordIndex: u + 1 };
59
- }
60
- if (d < l.length) {
61
- const u = l.substring(d);
62
- u && i.push(
63
- /* @__PURE__ */ p("span", { className: "subtitle-word-after", children: u }, `after-${h}`)
64
- );
65
- }
66
- return {
67
- nodes: i.length > 0 ? i : l,
68
- nextWordIndex: a.length
69
- };
70
- }
71
- const st = ({
72
- subtitles: l,
73
- currentTime: a,
74
- mode: c = "current",
75
- className: h = "",
76
- style: g,
77
- onWordHoverChange: i,
78
- renderWordOverlay: d
10
+ const H = ({
11
+ subtitles: i,
12
+ currentTime: m,
13
+ mode: f = "current",
14
+ className: B = "",
15
+ style: J,
16
+ onWordHoverChange: a,
17
+ renderWordOverlay: h
79
18
  }) => {
80
- const u = x(
81
- () => Array.isArray(l) ? l : [l],
82
- [l]
83
- ), m = D(null), N = D(null), [f, b] = G(null), [y, S] = G([]);
84
- O(() => {
85
- let n = !0;
19
+ const l = u(
20
+ () => Array.isArray(i) ? i : [i],
21
+ [i]
22
+ ), y = O(null), [c, x] = j(null), [g, E] = j([]);
23
+ _(() => {
24
+ let r = !0;
86
25
  async function s() {
87
26
  try {
88
- const e = await Promise.all(
89
- u.map(async (t) => {
27
+ const t = await Promise.all(
28
+ l.map(async (e) => {
90
29
  try {
91
- const r = t.language || "zh", o = t.type === "srt" ? await U(t.content, r) : await X(t.content, r);
30
+ const n = e.language || "zh", o = e.type === "srt" ? await k(e.content, n) : await z(e.content, n);
92
31
  return {
93
32
  entries: JSON.parse(o),
94
- label: t.label
33
+ label: e.label
95
34
  };
96
- } catch (r) {
97
- return console.error("字幕解析失败:", r), {
98
- entries: t.type === "srt" ? I(t.content) : A(t.content),
99
- label: t.label
35
+ } catch (n) {
36
+ return console.error("字幕解析失败:", n), {
37
+ entries: e.type === "srt" ? S(e.content) : v(e.content),
38
+ label: e.label
100
39
  };
101
40
  }
102
41
  })
103
42
  );
104
- n && S(e);
105
- } catch (e) {
106
- if (console.error("加载字幕失败:", e), n) {
107
- const t = u.map((r) => {
43
+ r && E(t);
44
+ } catch (t) {
45
+ if (console.error("加载字幕失败:", t), r) {
46
+ const e = l.map((n) => {
108
47
  try {
109
48
  return {
110
- entries: r.type === "srt" ? I(r.content) : A(r.content),
111
- label: r.label
49
+ entries: n.type === "srt" ? S(n.content) : v(n.content),
50
+ label: n.label
112
51
  };
113
52
  } catch (o) {
114
53
  return console.error("字幕解析失败:", o), {
115
54
  entries: [],
116
- label: r.label
55
+ label: n.label
117
56
  };
118
57
  }
119
58
  });
120
- S(t);
59
+ E(e);
121
60
  }
122
61
  }
123
62
  }
124
63
  return s(), () => {
125
- n = !1;
64
+ r = !1;
126
65
  };
127
- }, [u]);
128
- const w = x(() => y.length > 0 ? y : u.map((n) => {
66
+ }, [l]);
67
+ const p = u(() => g.length > 0 ? g : l.map((r) => {
129
68
  try {
130
69
  return {
131
- entries: n.type === "srt" ? I(n.content) : A(n.content),
132
- label: n.label
70
+ entries: r.type === "srt" ? S(r.content) : v(r.content),
71
+ label: r.label
133
72
  };
134
73
  } catch (s) {
135
74
  return console.error("字幕解析失败:", s), {
136
75
  entries: [],
137
- label: n.label
76
+ label: r.label
138
77
  };
139
78
  }
140
- }), [y, u]), L = x(() => w.map(({ entries: n, label: s }) => ({
141
- entry: Z(n, a),
79
+ }), [g, l]), L = u(() => p.map(({ entries: r, label: s }) => ({
80
+ entry: G(r, m),
142
81
  label: s,
143
- entries: n
82
+ entries: r
144
83
  // 保留所有条目用于歌词模式
145
- })), [w, a]), H = x(() => {
146
- const n = [];
147
- w.forEach(({ entries: t, label: r }) => {
148
- t.forEach((o) => {
149
- n.push({
84
+ })), [p, m]), P = u(() => {
85
+ const r = [];
86
+ p.forEach(({ entries: e, label: n }) => {
87
+ e.forEach((o) => {
88
+ r.push({
150
89
  entry: o,
151
- label: r,
152
- startTime: E(o.startTime),
153
- endTime: E(o.endTime)
90
+ label: n,
91
+ startTime: A(o.startTime),
92
+ endTime: A(o.endTime)
154
93
  });
155
94
  });
156
- }), n.sort((t, r) => t.startTime - r.startTime);
95
+ }), r.sort((e, n) => e.startTime - n.startTime);
157
96
  const s = [];
158
- let e = [];
159
- for (const t of n)
160
- if (e.length === 0)
161
- e.push(t);
97
+ let t = [];
98
+ for (const e of r)
99
+ if (t.length === 0)
100
+ t.push(e);
162
101
  else {
163
- const r = e[e.length - 1];
164
- t.startTime <= r.endTime ? e.push(t) : (s.push(e), e = [t]);
102
+ const n = t[t.length - 1];
103
+ e.startTime <= n.endTime ? t.push(e) : (s.push(t), t = [e]);
165
104
  }
166
- return e.length > 0 && s.push(e), s;
167
- }, [w]);
168
- O(() => {
169
- if (c === "lyrics" && N.current && m.current) {
170
- const n = m.current, s = N.current, e = s.offsetTop, t = n.clientHeight, r = s.clientHeight, o = e - t / 2 + r / 2;
171
- n.scrollTo({
172
- top: o,
173
- behavior: "smooth"
174
- });
175
- }
176
- }, [c, a]);
177
- const P = R(
178
- (n, s) => {
179
- const e = n.currentTarget.getBoundingClientRect(), t = m.current?.getBoundingClientRect(), r = t !== void 0 ? new DOMRect(
180
- e.left - t.left,
181
- e.top - t.top,
182
- e.width,
183
- e.height
184
- ) : e, o = {
105
+ return t.length > 0 && s.push(t), s;
106
+ }, [p]), R = T(
107
+ (r, s) => {
108
+ const t = r.currentTarget.getBoundingClientRect(), e = y.current?.getBoundingClientRect(), n = e !== void 0 ? new DOMRect(
109
+ t.left - e.left,
110
+ t.top - e.top,
111
+ t.width,
112
+ t.height
113
+ ) : t, o = {
185
114
  ...s,
186
- rect: r
115
+ rect: n,
116
+ element: r.currentTarget
187
117
  };
188
- b(o), i?.(o);
118
+ x(o), a?.(o);
189
119
  },
190
- [i]
191
- ), j = R(() => {
192
- b(null), i?.(null);
193
- }, [i]), z = R(
194
- (n, s) => (e, t, r) => ({
195
- onMouseEnter: (o) => P(o, {
196
- word: e,
197
- wordIndex: t,
198
- lineIndex: r,
199
- entry: n,
120
+ [a]
121
+ ), w = T(() => {
122
+ x(null), a?.(null);
123
+ }, [a]), M = T(
124
+ (r, s) => (t, e, n) => ({
125
+ onMouseEnter: (o) => R(o, {
126
+ word: t,
127
+ wordIndex: e,
128
+ lineIndex: n,
129
+ entry: r,
200
130
  label: s
201
131
  }),
202
- onMouseLeave: j
132
+ onMouseLeave: w
203
133
  }),
204
- [P, j]
205
- ), B = d && f ? /* @__PURE__ */ p(
134
+ [R, w]
135
+ ), b = h && c ? /* @__PURE__ */ d(
206
136
  "div",
207
137
  {
208
- className: "subtitle-player-hover-overlay",
138
+ className: "xiping-subtitle-player__hover-overlay",
209
139
  style: {
210
- left: f.rect.x + f.rect.width / 2,
211
- top: f.rect.y + f.rect.height
140
+ left: c.rect.x + c.rect.width / 2,
141
+ top: c.rect.y + c.rect.height
212
142
  },
213
- children: d(f)
143
+ children: h(c)
214
144
  }
215
- ) : null;
216
- return c === "current" ? L.some(({ entry: s }) => s !== null) ? /* @__PURE__ */ $(
145
+ ) : null, N = !!(h || a);
146
+ return /* @__PURE__ */ W(
217
147
  "div",
218
148
  {
219
- ref: m,
220
- className: `subtitle-player subtitle-player--current ${h}`,
221
- style: g,
149
+ ref: y,
150
+ className: C(
151
+ "xiping-subtitle-player",
152
+ f === "lyrics" ? "xiping-subtitle-player--lyrics" : "xiping-subtitle-player--current",
153
+ B
154
+ ),
155
+ style: J,
222
156
  children: [
223
- L.map(({ entry: s, label: e }, t) => s ? /* @__PURE__ */ $(
224
- "div",
157
+ f === "current" && /* @__PURE__ */ d(
158
+ D,
225
159
  {
226
- className: "subtitle-player-item",
227
- "data-label": e || void 0,
228
- children: [
229
- e && /* @__PURE__ */ p("span", { className: "subtitle-player-label", children: e }),
230
- /* @__PURE__ */ p("div", { className: "subtitle-player-text", children: (() => {
231
- let r = 0;
232
- return s.text.split(`
233
- `).map((o, T) => {
234
- if (!s.words || s.words.length === 0)
235
- return /* @__PURE__ */ p("div", { className: "subtitle-player-line", children: o }, T);
236
- const v = q(
237
- o,
238
- s.words,
239
- r,
240
- T,
241
- d || i ? z(s, e) : void 0
242
- );
243
- return r = v.nextWordIndex, /* @__PURE__ */ p("div", { className: "subtitle-player-line", children: v.nodes }, T);
244
- });
245
- })() })
246
- ]
247
- },
248
- t
249
- ) : null),
250
- (d || i) && /* @__PURE__ */ p("div", { className: "subtitle-player-hover-layer", children: B })
251
- ]
252
- }
253
- ) : null : /* @__PURE__ */ $(
254
- "div",
255
- {
256
- ref: m,
257
- className: `subtitle-player subtitle-player--lyrics ${h}`,
258
- style: g,
259
- children: [
260
- H.map((n, s) => {
261
- const e = n[0]?.startTime ?? 0, t = Y(e);
262
- return /* @__PURE__ */ p("div", { className: "subtitle-player-group", children: n.map(({ entry: r, label: o, startTime: T, endTime: v }, F) => {
263
- const J = a >= T && a <= v, K = a > v, Q = F === 0;
264
- let V = 0;
265
- return /* @__PURE__ */ $(
266
- "div",
267
- {
268
- ref: J ? N : null,
269
- className: `subtitle-player-item ${J ? "subtitle-player-item--active" : ""} ${K ? "subtitle-player-item--past" : ""}`,
270
- "data-label": o || void 0,
271
- children: [
272
- Q && /* @__PURE__ */ p("span", { className: "subtitle-player-time", children: t }),
273
- o && /* @__PURE__ */ p("span", { className: "subtitle-player-label", children: o }),
274
- /* @__PURE__ */ p("div", { className: "subtitle-player-text", children: r.text.split(`
275
- `).map((W, M) => {
276
- if (!r.words || r.words.length === 0)
277
- return /* @__PURE__ */ p("div", { className: "subtitle-player-line", children: W }, M);
278
- const k = q(
279
- W,
280
- r.words,
281
- V,
282
- M,
283
- d || i ? z(r, o) : void 0
284
- );
285
- return V = k.nextWordIndex, /* @__PURE__ */ p("div", { className: "subtitle-player-line", children: k.nodes }, M);
286
- }) })
287
- ]
288
- },
289
- `${s}-${F}`
290
- );
291
- }) }, s);
292
- }),
293
- (d || i) && /* @__PURE__ */ p("div", { className: "subtitle-player-hover-layer", children: B })
160
+ currentEntries: L,
161
+ wordHoverFactory: M,
162
+ enableWordHover: N,
163
+ overlayNode: b
164
+ }
165
+ ),
166
+ f === "lyrics" && /* @__PURE__ */ d(
167
+ F,
168
+ {
169
+ groupedEntriesByTime: P,
170
+ currentTime: m,
171
+ wordHoverFactory: M,
172
+ enableWordHover: N,
173
+ overlayNode: b,
174
+ containerRef: y
175
+ }
176
+ )
294
177
  ]
295
178
  }
296
179
  );
297
180
  };
298
181
  export {
299
- st as SubtitlePlayer,
300
- st as default
182
+ H as SubtitlePlayer,
183
+ H as default
301
184
  };
@@ -0,0 +1,28 @@
1
+ import { default as React } from 'react';
2
+ import { SubtitleEntry } from '@xiping/subtitle';
3
+ /**
4
+ * 将时间字符串(HH:MM:SS,mmm 或 HH:MM:SS.mmm)转换为秒数
5
+ */
6
+ export declare function timeStringToSeconds(timeString: string): number;
7
+ /**
8
+ * 将秒数转换为时间字符串(MM:SS 或 HH:MM:SS)
9
+ */
10
+ export declare function secondsToTimeString(seconds: number): string;
11
+ /**
12
+ * 根据当前时间获取应该显示的字幕条目
13
+ */
14
+ export declare function getCurrentSubtitleEntry(entries: SubtitleEntry[], currentTime: number): SubtitleEntry | null;
15
+ /**
16
+ * 单词悬停处理器工厂函数类型
17
+ */
18
+ export type WordHoverHandlerFactory = (word: string, wordIndex: number, lineIndex: number) => {
19
+ onMouseEnter: React.MouseEventHandler<HTMLSpanElement>;
20
+ onMouseLeave: React.MouseEventHandler<HTMLSpanElement>;
21
+ } | undefined;
22
+ /**
23
+ * 将文本按照分词结果分割并渲染,并返回消耗到的分词下标
24
+ */
25
+ export declare function renderTextWithWords(text: string, words: string[] | undefined, startWordIndex: number, lineIndex: number, createHoverHandlers?: WordHoverHandlerFactory): {
26
+ nodes: React.ReactNode;
27
+ nextWordIndex: number;
28
+ };
@@ -0,0 +1,72 @@
1
+ import { jsx as d } from "react/jsx-runtime";
2
+ function h(t) {
3
+ const n = t.replace(",", ".").split(":");
4
+ if (n.length !== 3)
5
+ return 0;
6
+ const r = parseInt(n[0], 10) || 0, a = parseInt(n[1], 10) || 0, s = parseFloat(n[2]) || 0;
7
+ return r * 3600 + a * 60 + s;
8
+ }
9
+ function S(t) {
10
+ const e = Math.floor(t / 3600), n = Math.floor(t % 3600 / 60), r = Math.floor(t % 60);
11
+ return e > 0 ? `${e.toString().padStart(2, "0")}:${n.toString().padStart(2, "0")}:${r.toString().padStart(2, "0")}` : `${n.toString().padStart(2, "0")}:${r.toString().padStart(2, "0")}`;
12
+ }
13
+ function x(t, e) {
14
+ for (const n of t) {
15
+ const r = h(n.startTime), a = h(n.endTime);
16
+ if (e >= r && e <= a)
17
+ return n;
18
+ }
19
+ return null;
20
+ }
21
+ function T(t, e, n, r, a) {
22
+ if (!e || e.length === 0)
23
+ return { nodes: t, nextWordIndex: n };
24
+ const s = [];
25
+ let i = 0;
26
+ for (let o = n; o < e.length; o++) {
27
+ const c = e[o], l = t.substring(i).indexOf(c);
28
+ if (l === -1)
29
+ return {
30
+ nodes: s.length > 0 ? s : t,
31
+ nextWordIndex: o
32
+ };
33
+ const u = i + l;
34
+ if (u > i) {
35
+ const g = t.substring(i, u);
36
+ g && s.push(
37
+ /* @__PURE__ */ d("span", { className: "xiping-subtitle-word-before", children: g }, `before-${r}-${o}`)
38
+ );
39
+ }
40
+ const f = a?.(c, o, r);
41
+ if (s.push(
42
+ /* @__PURE__ */ d(
43
+ "span",
44
+ {
45
+ className: "xiping-subtitle-word",
46
+ "data-word": c,
47
+ onMouseEnter: f?.onMouseEnter,
48
+ onMouseLeave: f?.onMouseLeave,
49
+ children: c
50
+ },
51
+ `word-${r}-${o}`
52
+ )
53
+ ), i = u + c.length, i >= t.length)
54
+ return { nodes: s, nextWordIndex: o + 1 };
55
+ }
56
+ if (i < t.length) {
57
+ const o = t.substring(i);
58
+ o && s.push(
59
+ /* @__PURE__ */ d("span", { className: "xiping-subtitle-word-after", children: o }, `after-${r}`)
60
+ );
61
+ }
62
+ return {
63
+ nodes: s.length > 0 ? s : t,
64
+ nextWordIndex: e.length
65
+ };
66
+ }
67
+ export {
68
+ x as getCurrentSubtitleEntry,
69
+ T as renderTextWithWords,
70
+ S as secondsToTimeString,
71
+ h as timeStringToSeconds
72
+ };
@@ -273,7 +273,6 @@ function U({
273
273
  e = i.split(`
274
274
  `);
275
275
  break;
276
- case "text":
277
276
  default:
278
277
  e = [i];
279
278
  break;
@@ -1,14 +1,14 @@
1
1
  "use client";
2
2
  import { jsx as b } from "react/jsx-runtime";
3
- import { useState as u, useRef as k, useMemo as U, useCallback as V, useEffect as p, createElement as W } from "react";
3
+ import { useState as o, useRef as k, useMemo as U, useCallback as V, useEffect as I, createElement as W } from "react";
4
4
  import { gsap as q } from "gsap";
5
5
  /* empty css */
6
6
  const D = ({
7
- text: i,
7
+ text: u,
8
8
  as: v = "div",
9
9
  typingSpeed: f = 50,
10
10
  initialDelay: _ = 0,
11
- pauseDuration: x = 2e3,
11
+ pauseDuration: h = 2e3,
12
12
  deletingSpeed: A = 30,
13
13
  loop: R = !0,
14
14
  className: w = "",
@@ -17,33 +17,33 @@ const D = ({
17
17
  cursorCharacter: F = "|",
18
18
  cursorClassName: G = "",
19
19
  cursorBlinkDuration: E = 0.5,
20
- textColors: d = [],
20
+ textColors: g = [],
21
21
  variableSpeed: c,
22
- onSentenceComplete: y,
23
- startOnVisible: g = !1,
22
+ onSentenceComplete: d,
23
+ startOnVisible: y = !1,
24
24
  reverseMode: N = !1,
25
25
  ...J
26
26
  }) => {
27
- const [l, $] = u(""), [o, j] = u(0), [a, C] = u(!1), [t, K] = u(0), [H, L] = u(!g), m = k(null), I = k(null), r = U(() => Array.isArray(i) ? i : [i], [i]), O = V(() => {
27
+ const [l, $] = o(""), [i, j] = o(0), [a, C] = o(!1), [t, K] = o(0), [H, L] = o(!y), m = k(null), p = k(null), r = U(() => Array.isArray(u) ? u : [u], [u]), O = V(() => {
28
28
  if (!c) return f;
29
29
  const { min: e, max: n } = c;
30
30
  return Math.random() * (n - e) + e;
31
31
  }, [c, f]), P = () => {
32
- if (d.length !== 0)
33
- return d[t % d.length];
32
+ if (g.length !== 0)
33
+ return g[t % g.length];
34
34
  };
35
- p(() => {
36
- if (!g || !I.current) return;
35
+ I(() => {
36
+ if (!y || !p.current) return;
37
37
  const e = new IntersectionObserver(
38
38
  (n) => {
39
- n.forEach((h) => {
40
- h.isIntersecting && L(!0);
39
+ n.forEach((x) => {
40
+ x.isIntersecting && L(!0);
41
41
  });
42
42
  },
43
43
  { threshold: 0.1 }
44
44
  );
45
- return e.observe(I.current), () => e.disconnect();
46
- }, [g]), p(() => {
45
+ return e.observe(p.current), () => e.disconnect();
46
+ }, [y]), I(() => {
47
47
  T && m.current && (q.set(m.current, { opacity: 1 }), q.to(m.current, {
48
48
  opacity: 0,
49
49
  duration: E,
@@ -51,38 +51,38 @@ const D = ({
51
51
  yoyo: !0,
52
52
  ease: "power2.inOut"
53
53
  }));
54
- }, [T, E]), p(() => {
54
+ }, [T, E]), I(() => {
55
55
  if (!H) return;
56
56
  let e;
57
- const n = r[t], h = N ? n.split("").reverse().join("") : n, M = () => {
57
+ const n = r[t], x = N ? n.split("").reverse().join("") : n, M = () => {
58
58
  if (a)
59
59
  if (l === "") {
60
60
  if (C(!1), t === r.length - 1 && !R)
61
61
  return;
62
- y && y(r[t], t), K((s) => (s + 1) % r.length), j(0), e = setTimeout(() => {
63
- }, x);
62
+ d && d(r[t], t), K((s) => (s + 1) % r.length), j(0), e = setTimeout(() => {
63
+ }, h);
64
64
  } else
65
65
  e = setTimeout(() => {
66
66
  $((s) => s.slice(0, -1));
67
67
  }, A);
68
68
  else
69
- o < h.length ? e = setTimeout(
69
+ i < x.length ? e = setTimeout(
70
70
  () => {
71
- $((s) => s + h[o]), j((s) => s + 1);
71
+ $((s) => s + x[i]), j((s) => s + 1);
72
72
  },
73
73
  c ? O() : f
74
74
  ) : r.length > 1 && (e = setTimeout(() => {
75
75
  C(!0);
76
- }, x));
76
+ }, h));
77
77
  };
78
- return o === 0 && !a && l === "" ? e = setTimeout(M, _) : M(), () => clearTimeout(e);
78
+ return i === 0 && !a && l === "" ? e = setTimeout(M, _) : M(), () => clearTimeout(e);
79
79
  }, [
80
- o,
80
+ i,
81
81
  l,
82
82
  a,
83
83
  f,
84
84
  A,
85
- x,
85
+ h,
86
86
  r,
87
87
  t,
88
88
  R,
@@ -90,22 +90,22 @@ const D = ({
90
90
  H,
91
91
  N,
92
92
  c,
93
- y
93
+ d
94
94
  ]);
95
- const Q = z && (o < r[t].length || a);
95
+ const Q = z && (i < r[t].length || a);
96
96
  return W(
97
97
  v,
98
98
  {
99
- ref: I,
100
- className: `text-type ${w}`,
99
+ ref: p,
100
+ className: `xiping-text-type ${w}`,
101
101
  ...J
102
102
  },
103
- /* @__PURE__ */ b("span", { className: "text-type__content", style: { color: P() || "inherit" }, children: l }),
103
+ /* @__PURE__ */ b("span", { className: "xiping-text-type__content", style: { color: P() || "inherit" }, children: l }),
104
104
  T && /* @__PURE__ */ b(
105
105
  "span",
106
106
  {
107
107
  ref: m,
108
- className: `text-type__cursor ${G} ${Q ? "text-type__cursor--hidden" : ""}`,
108
+ className: `xiping-text-type__cursor ${G} ${Q ? "xiping-text-type__cursor--hidden" : ""}`,
109
109
  children: F
110
110
  }
111
111
  )