@funhub/platform 0.1.38 → 0.1.43

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 (171) hide show
  1. package/README.md +6 -0
  2. package/dist/common.d.mts +1 -2
  3. package/dist/common.mjs +1 -1
  4. package/dist/components/biz/business/banner/variants/basic-banner/inspector-schema.d.mts +4 -0
  5. package/dist/components/biz/business/banner/variants/basic-banner/material.d.mts +4 -0
  6. package/dist/components/biz/business/banner/variants/basic-banner/runtime/client.d.mts +6 -1
  7. package/dist/components/biz/business/banner/variants/basic-banner/runtime/client.mjs +1 -1
  8. package/dist/components/biz/business/banner/variants/basic-banner/server.mjs +1 -1
  9. package/dist/components/biz/business/banner-carousel/client.mjs +1 -1
  10. package/dist/components/biz/business/banner-carousel/material.d.mts +4 -0
  11. package/dist/components/biz/business/banner-carousel/schema.d.mts +4 -0
  12. package/dist/components/biz/business/banner-carousel/server.mjs +1 -1
  13. package/dist/components/biz/business/channel-list/client.mjs +1 -1
  14. package/dist/components/biz/business/channel-list/material.d.mts +4 -0
  15. package/dist/components/biz/business/channel-list/schema.d.mts +4 -0
  16. package/dist/components/biz/business/detail/detail-operate.mjs +1 -1
  17. package/dist/components/biz/business/detail/materials/registry.d.mts +30 -3
  18. package/dist/components/biz/business/detail/materials/video-detail-actions/client.d.mts +2 -1
  19. package/dist/components/biz/business/detail/materials/video-detail-actions/client.mjs +1 -1
  20. package/dist/components/biz/business/detail/materials/video-detail-actions/material.d.mts +6 -1
  21. package/dist/components/biz/business/detail/materials/video-detail-actions/schema.d.mts +6 -1
  22. package/dist/components/biz/business/detail/materials/video-detail-actions/server.mjs +1 -1
  23. package/dist/components/biz/business/detail/materials/video-detail-info/client.d.mts +2 -1
  24. package/dist/components/biz/business/detail/materials/video-detail-info/client.mjs +1 -1
  25. package/dist/components/biz/business/detail/materials/video-detail-info/material.d.mts +4 -0
  26. package/dist/components/biz/business/detail/materials/video-detail-info/schema.d.mts +4 -0
  27. package/dist/components/biz/business/detail/materials/video-detail-info/server.mjs +1 -1
  28. package/dist/components/biz/business/detail/materials/video-detail-info-title/client.d.mts +2 -1
  29. package/dist/components/biz/business/detail/materials/video-detail-info-title/client.mjs +1 -1
  30. package/dist/components/biz/business/detail/materials/video-detail-info-title/material.d.mts +6 -1
  31. package/dist/components/biz/business/detail/materials/video-detail-info-title/schema.d.mts +6 -1
  32. package/dist/components/biz/business/detail/materials/video-detail-info-title/server.mjs +1 -1
  33. package/dist/components/biz/business/detail/materials/video-detail-info-title-tags-episodes/client.d.mts +2 -1
  34. package/dist/components/biz/business/detail/materials/video-detail-info-title-tags-episodes/client.mjs +1 -1
  35. package/dist/components/biz/business/detail/materials/video-detail-info-title-tags-episodes/material.d.mts +4 -0
  36. package/dist/components/biz/business/detail/materials/video-detail-info-title-tags-episodes/schema.d.mts +4 -0
  37. package/dist/components/biz/business/detail/materials/video-detail-info-title-tags-episodes/server.mjs +1 -1
  38. package/dist/components/biz/business/detail/materials/video-detail-player/client.d.mts +2 -1
  39. package/dist/components/biz/business/detail/materials/video-detail-player/client.mjs +1 -1
  40. package/dist/components/biz/business/detail/materials/video-detail-player/material.d.mts +6 -1
  41. package/dist/components/biz/business/detail/materials/video-detail-player/schema.d.mts +6 -1
  42. package/dist/components/biz/business/detail/materials/video-detail-player/server.mjs +1 -1
  43. package/dist/components/biz/business/detail/materials/video-detail-recommend/client.d.mts +2 -1
  44. package/dist/components/biz/business/detail/materials/video-detail-recommend/client.mjs +1 -1
  45. package/dist/components/biz/business/detail/materials/video-detail-recommend/material.d.mts +4 -0
  46. package/dist/components/biz/business/detail/materials/video-detail-recommend/schema.d.mts +4 -0
  47. package/dist/components/biz/business/detail/materials/video-detail-recommend/server.mjs +1 -1
  48. package/dist/components/biz/business/detail/video-hero.mjs +1 -1
  49. package/dist/components/biz/business/floating-ball/client.mjs +1 -1
  50. package/dist/components/biz/business/floating-ball/material.d.mts +4 -0
  51. package/dist/components/biz/business/floating-ball/schema.d.mts +4 -0
  52. package/dist/components/biz/business/floating-ball/server.mjs +1 -1
  53. package/dist/components/biz/business/header-search/header-avatar-icon/client.d.mts +3 -1
  54. package/dist/components/biz/business/header-search/header-avatar-icon/client.mjs +1 -1
  55. package/dist/components/biz/business/header-search/header-avatar-icon/material.d.mts +6 -1
  56. package/dist/components/biz/business/header-search/header-avatar-icon/schema.d.mts +6 -1
  57. package/dist/components/biz/business/header-search/header-avatar-icon/server.mjs +1 -1
  58. package/dist/components/biz/business/header-search/header-avatar-logo-search/client.mjs +1 -1
  59. package/dist/components/biz/business/header-search/header-avatar-logo-search/material.d.mts +4 -0
  60. package/dist/components/biz/business/header-search/header-avatar-logo-search/schema.d.mts +4 -0
  61. package/dist/components/biz/business/header-search/header-avatar-logo-search/server.mjs +1 -1
  62. package/dist/components/biz/business/header-search/header-avatar-logo-search-icon/client.mjs +1 -1
  63. package/dist/components/biz/business/header-search/header-avatar-logo-search-icon/material.d.mts +4 -0
  64. package/dist/components/biz/business/header-search/header-avatar-logo-search-icon/schema.d.mts +4 -0
  65. package/dist/components/biz/business/header-search/header-avatar-logo-search-icon/server.mjs +1 -1
  66. package/dist/components/biz/business/header-search/header-logo-search/client.mjs +1 -1
  67. package/dist/components/biz/business/header-search/header-logo-search/material.d.mts +4 -0
  68. package/dist/components/biz/business/header-search/header-logo-search/schema.d.mts +4 -0
  69. package/dist/components/biz/business/header-search/header-logo-search/server.mjs +1 -1
  70. package/dist/components/biz/business/header-search/header-search/client.d.mts +3 -1
  71. package/dist/components/biz/business/header-search/header-search/client.mjs +1 -1
  72. package/dist/components/biz/business/header-search/header-search/material.d.mts +6 -1
  73. package/dist/components/biz/business/header-search/header-search/schema.d.mts +6 -1
  74. package/dist/components/biz/business/header-search/header-search/server.mjs +1 -1
  75. package/dist/components/biz/business/home-recommend/shared/home-recommend-base.mjs +1 -1
  76. package/dist/components/biz/business/home-recommend/variants/home-recommend-grid/inspector-schema.d.mts +4 -0
  77. package/dist/components/biz/business/home-recommend/variants/home-recommend-grid/material.d.mts +4 -0
  78. package/dist/components/biz/business/home-recommend/variants/home-recommend-grid/runtime/client.d.mts +8 -1
  79. package/dist/components/biz/business/home-recommend/variants/home-recommend-grid/runtime/client.mjs +1 -1
  80. package/dist/components/biz/business/home-recommend/variants/home-recommend-grid/server.mjs +1 -1
  81. package/dist/components/biz/business/home-recommend/variants/home-recommend-waterfall/inspector-schema.d.mts +4 -0
  82. package/dist/components/biz/business/home-recommend/variants/home-recommend-waterfall/material.d.mts +4 -0
  83. package/dist/components/biz/business/home-recommend/variants/home-recommend-waterfall/runtime/client.d.mts +8 -1
  84. package/dist/components/biz/business/home-recommend/variants/home-recommend-waterfall/runtime/client.mjs +1 -1
  85. package/dist/components/biz/business/home-recommend/variants/home-recommend-waterfall/server.mjs +1 -1
  86. package/dist/components/biz/business/large-feature-grid/card-item.mjs +1 -1
  87. package/dist/components/biz/business/large-feature-grid/client.d.mts +15 -0
  88. package/dist/components/biz/business/large-feature-grid/client.mjs +1 -1
  89. package/dist/components/biz/business/large-feature-grid/material.d.mts +34 -4
  90. package/dist/components/biz/business/large-feature-grid/schema.d.mts +42 -0
  91. package/dist/components/biz/business/large-feature-grid/server.d.mts +15 -0
  92. package/dist/components/biz/business/large-feature-grid/server.mjs +1 -1
  93. package/dist/components/biz/business/marquee/client.mjs +1 -1
  94. package/dist/components/biz/business/marquee/material.d.mts +4 -0
  95. package/dist/components/biz/business/marquee/schema.d.mts +4 -0
  96. package/dist/components/biz/business/marquee/server.mjs +1 -1
  97. package/dist/components/biz/business/profile/profile-header/client.d.mts +2 -1
  98. package/dist/components/biz/business/profile/profile-header/client.mjs +1 -1
  99. package/dist/components/biz/business/profile/profile-header/material.d.mts +18 -2
  100. package/dist/components/biz/business/profile/profile-header/material.mjs +1 -1
  101. package/dist/components/biz/business/profile/profile-header/schema.d.mts +7 -2
  102. package/dist/components/biz/business/profile/profile-header/server.d.mts +4 -1
  103. package/dist/components/biz/business/profile/profile-header/server.mjs +1 -1
  104. package/dist/components/biz/business/profile/profile-header/user-profile-cover-background.mjs +1 -1
  105. package/dist/components/biz/business/profile/profile-main/client.d.mts +2 -1
  106. package/dist/components/biz/business/profile/profile-main/client.mjs +1 -1
  107. package/dist/components/biz/business/profile/profile-main/material.d.mts +6 -1
  108. package/dist/components/biz/business/profile/profile-main/material.mjs +1 -1
  109. package/dist/components/biz/business/profile/profile-main/schema.d.mts +7 -2
  110. package/dist/components/biz/business/profile/profile-main/server.mjs +1 -1
  111. package/dist/components/biz/business/profile/profile-main/tabs/collect-tab/client.d.mts +5 -0
  112. package/dist/components/biz/business/profile/profile-main/tabs/collect-tab/client.mjs +1 -1
  113. package/dist/components/biz/business/profile/profile-main/tabs/collect-tab/server.mjs +1 -1
  114. package/dist/components/biz/business/profile/profile-main/tabs/history-tab/client.d.mts +5 -0
  115. package/dist/components/biz/business/profile/profile-main/tabs/history-tab/client.mjs +1 -1
  116. package/dist/components/biz/business/profile/profile-main/tabs/history-tab/server.mjs +1 -1
  117. package/dist/components/biz/business/profile/profile-main/tabs/like-tab/client.d.mts +5 -0
  118. package/dist/components/biz/business/profile/profile-main/tabs/like-tab/client.mjs +1 -1
  119. package/dist/components/biz/business/profile/profile-main/tabs/like-tab/server.mjs +1 -1
  120. package/dist/components/biz/business/profile/profile-main/tabs/publish-tab/client.d.mts +5 -0
  121. package/dist/components/biz/business/profile/profile-main/tabs/publish-tab/client.mjs +1 -1
  122. package/dist/components/biz/business/profile/profile-main/tabs/publish-tab/server.mjs +1 -1
  123. package/dist/components/biz/business/search-history/client.mjs +1 -1
  124. package/dist/components/biz/business/search-history/material.d.mts +4 -0
  125. package/dist/components/biz/business/search-history/schema.d.mts +4 -0
  126. package/dist/components/biz/business/search-history/server.mjs +1 -1
  127. package/dist/components/biz/business/search-input/client.mjs +1 -1
  128. package/dist/components/biz/business/search-input/material.d.mts +4 -0
  129. package/dist/components/biz/business/search-input/schema.d.mts +4 -0
  130. package/dist/components/biz/business/search-input/server.mjs +1 -1
  131. package/dist/components/biz/business/shortcut-grid/client.mjs +1 -1
  132. package/dist/components/biz/business/shortcut-grid/material.d.mts +4 -0
  133. package/dist/components/biz/business/shortcut-grid/schema.d.mts +4 -0
  134. package/dist/components/biz/business/shortcut-grid/server.mjs +1 -1
  135. package/dist/components/biz/business/tab-bar/client.mjs +1 -1
  136. package/dist/components/biz/business/tab-bar/material.d.mts +9 -1
  137. package/dist/components/biz/business/tab-bar/schema.d.mts +9 -1
  138. package/dist/components/biz/business/tab-bar/server.mjs +1 -1
  139. package/dist/components/biz/business/text-recommend/client.mjs +1 -1
  140. package/dist/components/biz/business/text-recommend/material.d.mts +4 -0
  141. package/dist/components/biz/business/text-recommend/schema.d.mts +4 -0
  142. package/dist/components/biz/business/text-recommend/server.mjs +1 -1
  143. package/dist/components/biz/business/video-horizontal-list/client.mjs +1 -1
  144. package/dist/components/biz/business/video-horizontal-list/material.d.mts +4 -0
  145. package/dist/components/biz/business/video-horizontal-list/schema.d.mts +4 -0
  146. package/dist/components/biz/business/video-horizontal-list/server.mjs +1 -1
  147. package/dist/components/biz/example/button/client.mjs +1 -1
  148. package/dist/components/biz/example/button/material.d.mts +4 -0
  149. package/dist/components/biz/example/button/schema.d.mts +4 -0
  150. package/dist/components/biz/example/button/server.d.mts +4 -1
  151. package/dist/components/biz/example/button/server.mjs +1 -1
  152. package/dist/components/ui/badge.d.mts +1 -1
  153. package/dist/components/ui/button.d.mts +2 -2
  154. package/dist/components/ui/image.d.mts +4 -4
  155. package/dist/hooks.d.mts +1 -4
  156. package/dist/hooks.mjs +1 -1
  157. package/dist/utils/schema/index.d.mts +1 -1
  158. package/dist/utils/schema/material.d.mts +3 -2
  159. package/dist/utils/schema/schema.d.mts +18 -3
  160. package/dist/utils/schema/schema.mjs +1 -1
  161. package/dist/utils.d.mts +2 -2
  162. package/package.json +1 -1
  163. package/dist/components/common/app-context/index.d.mts +0 -19
  164. package/dist/components/common/app-context/index.mjs +0 -2
  165. package/dist/components/common/app-context/provider.mjs +0 -2
  166. package/dist/hooks/app-context.d.mts +0 -20
  167. package/dist/hooks/app-context.mjs +0 -2
  168. package/dist/hooks/get-app-context.d.mts +0 -19
  169. package/dist/hooks/get-app-context.mjs +0 -2
  170. package/dist/hooks/use-app-context/index.d.mts +0 -14
  171. package/dist/hooks/use-app-context/index.mjs +0 -2
