1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4629],{87295:function(e,t,a){var n=a(85893),s=a(53517),r=a(51853),l=a(27114);t.Z=e=>{let{toolName:t,overlay:a=!1}=e;return a?(0,n.jsx)("div",{className:"absolute inset-0 z-50 flex items-center justify-center bg-zinc-950/90 backdrop-blur-sm rounded-2xl",children:(0,n.jsxs)("div",{className:"flex flex-col gap-4 items-center text-center px-8",children:[(0,n.jsxs)("div",{className:"flex gap-3 mb-2",children:[(0,n.jsx)(s.Z,{className:"w-7 h-7 text-zinc-300"}),(0,n.jsx)(r.Z,{className:"w-7 h-7 text-zinc-300"}),(0,n.jsx)(l.Z,{className:"w-7 h-7 text-zinc-300"})]}),(0,n.jsx)("p",{className:"text-2xl sm:text-3xl font-medium text-zinc-100",children:"We're Updating Things Behind the Scenes"}),t&&(0,n.jsxs)("p",{className:"text-sm text-zinc-400 font-medium",children:[t," is currently under maintenance."]}),(0,n.jsxs)("p",{className:"text-xs sm:text-sm text-zinc-500 max-w-sm",children:["We'll be back shortly. Feel free to check back later.",(0,n.jsx)("br",{}),"Thank you for your patience!"]})]})}):(0,n.jsx)("div",{className:"flex flex-col justify-center items-center text-zinc-100 mt-32 md:mt-32 lg:mt-72 2xl:mt-80 min-[2400px]:mt-96 gap-2 px-5",children:(0,n.jsxs)("div",{className:"flex flex-col gap-4 items-center text-center",children:[(0,n.jsxs)("div",{className:"flex self-center w-40 2xl:w-52 min-[2400px]:w-60 mb-6",children:[(0,n.jsx)(s.Z,{className:"w-6 h-6 2xl:w-8 2xl:h-8 min-[2400px]:w-10 min-[2400px]:h-10 text-zinc-100 mx-auto"}),(0,n.jsx)(r.Z,{className:"w-6 h-6 2xl:w-8 2xl:h-8 min-[2400px]:w-10 min-[2400px]:h-10 text-zinc-100 mx-auto"}),(0,n.jsx)(l.Z,{className:"w-6 h-6 2xl:w-8 2xl:h-8 min-[2400px]:w-10 min-[2400px]:h-10 text-zinc-100 mx-auto"})]}),(0,n.jsx)("div",{children:(0,n.jsx)("p",{className:"text-2xl sm:text-3xl 2xl:text-4xl min-[2400px]:text-5xl font-medium",children:"We're Updating Things Behind the Scenes"})}),t&&(0,n.jsxs)("p",{className:"text-sm 2xl:text-base text-zinc-400 font-medium",children:[t," is currently under maintenance."]}),(0,n.jsx)("div",{children:(0,n.jsxs)("p",{className:"text-xs sm:text-sm 2xl:text-base text-center min-[2400px]:text-lg max-w-xl text-zinc-400",children:["This tool is currently under maintenance to bring you a better experience.",(0,n.jsx)("br",{}),"We'll be back shortly!",(0,n.jsx)("br",{}),"Feel free to check back later. Thank you for your patience!"]})})]})})}},55024:function(e,t,a){a.d(t,{Qd:function(){return o},UQ:function(){return c},o4:function(){return d},vF:function(){return h}});var n=a(85893),s=a(67294),r=a(39802),l=a(8971),i=a(36695);let c=r.fC,o=s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,n.jsx)(r.ck,{ref:t,className:(0,i.cn)("border-b",a),...s})});o.displayName="AccordionItem";let d=s.forwardRef((e,t)=>{let{className:a,children:s,...c}=e;return(0,n.jsx)(r.h4,{className:"flex",children:(0,n.jsxs)(r.xz,{ref:t,className:(0,i.cn)("flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",a),...c,children:[s,(0,n.jsx)(l.Z,{className:"h-4 w-4 shrink-0 transition-transform duration-200"})]})})});d.displayName=r.xz.displayName;let h=s.forwardRef((e,t)=>{let{className:a,children:s,...l}=e;return(0,n.jsx)(r.VY,{ref:t,className:(0,i.cn)("overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",a),...l,children:(0,n.jsx)("div",{className:"pb-4 pt-0",children:s})})});h.displayName=r.VY.displayName},42989:function(e,t,a){a.d(t,{X:function(){return c}});var n=a(85893),s=a(67294),r=a(89293),l=a(13742),i=a(36695);let c=s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,n.jsx)(r.fC,{ref:t,className:(0,i.cn)("peer h-4 w-4 shrink-0 rounded-sm border border-zinc-200 border-zinc-900 ring-offset-white focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-zinc-950 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-zinc-900 data-[state=checked]:text-zinc-50 dark:border-zinc-800 dark:border-zinc-50 dark:ring-offset-zinc-950 dark:focus-visible:ring-zinc-300 dark:data-[state=checked]:bg-zinc-50 dark:data-[state=checked]:text-zinc-900",a),...s,children:(0,n.jsx)(r.z$,{className:(0,i.cn)("flex items-center justify-center text-current"),children:(0,n.jsx)(l.Z,{className:"h-4 w-4"})})})});c.displayName=r.fC.displayName},63484:function(e,t,a){a.d(t,{x:function(){return i}});var n=a(85893),s=a(67294),r=a(90168),l=a(36695);let i=s.forwardRef((e,t)=>
1{let{className:a,children:s,viewportClassName:i,viewportRef:o,scrollBarClassName:d,scrollBarThumbClassName:h,...u}=e;return(0,n.jsxs)(r.fC,{ref:t,className:(0,l.cn)("relative overflow-hidden",a),...u,children:[(0,n.jsx)(r.l_,{ref:o,className:(0,l.cn)("h-full w-full rounded-[inherit]",i),children:s}),(0,n.jsx)(c,{className:d,thumbClassName:h}),(0,n.jsx)(r.Ns,{})]})});i.displayName=r.fC.displayName;let c=s.forwardRef((e,t)=>{let{className:a,thumbClassName:s,orientation:i="vertical",...c}=e;return(0,n.jsx)(r.gb,{ref:t,orientation:i,className:(0,l.cn)("flex touch-none select-none transition-colors","vertical"===i&&"h-full w-2.5 border-l border-l-transparent p-[1px]","horizontal"===i&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",a),...c,children:(0,n.jsx)(r.q4,{className:(0,l.cn)("relative flex-1 rounded-full bg-zinc-200 dark:bg-zinc-800",s)})})});c.displayName=r.gb.displayName},13586:function(e,t,a){a.d(t,{Bw:function(){return g},DI:function(){return h},Ph:function(){return d},Ql:function(){return v},i4:function(){return x},ki:function(){return u},n5:function(){return f}});var n=a(85893),s=a(67294),r=a(71890),l=a(8971),i=a(84979),c=a(13742),o=a(36695);let d=r.fC,h=r.ZA,u=r.B4,x=s.forwardRef((e,t)=>{let{className:a,children:s,...i}=e;return(0,n.jsxs)(r.xz,{ref:t,className:(0,o.cn)("flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm r
1ing-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",a),...i,children:[s,(0,n.jsx)(r.JO,{asChild:!0,children:(0,n.jsx)(l.Z,{className:"h-4 w-4 opacity-50"})})]})});x.displayName=r.xz.displayName;let m=s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,n.jsx)(r.u_,{ref:t,className:(0,o.cn)("flex cursor-default items-center justify-center py-1",a),...s,children:(0,n.jsx)(i.Z,{className:"h-4 w-4"})})});m.displayName=r.u_.displayName;let b=s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,n.jsx)(r.$G,{ref:t,className:(0,o.cn)("flex cursor-default items-center justify-center py-1",a),...s,children:(0,n.jsx)(l.Z,{className:"h-4 w-4"})})});b.displayName=r.$G.displayName;let g=s.forwardRef((e,t)=>{let{className:a,children:s,position:l="popper",...i}=e;return(0,n.jsx)(r.h_,{children:(0,n.jsxs)(r.VY,{ref:t,className:(0,o.cn)("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2","popper"===l&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",a),position:l,...i,children:[(0,n.jsx)(m,{}),(0,n.jsx)(r.l_,{className:(0,o.cn)("p-1","popper"===l&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:s}),(0,n.jsx)(b,{})]})})});g.displayName=r.VY.displayName;let f=s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,n.jsx)(r.__,{ref:t,className:(0,o.cn)("py-1.5 pl-8 pr-2 text-sm font-semibold",a),...s})});f.displayName=r.__.displayName;let v=s.forwardRef((e,t)=>{let{className:a,children:s,...l}=e;return(0,n.jsxs)(r.ck,{ref:t,className:(0,o.cn)("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...l,children:[(0,n.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,n.jsx)(r.wU,{children:(0,n.jsx)(c.Z,{className:"h-4 w-4"})})}),(0,n.jsx)(r.eT,{children:s})]})});v.displayName=r.ck.displayName;let p=s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,n.jsx)(r.Z0,{ref:t,className:(0,o.cn)("-mx-1 my-1 h-px bg-muted",a),...s})});p.displayName=r.Z0.displayName},51144:function(e,t,a){a.d(t,{i:function(){return i}});var n=a(85893),s=a(67294),r=a(68482),l=a(36695);let i=s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,n.jsxs)(r.fC,{ref:t,className:(0,l.cn)("relative flex w-full touch-none select-none items-center",a),...s,children:[(0,n.jsx)(r.fQ,{className:"relative h-2 w-full grow overflow-hidden rounded-full bg-secondary",children:(0,n.jsx)(r.e6,{className:"absolute h-full bg-primary"})}),(0,n.jsx)(r.bU,{className:"block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50"})]})});i.displayName=r.fC.displayName},59275:function(e,t,a){a.d(t,{g:function(){return l}});var n=a(85893),s=a(67294),r=a(36695);let l=s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,n.jsx)("textarea",{className:(0,r.cn)("flex min-h-[80px] w-full rounded-md border border-zinc-200 bg-white px-3 py-2 text-sm r
1ing-offset-white placeholder:text-zinc-500 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-zinc-950 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 dark:border-zinc-800 dark:bg-zinc-950 dark:ring-offset-zinc-950 dark:placeholder:text-zinc-400 dark:focus-visible:ring-zinc-300",a),ref:t,...s})});l.displayName="Textarea"},34629:function(e,t,a){a.r(t),a.d(t,{__N_SSP:function(){return tj},default:function(){return tN}});var n=a(85893),s=a(87295),r=a(86400),l=a(65052);"This channel has more than ".concat(2e3," videos. Tracking currently supports channels with up to ").concat(2e3," videos.");let i=[{text:"Dashboard",href:"/app"},{text:"Tools",href:"/tools"},{text:"Video Research",href:"/tools/video-research/v2/tracking"}],c={type:"video",sort_by:"relevance",upload_date:"",duration:"",geo:"US",lang:"en",local:!1,features:[]},o={minLikes:"",minOutlierScore:"",minSubscribers:"",durationBucket:"any",publishedRange:"any",sortBy:"updatedAt",sortDirection:"desc"},d={likes:"slider",outlier:"slider",subscribers:"slider"},h={minSubscribers:"",minVideos:"",minAvgViews:"",durationBucket:"any",sortBy:"videos",sortDirection:"desc"},u={minViews:"",minOutlierScore:"",durationBucket:"any",publishedRange:"any",detailsMode:"any",sortBy:"published",sortDirection:"desc"},x={subscribers:1e7,videos:5e3,avgViews:1e7,views:1e7,outlier:50},m=[{label:"HD",value:"HD"},{label:"Subtitles",value:"subtitles"},{label:"Creative Commons",value:"CCommons"},{label:"4K",value:"4K"},{label:"Live",value:"Live"},{label:"HDR",value:"HDR"},{label:"360",value:"360"},{label:"VR180",value:"VR180"}],b=[{label:"United States (US)",value:"US"},{label:"United Kingdom (GB)",value:"GB"},{label:"Canada (CA)",value:"CA"},{label:"India (IN)",value:"IN"},{label:"Australia (AU)",value:"AU"},{label:"Germany (DE)",value:"DE"},{label:"France (FR)",value:"FR"},{label:"Japan (JP)",value:"JP"}],g=[{label:"English (en)",value:"en"},{label:"British English (gb)",value:"gb"},{label:"Hindi (hi)",value:"hi"},{label:"Spanish (es)",value:"es"},{label:"French (fr)",value:"fr"},{label:"German (de)",value:"de"},{label:"Portuguese (pt)",value:"pt"},{label:"Japanese (ja)",value:"ja"}],f="h-10 rounded-lg border-white/10 bg-black/30 text-sm text-white ring-offset-zinc-950 focus:ring-1 focus:ring-[var(--brand-accent)] focus:ring-offset-0",v="border-white/10 bg-zinc-950 text-white",p="grid gap-5 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5";var w=a(67294),j=a(98814),N=a(17479),y=a(87764),S=a(41352),k=a(46795);let C=e=>"h-11 rounded-full border px-4 text-sm font-semibold transition ".concat(e?"border-[var(--brand-accent)]/40 bg-[var(--brand-accent)]/15 text-white":"border-white/10 bg-white/5 text-zinc-300 hover:border-[var(--brand-accent)]/40 hover:text-white"),z=e=>"flex h-11 shrink-0 items-center gap-2 rounded-full border px-4 text-sm font-medium transition ".concat(e?"border-[var(--brand-accent)]/40 bg-[var(--brand-accent)]/10 text-white":"border-white/10 bg-white/5 text-zinc-200 hover:border-[var(--brand-accent)]/40 hover:bg-[var(--brand-accent)]/10 hover:text-white");var T=e=>{let{activeView:t,isSavedView:a,selectedFolder:s,showFilters:r,showSavedTagFilters:l,activeSearchValue:i,activeSearchPlaceholder:c,searchSuggestions:o,showSearchSuggestions:d,isLoadingSearchSuggestions:h,activeSearchSuggestionIndex:u,onSubmit:x,onSearchChange:m,onSearchInputKeyDown:b,onOpenSearchSuggestions:g,onCloseSearchSuggestions:f,onSelectSearchSuggestion:v,onClearSearch:p,onOpenSearchView:T,onOpenSavedView:_,onOpenTrackingView:I,onToggleSearchFilters:P,onToggleSavedFilters:R,onBackToFolders:Z}=e,V=a&&!!(null==s?void 0:s.id),F=(0,w.useRef)(null);return(0,w.useEffect)(()=>{let e=e=>{F.current&&!F.current.contains(e.target)&&(null==f||f())};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[f]),(0,n.jsxs)(n.Fragment,{children:[V&&(0,n.jsxs)("div",{className:"mb-3 flex items-center gap-3",children:[(0,n.jsx)("button",{type:"button",onClick:Z,className:"inline-flex h-9 w-9 items-center justify-center rounded-full border border-white/10 bg-white/5 text-zinc-300 transition hover:border-[var(--brand-accent)]/40 hover:bg-[var(--brand-accent)]/10 hover:text-white","aria-label":"Back to saved folders",children:(0,n.jsx)(j.Z,{className:"h-4 w-4"})}),(0,n.jsxs)("div",{className:"min-w-0",children:[(0,n.jsxs)("div",{className:"flex min-w-0 items-center gap-2 text-white",children:[(0,n.jsx)(N.Z,{className:"h-4 w-4 shrink-0 text-[var(--brand-accent)]"}),(0,n.jsx)("p",{className:"truncate text-sm font-semibold",children:(null==s?void 0:s.name)||"Selected folder"})]}),(0,n.jsx)("p",{className:"mt-0.5 text-xs text-zinc-500",children:"Saved videos"})]})]}),(0,n.jsxs)("form",{onSubmit:x,className:"flex w-full flex-col gap-2 rounded-2xl border border-white/10 bg-zinc-950/70 p-2 shadow-xl shadow-black/20 sm:flex-row sm:items-center sm:rounded-full",children:[!V&&(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("button",{type:"button",onClick:I,className:C("tracking"===t),children:"Tracking"}),(0,n.jsx)("button",{type:"button",onClick:T,className:C("search"===t),
1children:"Search"}),(0,n.jsx)("button",{type:"button",onClick:_,className:C("saved"===t),children:"Saved"})]}),(0,n.jsxs)("div",{className:"relative flex-1",ref:F,children:[(0,n.jsx)(y.Z,{className:"pointer-events-none absolute left-4 top-1/2 h-4 w-4 -translate-y-1/2 text-zinc-500"}),(0,n.jsx)("input",{type:"text",autoComplete:"off",placeholder:c,value:i,onChange:e=>m(e.target.value),onFocus:()=>null==g?void 0:g(),onKeyDown:e=>null==b?void 0:b(e),className:"h-11 w-full rounded-full bg-transparent pl-11 pr-10 text-sm text-white outline-none placeholder:text-zinc-500"}),i&&(0,n.jsx)("button",{type:"button",onClick:p,className:"absolute right-2 top-1/2 flex h-7 w-7 -translate-y-1/2 items-center justify-center rounded-full text-zinc-500 transition hover:bg-white/10 hover:text-white","aria-label":"Clear search",children:(0,n.jsx)(S.Z,{className:"h-4 w-4"})}),"search"===t&&d&&i.trim().length>=2&&(0,n.jsx)("div",{className:"absolute left-0 right-0 top-full z-20 mt-2 overflow-hidden rounded-2xl border border-white/10 bg-zinc-950/95 shadow-xl shadow-black/40",children:h?(0,n.jsx)("div",{className:"px-3 py-2 text-sm text-zinc-400",children:"Loading suggestions..."}):o.length>0?(0,n.jsx)("ul",{className:"max-h-64 overflow-y-auto py-1",children:o.map((e,t)=>(0,n.jsx)("li",{children:(0,n.jsx)("button",{type:"button",className:"w-full px-3 py-2 text-left text-sm transition-colors ".concat(t===u?"bg-white/10 text-white":"text-zinc-300 hover:bg-white/10 hover:text-white"),onClick:()=>null==v?void 0:v(e),children:e})},"".concat(e,"-").concat(t)))}):(0,n.jsx)("div",{className:"px-3 py-2 text-sm text-zinc-500",children:"No suggestions found."})})]}),"search"===t&&(0,n.jsxs)("button",{type:"button",onClick:P,className:z(r),children:[(0,n.jsx)(k.Z,{className:"h-4 w-4"}),"Filters"]}),a&&(null==s?void 0:s.id)&&(0,n.jsxs)("button",{type:"button",onClick:R,className:z(l),children:[(0,n.jsx)(k.Z,{className:"h-4 w-4"}),"Filters"]})]})]})},_=a(83855),I=a(83283),P=a(59275),R=a(31012),Z=a(23217),V=a(71646),F=a(20816),D=a(23279),U=a.n(D),E=a(86501);let M=async e=>{let t=new URLSearchParams({page:"1",limit:"50"}),a=await fetch("/api/tools-api/video-research/v2/".concat(e,"?").concat(t.toString())),n=await a.json();if(!a.ok)throw Error(n.message||"Unable to load options.");return n},B=e=>{let{items:t,selectedIds:a,onToggle:s,emptyText:r}=e;return(0,n.jsx)("div",{className:"min-h-0 flex-1 space-y-1 overflow-y-auto rounded-lg border border-white/10 bg-black/20 p-1",children:t.length?t.map(e=>{let t=a.has(e.id);return(0,n.jsxs)("button",{type:"button",onClick:()=>s(e.id),className:"flex h-9 w-full items-center justify-between rounded-md px-3 text-left text-xs font-semibold transition ".concat(t?"bg-[var(--brand-accent)]/15 text-[var(--brand-accent)]":"text-zinc-300 hover:bg-white/5 hover:text-white"),children:[(0,n.jsx)("span",{className:"truncate",children:e.name}),t&&(0,n.jsx)("span",{className:"text-[var(--brand-accent)]",children:"Selected"})]},e.id)}):(0,n.jsx)("div",{className:"px-3 py-3 text-xs text-zinc-500",children:r})})};var A=e=>{let{open:t,video:a,onOpenChange:s,onSaved:r,onFolderCreated:l}=e,[i,c]=(0,w.useState)(""),[o,d]=(0,w.useState)([]),[h,u]=(0,w.useState)([]),[x,m]=(0,w.useState)(""),[b,g]=(0,w.useState)(""),[f,v]=(0,w.useState)(""),[p,j]=(0,w.useState)(""),[y,S]=(0,w.useState)(new Set),[k,C]=(0,w.useState)(new Set),[z,T]=(0,w.useState)(""),[D,A]=(0,w.useState)(""),[L,O]=(0,w.useState)(!1),[Q,q]=(0,w.useState)(!1),[G,K]=(0,w.useState)(!1),[J,H]=(0,w.useState)(!1),[$,W]=(0,w.useState)(!1),[Y,X]=(0,w.useState)(!1),[ee,et]=(0,w.useState)(!1),[ea,en]=(0,w.useState)(!1),es=(null==a?void 0:a.videoId)||(null==a?void 0:a.id),er=(0,w.useMemo)(()=>U()(e=>v(e.trim().toLowerCase()),250),[]),el=(0,w.useMemo)(()=>U()(e=>j(e.trim().toLowerCase()),250),[]);(0,w.useEffect)(()=>{if(!t)return;let e=((null==a?void 0:a.folders)||[]).map(e=>{var t;return null==e?void 0:null===(t=e.folder)||void 0===t?void 0:t.id}).filter(Boolean),n=((null==a?void 0:a.tags)||[]).map(e=>{var t;return null==e?void 0:null===(t=e.tag)||void 0===t?void 0:t.id}).filter(Boolean);c((null==a?void 0:a.note)||""),m(""),g(""),S(new Set(e)),C(new Set(n)),T(""),A(""),O(!1),q(!1),H(!!(null==a?void 0:a.note))},[t,a,es]),(0,w.useEffect)(()=>
1{if(!t||G)return;let e=async()=>{W(!0);try{let[e,t]=await Promise.all([M("folders"),M("tags")]);d(e.folders||[]),u(t.tags||[]),K(!0)}catch(e){E.ZP.error(e.message||"Unable to load save options.")}finally{W(!1)}};e()},[t,G]),(0,w.useEffect)(()=>(er(x),()=>er.cancel()),[x,er]),(0,w.useEffect)(()=>(el(b),()=>el.cancel()),[b,el]);let ei=f?o.filter(e=>e.name.toLowerCase().includes(f)):o,ec=p?h.filter(e=>e.name.toLowerCase().includes(p)):h,eo=(0,w.useCallback)(e=>{S(t=>{let a=new Set(t);return a.has(e)?a.delete(e):a.add(e),a})},[]),ed=(0,w.useCallback)(e=>{C(t=>{let a=new Set(t);return a.has(e)?a.delete(e):a.add(e),a})},[]),eh=async()=>{if(!z.trim()){E.ZP.error("Enter a folder name.");return}X(!0);try{let e=await fetch("/api/tools-api/video-research/v2/folders",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:z.trim(),videoId:es,channelId:(null==a?void 0:a.channelId)||null})}),t=await e.json();if(!e.ok)throw Error(t.message||"Unable to create folder.");d(e=>[t.folder,...e.filter(e=>e.id!==t.folder.id)]),S(e=>{let a=new Set(e);return a.add(t.folder.id),a}),null==l||l(t.folder),T(""),O(!1),E.ZP.success("Folder created.")}catch(e){E.ZP.error(e.message||"Unable to create folder.")}finally{X(!1)}},eu=async()=>{if(!D.trim()){E.ZP.error("Enter a tag name.");return}et(!0);try{let e=await fetch("/api/tools-api/video-research/v2/tags",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:D.trim()})}),t=await e.json();if(!e.ok)throw Error(t.message||"Unable to create tag.");u(e=>[t.tag,...e.filter(e=>e.id!==t.tag.id)]),C(e=>{let a=new Set(e);return a.add(t.tag.id),a}),A(""),q(!1),E.ZP.success("Tag created.")}catch(e){E.ZP.error(e.message||"Unable to create tag.")}finally{et(!1)}},ex=async()=>{if(!es){E.ZP.error("Video unavailable.");return}en(!0);try{let e=await fetch("/api/tools-api/video-research/v2/saved-videos",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({videoId:es,channelId:(null==a?void 0:a.channelId)||null,note:J&&i.trim()||null,folderIds:Array.from(y),tagIds:Array.from(k)})}),t=await e.json();if(!e.ok)throw Error(t.message||"Unable to save video.");null==r||r(t.savedVideo),s(!1),E.ZP.success("Video saved.")}catch(e){E.ZP.error(e.message||"Unable to save video.")}finally{en(!1)}};return(0,n.jsx)(_.Vq,{open:t,onOpenChange:s,children:(0,n.jsxs)(_.cZ,{className:"max-h-[90vh] overflow-y-auto border-white/10 bg-zinc-950 text-white sm:max-w-2xl",children:[(0,n.jsx)(_.fK,{children:(0,n.jsx)(_.$N,{className:"pr-8 text-white",children:"Save video"})}),(0,n.jsxs)("div",{className:"space-y-5",children:[(0,n.jsxs)("div",{className:"rounded-lg border border-white/10 bg-white/[0.03] p-3",children:[(0,n.jsx)("p",{className:"line-clamp-2 text-sm font-semibold text-white",children:(null==a?void 0:a.title)||"Untitled video"}),(0,n.jsx)("p",{className:"mt-1 text-xs text-zinc-400",children:(null==a?void 0:a.channelHandle)||(null==a?void 0:a.channelTitle)||"Unknown channel"})]}),(0,n.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[(0,n.jsxs)("div",{className:"flex h-[360px] min-h-0 flex-col space-y-3 rounded-lg border border-white/10 bg-white/[0.03] p-3",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between gap-2 text-sm font-semibold text-white",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)(N.Z,{className:"h-4 w-4 text-[var(--brand-accent)]"}),"Folders"]}),(0,n.jsx)("button",{type:"button",onClick:()=>O(e=>!e),className:"flex h-7 w-7 items-center justify-center rounded-full border border-white/10 bg-white/5 text-zinc-200 transition hover:border-[var(--brand-accent)]/40 hover:bg-[var(--brand-accent)]/10 hover:text-white","aria-label":"Toggle create folder",children:(0,n.jsx)(R.Z,{className:"h-3.5 w-3.5 transition ".concat(L?"rotate-45":"")})})]}),(0,n.jsx)(I.I,{value:x,onChange:e=>m(e.target.value),placeholder:"Search folders",className:"border-white/10 bg-black/30 text-white placeholder:text-zinc-500 focus-visible:ring-[var(--brand-accent)]"}),(0,n.jsx)(B,{items:ei,selectedIds:y,onToggle:eo,emptyText:"No folders found"}),L&&(0,n.jsxs)("div",{className:"space-y-2 border-t border-white/10 pt-3",children:[(0,n.jsx)(I.I,{value:z,onChange:e=>T(e.target.value),placeholder:"New folder",className:"border-white/10 bg-black/30 text-white placeholder:text-zinc-500 focus-visible:ring-[var(--brand-accent)]"}),(0,n.jsxs)("button",{type:"button",onClick:eh,disabled:Y,className:"flex h-9 w-full items-center justify-center gap-2 rounded-lg border border-white/10 bg-white/5 text-xs font-semibold text-white transition hover:border-[var(--brand-accent)]/40 hover:bg-[var(--brand-accent)]/10 disabled:cursor-not-allowed disabled:opacity-60",children:[Y?(0,n.jsx)(Z.Z,{className:"h-3.5 w-3.5 animate-spin"}):(0,n.jsx)(R.Z,{className:"h-3.5 w-3.5"}),"Create folder"]})]})]}
1),(0,n.jsxs)("div",{className:"flex h-[360px] min-h-0 flex-col space-y-3 rounded-lg border border-white/10 bg-white/[0.03] p-3",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between gap-2 text-sm font-semibold text-white",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)(V.Z,{className:"h-4 w-4 text-[var(--brand-accent)]"}),"Tags"]}),(0,n.jsx)("button",{type:"button",onClick:()=>q(e=>!e),className:"flex h-7 w-7 items-center justify-center rounded-full border border-white/10 bg-white/5 text-zinc-200 transition hover:border-[var(--brand-accent)]/40 hover:bg-[var(--brand-accent)]/10 hover:text-white","aria-label":"Toggle create tag",children:(0,n.jsx)(R.Z,{className:"h-3.5 w-3.5 transition ".concat(Q?"rotate-45":"")})})]}),(0,n.jsx)(I.I,{value:b,onChange:e=>g(e.target.value),placeholder:"Search tags",className:"border-white/10 bg-black/30 text-white placeholder:text-zinc-500 focus-visible:ring-[var(--brand-accent)]"}),(0,n.jsx)(B,{items:ec,selectedIds:k,onToggle:ed,emptyText:"No tags found"}),Q&&(0,n.jsxs)("div",{className:"space-y-2 border-t border-white/10 pt-3",children:[(0,n.jsx)(I.I,{value:D,onChange:e=>A(e.target.value),placeholder:"New tag",className:"border-white/10 bg-black/30 text-white placeholder:text-zinc-500 focus-visible:ring-[var(--brand-accent)]"}),(0,n.jsxs)("button",{type:"button",onClick:eu,disabled:ee,className:"flex h-9 w-full items-center justify-center gap-2 rounded-lg border border-white/10 bg-white/5 text-xs font-semibold text-white transition hover:border-[var(--brand-accent)]/40 hover:bg-[var(--brand-accent)]/10 disabled:cursor-not-allowed disabled:opacity-60",children:[ee?(0,n.jsx)(Z.Z,{className:"h-3.5 w-3.5 animate-spin"}):(0,n.jsx)(R.Z,{className:"h-3.5 w-3.5"}),"Create tag"]})]})]})]}),$&&(0,n.jsxs)("div",{className:"flex items-center gap-2 text-xs text-zinc-400",children:[(0,n.jsx)(Z.Z,{className:"h-3.5 w-3.5 animate-spin"}),"Loading folders and tags"]}),(0,n.jsxs)("div",{className:"space-y-3",children:[(0,n.jsxs)("button",{type:"button",onClick:()=>H(e=>!e),className:"flex w-full items-center gap-3 text-xs font-semibold text-zinc-400 transition hover:text-white",children:[(0,n.jsx)("span",{className:"h-px flex-1 bg-white/10"}),(0,n.jsx)("span",{children:J?"Remove note":"Add a note"}),(0,n.jsx)("span",{className:"h-px flex-1 bg-white/10"})]}),J&&(0,n.jsx)(P.g,{value:i,onChange:e=>c(e.target.value),placeholder:"Add context for later",className:"min-h-[94px] border-white/10 bg-black/30 text-white placeholder:text-zinc-500 focus-visible:ring-[var(--brand-accent)]"})]})]}),(0,n.jsxs)(_.cN,{children:[(0,n.jsx)("button",{type:"button",onClick:()=>s(!1),className:"h-10 rounded-lg border border-white/10 px-4 text-sm font-semibold text-zinc-300 transition hover:bg-white/5 hover:text-white",children:"Cancel"}),(0,n.jsxs)("button",{type:"button",onClick:ex,disabled:ea,className:"flex h-10 items-center justify-center gap-2 rounded-lg bg-[var(--brand-accent)] px-4 text-sm font-semibold text-white transition hover:bg-[var(--brand-accent)] disabled:cursor-not-allowed disabled:opacity-60",children:[ea?(0,n.jsx)(Z.Z,{className:"h-4 w-4 animate-spin"}):(0,n.jsx)(F.Z,{className:"h-4 w-4"}),"Save"]})]})]})})},L=a(99723),O=a(13586),Q=a(51144);let q=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=Number(e);return Number.isFinite(a)?a:t},G=(e,t,a)=>Math.min(a,Math.max(t,e)),K=e=>{let{query:t,filters:a,paginationToken:n}=e,s=new URLSearchParams;return s.set("query",t.trim()),s.set("type",a.type),s.set("geo",a.geo),s.set("lang",a.lang),a.duration&&s.set("duration",a.duration),a.upload_date&&s.set("upload_date",a.upload_date),a.features.length&&s.set("features",a.features.join(",")),a.local&&s.set("local","1"),a.sort_by&&"shorts"!==a.type&&s.set("sort_by",a.sort_by),n&&s.set("token",n),s},J=e=>{let{page:t,searchValue:a}=e,n=new URLSearchParams({page:String(t),limit:"10"});return a&&n.set("search",a),n},H=e=>{let{page:t,searchValue:a,folderId:n,tagIds:s,advancedFilterKey:r}=e,l=new URLSearchParams({page:String(t),limit:"10"});if(a&&l.set("search",a),n&&l.set("folderId",n),s&&l.set("tagIds",s),r&&"__no_advanced_filters__"!==r){let e=new URLSearchParams(r);e.forEach((e,t)=>l.set(t,e))}return l},$=e=>{let{page:t,searchValue:a}=e,n=new URLSearchParams({page:String(t),limit:"10"});return a&&n.set("search",a),n},W=e=>[...e].sort((e,t)=>
1{let a=Number(!!(null==t?void 0:t.isPinned))-Number(!!(null==e?void 0:e.isPinned));if(0!==a)return a;let n=new Date((null==e?void 0:e.updatedAt)||0).getTime()||0,s=new Date((null==t?void 0:t.updatedAt)||0).getTime()||0;return s-n}),Y=(e,t)=>{let a=Number((null==e?void 0:e.total)||0),n=Math.max(a+t,0),s=Math.ceil(n/10),r=Number((null==e?void 0:e.page)||0);return{...e,total:n,totalPages:s,page:0===n?0:Math.min(Math.max(r||1,1),Math.max(s,1))}},X="/tools/video-research/v2",ee=e=>Array.isArray(e)?e[0]:e,et=function(e,t){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",n=ee(null==e?void 0:e[t]);return"string"==typeof n?n:a},ea=function(e,t){let a=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=et(e,t);return n?["1","true","yes","on"].includes(n.toLowerCase()):a},en=(e,t)=>{let a=ee(null==e?void 0:e[t]);return a&&"string"==typeof a?a.split(",").map(e=>e.trim()).filter(Boolean):[]},es=(e,t,a)=>{null!=a&&""!==a&&e.set(t,String(a))},er=e=>{let t=null==e?void 0:e.slug;return Array.isArray(t)?t:"string"==typeof t&&t?[t]:[]},el=(e,t)=>{let a=t[0];if("tracking"===a)return"tracking";if("saved"===a||"folders"===a)return"saved";if("search"===a)return"search";let n=et(e,"view");return["search","saved","tracking"].includes(n)?n:"tracking"},ei=(e,t)=>"saved"===t[0]&&"folders"===t[1]&&t[2]?t[2]:"folders"===t[0]&&t[1]?t[1]:et(e,"folderId"),ec=e=>{let t=et(e,"tagIds");return t?"__none__"===t?[]:en(e,"tagIds"):null},eo=e=>{let t=er(e),a=el(e,t),n=ei(e,t);return{activeView:a,query:et(e,"q"),hasSearched:ea(e,"searched"),filters:{type:et(e,"type","video"),sort_by:et(e,"sort_by","relevance"),upload_date:et(e,"upload_date"),duration:et(e,"duration"),geo:et(e,"geo","US"),lang:et(e,"lang","en"),local:ea(e,"local"),features:en(e,"features")},showFilters:ea(e,"filters"),selectedFolder:n?{id:n,name:et(e,"folderName")||"Selected folder"}:null,savedFolderSearch:et(e,"folderSearch"),savedVideoSearch:et(e,"videoSearch"),savedVideoFilters:{minLikes:et(e,"minLikes"),minOutlierScore:et(e,"minOutlierScore"),minSubscribers:et(e,"minSubscribers"),durationBucket:et(e,"durationBucket","any"),publishedRange:et(e,"publishedRange","any"),sortBy:et(e,"sortBy","updatedAt"),sortDirection:et(e,"sortDirection","desc")},savedMetricFilterModes:{likes:et(e,"likesMode","slider"),outlier:et(e,"outlierMode","slider"),subscribers:et(e,"subscribersMode","slider")},showSavedTagFilters:ea(e,"savedFilters"),selectedSavedTagIds:ec(e),trackingSearch:et(e,"trackingSearch")}},ed=e=>{var t;let{activeView:a,query:n,hasSearched:s,filters:r,showFilters:l,selectedFolder:i,savedFolderSearchInput:c,savedVideoSearchInput:o,savedVideoFilters:d,savedMetricFilterModes:h,showSavedTagFilters:u,savedTagFilters:x,selectedSavedTagIdList:m,pendingSavedTagIds:b,trackingSearchInput:g}=e,f="tracking"===a?"".concat(X,"/tracking"):"saved"===a?(null==i?void 0:i.id)?"".concat(X,"/saved/folders/").concat(encodeURIComponent(i.id)):"".concat(X,"/saved"):"".concat(X,"/search"),v=new URLSearchParams;"search"===a&&(es(v,"q",null==n?void 0:n.trim()),(null==n?void 0:n.trim())&&s&&es(v,"searched","1"),"video"!==r.type&&es(v,"type",r.type),"relevance"!==r.sort_by&&es(v,"sort_by",r.sort_by),es(v,"upload_date",r.upload_date),es(v,"duration",r.duration),"US"!==r.geo&&es(v,"geo",r.geo),"en"!==r.lang&&es(v,"lang",r.lang),r.local&&es(v,"local","1"),(null===(t=r.features)||void 0===t?void 0:t.length)&&es(v,"features",r.features.join(",")),l&&es(v,"filters","1")),"saved"===a&&((null==i?void 0:i.id)?(i.name&&"Selected folder"!==i.name&&es(v,"folderName",i.name),es(v,"videoSearch",null==o?void 0:o.trim()),es(v,"minLikes",d.minLikes),es(v,"minOutlierScore",d.minOutlierScore),es(v,"minSubscribers",d.minSubscribers),"any"!==d.durationBucket&&es(v,"durationBucket",d.durationBucket),"any"!==d.publishedRange&&es(v,"publishedRange",d.publishedRange),"updatedAt"!==d.sortBy&&es(v,"sortBy",d.sortBy),"desc"!==d.sortDirection&&es(v,"sortDirection",d.sortDirection),"slider"!==h.likes&&es(v,"likesMode",h.likes),"slider"!==h.outlier&&es(v,"outlierMode",h.outlier),"slider"!==h.subscribers&&es(v,"subscribersMode",h.subscribers),u&&es(v,"savedFilters","1"),Array.isArray(b)?es(v,"tagIds",b.length?b.join(","):"__none__"):x.length>0&&(0===m.length?es(v,"tagIds","__none__"):m.length!==x.length&&es(v,"tagIds",m.join(",")))):es(v,"folderSearch",null==c?void 0:c.trim())),"tracking"===a&&es(v,"trackingSearch",null==g?void 0:g.trim());let p=v.toString();return p?"".concat(f,"?").concat(p):f},eh=e=>String(Math.round(e)),eu=e=>Intl.NumberFormat("en").format(Math.round(e)),ex=e=>{let{label:t,mode:a,onModeChange:s,max:r,step:l,value:i,onChange:c,placeholder:o,formatValue:d=eh,formatDisplayValue:h=eu}=e,u=G(q(i),0,r),[x,m]=(0,w.useState)(u),b=(0,w.useMemo)(()=>U()(e=>c(d(e)),250),[d,c]);(0,w.useEffect)(()=>{m(u)},[u]),(0,w.useEffect)(()=>()=>b.cancel(),[b]);let g=e=>{m(e),b(e)};return(0,n.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,n.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,n.jsx)(L._,{className:"truncate text-xs text-zinc-400",children:t}),(0,n.jsx)("span",{className:"shrink-0 rounded-full border border-white/10 bg-white/5 px-2 py-0.5 text-[10px] font-semibold text-zinc-200",children:h(x)})]}),(0,n.jsxs)("div",{className:"inline-flex rounded-full border border-white/10 bg-black/30 p-0.5",children:[(0,n.jsx)("button",{type:"button",onClick:()=>s("slider"),className:"rounded-full px-2 py-0.5 text-[10px] font-medium transition ".concat("slider"===a?"bg-[var(--brand-accent)]/20 text-[var(--brand-accent)]":"text-zinc-400 hover:text-white"),children:"Slider"}),(0,n.jsx)("button",{type:"button",onClick:()=>s("input"),className:"rounded-full px-2 py-0.5 text-[10px] font-medium transition ".concat("input"===a?"bg-[var(--brand-accent)]/20 text-[var(--brand-accent)]":"text-zinc-400 hover:text-white"),children:"Input"})]})]}),"slider"===a?(0,n.jsx)(Q.i,{min:0,max:r,step:l,value:[x],onValueChange:e=>{let[t]=e;return g(t)},onValueCommit:()=>b.flush(),className:"py-1"}):(0,n.jsx)(I.I,{type:"number",min:"0",step:l<1?String(l):void 0,value:i,onChange:e=>c(e.target.value),placeholder:o,className:"border-white/10 bg-black/30 text-white placeholder:text-zinc-500 focus-visible:ring-[var(--brand-accent)]"})]})};var em=e=>{let{savedVideoFilters:t,setSavedVideoFilters:a,savedMetricFilterModes:s,setSavedMetricFilterModes:r,savedTagFilters:l,selectedSavedTagFilterIds:i,setSelectedSavedTagFilterIds:c,isLoadingSavedTagFilters:o,onClear:d}=e;return(0,n.jsxs)("div",{className:"mt-3 rounded-2xl border border-white/10 bg-zinc-950/70 p-4 shadow-xl shadow-black/20",children:[(0,n.jsxs)("div",{className:"mb-3 flex items-center justify-between gap-3",children:[(0,n.jsx)("p",{className:"text-sm font-medium text-white",children:"Saved Video Filters"}),(0,n.jsx)("button",{type:"button",onClick:d,className:"rounded-full border border-white/10 bg-white/5 px-3 py-1.5 text-xs font-medium text-zinc-300 transition hover:border-[var(--brand-accent)]/40 hover:bg-[var(--brand-accent)]/10 hover:text-white",children:"Clear all"})]}),(0,n.jsxs)("div",{className:"grid gap-3 md:grid-cols-3",children:[(0,n.jsx)(ex,{label:"Min likes",mode:s.likes,onModeChange:e=>r(t=>({...t,likes:e})),max:1e6,step:1e3,value:t.minLikes,onChange:e=>a(t=>({...t,minLikes:e})),placeholder:"Custom min likes"}),(0,n.jsx)(ex,{label:"Min outlier score",mode:s.outlier,onModeChange:e=>r(t=>({...t,outlier:e})),max:50,step:.1,value:t.minOutlierScore,onChange:e=>a(t=>({...t,minOutlierScore:e})),placeholder:"Custom min outlier",formatValue:e=>String(Number(e).toFixed(1)),formatDisplayValue:e=>Number(e).toFixed(1)}),(0,n.jsx)(ex,{label:"Min subscribers",mode:s.subscribers,onModeChange:e=>r(t=>({...t,subscribers:e})),max:1e7,step:1e3,value:t.minSubscribers,onChange:e=>a(t=>({...t,minSubscribers:e})),placeholder:"Custom min subscribers"}),(0,n.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,n.jsx)(L._,{className:"text-xs text-zinc-400",children:"Video duration"}),(0,n.jsxs)(O.Ph,{value:t.durationBucket,onValueChange:e=>a(t=>({...t,durationBucket:e})),children:[(0,n.jsx)(O.i4,{className:f,children:(0,n.jsx)(O.ki,{})}),(0,n.jsxs)(O.Bw,{className:v,children:[(0,n.jsx)(O.Ql,{value:"any",children:"Any duration"}),(0,n.jsx)(O.Ql,{value:"short",children:"Short (< 4 min)"}),(0,n.jsx)(O.Ql,{value:"medium",children:"Medium (4-20 min)"}),(0,n.jsx)(O.Ql,{value:"long",children:"Long (> 20 min)"})]})]})]}),(0,n.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,n.jsx)(L._,{className:"text-xs text-zinc-400",children:"Time range"}),(0,n.jsxs)(O.Ph,{value:t.publishedRange,onValueChange:e=>a(t=>({...t,publishedRange:e})),children:[(0,n.jsx)(O.i4,{className:f,children:(0,n.jsx)(O.ki,{})}),(0,n.jsxs)(O.Bw,{className:v,children:[(0,n.jsx)(O.Ql,{value:"any",children:"Any time"}),(0,n.jsx)(O.Ql,{value:"hour",children:"Last hour"}),(0,n.jsx)(O.Ql,{value:"today",children:"Today"}),(0,n.jsx)(O.Ql,{value:"week",children:"This week"}),(0,n.jsx)(O.Ql,{value:"month",children:"This month"}),(0,n.jsx)(O.Ql,{value:"year",children:"This year"})]})]})]}),(0,n.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,n.jsx)(L._,{className:"text-xs text-zinc-400",children:"Sort"}),(0,n.jsxs)(O.Ph,{value:t.sortBy,onValueChange:e=>a(t=>({...t,sortBy:e})),children:[(0,n.jsx)(O.i4,{className:f,children:(0,n.jsx)(O.ki,{})}),(0,n.jsxs)(O.Bw,{className:v,children:[(0,n.jsx)(O.Ql,{value:"updatedAt",children:"Recently updated"}),(0,n.jsx)(O.Ql,{value:"likes",children:"Likes"}),(0,n.jsx)(O.Ql,{value:"outlier",children:"Outlier score"}),(0,n.jsx)(O.Ql,{value:"subscribers",children:"Subscribers"}),(0,n.jsx)(O.Ql,{value:"duration",children:"Duration"}),(0,n.jsx)(O.Ql,{value:"views",children:"Views"}),(0,n.jsx)(O.Ql,{value:"published",children:"Published date"})]})]})]}),(0,n.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,n.jsx)(L._,{className:"text-xs text-zinc-400",children:"Sort direction"}),(0,n.jsxs)(O.Ph,{value:t.sortDirection,onValueChange:e=>a(t=>({...t,sortDirection:e})),children:[(0,n.jsx)(O.i4,{className:f,children:(0,n.jsx)(O.ki,{})}),(0,n.jsxs)(O.Bw,{className:v,children:[(0,n.jsx)(O.Ql,{value:"desc",children:"Descending"}),(0,n.jsx)(O.Ql,{value:"asc",children:"Ascending"})]})]})]})]}),(0,n.jsxs)("div",{className:"mt-4 mb-3 flex items-center justify-between gap-3",children:[(0,n.jsx)("p",{className:"text-sm font-medium text-white",children:"Tag filters"}),(0,n.jsx)("button",{type:"button",onClick:()=>c(new Set(l.map(e=>e.id))),className:"rounded-full border border-white/10 bg-white/5 px-3 py-1.5 text-xs font-medium text-zinc-300 transition hover:border-[var(--brand-accent)]/40 hover:bg-[var(--brand-accent)]/10 hover:text-white",children:"Select all tags"})]}),o&&(0,n.jsxs)("div",{className:"flex items-center gap-2 text-xs text-zinc-400",children:[(0,n.jsx)(Z.Z,{className:"h-3.5 w-3.5 animate-spin"}),"Loading tags"]}),!o&&0===l.length&&(0,n.jsx)("p",{className:"text-xs text-zinc-500",children:"No tags found."}),!o&&l.length>0&&(0,n.jsx)("div",{className:"flex flex-wrap gap-2",children:l.map(e=>{let t=i.has(e.id);return(0,n.jsx)("button",{type:"button",onClick:()=>{c(t=>{let a=new Set(t);return a.has(e.id)?a.delete(e.id):a.add(e.id),a})},className:"rounded-full border px-3 py-1.5 text-xs font-medium transition ".concat(t?"border-[var(--brand-accent)]/50 bg-[var(--brand-accent)]/15 text-[var(--brand-accent)]":"border-white/10 bg-white/5 text-zinc-400 hover:text-white"),children:e.name},e.id)})})]})},eb=a(42989),eg=e=>{let{filters:t,updateFilter:a,toggleFeature:s,onClear:r}=e;return(0,n.jsxs)("div",{className:"mt-3 rounded-2xl border border-white/10 bg-zinc-950/70 p-4 shadow-xl shadow-black/20",children:[(0,n.jsxs)("div",{className:"mb-4 flex items-center justify-between gap-3",children:[(0,n.jsx)("p",{className:"text-sm font-medium text-white",children:"Filters"}),(0,n.jsx)("button",{type:"button",onClick:r,className:"rounded-full border border-white/10 bg-white/5 px-3 py-1.5 text-xs font-medium text-zinc-300 transition hover:border-[var(--brand-accent)]/40 hover:bg-[var(--brand-accent)]/10 hover:text-white",children:"Clear filters"})]}),(0,n.jsxs)("div",{className:"grid gap-3 md:grid-cols-3",children:[(0,n.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,n.jsx)(L._,{className:"text-xs text-zinc-400",children:"Type"}),(0,n.jsxs)(O.Ph,{value:t.type,onValueChange:e=>a("type",e),children:[(0,n.jsx)(O.i4,{className:f,children:(0,n.jsx)(O.ki,{})}),(0,n.jsxs)(O.Bw,{className:v,children:[(0,n.jsx)(O.Ql,{value:"video",children:"Videos"}),(0,n.jsx)(O.Ql,{value:"shorts",children:"Shorts"})]})]})]}),(0,n.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,n.jsx)(L._,{className:"text-xs text-zinc-400",children:"Sort"}),(0,n.jsxs)(O.Ph,{value:t.sort_by,onValueChange:e=>a("sort_by",e),disabled:"shorts"===t.type,children:[(0,n.jsx)(O.i4,{className:f,children:(0,n.jsx)(O.ki,{})}),(0,n.jsxs)(O.Bw,{className:v,children:[(0,n.jsx)(O.Ql,{value:"relevance",children:"Relevance"}),(0,n.jsx)(O.Ql,{value:"views",children:"Views"}),(0,n.jsx)(O.Ql,{value:"date",children:"Upload date"}),(0,n.jsx)(O.Ql,{value:"rating",children:"Rating"})]})]})]}),(0,n.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,n.jsx)(L._,{className:"text-xs text-zinc-400",children:"Upload date"}),(0,n.jsxs)(O.Ph,{value:t.upload_date||"any",onValueChange:e=>a("upload_date","any"===e?"":e),children:[(0,n.jsx)(O.i4,{className:f,children:(0,n.jsx)(O.ki,{})}),(0,n.jsxs)(O.Bw,{className:v,children:[(0,n.jsx)(O.Ql,{value:"any",children:"Any time"}),(0,n.jsx)(O.Ql,{value:"hour",children:"Last hour"}),(0,n.jsx)(O.Ql,{value:"today",children:"Today"}),(0,n.jsx)(O.Ql,{value:"week",children:"This week"}),(0,n.jsx)(O.Ql,{value:"month",children:"This month"}),(0,n.jsx)(O.Ql,{value:"year",children:"This year"})]})]})]}),(0,n.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,n.jsx)(L._,{className:"text-xs text-zinc-400",children:"Duration"}),(0,n.jsxs)(O.Ph,{value:t.duration||"any",onValueChange:e=>a("duration","any"===e?"":e),children:[(0,n.jsx)(O.i4,{className:f,children:(0,n.jsx)(O.ki,{})}),(0,n.jsxs)(O.Bw,{className:v,children:[(0,n.jsx)(O.Ql,{value:"any",children:"Any duration"}),(0,n.jsx)(O.Ql,{value:"short",children:"Short (< 4 min)"}),(0,n.jsx)(O.Ql,{value:"medium",children:"Medium (4-20 min)"}),(0,n.jsx)(O.Ql,{value:"long",children:"Long (> 20 min)"})]})]})]}),(0,n.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,n.jsx)(L._,{className:"text-xs text-zinc-400",children:"Region"}),(0,n.jsxs)(O.Ph,{value:t.geo,onValueChange:e=>a("geo",e),children:[(0,n.jsx)(O.i4,{className:f,children:(0,n.jsx)(O.ki,{})}),(0,n.jsx)(O.Bw,{className:v,children:b.map(e=>(0,n.jsx)(O.Ql,{value:e.value,children:e.label},e.value))})]})]}),(0,n.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,n.jsx)(L._,{className:"text-xs text-zinc-400",children:"Language"}),(0,n.jsxs)(O.Ph,{value:t.lang,onValueChange:e=>a("lang",e),children:[(0,n.jsx)(O.i4,{className:f,children:(0,n.jsx)(O.ki,{})}),(0,n.jsx)(O.Bw,{className:v,children:g.map(e=>(0,n.jsx)(O.Ql,{value:e.value,children:e.label},e.value))})]})]})]}),(0,n.jsxs)("div",{className:"mt-4",children:[(0,n.jsx)("p",{className:"mb-2 text-xs text-zinc-400",children:"Features"}),(0,n.jsx)("div",{className:"flex flex-wrap gap-2",children:m.map(e=>{let a=t.features.includes(e.value);return(0,n.jsx)("button",{type:"button",onClick:()=>s(e.value),className:"rounded-full border px-3 py-1.5 text-xs font-medium transition ".concat(a?"border-[var(--brand-accent)]/50 bg-[var(--brand-accent)]/15 text-[var(--brand-accent)]":"border-white/10 bg-white/5 text-zinc-400 hover:text-white"),children:e.label},e.value)})})]}),(0,n.jsxs)("div",{className:"mt-4 flex items-center gap-2",children:[(0,n.jsx)(eb.X,{id:"localize-results",checked:t.local,onCheckedChange:e=>a("local",!0===e),className:"border-white/20 bg-black/30 data-[state=checked]:bg-[var(--brand-accent)] data-[state=checked]:text-white dark:data-[state=checked]:bg-[var(--brand-accent)] dark:data-[state=checked]:text-white"}),(0,n.jsx)(L._,{htmlFor:"localize-results",className:"text-sm text-zinc-300",children:"Localize results for selected regi
1on"})]})]})},ef=a(90470),ev=e=>{let{open:t,mode:a,name:s,pinned:r,isSaving:l,onOpenChange:i,onNameChange:c,onPinnedChange:o,onCancel:d,onSubmit:h}=e,u="create"===a;return(0,n.jsx)(_.Vq,{open:t,onOpenChange:i,children:(0,n.jsxs)(_.cZ,{className:"border-white/10 bg-zinc-950 text-white sm:max-w-md",children:[(0,n.jsx)(_.fK,{children:(0,n.jsx)(_.$N,{children:u?"Create Channel Data Base":"Edit Channel Data Base"})}),(0,n.jsxs)("div",{className:"space-y-4",children:[(0,n.jsxs)("div",{className:"space-y-1.5",children:[(0,n.jsx)(L._,{htmlFor:"tracking-".concat(a,"-name"),className:"text-xs text-zinc-400",children:"Data base name"}),(0,n.jsx)(I.I,{id:"tracking-".concat(a,"-name"),value:s,onChange:e=>c(e.target.value),onKeyDown:e=>{u&&"Enter"===e.key&&(e.preventDefault(),h())},placeholder:u?"e.g. MrBeast":"Data base name",className:"border-white/10 bg-black/30 text-white placeholder:text-zinc-500 focus-visible:ring-[var(--brand-accent)]"})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)(eb.X,{id:"tracking-".concat(a,"-pinned"),checked:r,onCheckedChange:e=>o(!0===e),className:"border-white/20 bg-black/30 data-[state=checked]:bg-[var(--brand-accent)] data-[state=checked]:text-white"}),(0,n.jsx)(L._,{htmlFor:"tracking-".concat(a,"-pinned"),className:"text-sm text-zinc-300",children:"Pinned"})]})]}),(0,n.jsxs)(_.cN,{children:[(0,n.jsx)("button",{type:"button",onClick:d,className:"h-10 rounded-lg border border-white/10 px-4 text-sm font-semibold text-zinc-300 transition hover:bg-white/5 hover:text-white",children:"Cancel"}),(0,n.jsxs)("button",{type:"button",onClick:h,disabled:l,className:"flex h-10 items-center justify-center gap-2 rounded-lg bg-[var(--brand-accent)] px-4 text-sm font-semibold text-white transition hover:bg-[var(--brand-accent)] disabled:cursor-not-allowed disabled:opacity-60",children:[l?(0,n.jsx)(Z.Z,{className:"h-4 w-4 animate-spin"}):u?(0,n.jsx)(R.Z,{className:"h-4 w-4"}):(0,n.jsx)(ef.Z,{className:"h-4 w-4"}),u?"Create database":"Save changes"]})]})]})})},ep=a(55024),ew=a(63484),ej=a(11163),eN=a(61932),ey=a(61749),eS=a(76998),ek=a(62112),eC=a(13718),ez=a(49525),eT=a(82914),e_=a(34464),eI=a(42297),eP=a(7314),eR=a(13742),eZ=a(33587);let eV=e=>{let{page:t,searchValue:a,filters:n}=e,s=new URLSearchParams({page:String(t),limit:String(12)});return a&&s.set("search",a),Object.entries(n||{}).forEach(e=>{let[t,a]=e;null!=a&&""!==a&&("durationBucket"!==t||"any"!==a)&&("publishedRange"!==t||"any"!==a)&&("detailsMode"!==t||"any"!==a)&&("sortDirection"!==t||"desc"!==a)&&s.set(t,String(a))}),s},eF=e=>JSON.stringify(e||{}),eD=e=>{let{cachedItems:t,incomingItems:a,reset:n}=e;if(n)return a;let s=new Set(t.map(e=>e.id||e.videoId||e.channelId));return[...t,...a.filter(e=>!s.has(e.id||e.videoId||e.channelId))]},eU=e=>{let t=(0,ej.useRouter)(),a=(0,w.useRef)(null),n=(0,w.useRef)(null),s=(0,w.useRef)(null),r=(0,w.useRef)(new Set),l=(0,w.useRef)(new Set),i=(0,w.useRef)(new Map),c=(0,w.useRef)(new Map),o=(0,w.useRef)(new Map),d=(0,w.useRef)(new Map),x=(0,w.useRef)(0),m=(0,w.useRef)(0),b=(0,w.useRef)(0),g=(0,w.useRef)(0),f=(0,w.useRef)(0),v=(0,w.useRef)(0),p=(0,w.useRef)(e),j=(0,w.useRef)(new Set),[N,y]=(0,w.useState)(null),[S,k]=(0,w.useState)(!1),[C,z]=(0,w.useState)("channels"),[T,_]=(0,w.useState)(!1),[I,P]=(0,w.useState)(""),[R,Z]=(0,w.useState)(""),[V,F]=(0,w.useState)(""),[D,M]=(0,w.useState)(""),[B,A]=(0,w.useState)(h),[L,O]=(0,w.useState)(u),[Q,q]=(0,w.useState)([]),[G,K]=(0,w.useState)([]),[J,H]=(0,w.useState)({page:0,totalPages:0,total:0}),[$,W]=(0,w.useState)({page:0,totalPages:0,total:0}),[Y,X]=(0,w.useState)(!1),[ee,et]=(0,w.useState)(!1),[ea,en]=(0,w.useState)([]),[es,er]=(0,w.useState)(!1),[el,ei]=(0,w.useState)(!1),[ec,eo]=(0,w.useState)([]),[ed,eh]=(0,w.useState)(!1),[eu,ex]=(0,w.useState)(""),[em,eb]=(0,w.useState)(new Set),[eg,ef]=(0,w.useState)(!1),[ev,ep]=(0,w.useState)(""),[ew,eN]=(0,w.useState)(null),[ey,eS]=(0,w.useState)([]),[ek,eC]=(0,w.useState)(!1),[ez,eT]=(0,w.useState)(""),[e_,eI]=(0,w.useState)(!1),[eP,eR]=(0,w.useState)(new Set),[eZ,eU]=(0,w.useState)(0),eE=(0,w.useMemo)(()=>U()(e=>Z(e.trim().toLowerCase()),300),[]),eM=(0,w.useMemo)(()=>U()(e=>M(e.trim().toLowerCase()),300),[]);(0,w.useEffect)(()=>{p.current=e},[e]),(0,w.useEffect)(()=>
1{j.current=new Set(Q.map(e=>e.channelId).filter(Boolean))},[Q]);let eB=(0,w.useMemo)(()=>U()(async e=>{let{query:t,requestId:a}=e;try{let e=new URLSearchParams({query:t,limit:"8"});p.current&&e.set("trackingId",p.current);let n=await fetch("/api/tools-api/video-research/v2/channel-search?".concat(e.toString())),s=await n.json();if(!n.ok)throw Error(s.message||"Unable to search channels.");if(a!==f.current)return;let r=j.current,l=(s.channels||[]).map(e=>{let t=!!((null==e?void 0:e.isAlreadyTracked)||r.has(e.channelId));return{...e,isAlreadyTracked:t}});eS(l),eT("")}catch(e){if(a!==f.current)return;eS([]),eT(e.message||"Unable to search channels.")}finally{a===f.current&&eC(!1)}},350),[]),eA=(0,w.useMemo)(()=>eF(B),[B]),eL=(0,w.useMemo)(()=>eF(L),[L]);(0,w.useEffect)(()=>{if(!t.isReady)return;let e=t.query.tab;z("videos"===e?"videos":"channels")},[t.isReady,t.query.tab]),(0,w.useEffect)(()=>(eE(I),()=>eE.cancel()),[I,eE]),(0,w.useEffect)(()=>(eM(V),()=>eM.cancel()),[V,eM]),(0,w.useEffect)(()=>{if(!eg||ew){f.current+=1,eB.cancel(),eC(!1),eT(""),eS([]);return}let e=ev.trim(),t=/youtube\.com\/channel\//i.test(e);if(e.length<2||t){f.current+=1,eB.cancel(),eC(!1),eT(""),eS([]);return}f.current+=1;let a=f.current;return eC(!0),eT(""),eB({query:e,requestId:a}),()=>eB.cancel()},[eg,ev,ew,eB]),(0,w.useEffect)(()=>{if(!e)return;let t=!1,a=async()=>{k(!0);try{let a=await fetch("/api/tools-api/video-research/v2/tracking/".concat(encodeURIComponent(e))),n=await a.json();if(!a.ok)throw Error(n.message||"Unable to load channel database.");t||y(n.database||null)}catch(e){t||E.ZP.error(e.message||"Unable to load channel database.")}finally{t||k(!1)}};return a(),()=>{t=!0}},[e]);let eO=async t=>{let{page:a,searchValue:n,filters:s,reset:l=!1,requestId:c}=t,o=eF(s),d="".concat(n||"__all__","::").concat(o),h="".concat(d,"::").concat(a);if(!(!l&&r.current.has(h))){X(!0);try{let t=await fetch("/api/tools-api/video-research/v2/tracking/".concat(encodeURIComponent(e),"/channels?").concat(eV({page:a,searchValue:n,filters:s}).toString())),o=await t.json();if(!t.ok)throw Error(o.message||"Unable to load tracked channels.");if(c!==x.current)return;let u=o.channels||[],m=i.current.get(d),b=eD({cachedItems:l?[]:(null==m?void 0:m.channels)||[],incomingItems:u,reset:l}),g=o.pagination||{page:a,totalPages:a,total:u.length};i.current.set(d,{channels:b,pagination:g}),r.current.add(h),q(b),H(g)}catch(e){c===x.current&&E.ZP.error(e.message||"Unable to load tracked channels.")}finally{c===x.current&&X(!1)}}},eQ=async t=>{let{page:a,searchValue:n,filters:s,reset:r=!1,requestId:i}=t,o=eF(s),d="".concat(n||"__all__","::").concat(o),h="".concat(d,"::").concat(a);if(!(!r&&l.current.has(h))){et(!0);try{let t=await fetch("/api/tools-api/video-research/v2/tracking/".concat(encodeURIComponent(e),"/videos?").concat(eV({page:a,searchValue:n,filters:s}).toString())),o=await t.json();if(!t.ok)throw Error(o.message||"Unable to load tracked videos.");if(i!==m.current)return;let u=o.videos||[],x=c.current.get(d),b=eD({cachedItems:r?[]:(null==x?void 0:x.videos)||[],incomingItems:u,reset:r}),g=o.pagination||{page:a,totalPages:a,total:u.length};c.current.set(d,{videos:b,pagination:g}),l.current.add(h),K(b),W(g)}catch(e){i===m.current&&E.ZP.error(e.message||"Unable to load tracked videos.")}finally{i===m.current&&et(!1)}}},eq=async t=>{let{forceRefresh:a=!1,requestId:n}=t;if(!a){let t=d.current.get(e);if(t){if(n!==g.current)return;eo(t),ex("");return}}eh(!0),ex("");try{let t=new URLSearchParams({limit:"10"});a&&t.set("refresh","1");let s=await fetch("/api/tools-api/video-research/v2/tracking/".concat(encodeURIComponent(e),"/channel-suggestions?").concat(t.toString())),r=await s.json();if(!s.ok)throw Error(r.message||"Unable to load channel suggestions.");if(n!==g.current)return;let l=r.suggestions||[];d.current.set(e,l),eo(l)}catch(e){if(n!==g.current)return;eo([]),ex(e.message||"Unable to load channel suggestions.")}finally{n===g.current&&eh(!1)}},eG=()=>{i.current=new Map,c.current=new Map,o.current=new Map,d.current=new Map,r.current=new Set,l.current=new Set,b.current+=1,g.current+=1,en([]),eo([]),ex(""),eb(new Set)};(0,w.useEffect)(()=>
1{if(!e||"channels"!==C)return;let t="".concat(R||"__all__","::").concat(eA),a=i.current.get(t);if(a){q(a.channels),H(a.pagination);return}x.current+=1;let n=x.current;q([]),H({page:0,totalPages:0,total:0}),eO({page:1,searchValue:R,filters:B,reset:!0,requestId:n})},[e,C,R,eA,eZ]),(0,w.useEffect)(()=>{if(!e||"videos"!==C)return;let t="".concat(D||"__all__","::").concat(eL),a=c.current.get(t);if(a){K(a.videos),W(a.pagination);return}m.current+=1;let n=m.current;K([]),W({page:0,totalPages:0,total:0}),eQ({page:1,searchValue:D,filters:L,reset:!0,requestId:n})},[e,C,D,eL,eZ]),(0,w.useEffect)(()=>{if(!e||"formats"!==C)return;let t=o.current.get(e);if(t){en(t),er(!1);return}let a=!1;b.current+=1;let n=b.current,s=async()=>{er(!0);try{let t=new URLSearchParams({trackingId:e}),s=await fetch("/api/tools-api/video-research/v2/formats?".concat(t.toString())),r=await s.json();if(!s.ok)throw Error(r.message||"Unable to load video formats.");if(n!==b.current)return;let l=r.formats||[];o.current.set(e,l),a||en(l)}catch(e){a||n!==b.current||(en([]),E.ZP.error(e.message||"Unable to load video formats."))}finally{a||n!==b.current||er(!1)}};return s(),()=>{a=!0}},[e,C]),(0,w.useEffect)(()=>{if(!e||"channels"!==C)return;let t=eZ!==v.current;if(v.current=eZ,!t){let t=d.current.get(e);if(t){eo(t),ex("");return}}g.current+=1;let a=g.current;eq({forceRefresh:t,requestId:a})},[e,C,eZ]),(0,w.useEffect)(()=>{let e=J.page>0&&J.page<J.totalPages;if("channels"!==C||!e||Y||!n.current||!a.current)return;let t=new IntersectionObserver(e=>{var a;(null===(a=e[0])||void 0===a?void 0:a.isIntersecting)&&(t.disconnect(),eO({page:J.page+1,searchValue:R,filters:B,requestId:x.current}))},{root:a.current,rootMargin:"320px 0px"});return t.observe(n.current),()=>t.disconnect()},[C,Y,J.page,J.totalPages,R,eA]),(0,w.useEffect)(()=>{let e=$.page>0&&$.page<$.totalPages;if("videos"!==C||!e||ee||!s.current||!a.current)return;let t=new IntersectionObserver(e=>{var a;(null===(a=e[0])||void 0===a?void 0:a.isIntersecting)&&(t.disconnect(),eQ({page:$.page+1,searchValue:D,filters:L,requestId:m.current}))},{root:a.current,rootMargin:"320px 0px"});return t.observe(s.current),()=>t.disconnect()},[C,ee,$.page,$.totalPages,D,eL]);let eK="channels"===C?I:V,eJ="channels"===C?"Search tracked channels":"Search tracked videos",eH=()=>{f.current+=1,eB.cancel(),ep(""),eN(null),eS([]),eC(!1),eT("")},e$=async()=>{if(null==ew?void 0:ew.isAlreadyTracked){E.ZP.error("This channel is already added to this database.");return}let t=(null==ew?void 0:ew.channelId)||ev.trim();if(!t){E.ZP.error("Channel URL or ID is required.");return}eI(!0);try{let a=await fetch("/api/tools-api/video-research/v2/tracking/".concat(encodeURIComponent(e),"/channels"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({channelInput:t})}),n=await a.json();if(!a.ok)throw Error(n.message||"Unable to add channel.");eG(),eU(e=>e+1),eH(),ef(!1),E.ZP.success("Channel synced with ".concat(n.videosFetched||0," videos."))}catch(e){E.ZP.error(e.message||"Unable to add channel.")}finally{eI(!1)}},eW=async t=>{let a=null==t?void 0:t.channelId;if(a){eb(e=>{let t=new Set(e);return t.add(a),t});try{let t=await fetch("/api/tools-api/video-research/v2/tracking/".concat(encodeURIComponent(e),"/channels"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({channelInput:a})}),n=await t.json();if(!t.ok)throw Error(n.message||"Unable to add channel.");eG(),eU(e=>e+1),E.ZP.success("Channel synced with ".concat(n.videosFetched||0," videos."))}catch(e){E.ZP.error(e.message||"Unable to add channel.")}finally{eb(e=>{let t=new Set(e);return t.delete(a),t})}}},eY=async t=>{if(!(null==t?void 0:t.id))return;let a=window.confirm('Remove "'.concat(t.name||"this channel",'" from this database?'));if(a){eR(e=>{let a=new Set(e);return a.add(t.id),a});try{let a=await fetch("/api/tools-api/video-research/v2/tracking/".concat(encodeURIComponent(e),"/channels?channelId=").concat(encodeURIComponent(t.id)),{method:"DELETE"}),n=await a.json();if(!a.ok)throw Error(n.message||"Unable to remove channel.");eG(),q(e=>e.filter(e=>e.id!==t.id)),eU(e=>e+1),E.ZP.success("Channel removed.")}catch(e){E.ZP.error(e.message||"Unable to remove channel.")}finally{eR(e=>{let a=new Set(e);return a.delete(t.id),a})}}},eX=async function(){let{channels:t=null}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(el)return!1;let a=Array.isArray(t)&&t.length>0;ei(!0);try{let n=await fetch("/api/tools-api/video-research/v2/formats",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({trackingId:e||null,...a?{mode:"advanced",channels:t}:{}})}),s=await n.json();if(!n.ok)throw Error(s.message||"Unable to generate video formats.");let r=s.formats||[];en(t=>{let a=new Set(r.map(e=>e.id)),n=[...r,...t.filter(e=>!a.has(e.id))];return o.current.set(e||"__global__",n),n});
1let l=s.creditsUsed||0;return E.ZP.success("".concat(r.length," video format").concat(1===r.length?"":"s"," ready").concat(l?" \xb7 ".concat(l," credits used"):"",".")),!0}catch(e){return E.ZP.error(e.message||"Unable to generate video formats."),!1}finally{ei(!1)}};return{scrollRef:a,channelsLoadMoreRef:n,videosLoadMoreRef:s,database:N,isLoadingDatabase:S,activeTab:C,showFilters:T,channelSearchInput:I,videoSearchInput:V,channelFilters:B,videoFilters:L,channels:Q,videos:G,channelsPagination:J,videosPagination:$,isLoadingChannels:Y,isLoadingVideos:ee,formats:ea,isLoadingFormats:es,isGeneratingFormats:el,channelSuggestions:ec,isLoadingChannelSuggestions:ed,channelSuggestionsError:eu,trackingSuggestedChannelIds:em,addChannelDialogOpen:eg,channelInput:ev,selectedAddChannel:ew,channelSearchResults:ey,isSearchingChannelResults:ek,channelSearchError:ez,isAddingChannel:e_,deletingChannelIds:eP,activeSearchValue:eK,activeSearchPlaceholder:eJ,setShowFilters:_,setChannelFilters:A,setVideoFilters:O,setAddChannelDialogOpen:ef,handleAddChannelDialogOpenChange:e=>{ef(e),e||eH()},handleAddChannelInputChange:e=>{ep(e),eN(null)},selectChannelSearchResult:e=>{(null==e?void 0:e.channelId)&&(null!=e&&e.isAlreadyTracked||(eN(e),ep(e.handle||e.name||e.channelId),eS([]),eT(""),eC(!1)))},setTab:a=>{let n="videos"===a?"videos":"channels";z(n),_(!1);let s="channels"===n?"":"?tab=".concat(encodeURIComponent(n)),r="/tools/video-research/v2/tracking/".concat(encodeURIComponent(e)).concat(s);t.replace(r,void 0,{shallow:!0,scroll:!1}).catch(()=>{})},handleSearchChange:e=>{if("channels"===C){P(e);return}F(e)},submitSearch:e=>{if(e.preventDefault(),"channels"===C){eE.flush();return}eM.flush()},clearSearch:()=>{if("channels"===C){P(""),Z("");return}F(""),M("")},addChannel:e$,trackSuggestedChannel:eW,deleteChannel:eY,handleTrackedVideoSaved:e=>{(null==e?void 0:e.videoId)&&(c.current=new Map,l.current=new Set,K(t=>t.map(t=>(t.videoId||t.id)!==e.videoId?t:{...t,isSaved:!0,savedVideoRecordId:e.id,note:e.note||null,tags:e.tags||[],folders:e.folders||[]})))},clearFilters:()=>{if("channels"===C){A(h);return}O(u)},refreshChannelSuggestions:()=>{if(!e)return;g.current+=1;let t=g.current;eq({forceRefresh:!0,requestId:t})},generateFormats:eX}};var eE=a(1303),eM=(0,w.memo)(e=>{let{src:t,alt:a}=e,[s,r]=(0,w.useState)(!1);return!t||s?(0,n.jsx)(eE.Z,{className:"h-7 w-7"}):(0,n.jsx)("img",{src:t,alt:a||"Channel",loading:"lazy",referrerPolicy:"no-referrer",onError:()=>r(!0),className:"h-full w-full object-cover"})}),eB=a(44812),eA=a(57420),eL=a(19858),eO=(0,w.memo)(e=>{let{video:t,onSave:a,isSaved:s,actionLabel:r=null,isActionDisabled:l=!1}=e,i=[t.viewsText,t.publishedText].filter(Boolean).join(" ⢠"),c=Number(t.outlierScore)||0,o=t.channelId?"https://www.youtube.com/channel/".concat(t.channelId):null;return(0,n.jsxs)("article",{className:"group flex h-full flex-col overflow-hidden rounded-2xl border border-white/10 bg-[#1b1b1b] shadow-lg shadow-black/20 transition hover:border-[var(--brand-accent)]/30",children:[(0,n.jsxs)("div",{className:"relative aspect-video overflow-hidden bg-zinc-900",children:[(0,n.jsx)("a",{href:t.url||"#",target:"_blank",rel:"noopener noreferrer",children:t.thumbnail?(0,n.jsx)("img",{src:t.thumbnail,alt:t.title,loading:"lazy",className:"h-full w-full object-cover transition duration-300 group-hover:scale-105"}):(0,n.jsx)("div",{className:"flex h-full w-full items-center justify-center text-xs text-zinc-600",children:t.type})}),t.duration&&(0,n.jsx)("span",{className:"absolute bottom-2 right-2 rounded-full bg-black/75 px-2.5 py-1 text-xs font-semibold text-white",children:t.duration})]}),(0,n.jsxs)("div",{className:"flex flex-1 flex-col p-3.5",children:[(0,n.jsxs)("div",{className:"min-h-[58px]",children:[(0,n.jsx)("a",{href:t.url||"#",target:"_blank",rel:"noopener noreferrer",children:(0,n.jsx)("h2",{className:"line-clamp-2 text-sm font-semibold leading-snug text-white transition group-hover:text-[var(--brand-accent)]",children:t.title})}),i&&(0,n.jsx)("p",{className:"mt-1 truncate text-xs font-normal text-zinc-400",children:i})]}),(0,n.jsxs)("div",{className:"mt-2 grid grid-cols-3 rounded-2xl border border-white/10 bg-black/20 px-2 py-2",children:[(0,n.jsxs)("div",{className:"flex flex-col items-center justify-center text-center",children:[(0,n.jsxs)("div",{className:"flex items-center gap-1 text-sm font-semibold text-white",children:[(0,n.jsx)(eB.Z,{className:"h-3 w-3"}),t.viewsPerHourText||"0"]}),(0,n.jsx)("span",{className:"mt-0.5 text-[11px] text-zinc-400",children:"views/hr"})]}),(0,n.jsxs)("div",{className:"flex flex-col items-center justify-center border-x border-white/10 text-center",children:[(0,n.jsxs)("div",{className:"flex items-center gap-1 text-sm font-semibold text-white",children:[(0,n.jsx)(eA.Z,{className:"h-3 w-3"}),t.engagementRateText||"0%"]}),(0,n.jsx)("span",{className:"mt-0.5 text-[11px] text-zinc-400",children:t.likesText?"".concat(t.likesText," likes"):"eng. rate"})]}),(0,n.jsxs)("div",{className:"flex flex-col items-center justify-center text-center",children:[(0,n.jsxs)("div",{className:"flex items-center gap-1 text-sm font-semibold ".concat(c<10?"text-yellow-300":"text-lime-400"),children:[(0,n.jsx)(eL.Z,{className:"h-3 w-3"}),t.outlierScoreText||"0x"]}),(0,n.jsx)("span",{className:"mt-0.5 text-[11px] text-zinc-400",children:"outlier"})]})]}),(0,n.jsxs)("div",{className:"mt-auto flex items-center justify-between gap-2 pt-3",children:[(0,n.jsxs)("a",{href:o||"#",target:"_blank",rel:"noopener noreferrer",className:"group/channel flex min-w-0 items-center gap-2 rounded-full pr-1 transition ".concat(o?"hover:bg-white/5":"pointer-events-none"),children:[(0,n.jsx)("div",{className:"flex h-9 w-9 shrink-0 items-center justify-center overflow-hidden rounded-full bg-zinc-800 text-zinc-400",children:(0,n.jsx)(eM,{src:t.channelAvatar,alt:t.channelTitle})}),(0,n.jsxs)("div",{className:"min-w-0",children:[(0,n.jsx)("p",{className:"truncate text-xs font-semibold text-white",children:t.channelHandle||t.channelTitle||"Unknown channel"}),(0,n.jsx)("p",{className:"truncate text-xs font-normal text-zinc-400",children:t.subscribersText?"".concat(t.subscribersText," subscribers"):"Subscribers unavailable"})]}),o&&(0,n.jsx)(ek.Z,{className:"h-3.5 w-3.5 shrink-0 text-zinc-500 opacity-0 transition group-hover/channel:translate-x-0.5 group-hover/channel:-translate-y-0.5 group-hover/channel:opacity-100"})]}),a&&(0,n.jsxs)("button",{type:"button",onClick:()=>a(t),disabled:l,className:"flex h-9 shrink-0 items-center gap-1.5 rounded-full border border-white/10 px-3 text-xs font-semibold text-white transition ".concat(l?"cursor-not-allowed opacity-60":"hover:border-[var(--brand-accent)]/40 hover:bg-[var(--brand-accent)]/10"),children:[(0,n.jsx)(F.Z,{className:"h-4 w-4"}),r||(s?"Saved":"Save video")]})]})]})]})}),eQ=(0,w.memo)(()=>(0,n.jsxs)("article",{className:"flex h-full flex-col overflow-hidden rounded-2xl border border-white/10 bg-[#1b1b1b] shadow-lg shadow-black/20",children:[(0,n.jsx)("div",{className:"aspect-video animate-pulse bg-white/10"}),(0,n.jsxs)("div",{className:"flex flex-1 flex-col p-3.5",children:[(0,n.jsx)("div",{className:"h-5 w-11/12 animate-pulse rounded-full bg-white/10"}),(0,n.jsx)("div",{className:"mt-2 h-5 w-8/12 animate-pulse rounded-full bg-white/10"}),(0,n.jsx)("div",{className:"mt-3 h-4 w-7/12 animate-pulse rounded-full bg-white/10"}),(0,n.jsx)("div",{className:"mt-4 grid grid-cols-3 rounded-2xl border border-white/10 bg-black/20 px-2 py-2",children:[0,1,2].map(e=>(0,n.jsxs)("div",{className:"flex flex-col items-center justify-center ".concat(1===e?"border-x border-white/10":""),children:[(0,n.jsx)("div",{className:"h-5 w-10 max-w-[70%] animate-pulse rounded-full bg-white/10"}),(0,n.jsx)("div",{className:"mt-2 h-3 w-12 max-w-[80%] animate-pulse rounded-full bg-white/10"})]},e))}),(0,n.jsxs)("div",{className:"mt-auto flex min-w-0 items-center justify-between gap-2 pt-3",children:[(0,n.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-2",children:[(0,n.jsx)("div",{className:"h-9 w-9 shrink-0 animate-pulse rounded-full bg-white/10"}),(0,n.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,n.jsx)("div",{className:"h-4 w-24 max-w-full animate-pulse rounded-full bg-white/10"}),(0,n.jsx)("div",{className:"mt-2 h-3 w-20 max-w-full animate-pulse rounded-full bg-white/10"})]})]}),(0,n.jsx)("div",{className:"h-9 w-24 shrink-0 animate-pulse rounded-full bg-white/10"})]})]})]}));let eq=e=>{let t=String(e||"").split(/(\[[^\]]+\])/g);return t.map((e,t)=>/^\[[^\]]+\]$/.test(e)?(0,n.jsx)("span",{className:"text-[var(--brand-accent)]",children:e},"".concat(e,"-").concat(t)):e)};var eG=e=>{var t;let{format:a,onOpen:s}=e,r=(null==a?void 0:a.content)||{},l=(null==a?void 0:a.video)||{},i=null===(t=r.exampleTitles)||void 0===t?void 0:t[0],c=l.channelHandle||l.channelTitle||"YouTube channel";return(0,n.jsxs)("button",{type:"button",onClick:()=>
1s(a),className:"grid w-full gap-4 rounded-2xl border border-white/10 bg-zinc-950/60 p-4 text-left transition hover:border-[var(--brand-accent)]/35 hover:bg-white/[0.035] md:grid-cols-[220px_minmax(0,1fr)]",children:[(0,n.jsxs)("div",{className:"relative aspect-video overflow-hidden rounded-xl bg-zinc-900",children:[l.thumbnail?(0,n.jsx)("img",{src:l.thumbnail,alt:"",className:"h-full w-full object-cover"}):(0,n.jsx)("div",{className:"h-full w-full bg-gradient-to-br from-zinc-800 to-zinc-950"}),l.duration&&(0,n.jsx)("span",{className:"absolute bottom-2 right-2 rounded bg-black/80 px-1.5 py-0.5 text-[11px] font-semibold text-white",children:l.duration})]}),(0,n.jsxs)("div",{className:"min-w-0 self-center",children:[(0,n.jsx)("h2",{className:"text-lg font-semibold leading-snug text-white md:text-xl",children:eq(r.format)}),i&&(0,n.jsxs)("p",{className:"mt-2 line-clamp-1 text-sm italic text-zinc-500",children:["e.g. â",i,"â"]}),(0,n.jsxs)("div",{className:"mt-4 flex flex-wrap items-center gap-x-4 gap-y-1 text-xs text-zinc-500",children:[(0,n.jsx)("span",{children:c}),(0,n.jsxs)("span",{children:[l.subscribersText," subs"]}),(0,n.jsx)("span",{className:"font-semibold text-zinc-200",children:l.outlierScoreText}),(0,n.jsx)("span",{children:l.viewsText}),l.publishedText&&(0,n.jsx)("span",{children:l.publishedText})]})]})]})},eK=a(56989);let eJ=e=>{let t=String(e||"").split(/(\[[^\]]+\])/g);return t.map((e,t)=>/^\[[^\]]+\]$/.test(e)?(0,n.jsx)("span",{className:"text-[var(--brand-accent)]",children:e},"".concat(e,"-").concat(t)):e)},eH=e=>{let{icon:t,label:a,value:s}=e;return(0,n.jsxs)("div",{className:"rounded-2xl border border-white/10 bg-black/20 p-4",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2 text-xs text-zinc-500",children:[(0,n.jsx)(t,{className:"h-4 w-4"}),a]}),(0,n.jsx)("p",{className:"mt-2 text-xl font-semibold text-white",children:s})]})};var e$=e=>{let{format:t,open:a,onOpenChange:s}=e,r=(null==t?void 0:t.content)||{},l=(null==t?void 0:t.video)||{};return(0,n.jsx)(_.Vq,{open:a,onOpenChange:s,children:(0,n.jsxs)(_.cZ,{className:"max-h-[90vh] max-w-4xl overflow-y-auto border-white/10 bg-zinc-950 p-0 text-white",children:[(0,n.jsxs)(_.fK,{className:"border-b border-white/10 px-6 py-5 text-left",children:[(0,n.jsx)("p",{className:"text-xs font-semibold uppercase tracking-[0.12em] text-zinc-500",children:"Format template"}),(0,n.jsx)(_.$N,{className:"pt-2 text-2xl font-semibold leading-snug text-white",children:eJ(r.format)})]}),(0,n.jsxs)("div",{className:"space-y-6 px-6 py-6",children:[(0,n.jsxs)("div",{className:"grid gap-3 sm:grid-cols-3",children:[(0,n.jsx)(eH,{icon:eL.Z,label:"Outlier multiplier",value:l.outlierScoreText||"0x"}),(0,n.jsx)(eH,{icon:e_.Z,label:"Top video views",value:l.viewsText||"0 views"}),(0,n.jsx)(eH,{icon:ez.Z,label:"Channel subscribers",value:l.subscribersText||"0"})]}),(0,n.jsxs)("section",{children:[(0,n.jsxs)("h3",{className:"flex items-center gap-2 text-base font-semibold text-white",children:[(0,n.jsx)(eK.Z,{className:"h-4 w-4 text-[var(--brand-accent)]"}),"Why this format works"]}),(0,n.jsx)("p",{className:"mt-3 whitespace-pre-wrap text-sm leading-7 text-zinc-400",children:r.whyItWorks})]}),(0,n.jsxs)("section",{children:[(0,n.jsx)("h3",{className:"text-sm font-semibold text-white",children:"Variables in this template"}),(0,n.jsx)("div",{className:"mt-3 flex flex-wrap gap-2",children:(r.variables||[]).map(e=>(0,n.jsx)("span",{className:"rounded-full border border-[var(--brand-accent)]/35 bg-[var(--brand-accent)]/10 px-3 py-1.5 text-xs font-medium text-[var(--brand-accent)]",children:e},e))})]}),(0,n.jsxs)("section",{children:[(0,n.jsx)("h3",{className:"text-sm font-semibold text-white",children:"Example titles"}),(0,n.jsx)("div",{className:"mt-3 space-y-2",children:(r.exampleTitles||[]).map((e,t)=>(0,n.jsx)("div",{className:"rounded-xl border border-white/10 bg-white/[0.03] px-4 py-3 text-sm text-zinc-300",children:e},"".concat(e,"-").concat(t)))})]})]})]})})};let eW=e=>"h-10 rounded-full border px-4 text-sm font-semibold transition ".concat(e?"border-[var(--brand-accent)]/40 bg-[var(--brand-accent)]/15 text-white":"border-white/10 bg-white/5 text-zinc-300 hover:border-[var(--brand-accent)]/40 hover:text-white"),eY=e=>String(Math.round(e)),eX=e=>Intl.NumberFormat("en").format(Math.round(e)),e0={name:"Name",subscribers:"Subscribers",videos:"Total videos",avgVie
1ws:"Average views",totalViews:"Total views",avgDuration:"Average duration",totalDuration:"Total duration"},e1=e=>{let{label:t,max:a,step:s,value:r,onChange:l,placeholder:i,formatValue:c=eY,formatDisplayValue:o=eX}=e,[d,h]=(0,w.useState)("slider"),u=G(q(r),0,a),[x,m]=(0,w.useState)(u),b=(0,w.useMemo)(()=>U()(e=>l(c(e)),250),[c,l]);(0,w.useEffect)(()=>{m(u)},[u]),(0,w.useEffect)(()=>()=>b.cancel(),[b]);let g=e=>{m(e),b(e)};return(0,n.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,n.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,n.jsx)(L._,{className:"truncate text-xs text-zinc-400",children:t}),(0,n.jsx)("span",{className:"shrink-0 rounded-full border border-white/10 bg-white/5 px-2 py-0.5 text-[10px] font-semibold text-zinc-200",children:o(x)})]}),(0,n.jsxs)("div",{className:"inline-flex rounded-full border border-white/10 bg-black/30 p-0.5",children:[(0,n.jsx)("button",{type:"button",onClick:()=>h("slider"),className:"rounded-full px-2 py-0.5 text-[10px] font-medium transition ".concat("slider"===d?"bg-[var(--brand-accent)]/20 text-[var(--brand-accent)]":"text-zinc-400 hover:text-white"),children:"Slider"}),(0,n.jsx)("button",{type:"button",onClick:()=>h("input"),className:"rounded-full px-2 py-0.5 text-[10px] font-medium transition ".concat("input"===d?"bg-[var(--brand-accent)]/20 text-[var(--brand-accent)]":"text-zinc-400 hover:text-white"),children:"Input"})]})]}),"slider"===d?(0,n.jsx)(Q.i,{min:0,max:a,step:s,value:[x],onValueChange:e=>{let[t]=e;return g(t)},onValueCommit:()=>b.flush(),className:"py-1"}):(0,n.jsx)(I.I,{type:"number",min:"0",step:s<1?String(s):void 0,value:r,onChange:e=>l(e.target.value),placeholder:i,className:"border-white/10 bg-black/30 text-white placeholder:text-zinc-500 focus-visible:ring-[var(--brand-accent)]"})]})},e2=e=>{let{value:t,onChange:a,label:s="Duration"}=e;return(0,n.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,n.jsx)(L._,{className:"text-xs text-zinc-400",children:s}),(0,n.jsxs)(O.Ph,{value:t,onValueChange:a,children:[(0,n.jsx)(O.i4,{className:f,children:(0,n.jsx)(O.ki,{})}),(0,n.jsxs)(O.Bw,{className:v,children:[(0,n.jsx)(O.Ql,{value:"any",children:"Any duration"}),(0,n.jsx)(O.Ql,{value:"short",children:"Short (< 4 min)"}),(0,n.jsx)(O.Ql,{value:"medium",children:"Medium (4-20 min)"}),(0,n.jsx)(O.Ql,{value:"long",children:"Long (> 20 min)"})]})]})]})},e5=e=>{let{activeTab:t,channelFilters:a,videoFilters:s,setChannelFilters:r,setVideoFilters:l,onClear:i}=e,c="channels"===t;return(0,n.jsxs)("div",{className:"mt-3 rounded-2xl border border-white/10 bg-zinc-950/70 p-4 shadow-xl shadow-black/20",children:[(0,n.jsxs)("div",{className:"mb-3 flex items-center justify-between gap-3",children:[(0,n.jsx)("p",{className:"text-sm font-medium text-white",children:c?"Channel Filters":"Video Filters"}),(0,n.jsx)("button",{type:"button",onClick:i,className:"rounded-full border border-white/10 bg-white/5 px-3 py-1.5 text-xs font-medium text-zinc-300 transition hover:border-[var(--brand-accent)]/40 hover:bg-[var(--brand-accent)]/10 hover:text-white",children:"Clear all"})]}),c?(0,n.jsxs)("div",{className:"grid gap-3 md:grid-cols-3",children:[(0,n.jsx)(e1,{label:"Min subscribers",max:x.subscribers,step:1e3,value:a.minSubscribers,onChange:e=>r(t=>({...t,minSubscribers:e})),placeholder:"Custom min subscribers"}),(0,n.jsx)(e1,{label:"Min total videos",max:x.videos,step:10,value:a.minVideos,onChange:e=>r(t=>({...t,minVideos:e})),placeholder:"Custom min total videos"}),(0,n.jsx)(e1,{label:"Min avg views",max:x.avgViews,step:1e3,value:a.minAvgViews,onChange:e=>r(t=>({...t,minAvgViews:e})),placeholder:"Custom min avg views"}),(0,n.jsx)(e2,{label:"Avg duration",value:a.durationBucket,onChange:e=>r(t=>({...t,durationBucket:e}))}),(0,n.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,n.jsx)(L._,{className:"text-xs text-zinc-400",children:"Sort"}),(0,n.jsxs)(O.Ph,{value:a.sortBy,onValueChange:e=>r(t=>({...t,sortBy:e})),children:[(0,n.jsx)(O.i4,{className:f,children:(0,n.jsx)(O.ki,{})}),(0,n.jsxs)(O.Bw,{className:v,children:[(0,n.jsx)(O.Ql,{value:"name",children:"Name"}),(0,n.jsx)(O.Ql,{value:"subscribers",children:"Subscribers"}),(0,n.jsx)(O.Ql,{value:"videos",children:"Total videos"}),(0,n.jsx)(O.Ql,{value:"avgViews",children:"Average views"}),(0,n.jsx)(O.Ql,{value:"totalViews",children:"Total views"}),(0,n.jsx)(O.Ql,{value:"avgDuration",children:"Average duration"}),(0,n.jsx)(O.Ql,{value:"totalDuration",children:"Total duration"})]})]})]}),(0,n.jsx)(e4,{value:a.sortDirection,onChange:e=>r(t=>({...t,sortDirection:e}))})]}):(0,n.jsxs)("div",{className:"grid gap-3 md:grid-cols-3",children:[(0,n.jsx)(e1,{label:"Min views",max:x.views,step:1e3,value:s.minViews,onChange:e=>l(t=>({...t,minViews:e})),placeholder:"Custom min views"}),(0,n.jsx)(e1,{label:"Min outlier",max:x.outlier,step:.1,value:s.minOutlierScore,onChange:e=>l(t=>({...t,minOutlierScore:e})),placeholder:"Custom min outlier",formatValue:e=>String(Number(e).toFixed(1)),formatDisplayValue:e=>Number(e).toFixed(1)}),(0,n.jsx)(e2,{value:s.durationBucket,onChange:e=>l(t=>({...t,durationBucket:e}))}),(0,n.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,n.jsx)(L._,{className:"text-xs text-zinc-400",children:"Upload date"}),(0,n.jsxs)(O.Ph,{value:s.publishedRange,onValueChange:e=>l(t=>({...t,publishedRange:e})),children:[(0,n.jsx)(O.i4,{className:f,children:(0,n.jsx)(O.ki,{})}),(0,n.jsxs)(O.Bw,{className:v,children:[(0,n.jsx)(O.Ql,{value:"any",children:"Any time"}),(0,n.jsx)(O.Ql,{value:"hour",children:"Last hour"}),(0,n.jsx)(O.Ql,{value:"today",children:"Today"}),(0,n.jsx)(O.Ql,{value:"week",children:"This week"}),(0,n.jsx)(O.Ql,{value:"month",children:"This month"}),(0,n.jsx)(O.Ql,{value:"year",children:"This year"})]})]})]}),(0,n.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,n.jsx)(L._,{className:"text-xs text-zinc-400",children:"Details"}),(0,n.jsxs)(O.Ph,{value:s.detailsMode,onValueChange:e=>l(t=>({...t,detailsMode:e})),children:[(0,n.jsx)(O.i4,{className:f,children:(0,n.jsx)(O.ki,{})}),(0,n.jsxs)(O.Bw,{className:v,children:[(0,n.jsx)(O.Ql,{value:"any",children:"Any details"}),(0,n.jsx)(O.Ql,{value:"full",children:"Full details"})]})]})]}),(0,n.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,n.jsx)(L._,{className:"text-xs text-zinc-400",children:"Sort"}),(0,n.jsxs)(O.Ph,{value:s.sortBy,onValueChange:e=>l(t=>({...t,sortBy:e})),children:[(0,n.jsx)(O.i4,{className:f,children:(0,n.jsx)(O.ki,{})}),(0,n.jsxs)(O.Bw,{className:v,children:[(0,n.jsx)(O.Ql,{value:"published",children:"Published date"}),(0,n.jsx)(O.Ql,{value:"views",children:"Views"}),(0,n.jsx)(O.Ql,{value:"outlier",children:"Outlier score"}),(0,n.jsx)(O.Ql,{value:"duration",children:"Duration"}),(0,n.jsx)(O.Ql,{value:"likes",children:"Likes"})]})]})]}),(0,n.jsx)(e4,{value:s.sortDirection,onChange:e=>l(t=>({...t,sortDirection:e}))})]})]})},e4=e=>{let{value:t,onChange:a}=e;return(0,n.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,n.jsx)(L._,{className:"text-xs text-zinc-400",children:"Sort direction"}),(0,n.jsxs)(O.Ph,{value:t,onValueChange:a,children:[(0,n.jsx)(O.i4,{className:f,children:(0,n.jsx)(O.ki,{})}),(0,n.jsxs)(O.Bw,{className:v,children:[(0,n.jsx)(O.Ql,{value:"desc",children:"Descending"}),(0,n.jsx)(O.Ql,{value:"asc",children:"Ascending"})]})]})]})},e3=e=>{let{count:t=8}=e;return(0,n.jsx)(n.Fragment,{children:Array.from({length:t},(e,t)=>(0,n.jsx)("tr",{className:"border-t border-white/5",children:Array.from({length:8},(e,a)=>(0,n.jsx)("td",{className:"px-4 py-4",children:(0,n.jsx)("div",{className:"h-4 animate-pulse rounded-full bg-white/10"})},"tracking-channel-table-skeleton-".concat(t,"-").concat(a)))},"tracking-channel-table-skeleton-".concat(t)))})},e9=()=>(0,n.jsxs)("div",{className:"overflow-hidden rounded-2xl border border-white/10 bg-zinc-950/50 shadow-xl shadow-black/20",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between gap-3 border-b border-white/10 px-4 py-3",children:[(0,n.jsx)("div",{className:"h-4 w-36 animate-pulse rounded-full bg-white/10"}),(0,n.jsx)("div",{className:"h-4 w-44 animate-pulse rounded-full bg-white/10"})]}),(0,n.jsx)("div",{className:"overflow-x-auto",children:(0,n.jsx)("table",{className:"w-full min-w-[1120px] text-left text-sm",children:(0,n.jsx)("tbody",{children:(0,n.jsx)(e3,{})})})})]}),e8=e=>{let{isActive:t,direction:a}=e;return t?"asc"===a?(0,n.jsx)(ey.Z,{className:"h-3.5 w-3.5 text-[var(--brand-accent)]"}):(0,n.jsx)(eS.Z,{className:"h-3.5 w-3.5 text-[var(--brand-accent)]"}):(0,n.jsx)(eN.Z,{className:"h-3.5 w-3.5 text-zinc-600"})},e6=e=>{let{label:t,sortBy:a,activeSortBy:s,sortDirection:r,onSort:l,align:i="left"}=e,c=s===a;return(0,n.jsx)("th",{scope:"col","aria-sort":c?"asc"===r?"ascending":"descending":"none",className:"px-4 py-3 text-xs font-semibold uppercase tracking-[0.08em] text-zinc-500 ".concat("right"===i?"text-right":"text-left"),children:(0,n.jsxs)("button",{type:"button",onClick:()=>l(a),className:"inline-flex w-full items-center gap-1.5 transition hover:text-white ".concat(c?"text-[var(--brand-accent)]":"text-zinc-500"," ").concat("right"===i?"justify-end":"justify-start"),children:[(0,n.jsx)("span",{children:t}),(0,n.jsx)(e8,{isActive:c,direction:r})]})})}
1,e7=e=>{let{value:t,rawValue:a}=e;return(0,n.jsx)("td",{className:"px-4 py-3 text-right font-medium tabular-nums text-zinc-100",title:String(a||0),children:t||"0"})},te=e=>{let{channels:t,pagination:a,filters:s,setFilters:r,onDelete:l,deletingChannelIds:i,isLoadingMore:c}=e,o=e=>{r(t=>({...t,sortBy:e,sortDirection:t.sortBy===e&&"desc"===t.sortDirection?"asc":"desc"}))};return(0,n.jsxs)("div",{className:"overflow-hidden rounded-2xl border border-white/10 bg-zinc-950/50 shadow-xl shadow-black/20",children:[(0,n.jsxs)("div",{className:"flex flex-col gap-1 border-b border-white/10 px-4 py-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,n.jsx)("p",{className:"text-sm font-semibold text-white",children:"Tracked channels"}),(0,n.jsxs)("p",{className:"text-xs text-zinc-500",children:[t.length," loaded / ",a.total||t.length," total / ",e0[s.sortBy]||"Total videos"," / ","asc"===s.sortDirection?"Asc":"Desc"]})]}),(0,n.jsx)("div",{className:"overflow-x-auto",children:(0,n.jsxs)("table",{className:"w-full min-w-[1020px] text-left text-sm",children:[(0,n.jsx)("thead",{className:"sticky top-0 z-10 border-b border-white/10 bg-zinc-950/95 backdrop-blur",children:(0,n.jsxs)("tr",{children:[(0,n.jsx)(e6,{label:"Channel",sortBy:"name",activeSortBy:s.sortBy,sortDirection:s.sortDirection,onSort:o}),(0,n.jsx)(e6,{label:"Subscribers",sortBy:"subscribers",activeSortBy:s.sortBy,sortDirection:s.sortDirection,onSort:o,align:"right"}),(0,n.jsx)(e6,{label:"Total videos",sortBy:"videos",activeSortBy:s.sortBy,sortDirection:s.sortDirection,onSort:o,align:"right"}),(0,n.jsx)(e6,{label:"Avg views",sortBy:"avgViews",activeSortBy:s.sortBy,sortDirection:s.sortDirection,onSort:o,align:"right"}),(0,n.jsx)(e6,{label:"Total views",sortBy:"totalViews",activeSortBy:s.sortBy,sortDirection:s.sortDirection,onSort:o,align:"right"}),(0,n.jsx)(e6,{label:"Avg duration",sortBy:"avgDuration",activeSortBy:s.sortBy,sortDirection:s.sortDirection,onSort:o,align:"right"}),(0,n.jsx)(e6,{label:"Total duration",sortBy:"totalDuration",activeSortBy:s.sortBy,sortDirection:s.sortDirection,onSort:o,align:"right"}),(0,n.jsx)("th",{scope:"col",className:"px-4 py-3 text-right text-xs font-semibold uppercase tracking-[0.08em] text-zinc-500",children:"Action"})]})}),(0,n.jsxs)("tbody",{className:"divide-y divide-white/5",children:[t.map(e=>{let t=i.has(e.id);return(0,n.jsxs)("tr",{className:"transition hover:bg-white/[0.03]",children:[(0,n.jsx)("td",{className:"px-4 py-3",children:(0,n.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,n.jsx)("div",{className:"flex h-10 w-10 shrink-0 items-center justify-center overflow-hidden rounded-full bg-zinc-800 text-zinc-400",children:(0,n.jsx)(eM,{src:e.avatar,alt:e.name})}),(0,n.jsxs)("div",{className:"min-w-0",children:[(0,n.jsxs)("a",{href:e.url||"#",target:"_blank",rel:"noopener noreferrer",className:"group/channel inline-flex max-w-[260px] items-center gap-1.5",children:[(0,n.jsx)("span",{className:"truncate font-semibold text-white transition group-hover/channel:text-[var(--brand-accent)]",children:e.name||"Unknown channel"}),e.url&&(0,n.jsx)(ek.Z,{className:"h-3.5 w-3.5 shrink-0 text-zinc-500"})]}),(0,n.jsxs)("div",{className:"mt-0.5 flex min-w-0 items-center gap-2",children:[(0,n.jsx)("p",{className:"truncate text-xs text-zinc-500",children:e.handle||e.channelId}),e.isUnlisted&&(0,n.jsx)("span",{className:"shrink-0 rounded-full border border-amber-300/20 bg-amber-400/10 px-2 py-0.5 text-[10px] font-semibold text-amber-100",children:"Unlisted"}),!1===e.isFamilySafe&&(0,n.jsx)("span",{className:"shrink-0 rounded-full border border-red-300/20 bg-red-400/10 px-2 py-0.5 text-[10px] font-semibold text-red-100",children:"Limited"})]})]})]})}),(0,n.jsx)(e7,{value:e.subscribersText,rawValue:e.subscribers}),(0,n.jsx)(e7,{value:e.videosText,rawValue:e.videos}),(0,n.jsx)(e7,{value:e.avgViewsText,rawValue:e.avgViews}),(0,n.jsx)(e7,{value:e.totalViewsText,rawValue:e.totalViews}),(0,n.jsx)("td",{className:"px-4 py-3 text-right font-medium tabular-nums text-zinc-100",children:e.avgDuration||"0:00"}),(0,n.jsx)("td",{className:"px-4 py-3 text-right font-medium tabular-nums text-zinc-100",children:e.totalDuration||"0:00"}),(0,n.jsx)("td",{className:"px-4 py-3 text-right",children:(0,n.jsx)("button",{type:"button",onClick:()=>l(e),disabled:t,className:"inline-flex h-8 w-8 items-center justify-center rounded-full border border-white/10 bg-white/5 text-zinc-300 transition hover:border-red-400/40 hover:bg-red-500/10 hover:text-red-100 disabled:cursor-not-allowed disabled:opacity-60","aria-label":"Remove channel",children:t?(0,n.jsx)(Z.Z,{className:"h-4 w-4 animate-spin"}):(0,n.jsx)(eC.Z,{className:"h-4 w-4"})})})]},e.id)}),c&&(0,n.jsx)(e3,{count:3})]})]})})]})},tt=e=>{let{channel:t,isTracking:a,onTrack:s}=e;return(0,n.jsxs)("article",{className:"group flex h-full w-[300px] min-w-[300px] flex-none snap-start flex-col overflow-hidden rounded-2xl border border-white/10 bg-[#1b1b1b] shadow-lg shadow-black/20 transition hover:border-[var(--brand-accent)]/30",children:[(0,n.jsx)("div",{className:"relative aspect-video overflow-hidden bg-zinc-900",children:(0,n.jsx)("a",{href:t.url||"#",target:"_blank",rel:"noopener noreferrer",children:t.thumbnail?(0,n.jsx)("img",{src:t.thumbnail,alt:t.name||"Suggested channel",loading:"lazy",className:"h-full w-full object-cover transition duration-300 group-hover:scale-105"}):(0,n.jsx)("div",{className:"flex h-full w-full items-center justify-center bg-zinc-900/60",children:(0,n.jsx)("div",{className:"flex h-16 w-16 items-center justify-center overflow-hidden rounded-full bg-zinc-800 text-zinc-400",children:(0,n.jsx)(eM,{src:t.avatar,alt:t.name})})})})}),(0,n.jsxs)("div",{className:"flex flex-1 flex-col p-3.5",children:[(0,n.jsxs)("div",{className:"min-h-[58px]",children:[(0,n.jsxs)("a",{href:t.url||"#",target:"_blank",rel:"noopener noreferrer",className:"group/suggested-channel inline-flex max-w-full items-center gap-1.5",children:[(0,n.jsx)("h2",{className:"line-clamp-2 text-sm font-semibold leading-snug text-white transition group-hover:text-[var(--brand-accent)]",children:t.name||"Unknown channel"}),t.url&&(0,n.jsx)(ek.Z,{className:"h-3.5 w-3.5 shrink-0 text-zinc-500 opacity-0 transition group-hover/suggested-channel:translate-x-0.5 group-hover/suggested-channel:-translate-y-0.5 group-hover/suggested-channel:opacity-100"})]}),(0,n.jsx)("p",{className:"mt-1 truncate text-xs text-zinc-400",children:t.handle||t.channelId})]}),(0,n.jsxs)("div",{className:"mt-2 grid grid-cols-3 rounded-2xl border border-white/10 bg-black/20 px-2 py-2",children:[(0,n.jsxs)("div",{className:"flex flex-col items-center justify-center text-center",children:[(0,n.jsxs)("div",{className:"flex items-center gap-1 text-sm font-semibold text-white",children:[(0,n.jsx)(ez.Z,{className:"h-3 w-3"}),t.subscribersText||t.subscribers||"0"]}),(0,n.jsx)("span",{className:"mt-0.5 text-[11px] text-zinc-400",children:"subs"})]}),(0,n.jsxs)("div",{className:"flex flex-col items-center justify-center border-x border-white/10 text-center",children:[(0,n.jsxs)("div",{className:"flex items-center gap-1 text-sm font-semibold text-white",children:[(0,n.jsx)(eT.Z,{className:"h-3 w-3"}),t.videosText||t.videos||"0"]}),(0,n.jsx)("span",{className:"mt-0.5 text-[11px] text-zinc-400",children:"videos"})]}),(0,n.jsxs)("div",{className:"flex flex-col items-center justify-center text-center",children:[(0,n.jsxs)("div",{className:"flex items-center gap-1 text-sm font-semibold text-white",children:[(0,n.jsx)(e_.Z,{className:"h-3 w-3"}),t.avgViewsText||t.totalViewsText||"0"]}),(0,n.jsx)("span",{className:"mt-0.5 text-[11px] text-zinc-400",children:"views"})]})]}),(0,n.jsxs)("div",{className:"mt-auto flex items-center justify-between gap-2 pt-3",children:[(0,n.jsxs)("a",{href:t.url||"#",target:"_blank",rel:"noopener noreferrer",className:"group/channel flex min-w-0 items-center gap-2 rounded-full pr-1 transition ".concat(t.url?"hover:bg-white/5":"pointer-events-none"),children:[(0,n.jsx)("div",{className:"flex h-9 w-9 shrink-0 items-center justify-center overflow-hidden rounded-full bg-zinc-800 text-zinc-400",children:(0,n.jsx)(eM,{src:t.avatar,alt:t.name})}),(0,n.jsxs)("div",{className:"min-w-0",children:[(0,n.jsx)("p",{className:"truncate text-xs font-semibold text-white",children:t.handle||t.name||t.channelId}),(0,n.jsxs)("p",{className:"truncate text-xs font-normal text-zinc-400",children:[t.subscribersText||t.subscribers||"0"," subscribers"]}
1)]})]}),(0,n.jsxs)("button",{type:"button",onClick:()=>s(t),disabled:a,className:"flex h-9 shrink-0 items-center gap-1.5 rounded-full border border-white/10 px-3 text-xs font-semibold text-white transition hover:border-[var(--brand-accent)]/40 hover:bg-[var(--brand-accent)]/10 disabled:cursor-not-allowed disabled:opacity-60",children:[a?(0,n.jsx)(Z.Z,{className:"h-3.5 w-3.5 animate-spin"}):(0,n.jsx)(R.Z,{className:"h-3.5 w-3.5"}),a?"Tracking...":"Track channel"]})]})]})]})},ta=e=>{let{suggestions:t,isLoading:a,error:s,trackingSuggestedChannelIds:r,onRefresh:l,onTrack:i}=e,c=t.length>0;return(0,n.jsx)("div",{className:"mb-5 rounded-2xl border border-white/10 bg-zinc-950/45 px-4 shadow-xl shadow-black/20",children:(0,n.jsx)(ep.UQ,{type:"single",collapsible:!0,defaultValue:"suggested-channels",className:"w-full",children:(0,n.jsxs)(ep.Qd,{value:"suggested-channels",className:"border-none",children:[(0,n.jsx)(ep.o4,{className:"py-3 text-sm font-semibold text-white hover:no-underline",children:"Suggested channels"}),(0,n.jsxs)(ep.vF,{className:"pb-3",children:[(0,n.jsx)("div",{className:"mb-3 flex justify-end",children:(0,n.jsxs)("button",{type:"button",onClick:l,disabled:a,className:"inline-flex h-8 items-center justify-center gap-1.5 rounded-full border border-white/10 bg-white/5 px-3 text-xs font-medium text-zinc-200 transition hover:border-[var(--brand-accent)]/40 hover:bg-[var(--brand-accent)]/10 hover:text-white disabled:cursor-not-allowed disabled:opacity-60",children:[(0,n.jsx)(eI.Z,{className:"h-3.5 w-3.5 ".concat(a?"animate-spin":"")}),"Refresh"]})}),a&&!c&&(0,n.jsx)("div",{className:"flex gap-4 overflow-x-auto pb-2 pr-1",children:[0,1,2].map(e=>(0,n.jsxs)("div",{className:"w-[300px] min-w-[300px] flex-none overflow-hidden rounded-2xl border border-white/10 bg-[#1b1b1b] p-3.5",children:[(0,n.jsx)("div",{className:"mb-3 h-36 animate-pulse rounded-lg bg-white/10"}),(0,n.jsx)("div",{className:"mb-2 h-5 animate-pulse rounded-lg bg-white/10"}),(0,n.jsx)("div",{className:"mb-3 h-4 w-2/3 animate-pulse rounded-lg bg-white/10"}),(0,n.jsx)("div",{className:"h-9 animate-pulse rounded-full bg-white/10"})]},"tracking-channel-suggestion-skeleton-".concat(e)))}),!a&&c&&(0,n.jsx)("div",{className:"flex snap-x snap-mandatory gap-4 overflow-x-auto pb-2 pr-1 scrollbar-thin scrollbar-track-transparent scrollbar-thumb-white/10 hover:scrollbar-thumb-white/20 [&::-webkit-scrollbar]:h-1.5 [&::-webkit-scrollbar-track]:bg-transparent [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-white/10 hover:[&::-webkit-scrollbar-thumb]:bg-white/20",children:t.map(e=>{let t=e.channelId||e.id,a=r.has(t);return(0,n.jsx)(tt,{channel:e,isTracking:a,onTrack:i},"tracking-channel-suggestion-".concat(t))})}),!a&&!c&&(0,n.jsx)("div",{className:"rounded-xl border border-white/10 bg-black/20 px-3 py-4 text-sm text-zinc-400",children:s||"No suggestions yet. Add tracked channels with synced videos, then refresh to discover related channels."})]})]})})})},tn=e=>{let{open:t,value:a,selectedChannel:s,searchResults:r,isSearchingChannels:l,searchError:i,isSaving:c,onOpenChange:o,onChange:d,onSelectChannel:h,onSubmit:u}=e;return(0,n.jsx)(_.Vq,{open:t,onOpenChange:o,children:(0,n.jsxs)(_.cZ,{className:"border-white/10 bg-zinc-950 text-white sm:max-w-lg",children:[(0,n.jsx)(_.fK,{children:(0,n.jsx)(_.$N,{children:"Add Channel"})}),(0,n.jsxs)("div",{className:"space-y-4",children:[(0,n.jsxs)("div",{className:"space-y-1.5",children:[(0,n.jsx)(L._,{htmlFor:"tracking-channel-input",className:"text-xs text-zinc-400",children:"Search channel or enter @handle"}),(0,n.jsxs)("div",{className:"relative",children:[(0,n.jsx)(y.Z,{className:"pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-zinc-500"}),(0,n.jsx)(I.I,{id:"tracking-channel-input",value:a,onChange:e=>d(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),u())},placeholder:"@channel or channel name",className:"border-white/10 bg-black/30 pl-9 text-white placeholder:text-zinc-500 focus-visible:ring-[var(--brand-accent)]"})]}),(0,n.jsxs)("p",{className:"text-xs leading-relaxed text-zinc-500",children:["Channel tracking currently supports channels with up to ",2e3," videos."]})]}),s&&(0,n.jsxs)("div",{className:"flex items-center gap-3 rounded-2xl border border-[var(--brand-accent)]/30 bg-[var(--brand-accent)]/10 p-3",children:[(0,n.jsx)("div",{className:"flex h-10 w-10 shrink-0 items-center justify-center overflow-hidden rounded-full bg-zinc-800 text-zinc-400",children:(0,n.jsx)(eM,{src:s.avatar,alt:s.name})}),(0,n.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,n.jsx)("p",{className:"truncate text-sm font-semibold text-white",children:s.name}),(0,n.jsx)("p",{className:"truncate text-xs text-zinc-400",children:[s.handle,s.subscribersText?"".concat(s.subscribersText," subscribers"):null].filter(
1Boolean).join(" - ")}),s.isAlreadyTracked&&(0,n.jsx)("p",{className:"mt-1 text-xs font-medium text-amber-300",children:"Already added in this database"})]}),(0,n.jsx)("button",{type:"button",onClick:()=>d(""),className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-full text-zinc-400 transition hover:bg-white/10 hover:text-white","aria-label":"Clear selected channel",children:(0,n.jsx)(S.Z,{className:"h-4 w-4"})})]}),!s&&!/youtube\.com\/channel\//i.test(a.trim())&&(l||i||r.length>0||a.trim().length>=2)&&(0,n.jsxs)("div",{className:"max-h-72 overflow-y-auto rounded-2xl border border-white/10 bg-black/20 p-1.5 scrollbar-thin scrollbar-track-transparent scrollbar-thumb-white/10",children:[l&&(0,n.jsxs)("div",{className:"flex items-center justify-center gap-2 px-3 py-4 text-sm text-zinc-400",children:[(0,n.jsx)(Z.Z,{className:"h-4 w-4 animate-spin"}),"Searching channels"]}),!l&&i&&(0,n.jsx)("div",{className:"px-3 py-4 text-center text-sm text-red-300",children:i}),!l&&!i&&r.map(e=>(0,n.jsxs)("button",{type:"button",onClick:()=>{e.isAlreadyTracked||h(e)},disabled:e.isAlreadyTracked,className:"flex w-full items-center gap-3 rounded-xl px-3 py-2 text-left transition ".concat(e.isAlreadyTracked?"cursor-not-allowed opacity-70":"hover:bg-white/10"),children:[(0,n.jsx)("div",{className:"flex h-10 w-10 shrink-0 items-center justify-center overflow-hidden rounded-full bg-zinc-800 text-zinc-400",children:(0,n.jsx)(eM,{src:e.avatar,alt:e.name})}),(0,n.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,n.jsx)("p",{className:"truncate text-sm font-semibold text-white",children:e.name}),(0,n.jsx)("p",{className:"truncate text-xs text-zinc-400",children:[e.handle,e.subscribersText?"".concat(e.subscribersText," subscribers"):null].filter(Boolean).join(" - ")})]}),e.isAlreadyTracked?(0,n.jsx)("span",{className:"shrink-0 rounded-full border border-amber-400/40 bg-amber-500/10 px-2 py-0.5 text-[11px] font-medium text-amber-300",children:"Already added"}):(0,n.jsx)(R.Z,{className:"h-4 w-4 shrink-0 text-[var(--brand-accent)]"})]},e.channelId)),!l&&!i&&0===r.length&&a.trim().length>=2&&(0,n.jsx)("div",{className:"px-3 py-4 text-center text-sm text-zinc-400",children:"No channels found."})]})]}),(0,n.jsxs)(_.cN,{children:[(0,n.jsx)("button",{type:"button",onClick:()=>o(!1),className:"h-10 rounded-lg border border-white/10 px-4 text-sm font-semibold text-zinc-300 transition hover:bg-white/5 hover:text-white",children:"Cancel"}),(0,n.jsxs)("button",{type:"button",onClick:u,disabled:c||(null==s?void 0:s.isAlreadyTracked)||!s&&!a.trim(),className:"flex h-10 items-center justify-center gap-2 rounded-lg bg-[var(--brand-accent)] px-4 text-sm font-semibold text-white transition hover:bg-[var(--brand-accent)] disabled:cursor-not-allowed disabled:opacity-60",children:[c?(0,n.jsx)(Z.Z,{className:"h-4 w-4 animate-spin"}):(0,n.jsx)(R.Z,{className:"h-4 w-4"}),c?"Syncing videos":(null==s?void 0:s.isAlreadyTracked)?"Already added":s?"Add selected channel":"Add channel"]})]})]})})},ts=e=>{let t=Number.parseInt(e,10);return Number.isFinite(t)?Math.min(Math.max(t,1),10):1},tr=e=>{let{value:t,onChange:a,label:s}=e;return(0,n.jsxs)("div",{className:"inline-flex h-9 shrink-0 items-center rounded-full border border-white/10 bg-black/30 p-1",children:[(0,n.jsx)("button",{type:"button",onClick:()=>a(ts(t-1)),disabled:t<=1,"aria-label":"Decrease ".concat(s),className:"flex h-7 w-7 items-center justify-center rounded-full text-zinc-400 transition hover:bg-white/10 hover:text-white disabled:cursor-not-allowed disabled:opacity-30",children:(0,n.jsx)(eP.Z,{className:"h-3.5 w-3.5"})}),(0,n.jsx)("span",{className:"min-w-8 px-1 text-center text-sm font-semibold text-white",children:t}),(0,n.jsx)("button",{type:"button",onClick:()=>a(ts(t+1)),disabled:t>=10,"aria-label":"Increase ".concat(s),className:"flex h-7 w-7 items-center justify-center rounded-full text-zinc-400 transition hover:bg-white/10 hover:text-white disabled:cursor-not-allowed disabled:opacity-30",children:(0,n.jsx)(R.Z,{className:"h-3.5 w-3.5"})})]})},tl=e=>{let{open:t,trackingId:a,isGenerating:s,onOpenChange:r,onGenerate:l}=e,[i,c]=(0,w.useState)(""),[o,d]=(0,w.useState)(""),[h,u]=(0,w.useState)([]),[x,m]=(0,w.useState)(!1),[b,g]=(0,w.useState)(""),[f,v]=(0,w.useState)(1),[p,j]=(0,w.useState)(new Map),N=(0,w.useMemo)(()=>U()(e=>d(e.trim().toLowerCase()),300),[]);(0,w.useEffect)(()=>
1{if(t)return N(i),()=>N.cancel()},[t,i,N]),(0,w.useEffect)(()=>{t||(N.cancel(),c(""),d(""),u([]),g(""),m(!1))},[t,N]),(0,w.useEffect)(()=>{j(new Map),v(1)},[a]),(0,w.useEffect)(()=>{if(!t||!a)return;let e=new AbortController,n=async()=>{m(!0),g("");try{let t=new URLSearchParams({page:"1",limit:String(50),sortBy:"name",sortDirection:"asc"});o&&t.set("search",o);let n=await fetch("/api/tools-api/video-research/v2/tracking/".concat(encodeURIComponent(a),"/channels?").concat(t.toString()),{signal:e.signal}),s=await n.json();if(!n.ok)throw Error(s.message||"Unable to load tracked channels.");u(s.channels||[])}catch(e){if((null==e?void 0:e.name)==="AbortError")return;u([]),g(e.message||"Unable to load tracked channels.")}finally{e.signal.aborted||m(!1)}};return n(),()=>e.abort()},[t,a,o]);let k=(0,w.useMemo)(()=>Array.from(p.values()),[p]),C=(0,w.useMemo)(()=>k.reduce((e,t)=>e+t.formatCount,0),[k]),z=1*C,T=C>50,P=h.length>0&&h.every(e=>p.has(e.channelId||e.id)),R=e=>{let t=e.channelId||e.id;t&&j(a=>{let n=new Map(a);return n.has(t)?n.delete(t):n.set(t,{...e,formatCount:f}),n})},V=(e,t)=>{j(a=>{let n=a.get(e);if(!n)return a;let s=new Map(a);return s.set(e,{...n,formatCount:ts(t)}),s})},F=async()=>{if(!k.length||T||s)return;let e=await l({channels:k.map(e=>({channelId:e.channelId||e.id,formatCount:e.formatCount}))});e&&r(!1)};return(0,n.jsx)(_.Vq,{open:t,onOpenChange:e=>{s||r(e)},children:(0,n.jsxs)(_.cZ,{className:"max-h-[88vh] gap-0 overflow-hidden border-white/10 bg-zinc-950 p-0 text-white sm:max-w-3xl",children:[(0,n.jsxs)(_.fK,{className:"border-b border-white/10 px-6 py-5 pr-12",children:[(0,n.jsx)(_.$N,{children:"Advanced formats"}),(0,n.jsx)(_.Be,{children:"Choose tracked channels and control how many proven formats to create from each one."})]}),(0,n.jsxs)("div",{className:"grid min-h-0 gap-5 px-6 py-5 md:grid-cols-[minmax(0,1.05fr)_minmax(280px,0.95fr)]",children:[(0,n.jsxs)("section",{className:"min-w-0",children:[(0,n.jsxs)("div",{className:"mb-3 flex items-end justify-between gap-3",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)(L._,{htmlFor:"advanced-format-channel-search",className:"text-sm font-semibold text-white",children:"Tracked channels"}),(0,n.jsx)("p",{className:"mt-0.5 text-xs text-zinc-500",children:"Search within this tracking database."})]}),h.length>0&&(0,n.jsx)("button",{type:"button",onClick:()=>{j(e=>{let t=new Map(e);return h.forEach(e=>{let a=e.channelId||e.id;a&&(P?t.delete(a):t.has(a)||t.set(a,{...e,formatCount:f}))}),t})},className:"shrink-0 text-xs font-medium text-[var(--brand-accent)] transition hover:text-white",children:P?"Clear visible":"Select visible"})]}),(0,n.jsxs)("div",{className:"relative mb-3",children:[(0,n.jsx)(y.Z,{className:"pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-zinc-500"}),(0,n.jsx)(I.I,{id:"advanced-format-channel-search",value:i,onChange:e=>c(e.target.value),placeholder:"Search channel name or handle",className:"border-white/10 bg-black/30 pl-9 pr-9 text-white placeholder:text-zinc-500 focus-visible:ring-[var(--brand-accent)]"}),i&&(0,n.jsx)("button",{type:"button",onClick:()=>{c(""),d("")},"aria-label":"Clear channel search",className:"absolute right-2 top-1/2 flex h-7 w-7 -translate-y-1/2 items-center justify-center rounded-full text-zinc-500 transition hover:bg-white/10 hover:text-white",children:(0,n.jsx)(S.Z,{className:"h-3.5 w-3.5"})})]}),(0,n.jsxs)(ew.x,{type:"hover",scrollHideDelay:350,className:"h-[350px] rounded-2xl border border-white/10 bg-black/20",viewportClassName:"p-1.5 pr-3",scrollBarClassName:"w-1.5 border-l-0 p-px",scrollBarThumbClassName:"bg-white/[0.15] dark:bg-white/[0.15]",children:[x&&(0,n.jsxs)("div",{className:"flex h-32 items-center justify-center gap-2 text-sm text-zinc-400",children:[(0,n.jsx)(Z.Z,{className:"h-4 w-4 animate-spin"}),"Loading channels"]}),!x&&b&&(0,n.jsx)("div",{className:"flex h-32 items-center justify-center px-4 text-center text-sm text-red-300",children:b}),!x&&!b&&h.map(e=>{let t=e.channelId||e.id,a=p.has(t);return(0,n.jsxs)("button",{type:"button",onClick:()=>R(e),"aria-pressed":a,className:"flex w-full items-center gap-3 rounded-xl px-3 py-2.5 text-left transition ".concat(a?"bg-[var(--brand-accent)]/10":"hover:bg-white/5"),children:[(0,n.jsx)("span",{className:"flex h-5 w-5 shrink-0 items-center justify-center rounded-md border transition ".concat(a?"border-[var(--brand-accent)] bg-[var(--brand-accent)] text-white":"border-white/15 bg-black/30 text-transparent"),children:(0,n.jsx)(eR.Z,{className:"h-3.5 w-3.5"})}),(0,n.jsx)("span",{className:"flex h-10 w-10 shrink-0 items-center justify-center overflow-hidden rounded-full bg-zinc-800 text-zinc-400",children:(0,n.jsx)(eM,{src:e.avatar,alt:e.name})}),(0,n.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,n.jsx)("span",{className:"block truncate text-sm font-semibold text-white",children:e.name}),(0,n.jsx)("span",{className:"block truncate text-xs text-zinc-500",children:[e.handle,e.subscribersText?"".concat(e.subscribersText," subscribers"):null].filter(
1Boolean).join(" - ")||"Channel details unavailable"})]})]},t)}),!x&&!b&&0===h.length&&(0,n.jsx)("div",{className:"flex h-32 items-center justify-center px-4 text-center text-sm text-zinc-400",children:o?"No tracked channels match this search.":"No tracked channels available."})]})]}),(0,n.jsxs)("section",{className:"min-w-0 space-y-4",children:[(0,n.jsxs)("div",{className:"rounded-2xl border border-white/10 bg-white/[0.035] p-4",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{className:"text-sm font-semibold text-white",children:"Default per channel"}),(0,n.jsx)("p",{className:"mt-0.5 text-xs text-zinc-500",children:"Used when selecting a channel."})]}),(0,n.jsx)(tr,{value:f,onChange:v,label:"default formats per channel"})]}),(0,n.jsx)("button",{type:"button",onClick:()=>{j(e=>{let t=new Map;return e.forEach((e,a)=>{t.set(a,{...e,formatCount:f})}),t})},disabled:0===k.length,className:"mt-3 text-xs font-medium text-[var(--brand-accent)] transition hover:text-white disabled:cursor-not-allowed disabled:text-zinc-600",children:"Apply default to selected channels"})]}),(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{className:"mb-2 flex items-center justify-between gap-3",children:[(0,n.jsx)("p",{className:"text-sm font-semibold text-white",children:"Selected channels"}),(0,n.jsxs)("span",{className:"text-xs text-zinc-500",children:[k.length," selected"]})]}),(0,n.jsxs)(ew.x,{type:"hover",scrollHideDelay:350,className:"h-[235px] rounded-2xl border border-white/10 bg-black/20",viewportClassName:"p-1.5 pr-3",scrollBarClassName:"w-1.5 border-l-0 p-px",scrollBarThumbClassName:"bg-white/[0.15] dark:bg-white/[0.15]",children:[0===k.length&&(0,n.jsx)("div",{className:"flex h-full min-h-[220px] items-center justify-center px-5 text-center text-sm leading-6 text-zinc-500",children:"Select one or more tracked channels to configure their format counts."}),k.map(e=>{let t=e.channelId||e.id;return(0,n.jsxs)("div",{className:"flex items-center gap-2 rounded-xl px-2 py-2 hover:bg-white/[0.035]",children:[(0,n.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,n.jsx)("p",{className:"truncate text-sm font-medium text-white",children:e.name}),(0,n.jsx)("p",{className:"truncate text-xs text-zinc-500",children:e.handle||e.channelId})]}),(0,n.jsx)(tr,{value:e.formatCount,onChange:e=>V(t,e),label:"formats for ".concat(e.name)}),(0,n.jsx)("button",{type:"button",onClick:()=>R(e),"aria-label":"Remove ".concat(e.name),className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full text-zinc-500 transition hover:bg-white/10 hover:text-white",children:(0,n.jsx)(S.Z,{className:"h-3.5 w-3.5"})})]},t)})]})]})]})]}),(0,n.jsxs)(_.cN,{className:"items-center border-t border-white/10 bg-black/20 px-6 py-4 sm:justify-between sm:space-x-4",children:[(0,n.jsxs)("div",{className:"text-left",children:[(0,n.jsxs)("p",{className:"text-sm font-semibold text-white",children:[C," format",1===C?"":"s"]}),(0,n.jsxs)("p",{className:"text-xs text-zinc-500",children:[z," credit",1===z?"":"s"," total"]}),T&&(0,n.jsxs)("p",{className:"mt-1 text-xs text-red-300",children:["Choose no more than ",50," formats per request."]})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("button",{type:"button",onClick:()=>r(!1),disabled:s,className:"h-10 rounded-full border border-white/10 px-4 text-sm font-semibold text-zinc-300 transition hover:bg-white/5 hover:text-white disabled:cursor-not-allowed disabled:opacity-50",children:"Close"}),(0,n.jsxs)("button",{type:"button",onClick:F,disabled:!k.length||T||s,className:"flex h-10 items-center gap-2 rounded-full bg-[var(--brand-accent)] px-4 text-sm font-semibold text-white disabled:cursor-not-allowed disabled:opacity-50",children:[s&&(0,n.jsx)(Z.Z,{className:"h-4 w-4 animate-spin"}),s?"Generating formats":C?"Generate ".concat(C," formats"):"Generate formats"]})]})]})]})})};var ti=e=>{var t;let{trackingId:a}=e,s=(0,ej.useRouter)(),r=eU(a),[l,i]=(0,w.useState)(!1),[c,o]=(0,w.useState)(null),[d,h]=(0,w.useState)(null),[u,x]=(0,w.useState)(new Set),[m,b]=(0,w.useState)(!1),g="channels"===r.activeTab,f="videos"===r.activeTab,v="formats"===r.activeTab,N=g?r.channelsPagination.total:f?r.videosPagination.total:r.formats.length,C=g?"channels":f?"videos":"formats";(0,w.useEffect)(()=>{let e=r.videos.filter(e=>e.isSaved).map(e=>
1e.videoId||e.id).filter(Boolean);e.length&&x(t=>{let a=new Set(t);return e.forEach(e=>a.add(e)),a})},[r.videos]);let z=e=>{o(e),i(!0)};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden px-6 py-5",children:[(0,n.jsxs)("div",{className:"mx-auto w-full max-w-6xl shrink-0",children:[(0,n.jsxs)("div",{className:"mb-3 flex items-center gap-3",children:[(0,n.jsx)("button",{type:"button",onClick:()=>s.push("/tools/video-research/v2/tracking"),className:"flex h-10 w-10 shrink-0 items-center justify-center rounded-full border border-white/10 bg-white/5 text-zinc-300 transition hover:border-[var(--brand-accent)]/40 hover:bg-[var(--brand-accent)]/10 hover:text-white","aria-label":"Back to tracking databases",children:(0,n.jsx)(j.Z,{className:"h-4 w-4"})}),(0,n.jsxs)("div",{className:"min-w-0",children:[(0,n.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,n.jsx)(eZ.Z,{className:"h-4 w-4 shrink-0 text-[var(--brand-accent)]"}),(0,n.jsx)("h1",{className:"truncate text-lg font-semibold text-white",children:(null===(t=r.database)||void 0===t?void 0:t.name)||(r.isLoadingDatabase?"Loading database":"Channel database")})]}),(0,n.jsxs)("p",{className:"mt-0.5 text-xs text-zinc-500",children:[N||0," ",C]})]})]}),(0,n.jsxs)("form",{onSubmit:r.submitSearch,className:"flex w-full flex-col gap-2 rounded-2xl border border-white/10 bg-zinc-950/70 p-2 shadow-xl shadow-black/20 lg:flex-row lg:items-center lg:rounded-full",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("button",{type:"button",onClick:()=>r.setTab("channels"),className:eW(g),children:"Channels"}),(0,n.jsx)("button",{type:"button",onClick:()=>r.setTab("videos"),className:eW(f),children:"Videos"})]}),!v&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"relative flex-1",children:[(0,n.jsx)(y.Z,{className:"pointer-events-none absolute left-4 top-1/2 h-4 w-4 -translate-y-1/2 text-zinc-500"}),(0,n.jsx)("input",{type:"text",placeholder:r.activeSearchPlaceholder,value:r.activeSearchValue,onChange:e=>r.handleSearchChange(e.target.value),className:"h-11 w-full rounded-full bg-transparent pl-11 pr-10 text-sm text-white outline-none placeholder:text-zinc-500"}),r.activeSearchValue&&(0,n.jsx)("button",{type:"button",onClick:r.clearSearch,className:"absolute right-2 top-1/2 flex h-7 w-7 -translate-y-1/2 items-center justify-center rounded-full text-zinc-500 transition hover:bg-white/10 hover:text-white","aria-label":"Clear search",children:(0,n.jsx)(S.Z,{className:"h-4 w-4"})})]}),(0,n.jsxs)("button",{type:"button",onClick:()=>r.setShowFilters(e=>!e),className:"flex h-11 shrink-0 items-center gap-2 rounded-full border px-4 text-sm font-medium transition ".concat(r.showFilters?"border-[var(--brand-accent)]/40 bg-[var(--brand-accent)]/10 text-white":"border-white/10 bg-white/5 text-zinc-200 hover:border-[var(--brand-accent)]/40 hover:bg-[var(--brand-accent)]/10 hover:text-white"),children:[(0,n.jsx)(k.Z,{className:"h-4 w-4"}),"Filters"]})]}),g&&(0,n.jsxs)("button",{type:"button",onClick:()=>r.setAddChannelDialogOpen(!0),className:"flex h-11 shrink-0 items-center gap-2 rounded-full bg-[var(--brand-accent)] px-4 text-sm font-semibold text-white transition hover:bg-[var(--brand-accent)]",children:[(0,n.jsx)(R.Z,{className:"h-4 w-4"}),"Add channel"]}),v&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"flex-1"}),(0,n.jsx)("button",{type:"button",onClick:()=>b(!0),disabled:r.isGeneratingFormats,className:"h-10 shrink-0 rounded-full border border-white/10 bg-white/5 px-3.5 text-sm font-medium text-zinc-300 transition hover:border-[var(--brand-accent)]/40 hover:text-white disabled:cursor-not-allowed disabled:opacity-50",children:"Advanced"}),(0,n.jsxs)("button",{type:"button",onClick:()=>r.generateFormats(),disabled:r.isGeneratingFormats,"aria-label":"Generate format for ".concat(10," credits"),className:"flex h-10 shrink-0 items-center gap-2 rounded-full bg-[var(--brand-accent)] px-3.5 text-sm font-semibold text-white transition hover:bg-[var(--brand-accent)] disabled:cursor-not-allowed disabled:opacity-70",children:[r.isGeneratingFormats&&(0,n.jsx)(Z.Z,{className:"h-3.5 w-3.5 animate-spin"}),r.isGeneratingFormats?"Generating":"Generate format",(0,n.jsxs)("span",{className:"text-xs font-medium text-white/70",children:[10," credits"]})]})]})]}
1),r.showFilters&&(0,n.jsx)(e5,{activeTab:r.activeTab,channelFilters:r.channelFilters,videoFilters:r.videoFilters,setChannelFilters:r.setChannelFilters,setVideoFilters:r.setVideoFilters,onClear:r.clearFilters})]}),(0,n.jsx)("div",{className:"mt-6 min-h-0 w-full flex-1 ".concat(v?"mx-auto max-w-6xl":""),children:(0,n.jsxs)(ew.x,{viewportRef:r.scrollRef,type:"hover",scrollHideDelay:350,className:"h-full",viewportClassName:"pr-2",scrollBarClassName:"w-1.5 border-l-0 p-px opacity-0 transition-opacity duration-200 data-[state=visible]:opacity-100",scrollBarThumbClassName:"bg-white/[0.15] transition-colors hover:bg-white/25 dark:bg-white/[0.15] dark:hover:bg-white/25",children:[g&&(0,n.jsx)(ta,{suggestions:r.channelSuggestions,isLoading:r.isLoadingChannelSuggestions,error:r.channelSuggestionsError,trackingSuggestedChannelIds:r.trackingSuggestedChannelIds,onRefresh:r.refreshChannelSuggestions,onTrack:r.trackSuggestedChannel}),g&&r.channels.length>0&&(0,n.jsx)(te,{channels:r.channels,pagination:r.channelsPagination,filters:r.channelFilters,setFilters:r.setChannelFilters,onDelete:r.deleteChannel,deletingChannelIds:r.deletingChannelIds,isLoadingMore:r.isLoadingChannels}),g&&r.isLoadingChannels&&0===r.channels.length&&(0,n.jsx)(e9,{}),g&&!r.isLoadingChannels&&0===r.channels.length&&(0,n.jsx)("div",{className:"rounded-2xl border border-white/10 bg-zinc-950/50 p-8 text-center text-sm text-zinc-400",children:"No tracked channels found."}),g&&r.channelsPagination.page<r.channelsPagination.totalPages&&(0,n.jsx)("div",{ref:r.channelsLoadMoreRef,className:"h-8"}),f&&r.videos.length>0&&(0,n.jsxs)("div",{className:p,children:[r.videos.map(e=>{let t=e.videoId||e.id,a=!!(e.isSaved||u.has(t));return(0,n.jsx)(eO,{video:e,onSave:z,isSaved:a,actionLabel:a?"Manage":"Save video"},e.id||e.videoId)}),r.isLoadingVideos&&[0,1,2].map(e=>(0,n.jsx)(eQ,{},"tracking-video-loading-more-".concat(e)))]}),f&&r.isLoadingVideos&&0===r.videos.length&&(0,n.jsx)("div",{className:p,children:[0,1,2,3,4,5].map(e=>(0,n.jsx)(eQ,{},"tracking-video-loading-".concat(e)))}),f&&!r.isLoadingVideos&&0===r.videos.length&&(0,n.jsx)("div",{className:"rounded-2xl border border-white/10 bg-zinc-950/50 p-8 text-center text-sm text-zinc-400",children:"No tracked videos found."}),f&&r.videosPagination.page<r.videosPagination.totalPages&&(0,n.jsx)("div",{ref:r.videosLoadMoreRef,className:"h-8"}),v&&r.isLoadingFormats&&(0,n.jsx)("div",{className:"space-y-4",children:[0,1,2].map(e=>(0,n.jsx)("div",{className:"h-48 animate-pulse rounded-2xl border border-white/10 bg-white/[0.03]"},"format-loading-".concat(e)))}),v&&!r.isLoadingFormats&&r.formats.length>0&&(0,n.jsxs)("div",{children:[(0,n.jsx)("h2",{className:"mb-4 text-lg font-semibold text-white",children:"Winning formats from tracked channels"}),(0,n.jsx)("div",{className:"space-y-4",children:r.formats.map(e=>(0,n.jsx)(eG,{format:e,onOpen:h},e.id))})]}),v&&!r.isLoadingFormats&&0===r.formats.length&&(0,n.jsxs)("div",{className:"rounded-2xl border border-dashed border-white/10 bg-zinc-950/40 p-10 text-center",children:[(0,n.jsx)("p",{className:"text-sm font-medium text-zinc-300",children:"No formats generated yet."}),(0,n.jsx)("p",{className:"mt-1 text-xs text-zinc-500",children:"Generate formats from proven titles across tracked and suggested channels."})]})]})}),(0,n.jsx)(tn,{open:r.addChannelDialogOpen,value:r.channelInput,selectedChannel:r.selectedAddChannel,searchResults:r.channelSearchResults,isSearchingChannels:r.isSearchingChannelResults,searchError:r.channelSearchError,isSaving:r.isAddingChannel,onOpenChange:r.handleAddChannelDialogOpenChange,onChange:r.handleAddChannelInputChange,onSelectChannel:r.selectChannelSearchResult,onSubmit:r.addChannel}),(0,n.jsx)(tl,{open:m,trackingId:a,isGenerating:r.isGeneratingFormats,onOpenChange:b,onGenerate:r.generateFormats})]}),(0,n.jsx)(A,{open:l,video:c,onOpenChange:i,onSaved:e=>{(null==e?void 0:e.videoId)&&(x(t=>{let a=new Set(t);return a.add(e.videoId),a}),r.handleTrackedVideoSaved(e),o(t=>((null==t?void 0:t.videoId)||(null==t?void 0:t.id))!==e.videoId?t:{...t,isSaved:!0,savedVideoRecordId:e.id,note:e.note||null,tags:e.tags||[],folders:e.folders||[]}))}}),(0,n.jsx)(e$,{format:d,open:!!d,onOpenChange:e=>{e||h(null)}})]})},tc=(0,w.memo)(e=>{let{onCreate:t}=e;return(0,n.jsxs)("button",{type:"button",onClick:t,className:"flex min-h-[88px] w-full flex-col items-center justify-center gap-2 rounded-2xl border border-dashed border-white/20 bg-[#1b1b1b] p-4 text-center transition hover:border-[var(--brand-accent)]/40 hover:bg-[#1f1f1f]",children:[(0,n.jsx)("span",{className:"flex h-8 w-8 items-center justify-center rounded-full border border-white/20 bg-white/5 text-zinc-200",children:(0,n.jsx)(R.Z,{className:"h-4 w-4"})}),(0,n.jsx)("span",{className:"text-xs font-semibold text-zinc-300",children:"Create Channel Database"})]})}),to=(0,w.memo)(e=>{let{folder:t,onOpen:a}=e;return(0,n.jsxs)("button",{type:"button",onClick:()=>a(t),className:"flex w-full flex-col items-start gap-2 rounded-2xl border border-white/10 bg-[#1b1b1b] p-4 text-left transition hover:border-[var(--brand-accent)]/40 hover:bg-[#1f1f1f]",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2 text-white",children:[(0,n.jsx)(N.Z,{className:"h-4 w-4 text-[var(--brand-accent)]"}),(0,n.jsx)("span",{className:"truncate text-sm font-semibold",children:t.name||"Untitled folder"})]}),(0,n.jsxs)("p",{className:"text-xs text-zinc-400",children:["Updated ",new Date(t.updatedAt||t.createdAt||Date.now()).toLocaleDateString()]})]})}),td=a(5521),th=a(30143),tu=a(36467),tx=(0,w.memo)(e=>{let{channel:t,onOpen:a,onEdit:s,onTogglePin:r,onDelete:l,isDeleting:i=!1,isTogglingPin:c=!1}=e;return(0,n.jsxs)("article",{role:"button",tabIndex:0,onClick:()=>a(t),onKeyDown:e=>
1{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),a(t))},className:"relative flex min-h-[110px] cursor-pointer items-center justify-center rounded-2xl border border-white/10 bg-[#1b1b1b] p-6 shadow-lg shadow-black/20 transition hover:border-[var(--brand-accent)]/30",children:[t.isPinned&&(0,n.jsx)("span",{className:"absolute left-3 top-3 inline-flex items-center rounded-full border border-[var(--brand-accent)]/30 bg-[var(--brand-accent)]/10 p-1 text-[var(--brand-accent)]",children:(0,n.jsx)(th.Z,{className:"h-3 w-3"})}),(0,n.jsx)("div",{className:"max-w-[84%] text-center",children:(0,n.jsx)("p",{className:"break-words text-lg font-semibold leading-tight text-white sm:text-xl",children:t.name||"Untitled database"})}),(0,n.jsx)("div",{className:"absolute right-3 top-3",onClick:e=>e.stopPropagation(),children:(0,n.jsxs)(td.h_,{modal:!1,children:[(0,n.jsx)(td.$F,{asChild:!0,children:(0,n.jsx)("button",{type:"button",className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-full border border-white/10 bg-white/5 text-zinc-300 transition hover:border-[var(--brand-accent)]/40 hover:text-white","aria-label":"Open database actions",children:(0,n.jsx)(tu.Z,{className:"h-4 w-4"})})}),(0,n.jsxs)(td.AW,{align:"end",className:"border-white/10 bg-zinc-950 text-zinc-100",children:[(0,n.jsxs)(td.Xi,{onClick:()=>s(t),children:[(0,n.jsx)(ef.Z,{className:"mr-2 h-3.5 w-3.5"}),"Edit"]}),(0,n.jsxs)(td.Xi,{onClick:()=>r(t),disabled:c,children:[c?(0,n.jsx)(Z.Z,{className:"mr-2 h-3.5 w-3.5 animate-spin"}):(0,n.jsx)(th.Z,{className:"mr-2 h-3.5 w-3.5"}),t.isPinned?"Unpin":"Pin"]}),(0,n.jsx)(td.VD,{className:"bg-white/10"}),(0,n.jsxs)(td.Xi,{onClick:()=>l(t),disabled:i,className:"text-red-300 focus:bg-red-500/20 focus:text-red-100",children:[i?(0,n.jsx)(Z.Z,{className:"mr-2 h-3.5 w-3.5 animate-spin"}):(0,n.jsx)(eC.Z,{className:"mr-2 h-3.5 w-3.5"}),"Delete"]})]})]})})]})});let tm=()=>(0,n.jsx)("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:[0,1,2,3,4,5].map(e=>(0,n.jsx)("div",{className:"h-[92px] animate-pulse rounded-2xl border border-white/10 bg-white/5"},"folder-skeleton-".concat(e)))}),tb=()=>[0,1,2,3,4].map(e=>(0,n.jsx)("div",{className:"h-[88px] animate-pulse rounded-2xl border border-white/10 bg-white/5"},"tracking-skeleton-".concat(e)));var tg=e=>{let{controller:t}=e,{activeView:a,query:s,hasSearched:r,isSearching:l,results:i,nextToken:c,isFallbackResults:o,savedVideoIds:d,searchLoadMoreRef:h,resultsScrollRef:u,isSavedView:x,selectedFolder:m,savedFolders:b,isLoadingSavedFolders:g,savedFoldersPagination:f,foldersLoadMoreRef:v,savedVideos:w,isLoadingSavedVideos:j,savedVideosPagination:y,folderVideosLoadMoreRef:S,visibleFolderSuggestions:k,isLoadingFolderSuggestions:C,folderSuggestionsError:z,savingSuggestedVideoIds:T,isTrackingView:_,trackingChannels:I,isLoadingTrackingChannels:P,trackingPagination:R,trackingLoadMoreRef:Z,deletingTrackingChannelIds:V,togglingTrackingChannelIds:F,openSaveDialog:D,openFolder:U,saveSuggestedVideoToCurrentFolder:E,openCreateTrackingDialog:M,openTrackingDatabase:B,openTrackingEditDialog:A,toggleTrackingChannelPin:L,deleteTrackingChannel:O}=t;return(0,n.jsx)("div",{className:"mt-6 min-h-0 w-full flex-1",children:(0,n.jsxs)("div",{ref:u,className:"h-full overflow-y-auto pr-2 scrollbar-thin scrollbar-track-transparent scrollbar-thumb-white/10 hover:scrollbar-thumb-white/20 [&::-webkit-scrollbar]:w-1.5 [&::-webkit-scrollbar-track]:bg-transparent [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-white/10 hover:[&::-webkit-scrollbar-thumb]:bg-white/20",children:["search"===a&&r&&!l&&0===i.length&&(0,n.jsx)("div",{className:"rounded-2xl border border-white/10 bg-zinc-950/50 p-8 text-center text-sm text-zinc-400",children:s.trim()?o?"No exact matches were found, and there are no videos available in your saved or tracked pools yet.":"No results found. Try broadening your filters.":"No videos found in your saved videos or tracked channels yet."}),"search"===a&&i.length>0&&(0,n.jsx)(n.Fragment,{children:(0,n.jsxs)("div",{className:p,children:[i.map(e=>(0,n.jsx)(eO,{video:e,onSave:D,isSaved:d.has(e.videoId||e.id)},e.id||e.videoId||e.title)),l&&[0,1,2].map(e=>(0,n.jsx)(eQ,{},"loading-more-".concat(e)))]})}),"search"===a&&l&&0===i.length&&(0,n.jsx)("div",{className:p,children:[0,1,2,3,4,5,6,7,8,9].map(e=>(0,n.jsx)(eQ,{},"loading-".concat(e)))}),"search"===a&&c&&(0,n.jsx)("div",{ref:h,className:"h-8"}),x&&!(null==m?void 0:m.id)&&(0,n.jsxs)(n.Fragment,{children:[b.length>0&&(0,n.jsx)("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:b.map(e=>(0,n.jsx)(to,{folder:e,onOpen:U},e.id))}),g&&0===b.length&&(0,n.jsx)(tm,{}),!g&&0===b.length&&(0,n.jsx)("div",{className:"rounded-2xl border border-white/10 bg-zinc-950/50 p-8 text-center text-sm text-zinc-400",children:"No folders found."}),f.page<f.totalPages&&(0,n.jsx)("div",{ref:v,className:"h-8"})]}),x&&(null==m?void 0:m.id)&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"mb-4 flex",children:(0,n.jsxs)("div",{className:"inline-flex max-w-full items-center gap-2 rounded-full border border-white/10 bg-zinc-950/60 px-3 py-1.5",children:[(0,n.jsx)(N.Z,{className:"h-3.5 w-3.5 shrink-0 text-[var(--brand-accent)]"}),(0,n.jsx)("p",{className:"truncate text-xs font-semibold text-white",children:m.name})]})}),(0,n.jsx)("div",{className:"mb-6 rounded-2xl border border-white/10 bg-zinc-950/40 px-4",children:(0,n.jsx)(ep.UQ,{t
1ype:"single",collapsible:!0,defaultValue:"suggested-videos",className:"w-full",children:(0,n.jsxs)(ep.Qd,{value:"suggested-videos",className:"border-none",children:[(0,n.jsx)(ep.o4,{className:"py-3 text-sm font-semibold text-white hover:no-underline",children:"Suggested videos"}),(0,n.jsxs)(ep.vF,{className:"pb-3",children:[C&&(0,n.jsx)("div",{className:"flex gap-4 overflow-x-auto pb-2 pr-1",children:[0,1,2].map(e=>(0,n.jsx)("div",{className:"w-[300px] min-w-[300px] flex-none",children:(0,n.jsx)(eQ,{})},"suggested-loading-".concat(e)))}),!C&&k.length>0&&(0,n.jsx)("div",{className:"flex snap-x snap-mandatory gap-4 overflow-x-auto pb-2 pr-1 scrollbar-thin scrollbar-track-transparent scrollbar-thumb-white/10 hover:scrollbar-thumb-white/20 [&::-webkit-scrollbar]:h-1.5 [&::-webkit-scrollbar-track]:bg-transparent [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-white/10 hover:[&::-webkit-scrollbar-thumb]:bg-white/20",children:k.map(e=>{let t=e.videoId||e.id,a=T.has(t),s=d.has(t);return(0,n.jsx)("div",{className:"w-[300px] min-w-[300px] flex-none snap-start",children:(0,n.jsx)(eO,{video:e,onSave:E,isSaved:s,actionLabel:s?"Saved":a?"Saving...":"Save to folder",isActionDisabled:s||a})},"suggested-".concat(t||e.title))})}),!C&&0===k.length&&(0,n.jsx)("div",{className:"rounded-2xl border border-white/10 bg-zinc-950/50 p-4 text-xs text-zinc-400",children:z||"No suggested videos yet. Save more recent videos in this folder to improve recommendations."})]})]})})}),w.length>0&&(0,n.jsxs)("div",{className:p,children:[w.map(e=>(0,n.jsx)(eO,{video:e,onSave:D,isSaved:!0,actionLabel:"Manage"},e.id)),j&&[0,1,2].map(e=>(0,n.jsx)(eQ,{},"saved-loading-more-".concat(e)))]}),j&&0===w.length&&(0,n.jsx)("div",{className:p,children:[0,1,2,3,4,5].map(e=>(0,n.jsx)(eQ,{},"saved-loading-".concat(e)))}),!j&&0===w.length&&(0,n.jsx)("div",{className:"rounded-2xl border border-white/10 bg-zinc-950/50 p-8 text-center text-sm text-zinc-400",children:"No saved videos found in this folder."}),y.page<y.totalPages&&(0,n.jsx)("div",{ref:S,className:"h-8"})]}),_&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:[(0,n.jsx)(tc,{onCreate:M}),I.map(e=>(0,n.jsx)(tx,{channel:e,onOpen:B,onEdit:A,onTogglePin:L,onDelete:O,isDeleting:V.has(e.id),isTogglingPin:F.has(e.id)},e.id)),P&&0===I.length&&(0,n.jsx)(tb,{})]}),!P&&0===I.length&&(0,n.jsx)("div",{className:"mt-4 rounded-2xl border border-white/10 bg-zinc-950/50 p-6 text-center text-sm text-zinc-400",children:"No channel database yet."}),R.page<R.totalPages&&(0,n.jsx)("div",{ref:Z,className:"h-8"})]})]})})};let tf=()=>{let e=(0,ej.useRouter)(),t=(0,w.useRef)(null),a=(0,w.useRef)(null),n=(0,w.useRef)(null),s=(0,w.useRef)(null),r=(0,w.useRef)(null),l=(0,w.useRef)(new Set),i=(0,w.useRef)(new Set),h=(0,w.useRef)(new Map),u=(0,w.useRef)(new Map),x=(0,w.useRef)(0),m=(0,w.useRef)(0),b=(0,w.useRef)(0),g=(0,w.useRef)(0),f=(0,w.useRef)(0),v=(0,w.useRef)(new Set),p=(0,w.useRef)(new Map),j=(0,w.useRef)(0),N=(0,w.useRef)(!1),y=(0,w.useRef)(null),S=(0,w.useRef)(!1),k=(0,w.useRef)(""),C=(0,w.useRef)(!1),[z,T]=(0,w.useState)(""),[_,I]=(0,w.useState)([]),[P,R]=(0,w.useState)(!1),[Z,V]=(0,w.useState)(!1),[F,D]=(0,w.useState)(-1),[M,B]=(0,w.useState)(c),[A,L]=(0,w.useState)(!1),[O,Q]=(0,w.useState)([]),[q,G]=(0,w.useState)(null),[X,ee]=(0,w.useState)(!1),[et,ea]=(0,w.useState)(!1),[en,es]=(0,w.useState)(!1),[er,el]=(0,w.useState)(!1),[ei,ec]=(0,w.useState)(null),[eh,eu]=(0,w.useState)(new Set),[ex,em]=(0,w.useState)("tracking"),eb="saved"===ex,eg="tracking"===ex,[ef,ev]=(0,w.useState)(null),[ep,ew]=(0,w.useState)(""),[eN,ey]=(0,w.useState)(""),[eS,ek]=(0,w.useState)(""),[eC,ez]=(0,w.useState)(""),[eT,e_]=(0,w.useState)(o),[eI,eP]=(0,w.useState)(d),[eR,eZ]=(0,w.useState)(!1),[eV,eF]=(0,w.useState)([]),[eD,eU]=(0,w.useState)(new Set),[eE,eM]=(0,w.useState)([]),[eB,eA]=(0,w.useState)([]),[eL,eO]=(0,w.useState)({page:0,totalPages:0,total:0}),[eQ,eq]=(0,w.useState)({page:0,totalPages:0,total:0}),[eG,eK]=(0,w.useState)(!1),[eJ,eH]=(0,w.useState)(!1),[e$,eW]=(0,w.useState)(!1),[eY,eX]=(0,w.useState)([]),[e0,e1]=(0,w.useState)(""),[e2,e5]=(0,w.useState)(!1),[e4,e3]=(0,w.useState)(new Set),[e9,e8]=(0,w.useState)(""),[e6,e7]=(0,w.useState)(""),[te,tt]=(0,w.useState)([]),[ta,tn]=(0,w.useState)({page:0,totalPages:0,total:0}),[ts,tr]=(0,w.useState)(0),[tl,ti]=(0,w.useState)(!1),[tc,to]=(0,w.useState)(!1),[td,th]=(0,w.useState)(""),[tu,tx]=(0,w.useState)(!1),[tm,tb]=(0,w.useState)(!1),[tg,tf]=(0,w.useState)(null),[tv,tp]=(0,w.useState)(""),[tw,tj]=(0,w.useState)(!1),[tN,ty]=(0,w.useState)(!1),[tS,tk]=(0,w.useState)(new Set),[tC,tz]=(0,w.useState)(new Set),tT=(0,w.useMemo)(()=>U()(e=>ek(e.trim().toLowerCase()),300),[]),t_=(0,w.useMemo)(()=>U()(e=>ez(e.trim().toLowerCase()),300),[]),tI=(0,w.useMemo)(()=>U()(e=>e7(e.trim().toLowerCase()),300),[]),tP=(0,w.useMemo)(()=>U()(t=>{let{href:a,currentPath:n}=t;a!==n&&(k.current=a,e.replace(a,void 0,{shallow:!0,scroll:!1}
1).catch(()=>{k.current=""}))},300),[e]);(0,w.useEffect)(()=>{if(!e.isReady)return;if(e.asPath===k.current){k.current="";return}let t=eo(e.query);em(t.activeView),T(t.query),ea(!!(t.query&&t.hasSearched)),B(t.filters),L(t.showFilters),ev("saved"===t.activeView?t.selectedFolder:null),ew(t.savedFolderSearch),ek(t.savedFolderSearch.trim().toLowerCase()),ey(t.savedVideoSearch),ez(t.savedVideoSearch.trim().toLowerCase()),e_(t.savedVideoFilters),eP(t.savedMetricFilterModes),eZ(t.showSavedTagFilters),e8(t.trackingSearch),e7(t.trackingSearch.trim().toLowerCase()),y.current=t.selectedSavedTagIds,"saved"===t.activeView&&t.selectedFolder&&eV.length>0?Array.isArray(t.selectedSavedTagIds)?(eU(new Set(t.selectedSavedTagIds)),y.current=null):eU(new Set(eV.map(e=>e.id))):t.selectedFolder||eU(new Set),S.current=!!("search"===t.activeView&&t.query&&t.hasSearched),N.current=!0},[e.isReady,e.asPath]);let tR=(0,w.useMemo)(()=>eV.map(e=>e.id).filter(e=>eD.has(e)),[eV,eD]),tZ=(0,w.useMemo)(()=>eV.length>0&&tR.length===eV.length,[eV,tR.length]),tV=(0,w.useMemo)(()=>tZ?"":tR.join(","),[tZ,tR]),tF=(0,w.useMemo)(()=>{let e=new URLSearchParams;return eT.minLikes&&e.set("minLikes",eT.minLikes),eT.minOutlierScore&&e.set("minOutlierScore",eT.minOutlierScore),eT.minSubscribers&&e.set("minSubscribers",eT.minSubscribers),"any"!==eT.durationBucket&&e.set("durationBucket",eT.durationBucket),"any"!==eT.publishedRange&&e.set("publishedRange",eT.publishedRange),eT.sortBy&&"updatedAt"!==eT.sortBy&&e.set("sortBy",eT.sortBy),eT.sortDirection&&"desc"!==eT.sortDirection&&e.set("sortDirection",eT.sortDirection),e},[eT]),tD=(0,w.useMemo)(()=>tF.toString()||"__no_advanced_filters__",[tF]),tU=(0,w.useMemo)(()=>{let e=new Set([...eB.map(e=>e.videoId||e.id).filter(Boolean),...Array.from(eh)]),t=new Set;return eY.filter(a=>{let n=a.videoId||a.id;return!(!n||e.has(n)||t.has(n))&&(t.add(n),!0)})},[eY,eB,eh]),tE=async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:z;if("search"!==ex)return;let a=String(t||"").trim();z!==a&&T(a),g.current+=1,C.current=!0,R(!1),D(-1),ee(!0),e||(ea(!0),G(null),Q([]),es(!1));try{let t=await fetch("/api/tools-api/video-research/v2/search?".concat(K({query:a,filters:M,paginationToken:e}).toString())),n=await t.json();if(!t.ok)throw Error("Unable to search right now. Please try again.");let s=Array.isArray(n.results)?n.results:[];Q(t=>e?[...t,...s]:s),G(n.nextToken||null),es(!!n.isFallback);let r=s.filter(e=>null==e?void 0:e.isSaved).map(e=>e.videoId||e.id).filter(Boolean);r.length&&eu(e=>{let t=new Set(e);return r.forEach(e=>t.add(e)),t})}catch(e){E.ZP.error("Unable to search right now. Please try again.")}finally{ee(!1)}},tM=async e=>{let{page:t,searchValue:a,reset:n=!1,requestId:s}=e,r=a||"__all__",i="".concat(a||"__all__","::").concat(t);if(!(!n&&l.current.has(i))){eK(!0);try{let e=await fetch("/api/tools-api/video-research/v2/folders?".concat(J({page:t,searchValue:a}).toString())),c=await e.json();if(!e.ok)throw Error(c.message||"Unable to load folders.");if(s!==x.current)return;let o=c.folders||[],d=h.current.get(r),u=n?[]:(null==d?void 0:d.folders)||[],m=new Set(u.map(e=>e.id)),b=n?o:[...u,...o.filter(e=>!m.has(e.id))],g=c.pagination||{page:t,totalPages:t,total:o.length};h.current.set(r,{folders:b,pagination:g}),eM(b),eO(g),l.current.add(i)}catch(e){s===x.current&&E.ZP.error(e.message||"Unable to load folders.")}finally{s===x.current&&eK(!1)}}},tB=async e=>{let{page:t,searchValue:a,folderId:n,tagIds:s,advancedFilterKey:r,reset:l=!1,requestId:c}=e,o=s||"__all_tags__",d=r||"__no_advanced_filters__",h="".concat(n||"__no-folder__","::").concat(a||"__all__","::").concat(o,"::").concat(d),x="".concat(n||"__no-folder__","::").concat(a||"__all__","::").concat(o,"::").concat(d,"::").concat(t);if(!(!l&&i.current.has(x))){eH(!0);try{let e=await fetch("/api/tools-api/video-research/v2/saved-videos?".concat(H({page:t,searchValue:a,folderId:n,tagIds:s,advancedFilterKey:r}).toString())),o=await e.json();if(!e.ok)throw Error(o.message||"Unable to load saved videos.");if(c!==m.current)return;let d=o.savedVideos||[],b=u.current.get(h),g=l?[]:(null==b?void 0:b.savedVideos)||[],f=new Set(g.map(e=>e.id)),v=l?d:[...g,...d.filter(e=>!f.has(e.id))],p=o.pagination||{page:t,totalPages:t,total:d.length};u.current.set(h,{savedVideos:v,pagination:p}),eA(v),eq(p),i.current.add(x)}catch(e){c===m.current&&E.ZP.error(e.message||"Unable to load saved videos.")}finally{c===m.current&&eH(!1)}}},tA=async e=>{let{page:t,searchValue:a,reset:n=!1,requestId:s}=e,r=a||"__all__",l="".concat(a||"__all__","::").concat(t);if(!(!n&&v.current.has(l))){ti(!0);try{let e=await fetch("/api/tools-api/video-research/v2/tracking?".concat($({page:t,searchValue:a}).toString())),i=await e.json();if(!e.ok)throw Error(i.message||"Unable to load channel database.");if(s!==j.current)return;let c=i.channels||[],o=p.current.get(r),d=n?[]:(null==o?void 0:o.channels)||[],h=new Set(d.map(e=>e.id)),u=n?c:[...d,...c.filter(e=>!h.has(e.id))],x=i.pagination||{page:t,totalPages:t,total:c.length};p.current.set(r,{channels:u,pagination:x}),tt(u),tn(x),v.current.add(l)}catch(e){s===j.current&&E.ZP.error(e.message||"Unable to load channel database.")}finally{s===j.current&&ti(!1)}}},tL=async e=>{let{folderId:t,requestId:a}=e;e5(!0),e1("");try{let e=new URLSearchParams({folderId:t,seedLimit:"5",limit:"12",type:M.type,geo:M.geo,lang:M.lang});M.duration&&e.set("duration",M.duration),M.upload_date&&e.set("upload_date",M.upload_date),M.features.length&&e.set("features",M.features.join(",")),M.local&&e.set("local","1"),M.sort_by&&"shorts"!==M.type&&e.set("sort_by",M.sort_by);let n=await fetch("/api/tools-api/video-research/v2/related?".concat(e.toString())),s=await n.json();if(!n.ok)throw Error(s.message||"Unable to load suggested videos.");if(a!==f.current)return;eX(s.results||[])}catch(e){if(a!==f.current)return;eX([]),e1(e.message||"Unable to load suggested videos.")}finally{a===f.current&&e5(!1)}};(0,w.useEffect)(()=>{let e=z.trim();if("search"!==ex||X||C.current||e.length<2){V(!1),I([]),R(!1),D(-1),g.current+=1;return}let t=g.current+1;g.current=t;let a=setTimeout(async()=>{V(!0);try{let a=new URLSearchParams({query:e,limit:"8"}),n=await fetch("/api/tools-api/video-research/v2/autocomplete?".concat(a.toString())),s=await n.json().catch(()=>({suggestions:[]}));if(t!==g.current)return;if(!n.ok)throw Error(s.message||"Unable to load search suggestions.");let r=Array.isArray(s.suggestions)?s.suggestions:[];I(r),R(!0),D(-1)}catch(e){if(t!==g.current)return;I([]),R(!1)}finally{t===g.current&&V(!1)}},350);return()=>clearTimeout(a)},[ex,z,X]);let tO=()=>{R(!1),D(-1)},tQ=e=>{let t=String(e||"").trim();t&&(g.current+=1,T(t),I([]),R(!1),D(-1),tE(void 0,t))},tq=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!(null==e?void 0:e.videoId))return;
1u.current=new Map,i.current=new Set;let a=null!=ef&&!!ef.id&&(e.folders||[]).some(e=>{var t;return(null==e?void 0:null===(t=e.folder)||void 0===t?void 0:t.id)===ef.id});eu(t=>{let a=new Set(t);return a.add(e.videoId),a}),a&&eX(t=>t.filter(t=>(t.videoId||t.id)!==e.videoId)),eA(n=>{let s=n.findIndex(t=>(t.videoId||t.id)===e.videoId);if(-1===s){if(!a)return n;let s={...t||{},...e,id:e.id||(null==t?void 0:t.id)||e.videoId,videoId:e.videoId,title:(null==t?void 0:t.title)||e.title||e.videoId,url:(null==t?void 0:t.url)||"https://www.youtube.com/watch?v=".concat(e.videoId),note:e.note||null,tags:e.tags||[],folders:e.folders||[]};return[s,...n]}let r={...n[s],note:e.note||null,tags:e.tags||[],folders:e.folders||[]};if(null==ef?void 0:ef.id){let e=(r.folders||[]).some(e=>{var t;return(null==e?void 0:null===(t=e.folder)||void 0===t?void 0:t.id)===ef.id});if(!e)return n.filter((e,t)=>t!==s)}let l=[...n];return l[s]=r,l})},tG=async e=>{let t=(null==e?void 0:e.videoId)||(null==e?void 0:e.id);if(!(null==ef?void 0:ef.id)||!t){E.ZP.error("Video unavailable.");return}if(!(eh.has(t)||e4.has(t))){e3(e=>{let a=new Set(e);return a.add(t),a});try{let a=await fetch("/api/tools-api/video-research/v2/saved-videos",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({videoId:t,channelId:(null==e?void 0:e.channelId)||null,note:null,tagIds:[],folderIds:[ef.id]})}),n=await a.json();if(!a.ok)throw Error(n.message||"Unable to save video.");tq(n.savedVideo,e),E.ZP.success("Video saved to folder.")}catch(e){E.ZP.error(e.message||"Unable to save video.")}finally{e3(e=>{let a=new Set(e);return a.delete(t),a})}}},tK=e=>{let t=e6.trim().toLowerCase();return!t||String((null==e?void 0:e.name)||"").toLowerCase().includes(t)},tJ=e=>{if(!(null==e?void 0:e.id))return;let t=t=>{let a=t.findIndex(t=>t.id===e.id);if(-1===a)return t;let n=[...t];return n[a]={...n[a],...e},W(n)};tt(e=>t(e));let a=e6||"__all__",n=p.current.get(a);(null==n?void 0:n.channels)&&p.current.set(a,{...n,channels:t(n.channels)})},tH=async()=>{try{var e;let t=new URLSearchParams({page:"1",limit:"1",isPinned:"true"}),a=await fetch("/api/tools-api/video-research/v2/tracking?".concat(t.toString())),n=await a.json();if(!a.ok)throw Error(n.message||"Unable to verify pinned databases.");let s=(null==n?void 0:null===(e=n.pagination)||void 0===e?void 0:e.total)||0;return tr(s),s}catch(e){return ts}},t$=async()=>{let e=await tH();return!(e>=10)||(E.ZP.error("You can pin up to 10 channel databases."),!1)},tW=async()=>{if(!td.trim()){E.ZP.error("Data base name is required.");return}if(tu){let e=await t$();if(!e)return}tb(!0);try{let e=await fetch("/api/tools-api/video-research/v2/tracking",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:td,isPinned:tu})}),t=await e.json();if(!e.ok)throw Error(t.message||"Unable to create channel database.");let a=t.channel,n=te.some(e=>e.id===(null==a?void 0:a.id)),s=tK(a);s&&(tt(e=>{let t=e.findIndex(e=>e.id===a.id);if(-1===t)return W([a,...e]);let n=[...e];return n[t]={...n[t],...a},W(n)}),n||tn(e=>Y(e,1)));let r=e6||"__all__",l=p.current.get(r);if(null==l?void 0:l.channels){let e=l.channels.some(e=>e.id===(null==a?void 0:a.id));if(s){let t=l.channels.findIndex(e=>e.id===a.id),n=-1===t?W([a,...l.channels]):W(l.channels.map((e,n)=>n===t?{...e,...a}:e));p.current.set(r,{...l,channels:n,pagination:e?l.pagination:Y(l.pagination,1)})}}tH(),th(""),tx(!1),to(!1),E.ZP.success("Channel database created.")}catch(e){E.ZP.error(e.message||"Unable to create channel database.")}finally{tb(!1)}},tY=()=>{tf(null),tp(""),tj(!1)},tX=async()=>{if(!(null==tg?void 0:tg.id))return;let e=tv.trim();if(!e){E.ZP.error("Data base name is required.");return}let t=!!(null==tg?void 0:tg.isPinned);if(!t&&tw){let e=await t$();if(!e)return}ty(!0);try{let a=await fetch("/api/tools-api/video-research/v2/tracking?channelId=".concat(encodeURIComponent(tg.id)),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e,isPinned:tw})}),n=await a.json();if(!a.ok)throw Error(n.message||"Unable to update channel database.");let s=n.channel;tY(),tJ(s),!!(null==s?void 0:s.isPinned)!==t&&tr(e=>Math.max(e+((null==s?void 0:s.isPinned)?1:-1),0)),E.ZP.success("Channel database updated.")}catch(e){E.ZP.error(e.message||"Unable to update channel database.")}finally{ty(!1)}},t0=async e=>{if(!(null==e?void 0:e.id))return;let t=!e.isPinned;if(t){let e=await t$();if(!e)return}tk(t=>{let a=new Set(t);return a.add(e.id),a});try{let t=await fetch("/api/tools-api/video-research/v2/tracking?channelId=".concat(encodeURIComponent(e.id)),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({isPinned:!e.isPinned})}),a=await t.json();if(!t.ok)throw Error(a.message||"Unable to update pin state.");let n=a.channel;tJ(n),!!e.isPinned!=!!(null==n?void 0:n.isPinned)&&tr(e=>Math.max(e+((null==n?void 0:n.isPinned)?1:-1),0)),E.ZP.success(e.isPinned?"Channel unpinned.":"Channel pinned.")}catch(e){E.ZP.error(e.message||"Unable to update pin state.")}finally{tk(t=>{let a=new Set(t);return a.delete(e.id),a})}},t1=async e=>{if(!(null==e?void 0:e.id))return;let t=window.confirm('Delete "'.concat(e.name||"this channel",'" from tracking?'));if(t){tz(t=>{let a=new Set(t);return a.add(e.id),a});try{let t=await fetch("/api/tools-api/video-research/v2/tracking?channelId=".concat(encodeURIComponent(e.id)),{method:"DELETE"}),a=await t.json();if(!t.ok)throw Error(a.message||"Unable to delete channel database.");let n=te.some(t=>t.id===e.id);tt(t=>t.filter(t=>t.id!==e.id)),n&&tn(e=>Y(e,-1));let s=e6||"__all__",r=p.current.get(s);if(null==r?void 0:r.channels){let t=r.channels.some(t=>t.id===e.id),a=r.channels.filter(t=>t.id!==e.id);p.current.set(s,{...r,channels:a,pagination:t?Y(r.pagination,-1):r.pagination})}(null==e?void 0:e.isPinned)&&tr(e=>Math.max(e-1,0)),E.ZP.success("Channel database deleted.")}catch(e){E.ZP.error(e.message||"Unable to delete channel database.")}finally{tz(t=>{let a=new Set(t);return a.delete(e.id),a})}}};(0,w.useEffect)(()=>(tT(ep),()=>tT.cancel()),[ep,tT]),(0,w.useEffect)(()=>(t_(eN),()=>t_.cancel()),[eN,t_]),(0,w.useEffect)(()=>(tI(e9),()=>tI.cancel()),[e9,tI]),(0,w.useEffect)(()=>
1{if(!eb||(null==ef?void 0:ef.id))return;let e=eS||"__all__",t=h.current.get(e);if(t){eM(t.folders),eO(t.pagination);return}x.current+=1;let a=x.current;eM([]),eO({page:0,totalPages:0,total:0}),tM({page:1,searchValue:eS,reset:!0,requestId:a})},[ex,eb,null==ef?void 0:ef.id,eS]),(0,w.useEffect)(()=>{if(!eb||!(null==ef?void 0:ef.id))return;b.current+=1;let e=b.current,t=async()=>{eW(!0);try{let t=await fetch("/api/tools-api/video-research/v2/tags?page=1&limit=50"),a=await t.json();if(!t.ok)throw Error(a.message||"Unable to load tags.");if(e!==b.current)return;let n=a.tags||[];if(eF(n),Array.isArray(y.current)){let e=new Set(n.map(e=>e.id));eU(new Set(y.current.filter(t=>e.has(t)))),y.current=null}else eU(new Set(n.map(e=>e.id)))}catch(t){e===b.current&&E.ZP.error(t.message||"Unable to load tags.")}finally{e===b.current&&eW(!1)}};t()},[ex,eb,null==ef?void 0:ef.id]),(0,w.useEffect)(()=>{if(!eb||!(null==ef?void 0:ef.id))return;if(eV.length>0&&0===tR.length){eA([]),eq({page:0,totalPages:0,total:0});return}let e="".concat(ef.id,"::").concat(eC||"__all__","::").concat(tV||"__all_tags__","::").concat(tD),t=u.current.get(e);if(t){eA(t.savedVideos),eq(t.pagination);return}m.current+=1;let a=m.current;eA([]),eq({page:0,totalPages:0,total:0}),tB({page:1,folderId:ef.id,searchValue:eC,tagIds:tV,advancedFilterKey:tD,reset:!0,requestId:a})},[ex,eb,null==ef?void 0:ef.id,eC,tV,tD,eV.length,tR.length]),(0,w.useEffect)(()=>{if(!eb||!(null==ef?void 0:ef.id)){eX([]),e1(""),e5(!1),e3(new Set);return}f.current+=1;let e=f.current;tL({folderId:ef.id,requestId:e})},[ex,eb,null==ef?void 0:ef.id]),(0,w.useEffect)(()=>{if(!eb||!(null==ef?void 0:ef.id)||"Selected folder"!==ef.name)return;let e=!1,t=async()=>{try{var t;let a=new URLSearchParams({page:"1",limit:"1",folderId:ef.id}),n=await fetch("/api/tools-api/video-research/v2/folders?".concat(a.toString())),s=await n.json();if(!n.ok)throw Error(s.message||"Unable to load folder.");let r=null===(t=s.folders)||void 0===t?void 0:t[0];!e&&(null==r?void 0:r.id)&&ev(r)}catch(t){e||ev(e=>(null==e?void 0:e.id)===ef.id?e:ef)}};return t(),()=>{e=!0}},[eb,null==ef?void 0:ef.id,null==ef?void 0:ef.name]),(0,w.useEffect)(()=>{if(!eg)return;let e=e6||"__all__",t=p.current.get(e);if(t){tt(t.channels),tn(t.pagination);return}j.current+=1;let a=j.current;tt([]),tn({page:0,totalPages:0,total:0}),tA({page:1,searchValue:e6,reset:!0,requestId:a})},[ex,eg,e6]),(0,w.useEffect)(()=>{eg&&tH()},[ex,eg]),(0,w.useEffect)(()=>{N.current&&S.current&&"search"===ex&&z.trim()&&(S.current=!1,tE())},[ex,z,M]),(0,w.useEffect)(()=>{N.current&&("search"!==ex||X||et||z.trim()||tE(void 0,""))},[ex,et,X,z]),(0,w.useEffect)(()=>{if("search"!==ex||!q||X||!a.current||!t.current)return;let e=new IntersectionObserver(t=>{var a;(null===(a=t[0])||void 0===a?void 0:a.isIntersecting)&&(e.disconnect(),tE(q))},{root:t.current,rootMargin:"320px 0px"});return e.observe(a.current),()=>e.disconnect()},[ex,q,X,O.length]),(0,w.useEffect)(()=>{let e=eL.page>0&&eL.page<eL.totalPages;if(!eb||(null==ef?void 0:ef.id)||!e||eG||!n.current||!t.current)return;let a=new IntersectionObserver(e=>{var t;(null===(t=e[0])||void 0===t?void 0:t.isIntersecting)&&(a.disconnect(),tM({page:eL.page+1,searchValue:eS,requestId:x.current}))},{root:t.current,rootMargin:"320px 0px"});return a.observe(n.current),()=>a.disconnect()},[ex,eb,null==ef?void 0:ef.id,eG,eL.page,eL.totalPages,eS]),(0,w.useEffect)(()=>{let e=eQ.page>0&&eQ.page<eQ.totalPages,a=0===eV.length||tR.length>0;if(!eb||!(null==ef?void 0:ef.id)||!e||!a||eJ||!s.current||!t.current)return;let n=new IntersectionObserver(e=>{var t;(null===(t=e[0])||void 0===t?void 0:t.isIntersecting)&&(n.disconnect(),tB({page:eQ.page+1,folderId:ef.id,searchValue:eC,tagIds:tV,advancedFilterKey:tD,requestId:m.current}))},{root:t.current,rootMargin:"320px 0px"});return n.observe(s.current),()=>n.disconnect()},[ex,eb,null==ef?void 0:ef.id,eJ,eQ.page,eQ.totalPages,eC,tV,tD,eV.length,tR.length]),(0,w.useEffect)(()=>{let e=ta.page>0&&ta.page<ta.totalPages;if(!eg||!e||tl||!r.current||!t.current)return;let a=new IntersectionObserver(e=>{var t;(null===(t=e[0])||void 0===t?void 0:t.isIntersecting)&&(a.disconnect(),tA({page:ta.page+1,searchValue:e6,requestId:j.current}))},{root:t.current,rootMargin:"320px 0px"});return a.observe(r.current),()=>a.disconnect()},[ex,eg,tl,ta.page,ta.totalPages,e6]);let t2="search"===ex?z:"tracking"===ex?e9:(null==ef?void 0:ef.id)?eN:ep,t5="search"===ex?"Search a concept":"tracking"===ex?"Search channel database":(null==ef?void 0:ef.id)?"Search saved videos":"Search saved databases",t4=(0,w.useMemo)(()=>ed({activeView:ex,query:z,hasSearched:et,filters:M,showFilters:A,selectedFolder:ef,savedFolderSearchInput:ep,savedVideoSearchInput:eN,savedVideoFilters:eT,savedMetricFilterModes:eI,showSavedTagFilters:eR,savedTagFilters:eV,selectedSavedTagIdList:tR,pendingSavedTagIds:y.current,trackingSearchInput:e9}),[ex,z,et,M,A,ef,ep,eN,eT,eI,eR,eV,tR,e9]);return(0,w.useEffect)(()=>
1{if(e.isReady&&N.current&&t4!==e.asPath)return tP({href:t4,currentPath:e.asPath}),()=>{tP.cancel()}},[t4,tP,e.isReady,e.asPath]),{resultsScrollRef:t,searchLoadMoreRef:a,foldersLoadMoreRef:n,folderVideosLoadMoreRef:s,trackingLoadMoreRef:r,query:z,searchSuggestions:_,showSearchSuggestions:P,isLoadingSearchSuggestions:Z,activeSearchSuggestionIndex:F,filters:M,showFilters:A,results:O,nextToken:q,isSearching:X,hasSearched:et,isFallbackResults:en,saveDialogOpen:er,selectedVideo:ei,savedVideoIds:eh,activeView:ex,isSavedView:eb,isTrackingView:eg,selectedFolder:ef,savedFolderSearchInput:ep,savedVideoSearchInput:eN,savedFolderSearchQuery:eS,savedVideoSearchQuery:eC,savedVideoFilters:eT,savedMetricFilterModes:eI,showSavedTagFilters:eR,savedTagFilters:eV,selectedSavedTagFilterIds:eD,savedFolders:eE,savedVideos:eB,savedFoldersPagination:eL,savedVideosPagination:eQ,isLoadingSavedFolders:eG,isLoadingSavedVideos:eJ,isLoadingSavedTagFilters:e$,folderSuggestions:eY,folderSuggestionsError:e0,isLoadingFolderSuggestions:e2,savingSuggestedVideoIds:e4,trackingSearchInput:e9,trackingSearchQuery:e6,trackingChannels:te,trackingPagination:ta,pinnedTrackingCount:ts,isLoadingTrackingChannels:tl,createTrackingDialogOpen:tc,trackingChannelName:td,trackingChannelPinned:tu,isCreatingTrackingChannel:tm,editingTrackingChannel:tg,editingTrackingName:tv,editingTrackingPinned:tw,isUpdatingTrackingChannel:tN,togglingTrackingChannelIds:tS,deletingTrackingChannelIds:tC,selectedSavedTagIdList:tR,savedVideoTagFilterParam:tV,savedVideoAdvancedFilterKey:tD,visibleFolderSuggestions:tU,activeSearchValue:t2,activeSearchPlaceholder:t5,setFilters:B,setShowFilters:L,setSaveDialogOpen:el,setSavedVideoFilters:e_,setSavedMetricFilterModes:eP,setShowSavedTagFilters:eZ,setSelectedSavedTagFilterIds:eU,setTrackingChannelName:th,setTrackingChannelPinned:tx,setEditingTrackingName:tp,setEditingTrackingPinned:tj,updateFilter:(e,t)=>{B(a=>({...a,[e]:t}))},toggleFeature:e=>{B(t=>{let a=t.features.includes(e);return{...t,features:a?t.features.filter(t=>t!==e):[...t.features,e]}})},runSearch:tE,handleSubmit:e=>{if(e.preventDefault(),"search"===ex){if(P&&F>=0&&_[F]){tQ(_[F]);return}tE();return}if("tracking"===ex){tI.flush();return}if(ef){t_.flush();return}tT.flush()},openSaveDialog:e=>{if(eb&&(null==ef?void 0:ef.id)){let t=Array.isArray(null==e?void 0:e.folders)?e.folders:[],a=t.some(e=>{var t;return(null==e?void 0:null===(t=e.folder)||void 0===t?void 0:t.id)===ef.id});if(!a){ec({...e,folders:[...t,{folder:{id:ef.id,name:ef.name}}]}),el(!0);return}}ec(e),el(!0)},handleFolderCreated:e=>{if(!(null==e?void 0:e.id))return;let t=eE.some(t=>t.id===e.id);h.current=new Map,l.current=new Set,eM(t=>{let a=[e,...t.filter(t=>t.id!==e.id)];return a}),eO(e=>({...e,total:t?e.total:e.total+1}))},handleVideoSaved:tq,saveSuggestedVideoToCurrentFolder:tG,openCreateTrackingDialog:()=>{th(""),tx(!1),to(!0)},closeCreateTrackingDialog:()=>{to(!1),th(""),tx(!1)},handleCreateTrackingDialogOpenChange:e=>{to(e),e||(th(""),tx(!1))},createTrackingChannel:tW,openTrackingEditDialog:e=>{tf(e),tp((null==e?void 0:e.name)||""),tj(!!(null==e?void 0:e.isPinned))},closeTrackingEditDialog:tY,handleEditTrackingDialogOpenChange:e=>{e||tY()},updateTrackingChannel:tX,toggleTrackingChannelPin:t0,deleteTrackingChannel:t1,openTrackingDatabase:t=>{(null==t?void 0:t.id)&&e.push("/tools/video-research/v2/tracking/".concat(encodeURIComponent(t.id)))},handleSearchChange:e=>{if("search"===ex){C.current=!1,T(e),D(-1),e.trim().length>=2?R(!0):R(!1);return}if("tracking"===ex){e8(e);return}if(null==ef?void 0:ef.id){ey(e);return}ew(e)},handleSearchInputKeyDown:e=>{if("search"===ex){if("ArrowDown"===e.key&&P&&_.length>0){e.preventDefault(),D(e=>e>=_.length-1?0:e+1);return}if("ArrowUp"===e.key&&P&&_.length>0){e.preventDefault(),D(e=>e<=0?_.length-1:e-1);return}if("Escape"===e.key){e.preventDefault(),tO();return}"Enter"===e.key&&P&&F>=0&&_[F]&&(e.preventDefault(),tQ(_[F]))}},openSearchSuggestions:()=>{"search"===ex&&!C.current&&(z.trim().length<2||R(!0))},closeSearchSuggestions:tO,selectSearchSuggestion:tQ,clearActiveSearch:()=>{if("search"===ex){g.current+=1,I([]),R(!1),V(!1),D(-1),tE(void 0,"");return}if("tracking"===ex){e8(""),e7("");return}if(null==ef?void 0:ef.id){ey(""),ez("");return}ew(""),ek("")},openSavedView:()=>{em("saved"),L(!1)},openTrackingView:()=>{em("tracking"),L(!1),eZ(!1)},openSearchView:()=>{em("search")},openFolder:e=>{ev(e),ey(""),ez(""),eZ(!1),eF([]),eU(new Set),e3(new Set)},backToFolders:()=>{ev(null),ey(""),ez(""),eZ(!1),eF([]),eU(new Set),e3(new Set)},clearSearchFilters:()=>{B(c)},clearSavedVideoFilters:()=>{e_(o),eP(d),eU(new Set(eV.map(e=>e.id)))}}};var tv=a(36495);let tp=e=>{let t=null==e?void 0:e.slug,a=Array.isArray(t)?t:"string"==typeof t?[t]:[];return"tracking"===a[0]&&a[1]?a[1]:null},tw=()=>{var e;let t=tf();return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden px-6 py-5",children:[(0,n.jsxs)("div",{className:"mx-auto w-full max-w-5xl shrink-0",children:[(0,n.jsx)(T,{activeView:t.activeView,isSavedView:t.isSavedView,selectedFolder:t.selectedFolder,showFilters:t.showFilters,showSavedTagFilters:t.showSavedTagFilters,activeSearchValue:t.activeSearchValue,activeSearchPlaceholder:t.activeSearchPlaceholder,searchSuggestions:t.searchSuggestions,showSearchSuggestions:t.showSearchSuggestions,isLoadingSearchSuggestions:t.isLoadingSearchSuggestions,activeSearchSuggestionIndex:t.activeSearchSuggestionIndex,onSubmit:t.handleSubmit,onSearchChange:t.handleSearchChange,onSearchInputKeyDown:t.handleSearchInputKeyDown,onOpenSearchSuggestions:t.openSearchSuggestions,onCloseSearchSuggestions:t.closeSearchSuggestions,onSelectSearchSuggestion:t.selectSearchSuggestion,onClearSearch:t.clearActiveSearch,onOpenSearchView:t.openSearchView,onOpenSavedView:t.openSavedView,onOpenTrackingView:t.openTrackingView,onToggleSearchFilters:()=>t.setShowFilters(e=>!e),onToggleSavedFilters:()=>t.setShowSavedTagFilters(e=>!e),onBackToFolders:t.backToFolders}
1),"search"===t.activeView&&t.showFilters&&(0,n.jsx)(eg,{filters:t.filters,updateFilter:t.updateFilter,toggleFeature:t.toggleFeature,onClear:t.clearSearchFilters}),t.isSavedView&&(null===(e=t.selectedFolder)||void 0===e?void 0:e.id)&&t.showSavedTagFilters&&(0,n.jsx)(em,{savedVideoFilters:t.savedVideoFilters,setSavedVideoFilters:t.setSavedVideoFilters,savedMetricFilterModes:t.savedMetricFilterModes,setSavedMetricFilterModes:t.setSavedMetricFilterModes,savedTagFilters:t.savedTagFilters,selectedSavedTagFilterIds:t.selectedSavedTagFilterIds,setSelectedSavedTagFilterIds:t.setSelectedSavedTagFilterIds,isLoadingSavedTagFilters:t.isLoadingSavedTagFilters,onClear:t.clearSavedVideoFilters})]}),(0,n.jsx)(tg,{controller:t})]}),(0,n.jsx)(A,{open:t.saveDialogOpen,video:t.selectedVideo,onOpenChange:t.setSaveDialogOpen,onSaved:t.handleVideoSaved,onFolderCreated:t.handleFolderCreated}),(0,n.jsx)(ev,{open:t.createTrackingDialogOpen,mode:"create",name:t.trackingChannelName,pinned:t.trackingChannelPinned,isSaving:t.isCreatingTrackingChannel,onOpenChange:t.handleCreateTrackingDialogOpenChange,onNameChange:t.setTrackingChannelName,onPinnedChange:t.setTrackingChannelPinned,onCancel:t.closeCreateTrackingDialog,onSubmit:t.createTrackingChannel}),(0,n.jsx)(ev,{open:!!t.editingTrackingChannel,mode:"edit",name:t.editingTrackingName,pinned:t.editingTrackingPinned,isSaving:t.isUpdatingTrackingChannel,onOpenChange:t.handleEditTrackingDialogOpenChange,onNameChange:t.setEditingTrackingName,onPinnedChange:t.setEditingTrackingPinned,onCancel:t.closeTrackingEditDialog,onSubmit:t.updateTrackingChannel})]})};var tj=!0,tN=e=>{let{undermaintenance:t}=e,a=(0,ej.useRouter)(),c=tp(a.query);return(0,n.jsxs)(tv.Z,{children:[(0,n.jsx)(r.Z,{title:"YouTube Video Research â TubeMagic"}),(0,n.jsxs)("div",{className:"absolute inset-0 flex min-h-0 flex-col overflow-hidden p-3 max-md:p-2.5",children:[(0,n.jsx)(l.Z,{breadcrumbItems:i}),t&&(0,n.jsx)(s.Z,{overlay:!0,toolName:"Video Research"}),!t&&(c?(0,n.jsx)(ti,{trackingId:c}):(0,n.jsx)(tw,{}))]})]})}}}]);
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.