aidol 1.2.1 → 1.2.2
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/client.cjs +1 -1
- package/dist/client.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +2 -2
- package/dist/{lead-CV7Srf-F.js → lead-BsbXYIV4.js} +2 -2
- package/dist/{lead-CV7Srf-F.js.map → lead-BsbXYIV4.js.map} +1 -1
- package/dist/{lead-Dv8zsoLl.mjs → lead-CAf6oR_z.mjs} +1 -2
- package/dist/{lead-Dv8zsoLl.mjs.map → lead-CAf6oR_z.mjs.map} +1 -1
- package/dist/schemas/lead.d.ts +0 -3
- package/dist/schemas/lead.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/client.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),v=require("react-i18next"),h=require("next/image"),T=require("react"),D=require("framer-motion"),Pt=require("react-markdown"),Bt=require("remark-breaks"),Ht=require("remark-gfm"),Ma=require("./lead-CV7Srf-F.js"),at=require("@hookform/resolvers"),Na=require("react-hook-form");function _t(l){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(l){for(const m in l)if(m!=="default"){const s=Object.getOwnPropertyDescriptor(l,m);Object.defineProperty(n,m,s.get?s:{enumerable:!0,get:()=>l[m]})}}return n.default=l,Object.freeze(n)}const N=_t(T);function et(l){var n,m,s="";if(typeof l=="string"||typeof l=="number")s+=l;else if(typeof l=="object")if(Array.isArray(l)){var e=l.length;for(n=0;n<e;n++)l[n]&&(m=et(l[n]))&&(s&&(s+=" "),s+=m)}else for(m in l)l[m]&&(s&&(s+=" "),s+=m);return s}function Y(){for(var l,n,m=0,s="",e=arguments.length;m<e;m++)(l=arguments[m])&&(n=et(l))&&(s&&(s+=" "),s+=n);return s}function $t({title:l,titleId:n,...m},s){return N.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:s,"aria-labelledby":n},m),l?N.createElement("title",{id:n},l):null,N.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18"}))}const al=N.forwardRef($t);function tl({title:l,titleId:n,...m},s){return N.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:s,"aria-labelledby":n},m),l?N.createElement("title",{id:n},l):null,N.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 12.75 6 6 9-13.5"}))}const ll=N.forwardRef(tl);function nl({title:l,titleId:n,...m},s){return N.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:s,"aria-labelledby":n},m),l?N.createElement("title",{id:n},l):null,N.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"}))}const sl=N.forwardRef(nl);function ml({title:l,titleId:n,...m},s){return N.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:s,"aria-labelledby":n},m),l?N.createElement("title",{id:n},l):null,N.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 15 12 18.75 15.75 15m-7.5-6L12 5.25 15.75 9"}))}const el=N.forwardRef(ml);function rl({title:l,titleId:n,...m},s){return N.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:s,"aria-labelledby":n},m),l?N.createElement("title",{id:n},l):null,N.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 12 3.269 3.125A59.769 59.769 0 0 1 21.485 12 59.768 59.768 0 0 1 3.27 20.875L5.999 12Zm0 0h7.5"}))}const dl=N.forwardRef(rl);function Zl({title:l,titleId:n,...m},s){return N.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:s,"aria-labelledby":n},m),l?N.createElement("title",{id:n},l):null,N.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 4.5v15m7.5-7.5h-15"}))}const rt=N.forwardRef(Zl);function bl({title:l,titleId:n,...m},s){return N.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:s,"aria-labelledby":n},m),l?N.createElement("title",{id:n},l):null,N.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7.217 10.907a2.25 2.25 0 1 0 0 2.186m0-2.186c.18.324.283.696.283 1.093s-.103.77-.283 1.093m0-2.186 9.566-5.314m-9.566 7.5 9.566 5.314m0 0a2.25 2.25 0 1 0 3.935 2.186 2.25 2.25 0 0 0-3.935-2.186Zm0-12.814a2.25 2.25 0 1 0 3.933-2.185 2.25 2.25 0 0 0-3.933 2.185Z"}))}const pl=N.forwardRef(bl);function zl({title:l,titleId:n,...m},s){return N.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:s,"aria-labelledby":n},m),l?N.createElement("title",{id:n},l):null,N.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"}))}const dt=N.forwardRef(zl);function Nl({title:l,titleId:n,...m},s){return N.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:s,"aria-labelledby":n},m),l?N.createElement("title",{id:n},l):null,N.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M18 18.72a9.094 9.094 0 0 0 3.741-.479 3 3 0 0 0-4.682-2.72m.94 3.198.001.031c0 .225-.012.447-.037.666A11.944 11.944 0 0 1 12 21c-2.17 0-4.207-.576-5.963-1.584A6.062 6.062 0 0 1 6 18.719m12 0a5.971 5.971 0 0 0-.941-3.197m0 0A5.995 5.995 0 0 0 12 12.75a5.995 5.995 0 0 0-5.058 2.772m0 0a3 3 0 0 0-4.681 2.72 8.986 8.986 0 0 0 3.74.477m.94-3.197a5.971 5.971 0 0 0-.94 3.197M15 6.75a3 3 0 1 1-6 0 3 3 0 0 1 6 0Zm6 3a2.25 2.25 0 1 1-4.5 0 2.25 2.25 0 0 1 4.5 0Zm-13.5 0a2.25 2.25 0 1 1-4.5 0 2.25 2.25 0 0 1 4.5 0Z"}))}const Wl=N.forwardRef(Nl);function ul({title:l,titleId:n,...m},s){return N.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:s,"aria-labelledby":n},m),l?N.createElement("title",{id:n},l):null,N.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 6a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0ZM4.501 20.118a7.5 7.5 0 0 1 14.998 0A17.933 17.933 0 0 1 12 21.75c-2.676 0-5.216-.584-7.499-1.632Z"}))}const cl=N.forwardRef(ul);function Ol({title:l,titleId:n,...m},s){return N.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:s,"aria-labelledby":n},m),l?N.createElement("title",{id:n},l):null,N.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18 18 6M6 6l12 12"}))}const vl=N.forwardRef(Ol),ql={default:"size-profile",profile:"size-full"};function H({url:l,alt:n,variant:m="default"}){return a.jsx("div",{className:Y("border-base-300 bg-base-200 relative overflow-hidden rounded-lg border",ql[m]),children:l?a.jsx(h,{src:l,alt:n,fill:!0,draggable:!1,className:"size-full object-cover"}):a.jsx("div",{className:"flex size-full items-center justify-center",children:a.jsx(cl,{className:"text-base-content/50 size-1/2"})})})}function _({companion:l,variant:n="grade",onClick:m}){const{t:s}=v.useTranslation(),d=l.aidolId!==null&&n==="grade",r=m&&!d,p=n==="position"?"opacity-30":d?"opacity-20":"opacity-60",z=n==="position"?l.position?s(`aidol:position.${l.position}`):s("aidol:position.unassigned"):s("companion.grade",{grade:l.grade});return a.jsxs("div",{className:Y("h-card max-w-card border-base-300 relative isolate w-full overflow-hidden rounded-lg border",r&&"cursor-pointer"),onClick:r?m:void 0,role:r?"button":void 0,tabIndex:r?0:void 0,onKeyDown:r?i=>{(i.key==="Enter"||i.key===" ")&&(i.preventDefault(),m())}:void 0,children:[a.jsx("div",{className:"absolute inset-0",children:a.jsx(H,{url:l.profilePictureUrl,alt:l.name??"",variant:"profile"})}),d&&a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"absolute inset-0 z-20 bg-black/40 backdrop-blur-sm"}),a.jsx("div",{className:"absolute top-4 left-4 z-20",children:a.jsx("span",{className:"bg-base-100 text-body-s text-base-content w-fit rounded-lg px-2 py-1",children:s("companion.signed")})})]}),a.jsx("div",{className:Y("absolute inset-x-0 bottom-0 h-24 bg-gradient-to-t from-black to-transparent",p)}),a.jsxs("div",{className:"absolute inset-x-4 bottom-4 z-10 flex flex-col gap-2",children:[a.jsx("span",{className:"text-title-s text-white",children:l.name}),a.jsx("span",{className:"text-body-s w-fit rounded-lg bg-black px-2 py-1 text-white",children:z})]})]})}function Vl({companions:l,onCompanionClick:n}){const{t:m}=v.useTranslation();return a.jsxs("div",{className:"mt-8",children:[a.jsx("h2",{className:"text-title-l mb-4 font-semibold",children:m("aidol:aidol.members")}),l&&l.length>0?a.jsx("div",{className:"grid gap-4 sm:grid-cols-2",children:l.map(s=>a.jsx(_,{companion:s,onClick:()=>n(s.id)},s.id))}):a.jsx("p",{className:"text-base-content/50 text-center",children:m("aidol:aidol.noMembers")})]})}function il({aidol:l}){return a.jsxs("div",{className:"flex flex-col items-center gap-4 py-8 text-center",children:[a.jsx("div",{className:"bg-base-200 relative size-32 overflow-hidden rounded-full",children:l.profileImageUrl?a.jsx(h,{src:l.profileImageUrl,alt:l.name??"Group",fill:!0,className:"object-cover"}):a.jsx("div",{className:"from-primary/20 to-secondary/20 flex size-full items-center justify-center bg-gradient-to-br",children:a.jsx(Wl,{className:"text-base-content/50 size-16"})})}),a.jsxs("div",{children:[a.jsx("h1",{className:"text-display-s text-base-content font-bold",children:l.name}),l.concept&&a.jsx("p",{className:"text-body-l text-base-content/70 mt-2",children:l.concept})]})]})}function Zt({onSubmit:l}){const[n,m]=T.useState(""),s=async e=>{e.preventDefault(),n.trim()&&(await l(n),m(""))};return a.jsx("form",{onSubmit:s,className:"flex items-center gap-2 px-4 py-2",children:a.jsxs("div",{className:"relative flex-1",children:[a.jsx("input",{type:"text",value:n,onChange:e=>m(e.target.value),placeholder:"Enter your message...",className:"input bg-neutral/30 text-base-content placeholder:text-base-content focus:border-primary w-full pr-12"}),a.jsx("button",{type:"submit",className:"btn btn-circle btn-ghost text-primary hover:bg-primary hover:text-primary-content absolute top-1/2 right-2 -translate-y-1/2",children:a.jsx(dl,{className:"size-6"})})]})})}function bt({messages:l}){return l?a.jsx("div",{className:"flex flex-col-reverse space-y-4 space-y-reverse p-4",children:l.map(n=>{const m=n.senderType===Ma.SenderType.USER;return a.jsx(D.motion.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},transition:{duration:.3},className:Y("flex items-start space-x-2 rounded-lg p-2 shadow-sm",{"bg-primary text-primary-content flex-row-reverse":m,"bg-neutral text-neutral-content":!m}),children:a.jsx("div",{className:"text-body-m max-w-[60%] break-words",children:a.jsx(Pt,{remarkPlugins:[Ht,Bt],className:Y("prose max-w-none flex-1",{"text-primary-content":m,"text-neutral-content":!m}),children:n.content})})},n.id)})}):a.jsx("div",{className:"flex flex-col space-y-4 p-4",children:[...Array(5)].map((n,m)=>a.jsxs("div",{className:"flex animate-pulse items-start space-x-2",children:[a.jsx("div",{className:"avatar placeholder",children:a.jsx("div",{className:"bg-neutral w-10 rounded-full"})}),a.jsxs("div",{className:"flex-1 space-y-2 py-1",children:[a.jsx("div",{className:"bg-neutral h-4 w-1/2 rounded-sm"}),a.jsx("div",{className:"bg-neutral h-4 w-3/4 rounded-sm"})]})]},m))})}function yl({messages:l,onSendMessage:n}){return a.jsxs("div",{className:"flex h-full flex-col",children:[a.jsx("div",{className:"flex-1 overflow-y-auto",children:a.jsx(bt,{messages:l})}),a.jsx(Zt,{onSubmit:n})]})}function pt({onClick:l,isLoading:n}){const{t:m}=v.useTranslation();return a.jsx("button",{onClick:l,disabled:n,className:"btn btn-neutral text-label-l text-neutral-content h-16 min-w-48",children:n?a.jsx("span",{className:"loading loading-spinner loading-sm"}):a.jsxs(a.Fragment,{children:[a.jsx(rt,{className:"size-5"}),m("aidol:companion.addMember")]})})}const pa=["vocal","dance","rap","visual","stamina","charm"];function Tl({stats:l}){const{t:n}=v.useTranslation(),m=260,s=m/2,e=70,d=100,r=(u,q)=>{const M=Math.PI*2*u/6-Math.PI/3,F=q/100*e;return{x:s+F*Math.cos(M),y:s+F*Math.sin(M)}},p=u=>{const q=Math.PI*2*u/6-Math.PI/3;return{x:s+d*Math.cos(q),y:s+d*Math.sin(q)}},z=pa.map((u,q)=>r(q,l[u])),i=z.map(u=>`${u.x},${u.y}`).join(" "),G=[20,40,60,80,100];return a.jsx("div",{className:"flex items-center justify-center",children:a.jsxs("svg",{width:m,height:m,viewBox:`0 0 ${m} ${m}`,children:[G.map(u=>{const M=pa.map((F,x)=>r(x,u)).map(F=>`${F.x},${F.y}`).join(" ");return a.jsx("polygon",{points:M,fill:"none",stroke:"currentColor",strokeWidth:"1",className:"text-base-300"},u)}),pa.map((u,q)=>{const M=r(q,100);return a.jsx("line",{x1:s,y1:s,x2:M.x,y2:M.y,stroke:"currentColor",strokeWidth:"1",className:"text-base-300"},q)}),a.jsx("polygon",{points:i,fill:"currentColor",fillOpacity:"0.3",stroke:"currentColor",strokeWidth:"2",className:"text-secondary"}),z.map((u,q)=>a.jsx("circle",{cx:u.x,cy:u.y,r:"3",fill:"currentColor",className:"text-secondary"},q)),pa.map((u,q)=>{const M=p(q);return a.jsxs("g",{children:[a.jsx("text",{x:M.x,y:M.y-8,textAnchor:"middle",dominantBaseline:"middle",className:"text-label-l fill-base-content font-medium",children:n(`aidol:casting.abilities.${u}`)}),a.jsx("text",{x:M.x,y:M.y+10,textAnchor:"middle",dominantBaseline:"middle",className:"text-label-l fill-secondary font-medium",children:l[u]})]},u)})]})})}function zt({companion:l,showBiography:n=!0,showStats:m=!0}){const{t:s}=v.useTranslation(),{name:e,profilePictureUrl:d,grade:r,mbti:p,biography:z,stats:i}=l;return a.jsxs("div",{className:"flex flex-col items-center gap-6",children:[a.jsx(H,{url:d??null,alt:e??""}),a.jsxs("div",{className:"flex flex-col gap-2 self-start",children:[a.jsx("h2",{className:"text-title-s text-base-content font-semibold",children:e??""}),(r||p)&&a.jsxs("div",{className:"flex gap-2",children:[r&&a.jsx("span",{className:"text-label-l bg-base-content text-base-100 rounded-lg px-2 py-1",children:s("aidol:companion.grade",{grade:r})}),p&&a.jsx("span",{className:"text-label-l bg-base-content text-base-100 rounded-lg px-2 py-1",children:p})]})]}),n&&z&&a.jsx("p",{className:"text-body-s text-base-content",children:z}),m&&i&&a.jsx(Tl,{stats:i})]})}const oa=T.forwardRef(({placeholder:l,maxLength:n=500,charCount:m,...s},e)=>{const{t:d}=v.useTranslation();return a.jsxs("div",{className:"w-full",children:[a.jsx("textarea",{ref:e,placeholder:l??d("aidol:companion.promptPlaceholder"),maxLength:n,className:"textarea bg-base-100 text-base-content placeholder:text-base-content/50 focus:border-primary h-32 w-full resize-none focus:outline-hidden",...s}),a.jsxs("div",{className:"text-label-s text-base-content/50 mt-1 text-right",children:[m??0,"/",n]})]})});oa.displayName="PromptInput";function Gl({value:l,onChange:n}){const{t:m}=v.useTranslation();return a.jsx("input",{type:"text",value:l,onChange:s=>n(s.target.value),placeholder:m("aidol:companionCreate.complete.bioPlaceholder"),className:"input w-full bg-white text-black"})}function ua({title:l,logo:n,onDropdownClick:m,onBackClick:s,onCloseClick:e,children:d}){const r=()=>n?a.jsx(h,{src:"/images/logo.svg",alt:"alola",width:91,height:27}):m?a.jsxs("button",{type:"button",onClick:m,className:"text-headline-s text-base-content flex cursor-pointer items-center gap-2",children:[a.jsx("span",{children:l}),a.jsx(el,{className:"size-6"})]}):a.jsxs("div",{className:"flex items-center gap-2",children:[s&&a.jsx("button",{type:"button",onClick:s,className:"text-base-content flex cursor-pointer items-center justify-center","aria-label":"뒤로 가기",children:a.jsx(al,{className:"size-6"})}),e&&a.jsx("button",{type:"button",onClick:e,className:"text-base-content flex cursor-pointer items-center justify-center","aria-label":"닫기",children:a.jsx(vl,{className:"size-6"})}),l&&a.jsx("h1",{className:"text-headline-s text-base-content",children:l})]});return a.jsxs("header",{className:"h-header bg-base-100 flex shrink-0 items-center justify-between px-6 py-7",children:[r(),d&&a.jsx("div",{className:"flex shrink-0 items-center gap-2",children:d})]})}function Nt({progress:l}){const n=Math.min(100,Math.max(0,l));return a.jsx("div",{className:"bg-primary/20 h-3 w-full overflow-hidden rounded-full",children:a.jsx("div",{className:"bg-primary h-full rounded-full transition-all duration-500 ease-out",style:{width:`${n}%`}})})}function Ml({step:l,totalSteps:n,children:m,bottomButton:s}){const{t:e}=v.useTranslation(),d=l/n*100;return a.jsxs("div",{className:"flex min-h-dvh flex-col",children:[a.jsx(ua,{title:e("aidol:companionCreate.title")}),a.jsx("div",{className:"px-6 py-4",children:a.jsx(Nt,{progress:d})}),a.jsx("div",{className:"flex flex-1 flex-col gap-6 p-6",children:m}),a.jsx("div",{className:"sticky bottom-0 p-6",children:s})]})}const ol=/[!@#$%^&*()+=[\]{}|\\;:'",.<>?/`~_]/g;function Ll({value:l,onChange:n,maxLength:m=10}){const{t:s}=v.useTranslation();return a.jsx("input",{type:"text",value:l,onChange:e=>n(e.target.value.replace(ol,"").slice(0,m)),placeholder:s("aidol:companionCreate.complete.namePlaceholder"),className:"input w-full bg-white text-black"})}const La=T.forwardRef(({options:l,...n},m)=>{const{t:s}=v.useTranslation();return a.jsxs("fieldset",{className:"fieldset w-full",children:[a.jsx("label",{className:"label",children:s("aidol:creation.concept")}),a.jsxs("select",{ref:m,className:"select bg-base-100 text-base-content w-full",...n,children:[a.jsx("option",{value:"",children:s("aidol:creation.selectConcept")}),l.map(e=>a.jsx("option",{value:e.value,children:e.label},e.value))]})]})});La.displayName="ConceptSelector";function Ul({value:l,onChange:n}){const{t:m}=v.useTranslation(),s=[{gender:"female",label:m("aidol:companionCreate.gender.female")},{gender:"male",label:m("aidol:companionCreate.gender.male")}];return a.jsx("div",{className:"flex gap-4",children:s.map(({gender:e,label:d})=>a.jsx("button",{type:"button",onClick:()=>n(e),className:Y("text-label-l flex-1 rounded-lg border px-6 py-3 transition-colors",l===e?"border-primary text-primary bg-white":"border-base-300 text-base-content bg-white"),children:d},e))})}function Wt({onGenerate:l,isGenerating:n,disabled:m}){const{t:s}=v.useTranslation(),[e,d]=T.useState(""),r=()=>{e.trim()&&l(e)},p=z=>{z.key==="Enter"&&e.trim()&&!n&&!m&&(z.preventDefault(),r())};return a.jsxs("fieldset",{className:"fieldset w-full",children:[a.jsxs("div",{className:"flex gap-2",children:[a.jsx("input",{type:"text",value:e,onChange:z=>d(z.target.value),onKeyDown:p,placeholder:s("aidol:creation.emblemPromptPlaceholder"),maxLength:200,className:"input flex-1",disabled:m||n,"data-testid":"emblem-prompt-input"}),a.jsx("button",{type:"button",onClick:r,disabled:m||n||!e.trim(),className:"btn btn-secondary","data-testid":"emblem-generate-button",children:n?a.jsx("span",{className:"loading loading-spinner loading-sm"}):s("aidol:creation.generate")})]}),n&&a.jsx("div",{className:"mt-2",children:a.jsx("progress",{className:"progress w-full"})})]})}var kl=function(l,n){for(var m={};l.length;){var s=l[0],e=s.code,d=s.message,r=s.path.join(".");if(!m[r])if("unionErrors"in s){var p=s.unionErrors[0].errors[0];m[r]={message:p.message,type:p.code}}else m[r]={message:d,type:e};if("unionErrors"in s&&s.unionErrors.forEach(function(G){return G.errors.forEach(function(u){return l.push(u)})}),n){var z=m[r].types,i=z&&z[s.code];m[r]=Na.appendErrors(r,n,m,e,i?[].concat(i,s.message):s.message)}l.shift()}return m},Sl=function(l,n,m){return m===void 0&&(m={}),function(s,e,d){try{return Promise.resolve((function(r,p){try{var z=Promise.resolve(l[m.mode==="sync"?"parse":"parseAsync"](s,n)).then(function(i){return d.shouldUseNativeValidation&&at.validateFieldsNatively({},d),{errors:{},values:m.raw?s:i}})}catch(i){return p(i)}return z&&z.then?z.then(void 0,p):z})(0,function(r){if((function(p){return Array.isArray(p?.errors)})(r))return{values:{},errors:at.toNestErrors(kl(r.errors,!d.shouldUseNativeValidation&&d.criteriaMode==="all"),d)};throw r}))}catch(r){return Promise.reject(r)}}};const Ua=T.forwardRef(({error:l,...n},m)=>{const{t:s}=v.useTranslation();return a.jsxs("fieldset",{className:"fieldset w-full",children:[a.jsx("label",{className:"label",children:s("aidol:creation.groupName")}),a.jsx("input",{ref:m,type:"text",placeholder:s("aidol:creation.groupNamePlaceholder"),className:Y("input bg-base-100 text-base-content placeholder:text-base-content/50 w-full",l&&"input-error"),...n}),l&&a.jsx("span",{className:"text-label-m text-error",children:l})]})});Ua.displayName="GroupNameInput";const ka=T.forwardRef(({error:l,...n},m)=>{const{t:s}=v.useTranslation();return a.jsxs("fieldset",{className:"fieldset w-full",children:[a.jsx("label",{className:"label",children:s("aidol:creation.memberName")}),a.jsx("input",{ref:m,type:"text",placeholder:s("aidol:creation.memberNamePlaceholder"),className:Y("input bg-base-100 text-base-content placeholder:text-base-content/50 w-full",l&&"input-error"),...n}),l&&a.jsx("span",{className:"text-label-m text-error",children:l})]})});ka.displayName="MemberNameInput";function ut({value:l,onChange:n,options:m}){const{t:s}=v.useTranslation();return a.jsxs("fieldset",{className:"fieldset w-full",children:[a.jsx("label",{className:"label",children:s("aidol:creation.personality")}),a.jsx("div",{className:"space-y-2",children:m.map(e=>a.jsxs("label",{className:Y("flex cursor-pointer items-start gap-3 rounded-lg border p-4 transition-colors",l===e.value?"border-primary bg-primary/10":"border-base-300 hover:border-base-content/30"),children:[a.jsx("input",{type:"radio",name:"personality",value:e.value,checked:l===e.value,onChange:d=>n(d.target.value),className:"radio-primary radio mt-0.5"}),a.jsxs("div",{children:[a.jsx("div",{className:"text-base-content font-medium",children:e.label}),e.description&&a.jsx("div",{className:"text-body-s text-base-content/70 mt-1",children:e.description})]})]},e.value))})]})}function ct({currentStep:l,totalSteps:n,labels:m}){return a.jsx("ul",{className:"steps w-full",children:Array.from({length:n},(s,e)=>{const d=e+1,r=d<l,p=d===l;return a.jsx("li",{className:Y("step",(r||p)&&"step-primary"),children:m?.[e]??""},d)})})}const Jl=["cute","cool","elegant","powerful"],Yl=["cheerful","cool","tsundere","gentle"];function jl({onSubmit:l,onComplete:n,onGenerateImage:m,isLoading:s,isGeneratingImage:e,isCompleted:d}){const{t:r}=v.useTranslation(),[p,z]=T.useState(d?3:1),i=T.useMemo(()=>Jl.map(J=>({value:J,label:r(`aidol:creation.concepts.${J}`)})),[r]),G=T.useMemo(()=>Yl.map(J=>({value:J,label:r(`aidol:creation.personalities.${J}.label`),description:r(`aidol:creation.personalities.${J}.description`)})),[r]),{register:u,control:q,handleSubmit:M,trigger:F,watch:x,setValue:E,formState:{errors:S}}=Na.useForm({resolver:Sl(Ma.groupCreationSchema),defaultValues:{groupName:"",concept:"",profileImageUrl:"",members:[{name:"",personality:"",systemPrompt:""}]}}),o=x("profileImageUrl"),{fields:I,append:$}=Na.useFieldArray({control:q,name:"members"}),k=x("members"),g=async J=>{const X=await m(J);X&&E("profileImageUrl",X)},C=async()=>{await F(["groupName","profileImageUrl"])&&z(2)},aa=M(async J=>{const X=J.members.filter(w=>w.name.trim());await l({...J,members:X}),z(3)}),ea=()=>{$({name:"",personality:"",systemPrompt:""})};return a.jsx("main",{className:"bg-base-100 flex min-h-dvh w-full flex-col items-center px-6 py-20",children:a.jsxs("div",{className:"w-full max-w-lg",children:[a.jsx(ct,{currentStep:p,totalSteps:3,labels:[r("aidol:creation.step1"),r("aidol:creation.step2"),r("aidol:creation.step3")]}),a.jsxs("div",{className:"mt-8",children:[p===1&&a.jsxs("div",{className:"space-y-6",children:[a.jsx("h2",{className:"text-display-s font-bold",children:r("aidol:creation.step1Title")}),a.jsx(Ua,{...u("groupName"),error:S.groupName?.message?r(S.groupName.message,{ns:"aidol"}):void 0}),a.jsx(La,{...u("concept"),options:i}),a.jsxs("fieldset",{className:"fieldset",children:[a.jsx("label",{className:"label",children:r("aidol:creation.emblem")}),a.jsx(Wt,{onGenerate:g,isGenerating:e,disabled:s}),o&&a.jsx("div",{className:"mt-2 flex justify-center",children:a.jsx(H,{url:o,alt:r("aidol:creation.emblem")})}),S.profileImageUrl?.message&&a.jsx("p",{className:"text-label-m text-error mt-1",children:r(S.profileImageUrl.message,{ns:"aidol"})})]}),a.jsx("button",{type:"button",onClick:C,disabled:!o,className:"btn btn-primary w-full",children:r("aidol:creation.next")})]}),p===2&&a.jsxs("form",{onSubmit:aa,className:"space-y-6",children:[a.jsx("h2",{className:"text-display-s font-bold",children:r("aidol:creation.step2Title")}),I.map((J,X)=>a.jsxs("div",{className:"border-base-300 space-y-4 rounded-lg border p-4",children:[a.jsxs("div",{className:"flex items-center gap-4",children:[a.jsx(H,{url:null,alt:k[X]?.name??""}),a.jsx("div",{className:"flex-1",children:a.jsx(ka,{...u(`members.${X}.name`),error:S.members?.[X]?.name?.message?r(S.members?.[X]?.name?.message??"",{ns:"aidol"}):void 0})})]}),a.jsx(Na.Controller,{name:`members.${X}.personality`,control:q,render:({field:w})=>a.jsx(ut,{value:w.value??"",onChange:w.onChange,options:G})}),a.jsx(oa,{...u(`members.${X}.systemPrompt`),charCount:k[X]?.systemPrompt?.length??0})]},J.id)),a.jsx(pt,{onClick:ea,isLoading:!1}),S.members?.root?.message&&a.jsx("p",{className:"text-error text-center",children:r(S.members.root.message,{ns:"aidol"})}),a.jsxs("div",{className:"flex gap-4",children:[a.jsx("button",{type:"button",onClick:()=>z(1),className:"btn btn-ghost flex-1",disabled:s,children:r("aidol:creation.back")}),a.jsx("button",{type:"submit",className:"btn btn-primary flex-1",disabled:s,children:s?a.jsx("span",{className:"loading loading-spinner loading-sm"}):r("aidol:creation.create")})]})]}),p===3&&a.jsxs("div",{className:"space-y-6 text-center",children:[a.jsx("div",{className:"text-display-l",children:"🎉"}),a.jsx("h2",{className:"text-display-s font-bold",children:r("aidol:creation.completeTitle")}),a.jsx("p",{className:"text-body-l text-base-content/70",children:r("aidol:creation.completeDescription")}),a.jsx("button",{onClick:n,className:"btn btn-primary w-full",children:r("aidol:creation.viewProfile")})]})]})]})})}function Ot({label:l,leftLabel:n,rightLabel:m,value:s,onChange:e}){return a.jsxs("div",{className:"flex flex-col gap-2",children:[a.jsx("span",{className:"text-label-l text-base-content",children:l}),a.jsx("input",{type:"range",min:1,max:10,step:1,value:s,onChange:d=>e(Number(d.target.value)),className:"range range-primary range-sm"}),a.jsxs("div",{className:"flex justify-between",children:[a.jsx("span",{className:"text-label-m text-primary",children:n}),a.jsx("span",{className:"text-label-m text-primary",children:m})]})]})}function Xl({values:l,onChange:n}){const{t:m}=v.useTranslation(),s=[{key:"energy",label:m("aidol:companionCreate.personality.energy"),leftLabel:m("aidol:companionCreate.personality.energyLeft"),rightLabel:m("aidol:companionCreate.personality.energyRight")},{key:"perception",label:m("aidol:companionCreate.personality.perception"),leftLabel:m("aidol:companionCreate.personality.perceptionLeft"),rightLabel:m("aidol:companionCreate.personality.perceptionRight")},{key:"judgment",label:m("aidol:companionCreate.personality.judgment"),leftLabel:m("aidol:companionCreate.personality.judgmentLeft"),rightLabel:m("aidol:companionCreate.personality.judgmentRight")},{key:"lifestyle",label:m("aidol:companionCreate.personality.lifestyle"),leftLabel:m("aidol:companionCreate.personality.lifestyleLeft"),rightLabel:m("aidol:companionCreate.personality.lifestyleRight")}];return a.jsx("div",{className:"flex flex-col gap-6",children:s.map(({key:e,label:d,leftLabel:r,rightLabel:p})=>a.jsx(Ot,{label:d,leftLabel:r,rightLabel:p,value:l[e],onChange:z=>n({...l,[e]:z})},e))})}function Kl({prompt:l,onPromptChange:n,onGenerate:m,isGenerating:s,imageUrl:e,hasGenerated:d}){const{t:r}=v.useTranslation();return a.jsxs("div",{className:"flex flex-col gap-4",children:[a.jsx("input",{type:"text",value:l,onChange:p=>n(p.target.value),placeholder:r("aidol:companionCreate.image.promptPlaceholder"),className:"input w-full bg-white text-black"}),a.jsxs("button",{type:"button",onClick:m,disabled:s||!l.trim(),className:"btn btn-primary w-full",children:[s&&a.jsx("span",{className:"loading loading-spinner"}),r(d?"aidol:companionCreate.image.regenerate":"aidol:companionCreate.image.generate")]}),e?a.jsx("div",{className:"relative aspect-square w-full overflow-hidden rounded-lg",children:a.jsx(h,{src:e,alt:"Generated profile",fill:!0,className:"object-cover"})}):a.jsxs("div",{className:"border-base-300 bg-base-100 flex aspect-square w-full flex-col items-center justify-center gap-4 rounded-lg border",children:[a.jsx(dt,{className:"text-neutral size-6"}),a.jsx("p",{className:"text-body-m text-neutral text-center whitespace-pre-line",children:r("aidol:companionCreate.image.placeholder")})]})]})}function vt({step:l,title:n,children:m}){const s=l.toString().padStart(2,"0");return a.jsxs("div",{className:"bg-base-200 flex w-full flex-col gap-6 rounded-lg p-6",children:[a.jsx("span",{className:"text-title-s text-primary",children:s}),a.jsx("h3",{className:"text-title-s text-base-content",children:n}),a.jsx("div",{className:"flex flex-col gap-4",children:m})]})}const na={initial:{y:40,opacity:0},animate:{y:0,opacity:1,transition:{duration:.8,ease:"easeInOut"}}},Fl={animate:{transition:{staggerChildren:.15}}};function fl({onGetStarted:l,isLoading:n,logoUrl:m="/images/logo.svg",videoUrl:s}){const{t:e}=v.useTranslation();return a.jsx("section",{className:"bg-base-100 flex min-h-screen w-full flex-col items-center px-6 pt-12 pb-8",children:a.jsxs(D.motion.div,{variants:Fl,initial:"initial",animate:"animate",className:"flex w-full flex-col items-center text-center",children:[a.jsx(D.motion.div,{variants:na,className:"mb-6",children:a.jsx(h,{src:m,alt:"AIdol",width:92,height:28,priority:!0})}),a.jsxs(D.motion.h1,{variants:na,className:"text-display-s mb-3",children:[e("aidol:landing.hero.title.line1"),a.jsx("br",{}),e("aidol:landing.hero.title.line2")]}),a.jsxs(D.motion.div,{variants:na,className:"text-headline-s text-base-content mb-8 flex flex-col",children:[a.jsx("p",{className:"text-neutral",children:e("aidol:landing.hero.line1")}),a.jsx("p",{className:"text-neutral",children:e("aidol:landing.hero.line2")}),a.jsx("p",{children:e("aidol:landing.hero.line3")}),a.jsx("p",{children:e("aidol:landing.hero.line4")})]}),a.jsx(D.motion.div,{variants:na,className:"bg-base-200 relative mb-6 aspect-[345/368] w-full overflow-hidden rounded-lg",children:s&&a.jsx("video",{src:s,autoPlay:!0,loop:!0,muted:!0,playsInline:!0,className:"size-full object-cover"})}),a.jsx(D.motion.div,{variants:na,className:"w-full",children:a.jsx("button",{onClick:l,disabled:n,className:"btn btn-primary btn-lg text-label-l w-full rounded-lg",children:n?a.jsx("span",{className:"loading loading-spinner loading-sm"}):e("aidol:landing.hero.cta")})})]})})}function xl({onNewMember:l}){const{t:n}=v.useTranslation();return a.jsxs("div",{className:"bg-base-200 col-span-2 flex flex-col items-center justify-center gap-4 rounded-lg p-4",children:[a.jsxs("div",{className:"text-body-s text-base-content flex flex-col items-start text-center",children:[a.jsx("p",{children:n("aidol:casting.newMember.prompt")}),a.jsx("p",{children:n("aidol:casting.newMember.subPrompt")})]}),a.jsxs("button",{type:"button",className:"btn btn-primary gap-2.5",onClick:l,children:[n("aidol:casting.addMember"),a.jsx(rt,{className:"size-4"})]})]})}function Rl({companions:l,onCompanionClick:n,onNewMember:m}){return a.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[l.map(s=>a.jsx(_,{companion:s,onClick:()=>n(s)},s.id)),a.jsx(xl,{onNewMember:m})]})}function hl({title:l,titleId:n,...m},s){return N.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:s,"aria-labelledby":n},m),l?N.createElement("title",{id:n},l):null,N.createElement("path",{fillRule:"evenodd",d:"M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12Zm13.36-1.814a.75.75 0 1 0-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 0 0-1.06 1.06l2.25 2.25a.75.75 0 0 0 1.14-.094l3.75-5.25Z",clipRule:"evenodd"}))}const Cl=N.forwardRef(hl);function wl({title:l,titleId:n,...m},s){return N.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:s,"aria-labelledby":n},m),l?N.createElement("title",{id:n},l):null,N.createElement("path",{d:"m11.645 20.91-.007-.003-.022-.012a15.247 15.247 0 0 1-.383-.218 25.18 25.18 0 0 1-4.244-3.17C4.688 15.36 2.25 12.174 2.25 8.25 2.25 5.322 4.714 3 7.688 3A5.5 5.5 0 0 1 12 5.052 5.5 5.5 0 0 1 16.313 3c2.973 0 5.437 2.322 5.437 5.25 0 3.925-2.438 7.111-4.739 9.256a25.175 25.175 0 0 1-4.244 3.17 15.247 15.247 0 0 1-.383.219l-.022.012-.007.004-.003.001a.752.752 0 0 1-.704 0l-.003-.001Z"}))}const Al=N.forwardRef(wl);function Ql(){const{t:l}=v.useTranslation();return a.jsxs("div",{className:"flex flex-col gap-1",children:[a.jsxs("div",{className:"flex flex-col items-start gap-1",children:[a.jsx(Cl,{className:"text-primary size-6 shrink-0"}),a.jsx("h3",{className:"text-title-s text-base-content",children:l("aidol:casting.infoBanner.title")})]}),a.jsx("p",{className:"text-body-s text-base-content/60",children:l("aidol:casting.infoBanner.description")})]})}const Dl=["mixed","boy","girl"];function El({activeTab:l,onTabChange:n}){const{t:m}=v.useTranslation();return a.jsx("div",{role:"tablist",className:"flex gap-2",children:Dl.map(s=>a.jsx("button",{type:"button",role:"tab","aria-selected":l===s,className:Y("text-label-l rounded-lg border p-2",l===s?"border-base-content text-base-content":"border-base-300 text-base-300"),onClick:()=>n(s),children:m(`aidol:casting.tabs.${s}`)},s))})}var Ga={exports:{}},sa={},tt;function Il(){if(tt)return sa;tt=1;var l=T,n=Symbol.for("react.element"),m=Symbol.for("react.fragment"),s=Object.prototype.hasOwnProperty,e=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,d={key:!0,ref:!0,__self:!0,__source:!0};function r(p,z,i){var G,u={},q=null,M=null;i!==void 0&&(q=""+i),z.key!==void 0&&(q=""+z.key),z.ref!==void 0&&(M=z.ref);for(G in z)s.call(z,G)&&!d.hasOwnProperty(G)&&(u[G]=z[G]);if(p&&p.defaultProps)for(G in z=p.defaultProps,z)u[G]===void 0&&(u[G]=z[G]);return{$$typeof:n,type:p,key:q,ref:M,props:u,_owner:e.current}}return sa.Fragment=m,sa.jsx=r,sa.jsxs=r,sa}var za={},lt;function gl(){return lt||(lt=1,process.env.NODE_ENV!=="production"&&(function(){var l=T,n=Symbol.for("react.element"),m=Symbol.for("react.portal"),s=Symbol.for("react.fragment"),e=Symbol.for("react.strict_mode"),d=Symbol.for("react.profiler"),r=Symbol.for("react.provider"),p=Symbol.for("react.context"),z=Symbol.for("react.forward_ref"),i=Symbol.for("react.suspense"),G=Symbol.for("react.suspense_list"),u=Symbol.for("react.memo"),q=Symbol.for("react.lazy"),M=Symbol.for("react.offscreen"),F=Symbol.iterator,x="@@iterator";function E(t){if(t===null||typeof t!="object")return null;var Z=F&&t[F]||t[x];return typeof Z=="function"?Z:null}var S=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function o(t){{for(var Z=arguments.length,b=new Array(Z>1?Z-1:0),W=1;W<Z;W++)b[W-1]=arguments[W];I("error",t,b)}}function I(t,Z,b){{var W=S.ReactDebugCurrentFrame,V=W.getStackAddendum();V!==""&&(Z+="%s",b=b.concat([V]));var y=b.map(function(O){return String(O)});y.unshift("Warning: "+Z),Function.prototype.apply.call(console[t],console,y)}}var $=!1,k=!1,g=!1,C=!1,aa=!1,ea;ea=Symbol.for("react.module.reference");function J(t){return!!(typeof t=="string"||typeof t=="function"||t===s||t===d||aa||t===e||t===i||t===G||C||t===M||$||k||g||typeof t=="object"&&t!==null&&(t.$$typeof===q||t.$$typeof===u||t.$$typeof===r||t.$$typeof===p||t.$$typeof===z||t.$$typeof===ea||t.getModuleId!==void 0))}function X(t,Z,b){var W=t.displayName;if(W)return W;var V=Z.displayName||Z.name||"";return V!==""?b+"("+V+")":b}function w(t){return t.displayName||"Context"}function R(t){if(t==null)return null;if(typeof t.tag=="number"&&o("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case s:return"Fragment";case m:return"Portal";case d:return"Profiler";case e:return"StrictMode";case i:return"Suspense";case G:return"SuspenseList"}if(typeof t=="object")switch(t.$$typeof){case p:var Z=t;return w(Z)+".Consumer";case r:var b=t;return w(b._context)+".Provider";case z:return X(t,t.render,"ForwardRef");case u:var W=t.displayName||null;return W!==null?W:R(t.type)||"Memo";case q:{var V=t,y=V._payload,O=V._init;try{return R(O(y))}catch{return null}}}return null}var A=Object.assign,ta=0,Ja,Ya,ja,Xa,Ka,Fa,fa;function xa(){}xa.__reactDisabledLog=!0;function yt(){{if(ta===0){Ja=console.log,Ya=console.info,ja=console.warn,Xa=console.error,Ka=console.group,Fa=console.groupCollapsed,fa=console.groupEnd;var t={configurable:!0,enumerable:!0,value:xa,writable:!0};Object.defineProperties(console,{info:t,log:t,warn:t,error:t,group:t,groupCollapsed:t,groupEnd:t})}ta++}}function Tt(){{if(ta--,ta===0){var t={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:A({},t,{value:Ja}),info:A({},t,{value:Ya}),warn:A({},t,{value:ja}),error:A({},t,{value:Xa}),group:A({},t,{value:Ka}),groupCollapsed:A({},t,{value:Fa}),groupEnd:A({},t,{value:fa})})}ta<0&&o("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var ca=S.ReactCurrentDispatcher,Oa;function ra(t,Z,b){{if(Oa===void 0)try{throw Error()}catch(V){var W=V.stack.trim().match(/\n( *(at )?)/);Oa=W&&W[1]||""}return`
|
|
1
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),v=require("react-i18next"),h=require("next/image"),T=require("react"),D=require("framer-motion"),Pt=require("react-markdown"),Bt=require("remark-breaks"),Ht=require("remark-gfm"),Ma=require("./lead-BsbXYIV4.js"),at=require("@hookform/resolvers"),Na=require("react-hook-form");function _t(l){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(l){for(const m in l)if(m!=="default"){const s=Object.getOwnPropertyDescriptor(l,m);Object.defineProperty(n,m,s.get?s:{enumerable:!0,get:()=>l[m]})}}return n.default=l,Object.freeze(n)}const N=_t(T);function et(l){var n,m,s="";if(typeof l=="string"||typeof l=="number")s+=l;else if(typeof l=="object")if(Array.isArray(l)){var e=l.length;for(n=0;n<e;n++)l[n]&&(m=et(l[n]))&&(s&&(s+=" "),s+=m)}else for(m in l)l[m]&&(s&&(s+=" "),s+=m);return s}function Y(){for(var l,n,m=0,s="",e=arguments.length;m<e;m++)(l=arguments[m])&&(n=et(l))&&(s&&(s+=" "),s+=n);return s}function $t({title:l,titleId:n,...m},s){return N.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:s,"aria-labelledby":n},m),l?N.createElement("title",{id:n},l):null,N.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18"}))}const al=N.forwardRef($t);function tl({title:l,titleId:n,...m},s){return N.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:s,"aria-labelledby":n},m),l?N.createElement("title",{id:n},l):null,N.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 12.75 6 6 9-13.5"}))}const ll=N.forwardRef(tl);function nl({title:l,titleId:n,...m},s){return N.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:s,"aria-labelledby":n},m),l?N.createElement("title",{id:n},l):null,N.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"}))}const sl=N.forwardRef(nl);function ml({title:l,titleId:n,...m},s){return N.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:s,"aria-labelledby":n},m),l?N.createElement("title",{id:n},l):null,N.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 15 12 18.75 15.75 15m-7.5-6L12 5.25 15.75 9"}))}const el=N.forwardRef(ml);function rl({title:l,titleId:n,...m},s){return N.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:s,"aria-labelledby":n},m),l?N.createElement("title",{id:n},l):null,N.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 12 3.269 3.125A59.769 59.769 0 0 1 21.485 12 59.768 59.768 0 0 1 3.27 20.875L5.999 12Zm0 0h7.5"}))}const dl=N.forwardRef(rl);function Zl({title:l,titleId:n,...m},s){return N.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:s,"aria-labelledby":n},m),l?N.createElement("title",{id:n},l):null,N.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 4.5v15m7.5-7.5h-15"}))}const rt=N.forwardRef(Zl);function bl({title:l,titleId:n,...m},s){return N.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:s,"aria-labelledby":n},m),l?N.createElement("title",{id:n},l):null,N.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7.217 10.907a2.25 2.25 0 1 0 0 2.186m0-2.186c.18.324.283.696.283 1.093s-.103.77-.283 1.093m0-2.186 9.566-5.314m-9.566 7.5 9.566 5.314m0 0a2.25 2.25 0 1 0 3.935 2.186 2.25 2.25 0 0 0-3.935-2.186Zm0-12.814a2.25 2.25 0 1 0 3.933-2.185 2.25 2.25 0 0 0-3.933 2.185Z"}))}const pl=N.forwardRef(bl);function zl({title:l,titleId:n,...m},s){return N.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:s,"aria-labelledby":n},m),l?N.createElement("title",{id:n},l):null,N.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"}))}const dt=N.forwardRef(zl);function Nl({title:l,titleId:n,...m},s){return N.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:s,"aria-labelledby":n},m),l?N.createElement("title",{id:n},l):null,N.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M18 18.72a9.094 9.094 0 0 0 3.741-.479 3 3 0 0 0-4.682-2.72m.94 3.198.001.031c0 .225-.012.447-.037.666A11.944 11.944 0 0 1 12 21c-2.17 0-4.207-.576-5.963-1.584A6.062 6.062 0 0 1 6 18.719m12 0a5.971 5.971 0 0 0-.941-3.197m0 0A5.995 5.995 0 0 0 12 12.75a5.995 5.995 0 0 0-5.058 2.772m0 0a3 3 0 0 0-4.681 2.72 8.986 8.986 0 0 0 3.74.477m.94-3.197a5.971 5.971 0 0 0-.94 3.197M15 6.75a3 3 0 1 1-6 0 3 3 0 0 1 6 0Zm6 3a2.25 2.25 0 1 1-4.5 0 2.25 2.25 0 0 1 4.5 0Zm-13.5 0a2.25 2.25 0 1 1-4.5 0 2.25 2.25 0 0 1 4.5 0Z"}))}const Wl=N.forwardRef(Nl);function ul({title:l,titleId:n,...m},s){return N.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:s,"aria-labelledby":n},m),l?N.createElement("title",{id:n},l):null,N.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 6a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0ZM4.501 20.118a7.5 7.5 0 0 1 14.998 0A17.933 17.933 0 0 1 12 21.75c-2.676 0-5.216-.584-7.499-1.632Z"}))}const cl=N.forwardRef(ul);function Ol({title:l,titleId:n,...m},s){return N.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:s,"aria-labelledby":n},m),l?N.createElement("title",{id:n},l):null,N.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18 18 6M6 6l12 12"}))}const vl=N.forwardRef(Ol),ql={default:"size-profile",profile:"size-full"};function H({url:l,alt:n,variant:m="default"}){return a.jsx("div",{className:Y("border-base-300 bg-base-200 relative overflow-hidden rounded-lg border",ql[m]),children:l?a.jsx(h,{src:l,alt:n,fill:!0,draggable:!1,className:"size-full object-cover"}):a.jsx("div",{className:"flex size-full items-center justify-center",children:a.jsx(cl,{className:"text-base-content/50 size-1/2"})})})}function _({companion:l,variant:n="grade",onClick:m}){const{t:s}=v.useTranslation(),d=l.aidolId!==null&&n==="grade",r=m&&!d,p=n==="position"?"opacity-30":d?"opacity-20":"opacity-60",z=n==="position"?l.position?s(`aidol:position.${l.position}`):s("aidol:position.unassigned"):s("companion.grade",{grade:l.grade});return a.jsxs("div",{className:Y("h-card max-w-card border-base-300 relative isolate w-full overflow-hidden rounded-lg border",r&&"cursor-pointer"),onClick:r?m:void 0,role:r?"button":void 0,tabIndex:r?0:void 0,onKeyDown:r?i=>{(i.key==="Enter"||i.key===" ")&&(i.preventDefault(),m())}:void 0,children:[a.jsx("div",{className:"absolute inset-0",children:a.jsx(H,{url:l.profilePictureUrl,alt:l.name??"",variant:"profile"})}),d&&a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"absolute inset-0 z-20 bg-black/40 backdrop-blur-sm"}),a.jsx("div",{className:"absolute top-4 left-4 z-20",children:a.jsx("span",{className:"bg-base-100 text-body-s text-base-content w-fit rounded-lg px-2 py-1",children:s("companion.signed")})})]}),a.jsx("div",{className:Y("absolute inset-x-0 bottom-0 h-24 bg-gradient-to-t from-black to-transparent",p)}),a.jsxs("div",{className:"absolute inset-x-4 bottom-4 z-10 flex flex-col gap-2",children:[a.jsx("span",{className:"text-title-s text-white",children:l.name}),a.jsx("span",{className:"text-body-s w-fit rounded-lg bg-black px-2 py-1 text-white",children:z})]})]})}function Vl({companions:l,onCompanionClick:n}){const{t:m}=v.useTranslation();return a.jsxs("div",{className:"mt-8",children:[a.jsx("h2",{className:"text-title-l mb-4 font-semibold",children:m("aidol:aidol.members")}),l&&l.length>0?a.jsx("div",{className:"grid gap-4 sm:grid-cols-2",children:l.map(s=>a.jsx(_,{companion:s,onClick:()=>n(s.id)},s.id))}):a.jsx("p",{className:"text-base-content/50 text-center",children:m("aidol:aidol.noMembers")})]})}function il({aidol:l}){return a.jsxs("div",{className:"flex flex-col items-center gap-4 py-8 text-center",children:[a.jsx("div",{className:"bg-base-200 relative size-32 overflow-hidden rounded-full",children:l.profileImageUrl?a.jsx(h,{src:l.profileImageUrl,alt:l.name??"Group",fill:!0,className:"object-cover"}):a.jsx("div",{className:"from-primary/20 to-secondary/20 flex size-full items-center justify-center bg-gradient-to-br",children:a.jsx(Wl,{className:"text-base-content/50 size-16"})})}),a.jsxs("div",{children:[a.jsx("h1",{className:"text-display-s text-base-content font-bold",children:l.name}),l.concept&&a.jsx("p",{className:"text-body-l text-base-content/70 mt-2",children:l.concept})]})]})}function Zt({onSubmit:l}){const[n,m]=T.useState(""),s=async e=>{e.preventDefault(),n.trim()&&(await l(n),m(""))};return a.jsx("form",{onSubmit:s,className:"flex items-center gap-2 px-4 py-2",children:a.jsxs("div",{className:"relative flex-1",children:[a.jsx("input",{type:"text",value:n,onChange:e=>m(e.target.value),placeholder:"Enter your message...",className:"input bg-neutral/30 text-base-content placeholder:text-base-content focus:border-primary w-full pr-12"}),a.jsx("button",{type:"submit",className:"btn btn-circle btn-ghost text-primary hover:bg-primary hover:text-primary-content absolute top-1/2 right-2 -translate-y-1/2",children:a.jsx(dl,{className:"size-6"})})]})})}function bt({messages:l}){return l?a.jsx("div",{className:"flex flex-col-reverse space-y-4 space-y-reverse p-4",children:l.map(n=>{const m=n.senderType===Ma.SenderType.USER;return a.jsx(D.motion.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},transition:{duration:.3},className:Y("flex items-start space-x-2 rounded-lg p-2 shadow-sm",{"bg-primary text-primary-content flex-row-reverse":m,"bg-neutral text-neutral-content":!m}),children:a.jsx("div",{className:"text-body-m max-w-[60%] break-words",children:a.jsx(Pt,{remarkPlugins:[Ht,Bt],className:Y("prose max-w-none flex-1",{"text-primary-content":m,"text-neutral-content":!m}),children:n.content})})},n.id)})}):a.jsx("div",{className:"flex flex-col space-y-4 p-4",children:[...Array(5)].map((n,m)=>a.jsxs("div",{className:"flex animate-pulse items-start space-x-2",children:[a.jsx("div",{className:"avatar placeholder",children:a.jsx("div",{className:"bg-neutral w-10 rounded-full"})}),a.jsxs("div",{className:"flex-1 space-y-2 py-1",children:[a.jsx("div",{className:"bg-neutral h-4 w-1/2 rounded-sm"}),a.jsx("div",{className:"bg-neutral h-4 w-3/4 rounded-sm"})]})]},m))})}function yl({messages:l,onSendMessage:n}){return a.jsxs("div",{className:"flex h-full flex-col",children:[a.jsx("div",{className:"flex-1 overflow-y-auto",children:a.jsx(bt,{messages:l})}),a.jsx(Zt,{onSubmit:n})]})}function pt({onClick:l,isLoading:n}){const{t:m}=v.useTranslation();return a.jsx("button",{onClick:l,disabled:n,className:"btn btn-neutral text-label-l text-neutral-content h-16 min-w-48",children:n?a.jsx("span",{className:"loading loading-spinner loading-sm"}):a.jsxs(a.Fragment,{children:[a.jsx(rt,{className:"size-5"}),m("aidol:companion.addMember")]})})}const pa=["vocal","dance","rap","visual","stamina","charm"];function Tl({stats:l}){const{t:n}=v.useTranslation(),m=260,s=m/2,e=70,d=100,r=(u,q)=>{const M=Math.PI*2*u/6-Math.PI/3,F=q/100*e;return{x:s+F*Math.cos(M),y:s+F*Math.sin(M)}},p=u=>{const q=Math.PI*2*u/6-Math.PI/3;return{x:s+d*Math.cos(q),y:s+d*Math.sin(q)}},z=pa.map((u,q)=>r(q,l[u])),i=z.map(u=>`${u.x},${u.y}`).join(" "),G=[20,40,60,80,100];return a.jsx("div",{className:"flex items-center justify-center",children:a.jsxs("svg",{width:m,height:m,viewBox:`0 0 ${m} ${m}`,children:[G.map(u=>{const M=pa.map((F,x)=>r(x,u)).map(F=>`${F.x},${F.y}`).join(" ");return a.jsx("polygon",{points:M,fill:"none",stroke:"currentColor",strokeWidth:"1",className:"text-base-300"},u)}),pa.map((u,q)=>{const M=r(q,100);return a.jsx("line",{x1:s,y1:s,x2:M.x,y2:M.y,stroke:"currentColor",strokeWidth:"1",className:"text-base-300"},q)}),a.jsx("polygon",{points:i,fill:"currentColor",fillOpacity:"0.3",stroke:"currentColor",strokeWidth:"2",className:"text-secondary"}),z.map((u,q)=>a.jsx("circle",{cx:u.x,cy:u.y,r:"3",fill:"currentColor",className:"text-secondary"},q)),pa.map((u,q)=>{const M=p(q);return a.jsxs("g",{children:[a.jsx("text",{x:M.x,y:M.y-8,textAnchor:"middle",dominantBaseline:"middle",className:"text-label-l fill-base-content font-medium",children:n(`aidol:casting.abilities.${u}`)}),a.jsx("text",{x:M.x,y:M.y+10,textAnchor:"middle",dominantBaseline:"middle",className:"text-label-l fill-secondary font-medium",children:l[u]})]},u)})]})})}function zt({companion:l,showBiography:n=!0,showStats:m=!0}){const{t:s}=v.useTranslation(),{name:e,profilePictureUrl:d,grade:r,mbti:p,biography:z,stats:i}=l;return a.jsxs("div",{className:"flex flex-col items-center gap-6",children:[a.jsx(H,{url:d??null,alt:e??""}),a.jsxs("div",{className:"flex flex-col gap-2 self-start",children:[a.jsx("h2",{className:"text-title-s text-base-content font-semibold",children:e??""}),(r||p)&&a.jsxs("div",{className:"flex gap-2",children:[r&&a.jsx("span",{className:"text-label-l bg-base-content text-base-100 rounded-lg px-2 py-1",children:s("aidol:companion.grade",{grade:r})}),p&&a.jsx("span",{className:"text-label-l bg-base-content text-base-100 rounded-lg px-2 py-1",children:p})]})]}),n&&z&&a.jsx("p",{className:"text-body-s text-base-content",children:z}),m&&i&&a.jsx(Tl,{stats:i})]})}const oa=T.forwardRef(({placeholder:l,maxLength:n=500,charCount:m,...s},e)=>{const{t:d}=v.useTranslation();return a.jsxs("div",{className:"w-full",children:[a.jsx("textarea",{ref:e,placeholder:l??d("aidol:companion.promptPlaceholder"),maxLength:n,className:"textarea bg-base-100 text-base-content placeholder:text-base-content/50 focus:border-primary h-32 w-full resize-none focus:outline-hidden",...s}),a.jsxs("div",{className:"text-label-s text-base-content/50 mt-1 text-right",children:[m??0,"/",n]})]})});oa.displayName="PromptInput";function Gl({value:l,onChange:n}){const{t:m}=v.useTranslation();return a.jsx("input",{type:"text",value:l,onChange:s=>n(s.target.value),placeholder:m("aidol:companionCreate.complete.bioPlaceholder"),className:"input w-full bg-white text-black"})}function ua({title:l,logo:n,onDropdownClick:m,onBackClick:s,onCloseClick:e,children:d}){const r=()=>n?a.jsx(h,{src:"/images/logo.svg",alt:"alola",width:91,height:27}):m?a.jsxs("button",{type:"button",onClick:m,className:"text-headline-s text-base-content flex cursor-pointer items-center gap-2",children:[a.jsx("span",{children:l}),a.jsx(el,{className:"size-6"})]}):a.jsxs("div",{className:"flex items-center gap-2",children:[s&&a.jsx("button",{type:"button",onClick:s,className:"text-base-content flex cursor-pointer items-center justify-center","aria-label":"뒤로 가기",children:a.jsx(al,{className:"size-6"})}),e&&a.jsx("button",{type:"button",onClick:e,className:"text-base-content flex cursor-pointer items-center justify-center","aria-label":"닫기",children:a.jsx(vl,{className:"size-6"})}),l&&a.jsx("h1",{className:"text-headline-s text-base-content",children:l})]});return a.jsxs("header",{className:"h-header bg-base-100 flex shrink-0 items-center justify-between px-6 py-7",children:[r(),d&&a.jsx("div",{className:"flex shrink-0 items-center gap-2",children:d})]})}function Nt({progress:l}){const n=Math.min(100,Math.max(0,l));return a.jsx("div",{className:"bg-primary/20 h-3 w-full overflow-hidden rounded-full",children:a.jsx("div",{className:"bg-primary h-full rounded-full transition-all duration-500 ease-out",style:{width:`${n}%`}})})}function Ml({step:l,totalSteps:n,children:m,bottomButton:s}){const{t:e}=v.useTranslation(),d=l/n*100;return a.jsxs("div",{className:"flex min-h-dvh flex-col",children:[a.jsx(ua,{title:e("aidol:companionCreate.title")}),a.jsx("div",{className:"px-6 py-4",children:a.jsx(Nt,{progress:d})}),a.jsx("div",{className:"flex flex-1 flex-col gap-6 p-6",children:m}),a.jsx("div",{className:"sticky bottom-0 p-6",children:s})]})}const ol=/[!@#$%^&*()+=[\]{}|\\;:'",.<>?/`~_]/g;function Ll({value:l,onChange:n,maxLength:m=10}){const{t:s}=v.useTranslation();return a.jsx("input",{type:"text",value:l,onChange:e=>n(e.target.value.replace(ol,"").slice(0,m)),placeholder:s("aidol:companionCreate.complete.namePlaceholder"),className:"input w-full bg-white text-black"})}const La=T.forwardRef(({options:l,...n},m)=>{const{t:s}=v.useTranslation();return a.jsxs("fieldset",{className:"fieldset w-full",children:[a.jsx("label",{className:"label",children:s("aidol:creation.concept")}),a.jsxs("select",{ref:m,className:"select bg-base-100 text-base-content w-full",...n,children:[a.jsx("option",{value:"",children:s("aidol:creation.selectConcept")}),l.map(e=>a.jsx("option",{value:e.value,children:e.label},e.value))]})]})});La.displayName="ConceptSelector";function Ul({value:l,onChange:n}){const{t:m}=v.useTranslation(),s=[{gender:"female",label:m("aidol:companionCreate.gender.female")},{gender:"male",label:m("aidol:companionCreate.gender.male")}];return a.jsx("div",{className:"flex gap-4",children:s.map(({gender:e,label:d})=>a.jsx("button",{type:"button",onClick:()=>n(e),className:Y("text-label-l flex-1 rounded-lg border px-6 py-3 transition-colors",l===e?"border-primary text-primary bg-white":"border-base-300 text-base-content bg-white"),children:d},e))})}function Wt({onGenerate:l,isGenerating:n,disabled:m}){const{t:s}=v.useTranslation(),[e,d]=T.useState(""),r=()=>{e.trim()&&l(e)},p=z=>{z.key==="Enter"&&e.trim()&&!n&&!m&&(z.preventDefault(),r())};return a.jsxs("fieldset",{className:"fieldset w-full",children:[a.jsxs("div",{className:"flex gap-2",children:[a.jsx("input",{type:"text",value:e,onChange:z=>d(z.target.value),onKeyDown:p,placeholder:s("aidol:creation.emblemPromptPlaceholder"),maxLength:200,className:"input flex-1",disabled:m||n,"data-testid":"emblem-prompt-input"}),a.jsx("button",{type:"button",onClick:r,disabled:m||n||!e.trim(),className:"btn btn-secondary","data-testid":"emblem-generate-button",children:n?a.jsx("span",{className:"loading loading-spinner loading-sm"}):s("aidol:creation.generate")})]}),n&&a.jsx("div",{className:"mt-2",children:a.jsx("progress",{className:"progress w-full"})})]})}var kl=function(l,n){for(var m={};l.length;){var s=l[0],e=s.code,d=s.message,r=s.path.join(".");if(!m[r])if("unionErrors"in s){var p=s.unionErrors[0].errors[0];m[r]={message:p.message,type:p.code}}else m[r]={message:d,type:e};if("unionErrors"in s&&s.unionErrors.forEach(function(G){return G.errors.forEach(function(u){return l.push(u)})}),n){var z=m[r].types,i=z&&z[s.code];m[r]=Na.appendErrors(r,n,m,e,i?[].concat(i,s.message):s.message)}l.shift()}return m},Sl=function(l,n,m){return m===void 0&&(m={}),function(s,e,d){try{return Promise.resolve((function(r,p){try{var z=Promise.resolve(l[m.mode==="sync"?"parse":"parseAsync"](s,n)).then(function(i){return d.shouldUseNativeValidation&&at.validateFieldsNatively({},d),{errors:{},values:m.raw?s:i}})}catch(i){return p(i)}return z&&z.then?z.then(void 0,p):z})(0,function(r){if((function(p){return Array.isArray(p?.errors)})(r))return{values:{},errors:at.toNestErrors(kl(r.errors,!d.shouldUseNativeValidation&&d.criteriaMode==="all"),d)};throw r}))}catch(r){return Promise.reject(r)}}};const Ua=T.forwardRef(({error:l,...n},m)=>{const{t:s}=v.useTranslation();return a.jsxs("fieldset",{className:"fieldset w-full",children:[a.jsx("label",{className:"label",children:s("aidol:creation.groupName")}),a.jsx("input",{ref:m,type:"text",placeholder:s("aidol:creation.groupNamePlaceholder"),className:Y("input bg-base-100 text-base-content placeholder:text-base-content/50 w-full",l&&"input-error"),...n}),l&&a.jsx("span",{className:"text-label-m text-error",children:l})]})});Ua.displayName="GroupNameInput";const ka=T.forwardRef(({error:l,...n},m)=>{const{t:s}=v.useTranslation();return a.jsxs("fieldset",{className:"fieldset w-full",children:[a.jsx("label",{className:"label",children:s("aidol:creation.memberName")}),a.jsx("input",{ref:m,type:"text",placeholder:s("aidol:creation.memberNamePlaceholder"),className:Y("input bg-base-100 text-base-content placeholder:text-base-content/50 w-full",l&&"input-error"),...n}),l&&a.jsx("span",{className:"text-label-m text-error",children:l})]})});ka.displayName="MemberNameInput";function ut({value:l,onChange:n,options:m}){const{t:s}=v.useTranslation();return a.jsxs("fieldset",{className:"fieldset w-full",children:[a.jsx("label",{className:"label",children:s("aidol:creation.personality")}),a.jsx("div",{className:"space-y-2",children:m.map(e=>a.jsxs("label",{className:Y("flex cursor-pointer items-start gap-3 rounded-lg border p-4 transition-colors",l===e.value?"border-primary bg-primary/10":"border-base-300 hover:border-base-content/30"),children:[a.jsx("input",{type:"radio",name:"personality",value:e.value,checked:l===e.value,onChange:d=>n(d.target.value),className:"radio-primary radio mt-0.5"}),a.jsxs("div",{children:[a.jsx("div",{className:"text-base-content font-medium",children:e.label}),e.description&&a.jsx("div",{className:"text-body-s text-base-content/70 mt-1",children:e.description})]})]},e.value))})]})}function ct({currentStep:l,totalSteps:n,labels:m}){return a.jsx("ul",{className:"steps w-full",children:Array.from({length:n},(s,e)=>{const d=e+1,r=d<l,p=d===l;return a.jsx("li",{className:Y("step",(r||p)&&"step-primary"),children:m?.[e]??""},d)})})}const Jl=["cute","cool","elegant","powerful"],Yl=["cheerful","cool","tsundere","gentle"];function jl({onSubmit:l,onComplete:n,onGenerateImage:m,isLoading:s,isGeneratingImage:e,isCompleted:d}){const{t:r}=v.useTranslation(),[p,z]=T.useState(d?3:1),i=T.useMemo(()=>Jl.map(J=>({value:J,label:r(`aidol:creation.concepts.${J}`)})),[r]),G=T.useMemo(()=>Yl.map(J=>({value:J,label:r(`aidol:creation.personalities.${J}.label`),description:r(`aidol:creation.personalities.${J}.description`)})),[r]),{register:u,control:q,handleSubmit:M,trigger:F,watch:x,setValue:E,formState:{errors:S}}=Na.useForm({resolver:Sl(Ma.groupCreationSchema),defaultValues:{groupName:"",concept:"",profileImageUrl:"",members:[{name:"",personality:"",systemPrompt:""}]}}),o=x("profileImageUrl"),{fields:I,append:$}=Na.useFieldArray({control:q,name:"members"}),k=x("members"),g=async J=>{const X=await m(J);X&&E("profileImageUrl",X)},C=async()=>{await F(["groupName","profileImageUrl"])&&z(2)},aa=M(async J=>{const X=J.members.filter(w=>w.name.trim());await l({...J,members:X}),z(3)}),ea=()=>{$({name:"",personality:"",systemPrompt:""})};return a.jsx("main",{className:"bg-base-100 flex min-h-dvh w-full flex-col items-center px-6 py-20",children:a.jsxs("div",{className:"w-full max-w-lg",children:[a.jsx(ct,{currentStep:p,totalSteps:3,labels:[r("aidol:creation.step1"),r("aidol:creation.step2"),r("aidol:creation.step3")]}),a.jsxs("div",{className:"mt-8",children:[p===1&&a.jsxs("div",{className:"space-y-6",children:[a.jsx("h2",{className:"text-display-s font-bold",children:r("aidol:creation.step1Title")}),a.jsx(Ua,{...u("groupName"),error:S.groupName?.message?r(S.groupName.message,{ns:"aidol"}):void 0}),a.jsx(La,{...u("concept"),options:i}),a.jsxs("fieldset",{className:"fieldset",children:[a.jsx("label",{className:"label",children:r("aidol:creation.emblem")}),a.jsx(Wt,{onGenerate:g,isGenerating:e,disabled:s}),o&&a.jsx("div",{className:"mt-2 flex justify-center",children:a.jsx(H,{url:o,alt:r("aidol:creation.emblem")})}),S.profileImageUrl?.message&&a.jsx("p",{className:"text-label-m text-error mt-1",children:r(S.profileImageUrl.message,{ns:"aidol"})})]}),a.jsx("button",{type:"button",onClick:C,disabled:!o,className:"btn btn-primary w-full",children:r("aidol:creation.next")})]}),p===2&&a.jsxs("form",{onSubmit:aa,className:"space-y-6",children:[a.jsx("h2",{className:"text-display-s font-bold",children:r("aidol:creation.step2Title")}),I.map((J,X)=>a.jsxs("div",{className:"border-base-300 space-y-4 rounded-lg border p-4",children:[a.jsxs("div",{className:"flex items-center gap-4",children:[a.jsx(H,{url:null,alt:k[X]?.name??""}),a.jsx("div",{className:"flex-1",children:a.jsx(ka,{...u(`members.${X}.name`),error:S.members?.[X]?.name?.message?r(S.members?.[X]?.name?.message??"",{ns:"aidol"}):void 0})})]}),a.jsx(Na.Controller,{name:`members.${X}.personality`,control:q,render:({field:w})=>a.jsx(ut,{value:w.value??"",onChange:w.onChange,options:G})}),a.jsx(oa,{...u(`members.${X}.systemPrompt`),charCount:k[X]?.systemPrompt?.length??0})]},J.id)),a.jsx(pt,{onClick:ea,isLoading:!1}),S.members?.root?.message&&a.jsx("p",{className:"text-error text-center",children:r(S.members.root.message,{ns:"aidol"})}),a.jsxs("div",{className:"flex gap-4",children:[a.jsx("button",{type:"button",onClick:()=>z(1),className:"btn btn-ghost flex-1",disabled:s,children:r("aidol:creation.back")}),a.jsx("button",{type:"submit",className:"btn btn-primary flex-1",disabled:s,children:s?a.jsx("span",{className:"loading loading-spinner loading-sm"}):r("aidol:creation.create")})]})]}),p===3&&a.jsxs("div",{className:"space-y-6 text-center",children:[a.jsx("div",{className:"text-display-l",children:"🎉"}),a.jsx("h2",{className:"text-display-s font-bold",children:r("aidol:creation.completeTitle")}),a.jsx("p",{className:"text-body-l text-base-content/70",children:r("aidol:creation.completeDescription")}),a.jsx("button",{onClick:n,className:"btn btn-primary w-full",children:r("aidol:creation.viewProfile")})]})]})]})})}function Ot({label:l,leftLabel:n,rightLabel:m,value:s,onChange:e}){return a.jsxs("div",{className:"flex flex-col gap-2",children:[a.jsx("span",{className:"text-label-l text-base-content",children:l}),a.jsx("input",{type:"range",min:1,max:10,step:1,value:s,onChange:d=>e(Number(d.target.value)),className:"range range-primary range-sm"}),a.jsxs("div",{className:"flex justify-between",children:[a.jsx("span",{className:"text-label-m text-primary",children:n}),a.jsx("span",{className:"text-label-m text-primary",children:m})]})]})}function Xl({values:l,onChange:n}){const{t:m}=v.useTranslation(),s=[{key:"energy",label:m("aidol:companionCreate.personality.energy"),leftLabel:m("aidol:companionCreate.personality.energyLeft"),rightLabel:m("aidol:companionCreate.personality.energyRight")},{key:"perception",label:m("aidol:companionCreate.personality.perception"),leftLabel:m("aidol:companionCreate.personality.perceptionLeft"),rightLabel:m("aidol:companionCreate.personality.perceptionRight")},{key:"judgment",label:m("aidol:companionCreate.personality.judgment"),leftLabel:m("aidol:companionCreate.personality.judgmentLeft"),rightLabel:m("aidol:companionCreate.personality.judgmentRight")},{key:"lifestyle",label:m("aidol:companionCreate.personality.lifestyle"),leftLabel:m("aidol:companionCreate.personality.lifestyleLeft"),rightLabel:m("aidol:companionCreate.personality.lifestyleRight")}];return a.jsx("div",{className:"flex flex-col gap-6",children:s.map(({key:e,label:d,leftLabel:r,rightLabel:p})=>a.jsx(Ot,{label:d,leftLabel:r,rightLabel:p,value:l[e],onChange:z=>n({...l,[e]:z})},e))})}function Kl({prompt:l,onPromptChange:n,onGenerate:m,isGenerating:s,imageUrl:e,hasGenerated:d}){const{t:r}=v.useTranslation();return a.jsxs("div",{className:"flex flex-col gap-4",children:[a.jsx("input",{type:"text",value:l,onChange:p=>n(p.target.value),placeholder:r("aidol:companionCreate.image.promptPlaceholder"),className:"input w-full bg-white text-black"}),a.jsxs("button",{type:"button",onClick:m,disabled:s||!l.trim(),className:"btn btn-primary w-full",children:[s&&a.jsx("span",{className:"loading loading-spinner"}),r(d?"aidol:companionCreate.image.regenerate":"aidol:companionCreate.image.generate")]}),e?a.jsx("div",{className:"relative aspect-square w-full overflow-hidden rounded-lg",children:a.jsx(h,{src:e,alt:"Generated profile",fill:!0,className:"object-cover"})}):a.jsxs("div",{className:"border-base-300 bg-base-100 flex aspect-square w-full flex-col items-center justify-center gap-4 rounded-lg border",children:[a.jsx(dt,{className:"text-neutral size-6"}),a.jsx("p",{className:"text-body-m text-neutral text-center whitespace-pre-line",children:r("aidol:companionCreate.image.placeholder")})]})]})}function vt({step:l,title:n,children:m}){const s=l.toString().padStart(2,"0");return a.jsxs("div",{className:"bg-base-200 flex w-full flex-col gap-6 rounded-lg p-6",children:[a.jsx("span",{className:"text-title-s text-primary",children:s}),a.jsx("h3",{className:"text-title-s text-base-content",children:n}),a.jsx("div",{className:"flex flex-col gap-4",children:m})]})}const na={initial:{y:40,opacity:0},animate:{y:0,opacity:1,transition:{duration:.8,ease:"easeInOut"}}},Fl={animate:{transition:{staggerChildren:.15}}};function fl({onGetStarted:l,isLoading:n,logoUrl:m="/images/logo.svg",videoUrl:s}){const{t:e}=v.useTranslation();return a.jsx("section",{className:"bg-base-100 flex min-h-screen w-full flex-col items-center px-6 pt-12 pb-8",children:a.jsxs(D.motion.div,{variants:Fl,initial:"initial",animate:"animate",className:"flex w-full flex-col items-center text-center",children:[a.jsx(D.motion.div,{variants:na,className:"mb-6",children:a.jsx(h,{src:m,alt:"AIdol",width:92,height:28,priority:!0})}),a.jsxs(D.motion.h1,{variants:na,className:"text-display-s mb-3",children:[e("aidol:landing.hero.title.line1"),a.jsx("br",{}),e("aidol:landing.hero.title.line2")]}),a.jsxs(D.motion.div,{variants:na,className:"text-headline-s text-base-content mb-8 flex flex-col",children:[a.jsx("p",{className:"text-neutral",children:e("aidol:landing.hero.line1")}),a.jsx("p",{className:"text-neutral",children:e("aidol:landing.hero.line2")}),a.jsx("p",{children:e("aidol:landing.hero.line3")}),a.jsx("p",{children:e("aidol:landing.hero.line4")})]}),a.jsx(D.motion.div,{variants:na,className:"bg-base-200 relative mb-6 aspect-[345/368] w-full overflow-hidden rounded-lg",children:s&&a.jsx("video",{src:s,autoPlay:!0,loop:!0,muted:!0,playsInline:!0,className:"size-full object-cover"})}),a.jsx(D.motion.div,{variants:na,className:"w-full",children:a.jsx("button",{onClick:l,disabled:n,className:"btn btn-primary btn-lg text-label-l w-full rounded-lg",children:n?a.jsx("span",{className:"loading loading-spinner loading-sm"}):e("aidol:landing.hero.cta")})})]})})}function xl({onNewMember:l}){const{t:n}=v.useTranslation();return a.jsxs("div",{className:"bg-base-200 col-span-2 flex flex-col items-center justify-center gap-4 rounded-lg p-4",children:[a.jsxs("div",{className:"text-body-s text-base-content flex flex-col items-start text-center",children:[a.jsx("p",{children:n("aidol:casting.newMember.prompt")}),a.jsx("p",{children:n("aidol:casting.newMember.subPrompt")})]}),a.jsxs("button",{type:"button",className:"btn btn-primary gap-2.5",onClick:l,children:[n("aidol:casting.addMember"),a.jsx(rt,{className:"size-4"})]})]})}function Rl({companions:l,onCompanionClick:n,onNewMember:m}){return a.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[l.map(s=>a.jsx(_,{companion:s,onClick:()=>n(s)},s.id)),a.jsx(xl,{onNewMember:m})]})}function hl({title:l,titleId:n,...m},s){return N.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:s,"aria-labelledby":n},m),l?N.createElement("title",{id:n},l):null,N.createElement("path",{fillRule:"evenodd",d:"M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12Zm13.36-1.814a.75.75 0 1 0-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 0 0-1.06 1.06l2.25 2.25a.75.75 0 0 0 1.14-.094l3.75-5.25Z",clipRule:"evenodd"}))}const Cl=N.forwardRef(hl);function wl({title:l,titleId:n,...m},s){return N.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:s,"aria-labelledby":n},m),l?N.createElement("title",{id:n},l):null,N.createElement("path",{d:"m11.645 20.91-.007-.003-.022-.012a15.247 15.247 0 0 1-.383-.218 25.18 25.18 0 0 1-4.244-3.17C4.688 15.36 2.25 12.174 2.25 8.25 2.25 5.322 4.714 3 7.688 3A5.5 5.5 0 0 1 12 5.052 5.5 5.5 0 0 1 16.313 3c2.973 0 5.437 2.322 5.437 5.25 0 3.925-2.438 7.111-4.739 9.256a25.175 25.175 0 0 1-4.244 3.17 15.247 15.247 0 0 1-.383.219l-.022.012-.007.004-.003.001a.752.752 0 0 1-.704 0l-.003-.001Z"}))}const Al=N.forwardRef(wl);function Ql(){const{t:l}=v.useTranslation();return a.jsxs("div",{className:"flex flex-col gap-1",children:[a.jsxs("div",{className:"flex flex-col items-start gap-1",children:[a.jsx(Cl,{className:"text-primary size-6 shrink-0"}),a.jsx("h3",{className:"text-title-s text-base-content",children:l("aidol:casting.infoBanner.title")})]}),a.jsx("p",{className:"text-body-s text-base-content/60",children:l("aidol:casting.infoBanner.description")})]})}const Dl=["mixed","boy","girl"];function El({activeTab:l,onTabChange:n}){const{t:m}=v.useTranslation();return a.jsx("div",{role:"tablist",className:"flex gap-2",children:Dl.map(s=>a.jsx("button",{type:"button",role:"tab","aria-selected":l===s,className:Y("text-label-l rounded-lg border p-2",l===s?"border-base-content text-base-content":"border-base-300 text-base-300"),onClick:()=>n(s),children:m(`aidol:casting.tabs.${s}`)},s))})}var Ga={exports:{}},sa={},tt;function Il(){if(tt)return sa;tt=1;var l=T,n=Symbol.for("react.element"),m=Symbol.for("react.fragment"),s=Object.prototype.hasOwnProperty,e=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,d={key:!0,ref:!0,__self:!0,__source:!0};function r(p,z,i){var G,u={},q=null,M=null;i!==void 0&&(q=""+i),z.key!==void 0&&(q=""+z.key),z.ref!==void 0&&(M=z.ref);for(G in z)s.call(z,G)&&!d.hasOwnProperty(G)&&(u[G]=z[G]);if(p&&p.defaultProps)for(G in z=p.defaultProps,z)u[G]===void 0&&(u[G]=z[G]);return{$$typeof:n,type:p,key:q,ref:M,props:u,_owner:e.current}}return sa.Fragment=m,sa.jsx=r,sa.jsxs=r,sa}var za={},lt;function gl(){return lt||(lt=1,process.env.NODE_ENV!=="production"&&(function(){var l=T,n=Symbol.for("react.element"),m=Symbol.for("react.portal"),s=Symbol.for("react.fragment"),e=Symbol.for("react.strict_mode"),d=Symbol.for("react.profiler"),r=Symbol.for("react.provider"),p=Symbol.for("react.context"),z=Symbol.for("react.forward_ref"),i=Symbol.for("react.suspense"),G=Symbol.for("react.suspense_list"),u=Symbol.for("react.memo"),q=Symbol.for("react.lazy"),M=Symbol.for("react.offscreen"),F=Symbol.iterator,x="@@iterator";function E(t){if(t===null||typeof t!="object")return null;var Z=F&&t[F]||t[x];return typeof Z=="function"?Z:null}var S=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function o(t){{for(var Z=arguments.length,b=new Array(Z>1?Z-1:0),W=1;W<Z;W++)b[W-1]=arguments[W];I("error",t,b)}}function I(t,Z,b){{var W=S.ReactDebugCurrentFrame,V=W.getStackAddendum();V!==""&&(Z+="%s",b=b.concat([V]));var y=b.map(function(O){return String(O)});y.unshift("Warning: "+Z),Function.prototype.apply.call(console[t],console,y)}}var $=!1,k=!1,g=!1,C=!1,aa=!1,ea;ea=Symbol.for("react.module.reference");function J(t){return!!(typeof t=="string"||typeof t=="function"||t===s||t===d||aa||t===e||t===i||t===G||C||t===M||$||k||g||typeof t=="object"&&t!==null&&(t.$$typeof===q||t.$$typeof===u||t.$$typeof===r||t.$$typeof===p||t.$$typeof===z||t.$$typeof===ea||t.getModuleId!==void 0))}function X(t,Z,b){var W=t.displayName;if(W)return W;var V=Z.displayName||Z.name||"";return V!==""?b+"("+V+")":b}function w(t){return t.displayName||"Context"}function R(t){if(t==null)return null;if(typeof t.tag=="number"&&o("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case s:return"Fragment";case m:return"Portal";case d:return"Profiler";case e:return"StrictMode";case i:return"Suspense";case G:return"SuspenseList"}if(typeof t=="object")switch(t.$$typeof){case p:var Z=t;return w(Z)+".Consumer";case r:var b=t;return w(b._context)+".Provider";case z:return X(t,t.render,"ForwardRef");case u:var W=t.displayName||null;return W!==null?W:R(t.type)||"Memo";case q:{var V=t,y=V._payload,O=V._init;try{return R(O(y))}catch{return null}}}return null}var A=Object.assign,ta=0,Ja,Ya,ja,Xa,Ka,Fa,fa;function xa(){}xa.__reactDisabledLog=!0;function yt(){{if(ta===0){Ja=console.log,Ya=console.info,ja=console.warn,Xa=console.error,Ka=console.group,Fa=console.groupCollapsed,fa=console.groupEnd;var t={configurable:!0,enumerable:!0,value:xa,writable:!0};Object.defineProperties(console,{info:t,log:t,warn:t,error:t,group:t,groupCollapsed:t,groupEnd:t})}ta++}}function Tt(){{if(ta--,ta===0){var t={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:A({},t,{value:Ja}),info:A({},t,{value:Ya}),warn:A({},t,{value:ja}),error:A({},t,{value:Xa}),group:A({},t,{value:Ka}),groupCollapsed:A({},t,{value:Fa}),groupEnd:A({},t,{value:fa})})}ta<0&&o("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var ca=S.ReactCurrentDispatcher,Oa;function ra(t,Z,b){{if(Oa===void 0)try{throw Error()}catch(V){var W=V.stack.trim().match(/\n( *(at )?)/);Oa=W&&W[1]||""}return`
|
|
2
2
|
`+Oa+t}}var va=!1,da;{var Gt=typeof WeakMap=="function"?WeakMap:Map;da=new Gt}function Ra(t,Z){if(!t||va)return"";{var b=da.get(t);if(b!==void 0)return b}var W;va=!0;var V=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var y;y=ca.current,ca.current=null,yt();try{if(Z){var O=function(){throw Error()};if(Object.defineProperty(O.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(O,[])}catch(K){W=K}Reflect.construct(t,[],O)}else{try{O.call()}catch(K){W=K}t.call(O.prototype)}}else{try{throw Error()}catch(K){W=K}t()}}catch(K){if(K&&W&&typeof K.stack=="string"){for(var c=K.stack.split(`
|
|
3
3
|
`),j=W.stack.split(`
|
|
4
4
|
`),L=c.length-1,U=j.length-1;L>=1&&U>=0&&c[L]!==j[U];)U--;for(;L>=1&&U>=0;L--,U--)if(c[L]!==j[U]){if(L!==1||U!==1)do if(L--,U--,U<0||c[L]!==j[U]){var f=`
|
package/dist/client.js
CHANGED
|
@@ -8,7 +8,7 @@ import { motion as E } from "framer-motion";
|
|
|
8
8
|
import Ct from "react-markdown";
|
|
9
9
|
import wt from "remark-breaks";
|
|
10
10
|
import At from "remark-gfm";
|
|
11
|
-
import { S as Qt, g as Dt, P as Et } from "./lead-
|
|
11
|
+
import { S as Qt, g as Dt, P as Et } from "./lead-CAf6oR_z.mjs";
|
|
12
12
|
import { validateFieldsNatively as It, toNestErrors as gt } from "@hookform/resolvers";
|
|
13
13
|
import { appendErrors as Pt, useForm as Bt, useFieldArray as Ht, Controller as _t } from "react-hook-form";
|
|
14
14
|
function st(l) {
|
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("@aioia/core"),n=require("./lead-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("@aioia/core"),n=require("./lead-BsbXYIV4.js"),o=require("zod"),h=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function m(t){if(typeof t!="string"||!h.test(t))throw new Error(`Invalid resource ID: ${String(t)}`)}class b extends c.BaseCrudRepository{constructor(){super(...arguments),this.resource="aidols"}getDataSchema(){return n.aidolSchema}async createAIdol(e){const a=this.apiService.buildUrl(this.resource),i=await this.apiService.request(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});return n.aidolCreateResponseSchema.parse(i)}async getOne(e,a){m(e.id);const i=`${this.apiService.buildUrl(this.resource)}/${e.id}`,r=await this.apiService.request(i,a);return{data:n.aidolSchema.parse(r)}}async update(e){m(e.id);const a=`${this.apiService.buildUrl(this.resource)}/${e.id}`,i=await this.apiService.request(a,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(e.variables)});return{data:n.aidolSchema.parse(i)}}async generateImage(e,a){const i=this.apiService.buildUrl(`${this.resource}/images`),r=await this.apiService.request(i,{...a,method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});return this.validateResponse(r,n.imageGenerationResponseSchema)}}const y=o.z.object({messageId:o.z.string(),content:o.z.string()});class T extends c.BaseCrudRepository{constructor(){super(...arguments),this.resource="chatrooms"}getDataSchema(){return n.chatroomSchema}async getMessages(e,a,i){const r=new URLSearchParams;a?.limit!==void 0&&r.set("limit",a.limit.toString()),a?.offset!==void 0&&r.set("offset",a.offset.toString());const l=r.toString(),d=this.apiService.buildUrl(`${this.resource}/${e}/messages${l?`?${l}`:""}`),u=await this.apiService.request(d,i);return this.validateResponse(u,o.z.array(n.messageSchema))}async sendMessage(e,a,i){const r=this.apiService.buildUrl(`${this.resource}/${e}/messages`),l=await this.apiService.request(r,{...i,method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:a,senderType:"user"})});return this.validateResponse(l,n.messageSchema)}async generateResponse(e,a,i){const r=this.apiService.buildUrl(`${this.resource}/${e}/companions/${a}/response`),l=await this.apiService.request(r,{...i,method:"POST",headers:{"Content-Type":"application/json"}});return this.validateResponse(l,y)}}class P extends c.BaseCrudRepository{constructor(){super(...arguments),this.resource="companions"}getDataSchema(){return n.companionSchema}async generateImage(e,a){const i=this.apiService.buildUrl(`${this.resource}/images`),r=await this.apiService.request(i,{...a,method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});return this.validateResponse(r,n.imageGenerationResponseSchema)}}class f{constructor(e){this.apiService=e,this.resource="leads"}async create(e){const a=this.apiService.buildUrl(this.resource),i=await this.apiService.request(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});return n.leadResponseSchema.parse(i)}}const g="aidol_chatroom_ids",C=o.z.record(o.z.string(),o.z.string()),s=()=>{if(typeof window>"u")return{};const t=localStorage.getItem(g);if(!t)return{};try{const e=JSON.parse(t),a=C.safeParse(e);return a.success?a.data:(console.warn("[LocalChatroomIdsRepository] Invalid data, resetting"),{})}catch(e){if(e instanceof SyntaxError)return console.warn("[LocalChatroomIdsRepository] Failed to parse, resetting"),{};throw e}},p=t=>{if(typeof window>"u")throw new Error("LocalChatroomIdsRepository write operations can only be called on the client side.");localStorage.setItem(g,JSON.stringify(t))},S={getChatroomId(t){return s()[t]??null},setChatroomId(t,e){const a=s();a[t]=e,p(a)},removeChatroomId(t){const e=s();delete e[t],p(e)}},R={close:"Close"},v={header:"Position Assignment",title:"Assign positions to each member!",subtitle:"Tap to assign a position",unassigned:"Unassigned",mainVocal:"Main Vocal",subVocal:"Sub Vocal",mainDancer:"Main Dancer",subDancer:"Sub Dancer",mainRapper:"Main Rapper",subRapper:"Sub Rapper",assignedTo:"{{position}}({{name}})",assign:"Assign",confirm:"Plan Group",needMore:"Assign positions to {{count}} more members",error:{load:"Failed to load members",update:"Failed to assign position"}},w={title:"Debut Member Casting",infoBanner:{title:"Cast your trainees",description:"The idol characters (face, voice, video) in this content are original virtual characters created by AI and are not based on any real person, including idols and celebrities."},tabs:{boy:"Boy Group",girl:"Girl Group",mixed:"Mixed Group"},newMember:{prompt:"Can't find a trainee you like?",subPrompt:"Try casting a new member"},addMember:"New Member",abilities:{title:"Abilities",vocal:"Vocal",dance:"Dance",rap:"Rap",visual:"Visual",stamina:"Stamina",charm:"Charm"},castButton:"Cast",castComplete:{title:"Casting Complete!",description:"The trainee has joined the group",viewBoard:"View Casting Board"}},k="Share",M="URL copied!",N={header:"Final Debut Lineup",title:"My Casted Trainees!",subtitle:"Tap to remove",browse:"Browse Trainees",confirm:"Confirm Debut!",needMore:"Cast {{count}} more to create a group!",delete:"Remove",deleted:"Removed successfully.",empty:{title:`Final Debut Lineup
|
|
2
2
|
is Empty`,description:"Cast your trainees!"},error:{load:"Failed to load members.",delete:"Failed to remove."}},$={title:"Trainee Casting Complete",subtitle:"Added to the casting candidate list",remainingSlots:"Remaining Casting Slots",findNext:"Find Next Trainee",viewBoard:"View Casting Board"},I={promptPlaceholder:"How does your idol talk? Describe their vibe...",addMember:"Add Member",signed:"Signed 🥺",grade:"Grade {{grade}}",tab:{profile:"Profile",stats:"Stats"}},L={notFound:"Group not found",members:"Members",noMembers:"No members yet"},G={groupName:"Group Name",groupNamePlaceholder:"e.g. DREAMERS, STARLIGHT",memberName:"Member Name",memberNamePlaceholder:"e.g. Luna, Kai",concept:"Concept",selectConcept:"Select a concept",personality:"Personality",concepts:{cute:"Cute",cool:"Cool",elegant:"Elegant",powerful:"Powerful"},personalities:{cheerful:{label:"Cheerful",description:"Always bright and positive"},cool:{label:"Cool",description:"Calm and collected"},tsundere:{label:"Tsundere",description:"Cold outside, warm inside"},gentle:{label:"Gentle",description:"Kind and caring"}},step1:"Group",step2:"Members",step3:"Done",step1Title:"Create Your Group",step2Title:"Add Members",groupNameRequired:"Please enter a group name",memberNameRequired:"Please enter a member name",memberRequired:"Please add at least one member",emblem:"Emblem",emblemPromptPlaceholder:"Describe your group's emblem...",emblemRequired:"Please generate an emblem image",generate:"Generate",next:"Next",back:"Back",create:"Create",completeTitle:"Your Idol is Ready!",completeDescription:"Start chatting with your dream idol now",viewProfile:"View Profile"},B={greeting1:"Hello!",greeting2:"We are {{name}}!",greeting3:"Nice to meet you",createAnother:"Create Another Group",share:"Share Profile",banner:"Curious about this group's next move?",error:{load:"Failed to load group info"}},D={header:"Enter Email",previewTitle:`Dorm stories, practice tales
|
|
3
3
|
We'll send you real reviews from members!`,previewMessage:"Shouldn't you talk to your hyung more respectfully?",title:"Stay Updated",description:"Get the latest news and updates about this group via email.",emailLabel:"Email",emailPlaceholder:"example@email.com",submit:"Get Updates",submitting:"Subscribing...",success:"Successfully subscribed!",error:"Failed to subscribe. Please try again."},A={header:"Group Planning",step1Title:"Name your group",step2Title:"Create your group emblem",namePlaceholder:"e.g.) Dreamers, Starlight",promptPlaceholder:"e.g.)",generate:"Generate Image",regenerate:"Regenerate Image",emptyImage:`Generated profile
|
|
4
4
|
image will
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BaseCrudRepository as c } from "@aioia/core";
|
|
2
|
-
import { a as l, b as y, i as d, c as T, m, d as f, l as P } from "./lead-
|
|
3
|
-
import { S as fn, e as Pn, f as Cn } from "./lead-
|
|
2
|
+
import { a as l, b as y, i as d, c as T, m, d as f, l as P } from "./lead-CAf6oR_z.mjs";
|
|
3
|
+
import { S as fn, e as Pn, f as Cn } from "./lead-CAf6oR_z.mjs";
|
|
4
4
|
import { z as r } from "zod";
|
|
5
5
|
const C = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
6
6
|
function p(n) {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("zod"),r=e.z.object({id:e.z.string(),name:e.z.string().nullable(),email:e.z.string().nullable().optional(),greeting:e.z.string().nullable().optional(),concept:e.z.string().nullable().optional(),profileImageUrl:e.z.string().nullable(),createdAt:e.z.string(),updatedAt:e.z.string()}),i=e.z.object({id:e.z.string()}),o=e.z.object({name:e.z.string().min(1,"creation.memberNameRequired"),personality:e.z.string().optional(),systemPrompt:e.z.string().optional()}),s=e.z.object({groupName:e.z.string().min(1,"creation.groupNameRequired"),concept:e.z.string().optional(),profileImageUrl:e.z.string().min(1,"creation.emblemRequired"),members:e.z.array(o).min(1,"creation.memberRequired").refine(n=>n.some(t=>t.name.trim()!==""),{message:"creation.memberRequired"})});e.z.object({prompt:e.z.string().max(200)});const m=e.z.object({imageUrl:e.z.string(),width:e.z.number(),height:e.z.number(),format:e.z.string()}),l=e.z.object({data:m}),c=e.z.object({id:e.z.string(),name:e.z.string(),language:e.z.string(),createdAt:e.z.string(),updatedAt:e.z.string()});var a=(n=>(n.USER="user",n.COMPANION="companion",n))(a||{});const z=e.z.object({id:e.z.string(),senderType:e.z.nativeEnum(a),content:e.z.string(),createdAt:e.z.string()}),p=n=>n.senderType==="user",g=n=>n.senderType==="companion",u=["mainVocal","subVocal","mainDancer","subDancer","mainRapper","subRapper"],b=e.z.object({vocal:e.z.number(),dance:e.z.number(),rap:e.z.number(),visual:e.z.number(),stamina:e.z.number(),charm:e.z.number()}),d=e.z.object({id:e.z.string(),aidolId:e.z.string().nullable().optional(),name:e.z.string().nullable().optional(),biography:e.z.string().nullable().optional(),profilePictureUrl:e.z.string().nullable().optional(),grade:e.z.enum(["A","B","C","F"]).nullable().optional(),position:e.z.enum(["mainVocal","subVocal","mainDancer","subDancer","mainRapper","subRapper"]).nullable().optional(),mbti:e.z.string().nullable().optional(),gender:e.z.enum(["male","female"]).nullable().optional(),status:e.z.enum(["draft","published"]),stats:b.optional(),createdAt:e.z.string(),updatedAt:e.z.string()}),h=e.z.object({
|
|
2
|
-
//# sourceMappingURL=lead-
|
|
1
|
+
"use strict";const e=require("zod"),r=e.z.object({id:e.z.string(),name:e.z.string().nullable(),email:e.z.string().nullable().optional(),greeting:e.z.string().nullable().optional(),concept:e.z.string().nullable().optional(),profileImageUrl:e.z.string().nullable(),createdAt:e.z.string(),updatedAt:e.z.string()}),i=e.z.object({id:e.z.string()}),o=e.z.object({name:e.z.string().min(1,"creation.memberNameRequired"),personality:e.z.string().optional(),systemPrompt:e.z.string().optional()}),s=e.z.object({groupName:e.z.string().min(1,"creation.groupNameRequired"),concept:e.z.string().optional(),profileImageUrl:e.z.string().min(1,"creation.emblemRequired"),members:e.z.array(o).min(1,"creation.memberRequired").refine(n=>n.some(t=>t.name.trim()!==""),{message:"creation.memberRequired"})});e.z.object({prompt:e.z.string().max(200)});const m=e.z.object({imageUrl:e.z.string(),width:e.z.number(),height:e.z.number(),format:e.z.string()}),l=e.z.object({data:m}),c=e.z.object({id:e.z.string(),name:e.z.string(),language:e.z.string(),createdAt:e.z.string(),updatedAt:e.z.string()});var a=(n=>(n.USER="user",n.COMPANION="companion",n))(a||{});const z=e.z.object({id:e.z.string(),senderType:e.z.nativeEnum(a),content:e.z.string(),createdAt:e.z.string()}),p=n=>n.senderType==="user",g=n=>n.senderType==="companion",u=["mainVocal","subVocal","mainDancer","subDancer","mainRapper","subRapper"],b=e.z.object({vocal:e.z.number(),dance:e.z.number(),rap:e.z.number(),visual:e.z.number(),stamina:e.z.number(),charm:e.z.number()}),d=e.z.object({id:e.z.string(),aidolId:e.z.string().nullable().optional(),name:e.z.string().nullable().optional(),biography:e.z.string().nullable().optional(),profilePictureUrl:e.z.string().nullable().optional(),grade:e.z.enum(["A","B","C","F"]).nullable().optional(),position:e.z.enum(["mainVocal","subVocal","mainDancer","subDancer","mainRapper","subRapper"]).nullable().optional(),mbti:e.z.string().nullable().optional(),gender:e.z.enum(["male","female"]).nullable().optional(),status:e.z.enum(["draft","published"]),stats:b.optional(),createdAt:e.z.string(),updatedAt:e.z.string()}),h=e.z.object({email:e.z.string()});exports.POSITIONS=u;exports.SenderType=a;exports.aidolCreateResponseSchema=i;exports.aidolSchema=r;exports.chatroomSchema=c;exports.companionSchema=d;exports.groupCreationSchema=s;exports.imageGenerationResponseSchema=l;exports.isCompanion=g;exports.isUser=p;exports.leadResponseSchema=h;exports.messageSchema=z;
|
|
2
|
+
//# sourceMappingURL=lead-BsbXYIV4.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lead-CV7Srf-F.js","sources":["../src/schemas/aidol.ts","../src/schemas/chatroom.ts","../src/schemas/companion.ts","../src/schemas/lead.ts"],"sourcesContent":["/**\n * AIdol (group) schemas\n * Matches backend aidol/schemas/aidol.py definitions (Public only for MVP)\n */\n\nimport type { BaseRecord } from \"@aioia/core\";\nimport { z } from \"zod\";\n\nimport type { Companion } from \"./companion\";\n\n/**\n * AIdol schema (public fields only, excludes anonymous_id)\n * Matches backend AIdolPublic (aidol/schemas/aidol.py)\n */\nexport const aidolSchema = z.object({\n id: z.string(),\n name: z.string().nullable(),\n email: z.string().nullable().optional(),\n greeting: z.string().nullable().optional(),\n concept: z.string().nullable().optional(),\n profileImageUrl: z.string().nullable(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nexport interface AIdol extends BaseRecord {\n id: string;\n name: string | null;\n email?: string | null;\n greeting?: string | null;\n concept?: string | null;\n profileImageUrl: string | null;\n createdAt: string;\n updatedAt: string;\n companions?: Companion[];\n}\n\n/**\n * Schema for AIdol creation response (backend returns only id)\n */\nexport const aidolCreateResponseSchema = z.object({\n id: z.string(),\n});\n\nexport type AIdolCreateResponse = z.infer<typeof aidolCreateResponseSchema>;\n\n/**\n * Schema for creating an AIdol group\n */\nexport interface AIdolCreate {\n name: string;\n concept?: string | null;\n profileImageUrl: string;\n}\n\n/**\n * Schema for updating an AIdol group\n */\nexport interface AIdolUpdate {\n name?: string;\n concept?: string | null;\n profileImageUrl?: string | null;\n}\n\n/**\n * Member draft schema for group creation form\n */\nexport const memberDraftSchema = z.object({\n name: z.string().min(1, \"creation.memberNameRequired\"),\n personality: z.string().optional(),\n systemPrompt: z.string().optional(),\n});\n\nexport type MemberDraft = z.infer<typeof memberDraftSchema>;\n\n/**\n * Group creation form schema (react-hook-form + zod)\n */\nexport const groupCreationSchema = z.object({\n groupName: z.string().min(1, \"creation.groupNameRequired\"),\n concept: z.string().optional(),\n profileImageUrl: z.string().min(1, \"creation.emblemRequired\"),\n members: z\n .array(memberDraftSchema)\n .min(1, \"creation.memberRequired\")\n .refine((members) => members.some((m) => m.name.trim() !== \"\"), {\n message: \"creation.memberRequired\",\n }),\n});\n\nexport type GroupCreationFormData = z.infer<typeof groupCreationSchema>;\n\n// ---------------------------------------------------------------------------\n// Image Generation\n// ---------------------------------------------------------------------------\n\n/**\n * Request schema for image generation\n */\nexport const imageGenerationRequestSchema = z.object({\n prompt: z.string().max(200),\n});\n\nexport type ImageGenerationRequest = z.infer<\n typeof imageGenerationRequestSchema\n>;\n\n/**\n * Image generation result data\n */\nexport const imageGenerationDataSchema = z.object({\n imageUrl: z.string(),\n width: z.number(),\n height: z.number(),\n format: z.string(),\n});\n\nexport type ImageGenerationData = z.infer<typeof imageGenerationDataSchema>;\n\n/**\n * Response schema for image generation\n */\nexport const imageGenerationResponseSchema = z.object({\n data: imageGenerationDataSchema,\n});\n\nexport type ImageGenerationResponse = z.infer<\n typeof imageGenerationResponseSchema\n>;\n","/**\n * Chatroom schemas\n * Matches backend aidol/schemas/chatroom.py definitions\n */\n\nimport type { BaseRecord } from \"@aioia/core\";\nimport { z } from \"zod\";\n\n// =============================================================================\n// Chatroom Schemas\n// =============================================================================\n\nexport const chatroomSchema = z.object({\n id: z.string(),\n name: z.string(),\n language: z.string(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nexport interface Chatroom extends BaseRecord {\n id: string;\n name: string;\n language: string;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface ChatroomCreate {\n name: string;\n language?: string;\n}\n\n// =============================================================================\n// Message Schemas\n// =============================================================================\n\nexport enum SenderType {\n USER = \"user\",\n COMPANION = \"companion\",\n}\n\nexport const messageSchema = z.object({\n id: z.string(),\n senderType: z.nativeEnum(SenderType),\n content: z.string(),\n createdAt: z.string(),\n});\n\nexport interface Message extends BaseRecord {\n id: string;\n senderType: SenderType;\n content: string;\n createdAt: string;\n}\n\n/**\n * Type guard to check if message is from user\n */\nexport const isUser = (message: Message): boolean => {\n return message.senderType === SenderType.USER;\n};\n\n/**\n * Type guard to check if message is from companion\n */\nexport const isCompanion = (message: Message): boolean => {\n return message.senderType === SenderType.COMPANION;\n};\n","/**\n * Companion (member) schemas\n * Matches backend aidol/schemas/companion.py definitions (Public only for MVP)\n */\n\nimport type { BaseRecord } from \"@aioia/core\";\nimport { z } from \"zod\";\n\nexport const POSITIONS = [\n \"mainVocal\",\n \"subVocal\",\n \"mainDancer\",\n \"subDancer\",\n \"mainRapper\",\n \"subRapper\",\n] as const;\n\nexport type Position = (typeof POSITIONS)[number];\n\nexport type Gender = \"male\" | \"female\";\n\nexport type Grade = \"A\" | \"B\" | \"C\" | \"F\";\n\nexport type Status = \"draft\" | \"published\";\n\nexport interface CompanionStats {\n vocal: number;\n dance: number;\n rap: number;\n visual: number;\n stamina: number;\n charm: number;\n}\n\nconst companionStatsSchema = z.object({\n vocal: z.number(),\n dance: z.number(),\n rap: z.number(),\n visual: z.number(),\n stamina: z.number(),\n charm: z.number(),\n});\n\n/**\n * Companion schema (public fields only, excludes system_prompt)\n */\nexport const companionSchema = z.object({\n id: z.string(),\n aidolId: z.string().nullable().optional(),\n name: z.string().nullable().optional(),\n biography: z.string().nullable().optional(),\n profilePictureUrl: z.string().nullable().optional(),\n grade: z.enum([\"A\", \"B\", \"C\", \"F\"]).nullable().optional(),\n position: z\n .enum([\n \"mainVocal\",\n \"subVocal\",\n \"mainDancer\",\n \"subDancer\",\n \"mainRapper\",\n \"subRapper\",\n ])\n .nullable()\n .optional(),\n mbti: z.string().nullable().optional(),\n gender: z.enum([\"male\", \"female\"]).nullable().optional(),\n status: z.enum([\"draft\", \"published\"]),\n stats: companionStatsSchema.optional(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nexport interface Companion extends BaseRecord {\n id: string;\n aidolId?: string | null;\n name?: string | null;\n biography?: string | null;\n profilePictureUrl?: string | null;\n grade?: Grade | null;\n position?: Position | null;\n mbti?: string | null;\n gender?: Gender | null;\n status: Status;\n stats?: CompanionStats;\n createdAt: string;\n updatedAt: string;\n}\n\n/**\n * Schema for creating a Companion\n * Includes systemPrompt for creation (excluded from response)\n */\nexport interface CompanionCreate {\n aidolId?: string | null;\n name: string;\n biography?: string | null;\n profilePictureUrl?: string | null;\n systemPrompt?: string | null;\n}\n\n/**\n * Schema for updating a Companion\n */\nexport interface CompanionUpdate {\n aidolId?: string | null;\n name?: string;\n biography?: string | null;\n profilePictureUrl?: string | null;\n systemPrompt?: string | null;\n position?: Position | null;\n gender?: Gender | null;\n status?: Status;\n mbtiEnergy?: number;\n mbtiPerception?: number;\n mbtiJudgment?: number;\n mbtiLifestyle?: number;\n}\n","/**\n * Lead schemas\n * Matches backend aidol/schemas/aidol_lead.py definitions\n */\n\nimport { z } from \"zod\";\n\n/**\n * Lead request schema\n */\nexport interface LeadRequest {\n aidolId: string;\n email: string;\n}\n\n/**\n * Lead response schema\n */\nexport const leadResponseSchema = z.object({\n aidolId: z.string(),\n email: z.string(),\n});\n\nexport type LeadResponse = z.infer<typeof leadResponseSchema>;\n"],"names":["aidolSchema","z","aidolCreateResponseSchema","memberDraftSchema","groupCreationSchema","members","m","imageGenerationDataSchema","imageGenerationResponseSchema","chatroomSchema","SenderType","messageSchema","isUser","message","isCompanion","POSITIONS","companionStatsSchema","companionSchema","leadResponseSchema"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lead-BsbXYIV4.js","sources":["../src/schemas/aidol.ts","../src/schemas/chatroom.ts","../src/schemas/companion.ts","../src/schemas/lead.ts"],"sourcesContent":["/**\n * AIdol (group) schemas\n * Matches backend aidol/schemas/aidol.py definitions (Public only for MVP)\n */\n\nimport type { BaseRecord } from \"@aioia/core\";\nimport { z } from \"zod\";\n\nimport type { Companion } from \"./companion\";\n\n/**\n * AIdol schema (public fields only, excludes anonymous_id)\n * Matches backend AIdolPublic (aidol/schemas/aidol.py)\n */\nexport const aidolSchema = z.object({\n id: z.string(),\n name: z.string().nullable(),\n email: z.string().nullable().optional(),\n greeting: z.string().nullable().optional(),\n concept: z.string().nullable().optional(),\n profileImageUrl: z.string().nullable(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nexport interface AIdol extends BaseRecord {\n id: string;\n name: string | null;\n email?: string | null;\n greeting?: string | null;\n concept?: string | null;\n profileImageUrl: string | null;\n createdAt: string;\n updatedAt: string;\n companions?: Companion[];\n}\n\n/**\n * Schema for AIdol creation response (backend returns only id)\n */\nexport const aidolCreateResponseSchema = z.object({\n id: z.string(),\n});\n\nexport type AIdolCreateResponse = z.infer<typeof aidolCreateResponseSchema>;\n\n/**\n * Schema for creating an AIdol group\n */\nexport interface AIdolCreate {\n name: string;\n concept?: string | null;\n profileImageUrl: string;\n}\n\n/**\n * Schema for updating an AIdol group\n */\nexport interface AIdolUpdate {\n name?: string;\n concept?: string | null;\n profileImageUrl?: string | null;\n}\n\n/**\n * Member draft schema for group creation form\n */\nexport const memberDraftSchema = z.object({\n name: z.string().min(1, \"creation.memberNameRequired\"),\n personality: z.string().optional(),\n systemPrompt: z.string().optional(),\n});\n\nexport type MemberDraft = z.infer<typeof memberDraftSchema>;\n\n/**\n * Group creation form schema (react-hook-form + zod)\n */\nexport const groupCreationSchema = z.object({\n groupName: z.string().min(1, \"creation.groupNameRequired\"),\n concept: z.string().optional(),\n profileImageUrl: z.string().min(1, \"creation.emblemRequired\"),\n members: z\n .array(memberDraftSchema)\n .min(1, \"creation.memberRequired\")\n .refine((members) => members.some((m) => m.name.trim() !== \"\"), {\n message: \"creation.memberRequired\",\n }),\n});\n\nexport type GroupCreationFormData = z.infer<typeof groupCreationSchema>;\n\n// ---------------------------------------------------------------------------\n// Image Generation\n// ---------------------------------------------------------------------------\n\n/**\n * Request schema for image generation\n */\nexport const imageGenerationRequestSchema = z.object({\n prompt: z.string().max(200),\n});\n\nexport type ImageGenerationRequest = z.infer<\n typeof imageGenerationRequestSchema\n>;\n\n/**\n * Image generation result data\n */\nexport const imageGenerationDataSchema = z.object({\n imageUrl: z.string(),\n width: z.number(),\n height: z.number(),\n format: z.string(),\n});\n\nexport type ImageGenerationData = z.infer<typeof imageGenerationDataSchema>;\n\n/**\n * Response schema for image generation\n */\nexport const imageGenerationResponseSchema = z.object({\n data: imageGenerationDataSchema,\n});\n\nexport type ImageGenerationResponse = z.infer<\n typeof imageGenerationResponseSchema\n>;\n","/**\n * Chatroom schemas\n * Matches backend aidol/schemas/chatroom.py definitions\n */\n\nimport type { BaseRecord } from \"@aioia/core\";\nimport { z } from \"zod\";\n\n// =============================================================================\n// Chatroom Schemas\n// =============================================================================\n\nexport const chatroomSchema = z.object({\n id: z.string(),\n name: z.string(),\n language: z.string(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nexport interface Chatroom extends BaseRecord {\n id: string;\n name: string;\n language: string;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface ChatroomCreate {\n name: string;\n language?: string;\n}\n\n// =============================================================================\n// Message Schemas\n// =============================================================================\n\nexport enum SenderType {\n USER = \"user\",\n COMPANION = \"companion\",\n}\n\nexport const messageSchema = z.object({\n id: z.string(),\n senderType: z.nativeEnum(SenderType),\n content: z.string(),\n createdAt: z.string(),\n});\n\nexport interface Message extends BaseRecord {\n id: string;\n senderType: SenderType;\n content: string;\n createdAt: string;\n}\n\n/**\n * Type guard to check if message is from user\n */\nexport const isUser = (message: Message): boolean => {\n return message.senderType === SenderType.USER;\n};\n\n/**\n * Type guard to check if message is from companion\n */\nexport const isCompanion = (message: Message): boolean => {\n return message.senderType === SenderType.COMPANION;\n};\n","/**\n * Companion (member) schemas\n * Matches backend aidol/schemas/companion.py definitions (Public only for MVP)\n */\n\nimport type { BaseRecord } from \"@aioia/core\";\nimport { z } from \"zod\";\n\nexport const POSITIONS = [\n \"mainVocal\",\n \"subVocal\",\n \"mainDancer\",\n \"subDancer\",\n \"mainRapper\",\n \"subRapper\",\n] as const;\n\nexport type Position = (typeof POSITIONS)[number];\n\nexport type Gender = \"male\" | \"female\";\n\nexport type Grade = \"A\" | \"B\" | \"C\" | \"F\";\n\nexport type Status = \"draft\" | \"published\";\n\nexport interface CompanionStats {\n vocal: number;\n dance: number;\n rap: number;\n visual: number;\n stamina: number;\n charm: number;\n}\n\nconst companionStatsSchema = z.object({\n vocal: z.number(),\n dance: z.number(),\n rap: z.number(),\n visual: z.number(),\n stamina: z.number(),\n charm: z.number(),\n});\n\n/**\n * Companion schema (public fields only, excludes system_prompt)\n */\nexport const companionSchema = z.object({\n id: z.string(),\n aidolId: z.string().nullable().optional(),\n name: z.string().nullable().optional(),\n biography: z.string().nullable().optional(),\n profilePictureUrl: z.string().nullable().optional(),\n grade: z.enum([\"A\", \"B\", \"C\", \"F\"]).nullable().optional(),\n position: z\n .enum([\n \"mainVocal\",\n \"subVocal\",\n \"mainDancer\",\n \"subDancer\",\n \"mainRapper\",\n \"subRapper\",\n ])\n .nullable()\n .optional(),\n mbti: z.string().nullable().optional(),\n gender: z.enum([\"male\", \"female\"]).nullable().optional(),\n status: z.enum([\"draft\", \"published\"]),\n stats: companionStatsSchema.optional(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nexport interface Companion extends BaseRecord {\n id: string;\n aidolId?: string | null;\n name?: string | null;\n biography?: string | null;\n profilePictureUrl?: string | null;\n grade?: Grade | null;\n position?: Position | null;\n mbti?: string | null;\n gender?: Gender | null;\n status: Status;\n stats?: CompanionStats;\n createdAt: string;\n updatedAt: string;\n}\n\n/**\n * Schema for creating a Companion\n * Includes systemPrompt for creation (excluded from response)\n */\nexport interface CompanionCreate {\n aidolId?: string | null;\n name: string;\n biography?: string | null;\n profilePictureUrl?: string | null;\n systemPrompt?: string | null;\n}\n\n/**\n * Schema for updating a Companion\n */\nexport interface CompanionUpdate {\n aidolId?: string | null;\n name?: string;\n biography?: string | null;\n profilePictureUrl?: string | null;\n systemPrompt?: string | null;\n position?: Position | null;\n gender?: Gender | null;\n status?: Status;\n mbtiEnergy?: number;\n mbtiPerception?: number;\n mbtiJudgment?: number;\n mbtiLifestyle?: number;\n}\n","/**\n * Lead schemas\n * Matches backend aidol/schemas/aidol_lead.py definitions\n */\n\nimport { z } from \"zod\";\n\n/**\n * Lead request schema\n */\nexport interface LeadRequest {\n aidolId: string;\n email: string;\n}\n\n/**\n * Lead response schema\n */\nexport const leadResponseSchema = z.object({\n email: z.string(),\n});\n\nexport type LeadResponse = z.infer<typeof leadResponseSchema>;\n"],"names":["aidolSchema","z","aidolCreateResponseSchema","memberDraftSchema","groupCreationSchema","members","m","imageGenerationDataSchema","imageGenerationResponseSchema","chatroomSchema","SenderType","messageSchema","isUser","message","isCompanion","POSITIONS","companionStatsSchema","companionSchema","leadResponseSchema"],"mappings":"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"}
|
|
@@ -81,7 +81,6 @@ const u = e.object({
|
|
|
81
81
|
createdAt: e.string(),
|
|
82
82
|
updatedAt: e.string()
|
|
83
83
|
}), R = e.object({
|
|
84
|
-
aidolId: e.string(),
|
|
85
84
|
email: e.string()
|
|
86
85
|
});
|
|
87
86
|
export {
|
|
@@ -98,4 +97,4 @@ export {
|
|
|
98
97
|
R as l,
|
|
99
98
|
u as m
|
|
100
99
|
};
|
|
101
|
-
//# sourceMappingURL=lead-
|
|
100
|
+
//# sourceMappingURL=lead-CAf6oR_z.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lead-Dv8zsoLl.mjs","sources":["../src/schemas/aidol.ts","../src/schemas/chatroom.ts","../src/schemas/companion.ts","../src/schemas/lead.ts"],"sourcesContent":["/**\n * AIdol (group) schemas\n * Matches backend aidol/schemas/aidol.py definitions (Public only for MVP)\n */\n\nimport type { BaseRecord } from \"@aioia/core\";\nimport { z } from \"zod\";\n\nimport type { Companion } from \"./companion\";\n\n/**\n * AIdol schema (public fields only, excludes anonymous_id)\n * Matches backend AIdolPublic (aidol/schemas/aidol.py)\n */\nexport const aidolSchema = z.object({\n id: z.string(),\n name: z.string().nullable(),\n email: z.string().nullable().optional(),\n greeting: z.string().nullable().optional(),\n concept: z.string().nullable().optional(),\n profileImageUrl: z.string().nullable(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nexport interface AIdol extends BaseRecord {\n id: string;\n name: string | null;\n email?: string | null;\n greeting?: string | null;\n concept?: string | null;\n profileImageUrl: string | null;\n createdAt: string;\n updatedAt: string;\n companions?: Companion[];\n}\n\n/**\n * Schema for AIdol creation response (backend returns only id)\n */\nexport const aidolCreateResponseSchema = z.object({\n id: z.string(),\n});\n\nexport type AIdolCreateResponse = z.infer<typeof aidolCreateResponseSchema>;\n\n/**\n * Schema for creating an AIdol group\n */\nexport interface AIdolCreate {\n name: string;\n concept?: string | null;\n profileImageUrl: string;\n}\n\n/**\n * Schema for updating an AIdol group\n */\nexport interface AIdolUpdate {\n name?: string;\n concept?: string | null;\n profileImageUrl?: string | null;\n}\n\n/**\n * Member draft schema for group creation form\n */\nexport const memberDraftSchema = z.object({\n name: z.string().min(1, \"creation.memberNameRequired\"),\n personality: z.string().optional(),\n systemPrompt: z.string().optional(),\n});\n\nexport type MemberDraft = z.infer<typeof memberDraftSchema>;\n\n/**\n * Group creation form schema (react-hook-form + zod)\n */\nexport const groupCreationSchema = z.object({\n groupName: z.string().min(1, \"creation.groupNameRequired\"),\n concept: z.string().optional(),\n profileImageUrl: z.string().min(1, \"creation.emblemRequired\"),\n members: z\n .array(memberDraftSchema)\n .min(1, \"creation.memberRequired\")\n .refine((members) => members.some((m) => m.name.trim() !== \"\"), {\n message: \"creation.memberRequired\",\n }),\n});\n\nexport type GroupCreationFormData = z.infer<typeof groupCreationSchema>;\n\n// ---------------------------------------------------------------------------\n// Image Generation\n// ---------------------------------------------------------------------------\n\n/**\n * Request schema for image generation\n */\nexport const imageGenerationRequestSchema = z.object({\n prompt: z.string().max(200),\n});\n\nexport type ImageGenerationRequest = z.infer<\n typeof imageGenerationRequestSchema\n>;\n\n/**\n * Image generation result data\n */\nexport const imageGenerationDataSchema = z.object({\n imageUrl: z.string(),\n width: z.number(),\n height: z.number(),\n format: z.string(),\n});\n\nexport type ImageGenerationData = z.infer<typeof imageGenerationDataSchema>;\n\n/**\n * Response schema for image generation\n */\nexport const imageGenerationResponseSchema = z.object({\n data: imageGenerationDataSchema,\n});\n\nexport type ImageGenerationResponse = z.infer<\n typeof imageGenerationResponseSchema\n>;\n","/**\n * Chatroom schemas\n * Matches backend aidol/schemas/chatroom.py definitions\n */\n\nimport type { BaseRecord } from \"@aioia/core\";\nimport { z } from \"zod\";\n\n// =============================================================================\n// Chatroom Schemas\n// =============================================================================\n\nexport const chatroomSchema = z.object({\n id: z.string(),\n name: z.string(),\n language: z.string(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nexport interface Chatroom extends BaseRecord {\n id: string;\n name: string;\n language: string;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface ChatroomCreate {\n name: string;\n language?: string;\n}\n\n// =============================================================================\n// Message Schemas\n// =============================================================================\n\nexport enum SenderType {\n USER = \"user\",\n COMPANION = \"companion\",\n}\n\nexport const messageSchema = z.object({\n id: z.string(),\n senderType: z.nativeEnum(SenderType),\n content: z.string(),\n createdAt: z.string(),\n});\n\nexport interface Message extends BaseRecord {\n id: string;\n senderType: SenderType;\n content: string;\n createdAt: string;\n}\n\n/**\n * Type guard to check if message is from user\n */\nexport const isUser = (message: Message): boolean => {\n return message.senderType === SenderType.USER;\n};\n\n/**\n * Type guard to check if message is from companion\n */\nexport const isCompanion = (message: Message): boolean => {\n return message.senderType === SenderType.COMPANION;\n};\n","/**\n * Companion (member) schemas\n * Matches backend aidol/schemas/companion.py definitions (Public only for MVP)\n */\n\nimport type { BaseRecord } from \"@aioia/core\";\nimport { z } from \"zod\";\n\nexport const POSITIONS = [\n \"mainVocal\",\n \"subVocal\",\n \"mainDancer\",\n \"subDancer\",\n \"mainRapper\",\n \"subRapper\",\n] as const;\n\nexport type Position = (typeof POSITIONS)[number];\n\nexport type Gender = \"male\" | \"female\";\n\nexport type Grade = \"A\" | \"B\" | \"C\" | \"F\";\n\nexport type Status = \"draft\" | \"published\";\n\nexport interface CompanionStats {\n vocal: number;\n dance: number;\n rap: number;\n visual: number;\n stamina: number;\n charm: number;\n}\n\nconst companionStatsSchema = z.object({\n vocal: z.number(),\n dance: z.number(),\n rap: z.number(),\n visual: z.number(),\n stamina: z.number(),\n charm: z.number(),\n});\n\n/**\n * Companion schema (public fields only, excludes system_prompt)\n */\nexport const companionSchema = z.object({\n id: z.string(),\n aidolId: z.string().nullable().optional(),\n name: z.string().nullable().optional(),\n biography: z.string().nullable().optional(),\n profilePictureUrl: z.string().nullable().optional(),\n grade: z.enum([\"A\", \"B\", \"C\", \"F\"]).nullable().optional(),\n position: z\n .enum([\n \"mainVocal\",\n \"subVocal\",\n \"mainDancer\",\n \"subDancer\",\n \"mainRapper\",\n \"subRapper\",\n ])\n .nullable()\n .optional(),\n mbti: z.string().nullable().optional(),\n gender: z.enum([\"male\", \"female\"]).nullable().optional(),\n status: z.enum([\"draft\", \"published\"]),\n stats: companionStatsSchema.optional(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nexport interface Companion extends BaseRecord {\n id: string;\n aidolId?: string | null;\n name?: string | null;\n biography?: string | null;\n profilePictureUrl?: string | null;\n grade?: Grade | null;\n position?: Position | null;\n mbti?: string | null;\n gender?: Gender | null;\n status: Status;\n stats?: CompanionStats;\n createdAt: string;\n updatedAt: string;\n}\n\n/**\n * Schema for creating a Companion\n * Includes systemPrompt for creation (excluded from response)\n */\nexport interface CompanionCreate {\n aidolId?: string | null;\n name: string;\n biography?: string | null;\n profilePictureUrl?: string | null;\n systemPrompt?: string | null;\n}\n\n/**\n * Schema for updating a Companion\n */\nexport interface CompanionUpdate {\n aidolId?: string | null;\n name?: string;\n biography?: string | null;\n profilePictureUrl?: string | null;\n systemPrompt?: string | null;\n position?: Position | null;\n gender?: Gender | null;\n status?: Status;\n mbtiEnergy?: number;\n mbtiPerception?: number;\n mbtiJudgment?: number;\n mbtiLifestyle?: number;\n}\n","/**\n * Lead schemas\n * Matches backend aidol/schemas/aidol_lead.py definitions\n */\n\nimport { z } from \"zod\";\n\n/**\n * Lead request schema\n */\nexport interface LeadRequest {\n aidolId: string;\n email: string;\n}\n\n/**\n * Lead response schema\n */\nexport const leadResponseSchema = z.object({\n aidolId: z.string(),\n email: z.string(),\n});\n\nexport type LeadResponse = z.infer<typeof leadResponseSchema>;\n"],"names":["aidolSchema","z","aidolCreateResponseSchema","memberDraftSchema","groupCreationSchema","members","m","imageGenerationDataSchema","imageGenerationResponseSchema","chatroomSchema","SenderType","messageSchema","isUser","message","isCompanion","POSITIONS","companionStatsSchema","companionSchema","leadResponseSchema"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lead-CAf6oR_z.mjs","sources":["../src/schemas/aidol.ts","../src/schemas/chatroom.ts","../src/schemas/companion.ts","../src/schemas/lead.ts"],"sourcesContent":["/**\n * AIdol (group) schemas\n * Matches backend aidol/schemas/aidol.py definitions (Public only for MVP)\n */\n\nimport type { BaseRecord } from \"@aioia/core\";\nimport { z } from \"zod\";\n\nimport type { Companion } from \"./companion\";\n\n/**\n * AIdol schema (public fields only, excludes anonymous_id)\n * Matches backend AIdolPublic (aidol/schemas/aidol.py)\n */\nexport const aidolSchema = z.object({\n id: z.string(),\n name: z.string().nullable(),\n email: z.string().nullable().optional(),\n greeting: z.string().nullable().optional(),\n concept: z.string().nullable().optional(),\n profileImageUrl: z.string().nullable(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nexport interface AIdol extends BaseRecord {\n id: string;\n name: string | null;\n email?: string | null;\n greeting?: string | null;\n concept?: string | null;\n profileImageUrl: string | null;\n createdAt: string;\n updatedAt: string;\n companions?: Companion[];\n}\n\n/**\n * Schema for AIdol creation response (backend returns only id)\n */\nexport const aidolCreateResponseSchema = z.object({\n id: z.string(),\n});\n\nexport type AIdolCreateResponse = z.infer<typeof aidolCreateResponseSchema>;\n\n/**\n * Schema for creating an AIdol group\n */\nexport interface AIdolCreate {\n name: string;\n concept?: string | null;\n profileImageUrl: string;\n}\n\n/**\n * Schema for updating an AIdol group\n */\nexport interface AIdolUpdate {\n name?: string;\n concept?: string | null;\n profileImageUrl?: string | null;\n}\n\n/**\n * Member draft schema for group creation form\n */\nexport const memberDraftSchema = z.object({\n name: z.string().min(1, \"creation.memberNameRequired\"),\n personality: z.string().optional(),\n systemPrompt: z.string().optional(),\n});\n\nexport type MemberDraft = z.infer<typeof memberDraftSchema>;\n\n/**\n * Group creation form schema (react-hook-form + zod)\n */\nexport const groupCreationSchema = z.object({\n groupName: z.string().min(1, \"creation.groupNameRequired\"),\n concept: z.string().optional(),\n profileImageUrl: z.string().min(1, \"creation.emblemRequired\"),\n members: z\n .array(memberDraftSchema)\n .min(1, \"creation.memberRequired\")\n .refine((members) => members.some((m) => m.name.trim() !== \"\"), {\n message: \"creation.memberRequired\",\n }),\n});\n\nexport type GroupCreationFormData = z.infer<typeof groupCreationSchema>;\n\n// ---------------------------------------------------------------------------\n// Image Generation\n// ---------------------------------------------------------------------------\n\n/**\n * Request schema for image generation\n */\nexport const imageGenerationRequestSchema = z.object({\n prompt: z.string().max(200),\n});\n\nexport type ImageGenerationRequest = z.infer<\n typeof imageGenerationRequestSchema\n>;\n\n/**\n * Image generation result data\n */\nexport const imageGenerationDataSchema = z.object({\n imageUrl: z.string(),\n width: z.number(),\n height: z.number(),\n format: z.string(),\n});\n\nexport type ImageGenerationData = z.infer<typeof imageGenerationDataSchema>;\n\n/**\n * Response schema for image generation\n */\nexport const imageGenerationResponseSchema = z.object({\n data: imageGenerationDataSchema,\n});\n\nexport type ImageGenerationResponse = z.infer<\n typeof imageGenerationResponseSchema\n>;\n","/**\n * Chatroom schemas\n * Matches backend aidol/schemas/chatroom.py definitions\n */\n\nimport type { BaseRecord } from \"@aioia/core\";\nimport { z } from \"zod\";\n\n// =============================================================================\n// Chatroom Schemas\n// =============================================================================\n\nexport const chatroomSchema = z.object({\n id: z.string(),\n name: z.string(),\n language: z.string(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nexport interface Chatroom extends BaseRecord {\n id: string;\n name: string;\n language: string;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface ChatroomCreate {\n name: string;\n language?: string;\n}\n\n// =============================================================================\n// Message Schemas\n// =============================================================================\n\nexport enum SenderType {\n USER = \"user\",\n COMPANION = \"companion\",\n}\n\nexport const messageSchema = z.object({\n id: z.string(),\n senderType: z.nativeEnum(SenderType),\n content: z.string(),\n createdAt: z.string(),\n});\n\nexport interface Message extends BaseRecord {\n id: string;\n senderType: SenderType;\n content: string;\n createdAt: string;\n}\n\n/**\n * Type guard to check if message is from user\n */\nexport const isUser = (message: Message): boolean => {\n return message.senderType === SenderType.USER;\n};\n\n/**\n * Type guard to check if message is from companion\n */\nexport const isCompanion = (message: Message): boolean => {\n return message.senderType === SenderType.COMPANION;\n};\n","/**\n * Companion (member) schemas\n * Matches backend aidol/schemas/companion.py definitions (Public only for MVP)\n */\n\nimport type { BaseRecord } from \"@aioia/core\";\nimport { z } from \"zod\";\n\nexport const POSITIONS = [\n \"mainVocal\",\n \"subVocal\",\n \"mainDancer\",\n \"subDancer\",\n \"mainRapper\",\n \"subRapper\",\n] as const;\n\nexport type Position = (typeof POSITIONS)[number];\n\nexport type Gender = \"male\" | \"female\";\n\nexport type Grade = \"A\" | \"B\" | \"C\" | \"F\";\n\nexport type Status = \"draft\" | \"published\";\n\nexport interface CompanionStats {\n vocal: number;\n dance: number;\n rap: number;\n visual: number;\n stamina: number;\n charm: number;\n}\n\nconst companionStatsSchema = z.object({\n vocal: z.number(),\n dance: z.number(),\n rap: z.number(),\n visual: z.number(),\n stamina: z.number(),\n charm: z.number(),\n});\n\n/**\n * Companion schema (public fields only, excludes system_prompt)\n */\nexport const companionSchema = z.object({\n id: z.string(),\n aidolId: z.string().nullable().optional(),\n name: z.string().nullable().optional(),\n biography: z.string().nullable().optional(),\n profilePictureUrl: z.string().nullable().optional(),\n grade: z.enum([\"A\", \"B\", \"C\", \"F\"]).nullable().optional(),\n position: z\n .enum([\n \"mainVocal\",\n \"subVocal\",\n \"mainDancer\",\n \"subDancer\",\n \"mainRapper\",\n \"subRapper\",\n ])\n .nullable()\n .optional(),\n mbti: z.string().nullable().optional(),\n gender: z.enum([\"male\", \"female\"]).nullable().optional(),\n status: z.enum([\"draft\", \"published\"]),\n stats: companionStatsSchema.optional(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nexport interface Companion extends BaseRecord {\n id: string;\n aidolId?: string | null;\n name?: string | null;\n biography?: string | null;\n profilePictureUrl?: string | null;\n grade?: Grade | null;\n position?: Position | null;\n mbti?: string | null;\n gender?: Gender | null;\n status: Status;\n stats?: CompanionStats;\n createdAt: string;\n updatedAt: string;\n}\n\n/**\n * Schema for creating a Companion\n * Includes systemPrompt for creation (excluded from response)\n */\nexport interface CompanionCreate {\n aidolId?: string | null;\n name: string;\n biography?: string | null;\n profilePictureUrl?: string | null;\n systemPrompt?: string | null;\n}\n\n/**\n * Schema for updating a Companion\n */\nexport interface CompanionUpdate {\n aidolId?: string | null;\n name?: string;\n biography?: string | null;\n profilePictureUrl?: string | null;\n systemPrompt?: string | null;\n position?: Position | null;\n gender?: Gender | null;\n status?: Status;\n mbtiEnergy?: number;\n mbtiPerception?: number;\n mbtiJudgment?: number;\n mbtiLifestyle?: number;\n}\n","/**\n * Lead schemas\n * Matches backend aidol/schemas/aidol_lead.py definitions\n */\n\nimport { z } from \"zod\";\n\n/**\n * Lead request schema\n */\nexport interface LeadRequest {\n aidolId: string;\n email: string;\n}\n\n/**\n * Lead response schema\n */\nexport const leadResponseSchema = z.object({\n email: z.string(),\n});\n\nexport type LeadResponse = z.infer<typeof leadResponseSchema>;\n"],"names":["aidolSchema","z","aidolCreateResponseSchema","memberDraftSchema","groupCreationSchema","members","m","imageGenerationDataSchema","imageGenerationResponseSchema","chatroomSchema","SenderType","messageSchema","isUser","message","isCompanion","POSITIONS","companionStatsSchema","companionSchema","leadResponseSchema"],"mappings":"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"}
|
package/dist/schemas/lead.d.ts
CHANGED
|
@@ -10,13 +10,10 @@ export interface LeadRequest {
|
|
|
10
10
|
* Lead response schema
|
|
11
11
|
*/
|
|
12
12
|
export declare const leadResponseSchema: z.ZodObject<{
|
|
13
|
-
aidolId: z.ZodString;
|
|
14
13
|
email: z.ZodString;
|
|
15
14
|
}, "strip", z.ZodTypeAny, {
|
|
16
|
-
aidolId: string;
|
|
17
15
|
email: string;
|
|
18
16
|
}, {
|
|
19
|
-
aidolId: string;
|
|
20
17
|
email: string;
|
|
21
18
|
}>;
|
|
22
19
|
export type LeadResponse = z.infer<typeof leadResponseSchema>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lead.d.ts","sourceRoot":"","sources":["../../src/schemas/lead.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"lead.d.ts","sourceRoot":"","sources":["../../src/schemas/lead.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;EAE7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
|