package/README.md CHANGED
@@ -60,6 +60,12 @@ photoPreview closePhotoPreview DebugLocaleSwitcher
60
60
  - 接入说明:`components/common/funhub-provider/README.md`
61
61
  - 使用要求:必须传入 `intl` 配置(建议通过 `@funhub/platform/i18n` 的 `getMessages` 获取语言包)
62
62
 
63
+ ### 渲染模式约定
64
+
65
+ - `AppContext` / `useAppContext` 已移除。
66
+ - 物料组件统一通过 props 传递 `mode`,并在组件内部使用 `mode = 'renderer'` 作为默认值。
67
+ - 当子组件也需要区分编辑态与渲染态时,继续透传 `mode`。
68
+
63
69
  ## 业务组件 (Biz)
64
70
 
65
71
  ### Basics (基础业务组件)
package/dist/common.d.mts CHANGED
@@ -1,6 +1,5 @@
1
1
 
2
2
  import { UserActivityListItem, UserActivityListItemProps, UserActivityMediaGrid, UserActivityMediaGridProps } from "./components/common/list/user-activity-list/user-activity-list-item.mjs";
3
- import { AppContext, AppContextProps } from "./components/common/app-context/index.mjs";
4
3
  import { BlockedDialog } from "./components/common/blocked-dialog/blocked-dialog.mjs";
5
4
  import "./components/common/blocked-dialog/index.mjs";
6
5
  import { MiniThreeCard } from "./components/common/cards/mini-three-card.mjs";
@@ -55,4 +54,4 @@ import { ThemeSync } from "./components/common/theme-sync/index.mjs";
55
54
  import { TopNavBarServer } from "./components/common/top-nav-bar/index.mjs";
56
55
  import { CommonPlayer, CommonPlayerRef } from "./components/common/video-player/index.mjs";
57
56
  import { WaitLoading } from "./components/common/wait-loading.mjs";
58
- export { ActionButton, AddIcon, AppContext, AppContextProps, BlockedDialog, CollectionList, CollectionListItem, CollectionListItemProps, CollectionListMediaItem, CollectionListProps, CommentIcon, CommonPhotoGrid, CommonPlayer, CommonPlayerRef, DebugLocaleSwitcher, DeleteConfirmDialog, DeleteConfirmDialogProps, DeleteIcon, Empty, FunhubProvider, FunhubProviderProps, GenderPicker, GenderPickerOption, GenderPickerProps, HeaderNav, IntlProvider, IntlProviderProps, LeftArrowIcon, LocaleSync, LoginDialog, MediaPreview, MiniThreeCard, MoreIcon, PageSkeleton, SeriesEpisodePage as PhotoGrid, PopupVideo, PostList, PostListItem, PostListItemProps, PostListProps, RightArrowIcon, SeriesEpisodes, SeriesEpisodesProps, SettingIcon, ShareContent, ShareDataType, ShareDrawer, ShareDrawerProps, ShareIcon, SharePlatform, SharePopupComponent, TabBar, ThemeSync, TopNavBarServer, UserActivityList, UserActivityListItem, UserActivityListItemProps, UserActivityListProps, UserActivityMediaGrid, UserActivityMediaGridProps, MediaPreview as UserActivityMediaPreview, VideoList, VideoListItem, VideoListItemProps, VideoListProps, WaitLoading, closePhotoPreview, defaultActions, defaultPlatforms, photoPreview, useMediaPreview };
57
+ export { ActionButton, AddIcon, BlockedDialog, CollectionList, CollectionListItem, CollectionListItemProps, CollectionListMediaItem, CollectionListProps, CommentIcon, CommonPhotoGrid, CommonPlayer, CommonPlayerRef, DebugLocaleSwitcher, DeleteConfirmDialog, DeleteConfirmDialogProps, DeleteIcon, Empty, FunhubProvider, FunhubProviderProps, GenderPicker, GenderPickerOption, GenderPickerProps, HeaderNav, IntlProvider, IntlProviderProps, LeftArrowIcon, LocaleSync, LoginDialog, MediaPreview, MiniThreeCard, MoreIcon, PageSkeleton, SeriesEpisodePage as PhotoGrid, PopupVideo, PostList, PostListItem, PostListItemProps, PostListProps, RightArrowIcon, SeriesEpisodes, SeriesEpisodesProps, SettingIcon, ShareContent, ShareDataType, ShareDrawer, ShareDrawerProps, ShareIcon, SharePlatform, SharePopupComponent, TabBar, ThemeSync, TopNavBarServer, UserActivityList, UserActivityListItem, UserActivityListItemProps, UserActivityListProps, UserActivityMediaGrid, UserActivityMediaGridProps, MediaPreview as UserActivityMediaPreview, VideoList, VideoListItem, VideoListItemProps, VideoListProps, WaitLoading, closePhotoPreview, defaultActions, defaultPlatforms, photoPreview, useMediaPreview };
package/dist/common.mjs CHANGED
@@ -1,2 +1,2 @@
1
1
 
