1import{r as s,j as e,e as Na,b as qt}from"./react-core-bWLI75Fw.js";import{l as be,u as ya,v as va,x as ja,r as Sa,n as Ma}from"./firebase-BwZ4hkwm.js";import{f as he,u as Pa,d as Ca}from"./index-Cuw9rIcM.js";import{as as Ke,X as pt,aW as gt,ci as Ta,L as se,S as Te,bg as Ee,bw as Aa,u as $e,aM as za,ae as it,bA as Fa,aF as Ct,ak as Je,m as Ra,c4 as Dt,P as Ia,x as _a,ar as Xt,aE as Ea,i as $a,cG as La,ab as Ua,ac as Yt,aI as Ba,bk as Ot,E as qa,v as lt,af as Da,aA as ot}from"./lucide-U8ZTX028.js";import"./framer-motion-C0wpNkKn.js";let dt=null;function Xa(){return typeof window>"u"||window.YT?.Player?Promise.resolve():(dt||(dt=new Promise(t=>{const a=window.onYouTubeIframeAPIReady;if(window.onYouTubeIframeAPIReady=()=>{try{typeof a=="function"&&a()}catch{}t()},document.querySelector('script[src="https://www.youtube.com/iframe_api"]')){const d=setInterval(()=>{window.YT?.Player&&(clearInterval(d),t())},50);setTimeout(()=>{clearInterval(d),t()},12e3);return}const r=document.createElement("script");r.src="https://www.youtube.com/iframe_api";const i=document.getElementsByTagName("script")[0];i.parentNode.insertBefore(r,i)})),dt)}function Ya({videoId:t,startSec:a,className:r,onPlayerReady:i,seekOnPropChange:d=!0,autoPlay:l=!1}){const P=s.useRef(null),m=s.useRef(null),g=s.useRef(i);g.current=i;const b=s.useRef(a);return b.current=a,s.useEffect(()=>{let N=!1;const x=P.current;if(!(!x||!t))return Xa().then(()=>{if(N||!P.current)return;try{m.current&&(m.current.destroy(),m.current=null)}catch{}x.innerHTML="";const A=window.YT;A?.Player&&(m.current=new A.Player(x,{videoId:t,width:"100%",height:"100%",playerVars:{rel:0,modestbranding:1,playsinline:1},events:{onReady:f=>{f.target.seekTo(Math.floor(Number(b.current)||0),!0);try{i?.(f.target)}catch{}if(l)try{f.target.playVideo()}catch{}}}}))}),()=>{N=!0;try{m.current&&(m.current.destroy(),m.current=null)}catch{m.current=null}}},[t]),s.useEffect(()=>{if(!d)return;const N=Math.floor(Number(a)||0),x=()=>{const F=m.current;if(F?.seekTo){try{const L=F.getVideoData?.()?.video_id;if(L&&L!==t)return}catch{}try{F.seekTo(N,!0),l&&F.playVideo()}catch{}}},A=window.setTimeout(x,0),f=window.setTimeout(x,200);return()=>{window.clearTimeout(A),window.clearTimeout(f)}},[a,t,d,l]),e.jsx("div",{className:r??"relative w-full h-full min-h-[180px]",children:e.jsx("div",{ref:P,className:"absolute inset-0 overflow-hidden rounded-xl bg-black",role:"region","aria-label":"Pratinjau video YouTube"})})}const Qe=s.forwardRef(function({sourceVideoUrl:a,videoId:r,initialSeekSec:i=0,syncSeekFromProp:d=!0,clipStartSec:l=null,clipEndSec:P=null,subtitleCues:m=[],autoPlay:g=!1,className:b="",onPlayheadSeconds:N,playheadThrottleMs:x=120,label:A="Pratinjau video sumber"},f){const F=s.useRef(null),L=s.useRef(null),W=s.useRef(null),U=s.useRef(i);U.current=Math.max(0,Number(i)||0);const ee=s.useRef(0),Y=s.useRef({lo:null,hi:null}),[z,E]=s.useState(0),I=l!=null&&Number.isFinite(Number(l))?Number(l):null,K=P!=null&&Number.isFinite(Number(P))?Number(P):null;Y.current={lo:I,hi:K};const te=s.useCallback(w=>{if(E(Number(w)||0),!N)return;const j=typeof performance<"u"?performance.now():Date.now();j-ee.current<x||(ee.current=j,N(w))},[N,x]);s.useImperativeHandle(f,()=>({seekTo(w){const j=Math.max(0,Number(w)||0),{lo:S,hi:o}=Y.current;let c=j;S!=null&&(c=Math.max(S,c)),o!=null&&(c=Math.min(o,c));const p=F.current;if(p&&a){try{p.currentTime=c}catch{}return}const y=W.current;if(y?.seekTo)try{y.seekTo(c,!0)}catch{}},getCurrentTime(){const w=F.current;if(w&&a)return w.currentTime;const j=W.current;if(j?.getCurrentTime)try{return j.getCurrentTime()}catch{return 0}return 0}}),[a]),s.useEffect(()=>{const w=F.current;if(!w||!a)return;const j=()=>{try{if(w.currentTime=U.current,g){const S=w.play?.();S&&typeof S.catch=="function"&&S.catch(()=>{})}}catch{}};return w.readyState>=1?j():w.addEventListener("loadedmetadata",j,{once:!0}),()=>w.removeEventListener("loadedmetadata",j)},[a,g]),s.useEffect(()=>{if(!d||!a)return;const w=F.current;if(w)try{w.currentTime=U.current}catch{}},[i,d,a]),s.useEffect(()=>{const w=F.current;if(!w||!a)return;const j=()=>{let S=w.currentTime;const{lo:o,hi:c}=Y.current;if(o!=null&&S<o){try{w.currentTime=o}catch{}S=o}if(c!=null&&S>c){try{w.pause(),w.currentTime=c}catch{}S=c}te(S)};
1return w.addEventListener("timeupdate",j),()=>w.removeEventListener("timeupdate",j)},[a,te,I,K]),s.useEffect(()=>{if(a||!r)return;const w=window.setInterval(()=>{const j=W.current;if(!j?.getCurrentTime||!j?.seekTo)return;let S;try{S=j.getCurrentTime()}catch{return}const{lo:o,hi:c}=Y.current;if(o!=null&&S<o){try{j.seekTo(o,!0)}catch{}S=o}if(c!=null&&S>c){try{j.pauseVideo(),j.seekTo(c,!0)}catch{}S=c}te(S)},200);return()=>window.clearInterval(w)},[a,r,te,I,K]);const Q=s.useCallback(w=>{W.current=w},[]),D=s.useMemo(()=>{const w=Number(z)||0;if(!Array.isArray(m)||m.length===0)return"";for(const j of m){if(!j||typeof j!="object")continue;const S=Number(j.startSec),o=Number(j.endSec),c=String(j.text||"").trim();if(!(!Number.isFinite(S)||!Number.isFinite(o)||!c)&&w>=S&&w<=o)return c}return""},[m,z]);return a?e.jsxs("div",{className:`relative aspect-video w-full overflow-hidden rounded-xl bg-black ring-1 ring-slate-800/80 ${b}`.trim(),children:[e.jsx("div",{className:"pointer-events-none absolute left-2 top-2 z-10 rounded-md bg-black/60 px-2 py-0.5 text-[9px] font-black uppercase tracking-wider text-white backdrop-blur-sm",children:"XGrind"}),D?e.jsx("div",{className:"pointer-events-none absolute inset-x-2 bottom-2 z-10",children:e.jsx("p",{className:"mx-auto max-w-[90%] rounded-md bg-black/55 px-2.5 py-1 text-center text-[11px] font-semibold leading-snug text-white line-clamp-2 backdrop-blur-sm",children:D})}):null,e.jsx("video",{ref:F,className:"absolute inset-0 h-full w-full object-contain",src:a,controls:!0,playsInline:!0,preload:"metadata","aria-label":A})]}):r?e.jsxs("div",{className:`relative overflow-hidden rounded-xl bg-black ring-1 ring-slate-800/80 ${b}`.trim(),children:[e.jsx("div",{className:"pointer-events-none absolute left-2 top-2 z-10 rounded-md bg-black/60 px-2 py-0.5 text-[9px] font-black uppercase tracking-wider text-white backdrop-blur-sm",children:"Pratinjau YouTube"}),D?e.jsx("div",{className:"pointer-events-none absolute inset-x-2 bottom-2 z-10",children:e.jsx("p",{className:"mx-auto max-w-[90%] rounded-md bg-black/55 px-2.5 py-1 text-center text-[11px] font-semibold leading-snug text-white line-clamp-2 backdrop-blur-sm",children:D})}):null,e.jsx("div",{className:"aspect-video w-full",ref:L,children:e.jsx(Ya,{videoId:r,startSec:i,seekOnPropChange:d,autoPlay:g,className:"absolute inset-0 h-full w-full",onPlayerReady:Q})})]}):e.jsx("div",{className:`flex aspect-video w-full items-center justify-center rounded-xl bg-slate-950 ring-1 ring-slate-800/80 text-[11px] font-medium text-slate-500 dark:text-slate-400 ${b}`.trim(),children:"Video sumber belum tersedia"})});function ne(t){if(t===""||t==null)return"";const a=parseFloat(String(t).replace(",","."));if(!Number.isFinite(a)||a<0)return"";const r=Math.floor(a/60),i=a-r*60,d=Math.round(i*100)/100;if(Math.abs(d-Math.round(d))<.001)return`${r}:${String(Math.round(d)).padStart(2,"0")}`;const l=d.toFixed(2);return`${r}:${l.padStart(5,"0")}`}function Ce(t){const a=String(t).trim();if(!a)return NaN;const r=a.match(/^(\d+):(\d{1,2})(?:\.(\d{1,3}))?$/);if(r){const i=parseInt(r[1],10),d=parseInt(r[2],10),l=r[3]!=null?parseFloat(`0.${r[3]}`):0;return i*60+d+l}return parseFloat(a.replace(",","."))}function Tt(t,a){const r=Ce(t),i=Ce(a);return!Number.isFinite(r)||!Number.isFinite(i)||i<=r?null:i-r}function Vt(t,a){const r=ne(t),i=ne(a);return!r||!i?"â":`${r} â ${i}`}const Oa=["bg-indigo-500/90","bg-violet-500/90","bg-amber-500/90"],At=["bg-indigo-800","bg-violet-800","bg-amber-800"];function ye(t){const a=parseFloat(String(t??"").replace(",","."));return Number.isFinite(a)?a:NaN}function Ht({durationSec:t,slots:a,activeSlot:r,onSelectSlot:i,onSlotsChange:d,minSegSec:l=5,timeOffsetSec:P=0,viewStartSec:m=null,viewEndSec:g=null,variant:b="light",onDragStateChange:N}){const x=b==="dark",A=s.useRef(null),f=s.useRef(null),[F,L]=s.useState(null),W=Number(t),U=Number.isFinite(W)&&W>0?W:0,ee=Number(m),Y=Number(g),z=Number.isFinite(ee)?Math.max(0,Math.min(ee,U)):0,E=Number.isFinite(Y)?Math.max(z+.2,Math.min(Y,U)):U,I=Math.max(.2,E-z),K=s.useCallback(c=>{const p=A.current;if(!p||U<=0)return 0;const y=p.getBoundingClientRect(),X=(c-y.left)/Math.max(y.width,1);return Math.max(z,Math.min(E,z+X*I))},[U,I,E,z]),te=s.useCallback(c=>{const p=f.current;
1if(!p||U<=0)return;const{slotIdx:y,edge:X}=p,q=K(c),H=Math.min(l,Math.max(3,U*.02)),J=a.map(k=>({...k}));let O=ye(J[y].start),G=ye(J[y].end);(!Number.isFinite(O)||!Number.isFinite(G))&&(O=z+y*I/3,G=Math.min(E,O+Math.max(H,25))),X==="start"?(O=Math.min(q,G-H),O=Math.max(z,O),G-O<H&&(G=Math.min(E,O+H))):(G=Math.max(q,O+H),G=Math.min(E,G),G-O<H&&(O=Math.max(z,G-H))),J[y]={start:String(Math.round(O*100)/100),end:String(Math.round(G*100)/100)},d(J)},[l,d,K,U,a,I,E,z]),Q=s.useCallback(c=>{F&&te(c.clientX)},[te,F]),D=s.useCallback(()=>{f.current=null,L(null)},[]);s.useEffect(()=>{typeof N=="function"&&N(!!F)},[F,N]),s.useEffect(()=>{if(F)return window.addEventListener("pointermove",Q),window.addEventListener("pointerup",D),window.addEventListener("pointercancel",D),()=>{window.removeEventListener("pointermove",Q),window.removeEventListener("pointerup",D),window.removeEventListener("pointercancel",D)}},[F,Q,D]);const w=(c,p,y)=>{y.preventDefault(),y.stopPropagation(),f.current={slotIdx:c,edge:p},L({slotIdx:c,edge:p});try{y.currentTarget.setPointerCapture(y.pointerId)}catch{}i(c)};if(U<=0)return e.jsx("p",{className:x?"text-[10px] font-medium text-zinc-400 rounded-lg border border-dashed border-zinc-700 bg-zinc-900/50 px-3 py-2":"text-[10px] font-medium text-slate-500 dark:text-slate-400 rounded-lg border border-dashed border-slate-200 bg-slate-50/50 px-3 py-2",children:'Durasi video belum tersedia â tempel link dan tunggu sebentar, atau gunakan "Ambil saran segmen".'});const j=Number(P),S=Number.isFinite(j)?j:0,o=c=>ne(S+c);return e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsx("p",{className:x?"text-[10px] font-black uppercase tracking-wider text-zinc-500":"text-[10px] font-black uppercase tracking-wider text-slate-500 dark:text-slate-400 ",children:"Timeline"}),e.jsxs("p",{className:x?"font-mono text-[10px] font-bold tabular-nums text-zinc-400":"font-mono text-[10px] font-bold tabular-nums text-slate-500 dark:text-slate-400 ",children:[o(z)," â ",o(E)]})]}),e.jsxs("div",{className:x?"relative h-12 w-full rounded-xl border border-zinc-700 bg-zinc-950 shadow-inner":"relative h-12 w-full rounded-xl border border-slate-200 bg-slate-100/90 shadow-inner",children:[e.jsx("div",{ref:A,className:x?"absolute inset-y-2 left-2 right-2 rounded-lg bg-zinc-800/80":"absolute inset-y-2 left-2 right-2 rounded-lg bg-white/70",role:"presentation"}),e.jsx("div",{className:"pointer-events-none absolute inset-y-2 left-2 right-2",children:[0,1,2].map(c=>{const p=ye(a[c]?.start),y=ye(a[c]?.end);if(!Number.isFinite(p)||!Number.isFinite(y)||y<=p)return null;const X=(p-z)/I*100,q=(y-p)/I*100,H=r===c;return y<=z||p>=E?null:e.jsx("button",{type:"button",tabIndex:-1,className:`pointer-events-auto absolute top-0 h-full rounded-md ring-2 transition ${Oa[c]} ${H?"ring-white":"ring-white/40"}`,style:{left:`${Math.max(0,X)}%`,width:`${Math.max(0,Math.min(100-Math.max(0,X),q))}%`,minWidth:6},"aria-label":`Pilih segmen ${c+1}`,onClick:()=>i(c)},`bar-${c}`)})}),e.jsx("div",{className:"absolute inset-y-2 left-2 right-2",children:[0,1,2].map(c=>{const p=ye(a[c]?.start),y=ye(a[c]?.end);if(!Number.isFinite(p)||!Number.isFinite(y)||y<=p||y<=z||p>=E)return null;const X=(p-z)/I*100,q=(y-z)/I*100;return e.jsxs(Na.Fragment,{children:[e.jsx("button",{type:"button",className:`absolute top-1/2 z-20 h-8 w-3 -translate-x-1/2 -translate-y-1/2 cursor-ew-resize rounded border-2 border-white shadow ${At[c]}`,style:{left:`${X}%`},"aria-label":`Mulai segmen ${c+1}`,onPointerDown:H=>w(c,"start",H)}),e.jsx("button",{type:"button",className:`absolute top-1/2 z-20 h-8 w-3 -translate-x-1/2 -translate-y-1/2 cursor-ew-resize rounded border-2 border-white shadow ${At[c]}`,style:{left:`${q}%`},"aria-label":`Akhir segmen ${c+1}`,onPointerDown:H=>w(c,"end",H)})]},`h-${c}`)})}),(()=>{const c=ye(a[r]?.start),p=ye(a[r]?.end);if(!Number.isFinite(c)||!Number.isFinite(p)||p<=c)return null;const y=Math.max(0,(c-z)/I*100),X=Math.max(0,(p-z)/I*100);return e.jsxs("div",{className:"pointer-events-none absolute inset-y-2 left-2 right-2",children:[e.jsx("div",{className:x?"absolute inset-y-0 left-0 bg-zinc-950/40":"absolute inset-y-0 left-0 bg-slate-400/25",style:{width:`${Math.min(100,y)}%`}}),e.jsx("div",{className:x?"absolute inset-y-0 right-0 bg-zinc-950/40":"absolute inset-y-0 right-0 bg-slate-400/25",style:{width:`${Math.max(0,100-X)}%`}})]})})()]}),e.jsxs("div",{className:x?"flex justify-between px-1 font-mono text-[9px] font-semibold tabular-nums text-zinc-500":"flex justify-between px-1 font-mono text-[9px] font-semibold tabular-nums text-slate-500 dark:text-slate-400 ",children:[e.jsx("span",{children:o(z)}),e.jsx("span",{children:o(z+I/2)}),e.jsx("span",{children:o(E)})]}),e.jsxs("p",{className:x?"text-[9px] font-medium text-zinc-500":"text-[9px] font-medium text-slate-500 dark:text-slate-400 ",children:["Seret ujung kiri/kanan (warna berbeda = klip berbeda). Minimal ~",l,"s. Angka di atas adalah waktu absolut di video (menit:detik)."]})]})}function Va(t){return t==null||typeof t!="string"?"":t.replace(/[\u200B-\u200D\uFEFF\u00A0\u202A-\u202E\u2066-\u2069]/g,"").trim()}function Ie(t){const a=Va(t);return a&&/^[a-zA-Z0-9_-]{6,}$/.test(a)?a:null}function Ze(t){return String(t||"").trim().replace(/[\u200B-\u200D\uFEFF]/g,"").replace(/^[\s"'ââââ]+|[\s"'ââââ]+$/g,"")}function bt(t){return String(t).replace(/\uFF1F/g,"?").replace(/\uFF06/g,"&").replace(/\uFF0F/g,"/").replace(/\uFEFF/g,"")}function Ha(t){const a=String(t||""),i=/https?:\/\/(?:www\.)?(?:youtube\.com\/[^\s<>"'()[\]{}\uFF0C\u3002]+|youtu\.be\/[^\s<>"'()[\]{}\uFF0C\u3002]+)/gi.exec(a);return i?i[0].replace(/[.,;)\]}>]+$/u,""):null}function Gt(t){const a=Ze(t);if(!a.includes("google.")||!a.includes("/url"))return a;
1try{const r=new URL(a.includes("://")?a:`https://${a}`),i=r.hostname.replace(/^www\./i,"").toLowerCase();if(i!=="google.com"&&!i.endsWith(".google.com"))return a;const d=r.searchParams.get("q")||r.searchParams.get("url");if(d&&/youtube|youtu\.be/i.test(d))try{return decodeURIComponent(d)}catch{return d}}catch{}return a}function Ga(t){let a=Gt(t);return a=Ze(a),a=bt(a),a?a.includes("://")?a:`https://${a}`:""}function Wa(t){const a=String(t||"").replace(/^www\./i,"").toLowerCase();return a==="youtu.be"||a==="youtube-nocookie.com"||a.endsWith(".youtube-nocookie.com")?!0:a==="youtube.com"||a.endsWith(".youtube.com")}function Ka(t){const a=t.hostname.replace(/^www\./i,"").toLowerCase();if(a==="youtu.be"){const l=(t.pathname.split("/").filter(Boolean)[0]||"").split("?")[0];return Ie(l)}if(!Wa(a))return null;const r=t.searchParams.get("v"),i=Ie(r);if(i)return i;const d=t.pathname.split("/").filter(Boolean);for(let l=0;l<d.length-1;l++){const P=d[l].toLowerCase();if(["embed","shorts","live","v"].includes(P)){const m=(d[l+1]||"").split("?")[0],g=Ie(m);if(g)return g}}return null}function zt(t){const a=bt(Ze(t));if(/youtube\.com/i.test(a)){const i=a.match(/[?&]v=([a-zA-Z0-9_-]{6,})/i);if(i){const d=Ie(i[1]);if(d)return d}}const r=[/youtube\.com\/shorts\/([a-zA-Z0-9_-]{6,})/i,/youtube\.com\/embed\/([a-zA-Z0-9_-]{6,})/i,/youtube-nocookie\.com\/embed\/([a-zA-Z0-9_-]{6,})/i,/youtube\.com\/live\/([a-zA-Z0-9_-]{6,})/i,/youtube\.com\/v\/([a-zA-Z0-9_-]{6,})/i,/youtu\.be\/([a-zA-Z0-9_-]{6,})/i];for(const i of r){const d=a.match(i);if(d){const l=Ie(d[1]);if(l)return l}}return null}function Ft(t){const a=Ga(t);if(!a)return zt(t);try{const r=new URL(a),i=Ka(r);if(i)return i}catch{}return zt(t)}function mt(t){if(!t||typeof t!="string")return null;const a=bt(Ze(Gt(t)));if(!a)return null;let r=Ft(a);if(!r){const i=Ha(a);i&&i!==a&&(r=Ft(i))}return r?Ie(r):null}function ct(t){const a=mt(t);return a?`https://www.youtube.com/watch?v=${a}`:""}const Ja=be(he,"suggestXclipSegments",{timeout:3e5});function Rt(t){const a=t?.details;if(typeof a=="string"&&a)return a;if(a&&typeof a=="object"&&a.message)return String(a.message);const r=t?.message||"Terjadi kesalahan.",i=t?.code?String(t.code):"";return i.includes("invalid-argument")?r:i.includes("unauthenticated")?"Login diperlukan untuk saran segmen.":(i.includes("resource-exhausted")||i.includes("failed-precondition"),r)}const ut=()=>[{start:"",end:""},{start:"",end:""},{start:"",end:""}];function It({label:t,valueSecStr:a,onCommit:r,accent:i}){const[d,l]=s.useState(!1),[P,m]=s.useState("");return s.useEffect(()=>{d||m(ne(a))},[a,d]),e.jsxs("label",{className:"block min-w-0 flex-1",children:[e.jsx("span",{className:"text-[10px] font-bold uppercase tracking-wide text-zinc-500",children:t}),e.jsx("input",{type:"text",inputMode:"text",autoComplete:"off",placeholder:"0:00",value:d?P:ne(a),onFocus:()=>{l(!0),m(ne(a))},onChange:g=>m(g.target.value),onBlur:()=>{l(!1);const g=Ce(P);Number.isFinite(g)&&g>=0?r(String(Math.round(g*100)/100)):P.trim()||r("")},className:`mt-1.5 w-full rounded-xl border bg-zinc-950 px-3 py-2.5 font-mono text-base font-bold tabular-nums text-zinc-50 placeholder:text-zinc-600 focus:outline-none focus:ring-2 focus:ring-offset-0 focus:ring-offset-zinc-950 ${i==="start"?"border-indigo-500/50 focus:border-indigo-400 focus:ring-indigo-500/25":"border-violet-500/50 focus:border-violet-400 focus:ring-violet-500/25"}`})]})}function Qa({open:t,onClose:a,initialYoutubeUrl:r="",initialOutputs:i=null,initialDurationSec:d=null,formDefaults:l,onJobCreated:P,autoSuggestOnOpen:m=!1,markHumanLoopReview:g=!1}){const[b,N]=s.useState(""),[x,A]=s.useState(ut),[f,F]=s.useState(0),[L,W]=s.useState("ai"),[U,ee]=s.useState(!1),[Y,z]=s.useState(""),[E,I]=s.useState(null),[K,te]=s.useState(!1),[Q,D]=s.useState(""),[w,j]=s.useState(!0),S=s.useRef(!1),o=s.useRef(null);s.useEffect(()=>{if(!t)return;D(""),z(""),N((r||"").trim());const k=ut();Array.isArray(i)&&i.length>0&&i.slice(0,3).forEach((v,C)=>{const u=v.startSec!=null?v.startSec:v.start,_=v.endSec!=null?v.endSec:v.end;u!=null&&_!=null&&Number(_)>Number(u)&&(k[C]={start:String(u),end:String(_)})}),A(k),F(0),d!=null&&Number.isFinite(Number(d))?I(Number(d)):I(null),j(!0)},[t,r,i,d]),s.useEffect(()=>{t||(S.current=!1)},[t]),s.useEffect(()=>{t&&z("")},[t,b]),s.useEffect(()=>{if(!t)return;const k=mt(b);if(!k){I(null);return}let v=!1;return fetch(`https://noembed.com/embed?url=${encodeURIComponent(`https://www.youtube.com/watch?v=${k}`)}`).then(C=>C.json()).then(C=>{if(v)return;const u=C.duration!=null?Number(C.duration):NaN;Number.isFinite(u)&&I(_=>_!=null&&Number.isFinite(_)?_:u)}
1).catch(()=>{}),()=>{v=!0}},[t,b]),s.useEffect(()=>{if(!t)return;const k=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=k}},[t]);const c=s.useMemo(()=>mt(b),[b]),p=s.useMemo(()=>{const k=x[f]?.start??"",v=Ce(k);return Number.isFinite(v)?Math.max(0,Math.floor(v)):0},[x,f]),y=s.useMemo(()=>{const k=x[f]?.end??"",v=Ce(k);return Number.isFinite(v)?Math.max(0,v):null},[x,f]),X=s.useMemo(()=>y==null?{lo:null,hi:null}:y>p?{lo:p,hi:y}:{lo:null,hi:null},[p,y]);s.useEffect(()=>{if(!t||!c)return;const k=requestAnimationFrame(()=>{o.current?.seekTo?.(p)});return()=>cancelAnimationFrame(k)},[t,c,f,p]);const q=s.useMemo(()=>E==null||!Number.isFinite(E)?null:ne(E),[E]),H=s.useMemo(()=>Tt(x[f]?.start,x[f]?.end),[x,f]),J=s.useCallback(async k=>{z("");const v=k!=null&&typeof k=="string"?String(k):b;if(!String(v).trim()){z("Masukkan link YouTube.");return}const C=ct(v);if(!C){z("Tidak bisa membaca ID video dari link ini. Coba salin ulang URL dari aplikasi YouTube (bukan halaman channel saja), atau gunakan format youtu.be/⦠/ watch?v=⦠/ shorts/â¦");return}ee(!0);try{const _=(await Ja({youtubeUrl:C,planSource:L,richTranscript:!!l?.richTranscript})).data;_?.durationSec!=null&&Number.isFinite(Number(_.durationSec))&&I(Number(_.durationSec));const le=Array.isArray(_?.segments)?_.segments:[],oe=ut();le.slice(0,3).forEach((ce,ue)=>{const je=ce.startSec!=null?ce.startSec:ce.start,de=ce.endSec!=null?ce.endSec:ce.end;je!=null&&de!=null&&Number(de)>Number(je)&&(oe[ue]={start:String(je),end:String(de)})}),A(oe),F(0)}catch(u){z(Rt(u))}finally{ee(!1)}},[b,L,l?.richTranscript]);s.useEffect(()=>{if(!t||!m)return;const k=ct(r);k&&(S.current||(S.current=!0,J(k)))},[t,m,r,J]);const O=s.useCallback(async()=>{if(D(""),!String(b).trim()){D("Masukkan link YouTube.");return}const k=ct(b);if(!k){D("Tidak bisa membaca ID video dari link ini. Salin ulang URL dari aplikasi YouTube (watch / Shorts / youtu.be).");return}const v=[];for(const C of x){const u=Ce(C.start),_=Ce(C.end);Number.isFinite(u)&&Number.isFinite(_)&&_>u&&v.push({startSec:u,endSec:_})}if(v.length===0){D("Isi minimal satu pasang mulai/akhir (menit:detik), atau pakai potong otomatis.");return}te(!0);try{const C=be(he,"startXclipJob"),u=l||{},_=Number(u.edgePaddingSec),le={youtubeUrl:k,layoutMode:u.layoutMode||"auto_magic",autoSubtitle:u.autoSubtitle!==!1,highlightWords:!!u.highlightWords,richTranscript:!!u.richTranscript,qualityMode:u.isProish&&u.qualityMode==="pro"?"pro":"standard",clipSource:"manual",edgePaddingSec:Number.isFinite(_)?Math.max(0,Math.min(15,_)):0,postingMetadata:u.postingMetadata!==!1,subtitleStyle:u.subtitleStyle==="punchy"?"punchy":"minimal",subtitleTemplate:String(u.subtitleTemplate||"default"),subtitleProPreset:["fast","balanced","studio"].includes(String(u.subtitleProPreset||"").toLowerCase())?String(u.subtitleProPreset).toLowerCase():"balanced",visionAssist:u.visionAssist!==!1,karaokeMode:u.karaokeMode!==!1,emojiMode:["off","subtle","expressive"].includes(String(u.emojiMode||"").toLowerCase())?String(u.emojiMode).toLowerCase():"off",removeSilences:!!u.removeSilences,addBrolls:!!u.addBrolls,manualSegments:v,manualStartSec:v[0].startSec,manualEndSec:v[0].endSec},oe=(u.watermarkText||"").trim();oe&&(le.watermarkText=oe.slice(0,120)),g&&(le.humanInLoopReview=!0),await C(le),P?.(),a?.()}catch(C){const u=C?.code||"";let _=Rt(C);u==="functions/failed-precondition"&&/secret|konfigurasi/i.test(String(_))&&(_="XCLIP belum dikonfigurasi di server."),u==="functions/resource-exhausted"&&(_=String(_).includes("Kuota")?_:"Kuota harian XCLIP habis."),D(_)}finally{te(!1)}},[x,a,P,b,l,g]);if(!t)return null;const G=e.jsxs("div",{className:"fixed inset-0 z-[200] flex items-end justify-center sm:items-center sm:p-4",role:"dialog","aria-modal":"true","aria-labelledby":"xclip-adjust-title",children:[e.jsx("button",{type:"button",className:"absolute inset-0 bg-black/80 backdrop-blur-sm","aria-label":"Tutup",onClick:a}),e.jsxs("div",{className:"relative flex max-h-[min(96vh,940px)] w-full max-w-[min(1280px,calc(100vw-1rem))] flex-col overflow-hidden rounded-t-2xl border border-zinc-700/90 bg-zinc-950 shadow-2xl sm:rounded-2xl",children:[e.jsxs("div",{className:"flex shrink-0 items-center justify-between gap-3 border-b border-zinc-800 bg-gradient-to-r from-zinc-900 to-zinc-950 px-4 py-3",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[e.jsx("span",{className:"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl bg-gradient-to-br from-indigo-600 to-violet-600 shadow-lg shadow-indigo-900/40",children:e.jsx(Ke,{className:"h-5 w-5 text-white",strokeWidth:2.25})}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("p",{id:"xclip-adjust-title",className:"text-[10px] font-black uppercase tracking-[0.2em] text-zinc-500",children:"Studio potongan"}),e.jsx("h2",{className:"truncate text-lg font-black tracking-tight text-zinc-50",children:"Atur segmen manual"}),e.jsx("p",{className:"truncate text-[10px] font-medium text-zinc-500",children:"Preview dulu, lalu kirim ke antrean â potong otomatis atau geser di timeline"})]})]}),e.jsx("button",{type:"button",onClick:a,className:"shrink-0 rounded-lg p-2 text-zinc-400 transition hover:bg-zinc-800 hover:text-white","aria-label":"Tutup",children:e.jsx(pt,{className:"h-5 w-5"})})]}),e.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto",children:e.jsxs("div",{className:"space-y-0",children:[e.jsx("div",{className:"border-b border-zinc-800/80 bg-zinc-900/40 px-4 py-3",children:e.jsxs("p",{className:"flex gap-2 text-[10px] font-medium leading-relaxed text-zinc-400",children:[e.jsx(gt,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-amber-400/90","aria-hidden":!0}),e.jsxs("span",{children:["Ini membuat ",e.jsx("span",{className:"font-bold text-zinc-300",children:"job baru"})," (1 kuota). Waktu pakai menit:detik (contoh ",e.jsx("span",{className:"font-mono text-zinc-300",children:"1:30"})," = 90 detik). Hasil akhir bisa sedikit bergeser (snap caption)."]})]})}),e.jsxs("div",{className:"px-4 pb-4 pt-4",children:[e.jsxs("div",{className:"flex flex-col gap-4 lg:grid lg:grid-cols-12 lg:items-start lg:gap-5",children:[e.jsxs("div",{className:"order-1 flex min-w-0 flex-col gap-4 lg:order-2 lg:col-span-5",children:[e.jsxs("label",{className:"block",children:[e.jsx("span",{className:"text-[10px] font-black uppercase tracking-widest text-zinc-500",children:"Link YouTube"}),e.jsx("input",{type:"text",inputMode:"url",autoCapitalize:"none",autoCorrect:"off",spellCheck:!1,value:b,onChange:k=>N(k.target.value),className:"mt-1.5 w-full rounded-xl border border-zinc-700 bg-zinc-900 px-3 py-2.5 text-sm font-semibold text-zinc-100 placeholder:text-zinc-600 focus:border-indigo-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/30",placeholder:"https://www.youtube.com/watch?v=â¦"})]}),e.jsxs("div",{className:"overflow-hidden rounded-2xl border border-indigo-500/25 bg-gradient-to-br from-indigo-950/80 via-zinc-900 to-zinc-950 shadow-inner",children:[e.jsxs("button",{type:"button",onClick:()=>j(k=>!k),className:"flex w-full items-center justify-between gap-3 px-4 py-3 text-left transition hover:bg-white/5",children:[e.jsxs("span",{className:"flex items-center gap-2",children:[e.jsx(Ta,{className:"h-4 w-4 shrink-0 text-indigo-300","aria-hidden":!0}),e.jsxs("span",{children:[e.jsx("span",{className:"block text-[11px] font-black text-zinc-100",children:"Potong otomatis"}),e.jsx("span",{className:"block text-[10px] font-medium text-zinc-500",children:"Disarankan: pakai AI dulu, lalu rapikan di timeline"})]})]}),e.jsx("span",{className:"text-[10px] font-bold text-indigo-400",children:w?"â¼"
1:"â¶"})]}),w&&e.jsxs("div",{className:"space-y-3 border-t border-indigo-500/10 px-4 pb-4 pt-2",children:[e.jsx("div",{className:"flex flex-wrap gap-1.5 rounded-xl border border-zinc-600/80 bg-zinc-950/60 p-1",role:"group","aria-label":"Sumber saran segmen",children:["ai","heatmap","blend"].map(k=>{const v=k==="ai"?"AI":k==="heatmap"?"Heatmap":"Gabungan",C=L===k;return e.jsx("button",{type:"button","aria-pressed":C,onClick:()=>W(k),className:`min-w-[4.5rem] flex-1 rounded-lg px-3 py-2 text-[10px] font-black uppercase tracking-wide transition sm:flex-none ${C?"bg-indigo-500 text-white shadow-md shadow-indigo-900/40 ring-1 ring-indigo-400/50":"border border-transparent bg-zinc-800/40 text-zinc-100 ring-1 ring-zinc-600/90 hover:border-indigo-500/35 hover:bg-zinc-800 hover:ring-indigo-500/25"}`,children:v},k)})}),e.jsxs("button",{type:"button",onClick:()=>J(),disabled:U||!b.trim(),className:"flex w-full items-center justify-center gap-2 rounded-xl bg-gradient-to-r from-indigo-600 to-violet-600 px-4 py-3.5 text-sm font-black text-white shadow-lg shadow-indigo-900/30 transition hover:brightness-110 disabled:opacity-50",children:[U?e.jsx(se,{className:"h-4 w-4 animate-spin"}):e.jsx(Te,{className:"h-4 w-4"}),"Ambil saran segmen"]}),Y?e.jsx("p",{className:"text-[10px] font-medium text-red-400",children:Y}):null]})]}),e.jsxs("div",{className:"rounded-2xl border border-zinc-800 bg-zinc-900/80 p-3",children:[e.jsx("p",{className:"mb-2 text-[10px] font-black uppercase tracking-wider text-zinc-500",children:"Klip aktif"}),e.jsx("div",{className:"mb-3 flex flex-wrap gap-2",children:[0,1,2].map(k=>{const v=f===k,C=Vt(x[k]?.start,x[k]?.end),u=Tt(x[k]?.start,x[k]?.end);return e.jsxs("button",{type:"button",onClick:()=>F(k),className:`min-w-0 flex-1 rounded-xl border px-3 py-2.5 text-left transition sm:min-w-[7rem] ${v?"border-indigo-500 bg-indigo-500/15 ring-2 ring-indigo-500/30":"border-zinc-700 bg-zinc-950/80 hover:border-zinc-600"}`,children:[e.jsxs("span",{className:"block text-[11px] font-black text-zinc-100",children:["Klip ",k+1]}),e.jsx("span",{className:"mt-0.5 block truncate font-mono text-[9px] font-semibold tabular-nums text-zinc-500",children:C!=="â"?C:"Kosong"}),u!=null&&e.jsxs("span",{className:"mt-0.5 block text-[9px] font-bold text-indigo-400/90",children:["Durasi ",ne(u)]})]},k)})}),e.jsxs("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[e.jsx(It,{label:"Mulai",valueSecStr:x[f]?.start,accent:"start",onCommit:k=>A(v=>{const C=[...v];return C[f]={...C[f],start:k},C})}),e.jsx(It,{label:"Akhir",valueSecStr:x[f]?.end,accent:"end",onCommit:k=>A(v=>{const C=[...v];return C[f]={...C[f],end:k},C})})]}),e.jsxs("p",{className:"mt-2 text-[9px] font-medium leading-relaxed text-zinc-500",children:[e.jsx("span",{className:"font-bold text-zinc-400",children:"Tip:"})," ketik"," ",e.jsx("span",{className:"font-mono text-zinc-400",children:"2:15"})," atau angka detik"," ",e.jsx("span",{className:"font-mono text-zinc-400",children:"135"}),"."," ",H!=null?e.jsxs(e.Fragment,{children:["Durasi klip ini:"," ",e.jsx("span",{className:"font-mono font-bold text-zinc-300",children:ne(H)})]}):e.jsx(e.Fragment,{children:"Isi mulai & akhir, atau geser di timeline."})]})]})]}),e.jsxs("div",{className:"order-2 flex min-w-0 flex-col gap-4 lg:order-1 lg:col-span-7",children:[e.jsx("div",{className:"overflow-hidden rounded-2xl border border-zinc-700/90 bg-black shadow-[inset_0_1px_0_rgba(255,255,255,0.06)] ring-1 ring-zinc-600/50",children:c?e.jsxs("div",{className:"relative aspect-video w-full",children:[e.jsx(Qe,{ref:o,videoId:c,initialSeekSec:p,syncSeekFromProp:!1,clipStartSec:X.lo,clipEndSec:X.hi,className:"absolute inset-0 h-full w-full",label:`Pratinjau klip ${f+1}`}),e.jsx("div",{className:"pointer-events-none absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/90 to-transparent px-3 py-2.5",children:e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[e.jsxs("span",{className:"inline-flex items-center gap-1.5 rounded-md bg-white/10 px-2 py-1 text-[10px] font-bold uppercase tracking-wide text-white backdrop-blur-sm",children:[e.jsx(Ee,{className:"h-3 w-3 fill-current","aria-hidden":!0}),"Pratinjau klip ",f+1]}),e.jsxs("span",{className:"font-mono text-xs font-bold tabular-nums text-white/95",children:["Mulai ",ne(x[f]?.start)||"â",q?e.jsxs("span",{className:"text-white/50",children:[" ","· durasi video ",q]}):null]})]})})]}):e.jsx("div",{className:"flex aspect-video flex-col items-center justify-center gap-2 bg-zinc-900/80 px-4 text-center",children:e.jsx("p",{className:"text-[11px] font-semibold text-zinc-500",children:"Tempel link untuk pratinjau"})})}),e.jsx(Ht,{variant:"dark",durationSec:E,slots:x,activeSlot:f,onSelectSlot:F,onSlotsChange:A,minSegSec:5})]})]}
1),Q?e.jsx("div",{className:"mt-4 rounded-xl border border-red-500/40 bg-red-950/50 px-3 py-2 text-sm font-bold text-red-300",children:Q}):null]})]})}),e.jsxs("div",{className:"flex shrink-0 flex-col gap-2 border-t border-zinc-800 bg-zinc-900/95 px-4 py-3 sm:flex-row sm:justify-end",children:[e.jsx("button",{type:"button",onClick:a,className:"rounded-xl border border-zinc-600 bg-zinc-900 px-4 py-2.5 text-[11px] font-black text-zinc-300 hover:bg-zinc-800",children:"Batal"}),e.jsx("button",{type:"button",disabled:K,onClick:O,className:"inline-flex items-center justify-center gap-2 rounded-xl bg-indigo-600 px-5 py-2.5 text-[11px] font-black text-white shadow-lg hover:bg-indigo-500 disabled:opacity-50",children:K?e.jsxs(e.Fragment,{children:[e.jsx(se,{className:"h-4 w-4 animate-spin"}),"Mengirimâ¦"]}):e.jsxs(e.Fragment,{children:[e.jsx(Te,{className:"h-4 w-4"}),"Buat job dengan segmen ini"]})})]})]})]});return typeof document>"u"?null:qt.createPortal(G,document.body)}const _t=be(he,"saveXclipSuggestionEdit",{timeout:6e4}),Za=be(he,"renderXclipSuggestion",{timeout:54e4}),ve=12;function Et(t){const a=t?.details;return typeof a=="string"&&a?a:a&&typeof a=="object"&&a.message?String(a.message):t?.message||"Terjadi kesalahan."}function es(t,a,r,i){const d=Array.isArray(t)&&t.length?t:[];if(!d.length||!(a>0))return[];const l=Math.max(0,Number(r)||0),P=Math.max(l+.1,Number(i)||l+1),m=d.length,g=Math.floor(l/a*m),b=Math.min(m,Math.ceil(P/a*m));return d.slice(Math.max(0,g),Math.max(g+1,b))}function ts({peaks:t}){const a=Array.isArray(t)&&t.length?t:[];return e.jsxs("div",{className:"rounded-lg border border-slate-700/80 bg-slate-950/80 px-2 py-2",children:[e.jsx("p",{className:"mb-1.5 text-[9px] font-black uppercase tracking-wider text-slate-500 dark:text-slate-400 ",children:"Audio ringkas (klip ini saja)"}),e.jsx("div",{className:"flex h-9 w-full items-end gap-px overflow-hidden rounded-md bg-slate-900/90",children:a.length===0?e.jsx("div",{className:"flex h-full w-full items-center justify-center text-[10px] font-medium text-slate-500 dark:text-slate-400 ",children:"Belum ada data audio ringkas"}):a.map((r,i)=>{const d=Math.max(6,(Number(r)||0)*32);return e.jsx("div",{className:"min-w-0 flex-1 rounded-t bg-indigo-400/85",style:{height:`${d}px`}},i)})})]})}function as({open:t,onClose:a,job:r,clipIndex:i,onAfterSave:d}){const[l,P]=s.useState(0),[m,g]=s.useState(0),[b,N]=s.useState(0),[x,A]=s.useState(!1),[f,F]=s.useState(!1),[L,W]=s.useState(""),[U,ee]=s.useState(60),[Y,z]=s.useState(1),[E,I]=s.useState(!1),[K,te]=s.useState(null),Q=s.useRef(0),D=s.useRef(0),w=s.useRef(120),j=s.useRef(null);s.useEffect(()=>{Q.current=l,D.current=m},[l,m]);const S=r?.suggestions?.[i],o=(S?.clipId||`c${i}`).toLowerCase(),p=(r?.suggestionEdits&&typeof r.suggestionEdits=="object"?r.suggestionEdits:{})[o],y=r?.videoId||null,X=Math.max(0,m-l),q=s.useMemo(()=>{if(r?.videoDurationSec!=null&&Number.isFinite(Number(r.videoDurationSec)))return Math.max(1,Number(r.videoDurationSec));const R=Array.isArray(r?.transcriptCues)?r.transcriptCues:[];let T=0;for(const $ of R){const Z=Number($.endSec);Number.isFinite(Z)&&Z>T&&(T=Z)}return Math.max(T+2,Number(m)||0,120)},[r,m]);w.current=q,s.useEffect(()=>{if(!t||!r)return;const R=w.current;let T=p?.startSec!=null?Number(p.startSec):S?.startSec!=null?Number(S.startSec):Number(r.outputs?.[i]?.startSec)||0,$=p?.endSec!=null?Number(p.endSec):S?.endSec!=null?Number(S.endSec):Number(r.outputs?.[i]?.endSec)||0;Number.isFinite(T)||(T=0),(!Number.isFinite($)||$<=T)&&($=T+15),$=Math.min($,R),T=Math.max(0,Math.min(T,$-ve)),$-T<ve&&($=Math.min(R,T+ve)),P(T),g($),N(T);const Z=Math.max(15,Math.min(120,Math.round(Math.max(15,($-T)*.9))));ee(Z),z(1),W("")},[t,r,i,p,S]);const H=s.useMemo(()=>{const R=Array.isArray(r?.transcriptCues)?r.transcriptCues:[],T=Math.max(0,l),$=m;return R.filter(Z=>{const B=Number(Z.startSec),re=Number(Z.endSec);return Number.isFinite(B)&&Number.isFinite(re)&&B<$&&re>T})},[r,l,m]),J=Math.max(5,U/Math.max(.5,Y)),O=Math.max(0,l-J),G=Math.min(q,m+J),k=E&&K?K.start:O,v=E&&K?K.end:G,C=s.useMemo(()=>[{start:String(l),end:String(m)}],[l,m]),u=s.useCallback(R=>{const T=parseFloat(R[0]?.start),$=parseFloat(R[0]?.end);if(!Number.isFinite(T)||!Number.isFinite($)||$<=T)return;const Z=q;let B=T,re=$;B=Math.max(0,B),re=Math.min(Z,re),re-B<ve&&(re=Math.min(Z,B+ve),re-B<ve&&(B=Math.max(0,re-ve))),P(B),g(re)},[q]),_=s.useCallback(R=>
1{if(I(!!R),R){te({start:O,end:G});return}te(null)},[O,G]);s.useEffect(()=>{if(!t||!r||!(m>l))return;let R=0;N($=>(R=Math.min(m,Math.max(l,$)),R));const T=requestAnimationFrame(()=>{j.current?.seekTo?.(R)});return()=>cancelAnimationFrame(T)},[t,r?.id,i,l,m]);const le=s.useMemo(()=>es(r?.transcriptPeaks,q,l,m),[r,q,l,m]),oe=s.useCallback(R=>{const T=Number(R)||0,$=l,Z=Math.max($,m-.25),B=Math.max($,Math.min(Z,T));N(B),j.current?.seekTo?.(B)},[l,m]),ce=Math.max(0,b-l),ue=Math.max(.001,m-l),je=async()=>{if(!(!r?.id||!o)){A(!0),W("");try{await _t({jobId:r.id,clipId:o,startSec:l,endSec:m}),d?.(),a()}catch(R){W(Et(R))}finally{A(!1)}}},de=async()=>{if(!(!r?.id||!o)){A(!0),F(!0),W("");try{await _t({jobId:r.id,clipId:o,startSec:l,endSec:m}),await Za({jobId:r.id,clipId:o}),d?.(),a()}catch(R){W(Et(R))}finally{A(!1),F(!1)}}};return!t||typeof document>"u"?null:qt.createPortal(e.jsx("div",{className:"fixed inset-0 z-[80] flex items-end justify-center sm:items-center p-3 sm:p-5 bg-black/60 backdrop-blur-sm",role:"dialog","aria-modal":"true","aria-labelledby":"xclip-trim-title",children:e.jsxs("div",{className:"relative flex max-h-[min(92vh,900px)] w-full max-w-6xl flex-col overflow-hidden rounded-2xl border border-slate-700 bg-zinc-950 text-zinc-100 shadow-2xl",children:[e.jsxs("div",{className:"flex items-start justify-between gap-3 border-b border-slate-800 px-4 py-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("p",{id:"xclip-trim-title",className:"text-sm font-black text-white flex items-center gap-2",children:[e.jsx(Ke,{className:"h-4 w-4 text-indigo-400 shrink-0","aria-hidden":!0}),"Sesuaikan trim"]}),e.jsxs("p",{className:"mt-0.5 text-[11px] font-medium text-zinc-400 line-clamp-2",children:[S?.title||`Klip ${i+1}`," · ",Vt(String(l),String(m))]})]}),e.jsx("button",{type:"button",onClick:a,className:"rounded-lg p-2 text-zinc-400 hover:bg-zinc-800 hover:text-white","aria-label":"Tutup",children:e.jsx(pt,{className:"h-5 w-5"})})]}),e.jsxs("div",{className:"min-h-0 flex-1 overflow-y-auto px-4 py-3 sm:px-6 space-y-4",children:[e.jsxs("section",{className:"space-y-2",children:[e.jsx("p",{className:"text-[10px] font-black uppercase tracking-wider text-zinc-500",children:"Pratinjau sumber"}),r?.sourceVideoUrl||y?e.jsxs(e.Fragment,{children:[e.jsx(Qe,{ref:j,sourceVideoUrl:r?.sourceVideoUrl,videoId:y,initialSeekSec:b,syncSeekFromProp:!1,clipStartSec:l,clipEndSec:m,onPlayheadSeconds:N,className:"w-full ring-zinc-700",label:"Pratinjau trim klip"}),e.jsxs("div",{className:"space-y-2 rounded-xl border border-zinc-800 bg-zinc-900/40 px-3 py-2.5",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[e.jsx("p",{className:"text-[9px] font-black uppercase tracking-wider text-zinc-500",children:"Playhead dalam klip"}),e.jsxs("span",{className:"font-mono text-[10px] font-bold text-indigo-300 tabular-nums",children:["+",ne(String(ce))," / ",ne(String(ue))]})]}),e.jsx("input",{type:"range",className:"h-2 w-full cursor-pointer accent-indigo-500",min:l,max:m,step:.05,value:Math.min(m,Math.max(l,b)),onChange:R=>{const T=parseFloat(R.target.value);Number.isFinite(T)&&(N(T),j.current?.seekTo?.(T))},"aria-label":"Geser playhead dalam rentang klip"}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx("button",{type:"button",onClick:()=>oe(l),className:"rounded-lg border border-zinc-700 bg-zinc-950 px-2.5 py-1 text-[10px] font-bold text-zinc-300 hover:bg-zinc-800",children:"Ke awal klip"}),e.jsx("button",{type:"button",onClick:()=>oe(m-.05),className:"rounded-lg border border-zinc-700 bg-zinc-950 px-2.5 py-1 text-[10px] font-bold text-zinc-300 hover:bg-zinc-800",children:"Ke akhir klip"})]})]}),e.jsx("p",{className:"text-[10px] font-medium text-zinc-500",children:r?.sourceVideoUrl?"Pemutar mengikuti rentang AâB; geser timeline atau slider untuk menyesuaikan seperti editor.":"Sementara memakai YouTube; setelah server mengunggah sumber, pemutar akan memakai file XGrind."})]}):e.jsx("p",{className:"text-xs font-semibold text-amber-400",children:"Pratinjau tidak tersedia (tanpa URL sumber atau ID YouTube)."})]}),e.jsxs("div",{className:"grid grid-cols-1 gap-4 lg:grid-cols-[minmax(0,1.15fr)_minmax(0,1fr)]",children:[e.jsxs("section",{className:"space-y-2.5",children:[e.jsxs("div",{className:"rounded-xl border border-zinc-800 bg-zinc-900/60 px-3 py-2",children:[e.jsxs("div",{className:"mb-1.5 flex items-center justify-between gap-2",children:[e.jsx("p",{className:"text-[10px] font-black uppercase tracking-wider text-zinc-400",children:"Rentang klip (hanya segmen ini)"}),e.jsxs("p",{className:"text-[10px] font-mono font-bold text-indigo-300",children:[ne(String(l))," â ",ne(String(m))," (",X.toFixed(1),"s)"]})]}),e.jsxs("div",{className:"mb-2 grid grid-cols-1 gap-2 sm:grid-cols-2",children:[e.jsxs("label",{className:"rounded-lg border border-zinc-800 bg-zinc-950/60 px-2 py-1.5",children:[e.jsxs("span",{className:"text-[9px] font-black uppercase tracking-wider text-zinc-500",children:["Cakupan sisi (",Math.round(J),"s)"]}
1),e.jsx("input",{type:"range",min:15,max:120,step:5,value:U,onChange:R=>ee(Math.max(15,Math.min(120,Number(R.target.value)||60))),className:"mt-1 h-2 w-full cursor-pointer accent-indigo-500"})]}),e.jsxs("label",{className:"rounded-lg border border-zinc-800 bg-zinc-950/60 px-2 py-1.5",children:[e.jsxs("span",{className:"text-[9px] font-black uppercase tracking-wider text-zinc-500",children:["Zoom (",Y.toFixed(1),"x)"]}),e.jsx("input",{type:"range",min:.5,max:4,step:.1,value:Y,onChange:R=>z(Math.max(.5,Math.min(4,Number(R.target.value)||1))),className:"mt-1 h-2 w-full cursor-pointer accent-indigo-500"})]})]}),e.jsx(Ht,{durationSec:q,slots:C,activeSlot:0,onSelectSlot:()=>{},onSlotsChange:u,minSegSec:ve,viewStartSec:k,viewEndSec:v,variant:"dark",onDragStateChange:_})]}),e.jsx(ts,{peaks:le})]}),e.jsxs("section",{className:"space-y-1.5 min-h-0",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsx("p",{className:"text-[10px] font-black uppercase tracking-wider text-zinc-500",children:"Naskah dalam rentang"}),e.jsxs("span",{className:"text-[10px] font-semibold text-zinc-500",children:[H.length," baris"]})]}),e.jsx("div",{className:"max-h-[28vh] overflow-y-auto rounded-lg border border-zinc-800 bg-zinc-900/50 px-2 py-2 space-y-1 lg:max-h-[42vh]",children:H.length===0?e.jsx("p",{className:"text-[11px] text-zinc-500 px-1 py-2",children:S?.transcriptSnippet||"Tidak ada baris transkrip yang berpotongan ketat dengan rentang ini."}):H.map((R,T)=>{const $=Number(R.startSec),Z=Math.max(0,$-l);return e.jsxs("button",{type:"button",onClick:()=>oe($),className:"flex w-full gap-2 rounded-md px-2 py-1.5 text-left text-[11px] font-medium text-zinc-300 hover:bg-zinc-800/80",children:[e.jsx("span",{className:"shrink-0 font-mono text-[10px] text-indigo-300 tabular-nums",children:ne(String($))}),e.jsxs("span",{className:"shrink-0 text-[9px] font-semibold text-zinc-500 tabular-nums",children:["+",ne(String(Z))]}),e.jsx("span",{className:"min-w-0 text-zinc-200",children:R.text||"â"})]},`${R.startSec}-${T}`)})})]})]}),L?e.jsx("div",{className:"rounded-lg border border-red-500/40 bg-red-950/50 px-3 py-2 text-xs font-semibold text-red-200",children:L}):null]}),e.jsxs("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-slate-800 px-4 py-3 bg-zinc-950/95",children:[e.jsx("button",{type:"button",onClick:a,className:"rounded-xl border border-zinc-700 px-4 py-2.5 text-[11px] font-black text-zinc-300 hover:bg-zinc-900",children:"Tutup"}),e.jsxs("button",{type:"button",disabled:x||f,onClick:je,className:"inline-flex items-center gap-2 rounded-xl border border-indigo-500/40 bg-indigo-950/50 px-4 py-2.5 text-[11px] font-black text-indigo-200 hover:bg-indigo-900/60 disabled:opacity-50",children:[x&&!f?e.jsx(se,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(Aa,{className:"h-3.5 w-3.5"}),"Simpan trim"]}),e.jsxs("button",{type:"button",disabled:x||f||r?.status!=="done",title:r?.status!=="done"?"Tunggu job selesai dulu":"Simpan lalu render ulang MP4",onClick:de,className:"inline-flex items-center gap-2 rounded-xl bg-indigo-600 px-4 py-2.5 text-[11px] font-black text-white shadow-lg shadow-indigo-900/30 hover:bg-indigo-500 disabled:opacity-50",children:[f?e.jsx(se,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx($e,{className:"h-3.5 w-3.5"}),"Simpan & render ulang MP4"]})]})]})}),document.body)}const Oe=10,ss=["all","done","active","failed"];function $t(t){switch(t){case"done":return"Selesai";case"active":return"Antrean & proses";case"failed":return"Gagal";default:return"Semua"}}const Lt={accepted:"Menyiapkan serverâ¦",download:"Mengambil video & teks untuk analisisâ¦",transcript:"Transkrip siap â kita susun konteks hook.",gemini:"Mencari momen paling kuat untuk dipotongâ¦",encode:"Merender klip vertikal (bisa beberapa menit per klip).",done:"Selesai â preview & export siap.",failed:"Gagal â coba lagi atau ubah opsi."},Ut={queued:"Mengantreâ¦",prepare:"Mengunduh & menyiapkan teksâ¦",gemini:"Menganalisis momen klip (AI), adegan & kandidat potongâ¦",suggest_ready:"Kandidat klip sudah ada â lanjut renderâ¦",rendering:"Merender ulang klip yang kamu editâ¦",done:"Selesai.",failed:"Gagal."},ns=[{id:"receive",label:"Antrean"},{id:"prep",label:"Unduh"},{id:"gemini",label:"Analisis"},{id:"encode",label:"Render"},{id:"finalize",label:"Selesai"}],rs=[[0,12],[12,28],[28,46],[46,92],[92,100]];function is(t){return Number.isFinite(t)?Math.min(100,Math.max(0,Math.round(t))):null}function ls(t,a){const r=rs[a];if(!r)return null;const[i,d]=r;return d<=i?100:Math.min(100,Math.max(0,(t-i)/(d-i)*100))}function os(t){return t<12?0:t<28?1:t<46?2:t<=92?3:4}function ds(t){const a=String(t.progressStage||""),r=String(t.pipelineStage||"");return a==="download"||r==="prepare"||a==="transcript"?1:a==="gemini"||r==="gemini"?2:r==="suggest_ready"||a==="encode"||r==="rendering"?3:a==="done"||r==="done"?4:1}function Wt(t){const a=t.status,r=String(t.progressStage||""),i=String(t.pipelineStage||""),d=typeof t.progressPercent=="number"?t.progressPercent:null,l=d!=null?is(d):null;if(a!=="queued"&&a!=="processing")return null;let P=0;a==="queued"?P=0:a==="processing"&&(l!=null?P=os(l):P=ds(t));const m=ns.map((N,x)=>{const A=x<P?"done":x===P?"active":"pending",f=A==="active"&&l!=null?ls(l,x):null;return{...N,state:A,stepLocalPct:f}}),g=typeof t.progressMessage=="string"?t.progressMessage.trim():"";let b="";return a==="queued"?b=l!=null?`${g||"Menunggu antreanâ¦"} · ${l}%`:g||"Menunggu antreanâ¦":a==="processing"&&(g?b=l!=null?`${g} · ${l}% total`:g:r==="gemini"?b=l!=null?`Mencari momen terbaik⦠· ${l}% total`:"Mencari momen terbaikâ¦":i==="suggest_ready"?b=l!=null?`Menyiapkan render klip⦠· ${l}
1% total`:"Menyiapkan render klipâ¦":r==="encode"||i==="rendering"?b=l!=null?`Merender klip⦠· ${l}% total`:"Merender klipâ¦":b=l!=null?`${l}% · ${Lt[r]||"Memprosesâ¦"}`:Lt[r]||"Memprosesâ¦"),{steps:m,pct:l,pctBar:l??0,activeLine:b,headline:"Progress pembuatan klip",subline:""}}function Kt({j:t}){if(t.status!=="queued"&&t.status!=="processing")return null;const a=Wt(t);if(!a)return null;const{steps:r,pctBar:i,activeLine:d,headline:l}=a,P=t.status,m=r.find(g=>g.state==="active");return e.jsxs("div",{className:"overflow-hidden rounded-xl border border-slate-200 bg-white p-3 sm:p-4",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[e.jsx("p",{className:"text-xs font-semibold text-slate-700 dark:text-slate-300 ",children:l}),e.jsxs("p",{className:"text-sm font-bold tabular-nums text-slate-900 dark:text-slate-100 ",title:"progressPercent dari server",children:[i,"%"]})]}),e.jsx("div",{className:"mt-2 h-2 overflow-hidden rounded-full bg-slate-200",children:e.jsx("div",{className:"h-full rounded-full bg-indigo-600 transition-all duration-500",style:{width:`${Math.min(100,Math.max(0,i))}%`}})}),d?e.jsx("p",{className:"mt-2 text-xs font-medium text-slate-700 dark:text-slate-300 ",children:d}):null,e.jsx("div",{className:"mt-3 grid grid-cols-2 gap-2 sm:grid-cols-3 lg:grid-cols-5",children:r.map(g=>e.jsx("div",{className:g.state==="active"?"rounded-lg border border-indigo-200 bg-indigo-50 px-2 py-1.5 text-[11px] font-semibold text-indigo-900":g.state==="done"?"rounded-lg border border-emerald-200 bg-emerald-50 px-2 py-1.5 text-[11px] font-medium text-emerald-800 dark:text-emerald-300 ":"rounded-lg border border-slate-200 bg-slate-50 px-2 py-1.5 text-[11px] font-medium text-slate-500 dark:text-slate-400 ",children:e.jsxs("span",{className:"inline-flex min-w-0 items-center gap-1.5",children:[g.state==="done"?e.jsx(Je,{className:"h-3.5 w-3.5 shrink-0 text-emerald-500","aria-hidden":!0}):g.state==="active"?e.jsx(se,{className:"h-3.5 w-3.5 shrink-0 animate-spin text-indigo-500","aria-hidden":!0}):e.jsx("span",{className:"h-2 w-2 shrink-0 rounded-full bg-slate-300"}),e.jsx("span",{className:"min-w-0 break-words leading-tight",children:g.label})]})},g.id))}),m?e.jsxs("p",{className:"mt-2 text-[11px] font-medium text-slate-600 dark:text-slate-300 ",children:["Tahap saat ini: ",e.jsx("span",{className:"font-semibold text-slate-800 dark:text-slate-200 ",children:m.label})]}):null,P==="queued"?e.jsx("p",{className:"mt-1 text-[11px] font-medium text-slate-600 dark:text-slate-300 ",children:"Antrean aktif â proses mulai otomatis saat giliran."}):null]})}function cs(t){const a=t?.createdAt;return a?typeof a.toMillis=="function"?a.toMillis():typeof a.seconds=="number"?a.seconds*1e3:0:0}function us(t){const a=Date.now()-cs(t);return a>0?Math.floor(a/6e4):0}function ms(t){return t?typeof t.toMillis=="function"?t.toMillis():typeof t.seconds=="number"?t.seconds*1e3:0:0}function Ve(t){const a=t?.details;return typeof a=="string"&&a?a:a&&typeof a=="object"&&a.message?String(a.message):t?.message||"Terjadi kesalahan."}function ht(t){switch(t){case"done":return"bg-emerald-100 text-emerald-800 dark:text-emerald-300 ring-emerald-200/80";case"failed":return"bg-red-100 text-red-800 ring-red-200/80";case"processing":return"bg-indigo-100 text-indigo-800 ring-indigo-200/80";default:return"bg-slate-100 text-slate-600 dark:text-slate-300 ring-slate-200/80"}}const xs=[{id:"ai",title:"AI â klip otomatis",sub:"AI cari momen menarik â klip + subtitle + frame 9:16. Sesuaikan trim setelah jadi (hanya klip yang diubah yang di-encode ulang)."},{id:"human_loop",title:"Studio â tinjau dulu",sub:"Lihat saran segmen â sesuaikan di timeline â pilih pengaturan â encode. Kontrol penuh sebelum render."}],ps=[{id:"auto_multi",title:"Auto Multi Reframe",sub:"Crop tengah vertikal + zoom (9:16), bukan blur pillarbox â untuk landscape"},{id:"auto_magic",title:"Auto Magic",sub:"Rekomendasi: blur atau pad otomatis dari rasio video"},{id:"gaussian_blur",title:"Gaussian blur",sub:"Video di tengah, latar blur"},{id:"auto_reframe_beta",title:"Auto Reframe (beta)",sub:"Crop tengah vertikal â bukan tracking AI penuh"}],gs=[{id:"clean_pro",title:"Clean Pro",sub:"Tampilan rapi untuk edukasi, bisnis, dan konten serius.",previewVariant:"minimal"},{id:"viral_engage",title:"Viral Engage",sub:"Default recommended: punchy, jelas, dan tetap aman dipakai luas.",previewVariant:"punchy"},{id:"viral_aggressive",title:"Viral Aggressive",sub:"Paling menonjol untuk hook kuat, pace cepat, dan impact tinggi.",previewVariant:"punchy"}];function bs(){return e.jsx("div",{className:"flex shrink-0 items-center justify-center rounded-lg bg-gradient-to-br from-slate-50 to-slate-100/80 p-1.5 ring-1 ring-slate-200/90","aria-hidden":!0,
1children:e.jsx("div",{className:"relative flex h-[2.75rem] w-[1.7rem] flex-col justify-end overflow-hidden rounded-md bg-gradient-to-b from-slate-800 to-slate-950 p-0.5 shadow-inner ring-1 ring-white/10",children:e.jsxs("div",{className:"space-y-0.5",children:[e.jsx("div",{className:"h-0.5 w-full rounded-full bg-white/95 shadow-sm"}),e.jsx("div",{className:"h-0.5 w-[72%] rounded-full bg-white/75"}),e.jsx("div",{className:"h-0.5 w-[88%] rounded-full bg-white/55"})]})})})}function hs({variant:t,dimmed:a}){const r=t==="punchy";return e.jsx("div",{className:`flex shrink-0 items-center justify-center rounded-lg bg-gradient-to-br from-slate-50 to-slate-100/80 p-1.5 ring-1 ring-slate-200/90 transition-opacity ${a?"opacity-45":"opacity-100"}`,"aria-hidden":!0,children:e.jsx("div",{className:"relative flex h-[2.75rem] w-[1.7rem] flex-col justify-end overflow-hidden rounded-md bg-gradient-to-b from-slate-800 to-slate-950 p-0.5 shadow-inner ring-1 ring-white/10",children:r?e.jsxs("div",{className:"flex w-full flex-col items-stretch gap-0.5",children:[e.jsx("div",{className:"rounded-[1px] bg-amber-300 px-0.5 py-px text-center text-[2.5px] font-black uppercase leading-none tracking-tight text-slate-900 shadow-sm",children:"WOW"}),e.jsx("div",{className:"h-[3px] w-full rounded-[1px] bg-white shadow-[0_0_5px_rgba(255,255,255,0.85)]"}),e.jsx("div",{className:"h-[2px] w-[92%] self-center rounded-full bg-white"}),e.jsx("div",{className:"h-[2px] w-[70%] self-center rounded-full bg-white/90"})]}):e.jsxs("div",{className:"space-y-0.5",children:[e.jsx("div",{className:"h-0.5 w-full rounded-full bg-white/65"}),e.jsx("div",{className:"h-0.5 w-[78%] rounded-full bg-white/50"}),e.jsx("div",{className:"h-0.5 w-[64%] rounded-full bg-white/40"})]})})})}function He({title:t,accentClass:a,children:r}){return e.jsx("section",{className:"overflow-hidden rounded-lg border border-slate-200/65 bg-white/80 shadow-sm",children:e.jsxs("div",{className:`border-l-[3px] ${a} bg-slate-50/40 pl-2.5 pr-2 py-2`,children:[e.jsx("h3",{className:"text-[9px] font-black uppercase tracking-[0.2em] text-slate-500 dark:text-slate-400 ",children:t}),e.jsx("div",{className:"mt-2 space-y-2",children:r})]})})}function fs(){return e.jsx("div",{className:"flex shrink-0 items-center justify-center rounded-lg bg-gradient-to-br from-indigo-50/50 to-slate-50 p-1.5 ring-1 ring-indigo-100/80","aria-hidden":!0,children:e.jsxs("div",{className:"flex h-[2.75rem] w-[2rem] flex-col justify-center gap-0.5 rounded-md bg-white p-1 shadow-sm ring-1 ring-indigo-100",children:[e.jsx("div",{className:"h-0.5 w-full rounded bg-slate-200"}),e.jsx("div",{className:"h-0.5 w-full rounded bg-slate-200"}),e.jsx("div",{className:"h-0.5 w-full rounded bg-slate-200"}),e.jsx("div",{className:"h-0.5 w-[68%] rounded bg-slate-100"}),e.jsx("div",{className:"h-0.5 w-full rounded bg-slate-200"})]})})}function ks(){return e.jsx("div",{className:"flex shrink-0 items-center justify-center rounded-lg bg-gradient-to-br from-slate-50 to-slate-100/80 p-1.5 ring-1 ring-slate-200/90","aria-hidden":!0,children:e.jsx("div",{className:"relative h-[2.75rem] w-[1.7rem] overflow-hidden rounded-md bg-gradient-to-br from-slate-700 to-slate-900",children:e.jsx("span",{className:"absolute bottom-1 right-0.5 text-[5px] font-bold uppercase tracking-wide text-white/75",children:"@you"})})})}function ws(){return e.jsx("div",{className:"flex shrink-0 items-center justify-center rounded-lg bg-gradient-to-br from-emerald-50 to-white p-1.5 ring-1 ring-emerald-100/90","aria-hidden":!0,children:e.jsxs("div",{className:"flex h-[2.75rem] w-[2rem] flex-col justify-center gap-0.5 rounded-md bg-white p-1 shadow-sm ring-1 ring-emerald-100",children:[e.jsx("div",{className:"h-0.5 w-[75%] rounded bg-emerald-800/35"}),e.jsx("div",{className:"text-[4px] font-bold leading-tight text-emerald-700",children:"#fyp #tips"}),e.jsx("div",{className:"h-0.5 w-full rounded bg-emerald-100"})]})})}function Ns(){return e.jsx("div",{className:"flex shrink-0 items-center justify-center rounded-lg bg-gradient-to-br from-violet-50 to-fuchsia-50/50 p-1.5 ring-1 ring-violet-200/80","aria-hidden":!0,
1children:e.jsxs("div",{className:"relative h-[2.75rem] w-[1.7rem] overflow-hidden rounded-md bg-slate-900 ring-1 ring-violet-400/40",children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-violet-500/25 to-transparent"}),e.jsx(Te,{className:"absolute inset-0 m-auto h-4 w-4 text-amber-200/95",strokeWidth:1.75})]})})}function ys({layoutId:t,selected:a}){const i=`relative h-9 w-full overflow-hidden rounded-md bg-slate-200 ${a?"ring-2 ring-indigo-500 ring-offset-1":"ring-1 ring-slate-200/90"}`;return t==="auto_magic"?e.jsxs("div",{className:i,"aria-hidden":!0,children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-slate-600 via-slate-700 to-slate-900"}),e.jsx("div",{className:"absolute inset-[22%] rounded-sm bg-slate-900/90 ring-1 ring-white/15"})]}):t==="gaussian_blur"?e.jsxs("div",{className:i,"aria-hidden":!0,children:[e.jsx("div",{className:"absolute inset-y-0 left-0 w-[22%] bg-slate-400/50 blur-[2px]"}),e.jsx("div",{className:"absolute inset-y-0 right-0 w-[22%] bg-slate-400/50 blur-[2px]"}),e.jsx("div",{className:"absolute inset-y-1 left-1/4 right-1/4 rounded-sm bg-slate-800"})]}):t==="auto_multi"?e.jsxs("div",{className:i,"aria-hidden":!0,children:[e.jsx("div",{className:"absolute inset-0 bg-slate-900"}),e.jsx("div",{className:"absolute left-[8%] top-[12%] h-[30%] w-[36%] rounded-sm bg-slate-600/85"}),e.jsx("div",{className:"absolute right-[8%] top-[12%] h-[30%] w-[36%] rounded-sm bg-slate-500/85"}),e.jsx("div",{className:"absolute bottom-[12%] left-[20%] h-[34%] w-[60%] rounded-sm bg-slate-700/90 ring-1 ring-white/10"})]}):e.jsx("div",{className:i,"aria-hidden":!0,children:e.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-slate-800",children:e.jsx("div",{className:"h-full w-[42%] rounded-sm bg-slate-500"})})})}const vs={ai:Xt,heatmap:_a,blend:Ia,manual:Dt,human_loop:Ra};function We(t){if(!t)return"â";try{const a=t.toDate?t.toDate():new Date(t);return Number.isNaN(a.getTime())?"â":a.toLocaleString("id-ID",{day:"numeric",month:"short",hour:"2-digit",minute:"2-digit"})}catch{return"â"}}function ft(t){switch(t){case"queued":return"Mengantre";case"processing":return"Memproses";case"done":return"Selesai";case"failed":return"Gagal";default:return t||"â"}}function ge(t){return!t||typeof t!="string"?null:`https://i.ytimg.com/vi/${t}/hqdefault.jpg`}function xt(t){if(typeof t!="number"||Number.isNaN(t)||t<0)return"00:00";const a=Math.floor(t),r=Math.floor(a/60),i=a%60;return`${String(r).padStart(2,"0")}:${String(i).padStart(2,"0")}`}function js(t){if(t==null||!Number.isFinite(Number(t)))return null;const a=Math.floor(Number(t)),r=Math.floor(a/3600),i=Math.floor(a%3600/60),d=a%60;return r>0?`${r}:${String(i).padStart(2,"0")}:${String(d).padStart(2,"0")}`:`${i}:${String(d).padStart(2,"0")}`}function Ge(t,a){return`${xt(t)}
1 â ${xt(a)}`}function Ss(t){const a=String(t||"").toLowerCase();return a==="heatmap"?"Most Replayed":a==="blend"?"AI + Most Replayed":a==="manual"?"Manual":a==="human_loop"?"Studio":"AI otomatis"}function Ms(t){const a=String(t||"").toLowerCase();return a==="pending_encode"?"Menunggu render":a==="rendered"?"Siap":a==="draft"?"Draf":t?String(t):"Draf"}function Ps(t,a,r,i=120){const d=Array.isArray(t)&&t.length?t:[];if(!d.length)return[];const l=Math.max(0,Number(a)||0),P=Math.max(l+.1,Number(r)||l+1);if(l>=i)return[];const m=Math.min(i,P),g=d.length,b=Math.floor(l/i*g),N=Math.min(g,Math.ceil(m/i*g));return d.slice(Math.max(0,b),Math.max(b+1,N))}const Jt=10,Bt=4;function Cs(t){const a=Array.isArray(t.videoTimeline)?t.videoTimeline:[];if(a.length===0)return{segments:[],showFallbackNote:!1};const r=[],i=(N,x)=>{const A=Math.max(0,Number(N)||0),f=Math.max(A,Number(x)||0);r.push([Math.max(0,A-Bt),f+Bt])},d=Array.isArray(t.suggestions)?t.suggestions:[];for(const N of d)i(N.startSec,N.endSec);const l=Array.isArray(t.outputs)?t.outputs:[];for(const N of l)i(N.startSec,N.endSec);const P=N=>{const x=Number(N.startSec),A=Number(N.endSec);return!Number.isFinite(x)||!Number.isFinite(A)?!1:r.some(([f,F])=>A>=f&&x<=F)};let g=a.filter(P).slice(0,Jt),b=!1;return g.length===0&&(g=a.slice(0,5),b=!0),{segments:g,showFallbackNote:b}}function Ts({videoId:t,segments:a=5}){const r=ge(t);if(!r)return null;const i=Math.max(2,Math.min(6,a));return e.jsx("div",{className:"mt-1.5 flex gap-px overflow-hidden rounded-md ring-1 ring-slate-200/80",children:Array.from({length:i}).map((d,l)=>e.jsx("div",{className:"h-7 flex-1 bg-slate-200 bg-cover bg-center",style:{backgroundImage:`url(${r})`,backgroundPosition:`${l/Math.max(1,i-1)*100}% center`}},l))})}function As({peaks:t}){const a=Array.isArray(t)&&t.length?t:[],r=12,i=Math.max(1,Math.ceil(a.length/r)),d=[];for(let l=0;l<a.length&&d.length<r;l+=i)d.push(Number(a[l])||0);return d.length===0?e.jsx("div",{className:"mt-1.5 h-5 rounded-md border border-dashed border-slate-200/90 bg-slate-50/80","aria-hidden":!0}):e.jsx("div",{className:"mt-1.5 flex h-5 items-end gap-px rounded-md bg-slate-900/90 px-0.5 py-0.5 ring-1 ring-slate-200/60",children:d.map((l,P)=>e.jsx("div",{className:"min-w-0 flex-1 rounded-[1px] bg-indigo-400/85",style:{height:`${Math.max(3,Math.round(4+l*14))}px`}},P))})}function Qt(t){const a=(t.youtubeUrl||"").trim();return a||(t.videoId?`https://www.youtube.com/watch?v=${t.videoId}`:null)}function pe(t){if(!t||typeof t!="string")return null;const a=t.trim().match(/(?:youtube\.com\/(?:watch\?(?:.*&)?v=|embed\/|shorts\/)|youtu\.be\/)([A-Za-z0-9_-]{6,})/);return a?a[1]:null}function zs(t){const a=t?.code||"",r=t?.details;let i=typeof r=="string"&&r||r&&typeof r=="object"&&r.message||t?.message||"Gagal membuat job.";return a==="functions/failed-precondition"&&/secret|konfigurasi/i.test(String(i))&&(i="XCLIP belum dikonfigurasi di server (minta admin set XCLIP_INTERNAL_SECRET pada Functions)."),a==="functions/resource-exhausted"&&(i=String(i).includes("Kuota")?i:"Kuota harian XCLIP habis."),a==="functions/permission-denied"&&/kualitas Pro|PRO|Mastery|Community/i.test(String(i))&&(i="Mode kualitas Pro hanya untuk akun PRO, Mastery, atau Community. Turunkan ke mode standar atau upgrade."),typeof i=="string"?i:"Gagal membuat job."}function Zt(t){const a=!!(t.videoTitle||"").trim(),[r,i]=s.useState(""),[d,l]=s.useState(!1);s.useEffect(()=>{if(a){l(!0);return}if(!t.youtubeUrl){l(!0);return}let g=!1;return l(!1),fetch(`https://noembed.com/embed?url=${encodeURIComponent(t.youtubeUrl)}`).then(b=>b.json()).then(b=>{!g&&typeof b?.title=="string"&&b.title.trim()&&i(b.title.trim())}).catch(()=>{}).finally(()=>{g||l(!0)}),()=>{g=!0}},[t.id,t.youtubeUrl,a]);const P=(t.videoTitle||r||"").trim(),m=t.youtubeUrl&&!d;return{displayTitle:P,titleLoading:m}}function Fs({j:t,onSelect:a}){const{displayTitle:r,titleLoading:i}=Zt(t);s.useMemo(()=>{const g=Array.isArray(t.suggestions)?t.suggestions:[],b=Array.isArray(t.outputs)?t.outputs:[];for(let N=0;N<Math.max(g.length,b.length);N+=1){const x=g[N]||{},A=b[N]||{},f=x.downloadUrl||A.downloadUrl;if(f)return{url:f,title:x.title||A.title||`Klip ${N+1}`}}return null},[t.suggestions,t.outputs]);const d=ge(t.videoId),l=t.status==="queued"||t.status==="processing"?Wt(t):null,P=l?.pctBar??(typeof t.progressPercent=="number"?Math.round(t.progressPercent):0),m=t.status==="queued"||t.status==="processing";return e.jsxs("button",{type:"button",onClick:a,className:"group flex w-full items-center gap-3 rounded-xl border border-slate-200/90 bg-white p-2.5 text-left shadow-sm ring-1 ring-slate-900/[0.03] transition hover:border-indigo-200 hover:bg-indigo-50/40 hover:shadow-md",children:[e.jsxs("div",{className:"relative h-14 w-[4.75rem] shrink-0 overflow-hidden rounded-lg bg-slate-900 ring-1 ring-slate-200/80",children:[d?e.jsx("img",{src:d,alt:"",loading:"lazy",className:"h-full w-full object-cover"}):e.jsx("div",{className:"flex h-full w-full items-center justify-center bg-gradient-to-br from-slate-800 to-slate-950",children:e.jsx($e,{className:"h-6 w-6 text-white/35",strokeWidth:1.25})}),e.jsx("span",{className:"pointer-events-none absolute inset-0 bg-gradient-to-t from-black/40 to-transparent opacity-0 transition group-hover:opacity-100"})]}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-x-2 gap-y-0.5",children:[t.status==="done"&&e.jsx(Je,{className:"shrink-0 text-emerald-500",size:14}),t.status==="failed"&&e.jsx(Ot,{className:"shrink-0 text-red-500",size:14}),(t.status==="queued"||t.status==="processing")&&e.jsx(se,{className:"shrink-0 animate-spin text-indigo-500",size:14}),e.jsx("span",{className:`text-[9px] font-black uppercase tracking-wider px-2 py-0.5 rounded-full ring-1 ${ht(t.status)}`,children:ft(t.status)}
1),t.options?.qualityMode==="pro"&&e.jsx("span",{className:"text-[9px] font-black uppercase text-violet-700",children:"Pro"}),e.jsx("span",{className:"text-[9px] font-semibold text-slate-400",children:We(t.createdAt)})]}),i?e.jsx("div",{className:"mt-1 h-4 w-[88%] max-w-sm animate-pulse rounded-md bg-slate-200/80","aria-hidden":!0}):e.jsx("p",{className:"mt-0.5 text-[13px] font-bold leading-tight text-slate-900 dark:text-slate-100 line-clamp-1",children:r||"Video YouTube"}),m&&e.jsxs(e.Fragment,{children:[l?.activeLine?e.jsx("p",{className:"mt-1 text-[9px] font-semibold leading-snug text-indigo-800 line-clamp-2",children:l.activeLine}):null,e.jsx("div",{className:"mt-1 h-1 overflow-hidden rounded-full bg-slate-200/90",children:e.jsx("div",{className:"h-full rounded-full bg-gradient-to-r from-indigo-500 to-violet-500 transition-all duration-500",style:{width:`${Math.min(100,Math.max(0,P))}%`}})})]})]}),e.jsx(Yt,{className:"h-4 w-4 shrink-0 text-slate-300 transition group-hover:text-indigo-500","aria-hidden":!0})]})}function Rs({j:t,actionJobId:a,actionKind:r,jobCallError:i,setJobCallError:d,cancelQueuedJob:l,retriggerQueuedJob:P,deleteJobFromList:m,expandedClipKey:g,setExpandedClipKey:b,prefillYoutubeUrl:N,onPlayClipMp4:x,onPlayYoutube:A,onTimelineSegmentClick:f,onOpenAdjustClip:F,onOpenTrimModal:L,onRenderSuggestion:W,actionClipKey:U}){const ee=Qt(t),Y=ge(t.videoId),{displayTitle:z,titleLoading:E}=Zt(t),I=s.useMemo(()=>{const o=Array.isArray(t.suggestions)?t.suggestions:[],c=Array.isArray(t.outputs)?t.outputs:[];for(let p=0;p<Math.max(o.length,c.length);p+=1){const y=o[p]||{},X=c[p]||{},q=y.downloadUrl||X.downloadUrl;if(q)return{url:q,title:y.title||X.title||`Klip ${p+1}`}}return null},[t.suggestions,t.outputs]),K=ms(t.vpsTriggerAckAt),te=t.status==="queued"&&us(t)>=2&&!t.workerAcceptedAt,Q=K>0,[D,w]=s.useState(0);s.useEffect(()=>{w(0)},[t.id]);const{segments:j,showFallbackNote:S}=Cs(t);return e.jsxs("article",{className:"relative overflow-hidden rounded-[1.35rem] border border-slate-200/90 bg-white shadow-[0_10px_40px_-12px_rgba(15,23,42,0.12)] ring-1 ring-slate-900/[0.04]",children:[e.jsxs("div",{className:"flex flex-col",children:[e.jsxs("div",{className:"w-full border-b border-slate-100 bg-slate-50/50 px-4 pb-4 pt-4 sm:px-5 sm:pb-5 sm:pt-5",children:[e.jsx("p",{className:"mb-2 text-[10px] font-black uppercase tracking-wider text-slate-500 dark:text-slate-400 ",children:"Pratinjau sumber"}),e.jsx(Qe,{sourceVideoUrl:t.sourceVideoUrl,videoId:t.videoId,subtitleCues:Array.isArray(t.transcriptCues)?t.transcriptCues:[],initialSeekSec:D,autoPlay:!1,className:"w-full"}),e.jsx("p",{className:"mt-2 text-[10px] font-medium leading-snug text-slate-500 dark:text-slate-400 ",children:t.sourceVideoUrl?"File sumber dari XGrind â sama dengan yang dipakai server untuk analisis dan trim.":t.videoId?"Sementara memakai YouTube; setelah server mengunggah sumber, pemutar akan memakai file XGrind.":"Video sumber belum tersedia untuk pratinjau."})]}),e.jsxs("div",{className:"flex min-w-0 flex-1 flex-col gap-3 p-4 sm:p-5",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[t.status==="done"&&e.jsx(Je,{className:"text-emerald-500 shrink-0",size:18}),t.status==="failed"&&e.jsx(Ot,{className:"text-red-500 shrink-0",size:18}),(t.status==="queued"||t.status==="processing")&&e.jsx(se,{className:"text-indigo-500 shrink-0 animate-spin",size:18}),e.jsx("span",{className:`text-[10px] font-black uppercase tracking-wider px-2.5 py-1 rounded-full ring-1 ${ht(t.status)}`,children:ft(t.status)}),t.options?.qualityMode==="pro"&&e.jsx("span",{className:"text-[10px] font-black uppercase tracking-wider px-2 py-0.5 rounded-full bg-violet-100 text-violet-800 dark:text-violet-300 ring-1 ring-violet-200/80",children:"Pro"}),t.multimodalUsed&&e.jsx("span",{className:"text-[10px] font-black uppercase tracking-wider px-2 py-0.5 rounded-full bg-fuchsia-100 text-fuchsia-800 ring-1 ring-fuchsia-200/80",children:"Visual AI"}),t.clipSourceMode&&t.clipSourceMode!=="ai"&&e.jsx("span",{className:"text-[10px] font-black uppercase tracking-wider px-2 py-0.5 rounded-full bg-amber-100 text-amber-900 dark:text-amber-200 ring-1 ring-amber-200/80",children:t.clipSourceMode==="heatmap"?"Heatmap":t.clipSourceMode==="blend"?"AI+Heatmap":t.clipSourceMode==="manual"?"Manual":t.clipSourceMode}),t.heatmapAvailable===!1&&t.options?.clipSource==="heatmap"&&t.status==="done"&&e.jsx("span",{className:"text-[10px] font-semibold text-amber-700",title:"Video mungkin belum punya data replay",children:"Tanpa data heatmap"}),e.jsx("span",{className:"text-[10px] font-semibold text-slate-400",children:We(t.createdAt)})]}),e.jsxs("div",{className:"min-w-0 space-y-1",children:[E?e.jsxs("div",{className:"space-y-2 pt-0.5","aria-hidden":!0,
1children:[e.jsx("div",{className:"h-4 w-[92%] max-w-md animate-pulse rounded-md bg-slate-200/90"}),e.jsx("div",{className:"h-4 w-[64%] max-w-sm animate-pulse rounded-md bg-slate-100"})]}):e.jsx("h3",{className:"text-[15px] font-bold leading-snug tracking-tight text-slate-900 dark:text-slate-100 sm:text-base line-clamp-2",children:z||"Video YouTube"}),ee&&e.jsxs("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1.5",children:[t.status==="done"&&I&&x?e.jsxs("button",{type:"button",onClick:()=>x(t,I),className:"inline-flex items-center gap-1 rounded-full border border-emerald-200 bg-emerald-50 px-2.5 py-1 text-[10px] font-black text-emerald-800 dark:text-emerald-300 hover:bg-emerald-100",children:[e.jsx(Ee,{size:12,className:"shrink-0 fill-current","aria-hidden":!0}),"Putar hasil render"]}):null,t.videoId&&e.jsxs("button",{type:"button",onClick:()=>{w(0),A?.(t,0)},className:"inline-flex items-center gap-1 text-[11px] font-bold text-indigo-600 hover:text-indigo-800",children:[e.jsx(Ee,{size:12,className:"shrink-0 fill-current","aria-hidden":!0}),"Putar sumber dari awal"]}),e.jsxs("a",{href:ee,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 text-[11px] font-bold text-slate-500 dark:text-slate-400 hover:text-slate-700 dark:text-slate-300 hover:underline",children:[e.jsx(qa,{size:12,strokeWidth:2.5}),"Buka di YouTube"]}),t.status==="done"&&t.youtubeUrl&&N?e.jsxs("button",{type:"button",onClick:()=>N(t.youtubeUrl),className:"inline-flex items-center gap-1 rounded-full border border-indigo-200 bg-indigo-50 px-2.5 py-1 text-[10px] font-black text-indigo-800 hover:bg-indigo-100",children:[e.jsx(Te,{size:12,"aria-hidden":!0}),"Klip lagi dari video ini"]}):null]})]}),e.jsxs("p",{className:"text-[10px] font-medium text-slate-400",children:["Diperbarui ",We(t.updatedAt),t.workerAcceptedAt?` · Proses dimulai ${We(t.workerAcceptedAt)}`:""]}),(t.status==="queued"||t.status==="processing")&&e.jsx(Kt,{j:t}),t.progressMessage&&e.jsx("p",{className:"text-xs font-semibold text-indigo-600",children:t.progressMessage}),t.pipelineStage&&Ut[t.pipelineStage]&&t.status==="processing"?e.jsxs("p",{className:"text-[10px] font-medium text-slate-500 dark:text-slate-400 ",children:["Langkah studio:"," ",e.jsx("span",{className:"font-bold text-slate-700 dark:text-slate-300 ",children:Ut[t.pipelineStage]})]}):null,t.status==="done"&&t.clipRerenderInFlight&&t.pipelineStage&&t.pipelineStage!=="done"?e.jsxs("div",{className:"rounded-xl border border-amber-200 bg-amber-50/90 px-3 py-2 text-[11px] font-semibold text-amber-950 dark:text-amber-200 ",children:[e.jsx(se,{className:"inline h-3.5 w-3.5 animate-spin mr-1.5 text-amber-700 align-middle","aria-hidden":!0}),"Merender ulang klip ",e.jsx("span",{className:"font-mono",children:String(t.clipRerenderInFlight)}),"â¦"]}):null,t.status==="done"&&(t.videoSummary||j.length>0)&&e.jsxs("div",{className:"rounded-2xl border border-slate-200/90 bg-slate-50/40 px-3 py-3 sm:px-4",children:[e.jsx("p",{className:"text-[10px] font-black uppercase tracking-wider text-slate-600 dark:text-slate-300 ",children:"Ringkasan video"}),t.videoSummary?e.jsx("p",{className:"mt-2 text-sm font-semibold text-slate-700 dark:text-slate-300 leading-relaxed",children:t.videoSummary}):null,j.length>0?e.jsxs(e.Fragment,{children:[S?e.jsx("p",{className:"mt-2 text-[10px] font-medium text-slate-500 dark:text-slate-400 ",children:"Menampilkan cuplikan awal timeline; daftar penuh dari AI bisa lebih panjang."}):e.jsxs("p",{className:"mt-2 text-[10px] font-medium text-slate-500 dark:text-slate-400 ",children:["Momen yang berpotongan dengan rentang klip (hingga ",Jt," segmen)."]}),e.jsx("ul",{className:"mt-2 space-y-1 text-[11px] text-slate-600 dark:text-slate-300 font-medium",children:j.map((o,c)=>e.jsx("li",{children:e.jsxs("button",{type:"button",disabled:!t.videoId&&!t.sourceVideoUrl,onClick:()=>{const p=Math.floor(Number(o.startSec)||0);w(p),f?.(t,p)},className:"flex w-full gap-2 rounded-lg px-2 py-1.5 text-left -mx-2 hover:bg-white/90 disabled:cursor-not-allowed disabled:opacity-50",children:[e.jsx("span",{className:"shrink-0 font-mono text-slate-500 dark:text-slate-400 tabular-nums",children:Ge(Number(o.startSec),Number(o.endSec))}),e.jsx("span",{className:"min-w-0",children:o.label||"â"})]})},`eng-${c}-${o.startSec}`))})]}):null]}),Array.isArray(t.suggestions)&&t.suggestions.length>0&&e.jsxs("div",{className:"rounded-2xl border border-indigo-100/90 bg-gradient-to-br from-indigo-50 via-white to-violet-50/40 px-3 py-3 sm:px-4",children:[e.jsxs("div",{className:"mb-2 flex flex-wrap items-center justify-between gap-2",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-[10px] font-black uppercase tracking-wider text-indigo-800",children:"Klip & export"}),e.jsx("p",{className:"mt-0.5 text-[9px] font-medium text-slate-500 dark:text-slate-400 ",children:"Pratinjau MP4, sesuaikan trim, unduh â posting di bagian bawah kartu."})]}),t.stageTimingsMs&&typeof t.stageTimingsMs=="object"?e.jsxs("span",{className:"text-[9px] font-mono text-slate-400",title:"Diagnostik durasi tahap (ms)",children:[t.stageTimingsMs.prepareMs!=null?`unduh ${t.stageTimingsMs.prepareMs}ms`:"",t.stageTimingsMs.suggestMs!=null?` · analisis ${t.stageTimingsMs.suggestMs}ms`:"",t.stageTimingsMs.encodeMs!=null?` · render ${t.stageTimingsMs.encodeMs}ms`:""]}):null]}),e.jsx("ul",{className:"space-y-2.5",children:t.suggestions.map((o,c)=>{const p=String(o.clipId||`c${c}`).toLowerCase(),y=`${t.id}:${p}`,X=U===y,q=t.status==="done"&&!!t.clipRerenderInFlight&&!!t.pipelineStage&&t.pipelineStage!=="done",H=t.status==="done"&&!q,J=Array.isArray(t.outputs)?t.outputs[c]:null,O=o.downloadUrl||J?.downloadUrl,G=(t.status==="done"||t.status==="processing"&&t.pipelineStage==="suggest_ready")&&L,k=Ps(t.transcriptPeaks,Number(o.startSec??0),Number(o.endSec??0));return e.jsx("li",{className:"rounded-xl bg-white/95 ring-1 ring-indigo-100/90 px-3 py-3 shadow-sm",children:e.jsxs("div",{className:"flex gap-3",children:[e.jsx("div",{className:"shrink-0 w-[92px] sm:w-[104px]",children:t.videoId&&Y?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"relative aspect-video w-full overflow-hidden rounded-lg bg-slate-900 ring-1 ring-slate-200/80",children:[e.jsx("img",{src:Y,alt:"",className:"h-full w-full object-cover",loading:"lazy"}),e.jsx("div",{className:"pointer-events-none absolute inset-0 bg-gradient-to-t from-black/55 via-trans
1parent to-transparent"}),e.jsx("span",{className:"absolute bottom-1 left-1 rounded bg-black/65 px-1 py-px text-[8px] font-black tabular-nums text-white",children:xt(Number(o.startSec??0))})]}),e.jsx(Ts,{videoId:t.videoId}),e.jsx(As,{peaks:k})]}):e.jsxs("div",{className:"space-y-1.5","aria-hidden":!0,children:[e.jsx("div",{className:"aspect-video rounded-lg bg-slate-200/90 ring-1 ring-slate-200/80"}),e.jsx("div",{className:"h-7 rounded-md bg-slate-100 ring-1 ring-slate-200/60"}),e.jsx("div",{className:"h-5 rounded-md bg-slate-100 ring-1 ring-slate-200/60"})]})}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-2.5",children:[e.jsxs("div",{className:"min-w-0 flex-1 space-y-1",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-1.5",children:[e.jsxs("span",{className:"inline-flex items-center rounded-full bg-indigo-100 px-2 py-0.5 text-[9px] font-black uppercase tracking-wider text-indigo-800",children:["Clip ",c+1]}),typeof o.viralityScore=="number"?e.jsxs("span",{className:`inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[9px] font-black uppercase tracking-wider ${o.viralityScore>=70?"bg-emerald-100 text-emerald-800 dark:text-emerald-300 ":o.viralityScore>=40?"bg-amber-100 text-amber-800 dark:text-amber-300 ":"bg-red-100 text-red-800"}`,title:o.viralityBreakdown?`Hook ${o.viralityBreakdown.hook} · Flow ${o.viralityBreakdown.flow} · Value ${o.viralityBreakdown.value} · Trend ${o.viralityBreakdown.trend}`:void 0,children:["Viral ",o.viralityScore]}):e.jsxs("span",{className:"inline-flex items-center rounded-full bg-violet-100 px-2 py-0.5 text-[9px] font-black uppercase tracking-wider text-violet-800 dark:text-violet-300 ",children:["Hook ",typeof o.score=="number"?o.score:"â","/10"]}),e.jsx("span",{className:"inline-flex items-center rounded-full bg-slate-100 px-2 py-0.5 text-[9px] font-black uppercase tracking-wider text-slate-700 dark:text-slate-300 ",children:Ss(o.source)})]}),e.jsx("p",{className:"text-sm font-bold text-slate-900 dark:text-slate-100 line-clamp-2",children:o.title||`Klip ${c+1}`}),o.scoreReason?e.jsx("p",{className:"text-[11px] font-semibold text-indigo-700 line-clamp-1",children:o.scoreReason}):null,o.viralityBreakdown?e.jsx("div",{className:"flex items-center gap-2 mt-0.5",children:["hook","flow","value","trend"].map(v=>e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("span",{className:"text-[8px] font-bold uppercase text-slate-400 w-7",children:v}),e.jsx("div",{className:"h-1.5 w-10 rounded-full bg-slate-200 overflow-hidden",children:e.jsx("div",{className:`h-full rounded-full ${o.viralityBreakdown[v]>=70?"bg-emerald-500":o.viralityBreakdown[v]>=40?"bg-amber-500":"bg-red-400"}`,style:{width:`${Math.min(100,o.viralityBreakdown[v])}%`}})})]},v))}):null,o.reason?e.jsx("p",{className:"text-[11px] font-medium text-slate-600 dark:text-slate-300 line-clamp-2",children:o.reason}):null,o.transcriptSnippet?e.jsxs("div",{className:"rounded-lg border border-slate-200/90 bg-slate-50 px-2 py-1.5",children:[e.jsx("p",{className:"text-[9px] font-bold uppercase tracking-wide text-slate-500 dark:text-slate-400 ",children:"Preview subtitle"}),e.jsx("p",{className:"mt-0.5 text-[11px] text-slate-600 dark:text-slate-300 italic line-clamp-2",children:o.transcriptSnippet})]}):null]}),e.jsxs("div",{className:"shrink-0 text-right",children:[e.jsx("span",{className:"block text-[10px] font-mono font-bold text-slate-500 dark:text-slate-400 tabular-nums",children:Ge(Number(o.startSec??0),Number(o.endSec??0))}),e.jsx("span",{className:"mt-0.5 inline-flex items-center rounded-full bg-slate-100 px-2 py-0.5 text-[9px] font-black uppercase tracking-wider text-slate-700 dark:text-slate-300 ",children:Ms(o.status)})]})]}),e.jsxs("div",{className:"mt-2.5 flex flex-wrap items-center gap-2",children:[O&&x?e.jsxs("button",{type:"button",onClick:()=>x(t,{url:O,title:o.title||`Klip ${c+1}`}),className:"inline-flex items-center gap-1.5 rounded-full bg-indigo-600 px-3.5 py-1.5 text-[10px] font-black text-white shadow-sm shadow-indigo-600/30 hover:bg-indigo-500",children:[e.jsx(Ee,{size:12,className:"fill-current shrink-0","aria-hidden":!0}),"Pratinjau klip"]}):null,J?.subtitleMeta?e.jsxs("span",{className:"inline-flex items-center rounded-full border border-indigo-200 bg-indigo-50 px-2.5 py-1 text-[10px] font-bold text-indigo-800",children:["Subtitle ",J.subtitleMeta.template||"default"," · ",J.subtitleMeta.style||"minimal"]}):null,G?e.jsxs("button",{type:"button",onClick:()=>L(t,c),className:"inline-flex items-center gap-1.5 rounded-full border border-slate-300 bg-white px-3 py-1.5 text-[10px] font-black text-slate-800 dark:text-slate-200 hover:bg-slate-50",children:[e.jsx(Ke,{size:12,strokeWidth:2.5,"aria-hidden":!0}),"Sesuaikan trim"]}):null,H&&W?e.jsxs("button",{type:"button",disabled:X,onClick:()=>W(t,p),className:"inline-flex items-center gap-1 rounded-full border border-slate-300 bg-white px-3 py-1.5 text-[10px] font-black text-slate-800 dark:text-slate-200 hover:bg-slate-50 disabled:opacity-50",children:[X?e.jsx(se,{className:"h-3 w-3 animate-spin","aria-hidden":!0}):e.jsx($e,{size:12,strokeWidth:2.25,"aria-hidden":!0}),"Render ulang"]}):null,O?e.jsxs("a",{href:O,target:"_blank",rel:"noopener noreferrer",download:!0,className:"inline-flex items-center gap-1 rounded-full border border-slate-200 bg-white px-3 py-1.5 text-[10px] font-black text-slate-700 dark:text-slate-300 hover:bg-slate-50",children:[e.jsx(lt,{size:12,"aria-hidden":!0}),"Unduh MP4"]}):null,t.videoId&&e.jsx("button",{type:"button",onClick:()=>{const v=Math.floor(Number(o.startSec)||0);w(v),A?.(t,v)},className:"inline-flex items-center gap-1 text-[10px] font-black text-slate-500 dark:text-slate-400 hover:text-indigo-700",children:"Lihat di sumber"})]}),(()=>{const v=`${t.id}:${c}`,C=g===v,u=Array.isArray(t.outputs)?t.outputs[c]:null;return e.jsxs("div",{className:"mt-3 border-t border-indigo-100/80 pt-3",children:[e.jsxs("button",{type:"button",onClick:()=>b(C?null:v),className:"flex w-full items-center justify-between gap-2 rounded-lg px-1 py-1 text-left text-[10px] font-black uppercase tracking-wider text-indigo-900/90 hover:bg-indigo-50/60",children:[e.jsx("span",{children:"Posting & hashtag"}),e.jsx("span",{className:"font-bold text-indigo-600/80 normal-case",children:C?"Sembunyikan":"Tampilkan"})]}),C&&e.jsx("div",{className:"mt-2 space-y-3 text-left",children:u?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"flex flex-wrap gap-2",children:u.downloadUrl&&e.jsxs("a",{href:u.downloadUrl,target:"_blank",rel:"noopener noreferrer",download:!0,className:"inline-flex items-center gap-1.5 rounded-full bg-slate-900 px-3 py-2 text-[11px] font-black text-white hover:bg-slate-800",children:[e.jsx(lt,{size:14}),"Unduh MP4"]})}),e.jsxs("p",{className:"text-[10px] font-mono text-slate-500 dark:text-slate-400 ",children:["Cuplikan sumber:"," ",Ge(Number(u.startSec??0),Number(u.endSec??0))]}),u.postingPack&&(u.postingPack.postingTitle||Array.isArray(u.postingPack.hashtags)&&u.postingPack.hashtags.length>0)&&e.jsxs("div",{className:"rounded-lg border border-emerald-100 bg-emerald-50/80 px-3 py-2.5 text-[11px] space-y-1.5",children:[e.jsx("p",{className:"text-[10px] font-black uppercase tracking-wider text-emerald-800 dark:text-emerald-300 ",children:"Siap posting"}),u.postingPack.postingTitle?e.jsx("p",{className:"font-bold text-slate-800 dark:text-slate-200 ",children:u.postingPack.postingTitle}):null,u.postingPack.descriptionLine?e.jsx("p",{className:"text-slate-600 dar
1k:text-slate-300 font-medium leading-snug",children:u.postingPack.descriptionLine}):null,Array.isArray(u.postingPack.hashtags)&&u.postingPack.hashtags.length>0?e.jsx("p",{className:"text-emerald-900 dark:text-emerald-300 font-semibold break-words",children:u.postingPack.hashtags.join(" ")}):null,u.postingPack.cta?e.jsx("p",{className:"text-slate-700 dark:text-slate-300 font-semibold italic",children:u.postingPack.cta}):null]}),u.quality&&e.jsxs("p",{className:"text-[10px] font-semibold text-slate-500 dark:text-slate-400 leading-relaxed",children:[typeof u.quality.visualHook=="number"&&e.jsxs("span",{className:"mr-2",children:["Visual ",u.quality.visualHook,"/10"]}),typeof u.quality.clarity=="number"&&e.jsxs("span",{className:"mr-2",children:["Jelas ",u.quality.clarity,"/10"]}),typeof u.quality.shareability=="number"&&e.jsxs("span",{className:"mr-2",children:["Share ",u.quality.shareability,"/10"]}),typeof u.quality.hookStrengthText=="number"&&e.jsxs("span",{className:"mr-2",children:["Hook teks ",u.quality.hookStrengthText,"/10"]}),u.quality.viralAngle?e.jsx("span",{className:"block text-slate-600 dark:text-slate-300 mt-0.5",children:u.quality.viralAngle}):null]})]}):e.jsx("p",{className:"text-[11px] font-medium text-slate-600 dark:text-slate-300 ",children:"Export MP4 belum tersedia untuk indeks ini â tunggu render utama atau render ulang."})})]})})()]})]})},p)})})]}),te&&e.jsxs("div",{className:"flex gap-2.5 rounded-xl border border-amber-100/90 bg-gradient-to-br from-amber-50 to-orange-50/80 px-3.5 py-3 text-[11px] font-medium leading-relaxed text-amber-950 dark:text-amber-200/95 ",children:[e.jsx(gt,{size:15,className:"shrink-0 text-amber-600 mt-0.5"}),e.jsx("span",{children:Q?e.jsxs(e.Fragment,{children:["Permintaan Anda sudah diteruskan ke server pemrosesan XGrind. Kalau teks status tidak berubah lama, kemungkinan ada gangguan di sisi server (bukan batas waktu di aplikasi). Silakan ",e.jsx("span",{className:"font-bold",children:"coba proses lagi"})," atau"," ",e.jsx("span",{className:"font-bold",children:"hapus antrian"}),"."]}):e.jsxs(e.Fragment,{children:["Belum ada pembaruan beberapa menit â antrean bisa sedang ramai, atau sinyal status tertunda. Tunggu sebentar, atau ",e.jsx("span",{className:"font-bold",children:"coba proses lagi"})," /"," ",e.jsx("span",{className:"font-bold",children:"hapus antrian"}),"."]})})]}),i.jobId===t.id&&i.message&&e.jsxs("div",{className:"flex gap-2 rounded-xl border border-red-100 bg-red-50/90 px-3 py-2.5 text-xs font-semibold text-red-800",children:[e.jsx("span",{className:"min-w-0 flex-1",children:i.message}),e.jsx("button",{type:"button","aria-label":"Tutup pesan error",onClick:()=>d({jobId:null,message:""}),className:"shrink-0 rounded-lg p-1 text-red-600 hover:bg-red-100",children:e.jsx(pt,{size:16})})]}),(t.status==="queued"||t.status==="processing")&&e.jsxs("div",{className:"flex flex-wrap gap-2 pt-1",children:[t.status==="queued"?e.jsxs("button",{type:"button",disabled:a===t.id,onClick:()=>P(t.id),className:"inline-flex items-center gap-2 rounded-full bg-slate-900 px-4 py-2.5 text-[11px] font-black text-white shadow-md shadow-slate-900/15 transition hover:bg-slate-800 disabled:opacity-50",children:[a===t.id&&r==="retrigger"?e.jsx(se,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(Da,{size:14,strokeWidth:2.5}),"Coba proses lagi"]}):null,t.status==="queued"?e.jsxs("button",{type:"button",disabled:a===t.id,onClick:()=>{window.confirm("Batalkan job ini dan kembalikan 1 kuota harian?")&&l(t.id)},className:"inline-flex items-center gap-2 rounded-full border border-slate-200 bg-white px-4 py-2.5 text-[11px] font-black text-slate-600 dark:text-slate-300 transition hover:border-red-200 hover:bg-red-50 hover:text-red-700 disabled:opacity-50",children:[a===t.id&&r==="cancel"?e.jsx(se,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(ot,{size:14,strokeWidth:2.5}),"Hapus antrian"]}):null,e.jsxs("button",{type:"button",disabled:a===t.id,onClick:()=>{window.confirm(t.status==="processing"?"Hapus job yang sedang diproses dari antrean studio?":"Hapus job ini dari antrean studio?")&&m(t.id)},className:"inline-flex items-center gap-2 rounded-full border border-slate-200 bg-white px-4 py-2.5 text-[11px] font-black text-slate-600 dar
1k:text-slate-300 transition hover:border-red-200 hover:bg-red-50 hover:text-red-700 disabled:opacity-50",children:[a===t.id&&r==="delete"?e.jsx(se,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(ot,{size:14,strokeWidth:2.5}),"Hapus dari studio"]})]}),(t.status==="queued"||t.status==="processing")&&e.jsx("p",{className:"text-[10px] font-medium leading-relaxed text-slate-500 dark:text-slate-400 ",children:"Setelah jadi, kamu bisa rapikan trim dari kartu ini (job baru, 1 kredit)."}),(t.status==="done"||t.status==="failed")&&e.jsxs("div",{className:"flex flex-wrap gap-2 pt-1",children:[ee&&F&&e.jsxs("button",{type:"button",onClick:()=>F(t),className:"inline-flex items-center gap-2 rounded-full bg-indigo-600 px-4 py-2.5 text-[11px] font-black text-white shadow-md shadow-indigo-600/20 transition hover:bg-indigo-700",children:[e.jsx(Dt,{size:14,strokeWidth:2.5}),"Studio potongan baru"]}),e.jsxs("button",{type:"button",disabled:a===t.id,onClick:()=>{window.confirm(t.status==="done"?"Hapus kartu ini dari daftar? File unduhan di tautan lama tidak akan bisa diakses lagi.":"Hapus kartu gagal ini dari daftar?")&&m(t.id)},className:"inline-flex items-center gap-2 rounded-full border border-slate-200 bg-white px-4 py-2.5 text-[11px] font-black text-slate-600 dark:text-slate-300 transition hover:border-red-200 hover:bg-red-50 hover:text-red-700 disabled:opacity-50",children:[a===t.id&&r==="delete"?e.jsx(se,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(ot,{size:14,strokeWidth:2.5}),"Hapus dari daftar"]})]}),t.error&&e.jsx("p",{className:"text-xs font-bold text-red-600",children:t.error})]})]}),Array.isArray(t.outputs)&&t.outputs.length>0&&(!Array.isArray(t.suggestions)||t.suggestions.length===0)&&e.jsxs("div",{className:"border-t border-slate-100 bg-slate-50/40 px-4 py-3.5 sm:px-5",children:[e.jsx("p",{className:"mb-2 text-[10px] font-black uppercase tracking-wider text-slate-400",children:"Export klip"}),e.jsx("ul",{className:"space-y-2",children:t.outputs.map((o,c)=>{const p=`${t.id}:${c}`,y=g===p;return e.jsxs("li",{className:"rounded-xl bg-white ring-1 ring-slate-200/80 overflow-hidden",children:[e.jsxs("button",{type:"button",onClick:()=>b(y?null:p),className:"w-full flex flex-wrap items-center justify-between gap-2 px-3 py-2.5 text-left hover:bg-slate-50/90 transition",children:[e.jsx("span",{className:"text-sm font-bold text-slate-800 dark:text-slate-200 ",children:o.title||`Klip ${c+1}`}),e.jsx("span",{className:"text-[10px] font-bold text-slate-400 shrink-0",children:y?"Sembunyikan":"Preview & detail"})]}),y&&e.jsxs("div",{className:"px-3 pb-3 pt-0 space-y-3 border-t border-slate-100",children:[e.jsx("div",{className:"flex flex-wrap gap-2",children:o.downloadUrl&&e.jsxs("a",{href:o.downloadUrl,target:"_blank",rel:"noopener noreferrer",download:!0,className:"inline-flex items-center gap-1.5 rounded-full bg-slate-900 px-3 py-2 text-[11px] font-black text-white hover:bg-slate-800",children:[e.jsx(lt,{size:14}),"Unduh MP4"]})}),e.jsxs("p",{className:"text-[10px] font-mono text-slate-500 dark:text-slate-400 ",children:["Cuplikan sumber:"," ",Ge(Number(o.startSec??0),Number(o.endSec??0))]}),o.postingPack&&(o.postingPack.postingTitle||Array.isArray(o.postingPack.hashtags)&&o.postingPack.hashtags.length>0)&&e.jsxs("div",{className:"rounded-lg border border-emerald-100 bg-emerald-50/80 px-3 py-2.5 text-[11px] space-y-1.5",children:[e.jsx("p",{className:"text-[10px] font-black uppercase tracking-wider text-emerald-800 dark:text-emerald-300 ",children:"Siap posting"}),o.postingPack.postingTitle?e.jsx("p",{className:"font-bold text-slate-800 dark:text-slate-200 ",children:o.postingPack.postingTitle}):null,o.postingPack.descriptionLine?e.jsx("p",{className:"text-slate-600 dark:text-slate-300 font-medium leading-snug",children:o.postingPack.descriptionLine}):null,Array.isArray(o.postingPack.hashtags)&&o.postingPack.hashtags.length>0?e.jsx("p",{className:"text-emerald-900 dark:text-emerald-300 font-semibold break-words",children:o.postingPack.hashtags.join(" ")}):null,o.postingPack.cta?e.jsx("p",{className:"text-slate-700 dark:text-slate-300 font-semibold italic",children:o.postingPack.cta}):null]}),o.quality&&e.jsxs("p",{className:"text-[10px] font-semibold text-slate-500 dark:text-slate-400 leading-relaxed",children:[typeof o.quality.visualHook=="number"&&e.jsxs("span",{className:"mr-2",children:["Visual ",o.quality.visualHook,"/10"]}),typeof o.quality.clarity=="number"&&e.jsxs("span",{className:"mr-2",children:["Jelas ",o.quality.clarity,"/10"]}),typeof o.quality.shareability=="number"&&e.jsxs("span",{className:"mr-2",children:["Share ",o.quality.shareability,"/10"]}),typeof o.quality.hookStrengthText=="number"&&e.jsxs("span",{className:"mr-2",children:["Hook teks ",o.quality.hookStrengthText,"/10"]}),o.quality.viralAngle?e.jsx("span",{className:"block text-slate-600 dar
1k:text-slate-300 mt-0.5",children:o.quality.viralAngle}):null]})]})]},c)})})]})]})}function Us({user:t}){const{tier:a,loading:r}=Pa(),[i,d]=s.useState(""),[l,P]=s.useState("auto_magic"),[m,g]=s.useState(!0),[b,N]=s.useState(!1),[x,A]=s.useState(!1),[f,F]=s.useState("standard"),[L,W]=s.useState("ai"),[U,ee]=s.useState("viral_engage"),[Y,z]=s.useState(!0),[E,I]=s.useState(!0),[K,te]=s.useState("off"),[Q,D]=s.useState(!1),[w,j]=s.useState(!1),[S,o]=s.useState({open:!1,youtubeUrl:"",outputs:null,durationSec:null,autoSuggestOnOpen:!1,markHumanLoopReview:!1}),[c,p]=s.useState(!0),[y,X]=s.useState(""),[q,H]=s.useState(""),[J,O]=s.useState(!1),[G,k]=s.useState(!1),[v,C]=s.useState(""),[u,_]=s.useState([]),[le,oe]=s.useState(""),[ce,ue]=s.useState(null),[je,de]=s.useState(""),[R,T]=s.useState({jobId:null,message:""}),[$,Z]=s.useState(null),[B,re]=s.useState(null),[Le,ea]=s.useState(""),[xe,ta]=s.useState("all"),[Ue,Be]=s.useState(1),[qe,et]=s.useState(!1),[tt,kt]=s.useState({open:!1,job:null,clipIndex:0}),[Ae,_e]=s.useState(null),[fe,Se]=s.useState(null),[Me,at]=s.useState(null),[wt,st]=s.useState(!1),[aa,Nt]=s.useState(null),yt=s.useRef(null),vt=s.useRef(null),nt=s.useRef([]),sa=s.useRef(!1),na=s.useRef(null),ze=s.useRef(null),jt=s.useRef(null),ke=a==="PRO"||a==="MASTERY"||a==="COMMUNITY";nt.current=u,sa.current=G;const ra=s.useCallback(()=>re(null),[]),ia=s.useCallback((n,{url:h,title:M})=>{h&&re({mode:"mp4",mp4Url:h,startSec:0,poster:ge(n.videoId)||void 0,title:M||(n.videoTitle||"").trim()||"Klip",jobId:n.id})},[]),St=s.useCallback((n,h)=>{if(!n?.videoId)return;const M=Math.max(0,Math.floor(Number(h)||0));re({mode:"youtube",videoId:n.videoId,startSec:M,poster:ge(n.videoId)||void 0,title:(n.videoTitle||"").trim()||"Video YouTube",jobId:n.id})},[]),we=s.useMemo(()=>Ae?u.find(n=>n.id===Ae)??null:null,[u,Ae]),me=s.useMemo(()=>fe?u.find(n=>n.id===fe)??null:null,[u,fe]),Pe=!!(Ae&&we);s.useEffect(()=>{Ae&&!we&&_e(null)},[Ae,we]),s.useEffect(()=>{if(!B)return;const n=requestAnimationFrame(()=>{jt.current?.scrollIntoView({behavior:"smooth",block:"nearest"})});return()=>cancelAnimationFrame(n)},[B]);const la=s.useCallback(n=>{d((n||"").trim()),Z(null),re(null),_e(null),Se(null),ze.current=null,vt.current?.scrollIntoView({behavior:"smooth",block:"start"})},[]),oa=s.useCallback(n=>{const h=Qt(n)||"";let M=null;Array.isArray(n.outputs)&&n.outputs.length>0&&(M=n.outputs.slice(0,3).map(ae=>({startSec:ae.startSec??ae.start,endSec:ae.endSec??ae.end})));let V=null;n.videoDurationSec!=null&&Number.isFinite(Number(n.videoDurationSec))&&(V=Number(n.videoDurationSec)),o({open:!0,youtubeUrl:h.trim(),outputs:M,durationSec:V,autoSuggestOnOpen:!1,markHumanLoopReview:!1})},[]),da=s.useCallback((n,h)=>{kt({open:!0,job:n,clipIndex:h})}
1,[]),ca=s.useCallback(async(n,h)=>{const M=String(h||"").trim().toLowerCase();if(!n?.id||!M)return;const V=`${n.id}:${M}`;Nt(V),T({jobId:null,message:""});try{await be(he,"renderXclipSuggestion",{timeout:54e4})({jobId:n.id,clipId:M})}catch(ae){T({jobId:n.id,message:Ve(ae)})}finally{Nt(null)}},[]),ua=s.useMemo(()=>a==="PRO"||a==="MASTERY"?"PRO: hingga 30 job/hari.":a==="COMMUNITY"?"Community: hingga 5 job/hari.":"Gratis: 1 job/hari. Upgrade PRO untuk kuota lebih besar.",[a]),De=s.useCallback(n=>{const h=String(n||"").toLowerCase();return h==="clean_pro"?{subtitleStyle:"minimal",subtitleTemplate:"business",subtitleProPreset:"balanced"}:h==="viral_aggressive"?{subtitleStyle:"punchy",subtitleTemplate:"mrbeast",subtitleProPreset:"studio"}:{subtitleStyle:"punchy",subtitleTemplate:"modern",subtitleProPreset:"balanced"}},[]),ma=s.useMemo(()=>({layoutMode:l,autoSubtitle:m,...De(U),visionAssist:Y,karaokeMode:E,emojiMode:K,removeSilences:Q,addBrolls:w,richTranscript:x,qualityMode:ke?f:"standard",edgePaddingSec:0,postingMetadata:c,watermarkText:y,highlightWords:b,isProish:ke}),[l,m,U,De,Y,E,K,Q,w,x,f,ke,c,y,b]);s.useEffect(()=>{W(n=>n==="heatmap"||n==="blend"?"ai":n)},[]),s.useEffect(()=>{let n=!1;const h=i.trim(),M=pe(h);if(!M){at(null),st(!1);return}const V=window.setTimeout(async()=>{st(!0);try{const ie=await(await fetch(`https://noembed.com/embed?url=${encodeURIComponent(h)}`)).json().catch(()=>({}));if(n)return;const Pt=typeof ie.title=="string"?ie.title.trim():"",Ye=typeof ie.author_name=="string"?ie.author_name.trim():"";let Re=null;typeof ie.duration=="number"&&ie.duration>0&&(Re=ie.duration),at({title:Pt||"Video YouTube",author:Ye,thumbUrl:typeof ie.thumbnail_url=="string"&&ie.thumbnail_url||ge(M),videoId:M,durationSec:Re})}catch{n||at({title:"Video YouTube",author:"",thumbUrl:ge(M),videoId:M,durationSec:null})}finally{n||st(!1)}},450);return()=>{n=!0,window.clearTimeout(V)}},[i]),s.useEffect(()=>{if(!t?.uid)return;const n=ya(Sa(Ca,"xclip_user_jobs",t.uid,"jobs"),ja("createdAt","desc"),va(40)),h=Ma(n,M=>{oe("");const V=[];M.forEach(ae=>V.push({id:ae.id,...ae.data()})),_(V)},M=>{console.error("xclip_user_jobs snapshot",M);const V=M?.message||"";oe(V.includes("index")&&V.includes("building")?"Data antrean sedang disiapkan (biasanya beberapa menit). Silakan refresh halaman nanti.":V||"Gagal memuat daftar job.")});return()=>h()},[t?.uid]);const rt=s.useCallback(async n=>{const h=(n??i).trim(),M=be(he,"startXclipJob"),V={youtubeUrl:h,layoutMode:l,autoSubtitle:m,highlightWords:b,richTranscript:x,qualityMode:ke?f:"standard",clipSource:L,edgePaddingSec:0,postingMetadata:c,subtitlePreset:U,...De(U),visionAssist:Y,karaokeMode:E,emojiMode:K,removeSilences:Q,addBrolls:w},ae=y.trim();ae&&(V.watermarkText=ae.slice(0,120));const ie=q.trim();ie&&(V.userPrompt=ie.slice(0,500));const Ye=(await M(V))?.data||{},Re=Ye.jobId||Ye.job_id;return{jobId:typeof Re=="string"&&Re?Re:null}},[i,l,m,b,x,f,ke,L,U,De,Y,E,K,Q,w,c,y,q]),xa=s.useCallback(n=>{const h=String(n||"").toLowerCase();if(ee(h),h==="clean_pro"){I(!0),N(!0),D(!1),j(!1);return}if(h==="viral_aggressive"){I(!0),N(!0),D(!0),j(!0);return}I(!0),N(!0),D(!1),j(!1)},[]);na.current=rt,s.useEffect(()=>{const n=pe(i.trim()),h=fe?nt.current.find(V=>V.id===fe):null,M=h?pe(h.youtubeUrl||""):null;fe&&n&&M&&n!==M&&Se(null)},[i,fe,u]),s.useEffect(()=>{const n=pe(i.trim());if(!n){ze.current=null;return}ze.current&&ze.current!==n&&(ze.current=null)},[i]);const pa=s.useCallback(async()=>{C("");const n=i.trim();if(!n){C("Masukkan link YouTube.");return}if(L==="human_loop"){o({open:!0,youtubeUrl:n,outputs:null,durationSec:null,autoSuggestOnOpen:!0,markHumanLoopReview:!0});return}const h=pe(n);if(h){const M=nt.current.find(V=>pe(V.youtubeUrl||"")===h&&(V.status==="queued"||V.status==="processing"));if(M){Se(M.id);return}}k(!0);try{const{jobId:M}=await rt();M&&(Se(M),h&&(ze.current=h))}catch(M){C(zs(M))}finally{k(!1)}},[i,L,rt]),ga=s.useCallback(async n=>{T({jobId:null,message:""}),de("cancel"),ue(n);try{await be(he,"cancelXclipJob")({jobId:n})}catch(h){T({jobId:n,message:Ve(h)})}finally{ue(null),de("")}},[]),ba=s.useCallback(async n=>{T({jobId:null,message:""}),de("retrigger"),ue(n);try{await be(he,"retriggerXclipJob")({jobId:n})}catch(h){T({jobId:n,message:Ve(h)})}finally{ue(null),de("")}},[]),ha=s.useCallback(async n=>{T({jobId:null,message:""}),de("delete"),ue(n);try{await be(he,"deleteXclipJob")({jobId:n})}catch(h){T({jobId:n,message:Ve(h)})}finally{ue(null),de("")}},[]),Ne=s.useMemo(()=>{let n=u;const h=Le.trim().toLowerCase();return h&&(n=n.filter(M=>{const V=String(M.videoTitle||"").toLowerCase(),ae=String(M.youtubeUrl||"").toLowerCase(),ie=String(M.id||"").toLowerCase();return V.includes(h)||ae.includes(h)||ie.includes(h)})),xe==="done"?n=n.filter(M=>M.status==="done"):xe==="active"?n=n.filter(M=>M.status==="queued"||M.status==="processing"):xe==="failed"&&(n=n.filter(M=>M.status==="failed")),n},[u,Le,xe]);s.useEffect(()=>{Be(1)},[Le,xe]);
1const Fe=Math.max(1,Math.ceil(Ne.length/Oe));s.useEffect(()=>{Be(n=>Math.min(Math.max(1,n),Fe))},[Fe]);const Xe=(Ue-1)*Oe,fa=Ne.slice(Xe,Xe+Oe),ka=Ne.length===0?"0 job":`${Xe+1}â${Math.min(Xe+Oe,Ne.length)} dari ${Ne.length}`;s.useEffect(()=>{if(!qe)return;const n=h=>{yt.current?.contains(h.target)||et(!1)};return document.addEventListener("mousedown",n),()=>document.removeEventListener("mousedown",n)},[qe]);const Mt=!!B,wa=!!B||Pe;return e.jsxs("div",{className:"w-full max-w-none mx-auto px-2 sm:px-3 md:px-4 lg:px-5 xl:px-6 pb-10 animate-in fade-in slide-in-from-bottom-2 duration-500",children:[e.jsxs("div",{className:"grid grid-cols-1 gap-4 md:gap-6 xl:grid-cols-12 xl:items-start xl:gap-4 2xl:gap-5",children:[e.jsxs("div",{ref:vt,className:`w-full min-w-0 space-y-3 scroll-mt-24 ${Pe?"hidden":Mt?"max-xl:block xl:hidden":"xl:col-span-6"}`,children:[e.jsxs("div",{className:"relative overflow-hidden rounded-2xl border border-slate-200/90 bg-gradient-to-br from-white via-slate-50/40 to-rose-50/25 shadow-[0_10px_32px_-16px_rgba(15,23,42,0.1)] ring-1 ring-slate-900/[0.04]",children:[e.jsx("div",{className:"pointer-events-none absolute -right-8 -top-8 h-28 w-28 rounded-full bg-gradient-to-br from-rose-200/40 to-transparent blur-2xl","aria-hidden":!0}),e.jsxs("div",{className:"relative flex items-center gap-3 p-3.5 sm:p-4 md:p-4",children:[e.jsx("div",{className:"flex h-11 w-11 shrink-0 items-center justify-center rounded-xl bg-gradient-to-br from-rose-600 to-orange-500 shadow-md shadow-orange-500/25 ring-2 ring-white/60",children:e.jsx(Ke,{className:"h-6 w-6 text-white",strokeWidth:2.5})}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("p",{className:"text-[9px] font-black uppercase tracking-[0.2em] text-rose-600/90",children:"Studio klip"}),e.jsx("h1",{className:"text-xl font-black tracking-tight text-slate-900 dark:text-slate-100 md:text-2xl",children:"XCLIP"}),e.jsx("p",{className:"mt-0.5 text-xs font-medium leading-snug text-slate-600 dark:text-slate-300 ",children:"Pilih alur di bawah â kirim link â di antrean bisa sesuaikan trim (encode ulang hanya untuk klip yang diubah)."})]})]})]}),e.jsxs("details",{className:"group rounded-xl border border-amber-200/80 bg-amber-50/70 text-amber-950 dark:text-amber-200 shadow-sm",children:[e.jsxs("summary",{className:"cursor-pointer list-none px-3 py-2 text-[10px] font-bold select-none [&::-webkit-details-marker]:hidden flex items-center gap-2",children:[e.jsx(za,{className:"h-3.5 w-3.5 shrink-0 text-amber-600"}),e.jsx("span",{className:"flex-1",children:"Hak cipta & penggunaan wajar"}),e.jsx(it,{className:"h-3.5 w-3.5 shrink-0 text-amber-700/80 transition-transform group-open:rotate-180"})]}),e.jsx("p",{className:"border-t border-amber-200/60 px-3 pb-2.5 pt-1.5 text-[10px] font-medium leading-snug text-amber-950 dark:text-amber-200/90 ",children:"Gunakan hanya untuk konten yang Anda punya hak atau izin. Mengunduh ulang bisa melanggar ketentuan YouTube atau pemilik hak. XGrind tidak bertanggung jawab atas penyalahgunaan."})]}),!r&&e.jsxs("div",{className:"inline-flex max-w-full items-center gap-1.5 rounded-full border border-slate-200/90 bg-white px-3 py-1.5 text-[10px] font-semibold text-slate-500 dark:text-slate-400 shadow-sm",children:[e.jsx(Te,{className:"h-3.5 w-3.5 shrink-0 text-amber-500","aria-hidden":!0}),e.jsx("span",{className:"leading-snug",children:ua})]}),e.jsxs("div",{className:"space-y-3 rounded-2xl border border-slate-200/90 bg-white p-4 shadow-[0_10px_36px_-14px_rgba(15,23,42,0.09)] ring-1 ring-slate-900/[0.03] sm:p-5",children:[e.jsxs("div",{className:"border-b border-slate-100 pb-2.5",children:[e.jsx("h2",{className:"text-base font-black text-slate-900 dark:text-slate-100 ",children:"Mulai dari link"}),e.jsx("p",{className:"mt-0.5 text-[11px] font-medium leading-snug text-slate-500 dark:text-slate-400 ",children:"Satu link = satu job. Boleh tutup tab â status tetap jalan di server."})]}),e.jsxs("label",{className:"block",children:[e.jsx("span",{className:"text-[10px] font-black text-slate-400 uppercase tracking-widest",children:"Link YouTube"}),e.jsxs("div",{className:"relative mt-1.5",children:[e.jsx(Fa,{className:"pointer-events-none absolute left-3 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-slate-400","aria-hidden":!0}),e.jsx("input",{type:"url",value:i,onChange:n=>d(n.target.value),placeholder:"https://www.youtube.com/watch?v=â¦",className:"w-full rounded-lg border border-slate-200 bg-slate-50/40 py-2 pl-9 pr-3 text-sm font-semibold text-slate-800 dark:text-slate-200 placeholder:text-slate-400 dark:placeholder:text-slate-400 transition focus:border-indigo-500 focus:bg-white focus:outline-none focus:ring-2 focus:ring-indigo-500/25"})]})]}),pe(i.trim())&&e.jsxs("div",{className:"flex gap-3 rounded-xl border border-slate-200/90 bg-white p-3 shadow-sm ring-1 ring-slate-900/[0.03]",children:[e.jsxs("div",{className:"relative h-[4.5rem] w-[8rem] shrink-0 overflow-hidden rounded-lg bg-slate-900 ring-1 ring-slate-200/80",children:[Me?.thumbUrl||ge(pe(i.trim()))?e.jsx("img",{src:Me?.thumbUrl||ge(pe(i.trim())),alt:"",className:"h-full w-full object-cover"}):e.jsx("div",{className:"flex h-full items-center justify-center",children:e.jsx($e,{className:"h-8 w-8 text-white/30"})}),wt&&e.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-black/35",children:e.jsx(se,{className:"h-6 w-6 animate-spin text-white","aria-hidden":!0})})]}),e.jsxs("div",{className:"min-w-0 flex-1 py-0.5",children:[e.jsx("p",{className:"text-[10px] font-black uppercase tracking-wider text-slate-400",children:"Deteksi link"}),e.jsx("p",{className:"mt-0.5 text-sm font-bold leading-snug text-slate-900 dark:text-slate-100 line-clamp-2",children:Me?.title||(wt?"Memuat judulâ¦":"Video YouTube")}),Me?.author?e.jsx("p",{className:"mt-1 text-[10px] font-semibold text-slate-500 dark:text-slate-400 ",children:Me.author}):null,Me?.durationSec!=null?e.jsxs("p",{className:"mt-1 inline-flex items-center gap-1 text-[10px] font-bold tabular-nums text-slate-600 dar
1k:text-slate-300 ",children:[e.jsx(Ct,{className:"h-3 w-3 shrink-0","aria-hidden":!0}),js(Me.durationSec)]}):null]})]}),e.jsxs("label",{className:"block",children:[e.jsxs("span",{className:"text-[10px] font-black uppercase tracking-wider text-slate-400",children:["Arahkan AI ",e.jsx("span",{className:"font-medium normal-case tracking-normal text-slate-400",children:"(opsional)"})]}),e.jsx("textarea",{value:q,onChange:n=>H(n.target.value.slice(0,500)),placeholder:"Misal: 'cari momen paling lucu', 'fokus tips monetisasi', 'buat teaser 30 detik'â¦",rows:2,className:"mt-1 w-full resize-none rounded-lg border border-slate-200 bg-slate-50/40 px-3 py-2 text-sm font-medium text-slate-800 dark:text-slate-200 placeholder:text-slate-400 dark:placeholder:text-slate-400 transition focus:border-indigo-500 focus:bg-white focus:outline-none focus:ring-2 focus:ring-indigo-500/25"}),e.jsxs("span",{className:"mt-0.5 block text-right text-[9px] tabular-nums text-slate-400",children:[q.length,"/500"]})]}),fe&&!me&&e.jsxs("div",{className:"flex items-center gap-2 rounded-xl border border-indigo-100 bg-indigo-50/50 px-3 py-2.5 text-[11px] font-semibold text-indigo-900",children:[e.jsx(se,{className:"h-4 w-4 shrink-0 animate-spin","aria-hidden":!0}),"Menyambungkan ke antreanâ¦"]}),me&&(me.status==="queued"||me.status==="processing")?e.jsx(Kt,{j:me}):null,me&&me.status==="done"?e.jsxs("div",{className:"flex flex-wrap items-center gap-2 rounded-xl border border-emerald-200 bg-emerald-50/90 px-3 py-2.5",children:[e.jsx(Je,{className:"h-4 w-4 shrink-0 text-emerald-600","aria-hidden":!0}),e.jsx("p",{className:"min-w-0 flex-1 text-[11px] font-bold text-emerald-950",children:"Klip siap â lihat di antrean atau buka detail job."}),e.jsx("button",{type:"button",onClick:()=>{_e(me.id),Se(null)},className:"shrink-0 rounded-full bg-emerald-700 px-3 py-1 text-[10px] font-black text-white hover:bg-emerald-800",children:"Buka detail"}),e.jsx("button",{type:"button",onClick:()=>Se(null),className:"shrink-0 rounded-full border border-emerald-300 bg-white px-3 py-1 text-[10px] font-black text-emerald-900 dark:text-emerald-300 hover:bg-emerald-100/80",children:"Tutup"})]}):null,me&&me.status==="failed"?e.jsxs("div",{className:"rounded-xl border border-red-100 bg-red-50/90 px-3 py-2 text-[11px] font-semibold text-red-800",children:["Job gagal â cek antrean atau coba lagi.",e.jsx("button",{type:"button",onClick:()=>Se(null),className:"ml-2 font-black text-red-900 underline",children:"Tutup"})]}):null,e.jsxs("div",{className:"space-y-2 pt-1",children:[e.jsx("p",{className:"text-[10px] font-black uppercase tracking-wider text-slate-400",children:"Alur kerja"}),e.jsx("div",{className:"grid gap-2 sm:grid-cols-2",children:xs.map(n=>{const h=vs[n.id]||Xt,M=n.id==="ai"&&L==="ai"||n.id==="human_loop"&&L==="human_loop";return e.jsxs("button",{type:"button",onClick:()=>W(n.id),className:`flex gap-2.5 rounded-xl border p-3 text-left transition-all ${M?"border-indigo-500 bg-indigo-50/90 ring-2 ring-indigo-200/80 shadow-sm":"border-slate-200 bg-slate-50/50 hover:border-slate-300"}`,children:[e.jsx("span",{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg ${M?"bg-indigo-200/80 text-indigo-900":"bg-white text-slate-500 dark:text-slate-400 ring-1 ring-slate-200/80"}`,children:e.jsx(h,{className:"h-4 w-4",strokeWidth:2.2,"aria-hidden":!0})}),e.jsxs("span",{className:"min-w-0",children:[e.jsx("span",{className:"block text-[12px] font-black leading-tight text-slate-900 dark:text-slate-100 ",children:n.title}),e.jsx("span",{className:"mt-1 block text-[10px] font-semibold leading-snug text-slate-600 dark:text-slate-300 ",children:n.sub})]})]},n.id)})})]}),L==="human_loop"&&e.jsxs("div",{className:"rounded-lg border border-slate-100 bg-slate-50/80 px-3 py-2",children:[e.jsxs("p",{className:"text-[10px] font-medium text-slate-600 dark:text-slate-300 leading-snug",children:["Atau buka studio ",e.jsx("span",{className:"font-bold text-slate-800 dark:text-slate-200 ",children:"tanpa saran otomatis"})," â atur segmen dari nol."]}),e.jsx("button",{type:"button",disabled:!i.trim(),onClick:()=>o({open:!0,youtubeUrl:i.trim(),outputs:null,durationSec:null,autoSuggestOnOpen:!1,markHumanLoopReview:!1}),className:"mt-2 w-full rounded-lg border border-slate-200 bg-white py-2 text-[11px] font-black text-slate-700 dark:text-slate-300 shadow-sm transition hover:border-indigo-200 hover:bg-indigo-50/80 disabled:cursor-not-allowed disabled:opacity-50",children:"Buka studio tanpa saran AI"})]}),e.jsxs("details",{className:"group rounded-xl border border-slate-200/90 bg-slate-50/50 text-slate-800 dark:text-slate-200 ",children:[e.jsxs("summary",{className:"cursor-pointer list-none px-3 py-2 text-[10px] font-bold select-none [&::-webkit-details-marker]:hidden flex items-center gap-2 text-slate-600 dar
1k:text-slate-300 ",children:[e.jsx("span",{className:"flex-1",children:"Baca: dua alur ini bedanya apa?"}),e.jsx(it,{className:"h-3.5 w-3.5 shrink-0 transition-transform group-open:rotate-180"})]}),e.jsxs("ul",{className:"border-t border-slate-200/80 px-3 pb-2.5 pt-2 space-y-2 text-[10px] font-medium leading-snug text-slate-600 dark:text-slate-300 list-disc pl-5",children:[e.jsxs("li",{children:[e.jsx("span",{className:"font-bold text-slate-800 dark:text-slate-200 ",children:"AI â otomatis:"})," server menganalisis transkrip, memilih momen, lalu merender klip vertikal + subtitle. Setelah jadi, trim per klip mengganti file klip itu saja (lebih cepat dari job baru)."]}),e.jsxs("li",{children:[e.jsx("span",{className:"font-bold text-slate-800 dark:text-slate-200 ",children:"Studio:"})," kamu tinjau/ubah saran segmen dulu, pilih pengaturan, baru encode â cocok kalau mau kontrol penuh sebelum render."]})]})]}),e.jsxs("button",{type:"button",onClick:()=>O(n=>!n),className:"flex w-full items-center justify-between gap-2 rounded-lg border border-indigo-100 bg-gradient-to-r from-indigo-50/80 to-white px-3 py-2.5 text-left transition hover:border-indigo-200 hover:from-indigo-50",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("span",{className:"text-sm font-black text-indigo-950",children:"Opsi lanjutan"}),e.jsx("span",{className:"mt-0 block text-[10px] font-medium leading-tight text-indigo-800/80",children:"Caption, layout, watermark, metadataâ¦"})]}),e.jsx("span",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-md bg-indigo-100/80 text-indigo-700",children:J?e.jsx(Ea,{size:16}):e.jsx(it,{size:16})})]}),J&&e.jsxs("div",{className:"space-y-3 border-t border-slate-100 pt-3",children:[e.jsxs("p",{className:"flex gap-1.5 rounded-lg border border-indigo-100/90 bg-indigo-50/40 px-2.5 py-1.5 text-[10px] leading-snug text-slate-600 dark:text-slate-300 ",children:[e.jsx(gt,{className:"mt-0.5 h-3 w-3 shrink-0 text-indigo-500","aria-hidden":!0}),e.jsxs("span",{children:[e.jsx("span",{className:"font-bold text-slate-800 dark:text-slate-200 ",children:"Kotak pratinjau"}
1)," = ilustrasi opsi (bukan cuplikan video). Hasil asli di antrean."]})]}),e.jsxs(He,{title:"Caption & teks",accentClass:"border-indigo-500",children:[e.jsxs("div",{className:"flex flex-col gap-2 rounded-lg border border-slate-100/90 bg-slate-50/50 p-2 sm:flex-row sm:items-center sm:gap-3",children:[e.jsx(bs,{}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("p",{className:"text-xs font-bold text-slate-900 dark:text-slate-100 ",children:"Subtitle otomatis (burn-in)"}),e.jsx("p",{className:"mt-0.5 text-[10px] font-medium leading-snug text-slate-500 dark:text-slate-400 ",children:"Caption YouTube di bawah layar di MP4 (jika ada di sumber)."})]}),e.jsx("button",{type:"button",role:"switch","aria-checked":m,onClick:()=>g(n=>!n),className:`relative h-6 w-11 shrink-0 self-start rounded-full transition-colors sm:self-center ${m?"bg-indigo-600":"bg-slate-200"}`,children:e.jsx("span",{className:`absolute top-0.5 left-0.5 h-5 w-5 rounded-full bg-white shadow transition-transform ${m?"translate-x-5":""}`})})]}),m&&e.jsxs("div",{className:"rounded-lg border border-slate-100 bg-white p-2",children:[e.jsx("p",{className:"text-[10px] font-bold text-slate-800 dark:text-slate-200 ",children:"Preset subtitle engaging"}),e.jsx("p",{className:"mt-0.5 text-[9px] font-medium leading-snug text-slate-500 dark:text-slate-400 ",children:"Satu sistem preset (tanpa pipeline bercabang). Emoji tetap kontrol terpisah."}),e.jsx("div",{className:"mt-2 grid gap-2 sm:grid-cols-3",children:gs.map(n=>{const h=U===n.id;return e.jsxs("button",{type:"button",onClick:()=>xa(n.id),className:`flex flex-col items-center gap-1 rounded-lg border p-1.5 text-center transition ${h?"border-indigo-500 bg-indigo-50/80 ring-2 ring-indigo-200/70":"border-slate-200 bg-slate-50/50 hover:border-slate-300"}`,children:[e.jsx(hs,{variant:n.previewVariant,dimmed:!h}),e.jsx("span",{className:"text-[10px] font-black text-slate-800 dark:text-slate-200 ",children:n.title}),e.jsx("span",{className:"text-[9px] font-medium leading-snug text-slate-500 dark:text-slate-400 ",children:n.sub})]},n.id)})}),e.jsxs("div",{className:"mt-3",children:[e.jsx("p",{className:"text-[10px] font-bold text-slate-800 dark:text-slate-200 ",children:"Pengaturan subtitle tambahan"}),e.jsxs("div",{className:"mt-2 grid gap-2 sm:grid-cols-2",children:[e.jsxs("label",{className:"flex items-center gap-2 rounded-md border border-slate-100 bg-slate-50 px-2 py-1.5 text-[10px] font-semibold text-slate-700 dark:text-slate-300 ",children:[e.jsx("input",{type:"checkbox",checked:b,onChange:n=>N(n.target.checked),className:"h-3.5 w-3.5 rounded border-slate-300 text-indigo-600 focus:ring-indigo-500"}),"Highlight keywords"]}),e.jsxs("label",{className:"flex items-center gap-2 rounded-md border border-slate-100 bg-slate-50 px-2 py-1.5 text-[10px] font-semibold text-slate-700 dark:text-slate-300 ",children:[e.jsx("input",{type:"checkbox",checked:E,onChange:n=>I(n.target.checked),className:"h-3.5 w-3.5 rounded border-slate-300 text-indigo-600 focus:ring-indigo-500"}),"Karaoke timing"]}),e.jsxs("label",{className:"flex items-center gap-2 rounded-md border border-slate-100 bg-slate-50 px-2 py-1.5 text-[10px] font-semibold text-slate-700 dark:text-slate-300 ",children:[e.jsx("input",{type:"checkbox",checked:Q,onChange:n=>D(n.target.checked),className:"h-3.5 w-3.5 rounded border-slate-300 text-indigo-600 focus:ring-indigo-500"}),"Remove silences"]}),e.jsxs("label",{className:"flex items-center gap-2 rounded-md border border-slate-100 bg-slate-50 px-2 py-1.5 text-[10px] font-semibold text-slate-700 dark:text-slate-300 ",children:[e.jsx("input",{type:"checkbox",checked:w,onChange:n=>j(n.target.checked),className:"h-3.5 w-3.5 rounded border-slate-300 text-indigo-600 focus:ring-indigo-500"}),"Add B-rolls"]})]}),e.jsxs("div",{className:"mt-2 flex items-center justify-between gap-2 rounded-md border border-slate-100 bg-slate-50 px-2 py-1.5 text-[10px]",children:[e.jsx("span",{className:"font-semibold text-slate-700 dark:text-slate-300 ",children:"Emoji style (terpisah dari preset)"}),e.jsxs("select",{value:K,onChange:n=>te(n.target.value),className:"rounded-md border border-slate-200 bg-white px-2 py-1 font-semibold text-slate-700 dark:text-slate-300 ",children:[e.jsx("option",{value:"off",children:"Off"}),e.jsx("option",{value:"subtle",children:"Subtle"}),e.jsx("option",{value:"expressive",children:"Expressive"})]})]})]})]}),e.jsxs("label",{className:"flex cursor-pointer flex-col gap-2 rounded-lg border border-slate-100 bg-white p-2 sm:flex-row sm:items-center sm:gap-3",children:[e.jsx(fs,{}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("span",{className:"text-xs font-bold text-slate-900 dark:text-slate-100 ",children:"Transkrip kaya untuk AI"}),e.jsxs("span",{className:"mt-0.5 block text-[10px] font-medium leading-snug text-slate-500 dark:text-slate-400 ",children:["Lebih banyak teks ke Gemini â bisa ",e.jsx("span",{className:"font-semibold text-slate-700 dark:text-slate-300 ",children:"lebih lambat"}),"."]})]}),e.jsx("input",{type:"checkbox",checked:x,onChange:n=>A(n.target.checked),className:"h-3.5 w-3.5 shrink-0 rounded border-slate-300 text-indigo-600 focus:ring-indigo-500"})]})]}),e.jsx(He,{title:"Watermark",accentClass:"border-cyan-600",children:e.jsx("div",{className:"rounded-md border border-slate-100/90 bg-slate-50/40 p-0.5",children:e.jsxs("div",{className:"flex flex-col gap-2 rounded-md border border-transparent border-l-[3px] border-l-slate-400/60 bg-white/90 py-2 pl-2 pr-2 sm:flex-row sm:items-center sm:gap-3",children:[e.jsx(ks,{}),e.jsxs("label",{className:"min-w-0 flex-1",children:[e.jsx("span",{className:"text-[10px] font-black uppercase tracking-wider text-slate-500 dark:text-slate-400 ",children:"Watermark (opsional)"}),e.jsx("input",{type:"text",value:y,onChange:n=>X(n.target.value),placeholder:"@akunAnda",maxLength:120,className:"mt-1 w-full rounded-lg border border-slate-200 px-2 py-1.5 text-sm font-semibold text-slate-800 dark:text-slate-200 placeholder:text-slate-300"}),e.jsx("span",{className:"mt-0.5 block text-[9px] font-medium text-slate-500 dark:text-slate-400 ",children:"Teks kecil di sudut â @handle atau merek."})]})]})})}),e.jsxs(He,{title:"Keluaran & AI",accentClass:"border-emerald-500",children:[e.jsxs("div",{className:"flex flex-col gap-2 rounded-lg border border-emerald-100/90 bg-emerald-50/25 p-2 sm:flex-row sm:items-center sm:gap-3",children:[e.jsx(ws,{}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("p",{className:"text-xs font-bold text-slate-900 dark:text-slate-100 ",children:"Metadata posting (Gemini)"}),e.jsx("p",{className:"mt-0.5 text-[10px] font-medium leading-snug text-slate-600 dar
1k:text-slate-300 ",children:"Judul, deskripsi, hashtag, CTA â satu langkah API tambahan per klip."})]}),e.jsx("button",{type:"button",role:"switch","aria-checked":c,onClick:()=>p(n=>!n),className:`relative h-6 w-11 shrink-0 self-start rounded-full transition-colors sm:self-center ${c?"bg-emerald-600":"bg-slate-200"}`,children:e.jsx("span",{className:`absolute top-0.5 left-0.5 h-5 w-5 rounded-full bg-white shadow transition-transform ${c?"translate-x-5":""}`})})]}),ke&&e.jsxs("div",{className:"flex flex-col gap-2 rounded-lg border border-violet-200/90 bg-gradient-to-br from-violet-50/70 to-fuchsia-50/25 p-2 sm:flex-row sm:items-center sm:gap-3",children:[e.jsx(Ns,{}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("p",{className:"text-xs font-bold text-slate-900 dark:text-slate-100 ",children:"Mode kualitas Pro"}),e.jsx("p",{className:"mt-0.5 text-[10px] font-medium leading-snug text-slate-600 dark:text-slate-300 ",children:"Frame + skor visual â lebih lambat, lebih banyak API."})]}),e.jsx("button",{type:"button",role:"switch","aria-checked":f==="pro",onClick:()=>F(n=>n==="pro"?"standard":"pro"),className:`relative h-6 w-11 shrink-0 self-start rounded-full transition-colors sm:self-center ${f==="pro"?"bg-violet-600":"bg-slate-200"}`,children:e.jsx("span",{className:`absolute top-0.5 left-0.5 h-5 w-5 rounded-full bg-white shadow transition-transform ${f==="pro"?"translate-x-5":""}`})})]}),ke&&e.jsxs("div",{className:"flex flex-col gap-2 rounded-lg border border-sky-200/90 bg-sky-50/40 p-2 sm:flex-row sm:items-center sm:gap-3",children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("p",{className:"text-xs font-bold text-slate-900 dark:text-slate-100 ",children:"Vision assist (subtitle/b-roll)"}),e.jsx("p",{className:"mt-0.5 text-[10px] font-medium leading-snug text-slate-600 dark:text-slate-300 ",children:"Membantu posisi subtitle dan agresivitas b-roll berdasarkan sinyal visual."})]}),e.jsx("button",{type:"button",role:"switch","aria-checked":Y,onClick:()=>z(n=>!n),className:`relative h-6 w-11 shrink-0 self-start rounded-full transition-colors sm:self-center ${Y?"bg-sky-600":"bg-slate-200"}`,children:e.jsx("span",{className:`absolute top-0.5 left-0.5 h-5 w-5 rounded-full bg-white shadow transition-transform ${Y?"translate-x-5":""}`})})]})]}),e.jsxs(He,{title:"Layout vertikal (9:16)",accentClass:"border-violet-500",children:[e.jsxs("p",{className:"text-[10px] font-medium leading-snug text-slate-500 dark:text-slate-400 ",children:["Pratinjau kartu = ",e.jsx("span",{className:"font-semibold text-slate-700 dark:text-slate-300 ",children:"cara frame"})," diisi (otomatis / blur samping / crop)."]}),e.jsx("div",{className:"grid gap-1.5 sm:grid-cols-3",children:ps.map(n=>{const h=l===n.id;return e.jsxs("button",{type:"button",onClick:()=>P(n.id),className:`text-left rounded-lg border p-2 transition-all ${h?"border-indigo-600 bg-indigo-50/90 ring-2 ring-indigo-200 shadow-sm":"border-slate-200 bg-slate-50/40 hover:border-slate-300"}`,children:[e.jsx(ys,{layoutId:n.id,selected:h}),e.jsxs("p",{className:"mt-1.5 flex items-center gap-1 text-[10px] font-black leading-tight text-slate-900 dark:text-slate-100 ",children:[e.jsx($e,{size:12,className:h?"text-indigo-600":"text-slate-400","aria-hidden":!0}),n.title]}),e.jsx("p",{className:"mt-0.5 text-[9px] font-semibold leading-snug text-slate-500 dark:text-slate-400 ",children:n.sub})]},n.id)})})]})]}),v&&e.jsx("div",{className:"text-sm font-bold text-red-600 bg-red-50 border border-red-100 rounded-lg px-3 py-2",children:v}),e.jsx("button",{type:"button",disabled:G||!t?.uid,onClick:pa,className:"w-full py-2.5 md:py-3 rounded-xl bg-slate-900 text-white font-black text-sm tracking-wide shadow-md shadow-slate-900/20 hover:bg-slate-800 disabled:opacity-50 disabled:cursor-not-allowed flex items-center justify-center gap-2",children:G?e.jsxs(e.Fragment,{children:[e.jsx(se,{className:"animate-spin w-5 h-5"}),"Mengirimâ¦"]}):L==="human_loop"?e.jsxs(e.Fragment,{children:[e.jsx(Te,{className:"w-5 h-5 text-amber-300"}),"Lanjut ke studio"]}):e.jsxs(e.Fragment,{children:[e.jsx(Te,{className:"w-5 h-5 text-amber-300"}),"Buat klip"]})}),e.jsx("p",{className:"text-[10px] text-slate-500 dark:text-slate-400 font-semibold leading-snug text-center",children:"1 kredit per job pembuatan klip. Render bisa beberapa menit â refresh untuk status terbaru."}),e.jsx("p",{className:"text-[10px] text-slate-500 dark:text-slate-400 font-medium leading-snug text-center",children:"Sesuaikan trim dari antrean: hanya klip yang diubah yang di-encode ulang (lebih cepat dari mulai job baru)."})]}),!ke&&e.jsx("p",{className:"text-center text-[10px] text-slate-400 font-semibold leading-snug",children:"Tip: upgrade PRO di XGrind untuk kuota XCLIP harian lebih besar."})]}),e.jsxs("div",{className:`w-full min-w-0 space-y-4 ${Pe?"hidden":Mt?"xl:col-span-5":"xl:col-span-6"}`,children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-end sm:justify-between gap-2",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("h2",{className:"text-lg font-black text-slate-900 dark:text-slate-100 flex items-center gap-2",children:[e.jsx(Ct,{size:20,className:"text-indigo-500 shrink-0"}
1),"Studio & antrean"]}),e.jsx("p",{className:"mt-1 text-[10px] font-medium text-slate-500 dark:text-slate-400 leading-snug",children:"Klik baris untuk halaman detail job â klip, ekspor, dan pratinjau di panel kanan."})]}),e.jsxs("p",{className:"text-[10px] text-slate-500 dark:text-slate-400 font-semibold shrink-0",children:["Biasanya ~",e.jsx("span",{className:"text-slate-700 dark:text-slate-300 ",children:"8â35 menit"}),"/video (panjang & antrean)"]})]}),le&&e.jsx("div",{className:"text-sm font-semibold text-amber-900 dark:text-amber-200 bg-amber-50 border border-amber-200 rounded-xl px-4 py-3",children:le}),u.length>0&&e.jsxs("div",{className:"flex flex-col gap-2.5 rounded-2xl border border-slate-200/90 bg-white p-3 shadow-sm ring-1 ring-slate-900/[0.03] sm:flex-row sm:flex-wrap sm:items-center sm:gap-3",children:[e.jsxs("div",{className:"relative min-w-0 flex-1 sm:min-w-[12rem]",children:[e.jsx($a,{className:"pointer-events-none absolute left-3 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-slate-400","aria-hidden":!0}),e.jsx("input",{type:"search",value:Le,onChange:n=>ea(n.target.value),placeholder:"Cari judul, URL, atau ID jobâ¦",className:"w-full rounded-xl border border-slate-200 bg-slate-50/80 py-2 pl-9 pr-3 text-xs font-semibold text-slate-800 dark:text-slate-200 placeholder:text-slate-400 dark:placeholder:text-slate-400 focus:border-indigo-400 focus:bg-white focus:outline-none focus:ring-2 focus:ring-indigo-500/20","aria-label":"Cari di antrean"})]}),e.jsxs("div",{ref:yt,className:"relative flex shrink-0 items-center gap-2",children:[e.jsxs("button",{type:"button",onClick:()=>et(n=>!n),className:`inline-flex items-center gap-2 rounded-xl border px-3 py-2 text-[11px] font-black transition ${xe!=="all"?"border-indigo-300 bg-indigo-50 text-indigo-900 ring-1 ring-indigo-200/80":"border-slate-200 bg-white text-slate-700 dark:text-slate-300 hover:border-slate-300 hover:bg-slate-50"}`,"aria-expanded":qe,"aria-haspopup":"true",children:[e.jsx(La,{className:"h-3.5 w-3.5 shrink-0 text-indigo-600","aria-hidden":!0}),"Filter",e.jsxs("span",{className:"max-w-[9rem] truncate font-bold text-slate-500 dark:text-slate-400 ",children:["· ",$t(xe)]})]}),qe?e.jsx("div",{className:"absolute right-0 top-[calc(100%+0.35rem)] z-30 min-w-[11.5rem] overflow-hidden rounded-xl border border-slate-200 bg-white py-1 shadow-lg ring-1 ring-slate-900/5",role:"menu",children:ss.map(n=>e.jsxs("button",{type:"button",role:"menuitem",onClick:()=>{ta(n),et(!1)},className:`flex w-full items-center justify-between gap-2 px-3 py-2 text-left text-[11px] font-bold transition hover:bg-slate-50 ${xe===n?"bg-indigo-50 text-indigo-900":"text-slate-700 dark:text-slate-300 "}`,children:[$t(n),xe===n?e.jsx("span",{className:"text-indigo-600","aria-hidden":!0,children:"â"}):null]},n))}):null]})]}),u.length>0&&e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[e.jsxs("p",{className:"text-[10px] font-bold text-slate-500 dark:text-slate-400 ",children:["Menampilkan ",e.jsx("span",{className:"text-slate-700 dark:text-slate-300 ",children:ka}),Fe>1?e.jsxs("span",{className:"text-slate-400",children:[" ","· halaman ",Ue,"/",Fe]}):null]}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsxs("button",{type:"button",disabled:Ue<=1||Ne.length===0,onClick:()=>Be(n=>Math.max(1,n-1)),className:"inline-flex items-center gap-1 rounded-lg border border-slate-200 bg-white px-2.5 py-1.5 text-[10px] font-black text-slate-700 dark:text-slate-300 shadow-sm transition hover:border-slate-300 hover:bg-slate-50 disabled:cursor-not-allowed disabled:opacity-40",children:[e.jsx(Ua,{className:"h-3.5 w-3.5","aria-hidden":!0}),"Sebelumnya"]}),e.jsxs("button",{type:"button",disabled:Ue>=Fe||Ne.length===0,onClick:()=>Be(n=>Math.min(Fe,n+1)),className:"inline-flex items-center gap-1 rounded-lg border border-slate-200 bg-white px-2.5 py-1.5 text-[10px] font-black text-slate-700 dark:text-slate-300 shadow-sm transition hover:border-slate-300 hover:bg-slate-50 disabled:cursor-not-allowed disabled:opacity-40",children:["Berikutnya",e.jsx(Yt,{className:"h-3.5 w-3.5","aria-hidden":!0})]})]})]}),e.jsxs("div",{className:"grid max-h-[min(72vh,880px)] grid-cols-1 gap-2 overflow-y-auto pr-0.5 sm:gap-2.5",children:[u.length===0&&!le&&e.jsx("p",{className:"text-sm text-slate-400 font-semibold text-center py-10 bg-white rounded-2xl border border-dashed border-slate-200 col-span-full",children:"Belum ada job. Kirim link YouTube di kolom form."}),u.length===0&&le&&e.jsx("p",{className:"text-sm text-slate-400 font-semibold text-center py-6 bg-white rounded-2xl border border-dashed border-slate-200 col-span-full",children:"Daftar job tidak dimuat sampai indeks siap atau error teratasi."}),u.length>0&&Ne.length===0&&e.jsx("p",{className:"text-sm text-slate-500 dark:text-slate-400 font-semibold text-center py-8 bg-white rounded-2xl border border-dashed border-slate-200 col-span-full",children:"Tidak ada job yang cocok dengan pencarian atau filter. Ubah kata kunci atau reset filter."}),fa.map(n=>e.jsx(Fs,{j:n,onSelect:()=>_e(n.id)},n.id))]})]}),Pe&&we&&e.jsxs("div",{className:"w-full min-w-0 space-y-3 xl:col-span-7 xl:sticky xl:top-24 xl:max-h-[calc(100vh-5.5rem)] xl:overflow-y-auto xl:pr-1 scroll-mt-24 animate-in fade-in slide-in-from-right-2 duration-300 motion-reduce:animate-none",children:[e.jsxs("div",{className:"rounded-2xl border border-slate-200 bg-white p-3 shadow-sm",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("p",{className:"text-[10px] font-black uppercase tracking-wider text-slate-500 dark:text-slate-400 ",children:"Studio detail job"}),e.jsx("p",{className:"truncate text-sm font-bold text-slate-900 dark:text-slate-100 ",children:we.videoTitle||"Detail video"})]}),e.jsx("span",{className:`text-[10px] font-black uppercase tracking-wider px-2.5 py-1 rounded-full ring-1 ${ht(we.status)}`,children:ft(we.status)})]}),e.jsxs("div",{className:"mt-2 flex flex-wrap items-center gap-2",children:[e.jsxs("button",{type:"button",onClick:()=>_e(null),className:"inline-flex items-center gap-2 rounded-full border border-slate-200 bg-white px-3 py-1.5 text-[11px] font-black text-slate-700 dark:text-slate-300 transition hover:border-indigo-200 hover:bg-indigo-50 hover:text-indigo-900",children:[e.jsx(Ba,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":!0}),"Kembali ke antrean"]}),e.jsx("span",{className:"text-[11px] font-medium text-slate-500 dark:text-slate-400 ",children:"Fokus ke hasil render, subtitle, dan aksi cepat."})]})]}),e.jsx(Rs,{j:we,actionJobId:ce,actionKind:je,jobCallError:R,setJobCallError:T,cancelQueuedJob:ga,retriggerQueuedJob:ba,deleteJobFromList:ha,expandedClipKey:$,setExpandedClipKey:Z,prefillYoutubeUrl:la,onPlayClipMp4:ia,onPlayYoutube:St,onTimelineSegmentClick:St,onOpenAdjustClip:oa,onOpenTrimModal:da,onRenderSuggestion:ca,actionClipKey:aa})]}),wa&&e.jsx("div",{className:`w-full min-w-0 xl:sticky xl:top-24 xl:self-start animate-in fade-in slide-in-from-right-2 duration-300 motion-reduce:animate-none ${Pe?"xl:col-span-5":"xl:col-span-7"}`,children:e.jsxs("div",{ref:jt,className:"scroll-mt-24 overflow-hidden rounded-2xl bg-white shadow-[0_20px_50px_-12px_rgba(15,23,42,0.18)] ring-1 ring-slate-900/[0.06] max-xl:mt-2",children:[e.jsxs("div",{className:"relative bg-gradient-to-r from-rose-600 to-orange-500 px-4 py-3 flex items-start justify-between gap-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("p",{className:"text-[10px] font-black uppercase tracking-widest text-white/90",children:B?.mode==="mp4"?"Klip MP4":B?.mode==="youtube"?"YouTube · sumber":"Panel pratinjau"}),e.jsx("p",{className:"text-sm font-bold text-white truncate pr-2 leading-snug mt-0.5",children:B?.title||(Pe?"Pilih preview dari detail job":"â")})]}),e.jsx("button",{type:"button",onClick:ra,className:"shrink-0 rounded-full bg-white/15 px-3 py-1.5 text-[11px] font-black text-white backdrop-blur-sm ring-1 ring-white/25 hover:bg-white/25 transition-colors disabled:cursor-not-allowed disabled:opacity-40",disabled:!B,children:"Tutup"})]}),e.jsx("div",{className:"bg-gradient-to-b from-slate-50 to-white p-3 sm:p-4",children:B?e.jsx(Qe,{sourceVideoUrl:B.mode==="mp4"?B.mp4Url:null,videoId:B.mode==="youtube"?B.videoId:null,initialSeekSec:B.startSec||0,autoPlay:!1,syncSeekFromProp:!0,className:"w-full max-h-[min(68vh,520px)]",label:"Pratinjau source XClip"}):Pe?e.jsxs("div",{className:"flex flex-col items-center justify-center gap-3 rounded-xl border border-dashed border-slate-200 bg-slate-50/80 px-4 py-14 text-center",children:[e.jsx("div",{className:"flex h-14 w-14 items-center justify-center rounded-2xl bg-white shadow-sm ring-1 ring-slate-200/80",children:e.jsx(Ee,{className:"h-7 w-7 text-indigo-500 fill-current opacity-90","aria-hidden":!0})}),e.jsxs("p",{className:"max-w-[18rem] text-[12px] font-semibold leading-relaxed text-slate-600 dar
1k:text-slate-300 ",children:["Dari detail job: ",e.jsx("span",{className:"text-slate-900 dark:text-slate-100 ",children:"Pratinjau klip"})," (MP4) atau kontrol di panel kiri â pemutar kanan menyinkronkan klip yang dipilih."]})]}):null})]})})]}),e.jsx(Qa,{open:S.open,onClose:()=>o(n=>({...n,open:!1})),initialYoutubeUrl:S.youtubeUrl,initialOutputs:S.outputs,initialDurationSec:S.durationSec,formDefaults:ma,autoSuggestOnOpen:S.autoSuggestOnOpen,markHumanLoopReview:S.markHumanLoopReview}),e.jsx(as,{open:tt.open,onClose:()=>kt(n=>({...n,open:!1})),job:tt.job,clipIndex:tt.clipIndex,onAfterSave:()=>{}})]})}export{Us as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.