@funhub/platform 0.1.47 → 0.1.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/dist/assets/icons/search/filter.mjs +2 -0
  2. package/dist/components/biz/business/banner-carousel/client.mjs +1 -1
  3. package/dist/components/biz/business/banner-carousel/material.d.mts +1 -0
  4. package/dist/components/biz/business/banner-carousel/schema.d.mts +1 -0
  5. package/dist/components/biz/business/banner-carousel/schema.mjs +1 -1
  6. package/dist/components/biz/business/channel-list/client.mjs +1 -1
  7. package/dist/components/biz/business/channel-list/material.d.mts +1 -1
  8. package/dist/components/biz/business/channel-list/schema.d.mts +1 -1
  9. package/dist/components/biz/business/channel-list/schema.mjs +1 -1
  10. package/dist/components/biz/business/large-feature-grid/client.mjs +1 -1
  11. package/dist/components/pages/search-result/index.d.mts +2 -0
  12. package/dist/components/pages/search-result/page-client.d.mts +10 -0
  13. package/dist/components/pages/search-result/page-client.mjs +2 -0
  14. package/dist/components/pages/search-result/search-all.mjs +2 -0
  15. package/dist/components/pages/search-result/search-tab.mjs +2 -0
  16. package/dist/components/pages/search-result/search-user.mjs +2 -0
  17. package/dist/components/pages/search-result/search-video.mjs +2 -0
  18. package/dist/components/ui/badge.d.mts +1 -1
  19. package/dist/components/ui/button.d.mts +2 -2
  20. package/dist/components/ui/image.d.mts +4 -4
  21. package/dist/components/ui/popover.d.mts +1 -0
  22. package/dist/components/ui/popover.mjs +1 -1
  23. package/dist/constants/event-key.mjs +1 -1
  24. package/dist/pages.d.mts +3 -1
  25. package/dist/pages.mjs +1 -1
  26. package/package.json +1 -1