2
- import{MediaPreview as e,useMediaPreview as t}from"./components/common/media-preview/index.mjs";import n from"./components/common/share-popup/share-content.mjs";import{ShareDrawer as r}from"./components/common/share-popup/share-drawer.mjs";import{IntlProvider as i}from"./components/common/intl-provider/intl-provider.mjs";import{SharePopupComponent as a,defaultActions as o,defaultPlatforms as s}from"./components/common/share-popup/share-popup.mjs";import c from"./components/common/video-player/index.mjs";import{AppContext as l}from"./components/common/app-context/index.mjs";import{BlockedDialog as u}from"./components/common/blocked-dialog/blocked-dialog.mjs";import{MiniThreeCard as d}from"./components/common/cards/mini-three-card.mjs";import{DebugLocaleSwitcher as f}from"./components/common/debug-locale-switcher/index.mjs";import{DeleteConfirmDialog as p}from"./components/common/delete-confirm-dialog/delete-confirm-dialog.mjs";import m from"./components/common/empty/index.mjs";import{LoginDialog as h}from"./components/common/login-dialog/login-dialog.mjs";import{FunhubProvider as g}from"./components/common/funhub-provider/funhub-provider.mjs";import{LeftArrowIcon as _}from"./components/common/icons/left-arrow.mjs";import{HeaderNav as v}from"./components/common/header-nav/client.mjs";import{AddIcon as y}from"./components/common/icons/add.mjs";import{CommentIcon as b}from"./components/common/icons/comment.mjs";import{DeleteIcon as x}from"./components/common/icons/delete.mjs";import{MoreIcon as S}from"./components/common/icons/more.mjs";import{RightArrowIcon as C}from"./components/common/icons/right-arrow.mjs";import{SettingIcon as w}from"./components/common/icons/setting.mjs";import{ShareIcon as T}from"./components/common/icons/share.mjs";import{CollectionListItem as E}from"./components/common/list/collection-list/collection-list-item.mjs";import{CollectionList as D}from"./components/common/list/collection-list/collection-list.mjs";import{PostListItem as O}from"./components/common/list/post-list/post-list-item.mjs";import{PostList as k}from"./components/common/list/post-list/post-list.mjs";import{UserActivityList as A}from"./components/common/list/user-activity-list/user-activity-list.mjs";import{UserActivityListItem as j,UserActivityMediaGrid as M}from"./components/common/list/user-activity-list/user-activity-list-item.mjs";import{VideoListItem as N}from"./components/common/list/video-list/video-list-item.mjs";import{VideoList as P}from"./components/common/list/video-list/video-list.mjs";import{LocaleSync as F}from"./components/common/locale-sync/locale-sync.mjs";import{PageSkeleton as I}from"./components/common/page-skeleton/page-skeleton.mjs";import L from"./components/common/photo-grid/index.mjs";import R from"./components/common/photo-grid/common-photo-grid.mjs";import{closePhotoPreview as z,photoPreview as B}from"./components/common/photo-preview/index.mjs";import{GenderPicker as V}from"./components/common/picker/gender-picker/gender-picker.mjs";import H from"./components/common/popup-video/index.mjs";import{SeriesEpisodes as U}from"./components/common/series-episodes/index.mjs";import{TabBar as W}from"./components/common/tab-bar/index.mjs";import{ThemeSync as G}from"./components/common/theme-sync/index.mjs";import{TopNavBarServer as K}from"./components/common/top-nav-bar/index.mjs";import{WaitLoading as q}from"./components/common/wait-loading.mjs";export{y as AddIcon,l as AppContext,u as BlockedDialog,D as CollectionList,E as CollectionListItem,b as CommentIcon,R as CommonPhotoGrid,c as CommonPlayer,f as DebugLocaleSwitcher,p as DeleteConfirmDialog,x as DeleteIcon,m as Empty,g as FunhubProvider,V as GenderPicker,v as HeaderNav,i as IntlProvider,_ as LeftArrowIcon,F as LocaleSync,h as LoginDialog,e as MediaPreview,d as MiniThreeCard,S as MoreIcon,I as PageSkeleton,L as PhotoGrid,H as PopupVideo,k as PostList,O as PostListItem,C as RightArrowIcon,U as SeriesEpisodes,w as SettingIcon,n as ShareContent,r as ShareDrawer,T as ShareIcon,a as SharePopupComponent,W as TabBar,G as ThemeSync,K as TopNavBarServer,A as UserActivityList,j as UserActivityListItem,M as UserActivityMediaGrid,e as UserActivityMediaPreview,P as VideoList,N as VideoListItem,q as WaitLoading,z as closePhotoPreview,o as defaultActions,s as defaultPlatforms,B as photoPreview,t as useMediaPreview};
2
+ import{MediaPreview as e,useMediaPreview as t}from"./components/common/media-preview/index.mjs";import n from"./components/common/share-popup/share-content.mjs";import{ShareDrawer as r}from"./components/common/share-popup/share-drawer.mjs";import{IntlProvider as i}from"./components/common/intl-provider/intl-provider.mjs";import{SharePopupComponent as a,defaultActions as o,defaultPlatforms as s}from"./components/common/share-popup/share-popup.mjs";import c from"./components/common/video-player/index.mjs";import{BlockedDialog as l}from"./components/common/blocked-dialog/blocked-dialog.mjs";import{MiniThreeCard as u}from"./components/common/cards/mini-three-card.mjs";import{DebugLocaleSwitcher as d}from"./components/common/debug-locale-switcher/index.mjs";import{DeleteConfirmDialog as f}from"./components/common/delete-confirm-dialog/delete-confirm-dialog.mjs";import p from"./components/common/empty/index.mjs";import{LoginDialog as m}from"./components/common/login-dialog/login-dialog.mjs";import{FunhubProvider as h}from"./components/common/funhub-provider/funhub-provider.mjs";import{LeftArrowIcon as g}from"./components/common/icons/left-arrow.mjs";import{HeaderNav as _}from"./components/common/header-nav/client.mjs";import{AddIcon as v}from"./components/common/icons/add.mjs";import{CommentIcon as y}from"./components/common/icons/comment.mjs";import{DeleteIcon as b}from"./components/common/icons/delete.mjs";import{MoreIcon as x}from"./components/common/icons/more.mjs";import{RightArrowIcon as S}from"./components/common/icons/right-arrow.mjs";import{SettingIcon as C}from"./components/common/icons/setting.mjs";import{ShareIcon as w}from"./components/common/icons/share.mjs";import{CollectionListItem as T}from"./components/common/list/collection-list/collection-list-item.mjs";import{CollectionList as E}from"./components/common/list/collection-list/collection-list.mjs";import{PostListItem as D}from"./components/common/list/post-list/post-list-item.mjs";import{PostList as O}from"./components/common/list/post-list/post-list.mjs";import{UserActivityList as k}from"./components/common/list/user-activity-list/user-activity-list.mjs";import{UserActivityListItem as A,UserActivityMediaGrid as j}from"./components/common/list/user-activity-list/user-activity-list-item.mjs";import{VideoListItem as M}from"./components/common/list/video-list/video-list-item.mjs";import{VideoList as N}from"./components/common/list/video-list/video-list.mjs";import{LocaleSync as P}from"./components/common/locale-sync/locale-sync.mjs";import{PageSkeleton as F}from"./components/common/page-skeleton/page-skeleton.mjs";import I from"./components/common/photo-grid/index.mjs";import L from"./components/common/photo-grid/common-photo-grid.mjs";import{closePhotoPreview as R,photoPreview as z}from"./components/common/photo-preview/index.mjs";import{GenderPicker as B}from"./components/common/picker/gender-picker/gender-picker.mjs";import V from"./components/common/popup-video/index.mjs";import{SeriesEpisodes as H}from"./components/common/series-episodes/index.mjs";import{TabBar as U}from"./components/common/tab-bar/index.mjs";import{ThemeSync as W}from"./components/common/theme-sync/index.mjs";import{TopNavBarServer as G}from"./components/common/top-nav-bar/index.mjs";import{WaitLoading as K}from"./components/common/wait-loading.mjs";export{v as AddIcon,l as BlockedDialog,E as CollectionList,T as CollectionListItem,y as CommentIcon,L as CommonPhotoGrid,c as CommonPlayer,d as DebugLocaleSwitcher,f as DeleteConfirmDialog,b as DeleteIcon,p as Empty,h as FunhubProvider,B as GenderPicker,_ as HeaderNav,i as IntlProvider,g as LeftArrowIcon,P as LocaleSync,m as LoginDialog,e as MediaPreview,u as MiniThreeCard,x as MoreIcon,F as PageSkeleton,I as PhotoGrid,V as PopupVideo,O as PostList,D as PostListItem,S as RightArrowIcon,H as SeriesEpisodes,C as SettingIcon,n as ShareContent,r as ShareDrawer,w as ShareIcon,a as SharePopupComponent,U as TabBar,W as ThemeSync,G as TopNavBarServer,k as UserActivityList,A as UserActivityListItem,j as UserActivityMediaGrid,e as UserActivityMediaPreview,N as VideoList,M as VideoListItem,K as WaitLoading,R as closePhotoPreview,o as defaultActions,s as defaultPlatforms,z as photoPreview,t as useMediaPreview};
@@ -15,6 +15,10 @@ declare const basicBannerInspectorPropsSchema: z$1.ZodObject<{
15
15
  coverUrl: z$1.ZodOptional<z$1.ZodString>;
16
16
  showViewCount: z$1.ZodOptional<z$1.ZodBoolean>;
17
17
  }, z$1.core.$strip>>> & SchemaHasDefaultValue;
18
+ mode: z$1.ZodOptional<z$1.ZodEnum<{
19
+ renderer: "renderer";
20
+ editor: "editor";
21
+ }>>;
18
22
  }, z$1.core.$strip>;
19
23
  declare const basicBannerInspectorDefaultProps: {
20
24
  interval: number;
@@ -15,6 +15,10 @@ declare const basicBannerMaterial: DefineMaterialOption<typeof BasicBanner, type
15
15
  coverUrl: zod.ZodOptional<zod.ZodString>;
16
16
  showViewCount: zod.ZodOptional<zod.ZodBoolean>;
17
17
  }, zod_v4_core0.$strip>>> & SchemaHasDefaultValue;
18
+ mode: zod.ZodOptional<zod.ZodEnum<{
19
+ renderer: "renderer";
20
+ editor: "editor";
21
+ }>>;
18
22
  }, zod_v4_core0.$strip>, "basic-banner">;
19
23
  //#endregion
20
24
  export { basicBannerMaterial };
@@ -1,13 +1,18 @@
1
1
 
2
2
  import { BaseComponentProps } from "../../../../../utils/types/component.mjs";
3
3
  import "../../../../../utils/index.mjs";
4
+ import { MaterialComponentMode } from "../../../../../../../utils/schema/schema.mjs";
5
+ import "../../../../../../../utils/schema/index.mjs";
4
6
  import * as react_jsx_runtime0 from "react/jsx-runtime";
5
7
 
6
8
  //#region components/biz/business/banner/variants/basic-banner/runtime/client.d.ts
7
9
  declare function BasicBannerClient({
10
+ mode,
8
11
  props: propsConfig,
9
12
  styles,
10
13
  events
11
- }: BaseComponentProps<any>): react_jsx_runtime0.JSX.Element | null;
14
+ }: BaseComponentProps<any> & {
15
+ mode?: MaterialComponentMode;
16
+ }): react_jsx_runtime0.JSX.Element | null;
12
17
  //#endregion
13
18
  export { BasicBannerClient };
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{buildContentUrl as e}from"../../../../../utils/helpers/url.mjs";import{mergeStyles as t}from"../../../../../utils/styles/helpers.mjs";import{defaultProps as n}from"../defaults/default-props.mjs";import{Image as r}from"../../../../../../ui/image.mjs";import{Box as i}from"../../../../../../ui/box.mjs";import{Carousel as a,CarouselContent as o,CarouselItem as s}from"../../../../../../ui/carousel.mjs";import{Text as c}from"../../../../../../ui/text.mjs";import l from"../../../../../../ui/legacy/button.mjs";import u from"../../../../../../ui/link.mjs";import d from"clsx";import{useIsClient as f}from"foxact/use-is-client";import{useEffect as p,useRef as m,useState as h}from"react";import{jsx as g,jsxs as _}from"react/jsx-runtime";const v={list:[]};function y({props:y=v,styles:b,events:x}){let{autoplay:S=n.autoplay,interval:C=n.interval,loop:w=n.loop,showTitle:T=n.showTitle,showIndicator:E=n.showIndicator,list:D=[]}={...n,...y},[O,k]=h(),[A,j]=h(0),M=f(),N=m(null);if(p(()=>{if(!O||!M)return;let e=()=>{j(O.selectedScrollSnap())};return O.on(`select`,e),e(),()=>{O.off(`select`,e)}},[O,x,M]),p(()=>!S||!O||D.length<=1?void 0:(N.current=setInterval(()=>{O.canScrollNext()?O.scrollNext():w&&O.scrollTo(0)},C),()=>{N.current&&=(clearInterval(N.current),null)}),[S,O,C,w,D.length]),!D||D.length===0)return null;let P=D[A];return _(i,{className:`relative w-full`,style:b?t(b,{}):void 0,children:[g(a,{setApi:k,opts:{align:`start`,loop:w,skipSnaps:!1,dragFree:!1},className:`w-full`,children:g(o,{className:`ml-0`,children:D.map((t,n)=>g(s,{className:`pl-0`,children:g(u,{href:e({url:``,contentId:t.contentId,contentType:1,title:t.title}),className:`block relative w-full h-[242px] overflow-hidden touch-manipulation`,children:g(r,{src:t.coverUrl,alt:t.title||`Banner ${n+1}`,fill:!0,objectFit:`cover`,unoptimized:!0})})},n))})}),T&&P?.title&&g(i,{className:`absolute bottom-[8px] left-[8px]`,children:g(c,{as:`p`,className:`text-white text-[16px] line-clamp-1`,children:P.title})}),E&&D.length>1&&g(i,{className:`absolute bottom-[16px] right-[8px] flex items-center gap-[4px]`,children:D.map((e,t)=>g(l,{type:`button`,className:d(`transition-all duration-300 rounded-full !p-0`,t===A?`w-[10px] h-[6px] bg-black`:`w-[6px] h-[6px] bg-white/50`),"aria-label":`跳转到第 ${t+1} 个 Banner`},t))})]})}export{y as default};
2
+ "use client";import{buildContentUrl as e}from"../../../../../utils/helpers/url.mjs";import{mergeStyles as t}from"../../../../../utils/styles/helpers.mjs";import{defaultProps as n}from"../defaults/default-props.mjs";import{Image as r}from"../../../../../../ui/image.mjs";import{Box as i}from"../../../../../../ui/box.mjs";import{Carousel as a,CarouselContent as o,CarouselItem as s}from"../../../../../../ui/carousel.mjs";import{Text as c}from"../../../../../../ui/text.mjs";import l from"../../../../../../ui/legacy/button.mjs";import u from"../../../../../../ui/link.mjs";import d from"clsx";import{useIsClient as f}from"foxact/use-is-client";import{useEffect as p,useRef as m,useState as h}from"react";import{jsx as g,jsxs as _}from"react/jsx-runtime";const v={list:[]};function y({mode:y=`renderer`,props:b=v,styles:x,events:S}){let C=y===`editor`,{autoplay:w=n.autoplay,interval:T=n.interval,loop:E=n.loop,showTitle:D=n.showTitle,showIndicator:O=n.showIndicator,list:k=[]}={...n,...b},[A,j]=h(),[M,N]=h(0),P=f(),F=m(null);if(p(()=>{if(!A||!P)return;let e=()=>{N(A.selectedScrollSnap())};return A.on(`select`,e),e(),()=>{A.off(`select`,e)}},[A,S,P]),p(()=>!w||!A||k.length<=1?void 0:(F.current=setInterval(()=>{A.canScrollNext()?A.scrollNext():E&&A.scrollTo(0)},T),()=>{F.current&&=(clearInterval(F.current),null)}),[w,A,T,E,k.length]),!k||k.length===0)return null;let I=k[M],L=x?t(x,{}):void 0;return _(i,{className:C?`relative w-full pointer-events-none`:`relative w-full`,style:L,children:[g(a,{setApi:j,opts:{align:`start`,loop:E,skipSnaps:!1,dragFree:!1},className:`w-full`,children:g(o,{className:`ml-0`,children:k.map((t,n)=>g(s,{className:`pl-0`,children:g(u,{href:e({url:``,contentId:t.contentId,contentType:1,title:t.title}),className:`block relative w-full h-[242px] overflow-hidden touch-manipulation`,children:g(r,{src:t.coverUrl,alt:t.title||`Banner ${n+1}`,fill:!0,objectFit:`cover`,unoptimized:!0})})},n))})}),D&&I?.title&&g(i,{className:`absolute bottom-[8px] left-[8px]`,children:g(c,{as:`p`,className:`text-white text-[16px] line-clamp-1`,children:I.title})}),O&&k.length>1&&g(i,{className:`absolute bottom-[16px] right-[8px] flex items-center gap-[4px]`,children:k.map((e,t)=>g(l,{type:`button`,className:d(`transition-all duration-300 rounded-full !p-0`,t===M?`w-[10px] h-[6px] bg-black`:`w-[6px] h-[6px] bg-white/50`),"aria-label":`跳转到第 ${t+1} 个 Banner`},t))})]})}export{y as default};
@@ -1,2 +1,2 @@
1
1
 
