1 2!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="bc8b3594-f2aa-5aeb-bb09-d0195c5fbba5")}catch(e){}}(); 3(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,788699,e=>{"use strict";let t=(0,e.i(475254).default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",0,t],788699)},132153,e=>{"use strict";var t=e.i(453209);e.s(["Delete",()=>t.default])},17849,e=>{"use strict";var t=e.i(766388);e.s(["Dialogue",()=>t.default])},543749,e=>{"use strict";var t=e.i(830830);e.s(["DotsHorizontalBig",()=>t.default])},405106,e=>{"use strict";var t=e.i(831943);e.s(["Duplicate",()=>t.default])},360864,e=>{"use strict";var t=e.i(971159);e.s(["Send",()=>t.default])},752912,e=>{"use strict";var t=e.i(742842);e.s(["Unpublish",()=>t.default])},776639,e=>{"use strict";var t=e.i(843476),s=e.i(271645),a=e.i(326999),n=e.i(975157);let i=a.Root;a.Trigger;let l=a.Portal,r=s.forwardRef(({className:e,...s},i)=>(0,t.jsx)(a.Overlay,{ref:i,className:(0,n.cn)("fixed inset-0 z-[200] bg-neutral-1000/70 backdrop-blur-lg",e),...s}));r.displayName=a.Overlay.displayName;let o=s.forwardRef(({className:e,children:s,style:i,overlayClassName:o,...c},d)=>(0,t.jsxs)(l,{children:[(0,t.jsx)(r,{className:o}),(0,t.jsx)(a.Content,{ref:d,className:(0,n.cn)("fixed inset-0 z-[200] flex items-center justify-center p-4","data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95","data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95","duration-200","overflow-y-auto outline-none"),...c,children:(0,t.jsx)("div",{className:(0,n.cn)("w-full max-w-screen-lg overflow-hidden rounded-lg border p-6 shadow-lg sm:rounded-lg","my-auto",e),style:i,children:s})})]}));o.displayName=a.Content.displayName;let c=({className:e,...s})=>(0,t.jsx)("div",{className:(0,n.cn)("flex flex-col space-y-1.5 text-center sm:text-left",e),...s});c.displayName="DialogHeader";let d=({className:e,...s})=>(0,t.jsx)("div",{className:(0,n.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...s});d.displayName="DialogFooter";let m=s.forwardRef(({className:e,...s},i)=>(0,t.jsx)(a.Title,{ref:i,className:(0,n.cn)("text-lg font-semibold leading-none tracking-tight",e),...s}));m.displayName=a.Title.displayName;let x=s.forwardRef(({className:e,...s},i)=>(0,t.jsx)(a.Description,{ref:i,className:(0,n.cn)("text-sm text-muted-foreground",e),...s}));x.displayName=a.Description.displayName,e.s(["Dialog",0,i,"DialogContent",0,o,"DialogDescription",0,x,"DialogFooter",0,d,"DialogHeader",0,c,"DialogTitle",0,m])},772436,e=>{"use strict";var t=e.i(843476),s=e.i(271645),a=e.i(248425),n=Object.defineProperty,i=(e,t)=>n(e,"name",{value:t,configurable:!0}),l="horizontal",r=["horizontal","vertical"],o=s.forwardRef(i(function(e,s){let{decorative:n,orientation:i=l,...r}=e,o=c(i)?i:l;return(0,t.jsx)(a.Primitive.div,{"data-orientation":o,...n?{role:"none"}:{"aria-orientation":"vertical"===o?o:void 0,role:"separator"},...r,ref:s})},"Separator"));function c(e){return r.includes(e)}i(c,"isValidOrientation");var d=e.i(975157);let m=s.forwardRef(({className:e,orientation:s="horizontal",decorative:a=!0,...n},i)=>(0,t.jsx)(o,{ref:i,decorative:a,orientation:s,className:(0,d.cn)("shrink-0 bg-border","horizontal"===s?"h-[1px] w-full":"h-full w-[1px]",e),...n}));m.displayName=o.displayName,e.s(["Separator",0,m],772436)},51054,e=>{"use strict";var t=e.i(843476),s=e.i(45747),a=e.i(178559),n=e.i(233025),i=e.i(514089),l=e.i(844966);e.s(["NpcLikeButton",0,({npcId:e,isLikedByCurrentUser:r,likeCount:o,className:c,variant:d="default",numberClassName:m})=>{let{data:x,complete:u}=(0,s.useFragment)({fragment:a.NpcLikeFieldsFragmentDoc,fragmentName:"NpcLikeFields",from:`
3NpcModel:${e}`}),p=u?x.isLikedByCurrentUser:r,h=u?x.likeCount:o,{isLoading:f,handleLikeToggle:g}=(({npcId:e,isLikedByCurrentUser:t,likeCount:s})=>{let{requireAuth:n}=(0,l.useRequireAuth)(),[r,{loading:o}]=(0,i.useMutation)(a.LikeNpcDocument,{optimisticResponse:{likeNpc:{id:e,isLikedByCurrentUser:!0,likeCount:s+1}}}),[c,{loading:d}]=(0,i.useMutation)(a.UnlikeNpcDocument,{optimisticResponse:{unlikeNpc:{id:e,isLikedByCurrentUser:!1,likeCount:Math.max(0,s-1)}},update:(e,{data:t})=>{t?.unlikeNpc&&e.modify({fields:{getLikedNpcs(e={data:[],metadata:{}}){let s=e.data.filter(e=>e.__ref!==`NpcModel:${t.unlikeNpc.id}`);return{...e,data:s,metadata:{...e.metadata,totalCount:Math.max(0,(e.metadata.totalCount||0)-1)}}}}})}}),m=n(async s=>{s.stopPropagation(),s.preventDefault();try{t?await c({variables:{npcId:e}}):await r({variables:{npcId:e}})}catch(e){console.error("Error toggling like:",e)}});return{isLikedByCurrentUser:t,likeCount:s,isLoading:o||d,handleLikeToggle:m}})({npcId:e,isLikedByCurrentUser:p,likeCount:h});return(0,t.jsx)(n.LikeButton,{isLikedByCurrentUser:p,likeCount:h,isLoading:f,onClick:g,className:c,variant:d,numberClassName:m})}],51054)},340342,e=>{"use strict";var t=e.i(843476),s=e.i(657688),a=e.i(794883),n=e.i(975157),i=e.i(271645);e.s(["AvatarImage",0,({avatar:e,alt:l="Character image",className:r,priority:o})=>{let c=(0,i.useRef)(null),{src:d,isGif:m,setIsLoading:x,onError:u,isLoading:p,placeholderUrl:h}=(0,a.useOptimizedImage)({url:e?.url,contentType:e?.contentType,quality:75,width:500});return(0,t.jsxs)("div",{ref:c,className:"relative size-full opacity-0 [&.loaded]:opacity-100",children:[(0,t.jsx)(s.default,{src:d,onLoad:()=>{c.current?.classList.add("loaded"),x(!1)},onError:u,width:352,height:500,priority:o&&!m,fetchPriority:o&&!m?"high":"auto",unoptimized:!0,loading:o?void 0:"lazy",className:(0,n.cn)("object-cover object-top w-full h-full",r),alt:l,style:{backgroundColor:"black"}}),h&&p&&(0,t.jsx)("div",{className:"absolute inset-0",children:(0,t.jsx)(s.default,{src:h,onLoad:()=>{c.current?.classList.add("loaded")},width:352,height:500,priority:o,fetchPriority:o?"high":"auto",loading:o?void 0:"lazy",unoptimized:!0,className:(0,n.cn)("object-cover object-top w-full h-full",r),alt:l,style:{backgroundColor:"black"}},`${d}-placeholder`)})]},e?.url)}])},266628,e=>{"use strict";var t=e.i(843476),s=e.i(975157),a=e.i(54963);e.i(322850);var n=e.i(543749),i=e.i(857876),l=e.i(931070),r=e.i(522016),o=e.i(690861),c=e.i(51054),d=e.i(340342),m=e.i(690386),x=e.i(162790),u=e.i(271645),p=e.i(17849),h=e.i(796770);let f=({npcId:e,npcName:s,author:a,authorId:n,avatar:i,description:l,isLikedByCurrentUser:r,likeCount:o,interactions:c,commentsCount:d,onOpenDetail:m})=>{let[f,g]=(0,u.useState)(!1);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(x.Button,{type:"button",variant:"secondary",size:"small",icon:(0,t.jsx)(p.Dialogue,{className:"size-4"}),className:"shrink-0",onClick:e=>{(e.preventDefault(),e.stopPropagation(),m)?m({scrollToComments:!0}):g(!0)},"aria-label":"Comments",children:`(${d})`}),!m&&(0,t.jsx)(h.CommentsSection,{npcId:e,creator:a,interactions:c,showNpcInfo:!0,npcName:s,npcAvatar:i,description:l,isLikedByCurrentUser:r,likeCount:o,npcAuthorId:n,firstComment:null,commentsCount:d,isCommentsModalOpen:f,setIsCommentsModalOpen:g,hideTrigger:!0})]})};var g=e.i(584171);e.s(["Card",0,({author:e,authorId:u,className:p,description:h,editedAt:N,avatar:j,isLikedByCurrentUser:v,disabledLike:b,likeCount:y,link:C,onClick:k,onDelete:w,onDuplicate:D,onEdit:A,onUnpublish:L,publishedAt:I,priority:R=!1,size:z="2xl:w-[355px] 2xl:h-[460px] w-[260px] h-[320px]",title:S,variant:M,category:B,views:_,id:T,commentsCount:U=0,preventNavigation:F=!1,onOpenDetail:P,onStartChatClick:O,compactOnMobile:E=!1,isAdult:q=!1})=>{let H=()=>(0,t.jsxs)("div",{className:"flex items-center gap-2 text-2xs text-neutral-200 md:gap-4 md:text-xs",children:[(0,t.jsx)(c.NpcLikeButton,{npcId:T,isLikedByCurrentUser:v||!1,likeCount:y||0,variant:"small",numberClassName:"text-xs",className:(0,s.cn)(("published"===M||b)&&"pointer-events-none")}),(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs text-neutral-200",children:[(0,t.jsx)(i.View,{}),(0,t.jsx)("p",{children:_})]})]}),$=(0,t.jsxs)("div",{className:(0,s.cn)("flex items-center gap-3","max-md:relative max-md:mt-4 max-md:translate-y-0 max-md:opacity-100 max-md:pointer-events-auto","md:absolute md:inset-x-4 md:bottom-4","md:translate-y-2 md:opacity-0 md:pointer-events-none","md:transition-all md:duration-300 md:ease-out","md:group-hover:translate-y-0 md:group-hover:opacity-100 md:group-hover:pointer-events-auto","md:group-focus-within:translate-y-0 md:group-focus-within:opacity-100 md:group-focus-within:
3pointer-events-auto"),children:[(0,t.jsx)(f,{npcId:T,npcName:S,author:e||"",authorId:u,avatar:j,description:h,isLikedByCurrentUser:v||!1,likeCount:y||0,interactions:_||0,commentsCount:U,onOpenDetail:P}),(0,t.jsx)(x.Button,{className:"w-full",type:"button",variant:"primary",size:"small",onClick:e=>{O&&(e.preventDefault(),e.stopPropagation(),O(e))},children:"Start chat"})]}),K=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(d.AvatarImage,{avatar:j,alt:S,priority:R,className:(0,s.cn)("transition-transform duration-300 md:group-hover:scale-105",z)}),"discover"===M?(0,t.jsxs)("div",{className:"absolute inset-0 z-[2]",children:[(0,t.jsx)("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-0 bg-[linear-gradient(180deg,rgba(0,0,0,0.8)_0%,rgba(0,0,0,0.08)_15%,rgba(0,0,0,0)_32%,rgba(0,0,0,0)_62%,rgba(0,0,0,0.8)_100%)]"}),(0,t.jsx)("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-0 bg-[linear-gradient(180deg,rgba(0,0,0,0)_0%,rgba(0,0,0,0)_35%,rgba(0,0,0,0.4)_58%,rgba(0,0,0,0.8)_82%,rgba(0,0,0,0.95)_100%)] opacity-100 md:opacity-0 md:transition-opacity md:duration-300 md:group-focus-within:opacity-100 md:group-hover:opacity-100"}),(0,t.jsxs)("div",{className:(0,s.cn)("absolute inset-x-3 top-3 z-[3] flex items-center justify-between md:right-4 md:top-4",!B&&"justify-end"),onClick:e=>e.stopPropagation(),children:[B&&(0,t.jsx)(m.Badge,{variant:"glass",label:B,className:(0,s.cn)("normal-case h-[26px] md:h-[26px] text-2xs")}),H()]}),(0,t.jsx)("div",{className:"flex h-full flex-col justify-end",children:(0,t.jsxs)("div",{className:"relative overflow-hidden px-3 pb-4 pt-12 md:px-4",children:[(0,t.jsx)("div",{className:(0,s.cn)("max-md:transition-none","md:transition-transform md:duration-300 md:ease-out","md:group-hover:-translate-y-11 md:group-focus-within:-translate-y-11"),children:(0,t.jsxs)("div",{className:"grid",children:[(0,t.jsxs)("h3",{className:(0,s.cn)("text-2xl font-semibold text-neutral-50 md:text-base flex items-center gap-1",E&&"max-md:text-s"),children:[(0,t.jsx)("span",{className:(0,s.cn)("min-w-0",E&&"max-md:truncate"),children:S}),q&&(0,t.jsx)(m.Badge,{variant:"red",label:"18+",className:"h-[22px] shrink-0 px-2 py-0.5 text-2xs"})]}),e&&(0,t.jsx)(a.AuthorLink,{nickname:e,nested:!0,className:"text-2xs text-neutral-400"}),h&&(0,t.jsx)("div",{className:(0,s.cn)("grid transition-[grid-template-rows] duration-300 ease-out","max-md:grid-rows-[1fr]","md:grid-rows-[0fr] md:group-hover:grid-rows-[1fr] md:group-focus-within:grid-rows-[1fr]"),children:(0,t.jsx)("div",{className:"overflow-hidden",children:(0,t.jsx)(g.RichTextContent,{className:"pt-1 text-2xs text-neutral-200 md:text-xs [&_.tiptap]:line-clamp-2",content:h,openLinks:!1})})})]})}),$]})})]}):(0,t.jsxs)(t.Fragment,{children:[q&&(0,t.jsx)(m.Badge,{variant:"red",label:"18+",className:"absolute right-3 top-3 z-[3] h-[22px] px-2 py-0.5 text-2xs"}),"my-creation"!==M&&(0,t.jsx)("div",{className:(0,s.cn)("absolute top-0 z-[2] flex w-full justify-between gap-3 p-3 lg:hidden",q&&"pr-14"),children:(0,t.jsx)("div",{className:"grid",children:(0,t.jsx)("h3",{className:"truncate text-base text-neutral-50",children:S})})}),(0,t.jsx)("div",{className:"absolute inset-x-0 bottom-0 grid h-[210px] items-end bg-gradient-to-t from-black/80 to-transparent px-3 py-2",children:(0,t.jsxs)("div",{className:(0,s.cn)("grid"),children:[(0,t.jsx)("div",{className:"grid grid-cols-[1fr_auto] items-center justify-between pb-1",children:(0,t.jsx)("h3",{className:(0,s.cn)("truncate text-m text-neutral-50","my-creation"===M?"block":"hidden lg:block"),children:S})}),"my-creation"===M&&(0,t.jsxs)("p",{className:"text-xs text-neutral-400",children:["Last edit:"," ",N?o.DateService.fromMillis(Number(N)).toFormat("d MMM yyyy"):""]}),"published"===M&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("p",{className:"hidden pb-2 text-xs text-neutral-400 lg:block",children:["Published:"," ",I?o.DateService.fromMillis(Number(I)).toFormat("d MMM yyyy"):""]}),H()]})]})})]})]});return(0,t.jsxs)("div",{className:(0,s.cn)("bg-neutral-1000 group relative cursor-pointer overflow-hidden rounded-lg border border-white/10",z,p),children:[C&&!F?(0,t.jsx)(r.default,{onClick:()=>k?.(T),href:C,className:"block size-full",children:K}):(0,t.jsx)("div",{className:"block size-full border-none p-0 text-left outline-0",onClick:()=>k?.(T),children:K}),"discover"!==M&&"preview"!==M&&(0,t.jsx)("div",{className:(0,s.cn)("absolute bottom-3 right-3 z-10","my-creation"===M?"block":"hidden lg:block"),children:(0,t.jsx)(l.NpcActions,{onEdit:()=>A?.(T,S),onDuplicate:()=>
3D?.(T,S),onDelete:()=>w?.(T,S),onUnpublish:()=>L?.(T),customTrigger:(0,t.jsx)(n.DotsHorizontalBig,{className:"size-10 rounded-md bg-neutral-800 p-2 text-neutral-50 transition-colors xl:hover:bg-neutral-750"}),variant:M})})]})}],266628)},931070,e=>{"use strict";var t=e.i(843476);e.i(322850);var s=e.i(132153),a=e.i(543749),n=e.i(405106),i=e.i(752912),l=e.i(975157),r=e.i(769210),o=e.i(788699),c=e.i(271645);e.s(["NpcActions",0,({customTrigger:e,onDelete:d,onDuplicate:m,onEdit:x,onUnpublish:u,variant:p})=>{let h=(0,c.useRef)(null),f=e=>{e(),h.current?.close()};return(0,t.jsx)(r.ContextMenu,{ref:h,placement:"top-end",trigger:e||(0,t.jsx)(a.DotsHorizontalBig,{className:"size-10 rounded-sm bg-[#222523]/60 p-2 text-neutral-50 transition-colors hover:bg-[#222523]/80"}),contentClassName:(0,l.cn)("grid grid-rows-[28px_28px_28px] gap-1 bg-neutral-800 border border-neutral-700 rounded-sm py-2 text-neutral-50 min-w-[130px]","published"===p&&"grid-rows-1"),minAxis:8,children:"my-creation"===p?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("button",{onClick:()=>m&&f(m),className:"flex items-center gap-4 px-4 transition-colors hover:bg-neutral-700",children:[(0,t.jsx)(n.Duplicate,{}),(0,t.jsx)("span",{className:"text-xs",children:"Duplicate"})]}),(0,t.jsxs)("button",{onClick:()=>x&&f(x),className:"flex items-center gap-4 px-4 transition-colors hover:bg-neutral-700",children:[(0,t.jsx)(o.Pencil,{className:"size-4"}),(0,t.jsx)("span",{className:"text-xs",children:"Rename"})]}),(0,t.jsxs)("button",{onClick:()=>d&&f(d),className:"flex items-center gap-4 px-4 text-red-600 transition-colors hover:bg-neutral-700",children:[(0,t.jsx)(s.Delete,{className:"size-4"}),(0,t.jsx)("span",{className:"text-xs",children:"Delete"})]})]}):(0,t.jsxs)("button",{onClick:()=>u&&f(u),className:"flex items-center gap-4 px-4 transition-colors hover:bg-neutral-700",children:[(0,t.jsx)(i.Unpublish,{}),(0,t.jsx)("span",{className:"text-xs",children:"Unpublish"})]})})}])},584171,e=>{"use strict";var t=e.i(843476),s=e.i(271645),a=e.i(494499),n=e.i(975157),i=e.i(689019),l=e.i(3622);e.s(["RichTextContent",0,({className:e,content:r="",openLinks:o=!0})=>{let c=(0,a.useEditor)({extensions:(0,l.createRichTextExtensions)({openLinksOnClick:o}),content:r,contentType:"markdown",editable:!1,immediatelyRender:!1,editorProps:{attributes:{class:"tiptap"}}});return((0,s.useEffect)(()=>{c&&r!==c.getMarkdown()&&c.commands.setContent(r,{contentType:"markdown",emitUpdate:!1})},[r,c]),r)?(0,t.jsx)(a.EditorContent,{className:(0,n.cn)(i.RICH_TEXT_PROSE_CLASS,!o&&"[&_.tiptap_a]:pointer-events-none [&_.tiptap_a]:cursor-default",e),editor:c}):null}])},326991,e=>{"use strict";var t=e.i(843476),s=e.i(271645),a=e.i(532181),n=e.i(975157),i=e.i(162790),l=e.i(584171);e.s(["TruncateRichText",0,({className:e,content:r,maxLines:o=10})=>{let[c,d]=(0,s.useState)(!1),m=(0,s.useRef)(null),x=(0,s.useRef)(null),[u,p]=(0,s.useState)("auto"),[h,f]=(0,s.useState)(!1),g=20*o;return((0,s.useEffect)(()=>{m.current&&x.current&&requestAnimationFrame(()=>{if(!m.current||!x.current)return;let e=x.current.scrollHeight,t=e>g+2;f(t),c?p(e):t?p(g):p(e)})},[r,c,g]),r)?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(a.motion.div,{initial:!1,animate:{height:u},transition:{duration:.3,ease:[.4,0,.2,1]},className:"relative w-full overflow-hidden",children:[(0,t.jsx)("div",{ref:x,className:"pointer-events-none invisible absolute left-0 top-0 w-full break-words text-xs leading-5 text-neutral-200",children:(0,t.jsx)(l.RichTextContent,{content:r,className:"text-xs leading-5 text-neutral-200"})}),(0,t.jsx)("div",{ref:m,className:(0,n.cn)("w-full break-words text-xs leading-5 text-neutral-200",!c&&h&&"overflow-hidden",e),style:c?void 0:{display:"-webkit-box",WebkitLineClamp:o,WebkitBoxOrient:"vertical",overflow:"hidden",...h&&{maskImage:"linear-gradient(to bottom, black calc(100% - 1.5rem), transparent 100%)",WebkitMaskImage:"linear-gradient(to bottom, black calc(100% - 1.5rem), transparent 100%)"}},children:(0,t.jsx)(l.RichTextContent,{content:r,className:"text-xs leading-5 text-neutral-200"})})]}),h&&(0,t.jsx)(i.Button,{variant:"primary",buttonStyle:"text",type:"button",className:"h-5 p-0 text-xs",onClick:()=>d(!c),children:c?"Show less":"Show more"})]}):null}])},796770,e=>{"use strict";var t=e.i(843476),s=e.i(271645),a=e.i(776639);e.i(322850);
3var n=e.i(824846),i=e.i(857876),l=e.i(975157),r=e.i(772436),o=e.i(162790),c=e.i(51054),d=e.i(340342),m=e.i(783150),x=e.i(326991),u=e.i(54963);let p=e=>{let{open:s,npcId:p,onOpenChange:h,disabled:f,description:g,onAddComment:N,showNpcInfo:j,isLikedByCurrentUser:v,likeCount:b,npcAuthorId:y,commentsCount:C,onRequireAuth:k}=e;return(0,t.jsx)(a.Dialog,{open:s,onOpenChange:h,children:(0,t.jsxs)(a.DialogContent,{className:(0,l.cn)("bg-neutral-1000 border-neutral-900 text-neutral-50","px-3 py-4 md:px-6 md:py-6 gap-6 rounded-lg flex flex-col",j?"max-w-[1486px]":"max-w-[742px]"),onClick:e=>e.stopPropagation(),children:[(0,t.jsx)("div",{className:"hidden",children:(0,t.jsx)(a.DialogTitle,{children:"Comments"})}),(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:"flex items-center gap-4",children:(0,t.jsx)("h2",{className:"headlines-h5",children:"Comments"})}),(0,t.jsx)("div",{className:"flex items-center gap-4",children:(0,t.jsx)("span",{className:"text-2xl text-neutral-500",children:C})})]}),(0,t.jsx)("button",{onClick:()=>h(!1),className:"rounded p-1 transition-colors hover:bg-neutral-700/50","aria-label":"Close modal",children:(0,t.jsx)(n.Close,{className:"size-6 text-neutral-50"})})]}),(0,t.jsxs)("div",{className:"flex gap-6",children:[(0,t.jsx)(m.NpcCommentsPanel,{variant:"modal",npcId:p,npcAuthorId:y,onAddComment:N,isCreating:f,onRequireAuth:k,className:(0,l.cn)(j&&"md:border-r border-neutral-700 md:pr-6")}),j&&(0,t.jsxs)("div",{className:"hidden gap-8 md:flex",children:[(0,t.jsxs)("div",{className:"flex w-[325px] flex-col gap-4",children:[(0,t.jsx)("div",{className:"flex items-center gap-4",children:(0,t.jsx)("h3",{className:"truncate text-2xl font-normal",children:e.npcName})}),(0,t.jsxs)("div",{className:"flex flex-col gap-4 px-2",children:[(0,t.jsx)("div",{className:"flex items-center gap-4",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(i.View,{className:"size-4"}),(0,t.jsxs)("span",{className:"text-xs text-neutral-50",children:[e.interactions," ",1===e.interactions?"interaction":"interactions"]})]})}),(0,t.jsx)(u.AuthorLink,{nickname:e.creator,prefix:"Created by ",className:"text-xs text-neutral-400",onNavigate:()=>h(!1)})]}),(0,t.jsx)(o.Button,{variant:"primary",type:"link",href:`/characters/chat/${p}`,className:"w-full",children:"Chat with character"}),(0,t.jsx)(r.Separator,{className:"bg-neutral-700"}),g&&(0,t.jsxs)("div",{className:"flex flex-col gap-2 px-2",children:[(0,t.jsx)("div",{className:"flex items-center justify-between gap-2",children:(0,t.jsx)("span",{className:"text-base text-neutral-50",children:"About"})}),(0,t.jsx)(x.TruncateRichText,{className:"text-neutral-300",content:g,maxLines:13})]})]}),(0,t.jsxs)("div",{className:"relative hidden h-[475px] w-[338px] xl:flex",children:[(0,t.jsx)(d.AvatarImage,{avatar:e.npcAvatar,alt:e.npcName,className:"rounded"}),(0,t.jsx)("div",{className:"absolute right-3 top-3 flex",children:(0,t.jsx)(c.NpcLikeButton,{npcId:p,isLikedByCurrentUser:v,likeCount:b})})]})]})]})]})})};var h=e.i(514089),f=e.i(178559),g=e.i(122457);e.s(["CommentsSection",0,e=>{let{className:a,npcId:n,npcAuthorId:i,onRequireAuth:r,variant:o="modal"}=e,{handleAddComment:c,isCreating:d}=(e=>{let[t,{loading:a}]=(0,h.useMutation)(f.CreateCommentDocument);return{handleAddComment:(0,s.useCallback)((s,a)=>{s.trim()&&t({onError:e=>{g.toast.error("Failed to add comment. Please try again."),console.error("Error creating comment:",e)},variables:{input:{comment:s,npcId:e,replyToId:a}},update:(t,{data:s})=>{t.modify({id:t.identify({__typename:"NpcModel",id:e}),fields:{commentsCount:(e=0)=>e+1}}),s?.npcCommentCreate?.parentId&&t.modify({id:t.identify({__typename:"NpcComment",id:s.npcCommentCreate.parentId}),fields:{repliesCount:(e=0)=>e+1,replies:(e=[])=>[...e,t.writeFragment({data:s.npcCommentCreate,fragment:f.BaseCommentFragmentDoc,fragmentName:"BaseComment"})]}})},refetchQueries:({data:t})=>t?.npcCommentCreate?.parentId?[{query:f.CommentsListDocument,variables:{input:{id:e}}},{query:f.RepliesListDocument,variables:{input:{id:t.npcCommentCreate.parentId}}}]:[{query:f.CommentsListDocument,variables:{input:{id:e}}}],awaitRefetchQueries:!0})},[t,e]),isCreating:a}}
3)(n),[x,u]=(0,s.useState)(!1),N=t=>{u(t),"embedded"!==e.variant&&e.setIsCommentsModalOpen&&e.setIsCommentsModalOpen(t)},j="embedded"!==e.variant?e.isCommentsModalOpen:void 0;if((0,s.useEffect)(()=>{"boolean"==typeof j&&u(j)},[j]),"embedded"===o)return(0,t.jsx)(m.NpcCommentsPanel,{variant:"embedded",npcId:n,npcAuthorId:i,onAddComment:c,isCreating:d,onRequireAuth:r,className:a});let{hideTrigger:v=!1,firstComment:b,commentsCount:y}=e;return(0,t.jsxs)(t.Fragment,{children:[!v&&(0,t.jsxs)("button",{onClick:e=>{e.preventDefault(),e.stopPropagation(),N(!0)},className:(0,l.cn)("bg-neutral-900 border border-neutral-800 rounded-lg p-3 flex flex-col gap-2","hover:bg-neutral-800 transition-colors text-left w-full",a),children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-xs text-neutral-50",children:"Comments"}),(0,t.jsx)("span",{className:"text-xs text-neutral-500",children:y})]}),y?(0,t.jsx)("div",{className:"flex items-center gap-2",children:(0,t.jsx)("p",{className:"line-clamp-2 flex-1 text-xs text-neutral-50",children:b||"Open the discussion"})}):(0,t.jsx)("div",{className:"flex items-stretch",children:(0,t.jsx)("p",{className:"flex-1 text-xs text-neutral-500",children:"No comments yet. Be the first to share your thoughts!"})})]}),x&&(0,t.jsx)(t.Fragment,{children:e.showNpcInfo?(0,t.jsx)(p,{showNpcInfo:!0,open:x,onOpenChange:N,npcName:e.npcName,npcAvatar:e.npcAvatar,creator:e.creator,interactions:e.interactions,onAddComment:c,disabled:d,description:e.description,isLikedByCurrentUser:e.isLikedByCurrentUser,likeCount:e.likeCount,npcId:n,npcAuthorId:i,commentsCount:y,onRequireAuth:r}):(0,t.jsx)(p,{showNpcInfo:!1,open:x,onOpenChange:N,onAddComment:c,disabled:d,npcId:n,npcAuthorId:i,commentsCount:y,onRequireAuth:r})})]})}],796770)},783150,e=>{"use strict";var t=e.i(843476),s=e.i(657688),a=e.i(271645),n=e.i(514089),i=e.i(138413),l=e.i(618566),r=e.i(559897),o=e.i(543477),c=e.i(178559),d=e.i(411088),m=e.i(162790),x=e.i(975157);e.i(322850);var u=e.i(360864);let p=({className:e,placeholder:s="Add a comment",onSend:n,disabled:i=!1,replyToUsername:l,onCancelReply:r,autoFocus:o,onUnauthorizedInteract:c})=>{let p=l?`@${l} `:"",[h,f]=(0,a.useState)(p),g=(0,a.useRef)(null);(0,a.useEffect)(()=>{o&&g.current&&p&&(g.current.focus(),g.current.setSelectionRange(p.length,p.length))},[o,p]);let N=()=>{let e=h.slice(p.length).trim();e&&n&&!i&&(n(e),f(p))},j=!h.slice(p.length).trim()||i||!!c,v=()=>{g.current?.blur(),c?.()};return(0,t.jsxs)("label",{className:(0,x.cn)("grid grid-cols-[1fr_auto] items-center gap-3 rounded-lg border border-neutral-750 bg-neutral-900 p-3 pl-4 w-full",e),children:[(0,t.jsx)(d.default,{ref:g,autoFocus:o&&!p&&!c,readOnly:!!c,value:h,onChange:e=>{let t=e.target.value,s=e.target,a=s.selectionStart,n=s.selectionEnd;if(l&&!t.startsWith(p))if(a!==n&&a<p.length){let e=h.slice(Math.max(n,p.length));f(p+e)}else f(p);else f(t)},onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),N())},onFocus:c?v:void 0,onClick:c?v:void 0,placeholder:s,minRows:1,className:(0,x.cn)("resize-none bg-transparent text-neutral-50 placeholder:text-neutral-500 text-base","focus:outline-none focus:ring-0 border-0 caret-lime-300","disabled:opacity-50",c&&"cursor-pointer")}),(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[r&&(0,t.jsx)("button",{className:"cursor-pointer text-xs text-neutral-50",onClick:r,children:"Cancel"}),(0,t.jsx)(m.Button,{variant:"primary",buttonStyle:"filled",type:"button",iconOnly:!0,icon:(0,t.jsx)(u.Send,{}),disabled:j,onClick:N,className:"size-8 self-end px-0"})]})]})};var h=e.i(963489),f=e.i(254232),g=e.i(605068),N=e.i(132153),j=e.i(543749),v=e.i(856436),b=e.i(126496),y=e.i(302747),C=e.i(769210),k=e.i(690861),w=e.i(54963);let D=({comment:e,onReply:s,onLike:i,userId:l,isNpcAuthor:r,isAuthenticated:o,onRequireAuth:d})=>{let m=(0,a.useRef)(null),[u,y]=(0,a.useState)(!1),[A,L]=(0,a.useState)(!1),[I,{data:R}]=(0,h.useLazyQuery)(c.RepliesListDocument),[z,{loading:S}]=(0,n.useMutation)(c.DeleteCommentDocument),M=R?.npcCommentReplies||[],B=(0,a.useMemo)(()=>k.DateService.fromMillis(Number(e.createdAt)).toFormat("d MMM yyyy"),[e.createdAt]),_=!!e.parentId,T=l&&l===e.userId,U=async()=>
3{if(A)return L(!1);await I({variables:{input:{id:e.id}}}),L(!0)};return e.isDeleted&&!e.repliesCount?null:(0,t.jsxs)("div",{className:"flex flex-col justify-end gap-2",children:[(0,t.jsx)("div",{className:(0,x.cn)("flex items-start gap-3 rounded-[10px] border border-neutral-800 bg-neutral-900 p-3"),children:(0,t.jsxs)("div",{className:"flex flex-1 flex-col gap-2",children:[(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsxs)("div",{className:"flex w-full items-center justify-between gap-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(w.AuthorLink,{nickname:e.authorUsername,className:"text-sm font-semibold text-neutral-50"}),(0,t.jsx)("div",{className:"flex gap-2.5",children:(0,t.jsx)("span",{className:"text-xs text-neutral-400",children:B})})]}),(T||r)&&!e.isDeleted&&(0,t.jsx)(C.ContextMenu,{ref:m,placement:"bottom-end",trigger:(0,t.jsx)(j.DotsHorizontalBig,{className:"size-6 cursor-pointer text-neutral-50"}),contentClassName:"bg-neutral-800 border border-neutral-700 rounded-lg grid gap-1",minAxis:0,children:(0,t.jsxs)("button",{onClick:()=>{(r||T)&&z({variables:{input:{id:e.id}},update:t=>{t.modify({id:t.identify({__typename:"NpcModel",id:e.npcId}),fields:{commentsCount(e=0){let t=e-1;return t<=0?0:t}}}),t.modify({id:t.identify({__typename:"NpcComment",id:e.id}),fields:{isDeleted:()=>!0}}),e.parentId&&t.modify({id:t.identify({__typename:"NpcComment",id:e.parentId}),fields:{repliesCount(e=0){let t=e-1;return t<=0?0:t}}})},onCompleted:()=>{m.current?.close()},onError:e=>{console.error("Error deleting comment:",e)}})},className:"flex cursor-pointer items-center gap-4 px-4 py-3 text-red-600 transition-colors hover:bg-neutral-700",disabled:S,children:[(0,t.jsx)(N.Delete,{}),(0,t.jsx)("span",{className:"text-xs",children:"Delete comment"})]})})]}),(0,t.jsxs)("p",{className:"text-base leading-6 text-neutral-50",children:[!!e.replyToAuthorUsername&&(0,t.jsxs)("strong",{children:[(0,t.jsx)(w.AuthorLink,{nickname:e.replyToAuthorUsername})," "]}),e.isDeleted?(0,t.jsx)("span",{className:"text-neutral-500",children:"Comment removed"}):e.comment]})]}),(0,t.jsx)("div",{className:"flex items-center gap-6",children:(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>{o?i(e.id):d()},className:"flex items-center gap-1 text-neutral-400 transition-colors hover:text-neutral-50",children:[e.isLikedByCurrentUser?(0,t.jsx)(b.LikeFilled,{className:"text-lime-300"}):(0,t.jsx)(v.Like,{className:"text-neutral-200"}),(0,t.jsx)("span",{className:"text-xs",children:e.likes})]}),(0,t.jsx)("button",{type:"button",onClick:()=>{o?y(!u):d()},className:"text-xs text-neutral-400 transition-colors hover:text-neutral-50",children:"Reply"})]})})]})}),u&&o&&(0,t.jsx)("div",{className:"my-2 w-full px-[2px]",children:(0,t.jsx)(p,{autoFocus:!0,onCancelReply:()=>{y(!1)},onSend:t=>{s(t,e.id),y(!1),A||e.parentId||U()},placeholder:"Reply to a comment",replyToUsername:_?e.authorUsername:void 0})}),!!e.repliesCount&&!_&&(0,t.jsxs)("button",{type:"button",onClick:U,className:"flex items-center gap-2 pl-10 text-xs text-neutral-400 transition-colors hover:text-neutral-50",children:[A?(0,t.jsx)(g.ChevronUp,{className:"size-4"}):(0,t.jsx)(f.ChevronDown,{className:"size-4"}),(0,t.jsxs)("span",{children:[A?"Hide":"Show"," replies (",e.repliesCount,")"]})]}),A&&!!e.repliesCount&&M?.map(e=>(0,t.jsx)("div",{className:"pl-10",children:(0,t.jsx)(D,{userId:l,isNpcAuthor:r,comment:e,onReply:s,onLike:i,isAuthenticated:o,onRequireAuth:d})},e.id))]})},A=()=>(0,t.jsx)("div",{className:"flex flex-col justify-end gap-2",children:(0,t.jsx)("div",{className:"flex items-start gap-3 rounded-[10px] border border-neutral-700 bg-neutral-800 p-3",children:(0,t.jsxs)("div",{className:"flex flex-1 flex-col gap-2",children:[(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsx)("div",{className:"flex w-full items-center justify-between gap-2",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(y.Skeleton,{className:"h-4 w-24 bg-neutral-700"}),(0,t.jsx)(y.Skeleton,{className:"h-3 w-16 bg-neutral-700"})]})}),(0,t.jsx)(y.Skeleton,{className:"h-16 w-full bg-neutral-700"})]}),(0,t.jsx)("div",{className:"flex items-center gap-6",children:(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsx)(y.Skeleton,{className:"h-4 w-12 bg-neutral-700"}),(0,t.jsx)(y.Skeleton,{className:"h-4 w-12 bg-neutral-700"})]})})]})})});var L=e.i(414877);let I=()=>(0,t.jsxs)("div",{className:"flex min-h-[280px] flex-col items-center justify-center gap-6 py-6",children:[(0,t.jsx)(s.default,{alt:"No comments",width:130,height:100,src:"/images/empty_comments.png"}),(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsx)("h5",{className:"text-lg font-medium text-neutral-50",children:"No comments yet"}),(0,t.jsx)("p",{className:"text-sm text-neutral-400",children:"Be the first to share your thoughts!"})]})]}),R=()=>(0,t.jsxs)("div",{className:"flex min-h-[480px] flex-col items-center justify-center gap-6",children:[(0,t.jsx)(s.default,{alt:"No comments",width:170,height:140,src:"/images/empty_comments.png"}),(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsx)("h5",{className:"headlines-h5 text-neutral-50",children:"No comments yet"}),(0,t.jsx)("p",{className:"text-base text-neutral-400",children:"Be the first to share your thoughts!"})]})]});e.s(["NpcCommentsPanel",0,({npcId:e,npcAuthorId:s,onAddComment:d,isCreating:m=!1,onRequireAuth:u,variant:h,className:f})=>{let{userData:g,isAuthenticated:N}=(0,r.useAuth)(),{openModal:j}=(0,o.useModalsStoreShallow)(["openModal"]),{isMobile:v}=(0,L.useIsMobile)(),b=(0,l.usePathname)(),y=(0,l.useSearchParams)(),C=`${b}${y.toString()?`?${y.toString()}`:""}`,k=g?.userId&&s&&g.userId===s,{data:w,loading:z}=(0,i.useQuery)(c.CommentsListDocument,{variables:{input:{id:e}}}),[S]=(0,n.useMutation)(c.NpcCommentLikeHandleDocument),M=[...w?.npcComments||[]].filter(({parentId:e})=>!e).sort((e,t)=>
3Number(t.createdAt)-Number(e.createdAt)).filter(e=>!e.isDeleted||!!e.repliesCount),B=(0,a.useCallback)(()=>{j("signUpModal",{redirectTo:C})},[j,C]),_=u??B,T=e=>{N?S({variables:{input:{id:e}}}):_()},U=(0,t.jsx)(p,{disabled:m||z,onSend:e=>d(e),placeholder:"modal"===h?"Add a comment":"Add a comment...",onUnauthorizedInteract:N?void 0:_}),F=M.map(e=>(0,t.jsx)(D,{comment:e,onReply:d,onLike:T,userId:g?.userId,isNpcAuthor:!!k,isAuthenticated:N,onRequireAuth:_},e.id)),P="modal"===h?5:3;return"modal"===h?(0,t.jsxs)("div",{className:(0,x.cn)("flex flex-col justify-between gap-6 flex-1",f),children:[M.length?(0,t.jsx)("div",{className:"scrollbar-hide flex max-h-[min(550px,max(400px,calc(100dvh-220px)))] flex-col gap-4 overflow-y-auto",children:(0,t.jsx)("div",{className:"flex flex-col justify-end gap-6",children:F})}):z?(0,t.jsx)("div",{className:"scrollbar-hide flex max-h-[min(550px,max(400px,calc(100dvh-220px)))] flex-col gap-4 overflow-y-auto",children:(0,t.jsx)("div",{className:"flex flex-col justify-end gap-6",children:Array.from({length:P}).map((e,s)=>(0,t.jsx)(A,{},s))})}):(0,t.jsx)(R,{}),(0,t.jsx)("div",{className:"flex items-center gap-3",children:(0,t.jsx)("div",{className:"flex flex-1 flex-col gap-4",children:U})})]}):(0,t.jsxs)("div",{className:(0,x.cn)("flex flex-col gap-4",f),children:[z?(0,t.jsx)("div",{className:"flex flex-col gap-6",children:Array.from({length:P}).map((e,s)=>(0,t.jsx)(A,{},s))}):M.length?(0,t.jsxs)("div",{className:"scrollbar-hide max-h-[448px] overflow-y-auto",children:[!v&&(0,t.jsx)(p,{className:"mb-4",disabled:m,onSend:e=>d(e),placeholder:"Add a comment...",onUnauthorizedInteract:N?void 0:_}),(0,t.jsx)("div",{className:"flex flex-col gap-6",children:F})]}):(0,t.jsxs)(t.Fragment,{children:[!v&&(0,t.jsx)(p,{disabled:m,onSend:e=>d(e),placeholder:"Add a comment...",onUnauthorizedInteract:N?void 0:_}),(0,t.jsx)(I,{})]}),v&&U]})}],783150)}]); 4 5//# sourceMappingURL=1nj-mt-iat_mi.js.map 6//# debugId=bc8b3594-f2aa-5aeb-bb09-d0195c5fbba5
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.