@funhub/platform 0.2.31 → 0.2.32

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 (889) hide show
  1. package/dist/_virtual/_rolldown/runtime.mjs +1 -18
  2. package/dist/assets/icons/channel-list/channel-active-indicator.mjs +1 -31
  3. package/dist/assets/icons/clear.mjs +1 -17
  4. package/dist/assets/icons/close-icon.mjs +1 -18
  5. package/dist/assets/icons/close.mjs +1 -14
  6. package/dist/assets/icons/common/collect_nor.mjs +1 -21
  7. package/dist/assets/icons/common/collect_sel.mjs +1 -21
  8. package/dist/assets/icons/common/follow_sel.mjs +1 -17
  9. package/dist/assets/icons/common/follow_user.mjs +1 -17
  10. package/dist/assets/icons/common/full_screen.mjs +1 -17
  11. package/dist/assets/icons/common/god_comment.mjs +1 -17
  12. package/dist/assets/icons/common/header-menu.mjs +1 -29
  13. package/dist/assets/icons/common/header-search-icon.mjs +1 -17
  14. package/dist/assets/icons/common/heart-like.mjs +1 -31
  15. package/dist/assets/icons/common/heart-unlike.mjs +1 -18
  16. package/dist/assets/icons/common/qq.mjs +1 -32
  17. package/dist/assets/icons/common/right_arrow.mjs +1 -14
  18. package/dist/assets/icons/common/right_arrow_thin.mjs +1 -17
  19. package/dist/assets/icons/common/share.mjs +1 -17
  20. package/dist/assets/icons/common/solid-arrow.mjs +1 -17
  21. package/dist/assets/icons/common/video_play.mjs +1 -18
  22. package/dist/assets/icons/common/wechat-friends.mjs +1 -40
  23. package/dist/assets/icons/common/wechat.mjs +1 -39
  24. package/dist/assets/icons/detail/check-ok.mjs +1 -17
  25. package/dist/assets/icons/detail/comment.mjs +1 -19
  26. package/dist/assets/icons/detail/commet_at.mjs +1 -53
  27. package/dist/assets/icons/detail/give_like.mjs +1 -20
  28. package/dist/assets/icons/detail/give_like_sel.mjs +1 -27
  29. package/dist/assets/icons/detail/min-collection.mjs +1 -38
  30. package/dist/assets/icons/detail/publish_pic.mjs +1 -27
  31. package/dist/assets/icons/detail/publish_video.mjs +1 -30
  32. package/dist/assets/icons/detail/un_like.mjs +1 -20
  33. package/dist/assets/icons/detail/un_like_sel.mjs +1 -27
  34. package/dist/assets/icons/detail/video_flag.mjs +1 -17
  35. package/dist/assets/icons/detail/video_play.mjs +1 -18
  36. package/dist/assets/icons/dislike.mjs +1 -20
  37. package/dist/assets/icons/dislike_sel.mjs +1 -27
  38. package/dist/assets/icons/empty/img-empty-adduser.mjs +1 -463
  39. package/dist/assets/icons/empty/img-empty-nodata.mjs +1 -194
  40. package/dist/assets/icons/eye-icon.mjs +1 -21
  41. package/dist/assets/icons/eye-off-icon.mjs +1 -24
  42. package/dist/assets/icons/filter_dark.mjs +1 -17
  43. package/dist/assets/icons/follow_nor.mjs +1 -44
  44. package/dist/assets/icons/follow_sel.mjs +1 -31
  45. package/dist/assets/icons/left-arrow-icon.mjs +1 -18
  46. package/dist/assets/icons/left_arrow.mjs +1 -14
  47. package/dist/assets/icons/like.mjs +1 -20
  48. package/dist/assets/icons/like_sel.mjs +1 -27
  49. package/dist/assets/icons/marquee-close.mjs +1 -29
  50. package/dist/assets/icons/marquee-enter.mjs +1 -17
  51. package/dist/assets/icons/marquee-speaker.mjs +1 -22
  52. package/dist/assets/icons/publish/publish_add.mjs +1 -17
  53. package/dist/assets/icons/publish/publish_at.mjs +1 -53
  54. package/dist/assets/icons/publish/publish_collection.mjs +1 -28
  55. package/dist/assets/icons/publish/publish_pic.mjs +1 -27
  56. package/dist/assets/icons/publish/publish_video.mjs +1 -30
  57. package/dist/assets/icons/refresh.mjs +1 -18
  58. package/dist/assets/icons/search/filter.mjs +1 -17
  59. package/dist/assets/icons/search.mjs +1 -23
  60. package/dist/assets/icons/share/share-link.mjs +1 -39
  61. package/dist/assets/icons/tabs/follow.mjs +1 -20
  62. package/dist/assets/icons/tabs/follow_active.mjs +1 -17
  63. package/dist/assets/icons/tabs/home.mjs +1 -17
  64. package/dist/assets/icons/tabs/home_active.mjs +1 -17
  65. package/dist/assets/icons/tabs/mine.mjs +1 -26
  66. package/dist/assets/icons/tabs/mine_active.mjs +1 -17
  67. package/dist/assets/icons/view.mjs +1 -17
  68. package/dist/assets/images/add.mjs +1 -5
  69. package/dist/assets/images/default_avatar.mjs +1 -5
  70. package/dist/assets/images/default_collection_cover.mjs +1 -5
  71. package/dist/assets/images/empty/img_empty_adduser.mjs +1 -463
  72. package/dist/assets/images/empty/img_empty_message.mjs +1 -408
  73. package/dist/assets/images/empty/img_empty_network.mjs +1 -168
  74. package/dist/assets/images/empty/img_empty_nodata.mjs +1 -194
  75. package/dist/assets/images/empty/img_empty_picture.mjs +1 -59
  76. package/dist/assets/images/empty/img_empty_search.mjs +1 -250
  77. package/dist/assets/images/frame.mjs +1 -5
  78. package/dist/assets/images/less.mjs +1 -5
  79. package/dist/assets/images/logo.mjs +1 -5
  80. package/dist/assets/images/shortcut-grid/shortcut-grid-card-bg-primary.mjs +1 -29
  81. package/dist/assets/images/subscript.mjs +1 -5
  82. package/dist/assets/images/user/default_avatar.mjs +1 -5
  83. package/dist/biz.mjs +1 -169
  84. package/dist/cli/init/create-client.mjs +1 -12
  85. package/dist/cli/init/create-sdk.mjs +1 -12
  86. package/dist/cli/init/shared/command.mjs +1 -31
  87. package/dist/cli/init/shared/constants.mjs +1 -24
  88. package/dist/cli/init/shared/create-project.mjs +2 -58
  89. package/dist/cli/init/shared/file.mjs +1 -21
  90. package/dist/cli/init/shared/package-manager.mjs +1 -42
  91. package/dist/cli/init/shared/prompts.mjs +1 -107
  92. package/dist/cli/init/shared/template.mjs +1 -66
  93. package/dist/cli.mjs +2 -128
  94. package/dist/common.mjs +1 -51
  95. package/dist/components/biz/basics/card-item/defaults/default-props.mjs +1 -10
  96. package/dist/components/biz/basics/card-item/runtime/client.mjs +1 -83
  97. package/dist/components/biz/basics/card-item/runtime/corners.mjs +1 -33
  98. package/dist/components/biz/basics/card-item/schema/component.mjs +1 -14
  99. package/dist/components/biz/basics/card-item/schema/data.schema.mjs +1 -8
  100. package/dist/components/biz/basics/card-item/schema/event.schema.mjs +1 -8
  101. package/dist/components/biz/basics/card-item/schema/index.mjs +1 -17
  102. package/dist/components/biz/basics/card-item/schema/props.schema.mjs +1 -18
  103. package/dist/components/biz/basics/card-item/schema/style.schema.mjs +1 -7
  104. package/dist/components/biz/basics/card-layout/defaults/default-props.mjs +1 -13
  105. package/dist/components/biz/basics/card-layout/runtime/client.mjs +1 -38
  106. package/dist/components/biz/basics/card-layout/schema/component.mjs +1 -14
  107. package/dist/components/biz/basics/card-layout/schema/data.schema.mjs +1 -8
  108. package/dist/components/biz/basics/card-layout/schema/event.schema.mjs +1 -5
  109. package/dist/components/biz/basics/card-layout/schema/index.mjs +1 -17
  110. package/dist/components/biz/basics/card-layout/schema/props.schema.mjs +1 -28
  111. package/dist/components/biz/basics/card-layout/schema/style.schema.mjs +1 -7
  112. package/dist/components/biz/basics/fullscreen-feed/basic-fullscreen.mjs +1 -268
  113. package/dist/components/biz/basics/fullscreen-feed/defaults/default-props.mjs +1 -11
  114. package/dist/components/biz/basics/fullscreen-feed/index.mjs +1 -12
  115. package/dist/components/biz/basics/fullscreen-feed/runtime/adapters.mjs +1 -97
  116. package/dist/components/biz/basics/fullscreen-feed/runtime/bottom-info.mjs +1 -125
  117. package/dist/components/biz/basics/fullscreen-feed/runtime/client.mjs +1 -390
  118. package/dist/components/biz/basics/fullscreen-feed/runtime/comment-modal.mjs +1 -107
  119. package/dist/components/biz/basics/fullscreen-feed/runtime/interaction-sync.mjs +1 -134
  120. package/dist/components/biz/basics/fullscreen-feed/runtime/post-slide.mjs +1 -232
  121. package/dist/components/biz/basics/fullscreen-feed/runtime/styles.module.mjs +152 -25
  122. package/dist/components/biz/basics/fullscreen-feed/runtime/use-mixed-feed-controller.mjs +1 -193
  123. package/dist/components/biz/basics/fullscreen-feed/runtime/use-series-feed-controller.mjs +1 -212
  124. package/dist/components/biz/basics/fullscreen-feed/runtime/user-action.mjs +1 -270
  125. package/dist/components/biz/basics/fullscreen-feed/runtime/video-slide.mjs +1 -376
  126. package/dist/components/biz/basics/fullscreen-feed/schema/component.mjs +1 -14
  127. package/dist/components/biz/basics/fullscreen-feed/schema/data.schema.mjs +1 -11
  128. package/dist/components/biz/basics/fullscreen-feed/schema/event.schema.mjs +1 -13
  129. package/dist/components/biz/basics/fullscreen-feed/schema/index.mjs +1 -17
  130. package/dist/components/biz/basics/fullscreen-feed/schema/props.schema.mjs +1 -20
  131. package/dist/components/biz/basics/fullscreen-feed/schema/style.schema.mjs +1 -5
  132. package/dist/components/biz/basics/logo/variants/basic-logo/defaults/default-props.mjs +1 -19
  133. package/dist/components/biz/basics/logo/variants/basic-logo/index.mjs +1 -9
  134. package/dist/components/biz/basics/logo/variants/basic-logo/runtime/client.mjs +1 -171
  135. package/dist/components/biz/basics/logo/variants/basic-logo/schema/component.mjs +1 -14
  136. package/dist/components/biz/basics/logo/variants/basic-logo/schema/data.schema.mjs +1 -9
  137. package/dist/components/biz/basics/logo/variants/basic-logo/schema/event.schema.mjs +1 -23
  138. package/dist/components/biz/basics/logo/variants/basic-logo/schema/index.mjs +1 -17
  139. package/dist/components/biz/basics/logo/variants/basic-logo/schema/props.schema.mjs +1 -78
  140. package/dist/components/biz/basics/logo/variants/basic-logo/schema/style.schema.mjs +1 -7
  141. package/dist/components/biz/basics/search/shared/components/search-box.mjs +1 -56
  142. package/dist/components/biz/basics/search/shared/config/default-data.mjs +1 -15
  143. package/dist/components/biz/basics/search/shared/config/schema.mjs +1 -50
  144. package/dist/components/biz/basics/search/variants/basic-search/defaults/default-props.mjs +1 -10
  145. package/dist/components/biz/basics/search/variants/basic-search/index.mjs +1 -12
  146. package/dist/components/biz/basics/search/variants/basic-search/runtime/client.mjs +1 -33
  147. package/dist/components/biz/basics/search/variants/basic-search/schema/component.mjs +1 -14
  148. package/dist/components/biz/basics/search/variants/basic-search/schema/data.schema.mjs +1 -8
  149. package/dist/components/biz/basics/search/variants/basic-search/schema/event.schema.mjs +1 -7
  150. package/dist/components/biz/basics/search/variants/basic-search/schema/index.mjs +1 -17
  151. package/dist/components/biz/basics/search/variants/basic-search/schema/props.schema.mjs +1 -7
  152. package/dist/components/biz/basics/search/variants/basic-search/schema/style.schema.mjs +1 -7
  153. package/dist/components/biz/basics/search/variants/filter-search/defaults/default-props.mjs +1 -14
  154. package/dist/components/biz/basics/search/variants/filter-search/index.mjs +1 -12
  155. package/dist/components/biz/basics/search/variants/filter-search/runtime/client.mjs +1 -63
  156. package/dist/components/biz/basics/search/variants/filter-search/schema/component.mjs +1 -14
  157. package/dist/components/biz/basics/search/variants/filter-search/schema/data.schema.mjs +1 -8
  158. package/dist/components/biz/basics/search/variants/filter-search/schema/event.schema.mjs +1 -7
  159. package/dist/components/biz/basics/search/variants/filter-search/schema/index.mjs +1 -17
  160. package/dist/components/biz/basics/search/variants/filter-search/schema/props.schema.mjs +1 -22
  161. package/dist/components/biz/basics/search/variants/filter-search/schema/style.schema.mjs +1 -7
  162. package/dist/components/biz/basics/search/variants/simple-search/defaults/default-props.mjs +1 -10
  163. package/dist/components/biz/basics/search/variants/simple-search/index.mjs +1 -9
  164. package/dist/components/biz/basics/search/variants/simple-search/runtime/client.mjs +1 -37
  165. package/dist/components/biz/basics/search/variants/simple-search/schema/component.mjs +1 -14
  166. package/dist/components/biz/basics/search/variants/simple-search/schema/data.schema.mjs +1 -8
  167. package/dist/components/biz/basics/search/variants/simple-search/schema/event.schema.mjs +1 -7
  168. package/dist/components/biz/basics/search/variants/simple-search/schema/index.mjs +1 -17
  169. package/dist/components/biz/basics/search/variants/simple-search/schema/props.schema.mjs +1 -7
  170. package/dist/components/biz/basics/search/variants/simple-search/schema/style.schema.mjs +1 -7
  171. package/dist/components/biz/basics/search/variants/tag-search/defaults/default-props.mjs +1 -18
  172. package/dist/components/biz/basics/search/variants/tag-search/index.mjs +1 -9
  173. package/dist/components/biz/basics/search/variants/tag-search/runtime/client.mjs +1 -67
  174. package/dist/components/biz/basics/search/variants/tag-search/schema/component.mjs +1 -14
  175. package/dist/components/biz/basics/search/variants/tag-search/schema/data.schema.mjs +1 -8
  176. package/dist/components/biz/basics/search/variants/tag-search/schema/event.schema.mjs +1 -7
  177. package/dist/components/biz/basics/search/variants/tag-search/schema/index.mjs +1 -17
  178. package/dist/components/biz/basics/search/variants/tag-search/schema/props.schema.mjs +1 -37
  179. package/dist/components/biz/basics/search/variants/tag-search/schema/style.schema.mjs +1 -7
  180. package/dist/components/biz/business/advertisement/ad-match.mjs +1 -142
  181. package/dist/components/biz/business/advertisement/ad-provider.mjs +1 -50
  182. package/dist/components/biz/business/advertisement/ad-query.mjs +1 -39
  183. package/dist/components/biz/business/advertisement/ad-runtime-provider.mjs +1 -21
  184. package/dist/components/biz/business/advertisement/banner-ad/client.mjs +1 -274
  185. package/dist/components/biz/business/advertisement/banner-ad/material.mjs +1 -21
  186. package/dist/components/biz/business/advertisement/banner-ad/schema.mjs +1 -55
  187. package/dist/components/biz/business/advertisement/banner-ad/server.mjs +1 -24
  188. package/dist/components/biz/business/advertisement/feed-ad/index.mjs +1 -36
  189. package/dist/components/biz/business/advertisement/floating-ad/client.mjs +1 -109
  190. package/dist/components/biz/business/advertisement/floating-ad/material.mjs +1 -21
  191. package/dist/components/biz/business/advertisement/floating-ad/schema.mjs +1 -11
  192. package/dist/components/biz/business/advertisement/floating-ad/server.mjs +1 -24
  193. package/dist/components/biz/business/advertisement/icon-ad/client.mjs +1 -187
  194. package/dist/components/biz/business/advertisement/icon-ad/material.mjs +1 -21
  195. package/dist/components/biz/business/advertisement/icon-ad/schema.mjs +1 -42
  196. package/dist/components/biz/business/advertisement/icon-ad/server.mjs +1 -24
  197. package/dist/components/biz/business/advertisement/popup-ad/client.mjs +2 -203
  198. package/dist/components/biz/business/advertisement/popup-ad/material.mjs +1 -21
  199. package/dist/components/biz/business/advertisement/popup-ad/schema.mjs +1 -48
  200. package/dist/components/biz/business/advertisement/popup-ad/server.mjs +1 -24
  201. package/dist/components/biz/business/advertisement/text-ad/client.mjs +1 -370
  202. package/dist/components/biz/business/advertisement/text-ad/material.mjs +1 -21
  203. package/dist/components/biz/business/advertisement/text-ad/schema.mjs +1 -34
  204. package/dist/components/biz/business/advertisement/text-ad/server.mjs +1 -24
  205. package/dist/components/biz/business/banner/variants/basic-banner/defaults/default-props.mjs +1 -15
  206. package/dist/components/biz/business/banner/variants/basic-banner/index.mjs +1 -12
  207. package/dist/components/biz/business/banner/variants/basic-banner/inspector-schema.mjs +1 -62
  208. package/dist/components/biz/business/banner/variants/basic-banner/material.mjs +1 -21
  209. package/dist/components/biz/business/banner/variants/basic-banner/runtime/client.mjs +1 -140
  210. package/dist/components/biz/business/banner/variants/basic-banner/schema/component.mjs +1 -14
  211. package/dist/components/biz/business/banner/variants/basic-banner/schema/data.schema.mjs +1 -53
  212. package/dist/components/biz/business/banner/variants/basic-banner/schema/event.schema.mjs +1 -5
  213. package/dist/components/biz/business/banner/variants/basic-banner/schema/index.mjs +1 -17
  214. package/dist/components/biz/business/banner/variants/basic-banner/schema/props.schema.mjs +1 -40
  215. package/dist/components/biz/business/banner/variants/basic-banner/schema/style.schema.mjs +1 -7
  216. package/dist/components/biz/business/banner/variants/basic-banner/server.mjs +1 -25
  217. package/dist/components/biz/business/banner-carousel/client.mjs +1 -133
  218. package/dist/components/biz/business/banner-carousel/default-props.mjs +1 -15
  219. package/dist/components/biz/business/banner-carousel/material.mjs +1 -22
  220. package/dist/components/biz/business/banner-carousel/schema.mjs +1 -94
  221. package/dist/components/biz/business/banner-carousel/server.mjs +1 -87
  222. package/dist/components/biz/business/card-grid/variants/card-grid-2x3/defaults/default-props.mjs +1 -8
  223. package/dist/components/biz/business/card-grid/variants/card-grid-2x3/index.mjs +1 -9
  224. package/dist/components/biz/business/card-grid/variants/card-grid-2x3/runtime/client.mjs +1 -41
  225. package/dist/components/biz/business/card-grid/variants/card-grid-2x3/schema/component.mjs +1 -14
  226. package/dist/components/biz/business/card-grid/variants/card-grid-2x3/schema/data.schema.mjs +1 -8
  227. package/dist/components/biz/business/card-grid/variants/card-grid-2x3/schema/event.schema.mjs +1 -5
  228. package/dist/components/biz/business/card-grid/variants/card-grid-2x3/schema/index.mjs +1 -17
  229. package/dist/components/biz/business/card-grid/variants/card-grid-2x3/schema/props.schema.mjs +1 -12
  230. package/dist/components/biz/business/card-grid/variants/card-grid-2x3/schema/style.schema.mjs +1 -7
  231. package/dist/components/biz/business/card-grid/variants/card-grid-2x3-infinite/defaults/default-props.mjs +1 -8
  232. package/dist/components/biz/business/card-grid/variants/card-grid-2x3-infinite/index.mjs +1 -9
  233. package/dist/components/biz/business/card-grid/variants/card-grid-2x3-infinite/runtime/client.mjs +1 -106
  234. package/dist/components/biz/business/card-grid/variants/card-grid-2x3-infinite/schema/component.mjs +1 -14
  235. package/dist/components/biz/business/card-grid/variants/card-grid-2x3-infinite/schema/data.schema.mjs +1 -8
  236. package/dist/components/biz/business/card-grid/variants/card-grid-2x3-infinite/schema/event.schema.mjs +1 -5
  237. package/dist/components/biz/business/card-grid/variants/card-grid-2x3-infinite/schema/index.mjs +1 -17
  238. package/dist/components/biz/business/card-grid/variants/card-grid-2x3-infinite/schema/props.schema.mjs +1 -12
  239. package/dist/components/biz/business/card-grid/variants/card-grid-2x3-infinite/schema/style.schema.mjs +1 -7
  240. package/dist/components/biz/business/card-grid/variants/card-grid-2x4/defaults/default-props.mjs +1 -8
  241. package/dist/components/biz/business/card-grid/variants/card-grid-2x4/index.mjs +1 -9
  242. package/dist/components/biz/business/card-grid/variants/card-grid-2x4/runtime/client.mjs +1 -41
  243. package/dist/components/biz/business/card-grid/variants/card-grid-2x4/schema/component.mjs +1 -14
  244. package/dist/components/biz/business/card-grid/variants/card-grid-2x4/schema/data.schema.mjs +1 -8
  245. package/dist/components/biz/business/card-grid/variants/card-grid-2x4/schema/event.schema.mjs +1 -5
  246. package/dist/components/biz/business/card-grid/variants/card-grid-2x4/schema/index.mjs +1 -17
  247. package/dist/components/biz/business/card-grid/variants/card-grid-2x4/schema/props.schema.mjs +1 -12
  248. package/dist/components/biz/business/card-grid/variants/card-grid-2x4/schema/style.schema.mjs +1 -7
  249. package/dist/components/biz/business/card-grid/variants/card-grid-3x3/defaults/default-props.mjs +1 -8
  250. package/dist/components/biz/business/card-grid/variants/card-grid-3x3/index.mjs +1 -9
  251. package/dist/components/biz/business/card-grid/variants/card-grid-3x3/runtime/client.mjs +1 -41
  252. package/dist/components/biz/business/card-grid/variants/card-grid-3x3/schema/component.mjs +1 -14
  253. package/dist/components/biz/business/card-grid/variants/card-grid-3x3/schema/data.schema.mjs +1 -8
  254. package/dist/components/biz/business/card-grid/variants/card-grid-3x3/schema/event.schema.mjs +1 -5
  255. package/dist/components/biz/business/card-grid/variants/card-grid-3x3/schema/index.mjs +1 -17
  256. package/dist/components/biz/business/card-grid/variants/card-grid-3x3/schema/props.schema.mjs +1 -12
  257. package/dist/components/biz/business/card-grid/variants/card-grid-3x3/schema/style.schema.mjs +1 -7
  258. package/dist/components/biz/business/card-grid/variants/card-grid-3x3-infinite/defaults/default-props.mjs +1 -8
  259. package/dist/components/biz/business/card-grid/variants/card-grid-3x3-infinite/index.mjs +1 -9
  260. package/dist/components/biz/business/card-grid/variants/card-grid-3x3-infinite/runtime/client.mjs +1 -106
  261. package/dist/components/biz/business/card-grid/variants/card-grid-3x3-infinite/schema/component.mjs +1 -14
  262. package/dist/components/biz/business/card-grid/variants/card-grid-3x3-infinite/schema/data.schema.mjs +1 -8
  263. package/dist/components/biz/business/card-grid/variants/card-grid-3x3-infinite/schema/event.schema.mjs +1 -5
  264. package/dist/components/biz/business/card-grid/variants/card-grid-3x3-infinite/schema/index.mjs +1 -17
  265. package/dist/components/biz/business/card-grid/variants/card-grid-3x3-infinite/schema/props.schema.mjs +1 -12
  266. package/dist/components/biz/business/card-grid/variants/card-grid-3x3-infinite/schema/style.schema.mjs +1 -7
  267. package/dist/components/biz/business/channel-list/channel-filter-dialog.mjs +1 -190
  268. package/dist/components/biz/business/channel-list/client.mjs +1 -157
  269. package/dist/components/biz/business/channel-list/default-props.mjs +1 -13
  270. package/dist/components/biz/business/channel-list/material.mjs +1 -21
  271. package/dist/components/biz/business/channel-list/schema.mjs +1 -40
  272. package/dist/components/biz/business/comment/comment-input.mjs +5 -772
  273. package/dist/components/biz/business/comment/comment-item.mjs +1 -182
  274. package/dist/components/biz/business/comment/comment-list.mjs +1 -722
  275. package/dist/components/biz/business/comment/comment-media.mjs +1 -57
  276. package/dist/components/biz/business/comment/comment-rich-text.mjs +1 -69
  277. package/dist/components/biz/business/comment/reply-detail.mjs +1 -969
  278. package/dist/components/biz/business/comment/time-display.mjs +1 -20
  279. package/dist/components/biz/business/comment/use-keyboard-handler.mjs +1 -142
  280. package/dist/components/biz/business/contact/contact-item.mjs +1 -45
  281. package/dist/components/biz/business/contact/contact-list.mjs +1 -212
  282. package/dist/components/biz/business/contact/contact-search.mjs +1 -128
  283. package/dist/components/biz/business/detail/shared/detail-follow-action.mjs +1 -114
  284. package/dist/components/biz/business/detail/shared/detail-info-tags.mjs +1 -33
  285. package/dist/components/biz/business/detail/shared/detail-info-title.mjs +1 -84
  286. package/dist/components/biz/business/detail/shared/detail-operate.mjs +1 -432
  287. package/dist/components/biz/business/detail/shared/detail-structured-data.mjs +1 -63
  288. package/dist/components/biz/business/detail/shared/editor-preview.mjs +1 -67
  289. package/dist/components/biz/business/detail/shared/material-route-context.mjs +1 -44
  290. package/dist/components/biz/business/detail/shared/metadata-utils.mjs +1 -21
  291. package/dist/components/biz/business/detail/shared/post-recommend-list.mjs +1 -184
  292. package/dist/components/biz/business/detail/shared/registry.mjs +1 -55
  293. package/dist/components/biz/business/detail/shared/runtime-context-provider.mjs +1 -225
  294. package/dist/components/biz/business/detail/shared/seo-config.mjs +1 -28
  295. package/dist/components/biz/business/detail/shared/use-video-detail-webview-bridge.mjs +1 -320
  296. package/dist/components/biz/business/detail/shared/video-detail-server-data.mjs +1 -46
  297. package/dist/components/biz/business/detail/shared/video-hero.mjs +1 -902
  298. package/dist/components/biz/business/detail/video-detail-actions/client.mjs +1 -97
  299. package/dist/components/biz/business/detail/video-detail-actions/material.mjs +1 -18
  300. package/dist/components/biz/business/detail/video-detail-actions/schema.mjs +1 -11
  301. package/dist/components/biz/business/detail/video-detail-actions/server.mjs +1 -47
  302. package/dist/components/biz/business/detail/video-detail-info/client.mjs +1 -201
  303. package/dist/components/biz/business/detail/video-detail-info/material.mjs +1 -18
  304. package/dist/components/biz/business/detail/video-detail-info/schema.mjs +1 -14
  305. package/dist/components/biz/business/detail/video-detail-info/server.mjs +1 -45
  306. package/dist/components/biz/business/detail/video-detail-info-title-tags-episodes/client.mjs +1 -51
  307. package/dist/components/biz/business/detail/video-detail-info-title-tags-episodes/material.mjs +1 -18
  308. package/dist/components/biz/business/detail/video-detail-info-title-tags-episodes/schema.mjs +1 -14
  309. package/dist/components/biz/business/detail/video-detail-info-title-tags-episodes/server.mjs +1 -45
  310. package/dist/components/biz/business/detail/video-detail-player/client.mjs +1 -136
  311. package/dist/components/biz/business/detail/video-detail-player/material.mjs +1 -18
  312. package/dist/components/biz/business/detail/video-detail-player/schema.mjs +1 -11
  313. package/dist/components/biz/business/detail/video-detail-player/server.mjs +1 -17
  314. package/dist/components/biz/business/detail/video-detail-player-bridge-only/client.mjs +1 -17
  315. package/dist/components/biz/business/detail/video-detail-player-bridge-only/material.mjs +1 -18
  316. package/dist/components/biz/business/detail/video-detail-player-bridge-only/schema.mjs +1 -13
  317. package/dist/components/biz/business/detail/video-detail-player-bridge-only/server.mjs +1 -17
  318. package/dist/components/biz/business/detail/video-detail-recommend/client.mjs +1 -89
  319. package/dist/components/biz/business/detail/video-detail-recommend/material.mjs +1 -18
  320. package/dist/components/biz/business/detail/video-detail-recommend/schema.mjs +1 -35
  321. package/dist/components/biz/business/detail/video-detail-recommend/server.mjs +1 -35
  322. package/dist/components/biz/business/detail/video-detail-recommend/shared.mjs +1 -548
  323. package/dist/components/biz/business/detail/video-detail-recommend/utils.mjs +1 -60
  324. package/dist/components/biz/business/feature-grid/variants/basic-feature-grid/defaults/default-props.mjs +1 -12
  325. package/dist/components/biz/business/feature-grid/variants/basic-feature-grid/index.mjs +1 -9
  326. package/dist/components/biz/business/feature-grid/variants/basic-feature-grid/runtime/client.mjs +1 -66
  327. package/dist/components/biz/business/feature-grid/variants/basic-feature-grid/schema/component.mjs +1 -14
  328. package/dist/components/biz/business/feature-grid/variants/basic-feature-grid/schema/data.schema.mjs +1 -43
  329. package/dist/components/biz/business/feature-grid/variants/basic-feature-grid/schema/event.schema.mjs +1 -5
  330. package/dist/components/biz/business/feature-grid/variants/basic-feature-grid/schema/index.mjs +1 -17
  331. package/dist/components/biz/business/feature-grid/variants/basic-feature-grid/schema/props.schema.mjs +1 -32
  332. package/dist/components/biz/business/feature-grid/variants/basic-feature-grid/schema/style.schema.mjs +1 -7
  333. package/dist/components/biz/business/floating-ball/client.mjs +1 -31
  334. package/dist/components/biz/business/floating-ball/material.mjs +1 -18
  335. package/dist/components/biz/business/floating-ball/schema.mjs +1 -20
  336. package/dist/components/biz/business/floating-ball/server.mjs +1 -17
  337. package/dist/components/biz/business/fullscreen-feed/variants/fullscreen-post-feed/defaults/default-props.mjs +1 -11
  338. package/dist/components/biz/business/fullscreen-feed/variants/fullscreen-post-feed/index.mjs +1 -9
  339. package/dist/components/biz/business/fullscreen-feed/variants/fullscreen-post-feed/runtime/client.mjs +1 -71
  340. package/dist/components/biz/business/fullscreen-feed/variants/fullscreen-post-feed/schema/component.mjs +1 -14
  341. package/dist/components/biz/business/fullscreen-feed/variants/fullscreen-post-feed/schema/data.schema.mjs +1 -11
  342. package/dist/components/biz/business/fullscreen-feed/variants/fullscreen-post-feed/schema/index.mjs +1 -17
  343. package/dist/components/biz/business/fullscreen-feed/variants/fullscreen-video-feed/defaults/default-props.mjs +1 -11
  344. package/dist/components/biz/business/fullscreen-feed/variants/fullscreen-video-feed/index.mjs +1 -9
  345. package/dist/components/biz/business/fullscreen-feed/variants/fullscreen-video-feed/runtime/client.mjs +1 -64
  346. package/dist/components/biz/business/fullscreen-feed/variants/fullscreen-video-feed/schema/component.mjs +1 -14
  347. package/dist/components/biz/business/fullscreen-feed/variants/fullscreen-video-feed/schema/data.schema.mjs +1 -11
  348. package/dist/components/biz/business/fullscreen-feed/variants/fullscreen-video-feed/schema/index.mjs +1 -17
  349. package/dist/components/biz/business/fullscreen-feed/variants/shared/runtime-compat.mjs +1 -522
  350. package/dist/components/biz/business/header-search/header-avatar-icon/client.mjs +1 -21
  351. package/dist/components/biz/business/header-search/header-avatar-icon/material.mjs +1 -18
  352. package/dist/components/biz/business/header-search/header-avatar-icon/schema.mjs +1 -11
  353. package/dist/components/biz/business/header-search/header-avatar-icon/server.mjs +1 -17
  354. package/dist/components/biz/business/header-search/header-avatar-logo-search/client.mjs +1 -142
  355. package/dist/components/biz/business/header-search/header-avatar-logo-search/material.mjs +1 -18
  356. package/dist/components/biz/business/header-search/header-avatar-logo-search/schema.mjs +1 -23
  357. package/dist/components/biz/business/header-search/header-avatar-logo-search/server.mjs +1 -17
  358. package/dist/components/biz/business/header-search/header-avatar-logo-search-icon/client.mjs +1 -38
  359. package/dist/components/biz/business/header-search/header-avatar-logo-search-icon/material.mjs +1 -18
  360. package/dist/components/biz/business/header-search/header-avatar-logo-search-icon/schema.mjs +1 -20
  361. package/dist/components/biz/business/header-search/header-avatar-logo-search-icon/server.mjs +1 -17
  362. package/dist/components/biz/business/header-search/header-logo-search/client.mjs +1 -32
  363. package/dist/components/biz/business/header-search/header-logo-search/material.mjs +1 -18
  364. package/dist/components/biz/business/header-search/header-logo-search/schema.mjs +1 -22
  365. package/dist/components/biz/business/header-search/header-logo-search/server.mjs +1 -17
  366. package/dist/components/biz/business/header-search/header-search/client.mjs +1 -19
  367. package/dist/components/biz/business/header-search/header-search/material.mjs +1 -18
  368. package/dist/components/biz/business/header-search/header-search/schema.mjs +1 -11
  369. package/dist/components/biz/business/header-search/header-search/server.mjs +1 -17
  370. package/dist/components/biz/business/header-search/shared/avatar.mjs +1 -53
  371. package/dist/components/biz/business/header-search/shared/header-action.mjs +1 -29
  372. package/dist/components/biz/business/header-search/shared/header-search-icon.mjs +1 -26
  373. package/dist/components/biz/business/header-search/shared/header-shell.mjs +1 -21
  374. package/dist/components/biz/business/header-search/shared/logo.mjs +1 -25
  375. package/dist/components/biz/business/header-search/shared/search.mjs +1 -47
  376. package/dist/components/biz/business/home-recommend/home-recommend-grid/client.mjs +1 -48
  377. package/dist/components/biz/business/home-recommend/home-recommend-grid/index.mjs +1 -14
  378. package/dist/components/biz/business/home-recommend/home-recommend-grid/inspector-schema.mjs +1 -229
  379. package/dist/components/biz/business/home-recommend/home-recommend-grid/material.mjs +1 -18
  380. package/dist/components/biz/business/home-recommend/home-recommend-grid/schema.mjs +1 -24
  381. package/dist/components/biz/business/home-recommend/home-recommend-grid/server.mjs +1 -48
  382. package/dist/components/biz/business/home-recommend/home-recommend-waterfall/client.mjs +1 -47
  383. package/dist/components/biz/business/home-recommend/home-recommend-waterfall/index.mjs +1 -14
  384. package/dist/components/biz/business/home-recommend/home-recommend-waterfall/inspector-schema.mjs +1 -211
  385. package/dist/components/biz/business/home-recommend/home-recommend-waterfall/material.mjs +1 -18
  386. package/dist/components/biz/business/home-recommend/home-recommend-waterfall/schema.mjs +1 -24
  387. package/dist/components/biz/business/home-recommend/home-recommend-waterfall/server.mjs +1 -42
  388. package/dist/components/biz/business/home-recommend/shared/home-recommend-base.mjs +1 -890
  389. package/dist/components/biz/business/home-recommend/shared/home-recommend-default-config.mjs +1 -24
  390. package/dist/components/biz/business/home-recommend/shared/home-recommend-play-count.mjs +1 -31
  391. package/dist/components/biz/business/home-recommend/shared/home-recommend-preview.mjs +1 -178
  392. package/dist/components/biz/business/home-recommend/shared/home-recommend-runtime-props.mjs +1 -47
  393. package/dist/components/biz/business/home-recommend/shared/home-recommend-server-data.mjs +1 -336
  394. package/dist/components/biz/business/home-recommend/shared/home-recommend-smart-layout.mjs +1 -73
  395. package/dist/components/biz/business/home-recommend/shared/home-recommend-smart-tag.mjs +1 -21
  396. package/dist/components/biz/business/home-recommend/shared/home-recommend-video-detail.mjs +1 -73
  397. package/dist/components/biz/business/image-text-recommend/client.mjs +1 -436
  398. package/dist/components/biz/business/image-text-recommend/material.mjs +1 -21
  399. package/dist/components/biz/business/image-text-recommend/schema.mjs +1 -79
  400. package/dist/components/biz/business/image-text-recommend/server.mjs +1 -53
  401. package/dist/components/biz/business/image-text-recommend/shared/query.mjs +1 -33
  402. package/dist/components/biz/business/large-feature-grid/card-item.mjs +1 -106
  403. package/dist/components/biz/business/large-feature-grid/client.mjs +1 -256
  404. package/dist/components/biz/business/large-feature-grid/material.mjs +1 -21
  405. package/dist/components/biz/business/large-feature-grid/schema.mjs +1 -127
  406. package/dist/components/biz/business/large-feature-grid/server.mjs +1 -16
  407. package/dist/components/biz/business/marquee/client.mjs +1 -303
  408. package/dist/components/biz/business/marquee/material.mjs +1 -21
  409. package/dist/components/biz/business/marquee/schema.mjs +1 -86
  410. package/dist/components/biz/business/marquee/server.mjs +1 -17
  411. package/dist/components/biz/business/nav-bar/variants/basic-nav-bar/defaults/default-props.mjs +1 -21
  412. package/dist/components/biz/business/nav-bar/variants/basic-nav-bar/index.mjs +1 -9
  413. package/dist/components/biz/business/nav-bar/variants/basic-nav-bar/runtime/channel-filter-dialog.mjs +1 -180
  414. package/dist/components/biz/business/nav-bar/variants/basic-nav-bar/runtime/client.mjs +1 -159
  415. package/dist/components/biz/business/nav-bar/variants/basic-nav-bar/schema/component.mjs +1 -14
  416. package/dist/components/biz/business/nav-bar/variants/basic-nav-bar/schema/data.schema.mjs +1 -9
  417. package/dist/components/biz/business/nav-bar/variants/basic-nav-bar/schema/event.schema.mjs +1 -27
  418. package/dist/components/biz/business/nav-bar/variants/basic-nav-bar/schema/index.mjs +1 -17
  419. package/dist/components/biz/business/nav-bar/variants/basic-nav-bar/schema/props.schema.mjs +1 -92
  420. package/dist/components/biz/business/nav-bar/variants/basic-nav-bar/schema/style.schema.mjs +1 -7
  421. package/dist/components/biz/business/post-card/variants/basic-post-card/defaults/default-props.mjs +1 -8
  422. package/dist/components/biz/business/post-card/variants/basic-post-card/index.mjs +1 -9
  423. package/dist/components/biz/business/post-card/variants/basic-post-card/runtime/client.mjs +1 -119
  424. package/dist/components/biz/business/post-card/variants/basic-post-card/schema/component.mjs +1 -14
  425. package/dist/components/biz/business/post-card/variants/basic-post-card/schema/data.schema.mjs +1 -8
  426. package/dist/components/biz/business/post-card/variants/basic-post-card/schema/event.schema.mjs +1 -5
  427. package/dist/components/biz/business/post-card/variants/basic-post-card/schema/index.mjs +1 -17
  428. package/dist/components/biz/business/post-card/variants/basic-post-card/schema/props.schema.mjs +1 -5
  429. package/dist/components/biz/business/post-card/variants/basic-post-card/schema/style.schema.mjs +1 -7
  430. package/dist/components/biz/business/profile/profile-header/client.mjs +1 -343
  431. package/dist/components/biz/business/profile/profile-header/material.mjs +1 -59
  432. package/dist/components/biz/business/profile/profile-header/schema.mjs +1 -11
  433. package/dist/components/biz/business/profile/profile-header/user-profile-avatar.mjs +1 -262
  434. package/dist/components/biz/business/profile/profile-header/user-profile-cover-background.mjs +1 -182
  435. package/dist/components/biz/business/profile/profile-main/client.mjs +1 -235
  436. package/dist/components/biz/business/profile/profile-main/empty-state.mjs +1 -43
  437. package/dist/components/biz/business/profile/profile-main/material.mjs +1 -18
  438. package/dist/components/biz/business/profile/profile-main/schema.mjs +1 -11
  439. package/dist/components/biz/business/profile/profile-main/server.mjs +1 -13
  440. package/dist/components/biz/business/profile/profile-main/shell.mjs +1 -275
  441. package/dist/components/biz/business/profile/profile-main/tabs/collect-tab/client.mjs +1 -747
  442. package/dist/components/biz/business/profile/profile-main/tabs/collect-tab/server.mjs +1 -13
  443. package/dist/components/biz/business/profile/profile-main/tabs/collect-tab/video-waterfall.mjs +1 -178
  444. package/dist/components/biz/business/profile/profile-main/tabs/history-tab/client.mjs +1 -259
  445. package/dist/components/biz/business/profile/profile-main/tabs/history-tab/server.mjs +1 -13
  446. package/dist/components/biz/business/profile/profile-main/tabs/like-tab/client.mjs +1 -258
  447. package/dist/components/biz/business/profile/profile-main/tabs/like-tab/server.mjs +1 -13
  448. package/dist/components/biz/business/profile/profile-main/tabs/publish-tab/client.mjs +1 -149
  449. package/dist/components/biz/business/profile/profile-main/tabs/publish-tab/server.mjs +1 -13
  450. package/dist/components/biz/business/profile/profile-main/utils.mjs +1 -266
  451. package/dist/components/biz/business/profile/profile-main/variants.mjs +1 -40
  452. package/dist/components/biz/business/profile/tracking.mjs +1 -19
  453. package/dist/components/biz/business/recommended-users/variants/basic-recommended-users/defaults/default-props.mjs +1 -15
  454. package/dist/components/biz/business/recommended-users/variants/basic-recommended-users/index.mjs +1 -9
  455. package/dist/components/biz/business/recommended-users/variants/basic-recommended-users/runtime/client.mjs +1 -168
  456. package/dist/components/biz/business/recommended-users/variants/basic-recommended-users/runtime/recommended-users-skeleton.mjs +1 -119
  457. package/dist/components/biz/business/recommended-users/variants/basic-recommended-users/schema/component.mjs +1 -14
  458. package/dist/components/biz/business/recommended-users/variants/basic-recommended-users/schema/data.schema.mjs +1 -9
  459. package/dist/components/biz/business/recommended-users/variants/basic-recommended-users/schema/event.schema.mjs +1 -17
  460. package/dist/components/biz/business/recommended-users/variants/basic-recommended-users/schema/index.mjs +1 -17
  461. package/dist/components/biz/business/recommended-users/variants/basic-recommended-users/schema/props.schema.mjs +1 -54
  462. package/dist/components/biz/business/recommended-users/variants/basic-recommended-users/schema/style.schema.mjs +1 -7
  463. package/dist/components/biz/business/search-bar/variants/basic-search-bar/defaults/default-props.mjs +1 -15
  464. package/dist/components/biz/business/search-bar/variants/basic-search-bar/index.mjs +1 -9
  465. package/dist/components/biz/business/search-bar/variants/basic-search-bar/runtime/client.mjs +1 -54
  466. package/dist/components/biz/business/search-bar/variants/basic-search-bar/schema/component.mjs +1 -14
  467. package/dist/components/biz/business/search-bar/variants/basic-search-bar/schema/data.schema.mjs +1 -9
  468. package/dist/components/biz/business/search-bar/variants/basic-search-bar/schema/event.schema.mjs +1 -5
  469. package/dist/components/biz/business/search-bar/variants/basic-search-bar/schema/index.mjs +1 -17
  470. package/dist/components/biz/business/search-bar/variants/basic-search-bar/schema/props.schema.mjs +1 -117
  471. package/dist/components/biz/business/search-bar/variants/basic-search-bar/schema/style.schema.mjs +1 -7
  472. package/dist/components/biz/business/search-bar/variants/detail-search-bar/defaults/default-props.mjs +1 -22
  473. package/dist/components/biz/business/search-bar/variants/detail-search-bar/index.mjs +1 -9
  474. package/dist/components/biz/business/search-bar/variants/detail-search-bar/runtime/client.mjs +1 -53
  475. package/dist/components/biz/business/search-bar/variants/detail-search-bar/schema/component.mjs +1 -14
  476. package/dist/components/biz/business/search-bar/variants/detail-search-bar/schema/data.schema.mjs +1 -9
  477. package/dist/components/biz/business/search-bar/variants/detail-search-bar/schema/event.schema.mjs +1 -5
  478. package/dist/components/biz/business/search-bar/variants/detail-search-bar/schema/index.mjs +1 -17
  479. package/dist/components/biz/business/search-bar/variants/detail-search-bar/schema/props.schema.mjs +1 -117
  480. package/dist/components/biz/business/search-bar/variants/detail-search-bar/schema/style.schema.mjs +1 -7
  481. package/dist/components/biz/business/search-bar/variants/filter-search-bar/defaults/default-props.mjs +1 -15
  482. package/dist/components/biz/business/search-bar/variants/filter-search-bar/index.mjs +1 -9
  483. package/dist/components/biz/business/search-bar/variants/filter-search-bar/runtime/client.mjs +1 -52
  484. package/dist/components/biz/business/search-bar/variants/filter-search-bar/schema/component.mjs +1 -14
  485. package/dist/components/biz/business/search-bar/variants/filter-search-bar/schema/data.schema.mjs +1 -9
  486. package/dist/components/biz/business/search-bar/variants/filter-search-bar/schema/event.schema.mjs +1 -25
  487. package/dist/components/biz/business/search-bar/variants/filter-search-bar/schema/index.mjs +1 -17
  488. package/dist/components/biz/business/search-bar/variants/filter-search-bar/schema/props.schema.mjs +1 -128
  489. package/dist/components/biz/business/search-bar/variants/filter-search-bar/schema/style.schema.mjs +1 -7
  490. package/dist/components/biz/business/search-bar/variants/tag-search-bar/defaults/default-props.mjs +1 -15
  491. package/dist/components/biz/business/search-bar/variants/tag-search-bar/index.mjs +1 -12
  492. package/dist/components/biz/business/search-bar/variants/tag-search-bar/runtime/client.mjs +1 -58
  493. package/dist/components/biz/business/search-bar/variants/tag-search-bar/schema/component.mjs +1 -14
  494. package/dist/components/biz/business/search-bar/variants/tag-search-bar/schema/data.schema.mjs +1 -9
  495. package/dist/components/biz/business/search-bar/variants/tag-search-bar/schema/event.schema.mjs +1 -38
  496. package/dist/components/biz/business/search-bar/variants/tag-search-bar/schema/index.mjs +1 -17
  497. package/dist/components/biz/business/search-bar/variants/tag-search-bar/schema/props.schema.mjs +1 -144
  498. package/dist/components/biz/business/search-bar/variants/tag-search-bar/schema/style.schema.mjs +1 -7
  499. package/dist/components/biz/business/search-history/client.mjs +1 -182
  500. package/dist/components/biz/business/search-history/material.mjs +1 -18
  501. package/dist/components/biz/business/search-history/schema.mjs +1 -16
  502. package/dist/components/biz/business/search-history/server.mjs +1 -17
  503. package/dist/components/biz/business/search-input/client.mjs +1 -115
  504. package/dist/components/biz/business/search-input/material.mjs +1 -18
  505. package/dist/components/biz/business/search-input/schema.mjs +1 -11
  506. package/dist/components/biz/business/search-input/server.mjs +1 -17
  507. package/dist/components/biz/business/shortcut-grid/client.mjs +1 -86
  508. package/dist/components/biz/business/shortcut-grid/material.mjs +1 -18
  509. package/dist/components/biz/business/shortcut-grid/schema.mjs +1 -65
  510. package/dist/components/biz/business/shortcut-grid/server.mjs +1 -17
  511. package/dist/components/biz/business/tab-bar/client.mjs +1 -157
  512. package/dist/components/biz/business/tab-bar/material.mjs +1 -21
  513. package/dist/components/biz/business/tab-bar/schema.mjs +1 -11
  514. package/dist/components/biz/business/tab-bar/server.mjs +1 -17
  515. package/dist/components/biz/business/text-recommend/client.mjs +1 -104
  516. package/dist/components/biz/business/text-recommend/material.mjs +1 -18
  517. package/dist/components/biz/business/text-recommend/schema.mjs +1 -25
  518. package/dist/components/biz/business/text-recommend/server.mjs +1 -18
  519. package/dist/components/biz/example/button/client.mjs +1 -43
  520. package/dist/components/biz/example/button/material.mjs +1 -18
  521. package/dist/components/biz/example/button/schema.mjs +1 -44
  522. package/dist/components/biz/example/button/server.mjs +1 -32
  523. package/dist/components/biz/example/button/variants.mjs +1 -22
  524. package/dist/components/biz/renderer/renderer.mjs +1 -73
  525. package/dist/components/biz/utils/constants/card-spec.mjs +1 -48
  526. package/dist/components/biz/utils/helpers/get-channel-list.mjs +1 -14
  527. package/dist/components/biz/utils/helpers/url.mjs +1 -16
  528. package/dist/components/biz/utils/schema/data.mjs +1 -22
  529. package/dist/components/biz/utils/styles/helpers.mjs +1 -84
  530. package/dist/components/biz/utils/styles/schema.mjs +1 -306
  531. package/dist/components/biz/utils/transformers/card-grid.mjs +1 -67
  532. package/dist/components/biz/utils/transformers/data.mjs +1 -171
  533. package/dist/components/common/analytics-init/analytics-init.mjs +1 -75
  534. package/dist/components/common/analytics-init/page-lifecycle-tracker.mjs +1 -248
  535. package/dist/components/common/analytics-init/sensor-init.mjs +1 -126
  536. package/dist/components/common/at-element/index.mjs +1 -47
  537. package/dist/components/common/background-preview-modal/background-preview-modal.mjs +1 -73
  538. package/dist/components/common/blocked-dialog/blocked-dialog.mjs +1 -54
  539. package/dist/components/common/cards/mini-three-card.mjs +1 -55
  540. package/dist/components/common/cards/style.module.mjs +24 -12
  541. package/dist/components/common/collection-popup/create-collection-sheet.mjs +1 -271
  542. package/dist/components/common/collection-popup/index.mjs +1 -293
  543. package/dist/components/common/debug-locale-switcher/index.mjs +1 -59
  544. package/dist/components/common/delete-confirm-dialog/delete-confirm-dialog.mjs +1 -66
  545. package/dist/components/common/empty/index.mjs +1 -51
  546. package/dist/components/common/follow-button/index.mjs +1 -133
  547. package/dist/components/common/follow-button/unfollow-confirm-dialog.mjs +1 -23
  548. package/dist/components/common/funhub-provider/funhub-provider.mjs +1 -50
  549. package/dist/components/common/header-nav/client.mjs +1 -51
  550. package/dist/components/common/icons/add.mjs +1 -21
  551. package/dist/components/common/icons/comment.mjs +1 -30
  552. package/dist/components/common/icons/delete.mjs +1 -32
  553. package/dist/components/common/icons/left-arrow.mjs +1 -15
  554. package/dist/components/common/icons/more.mjs +1 -30
  555. package/dist/components/common/icons/right-arrow.mjs +1 -19
  556. package/dist/components/common/icons/setting.mjs +1 -27
  557. package/dist/components/common/icons/share.mjs +1 -20
  558. package/dist/components/common/icons/video.mjs +1 -22
  559. package/dist/components/common/image-crop-modal/image-crop-modal.mjs +2 -128
  560. package/dist/components/common/info-card/card-header.mjs +1 -71
  561. package/dist/components/common/info-card/card-text.mjs +1 -49
  562. package/dist/components/common/interaction-animations.module.mjs +84 -14
  563. package/dist/components/common/intl-provider/intl-provider.mjs +1 -21
  564. package/dist/components/common/keep-scroll-position/index.mjs +1 -39
  565. package/dist/components/common/list/collection-list/collection-list-item.mjs +1 -139
  566. package/dist/components/common/list/collection-list/collection-list.mjs +1 -27
  567. package/dist/components/common/list/collection-list/collection-select-icon.mjs +1 -53
  568. package/dist/components/common/list/post-list/post-list-item.mjs +1 -54
  569. package/dist/components/common/list/post-list/post-list.mjs +1 -143
  570. package/dist/components/common/list/user-activity-list/user-activity-list-actions.mjs +1 -269
  571. package/dist/components/common/list/user-activity-list/user-activity-list-item.mjs +1 -469
  572. package/dist/components/common/list/user-activity-list/user-activity-list.mjs +1 -143
  573. package/dist/components/common/list/video-list/video-list-item.mjs +1 -100
  574. package/dist/components/common/list/video-list/video-list.mjs +1 -152
  575. package/dist/components/common/list/waterfall-recommend/recommend-badge-style.mjs +1 -18
  576. package/dist/components/common/list/waterfall-recommend/waterfall-recommend-display.mjs +1 -26
  577. package/dist/components/common/list/waterfall-recommend/waterfall-recommend.mjs +1 -183
  578. package/dist/components/common/locale-sync/locale-sync.mjs +1 -62
  579. package/dist/components/common/login-dialog/login-dialog.mjs +1 -46
  580. package/dist/components/common/media-preview/index.mjs +1 -162
  581. package/dist/components/common/media-preview/video-play.mjs +1 -237
  582. package/dist/components/common/page-loading/index.mjs +1 -20
  583. package/dist/components/common/page-skeleton/page-skeleton.mjs +1 -7
  584. package/dist/components/common/photo-grid/common-photo-grid.mjs +1 -321
  585. package/dist/components/common/photo-grid/index.mjs +1 -226
  586. package/dist/components/common/photo-preview/common-photo-preview.mjs +1 -97
  587. package/dist/components/common/photo-preview/decrypt-loading.mjs +2 -66
  588. package/dist/components/common/photo-preview/index.mjs +1 -64
  589. package/dist/components/common/photo-preview/style.mjs +19 -7
  590. package/dist/components/common/picker/gender-picker/gender-picker.mjs +1 -66
  591. package/dist/components/common/picker/picker-drawer/picker-drawer.mjs +1 -78
  592. package/dist/components/common/popup-video/index.mjs +1 -98
  593. package/dist/components/common/popup-video/popup-video.module.mjs +16 -7
  594. package/dist/components/common/series-episodes/index.mjs +1 -826
  595. package/dist/components/common/share-popup/share-content.mjs +1 -155
  596. package/dist/components/common/share-popup/share-drawer.mjs +1 -100
  597. package/dist/components/common/share-popup/share-popup.mjs +1 -326
  598. package/dist/components/common/skeleton/post-list-item-skeleton.mjs +1 -99
  599. package/dist/components/common/skeleton/user-activity-list-item-skeleton.mjs +1 -146
  600. package/dist/components/common/skeleton/video-list-item-skeleton.mjs +1 -110
  601. package/dist/components/common/tab-bar/index.mjs +1 -150
  602. package/dist/components/common/theme-sync/index.mjs +1 -22
  603. package/dist/components/common/top-nav-bar/client.mjs +1 -70
  604. package/dist/components/common/top-nav-bar/fullscreen.mjs +1 -27
  605. package/dist/components/common/top-nav-bar/index.mjs +1 -29
  606. package/dist/components/common/top-nav-bar/normal.mjs +1 -20
  607. package/dist/components/common/user-info-initializer/index.mjs +1 -37
  608. package/dist/components/common/video-player/create-video.mjs +2 -27
  609. package/dist/components/common/video-player/index.mjs +5 -700
  610. package/dist/components/common/video-player/playing-videos.mjs +1 -73
  611. package/dist/components/common/video-player/preroll-skip-button-content.mjs +1 -20
  612. package/dist/components/common/video-player/process-m3u8-cache.mjs +1 -281
  613. package/dist/components/common/video-player/style.module.mjs +260 -7
  614. package/dist/components/common/video-player/video-blind-ad-overlay.mjs +1 -155
  615. package/dist/components/common/video-player/video-player-ref-context.mjs +1 -18
  616. package/dist/components/common/video-player/video-preroll-ad-overlay.mjs +1 -167
  617. package/dist/components/common/video-player/video-preroll-ad.mjs +1 -187
  618. package/dist/components/common/wait-loading.mjs +1 -119
  619. package/dist/components/pages/(follow)/_components/follow-button/index.mjs +1 -80
  620. package/dist/components/pages/(follow)/_components/header-nav/index.mjs +1 -13
  621. package/dist/components/pages/(follow)/_components/interaction-tabs/index.mjs +1 -44
  622. package/dist/components/pages/(follow)/_components/user-list/index.mjs +1 -139
  623. package/dist/components/pages/(follow)/_components/user-list/user-list-item.mjs +1 -46
  624. package/dist/components/pages/(follow)/fans/index.mjs +1 -10
  625. package/dist/components/pages/(follow)/fans/page.mjs +1 -95
  626. package/dist/components/pages/(follow)/followed/index.mjs +1 -10
  627. package/dist/components/pages/(follow)/followed/page.mjs +1 -95
  628. package/dist/components/pages/collection-add/index.mjs +1 -10
  629. package/dist/components/pages/collection-add/page.mjs +1 -164
  630. package/dist/components/pages/collection-create/form.mjs +1 -164
  631. package/dist/components/pages/collection-create/index.mjs +1 -10
  632. package/dist/components/pages/collection-create/page.mjs +1 -28
  633. package/dist/components/pages/collection-detail/_components/collection-detail-card.mjs +1 -183
  634. package/dist/components/pages/collection-detail/_components/collection-detail-video-card.mjs +1 -135
  635. package/dist/components/pages/collection-detail/detail.mjs +1 -539
  636. package/dist/components/pages/collection-detail/index.mjs +1 -10
  637. package/dist/components/pages/collection-detail/page.mjs +1 -18
  638. package/dist/components/pages/edit/index.mjs +1 -10
  639. package/dist/components/pages/edit/page.mjs +1 -683
  640. package/dist/components/pages/feed-series/feed-series-client.mjs +1 -383
  641. package/dist/components/pages/feed-series/page.mjs +1 -97
  642. package/dist/components/pages/feedback/_components/feedback-form.mjs +1 -271
  643. package/dist/components/pages/feedback/index.mjs +1 -10
  644. package/dist/components/pages/feedback/page.mjs +1 -10
  645. package/dist/components/pages/fullscreen-feed/index.mjs +1 -10
  646. package/dist/components/pages/fullscreen-feed/page.mjs +1 -105
  647. package/dist/components/pages/home/channel-matcher.mjs +1 -30
  648. package/dist/components/pages/home/client.mjs +1 -149
  649. package/dist/components/pages/home/index.mjs +1 -59
  650. package/dist/components/pages/login/agreement-dialog.mjs +1 -104
  651. package/dist/components/pages/login/auth-guard.mjs +1 -37
  652. package/dist/components/pages/login/auth-page-styles.mjs +2 -17
  653. package/dist/components/pages/login/forgot.mjs +1 -136
  654. package/dist/components/pages/login/index.mjs +1 -107
  655. package/dist/components/pages/login/login-client.mjs +1 -233
  656. package/dist/components/pages/login/password.mjs +1 -186
  657. package/dist/components/pages/login/register.mjs +1 -204
  658. package/dist/components/pages/login/reset-password.mjs +1 -193
  659. package/dist/components/pages/login/tracking.mjs +1 -32
  660. package/dist/components/pages/login/verify.mjs +1 -243
  661. package/dist/components/pages/post-detail/page.mjs +1 -28
  662. package/dist/components/pages/post-detail/post-detail-client.mjs +1 -516
  663. package/dist/components/pages/profile/index.mjs +1 -10
  664. package/dist/components/pages/profile/page.mjs +1 -28
  665. package/dist/components/pages/publish/components/collection-card.mjs +1 -49
  666. package/dist/components/pages/publish/components/collection-popup.mjs +1 -81
  667. package/dist/components/pages/publish/components/collection.mjs +1 -97
  668. package/dist/components/pages/publish/components/cover-item.mjs +1 -46
  669. package/dist/components/pages/publish/components/editor.mjs +1 -208
  670. package/dist/components/pages/publish/components/header.mjs +1 -31
  671. package/dist/components/pages/publish/components/material-grid.mjs +1 -52
  672. package/dist/components/pages/publish/components/material-item.mjs +1 -68
  673. package/dist/components/pages/publish/components/toolbar.mjs +1 -39
  674. package/dist/components/pages/publish/components/upload-progress.mjs +1 -53
  675. package/dist/components/pages/publish/components/video-item.mjs +1 -36
  676. package/dist/components/pages/publish/constants.mjs +1 -8
  677. package/dist/components/pages/publish/hooks/use-file-upload.mjs +1 -162
  678. package/dist/components/pages/publish/page-client.mjs +1 -345
  679. package/dist/components/pages/publish/page.mjs +1 -11
  680. package/dist/components/pages/publish/utils/file-upload.mjs +1 -155
  681. package/dist/components/pages/publish/utils/publish-utils.mjs +1 -11
  682. package/dist/components/pages/search/hot-recommend.mjs +1 -192
  683. package/dist/components/pages/search/hot-search.mjs +1 -70
  684. package/dist/components/pages/search/index.mjs +1 -17
  685. package/dist/components/pages/search/page-client.mjs +1 -211
  686. package/dist/components/pages/search/search-result/index.mjs +1 -31
  687. package/dist/components/pages/search/search-result/search-all.mjs +1 -167
  688. package/dist/components/pages/search/search-result/search-user.mjs +1 -306
  689. package/dist/components/pages/search/search-result/search-video-info.mjs +1 -134
  690. package/dist/components/pages/search/search-result/shared.mjs +1 -114
  691. package/dist/components/pages/search/style.module.mjs +85 -12
  692. package/dist/components/pages/search/top-header.mjs +1 -131
  693. package/dist/components/pages/search/tracking.mjs +1 -51
  694. package/dist/components/pages/search-result/page-client.mjs +1 -130
  695. package/dist/components/pages/search-result/search-all.mjs +1 -180
  696. package/dist/components/pages/search-result/search-empty.mjs +1 -52
  697. package/dist/components/pages/search-result/search-tab.mjs +1 -95
  698. package/dist/components/pages/search-result/search-user.mjs +1 -315
  699. package/dist/components/pages/search-result/search-video-info.mjs +1 -195
  700. package/dist/components/pages/search-result/shared.mjs +1 -46
  701. package/dist/components/pages/search-result/top-header.mjs +1 -105
  702. package/dist/components/pages/search-result/tracking.mjs +1 -39
  703. package/dist/components/pages/settings/_components/reset-password-drawer.mjs +1 -381
  704. package/dist/components/pages/settings/_components/settings.mjs +1 -192
  705. package/dist/components/pages/settings/index.mjs +1 -10
  706. package/dist/components/pages/settings/page.mjs +1 -13
  707. package/dist/components/pages/user-follow/_components/follow-no-login.mjs +1 -34
  708. package/dist/components/pages/user-follow/_components/follow-top-header.mjs +1 -25
  709. package/dist/components/pages/user-follow/_components/post-tab.mjs +1 -96
  710. package/dist/components/pages/user-follow/index.mjs +1 -10
  711. package/dist/components/pages/user-follow/page.mjs +1 -106
  712. package/dist/components/pages/user-follow/skeleton.mjs +1 -62
  713. package/dist/components/pages/video-detail/page.mjs +1 -47
  714. package/dist/components/pages/video-detail/video-detail-client.mjs +1 -395
  715. package/dist/components/pages/video-list/index.mjs +1 -61
  716. package/dist/components/pages/video-list/types.mjs +1 -16
  717. package/dist/components/pages/video-list/video-list-client.mjs +1 -144
  718. package/dist/components/pages/video-list/video-list-recommend-item.mjs +1 -94
  719. package/dist/components/pages/video-list/video-list-skeleton.mjs +1 -91
  720. package/dist/components/ui/accordion.mjs +1 -62
  721. package/dist/components/ui/alert-dialog.mjs +1 -114
  722. package/dist/components/ui/alert.mjs +1 -50
  723. package/dist/components/ui/aspect-ratio.mjs +1 -17
  724. package/dist/components/ui/avatar.mjs +1 -107
  725. package/dist/components/ui/badge.d.mts +1 -1
  726. package/dist/components/ui/badge.mjs +1 -38
  727. package/dist/components/ui/box.mjs +1 -17
  728. package/dist/components/ui/breadcrumb.mjs +1 -84
  729. package/dist/components/ui/button-group.mjs +1 -49
  730. package/dist/components/ui/button.d.mts +1 -1
  731. package/dist/components/ui/button.mjs +1 -50
  732. package/dist/components/ui/card.mjs +1 -65
  733. package/dist/components/ui/carousel.mjs +1 -142
  734. package/dist/components/ui/checkbox.mjs +1 -25
  735. package/dist/components/ui/collapsible.mjs +1 -31
  736. package/dist/components/ui/combobox.mjs +1 -185
  737. package/dist/components/ui/context-menu.mjs +1 -150
  738. package/dist/components/ui/dialog.mjs +1 -109
  739. package/dist/components/ui/drawer.mjs +1 -91
  740. package/dist/components/ui/dropdown-menu.mjs +1 -154
  741. package/dist/components/ui/empty-icons.mjs +7 -96
  742. package/dist/components/ui/empty.mjs +1 -95
  743. package/dist/components/ui/field.mjs +1 -131
  744. package/dist/components/ui/hover-card.mjs +1 -43
  745. package/dist/components/ui/image.mjs +1 -257
  746. package/dist/components/ui/infinite-scroll.mjs +1 -168
  747. package/dist/components/ui/input-group.mjs +1 -90
  748. package/dist/components/ui/input.mjs +1 -19
  749. package/dist/components/ui/item.mjs +1 -137
  750. package/dist/components/ui/kbd.mjs +1 -24
  751. package/dist/components/ui/label.mjs +1 -18
  752. package/dist/components/ui/legacy/badge.mjs +1 -80
  753. package/dist/components/ui/legacy/button.mjs +1 -55
  754. package/dist/components/ui/legacy/input.mjs +1 -22
  755. package/dist/components/ui/legacy/popover.mjs +1 -69
  756. package/dist/components/ui/link.mjs +1 -52
  757. package/dist/components/ui/list.mjs +5 -221
  758. package/dist/components/ui/loading.mjs +1 -44
  759. package/dist/components/ui/mask.mjs +1 -17
  760. package/dist/components/ui/menubar.mjs +1 -154
  761. package/dist/components/ui/native-select.mjs +1 -43
  762. package/dist/components/ui/pagination.mjs +1 -90
  763. package/dist/components/ui/popover.mjs +1 -73
  764. package/dist/components/ui/popup.mjs +1 -44
  765. package/dist/components/ui/progress.mjs +1 -53
  766. package/dist/components/ui/radio-group.mjs +1 -34
  767. package/dist/components/ui/rate.mjs +1 -69
  768. package/dist/components/ui/scroll-area.mjs +1 -43
  769. package/dist/components/ui/select.mjs +1 -113
  770. package/dist/components/ui/separator.mjs +1 -20
  771. package/dist/components/ui/sheet.mjs +1 -109
  772. package/dist/components/ui/skeleton.mjs +1 -16
  773. package/dist/components/ui/slider.mjs +1 -46
  774. package/dist/components/ui/sonner.mjs +1 -34
  775. package/dist/components/ui/spinner.mjs +1 -18
  776. package/dist/components/ui/switch.mjs +1 -65
  777. package/dist/components/ui/table.mjs +1 -78
  778. package/dist/components/ui/tabs.mjs +1 -54
  779. package/dist/components/ui/text.mjs +1 -20
  780. package/dist/components/ui/textarea.mjs +1 -16
  781. package/dist/components/ui/time.mjs +1 -91
  782. package/dist/components/ui/toggle-group.mjs +1 -59
  783. package/dist/components/ui/toggle.mjs +1 -41
  784. package/dist/components/ui/tooltip.mjs +1 -49
  785. package/dist/components/ui/wheel-picker.mjs +1 -28
  786. package/dist/constants/event-key.mjs +1 -18
  787. package/dist/constants/query-key.mjs +1 -32
  788. package/dist/constants/revalidate.mjs +1 -9
  789. package/dist/constants/site.mjs +1 -11
  790. package/dist/constants/url-prefix.mjs +1 -11
  791. package/dist/hooks/image-text-recommend.mjs +1 -71
  792. package/dist/hooks/query/hydration-boundary.mjs +1 -34
  793. package/dist/hooks/query/use-query.mjs +1 -114
  794. package/dist/hooks/use-auth.mjs +1 -198
  795. package/dist/hooks/use-browse-report.mjs +1 -489
  796. package/dist/hooks/use-card-decoration.mjs +1 -96
  797. package/dist/hooks/use-content-operate.mjs +1 -526
  798. package/dist/hooks/use-first-row-height.mjs +1 -105
  799. package/dist/hooks/use-follow.mjs +1 -69
  800. package/dist/hooks/use-fullscreen-gestures.mjs +1 -144
  801. package/dist/hooks/use-interaction-animation.mjs +1 -26
  802. package/dist/hooks/use-is-client.mjs +1 -20
  803. package/dist/hooks/use-keyboard-open.mjs +1 -56
  804. package/dist/hooks/use-like-dislike.mjs +1 -40
  805. package/dist/hooks/use-min-duration-loading.mjs +1 -63
  806. package/dist/hooks/use-search-history.mjs +1 -53
  807. package/dist/hooks/use-sticky.mjs +1 -50
  808. package/dist/hooks.mjs +1 -17
  809. package/dist/i18n/locales/en.mjs +3 -836
  810. package/dist/i18n/locales/zh-CN.mjs +3 -836
  811. package/dist/i18n/messages.mjs +1 -20
  812. package/dist/i18n/translator.mjs +1 -38
  813. package/dist/i18n.mjs +1 -165
  814. package/dist/materials.mjs +1 -73
  815. package/dist/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.mjs +1 -17
  816. package/dist/pages.mjs +1 -23
  817. package/dist/seo/build-metadata.mjs +1 -163
  818. package/dist/seo/config/index.mjs +1 -22
  819. package/dist/seo/config/page.mjs +6 -301
  820. package/dist/seo/config/site.mjs +1 -25
  821. package/dist/seo/constants.mjs +1 -31
  822. package/dist/seo/helpers.mjs +1 -120
  823. package/dist/seo/resource-hints.mjs +1 -60
  824. package/dist/seo/robots.mjs +1 -36
  825. package/dist/seo/sitemap.mjs +1 -44
  826. package/dist/seo/structured-data/article.mjs +1 -51
  827. package/dist/seo/structured-data/common.mjs +1 -60
  828. package/dist/seo/structured-data/video.mjs +1 -41
  829. package/dist/seo/viewport.mjs +1 -31
  830. package/dist/seo.mjs +1 -15
  831. package/dist/service/advertisement.mjs +1 -88
  832. package/dist/service/generated/client.mjs +1 -1281
  833. package/dist/service/generated/tanstack.mjs +1 -1179
  834. package/dist/service/register-by-verify-email-code.mjs +1 -17
  835. package/dist/service.mjs +1 -6
  836. package/dist/store/create-store.mjs +1 -25
  837. package/dist/store/modules/app-config-store.mjs +1 -28
  838. package/dist/store/modules/blind-spot-ad-store.mjs +1 -95
  839. package/dist/store/modules/blocked-modal-store.mjs +1 -30
  840. package/dist/store/modules/follow-ids-store.mjs +1 -12
  841. package/dist/store/modules/login-modal-store.mjs +1 -155
  842. package/dist/store/modules/media-preview-store.mjs +1 -54
  843. package/dist/store/modules/publish-store.mjs +1 -31
  844. package/dist/store/modules/use-demo-store.mjs +1 -17
  845. package/dist/store/modules/user-store.mjs +1 -133
  846. package/dist/store/modules/video-player-ref-store.mjs +1 -13
  847. package/dist/store.mjs +1 -12
  848. package/dist/theme-tokens.mjs +1 -82
  849. package/dist/types/safe-at-user.mjs +1 -15
  850. package/dist/types/safe-comment.mjs +1 -30
  851. package/dist/types/safe-grid.mjs +1 -36
  852. package/dist/types/safe-replay.mjs +1 -43
  853. package/dist/types/share.mjs +1 -16
  854. package/dist/ui.mjs +1 -58
  855. package/dist/utils/api-collect.mjs +1 -14
  856. package/dist/utils/browser-fingerprint.mjs +1 -53
  857. package/dist/utils/channel-storage.mjs +1 -57
  858. package/dist/utils/cn.mjs +1 -15
  859. package/dist/utils/common.mjs +1 -311
  860. package/dist/utils/db.mjs +1 -80
  861. package/dist/utils/decrypt-image-client.mjs +1 -325
  862. package/dist/utils/decrypt.worker.mjs +2 -20
  863. package/dist/utils/device-id.mjs +1 -20
  864. package/dist/utils/email-validator.mjs +1 -108
  865. package/dist/utils/event-bus.mjs +1 -33
  866. package/dist/utils/follow-service.mjs +1 -87
  867. package/dist/utils/get-res-url.mjs +1 -94
  868. package/dist/utils/helper.mjs +1 -33
  869. package/dist/utils/http.mjs +1 -202
  870. package/dist/utils/image-compression.mjs +1 -59
  871. package/dist/utils/image-crop.mjs +1 -63
  872. package/dist/utils/loaders.mjs +1 -51
  873. package/dist/utils/login-modal-bridge.mjs +1 -65
  874. package/dist/utils/media.mjs +1 -128
  875. package/dist/utils/password-validator.mjs +1 -86
  876. package/dist/utils/request-user-id.mjs +1 -16
  877. package/dist/utils/s3-uploader.mjs +1 -40
  878. package/dist/utils/schema/material.mjs +1 -24
  879. package/dist/utils/schema/schema.mjs +1 -207
  880. package/dist/utils/schema/utils.mjs +1 -27
  881. package/dist/utils/share-manager.mjs +1 -183
  882. package/dist/utils/tools.mjs +1 -92
  883. package/dist/utils/tracking.mjs +1 -183
  884. package/dist/utils/uint8.mjs +1 -46
  885. package/dist/utils/upload-file.mjs +1 -429
  886. package/dist/utils/use-compatible-router.mjs +1 -84
  887. package/dist/utils.mjs +1 -27
  888. package/package.json +1 -1
  889. package/theme.css +1 -1