2
- import{defaultProps as e}from"./defaults/default-props.mjs";import t from"./runtime/client.mjs";import{jsx as n}from"react/jsx-runtime";function r(r){let{interval:i,list:a}=r,o=typeof i==`string`?Number(i)||e.interval:i??e.interval;return n(t,{props:{autoplay:e.autoplay,interval:o,loop:e.loop,list:a}})}export{r as BasicBanner};
2
+ import{defaultProps as e}from"./defaults/default-props.mjs";import t from"./runtime/client.mjs";import{jsx as n}from"react/jsx-runtime";function r(r){let{mode:i=`renderer`,interval:a,list:o}=r,s=typeof a==`string`?Number(a)||e.interval:a??e.interval;return n(t,{mode:i,props:{autoplay:e.autoplay,interval:s,loop:e.loop,list:o}})}export{r as BasicBanner};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{buildContentUrl as e}from"../../utils/helpers/url.mjs";import{mergeStyles as t}from"../../utils/styles/helpers.mjs";import{Image as n}from"../../../ui/image.mjs";import{Box as r}from"../../../ui/box.mjs";import{Carousel as i,CarouselContent as a,CarouselItem as o}from"../../../ui/carousel.mjs";import{Text as s}from"../../../ui/text.mjs";import c from"../../../ui/legacy/button.mjs";import l from"../../../ui/link.mjs";import{defaultProps as u}from"./default-props.mjs";import d from"clsx";import{useIsClient as f}from"foxact/use-is-client";import{useEffect as p,useRef as m,useState as h}from"react";import{jsx as g,jsxs as _}from"react/jsx-runtime";const v={list:[]};function y({props:y=v,styles:b,events:x}){let{autoplay:S=u.autoplay,interval:C=u.interval,loop:w=u.loop,showTitle:T=u.showTitle,showIndicator:E=u.showIndicator,list:D=[]}={...u,...y},[O,k]=h(),[A,j]=h(0),M=f(),N=m(null);if(p(()=>{if(!O||!M)return;let e=()=>{j(O.selectedScrollSnap())};return O.on(`select`,e),e(),()=>{O.off(`select`,e)}},[O,x,M]),p(()=>!S||!O||D.length<=1?void 0:(N.current=setInterval(()=>{O.canScrollNext()?O.scrollNext():w&&O.scrollTo(0)},C*1e3),()=>{N.current&&=(clearInterval(N.current),null)}),[S,O,C,w,D.length]),!D||D.length===0)return null;let P=D[A];return _(r,{className:`relative w-full`,style:b?t(b,{}):void 0,children:[g(i,{setApi:k,opts:{align:`start`,loop:w,skipSnaps:!1,dragFree:!1},className:`w-full`,children:g(a,{className:`ml-0`,children:D.map((t,r)=>g(o,{className:`pl-0`,children:g(l,{href:e({url:``,contentId:t.contentId,contentType:1,title:t.title}),className:`block relative w-full h-[242px] overflow-hidden touch-manipulation`,children:g(n,{src:t.coverUrl,alt:t.title||`Banner ${r+1}`,fill:!0,objectFit:`cover`,unoptimized:!0})})},r))})}),T&&P?.title&&g(r,{className:`absolute bottom-[8px] left-[8px]`,children:g(s,{as:`p`,className:`text-white text-[16px] line-clamp-1`,children:P.title})}),E&&D.length>1&&g(r,{className:`absolute bottom-[16px] right-[8px] flex items-center gap-[4px]`,children:D.map((e,t)=>g(c,{type:`button`,className:d(`transition-all duration-300 rounded-full !p-0`,t===A?`w-[10px] h-[6px] bg-black`:`w-[6px] h-[6px] bg-white/50`),"aria-label":`跳转到第 ${t+1} 个 Banner`},t))})]})}export{y as default};
2
+ "use client";import{buildContentUrl as e}from"../../utils/helpers/url.mjs";import{mergeStyles as t}from"../../utils/styles/helpers.mjs";import{Image as n}from"../../../ui/image.mjs";import{Box as r}from"../../../ui/box.mjs";import{Carousel as i,CarouselContent as a,CarouselItem as o}from"../../../ui/carousel.mjs";import{Text as s}from"../../../ui/text.mjs";import c from"../../../ui/legacy/button.mjs";import l from"../../../ui/link.mjs";import{defaultProps as u}from"./default-props.mjs";import d from"clsx";import{useIsClient as f}from"foxact/use-is-client";import{useEffect as p,useRef as m,useState as h}from"react";import{jsx as g,jsxs as _}from"react/jsx-runtime";const v={list:[]};function y({mode:y=`renderer`,props:b=v,styles:x,events:S}){let C=y===`editor`,{autoplay:w=u.autoplay,interval:T=u.interval,loop:E=u.loop,showTitle:D=u.showTitle,showIndicator:O=u.showIndicator,list:k=[]}={...u,...b},[A,j]=h(),[M,N]=h(0),P=f(),F=m(null);if(p(()=>{if(!A||!P)return;let e=()=>{N(A.selectedScrollSnap())};return A.on(`select`,e),e(),()=>{A.off(`select`,e)}},[A,S,P]),p(()=>!w||!A||k.length<=1?void 0:(F.current=setInterval(()=>{A.canScrollNext()?A.scrollNext():E&&A.scrollTo(0)},T*1e3),()=>{F.current&&=(clearInterval(F.current),null)}),[w,A,T,E,k.length]),!k||k.length===0)return null;let I=k[M],L=x?t(x,{}):void 0;return _(r,{className:C?`relative w-full pointer-events-none`:`relative w-full`,style:L,children:[g(i,{setApi:j,opts:{align:`start`,loop:E,skipSnaps:!1,dragFree:!1},className:`w-full`,children:g(a,{className:`ml-0`,children:k.map((t,r)=>g(o,{className:`pl-0`,children:g(l,{href:e({url:``,contentId:t.contentId,contentType:1,title:t.title}),className:`block relative w-full h-[242px] overflow-hidden touch-manipulation`,children:g(n,{src:t.coverUrl,alt:t.title||`Banner ${r+1}`,fill:!0,objectFit:`cover`,unoptimized:!0})})},r))})}),D&&I?.title&&g(r,{className:`absolute bottom-[8px] left-[8px]`,children:g(s,{as:`p`,className:`text-white text-[16px] line-clamp-1`,children:I.title})}),O&&k.length>1&&g(r,{className:`absolute bottom-[16px] right-[8px] flex items-center gap-[4px]`,children:k.map((e,t)=>g(c,{type:`button`,className:d(`transition-all duration-300 rounded-full !p-0`,t===M?`w-[10px] h-[6px] bg-black`:`w-[6px] h-[6px] bg-white/50`),"aria-label":`跳转到第 ${t+1} 个 Banner`},t))})]})}export{y as default};
@@ -17,6 +17,10 @@ declare const BannerCarouselMaterial: DefineMaterialOption<typeof BannerCarousel
17
17
  showPlayCount: zod.ZodOptional<zod.ZodBoolean>;
18
18
  showEpisodeCount: zod.ZodOptional<zod.ZodBoolean>;
19
19
  }, zod_v4_core0.$strip>>> & SchemaHasDefaultValue;
20
+ mode: zod.ZodOptional<zod.ZodEnum<{
21
+ renderer: "renderer";
22
+ editor: "editor";
23
+ }>>;
20
24
  }, zod_v4_core0.$strip>, "banner-carousel">;
21
25
  //#endregion
22
26
  export { BannerCarouselMaterial };
@@ -17,6 +17,10 @@ declare const basicBannerInspectorPropsSchema: z$1.ZodObject<{
17
17
  showPlayCount: z$1.ZodOptional<z$1.ZodBoolean>;
18
18
  showEpisodeCount: z$1.ZodOptional<z$1.ZodBoolean>;
19
19
  }, z$1.core.$strip>>> & SchemaHasDefaultValue;
20
+ mode: z$1.ZodOptional<z$1.ZodEnum<{
21
+ renderer: "renderer";
22
+ editor: "editor";
23
+ }>>;
20
24
  }, z$1.core.$strip>;
21
25
  type BasicBannerInspectorProps<T extends object = object> = z$1.infer<typeof basicBannerInspectorPropsSchema> & T;
22
26
  //#endregion
@@ -1,2 +1,2 @@
1
1
 
