@xiping/react-components 1.0.43 → 1.0.49

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 (255) hide show
  1. package/dist/cjs/_virtual/_commonjsHelpers.js +1 -0
  2. package/dist/cjs/_virtual/delegate.js +1 -0
  3. package/dist/cjs/_virtual/download.js +1 -0
  4. package/dist/cjs/_virtual/download2.js +1 -0
  5. package/dist/cjs/_virtual/index.js +1 -0
  6. package/dist/cjs/_virtual/index2.js +1 -0
  7. package/dist/cjs/components/shimmer-button/ShimmerButton.js +1 -1
  8. package/dist/cjs/components/shiny-button/ShinyButton.js +1 -1
  9. package/dist/cjs/components/sparkles-text/SparklesText.js +1 -1
  10. package/dist/cjs/components/subtitle-player/SubtitlePlayer.d.ts +51 -0
  11. package/dist/cjs/components/subtitle-player/SubtitlePlayer.js +3 -0
  12. package/dist/cjs/components/subtitle-player/index.d.ts +2 -0
  13. package/dist/cjs/components/txt-editor/TxtEditor.d.ts +5 -4
  14. package/dist/cjs/components/txt-editor/TxtEditor.js +32 -1
  15. package/dist/cjs/components/txt-reader/TxtReader.js +1 -1
  16. package/dist/cjs/components/txt-reader/index.module.css.js +1 -1
  17. package/dist/cjs/components/variable-proximity/index.d.ts +10 -0
  18. package/dist/cjs/components/variable-proximity/index.js +1 -1
  19. package/dist/cjs/components/video-subtitle-player/VideoSubtitlePlayer.d.ts +23 -0
  20. package/dist/cjs/components/video-subtitle-player/VideoSubtitlePlayer.js +1 -0
  21. package/dist/cjs/components/video-subtitle-player/index.d.ts +3 -0
  22. package/dist/cjs/components/video-subtitle-player/useVideoSubtitleStore.d.ts +61 -0
  23. package/dist/cjs/components/video-subtitle-player/useVideoSubtitleStore.js +1 -0
  24. package/dist/cjs/index.d.ts +2 -1
  25. package/dist/cjs/index.js +1 -1
  26. package/dist/cjs/node_modules/.pnpm/delegate@3.2.0/node_modules/delegate/src/closest.js +1 -0
  27. package/dist/cjs/node_modules/.pnpm/delegate@3.2.0/node_modules/delegate/src/delegate.js +1 -0
  28. package/dist/cjs/node_modules/.pnpm/downloadjs@1.4.7/node_modules/downloadjs/download.js +3 -0
  29. package/dist/cjs/node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.js +1 -0
  30. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/_virtual/_rollupPluginBabelHelpers.js +2 -0
  31. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/constant.js +1 -0
  32. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/defaultConfig.js +1 -0
  33. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/error.js +1 -0
  34. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/events.js +1 -0
  35. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/index.umd.js +1 -0
  36. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/instManager.js +1 -0
  37. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/lang/en.js +1 -0
  38. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/lang/i18n.js +1 -0
  39. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/lang/zh-cn.js +1 -0
  40. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/mediaProxy.js +1 -0
  41. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/player.js +1 -0
  42. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugin/basePlugin.js +1 -0
  43. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugin/hooksDescriptor.js +1 -0
  44. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugin/plugin.js +1 -0
  45. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugin/pluginsManager.js +1 -0
  46. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugin/preset.js +1 -0
  47. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugin/resizeObserver.js +1 -0
  48. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/back.js +5 -0
  49. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/download.js +15 -0
  50. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/exitCssFull.js +4 -0
  51. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/exitFull.js +4 -0
  52. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/loading.js +4 -0
  53. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/pause.js +4 -0
  54. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/pipIcon.js +5 -0
  55. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/pipIconExit.js +8 -0
  56. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/play.js +4 -0
  57. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/playNext.js +4 -0
  58. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/replay.js +4 -0
  59. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/requestCssFull.js +4 -0
  60. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/requestFull.js +4 -0
  61. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/rotate.js +12 -0
  62. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/seekicon.js +7 -0
  63. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/volumeLarge.js +5 -0
  64. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/volumeMuted.js +5 -0
  65. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/volumeSmall.js +5 -0
  66. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/common/iconPlugin.js +1 -0
  67. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/common/iconTools.js +3 -0
  68. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/common/optionList.js +1 -0
  69. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/common/optionsIcon.js +4 -0
  70. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/common/thumbnail.js +1 -0
  71. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/controls/index.js +9 -0
  72. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/cssFullScreen/index.js +5 -0
  73. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/definition/index.js +1 -0
  74. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/download/index.js +5 -0
  75. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/dynamicBg/index.js +2 -0
  76. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/enter/index.js +1 -0
  77. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/error/index.js +6 -0
  78. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/fpsDetect/index.js +1 -0
  79. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/fullscreen/backicon.js +2 -0
  80. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/fullscreen/index.js +5 -0
  81. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/gapJump/index.js +1 -0
  82. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/keyboard/index.js +1 -0
  83. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/loading/index.js +4 -0
  84. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/logger/index.js +1 -0
  85. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/miniScreen/index.js +13 -0
  86. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/miniScreen/miniScreenIcon.js +4 -0
  87. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/mobile/index.js +19 -0
  88. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/mobile/touch.js +1 -0
  89. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/pc/index.js +1 -0
  90. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/pip/index.js +8 -0
  91. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/play/index.js +5 -0
  92. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/playNext/index.js +7 -0
  93. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/playbackRate/index.js +1 -0
  94. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/poster/index.js +2 -0
  95. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/progress/index.js +7 -0
  96. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/progress/innerList.js +1 -0
  97. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/progress/miniProgress.js +4 -0
  98. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/progressPreview/dotsApi.js +1 -0
  99. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/progressPreview/index.js +11 -0
  100. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/prompt/index.js +3 -0
  101. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/replay/index.js +3 -0
  102. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/rotate/index.js +6 -0
  103. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/screenShot/index.js +6 -0
  104. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/start/index.js +4 -0
  105. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/stats/index.js +1 -0
  106. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/testspeed/index.js +1 -0
  107. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/time/index.js +6 -0
  108. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/time/timesegments.js +1 -0
  109. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/volume/index.js +11 -0
  110. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/waitingTimeoutJump/index.js +1 -0
  111. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/presets/default.js +1 -0
  112. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/state.js +1 -0
  113. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/stateClassMap.js +1 -0
  114. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/utils/database.js +1 -0
  115. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/utils/debug.js +1 -0
  116. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/utils/draggabilly.js +1 -0
  117. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/utils/sniffer.js +1 -0
  118. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/utils/util.js +1 -0
  119. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/utils/xgplayerTimeRange.js +1 -0
  120. package/dist/cjs/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/version.js +1 -0
  121. 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 +1 -0
  122. 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 +1 -0
  123. package/dist/cjs/packages/subtitle/lib/src/json-converter.js +1 -0
  124. package/dist/cjs/packages/subtitle/lib/src/parser.js +5 -0
  125. package/dist/cjs/react-components.css +1 -1
  126. package/dist/es/_virtual/_commonjsHelpers.js +6 -0
  127. package/dist/es/_virtual/delegate.js +7 -0
  128. package/dist/es/_virtual/download.js +7 -0
  129. package/dist/es/_virtual/download2.js +4 -0
  130. package/dist/es/_virtual/index.js +8 -0
  131. package/dist/es/_virtual/index2.js +4 -0
  132. package/dist/es/components/shimmer-button/ShimmerButton.js +29 -62
  133. package/dist/es/components/shiny-button/ShinyButton.js +15 -17
  134. package/dist/es/components/sparkles-text/SparklesText.js +30 -29
  135. package/dist/es/components/subtitle-player/SubtitlePlayer.d.ts +51 -0
  136. package/dist/es/components/subtitle-player/SubtitlePlayer.js +301 -0
  137. package/dist/es/components/subtitle-player/index.d.ts +2 -0
  138. package/dist/es/components/txt-editor/TxtEditor.d.ts +5 -4
  139. package/dist/es/components/txt-editor/TxtEditor.js +105 -43
  140. package/dist/es/components/txt-reader/TxtReader.js +48 -55
  141. package/dist/es/components/txt-reader/index.module.css.js +6 -2
  142. package/dist/es/components/variable-proximity/index.d.ts +10 -0
  143. package/dist/es/components/variable-proximity/index.js +166 -94
  144. package/dist/es/components/video-subtitle-player/VideoSubtitlePlayer.d.ts +23 -0
  145. package/dist/es/components/video-subtitle-player/VideoSubtitlePlayer.js +125 -0
  146. package/dist/es/components/video-subtitle-player/index.d.ts +3 -0
  147. package/dist/es/components/video-subtitle-player/useVideoSubtitleStore.d.ts +61 -0
  148. package/dist/es/components/video-subtitle-player/useVideoSubtitleStore.js +57 -0
  149. package/dist/es/index.d.ts +2 -1
  150. package/dist/es/index.js +60 -56
  151. package/dist/es/node_modules/.pnpm/delegate@3.2.0/node_modules/delegate/src/closest.js +21 -0
  152. package/dist/es/node_modules/.pnpm/delegate@3.2.0/node_modules/delegate/src/delegate.js +29 -0
  153. package/dist/es/node_modules/.pnpm/downloadjs@1.4.7/node_modules/downloadjs/download.js +77 -0
  154. package/dist/es/node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.js +111 -0
  155. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/_virtual/_rollupPluginBabelHelpers.js +197 -0
  156. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/constant.js +7 -0
  157. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/defaultConfig.js +87 -0
  158. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/error.js +64 -0
  159. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/events.js +67 -0
  160. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/index.umd.js +45 -0
  161. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/instManager.js +101 -0
  162. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/lang/en.js +79 -0
  163. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/lang/i18n.js +75 -0
  164. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/lang/zh-cn.js +79 -0
  165. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/mediaProxy.js +466 -0
  166. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/player.js +1240 -0
  167. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugin/basePlugin.js +207 -0
  168. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugin/hooksDescriptor.js +130 -0
  169. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugin/plugin.js +366 -0
  170. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugin/pluginsManager.js +204 -0
  171. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugin/preset.js +14 -0
  172. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugin/resizeObserver.js +81 -0
  173. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/back.js +10 -0
  174. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/download.js +20 -0
  175. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/exitCssFull.js +9 -0
  176. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/exitFull.js +9 -0
  177. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/loading.js +9 -0
  178. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/pause.js +9 -0
  179. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/pipIcon.js +10 -0
  180. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/pipIconExit.js +13 -0
  181. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/play.js +9 -0
  182. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/playNext.js +9 -0
  183. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/replay.js +9 -0
  184. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/requestCssFull.js +9 -0
  185. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/requestFull.js +9 -0
  186. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/rotate.js +17 -0
  187. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/seekicon.js +12 -0
  188. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/volumeLarge.js +10 -0
  189. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/volumeMuted.js +10 -0
  190. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/assets/volumeSmall.js +10 -0
  191. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/common/iconPlugin.js +35 -0
  192. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/common/iconTools.js +12 -0
  193. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/common/optionList.js +79 -0
  194. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/common/optionsIcon.js +193 -0
  195. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/common/thumbnail.js +141 -0
  196. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/controls/index.js +171 -0
  197. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/cssFullScreen/index.js +105 -0
  198. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/definition/index.js +110 -0
  199. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/download/index.js +83 -0
  200. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/dynamicBg/index.js +232 -0
  201. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/enter/index.js +42 -0
  202. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/error/index.js +68 -0
  203. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/fpsDetect/index.js +116 -0
  204. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/fullscreen/backicon.js +68 -0
  205. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/fullscreen/index.js +150 -0
  206. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/gapJump/index.js +96 -0
  207. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/keyboard/index.js +299 -0
  208. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/loading/index.js +46 -0
  209. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/logger/index.js +171 -0
  210. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/miniScreen/index.js +169 -0
  211. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/miniScreen/miniScreenIcon.js +55 -0
  212. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/mobile/index.js +448 -0
  213. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/mobile/touch.js +138 -0
  214. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/pc/index.js +122 -0
  215. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/pip/index.js +216 -0
  216. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/play/index.js +102 -0
  217. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/playNext/index.js +78 -0
  218. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/playbackRate/index.js +100 -0
  219. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/poster/index.js +119 -0
  220. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/progress/index.js +431 -0
  221. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/progress/innerList.js +215 -0
  222. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/progress/miniProgress.js +93 -0
  223. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/progressPreview/dotsApi.js +175 -0
  224. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/progressPreview/index.js +292 -0
  225. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/prompt/index.js +86 -0
  226. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/replay/index.js +92 -0
  227. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/rotate/index.js +106 -0
  228. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/screenShot/index.js +134 -0
  229. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/start/index.js +222 -0
  230. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/stats/index.js +152 -0
  231. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/testspeed/index.js +134 -0
  232. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/time/index.js +164 -0
  233. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/time/timesegments.js +146 -0
  234. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/volume/index.js +206 -0
  235. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/plugins/waitingTimeoutJump/index.js +53 -0
  236. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/presets/default.js +61 -0
  237. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/state.js +13 -0
  238. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/stateClassMap.js +34 -0
  239. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/utils/database.js +83 -0
  240. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/utils/debug.js +34 -0
  241. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/utils/draggabilly.js +271 -0
  242. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/utils/sniffer.js +111 -0
  243. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/utils/util.js +517 -0
  244. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/utils/xgplayerTimeRange.js +25 -0
  245. package/dist/es/node_modules/.pnpm/xgplayer@3.0.23_core-js@3.47.0/node_modules/xgplayer/es/version.js +4 -0
  246. 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 +19 -0
  247. 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 +14 -0
  248. package/dist/es/packages/subtitle/lib/src/json-converter.js +27 -0
  249. package/dist/es/packages/subtitle/lib/src/parser.js +56 -0
  250. package/dist/es/react-components.css +1 -1
  251. package/package.json +23 -21
  252. package/dist/cjs/components/qr-code/index.d.ts +0 -103
  253. package/dist/cjs/components/qr-code/index.js +0 -1
  254. package/dist/es/components/qr-code/index.d.ts +0 -103
  255. package/dist/es/components/qr-code/index.js +0 -49
