@funhub/platform 0.1.130 → 0.1.131
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.
- package/dist/_virtual/_rolldown/runtime.mjs +1 -18
- package/dist/assets/icons/clear.mjs +1 -17
- package/dist/assets/icons/close-icon.mjs +1 -18
- package/dist/assets/icons/close.mjs +1 -14
- package/dist/assets/icons/common/collect_nor.mjs +1 -21
- package/dist/assets/icons/common/collect_sel.mjs +1 -21
- package/dist/assets/icons/common/follow_sel.mjs +1 -17
- package/dist/assets/icons/common/follow_user.mjs +1 -17
- package/dist/assets/icons/common/full_screen.mjs +1 -17
- package/dist/assets/icons/common/god_comment.mjs +1 -17
- package/dist/assets/icons/common/heart-like.mjs +1 -31
- package/dist/assets/icons/common/heart-unlike.mjs +1 -18
- package/dist/assets/icons/common/qq.mjs +1 -32
- package/dist/assets/icons/common/right_arrow.mjs +1 -14
- package/dist/assets/icons/common/share.mjs +1 -17
- package/dist/assets/icons/common/solid-arrow.mjs +1 -17
- package/dist/assets/icons/common/video_play.mjs +1 -18
- package/dist/assets/icons/common/wechat-friends.mjs +1 -40
- package/dist/assets/icons/common/wechat.mjs +1 -39
- package/dist/assets/icons/detail/check-ok.mjs +1 -17
- package/dist/assets/icons/detail/collect_nor.mjs +1 -21
- package/dist/assets/icons/detail/collect_sel.mjs +1 -21
- package/dist/assets/icons/detail/comment.mjs +1 -19
- package/dist/assets/icons/detail/commet_at.mjs +1 -53
- package/dist/assets/icons/detail/give_like.mjs +1 -20
- package/dist/assets/icons/detail/give_like_sel.mjs +1 -27
- package/dist/assets/icons/detail/min-collection.mjs +1 -38
- package/dist/assets/icons/detail/publish_pic.mjs +1 -27
- package/dist/assets/icons/detail/publish_video.mjs +1 -30
- package/dist/assets/icons/detail/share.mjs +1 -17
- package/dist/assets/icons/detail/un_like.mjs +1 -20
- package/dist/assets/icons/detail/un_like_sel.mjs +1 -27
- package/dist/assets/icons/detail/video_flag.mjs +1 -17
- package/dist/assets/icons/detail/video_play.mjs +1 -18
- package/dist/assets/icons/dislike.mjs +1 -20
- package/dist/assets/icons/dislike_sel.mjs +1 -27
- package/dist/assets/icons/empty/img-empty-adduser.mjs +1 -463
- package/dist/assets/icons/empty/img-empty-nodata.mjs +1 -194
- package/dist/assets/icons/eye-icon.mjs +1 -21
- package/dist/assets/icons/eye-off-icon.mjs +1 -21
- package/dist/assets/icons/filter_dark.mjs +1 -17
- package/dist/assets/icons/follow_nor.mjs +1 -44
- package/dist/assets/icons/follow_sel.mjs +1 -31
- package/dist/assets/icons/left-arrow-icon.mjs +1 -18
- package/dist/assets/icons/left_arrow.mjs +1 -14
- package/dist/assets/icons/like.mjs +1 -20
- package/dist/assets/icons/like_sel.mjs +1 -27
- package/dist/assets/icons/publish/publish_add.mjs +1 -17
- package/dist/assets/icons/publish/publish_at.mjs +1 -53
- package/dist/assets/icons/publish/publish_collection.mjs +1 -28
- package/dist/assets/icons/publish/publish_pic.mjs +1 -27
- package/dist/assets/icons/publish/publish_video.mjs +1 -30
- package/dist/assets/icons/refresh.mjs +1 -18
- package/dist/assets/icons/right_arrow.mjs +1 -14
- package/dist/assets/icons/search/avatar.mjs +1 -36
- package/dist/assets/icons/search/filter.mjs +1 -17
- package/dist/assets/icons/search/video.mjs +1 -27
- package/dist/assets/icons/search.mjs +1 -23
- package/dist/assets/icons/share/share-link.mjs +1 -39
- package/dist/assets/icons/tabs/follow.mjs +1 -20
- package/dist/assets/icons/tabs/follow_active.mjs +1 -17
- package/dist/assets/icons/tabs/home.mjs +1 -17
- package/dist/assets/icons/tabs/home_active.mjs +1 -17
- package/dist/assets/icons/tabs/mine.mjs +1 -26
- package/dist/assets/icons/tabs/mine_active.mjs +1 -17
- package/dist/assets/icons/view.mjs +1 -17
- package/dist/assets/images/add.mjs +1 -5
- package/dist/assets/images/default_avatar.mjs +1 -5
- package/dist/assets/images/default_collection_cover.mjs +1 -5
- package/dist/assets/images/empty/img_empty_adduser.mjs +1 -463
- package/dist/assets/images/empty/img_empty_message.mjs +1 -408
- package/dist/assets/images/empty/img_empty_network.mjs +1 -168
- package/dist/assets/images/empty/img_empty_nodata.mjs +1 -194
- package/dist/assets/images/empty/img_empty_picture.mjs +1 -59
- package/dist/assets/images/empty/img_empty_search.mjs +1 -250
- package/dist/assets/images/frame.mjs +1 -5
- package/dist/assets/images/less.mjs +1 -5
- package/dist/assets/images/logo.mjs +1 -5
- package/dist/assets/images/marquee.mjs +1 -5
- package/dist/assets/images/subscript.mjs +1 -5
- package/dist/assets/images/user/default_avatar.mjs +1 -5
- package/dist/biz.mjs +1 -144
- package/dist/common.mjs +1 -44
- package/dist/components/biz/basics/card-item/defaults/default-props.mjs +1 -10
- package/dist/components/biz/basics/card-item/runtime/client.mjs +1 -83
- package/dist/components/biz/basics/card-item/runtime/corners.mjs +1 -33
- package/dist/components/biz/basics/card-item/schema/component.mjs +1 -14
- package/dist/components/biz/basics/card-item/schema/data.schema.mjs +1 -8
- package/dist/components/biz/basics/card-item/schema/event.schema.mjs +1 -8
- package/dist/components/biz/basics/card-item/schema/index.mjs +1 -17
- package/dist/components/biz/basics/card-item/schema/props.schema.mjs +1 -18
- package/dist/components/biz/basics/card-item/schema/style.schema.mjs +1 -7
- package/dist/components/biz/basics/card-layout/defaults/default-props.mjs +1 -13
- package/dist/components/biz/basics/card-layout/runtime/client.mjs +1 -38
- package/dist/components/biz/basics/card-layout/schema/component.mjs +1 -14
- package/dist/components/biz/basics/card-layout/schema/data.schema.mjs +1 -8
- package/dist/components/biz/basics/card-layout/schema/event.schema.mjs +1 -5
- package/dist/components/biz/basics/card-layout/schema/index.mjs +1 -17
- package/dist/components/biz/basics/card-layout/schema/props.schema.mjs +1 -28
- package/dist/components/biz/basics/card-layout/schema/style.schema.mjs +1 -7
- package/dist/components/biz/basics/fullscreen-feed/basic-fullscreen.mjs +1 -268
- package/dist/components/biz/basics/fullscreen-feed/defaults/default-props.mjs +1 -11
- package/dist/components/biz/basics/fullscreen-feed/index.mjs +1 -12
- package/dist/components/biz/basics/fullscreen-feed/runtime/adapters.mjs +1 -97
- package/dist/components/biz/basics/fullscreen-feed/runtime/bottom-info.mjs +1 -125
- package/dist/components/biz/basics/fullscreen-feed/runtime/client.mjs +1 -390
- package/dist/components/biz/basics/fullscreen-feed/runtime/comment-modal.mjs +1 -107
- package/dist/components/biz/basics/fullscreen-feed/runtime/interaction-sync.mjs +1 -134
- package/dist/components/biz/basics/fullscreen-feed/runtime/post-slide.mjs +1 -232
- package/dist/components/biz/basics/fullscreen-feed/runtime/styles.module.mjs +152 -25
- package/dist/components/biz/basics/fullscreen-feed/runtime/use-mixed-feed-controller.mjs +1 -193
- package/dist/components/biz/basics/fullscreen-feed/runtime/use-series-feed-controller.mjs +1 -212
- package/dist/components/biz/basics/fullscreen-feed/runtime/user-action.mjs +1 -273
- package/dist/components/biz/basics/fullscreen-feed/runtime/video-slide.mjs +1 -373
- package/dist/components/biz/basics/fullscreen-feed/schema/component.mjs +1 -14
- package/dist/components/biz/basics/fullscreen-feed/schema/data.schema.mjs +1 -11
- package/dist/components/biz/basics/fullscreen-feed/schema/event.schema.mjs +1 -13
- package/dist/components/biz/basics/fullscreen-feed/schema/index.mjs +1 -17
- package/dist/components/biz/basics/fullscreen-feed/schema/props.schema.mjs +1 -20
- package/dist/components/biz/basics/fullscreen-feed/schema/style.schema.mjs +1 -5
- package/dist/components/biz/basics/logo/variants/basic-logo/defaults/default-props.mjs +1 -19
- package/dist/components/biz/basics/logo/variants/basic-logo/index.mjs +1 -9
- package/dist/components/biz/basics/logo/variants/basic-logo/runtime/client.mjs +1 -169
- package/dist/components/biz/basics/logo/variants/basic-logo/schema/component.mjs +1 -14
- package/dist/components/biz/basics/logo/variants/basic-logo/schema/data.schema.mjs +1 -9
- package/dist/components/biz/basics/logo/variants/basic-logo/schema/event.schema.mjs +1 -23
- package/dist/components/biz/basics/logo/variants/basic-logo/schema/index.mjs +1 -17
- package/dist/components/biz/basics/logo/variants/basic-logo/schema/props.schema.mjs +1 -78
- package/dist/components/biz/basics/logo/variants/basic-logo/schema/style.schema.mjs +1 -7
- package/dist/components/biz/basics/search/shared/components/search-box.mjs +1 -55
- package/dist/components/biz/basics/search/shared/config/default-data.mjs +1 -15
- package/dist/components/biz/basics/search/shared/config/schema.mjs +1 -50
- package/dist/components/biz/basics/search/variants/basic-search/defaults/default-props.mjs +1 -10
- package/dist/components/biz/basics/search/variants/basic-search/index.mjs +1 -12
- package/dist/components/biz/basics/search/variants/basic-search/runtime/client.mjs +1 -31
- package/dist/components/biz/basics/search/variants/basic-search/schema/component.mjs +1 -14
- package/dist/components/biz/basics/search/variants/basic-search/schema/data.schema.mjs +1 -8
- package/dist/components/biz/basics/search/variants/basic-search/schema/event.schema.mjs +1 -7
- package/dist/components/biz/basics/search/variants/basic-search/schema/index.mjs +1 -17
- package/dist/components/biz/basics/search/variants/basic-search/schema/props.schema.mjs +1 -7
- package/dist/components/biz/basics/search/variants/basic-search/schema/style.schema.mjs +1 -7
- package/dist/components/biz/basics/search/variants/filter-search/defaults/default-props.mjs +1 -14
- package/dist/components/biz/basics/search/variants/filter-search/index.mjs +1 -12
- package/dist/components/biz/basics/search/variants/filter-search/runtime/client.mjs +1 -63
- package/dist/components/biz/basics/search/variants/filter-search/schema/component.mjs +1 -14
- package/dist/components/biz/basics/search/variants/filter-search/schema/data.schema.mjs +1 -8
- package/dist/components/biz/basics/search/variants/filter-search/schema/event.schema.mjs +1 -7
- package/dist/components/biz/basics/search/variants/filter-search/schema/index.mjs +1 -17
- package/dist/components/biz/basics/search/variants/filter-search/schema/props.schema.mjs +1 -22
- package/dist/components/biz/basics/search/variants/filter-search/schema/style.schema.mjs +1 -7
- package/dist/components/biz/basics/search/variants/simple-search/defaults/default-props.mjs +1 -10
- package/dist/components/biz/basics/search/variants/simple-search/index.mjs +1 -9
- package/dist/components/biz/basics/search/variants/simple-search/runtime/client.mjs +1 -37
- package/dist/components/biz/basics/search/variants/simple-search/schema/component.mjs +1 -14
- package/dist/components/biz/basics/search/variants/simple-search/schema/data.schema.mjs +1 -8
- package/dist/components/biz/basics/search/variants/simple-search/schema/event.schema.mjs +1 -7
- package/dist/components/biz/basics/search/variants/simple-search/schema/index.mjs +1 -17
- package/dist/components/biz/basics/search/variants/simple-search/schema/props.schema.mjs +1 -7
- package/dist/components/biz/basics/search/variants/simple-search/schema/style.schema.mjs +1 -7
- package/dist/components/biz/basics/search/variants/tag-search/defaults/default-props.mjs +1 -18
- package/dist/components/biz/basics/search/variants/tag-search/index.mjs +1 -9
- package/dist/components/biz/basics/search/variants/tag-search/runtime/client.mjs +1 -67
- package/dist/components/biz/basics/search/variants/tag-search/schema/component.mjs +1 -14
- package/dist/components/biz/basics/search/variants/tag-search/schema/data.schema.mjs +1 -8
- package/dist/components/biz/basics/search/variants/tag-search/schema/event.schema.mjs +1 -7
- package/dist/components/biz/basics/search/variants/tag-search/schema/index.mjs +1 -17
- package/dist/components/biz/basics/search/variants/tag-search/schema/props.schema.mjs +1 -37
- package/dist/components/biz/basics/search/variants/tag-search/schema/style.schema.mjs +1 -7
- package/dist/components/biz/business/banner/variants/basic-banner/defaults/default-props.mjs +1 -15
- package/dist/components/biz/business/banner/variants/basic-banner/index.mjs +1 -12
- package/dist/components/biz/business/banner/variants/basic-banner/inspector-schema.mjs +1 -64
- package/dist/components/biz/business/banner/variants/basic-banner/material.mjs +1 -21
- package/dist/components/biz/business/banner/variants/basic-banner/runtime/client.mjs +1 -126
- package/dist/components/biz/business/banner/variants/basic-banner/schema/component.mjs +1 -14
- package/dist/components/biz/business/banner/variants/basic-banner/schema/data.schema.mjs +1 -53
- package/dist/components/biz/business/banner/variants/basic-banner/schema/event.schema.mjs +1 -5
- package/dist/components/biz/business/banner/variants/basic-banner/schema/index.mjs +1 -17
- package/dist/components/biz/business/banner/variants/basic-banner/schema/props.schema.mjs +1 -40
- package/dist/components/biz/business/banner/variants/basic-banner/schema/style.schema.mjs +1 -7
- package/dist/components/biz/business/banner/variants/basic-banner/server.mjs +1 -25
- package/dist/components/biz/business/banner-carousel/client.mjs +1 -122
- package/dist/components/biz/business/banner-carousel/default-props.mjs +1 -15
- package/dist/components/biz/business/banner-carousel/material.mjs +1 -21
- package/dist/components/biz/business/banner-carousel/schema.mjs +1 -85
- package/dist/components/biz/business/banner-carousel/server.mjs +1 -22
- package/dist/components/biz/business/card-grid/variants/card-grid-2x3/defaults/default-props.mjs +1 -8
- package/dist/components/biz/business/card-grid/variants/card-grid-2x3/index.mjs +1 -9
- package/dist/components/biz/business/card-grid/variants/card-grid-2x3/runtime/client.mjs +1 -41
- package/dist/components/biz/business/card-grid/variants/card-grid-2x3/schema/component.mjs +1 -14
- package/dist/components/biz/business/card-grid/variants/card-grid-2x3/schema/data.schema.mjs +1 -8
- package/dist/components/biz/business/card-grid/variants/card-grid-2x3/schema/event.schema.mjs +1 -5
- package/dist/components/biz/business/card-grid/variants/card-grid-2x3/schema/index.mjs +1 -17
- package/dist/components/biz/business/card-grid/variants/card-grid-2x3/schema/props.schema.mjs +1 -12
- package/dist/components/biz/business/card-grid/variants/card-grid-2x3/schema/style.schema.mjs +1 -7
- package/dist/components/biz/business/card-grid/variants/card-grid-2x3-infinite/defaults/default-props.mjs +1 -8
- package/dist/components/biz/business/card-grid/variants/card-grid-2x3-infinite/index.mjs +1 -9
- package/dist/components/biz/business/card-grid/variants/card-grid-2x3-infinite/runtime/client.mjs +1 -106
- package/dist/components/biz/business/card-grid/variants/card-grid-2x3-infinite/schema/component.mjs +1 -14
- package/dist/components/biz/business/card-grid/variants/card-grid-2x3-infinite/schema/data.schema.mjs +1 -8
- package/dist/components/biz/business/card-grid/variants/card-grid-2x3-infinite/schema/event.schema.mjs +1 -5
- package/dist/components/biz/business/card-grid/variants/card-grid-2x3-infinite/schema/index.mjs +1 -17
- package/dist/components/biz/business/card-grid/variants/card-grid-2x3-infinite/schema/props.schema.mjs +1 -12
- package/dist/components/biz/business/card-grid/variants/card-grid-2x3-infinite/schema/style.schema.mjs +1 -7
- package/dist/components/biz/business/card-grid/variants/card-grid-2x4/defaults/default-props.mjs +1 -8
- package/dist/components/biz/business/card-grid/variants/card-grid-2x4/index.mjs +1 -9
- package/dist/components/biz/business/card-grid/variants/card-grid-2x4/runtime/client.mjs +1 -41
- package/dist/components/biz/business/card-grid/variants/card-grid-2x4/schema/component.mjs +1 -14
- package/dist/components/biz/business/card-grid/variants/card-grid-2x4/schema/data.schema.mjs +1 -8
- package/dist/components/biz/business/card-grid/variants/card-grid-2x4/schema/event.schema.mjs +1 -5
- package/dist/components/biz/business/card-grid/variants/card-grid-2x4/schema/index.mjs +1 -17
- package/dist/components/biz/business/card-grid/variants/card-grid-2x4/schema/props.schema.mjs +1 -12
- package/dist/components/biz/business/card-grid/variants/card-grid-2x4/schema/style.schema.mjs +1 -7
- package/dist/components/biz/business/card-grid/variants/card-grid-3x3/defaults/default-props.mjs +1 -8
- package/dist/components/biz/business/card-grid/variants/card-grid-3x3/index.mjs +1 -9
- package/dist/components/biz/business/card-grid/variants/card-grid-3x3/runtime/client.mjs +1 -41
- package/dist/components/biz/business/card-grid/variants/card-grid-3x3/schema/component.mjs +1 -14
- package/dist/components/biz/business/card-grid/variants/card-grid-3x3/schema/data.schema.mjs +1 -8
- package/dist/components/biz/business/card-grid/variants/card-grid-3x3/schema/event.schema.mjs +1 -5
- package/dist/components/biz/business/card-grid/variants/card-grid-3x3/schema/index.mjs +1 -17
- package/dist/components/biz/business/card-grid/variants/card-grid-3x3/schema/props.schema.mjs +1 -12
- package/dist/components/biz/business/card-grid/variants/card-grid-3x3/schema/style.schema.mjs +1 -7
- package/dist/components/biz/business/card-grid/variants/card-grid-3x3-infinite/defaults/default-props.mjs +1 -8
- package/dist/components/biz/business/card-grid/variants/card-grid-3x3-infinite/index.mjs +1 -9
- package/dist/components/biz/business/card-grid/variants/card-grid-3x3-infinite/runtime/client.mjs +1 -106
- package/dist/components/biz/business/card-grid/variants/card-grid-3x3-infinite/schema/component.mjs +1 -14
- package/dist/components/biz/business/card-grid/variants/card-grid-3x3-infinite/schema/data.schema.mjs +1 -8
- package/dist/components/biz/business/card-grid/variants/card-grid-3x3-infinite/schema/event.schema.mjs +1 -5
- package/dist/components/biz/business/card-grid/variants/card-grid-3x3-infinite/schema/index.mjs +1 -17
- package/dist/components/biz/business/card-grid/variants/card-grid-3x3-infinite/schema/props.schema.mjs +1 -12
- package/dist/components/biz/business/card-grid/variants/card-grid-3x3-infinite/schema/style.schema.mjs +1 -7
- package/dist/components/biz/business/channel-list/channel-filter-dialog.mjs +1 -190
- package/dist/components/biz/business/channel-list/client.mjs +1 -136
- package/dist/components/biz/business/channel-list/default-props.mjs +1 -12
- package/dist/components/biz/business/channel-list/material.mjs +1 -21
- package/dist/components/biz/business/channel-list/schema.mjs +1 -39
- package/dist/components/biz/business/comment/comment-input.mjs +5 -772
- package/dist/components/biz/business/comment/comment-item.mjs +1 -190
- package/dist/components/biz/business/comment/comment-list.mjs +1 -722
- package/dist/components/biz/business/comment/comment-media.mjs +1 -57
- package/dist/components/biz/business/comment/comment-rich-text.mjs +1 -69
- package/dist/components/biz/business/comment/reply-detail.mjs +1 -978
- package/dist/components/biz/business/comment/time-display.mjs +1 -20
- package/dist/components/biz/business/comment/use-keyboard-handler.mjs +1 -142
- package/dist/components/biz/business/contact/contact-item.mjs +1 -45
- package/dist/components/biz/business/contact/contact-list.mjs +1 -212
- package/dist/components/biz/business/contact/contact-search.mjs +1 -128
- package/dist/components/biz/business/detail/shared/detail-follow-action.mjs +1 -105
- package/dist/components/biz/business/detail/shared/detail-info-tags.mjs +1 -24
- package/dist/components/biz/business/detail/shared/detail-info-title.mjs +1 -82
- package/dist/components/biz/business/detail/shared/detail-introduction.mjs +1 -109
- package/dist/components/biz/business/detail/shared/detail-operate.mjs +1 -340
- package/dist/components/biz/business/detail/shared/detail-structured-data.mjs +1 -63
- package/dist/components/biz/business/detail/shared/editor-preview.mjs +1 -67
- package/dist/components/biz/business/detail/shared/material-route-context.mjs +1 -44
- package/dist/components/biz/business/detail/shared/metadata-utils.mjs +1 -21
- package/dist/components/biz/business/detail/shared/post-recommend-list.mjs +1 -184
- package/dist/components/biz/business/detail/shared/registry.mjs +1 -52
- package/dist/components/biz/business/detail/shared/runtime-context-provider.mjs +1 -191
- package/dist/components/biz/business/detail/shared/seo-config.mjs +1 -28
- package/dist/components/biz/business/detail/shared/use-video-detail-webview-bridge.mjs +1 -89
- package/dist/components/biz/business/detail/shared/video-detail-server-data.mjs +1 -46
- package/dist/components/biz/business/detail/shared/video-hero.mjs +1 -395
- package/dist/components/biz/business/detail/video-detail-actions/client.mjs +1 -106
- package/dist/components/biz/business/detail/video-detail-actions/material.mjs +1 -18
- package/dist/components/biz/business/detail/video-detail-actions/schema.mjs +1 -11
- package/dist/components/biz/business/detail/video-detail-actions/server.mjs +1 -47
- package/dist/components/biz/business/detail/video-detail-info/client.mjs +1 -41
- package/dist/components/biz/business/detail/video-detail-info/material.mjs +1 -18
- package/dist/components/biz/business/detail/video-detail-info/schema.mjs +1 -20
- package/dist/components/biz/business/detail/video-detail-info/server.mjs +1 -98
- package/dist/components/biz/business/detail/video-detail-info-title-tags-episodes/client.mjs +1 -51
- package/dist/components/biz/business/detail/video-detail-info-title-tags-episodes/material.mjs +1 -18
- package/dist/components/biz/business/detail/video-detail-info-title-tags-episodes/schema.mjs +1 -20
- package/dist/components/biz/business/detail/video-detail-info-title-tags-episodes/server.mjs +1 -45
- package/dist/components/biz/business/detail/video-detail-player/client.mjs +1 -144
- package/dist/components/biz/business/detail/video-detail-player/material.mjs +1 -18
- package/dist/components/biz/business/detail/video-detail-player/schema.mjs +1 -11
- package/dist/components/biz/business/detail/video-detail-player/server.mjs +1 -17
- package/dist/components/biz/business/detail/video-detail-recommend/client.mjs +1 -552
- package/dist/components/biz/business/detail/video-detail-recommend/material.mjs +1 -18
- package/dist/components/biz/business/detail/video-detail-recommend/schema.mjs +1 -58
- package/dist/components/biz/business/detail/video-detail-recommend/server.mjs +1 -18
- package/dist/components/biz/business/detail/video-detail-recommend/utils.mjs +1 -68
- package/dist/components/biz/business/feature-grid/variants/basic-feature-grid/defaults/default-props.mjs +1 -12
- package/dist/components/biz/business/feature-grid/variants/basic-feature-grid/index.mjs +1 -9
- package/dist/components/biz/business/feature-grid/variants/basic-feature-grid/runtime/client.mjs +1 -66
- package/dist/components/biz/business/feature-grid/variants/basic-feature-grid/schema/component.mjs +1 -14
- package/dist/components/biz/business/feature-grid/variants/basic-feature-grid/schema/data.schema.mjs +1 -43
- package/dist/components/biz/business/feature-grid/variants/basic-feature-grid/schema/event.schema.mjs +1 -5
- package/dist/components/biz/business/feature-grid/variants/basic-feature-grid/schema/index.mjs +1 -17
- package/dist/components/biz/business/feature-grid/variants/basic-feature-grid/schema/props.schema.mjs +1 -32
- package/dist/components/biz/business/feature-grid/variants/basic-feature-grid/schema/style.schema.mjs +1 -7
- package/dist/components/biz/business/floating-ball/client.mjs +1 -31
- package/dist/components/biz/business/floating-ball/material.mjs +1 -18
- package/dist/components/biz/business/floating-ball/schema.mjs +1 -22
- package/dist/components/biz/business/floating-ball/server.mjs +1 -17
- package/dist/components/biz/business/fullscreen-feed/variants/fullscreen-post-feed/defaults/default-props.mjs +1 -11
- package/dist/components/biz/business/fullscreen-feed/variants/fullscreen-post-feed/index.mjs +1 -9
- package/dist/components/biz/business/fullscreen-feed/variants/fullscreen-post-feed/runtime/client.mjs +1 -71
- package/dist/components/biz/business/fullscreen-feed/variants/fullscreen-post-feed/schema/component.mjs +1 -14
- package/dist/components/biz/business/fullscreen-feed/variants/fullscreen-post-feed/schema/data.schema.mjs +1 -11
- package/dist/components/biz/business/fullscreen-feed/variants/fullscreen-post-feed/schema/index.mjs +1 -17
- package/dist/components/biz/business/fullscreen-feed/variants/fullscreen-video-feed/defaults/default-props.mjs +1 -11
- package/dist/components/biz/business/fullscreen-feed/variants/fullscreen-video-feed/index.mjs +1 -9
- package/dist/components/biz/business/fullscreen-feed/variants/fullscreen-video-feed/runtime/client.mjs +1 -64
- package/dist/components/biz/business/fullscreen-feed/variants/fullscreen-video-feed/schema/component.mjs +1 -14
- package/dist/components/biz/business/fullscreen-feed/variants/fullscreen-video-feed/schema/data.schema.mjs +1 -11
- package/dist/components/biz/business/fullscreen-feed/variants/fullscreen-video-feed/schema/index.mjs +1 -17
- package/dist/components/biz/business/fullscreen-feed/variants/shared/runtime-compat.mjs +1 -522
- package/dist/components/biz/business/header-search/header-avatar-icon/client.mjs +1 -29
- package/dist/components/biz/business/header-search/header-avatar-icon/material.mjs +1 -18
- package/dist/components/biz/business/header-search/header-avatar-icon/schema.mjs +1 -11
- package/dist/components/biz/business/header-search/header-avatar-icon/server.mjs +1 -17
- package/dist/components/biz/business/header-search/header-avatar-logo-search/client.mjs +1 -36
- package/dist/components/biz/business/header-search/header-avatar-logo-search/material.mjs +1 -18
- package/dist/components/biz/business/header-search/header-avatar-logo-search/schema.mjs +1 -24
- package/dist/components/biz/business/header-search/header-avatar-logo-search/server.mjs +1 -17
- package/dist/components/biz/business/header-search/header-avatar-logo-search-icon/client.mjs +1 -45
- package/dist/components/biz/business/header-search/header-avatar-logo-search-icon/material.mjs +1 -18
- package/dist/components/biz/business/header-search/header-avatar-logo-search-icon/schema.mjs +1 -22
- package/dist/components/biz/business/header-search/header-avatar-logo-search-icon/server.mjs +1 -17
- package/dist/components/biz/business/header-search/header-logo-search/client.mjs +1 -33
- package/dist/components/biz/business/header-search/header-logo-search/material.mjs +1 -18
- package/dist/components/biz/business/header-search/header-logo-search/schema.mjs +1 -24
- package/dist/components/biz/business/header-search/header-logo-search/server.mjs +1 -17
- package/dist/components/biz/business/header-search/header-search/client.mjs +1 -20
- package/dist/components/biz/business/header-search/header-search/material.mjs +1 -18
- package/dist/components/biz/business/header-search/header-search/schema.mjs +1 -11
- package/dist/components/biz/business/header-search/header-search/server.mjs +1 -17
- package/dist/components/biz/business/header-search/shared/avatar.mjs +1 -44
- package/dist/components/biz/business/header-search/shared/logo.mjs +1 -28
- package/dist/components/biz/business/header-search/shared/search.mjs +1 -28
- package/dist/components/biz/business/home-recommend/home-recommend-grid/client.mjs +1 -48
- package/dist/components/biz/business/home-recommend/home-recommend-grid/index.mjs +1 -14
- package/dist/components/biz/business/home-recommend/home-recommend-grid/inspector-schema.mjs +1 -193
- package/dist/components/biz/business/home-recommend/home-recommend-grid/material.mjs +1 -18
- package/dist/components/biz/business/home-recommend/home-recommend-grid/schema.mjs +1 -24
- package/dist/components/biz/business/home-recommend/home-recommend-grid/server.mjs +1 -49
- package/dist/components/biz/business/home-recommend/home-recommend-waterfall/client.mjs +1 -44
- package/dist/components/biz/business/home-recommend/home-recommend-waterfall/index.mjs +1 -14
- package/dist/components/biz/business/home-recommend/home-recommend-waterfall/inspector-schema.mjs +1 -169
- package/dist/components/biz/business/home-recommend/home-recommend-waterfall/material.mjs +1 -18
- package/dist/components/biz/business/home-recommend/home-recommend-waterfall/schema.mjs +1 -24
- package/dist/components/biz/business/home-recommend/home-recommend-waterfall/server.mjs +1 -44
- package/dist/components/biz/business/home-recommend/shared/home-recommend-base.mjs +1 -498
- package/dist/components/biz/business/home-recommend/shared/home-recommend-default-config.mjs +1 -25
- package/dist/components/biz/business/home-recommend/shared/home-recommend-preview.mjs +1 -130
- package/dist/components/biz/business/home-recommend/shared/home-recommend-runtime-props.mjs +1 -34
- package/dist/components/biz/business/home-recommend/shared/home-recommend-server-data.mjs +1 -288
- package/dist/components/biz/business/home-recommend/shared/home-recommend-video-detail.mjs +1 -38
- package/dist/components/biz/business/image-text-recommend/client.mjs +1 -423
- package/dist/components/biz/business/image-text-recommend/material.mjs +1 -21
- package/dist/components/biz/business/image-text-recommend/schema.mjs +1 -117
- package/dist/components/biz/business/image-text-recommend/server.mjs +1 -53
- package/dist/components/biz/business/image-text-recommend/shared/query.mjs +1 -32
- package/dist/components/biz/business/large-feature-grid/card-item.mjs +1 -91
- package/dist/components/biz/business/large-feature-grid/client.mjs +1 -88
- package/dist/components/biz/business/large-feature-grid/material.mjs +1 -21
- package/dist/components/biz/business/large-feature-grid/schema.mjs +1 -81
- package/dist/components/biz/business/large-feature-grid/server.mjs +1 -16
- package/dist/components/biz/business/marquee/client.mjs +1 -230
- package/dist/components/biz/business/marquee/marquee.module.mjs +25 -13
- package/dist/components/biz/business/marquee/material.mjs +1 -21
- package/dist/components/biz/business/marquee/schema.mjs +1 -97
- package/dist/components/biz/business/marquee/server.mjs +1 -17
- package/dist/components/biz/business/nav-bar/variants/basic-nav-bar/defaults/default-props.mjs +1 -21
- package/dist/components/biz/business/nav-bar/variants/basic-nav-bar/index.mjs +1 -9
- package/dist/components/biz/business/nav-bar/variants/basic-nav-bar/runtime/channel-filter-dialog.mjs +1 -180
- package/dist/components/biz/business/nav-bar/variants/basic-nav-bar/runtime/client.mjs +1 -148
- package/dist/components/biz/business/nav-bar/variants/basic-nav-bar/schema/component.mjs +1 -14
- package/dist/components/biz/business/nav-bar/variants/basic-nav-bar/schema/data.schema.mjs +1 -9
- package/dist/components/biz/business/nav-bar/variants/basic-nav-bar/schema/event.schema.mjs +1 -27
- package/dist/components/biz/business/nav-bar/variants/basic-nav-bar/schema/index.mjs +1 -17
- package/dist/components/biz/business/nav-bar/variants/basic-nav-bar/schema/props.schema.mjs +1 -92
- package/dist/components/biz/business/nav-bar/variants/basic-nav-bar/schema/style.schema.mjs +1 -7
- package/dist/components/biz/business/post-card/variants/basic-post-card/defaults/default-props.mjs +1 -8
- package/dist/components/biz/business/post-card/variants/basic-post-card/index.mjs +1 -9
- package/dist/components/biz/business/post-card/variants/basic-post-card/runtime/client.mjs +1 -119
- package/dist/components/biz/business/post-card/variants/basic-post-card/schema/component.mjs +1 -14
- package/dist/components/biz/business/post-card/variants/basic-post-card/schema/data.schema.mjs +1 -8
- package/dist/components/biz/business/post-card/variants/basic-post-card/schema/event.schema.mjs +1 -5
- package/dist/components/biz/business/post-card/variants/basic-post-card/schema/index.mjs +1 -17
- package/dist/components/biz/business/post-card/variants/basic-post-card/schema/props.schema.mjs +1 -5
- package/dist/components/biz/business/post-card/variants/basic-post-card/schema/style.schema.mjs +1 -7
- package/dist/components/biz/business/profile/profile-header/client.mjs +1 -243
- package/dist/components/biz/business/profile/profile-header/material.mjs +1 -59
- package/dist/components/biz/business/profile/profile-header/schema.mjs +1 -11
- package/dist/components/biz/business/profile/profile-header/user-profile-avatar.mjs +1 -235
- package/dist/components/biz/business/profile/profile-header/user-profile-cover-background.mjs +1 -135
- package/dist/components/biz/business/profile/profile-main/client.mjs +1 -234
- package/dist/components/biz/business/profile/profile-main/material.mjs +1 -18
- package/dist/components/biz/business/profile/profile-main/schema.mjs +1 -11
- package/dist/components/biz/business/profile/profile-main/server.mjs +1 -13
- package/dist/components/biz/business/profile/profile-main/shell.mjs +1 -187
- package/dist/components/biz/business/profile/profile-main/tabs/collect-tab/client.mjs +1 -519
- package/dist/components/biz/business/profile/profile-main/tabs/collect-tab/server.mjs +1 -13
- package/dist/components/biz/business/profile/profile-main/tabs/history-tab/client.mjs +1 -250
- package/dist/components/biz/business/profile/profile-main/tabs/history-tab/server.mjs +1 -13
- package/dist/components/biz/business/profile/profile-main/tabs/like-tab/client.mjs +1 -250
- package/dist/components/biz/business/profile/profile-main/tabs/like-tab/server.mjs +1 -13
- package/dist/components/biz/business/profile/profile-main/tabs/publish-tab/client.mjs +1 -149
- package/dist/components/biz/business/profile/profile-main/tabs/publish-tab/server.mjs +1 -13
- package/dist/components/biz/business/profile/profile-main/utils.mjs +1 -248
- package/dist/components/biz/business/profile/profile-main/variants.mjs +1 -40
- package/dist/components/biz/business/recommended-users/variants/basic-recommended-users/defaults/default-props.mjs +1 -15
- package/dist/components/biz/business/recommended-users/variants/basic-recommended-users/index.mjs +1 -9
- package/dist/components/biz/business/recommended-users/variants/basic-recommended-users/runtime/client.mjs +1 -168
- package/dist/components/biz/business/recommended-users/variants/basic-recommended-users/runtime/recommended-users-skeleton.mjs +1 -119
- package/dist/components/biz/business/recommended-users/variants/basic-recommended-users/schema/component.mjs +1 -14
- package/dist/components/biz/business/recommended-users/variants/basic-recommended-users/schema/data.schema.mjs +1 -9
- package/dist/components/biz/business/recommended-users/variants/basic-recommended-users/schema/event.schema.mjs +1 -17
- package/dist/components/biz/business/recommended-users/variants/basic-recommended-users/schema/index.mjs +1 -17
- package/dist/components/biz/business/recommended-users/variants/basic-recommended-users/schema/props.schema.mjs +1 -54
- package/dist/components/biz/business/recommended-users/variants/basic-recommended-users/schema/style.schema.mjs +1 -7
- package/dist/components/biz/business/search-bar/variants/basic-search-bar/defaults/default-props.mjs +1 -15
- package/dist/components/biz/business/search-bar/variants/basic-search-bar/index.mjs +1 -9
- package/dist/components/biz/business/search-bar/variants/basic-search-bar/runtime/client.mjs +1 -52
- package/dist/components/biz/business/search-bar/variants/basic-search-bar/schema/component.mjs +1 -14
- package/dist/components/biz/business/search-bar/variants/basic-search-bar/schema/data.schema.mjs +1 -9
- package/dist/components/biz/business/search-bar/variants/basic-search-bar/schema/event.schema.mjs +1 -5
- package/dist/components/biz/business/search-bar/variants/basic-search-bar/schema/index.mjs +1 -17
- package/dist/components/biz/business/search-bar/variants/basic-search-bar/schema/props.schema.mjs +1 -117
- package/dist/components/biz/business/search-bar/variants/basic-search-bar/schema/style.schema.mjs +1 -7
- package/dist/components/biz/business/search-bar/variants/detail-search-bar/defaults/default-props.mjs +1 -22
- package/dist/components/biz/business/search-bar/variants/detail-search-bar/index.mjs +1 -9
- package/dist/components/biz/business/search-bar/variants/detail-search-bar/runtime/client.mjs +1 -53
- package/dist/components/biz/business/search-bar/variants/detail-search-bar/schema/component.mjs +1 -14
- package/dist/components/biz/business/search-bar/variants/detail-search-bar/schema/data.schema.mjs +1 -9
- package/dist/components/biz/business/search-bar/variants/detail-search-bar/schema/event.schema.mjs +1 -5
- package/dist/components/biz/business/search-bar/variants/detail-search-bar/schema/index.mjs +1 -17
- package/dist/components/biz/business/search-bar/variants/detail-search-bar/schema/props.schema.mjs +1 -117
- package/dist/components/biz/business/search-bar/variants/detail-search-bar/schema/style.schema.mjs +1 -7
- package/dist/components/biz/business/search-bar/variants/filter-search-bar/defaults/default-props.mjs +1 -15
- package/dist/components/biz/business/search-bar/variants/filter-search-bar/index.mjs +1 -9
- package/dist/components/biz/business/search-bar/variants/filter-search-bar/runtime/client.mjs +1 -52
- package/dist/components/biz/business/search-bar/variants/filter-search-bar/schema/component.mjs +1 -14
- package/dist/components/biz/business/search-bar/variants/filter-search-bar/schema/data.schema.mjs +1 -9
- package/dist/components/biz/business/search-bar/variants/filter-search-bar/schema/event.schema.mjs +1 -25
- package/dist/components/biz/business/search-bar/variants/filter-search-bar/schema/index.mjs +1 -17
- package/dist/components/biz/business/search-bar/variants/filter-search-bar/schema/props.schema.mjs +1 -128
- package/dist/components/biz/business/search-bar/variants/filter-search-bar/schema/style.schema.mjs +1 -7
- package/dist/components/biz/business/search-bar/variants/tag-search-bar/defaults/default-props.mjs +1 -15
- package/dist/components/biz/business/search-bar/variants/tag-search-bar/index.mjs +1 -12
- package/dist/components/biz/business/search-bar/variants/tag-search-bar/runtime/client.mjs +1 -58
- package/dist/components/biz/business/search-bar/variants/tag-search-bar/schema/component.mjs +1 -14
- package/dist/components/biz/business/search-bar/variants/tag-search-bar/schema/data.schema.mjs +1 -9
- package/dist/components/biz/business/search-bar/variants/tag-search-bar/schema/event.schema.mjs +1 -38
- package/dist/components/biz/business/search-bar/variants/tag-search-bar/schema/index.mjs +1 -17
- package/dist/components/biz/business/search-bar/variants/tag-search-bar/schema/props.schema.mjs +1 -144
- package/dist/components/biz/business/search-bar/variants/tag-search-bar/schema/style.schema.mjs +1 -7
- package/dist/components/biz/business/search-history/client.mjs +1 -121
- package/dist/components/biz/business/search-history/material.mjs +1 -18
- package/dist/components/biz/business/search-history/schema.mjs +1 -20
- package/dist/components/biz/business/search-history/server.mjs +1 -17
- package/dist/components/biz/business/search-input/client.mjs +1 -108
- package/dist/components/biz/business/search-input/material.mjs +1 -18
- package/dist/components/biz/business/search-input/schema.mjs +1 -11
- package/dist/components/biz/business/search-input/server.mjs +1 -17
- package/dist/components/biz/business/shortcut-grid/client.mjs +1 -64
- package/dist/components/biz/business/shortcut-grid/material.mjs +1 -18
- package/dist/components/biz/business/shortcut-grid/schema.mjs +1 -70
- package/dist/components/biz/business/shortcut-grid/server.mjs +1 -17
- package/dist/components/biz/business/tab-bar/client.mjs +1 -102
- package/dist/components/biz/business/tab-bar/material.mjs +1 -21
- package/dist/components/biz/business/tab-bar/schema.mjs +1 -11
- package/dist/components/biz/business/tab-bar/server.mjs +1 -17
- package/dist/components/biz/business/text-recommend/client.mjs +1 -69
- package/dist/components/biz/business/text-recommend/material.mjs +1 -18
- package/dist/components/biz/business/text-recommend/schema.mjs +1 -28
- package/dist/components/biz/business/text-recommend/server.mjs +1 -18
- package/dist/components/biz/example/button/client.mjs +1 -43
- package/dist/components/biz/example/button/material.mjs +1 -18
- package/dist/components/biz/example/button/schema.mjs +1 -47
- package/dist/components/biz/example/button/server.mjs +1 -32
- package/dist/components/biz/example/button/variants.mjs +1 -22
- package/dist/components/biz/renderer/renderer.mjs +1 -73
- package/dist/components/biz/utils/constants/card-spec.mjs +1 -48
- package/dist/components/biz/utils/helpers/get-channel-list.mjs +1 -14
- package/dist/components/biz/utils/helpers/url.mjs +1 -16
- package/dist/components/biz/utils/schema/data.mjs +1 -22
- package/dist/components/biz/utils/styles/helpers.mjs +1 -84
- package/dist/components/biz/utils/styles/schema.mjs +1 -306
- package/dist/components/biz/utils/transformers/card-grid.mjs +1 -71
- package/dist/components/biz/utils/transformers/data.mjs +1 -171
- package/dist/components/common/at-element/index.mjs +1 -47
- package/dist/components/common/background-preview-modal/background-preview-modal.mjs +1 -73
- package/dist/components/common/blocked-dialog/blocked-dialog.mjs +1 -54
- package/dist/components/common/cards/mini-three-card.mjs +1 -55
- package/dist/components/common/cards/style.module.mjs +24 -12
- package/dist/components/common/collection-popup/collection-create-modal.mjs +1 -130
- package/dist/components/common/collection-popup/index.mjs +1 -292
- package/dist/components/common/debug-locale-switcher/index.mjs +1 -59
- package/dist/components/common/delete-confirm-dialog/delete-confirm-dialog.mjs +1 -66
- package/dist/components/common/empty/index.mjs +1 -51
- package/dist/components/common/follow-button/index.mjs +1 -133
- package/dist/components/common/follow-button/unfollow-confirm-dialog.mjs +1 -23
- package/dist/components/common/funhub-provider/funhub-provider.mjs +1 -85
- package/dist/components/common/header-nav/client.mjs +1 -51
- package/dist/components/common/icons/add.mjs +1 -21
- package/dist/components/common/icons/comment.mjs +1 -30
- package/dist/components/common/icons/delete.mjs +1 -32
- package/dist/components/common/icons/left-arrow.mjs +1 -15
- package/dist/components/common/icons/more.mjs +1 -30
- package/dist/components/common/icons/right-arrow.mjs +1 -19
- package/dist/components/common/icons/setting.mjs +1 -45
- package/dist/components/common/icons/share.mjs +1 -20
- package/dist/components/common/icons/video.mjs +1 -22
- package/dist/components/common/image-crop/image-crop.mjs +1 -182
- package/dist/components/common/image-crop/show-image-crop.mjs +1 -102
- package/dist/components/common/image-crop-modal/image-crop-modal.mjs +2 -128
- package/dist/components/common/info-card/card-header.mjs +1 -70
- package/dist/components/common/info-card/card-text.mjs +1 -49
- package/dist/components/common/interaction-animations.module.mjs +84 -14
- package/dist/components/common/intl-provider/intl-provider.mjs +1 -21
- package/dist/components/common/keep-scroll-position/index.mjs +1 -39
- package/dist/components/common/list/collection-list/collection-list-item.mjs +1 -93
- package/dist/components/common/list/collection-list/collection-list.mjs +1 -21
- package/dist/components/common/list/post-list/post-list-item.mjs +1 -54
- package/dist/components/common/list/post-list/post-list.mjs +1 -143
- package/dist/components/common/list/user-activity-list/user-activity-list-actions.mjs +1 -269
- package/dist/components/common/list/user-activity-list/user-activity-list-item.mjs +1 -468
- package/dist/components/common/list/user-activity-list/user-activity-list.mjs +1 -139
- package/dist/components/common/list/video-list/video-list-item.mjs +1 -104
- package/dist/components/common/list/video-list/video-list.mjs +1 -152
- package/dist/components/common/locale-sync/locale-sync.mjs +1 -62
- package/dist/components/common/login-dialog/login-dialog.mjs +1 -29
- package/dist/components/common/media-preview/index.mjs +1 -162
- package/dist/components/common/media-preview/video-play.mjs +1 -237
- package/dist/components/common/page-loading/index.mjs +1 -20
- package/dist/components/common/page-skeleton/page-skeleton.mjs +1 -7
- package/dist/components/common/photo-grid/common-photo-grid.d.mts +1 -0
- package/dist/components/common/photo-grid/common-photo-grid.mjs +1 -320
- package/dist/components/common/photo-grid/index.mjs +1 -226
- package/dist/components/common/photo-preview/common-photo-preview.mjs +1 -96
- package/dist/components/common/photo-preview/decrypt-loading.mjs +2 -66
- package/dist/components/common/photo-preview/index.d.mts +2 -0
- package/dist/components/common/photo-preview/index.mjs +1 -63
- package/dist/components/common/photo-preview/style.mjs +19 -7
- package/dist/components/common/picker/gender-picker/gender-picker.mjs +1 -66
- package/dist/components/common/picker/picker-drawer/picker-drawer.mjs +1 -78
- package/dist/components/common/popup-video/index.mjs +1 -76
- package/dist/components/common/popup-video/popup-video.module.mjs +16 -7
- package/dist/components/common/series-episodes/index.mjs +1 -555
- package/dist/components/common/share-popup/share-content.mjs +1 -155
- package/dist/components/common/share-popup/share-drawer.mjs +1 -100
- package/dist/components/common/share-popup/share-popup.mjs +1 -326
- package/dist/components/common/skeleton/post-list-item-skeleton.mjs +1 -99
- package/dist/components/common/skeleton/search-video-card-skeleton.mjs +2 -0
- package/dist/components/common/skeleton/user-activity-list-item-skeleton.mjs +1 -146
- package/dist/components/common/skeleton/video-list-item-skeleton.mjs +1 -110
- package/dist/components/common/tab-bar/index.mjs +1 -120
- package/dist/components/common/theme-sync/index.mjs +1 -22
- package/dist/components/common/top-nav-bar/client.mjs +1 -63
- package/dist/components/common/top-nav-bar/fullscreen.mjs +1 -27
- package/dist/components/common/top-nav-bar/index.mjs +1 -29
- package/dist/components/common/top-nav-bar/normal.mjs +1 -20
- package/dist/components/common/video-player/create-video.mjs +2 -27
- package/dist/components/common/video-player/index.mjs +5 -710
- package/dist/components/common/video-player/playing-videos.mjs +1 -73
- package/dist/components/common/video-player/process-m3u8-cache.mjs +1 -282
- package/dist/components/common/video-player/style.module.mjs +257 -7
- package/dist/components/common/wait-loading.mjs +1 -119
- package/dist/components/pages/(follow)/_components/follow-button/index.mjs +1 -80
- package/dist/components/pages/(follow)/_components/header-nav/index.mjs +1 -13
- package/dist/components/pages/(follow)/_components/interaction-tabs/index.mjs +1 -43
- package/dist/components/pages/(follow)/_components/user-list/index.mjs +1 -139
- package/dist/components/pages/(follow)/_components/user-list/user-list-item.mjs +1 -46
- package/dist/components/pages/(follow)/fans/index.mjs +1 -10
- package/dist/components/pages/(follow)/fans/page.mjs +1 -95
- package/dist/components/pages/(follow)/followed/index.mjs +1 -10
- package/dist/components/pages/(follow)/followed/page.mjs +1 -95
- package/dist/components/pages/collection-add/index.mjs +1 -10
- package/dist/components/pages/collection-add/page.mjs +1 -161
- package/dist/components/pages/collection-create/form.mjs +1 -163
- package/dist/components/pages/collection-create/index.mjs +1 -10
- package/dist/components/pages/collection-create/page.mjs +1 -28
- package/dist/components/pages/collection-detail/_components/collection-detail-card.mjs +1 -183
- package/dist/components/pages/collection-detail/detail.mjs +1 -538
- package/dist/components/pages/collection-detail/index.mjs +1 -10
- package/dist/components/pages/collection-detail/page.mjs +1 -18
- package/dist/components/pages/edit/index.mjs +1 -10
- package/dist/components/pages/edit/page.mjs +1 -655
- package/dist/components/pages/feed-series/feed-series-client.mjs +1 -382
- package/dist/components/pages/feed-series/page.mjs +1 -97
- package/dist/components/pages/feedback/_components/feedback-form.mjs +1 -256
- package/dist/components/pages/feedback/index.mjs +1 -10
- package/dist/components/pages/feedback/page.mjs +1 -10
- package/dist/components/pages/fullscreen-feed/index.mjs +1 -10
- package/dist/components/pages/fullscreen-feed/page.mjs +1 -104
- package/dist/components/pages/home/channel-matcher.mjs +1 -30
- package/dist/components/pages/home/client.mjs +1 -155
- package/dist/components/pages/home/index.mjs +1 -56
- package/dist/components/pages/login/agreement-dialog.mjs +1 -104
- package/dist/components/pages/login/auth-guard.mjs +1 -37
- package/dist/components/pages/login/forgot.mjs +1 -130
- package/dist/components/pages/login/index.mjs +1 -107
- package/dist/components/pages/login/login-client.mjs +1 -214
- package/dist/components/pages/login/password.mjs +1 -186
- package/dist/components/pages/login/register.mjs +1 -189
- package/dist/components/pages/login/reset-password.mjs +1 -193
- package/dist/components/pages/login/verify.mjs +3 -212
- package/dist/components/pages/post-detail/page.mjs +1 -28
- package/dist/components/pages/post-detail/post-detail-client.mjs +1 -516
- package/dist/components/pages/profile/index.mjs +1 -10
- package/dist/components/pages/profile/page.mjs +1 -28
- package/dist/components/pages/publish/components/collection-card.mjs +1 -49
- package/dist/components/pages/publish/components/collection-popup.mjs +1 -81
- package/dist/components/pages/publish/components/collection.mjs +1 -97
- package/dist/components/pages/publish/components/cover-item.mjs +1 -46
- package/dist/components/pages/publish/components/editor.mjs +1 -208
- package/dist/components/pages/publish/components/header.mjs +1 -31
- package/dist/components/pages/publish/components/material-grid.mjs +1 -52
- package/dist/components/pages/publish/components/material-item.mjs +1 -68
- package/dist/components/pages/publish/components/toolbar.mjs +1 -39
- package/dist/components/pages/publish/components/upload-progress.mjs +1 -53
- package/dist/components/pages/publish/components/video-item.mjs +1 -36
- package/dist/components/pages/publish/constants.mjs +1 -8
- package/dist/components/pages/publish/hooks/use-file-upload.mjs +1 -162
- package/dist/components/pages/publish/page-client.mjs +1 -345
- package/dist/components/pages/publish/page.mjs +1 -11
- package/dist/components/pages/publish/utils/file-upload.mjs +1 -155
- package/dist/components/pages/publish/utils/publish-utils.mjs +1 -11
- package/dist/components/pages/search/hot-recommend.mjs +1 -185
- package/dist/components/pages/search/hot-search.mjs +1 -70
- package/dist/components/pages/search/index.mjs +1 -17
- package/dist/components/pages/search/page-client.mjs +1 -159
- package/dist/components/pages/search/search-result/index.mjs +1 -22
- package/dist/components/pages/search/search-result/search-all.mjs +1 -223
- package/dist/components/pages/search/search-result/search-user.mjs +1 -203
- package/dist/components/pages/search/search-result/search-video-info.mjs +1 -324
- package/dist/components/pages/search/search-utils.mjs +1 -48
- package/dist/components/pages/search/style.module.mjs +113 -13
- package/dist/components/pages/search/top-header.mjs +1 -91
- package/dist/components/pages/search-result/page-client.mjs +1 -117
- package/dist/components/pages/search-result/search-all.mjs +1 -82
- package/dist/components/pages/search-result/search-result-skeleton.mjs +1 -22
- package/dist/components/pages/search-result/search-tab.mjs +1 -89
- package/dist/components/pages/search-result/search-user.mjs +1 -253
- package/dist/components/pages/search-result/search-video.mjs +1 -226
- package/dist/components/pages/settings/_components/reset-password-drawer.mjs +4 -256
- package/dist/components/pages/settings/_components/settings.mjs +1 -183
- package/dist/components/pages/settings/index.mjs +1 -10
- package/dist/components/pages/settings/page.mjs +1 -13
- package/dist/components/pages/user-follow/_components/follow-no-login.mjs +1 -34
- package/dist/components/pages/user-follow/_components/follow-top-header.mjs +1 -25
- package/dist/components/pages/user-follow/_components/post-tab.mjs +1 -96
- package/dist/components/pages/user-follow/index.mjs +1 -10
- package/dist/components/pages/user-follow/page.mjs +1 -106
- package/dist/components/pages/user-follow/skeleton.mjs +1 -62
- package/dist/components/pages/video-detail/page.mjs +1 -47
- package/dist/components/pages/video-detail/video-detail-client.mjs +1 -357
- package/dist/components/pages/video-list/index.mjs +1 -59
- package/dist/components/pages/video-list/types.mjs +1 -16
- package/dist/components/pages/video-list/video-list-client.mjs +1 -106
- package/dist/components/pages/video-list/video-list-item.mjs +1 -92
- package/dist/components/pages/video-list/video-list-skeleton.mjs +1 -62
- package/dist/components/ui/accordion.mjs +1 -62
- package/dist/components/ui/alert-dialog.mjs +1 -114
- package/dist/components/ui/alert.mjs +1 -50
- package/dist/components/ui/aspect-ratio.mjs +1 -17
- package/dist/components/ui/avatar.mjs +1 -106
- package/dist/components/ui/badge.d.mts +1 -1
- package/dist/components/ui/badge.mjs +1 -38
- package/dist/components/ui/box.mjs +1 -17
- package/dist/components/ui/breadcrumb.mjs +1 -84
- package/dist/components/ui/button-group.d.mts +1 -1
- package/dist/components/ui/button-group.mjs +1 -49
- package/dist/components/ui/button.d.mts +1 -1
- package/dist/components/ui/button.mjs +1 -50
- package/dist/components/ui/card.mjs +1 -65
- package/dist/components/ui/carousel.mjs +1 -142
- package/dist/components/ui/checkbox.mjs +1 -25
- package/dist/components/ui/collapsible.mjs +1 -31
- package/dist/components/ui/combobox.mjs +1 -185
- package/dist/components/ui/context-menu.mjs +1 -150
- package/dist/components/ui/dialog.mjs +1 -109
- package/dist/components/ui/drawer.mjs +1 -91
- package/dist/components/ui/dropdown-menu.mjs +1 -154
- package/dist/components/ui/empty-icons.mjs +7 -96
- package/dist/components/ui/empty.mjs +1 -95
- package/dist/components/ui/field.d.mts +1 -1
- package/dist/components/ui/field.mjs +1 -131
- package/dist/components/ui/hover-card.mjs +1 -43
- package/dist/components/ui/image.mjs +1 -257
- package/dist/components/ui/infinite-scroll.mjs +1 -168
- package/dist/components/ui/input-group.mjs +1 -90
- package/dist/components/ui/input.mjs +1 -19
- package/dist/components/ui/item.mjs +1 -137
- package/dist/components/ui/kbd.mjs +1 -24
- package/dist/components/ui/label.mjs +1 -18
- package/dist/components/ui/legacy/badge.mjs +1 -80
- package/dist/components/ui/legacy/button.mjs +1 -55
- package/dist/components/ui/legacy/input.mjs +1 -22
- package/dist/components/ui/legacy/popover.mjs +1 -69
- package/dist/components/ui/link.mjs +1 -32
- package/dist/components/ui/list.mjs +5 -221
- package/dist/components/ui/loading.mjs +1 -44
- package/dist/components/ui/mask.mjs +1 -17
- package/dist/components/ui/menubar.mjs +1 -154
- package/dist/components/ui/native-select.mjs +1 -43
- package/dist/components/ui/pagination.mjs +1 -90
- package/dist/components/ui/popover.mjs +1 -73
- package/dist/components/ui/popup.mjs +1 -44
- package/dist/components/ui/progress.mjs +1 -53
- package/dist/components/ui/radio-group.mjs +1 -34
- package/dist/components/ui/rate.mjs +1 -69
- package/dist/components/ui/scroll-area.mjs +1 -43
- package/dist/components/ui/select.mjs +1 -113
- package/dist/components/ui/separator.mjs +1 -20
- package/dist/components/ui/sheet.mjs +1 -109
- package/dist/components/ui/skeleton.mjs +1 -16
- package/dist/components/ui/slider.mjs +1 -46
- package/dist/components/ui/sonner.mjs +1 -34
- package/dist/components/ui/spinner.mjs +1 -18
- package/dist/components/ui/switch.mjs +1 -65
- package/dist/components/ui/table.mjs +1 -78
- package/dist/components/ui/tabs.mjs +1 -54
- package/dist/components/ui/text.mjs +1 -20
- package/dist/components/ui/textarea.mjs +1 -16
- package/dist/components/ui/time.mjs +1 -91
- package/dist/components/ui/toggle-group.mjs +1 -59
- package/dist/components/ui/toggle.mjs +1 -41
- package/dist/components/ui/tooltip.mjs +1 -49
- package/dist/components/ui/wheel-picker.mjs +1 -28
- package/dist/constants/event-key.mjs +1 -18
- package/dist/constants/query-key.mjs +1 -32
- package/dist/constants/revalidate.mjs +1 -9
- package/dist/constants/site.mjs +1 -11
- package/dist/constants/url-prefix.mjs +1 -11
- package/dist/hooks/image-text-recommend.mjs +1 -71
- package/dist/hooks/query/hydration-boundary.mjs +1 -34
- package/dist/hooks/query/use-query.mjs +1 -114
- package/dist/hooks/use-auth.mjs +1 -198
- package/dist/hooks/use-browse-report.mjs +1 -466
- package/dist/hooks/use-card-decoration.mjs +1 -92
- package/dist/hooks/use-content-operate.mjs +1 -525
- package/dist/hooks/use-follow.mjs +1 -69
- package/dist/hooks/use-fullscreen-gestures.mjs +1 -144
- package/dist/hooks/use-interaction-animation.mjs +1 -26
- package/dist/hooks/use-keyboard-open.mjs +1 -56
- package/dist/hooks/use-like-dislike.mjs +1 -40
- package/dist/hooks/use-search-history.mjs +1 -53
- package/dist/hooks/use-sticky.mjs +1 -50
- package/dist/hooks.mjs +1 -14
- package/dist/i18n/locales/en.mjs +3 -820
- package/dist/i18n/locales/zh-CN.mjs +3 -820
- package/dist/i18n/messages.mjs +1 -20
- package/dist/i18n/translator.mjs +1 -38
- package/dist/i18n.mjs +1 -165
- package/dist/materials.mjs +1 -61
- package/dist/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.mjs +1 -17
- package/dist/pages.mjs +1 -23
- package/dist/seo/build-metadata.mjs +1 -163
- package/dist/seo/config/index.mjs +1 -22
- package/dist/seo/config/page.mjs +6 -301
- package/dist/seo/config/site.mjs +1 -25
- package/dist/seo/constants.mjs +1 -31
- package/dist/seo/helpers.mjs +1 -120
- package/dist/seo/resource-hints.mjs +1 -60
- package/dist/seo/robots.mjs +1 -36
- package/dist/seo/sitemap.mjs +1 -44
- package/dist/seo/structured-data/article.mjs +1 -51
- package/dist/seo/structured-data/common.mjs +1 -60
- package/dist/seo/structured-data/video.mjs +1 -41
- package/dist/seo/viewport.mjs +1 -31
- package/dist/seo.mjs +1 -15
- package/dist/service/generated/client.mjs +1 -1138
- package/dist/service/generated/tanstack.mjs +1 -1049
- package/dist/service/register-by-verify-email-code.d.mts +15 -0
- package/dist/service/register-by-verify-email-code.mjs +2 -0
- package/dist/service.d.mts +2 -1
- package/dist/service.mjs +1 -4
- package/dist/store/create-store.mjs +1 -25
- package/dist/store/modules/app-config-store.mjs +1 -28
- package/dist/store/modules/blocked-modal-store.mjs +1 -30
- package/dist/store/modules/follow-ids-store.mjs +1 -12
- package/dist/store/modules/login-modal-store.mjs +1 -155
- package/dist/store/modules/media-preview-store.mjs +1 -54
- package/dist/store/modules/publish-store.mjs +1 -31
- package/dist/store/modules/use-demo-store.mjs +1 -17
- package/dist/store/modules/user-store.mjs +1 -113
- package/dist/store.mjs +1 -10
- package/dist/types/safe-at-user.mjs +1 -15
- package/dist/types/safe-comment.mjs +1 -30
- package/dist/types/safe-grid.mjs +1 -36
- package/dist/types/safe-replay.mjs +1 -43
- package/dist/types/share.mjs +1 -16
- package/dist/ui.mjs +1 -57
- package/dist/utils/api-collect.mjs +1 -14
- package/dist/utils/channel-storage.mjs +1 -57
- package/dist/utils/cn.mjs +1 -15
- package/dist/utils/common.mjs +1 -296
- package/dist/utils/db.mjs +1 -80
- package/dist/utils/decrypt-image-client.mjs +1 -325
- package/dist/utils/decrypt.worker.mjs +2 -20
- package/dist/utils/event-bus.mjs +1 -33
- package/dist/utils/follow-service.mjs +1 -87
- package/dist/utils/get-res-url.mjs +1 -94
- package/dist/utils/helper.mjs +1 -33
- package/dist/utils/http.mjs +1 -194
- package/dist/utils/image-compression.mjs +1 -59
- package/dist/utils/image-crop.mjs +1 -110
- package/dist/utils/loaders.mjs +1 -51
- package/dist/utils/login-modal-bridge.mjs +1 -65
- package/dist/utils/media.mjs +1 -128
- package/dist/utils/password-validator.mjs +1 -86
- package/dist/utils/s3-uploader.mjs +1 -40
- package/dist/utils/schema/material.mjs +1 -24
- package/dist/utils/schema/schema.mjs +1 -147
- package/dist/utils/schema/utils.mjs +1 -27
- package/dist/utils/share-manager.mjs +1 -183
- package/dist/utils/tools.mjs +1 -105
- package/dist/utils/uint8.mjs +1 -46
- package/dist/utils/upload-file.mjs +1 -429
- package/dist/utils.mjs +1 -21
- package/package.json +1 -1
|
@@ -1,183 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import { defaultImageCompressionQuality } from "../../../utils/image-compression.mjs";
|
|
5
|
-
import { Dialog, DialogContent } from "../../ui/dialog.mjs";
|
|
6
|
-
import { fileToDataUrl, getCroppedFile, getOptimalQuality, validateImageFile } from "../../../utils/image-crop.mjs";
|
|
7
|
-
import { useCallback, useEffect, useMemo, useState } from "react";
|
|
8
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
-
import Cropper from "react-easy-crop";
|
|
10
|
-
|
|
11
|
-
//#region components/common/image-crop/image-crop.tsx
|
|
12
|
-
function ImageCrop({ visible, file, quality, outputFormat = "jpeg", maxWidth, maxHeight, cropShape = "round", onCropComplete, onCancel, className }) {
|
|
13
|
-
const [imageUrl, setImageUrl] = useState("");
|
|
14
|
-
const [isLoading, setIsLoading] = useState(false);
|
|
15
|
-
const [error, setError] = useState("");
|
|
16
|
-
const [cropState, setCropState] = useState({
|
|
17
|
-
crop: {
|
|
18
|
-
x: 0,
|
|
19
|
-
y: 0
|
|
20
|
-
},
|
|
21
|
-
zoom: 1,
|
|
22
|
-
croppedAreaPixels: null
|
|
23
|
-
});
|
|
24
|
-
const finalQuality = useMemo(() => {
|
|
25
|
-
if (quality !== void 0) return quality;
|
|
26
|
-
if (file) return getOptimalQuality(file.size);
|
|
27
|
-
return defaultImageCompressionQuality;
|
|
28
|
-
}, [quality, file]);
|
|
29
|
-
useEffect(() => {
|
|
30
|
-
if (!file || !visible) {
|
|
31
|
-
setImageUrl("");
|
|
32
|
-
setError("");
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
if (!validateImageFile(file)) {
|
|
36
|
-
setError("请选择有效的图片文件(支持 JPEG、PNG、WebP、GIF 格式)");
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
if (file.size > 20 * 1024 * 1024) {
|
|
40
|
-
setError("文件大小不能超过 20MB");
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
setIsLoading(true);
|
|
44
|
-
setError("");
|
|
45
|
-
fileToDataUrl(file).then((url) => {
|
|
46
|
-
setImageUrl(url);
|
|
47
|
-
setIsLoading(false);
|
|
48
|
-
}).catch((err) => {
|
|
49
|
-
console.error("图片加载失败:", err);
|
|
50
|
-
setError("图片加载失败,请重试");
|
|
51
|
-
setIsLoading(false);
|
|
52
|
-
});
|
|
53
|
-
}, [file, visible]);
|
|
54
|
-
useEffect(() => {
|
|
55
|
-
if (visible) setCropState({
|
|
56
|
-
crop: {
|
|
57
|
-
x: 0,
|
|
58
|
-
y: 0
|
|
59
|
-
},
|
|
60
|
-
zoom: 1,
|
|
61
|
-
croppedAreaPixels: null
|
|
62
|
-
});
|
|
63
|
-
}, [visible, file]);
|
|
64
|
-
const onCropChange = useCallback((crop) => {
|
|
65
|
-
setCropState((prev) => ({
|
|
66
|
-
...prev,
|
|
67
|
-
crop
|
|
68
|
-
}));
|
|
69
|
-
}, []);
|
|
70
|
-
const onZoomChange = useCallback((zoom) => {
|
|
71
|
-
setCropState((prev) => ({
|
|
72
|
-
...prev,
|
|
73
|
-
zoom
|
|
74
|
-
}));
|
|
75
|
-
}, []);
|
|
76
|
-
const onCropCompleteCallback = useCallback((croppedArea, croppedAreaPixels) => {
|
|
77
|
-
setCropState((prev) => ({
|
|
78
|
-
...prev,
|
|
79
|
-
croppedAreaPixels
|
|
80
|
-
}));
|
|
81
|
-
}, []);
|
|
82
|
-
const handleConfirm = useCallback(async () => {
|
|
83
|
-
if (!file || !cropState.croppedAreaPixels) {
|
|
84
|
-
setError("请先选择裁剪区域");
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
setIsLoading(true);
|
|
88
|
-
setError("");
|
|
89
|
-
try {
|
|
90
|
-
const fileType = `image/${outputFormat}`;
|
|
91
|
-
onCropComplete({
|
|
92
|
-
file: await getCroppedFile(imageUrl, cropState.croppedAreaPixels, `cropped.${outputFormat}`, {
|
|
93
|
-
fileType,
|
|
94
|
-
quality: finalQuality,
|
|
95
|
-
maxWidth,
|
|
96
|
-
maxHeight,
|
|
97
|
-
circular: cropShape === "round"
|
|
98
|
-
}),
|
|
99
|
-
originalFile: file,
|
|
100
|
-
cropArea: cropState.croppedAreaPixels
|
|
101
|
-
});
|
|
102
|
-
} catch (err) {
|
|
103
|
-
console.error("裁剪失败:", err);
|
|
104
|
-
setError("裁剪失败,请重试");
|
|
105
|
-
} finally {
|
|
106
|
-
setIsLoading(false);
|
|
107
|
-
}
|
|
108
|
-
}, [
|
|
109
|
-
file,
|
|
110
|
-
cropState.croppedAreaPixels,
|
|
111
|
-
finalQuality,
|
|
112
|
-
outputFormat,
|
|
113
|
-
maxWidth,
|
|
114
|
-
maxHeight,
|
|
115
|
-
cropShape,
|
|
116
|
-
imageUrl,
|
|
117
|
-
onCropComplete
|
|
118
|
-
]);
|
|
119
|
-
const handleCancel = useCallback(() => {
|
|
120
|
-
onCancel();
|
|
121
|
-
}, [onCancel]);
|
|
122
|
-
if (!visible) return null;
|
|
123
|
-
return /* @__PURE__ */ jsx(Dialog, {
|
|
124
|
-
open: visible,
|
|
125
|
-
onOpenChange: handleCancel,
|
|
126
|
-
children: /* @__PURE__ */ jsx(DialogContent, {
|
|
127
|
-
showCloseButton: false,
|
|
128
|
-
className: `bg-black/90 !m-0 !p-0 !fixed !inset-0 !w-screen !h-screen !max-w-none !rounded-none !top-0 !left-0 !translate-x-0 !translate-y-0 !transform-none z-[9999] !pointer-events-auto ${className || ""}`,
|
|
129
|
-
children: /* @__PURE__ */ jsxs("div", {
|
|
130
|
-
className: "relative flex h-full w-full flex-col",
|
|
131
|
-
children: [imageUrl && !error && /* @__PURE__ */ jsxs("div", {
|
|
132
|
-
className: "absolute top-0 left-0 right-0 z-10 flex h-16 items-center justify-between px-4",
|
|
133
|
-
children: [/* @__PURE__ */ jsx("button", {
|
|
134
|
-
type: "button",
|
|
135
|
-
className: "flex h-full items-center justify-center px-4 text-white transition-colors hover:text-white/80",
|
|
136
|
-
onClick: handleCancel,
|
|
137
|
-
disabled: isLoading,
|
|
138
|
-
children: /* @__PURE__ */ jsx("svg", {
|
|
139
|
-
className: "w-4 h-4",
|
|
140
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
141
|
-
fill: "currentColor",
|
|
142
|
-
viewBox: "0 0 16 16",
|
|
143
|
-
children: /* @__PURE__ */ jsx("path", { d: "M14.55.2a.889.889 0 0 1 1.25 1.25l-.06.067L9.255 8l6.483 6.482.06.069a.888.888 0 0 1-1.25 1.25l-.067-.062L8 9.256l-6.482 6.483A.888.888 0 1 1 .26 14.482L6.742 8 .26 1.517.2 1.45A.888.888 0 0 1 1.45.2l.067.062 6.482 6.482L14.482.261l.068-.062Z" })
|
|
144
|
-
})
|
|
145
|
-
}), /* @__PURE__ */ jsx("button", {
|
|
146
|
-
type: "button",
|
|
147
|
-
className: "h-8 rounded-full bg-primary px-4 text-base font-medium text-primary-foreground transition-colors hover:bg-primary/80 disabled:opacity-50",
|
|
148
|
-
onClick: handleConfirm,
|
|
149
|
-
disabled: isLoading || !cropState.croppedAreaPixels || !!error,
|
|
150
|
-
children: "确定"
|
|
151
|
-
})]
|
|
152
|
-
}), /* @__PURE__ */ jsxs("div", {
|
|
153
|
-
className: "relative flex-1 overflow-hidden bg-black",
|
|
154
|
-
children: [
|
|
155
|
-
isLoading && /* @__PURE__ */ jsxs("div", {
|
|
156
|
-
className: "absolute left-1/2 top-1/2 flex -translate-x-1/2 -translate-y-1/2 items-center gap-2 text-white",
|
|
157
|
-
children: [/* @__PURE__ */ jsx("div", { className: "h-5 w-5 animate-spin rounded-full border-2 border-white/30 border-t-white" }), /* @__PURE__ */ jsx("span", { children: "处理中..." })]
|
|
158
|
-
}),
|
|
159
|
-
error && /* @__PURE__ */ jsx("div", {
|
|
160
|
-
className: "absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 text-center text-red-500",
|
|
161
|
-
children: error
|
|
162
|
-
}),
|
|
163
|
-
imageUrl && !error && /* @__PURE__ */ jsx(Cropper, {
|
|
164
|
-
image: imageUrl,
|
|
165
|
-
crop: cropState.crop,
|
|
166
|
-
zoom: cropState.zoom,
|
|
167
|
-
onCropChange,
|
|
168
|
-
onZoomChange,
|
|
169
|
-
onCropComplete: onCropCompleteCallback,
|
|
170
|
-
showGrid: true,
|
|
171
|
-
cropShape,
|
|
172
|
-
restrictPosition: true,
|
|
173
|
-
zoomWithScroll: true
|
|
174
|
-
})
|
|
175
|
-
]
|
|
176
|
-
})]
|
|
177
|
-
})
|
|
178
|
-
})
|
|
179
|
-
});
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
//#endregion
|
|
183
|
-
export { ImageCrop };
|
|
2
|
+
"use client";import{defaultImageCompressionQuality as e}from"../../../utils/image-compression.mjs";import{Dialog as t,DialogContent as n}from"../../ui/dialog.mjs";import{fileToDataUrl as r,getCroppedFile as i,getOptimalQuality as a,validateImageFile as o}from"../../../utils/image-crop.mjs";import{useCallback as s,useEffect as c,useMemo as l,useState as u}from"react";import{jsx as d,jsxs as f}from"react/jsx-runtime";import p from"react-easy-crop";function m({visible:m,file:h,quality:g,outputFormat:_=`jpeg`,maxWidth:v,maxHeight:y,cropShape:b=`round`,onCropComplete:x,onCancel:S,className:C}){let[w,T]=u(``),[E,D]=u(!1),[O,k]=u(``),[A,j]=u({crop:{x:0,y:0},zoom:1,croppedAreaPixels:null}),M=l(()=>g===void 0?h?a(h.size):e:g,[g,h]);c(()=>{if(!h||!m){T(``),k(``);return}if(!o(h)){k(`请选择有效的图片文件(支持 JPEG、PNG、WebP、GIF 格式)`);return}if(h.size>20*1024*1024){k(`文件大小不能超过 20MB`);return}D(!0),k(``),r(h).then(e=>{T(e),D(!1)}).catch(e=>{console.error(`图片加载失败:`,e),k(`图片加载失败,请重试`),D(!1)})},[h,m]),c(()=>{m&&j({crop:{x:0,y:0},zoom:1,croppedAreaPixels:null})},[m,h]);let N=s(e=>{j(t=>({...t,crop:e}))},[]),P=s(e=>{j(t=>({...t,zoom:e}))},[]),F=s((e,t)=>{j(e=>({...e,croppedAreaPixels:t}))},[]),I=s(async()=>{if(!h||!A.croppedAreaPixels){k(`请先选择裁剪区域`);return}D(!0),k(``);try{let e=`image/${_}`;x({file:await i(w,A.croppedAreaPixels,`cropped.${_}`,{fileType:e,quality:M,maxWidth:v,maxHeight:y,circular:b===`round`}),originalFile:h,cropArea:A.croppedAreaPixels})}catch(e){console.error(`裁剪失败:`,e),k(`裁剪失败,请重试`)}finally{D(!1)}},[h,A.croppedAreaPixels,M,_,v,y,b,w,x]),L=s(()=>{S()},[S]);return m?d(t,{open:m,onOpenChange:L,children:d(n,{showCloseButton:!1,className:`bg-black/90 !m-0 !p-0 !fixed !inset-0 !w-screen !h-screen !max-w-none !rounded-none !top-0 !left-0 !translate-x-0 !translate-y-0 !transform-none z-[9999] !pointer-events-auto ${C||``}`,children:f(`div`,{className:`relative flex h-full w-full flex-col`,children:[w&&!O&&f(`div`,{className:`absolute top-0 left-0 right-0 z-10 flex h-16 items-center justify-between px-4`,children:[d(`button`,{type:`button`,className:`flex h-full items-center justify-center px-4 text-white transition-colors hover:text-white/80`,onClick:L,disabled:E,children:d(`svg`,{className:`w-4 h-4`,xmlns:`http://www.w3.org/2000/svg`,fill:`currentColor`,viewBox:`0 0 16 16`,children:d(`path`,{d:`M14.55.2a.889.889 0 0 1 1.25 1.25l-.06.067L9.255 8l6.483 6.482.06.069a.888.888 0 0 1-1.25 1.25l-.067-.062L8 9.256l-6.482 6.483A.888.888 0 1 1 .26 14.482L6.742 8 .26 1.517.2 1.45A.888.888 0 0 1 1.45.2l.067.062 6.482 6.482L14.482.261l.068-.062Z`})})}),d(`button`,{type:`button`,className:`h-8 rounded-full bg-primary px-4 text-base font-medium text-primary-foreground transition-colors hover:bg-primary/80 disabled:opacity-50`,onClick:I,disabled:E||!A.croppedAreaPixels||!!O,children:`确定`})]}),f(`div`,{className:`relative flex-1 overflow-hidden bg-black`,children:[E&&f(`div`,{className:`absolute left-1/2 top-1/2 flex -translate-x-1/2 -translate-y-1/2 items-center gap-2 text-white`,children:[d(`div`,{className:`h-5 w-5 animate-spin rounded-full border-2 border-white/30 border-t-white`}),d(`span`,{children:`处理中...`})]}),O&&d(`div`,{className:`absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 text-center text-red-500`,children:O}),w&&!O&&d(p,{image:w,crop:A.crop,zoom:A.zoom,onCropChange:N,onZoomChange:P,onCropComplete:F,showGrid:!0,cropShape:b,restrictPosition:!0,zoomWithScroll:!0})]})]})})}):null}export{m as ImageCrop};
|
|
@@ -1,103 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import { ImageCrop } from "./image-crop.mjs";
|
|
5
|
-
import "react";
|
|
6
|
-
import { jsx } from "react/jsx-runtime";
|
|
7
|
-
import { createRoot } from "react-dom/client";
|
|
8
|
-
|
|
9
|
-
//#region components/common/image-crop/show-image-crop.tsx
|
|
10
|
-
/**
|
|
11
|
-
* 显示图片裁剪界面
|
|
12
|
-
*
|
|
13
|
-
* @param file - 要裁剪的图片文件
|
|
14
|
-
* @param options - 裁剪选项(可选)
|
|
15
|
-
* @returns Promise<File> - 裁剪后的文件
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```typescript
|
|
19
|
-
* // 基本使用(圆形头像裁剪)
|
|
20
|
-
* try {
|
|
21
|
-
* const croppedFile = await showImageCrop(selectedFile);
|
|
22
|
-
* console.log('裁剪完成:', croppedFile);
|
|
23
|
-
* // 处理裁剪后的文件
|
|
24
|
-
* } catch (error) {
|
|
25
|
-
* console.log('用户取消裁剪或发生错误');
|
|
26
|
-
* }
|
|
27
|
-
*
|
|
28
|
-
* // 自定义参数(矩形背景图裁剪)
|
|
29
|
-
* const croppedFile = await showImageCrop(selectedFile, {
|
|
30
|
-
* aspectRatio: 430 / 256, // 背景图比例
|
|
31
|
-
* quality: 0.92,
|
|
32
|
-
* outputFormat: 'jpeg',
|
|
33
|
-
* cropShape: 'rect',
|
|
34
|
-
* });
|
|
35
|
-
* ```
|
|
36
|
-
*/
|
|
37
|
-
function showImageCrop(file, options) {
|
|
38
|
-
return new Promise((resolve, reject) => {
|
|
39
|
-
if (!file) {
|
|
40
|
-
reject(/* @__PURE__ */ new Error("文件参数不能为空"));
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
if (![
|
|
44
|
-
"image/jpeg",
|
|
45
|
-
"image/jpg",
|
|
46
|
-
"image/png",
|
|
47
|
-
"image/webp",
|
|
48
|
-
"image/gif"
|
|
49
|
-
].includes(file.type)) {
|
|
50
|
-
reject(/* @__PURE__ */ new Error("不支持的文件类型,请选择图片文件"));
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
if (file.size > 20 * 1024 * 1024) {
|
|
54
|
-
reject(/* @__PURE__ */ new Error("文件大小不能超过 20MB"));
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
if (options?.aspectRatio !== void 0 && (options.aspectRatio <= 0 || !Number.isFinite(options.aspectRatio))) {
|
|
58
|
-
reject(/* @__PURE__ */ new Error("aspectRatio 必须是一个大于0的有限数"));
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
if (options?.quality !== void 0 && (options.quality < 0 || options.quality > 1)) {
|
|
62
|
-
reject(/* @__PURE__ */ new Error("quality 必须在 0-1 之间"));
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
if (options?.maxWidth !== void 0 && options.maxWidth <= 0) {
|
|
66
|
-
reject(/* @__PURE__ */ new Error("maxWidth 必须大于0"));
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
if (options?.maxHeight !== void 0 && options.maxHeight <= 0) {
|
|
70
|
-
reject(/* @__PURE__ */ new Error("maxHeight 必须大于0"));
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
const container = document.createElement("div");
|
|
74
|
-
document.body.appendChild(container);
|
|
75
|
-
const root = createRoot(container);
|
|
76
|
-
const cleanup = () => {
|
|
77
|
-
root.unmount();
|
|
78
|
-
document.body.removeChild(container);
|
|
79
|
-
};
|
|
80
|
-
const handleCropComplete = (result) => {
|
|
81
|
-
cleanup();
|
|
82
|
-
resolve(result.file);
|
|
83
|
-
};
|
|
84
|
-
const handleCancel = () => {
|
|
85
|
-
cleanup();
|
|
86
|
-
};
|
|
87
|
-
root.render(/* @__PURE__ */ jsx(ImageCrop, {
|
|
88
|
-
visible: true,
|
|
89
|
-
file,
|
|
90
|
-
aspectRatio: options?.aspectRatio || 1,
|
|
91
|
-
quality: options?.quality,
|
|
92
|
-
outputFormat: options?.outputFormat || "jpeg",
|
|
93
|
-
maxWidth: options?.maxWidth,
|
|
94
|
-
maxHeight: options?.maxHeight,
|
|
95
|
-
cropShape: options?.cropShape || "round",
|
|
96
|
-
onCropComplete: handleCropComplete,
|
|
97
|
-
onCancel: handleCancel
|
|
98
|
-
}));
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
//#endregion
|
|
103
|
-
export { showImageCrop };
|
|
2
|
+
"use client";import{ImageCrop as e}from"./image-crop.mjs";import"react";import{jsx as t}from"react/jsx-runtime";import{createRoot as n}from"react-dom/client";function r(r,i){return new Promise((a,o)=>{if(!r){o(Error(`文件参数不能为空`));return}if(![`image/jpeg`,`image/jpg`,`image/png`,`image/webp`,`image/gif`].includes(r.type)){o(Error(`不支持的文件类型,请选择图片文件`));return}if(r.size>20*1024*1024){o(Error(`文件大小不能超过 20MB`));return}if(i?.aspectRatio!==void 0&&(i.aspectRatio<=0||!Number.isFinite(i.aspectRatio))){o(Error(`aspectRatio 必须是一个大于0的有限数`));return}if(i?.quality!==void 0&&(i.quality<0||i.quality>1)){o(Error(`quality 必须在 0-1 之间`));return}if(i?.maxWidth!==void 0&&i.maxWidth<=0){o(Error(`maxWidth 必须大于0`));return}if(i?.maxHeight!==void 0&&i.maxHeight<=0){o(Error(`maxHeight 必须大于0`));return}let s=document.createElement(`div`);document.body.appendChild(s);let c=n(s),l=()=>{c.unmount(),document.body.removeChild(s)};c.render(t(e,{visible:!0,file:r,aspectRatio:i?.aspectRatio||1,quality:i?.quality,outputFormat:i?.outputFormat||`jpeg`,maxWidth:i?.maxWidth,maxHeight:i?.maxHeight,cropShape:i?.cropShape||`round`,onCropComplete:e=>{l(),a(e.file)},onCancel:()=>{l()}}))})}export{r as showImageCrop};
|
|
@@ -1,102 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import { cn } from "../../../utils/cn.mjs";
|
|
5
|
-
import { Dialog, DialogContent } from "../../ui/dialog.mjs";
|
|
6
|
-
import { getCroppedImg } from "../../../utils/image-crop.mjs";
|
|
7
|
-
import { useCallback, useState } from "react";
|
|
8
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
-
import { useTranslations } from "next-intl";
|
|
10
|
-
import Cropper from "react-easy-crop";
|
|
11
|
-
|
|
12
|
-
//#region components/common/image-crop-modal/image-crop-modal.tsx
|
|
13
|
-
function ImageCropModal({ open, onClose, imageSrc, onConfirm, cropShape = "round" }) {
|
|
14
|
-
const t = useTranslations("components.common");
|
|
15
|
-
const [crop, setCrop] = useState({
|
|
16
|
-
x: 0,
|
|
17
|
-
y: 0
|
|
18
|
-
});
|
|
19
|
-
const [zoom, setZoom] = useState(1);
|
|
20
|
-
const [croppedAreaPixels, setCroppedAreaPixels] = useState(null);
|
|
21
|
-
const [isProcessing, setIsProcessing] = useState(false);
|
|
22
|
-
/**
|
|
23
|
-
* 处理裁剪区域变化
|
|
24
|
-
*/
|
|
25
|
-
const onCropComplete = useCallback((croppedArea, croppedAreaPixels) => {
|
|
26
|
-
setCroppedAreaPixels(croppedAreaPixels);
|
|
27
|
-
}, []);
|
|
28
|
-
/**
|
|
29
|
-
* 处理确认按钮点击
|
|
30
|
-
*/
|
|
31
|
-
async function handleConfirm() {
|
|
32
|
-
if (!croppedAreaPixels) return;
|
|
33
|
-
try {
|
|
34
|
-
setIsProcessing(true);
|
|
35
|
-
onConfirm(await getCroppedImg(imageSrc, croppedAreaPixels, {
|
|
36
|
-
circular: cropShape === "round",
|
|
37
|
-
maxWidth: 800,
|
|
38
|
-
maxHeight: 800
|
|
39
|
-
}));
|
|
40
|
-
handleClose();
|
|
41
|
-
} catch (error) {
|
|
42
|
-
console.error("裁剪图片失败", error);
|
|
43
|
-
} finally {
|
|
44
|
-
setIsProcessing(false);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* 处理关闭弹窗
|
|
49
|
-
*/
|
|
50
|
-
function handleClose() {
|
|
51
|
-
setCrop({
|
|
52
|
-
x: 0,
|
|
53
|
-
y: 0
|
|
54
|
-
});
|
|
55
|
-
setZoom(1);
|
|
56
|
-
setCroppedAreaPixels(null);
|
|
57
|
-
onClose();
|
|
58
|
-
}
|
|
59
|
-
return /* @__PURE__ */ jsx(Dialog, {
|
|
60
|
-
open,
|
|
61
|
-
onOpenChange: handleClose,
|
|
62
|
-
children: /* @__PURE__ */ jsx(DialogContent, {
|
|
63
|
-
showCloseButton: false,
|
|
64
|
-
className: "bg-black/90 !m-0 !p-0 !fixed !inset-0 !w-screen !h-screen !max-w-none !rounded-none !top-0 !left-0 !translate-x-0 !translate-y-0 !transform-none z-[9999] !pointer-events-auto",
|
|
65
|
-
children: /* @__PURE__ */ jsxs("div", {
|
|
66
|
-
className: "relative flex h-full w-full flex-col",
|
|
67
|
-
children: [
|
|
68
|
-
/* @__PURE__ */ jsx("div", {
|
|
69
|
-
className: "relative flex-1 overflow-hidden bg-black",
|
|
70
|
-
children: /* @__PURE__ */ jsx(Cropper, {
|
|
71
|
-
image: imageSrc,
|
|
72
|
-
crop,
|
|
73
|
-
zoom,
|
|
74
|
-
aspect: 1,
|
|
75
|
-
cropShape,
|
|
76
|
-
onCropChange: setCrop,
|
|
77
|
-
onZoomChange: setZoom,
|
|
78
|
-
onCropComplete
|
|
79
|
-
})
|
|
80
|
-
}),
|
|
81
|
-
/* @__PURE__ */ jsx("div", {
|
|
82
|
-
className: "absolute bottom-28 left-0 right-0 px-8",
|
|
83
|
-
children: /* @__PURE__ */ jsxs("div", {
|
|
84
|
-
className: "mx-auto max-w-md",
|
|
85
|
-
children: [/* @__PURE__ */ jsx("input", {
|
|
86
|
-
type: "range",
|
|
87
|
-
min: 1,
|
|
88
|
-
max: 3,
|
|
89
|
-
step: .1,
|
|
90
|
-
value: zoom,
|
|
91
|
-
onChange: (e) => setZoom(Number(e.target.value)),
|
|
92
|
-
className: "w-full appearance-none bg-tra nsparent cursor-pointer focus-within:outline-none",
|
|
93
|
-
style: {
|
|
94
|
-
WebkitAppearance: "none",
|
|
95
|
-
background: "rgba(255, 255, 255, 0.3)",
|
|
96
|
-
height: "4px",
|
|
97
|
-
borderRadius: "2px"
|
|
98
|
-
}
|
|
99
|
-
}), /* @__PURE__ */ jsx("style", { children: `
|
|
2
|
+
"use client";import{cn as e}from"../../../utils/cn.mjs";import{Dialog as t,DialogContent as n}from"../../ui/dialog.mjs";import{getCroppedImg as r}from"../../../utils/image-crop.mjs";import{useCallback as i,useState as a}from"react";import{jsx as o,jsxs as s}from"react/jsx-runtime";import{useTranslations as c}from"next-intl";import l from"react-easy-crop";function u({open:u,onClose:d,imageSrc:f,onConfirm:p,cropShape:m=`round`}){let h=c(`components.common`),[g,_]=a({x:0,y:0}),[v,y]=a(1),[b,x]=a(null),[S,C]=a(!1),w=i((e,t)=>{x(t)},[]);async function T(){if(b)try{C(!0),p(await r(f,b,{circular:m===`round`,maxWidth:800,maxHeight:800})),E()}catch(e){console.error(`裁剪图片失败`,e)}finally{C(!1)}}function E(){_({x:0,y:0}),y(1),x(null),d()}return o(t,{open:u,onOpenChange:E,children:o(n,{showCloseButton:!1,className:`bg-black/90 !m-0 !p-0 !fixed !inset-0 !w-screen !h-screen !max-w-none !rounded-none !top-0 !left-0 !translate-x-0 !translate-y-0 !transform-none z-[9999] !pointer-events-auto`,children:s(`div`,{className:`relative flex h-full w-full flex-col`,children:[o(`div`,{className:`relative flex-1 overflow-hidden bg-black`,children:o(l,{image:f,crop:g,zoom:v,aspect:1,cropShape:m,onCropChange:_,onZoomChange:y,onCropComplete:w})}),o(`div`,{className:`absolute bottom-28 left-0 right-0 px-8`,children:s(`div`,{className:`mx-auto max-w-md`,children:[o(`input`,{type:`range`,min:1,max:3,step:.1,value:v,onChange:e=>y(Number(e.target.value)),className:`w-full appearance-none bg-tra nsparent cursor-pointer focus-within:outline-none`,style:{WebkitAppearance:`none`,background:`rgba(255, 255, 255, 0.3)`,height:`4px`,borderRadius:`2px`}}),o(`style`,{children:`
|
|
100
3
|
input[type="range"] {
|
|
101
4
|
outline: none;
|
|
102
5
|
}
|
|
@@ -128,33 +31,4 @@ function ImageCropModal({ open, onClose, imageSrc, onConfirm, cropShape = "round
|
|
|
128
31
|
input[type="range"]::-moz-range-thumb:focus {
|
|
129
32
|
outline: none;
|
|
130
33
|
}
|
|
131
|
-
` })]
|
|
132
|
-
})
|
|
133
|
-
}),
|
|
134
|
-
/* @__PURE__ */ jsx("div", {
|
|
135
|
-
className: "absolute bottom-8 left-0 right-0 px-8",
|
|
136
|
-
children: /* @__PURE__ */ jsxs("div", {
|
|
137
|
-
className: "mx-auto flex max-w-md gap-4",
|
|
138
|
-
children: [/* @__PURE__ */ jsx("button", {
|
|
139
|
-
type: "button",
|
|
140
|
-
onClick: handleClose,
|
|
141
|
-
disabled: isProcessing,
|
|
142
|
-
className: cn("flex-1 rounded-full py-3 text-base font-medium transition-colors", "bg-bg1 text-text1 hover:bg-bg1/90", "disabled:opacity-50 disabled:cursor-not-allowed"),
|
|
143
|
-
children: t("imageCropModal.cancel")
|
|
144
|
-
}), /* @__PURE__ */ jsx("button", {
|
|
145
|
-
type: "button",
|
|
146
|
-
onClick: handleConfirm,
|
|
147
|
-
disabled: isProcessing,
|
|
148
|
-
className: cn("flex-1 rounded-full py-3 text-base font-medium transition-colors", "bg-primary text-primary-foreground hover:bg-primary/80", "disabled:opacity-50 disabled:cursor-not-allowed"),
|
|
149
|
-
children: isProcessing ? t("imageCropModal.processing") : t("imageCropModal.confirm")
|
|
150
|
-
})]
|
|
151
|
-
})
|
|
152
|
-
})
|
|
153
|
-
]
|
|
154
|
-
})
|
|
155
|
-
})
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
//#endregion
|
|
160
|
-
export { ImageCropModal };
|
|
34
|
+
`})]})}),o(`div`,{className:`absolute bottom-8 left-0 right-0 px-8`,children:s(`div`,{className:`mx-auto flex max-w-md gap-4`,children:[o(`button`,{type:`button`,onClick:E,disabled:S,className:e(`flex-1 rounded-full py-3 text-base font-medium transition-colors`,`bg-bg1 text-text1 hover:bg-bg1/90`,`disabled:opacity-50 disabled:cursor-not-allowed`),children:h(`imageCropModal.cancel`)}),o(`button`,{type:`button`,onClick:T,disabled:S,className:e(`flex-1 rounded-full py-3 text-base font-medium transition-colors`,`bg-primary text-primary-foreground hover:bg-primary/80`,`disabled:opacity-50 disabled:cursor-not-allowed`),children:h(S?`imageCropModal.processing`:`imageCropModal.confirm`)})]})})]})})})}export{u as ImageCropModal};
|
|
@@ -1,71 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import { Image } from "../../ui/image.mjs";
|
|
5
|
-
import { Box } from "../../ui/box.mjs";
|
|
6
|
-
import { Text } from "../../ui/text.mjs";
|
|
7
|
-
import { Time } from "../../ui/time.mjs";
|
|
8
|
-
import { FollowButton } from "../../pages/(follow)/_components/follow-button/index.mjs";
|
|
9
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
|
-
import { usePathname, useRouter } from "next/navigation";
|
|
11
|
-
|
|
12
|
-
//#region components/common/info-card/card-header.tsx
|
|
13
|
-
function InfoCardHeader({ className, infoData, onChangeFollow, rightChild }) {
|
|
14
|
-
const pathname = usePathname();
|
|
15
|
-
const router = useRouter();
|
|
16
|
-
const userId = infoData?.author?.user_id || "";
|
|
17
|
-
const userName = infoData?.author?.nickname || "";
|
|
18
|
-
const publishTime = infoData?.show_at || infoData?.create_time;
|
|
19
|
-
return /* @__PURE__ */ jsx(Box, {
|
|
20
|
-
className: `w-full mb-[8px] pt-[16px] px-[12px] ${className}`,
|
|
21
|
-
children: /* @__PURE__ */ jsxs(Box, {
|
|
22
|
-
className: "w-full flex items-center justify-between",
|
|
23
|
-
children: [/* @__PURE__ */ jsxs(Box, {
|
|
24
|
-
className: "flex items-center cursor-pointer",
|
|
25
|
-
onClick: (e) => {
|
|
26
|
-
e.stopPropagation();
|
|
27
|
-
e.preventDefault();
|
|
28
|
-
const userPath = `/profile/${userId}`;
|
|
29
|
-
if (pathname === userPath) return;
|
|
30
|
-
router.push(userPath);
|
|
31
|
-
},
|
|
32
|
-
children: [/* @__PURE__ */ jsx(Box, {
|
|
33
|
-
className: "w-[36px] h-[36px] mr-[8px] rounded-full bg-bg2 overflow-hidden",
|
|
34
|
-
children: infoData?.author?.avatar && /* @__PURE__ */ jsx(Image, {
|
|
35
|
-
width: 36,
|
|
36
|
-
height: 36,
|
|
37
|
-
src: infoData?.author?.avatar,
|
|
38
|
-
className: "w-full h-full object-cover",
|
|
39
|
-
alt: "avatar"
|
|
40
|
-
})
|
|
41
|
-
}), /* @__PURE__ */ jsxs(Box, {
|
|
42
|
-
className: "flex flex-col",
|
|
43
|
-
children: [/* @__PURE__ */ jsx(Text, {
|
|
44
|
-
className: "block text-text1 text-[14px] leading-[18px] max-w-[220px] overflow-hidden whitespace-nowrap text-ellipsis",
|
|
45
|
-
children: userName
|
|
46
|
-
}), /* @__PURE__ */ jsx(Box, {
|
|
47
|
-
className: "mt-[4px] h-[14px] leading-[14px]",
|
|
48
|
-
children: /* @__PURE__ */ jsx(Time, {
|
|
49
|
-
mode: "relative",
|
|
50
|
-
value: publishTime,
|
|
51
|
-
className: "text-text3 text-[12px]"
|
|
52
|
-
})
|
|
53
|
-
})]
|
|
54
|
-
})]
|
|
55
|
-
}), /* @__PURE__ */ jsx(Box, {
|
|
56
|
-
onClick: (e) => {
|
|
57
|
-
e.stopPropagation();
|
|
58
|
-
e.preventDefault();
|
|
59
|
-
},
|
|
60
|
-
children: rightChild || (userId ? /* @__PURE__ */ jsx(FollowButton, {
|
|
61
|
-
userId,
|
|
62
|
-
hasFollow: false,
|
|
63
|
-
onChange: onChangeFollow
|
|
64
|
-
}) : null)
|
|
65
|
-
})]
|
|
66
|
-
})
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
//#endregion
|
|
71
|
-
export { InfoCardHeader as default };
|
|
2
|
+
"use client";import{Image as e}from"../../ui/image.mjs";import{Box as t}from"../../ui/box.mjs";import{Text as n}from"../../ui/text.mjs";import{Time as r}from"../../ui/time.mjs";import{FollowButton as i}from"../../pages/(follow)/_components/follow-button/index.mjs";import{jsx as a,jsxs as o}from"react/jsx-runtime";import{usePathname as s,useRouter as c}from"next/navigation";function l({className:l,infoData:u,onChangeFollow:d,rightChild:f}){let p=s(),m=c(),h=u?.author?.user_id||``,g=u?.author?.nickname||``,_=u?.show_at||u?.create_time;return a(t,{className:`w-full mb-[8px] pt-[16px] px-[12px] ${l}`,children:o(t,{className:`w-full flex items-center justify-between`,children:[o(t,{className:`flex items-center cursor-pointer`,onClick:e=>{e.stopPropagation(),e.preventDefault();let t=`/profile/${h}`;p!==t&&m.push(t)},children:[a(t,{className:`w-[36px] h-[36px] mr-[8px] rounded-full bg-bg2 overflow-hidden`,children:u?.author?.avatar&&a(e,{width:36,height:36,src:u?.author?.avatar,className:`w-full h-full object-cover`,alt:`avatar`})}),o(t,{className:`flex flex-col`,children:[a(n,{className:`block text-text1 text-[14px] leading-[18px] max-w-[220px] overflow-hidden whitespace-nowrap text-ellipsis`,children:g}),a(t,{className:`mt-[4px] h-[14px] leading-[14px]`,children:a(r,{mode:`relative`,value:_,className:`text-text3 text-[12px]`})})]})]}),a(t,{onClick:e=>{e.stopPropagation(),e.preventDefault()},children:f||(h?a(i,{userId:h,hasFollow:!1,onChange:d}):null)})]})})}export{l as default};
|
|
@@ -1,50 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import { Box } from "../../ui/box.mjs";
|
|
5
|
-
import { Text } from "../../ui/text.mjs";
|
|
6
|
-
import AtUserText from "../at-element/index.mjs";
|
|
7
|
-
import { useEffect, useState } from "react";
|
|
8
|
-
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
-
|
|
10
|
-
//#region components/common/info-card/card-text.tsx
|
|
11
|
-
function InfoCardText({ className, infoData, tagsChild }) {
|
|
12
|
-
const [isExpanded, setIsExpanded] = useState(false);
|
|
13
|
-
/** 判断是否需要展示展开/收起按钮。 */
|
|
14
|
-
function shouldShowToggleButton(text) {
|
|
15
|
-
return Boolean(text && text.length > 120);
|
|
16
|
-
}
|
|
17
|
-
/** 切换文本展开/收起。 */
|
|
18
|
-
function handleToggleExpand() {
|
|
19
|
-
setIsExpanded((prev) => !prev);
|
|
20
|
-
}
|
|
21
|
-
useEffect(() => {
|
|
22
|
-
setIsExpanded(false);
|
|
23
|
-
}, [infoData.content]);
|
|
24
|
-
return /* @__PURE__ */ jsxs(Box, {
|
|
25
|
-
className: `w-full mb-[8px] px-[12px] cursor-pointer ${className}`,
|
|
26
|
-
children: [
|
|
27
|
-
infoData.content && /* @__PURE__ */ jsx(Text, {
|
|
28
|
-
suppressHydrationWarning: true,
|
|
29
|
-
className: `text-text1 text-[16px] leading-[24px] break-all break-words ${isExpanded ? "" : "line-clamp-3"}`,
|
|
30
|
-
children: /* @__PURE__ */ jsx(AtUserText, {
|
|
31
|
-
text: infoData.content,
|
|
32
|
-
atUsers: infoData.author.nickname
|
|
33
|
-
})
|
|
34
|
-
}),
|
|
35
|
-
shouldShowToggleButton(infoData.content) && /* @__PURE__ */ jsx(Box, {
|
|
36
|
-
className: "mt-1 text-xs text-text3",
|
|
37
|
-
onClick: (e) => {
|
|
38
|
-
e.stopPropagation();
|
|
39
|
-
e.preventDefault();
|
|
40
|
-
handleToggleExpand();
|
|
41
|
-
},
|
|
42
|
-
children: isExpanded ? "收起" : "展开"
|
|
43
|
-
}),
|
|
44
|
-
tagsChild || /* @__PURE__ */ jsx(Fragment$1, {})
|
|
45
|
-
]
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
//#endregion
|
|
50
|
-
export { InfoCardText as default };
|
|
2
|
+
"use client";import{Box as e}from"../../ui/box.mjs";import{Text as t}from"../../ui/text.mjs";import n from"../at-element/index.mjs";import{useEffect as r,useState as i}from"react";import{Fragment as a,jsx as o,jsxs as s}from"react/jsx-runtime";function c({className:c,infoData:l,tagsChild:u}){let[d,f]=i(!1);function p(e){return!!(e&&e.length>120)}function m(){f(e=>!e)}return r(()=>{f(!1)},[l.content]),s(e,{className:`w-full mb-[8px] px-[12px] cursor-pointer ${c}`,children:[l.content&&o(t,{suppressHydrationWarning:!0,className:`text-text1 text-[16px] leading-[24px] break-all break-words ${d?``:`line-clamp-3`}`,children:o(n,{text:l.content,atUsers:l.author.nickname})}),p(l.content)&&o(e,{className:`mt-1 text-xs text-text3`,onClick:e=>{e.stopPropagation(),e.preventDefault(),m()},children:d?`收起`:`展开`}),u||o(a,{})]})}export{c as default};
|
|
@@ -1,15 +1,85 @@
|
|
|
1
1
|
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
2
|
+
import e from"../../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.mjs";var t=`@keyframes interaction-animations-module_likeShake__7Bfbc {
|
|
3
|
+
0% {
|
|
4
|
+
transform: scale(1);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
15% {
|
|
8
|
+
transform: scale(1.3) rotate(5deg);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
30% {
|
|
12
|
+
transform: scale(1.1) rotate(-5deg);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
45% {
|
|
16
|
+
transform: scale(1.25) rotate(3deg);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
60% {
|
|
20
|
+
transform: scale(1.05) rotate(-2deg);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
75% {
|
|
24
|
+
transform: scale(1.15) rotate(1deg);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
100% {
|
|
28
|
+
transform: scale(1);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
@keyframes interaction-animations-module_dislikeShake__zk6gc {
|
|
33
|
+
0% {
|
|
34
|
+
transform: translateY(0);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
10% {
|
|
38
|
+
transform: translateY(-3px);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
20% {
|
|
42
|
+
transform: translateY(3px);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
30% {
|
|
46
|
+
transform: translateY(-3px);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
40% {
|
|
50
|
+
transform: translateY(3px);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
50% {
|
|
54
|
+
transform: translateY(-2px);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
60% {
|
|
58
|
+
transform: translateY(2px);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
70% {
|
|
62
|
+
transform: translateY(-1px);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
80% {
|
|
66
|
+
transform: translateY(1px);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
90% {
|
|
70
|
+
transform: translateY(-0.5px);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
100% {
|
|
74
|
+
transform: translateY(0);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.interaction-animations-module_likeShakeAnimation__oo47A {
|
|
79
|
+
animation: interaction-animations-module_likeShake__7Bfbc 0.6s ease-in-out;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.interaction-animations-module_dislikeShakeAnimation__q1xZy {
|
|
83
|
+
animation: interaction-animations-module_dislikeShake__zk6gc 0.6s ease-in-out;
|
|
84
|
+
}
|
|
85
|
+
`,n={likeShakeAnimation:`interaction-animations-module_likeShakeAnimation__oo47A`,likeShake:`interaction-animations-module_likeShake__7Bfbc`,dislikeShakeAnimation:`interaction-animations-module_dislikeShakeAnimation__q1xZy`,dislikeShake:`interaction-animations-module_dislikeShake__zk6gc`};e(t);export{n as default};
|