2
- import{defaultProps as e}from"./default-props.mjs";import t from"./client.mjs";import{jsx as n}from"react/jsx-runtime";function r(r){let{interval:i,list:a}=r;return n(t,{props:{interval:typeof i==`string`?Number(i)||e.interval:i??e.interval,list:a}})}export{r as BannerCarousel};
2
+ import{defaultProps as e}from"./default-props.mjs";import t from"./client.mjs";import{jsx as n}from"react/jsx-runtime";function r(r){let{mode:i=`renderer`,interval:a,list:o}=r;return n(t,{mode:i,props:{interval:typeof a==`string`?Number(a)||e.interval:a??e.interval,list:o}})}export{r as BannerCarousel};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{mergeStyles as e}from"../../utils/styles/helpers.mjs";import{Box as t}from"../../../ui/box.mjs";import n from"../../../ui/link.mjs";import{urlPrefix as r}from"../../../../constants/url-prefix.mjs";import{useSticky as i}from"../../../../hooks/use-sticky.mjs";import a,{loadHiddenChannelIdsFromStorage as o}from"./channel-filter-dialog.mjs";import{defaultProps as s}from"./default-props.mjs";import{clsx as c}from"clsx";import{useEffect as l,useMemo as u,useState as d}from"react";import{Fragment as f,jsx as p,jsxs as m}from"react/jsx-runtime";const h={};function g(e,t){return t===0?`/`:`${r.CHANNEL}/${encodeURIComponent(e.name)}`}function _(r){let{styles:_,events:v,...y}=r,b=y||h,x={...s,...b},[S,C]=d(!1),{isSticky:w,ref:T}=i(),[E,D]=d(x.list),O=u(()=>x.currentChannelId??null,[x.currentChannelId]);l(()=>{let e=o();D(e?.length?x.list.filter(t=>!e.includes(t.name)):x.list)},[x.list]);let k=e=>{D(e)},A=(e,t)=>{v?.onChannelChange?.(e,t)},j=_?e(_,{}):void 0;return m(f,{children:[w&&p(t,{className:`w-full h-11`}),p(t,{as:`nav`,ref:T,className:c(`w-full transition-all duration-200`,!x.isFullfeed&&w&&`fixed top-0 left-0 right-0 z-50`,x.isFullfeed&&`fixed top-[54px] left-0 z-10 w-full`,!x.isFullfeed&&`bg-bg1`),style:j,children:p(t,{className:`relative flex items-center h-[44px]`,children:p(t,{className:`flex-1 overflow-x-auto overflow-y-hidden [&::-webkit-scrollbar]:hidden`,style:{scrollbarWidth:`none`,msOverflowStyle:`none`,WebkitOverflowScrolling:`touch`},children:p(t,{className:`flex items-center h-full w-4 h-4 gap-4`,children:E.map((e,t)=>{let r=O===e.name||O===null&&t===0;return p(n,{href:g(e,t),className:c(`whitespace-nowrap cursor-pointer transition-all duration-200`,`flex items-center justify-center h-11`,`${r?`text-xl`:`text-base`}`),style:{fontWeight:r?`bold`:`normal`,color:r?`var(--color-theme5)`:`var(--color-text2)`},onClick:()=>A(e,t),children:e.name},e.name||`channel-${t}`)})})})})}),p(a,{open:S,onOpenChange:C,channels:x.list,currentChannelId:O,onChannelClick:A,onChannelsChange:k})]})}export{_ as default};
2
+ "use client";import{mergeStyles as e}from"../../utils/styles/helpers.mjs";import{Box as t}from"../../../ui/box.mjs";import n from"../../../ui/link.mjs";import{urlPrefix as r}from"../../../../constants/url-prefix.mjs";import{useSticky as i}from"../../../../hooks/use-sticky.mjs";import a,{loadHiddenChannelIdsFromStorage as o}from"./channel-filter-dialog.mjs";import{defaultProps as s}from"./default-props.mjs";import{clsx as c}from"clsx";import{useEffect as l,useMemo as u,useState as d}from"react";import{Fragment as f,jsx as p,jsxs as m}from"react/jsx-runtime";const h={};function g(e,t){return t===0?`/`:`${r.CHANNEL}/${encodeURIComponent(e.name)}`}function _(r){let{mode:_=`renderer`,styles:v,events:y,...b}=r,x=_===`editor`,S=b||h,C={...s,...S},[w,T]=d(!1),{isSticky:E,ref:D}=i(),[O,k]=d(C.list),A=u(()=>C.currentChannelId??null,[C.currentChannelId]);l(()=>{let e=o();k(e?.length?C.list.filter(t=>!e.includes(t.name)):C.list)},[C.list]);let j=e=>{k(e)},M=(e,t)=>{y?.onChannelChange?.(e,t)},N=v?e(v,{}):void 0;return m(f,{children:[E&&p(t,{className:`w-full h-11`}),p(t,{as:`nav`,ref:D,className:c(`w-full transition-all duration-200`,x&&`pointer-events-none`,!C.isFullfeed&&E&&`fixed top-0 left-0 right-0 z-50`,C.isFullfeed&&`fixed top-[54px] left-0 z-10 w-full`,!C.isFullfeed&&`bg-bg1`),style:N,children:p(t,{className:`relative flex items-center h-[44px]`,children:p(t,{className:`flex-1 overflow-x-auto overflow-y-hidden [&::-webkit-scrollbar]:hidden`,style:{scrollbarWidth:`none`,msOverflowStyle:`none`,WebkitOverflowScrolling:`touch`},children:p(t,{className:`flex items-center h-full w-4 h-4 gap-4`,children:O.map((e,t)=>{let r=A===e.name||A===null&&t===0;return p(n,{href:g(e,t),className:c(`whitespace-nowrap cursor-pointer transition-all duration-200`,`flex items-center justify-center h-11`,`${r?`text-xl`:`text-base`}`),style:{fontWeight:r?`bold`:`normal`,color:r?`var(--color-theme5)`:`var(--color-text2)`},onClick:()=>M(e,t),children:e.name},e.name||`channel-${t}`)})})})})}),p(a,{open:w,onOpenChange:T,channels:C.list,currentChannelId:A,onChannelClick:M,onChannelsChange:j})]})}export{_ as default};
@@ -13,6 +13,10 @@ declare const channelListMaterial: DefineMaterialOption<typeof BasicChannelListC
13
13
  icon: zod.ZodOptional<zod.ZodString>;
14
14
  isDefault: zod.ZodOptional<zod.ZodBoolean>;
15
15
  }, zod_v4_core0.$strip>>> & SchemaHasDefaultValue;
16
+ mode: zod.ZodOptional<zod.ZodEnum<{
17
+ renderer: "renderer";
18
+ editor: "editor";
19
+ }>>;
16
20
  }, zod_v4_core0.$strip>, "channel-list">;
17
21
  //#endregion
18
22
  export { channelListMaterial };
@@ -15,6 +15,10 @@ declare const channelListInspectorPropsSchema: z$1.ZodObject<{
15
15
  icon: z$1.ZodOptional<z$1.ZodString>;
16
16
  isDefault: z$1.ZodOptional<z$1.ZodBoolean>;
17
17
  }, z$1.core.$strip>>> & SchemaHasDefaultValue;
18
+ mode: z$1.ZodOptional<z$1.ZodEnum<{
19
+ renderer: "renderer";
20
+ editor: "editor";
21
+ }>>;
18
22
  }, z$1.core.$strip>;
19
23
  type ChannelListInspectorProps<T extends object = object> = z$1.infer<typeof channelListInspectorPropsSchema> & BaseComponentProps;
