PageSourceSearch

https://app.orchly.ai/_next/static/chunks/58543.f128ba749d468fd2.js

js orchly.ai collected 2026-10-05 12:24:15 UTC 27,835 bytes, 7 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[58543],{36619:(e,a,s)=>{s.d(a,{A:()=>r});var t=s(2315);let r=t.forwardRef(function({title:e,titleId:a,...s},r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":a},s),e?t.createElement("title",{id:a},e):null,t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0"}))})},38193:(e,a,s)=>{s.d(a,{J:()=>i});var t=s(68987),r=s(2315),n=s(72204),l=s(93210);let i=r.forwardRef(({className:e,...a},s)=>(0,t.jsx)(n.b,{ref:s,className:(0,l.cn)("inline-flex items-center gap-1 text-sm font-ui text-foreground peer-disabled:opacity-50",e),...a}));i.displayName=n.b.displayName},39656:(e,a,s)=>{s.d(a,{A:()=>r});var t=s(2315);let r=t.forwardRef(function({title:e,titleId:a,...s},r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":a},s),e?t.createElement("title",{id:a},e):null,t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3"}))})},44585:(e,a,s)=>{s.d(a,{A:()=>r});var t=s(2315);let r=t.forwardRef(function({title:e,titleId:a,...s},r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":a},s),e?t.createElement("title",{id:a},e):null,t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M13.5 6H5.25A2.25 2.25 0 0 0 3 8.25v10.5A2.25 2.25 0 0 0 5.25 21h10.5A2.25 2.25 0 0 0 18 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25"}))})},45481:(e,a,s)=>{s.d(a,{A:()=>r});var t=s(2315);let r=t.forwardRef(function({title:e,titleId:a,...s},r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":a},s),e?t.createElement("title",{id:a},e):null,t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 12h14"}))})},63434:(e,a,s)=>{s.d(a,{$v:()=>h,EO:()=>m,Lt:()=>d,Rx:()=>p,Zr:()=>j,ck:()=>x,r7:()=>f,wd:()=>u});var t=s(68987),r=s(2315),n=s(71461),l=s(93210),i=s(49405),o=s(17257);let d=n.bL;n.l9;let c=n.ZL,m=r.forwardRef(({className:e,...a},s)=>(0,t.jsxs)(c,{children:[(0,t.jsx)(n.hJ,{className:o.z5}),(0,t.jsx)(n.UC,{ref:s,className:(0,l.cn)(o.cx,"fixed top-1/2 left-1/2 z-50 w-[calc(100%-2rem)] max-w-md -translate-x-1/2 -translate-y-1/2 rounded-3xl","data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95","data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 duration-200",e),...a})]}));m.displayName=n.UC.displayName;let u=o.aO,x=o.WH,f=r.forwardRef(({className:e,...a},s)=>(0,t.jsx)(n.hE,{ref:s,className:(0,l.cn)(o.nY,e),...a}));f.displayName=n.hE.displayName;let h=r.forwardRef(({className:e,...a},s)=>(0,t.jsx)(n.VY,{ref:s,className:(0,l.cn)(o.vw,e),...a}));h.displayName=n.VY.displayName;let p=r.forwardRef(({className:e,variant:a,...s},r)=>(0,t.jsx)(n.rc,{ref:r,className:(0,l.cn)((0,i.r)({variant:a}),e),...s}));p.displayName=n.rc.displayName;let j=r.forwardRef(({className:e,...a},s)=>(0,t.jsx)(n.ZD,{ref:s,className:(0,l.cn)((0,i.r)({variant:"secondary"}),e),...a}));j.displayName=n.ZD.displayName},71021:(e,a,s)=>{s.r(a),s.d(a,{PlatformConfigDrawer:()=>b});var t=s(68987),r=s(57309),n=s(36619),l=s(81624),i=s(44585),o=s(2837),d=s(7795),c=s(2315),m=s(88958),u=s(49405),x=s(64094),f=s(76843),h=s(82687),p=s(99632),j=s(83125),g=s(72961),v=s(82320),y=s(1343),N=s(57591),w=s(17243);function b({open:e,onOpenChange:a,platform:s,mode:i,workspaceSlug:o,onSuccess:d,integration:x}){let R=(0,y.useRouter)(),S=(0,v.S)(),I=()=>{R.push(`/${o}/settings/integrations`)},[D,F]=(0,c.useState)({}),[L,T]=(0,c.useState)(!1),[z,$]=(0,c.useState)(""),[V,O]=(0,c.useState)([]),[P,W]=(0,c.useState)(!1),[_,Y]=(0,c.useState)(""),[Z,M]=(0,c.useState)(""),[K,U]=(0,c.useState)(!1),G=(0,c.useRef)(null),[J,B]=(0,c.useState)(null),[q,H]=(0,c.useState)(null),Q=(e,a)=>{navigator.clipboard?.writeText(a).catch(()=>{}),H(e),setTimeout(()=>H(a=>a===e?null:a),2e3)},X=(0,c.useRef)(!1);(0,c.useEffect)(()=>
1{"success"===Z&&(X.current=!0)},[Z]),(0,c.useEffect)(()=>{e||(X.current&&s?.id==="cloudflare"&&(setTimeout(()=>{d()},100),X.current=!1),F({}),$(""),M(""),G.current=null,B(null),H(null))},[e,s?.id,d]),(0,c.useEffect)(()=>{e&&"edit"===i&&s?.id==="cloudflare"&&x&&(async()=>{try{let e=await fetch(`/api/ai-traffic/integrations/cloudflare?workspaceSlug=${o}`);if(!e.ok)return;let a=await e.json();a.integration?.envVars&&B([{name:"WORKSPACE_ID",value:a.integration.envVars.WORKSPACE_ID.value},{name:"API_KEY",value:a.integration.envVars.API_KEY.value}])}catch(e){console.error("Failed to fetch environment variables:",e)}})()},[e,i,s?.id,x,o]);let ee=(0,c.useCallback)(e=>{let a=G.current;G.current=e,"add"===i&&"connected"===e&&"connected"!==a&&d(),"edit"===i&&null!==a&&"none"!==a&&"none"===e&&d()},[i,d]),ea=async()=>{if(s){if(N.CD.has(s.id))return void I();T(!0),$(""),M("Validating credentials...");try{M("Deploying integration...");let e=await fetch(`/api/ai-traffic/integrations/${s.id}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({workspaceSlug:o,...D})}),t=await e.json();if(!e.ok){$(t.details||t.error||"Failed to connect"),M("");return}M("success"),"cloudflare"===s.id&&t.envVars?B([{name:"WORKSPACE_ID",value:t.envVars.WORKSPACE_ID},{name:"API_KEY",value:t.envVars.API_KEY}]):setTimeout(()=>{a(!1),d()},1500)}catch(e){$(e.message||"Failed to connect"),M("")}finally{T(!1)}}},es=async()=>{if(x&&s&&await S({title:`Remove ${s.name} Integration?`,description:`This will stop tracking AI traffic from ${s.name}. Your historical data will be preserved, and you can reconnect anytime.`,action:"Remove Integration"})){U(!0);try{let e=await fetch(`/api/ai-traffic/integrations/${x.platform}?workspaceSlug=${o}`,{method:"DELETE"});if(!e.ok){let a=await e.json();throw Error(a.error||"Failed to delete integration")}a(!1),d()}catch(e){$(e.message||"Failed to delete integration")}finally{U(!1)}}},et=s?.id==="cloudflare",er=async()=>{let e=(D.apiToken||"").trim();if(e){W(!0),Y(""),O([]);try{let a=await fetch("/api/ai-traffic/integrations/cloudflare/zones",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiToken:e})}),s=await a.json().catch(()=>({}));if(!a.ok)throw Error(s?.error||"Could not read your Cloudflare sites");let t=s.zones??[];O(t),1===t.length&&en(t[0])}catch(e){Y(e?.message||"Could not read your Cloudflare sites")}finally{W(!1)}}},en=e=>{F(a=>({...a,zoneId:e.zoneId,accountId:e.accountId,domain:e.domain}))};if(!s)return null;let el=N.CD.has(s.id);return(0,t.jsx)(m.cj,{open:e,onOpenChange:a,children:(0,t.jsxs)(m.h,{size:"md",children:[(0,t.jsx)(m.Fm,{children:(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("img",{src:s.icon,alt:s.name,className:"size-10 shrink-0 rounded-lg bg-muted object-contain p-2"}),(0,t.jsxs)("div",{children:[(0,t.jsx)(m.qp,{children:"add"===i?`Setup ${s.name}`:`${s.name} Integration`}),(0,t.jsx)(m.Qs,{children:"add"===i?"Configure your integration to start tracking AI traffic":"View and manage your integration settings"})]})]})}),(0,t.jsx)(m.eC,{children:"edit"===i&&x?(0,t.jsxs)("div",{className:"space-y-4",children:["wordpress"!==s.id&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-sm text-foreground-secondary",children:[(0,t.jsx)(r.A,{className:"size-4 text-success"}),(0,t.jsx)("span",{children:"Integration active and tracking traffic"})]}),x.domain&&(0,t.jsxs)("p",{className:"text-sm text-foreground-secondary",children:["Domain: ",(0,t.jsx)("span",{className:"font-medium",children:x.domain})]})]}),"cloudflare"===s.id&&J&&(0,t.jsxs)("div",{className:"space-y-4 border-t border-border pt-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h4",{className:"mb-2 text-sm font-medium",children:"Environment Variables"}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"These environment variables are configured in your Cloudflare Worker. If you need to update them, go to Cloudflare Dashboard → Workers & Pages → Settings → Variables and Secrets."})]}),J.map(e=>(0,t.jsx)(C,{envVar:e,scope:"cfg",copiedKey:q,onCopy:Q},e.name)),(0,t.jsx)(j.Fc,{tone:"info",children:(0,t.jsxs)(j.TN,{children:[(0,t.jsx)("strong",{children:"Tip:"})," Click the copy icon to copy each value. Make sure these match exactly in your Cloudflare Worker settings."]})})]}),el&&(0,t.jsx)("div",{className:"border-t border-border pt-4",children:(0,t.jsx)(k,{platformName:s.name,onConnect:I})}),"wordpress"===s.id&&(0,t.jsx)(w._,{workspaceSlug:o,compact:!0,onStatusChange:ee}),"wordpress"!==s.id&&(0,t.jsxs)("div",{className:"border-t border-border pt-4",children:[(0,t.jsxs)(u.$,{loading:K,variant:"destructive",onClick:es,disabled:K,className:"w-full",children:[!K&&(0,t.jsx)(n.A,{}),K?"Removing...":"Remove Integration"]}),(0,t.jsxs)("p",{className:"mt-2 text-xs text-muted-foreground",children:["This will stop tracking AI traffic from ",s.name,"."]})]}),z&&(0,t.jsx)(j.Fc,{tone:"danger",children:(0,t.jsx)(j.TN,{children:z})})]}):(0,t.jsxs)("div",{className:"space-y-6",children:["wordpress"===s.id?(0,t.jsx)(w._,{workspaceSlug:o,compact:!0,onStatusChange:ee}):el?(0,t.jsx)(k,{platformName:s.name,onConnect:I}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"mb-3 heading-section",children:"Setup Guide"}),(0,t.jsx)(A,{steps:s.setupSteps.map(e=>({warning:"Note on Bot Tracking"===e.title,body:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"mb-0.5 text-sm font-medium text-foreground",children:e.title}),(0,t.jsx)("p",{children:e.description})]})}))})]}),s.fields.length>0&&(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)("h3",{className:"heading-section",children:"Configuration"}),s.fields.map(e=>(0,t.jsx)(h.D,{label:e.label,htmlFor:e.name,hint:e.help,children:(0,t.jsx)(f.p,{id:e.name,type:e.type,placeholder:e.placeholder,value:D[e.name]||"",onChange:a=>{F({...D,[e.name]:a.target.value}),et&&"apiToken"===e.name&&(O([]),Y(""),F(s=>({...s,[e.name]:a.target.value,zoneId:"",accountId:"",domain:""})))}})},e.name)),et&&(0===V.length?(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)(u.$,{loading:P,type:"button",variant:"secondary",size:"lg",className:"w-full",disabled:!D.apiToken?.trim()||P,onClick:er,children:P?"Reading your sites…":"Find my sites"}),_&&(0,t.jsx)("p",{className:"text-xs text-danger",children:_})]}):(0,t.jsxs)(h.D,{label:"Site",hint:"This Worker will be installed on this site. We read the Zone and Account IDs for you.",children:[(0,t.jsxs)(g.l6,{value:D.zoneId||"",onValueChange:e=>{let a=V.find(a=>a.zoneId===e);a&&en(a)},children:[(0,t.jsx)(g.bq,{size:"lg",children:(0,t.jsx)(g.yv,{placeholder:"Select a site"})}),(0,t.jsx)(g.gC,{children:V.map(e=>(0,t.jsxs)(g.eb,{value:e.zoneId,children:[e.domain,e.accountName?` \xb7 ${e.accountName}`:""]},e.zoneId))})]}),(0,t.jsx)(u.$,{type:"button",variant:"link",className:"self-start",onClick:()=>{O([]),F(e=>({...e,zoneId:"",accountId:"",domain:""}))},children:"Use a different token"})]}))]})]}),z&&(0,t.jsx)(j.Fc,{tone:"danger",children:(0,t.jsx)(j.TN,{children:z})}),Z&&"success"!==Z&&!z&&(0,t.jsxs)(j.Fc,{tone:"info",children:[(0,t.jsx)(p.y,{}),(0,t.jsx)(j.TN,{children:Z})]}),"cloudflare"===s.id&&"success"===Z&&J&&(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)(j.Fc,{tone:"success",children:[(0,t.jsx)(r.A,{}),(0,t.jsx)(j.TN,{children:"Worker deployed successfully!"})]}),(0,t.jsxs)(j.Fc,{tone:"warning",children:[(0,t.jsx)(l.A,{}),(0,t.jsxs)(j.TN,{children:[(0,t.jsx)("strong",{children:"Important:"})," Set these environment variables in your Cloudflare Worker settings for tracking to work."]})]}),(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)("h4",{className:"text-sm font-medium",children:"Environment Variables"}),J.map(e=>(0,t.jsx)(C,{envVar:e,scope:"new",copiedKey:q,onCopy:Q,secretBadge:!0},e.name))]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h4",{className:"mb-3 text-sm font-medium",children:"Setup Steps"}),(0,t.jsx)(A,{steps:[(0,t.jsx)(t.Fragment,{children:"Go to Cloudflare Dashboard → Workers & Pages"}),(0,t.jsxs)(t.Fragment,{children:["Click on your worker: ",(0,t.jsx)(E,{children:"or
1chly-ai-traffic-..."})]}),(0,t.jsx)(t.Fragment,{children:"Go to Settings → Variables and Secrets"}),(0,t.jsx)(t.Fragment,{children:'Click "Add variable" for each variable above'}),(0,t.jsx)(t.Fragment,{children:"Copy the Name and Value exactly as shown"}),(0,t.jsxs)(t.Fragment,{children:["For ",(0,t.jsx)(E,{children:"API_KEY"}),", select ",(0,t.jsx)("strong",{children:'"Secret"'}),' type (not "Text")']}),(0,t.jsx)(t.Fragment,{children:"Save and deploy"})].map(e=>({body:e}))})]}),(0,t.jsx)(u.$,{onClick:()=>{a(!1),d()},className:"w-full",children:"Done"})]}),"wordpress"!==s.id&&"cloudflare"!==s.id&&!el&&"success"===Z&&(0,t.jsxs)(j.Fc,{tone:"success",children:[(0,t.jsx)(r.A,{}),(0,t.jsx)(j.TN,{children:"Deployment successful!"})]}),"wordpress"!==s.id&&!("cloudflare"===s.id&&"success"===Z&&J)&&!el&&(0,t.jsxs)("div",{className:"flex gap-3 pt-4",children:[(0,t.jsx)(u.$,{variant:"secondary",onClick:()=>a(!1),className:"flex-1",children:"Cancel"}),(0,t.jsx)(u.$,{loading:L,onClick:ea,disabled:L||!(s&&(N.CD.has(s.id)?D.siteUrl&&""!==D.siteUrl.trim():"cloudflare"===s.id?!!(D.apiToken?.trim()&&D.zoneId&&D.accountId&&D.domain):s.fields.filter(e=>e.required).every(e=>D[e.name]&&""!==D[e.name].trim()))),className:"flex-1",children:L?"Deploying...":"Deploy Integration"})]})]})})]})})}function k({platformName:e,onConnect:a}){return(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)(j.Fc,{tone:"info",children:(0,t.jsxs)(j.TN,{children:[(0,t.jsx)("strong",{children:"Connect Google Analytics"})," to track AI search human traffic for your ",e," site."]})}),(0,t.jsxs)("div",{className:"space-y-3 rounded-lg bg-subtle p-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h4",{className:"mb-2 text-sm font-medium",children:"Why Google Analytics?"}),(0,t.jsxs)("ul",{className:"list-inside list-disc space-y-1 text-xs text-foreground-secondary",children:[(0,t.jsx)("li",{children:"Track AI referral traffic with country and device data"}),(0,t.jsx)("li",{children:"Monitor conversion events from AI visitors"}),(0,t.jsx)("li",{children:"Get comprehensive page-level analytics"}),(0,t.jsx)("li",{children:"No code changes needed - works automatically"})]})]}),(0,t.jsxs)(j.Fc,{tone:"warning",children:[(0,t.jsx)(l.A,{}),(0,t.jsxs)(j.TN,{children:[(0,t.jsx)("strong",{children:"Note:"})," Bot traffic cannot be captured for ",e," sites, but you'll get detailed human traffic analytics from Google Analytics."]})]})]}),(0,t.jsxs)(u.$,{onClick:a,className:"w-full",size:"lg",children:["Connect Google Analytics",(0,t.jsx)(i.A,{})]})]})}function C({envVar:e,scope:a,copiedKey:s,onCopy:r,secretBadge:n}){let l=`${a}-name:${e.name}`,i=`${a}-value:${e.name}`;return(0,t.jsxs)("div",{className:"space-y-2 rounded-lg bg-subtle p-3",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsxs)("div",{className:"flex min-w-0 items-center gap-1.5",children:[(0,t.jsx)("span",{className:"text-xs font-medium text-foreground-secondary",children:e.name}),(0,t.jsx)(u.$,{variant:"ghost",size:"icon-xs",title:"Copy name",onClick:()=>r(l,e.name),children:s===l?(0,t.jsx)(o.A,{className:"text-success"}):(0,t.jsx)(d.A,{})})]}),n&&"API_KEY"===e.name&&(0,t.jsx)(x.E,{tone:"blue",children:'Set as "Secret"'})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("code",{className:"flex-1 rounded-md bg-background p-2 font-mono text-xs break-all inset-ring inset-ring-border",children:e.value}),(0,t.jsx)(u.$,{variant:"secondary",size:"icon-lg",title:"Copy value",onClick:()=>r(i,e.value),children:s===i?(0,t.jsx)(o.A,{className:"text-success"}):(0,t.jsx)(d.A,{})})]})]})}function A({steps:e}){return(0,t.jsx)("ol",{className:"space-y-2",children:e.map((e,a)=>(0,t.jsxs)("li",{className:"flex gap-3 rounded-lg bg-subtle p-3",children:[e.warning?(0,t.jsx)("span",{className:"tone-amber flex size-5 shrink-0 items-center justify-center rounded-full bg-tone text-tone-fg",children:(0,t.jsx)(l.A,{className:"size-3.5"})}):(0,t.jsx)("span",{className:"flex size-5 shrink-0 items-center justify-center rounded-full bg-selected text-xs font-medium text-foreground-secondary",children:a+1}),(0,t.jsx)("div",{className:"min-w-0 flex-1 text-xs text-foreground-secondary",children:e.body})]},a))})}function E({children:e}){return(0,t.jsx)("code",{className:"rounded-md bg-selected px-1 font-mono text-xs",children:e})}},71461:(e,a,s)=>{let t;s.d(a,{rc:()=>V,ZD:()=>O,UC:()=>$,VY:()=>W,hJ:()=>z,ZL:()=>T,bL:()=>F,hE:()=>P,l9:()=>L});var r=s(2315),n=s(18133),l=s(43841),i=s(25362),o=s(33397),d=s(68987),c=Symbol("radix.slottable"),m="AlertDialog",[u,x]=(0,n.A)(m,[i.Hs]),f=(0,i.Hs)(),h=e=>{let{__scopeAlertDialog:a,...s}=e,t=f(a);return(0,d.jsx)(i.bL,{...t,...s,modal:!0})};h.displayName=m;var p=r.forwardRef((e,a)=>{let{__scopeAlertDialog:s,...t}=e,r=f(s);
1return(0,d.jsx)(i.l9,{...r,...t,ref:a})});p.displayName="AlertDialogTrigger";var j=e=>{let{__scopeAlertDialog:a,...s}=e,t=f(a);return(0,d.jsx)(i.ZL,{...t,...s})};j.displayName="AlertDialogPortal";var g=r.forwardRef((e,a)=>{let{__scopeAlertDialog:s,...t}=e,r=f(s);return(0,d.jsx)(i.hJ,{...r,...t,ref:a})});g.displayName="AlertDialogOverlay";var v="AlertDialogContent",[y,N]=u(v),w=((t=({children:e})=>(0,d.jsx)(d.Fragment,{children:e})).displayName="AlertDialogContent.Slottable",t.__radixId=c,t),b=r.forwardRef((e,a)=>{let{__scopeAlertDialog:s,children:t,...n}=e,c=f(s),m=r.useRef(null),u=(0,l.s)(a,m),x=r.useRef(null);return(0,d.jsx)(i.G$,{contentName:v,titleName:k,docsSlug:"alert-dialog",children:(0,d.jsx)(y,{scope:s,cancelRef:x,children:(0,d.jsxs)(i.UC,{role:"alertdialog",...c,...n,ref:u,onOpenAutoFocus:(0,o.mK)(n.onOpenAutoFocus,e=>{e.preventDefault(),x.current?.focus({preventScroll:!0})}),onPointerDownOutside:e=>e.preventDefault(),onInteractOutside:e=>e.preventDefault(),children:[(0,d.jsx)(w,{children:t}),(0,d.jsx)(D,{contentRef:m})]})})})});b.displayName=v;var k="AlertDialogTitle",C=r.forwardRef((e,a)=>{let{__scopeAlertDialog:s,...t}=e,r=f(s);return(0,d.jsx)(i.hE,{...r,...t,ref:a})});C.displayName=k;var A="AlertDialogDescription",E=r.forwardRef((e,a)=>{let{__scopeAlertDialog:s,...t}=e,r=f(s);return(0,d.jsx)(i.VY,{...r,...t,ref:a})});E.displayName=A;var R=r.forwardRef((e,a)=>{let{__scopeAlertDialog:s,...t}=e,r=f(s);return(0,d.jsx)(i.bm,{...r,...t,ref:a})});R.displayName="AlertDialogAction";var S="AlertDialogCancel",I=r.forwardRef((e,a)=>{let{__scopeAlertDialog:s,...t}=e,{cancelRef:r}=N(S,s),n=f(s),o=(0,l.s)(a,r);return(0,d.jsx)(i.bm,{...n,...t,ref:o})});I.displayName=S;var D=({contentRef:e})=>{let a=`\`${v}\` requires a description for the component to be accessible for screen reader users.
2
3You can add a description to the \`${v}\` by passing a \`${A}\` component as a child, which also benefits sighted users by adding visible context to the dialog.
4
5Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${v}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component.
6
7For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return r.useEffect(()=>{document.getElementById(e.current?.getAttribute("aria-describedby"))||console.warn(a)},[a,e]),null},F=h,L=p,T=j,z=g,$=b,V=R,O=I,P=C,W=E},71680:(e,a,s)=>{s.d(a,{A:()=>r});var t=s(2315);let r=t.forwardRef(function({title:e,titleId:a,...s},r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":a},s),e?t.createElement("title",{id:a},e):null,t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M13.181 8.68a4.503 4.503 0 0 1 1.903 6.405m-9.768-2.782L3.56 14.06a4.5 4.5 0 0 0 6.364 6.365l3.129-3.129m5.614-5.615 1.757-1.757a4.5 4.5 0 0 0-6.364-6.365l-4.5 4.5c-.258.26-.479.541-.661.84m1.903 6.405a4.495 4.495 0 0 1-1.242-.88 4.483 4.483 0 0 1-1.062-1.683m6.587 2.345 5.907 5.907m-5.907-5.907L8.898 8.898M2.991 2.99 8.898 8.9"}))})},72204:(e,a,s)=>{s.d(a,{b:()=>i});var t=s(2315),r=s(30055),n=s(68987),l=t.forwardRef((e,a)=>(0,n.jsx)(r.sG.label,{...e,ref:a,onMouseDown:a=>{a.target.closest("button, input, select, textarea")||(e.onMouseDown?.(a),!a.defaultPrevented&&a.detail>1&&a.preventDefault())}}));l.displayName="Label";var i=l},72961:(e,a,s)=>{s.d(a,{TR:()=>v,bq:()=>h,eb:()=>y,gC:()=>g,l6:()=>u,s3:()=>x,yv:()=>f});var t=s(68987),r=s(57454),n=s(86043),l=s(2837),i=s(2315),o=s(8845),d=s(93210),c=s(65772),m=s(39075);let u=o.bL,x=o.YJ,f=o.WT,h=i.forwardRef(({className:e,size:a,active:s,children:n,...l},i)=>(0,t.jsxs)(o.l9,{ref:i,className:(0,d.cn)((0,c.Z)({size:a,active:s,trigger:!0}),"[&>span]:line-clamp-1 [&>span]:flex [&>span]:items-center [&>span]:gap-2",e),...l,children:[n,(0,t.jsx)(o.In,{asChild:!0,children:(0,t.jsx)(r.A,{className:"opacity-50"})})]}));h.displayName=o.l9.displayName;let p=i.forwardRef(({className:e,...a},s)=>(0,t.jsx)(o.PP,{ref:s,className:(0,d.cn)("flex h-6 items-center justify-center text-muted-foreground",e),...a,children:(0,t.jsx)(n.A,{className:"size-4"})}));p.displayName=o.PP.displayName;let j=i.forwardRef(({className:e,...a},s)=>(0,t.jsx)(o.wn,{ref:s,className:(0,d.cn)("flex h-6 items-center justify-center text-muted-foreground",e),...a,children:(0,t.jsx)(r.A,{className:"size-4"})}));j.displayName=o.wn.displayName;let g=i.forwardRef(({className:e,children:a,position:s="popper",...r},n)=>(0,t.jsx)(o.ZL,{children:(0,t.jsxs)(o.UC,{ref:n,position:s,sideOffset:6,className:(0,d.cn)((0,m.T9)(),"max-h-(--radix-select-content-available-height) p-0","popper"===s&&"min-w-(--radix-select-trigger-width)",e),...r,children:[(0,t.jsx)(p,{}),(0,t.jsx)(o.LM,{className:"p-1",children:a}),(0,t.jsx)(j,{})]})}));g.displayName=o.UC.displayName;let v=i.forwardRef(({className:e,...a},s)=>(0,t.jsx)(o.JU,{ref:s,className:(0,d.cn)(m.Gy,e),...a}));v.displayName=o.JU.displayName;let y=i.forwardRef(({className:e,children:a,...s},r)=>(0,t.jsxs)(o.q7,{ref:r,className:(0,d.cn)((0,m.j$)({kind:"option"}),e),...s,children:[(0,t.jsx)(o.p4,{children:a}),(0,t.jsx)(o.VF,{className:m.H5,children:(0,t.jsx)(l.A,{})})]}));y.displayName=o.q7.displayName,i.forwardRef(({className:e,...a},s)=>(0,t.jsx)(o.wv,{ref:s,className:(0,d.cn)(m.$Z,e),...a})).displayName=o.wv.displayName},76843:(e,a,s)=>{s.d(a,{p:()=>i});var t=s(68987),r=s(2315),n=s(93210),l=s(65772);let i=r.forwardRef(({className:e,type:a,size:s,icon:r,addon:i,trailing:o,...d},c)=>(0,t.jsxs)("div",{className:(0,n.cn)((0,l.Z)({size:s}),"flex items-center gap-2 px-3",e),"data-slot":"input",children:[r&&(0,t.jsx)(r,{className:"size-4.5 shrink-0 text-muted-foreground transition-colors group-focus-within/field:text-foreground","aria-hidden":!0}),i&&(0,t.jsx)("span",{className:"-mr-1.5 shrink-0 text-muted-foreground select-none",children:i}),(0,t.jsx)("input",{ref:c,type:a,className:"h-full min-w-0 flex-1 bg-transparent py-1 outline-none placeholder:text-muted-foreground file:mr-2 file:border-0 file:bg-transparent file:text-sm",...d}),o]}));i.displayName="Input"},81624:(e,a,s)=>{s.d(a,{A:()=>r});var t=s(2315);let r=t.forwardRef(function({title:e,titleId:a,...s},r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":a},s),e?t.createElement("title",{id:a},e):null,t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z"}))})},82320:(e,a,s)=>{s.d(a,{S:()=>o,a:()=>i});var t=s(68987),r=s(2315),n=s(63434);let l=r.createContext(null);function i({children:e}){let[a,s]=r.useState(null),o=r.useCallback(e=>
7new Promise(a=>{setTimeout(()=>s({options:e,resolve:a}),0)}),[]),d=e=>{a?.resolve(e),s(null)},c=a?.options,m=c?.destructive??!0;return(0,t.jsxs)(l.Provider,{value:o,children:[e,(0,t.jsx)(n.Lt,{open:!!a,onOpenChange:e=>{e||d(!1)},children:(0,t.jsxs)(n.EO,{children:[(0,t.jsxs)(n.wd,{children:[(0,t.jsx)(n.r7,{children:c?.title}),c?.description&&(0,t.jsx)(n.$v,{children:c.description})]}),(0,t.jsxs)(n.ck,{children:[(0,t.jsx)(n.Zr,{onClick:()=>d(!1),children:c?.cancel??"Cancel"}),(0,t.jsx)(n.Rx,{onClick:()=>d(!0),variant:m?"destructive":"default",children:c?.action??"Delete"})]})]})})]})}function o(){let e=r.useContext(l);if(!e)throw Error("useConfirm needs ConfirmProvider (mounted in app/providers.tsx)");return e}},82687:(e,a,s)=>{s.d(a,{D:()=>i});var t=s(68987);s(2315);var r=s(93210),n=s(38193),l=s(3913);function i({label:e,htmlFor:a,optional:s,hint:o,info:d,error:c,className:m,children:u,...x}){let f=e&&(0,t.jsxs)(n.J,{htmlFor:a,children:[e,s&&(0,t.jsx)("span",{className:"font-normal text-muted-foreground",children:"(optional)"})]});return(0,t.jsxs)("div",{className:(0,r.cn)("flex flex-col gap-1",m),"data-slot":"field",...x,children:[e&&(d?(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[f,(0,l.A)(d)]}):f),u,c?(0,t.jsx)("p",{className:"text-xs text-danger",children:c}):o?(0,t.jsx)("p",{className:"text-xs text-foreground-secondary",children:o}):null]})}},88958:(e,a,s)=>{s.d(a,{Fm:()=>f,Qs:()=>g,XW:()=>p,cj:()=>c,eC:()=>h,h:()=>x,qp:()=>j});var t=s(68987),r=s(70288),n=s(2315),l=s(25362),i=s(14575),o=s(93210),d=s(17257);let c=l.bL;l.l9,l.bm;let m=l.ZL,u=(0,i.F)([d.cx,"fixed inset-y-2 right-2 z-50 w-[calc(100%-1rem)] overflow-hidden rounded-2xl","data-[state=open]:animate-in data-[state=open]:slide-in-from-right-8 data-[state=open]:fade-in-0","data-[state=closed]:animate-out data-[state=closed]:slide-out-to-right-8 data-[state=closed]:fade-out-0 duration-200"],{variants:{size:{sm:"max-w-sm",md:"max-w-xl",lg:"max-w-3xl",xl:"max-w-5xl","2xl":"max-w-7xl"},padding:{default:"",none:"gap-0 p-0"}},defaultVariants:{size:"md",padding:"default"}}),x=n.forwardRef(({className:e,size:a,padding:s,hideCloseButton:n=!1,children:i,...c},x)=>(0,t.jsxs)(m,{children:[(0,t.jsx)(l.hJ,{className:d.z5}),(0,t.jsxs)(l.UC,{ref:x,"data-slot":"sheet-content",className:(0,o.cn)(u({size:a,padding:s}),e),...c,children:[i,!n&&(0,t.jsx)(l.bm,{className:d.bX,"aria-label":"Close",children:(0,t.jsx)(r.A,{})})]})]}));x.displayName=l.UC.displayName;let f=d.aO,h=d.l_,p=d.WH,j=n.forwardRef(({className:e,...a},s)=>(0,t.jsx)(l.hE,{ref:s,className:(0,o.cn)(d.nY,e),...a}));j.displayName=l.hE.displayName;let g=n.forwardRef(({className:e,...a},s)=>(0,t.jsx)(l.VY,{ref:s,className:(0,o.cn)(d.vw,e),...a}));g.displayName=l.VY.displayName}}]);

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.