@@ -1,773 +1,6 @@
1
1
 
2
- 'use client';
3
-
4
- import { getAtUserElement, stripHtmlTags } from "../../../../utils/common.mjs";
5
- import { cn } from "../../../../utils/cn.mjs";
6
- import { useUserStore } from "../../../../store/modules/user-store.mjs";
7
- import { createInputAndSelectFile, getCoverImage, getImageResolutionFromFile } from "../../../../utils/media.mjs";
8
- import { uploadFile } from "../../../../utils/upload-file.mjs";
9
- import { Image } from "../../../ui/image.mjs";
10
- import { Dialog, DialogContent } from "../../../ui/dialog.mjs";
11
- import { useLoginModalStore } from "../../../../store/modules/login-modal-store.mjs";
12
- import SvgClose from "../../../../assets/icons/close.mjs";
13
- import SvgVideoPlay from "../../../../assets/icons/detail/video_play.mjs";
14
- import SvgCommetAt from "../../../../assets/icons/detail/commet_at.mjs";
15
- import SvgPublishPic from "../../../../assets/icons/detail/publish_pic.mjs";
16
- import SvgPublishVideo from "../../../../assets/icons/detail/publish_video.mjs";
17
- import { UploadProgress } from "../../../pages/publish/components/upload-progress.mjs";
18
- import { ContactList } from "../contact/contact-list.mjs";
19
- import { useKeyboardHandler } from "./use-keyboard-handler.mjs";
20
- import { toast } from "sonner";
21
- import { memo, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from "react";
22
- import { jsx, jsxs } from "react/jsx-runtime";
23
- import { useTranslations } from "next-intl";
24
-
25
- //#region components/biz/business/comment/comment-input.tsx
26
- const MAX_IMAGE_COUNT = 9;
27
- /**
28
- * 从剪贴板事件中提取纯文本内容。
29
- * - 优先读取 `text/plain`
30
- * - 若为空则尝试从 `text/html` 解析出文本(忽略富文本样式)
31
- */
32
- function getPlainTextFromClipboard(event) {
33
- const clipboardData = event.clipboardData;
34
- if (!clipboardData) return "";
35
- const plain = clipboardData.getData("text/plain");
36
- if (plain) return plain;
37
- const html = clipboardData.getData("text/html");
38
- if (!html) return "";
39
- try {
40
- return new DOMParser().parseFromString(html, "text/html").body.textContent || "";
41
- } catch {
42
- return "";
43
- }
44
- }
45
- /**
46
- * 按最大字符数截断文本:换行不计入长度(与 stripHtmlTags 对 `<br>` 的行为保持一致)。
47
- */
48
- function truncateTextIgnoringNewlines(text, maxLength) {
49
- if (maxLength <= 0) return "";
50
- let length = 0;
51
- let result = "";
52
- for (const char of text) {
53
- if (char !== "\n") {
54
- length++;
55
- if (length > maxLength) break;
56
- }
57
- result += char;
58
- }
59
- return result;
60
- }
61
- /**
62
- * 将纯文本按当前光标位置插入到 contentEditable 中,并支持换行。
63
- */
64
- function insertPlainTextAtSelection(editable, text) {
65
- if (!text) return;
66
- const selection = window.getSelection();
67
- let range = null;
68
- if (selection && selection.rangeCount > 0) range = selection.getRangeAt(0);
69
- if (!range || !editable.contains(range.commonAncestorContainer)) {
70
- editable.focus();
71
- range = document.createRange();
72
- range.selectNodeContents(editable);
73
- range.collapse(false);
74
- }
75
- range.deleteContents();
76
- const fragment = document.createDocumentFragment();
77
- const lines = text.split("\n");
78
- lines.forEach((line, index) => {
79
- if (line) fragment.appendChild(document.createTextNode(line));
80
- if (index < lines.length - 1) fragment.appendChild(document.createElement("br"));
81
- });
82
- const lastNode = fragment.lastChild;
83
- range.insertNode(fragment);
84
- if (selection && lastNode) {
85
- const nextRange = document.createRange();
86
- nextRange.setStartAfter(lastNode);
87
- nextRange.collapse(true);
88
- selection.removeAllRanges();
89
- selection.addRange(nextRange);
90
- }
91
- }
92
- /**
93
- * 内容输入框中不允许出现的媒体元素。
94
- * - 主要用于兜底处理:某些浏览器/设备在粘贴图片时不会触发 onPaste,导致图片直接插入 contentEditable。
95
- */
96
- const DISALLOWED_MEDIA_SELECTOR = "img,video,audio,iframe,object,embed,svg,canvas";
97
- /**
98
- * 评论图片/视频预览条(按 web-monorepo `comment-input` 的样式迁移)。
99
- */
100
- const CommentUploadGroup = memo(({ imageVideoInfoList, onDelete, variant = "dark" }) => {
101
- if (imageVideoInfoList.length === 0) return null;
102
- const isLight = variant === "light";
103
- return /* @__PURE__ */ jsx("div", {
104
- className: cn("w-full overflow-hidden", isLight ? "px-4" : "h-[76px] px-[16px]"),
105
- children: /* @__PURE__ */ jsx("div", {
106
- className: cn(isLight ? "flex items-center gap-3 overflow-x-auto py-3" : "w-full h-[calc(100%+60px)] pb-[60px] overflow-x-auto flex items-center flex-nowrap"),
107
- children: imageVideoInfoList.map((item, index) => {
108
- const src = item.is_video ? item.cover_image || item.image_url : item.image_url || item.cover_image;
109
- return /* @__PURE__ */ jsxs("div", {
110
- className: cn("w-[60px] h-[60px] rounded-[8px] overflow-hidden shrink-0 flex items-center justify-center bg-bg2 relative", !isLight && index > 0 && "ml-[12px]"),
111
- onClick: (event) => {
112
- if (event.target.closest("[data-delete-button]")) event.stopPropagation();
113
- },
114
- children: [
115
- src && /* @__PURE__ */ jsx(Image, {
116
- src,
117
- alt: "media",
118
- fill: true,
119
- objectFit: "cover"
120
- }),
121
- /* @__PURE__ */ jsx("button", {
122
- type: "button",
123
- className: "cursor-pointer absolute top-0 right-0 p-[4px] z-[1]",
124
- "data-delete-button": "true",
125
- onClick: () => onDelete(index),
126
- children: /* @__PURE__ */ jsx(SvgClose, { className: "w-[12px] h-[12px] text-[#fff] drop-shadow-[0_1px_2px_rgba(0,0,0,0.5)]" })
127
- }),
128
- item.is_video && /* @__PURE__ */ jsx("div", {
129
- className: "absolute w-[24px] h-[24px] rounded-[12px] bg-[rgba(0,0,0,0.5)] top-0 right-0 bottom-0 left-0 m-auto flex items-center justify-center",
130
- children: /* @__PURE__ */ jsx(SvgVideoPlay, { className: "w-[12px] h-[12px] text-[#fff]" })
131
- })
132
- ]
133
- }, `${item.is_video ? "video" : "image"}-${index}`);
134
- })
135
- })
136
- });
137
- });
138
- CommentUploadGroup.displayName = "CommentUploadGroup";
139
- /**
140
- * 评论输入框底部工具栏按钮(图片/视频/@)。
141
- */
142
- function CommentToolbarButton({ disabled, onClick, children, variant = "dark" }) {
143
- return /* @__PURE__ */ jsx("button", {
144
- type: "button",
145
- className: cn("flex h-12 flex-1 items-center justify-center", variant === "light" ? "text-text2 hover:bg-bg2/60" : "text-white hover:bg-white/10", disabled && "opacity-40"),
146
- disabled,
147
- onClick,
148
- children
149
- });
150
- }
151
- /**
152
- * 评论输入框(参考 web-monorepo `src/components/comment-input/index.tsx`)。
153
- * 仅负责输入/上传/@插入与发布回调,实际发布逻辑由外层 CommentList 处理。
154
- */
155
- function CommentInput({ ref, value = "", onChange, onPublish, onInputBlur, placeholder = "", className = "", maxLength = 200, publishText = "", autoFocus, disabled, onRequireLogin, variant = "dark" }) {
156
- const t = useTranslations("components.biz.business.comment");
157
- const isLight = variant === "light";
158
- const resolvedPublishText = publishText || t("commentInput.publishDefault");
159
- const resolvedPlaceholder = useMemo(() => {
160
- const text = placeholder || t("commentInput.placeholder");
161
- return text.length > 15 ? `${text.slice(0, 15)}...` : text;
162
- }, [placeholder, t]);
163
- const [inputValue, setInputValue] = useState(value);
164
- const [showToolbar, setShowToolbar] = useState(false);
165
- const [enableKeyboardDetection, setEnableKeyboardDetection] = useState(false);
166
- const containerRef = useRef(null);
167
- const textareaRef = useRef(null);
168
- const focusingRef = useRef(false);
169
- const lastFocusTimeRef = useRef(0);
170
- const lastDisallowedToastTimeRef = useRef(0);
171
- const [imageVideoInfoList, setImageVideoInfoList] = useState([]);
172
- const [visibleContact, setVisibleContact] = useState(false);
173
- const [uploadProgress, setUploadProgress] = useState(null);
174
- const [isPublishing, setIsPublishing] = useState(false);
175
- const isInputDisabled = disabled || isPublishing;
176
- const { isLogin } = useUserStore();
177
- const { open } = useLoginModalStore();
178
- const { containerStyle, onFocus: keyboardOnFocus, onBlur: keyboardOnBlur, inputRef } = useKeyboardHandler(enableKeyboardDetection);
179
- /**
180
- * 未登录时触发登录流程。
181
- */
182
- const handleRequireLogin = useCallback(() => {
183
- if (onRequireLogin) onRequireLogin();
184
- else open();
185
- }, [onRequireLogin, open]);
186
- useEffect(() => {
187
- if (textareaRef.current && value) textareaRef.current.innerHTML = value;
188
- }, [value]);
189
- useEffect(() => {
190
- if (typeof window === "undefined") return;
191
- window.dispatchEvent(new CustomEvent("funhub:visible-contact-change", { detail: { visible: visibleContact } }));
192
- }, [visibleContact]);
193
- useEffect(() => {
194
- if (!autoFocus || !textareaRef.current) return;
195
- if (!isLogin) {
196
- handleRequireLogin();
197
- return;
198
- }
199
- textareaRef.current.focus();
200
- setShowToolbar(true);
201
- }, [
202
- autoFocus,
203
- handleRequireLogin,
204
- isLogin
205
- ]);
206
- useEffect(() => {
207
- const handleDocumentClick = (event) => {
208
- const target = event.target;
209
- const isDeleteButton = target.closest("[data-delete-button]");
210
- const isInput = target.tagName === "INPUT" || target.tagName === "TEXTAREA";
211
- if (isDeleteButton || isInput) return;
212
- if (!containerRef.current?.contains(target)) {
213
- if (Date.now() - lastFocusTimeRef.current > 100) setShowToolbar(false);
214
- }
215
- };
216
- document.addEventListener("click", handleDocumentClick);
217
- return () => document.removeEventListener("click", handleDocumentClick);
218
- }, []);
219
- useImperativeHandle(ref, () => ({ focus: () => {
220
- const element = textareaRef.current;
221
- if (!element || focusingRef.current) return;
222
- focusingRef.current = true;
223
- try {
224
- if (!isLogin) {
225
- handleRequireLogin();
226
- return;
227
- }
228
- if (document.activeElement === element && showToolbar) return;
229
- element.focus();
230
- lastFocusTimeRef.current = Date.now();
231
- setShowToolbar(true);
232
- if (!enableKeyboardDetection) setEnableKeyboardDetection(true);
233
- keyboardOnFocus();
234
- } catch (error) {
235
- console.warn("CommentInput focus error", error);
236
- setShowToolbar(true);
237
- } finally {
238
- focusingRef.current = false;
239
- }
240
- } }), [
241
- enableKeyboardDetection,
242
- handleRequireLogin,
243
- isLogin,
244
- keyboardOnFocus,
245
- showToolbar
246
- ]);
247
- const resetLastTime = () => {
248
- lastFocusTimeRef.current = Date.now();
249
- };
250
- const moveCursorToEnd = useCallback(() => {
251
- if (!textareaRef.current) return;
252
- const range = document.createRange();
253
- const selection = window.getSelection();
254
- range.selectNodeContents(textareaRef.current);
255
- range.collapse(false);
256
- selection?.removeAllRanges();
257
- selection?.addRange(range);
258
- }, []);
259
- const setEditDivContent = useCallback((text) => {
260
- if (textareaRef.current) textareaRef.current.innerHTML = text;
261
- }, []);
262
- /**
263
- * 兜底拦截:如果输入框内被插入了媒体元素(如粘贴图片),立即移除并提示。
264
- */
265
- const stripDisallowedMediaElements = useCallback((editable) => {
266
- const mediaElements = editable.querySelectorAll(DISALLOWED_MEDIA_SELECTOR);
267
- if (mediaElements.length === 0) return false;
268
- mediaElements.forEach((node) => node.remove());
269
- const now = Date.now();
270
- if (now - lastDisallowedToastTimeRef.current > 1500) {
271
- lastDisallowedToastTimeRef.current = now;
272
- toast.info(t("commentInput.pasteFileNotSupported"));
273
- }
274
- return true;
275
- }, [t]);
276
- /**
277
- * 粘贴时仅允许纯文本:过滤/转换剪贴板富文本内容,避免将样式 HTML 注入到输入框。
278
- */
279
- const handlePaste = useCallback((event) => {
280
- const editable = textareaRef.current;
281
- if (!editable) return;
282
- if (isInputDisabled) {
283
- event.preventDefault();
284
- return;
285
- }
286
- if (!isLogin) {
287
- event.preventDefault();
288
- handleRequireLogin();
289
- editable.blur();
290
- return;
291
- }
292
- const clipboardData = event.clipboardData;
293
- if (!!clipboardData && Array.from(clipboardData.items || []).some((item) => item.kind === "file")) {
294
- event.preventDefault();
295
- event.stopPropagation();
296
- toast.info(t("commentInput.pasteFileNotSupported"));
297
- return;
298
- }
299
- const rawText = getPlainTextFromClipboard(event);
300
- if (!rawText) {
301
- event.preventDefault();
302
- return;
303
- }
304
- event.preventDefault();
305
- event.stopPropagation();
306
- const normalizedText = rawText.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
307
- const currentLength = stripHtmlTags(editable.innerHTML || "").length;
308
- const remaining = maxLength ? Math.max(0, maxLength - currentLength) : Infinity;
309
- if (remaining <= 0) return;
310
- insertPlainTextAtSelection(editable, Number.isFinite(remaining) ? truncateTextIgnoringNewlines(normalizedText, remaining) : normalizedText);
311
- stripDisallowedMediaElements(editable);
312
- const nextHtml = editable.innerHTML || "";
313
- setInputValue(nextHtml);
314
- onChange?.(nextHtml);
315
- }, [
316
- handleRequireLogin,
317
- isInputDisabled,
318
- isLogin,
319
- maxLength,
320
- onChange,
321
- stripDisallowedMediaElements,
322
- t
323
- ]);
324
- const handleInputChange = useCallback((event) => {
325
- let html = event.currentTarget.innerHTML || "";
326
- if (stripDisallowedMediaElements(event.currentTarget)) html = event.currentTarget.innerHTML || "";
327
- const realValue = stripHtmlTags(html);
328
- if (maxLength && realValue.length > maxLength) {
329
- html = html.substring(0, maxLength);
330
- setEditDivContent(html);
331
- moveCursorToEnd();
332
- }
333
- setInputValue(html);
334
- onChange?.(html);
335
- }, [
336
- maxLength,
337
- moveCursorToEnd,
338
- onChange,
339
- setEditDivContent,
340
- stripDisallowedMediaElements
341
- ]);
342
- /**
343
- * 禁止拖拽/放入文件到 contentEditable,避免出现直接插入图片的情况。
344
- */
345
- const handleDrop = useCallback((event) => {
346
- event.preventDefault();
347
- event.stopPropagation();
348
- const files = event.dataTransfer?.files;
349
- if (files && files.length > 0) toast.info(t("commentInput.dragFileNotSupported"));
350
- }, [t]);
351
- const handleDragOver = useCallback((event) => {
352
- event.preventDefault();
353
- }, []);
354
- const handleFocus = () => {
355
- if (isInputDisabled) return;
356
- if (!isLogin) {
357
- handleRequireLogin();
358
- textareaRef.current?.blur();
359
- return;
360
- }
361
- lastFocusTimeRef.current = Date.now();
362
- setShowToolbar(true);
363
- if (!enableKeyboardDetection) setEnableKeyboardDetection(true);
364
- keyboardOnFocus();
365
- };
366
- /**
367
- * 已聚焦但 toolbar 被关闭时,点击输入区域强制拉起 toolbar。
368
- */
369
- const handleInputClick = () => {
370
- if (isInputDisabled) {
371
- if (isPublishing) toast.info(t("commentInput.publishing"));
372
- return;
373
- }
374
- if (!isLogin) {
375
- handleRequireLogin();
376
- textareaRef.current?.blur();
377
- return;
378
- }
379
- lastFocusTimeRef.current = Date.now();
380
- if (!showToolbar) setShowToolbar(true);
381
- if (!enableKeyboardDetection) setEnableKeyboardDetection(true);
382
- keyboardOnFocus();
383
- };
384
- const handleBlur = () => {
385
- setTimeout(() => {
386
- if (Date.now() - lastFocusTimeRef.current > 200 && document.activeElement !== textareaRef.current) {
387
- setShowToolbar(false);
388
- onInputBlur?.();
389
- }
390
- }, 150);
391
- keyboardOnBlur();
392
- };
393
- const clearAllState = useCallback(() => {
394
- setInputValue("");
395
- setEditDivContent("");
396
- setImageVideoInfoList([]);
397
- setShowToolbar(false);
398
- }, [setEditDivContent]);
399
- const isInputEmpty = useMemo(() => stripHtmlTags(inputValue).trim().length === 0, [inputValue]);
400
- const isPublishEnabled = useMemo(() => {
401
- return !isInputEmpty || imageVideoInfoList.length > 0;
402
- }, [imageVideoInfoList.length, isInputEmpty]);
403
- const handleImageFileChange = useCallback(async () => {
404
- if (!isLogin) {
405
- handleRequireLogin();
406
- return;
407
- }
408
- if (imageVideoInfoList.some((item) => item.is_video)) return;
409
- const files = await createInputAndSelectFile("file", "image/*");
410
- if (!files || files.length === 0) return;
411
- const availableSlots = MAX_IMAGE_COUNT - imageVideoInfoList.length;
412
- const sliceFiles = Array.from(files).slice(0, availableSlots);
413
- if (sliceFiles.length === 0) return;
414
- const successList = [];
415
- let failed = 0;
416
- const total = sliceFiles.length;
417
- try {
418
- for (let i = 0; i < sliceFiles.length; i++) {
419
- const file = sliceFiles[i];
420
- setUploadProgress({
421
- currentFiles: successList.length,
422
- totalFiles: total,
423
- currentTasks: successList.length + failed,
424
- totalTasks: total
425
- });
426
- try {
427
- const { width, height } = await getImageResolutionFromFile(file);
428
- const result = await uploadFile(file, 1, true);
429
- successList.push({
430
- cover_image: "",
431
- cover_image_thumbnail: "",
432
- cover_image_radio: 1,
433
- cover_image_resolution: "",
434
- image_url: result.objectKey,
435
- image_thumbnail: result.objectKey,
436
- image_radio: Number((width / height).toFixed(2)),
437
- image_resolution: `${width}x${height}`,
438
- is_video: false,
439
- resolution: `${width}x${height}`,
440
- video_duration: 0,
441
- video_url: "",
442
- video_size: 0,
443
- video_codec_info: {
444
- hls_info: [],
445
- video_codec_deal: false
446
- }
447
- });
448
- } catch (error) {
449
- console.error("上传图片失败", error);
450
- failed += 1;
451
- }
452
- }
453
- if (successList.length === 0) toast.error(t("commentInput.imageUploadFailed"));
454
- else {
455
- if (failed > 0) toast.warning(t("commentInput.partialImageUploadFailed"));
456
- setImageVideoInfoList((prev) => [...prev, ...successList]);
457
- }
458
- } finally {
459
- setUploadProgress(null);
460
- }
461
- }, [
462
- handleRequireLogin,
463
- imageVideoInfoList,
464
- isLogin,
465
- t
466
- ]);
467
- const handleVideoFileChange = useCallback(async () => {
468
- if (!isLogin) {
469
- handleRequireLogin();
470
- return;
471
- }
472
- if (imageVideoInfoList.length > 0) {
473
- toast.error(t("commentInput.cannotSelectVideoWhenImageSelected"));
474
- return;
475
- }
476
- const files = await createInputAndSelectFile("file", "video/*");
477
- if (!files || files.length === 0) return;
478
- const file = files[0];
479
- try {
480
- setUploadProgress({
481
- currentFiles: 0,
482
- totalFiles: 1,
483
- currentTasks: 0,
484
- totalTasks: 2
485
- });
486
- const videoResult = await uploadFile(file, 2, false);
487
- const [coverFile, width, height, duration] = await getCoverImage(file);
488
- setUploadProgress({
489
- currentFiles: 0,
490
- totalFiles: 1,
491
- currentTasks: 1,
492
- totalTasks: 2
493
- });
494
- const coverUploadResult = await uploadFile(coverFile, 1, true);
495
- setImageVideoInfoList([{
496
- cover_image: coverUploadResult.objectKey,
497
- cover_image_thumbnail: coverUploadResult.objectKey,
498
- cover_image_radio: Number((width / height).toFixed(2)),
499
- cover_image_resolution: `${width}x${height}`,
500
- image_url: coverUploadResult.objectKey,
501
- image_thumbnail: coverUploadResult.objectKey,
502
- image_radio: Number((width / height).toFixed(2)),
503
- image_resolution: `${width}x${height}`,
504
- is_video: true,
505
- resolution: `${width}x${height}`,
506
- video_duration: duration,
507
- video_url: videoResult.objectKey,
508
- video_size: file.size,
509
- video_codec_info: {
510
- hls_info: [],
511
- video_codec_deal: false
512
- }
513
- }]);
514
- } catch (error) {
515
- console.error("视频上传失败", error);
516
- toast.error(t("commentInput.videoUploadFailed"));
517
- } finally {
518
- setUploadProgress(null);
519
- }
520
- }, [
521
- handleRequireLogin,
522
- imageVideoInfoList.length,
523
- isLogin,
524
- t
525
- ]);
526
- const handlePublish = useCallback(async (event) => {
527
- event.preventDefault();
528
- event.stopPropagation();
529
- if (!isPublishEnabled || disabled || isPublishing) return;
530
- if (!isLogin) {
531
- if (onRequireLogin) onRequireLogin();
532
- else open();
533
- return;
534
- }
535
- try {
536
- setIsPublishing(true);
537
- const result = await onPublish?.({
538
- text: inputValue === "<br>" ? "" : inputValue,
539
- imageVideoInfoList
540
- });
541
- if (result && result.success === false) {
542
- if (!result.toastHandled) toast.error(result.message || "发布评论失败");
543
- return;
544
- }
545
- toast.success(t("commentInput.publishSuccess"));
546
- clearAllState();
547
- onChange?.("");
548
- } catch (error) {
549
- console.error("发布评论失败:", error);
550
- toast.error(t("commentInput.publishCommentFailed"));
551
- } finally {
552
- setIsPublishing(false);
553
- }
554
- }, [
555
- clearAllState,
556
- disabled,
557
- imageVideoInfoList,
558
- inputValue,
559
- isLogin,
560
- isPublishEnabled,
561
- isPublishing,
562
- onChange,
563
- onPublish,
564
- onRequireLogin,
565
- open,
566
- t
567
- ]);
568
- const canSelectImage = useMemo(() => {
569
- return !imageVideoInfoList.some((item) => item.is_video) && imageVideoInfoList.length < MAX_IMAGE_COUNT;
570
- }, [imageVideoInfoList]);
571
- const canSelectVideo = useMemo(() => imageVideoInfoList.length === 0, [imageVideoInfoList.length]);
572
- const handleSelectContact = useCallback((contact) => {
573
- setVisibleContact(false);
574
- const nextValue = `${stripHtmlTags(inputValue).trim().length === 0 ? "" : inputValue}${getAtUserElement(contact)} `;
575
- setInputValue(nextValue);
576
- setEditDivContent(nextValue);
577
- setTimeout(() => {
578
- moveCursorToEnd();
579
- }, 16);
580
- }, [
581
- inputValue,
582
- moveCursorToEnd,
583
- setEditDivContent
584
- ]);
585
- /**
586
- * 联系人弹窗开关回调。
587
- */
588
- function handleContactDialogChange(next) {
589
- setVisibleContact(next);
590
- }
591
- /**
592
- * 关闭联系人弹窗。
593
- */
594
- function handleCloseContact() {
595
- setVisibleContact(false);
596
- }
597
- const publishButton = /* @__PURE__ */ jsx("button", {
598
- type: "button",
599
- className: cn("shrink-0 whitespace-nowrap rounded-full px-4 py-2 text-sm font-medium", isPublishEnabled && !isPublishing ? "bg-theme5 text-white" : "bg-bg2 text-text3"),
600
- onClick: handlePublish,
601
- disabled: !isPublishEnabled || isInputDisabled,
602
- children: isPublishing ? t("commentInput.publishing") : resolvedPublishText
603
- });
604
- const darkPublishButton = /* @__PURE__ */ jsx("button", {
605
- type: "button",
606
- className: cn("ml-[14px] shrink-0 whitespace-nowrap px-[14px] py-[10px] text-[16px] leading-[16px]", isPublishEnabled && !isPublishing ? "text-theme5" : "text-text3"),
607
- onClick: handlePublish,
608
- disabled: !isPublishEnabled || isInputDisabled,
609
- children: isPublishing ? t("commentInput.publishing") : resolvedPublishText
610
- });
611
- const publishingHint = isPublishing ? /* @__PURE__ */ jsx("span", {
612
- className: cn("ml-[14px] text-[16px] leading-[16px] text-text3"),
613
- children: t("commentInput.publishing")
614
- }) : null;
615
- const finalStyle = isLight ? containerStyle : {
616
- ...containerStyle,
617
- boxShadow: showToolbar ? "0px -4px 10px 0px rgba(0,0,0,0.1)" : "none"
618
- };
619
- const containerClasses = isLight ? "comment-input-container g-safe-area rounded-2xl border border-line1/20 bg-white text-text1 shadow-sm" : "comment-input-container bg-bg1 g-safe-area text-text1";
620
- const toolbarSection = showToolbar ? isLight ? /* @__PURE__ */ jsxs("div", {
621
- className: "flex border-t border-line1/20",
622
- children: [
623
- /* @__PURE__ */ jsx(CommentToolbarButton, {
624
- disabled: !canSelectImage,
625
- onClick: () => {
626
- if (isInputDisabled) return;
627
- if (!canSelectImage) return;
628
- setTimeout(() => {
629
- handleImageFileChange();
630
- }, 400);
631
- },
632
- variant: "light",
633
- children: t("commentInput.image")
634
- }),
635
- /* @__PURE__ */ jsx(CommentToolbarButton, {
636
- disabled: !canSelectVideo,
637
- onClick: () => {
638
- if (isInputDisabled) return;
639
- if (!canSelectVideo) return;
640
- setTimeout(() => {
641
- handleVideoFileChange();
642
- }, 400);
643
- },
644
- variant: "light",
645
- children: t("commentInput.video")
646
- }),
647
- /* @__PURE__ */ jsx(CommentToolbarButton, {
648
- disabled: isInputDisabled,
649
- onClick: () => {
650
- if (isInputDisabled) return;
651
- setVisibleContact(true);
652
- },
653
- variant: "light",
654
- children: "@"
655
- })
656
- ]
657
- }) : /* @__PURE__ */ jsxs("div", {
658
- className: "flex h-[50px] items-center justify-around border-t border-line1 px-[8px]",
659
- children: [
660
- /* @__PURE__ */ jsx("button", {
661
- type: "button",
662
- className: cn("flex h-full items-center justify-center px-[12px]", (!canSelectImage || isInputDisabled) && "opacity-50"),
663
- onClick: () => {
664
- if (isInputDisabled) return;
665
- if (!canSelectImage) return;
666
- setTimeout(() => {
667
- handleImageFileChange();
668
- }, 400);
669
- },
670
- children: /* @__PURE__ */ jsx(SvgPublishPic, { className: "h-[22px] w-[22px]" })
671
- }),
672
- /* @__PURE__ */ jsx("button", {
673
- type: "button",
674
- className: cn("flex h-full items-center justify-center px-[12px]", (!canSelectVideo || isInputDisabled) && "opacity-50"),
675
- onClick: () => {
676
- if (isInputDisabled) return;
677
- if (!canSelectVideo) return;
678
- setTimeout(() => {
679
- handleVideoFileChange();
680
- }, 400);
681
- },
682
- children: /* @__PURE__ */ jsx(SvgPublishVideo, { className: "h-[22px] w-[22px]" })
683
- }),
684
- /* @__PURE__ */ jsx("button", {
685
- type: "button",
686
- className: cn("flex h-full items-center justify-center px-[12px]", isInputDisabled && "opacity-50"),
687
- onClick: () => {
688
- if (isInputDisabled) return;
689
- setVisibleContact(true);
690
- },
691
- children: /* @__PURE__ */ jsx(SvgCommetAt, { className: "h-[22px] w-[22px]" })
692
- })
693
- ]
694
- }) : null;
695
- const innerContainerClass = isLight ? "" : "mx-auto w-full max-w-[840px]";
696
- return /* @__PURE__ */ jsxs("div", {
697
- style: finalStyle,
698
- className: cn(containerClasses, className),
699
- onMouseDown: resetLastTime,
700
- onTouchStart: resetLastTime,
701
- onClick: resetLastTime,
702
- ref: containerRef,
703
- children: [
704
- uploadProgress && /* @__PURE__ */ jsx(UploadProgress, {
705
- currentFiles: uploadProgress.currentFiles,
706
- totalFiles: uploadProgress.totalFiles,
707
- currentTasks: uploadProgress.currentTasks,
708
- totalTasks: uploadProgress.totalTasks
709
- }),
710
- /* @__PURE__ */ jsxs("div", {
711
- className: innerContainerClass,
712
- children: [
713
- showToolbar && /* @__PURE__ */ jsx(CommentUploadGroup, {
714
- imageVideoInfoList,
715
- onDelete: (index) => setImageVideoInfoList((prev) => prev.filter((_, i) => i !== index)),
716
- variant
717
- }),
718
- /* @__PURE__ */ jsxs("div", {
719
- className: cn("px-4 py-3", isLight ? "flex items-center gap-3" : "flex items-center justify-between"),
720
- children: [/* @__PURE__ */ jsxs("div", {
721
- className: cn("relative min-w-0 flex-1 rounded-[20px] bg-bg2", isLight ? "rounded-2xl" : ""),
722
- children: [
723
- !isLogin && /* @__PURE__ */ jsx("div", {
724
- className: "absolute inset-0 z-[1] cursor-text",
725
- onClick: handleRequireLogin
726
- }),
727
- isInputEmpty && /* @__PURE__ */ jsx("span", {
728
- className: cn("pointer-events-none absolute left-3 top-[10px] text-sm text-text3"),
729
- children: resolvedPlaceholder
730
- }),
731
- /* @__PURE__ */ jsx("div", {
732
- ref: (node) => {
733
- textareaRef.current = node;
734
- inputRef(node);
735
- },
736
- contentEditable: !isInputDisabled,
737
- suppressContentEditableWarning: true,
738
- className: cn("max-h-24 min-h-[40px] w-full cursor-text overflow-y-auto px-3 py-[10px] text-sm leading-5 outline-none break-all whitespace-pre-wrap text-text1", isInputDisabled && "cursor-not-allowed opacity-60"),
739
- "data-placeholder": resolvedPlaceholder,
740
- onInput: handleInputChange,
741
- onFocus: handleFocus,
742
- onClick: handleInputClick,
743
- onBlur: handleBlur,
744
- onPaste: handlePaste,
745
- onDrop: handleDrop,
746
- onDragOver: handleDragOver
747
- })
748
- ]
749
- }), showToolbar ? isLight ? publishButton : darkPublishButton : publishingHint]
750
- }),
751
- toolbarSection
752
- ]
753
- }),
754
- /* @__PURE__ */ jsx(Dialog, {
755
- open: visibleContact,
756
- onOpenChange: handleContactDialogChange,
757
- children: /* @__PURE__ */ jsx(DialogContent, {
758
- showCloseButton: false,
759
- initialFocus: false,
760
- className: "fixed left-0 right-0 bottom-0 top-[84px] z-[1000] w-full max-w-none translate-x-0 translate-y-0 rounded-none bg-bg2 p-0",
761
- children: /* @__PURE__ */ jsx(ContactList, {
762
- onSelect: handleSelectContact,
763
- onClose: handleCloseContact
764
- })
765
- })
766
- })
767
- ]
768
- });
769
- }
770
- CommentInput.displayName = "CommentInput";
771
-
772
- //#endregion
773
- export { CommentInput as default };
2
+ "use client";import{getAtUserElement as e,stripHtmlTags as t}from"../../../../utils/common.mjs";import{cn as n}from"../../../../utils/cn.mjs";import{useUserStore as r}from"../../../../store/modules/user-store.mjs";import{createInputAndSelectFile as i,getCoverImage as a,getImageResolutionFromFile as o}from"../../../../utils/media.mjs";import{uploadFile as s}from"../../../../utils/upload-file.mjs";import{Image as c}from"../../../ui/image.mjs";import{Dialog as ee,DialogContent as te}from"../../../ui/dialog.mjs";import{useLoginModalStore as ne}from"../../../../store/modules/login-modal-store.mjs";import l from"../../../../assets/icons/close.mjs";import u from"../../../../assets/icons/detail/video_play.mjs";import re from"../../../../assets/icons/detail/commet_at.mjs";import ie from"../../../../assets/icons/detail/publish_pic.mjs";import ae from"../../../../assets/icons/detail/publish_video.mjs";import{UploadProgress as oe}from"../../../pages/publish/components/upload-progress.mjs";import{ContactList as se}from"../contact/contact-list.mjs";import{useKeyboardHandler as ce}from"./use-keyboard-handler.mjs";import{toast as d}from"sonner";import{memo as f,useCallback as p,useEffect as m,useImperativeHandle as le,useMemo as h,useRef as g,useState as _}from"react";import{jsx as v,jsxs as y}from"react/jsx-runtime";import{useTranslations as ue}from"next-intl";function de(e){let t=e.clipboardData;if(!t)return``;let n=t.getData(`text/plain`);if(n)return n;let r=t.getData(`text/html`);if(!r)return``;try{return new DOMParser().parseFromString(r,`text/html`).body.textContent||``}catch{return``}}function fe(e,t){if(t<=0)return``;let n=0,r=``;for(let i of e){if(i!==`
3
+ `&&(n++,n>t))break;r+=i}return r}function pe(e,t){if(!t)return;let n=window.getSelection(),r=null;n&&n.rangeCount>0&&(r=n.getRangeAt(0)),(!r||!e.contains(r.commonAncestorContainer))&&(e.focus(),r=document.createRange(),r.selectNodeContents(e),r.collapse(!1)),r.deleteContents();let i=document.createDocumentFragment(),a=t.split(`
4
+ `);a.forEach((e,t)=>{e&&i.appendChild(document.createTextNode(e)),t<a.length-1&&i.appendChild(document.createElement(`br`))});let o=i.lastChild;if(r.insertNode(i),n&&o){let e=document.createRange();e.setStartAfter(o),e.collapse(!0),n.removeAllRanges(),n.addRange(e)}}const me=f(({imageVideoInfoList:e,onDelete:t,variant:r=`dark`})=>{if(e.length===0)return null;let i=r===`light`;return v(`div`,{className:n(`w-full overflow-hidden`,i?`px-4`:`h-[76px] px-[16px]`),children:v(`div`,{className:n(i?`flex items-center gap-3 overflow-x-auto py-3`:`w-full h-[calc(100%+60px)] pb-[60px] overflow-x-auto flex items-center flex-nowrap`),children:e.map((e,r)=>{let a=e.is_video?e.cover_image||e.image_url:e.image_url||e.cover_image;return y(`div`,{className:n(`w-[60px] h-[60px] rounded-[8px] overflow-hidden shrink-0 flex items-center justify-center bg-bg2 relative`,!i&&r>0&&`ml-[12px]`),onClick:e=>{e.target.closest(`[data-delete-button]`)&&e.stopPropagation()},children:[a&&v(c,{src:a,alt:`media`,fill:!0,objectFit:`cover`}),v(`button`,{type:`button`,className:`cursor-pointer absolute top-0 right-0 p-[4px] z-[1]`,"data-delete-button":`true`,onClick:()=>t(r),children:v(l,{className:`w-[12px] h-[12px] text-[#fff] drop-shadow-[0_1px_2px_rgba(0,0,0,0.5)]`})}),e.is_video&&v(`div`,{className:`absolute w-[24px] h-[24px] rounded-[12px] bg-[rgba(0,0,0,0.5)] top-0 right-0 bottom-0 left-0 m-auto flex items-center justify-center`,children:v(u,{className:`w-[12px] h-[12px] text-[#fff]`})})]},`${e.is_video?`video`:`image`}-${r}`)})})})});me.displayName=`CommentUploadGroup`;function b({disabled:e,onClick:t,children:r,variant:i=`dark`}){return v(`button`,{type:`button`,className:n(`flex h-12 flex-1 items-center justify-center`,i===`light`?`text-text2 hover:bg-bg2/60`:`text-white hover:bg-white/10`,e&&`opacity-40`),disabled:e,onClick:t,children:r})}function x({ref:c,value:l=``,onChange:u,onPublish:f,onInputBlur:x,placeholder:he=``,className:ge=``,maxLength:S=200,publishText:_e=``,autoFocus:ve,disabled:ye,onRequireLogin:C,variant:be=`dark`}){let w=ue(`components.biz.business.comment`),T=be===`light`,xe=_e||w(`commentInput.publishDefault`),Se=h(()=>{let e=he||w(`commentInput.placeholder`);return e.length>15?`${e.slice(0,15)}...`:e},[he,w]),[E,D]=_(l),[O,k]=_(!1),[A,j]=_(!1),Ce=g(null),M=g(null),N=g(!1),P=g(0),we=g(0),[F,I]=_([]),[L,R]=_(!1),[z,B]=_(null),[V,Te]=_(!1),H=ye||V,{isLogin:U}=r(),{open:W}=ne(),{containerStyle:Ee,onFocus:G,onBlur:De,inputRef:Oe}=ce(A),K=p(()=>{C?C():W()},[C,W]);m(()=>{M.current&&l&&(M.current.innerHTML=l)},[l]),m(()=>{typeof window>`u`||window.dispatchEvent(new CustomEvent(`funhub:visible-contact-change`,{detail:{visible:L}}))},[L]),m(()=>{if(!(!ve||!M.current)){if(!U){K();return}M.current.focus(),k(!0)}},[ve,K,U]),m(()=>{let e=e=>{let t=e.target,n=t.closest(`[data-delete-button]`),r=t.tagName===`INPUT`||t.tagName===`TEXTAREA`;n||r||Ce.current?.contains(t)||Date.now()-P.current>100&&k(!1)};return document.addEventListener(`click`,e),()=>document.removeEventListener(`click`,e)},[]),le(c,()=>({focus:()=>{let e=M.current;if(!(!e||N.current)){N.current=!0;try{if(!U){K();return}if(document.activeElement===e&&O)return;e.focus(),P.current=Date.now(),k(!0),A||j(!0),G()}catch(e){console.warn(`CommentInput focus error`,e),k(!0)}finally{N.current=!1}}}}),[A,K,U,G,O]);let q=()=>{P.current=Date.now()},J=p(()=>{if(!M.current)return;let e=document.createRange(),t=window.getSelection();e.selectNodeContents(M.current),e.collapse(!1),t?.removeAllRanges(),t?.addRange(e)},[]),Y=p(e=>{M.current&&(M.current.innerHTML=e)},[]),X=p(e=>{let t=e.querySelectorAll(`img,video,audio,iframe,object,embed,svg,canvas`);if(t.length===0)return!1;t.forEach(e=>e.remove());let n=Date.now();return n-we.current>1500&&(we.current=n,d.info(w(`commentInput.pasteFileNotSupported`))),!0},[w]),ke=p(e=>{let n=M.current;if(!n)return;if(H){e.preventDefault();return}if(!U){e.preventDefault(),K(),n.blur();return}let r=e.clipboardData;if(r&&Array.from(r.items||[]).some(e=>e.kind===`file`)){e.preventDefault(),e.stopPropagation(),d.info(w(`commentInput.pasteFileNotSupported`));return}let i=de(e);if(!i){e.preventDefault();return}e.preventDefault(),e.stopPropagation();let a=i.replace(/\r\n/g,`
5
+ `).replace(/\r/g,`
6
+ `),o=t(n.innerHTML||``).length,s=S?Math.max(0,S-o):1/0;if(s<=0)return;pe(n,Number.isFinite(s)?fe(a,s):a),X(n);let c=n.innerHTML||``;D(c),u?.(c)},[K,H,U,S,u,X,w]),Ae=p(e=>{let n=e.currentTarget.innerHTML||``;X(e.currentTarget)&&(n=e.currentTarget.innerHTML||``);let r=t(n);S&&r.length>S&&(n=n.substring(0,S),Y(n),J()),D(n),u?.(n)},[S,J,u,Y,X]),je=p(e=>{e.preventDefault(),e.stopPropagation();let t=e.dataTransfer?.files;t&&t.length>0&&d.info(w(`commentInput.dragFileNotSupported`))},[w]),Me=p(e=>{e.preventDefault()},[]),Ne=()=>{if(!H){if(!U){K(),M.current?.blur();return}P.current=Date.now(),k(!0),A||j(!0),G()}},Pe=()=>{if(H){V&&d.info(w(`commentInput.publishing`));return}if(!U){K(),M.current?.blur();return}P.current=Date.now(),O||k(!0),A||j(!0),G()},Fe=()=>{setTimeout(()=>{Date.now()-P.current>200&&document.activeElement!==M.current&&(k(!1),x?.())},150),De()},Ie=p(()=>{D(``),Y(``),I([]),k(!1)},[Y]),Le=h(()=>t(E).trim().length===0,[E]),Z=h(()=>!Le||F.length>0,[F.length,Le]),Re=p(async()=>{if(!U){K();return}if(F.some(e=>e.is_video))return;let e=await i(`file`,`image/*`);if(!e||e.length===0)return;let t=9-F.length,n=Array.from(e).slice(0,t);if(n.length===0)return;let r=[],a=0,c=n.length;try{for(let e=0;e<n.length;e++){let t=n[e];B({currentFiles:r.length,totalFiles:c,currentTasks:r.length+a,totalTasks:c});try{let{width:e,height:n}=await o(t),i=await s(t,1,!0);r.push({cover_image:``,cover_image_thumbnail:``,cover_image_radio:1,cover_image_resolution:``,image_url:i.objectKey,image_thumbnail:i.objectKey,image_radio:Number((e/n).toFixed(2)),image_resolution:`${e}x${n}`,is_video:!1,resolution:`${e}x${n}`,video_duration:0,video_url:``,video_size:0,video_codec_info:{hls_info:[],video_codec_deal:!1}})}catch(e){console.error(`上传图片失败`,e),a+=1}}r.length===0?d.error(w(`commentInput.imageUploadFailed`)):(a>0&&d.warning(w(`commentInput.partialImageUploadFailed`)),I(e=>[...e,...r]))}finally{B(null)}},[K,F,U,w]),ze=p(async()=>{if(!U){K();return}if(F.length>0){d.error(w(`commentInput.cannotSelectVideoWhenImageSelected`));return}let e=await i(`file`,`video/*`);if(!e||e.length===0)return;let t=e[0];try{B({currentFiles:0,totalFiles:1,currentTasks:0,totalTasks:2});let e=await s(t,2,!1),[n,r,i,o]=await a(t);B({currentFiles:0,totalFiles:1,currentTasks:1,totalTasks:2});let c=await s(n,1,!0);I([{cover_image:c.objectKey,cover_image_thumbnail:c.objectKey,cover_image_radio:Number((r/i).toFixed(2)),cover_image_resolution:`${r}x${i}`,image_url:c.objectKey,image_thumbnail:c.objectKey,image_radio:Number((r/i).toFixed(2)),image_resolution:`${r}x${i}`,is_video:!0,resolution:`${r}x${i}`,video_duration:o,video_url:e.objectKey,video_size:t.size,video_codec_info:{hls_info:[],video_codec_deal:!1}}])}catch(e){console.error(`视频上传失败`,e),d.error(w(`commentInput.videoUploadFailed`))}finally{B(null)}},[K,F.length,U,w]),Be=p(async e=>{if(e.preventDefault(),e.stopPropagation(),!(!Z||ye||V)){if(!U){C?C():W();return}try{Te(!0);let e=await f?.({text:E===`<br>`?``:E,imageVideoInfoList:F});if(e&&e.success===!1){e.toastHandled||d.error(e.message||`发布评论失败`);return}d.success(w(`commentInput.publishSuccess`)),Ie(),u?.(``)}catch(e){console.error(`发布评论失败:`,e),d.error(w(`commentInput.publishCommentFailed`))}finally{Te(!1)}}},[Ie,ye,F,E,U,Z,V,u,f,C,W,w]),Q=h(()=>!F.some(e=>e.is_video)&&F.length<9,[F]),$=h(()=>F.length===0,[F.length]),Ve=p(n=>{R(!1);let r=`${t(E).trim().length===0?``:E}${e(n)} `;D(r),Y(r),setTimeout(()=>{J()},16)},[E,J,Y]);function He(e){R(e)}function Ue(){R(!1)}let We=v(`button`,{type:`button`,className:n(`shrink-0 whitespace-nowrap rounded-full px-4 py-2 text-sm font-medium`,Z&&!V?`bg-theme5 text-white`:`bg-bg2 text-text3`),onClick:Be,disabled:!Z||H,children:V?w(`commentInput.publishing`):xe}),Ge=v(`button`,{type:`button`,className:n(`ml-[14px] shrink-0 whitespace-nowrap px-[14px] py-[10px] text-[16px] leading-[16px]`,Z&&!V?`text-theme5`:`text-text3`),onClick:Be,disabled:!Z||H,children:V?w(`commentInput.publishing`):xe}),Ke=V?v(`span`,{className:n(`ml-[14px] text-[16px] leading-[16px] text-text3`),children:w(`commentInput.publishing`)}):null,qe=T?Ee:{...Ee,boxShadow:O?`0px -4px 10px 0px rgba(0,0,0,0.1)`:`none`},Je=T?`comment-input-container g-safe-area rounded-2xl border border-line1/20 bg-white text-text1 shadow-sm`:`comment-input-container bg-bg1 g-safe-area text-text1`,Ye=O?T?y(`div`,{className:`flex border-t border-line1/20`,children:[v(b,{disabled:!Q,onClick:()=>{H||Q&&setTimeout(()=>{Re()},400)},variant:`light`,children:w(`commentInput.image`)}),v(b,{disabled:!$,onClick:()=>{H||$&&setTimeout(()=>{ze()},400)},variant:`light`,children:w(`commentInput.video`)}),v(b,{disabled:H,onClick:()=>{H||R(!0)},variant:`light`,children:`@`})]}):y(`div`,{className:`flex h-[50px] items-center justify-around border-t border-line1 px-[8px]`,children:[v(`button`,{type:`button`,className:n(`flex h-full items-center justify-center px-[12px]`,(!Q||H)&&`opacity-50`),onClick:()=>{H||Q&&setTimeout(()=>{Re()},400)},children:v(ie,{className:`h-[22px] w-[22px]`})}),v(`button`,{type:`button`,className:n(`flex h-full items-center justify-center px-[12px]`,(!$||H)&&`opacity-50`),onClick:()=>{H||$&&setTimeout(()=>{ze()},400)},children:v(ae,{className:`h-[22px] w-[22px]`})}),v(`button`,{type:`button`,className:n(`flex h-full items-center justify-center px-[12px]`,H&&`opacity-50`),onClick:()=>{H||R(!0)},children:v(re,{className:`h-[22px] w-[22px]`})})]}):null,Xe=T?``:`mx-auto w-full max-w-[840px]`;return y(`div`,{style:qe,className:n(Je,ge),onMouseDown:q,onTouchStart:q,onClick:q,ref:Ce,children:[z&&v(oe,{currentFiles:z.currentFiles,totalFiles:z.totalFiles,currentTasks:z.currentTasks,totalTasks:z.totalTasks}),y(`div`,{className:Xe,children:[O&&v(me,{imageVideoInfoList:F,onDelete:e=>I(t=>t.filter((t,n)=>n!==e)),variant:be}),y(`div`,{className:n(`px-4 py-3`,T?`flex items-center gap-3`:`flex items-center justify-between`),children:[y(`div`,{className:n(`relative min-w-0 flex-1 rounded-[20px] bg-bg2`,T?`rounded-2xl`:``),children:[!U&&v(`div`,{className:`absolute inset-0 z-[1] cursor-text`,onClick:K}),Le&&v(`span`,{className:n(`pointer-events-none absolute left-3 top-[10px] text-sm text-text3`),children:Se}),v(`div`,{ref:e=>{M.current=e,Oe(e)},contentEditable:!H,suppressContentEditableWarning:!0,className:n(`max-h-24 min-h-[40px] w-full cursor-text overflow-y-auto px-3 py-[10px] text-sm leading-5 outline-none break-all whitespace-pre-wrap text-text1`,H&&`cursor-not-allowed opacity-60`),"data-placeholder":Se,onInput:Ae,onFocus:Ne,onClick:Pe,onBlur:Fe,onPaste:ke,onDrop:je,onDragOver:Me})]}),O?T?We:Ge:Ke]}),Ye]}),v(ee,{open:L,onOpenChange:He,children:v(te,{showCloseButton:!1,initialFocus:!1,className:`fixed left-0 right-0 bottom-0 top-[84px] z-[1000] w-full max-w-none translate-x-0 translate-y-0 rounded-none bg-bg2 p-0`,children:v(se,{onSelect:Ve,onClose:Ue})})})]})}x.displayName=`CommentInput`;export{x as default};