20
24
  /**
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{useUserStore as e}from"../../../../store/modules/user-store.mjs";import{Box as t}from"../../../ui/box.mjs";import{Text as n}from"../../../ui/text.mjs";import{useDeleteRequest as r}from"../../../../hooks/query/use-query.mjs";import{useAppContext as i}from"../../../../hooks/use-app-context/index.mjs";import{useLoginModalStore as a}from"../../../../store/modules/login-modal-store.mjs";import{debounceFun as o}from"../../../../utils/tools.mjs";import s from"../../../common/interaction-animations.module.mjs";import c from"../../../common/collection-popup/index.mjs";import{useContentOperate as l}from"../../../../hooks/use-content-operate.mjs";import u from"../../../../assets/icons/detail/check-ok.mjs";import d from"../../../../assets/icons/detail/collect_nor.mjs";import f from"../../../../assets/icons/detail/collect_sel.mjs";import p from"../../../../assets/icons/detail/give_like.mjs";import m from"../../../../assets/icons/detail/give_like_sel.mjs";import h from"../../../../assets/icons/detail/share.mjs";import{useCallback as g,useMemo as _,useRef as v,useState as y}from"react";import{jsx as b,jsxs as x}from"react/jsx-runtime";import{toast as S}from"sonner";import{useTranslations as C}from"next-intl";function w({information:w,onUpdate:D}){let O=i()===`editor`||!w?.id||w.id.startsWith(`preview-`),k=C(`components.biz.business.detail`),[A,j]=y(!1),[M,N]=y(!1),P=v(0),F=e(e=>e.userId),I=e(e=>e.isLogin),L=r(),R=g(()=>{F&&(L([`user-profile`,`mine`,F,`user-like-video`]),L([`user-profile`,`mine`,F,`user-like-post`]),L([`user-profile`,`mine`,F,`user-collect-video`,F]),L([`user-profile`,`mine`,F,`user-collect-post`,F]))},[L,F]),{likeAnimation:z,handleLikeOperate:B,handleDefaultCollectionOperate:V,handleShareOperate:H}=l({id:w.id,isLike:w.like||!1,isDislike:w.dislike||!1,isCollect:w.collect||!1,likeCnt:E(w.static?.like_cnt),dislikeCnt:E(w.static?.dislike_cnt),contentType:w.content_type,prefetchDefaultCollection:!O,animationClasses:{like:s.likeShakeAnimation,dislike:s.dislikeShakeAnimation}}),U=g(e=>{D?.({...e})},[D]),W=g(async()=>{if(A)return;if(!I){a.getState().open();return}let e=Date.now();if(e-P.current<300)return;P.current=e,j(!0);let t=w.like||!1,n=w.dislike||!1,r=E(w.static?.like_cnt),i=E(w.static?.dislike_cnt),o=!t,s=Math.max(0,r+(o?1:-1)),c=o?!1:n,l=o&&n?Math.max(0,i-1):i;U({like:o,dislike:c,static:{...w.static,like_cnt:s,dislike_cnt:l}});try{let e=await B();if(!e){U({like:t,dislike:n,static:{...w.static,like_cnt:r,dislike_cnt:i}});return}U({like:e.isLike,dislike:e.isDislike??c,static:{...w.static,like_cnt:e.likeCnt,dislike_cnt:e.dislikeCnt??l}}),R(),window.sensors?.track?.(`detail_like_click`,{object_id:w.id,action:e.isLike?`点赞`:`取消点赞`,like_count:e.likeCnt})}catch(e){console.error(`点赞操作失败:`,e),S.error(k(`detailOperate.operateFailed`))}finally{j(!1)}},[B,w,R,A,I,k,U]),G=_(()=>w.id,[w.id]),K=g(()=>{H(({isCollect:e})=>{U({collect:e})},G)},[H,G,U]);async function q(e){return await new Promise(e=>setTimeout(e,300)),e}let J=g(()=>{c.show({mode:`select`,onCollect:async e=>{try{await q({contentId:w.id,collectionId:e}),U({collect:!0}),R(),S.success(k(`detailOperate.modifyCollectionSuccess`))}catch(e){console.error(`修改收藏夹失败:`,e),S.error(k(`detailOperate.collectFailed`))}}})},[w.id,R,k,U]),Y=g(e=>{let t=e||k(`detailOperate.defaultCollection`);S.custom(e=>x(`div`,{className:`flex items-center justify-between gap-[16px] px-[16px] py-[12px] rounded-[12px] bg-black text-white shadow-lg min-w-[280px]`,children:[x(`div`,{className:`flex items-center gap-[10px]`,children:[b(`div`,{className:`w-[24px] h-[24px] rounded-full bg-white flex items-center justify-center`,children:b(u,{className:`w-[14px] h-[14px]`})}),x(`div`,{className:`flex items-center gap-[6px]`,children:[b(`span`,{className:`text-[14px] leading-[20px]`,children:k(`detailOperate.collectAdded`)}),b(`span`,{className:`text-[14px] leading-[20px] font-semibold`,children:t})]})]}),b(`button`,{type:`button`,className:`text-[14px] text-theme5 font-semibold`,onClick:()=>{S.dismiss(e),J()},children:k(`detailOperate.modifyCollection`)})]}))},[J,k]),X=g(async()=>{if(M)return;if(!I){a.getState().open();return}let e=w.collect||!1;N(!0),window.sensors?.track?.(`detail_fav_click`,{object_id:w.id,action:e?`取消收藏`:`收藏`});try{let t=await V({currentCollect:e,onUpdate:({isCollect:e})=>{U({collect:e})}});if(!t?.success){S.error(t?.message||k(`detailOperate.collectFailed`));return}R(),window.sensors?.track?.(`detail_fav_click`,{object_id:w.id,action:t.isCollect?`收藏`:`取消收藏`}),!e&&t.isCollect&&Y(t.collectionTitle)}catch(e){console.error(`收藏操作失败:`,e),S.error(e?.message||k(`detailOperate.collectFailed`))}finally{N(!1)}},[V,w.collect,w.id,R,M,I,Y,k,U]),Z=_(()=>o(X,300),[X]);return x(t,{className:`w-full h-[42px] mt-[16px] flex items-center justify-between ${O?`pointer-events-none`:``}`,children:[x(t,{className:`w-[25%] h-full flex flex-col items-center justify-center ${A?`opacity-50 cursor-not-allowed`:`cursor-pointer`}`,onClick:W,children:[w.like?b(m,{className:`w-[20px] h-[20px] ${z.animationClass}`}):b(p,{className:`w-[20px] h-[20px] text-text2`}),b(n,{className:`text-[12px] text-text2 leading-[20px]`,children:w.static?w.static.like_cnt===0?k(`detailOperate.like`):T(w.static?.like_cnt):k(`detailOperate.like`)})]}),x(t,{className:`w-[25%] h-full flex flex-col items-center justify-center ${M?`opacity-50 cursor-not-allowed`:`cursor-pointer`}`,onClick:Z,children:[w.collect?b(f,{className:`w-[20px] h-[20px]`}):b(d,{className:`w-[20px] h-[20px] text-text2`}),b(n,{className:`text-[12px] text-text2 leading-[20px]`,children:k(`detailOperate.collection`)})]}),x(t,{className:`w-[25%] h-full flex flex-col items-center justify-center cursor-pointer`,onClick:K,children:[b(h,{className:`w-[20px] h-[20px] text-text2`}),b(n,{className:`text-[12px] text-text2 leading-[20px]`,children:k(`detailOperate.share`)})]})]})}function T(e){let t=Number(e||0);return Number.isNaN(t)||t<=0?`0`:t>=1e4?`${(t/1e4).toFixed(1)}w`:t>=1e3?`${(t/1e3).toFixed(1)}k`:String(t)}function E(e){if(e==null)return 0;if(typeof e==`number`)return e;let t=Number(e);return Number.isNaN(t)?0:t}export{w as DetailOperate};
2
+ "use client";import{useUserStore as e}from"../../../../store/modules/user-store.mjs";import{Box as t}from"../../../ui/box.mjs";import{Text as n}from"../../../ui/text.mjs";import{useDeleteRequest as r}from"../../../../hooks/query/use-query.mjs";import{useLoginModalStore as i}from"../../../../store/modules/login-modal-store.mjs";import{debounceFun as a}from"../../../../utils/tools.mjs";import o from"../../../common/interaction-animations.module.mjs";import s from"../../../common/collection-popup/index.mjs";import{useContentOperate as c}from"../../../../hooks/use-content-operate.mjs";import l from"../../../../assets/icons/detail/check-ok.mjs";import u from"../../../../assets/icons/detail/collect_nor.mjs";import d from"../../../../assets/icons/detail/collect_sel.mjs";import f from"../../../../assets/icons/detail/give_like.mjs";import p from"../../../../assets/icons/detail/give_like_sel.mjs";import m from"../../../../assets/icons/detail/share.mjs";import{useCallback as h,useMemo as g,useRef as _,useState as v}from"react";import{jsx as y,jsxs as b}from"react/jsx-runtime";import{toast as x}from"sonner";import{useTranslations as S}from"next-intl";function C({mode:C=`renderer`,information:E,onUpdate:D}){let O=C===`editor`||!E?.id||E.id.startsWith(`preview-`),k=S(`components.biz.business.detail`),[A,j]=v(!1),[M,N]=v(!1),P=_(0),F=e(e=>e.userId),I=e(e=>e.isLogin),L=r(),R=h(()=>{F&&(L([`user-profile`,`mine`,F,`user-like-video`]),L([`user-profile`,`mine`,F,`user-like-post`]),L([`user-profile`,`mine`,F,`user-collect-video`,F]),L([`user-profile`,`mine`,F,`user-collect-post`,F]))},[L,F]),{likeAnimation:z,handleLikeOperate:B,handleDefaultCollectionOperate:V,handleShareOperate:H}=c({id:E.id,isLike:E.like||!1,isDislike:E.dislike||!1,isCollect:E.collect||!1,likeCnt:T(E.static?.like_cnt),dislikeCnt:T(E.static?.dislike_cnt),contentType:E.content_type,prefetchDefaultCollection:!O,animationClasses:{like:o.likeShakeAnimation,dislike:o.dislikeShakeAnimation}}),U=h(e=>{D?.({...e})},[D]),W=h(async()=>{if(A)return;if(!I){i.getState().open();return}let e=Date.now();if(e-P.current<300)return;P.current=e,j(!0);let t=E.like||!1,n=E.dislike||!1,r=T(E.static?.like_cnt),a=T(E.static?.dislike_cnt),o=!t,s=Math.max(0,r+(o?1:-1)),c=o?!1:n,l=o&&n?Math.max(0,a-1):a;U({like:o,dislike:c,static:{...E.static,like_cnt:s,dislike_cnt:l}});try{let e=await B();if(!e){U({like:t,dislike:n,static:{...E.static,like_cnt:r,dislike_cnt:a}});return}U({like:e.isLike,dislike:e.isDislike??c,static:{...E.static,like_cnt:e.likeCnt,dislike_cnt:e.dislikeCnt??l}}),R(),window.sensors?.track?.(`detail_like_click`,{object_id:E.id,action:e.isLike?`点赞`:`取消点赞`,like_count:e.likeCnt})}catch(e){console.error(`点赞操作失败:`,e),x.error(k(`detailOperate.operateFailed`))}finally{j(!1)}},[B,E,R,A,I,k,U]),G=g(()=>E.id,[E.id]),K=h(()=>{H(({isCollect:e})=>{U({collect:e})},G)},[H,G,U]);async function q(e){return await new Promise(e=>setTimeout(e,300)),e}let J=h(()=>{s.show({mode:`select`,onCollect:async e=>{try{await q({contentId:E.id,collectionId:e}),U({collect:!0}),R(),x.success(k(`detailOperate.modifyCollectionSuccess`))}catch(e){console.error(`修改收藏夹失败:`,e),x.error(k(`detailOperate.collectFailed`))}}})},[E.id,R,k,U]),Y=h(e=>{let t=e||k(`detailOperate.defaultCollection`);x.custom(e=>b(`div`,{className:`flex items-center justify-between gap-[16px] px-[16px] py-[12px] rounded-[12px] bg-black text-white shadow-lg min-w-[280px]`,children:[b(`div`,{className:`flex items-center gap-[10px]`,children:[y(`div`,{className:`w-[24px] h-[24px] rounded-full bg-white flex items-center justify-center`,children:y(l,{className:`w-[14px] h-[14px]`})}),b(`div`,{className:`flex items-center gap-[6px]`,children:[y(`span`,{className:`text-[14px] leading-[20px]`,children:k(`detailOperate.collectAdded`)}),y(`span`,{className:`text-[14px] leading-[20px] font-semibold`,children:t})]})]}),y(`button`,{type:`button`,className:`text-[14px] text-theme5 font-semibold`,onClick:()=>{x.dismiss(e),J()},children:k(`detailOperate.modifyCollection`)})]}))},[J,k]),X=h(async()=>{if(M)return;if(!I){i.getState().open();return}let e=E.collect||!1;N(!0),window.sensors?.track?.(`detail_fav_click`,{object_id:E.id,action:e?`取消收藏`:`收藏`});try{let t=await V({currentCollect:e,onUpdate:({isCollect:e})=>{U({collect:e})}});if(!t?.success){x.error(t?.message||k(`detailOperate.collectFailed`));return}R(),window.sensors?.track?.(`detail_fav_click`,{object_id:E.id,action:t.isCollect?`收藏`:`取消收藏`}),!e&&t.isCollect&&Y(t.collectionTitle)}catch(e){console.error(`收藏操作失败:`,e),x.error(e?.message||k(`detailOperate.collectFailed`))}finally{N(!1)}},[V,E.collect,E.id,R,M,I,Y,k,U]),Z=g(()=>a(X,300),[X]);return b(t,{className:`w-full h-[42px] mt-[16px] flex items-center justify-between ${O?`pointer-events-none`:``}`,children:[b(t,{className:`w-[25%] h-full flex flex-col items-center justify-center ${A?`opacity-50 cursor-not-allowed`:`cursor-pointer`}`,onClick:W,children:[E.like?y(p,{className:`w-[20px] h-[20px] ${z.animationClass}`}):y(f,{className:`w-[20px] h-[20px] text-text2`}),y(n,{className:`text-[12px] text-text2 leading-[20px]`,children:E.static?E.static.like_cnt===0?k(`detailOperate.like`):w(E.static?.like_cnt):k(`detailOperate.like`)})]}),b(t,{className:`w-[25%] h-full flex flex-col items-center justify-center ${M?`opacity-50 cursor-not-allowed`:`cursor-pointer`}`,onClick:Z,children:[E.collect?y(d,{className:`w-[20px] h-[20px]`}):y(u,{className:`w-[20px] h-[20px] text-text2`}),y(n,{className:`text-[12px] text-text2 leading-[20px]`,children:k(`detailOperate.collection`)})]}),b(t,{className:`w-[25%] h-full flex flex-col items-center justify-center cursor-pointer`,onClick:K,children:[y(m,{className:`w-[20px] h-[20px] text-text2`}),y(n,{className:`text-[12px] text-text2 leading-[20px]`,children:k(`detailOperate.share`)})]})]})}function w(e){let t=Number(e||0);return Number.isNaN(t)||t<=0?`0`:t>=1e4?`${(t/1e4).toFixed(1)}w`:t>=1e3?`${(t/1e3).toFixed(1)}k`:String(t)}function T(e){if(e==null)return 0;if(typeof e==`number`)return e;let t=Number(e);return Number.isNaN(t)?0:t}export{C as DetailOperate};
@@ -24,13 +24,36 @@ import "../../../../../utils.mjs";
24
24
  import z$1 from "zod";
25
25
 
26
26
  //#region components/biz/business/detail/materials/registry.d.ts
27
- declare const videoDetailMaterials: MaterialMap<readonly [DefineMaterialOption<typeof VideoDetailPlayer, typeof VideoDetailPlayerClient, z$1.ZodObject<{}, z$1.core.$strip>, "video-detail-player">, DefineMaterialOption<typeof VideoDetailInfo, typeof VideoDetailInfoClient, z$1.ZodObject<{
27
+ declare const videoDetailMaterials: MaterialMap<readonly [DefineMaterialOption<typeof VideoDetailPlayer, typeof VideoDetailPlayerClient, z$1.ZodObject<{
28
+ mode: z$1.ZodOptional<z$1.ZodEnum<{
29
+ renderer: "renderer";
30
+ editor: "editor";
31
+ }>>;
32
+ }, z$1.core.$strip>, "video-detail-player">, DefineMaterialOption<typeof VideoDetailInfo, typeof VideoDetailInfoClient, z$1.ZodObject<{
28
33
  showTags: z$1.ZodBoolean & SchemaHasDefaultValue;
29
34
  showEpisodes: z$1.ZodBoolean & SchemaHasDefaultValue;
30
- }, z$1.core.$strip>, "video-detail-info">, DefineMaterialOption<typeof VideoDetailInfoTitle, typeof VideoDetailInfoTitleClient, z$1.ZodObject<{}, z$1.core.$strip>, "video-detail-info-title">, DefineMaterialOption<typeof VideoDetailInfoTitleTagsEpisodes, typeof VideoDetailInfoTitleTagsEpisodesClient, z$1.ZodObject<{
35
+ mode: z$1.ZodOptional<z$1.ZodEnum<{
36
+ renderer: "renderer";
37
+ editor: "editor";
38
+ }>>;
39
+ }, z$1.core.$strip>, "video-detail-info">, DefineMaterialOption<typeof VideoDetailInfoTitle, typeof VideoDetailInfoTitleClient, z$1.ZodObject<{
40
+ mode: z$1.ZodOptional<z$1.ZodEnum<{
41
+ renderer: "renderer";
42
+ editor: "editor";
43
+ }>>;
44
+ }, z$1.core.$strip>, "video-detail-info-title">, DefineMaterialOption<typeof VideoDetailInfoTitleTagsEpisodes, typeof VideoDetailInfoTitleTagsEpisodesClient, z$1.ZodObject<{
31
45
  showTags: z$1.ZodBoolean & SchemaHasDefaultValue;
32
46
  showEpisodes: z$1.ZodBoolean & SchemaHasDefaultValue;
33
- }, z$1.core.$strip>, "video-detail-info-title-tags-episodes">, DefineMaterialOption<typeof VideoDetailActions, typeof VideoDetailActionsClient, z$1.ZodObject<{}, z$1.core.$strip>, "video-detail-actions">, DefineMaterialOption<typeof VideoDetailRecommend, typeof VideoDetailRecommendClient, z$1.ZodObject<{
47
+ mode: z$1.ZodOptional<z$1.ZodEnum<{
48
+ renderer: "renderer";
49
+ editor: "editor";
50
+ }>>;
51
+ }, z$1.core.$strip>, "video-detail-info-title-tags-episodes">, DefineMaterialOption<typeof VideoDetailActions, typeof VideoDetailActionsClient, z$1.ZodObject<{
52
+ mode: z$1.ZodOptional<z$1.ZodEnum<{
53
+ renderer: "renderer";
54
+ editor: "editor";
55
+ }>>;
56
+ }, z$1.core.$strip>, "video-detail-actions">, DefineMaterialOption<typeof VideoDetailRecommend, typeof VideoDetailRecommendClient, z$1.ZodObject<{
34
57
  rows: z$1.ZodNumber & SchemaHasDefaultValue;
35
58
  columns: z$1.ZodNumber & SchemaHasDefaultValue;
36
59
  smartTagEnabled: z$1.ZodBoolean & SchemaHasDefaultValue;
@@ -56,6 +79,10 @@ declare const videoDetailMaterials: MaterialMap<readonly [DefineMaterialOption<t
56
79
  playCountDelta: z$1.ZodOptional<z$1.ZodNumber>;
57
80
  showEpisode: z$1.ZodOptional<z$1.ZodBoolean>;
58
81
  }, z$1.core.$strip>>>;
82
+ mode: z$1.ZodOptional<z$1.ZodEnum<{
83
+ renderer: "renderer";
84
+ editor: "editor";
85
+ }>>;
59
86
  }, z$1.core.$strip>, "video-detail-recommend">]>;
60
87
  //#endregion
61
88
  export { videoDetailMaterials };
@@ -8,7 +8,8 @@ import * as react_jsx_runtime0 from "react/jsx-runtime";
8
8
  */