@@ -0,0 +1,2 @@
1
+
2
+ import*as e from"react";const t=t=>e.createElement(`svg`,{width:`1em`,height:`1em`,viewBox:`0 0 16 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...t},e.createElement(`path`,{d:`M5.62209 13.624V8.64576L0.825706 3.09075C-0.219903 1.87967 0.640106 0.000233388 2.24002 0H13.7896L13.9371 0.00511108C15.4413 0.116473 16.2169 1.91743 15.2039 3.09075L10.4075 8.64576V14.5023C10.4075 15.6085 9.24777 16.3323 8.2543 15.8458L6.45958 14.9667C5.94713 14.7156 5.62219 14.1946 5.62209 13.624ZM8.91217 14.5023V8.3683C8.91221 8.18896 8.97678 8.01558 9.09398 7.87983L14.0722 2.1138C14.2683 1.88665 14.1293 1.54178 13.8473 1.49974L13.7896 1.49536H2.24002C1.92019 1.49559 1.74838 1.87164 1.95745 2.1138L6.93564 7.87983C7.05284 8.01558 7.11741 8.18896 7.11745 8.3683V13.624L8.91217 14.5023Z`,fill:`#333333`}));export{t as default};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{buildContentUrl as e}from"../../utils/helpers/url.mjs";import{mergeStyles as t}from"../../utils/styles/helpers.mjs";import{Image as n}from"../../../ui/image.mjs";import{Box as r}from"../../../ui/box.mjs";import{Carousel as i,CarouselContent as a,CarouselItem as o}from"../../../ui/carousel.mjs";import{Text as s}from"../../../ui/text.mjs";import c from"../../../ui/legacy/button.mjs";import l from"../../../ui/link.mjs";import{defaultProps as u}from"./default-props.mjs";import d from"clsx";import{useIsClient as f}from"foxact/use-is-client";import{useEffect as p,useRef as m,useState as h}from"react";import{jsx as g,jsxs as _}from"react/jsx-runtime";const v={list:[]};function y({mode:y=`renderer`,props:b=v,styles:x,events:S}){let C=y===`editor`,{autoplay:w=u.autoplay,interval:T=u.interval,loop:E=u.loop,showTitle:D=u.showTitle,showIndicator:O=u.showIndicator,list:k=[]}={...u,...b},[A,j]=h(),[M,N]=h(0),P=f(),F=m(null);if(p(()=>{if(!A||!P)return;let e=()=>{N(A.selectedScrollSnap())};return A.on(`select`,e),e(),()=>{A.off(`select`,e)}},[A,S,P]),p(()=>!w||!A||k.length<=1?void 0:(F.current=setInterval(()=>{A.canScrollNext()?A.scrollNext():E&&A.scrollTo(0)},T*1e3),()=>{F.current&&=(clearInterval(F.current),null)}),[w,A,T,E,k.length]),!k||k.length===0)return null;let I=k[M],L=x?t(x,{}):void 0;return _(r,{className:C?`relative w-full pointer-events-none`:`relative w-full`,style:L,children:[g(i,{setApi:j,opts:{align:`start`,loop:E,skipSnaps:!1,dragFree:!1},className:`w-full`,children:g(a,{className:`ml-0`,children:k.map((t,r)=>g(o,{className:`pl-0`,children:g(l,{href:e({url:``,contentId:t.contentId,contentType:1,title:t.title}),className:`block relative w-full h-[242px] overflow-hidden touch-manipulation`,children:g(n,{src:t.coverUrl,alt:t.title||`Banner ${r+1}`,fill:!0,objectFit:`cover`,unoptimized:!0})})},r))})}),D&&I?.title&&g(r,{className:`absolute bottom-[8px] left-[8px]`,children:g(s,{as:`p`,className:`text-white text-[16px] line-clamp-1`,children:I.title})}),O&&k.length>1&&g(r,{className:`absolute bottom-[16px] right-[8px] flex items-center gap-[4px]`,children:k.map((e,t)=>g(c,{type:`button`,className:d(`transition-all duration-300 rounded-full !p-0`,t===M?`w-[10px] h-[6px] bg-black`:`w-[6px] h-[6px] bg-white/50`),"aria-label":`跳转到第 ${t+1} 个 Banner`},t))})]})}export{y as default};
2
+ "use client";import{mergeStyles as e}from"../../utils/styles/helpers.mjs";import{Image as t}from"../../../ui/image.mjs";import{Box as n}from"../../../ui/box.mjs";import{Carousel as r,CarouselContent as i,CarouselItem as a}from"../../../ui/carousel.mjs";import{Text as o}from"../../../ui/text.mjs";import s from"../../../ui/legacy/button.mjs";import c from"../../../ui/link.mjs";import{defaultProps as l}from"./default-props.mjs";import u from"clsx";import{useIsClient as d}from"foxact/use-is-client";import{useEffect as f,useRef as p,useState as m}from"react";import{jsx as h,jsxs as g}from"react/jsx-runtime";const _={list:[]};function v({mode:v=`renderer`,props:y=_,styles:b,events:x}){let S=v===`editor`,{autoplay:C=l.autoplay,interval:w=l.interval,loop:T=l.loop,showTitle:E=l.showTitle,showIndicator:D=l.showIndicator,list:O=[]}={...l,...y},[k,A]=m(),[j,M]=m(0),N=d(),P=p(null);if(f(()=>{if(!k||!N)return;let e=()=>{M(k.selectedScrollSnap())};return k.on(`select`,e),e(),()=>{k.off(`select`,e)}},[k,x,N]),f(()=>!C||!k||O.length<=1?void 0:(P.current=setInterval(()=>{k.canScrollNext()?k.scrollNext():T&&k.scrollTo(0)},w*1e3),()=>{P.current&&=(clearInterval(P.current),null)}),[C,k,w,T,O.length]),!O||O.length===0)return null;let F=O[j],I=b?e(b,{}):void 0;return g(n,{className:S?`relative w-full pointer-events-none`:`relative w-full`,style:I,children:[h(r,{setApi:A,opts:{align:`start`,loop:T,skipSnaps:!1,dragFree:!1},className:`w-full`,children:h(i,{className:`ml-0`,children:O.map((e,n)=>h(a,{className:`pl-0`,children:h(c,{href:e.target,className:`block relative w-full h-[242px] overflow-hidden touch-manipulation`,children:h(t,{src:e.coverUrl,alt:e.title||`Banner ${n+1}`,fill:!0,objectFit:`cover`,unoptimized:!0})})},n))})}),E&&F?.title&&h(n,{className:`absolute bottom-[8px] left-[8px]`,children:h(o,{as:`p`,className:`text-white text-[16px] line-clamp-1`,children:F.title})}),D&&O.length>1&&h(n,{className:`absolute bottom-[16px] right-[8px] flex items-center gap-[4px]`,children:O.map((e,t)=>h(s,{type:`button`,className:u(`transition-all duration-300 rounded-full !p-0`,t===j?`w-[10px] h-[6px] bg-black`:`w-[6px] h-[6px] bg-white/50`),"aria-label":`跳转到第 ${t+1} 个 Banner`},t))})]})}export{v as default};
@@ -16,6 +16,7 @@ declare const BannerCarouselMaterial: DefineMaterialOption<typeof BannerCarousel
16
16
  badgeUrl: zod.ZodOptional<zod.ZodString>;
17
17
  showPlayCount: zod.ZodOptional<zod.ZodBoolean>;
18
18
  showEpisodeCount: zod.ZodOptional<zod.ZodBoolean>;
19
+ target: zod.ZodOptional<zod.ZodString>;
19
20
  }, zod_v4_core0.$strip>>> & SchemaHasDefaultValue;
20
21
  mode: zod.ZodOptional<zod.ZodEnum<{
21
22
  renderer: "renderer";
@@ -16,6 +16,7 @@ declare const basicBannerInspectorPropsSchema: z$1.ZodObject<{
16
16
  badgeUrl: z$1.ZodOptional<z$1.ZodString>;
17
17
  showPlayCount: z$1.ZodOptional<z$1.ZodBoolean>;
18
18
  showEpisodeCount: z$1.ZodOptional<z$1.ZodBoolean>;
19
+ target: z$1.ZodOptional<z$1.ZodString>;
19
20
  }, z$1.core.$strip>>> & SchemaHasDefaultValue;
20
21
  mode: z$1.ZodOptional<z$1.ZodEnum<{
21
22
  renderer: "renderer";
@@ -1,2 +1,2 @@
1
1
 
2
- import{defineArrayItemPropSchema as e,defineComponentPropsSchema as t,defineNumberPropSchema as n,defineSwitchPropSchema as r,defineTextPropSchema as i,getSchemaDefaultProps as a}from"../../../../utils/schema/schema.mjs";import{defaultProps as o}from"./default-props.mjs";import s from"zod";const c=t({interval:n({label:`播放间隔`,defaultValue:o.interval}),list:e(s.object({contentId:n({label:`内容ID`,required:!1}),title:i({label:`内容标题`,required:!1}),coverUrl:i({label:`封面`,required:!1}),badgeUrl:i({label:`角标`,required:!1}),showPlayCount:r({label:`展示播放量`,required:!1}),showEpisodeCount:r({label:`展示集数`,required:!1})}),{required:!1,label:`list`,defaultValue:[{contentId:1,title:`视频标题一`,desc:`视频描述`,coverUrl:`/static/components-resource/banner.png`,badgeUrl:``,showPlayCount:!1,showEpisodeCount:!1},{contentId:2,title:`视频标题二`,coverUrl:`/static/components-resource/banner.png`,badgeUrl:``,showPlayCount:!1,showEpisodeCount:!1},{contentId:3,title:`视频标题三`,coverUrl:`/static/components-resource/banner.png`,badgeUrl:``,showPlayCount:!1,showEpisodeCount:!1}]})});a(c);export{c as basicBannerInspectorPropsSchema};
2
+ import{defineArrayItemPropSchema as e,defineComponentPropsSchema as t,defineNumberPropSchema as n,defineSwitchPropSchema as r,defineTextPropSchema as i,getSchemaDefaultProps as a}from"../../../../utils/schema/schema.mjs";import{defaultProps as o}from"./default-props.mjs";import s from"zod";const c=t({interval:n({label:`播放间隔`,defaultValue:o.interval}),list:e(s.object({contentId:n({label:`内容ID`,required:!1}),title:i({label:`内容标题`,required:!1}),coverUrl:i({label:`封面`,required:!1}),badgeUrl:i({label:`角标`,required:!1}),showPlayCount:r({label:`展示播放量`,required:!1}),showEpisodeCount:r({label:`展示集数`,required:!1}),target:i({label:`跳转地址`,required:!1})}),{required:!1,label:`list`,defaultValue:[{contentId:1,title:`视频标题一`,desc:`视频描述`,coverUrl:`/static/components-resource/banner.png`,badgeUrl:``,showPlayCount:!1,showEpisodeCount:!1,target:``},{contentId:2,title:`视频标题二`,coverUrl:`/static/components-resource/banner.png`,badgeUrl:``,showPlayCount:!1,showEpisodeCount:!1,target:``},{contentId:3,title:`视频标题三`,coverUrl:`/static/components-resource/banner.png`,badgeUrl:``,showPlayCount:!1,showEpisodeCount:!1,target:``}]})});a(c);export{c as basicBannerInspectorPropsSchema};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{mergeStyles as e}from"../../utils/styles/helpers.mjs";import{Box as t}from"../../../ui/box.mjs";import n from"../../../ui/link.mjs";import{urlPrefix as r}from"../../../../constants/url-prefix.mjs";import{useSticky as i}from"../../../../hooks/use-sticky.mjs";import a from"../../../../assets/icons/filter_dark.mjs";import o,{loadHiddenChannelIdsFromStorage as s}from"./channel-filter-dialog.mjs";import{defaultProps as c}from"./default-props.mjs";import{clsx as l}from"clsx";import{useEffect as u,useMemo as d,useState as f}from"react";import{Fragment as p,jsx as m,jsxs as h}from"react/jsx-runtime";const g={};function _(e,t){return t===0?`/`:`${r.CHANNEL}/${encodeURIComponent(e.name)}`}function v(r){let{mode:v=`renderer`,styles:y,events:b,...x}=r,S=v===`editor`,C=x||g,w={...c,...C},[T,E]=f(!1),{isSticky:D,ref:O}=i(),[k,A]=f(w.list),j=d(()=>w.list.find(e=>e.isDefault)?.name??null,[w.list]),M=d(()=>w.currentChannelId??j,[w.currentChannelId,j]);u(()=>{let e=s();A(e?.length?w.list.filter(t=>!e.includes(t.name)):w.list)},[w.list]);let N=e=>{A(e)},P=(e,t)=>{b?.onChannelChange?.(e,t)},F=y?e(y,{}):void 0;return h(p,{children:[D&&m(t,{className:`w-full h-11`}),m(t,{as:`nav`,ref:O,className:l(`w-full transition-all duration-200`,S&&`pointer-events-none`,!w.isFullfeed&&D&&`fixed top-0 left-0 right-0 z-50`,w.isFullfeed&&`fixed top-[54px] left-0 z-10 w-full`,!w.isFullfeed&&`bg-bg1`),style:F,children:h(t,{className:`relative flex items-center h-[44px]`,children:[m(t,{className:`flex-1 overflow-x-auto overflow-y-hidden [&::-webkit-scrollbar]:hidden`,style:{scrollbarWidth:`none`,msOverflowStyle:`none`,WebkitOverflowScrolling:`touch`},children:m(t,{className:`flex items-center h-full w-4 h-4 gap-4`,children:k.map((e,t)=>{let r=M===e.name||M===null&&t===0;return m(n,{href:_(e,t),className:l(`whitespace-nowrap cursor-pointer transition-all duration-200`,`flex items-center justify-center h-11`,`${r?`text-xl`:`text-base`}`),style:{fontWeight:r?`bold`:`normal`,color:r?`var(--color-theme5)`:`var(--color-text2)`},onClick:()=>P(e,t),children:e.name},e.name||`channel-${t}`)})})}),r.filterable?m(t,{className:`flex items-center gap-[12px] px-[8px]`,children:m(t,{className:`flex items-center justify-center cursor-pointer w-7 h-8`,onClick:()=>{E(!0),b?.onFilterClick?.()},children:m(a,{className:`w-5 h-5`,style:{color:`var(--color-text1)`}})})}):null]})}),m(o,{open:T,onOpenChange:E,channels:w.list,currentChannelId:M,onChannelClick:P,onChannelsChange:N})]})}export{v as default};
2
+ "use client";import{mergeStyles as e}from"../../utils/styles/helpers.mjs";import{Box as t}from"../../../ui/box.mjs";import n from"../../../ui/link.mjs";import{urlPrefix as r}from"../../../../constants/url-prefix.mjs";import{useSticky as i}from"../../../../hooks/use-sticky.mjs";import a from"../../../../assets/icons/filter_dark.mjs";import o,{loadHiddenChannelIdsFromStorage as s}from"./channel-filter-dialog.mjs";import{defaultProps as c}from"./default-props.mjs";import{clsx as l}from"clsx";import{useEffect as u,useMemo as d,useState as f}from"react";import{Fragment as p,jsx as m,jsxs as h}from"react/jsx-runtime";const g={};function _(e,t){return t===0?`/`:`${r.CHANNEL}/${encodeURIComponent(e.name)}`}function v(r){let{mode:v=`renderer`,styles:y,events:b,...x}=r,S=v===`editor`,C=x||g,w={...c,...C},[T,E]=f(!1),{isSticky:D,ref:O}=i(),[k,A]=f(w.list),j=d(()=>w.list.find(e=>e.isDefault)?.name??null,[w.list]),M=d(()=>w.currentChannelId??j,[w.currentChannelId,j]);u(()=>{let e=s();A(e?.length?w.list.filter(t=>!e.includes(t.name)):w.list)},[w.list]);let N=e=>{A(e)},P=(e,t)=>{b?.onChannelChange?.(e,t)},F=y?e(y,{}):void 0;return h(p,{children:[D&&m(t,{className:`w-full h-11`}),m(t,{as:`nav`,ref:O,className:l(`w-full transition-all duration-200`,S&&`pointer-events-none`,!w.isFullfeed&&D&&`fixed top-0 left-0 right-0 z-50`,w.isFullfeed&&`fixed top-[54px] left-0 z-10 w-full`,!w.isFullfeed&&`bg-bg1`),style:F,children:h(t,{className:`relative flex items-center h-[44px]`,children:[m(t,{className:`flex-1 overflow-x-auto overflow-y-hidden [&::-webkit-scrollbar]:hidden`,style:{scrollbarWidth:`none`,msOverflowStyle:`none`,WebkitOverflowScrolling:`touch`},children:m(t,{className:`flex items-center h-full w-4 h-4 gap-4`,children:k.map((e,t)=>{let r=M===e.name||M===null&&t===0;return m(n,{href:_(e,t),className:l(`whitespace-nowrap cursor-pointer transition-all duration-200`,`flex items-center justify-center h-11`,`${r?`text-xl`:`text-base`}`),style:{fontWeight:r?`bold`:`normal`,color:r?`var(--color-theme5)`:`var(--color-text2)`},onClick:()=>P(e,t),children:e.name},e.name||`channel-${t}`)})})}),r.modifiable?m(t,{className:`flex items-center gap-[12px] px-[8px]`,children:m(t,{className:`flex items-center justify-center cursor-pointer w-7 h-8`,onClick:()=>{E(!0),b?.onFilterClick?.()},children:m(a,{className:`w-5 h-5`,style:{color:`var(--color-text1)`}})})}):null]})}),m(o,{open:T,onOpenChange:E,channels:w.list,currentChannelId:M,onChannelClick:P,onChannelsChange:N})]})}export{v as default};
@@ -8,7 +8,7 @@ import * as zod_v4_core0 from "zod/v4/core";
8
8
 
9
9
  //#region components/biz/business/channel-list/material.d.ts
10
10
  declare const channelListMaterial: DefineMaterialOption<typeof BasicChannelListClient, typeof BasicChannelListClient, zod.ZodObject<{
11
- filterable: zod.ZodBoolean & SchemaHasDefaultValue;
11
+ modifiable: zod.ZodBoolean & SchemaHasDefaultValue;
12
12
  list: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
13
13
  name: zod.ZodOptional<zod.ZodString>;
14
14
  icon: zod.ZodOptional<zod.ZodString>;
@@ -10,7 +10,7 @@ import z$1 from "zod";
10
10
  * 定义可以被低代码右侧inspector编辑的props
11
11
  */
12
12
  declare const channelListInspectorPropsSchema: z$1.ZodObject<{
13
- filterable: z$1.ZodBoolean & SchemaHasDefaultValue;
13
+ modifiable: z$1.ZodBoolean & SchemaHasDefaultValue;
14
14
  list: z$1.ZodOptional<z$1.ZodArray<z$1.ZodObject<{
15
15
  name: z$1.ZodOptional<z$1.ZodString>;
16
16
  icon: z$1.ZodOptional<z$1.ZodString>;
@@ -1,2 +1,2 @@
1
1
 
2
- import{defineArrayItemPropSchema as e,defineComponentPropsSchema as t,defineSwitchPropSchema as n,defineTextPropSchema as r,getSchemaDefaultProps as i}from"../../../../utils/schema/schema.mjs";import a from"zod";const o=t({filterable:n({label:`是否显示筛选`,defaultValue:!0}),list:e(a.object({name:r({label:`内容标题`,required:!1}),icon:r({label:`图标`,required:!1}),isDefault:n({label:`是否默认频道`,required:!1})}),{required:!1,label:`list`,defaultValue:[{name:`频道名称`,icon:``,isDefault:!0}]})});i(o);export{o as channelListInspectorPropsSchema};
2
+ import{defineArrayItemPropSchema as e,defineComponentPropsSchema as t,defineSwitchPropSchema as n,defineTextPropSchema as r,getSchemaDefaultProps as i}from"../../../../utils/schema/schema.mjs";import a from"zod";const o=t({modifiable:n({label:`自定义频道`,defaultValue:!0}),list:e(a.object({name:r({label:`内容标题`,required:!1}),icon:r({label:`图标`,required:!1}),isDefault:n({label:`是否默认频道`,required:!1})}),{required:!1,label:`list`,defaultValue:[{name:`频道名称`,icon:``,isDefault:!0}]})});i(o);export{o as channelListInspectorPropsSchema};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{Box as e}from"../../../ui/box.mjs";import{Text as t}from"../../../ui/text.mjs";import n from"../../../ui/link.mjs";import r from"../../../../assets/icons/common/right_arrow.mjs";import{LargeGridItemClient as i}from"./card-item.mjs";import{largeFeatureGridInspectorDefaultProps as a}from"./schema.mjs";import{jsx as o,jsxs as s}from"react/jsx-runtime";const c=[],l=a.data??[];function u(e){return e==null||e===``}function d(e,t){return u(e)?t:e}function f(e,t){return t?{...e,...t,id:d(t.id,e.id),cover:d(t.cover,e.cover),title:d(t.title,e.title),desc:d(t.desc,e.desc),playCount:d(t.playCount,e.playCount),showPlayCount:t.showPlayCount??e.showPlayCount,episodeText:d(t.episodeText,e.episodeText),showEpisode:t.showEpisode??e.showEpisode,useContentCover:t.useContentCover??e.useContentCover,tagImageUrl:d(t.tagImageUrl,e.tagImageUrl)}:e}function p(e,t){if(!t)return e;let n=e.items;return{...e,...t,title:d(t.title,e.title),moreUrl:d(t.moreUrl,e.moreUrl),moreLinkType:t.moreLinkType??e.moreLinkType,items:n?f(n,t.items):t.items}}function m({mode:a=`renderer`,data:u=c}){let d=a===`editor`,f=u??c,m=Array.isArray(f)&&f.length>0?[p(l[0],f[0])]:l;if(!m||m.length===0)return null;let h=m[0],g=h?.title,_=h?.moreUrl;return s(e,{className:d?`p-3 pointer-events-none`:`p-3`,children:[s(e,{className:`flex items-center justify-between mb-[10px] h-[24px]`,children:[g&&o(t,{as:`h2`,className:`text-[18px] font-bold text-text1 line-clamp-1 flex-1 min-w-0 mr-[12px]`,children:g}),_&&s(n,{href:_,className:`flex items-center text-[14px] text-text2 ml-auto`,children:[`更多`,o(r,{className:`ml-[2px] h-[12px] w-[12px] text-text2`})]})]}),m.map((t,n)=>{let{items:r}=t;return r?o(e,{className:n>0?`mt-3`:``,children:o(i,{data:r})},`large-feature-grid-items-${n}`):null})]})}export{m as LargeFeatureGridClient};
2
+ "use client";import{Box as e}from"../../../ui/box.mjs";import{Text as t}from"../../../ui/text.mjs";import n from"../../../ui/link.mjs";import r from"../../../../assets/icons/common/right_arrow.mjs";import{LargeGridItemClient as i}from"./card-item.mjs";import{largeFeatureGridInspectorDefaultProps as a}from"./schema.mjs";import{jsx as o,jsxs as s}from"react/jsx-runtime";const c=[],l=a.data??[];function u(e){return e==null}function d(e,t){return u(e)?t:e}function f(e,t){return t?{...e,...t,id:d(t.id,e.id),cover:d(t.cover,e.cover),title:d(t.title,e.title),desc:d(t.desc,e.desc),playCount:d(t.playCount,e.playCount),showPlayCount:t.showPlayCount??e.showPlayCount,episodeText:d(t.episodeText,e.episodeText),showEpisode:t.showEpisode??e.showEpisode,useContentCover:t.useContentCover??e.useContentCover,tagImageUrl:d(t.tagImageUrl,e.tagImageUrl)}:e}function p(e,t){if(!t)return e;let n=e.items;return{...e,...t,title:d(t.title,e.title),moreUrl:d(t.moreUrl,e.moreUrl),moreLinkType:t.moreLinkType??e.moreLinkType,items:n?f(n,t.items):t.items}}function m({mode:a=`renderer`,data:u=c}){let d=a===`editor`,f=u??c,m=Array.isArray(f)&&f.length>0?[p(l[0],f[0])]:l;if(!m||m.length===0)return null;let h=m[0],g=h?.title,_=h?.moreUrl;return s(e,{className:d?`p-3 pointer-events-none`:`p-3`,children:[s(e,{className:`flex items-center justify-between mb-[10px] h-[24px]`,children:[g&&o(t,{as:`h2`,className:`text-[18px] font-bold text-text1 line-clamp-1 flex-1 min-w-0 mr-[12px]`,children:g}),_&&s(n,{href:_,className:`flex items-center text-[14px] text-text2 ml-auto`,children:[`更多`,o(r,{className:`ml-[2px] h-[12px] w-[12px] text-text2`})]})]}),m.map((t,n)=>{let{items:r}=t;return r?o(e,{className:n>0?`mt-3`:``,children:o(i,{data:r})},`large-feature-grid-items-${n}`):null})]})}export{m as LargeFeatureGridClient};
@@ -0,0 +1,2 @@
1
+
2
+ import { SearchResultPageClient } from "./page-client.mjs";
@@ -0,0 +1,10 @@
1
+
2
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
3
+
4
+ //#region components/pages/search-result/page-client.d.ts
5
+ /**
6
+ * 搜索结果页
7
+ */
8
+ declare function SearchResultPageClient(): react_jsx_runtime0.JSX.Element;
9
+ //#endregion
10
+ export { SearchResultPageClient };
@@ -0,0 +1,2 @@
1
+
2
+ "use client";import{updateUrlParams as e}from"../../../utils/common.mjs";import t from"../../../utils/event-bus.mjs";import{useUserStore as n}from"../../../store/modules/user-store.mjs";import{Box as r}from"../../ui/box.mjs";import{eventKey as i}from"../../../constants/event-key.mjs";import{useSearchHistory as a}from"../../../hooks/use-search-history.mjs";import o from"../search/top-header.mjs";import s from"./search-user.mjs";import c from"./search-video.mjs";import l from"./search-all.mjs";import{SORT_OPTIONS as u,SearchTab as d}from"./search-tab.mjs";import{useEffect as f,useMemo as p,useState as m}from"react";import{Fragment as h,jsx as g,jsxs as _}from"react/jsx-runtime";import{useSearchParams as v}from"next/navigation";const y=[{label:`综合`,value:`all`},{label:`视频`,value:`video`},{label:`用户`,value:`user`}];function b(){let{userInfo:b}=n(),x=b?.user_id||`guest`,S=v().get(`q`)?.toString()||``,C=S?decodeURIComponent(S):``,[w,T]=m(C),[E]=m(C),[D]=m(0),[O,k]=m(y[0].value),[A,j]=m(u[0].value),[,M]=m([]),{addHistory:N}=a({storageKey:x}),P=p(()=>w.trim()!==``,[w]);return f(()=>(t.on(i.EXCHANGE_SEARCH_TYPE,k),()=>{t.off(i.EXCHANGE_SEARCH_TYPE,k)}),[k]),_(r,{className:`w-full min-h-screen bg-bg1 pb-[12px] overscroll-y-none`,children:[g(o,{setSearchInputVal:t=>{t!==w&&(M([]),T(t),e({q:t}))},initInputVal:E,initInputVersion:D,addSearchHistory:N}),g(d,{searchType:O,tabList:y,onChange:e=>{k(e),M([])},sort:A,onSortChange:j}),P&&_(h,{children:[O===`user`&&g(s,{mode:`user`,inputVal:w}),O===`all`&&g(l,{searchInputVal:w,sort:A}),O===`video`&&g(c,{searchType:O,inputVal:w})]}),!P&&g(r,{className:`w-full pt-[12px]`})]})}export{b as default};
@@ -0,0 +1,2 @@
1
+
2
+ "use client";import{gContentGetRecommendVideoList as e}from"../../../service/generated/client.mjs";import{gContentGetRecommendVideoListKey as t}from"../../../service/generated/tanstack.mjs";import{Box as n}from"../../ui/box.mjs";import{List as r}from"../../ui/list.mjs";import{useRequest as i}from"../../../hooks/query/use-query.mjs";import a from"./search-user.mjs";import o from"./search-video.mjs";import{useMemo as s}from"react";import{jsx as c,jsxs as l}from"react/jsx-runtime";import{useTranslations as u}from"next-intl";function d(e,t=1){return JSON.stringify({type:1,keywords:e,sort:t})}function f({searchInputVal:f,sort:p}){let m=u(`components.pages.search.searchResult`),h=s(()=>d(f,p),[f,p]),{data:g,isFetching:_}=i(t({data_type:2,extra_params:h,page:1,page_size:10}),async()=>(await e({data_type:2,extra_params:h,page:1,page_size:10})).data??{}),v=s(()=>g?.videos?.list??[],[g]),y=s(()=>g?.users?.list??[],[g]);return v.length===0&&y.length===0&&!_?c(n,{className:`w-full pt-[12px]`,children:c(r,{loading:_,empty:`nodata`,emptyText:m(`searchAll.emptyResult`)})}):l(n,{className:`w-full pt-[12px]`,children:[y.length>0&&c(a,{mode:`all`,list:y}),c(o,{list:v})]})}export{f as default};
@@ -0,0 +1,2 @@
1
+
2
+ "use client";import{Button as e}from"../../ui/button.mjs";import{Box as t}from"../../ui/box.mjs";import{Popover as n,PopoverContent as r,PopoverTrigger as i}from"../../ui/popover.mjs";import{Text as a}from"../../ui/text.mjs";import o from"../../../assets/icons/search/filter.mjs";import{memo as s,useState as c}from"react";import{ChevronUpIcon as l}from"lucide-react";import{Fragment as u,jsx as d,jsxs as f}from"react/jsx-runtime";const p=[{label:`综合`,value:1},{label:`最新`,value:2},{label:`最热`,value:3}],m=s(({searchType:s,onChange:m,tabList:h,sort:g,onSortChange:_})=>{let[v,y]=c(!1);return f(u,{children:[f(t,{as:`nav`,className:`w-full h-[42px] bg-bg1 flex items-center justify-between px-[3px] fixed top-[55px] left-0 right-0 z-40`,children:[d(t,{className:`flex items-center`,children:h.map(e=>d(a,{className:`h-[30px] rounded-[15px] leading-[30px] px-[9px] text-[16px] bg-transparent transition-all duration-150 ${s===e.value?`text-theme5 !text-[20px] font-bold`:`text-text2`}`,onClick:()=>{s!==e.value&&m(e.value)},children:e.label},e.value))}),f(n,{open:v,onOpenChange:y,children:[d(i,{"aria-label":`排序筛选`,className:`shrink-0 w-7 h-7 rounded-[min(var(--radius-md),12px)] inline-flex items-center justify-center`,children:d(o,{className:`w-[16px] h-[16px]`})}),f(r,{side:`bottom`,align:`end`,className:`w-[100vw] bg-muted`,children:[d(a,{as:`p`,className:`text-[14px] font-medium text-text1 mb-[12px]`,children:`排序方式`}),f(t,{className:`flex flex-col gap-[8px]`,children:[d(t,{className:`flex justify-between gap-[8px]`,children:p.map(t=>d(e,{variant:g===t.value?`default`:`outline`,size:`sm`,className:`w-[100px]`,onClick:()=>{_(t.value),y(!1)},children:t.label},t.value))}),f(e,{variant:`ghost`,size:`sm`,className:`w-full justify-center gap-[4px] text-text2`,onClick:()=>y(!1),children:[d(l,{className:`w-[14px] h-[14px]`}),`收起`]})]})]})]})]}),d(t,{className:`w-full h-[42px]`})]})});m.displayName=`SearchTab`;export{p as SORT_OPTIONS,m as SearchTab};
@@ -0,0 +1,2 @@
1
+
2
+ "use client";import{Button as e}from"../../ui/button.mjs";import t from"../../../utils/event-bus.mjs";import{useUserStore as n}from"../../../store/modules/user-store.mjs";import{gContentGetRecommendVideoList as r}from"../../../service/generated/client.mjs";import{Image as i}from"../../ui/image.mjs";import{Box as a}from"../../ui/box.mjs";import{Item as o}from"../../ui/item.mjs";import{List as s}from"../../ui/list.mjs";import{Skeleton as c}from"../../ui/skeleton.mjs";import{Text as l}from"../../ui/text.mjs";import{usePaginated as u,useUpdateRequest as d}from"../../../hooks/query/use-query.mjs";import{useRequireLogin as f}from"../../../hooks/use-auth.mjs";import{eventKey as p}from"../../../constants/event-key.mjs";import m from"../../../assets/icons/right_arrow.mjs";import{FollowButton as h}from"../(follow)/_components/follow-button/index.mjs";import{memo as g,useCallback as _,useEffect as v,useMemo as y,useState as b}from"react";import{jsx as x,jsxs as S}from"react/jsx-runtime";import{useTranslations as C}from"next-intl";import w from"next/link";function T(){return x(a,{className:`w-full px-[12px] pt-[12px]`,children:Array.from({length:6}).map((e,t)=>S(a,{className:`w-full h-[56px] flex items-center justify-between mb-[12px]`,children:[S(a,{className:`flex items-center`,children:[x(c,{className:`w-[56px] h-[56px] rounded-[28px]`}),S(a,{className:`ml-[8px]`,children:[x(c,{className:`w-[120px] h-[18px] mb-[8px]`}),x(c,{className:`w-[72px] h-[14px]`})]})]}),x(c,{className:`w-[76px] h-[34px] rounded-[18px]`})]},`search-user-skeleton-${t}`))})}const E=g(({item:e,onUpdate:t})=>{let r=C(`components.pages.search.searchResult`),{userInfo:o}=n(),s=_(n=>{t({...e,is_following:n?1:0})},[e,t]);return S(a,{className:`w-full h-[56px] bg-bg1 flex flex-row items-center justify-between mb-[12px]`,children:[S(w,{className:`cursor-pointer flex flex-row items-center justify-center`,href:`/profile/${e.user_id}`,children:[x(a,{className:`w-[56px] h-[56px] rounded-[28px] overflow-hidden bg-bg2 relative`,children:x(i,{src:e.avatar||``,fill:!0,objectFit:`cover`,alt:e.nick_name})}),S(a,{className:`flex flex-col ml-[8px]`,children:[x(`span`,{className:`text-text1 text-[16px] leading-[24px] h-[24px] font-bold overflow-hidden max-w-[200px] line-clamp-1`,children:e.nick_name}),S(`span`,{className:`text-text2 leading-[22px] text-[14px]`,children:[e.follower_count??0,r(`searchUser.followersSuffix`)]})]})]}),o.user_id!==e.user_id&&x(h,{userId:e.user_id,hasFollow:!!e.is_following,onChange:s})]})});E.displayName=`UserItem`;const D=g(({list:n})=>{C(`components.pages.search.searchResult`);let r=f(),[i,o]=b({});v(()=>{o({})},[n]);let s=_(e=>{e.user_id&&o(t=>({...t,[e.user_id]:e.is_following?1:0}))},[]),c=y(()=>n.slice(0,3).map(e=>{let t=e.user_id||``;return!t||i[t]===void 0?e:{...e,is_following:i[t]}}),[i,n,3]),u=n.length>3,d=_(()=>{t.emit(p.EXCHANGE_SEARCH_TYPE,`user`)},[]);return c.length===0?null:S(a,{className:`w-full pt-[12px]`,children:[x(a,{className:`px-[12px]`,children:c.map((e,t)=>x(E,{item:e,onUpdate:e=>{r(()=>s(e))}},String(e.user_id??t)))}),u&&x(a,{className:`w-full flex items-center justify-center`,children:S(e,{variant:`ghost`,className:`w-fit h-[46px] leading-[46px] mx-auto mt-[-12px] text-[14px] text-text2`,onClick:d,children:[x(l,{as:`span`,children:`查看更多`}),x(m,{className:`w-[12px] h-[12px]`})]})})]})});D.displayName=`SearchUserWithLimit`;const O=g(({inputVal:e})=>{let t=C(`components.pages.search.searchResult`),n=f(),i=_(async t=>await r({data_type:2,extra_params:JSON.stringify({type:4,keywords:e}),page:t||1,page_size:20}),[e]),c=y(()=>[`searchByKeyForUser`,e,4],[e]),l=u({key:c,initialPageParam:1,async queryFn(e){return(await i(e))?.data?.users??{has_more:!1,total:0,list:[]}},getNextPageParam(e,t){if(e.has_more)return t.length+1}}),p=d(),m=_((e,t)=>{e&&p(c,n=>n&&{...n,pages:n.pages.map(n=>({...n,list:(n.list??[]).map(n=>n.user_id===e?{...n,is_following:t?1:0}:n)}))})},[p,c]),h=async e=>{if(e)try{await l.fetchNextPage()}catch(e){console.error(`获取用户列表失败`,e)}},g=(l?.data?.pages??[]).flatMap(e=>e.list??[]),v=!!(l?.isPending||l?.isFetching);return v&&g.length===0?x(T,{}):x(a,{className:`w-full px-[12px] pt-[12px]`,children:x(s,{loading:v,hasMore:l?.hasNextPage??!1,loadMore:h,empty:`nodata`,emptyText:t(`searchUser.emptyResult`),children:g.map((e,t)=>x(o,{children:x(E,{item:e,onUpdate:e=>{n(()=>{m(e.user_id||``,!!e.is_following)})}})},String(e.user_id??t)))})})});O.displayName=`SearchUserWithPagination`;const k=g(e=>e.mode===`all`?x(D,{list:e.list??[]}):x(O,{inputVal:e.inputVal??``}));k.displayName=`SearchUser`;export{k as default};
@@ -0,0 +1,2 @@
1
+
2
+ "use client";import{Button as e}from"../../ui/button.mjs";import{gContentGetRecommendVideoList as t}from"../../../service/generated/client.mjs";import{Image as n}from"../../ui/image.mjs";import{Box as r}from"../../ui/box.mjs";import{EmptyState as i}from"../../ui/empty.mjs";import{Text as a}from"../../ui/text.mjs";import{usePaginated as o}from"../../../hooks/query/use-query.mjs";import{getPostDetailPagePath as s}from"../../../utils/tools.mjs";import{apiCollectCustom as c}from"../../../utils/api-collect.mjs";import{VideoListItemSkeleton as l}from"../../common/skeleton/video-list-item-skeleton.mjs";import{useCardDecoration as u}from"../../../hooks/use-card-decoration.mjs";import d from"../../ui/rate.mjs";import{memo as f,useCallback as p,useMemo as m}from"react";import{jsx as h,jsxs as g}from"react/jsx-runtime";import{useTranslations as _}from"next-intl";import v from"next/link";const y=f(()=>h(r,{className:`w-full px-[12px] pt-[12px]`,children:Array.from({length:3}).map((e,t)=>h(l,{},`search-video-skeleton-${t}`))}));y.displayName=`SearchVideoListSkeleton`;const b=f(({item:e})=>{let{getCalculationScore:t}=u();return g(v,{className:`w-full flex items-center justify-between mb-[12px] pb-[12px] border-b border-line1 cursor-pointer px-[12px]`,href:s({id:e.video_id,contentType:0}),onClick:()=>{e.video_id},children:[h(r,{className:`w-[76px] h-[102px] shrink-0 rounded-[8px] overflow-hidden relative bg-bg2`,children:h(n,{src:e.img_y||e.img_x||``,fill:!0,objectFit:`cover`,alt:e.name||``})}),g(r,{className:`flex-1 min-w-0 flex flex-col ml-[12px]`,children:[h(`span`,{className:`leading-[26px] text-text1 text-[18px] font-bold max-w-[200px] line-clamp-1 mb-[4px]`,children:e.name||``}),g(r,{className:`flex items-center`,style:{transform:`scale(0.6)`,transformOrigin:`left center`},children:[h(d,{allowHalf:!0,value:t({score:String(e.score??0)})}),h(`span`,{className:`ml-[8px] text-[24px] text-[#F59E0B] font-bold leading-[24px]`,children:e.score?(Number(e.score)/10).toFixed(1):0})]}),g(r,{className:`w-full mt-[4px] flex items-center shrink-0 pr-[12px]`,children:[h(r,{className:`w-fit h-[20px] leading-[20px] px-[6px] text-text3 text-[12px] bg-line1 rounded-[4px] shrink-0 mr-[10px]`,children:e.group_name}),h(`span`,{className:`text-text2 text-[14px] leading-[22px] flex-1 min-w-0 line-clamp-1`,children:e.description})]})]})]})});b.displayName=`VideoItem`;const x=f(({list:e})=>h(r,{className:`w-full px-[12px] pt-[12px]`,children:e.map((e,t)=>h(b,{item:e},String(e.video_id??t)))}));x.displayName=`VideoListContent`;const S=f(({searchType:n,inputVal:s})=>{let c=_(`components.pages.search.searchResult`),l=p(async e=>await t({data_type:2,extra_params:JSON.stringify({type:n===`video`?3:2,keywords:s}),page:e||1,page_size:20}),[s,n]),u=o({key:m(()=>[`searchByKeyForVideoInfo`,s,n===`video`?3:2],[s,n]),initialPageParam:1,async queryFn(e){return(await l(e))?.data?.videos??{has_more:!1,total:0,list:[]}},getNextPageParam(e,t){if(e.has_more)return t.length+1}}),d=m(()=>{let e=u.data?.pages??[],t=[];for(let n of e){let e=n.list??[];t.push(...e)}return t},[u.data?.pages]),f=u.isPending||u.isFetching,v=f&&d.length===0,b=async e=>{if(e!==!1)try{await u.fetchNextPage()}catch(e){console.error(`获取内容列表失败`,e)}};return v?h(y,{}):d.length===0?h(i,{type:`no-content`,text:c(`searchVideoInfo.noRelevantContent`),className:`mt-[12px]`}):g(r,{className:`w-full`,children:[h(x,{list:d}),u.hasNextPage&&h(r,{className:`w-full px-[12px] py-[12px] flex justify-center`,children:h(e,{variant:`ghost`,size:`sm`,onClick:()=>b(),disabled:f,children:h(a,{as:`span`,children:c(f?`searchVideoSearch.loading`:`searchVideoSearch.loadMore`)})})})]})});S.displayName=`SearchVideoWithFetch`;const C=f(e=>`list`in e&&e.list!==void 0?h(x,{list:e.list}):h(S,{searchType:e.searchType,inputVal:e.inputVal}));C.displayName=`SearchVideo`;export{C as default};
@@ -6,7 +6,7 @@ import * as class_variance_authority_types0 from "class-variance-authority/types
6
6
  //#region components/ui/badge.d.ts
7
7
  /** badgeVariants 工具定义。 */
8
8
  declare const badgeVariants: (props?: ({
9
- variant?: "link" | "default" | "destructive" | "secondary" | "outline" | "ghost" | null | undefined;
9
+ variant?: "default" | "link" | "destructive" | "secondary" | "outline" | "ghost" | null | undefined;
10
10
  } & class_variance_authority_types0.ClassProp) | undefined) => string;
11
11
  /** Badge 组件。 */
12
12
  declare function Badge({
@@ -7,8 +7,8 @@ import * as class_variance_authority_types0 from "class-variance-authority/types
7
7
  //#region components/ui/button.d.ts
8
8
  /** buttonVariants 工具定义。 */
9
9
  declare const buttonVariants: (props?: ({
10
- variant?: "link" | "default" | "destructive" | "secondary" | "outline" | "ghost" | null | undefined;
11
- size?: "default" | "xs" | "sm" | "lg" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
10
+ variant?: "default" | "link" | "destructive" | "secondary" | "outline" | "ghost" | null | undefined;
11
+ size?: "default" | "icon" | "xs" | "sm" | "lg" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
12
12
  } & class_variance_authority_types0.ClassProp) | undefined) => string;
13
13
  /** Button 组件属性。 */
14
14
  type ButtonProps = Button.Props & VariantProps<typeof buttonVariants> & {
@@ -1,11 +1,11 @@
1
1
 
2
2
  import * as React from "react";
3
3
  import * as react_jsx_runtime0 from "react/jsx-runtime";
4
- import Image from "next/image";
4
+ import NextImage from "next/image";
5
5
 
6
6
  //#region components/ui/image.d.ts
7
7
  /** BaseImageProps 属性定义。 */
8
- type BaseImageProps = Omit<React.ComponentPropsWithoutRef<typeof Image>, 'className' | 'src' | 'alt' | 'width' | 'height' | 'loading' | 'priority' | 'fill' | 'style'>;
8
+ type BaseImageProps = Omit<React.ComponentPropsWithoutRef<typeof NextImage>, 'className' | 'src' | 'alt' | 'width' | 'height' | 'loading' | 'priority' | 'fill' | 'style'>;
9
9
  type CommonImageProps = BaseImageProps & {
10
10
  /** 图片地址,支持普通 URL、默认资源路径和加密地址。 */src: string; /** 图片替代文本。 */
11
11
  alt?: string; /** 图片类名。 */
@@ -27,6 +27,6 @@ type ImagePropsWithSize = CommonImageProps & {
27
27
  /** ImageProps 属性定义。 */
28
28
  type ImageProps = ImagePropsWithFill | ImagePropsWithSize;
29
29
  /** 图片组件:支持 bnc 解密、默认资源域名拼接与错误占位。 */
30
- declare function Image$1(props: ImageProps): react_jsx_runtime0.JSX.Element;
30
+ declare function Image(props: ImageProps): react_jsx_runtime0.JSX.Element;
31
31
  //#endregion
32
- export { BaseImageProps, CommonImageProps, Image$1 as Image, ImageProps, ImagePropsWithFill, ImagePropsWithSize };
32
+ export { BaseImageProps, CommonImageProps, Image, ImageProps, ImagePropsWithFill, ImagePropsWithSize };
@@ -96,6 +96,7 @@ declare function PopoverContent({
96
96
  alignOffset,
97
97
  side,
98
98
  sideOffset,
99
+ style,
99
100
  ...props
100
101
  }: PopoverContentProps): react_jsx_runtime0.JSX.Element;
101
102
  /** PopoverHeader 组件。 */
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{cn as e}from"../../utils/cn.mjs";import"react";import{jsx as t}from"react/jsx-runtime";import{Popover as n}from"@base-ui/react/popover";function r({...e}){return t(n.Root,{"data-slot":`popover`,...e})}function i({...e}){return t(n.Trigger,{"data-slot":`popover-trigger`,...e})}function a({className:r,align:i=`center`,alignOffset:a=0,side:o=`bottom`,sideOffset:s=4,...c}){return t(n.Portal,{children:t(n.Positioner,{align:i,alignOffset:a,side:o,sideOffset:s,className:`isolate z-50`,children:t(n.Popup,{"data-slot":`popover-content`,className:e(`bg-popover text-popover-foreground data-[open]:animate-in data-[closed]:animate-out data-[closed]:fade-out-0 data-[open]:fade-in-0 data-[closed]:zoom-out-95 data-[open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-center ring-foreground/10 flex flex-col gap-2.5 rounded-lg p-2.5 text-sm shadow-md ring-1 duration-100 z-50 w-72 outline-none`,r),...c})})})}function o({className:n,...r}){return t(`div`,{"data-slot":`popover-header`,className:e(`flex flex-col gap-0.5 text-sm`,n),...r})}function s({className:r,...i}){return t(n.Title,{"data-slot":`popover-title`,className:e(`font-medium`,r),...i})}function c({className:r,...i}){return t(n.Description,{"data-slot":`popover-description`,className:e(`text-muted-foreground`,r),...i})}export{r as Popover,a as PopoverContent,c as PopoverDescription,o as PopoverHeader,s as PopoverTitle,i as PopoverTrigger};
2
+ "use client";import{cn as e}from"../../utils/cn.mjs";import"react";import{jsx as t}from"react/jsx-runtime";import{Popover as n}from"@base-ui/react/popover";function r({...e}){return t(n.Root,{"data-slot":`popover`,...e})}function i({...e}){return t(n.Trigger,{"data-slot":`popover-trigger`,...e})}function a({className:r,align:i=`center`,alignOffset:a=0,side:o=`bottom`,sideOffset:s=4,style:c,...l}){let u={"--tw-ring-offset-shadow":`0 0 #0000`,"--tw-ring-shadow":`0 0 #0000`};return t(n.Portal,{children:t(n.Positioner,{align:i,alignOffset:a,side:o,sideOffset:s,className:`isolate z-50`,children:t(n.Popup,{"data-slot":`popover-content`,className:e(`bg-popover text-popover-foreground data-[open]:animate-in data-[closed]:animate-out data-[closed]:fade-out-0 data-[open]:fade-in-0 data-[closed]:zoom-out-95 data-[open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-center ring-foreground/10 flex flex-col gap-2.5 rounded-lg p-2.5 text-sm shadow-md ring-1 duration-100 z-50 w-72 outline-none`,r),style:{...u,...c},...l})})})}function o({className:n,...r}){return t(`div`,{"data-slot":`popover-header`,className:e(`flex flex-col gap-0.5 text-sm`,n),...r})}function s({className:r,...i}){return t(n.Title,{"data-slot":`popover-title`,className:e(`font-medium`,r),...i})}function c({className:r,...i}){return t(n.Description,{"data-slot":`popover-description`,className:e(`text-muted-foreground`,r),...i})}export{r as Popover,a as PopoverContent,c as PopoverDescription,o as PopoverHeader,s as PopoverTitle,i as PopoverTrigger};
@@ -1,2 +1,2 @@
1
1
 
2
- const e={ITEM_INFO_CHANGE:`ITEM_INFO_CHANGE`,DOCUMENT_CLICK:`DOCUMENT_CLICK`,DOCUMENT_TOUCH:`DOCUMENT_TOUCH`,DOCUMENT_SCROLL:`DOCUMENT_SCROLL`,SHOW_LOGIN_POPUP:`SHOW_LOGIN_POPUP`,WAIT_LOADING_SHOW:`WAIT_LOADING_SHOW`,SHOW_POPUP_VIDEO:`SHOW_POPUP_VIDEO`,EXCHANGE_SEARCH_TYPE:`EXCHANGE_SEARCH_TYPE`,CHANNEL_LIST_CHANGE:`CHANNEL_LIST_CHANGE`,USER_INFO_LOAD_COMPLETE:`USER_INFO_LOAD_COMPLETE`,SEARCH_HISTORY_UPDATE:`SEARCH_HISTORY_UPDATE`};export{e as eventKey};
2
+ const e={ITEM_INFO_CHANGE:`ITEM_INFO_CHANGE`,DOCUMENT_CLICK:`DOCUMENT_CLICK`,DOCUMENT_TOUCH:`DOCUMENT_TOUCH`,DOCUMENT_SCROLL:`DOCUMENT_SCROLL`,SHOW_LOGIN_POPUP:`SHOW_LOGIN_POPUP`,WAIT_LOADING_SHOW:`WAIT_LOADING_SHOW`,SHOW_POPUP_VIDEO:`SHOW_POPUP_VIDEO`,EXCHANGE_SEARCH_TYPE:`EXCHANGE_SEARCH_TYPE`,EXCHANGE_SEARCH_SORT:`EXCHANGE_SEARCH_SORT`,CHANNEL_LIST_CHANGE:`CHANNEL_LIST_CHANGE`,USER_INFO_LOAD_COMPLETE:`USER_INFO_LOAD_COMPLETE`,SEARCH_HISTORY_UPDATE:`SEARCH_HISTORY_UPDATE`};export{e as eventKey};
package/dist/pages.d.mts CHANGED
@@ -16,10 +16,12 @@ import { UserProfilePage } from "./components/pages/profile/index.mjs";
16
16
  import { PublishPage } from "./components/pages/publish/page.mjs";
17
17
  import "./components/pages/publish/index.mjs";
18
18
  import { SearchPage } from "./components/pages/search/index.mjs";
19
+ import { SearchResultPageClient } from "./components/pages/search-result/page-client.mjs";
20
+ import "./components/pages/search-result/index.mjs";
19
21
  import { SettingsPage } from "./components/pages/settings/index.mjs";
20
22
  import { UserFollowPage } from "./components/pages/user-follow/index.mjs";
21
23
  import { VideoDetailMaterialConfig } from "./components/pages/video-detail/video-detail-client.mjs";
22
24
  import { VideoDetailPage } from "./components/pages/video-detail/page.mjs";
23
25
  import "./components/pages/video-detail/index.mjs";
24
26
  import { VideoListPage } from "./components/pages/video-list/index.mjs";
25
- export { CollectionAddPage, CollectionCreatePage, CollectionDetailPage, EditPage, FansPage, FeedSeriesPage, FeedbackPage, FollowedPage, FullscreenFeedPage, HomePage, PostDetailPage, PublishPage, SearchPage, SettingsPage, UserFollowPage, UserProfilePage, type VideoDetailMaterialConfig, VideoDetailPage, VideoListPage };
27
+ export { CollectionAddPage, CollectionCreatePage, CollectionDetailPage, EditPage, FansPage, FeedSeriesPage, FeedbackPage, FollowedPage, FullscreenFeedPage, HomePage, PostDetailPage, PublishPage, SearchPage, SearchResultPageClient as SearchResultPage, SettingsPage, UserFollowPage, UserProfilePage, type VideoDetailMaterialConfig, VideoDetailPage, VideoListPage };
package/dist/pages.mjs CHANGED
@@ -1,2 +1,2 @@
1
1
 
2
- import{FansPage as e}from"./components/pages/(follow)/fans/index.mjs";import{FollowedPage as t}from"./components/pages/(follow)/followed/index.mjs";import{CollectionAddPage as n}from"./components/pages/collection-add/index.mjs";import{CollectionCreatePage as r}from"./components/pages/collection-create/index.mjs";import{CollectionDetailPage as i}from"./components/pages/collection-detail/index.mjs";import{EditPage as a}from"./components/pages/edit/index.mjs";import o from"./components/pages/feed-series/page.mjs";import{FeedbackPage as s}from"./components/pages/feedback/index.mjs";import{FullscreenFeedPage as c}from"./components/pages/fullscreen-feed/index.mjs";import{HomePage as l}from"./components/pages/home/index.mjs";import u from"./components/pages/post-detail/page.mjs";import{UserProfilePage as d}from"./components/pages/profile/index.mjs";import f from"./components/pages/publish/page.mjs";import{SearchPage as p}from"./components/pages/search/index.mjs";import{SettingsPage as m}from"./components/pages/settings/index.mjs";import{UserFollowPage as h}from"./components/pages/user-follow/index.mjs";import g from"./components/pages/video-detail/page.mjs";import{VideoListPage as _}from"./components/pages/video-list/index.mjs";export{n as CollectionAddPage,r as CollectionCreatePage,i as CollectionDetailPage,a as EditPage,e as FansPage,o as FeedSeriesPage,s as FeedbackPage,t as FollowedPage,c as FullscreenFeedPage,l as HomePage,u as PostDetailPage,f as PublishPage,p as SearchPage,m as SettingsPage,h as UserFollowPage,d as UserProfilePage,g as VideoDetailPage,_ as VideoListPage};
2
+ import{FansPage as e}from"./components/pages/(follow)/fans/index.mjs";import{FollowedPage as t}from"./components/pages/(follow)/followed/index.mjs";import{CollectionAddPage as n}from"./components/pages/collection-add/index.mjs";import{CollectionCreatePage as r}from"./components/pages/collection-create/index.mjs";import{CollectionDetailPage as i}from"./components/pages/collection-detail/index.mjs";import{EditPage as a}from"./components/pages/edit/index.mjs";import o from"./components/pages/feed-series/page.mjs";import{FeedbackPage as s}from"./components/pages/feedback/index.mjs";import{FullscreenFeedPage as c}from"./components/pages/fullscreen-feed/index.mjs";import{HomePage as l}from"./components/pages/home/index.mjs";import u from"./components/pages/post-detail/page.mjs";import{UserProfilePage as d}from"./components/pages/profile/index.mjs";import f from"./components/pages/publish/page.mjs";import{SearchPage as p}from"./components/pages/search/index.mjs";import m from"./components/pages/search-result/page-client.mjs";import{SettingsPage as h}from"./components/pages/settings/index.mjs";import{UserFollowPage as g}from"./components/pages/user-follow/index.mjs";import _ from"./components/pages/video-detail/page.mjs";import{VideoListPage as v}from"./components/pages/video-list/index.mjs";export{n as CollectionAddPage,r as CollectionCreatePage,i as CollectionDetailPage,a as EditPage,e as FansPage,o as FeedSeriesPage,s as FeedbackPage,t as FollowedPage,c as FullscreenFeedPage,l as HomePage,u as PostDetailPage,f as PublishPage,p as SearchPage,m as SearchResultPage,h as SettingsPage,g as UserFollowPage,d as UserProfilePage,_ as VideoDetailPage,v as VideoListPage};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@funhub/platform",
3
3
  "type": "module",
4
- "version": "0.1.47",
4
+ "version": "0.1.49",
5
5
  "private": false,
6
6
  "sideEffects": [
7
7
  "**/*.css"