@@ -1,9 +1,10 @@
1
1
  "use client";
2
- import { jsxs as n, jsx as r } from "react/jsx-runtime";
2
+ import { jsxs as t, jsx as a } from "react/jsx-runtime";
3
3
  import { cn as s } from "../../utils/utils.js";
4
4
  import { motion as o } from "motion/react";
5
- import l from "react";
6
- const p = {
5
+ import p from "react";
6
+ /* empty css */
7
+ const c = {
7
8
  initial: { "--x": "100%", scale: 0.8 },
8
9
  animate: { "--x": "-100%", scale: 1 },
9
10
  whileTap: { scale: 0.95 },
@@ -22,28 +23,25 @@ const p = {
22
23
  mass: 0.5
23
24
  }
24
25
  }
25
- }, c = l.forwardRef(({ children: a, className: e, ...t }, i) => /* @__PURE__ */ n(
26
+ }, l = p.forwardRef(({ children: r, className: e, ...n }, i) => /* @__PURE__ */ t(
26
27
  o.button,
27
28
  {
28
29
  ref: i,
29
- className: s(
30
- "relative cursor-pointer rounded-lg px-6 py-2 font-medium backdrop-blur-xl border transition-shadow duration-300 ease-in-out hover:shadow dark:bg-[radial-gradient(circle_at_50%_0%,var(--primary)/10%_0%,transparent_60%)] dark:hover:shadow-[0_0_20px_var(--primary)/10%]",
31
- e
32
- ),
33
- ...p,
34
- ...t,
30
+ className: s("xiping-shiny-button", e),
31
+ ...c,
32
+ ...n,
35
33
  children: [
36
- /* @__PURE__ */ r(
34
+ /* @__PURE__ */ a(
37
35
  "span",
38
36
  {
39
- className: "relative block size-full text-sm uppercase tracking-wide text-[rgb(0,0,0,65%)] dark:font-light dark:text-[rgb(255,255,255,90%)]",
37
+ className: "xiping-shiny-button-text",
40
38
  style: {
41
39
  maskImage: "linear-gradient(-75deg,var(--primary) calc(var(--x) + 20%),transparent calc(var(--x) + 30%),var(--primary) calc(var(--x) + 100%))"
42
40
  },
43
- children: a
41
+ children: r
44
42
  }
45
43
  ),
46
- /* @__PURE__ */ r(
44
+ /* @__PURE__ */ a(
47
45
  "span",
48
46
  {
49
47
  style: {
@@ -51,13 +49,13 @@ const p = {
51
49
  WebkitMask: "linear-gradient(rgb(0,0,0), rgb(0,0,0)) content-box exclude,linear-gradient(rgb(0,0,0), rgb(0,0,0))",
52
50
  backgroundImage: "linear-gradient(-75deg,var(--primary)/10% calc(var(--x)+20%),var(--primary)/50% calc(var(--x)+25%),var(--primary)/10% calc(var(--x)+100%))"
53
51
  },
54
- className: "absolute inset-0 z-10 block rounded-[inherit] p-px"
52
+ className: "xiping-shiny-button-border"
55
53
  }
56
54
  )
57
55
  ]
58
56
  }
59
57
  ));
60
- c.displayName = "ShinyButton";
58
+ l.displayName = "ShinyButton";
61
59
  export {
62
- c as ShinyButton
60
+ l as ShinyButton
63
61
  };
@@ -1,19 +1,20 @@
1
1
  "use client";
2
- import { jsx as r, jsxs as x } from "react/jsx-runtime";
3
- import { motion as L } from "motion/react";
4
- import { useState as S, useEffect as y } from "react";
5
- import { cn as M } from "../../utils/utils.js";
6
- const $ = ({ id: o, x: t, y: i, color: s, delay: l, scale: c }) => /* @__PURE__ */ r(
7
- L.svg,
2
+ import { jsx as r, jsxs as g } from "react/jsx-runtime";
3
+ import { motion as k } from "motion/react";
4
+ import { useState as L, useEffect as S } from "react";
5
+ import { cn as y } from "../../utils/utils.js";
6
+ /* empty css */
7
+ const M = ({ id: i, x: t, y: o, color: s, delay: c, scale: l }) => /* @__PURE__ */ r(
8
+ k.svg,
8
9
  {
9
- className: "pointer-events-none absolute z-20",
10
- initial: { opacity: 0, left: t, top: i },
10
+ className: "xiping-sparkle",
11
+ initial: { opacity: 0, left: t, top: o },
11
12
  animate: {
12
13
  opacity: [0, 1, 0],
13
- scale: [0, c, 0],
14
+ scale: [0, l, 0],
14
15
  rotate: [75, 120, 150]
15
16
  },
16
- transition: { duration: 0.8, repeat: 1 / 0, delay: l },
17
+ transition: { duration: 0.8, repeat: 1 / 0, delay: c },
17
18
  width: "21",
18
19
  height: "21",
19
20
  viewBox: "0 0 21 21",
@@ -25,46 +26,46 @@ const $ = ({ id: o, x: t, y: i, color: s, delay: l, scale: c }) => /* @__PURE__
25
26
  }
26
27
  )
27
28
  },
28
- o
29
- ), E = ({
30
- children: o,
29
+ i
30
+ ), I = ({
31
+ children: i,
31
32
  colors: t = { first: "#9E7AFF", second: "#FE8BBB" },
32
- className: i,
33
+ className: o,
33
34
  sparklesCount: s = 10,
34
- ...l
35
+ ...c
35
36
  }) => {
36
- const [c, d] = S([]);
37
- return y(() => {
37
+ const [l, p] = L([]);
38
+ return S(() => {
38
39
  const a = () => {
39
- const e = `${Math.random() * 100}%`, n = `${Math.random() * 100}%`, h = Math.random() > 0.5 ? t.first : t.second, u = Math.random() * 2, C = Math.random() * 1 + 0.3, v = Math.random() * 10 + 5;
40
- return { id: `${e}-${n}-${Date.now()}`, x: e, y: n, color: h, delay: u, scale: C, lifespan: v };
41
- }, p = () => {
40
+ const e = `${Math.random() * 100}%`, n = `${Math.random() * 100}%`, h = Math.random() > 0.5 ? t.first : t.second, x = Math.random() * 2, C = Math.random() * 1 + 0.3, u = Math.random() * 10 + 5;
41
+ return { id: `${e}-${n}-${Date.now()}`, x: e, y: n, color: h, delay: x, scale: C, lifespan: u };
42
+ }, d = () => {
42
43
  const e = Array.from({ length: s }, a);
43
- d(e);
44
+ p(e);
44
45
  }, m = () => {
45
- d(
46
+ p(
46
47
  (e) => e.map((n) => n.lifespan <= 0 ? a() : { ...n, lifespan: n.lifespan - 0.1 })
47
48
  );
48
49
  };
49
- p();
50
+ d();
50
51
  const f = setInterval(m, 100);
51
52
  return () => clearInterval(f);
52
53
  }, [t.first, t.second, s]), /* @__PURE__ */ r(
53
54
  "div",
54
55
  {
55
- className: M("text-6xl font-bold", i),
56
- ...l,
56
+ className: y("xiping-sparkles-text", o),
57
+ ...c,
57
58
  style: {
58
59
  "--sparkles-first-color": `${t.first}`,
59
60
  "--sparkles-second-color": `${t.second}`
60
61
  },
61
- children: /* @__PURE__ */ x("span", { className: "relative inline-block", children: [
62
- c.map((a) => /* @__PURE__ */ r($, { ...a }, a.id)),
63
- /* @__PURE__ */ r("strong", { children: o })
62
+ children: /* @__PURE__ */ g("span", { className: "xiping-sparkles-text-wrapper", children: [
63
+ l.map((a) => /* @__PURE__ */ r(M, { ...a }, a.id)),
64
+ /* @__PURE__ */ r("strong", { children: i })
64
65
  ] })
65
66
  }
66
67
  );
67
68
  };
68
69
  export {
69
- E as SparklesText
70
+ I as SparklesText
70
71
  };
@@ -0,0 +1,51 @@
1
+ import { default as React } from 'react';
2
+ import { SubtitleEntry, SubtitleLanguage } from '@xiping/subtitle';
3
+ export type SubtitleType = 'srt' | 'vtt';
4
+ export interface SubtitleData {
5
+ /** 字幕类型 */
6
+ type: SubtitleType;
7
+ /** 字幕内容字符串 */
8
+ content: string;
9
+ /** 可选的语言标识,用于多字幕对照时的标签显示 */
10
+ label?: string;
11
+ /** 字幕语言类型,用于分词,默认为中文 */
12
+ language?: SubtitleLanguage;
13
+ }
14
+ export type SubtitleDisplayMode = 'current' | 'lyrics';
15
+ export interface SubtitlePlayerProps {
16
+ /** 字幕数据,可以是单个字幕或多个字幕(用于对照) */
17
+ subtitles: SubtitleData | SubtitleData[];
18
+ /** 当前播放进度(秒数) */
19
+ currentTime: number;
20
+ /** 显示模式:'current' 只显示当前字幕,'lyrics' 显示全部字幕并高亮当前 */
21
+ mode?: SubtitleDisplayMode;
22
+ /** 自定义类名 */
23
+ className?: string;
24
+ /** 自定义样式 */
25
+ style?: React.CSSProperties;
26
+ /**
27
+ * 分词 hover 状态回调,由外部决定如何处理(比如请求第三方接口、展示弹窗等)
28
+ * 传入 null 表示 hover 结束
29
+ */
30
+ onWordHoverChange?: (target: HoverTarget | null) => void;
31
+ /**
32
+ * 可选的渲染函数,在组件内部直接渲染自定义弹窗
33
+ * 建议将数据请求放到父组件,通过该函数返回需要展示的内容
34
+ */
35
+ renderWordOverlay?: (target: HoverTarget) => React.ReactNode;
36
+ }
37
+ export interface HoverTarget {
38
+ word: string;
39
+ wordIndex: number;
40
+ lineIndex: number;
41
+ entry: SubtitleEntry;
42
+ label?: string;
43
+ rect: DOMRect;
44
+ }
45
+ /**
46
+ * 字幕播放组件
47
+ * 支持 SRT 和 WebVTT 格式,可以同时显示多个字幕进行对照
48
+ * 支持两种显示模式:当前模式(只显示当前字幕)和歌词模式(显示全部并高亮当前)
49
+ */
50
+ export declare const SubtitlePlayer: React.FC<SubtitlePlayerProps>;
51
+ export default SubtitlePlayer;
@@ -0,0 +1,301 @@
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";
5
+ /* 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
79
+ }) => {
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;
86
+ async function s() {
87
+ try {
88
+ const e = await Promise.all(
89
+ u.map(async (t) => {
90
+ try {
91
+ const r = t.language || "zh", o = t.type === "srt" ? await U(t.content, r) : await X(t.content, r);
92
+ return {
93
+ entries: JSON.parse(o),
94
+ label: t.label
95
+ };
96
+ } catch (r) {
97
+ return console.error("字幕解析失败:", r), {
98
+ entries: t.type === "srt" ? I(t.content) : A(t.content),
99
+ label: t.label
100
+ };
101
+ }
102
+ })
103
+ );
104
+ n && S(e);
105
+ } catch (e) {
106
+ if (console.error("加载字幕失败:", e), n) {
107
+ const t = u.map((r) => {
108
+ try {
109
+ return {
110
+ entries: r.type === "srt" ? I(r.content) : A(r.content),
111
+ label: r.label
112
+ };
113
+ } catch (o) {
114
+ return console.error("字幕解析失败:", o), {
115
+ entries: [],
116
+ label: r.label
117
+ };
118
+ }
119
+ });
120
+ S(t);
121
+ }
122
+ }
123
+ }
124
+ return s(), () => {
125
+ n = !1;
126
+ };
127
+ }, [u]);
128
+ const w = x(() => y.length > 0 ? y : u.map((n) => {
129
+ try {
130
+ return {
131
+ entries: n.type === "srt" ? I(n.content) : A(n.content),
132
+ label: n.label
133
+ };
134
+ } catch (s) {
135
+ return console.error("字幕解析失败:", s), {
136
+ entries: [],
137
+ label: n.label
138
+ };
139
+ }
140
+ }), [y, u]), L = x(() => w.map(({ entries: n, label: s }) => ({
141
+ entry: Z(n, a),
142
+ label: s,
143
+ entries: n
144
+ // 保留所有条目用于歌词模式
145
+ })), [w, a]), H = x(() => {
146
+ const n = [];
147
+ w.forEach(({ entries: t, label: r }) => {
148
+ t.forEach((o) => {
149
+ n.push({
150
+ entry: o,
151
+ label: r,
152
+ startTime: E(o.startTime),
153
+ endTime: E(o.endTime)
154
+ });
155
+ });
156
+ }), n.sort((t, r) => t.startTime - r.startTime);
157
+ const s = [];
158
+ let e = [];
159
+ for (const t of n)
160
+ if (e.length === 0)
161
+ e.push(t);
162
+ else {
163
+ const r = e[e.length - 1];
164
+ t.startTime <= r.endTime ? e.push(t) : (s.push(e), e = [t]);
165
+ }
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 = {
185
+ ...s,
186
+ rect: r
187
+ };
188
+ b(o), i?.(o);
189
+ },
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,
200
+ label: s
201
+ }),
202
+ onMouseLeave: j
203
+ }),
204
+ [P, j]
205
+ ), B = d && f ? /* @__PURE__ */ p(
206
+ "div",
207
+ {
208
+ className: "subtitle-player-hover-overlay",
209
+ style: {
210
+ left: f.rect.x + f.rect.width / 2,
211
+ top: f.rect.y + f.rect.height
212
+ },
213
+ children: d(f)
214
+ }
215
+ ) : null;
216
+ return c === "current" ? L.some(({ entry: s }) => s !== null) ? /* @__PURE__ */ $(
217
+ "div",
218
+ {
219
+ ref: m,
220
+ className: `subtitle-player subtitle-player--current ${h}`,
221
+ style: g,
222
+ children: [
223
+ L.map(({ entry: s, label: e }, t) => s ? /* @__PURE__ */ $(
224
+ "div",
225
+ {
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 })
294
+ ]
295
+ }
296
+ );
297
+ };
298
+ export {
299
+ st as SubtitlePlayer,
300
+ st as default
301
+ };
@@ -0,0 +1,2 @@
1
+ export * from './SubtitlePlayer';
2
+ export { default } from './SubtitlePlayer';
@@ -1,4 +1,4 @@
1
- import { OnMount } from '@monaco-editor/react';
1
+ import { Editor } from '@tiptap/react';
2
2
  export interface TxtEditorProps {
3
3
  /**
4
4
  * 编辑器高度
@@ -13,6 +13,7 @@ export interface TxtEditorProps {
13
13
  /**
14
14
  * 编辑器默认语言
15
15
  * @default 'plaintext'
16
+ * @deprecated Tiptap 不支持语法高亮,此属性已废弃
16
17
  */
17
18
  language?: string;
18
19
  /**
@@ -40,13 +41,13 @@ export interface TxtEditorProps {
40
41
  /**
41
42
  * 编辑器加载完成回调
42
43
  */
43
- onMount?: OnMount;
44
+ onMount?: (editor: Editor) => void;
44
45
  /**
45
46
  * 文本编辑器样式
46
47
  */
47
48
  className?: string;
48
49
  }
49
50
  /**
50
- * Monaco Editor 文本编辑器组件
51
+ * Tiptap 文本编辑器组件
51
52
  */
52
- export declare const TxtEditor: ({ height, width, language, defaultValue, value, theme, readOnly, onChange, onMount, className, }: TxtEditorProps) => import("react/jsx-runtime").JSX.Element;
53
+ export declare const TxtEditor: ({ height, width, language: _language, defaultValue, value, theme, readOnly, onChange, onMount, className, }: TxtEditorProps) => import("react/jsx-runtime").JSX.Element;