9
9
  declare function VideoDetailActionsClient({
10
10
  information,
11
- onUpdate
11
+ onUpdate,
12
+ mode
12
13
  }: VideoDetailActionsProps): react_jsx_runtime0.JSX.Element;
13
14
  //#endregion
14
15
  export { VideoDetailActionsClient };
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{useAppContext as e}from"../../../../../../hooks/use-app-context/index.mjs";import{DetailOperate as t}from"../../detail-operate.mjs";import{editorPreviewInformation as n}from"../editor-preview.mjs";import{jsx as r}from"react/jsx-runtime";function i({information:i,onUpdate:a}){let o=e()===`editor`||!i;return r(`div`,{className:o?`pointer-events-none`:void 0,children:r(t,{information:o?n:i,onUpdate:o?e=>{}:a})})}export{i as VideoDetailActionsClient};
2
+ "use client";import{DetailOperate as e}from"../../detail-operate.mjs";import{editorPreviewInformation as t}from"../editor-preview.mjs";import{jsx as n}from"react/jsx-runtime";function r({information:r,onUpdate:i,mode:a=`renderer`}){let o=a===`editor`||!r;return n(`div`,{className:o?`pointer-events-none`:void 0,children:n(e,{mode:a,information:o?t:r,onUpdate:o?e=>{}:i})})}export{r as VideoDetailActionsClient};
@@ -6,6 +6,11 @@ import * as zod from "zod";
6
6
  import * as zod_v4_core0 from "zod/v4/core";
7
7
 
8
8
  //#region components/biz/business/detail/materials/video-detail-actions/material.d.ts
9
- declare const videoDetailActionsMaterial: DefineMaterialOption<typeof VideoDetailActions, typeof VideoDetailActionsClient, zod.ZodObject<{}, zod_v4_core0.$strip>, "video-detail-actions">;
9
+ declare const videoDetailActionsMaterial: DefineMaterialOption<typeof VideoDetailActions, typeof VideoDetailActionsClient, zod.ZodObject<{
10
+ mode: zod.ZodOptional<zod.ZodEnum<{
11
+ renderer: "renderer";
12
+ editor: "editor";
13
+ }>>;
14
+ }, zod_v4_core0.$strip>, "video-detail-actions">;
10
15
  //#endregion
11
16
  export { videoDetailActionsMaterial };
@@ -9,7 +9,12 @@ import * as zod_v4_core0 from "zod/v4/core";
9
9
  /**
10
10
  * 行为模块物料暂不对外开放配置。
11
11
  */
12
- declare const videoDetailActionsInspectorPropsSchema: zod.ZodObject<{}, zod_v4_core0.$strip>;
12
+ declare const videoDetailActionsInspectorPropsSchema: zod.ZodObject<{
13
+ mode: zod.ZodOptional<zod.ZodEnum<{
14
+ renderer: "renderer";
15
+ editor: "editor";
16
+ }>>;
17
+ }, zod_v4_core0.$strip>;
13
18
  type VideoDetailActionsInspectorProps = InferSchemaProps<typeof videoDetailActionsInspectorPropsSchema>;
14
19
  /** 视频详情行为模块物料 props。 */
15
20
  type VideoDetailActionsProps = VideoDetailActionsInspectorProps & {
@@ -1,2 +1,2 @@
1
1
 
2
- import{VideoDetailActionsClient as e}from"./client.mjs";import{jsx as t}from"react/jsx-runtime";function n(n){return t(e,{...n})}export{n as VideoDetailActions};
2
+ import{VideoDetailActionsClient as e}from"./client.mjs";import{jsx as t}from"react/jsx-runtime";function n(n){let{mode:r=`renderer`,...i}=n;return t(e,{...i,mode:r})}export{n as VideoDetailActions};
@@ -12,7 +12,8 @@ declare function VideoDetailInfoClient({
12
12
  onEpisodeChange,
13
13
  showTags,
14
14
  showEpisodes,
15
- isShow
15
+ isShow,
16
+ mode
16
17
  }: VideoDetailInfoProps): react_jsx_runtime0.JSX.Element;
17
18
  //#endregion
18
19
  export { VideoDetailInfoClient };
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{useAppContext as e}from"../../../../../../hooks/use-app-context/index.mjs";import{SeriesEpisodes as t}from"../../../../../common/series-episodes/index.mjs";import{DetailIntroduction as n}from"../../detail-introduction.mjs";import{editorPreviewInformation as r}from"../editor-preview.mjs";import{jsx as i,jsxs as a}from"react/jsx-runtime";function o({information:o,currentSeriesNum:s,onEpisodeChange:c,showTags:l=!1,showEpisodes:u=!1,isShow:d=!0}){let f=e()===`editor`||!o,p=f?r:o,m=Math.max(1,Number(s||1)),h=f?e=>{}:c,g=p?.is_more_link===`y`&&(p?.links?.length??0)>0;return a(`div`,{className:f?`pointer-events-none`:void 0,children:[i(n,{information:p,isShow:d,showTags:l}),u&&g&&i(t,{mode:`detail`,series_num:m,information:p,onEpisodeChange:h})]})}export{o as VideoDetailInfoClient};
2
+ "use client";import{SeriesEpisodes as e}from"../../../../../common/series-episodes/index.mjs";import{DetailIntroduction as t}from"../../detail-introduction.mjs";import{editorPreviewInformation as n}from"../editor-preview.mjs";import{jsx as r,jsxs as i}from"react/jsx-runtime";function a({information:a,currentSeriesNum:o,onEpisodeChange:s,showTags:c=!1,showEpisodes:l=!1,isShow:u=!0,mode:d=`renderer`}){let f=d===`editor`||!a,p=f?n:a,m=Math.max(1,Number(o||1)),h=f?e=>{}:s,g=p?.is_more_link===`y`&&(p?.links?.length??0)>0;return i(`div`,{className:f?`pointer-events-none`:void 0,children:[r(t,{information:p,isShow:u,showTags:c}),l&&g&&r(e,{mode:`detail`,series_num:m,information:p,onEpisodeChange:h})]})}export{a as VideoDetailInfoClient};
@@ -11,6 +11,10 @@ import * as zod_v4_core0 from "zod/v4/core";
11
11
  declare const videoDetailInfoMaterial: DefineMaterialOption<typeof VideoDetailInfo, typeof VideoDetailInfoClient, zod.ZodObject<{
12
12
  showTags: zod.ZodBoolean & SchemaHasDefaultValue;
13
13
  showEpisodes: zod.ZodBoolean & SchemaHasDefaultValue;
14
+ mode: zod.ZodOptional<zod.ZodEnum<{
15
+ renderer: "renderer";
16
+ editor: "editor";
17
+ }>>;
14
18
  }, zod_v4_core0.$strip>, "video-detail-info">;
15
19
  //#endregion
16
20
  export { videoDetailInfoMaterial };
@@ -12,6 +12,10 @@ import * as zod_v4_core0 from "zod/v4/core";
12
12
  declare const videoDetailInfoInspectorPropsSchema: zod.ZodObject<{
13
13
  showTags: zod.ZodBoolean & SchemaHasDefaultValue;
14
14
  showEpisodes: zod.ZodBoolean & SchemaHasDefaultValue;
15
+ mode: zod.ZodOptional<zod.ZodEnum<{
16
+ renderer: "renderer";
17
+ editor: "editor";
18
+ }>>;
15
19
  }, zod_v4_core0.$strip>;
16
20
  type VideoDetailInfoInspectorProps = InferSchemaProps<typeof videoDetailInfoInspectorPropsSchema>;
17
21
  /** 媒体信息-简介&选集物料 props。 */
@@ -1,2 +1,2 @@
1
1
 
2
- import{VideoDetailInfoClient as e}from"./client.mjs";import{jsx as t}from"react/jsx-runtime";function n(n){return t(e,{...n})}export{n as VideoDetailInfo};
2
+ import{VideoDetailInfoClient as e}from"./client.mjs";import{jsx as t}from"react/jsx-runtime";function n(n){let{mode:r=`renderer`,...i}=n;return t(e,{...i,mode:r})}export{n as VideoDetailInfo};
@@ -7,7 +7,8 @@ import * as react_jsx_runtime0 from "react/jsx-runtime";
7
7
  * 媒体信息物料客户端组件。
8
8
  */
9
9
  declare function VideoDetailInfoTitleClient({
10
- information
10
+ information,
11
+ mode
11
12
  }: VideoDetailInfoTitleProps): react_jsx_runtime0.JSX.Element | null;
12
13
  //#endregion
13
14
  export { VideoDetailInfoTitleClient };
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{Box as e}from"../../../../../ui/box.mjs";import{useAppContext as t}from"../../../../../../hooks/use-app-context/index.mjs";import{useCardDecoration as n}from"../../../../../../hooks/use-card-decoration.mjs";import{DetailInfoTitle as r}from"../../detail-info-title.mjs";import{editorPreviewInformation as i}from"../editor-preview.mjs";import{jsx as a}from"react/jsx-runtime";function o({information:o}){let s=t()===`editor`||!o?i:o,{getTitleText:c}=n(),l=c(s);return l?a(e,{className:`w-full mt-[16px] px-[12px]`,children:a(r,{title:l})}):null}export{o as VideoDetailInfoTitleClient};
2
+ "use client";import{Box as e}from"../../../../../ui/box.mjs";import{useCardDecoration as t}from"../../../../../../hooks/use-card-decoration.mjs";import{DetailInfoTitle as n}from"../../detail-info-title.mjs";import{editorPreviewInformation as r}from"../editor-preview.mjs";import{jsx as i}from"react/jsx-runtime";function a({information:a,mode:o=`renderer`}){let s=o===`editor`||!a?r:a,{getTitleText:c}=t(),l=c(s);return l?i(e,{className:`w-full mt-[16px] px-[12px]`,children:i(n,{title:l})}):null}export{a as VideoDetailInfoTitleClient};
@@ -6,6 +6,11 @@ import * as zod from "zod";
6
6
  import * as zod_v4_core0 from "zod/v4/core";
7
7
 
8
8
  //#region components/biz/business/detail/materials/video-detail-info-title/material.d.ts
9
- declare const videoDetailInfoTitleMaterial: DefineMaterialOption<typeof VideoDetailInfoTitle, typeof VideoDetailInfoTitleClient, zod.ZodObject<{}, zod_v4_core0.$strip>, "video-detail-info-title">;
9
+ declare const videoDetailInfoTitleMaterial: DefineMaterialOption<typeof VideoDetailInfoTitle, typeof VideoDetailInfoTitleClient, zod.ZodObject<{
10
+ mode: zod.ZodOptional<zod.ZodEnum<{
11
+ renderer: "renderer";
12
+ editor: "editor";
13
+ }>>;
14
+ }, zod_v4_core0.$strip>, "video-detail-info-title">;
10
15
  //#endregion
11
16
  export { videoDetailInfoTitleMaterial };
@@ -9,7 +9,12 @@ import * as zod_v4_core0 from "zod/v4/core";
9
9
  /**
10
10
  * 媒体信息物料暂不对外开放配置。
11
11
  */
12
- declare const videoDetailInfoTitleInspectorPropsSchema: zod.ZodObject<{}, zod_v4_core0.$strip>;
12
+ declare const videoDetailInfoTitleInspectorPropsSchema: zod.ZodObject<{
13
+ mode: zod.ZodOptional<zod.ZodEnum<{
14
+ renderer: "renderer";
15
+ editor: "editor";
16
+ }>>;
17
+ }, zod_v4_core0.$strip>;
13
18
  type VideoDetailInfoTitleInspectorProps = InferSchemaProps<typeof videoDetailInfoTitleInspectorPropsSchema>;
14
19
  /** 媒体信息物料 props。 */
15
20
  type VideoDetailInfoTitleProps = VideoDetailInfoTitleInspectorProps & {
@@ -1,2 +1,2 @@
1
1
 
2
- import{VideoDetailInfoTitleClient as e}from"./client.mjs";import{jsx as t}from"react/jsx-runtime";function n(n){return t(e,{...n})}export{n as VideoDetailInfoTitle};
2
+ import{VideoDetailInfoTitleClient as e}from"./client.mjs";import{jsx as t}from"react/jsx-runtime";function n(n){let{mode:r=`renderer`,...i}=n;return t(e,{...i,mode:r})}export{n as VideoDetailInfoTitle};
@@ -11,7 +11,8 @@ declare function VideoDetailInfoTitleTagsEpisodesClient({
11
11
  currentSeriesNum,
12
12
  onEpisodeChange,
13
13
  showTags,
14
- showEpisodes
14
+ showEpisodes,
15
+ mode
15
16
  }: VideoDetailInfoTitleTagsEpisodesProps): react_jsx_runtime0.JSX.Element | null;
16
17
  //#endregion
17
18
  export { VideoDetailInfoTitleTagsEpisodesClient };
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{Box as e}from"../../../../../ui/box.mjs";import{useAppContext as t}from"../../../../../../hooks/use-app-context/index.mjs";import{useCardDecoration as n}from"../../../../../../hooks/use-card-decoration.mjs";import{SeriesEpisodes as r}from"../../../../../common/series-episodes/index.mjs";import{DetailInfoTags as i}from"../../detail-info-tags.mjs";import{DetailInfoTitle as a}from"../../detail-info-title.mjs";import{editorPreviewInformation as o}from"../editor-preview.mjs";import{jsx as s,jsxs as c}from"react/jsx-runtime";function l({information:l,currentSeriesNum:u,onEpisodeChange:d,showTags:f=!0,showEpisodes:p=!0}){let m=t()===`editor`||!l,h=m?o:l,g=Math.max(1,Number(u||1)),_=m?e=>{}:d,{getTitleText:v}=n(),y=v(h),b=h?.is_more_link===`y`&&(h?.links?.length??0)>0,x=f&&(h.tags?.length??0)>0,S=p&&b;return!y&&!x&&!S?null:c(e,{className:`w-full mt-[16px] ${m?`pointer-events-none`:``}`,children:[c(e,{className:`px-[12px]`,children:[y&&s(a,{title:y}),x&&s(i,{tags:h.tags||[],className:`mt-[12px]`})]}),S&&s(r,{mode:`detail`,series_num:g,information:h,onEpisodeChange:_})]})}export{l as VideoDetailInfoTitleTagsEpisodesClient};
2
+ "use client";import{Box as e}from"../../../../../ui/box.mjs";import{useCardDecoration as t}from"../../../../../../hooks/use-card-decoration.mjs";import{SeriesEpisodes as n}from"../../../../../common/series-episodes/index.mjs";import{DetailInfoTags as r}from"../../detail-info-tags.mjs";import{DetailInfoTitle as i}from"../../detail-info-title.mjs";import{editorPreviewInformation as a}from"../editor-preview.mjs";import{jsx as o,jsxs as s}from"react/jsx-runtime";function c({information:c,currentSeriesNum:l,onEpisodeChange:u,showTags:d=!0,showEpisodes:f=!0,mode:p=`renderer`}){let m=p===`editor`||!c,h=m?a:c,g=Math.max(1,Number(l||1)),_=m?e=>{}:u,{getTitleText:v}=t(),y=v(h),b=h?.is_more_link===`y`&&(h?.links?.length??0)>0,x=d&&(h.tags?.length??0)>0,S=f&&b;return!y&&!x&&!S?null:s(e,{className:`w-full mt-[16px] ${m?`pointer-events-none`:``}`,children:[s(e,{className:`px-[12px]`,children:[y&&o(i,{title:y}),x&&o(r,{tags:h.tags||[],className:`mt-[12px]`})]}),S&&o(n,{mode:`detail`,series_num:g,information:h,onEpisodeChange:_})]})}export{c as VideoDetailInfoTitleTagsEpisodesClient};
@@ -11,6 +11,10 @@ import * as zod_v4_core0 from "zod/v4/core";
11
11
  declare const videoDetailInfoTitleTagsEpisodesMaterial: DefineMaterialOption<typeof VideoDetailInfoTitleTagsEpisodes, typeof VideoDetailInfoTitleTagsEpisodesClient, zod.ZodObject<{
12
12
  showTags: zod.ZodBoolean & SchemaHasDefaultValue;
13
13
  showEpisodes: zod.ZodBoolean & SchemaHasDefaultValue;
14
+ mode: zod.ZodOptional<zod.ZodEnum<{
15
+ renderer: "renderer";
16
+ editor: "editor";
17
+ }>>;
14
18
  }, zod_v4_core0.$strip>, "video-detail-info-title-tags-episodes">;
15
19
  //#endregion
16
20
  export { videoDetailInfoTitleTagsEpisodesMaterial };
@@ -12,6 +12,10 @@ import * as zod_v4_core0 from "zod/v4/core";
12
12
  declare const videoDetailInfoTitleTagsEpisodesInspectorPropsSchema: zod.ZodObject<{
13
13
  showTags: zod.ZodBoolean & SchemaHasDefaultValue;
14
14
  showEpisodes: zod.ZodBoolean & SchemaHasDefaultValue;
15
+ mode: zod.ZodOptional<zod.ZodEnum<{
16
+ renderer: "renderer";
17
+ editor: "editor";
18
+ }>>;
15
19
  }, zod_v4_core0.$strip>;
16
20
  type VideoDetailInfoTitleTagsEpisodesInspectorProps = InferSchemaProps<typeof videoDetailInfoTitleTagsEpisodesInspectorPropsSchema>;
17
21
  /** 媒体信息-选集物料 props。 */
@@ -1,2 +1,2 @@
1
1
 
2
- import{VideoDetailInfoTitleTagsEpisodesClient as e}from"./client.mjs";import{jsx as t}from"react/jsx-runtime";function n(n){return t(e,{...n})}export{n as VideoDetailInfoTitleTagsEpisodes};
2
+ import{VideoDetailInfoTitleTagsEpisodesClient as e}from"./client.mjs";import{jsx as t}from"react/jsx-runtime";function n(n){let{mode:r=`renderer`,...i}=n;return t(e,{...i,mode:r})}export{n as VideoDetailInfoTitleTagsEpisodes};
@@ -9,7 +9,8 @@ import * as react_jsx_runtime0 from "react/jsx-runtime";
9
9
  declare function VideoDetailPlayerClient({
10
10
  information,
11
11
  episodeIndex,
12
- resumeProgressSeconds
12
+ resumeProgressSeconds,
13
+ mode
13
14
  }: VideoDetailPlayerProps): react_jsx_runtime0.JSX.Element;
14
15
  //#endregion
15
16
  export { VideoDetailPlayerClient };
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{useAppContext as e}from"../../../../../../hooks/use-app-context/index.mjs";import{editorPreviewInformation as t}from"../editor-preview.mjs";import{DetailHero as n}from"../../video-hero.mjs";import{jsx as r}from"react/jsx-runtime";function i({information:i,episodeIndex:a,resumeProgressSeconds:o}){let s=e()===`editor`||!i,c=s?{...t,id:``,mid:``}:i;return r(`div`,{className:s?`pointer-events-none`:void 0,children:r(n,{isVideo:!0,information:c,episodeIndex:s?0:a,resumeProgressSeconds:s?0:o})})}export{i as VideoDetailPlayerClient};
2
+ "use client";import{editorPreviewInformation as e}from"../editor-preview.mjs";import{DetailHero as t}from"../../video-hero.mjs";import{jsx as n}from"react/jsx-runtime";function r({information:r,episodeIndex:i,resumeProgressSeconds:a,mode:o=`renderer`}){let s=o===`editor`||!r,c=s?{...e,id:``,mid:``}:r;return n(`div`,{className:s?`pointer-events-none`:void 0,children:n(t,{mode:o,isVideo:!0,information:c,episodeIndex:s?0:i,resumeProgressSeconds:s?0:a})})}export{r as VideoDetailPlayerClient};
@@ -6,6 +6,11 @@ import * as zod from "zod";
6
6
  import * as zod_v4_core0 from "zod/v4/core";
7
7
 
8
8
  //#region components/biz/business/detail/materials/video-detail-player/material.d.ts
9
- declare const videoDetailPlayerMaterial: DefineMaterialOption<typeof VideoDetailPlayer, typeof VideoDetailPlayerClient, zod.ZodObject<{}, zod_v4_core0.$strip>, "video-detail-player">;
9
+ declare const videoDetailPlayerMaterial: DefineMaterialOption<typeof VideoDetailPlayer, typeof VideoDetailPlayerClient, zod.ZodObject<{
10
+ mode: zod.ZodOptional<zod.ZodEnum<{
11
+ renderer: "renderer";
12
+ editor: "editor";
13
+ }>>;
14
+ }, zod_v4_core0.$strip>, "video-detail-player">;
10
15
  //#endregion
11
16
  export { videoDetailPlayerMaterial };
@@ -9,7 +9,12 @@ import * as zod_v4_core0 from "zod/v4/core";
9
9
  /**
10
10
  * 播放器物料暂不对外开放配置。
11
11
  */
12
- declare const videoDetailPlayerInspectorPropsSchema: zod.ZodObject<{}, zod_v4_core0.$strip>;
12
+ declare const videoDetailPlayerInspectorPropsSchema: zod.ZodObject<{
13
+ mode: zod.ZodOptional<zod.ZodEnum<{
14
+ renderer: "renderer";
15
+ editor: "editor";
16
+ }>>;
17
+ }, zod_v4_core0.$strip>;
13
18
  type VideoDetailPlayerInspectorProps = InferSchemaProps<typeof videoDetailPlayerInspectorPropsSchema>;
14
19
  /** 播放器物料 props。 */
15
20
  type VideoDetailPlayerProps = VideoDetailPlayerInspectorProps & {
@@ -1,2 +1,2 @@
1
1
 
2
- import{VideoDetailPlayerClient as e}from"./client.mjs";import{jsx as t}from"react/jsx-runtime";function n(n){return t(e,{...n})}export{n as VideoDetailPlayer};
2
+ import{VideoDetailPlayerClient as e}from"./client.mjs";import{jsx as t}from"react/jsx-runtime";function n(n){let{mode:r=`renderer`,...i}=n;return t(e,{...i,mode:r})}export{n as VideoDetailPlayer};
@@ -17,7 +17,8 @@ declare function VideoDetailRecommendClient({
17
17
  playCountDelta,
18
18
  showEpisode,
19
19
  enableInfinite,
20
- items
20
+ items,
21
+ mode
21
22
  }: VideoDetailRecommendProps): react_jsx_runtime0.JSX.Element | null;
22
23
  //#endregion
23
24
  export { VideoDetailRecommendClient };