1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ClerkCloudAuthTree-D74D3J4M.js","assets/motion-BTH3w9fV.js","assets/profileRepository-BTA3RCp0.js","assets/audit-CdCstKrm.js","assets/supabaseClient-CB_5nr7r.js","assets/organizationRepository-DdB_wP7L.js","assets/turnstile-B5SSyqO-.js","assets/validateCloudEnv-Bi8nfjyu.js","assets/sessionIntent-C4lm7p9z.js","assets/flowLibraryDb-Dfoh8sKi.js","assets/motion-DG8eb1hi.css","assets/posthogSink-DkKap2Fm.js","assets/ProblemSection-DN2nsT59.js","assets/clock-8DaP8x18.js","assets/SolutionSection-BQFMmXGp.js","assets/FeaturesSection-a6CFoq4l.js","assets/arrow-up-right-B7dqexlb.js","assets/circle-check-B3rBG1Sl.js","assets/WorkflowSection-CSMp2mdf.js","assets/AutomationSection-B7bK2AeB.js","assets/ComparisonSection-Cm8YsWR4.js","assets/minus-PXwcdqDf.js","assets/check-DKZUFT4M.js","assets/PlatformComparisonSection-yp0taJcM.js","assets/PreviewSection-C5RR07Pt.js","assets/book-marked-DgSxIzMm.js","assets/grip-vertical-CmDHO2gR.js","assets/pen-line-CdN3L966.js","assets/FAQSection-CRFzJjf-.js","assets/circle-question-mark-DgKvFJpb.js","assets/CTASection-BvIT4eGW.js","assets/Dashboard-pafiGzW8.js","assets/ConfirmDialog-BodZ8i_p.js","assets/Button-3SqDYXzX.js","assets/FieldTextarea-pD-DHDLN.js","assets/loader-circle-sz1I2CBp.js","assets/dashboardLibrary-CHNY_i12.js","assets/ShareDocumentModal-CE41xP16.js","assets/GuestShareAccessNotice-BheDljjO.js","assets/trash-2-JuBMUU98.js","assets/PeacockStudioLoader-HhO9WvKx.js","assets/resolveStepDescription-B71MCotr.js","assets/analyticsRepository-CR5y04eV.js","assets/formatFlowDate-Ci-M_0r3.js","assets/ActionTooltip-CVejSt0q.js","assets/play-Ckh27Uvd.js","assets/pencil-DIQCVHHo.js","assets/copy-DffT1YJG.js","assets/FlowVersionBadge-DpsVV-k4.js","assets/calendar-Hb94tAqg.js","assets/settings-2-DlHO8pO8.js","assets/eye-off-BxZis9Qf.js","assets/layout-grid-CPBiuNuT.js","assets/list-Dm-cGE_e.js","assets/useProductTourLibrary-CTRyJbJU.js","assets/ShareProductTourModal-BrUObC7s.js","assets/firstTimeHints-DkFTY8r4.js","assets/trending-up-DdaXS9R5.js","assets/list-ordered-uFBPCEwa.js","assets/useOrgAnalytics-CBpI0zhb.js","assets/eye-DFJa3VdH.js","assets/chart-column-fhREXNL6.js","assets/isCaptureUnsupportedClient-C0bLj_fg.js","assets/useExtensionInstalled-gTmoY4qF.js","assets/probeExtensionInstalled-qC6OBFcw.js","assets/handoff-ihIFdPUO.js","assets/getExtensionId-C0aJrqdC.js","assets/LibraryEmptyCta-tGNPJHTh.js","assets/GenericErrorPage-DQHG67w-.js","assets/useFirstTimeHint-D6Pdm5fE.js","assets/SmoothLoadReveal--s31Q4ZU.js","assets/guestDocumentVisibility-DAwHkQic.js","assets/FlowDocsLibraryPage-wCBu_NSA.js","assets/search-Dsz5C1YZ.js","assets/scan-eye-C7XuUgkc.js","assets/useLibraryGuidePanel-C9riVsH1.js","assets/workflowArtifact-CSxh7pNS.js","assets/users-jnpV3fGY.js","assets/plus-Brqya23S.js","assets/search-x-Jg5vRf0R.js","assets/ProductToursLibraryPage-BWZCUN71.js","assets/CompareDocs-Bp45mwVs.js","assets/AppHeader-BaZ_sdZz.js","assets/arrow-left-lFvyOmV1.js","assets/chevron-right-D5NvJfah.js","assets/PlayerClickMarker-CFc5tyvn.js","assets/PulseMarker-C32XJ7SL.js","assets/Editor-B-ldyJSd.js","assets/renderCaptureComposite-DfdYJPTo.js","assets/captureBackgrounds-BrwTlBJO.js","assets/FormField-DzVRspPJ.js","assets/sortable.esm-CvWI_URn.js","assets/FlowSectionCard-CQRPXn1p.js","assets/useSavedDocument-ClcCbnPX.js","assets/ResourceNotFoundPage-Dx1x9hJT.js","assets/HintAnchor-CWT_zWNF.js","assets/useHydrateResourceLabels-BrlMjNZK.js","assets/stepImageFile-xQLO23Y5.js","assets/ExtensionInstallPage-Dbw7AKOH.js","assets/LegacyRouteRedirect-WzoQUGoZ.js","assets/NewProductTour-xxiCkQxP.js","assets/productTourLibraryService-CE99Gbxd.js","assets/Player-CYaIoacs.js","assets/resolveFlowDocView-DgNoik18.js","assets/FlowDocExperienceViews-CSTaxKPr.js","assets/PlayerStage-BMfmMbSZ.js","assets/rotate-ccw-CXpviO9c.js","assets/maximize-2-C7SNgLHV.js","assets/circle-play-C6mzUmQz.js","assets/useWorkflowArtifacts-BywR-R8b.js","assets/SignedInUserButton-Do5Z14Z7.js","assets/circle-dashed-BwCmXjUI.js","assets/ProductTourBuilder-B__0XcCt.js","assets/ProductTourOverviewCanvas-BGSBpLVS.js","assets/user-plus-DwN73drs.js","assets/user-BovAe6hb.js","assets/building-2-CGeK5mQT.js","assets/ProductTourLearner-B9ufNsSE.js","assets/CaptureEditor-eDcjmxq0.js","assets/useCaptureEditorExport-3ymrmb-I.js","assets/CaptureEditorLegacyRedirect-DdHoDkAT.js","assets/NewImageEditor-BkoaUFve.js","assets/Products-3Kx35-NO.js","assets/ProductDetail-DAKmANBA.js","assets/image-DilAsdvp.js","assets/clipboard-copy-BxydhRIY.js","assets/Solutions-C3pX_T0x.js","assets/SolutionRole-LBQxL6mF.js","assets/Pricing-Cnvi0ssk.js","assets/SignInPage-B3YMKG4R.js","assets/CloudAuthConfigError-_ocZWShe.js","assets/SignUpPage-zLVLEg9j.js","assets/PublicSharePage-DGWRx0v_.js","assets/PeacockEmbedWatermark-BuE0HX6h.js","assets/StaticExamplePlayerPage-Cei27-rB.js","assets/PrivacyPolicy-N9ts9zwo.js","assets/legalContent-D7F549vM.js","assets/TermsAndConditions-CTfXPD0M.js","assets/TestCasesLibraryPage-BuwMu9xu.js","assets/ArtifactLibraryPage-BudYeezb.js","assets/TestCasesDetailPage-CaJAcICP.js","assets/ArtifactDetailPage-
1Dzv3YagQ.js","assets/xyflow-BZV40eAE.css","assets/PlaywrightTestsLibraryPage-DbWZZ_0G.js","assets/PlaywrightTestsDetailPage-Wgtg-cKH.js","assets/FlowMapsLibraryPage-DwCtPM1J.js","assets/FlowMapsDetailPage-Uqfhtxn1.js","assets/WorkspaceChooserPage-dFufwrIf.js","assets/refreshCloudMemberships-BsseTyS5.js","assets/AcceptInvitePage-BgzHCkvn.js","assets/OrgAdminPage-DYXoHPTJ.js","assets/OrgDomainUsageTable-BMr54026.js","assets/SuperAdminPage-BOTMy52A.js","assets/useIsPlatformSuperAdmin-iC3kmFbC.js","assets/swagger-WbM7C7aa.css","assets/PlatformAdminPage-DhyA4SZa.js","assets/HealthCheckerPage-BQQYzw1Z.js","assets/ApiDocsPage-xgixl0vY.js","assets/NotFoundPage-XhcsnEn5.js","assets/LibraryLayout-KMyYF1NZ.js"])))=>i.map(i=>d[i]); 2var ka=Object.defineProperty;var Ea=(e,t,n)=>t in e?ka(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var re=(e,t,n)=>Ea(e,typeof t!="symbol"?t+"":t,n);import{i as l,f as a,e as ee,h as _a,A as tt,m as L,a as Ne,G as Sa,u as Ca,M as Pa}from"./motion-BTH3w9fV.js";import{g as ja}from"./clerk-BpV5oStK.js";import{g as Ra,i as Ta,b as Ia,r as Na,w as Aa,c as kn,s as En}from"./sentry-C20HUQ3l.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const s of o)if(s.type==="childList")for(const i of s.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(o){const s={};return o.integrity&&(s.integrity=o.integrity),o.referrerPolicy&&(s.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?s.credentials="include":o.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(o){if(o.ep)return;o.ep=!0;const s=n(o);fetch(o.href,s)}})();/** 3 * react-router v7.15.1 4 * 5 * Copyright (c) Remix Software Inc. 6 * 7 * This source code is licensed under the MIT license found in the 8 * LICENSE.md file in the root directory of this source tree. 9 * 10 * @license MIT 11 */var _n="popstate";function Sn(e){return typeof e=="object"&&e!=null&&"pathname"in e&&"search"in e&&"hash"in e&&"state"in e&&"key"in e}function La(e={}){function t(r,o){var u;let s=(u=o.state)==null?void 0:u.masked,{pathname:i,search:c,hash:d}=s||r.location;return St("",{pathname:i,search:c,hash:d},o.state&&o.state.usr||null,o.state&&o.state.key||"default",s?{pathname:r.location.pathname,search:r.location.search,hash:r.location.hash}:void 0)}function n(r,o){return typeof o=="string"?o:xe(o)}return Da(t,n,null,e)}function C(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function $(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function Oa(){return Math.random().toString(36).substring(2,10)}function Cn(e,t){return{usr:e.state,key:e.key,idx:t,masked:e.mask?{pathname:e.pathname,search:e.search,hash:e.hash}:void 0}}function St(e,t,n=null,r,o){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?ue(t):t,state:n,key:t&&t.key||r||Oa(),mask:o}}function xe({pathname:e="/",search:t="",hash:n=""}){return t&&t!=="?"&&(e+=t.charAt(0)==="?"?t:"?"+t),n&&n!=="#"&&(e+=n.charAt(0)==="#"?n:"#"+n),e}function ue(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substring(r),e=e.substring(0,r)),e&&(t.pathname=e)}return t}function Da(e,t,n,r={}){let{window:o=document.defaultView,v5Compat:s=!1}=r,i=o.history,c="POP",d=null,u=h();u==null&&(u=0,i.replaceState({...i.state,idx:u},""));function h(){return(i.state||{idx:null}).idx}function p(){c="POP";let g=h(),f=g==null?null:g-u;u=g,d&&d({action:c,location:w.location,delta:f})}function m(g,f){c="PUSH";let _=Sn(g)?g:St(w.location,g,f);u=h()+1;let S=Cn(_,u),A=w.createHref(_.mask||_);try{i.pushState(S,"",A)}catch(I){if(I instanceof DOMException&&I.name==="DataCloneError")throw I;o.location.assign(A)}s&&d&&d({action:c,location:w.location,delta:1})}function x(g,f){c="REPLACE";let _=Sn(g)?g:St(w.location,g,f);u=h();let S=Cn(_,u),A=w.createHref(_.mask||_);i.replaceState(S,"",A),s&&d&&d({action:c,location:w.location,delta:0})}function k(g){return Ma(g)}let w={get action(){return c},get location(){return e(o,i)},listen(g){if(d)throw new Error("A history only accepts one active listener");return o.addEventListener(_n,p),d=g,()=>{o.removeEventListener(_n,p),d=null}},createHref(g){return t(o,g)},createURL:k,encodeLocation(g){let f=k(g);return{pathname:f.pathname,search:f.search,hash:f.hash}},push:m,replace:x,go(g){return i.go(g)}};return w}function Ma(e,t=!1){let n="http://localhost";
11typeof window<"u"&&(n=window.location.origin!=="null"?window.location.origin:window.location.href),C(n,"No window.location.(origin|href) available to create URL");let r=typeof e=="string"?e:xe(e);return r=r.replace(/ $/,"%20"),!t&&r.startsWith("//")&&(r=n+r),new URL(r,n)}function or(e,t,n="/"){return Fa(e,t,n,!1)}function Fa(e,t,n,r,o){let s=typeof t=="string"?ue(t):t,i=K(s.pathname||"/",n);if(i==null)return null;let c=$a(e),d=null,u=Qa(i);for(let h=0;d==null&&h<c.length;++h)d=Ka(c[h],u,r);return d}function $a(e){let t=sr(e);return Ua(t),t}function sr(e,t=[],n=[],r="",o=!1){let s=(i,c,d=o,u)=>{let h={relativePath:u===void 0?i.path||"":u,caseSensitive:i.caseSensitive===!0,childrenIndex:c,route:i};if(h.relativePath.startsWith("/")){if(!h.relativePath.startsWith(r)&&d)return;C(h.relativePath.startsWith(r),`Absolute route path "${h.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),h.relativePath=h.relativePath.slice(r.length)}let p=V([r,h.relativePath]),m=n.concat(h);i.children&&i.children.length>0&&(C(i.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${p}".`),sr(i.children,t,m,p,d)),!(i.path==null&&!i.index)&&t.push({path:p,score:qa(p,i.index),routesMeta:m})};return e.forEach((i,c)=>{var d;if(i.path===""||!((d=i.path)!=null&&d.includes("?")))s(i,c);else for(let u of ir(i.path))s(i,c,!0,u)}),t}function ir(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,o=n.endsWith("?"),s=n.replace(/\?$/,"");if(r.length===0)return o?[s,""]:[s];let i=ir(r.join("/")),c=[];return c.push(...i.map(d=>d===""?s:[s,d].join("/"))),o&&c.push(...i),c.map(d=>e.startsWith("/")&&d===""?"/":d)}function Ua(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:Ya(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}var Ba=/^:[\w-]+$/,Va=3,Ha=2,za=1,Wa=10,Ga=-2,Pn=e=>e==="*";function qa(e,t){let n=e.split("/"),r=n.length;return n.some(Pn)&&(r+=Ga),t&&(r+=Ha),n.filter(o=>!Pn(o)).reduce((o,s)=>o+(Ba.test(s)?Va:s===""?za:Wa),r)}function Ya(e,t){return e.length===t.length&&e.slice(0,-1).every((r,o)=>r===t[o])?e[e.length-1]-t[t.length-1]:0}function Ka(e,t,n=!1){let{routesMeta:r}=e,o={},s="/",i=[];for(let c=0;c<r.length;++c){let d=r[c],u=c===r.length-1,h=s==="/"?t:t.slice(s.length)||"/",p=He({path:d.relativePath,caseSensitive:d.caseSensitive,end:u},h),m=d.route;if(!p&&u&&n&&!r[r.length-1].route.index&&(p=He({path:d.relativePath,caseSensitive:d.caseSensitive,end:!1},h)),!p)return null;
11Object.assign(o,p.params),i.push({params:o,pathname:V([s,p.pathname]),pathnameBase:to(V([s,p.pathnameBase])),route:m}),p.pathnameBase!=="/"&&(s=V([s,p.pathnameBase]))}return i}function He(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[n,r]=Ja(e.path,e.caseSensitive,e.end),o=t.match(n);if(!o)return null;let s=o[0],i=s.replace(/(.)\/+$/,"$1"),c=o.slice(1);return{params:r.reduce((u,{paramName:h,isOptional:p},m)=>{if(h==="*"){let k=c[m]||"";i=s.slice(0,s.length-k.length).replace(/(.)\/+$/,"$1")}const x=c[m];return p&&!x?u[h]=void 0:u[h]=(x||"").replace(/%2F/g,"/"),u},{}),pathname:s,pathnameBase:i,pattern:e}}function Ja(e,t=!1,n=!0){$(e==="*"||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let r=[],o="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(i,c,d,u,h)=>{if(r.push({paramName:c,isOptional:d!=null}),d){let p=h.charAt(u+i.length);return p&&p!=="/"?"/([^\\/]*)":"(?:/([^\\/]*))?"}return"/([^\\/]+)"}).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(r.push({paramName:"*"}),o+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?o+="\\/*$":e!==""&&e!=="/"&&(o+="(?:(?=\\/|$))"),[new RegExp(o,t?void 0:"i"),r]}function Qa(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return $(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function K(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}var Xa=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;function Za(e,t="/"){let{pathname:n,search:r="",hash:o=""}=typeof e=="string"?ue(e):e,s;return n?(n=lr(n),n.startsWith("/")?s=jn(n.substring(1),"/"):s=jn(n,t)):s=t,{pathname:s,search:no(r),hash:ro(o)}}function jn(e,t){let n=ze(t).split("/");return e.split("/").forEach(o=>{o===".."?n.length>1&&n.pop():o!=="."&&n.push(o)}),n.length>1?n.join("/"):"/"}function gt(e,t,n,r){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function eo(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function Bt(e){let t=eo(e);return t.map((n,r)=>r===t.length-1?n.pathname:n.pathnameBase)}function nt(e,t,n,r=!1){let o;typeof e=="string"?o=ue(e):(o={...e},C(!o.pathname||!o.pathname.includes("?"),gt("?","pathname","search",o)),C(!o.pathname||!o.pathname.includes("#"),gt("#","pathname","hash",o)),C(!o.search||!o.search.includes("#"),gt("#","search","hash",o)));let s=e===""||o.pathname==="",i=s?"/":o.pathname,c;if(i==null)c=n;else{let p=t.length-1;if(!r&&i.startsWith("..")){let m=i.split("/");for(;m[0]==="..";)m.shift(),p-=1;o.pathname=m.join("/")}c=p>=0?t[p]:"/"}let d=Za(o,c),u=i&&i!=="/"&&i.endsWith("/"),h=(s||i===".")&&n.endsWith("/");return!d.pathname.endsWith("/")&&(u||h)&&(d.pathname+="/"),d}var lr=e=>e.replace(/\/\/+/g,"/"),V=e=>lr(e.join("/")),ze=e=>e.replace(/\/+$/,""),to=e=>ze(e).replace(/^\/*/,"/"),no=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,ro=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e,ao=class{constructor(e,t,n,r=!1){this.status=e,this.statusText=t||"",this.internal=r,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}};function oo(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}function so(e){let t=e.map(n=>n.route.path).filter(Boolean);return V(t)||"/"}var cr=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function dr(e,t){let n=e;if(typeof n!="string"||!Xa.test(n))return{absoluteURL:void 0,isExternal:!1,to:n};let r=n,o=!1;if(cr)try{let s=new URL(window.location.href),i=n.startsWith("//")?new URL(s.protocol+n):new URL(n),c=K(i.pathname,t);
11i.origin===s.origin&&c!=null?n=c+i.search+i.hash:o=!0}catch{$(!1,`<Link to="${n}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:r,isExternal:o,to:n}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var ur=["POST","PUT","PATCH","DELETE"];new Set(ur);var io=["GET",...ur];new Set(io);var pe=l.createContext(null);pe.displayName="DataRouter";var rt=l.createContext(null);rt.displayName="DataRouterState";var pr=l.createContext(!1);function lo(){return l.useContext(pr)}var hr=l.createContext({isTransitioning:!1});hr.displayName="ViewTransition";var co=l.createContext(new Map);co.displayName="Fetchers";var uo=l.createContext(null);uo.displayName="Await";var M=l.createContext(null);M.displayName="Navigation";var Pe=l.createContext(null);Pe.displayName="Location";var B=l.createContext({outlet:null,matches:[],isDataRoute:!1});B.displayName="Route";var Vt=l.createContext(null);Vt.displayName="RouteError";var mr="REACT_ROUTER_ERROR",po="REDIRECT",ho="ROUTE_ERROR_RESPONSE";function mo(e){if(e.startsWith(`${mr}:${po}:{`))try{let t=JSON.parse(e.slice(28));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.location=="string"&&typeof t.reloadDocument=="boolean"&&typeof t.replace=="boolean")return t}catch{}}function fo(e){if(e.startsWith(`${mr}:${ho}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string")return new ao(t.status,t.statusText,t.data)}catch{}}function go(e,{relative:t}={}){C(he(),"useHref() may be used only in the context of a <Router> component.");let{basename:n,navigator:r}=l.useContext(M),{hash:o,pathname:s,search:i}=Re(e,{relative:t}),c=s;return n!=="/"&&(c=s==="/"?n:V([n,s])),r.createHref({pathname:c,search:i,hash:o})}function he(){return l.useContext(Pe)!=null}function P(){return C(he(),"useLocation() may be used only in the context of a <Router> component."),l.useContext(Pe).location}var fr="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function gr(e){l.useContext(M).static||l.useLayoutEffect(e)}function je(){let{isDataRoute:e}=l.useContext(B);return e?To():yo()}function yo(){C(he(),"useNavigate() may be used only in the context of a <Router> component.");let e=l.useContext(pe),{basename:t,navigator:n}=l.useContext(M),{matches:r}=l.useContext(B),{pathname:o}=P(),s=JSON.stringify(Bt(r)),i=l.useRef(!1);return gr(()=>{i.current=!0}),l.useCallback((d,u={})=>{if($(i.current,fr),!i.current)return;if(typeof d=="number"){n.go(d);return}let h=nt(d,JSON.parse(s),o,u.relative==="path");e==null&&t!=="/"&&(h.pathname=h.pathname==="/"?t:V([t,h.pathname])),(u.replace?n.replace:n.push)(h,u.state,u)},[t,n,s,o,e])}var bo=l.createContext(null);function Up(e){let t=l.useContext(B).outlet;return l.useMemo(()=>t&&l.createElement(bo.Provider,{value:e},t),[t,e])}function Bp(){let{matches:e}=l.useContext(B),t=e[e.length-1];return(t==null?void 0:t.params)??{}}function Re(e,{relative:t}={}){let{matches:n}=l.useContext(B),{pathname:r}=P(),o=JSON.stringify(Bt(n));return l.useMemo(()=>nt(e,JSON.parse(o),r,t==="path"),[e,o,r,t])}function wo(e,t){return yr(e,t)}function yr(e,t,n){var g;C(he(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:r}=l.useContext(M),{matches:o}=l.useContext(B),s=o[o.length-1],i=s?s.params:{},c=s?s.pathname:"/",d=s?s.pathnameBase:"/",u=s&&s.route;{let f=u&&u.path||"";wr(c,!u||f.endsWith("*")||f.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${c}" (under <Route path="${f}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render. 12 13Please change the parent <Route path="${f}"> to <Route path="${f==="/"?"*":`${f}/*`}">.`)}let h=P(),p;if(t){let f=typeof t=="string"?ue(t):t;C(d==="/"||((g=f.pathname)==null?void 0:g.startsWith(d)),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${d}" but pathname "${f.pathname}" was given in the \`location\` prop.`),p=f}else p=h;let m=p.pathname||"/",x=m;if(d!=="/"){let f=d.replace(/^\//,"").split("/");x="/"+m.replace(/^\//,"").split("/").slice(f.length).join("/")}let k=n&&n.state.matches.length?n.state.matches.map(f=>Object.assign(f,{route:n.manifest[f.route.id]||f.route})):or(e,{pathname:x});$(u||k!=null,`No routes matched location "${p.pathname}${p.search}${p.hash}" `),$(k==null||k[k.length-1].route.element!==void 0||k[k.length-1].route.Component!==void 0||k[k.length-1].route.lazy!==void 0,`Matched leaf route at location "${p.pathname}${p.search}${p.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let w=_o(k&&k.map(f=>Object.assign({},f,{params:Object.assign({},i,f.params),pathname:V([d,r.encodeLocation?r.encodeLocation(f.pathname.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:f.pathname]),pathnameBase:f.pathnameBase==="/"?d:V([d,r.encodeLocation?r.encodeLocation(f.pathnameBase.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:f.pathnameBase])})),o,n);return t&&w?l.createElement(Pe.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",mask:void 0,...p},navigationType:"POP"}},w):w}function xo(){let e=Ro(),t=oo(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,r="rgba(200,200,200, 0.5)",o={padding:"0.5rem",backgroundColor:r},s={padding:"2px 4px",backgroundColor:r},i=null;return console.error("Error handled by React Router default ErrorBoundary:",e),i=l.createElement(l.Fragment,null,l.createElement("p",null,"ð¿ Hey developer ð"),l.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",l.createElement("code",{style:s},"ErrorBoundary")," or"," ",l.createElement("code",{style:s},"errorElement")," prop on your route.")),l.createElement(l.Fragment,null,l.createElement("h2",null,"Unexpected Application
13Error!"),l.createElement("h3",{style:{fontStyle:"italic"}},t),n?l.createElement("pre",{style:o},n):null,i)}var vo=l.createElement(xo,null),br=class extends l.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error("React Router caught the following error during render",e)}render(){let e=this.state.error;if(this.context&&typeof e=="object"&&e&&"digest"in e&&typeof e.digest=="string"){const n=fo(e.digest);n&&(e=n)}let t=e!==void 0?l.createElement(B.Provider,{value:this.props.routeContext},l.createElement(Vt.Provider,{value:e,children:this.props.component})):this.props.children;return this.context?l.createElement(ko,{error:e},t):t}};br.contextType=pr;var yt=new WeakMap;function ko({children:e,error:t}){let{basename:n}=l.useContext(M);if(typeof t=="object"&&t&&"digest"in t&&typeof t.digest=="string"){let r=mo(t.digest);if(r){let o=yt.get(t);if(o)throw o;let s=dr(r.location,n);if(cr&&!yt.get(t))if(s.isExternal||r.reloadDocument)window.location.href=s.absoluteURL||s.to;else{const i=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(s.to,{replace:r.replace}));throw yt.set(t,i),i}return l.createElement("meta",{httpEquiv:"refresh",content:`0;url=${s.absoluteURL||s.to}`})}}return e}function Eo({routeContext:e,match:t,children:n}){let r=l.useContext(pe);return r&&r.static&&r.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=t.route.id),l.createElement(B.Provider,{value:e},n)}function _o(e,t=[],n){let r=n==null?void 0:n.state;if(e==null){if(!r)return null;if(r.errors)e=r.matches;else if(t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let o=e,s=r==null?void 0:r.errors;if(s!=null){let h=o.findIndex(p=>p.route.id&&(s==null?void 0:s[p.route.id])!==void 0);C(h>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(s).join(",")}`),o=o.slice(0,Math.min(o.length,h+1))}let i=!1,c=-1;if(n&&r){i=r.renderFallback;for(let h=0;h<o.length;h++){let p=o[h];if((p.route.HydrateFallback||p.route.hydrateFallbackElement)&&(c=h),p.route.id){let{loaderData:m,errors:x}=r,k=p.route.loader&&!m.hasOwnProperty(p.route.id)&&(!x||x[p.route.id]===void 0);if(p.route.lazy||k){n.isStatic&&(i=!0),c>=0?o=o.slice(0,c+1):o=[o[0]];break}}}}let d=n==null?void 0:n.onError,u=r&&d?(h,p)=>{var m,x;d(h,{location:r.location,params:((x=(m=r.matches)==null?void 0:m[0])==null?void 0:x.params)??{},pattern:so(r.matches),errorInfo:p})}:void 0;return o.reduceRight((h,p,m)=>{let x,k=!1,w=null,g=null;r&&(x=s&&p.route.id?s[p.route.id]:void 0,w=p.route.errorElement||vo,i&&(c<0&&m===0?(wr("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),k=!0,g=null):c===m&&(k=!0,g=p.route.hydrateFallbackElement||null)));let f=t.concat(o.slice(0,m+1)),_=()=>{let S;return x?S=w:k?S=g:p.route.Component?S=l.createElement(p.route.Component,null):p.route.element?S=p.route.element:S=h,l.createElement(Eo,{match:p,routeContext:{outlet:h,matches:f,isDataRoute:r!=null},children:S})};return r&&(p.route.ErrorBoundary||p.route.errorElement||m===0)?l.createElement(br,{location:r.location,revalidation:r.revalidation,component:w,error:x,children:_(),routeContext:{outlet:null,matches:f,isDataRoute:!0},onError:u}):_()},null)}function Ht(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function So(e){let t=l.useContext(pe);return C(t,Ht(e)),t}function Co(e){let t=l.useContext(rt);return C(t,Ht(e)),t}function Po(e){let t=l.useContext(B);return C(t,Ht(e)),t}function zt(e){let t=Po(e),n=t.matches[t.matches.length-1];return C(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function jo(){return zt("useRouteId")}function Ro(){var r;let e=l.useContext(Vt),t=Co("useRouteError"),n=zt("useRouteError");return e!==void 0?e:(r=t.errors)==null?void 0:r[n]}function To(){let{router:e}=So("useNavigate"),t=zt("useNavigate"),n=l.useRef(!1);return gr(()=>{n.current=!0}),l.useCallback(async(o,s={})=>{$(n.current,fr),n.current&&(typeof o=="number"?await e.navigate(o):await e.navigate(o,{fromRouteId:t,...s}))},[e,t])}var Rn={};function wr(e,t,n){!t&&!Rn[e]&&(Rn[e]=!0,$(!1,n))}l.memo(Io);function Io({routes:e,manifest:t,future:n,state:r,isStatic:o,onError:s}){return yr(e,void 0,{manifest:t,state:r,isStatic:o,onError:s})}function W({to:e,replace:t,state:n,relative:r}){C(he(),"<Navigate> may be used only in the context of a <Router> component.");let{static:o}=l.useContext(M);$(!o,"<Navigate> must not be used on the initial render in a <StaticRouter>. This is a no-op, but you should modify your code so the <Navigate> is only ever rendered in response to some user interaction or state change.");let{matches:s}=l.useContext(B),{pathname:i}=P(),c=je(),d=nt(e,Bt(s),i,r==="path"),u=JSON.stringify(d);return l.useEffect(()=>{c(JSON.parse(u),{replace:t,state:n,relative:r})},[c,u,r,t,n]),null}function b(e){C(!1,"A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.")}function No({basename:e="/",children:t=null,location:n,navigationType:r="POP",navigator:o,static:s=!1,useTransitions:i}){C(!he(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let c=e.replace(/^\/*/,"/"),d=l.useMemo(()=>({basename:c,navigator:o,static:s,useTransitions:i,future:{}}),[c,o,s,i]);typeof n=="string"&&(n=ue(n));
13let{pathname:u="/",search:h="",hash:p="",state:m=null,key:x="default",mask:k}=n,w=l.useMemo(()=>{let g=K(u,c);return g==null?null:{location:{pathname:g,search:h,hash:p,state:m,key:x,mask:k},navigationType:r}},[c,u,h,p,m,x,r,k]);return $(w!=null,`<Router basename="${c}"> is not able to match the URL "${u}${h}${p}" because it does not start with the basename, so the <Router> won't render anything.`),w==null?null:l.createElement(M.Provider,{value:d},l.createElement(Pe.Provider,{children:t,value:w}))}function Ao({children:e,location:t}){return wo(Ct(e),t)}function Ct(e,t=[]){let n=[];return l.Children.forEach(e,(r,o)=>{if(!l.isValidElement(r))return;let s=[...t,o];if(r.type===l.Fragment){n.push.apply(n,Ct(r.props.children,s));return}C(r.type===b,`[${typeof r.type=="string"?r.type:r.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),C(!r.props.index||!r.props.children,"An index route cannot have child routes.");let i={id:r.props.id||s.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,middleware:r.props.middleware,loader:r.props.loader,action:r.props.action,hydrateFallbackElement:r.props.hydrateFallbackElement,HydrateFallback:r.props.HydrateFallback,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.hasErrorBoundary===!0||r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(i.children=Ct(r.props.children,s)),n.push(i)}),n}var Oe="get",De="application/x-www-form-urlencoded";function at(e){return typeof HTMLElement<"u"&&e instanceof HTMLElement}function Lo(e){return at(e)&&e.tagName.toLowerCase()==="button"}function Oo(e){return at(e)&&e.tagName.toLowerCase()==="form"}function Do(e){return at(e)&&e.tagName.toLowerCase()==="input"}function Mo(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Fo(e,t){return e.button===0&&(!t||t==="_self")&&!Mo(e)}function Pt(e=""){return new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map(o=>[n,o]):[[n,r]])},[]))}function $o(e,t){let n=Pt(e);return t&&t.forEach((r,o)=>{n.has(o)||t.getAll(o).forEach(s=>{n.append(o,s)})}),n}var Ae=null;function Uo(){if(Ae===null)try{new FormData(document.createElement("form"),0),Ae=!1}catch{Ae=!0}return Ae}var Bo=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function bt(e){return e!=null&&!Bo.has(e)?($(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${De}"`),null):e}function Vo(e,t){let n,r,o,s,i;if(Oo(e)){let c=e.getAttribute("action");r=c?K(c,t):null,n=e.getAttribute("method")||Oe,o=bt(e.getAttribute("enctype"))||De,s=new FormData(e)}else if(Lo(e)||Do(e)&&(e.type==="submit"||e.type==="image")){let c=e.form;if(c==null)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let d=e.getAttribute("formaction")||c.getAttribute("action");if(r=d?K(d,t):null,n=e.getAttribute("formmethod")||c.getAttribute("method")||Oe,o=bt(e.getAttribute("formenctype"))||bt(c.getAttribute("enctype"))||De,s=new FormData(c,e),!Uo()){let{name:u,type:h,value:p}=e;if(h==="image"){let m=u?`${u}.`:"";s.append(`${m}x`,"0"),s.append(`${m}y`,"0")}else u&&s.append(u,p)}}else{if(at(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');n=Oe,r=null,o=De,i=e}return s&&o==="text/plain"&&(i=s,s=void 0),{action:r,method:n.toLowerCase(),encType:o,formData:s,body:i}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function Wt(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function xr(e,t,n,r){let o=typeof e=="string"?new URL(e,typeof window>"u"?"server://singlefetch/":window.location.origin):e;return n?o.pathname.endsWith("/")?o.pathname=`${o.pathname}_.${r}`:o.pathname=`${o.pathname}.${r}`:o.pathname==="/"?o.pathname=`_root.${r}`:t&&K(o.pathname,t)==="/"?o.pathname=`${ze(t)}
13/_root.${r}`:o.pathname=`${ze(o.pathname)}.${r}`,o}async function Ho(e,t){if(e.id in t)return t[e.id];try{let n=await import(e.module);return t[e.id]=n,n}catch(n){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(n),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function zo(e){return e==null?!1:e.href==null?e.rel==="preload"&&typeof e.imageSrcSet=="string"&&typeof e.imageSizes=="string":typeof e.rel=="string"&&typeof e.href=="string"}async function Wo(e,t,n){let r=await Promise.all(e.map(async o=>{let s=t.routes[o.route.id];if(s){let i=await Ho(s,n);return i.links?i.links():[]}return[]}));return Ko(r.flat(1).filter(zo).filter(o=>o.rel==="stylesheet"||o.rel==="preload").map(o=>o.rel==="stylesheet"?{...o,rel:"prefetch",as:"style"}:{...o,rel:"prefetch"}))}function Tn(e,t,n,r,o,s){let i=(d,u)=>n[u]?d.route.id!==n[u].route.id:!0,c=(d,u)=>{var h;return n[u].pathname!==d.pathname||((h=n[u].route.path)==null?void 0:h.endsWith("*"))&&n[u].params["*"]!==d.params["*"]};return s==="assets"?t.filter((d,u)=>i(d,u)||c(d,u)):s==="data"?t.filter((d,u)=>{var p;let h=r.routes[d.route.id];if(!h||!h.hasLoader)return!1;if(i(d,u)||c(d,u))return!0;if(d.route.shouldRevalidate){let m=d.route.shouldRevalidate({currentUrl:new URL(o.pathname+o.search+o.hash,window.origin),currentParams:((p=n[0])==null?void 0:p.params)||{},nextUrl:new URL(e,window.origin),nextParams:d.params,defaultShouldRevalidate:!0});if(typeof m=="boolean")return m}return!0}):[]}function Go(e,t,{includeHydrateFallback:n}={}){return qo(e.map(r=>{let o=t.routes[r.route.id];if(!o)return[];let s=[o.module];return o.clientActionModule&&(s=s.concat(o.clientActionModule)),o.clientLoaderModule&&(s=s.concat(o.clientLoaderModule)),n&&o.hydrateFallbackModule&&(s=s.concat(o.hydrateFallbackModule)),o.imports&&(s=s.concat(o.imports)),s}).flat(1))}function qo(e){return[...new Set(e)]}function Yo(e){let t={},n=Object.keys(e).sort();for(let r of n)t[r]=e[r];return t}function Ko(e,t){let n=new Set;return new Set(t),e.reduce((r,o)=>{let s=JSON.stringify(Yo(o));return n.has(s)||(n.add(s),r.push({key:s,link:o})),r},[])}function Gt(){let e=l.useContext(pe);return Wt(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function Jo(){let e=l.useContext(rt);return Wt(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}var qt=l.createContext(void 0);qt.displayName="FrameworkContext";function Yt(){let e=l.useContext(qt);return Wt(e,"You must render this element inside a <HydratedRouter> element"),e}function Qo(e,t){let n=l.useContext(qt),[r,o]=l.useState(!1),[s,i]=l.useState(!1),{onFocus:c,onBlur:d,onMouseEnter:u,onMouseLeave:h,onTouchStart:p}=t,m=l.useRef(null);l.useEffect(()=>{if(e==="render"&&i(!0),e==="viewport"){let w=f=>{f.forEach(_=>{i(_.isIntersecting)})},g=new IntersectionObserver(w,{threshold:.5});return m.current&&g.observe(m.current),()=>{g.disconnect()}}},[e]),l.useEffect(()=>{if(r){let w=setTimeout(()=>{i(!0)},100);return()=>{clearTimeout(w)}}},[r]);let x=()=>{o(!0)},k=()=>{o(!1),i(!1)};return n?e!=="intent"?[s,m,{}]:[s,m,{onFocus:fe(c,x),onBlur:fe(d,k),onMouseEnter:fe(u,x),onMouseLeave:fe(h,k),onTouchStart:fe(p,x)}]:[!1,m,{}]}function fe(e,t){return n=>{e&&e(n),n.defaultPrevented||t(n)}}function Xo({page:e,...t}){let n=lo(),{router:r}=Gt(),o=l.useMemo(()=>or(r.routes,e,r.basename),[r.routes,e,r.basename]);return o?n?l.createElement(es,{page:e,matches:o,...t}):l.createElement(ts,{page:e,matches:o,...t}):null}function Zo(e){let{manifest:t,routeModules:n}=Yt(),[r,o]=l.useState([]);return l.useEffect(()=>{let s=!1;return Wo(e,t,n).then(i=>{s||o(i)}),()=>{s=!0}},[e,t,n]),r}function es({page:e,matches:t,...n}){let r=P(),{future:o}=Yt(),{basename:s}=Gt(),i=l.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let c=xr(e,s,o.unstable_trailingSlashAwareDataRequests,"rsc"),d=!1,u=[];for(let h of t)typeof h.route.shouldRevalidate=="function"?d=!0:u.push(h.route.id);return d&&u.length>0&&c.searchParams.set("_routes",u.join(",")),[c.pathname+c.search]},[s,o.unstable_trailingSlashAwareDataRequests,e,r,t]);return l.createElement(l.Fragment,null,i.map(c=>l.createElement("link",{key:c,rel:"prefetch",as:"fetch",href:c,...n})))}function ts({page:e,matches:t,...n}){let r=P(),{future:o,manifest:s,routeModules:i}=Yt(),{basename:c}=Gt(),{loaderData:d,matches:u}=Jo(),h=l.useMemo(()=>Tn(e,t,u,s,r,"data"),[e,t,u,s,r]),p=l.useMemo(()=>Tn(e,t,u,s,r,"assets"),[e,t,u,s,r]),m=l.useMemo(()=>
13{if(e===r.pathname+r.search+r.hash)return[];let w=new Set,g=!1;if(t.forEach(_=>{var A;let S=s.routes[_.route.id];!S||!S.hasLoader||(!h.some(I=>I.route.id===_.route.id)&&_.route.id in d&&((A=i[_.route.id])!=null&&A.shouldRevalidate)||S.hasClientLoader?g=!0:w.add(_.route.id))}),w.size===0)return[];let f=xr(e,c,o.unstable_trailingSlashAwareDataRequests,"data");return g&&w.size>0&&f.searchParams.set("_routes",t.filter(_=>w.has(_.route.id)).map(_=>_.route.id).join(",")),[f.pathname+f.search]},[c,o.unstable_trailingSlashAwareDataRequests,d,r,s,h,t,e,i]),x=l.useMemo(()=>Go(p,s),[p,s]),k=Zo(p);return l.createElement(l.Fragment,null,m.map(w=>l.createElement("link",{key:w,rel:"prefetch",as:"fetch",href:w,...n})),x.map(w=>l.createElement("link",{key:w,rel:"modulepreload",href:w,...n})),k.map(({key:w,link:g})=>l.createElement("link",{key:w,nonce:n.nonce,...g,crossOrigin:g.crossOrigin??n.crossOrigin})))}function ns(...e){return t=>{e.forEach(n=>{typeof n=="function"?n(t):n!=null&&(n.current=t)})}}var rs=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{rs&&(window.__reactRouterVersion="7.15.1")}catch{}function as({basename:e,children:t,useTransitions:n,window:r}){let o=l.useRef();o.current==null&&(o.current=La({window:r,v5Compat:!0}));let s=o.current,[i,c]=l.useState({action:s.action,location:s.location}),d=l.useCallback(u=>{n===!1?c(u):l.startTransition(()=>c(u))},[n]);return l.useLayoutEffect(()=>s.listen(d),[s,d]),l.createElement(No,{basename:e,children:t,location:i.location,navigationType:i.action,navigator:s,useTransitions:n})}var vr=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,E=l.forwardRef(function({onClick:t,discover:n="render",prefetch:r="none",relative:o,reloadDocument:s,replace:i,mask:c,state:d,target:u,to:h,preventScrollReset:p,viewTransition:m,defaultShouldRevalidate:x,...k},w){let{basename:g,navigator:f,useTransitions:_}=l.useContext(M),S=typeof h=="string"&&vr.test(h),A=dr(h,g);h=A.to;let I=go(h,{relative:o}),z=P(),J=null;if(c){let Q=nt(c,[],z.mask?z.mask.pathname:"/",!0);g!=="/"&&(Q.pathname=Q.pathname==="/"?g:V([g,Q.pathname])),J=f.createHref(Q)}let[ne,me,ft]=Qo(r,k),xa=is(h,{replace:i,mask:c,state:d,target:u,preventScrollReset:p,relative:o,viewTransition:m,defaultShouldRevalidate:x,useTransitions:_});function va(Q){t&&t(Q),Q.defaultPrevented||xa(Q)}let xn=!(A.isExternal||s),vn=l.createElement("a",{...k,...ft,href:(xn?J:void 0)||A.absoluteURL||I,onClick:xn?va:t,ref:ns(w,me),target:u,"data-discover":!S&&n==="render"?"true":void 0});return ne&&!S?l.createElement(l.Fragment,null,vn,l.createElement(Xo,{page:I})):vn});E.displayName="Link";var kr=l.forwardRef(function({"aria-current":t="page",caseSensitive:n=!1,className:r="",end:o=!1,style:s,to:i,viewTransition:c,children:d,...u},h){let p=Re(i,{relative:u.relative}),m=P(),x=l.useContext(rt),{navigator:k,basename:w}=l.useContext(M),g=x!=null&&hs(p)&&c===!0,f=k.encodeLocation?k.encodeLocation(p).pathname:p.pathname,_=m.pathname,S=x&&x.navigation&&x.navigation.location?x.navigation.location.pathname:null;n||(_=_.toLowerCase(),S=S?S.toLowerCase():null,f=f.toLowerCase()),S&&w&&(S=K(S,w)||S);const A=f!=="/"&&f.endsWith("/")?f.length-1:f.length;let I=_===f||!o&&_.startsWith(f)&&_.charAt(A)==="/",z=S!=null&&(S===f||!o&&S.startsWith(f)&&S.charAt(f.length)==="/"),J={isActive:I,isPending:z,isTransitioning:g},ne=I?t:void 0,me;typeof r=="function"?me=r(J):me=[r,I?"active":null,z?"pending":null,g?"transitioning":null].filter(Boolean).join(" ");let ft=typeof s=="function"?s(J):s;return l.createElement(E,{...u,"aria-current":ne,className:me,ref:h,style:ft,to:i,viewTransition:c},typeof d=="function"?d(J):d)});kr.displayName="NavLink";var os=l.forwardRef(({discover:e="render",fetcherKey:t,navigate:n,reloadDocument:r,replace:o,state:s,method:i=Oe,action:c,onSubmit:d,relative:u,preventScrollReset:h,viewTransition:p,defaultShouldRevalidate:m,...x},k)=>{let{useTransitions:w}=l.useContext(M),g=us(),f=ps(c,{relative:u}),_=i.toLowerCase()==="get"?"get":"post",S=typeof c=="string"&&vr.test(c),A=I=>{if(d&&d(I),I.defaultPrevented)return;I.preventDefault();let z=I.nativeEvent.submitter,J=(z==null?void 0:z.getAttribute("formmethod"))||i,ne=()=>
13g(z||I.currentTarget,{fetcherKey:t,method:J,navigate:n,replace:o,state:s,relative:u,preventScrollReset:h,viewTransition:p,defaultShouldRevalidate:m});w&&n!==!1?l.startTransition(()=>ne()):ne()};return l.createElement("form",{ref:k,method:_,action:f,onSubmit:r?d:A,...x,"data-discover":!S&&e==="render"?"true":void 0})});os.displayName="Form";function ss(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Er(e){let t=l.useContext(pe);return C(t,ss(e)),t}function is(e,{target:t,replace:n,mask:r,state:o,preventScrollReset:s,relative:i,viewTransition:c,defaultShouldRevalidate:d,useTransitions:u}={}){let h=je(),p=P(),m=Re(e,{relative:i});return l.useCallback(x=>{if(Fo(x,t)){x.preventDefault();let k=n!==void 0?n:xe(p)===xe(m),w=()=>h(e,{replace:k,mask:r,state:o,preventScrollReset:s,relative:i,viewTransition:c,defaultShouldRevalidate:d});u?l.startTransition(()=>w()):w()}},[p,h,m,n,r,o,t,e,s,i,c,d,u])}function ls(e){$(typeof URLSearchParams<"u","You cannot use the `useSearchParams` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.");let t=l.useRef(Pt(e)),n=l.useRef(!1),r=P(),o=l.useMemo(()=>$o(r.search,n.current?null:t.current),[r.search]),s=je(),i=l.useCallback((c,d)=>{const u=Pt(typeof c=="function"?c(new URLSearchParams(o)):c);n.current=!0,s("?"+u,d)},[s,o]);return[o,i]}var cs=0,ds=()=>`__${String(++cs)}__`;function us(){let{router:e}=Er("useSubmit"),{basename:t}=l.useContext(M),n=jo(),r=e.fetch,o=e.navigate;return l.useCallback(async(s,i={})=>{let{action:c,method:d,encType:u,formData:h,body:p}=Vo(s,t);if(i.navigate===!1){let m=i.fetcherKey||ds();await r(m,n,i.action||c,{defaultShouldRevalidate:i.defaultShouldRevalidate,preventScrollReset:i.preventScrollReset,formData:h,body:p,formMethod:i.method||d,formEncType:i.encType||u,flushSync:i.flushSync})}else await o(i.action||c,{defaultShouldRevalidate:i.defaultShouldRevalidate,preventScrollReset:i.preventScrollReset,formData:h,body:p,formMethod:i.method||d,formEncType:i.encType||u,replace:i.replace,state:i.state,fromRouteId:n,flushSync:i.flushSync,viewTransition:i.viewTransition})},[r,o,t,n])}function ps(e,{relative:t}={}){let{basename:n}=l.useContext(M),r=l.useContext(B);C(r,"useFormAction must be used inside a RouteContext");let[o]=r.matches.slice(-1),s={...Re(e||".",{relative:t})},i=P();if(e==null){s.search=i.search;let c=new URLSearchParams(s.search),d=c.getAll("index");if(d.some(h=>h==="")){c.delete("index"),d.filter(p=>p).forEach(p=>c.append("index",p));let h=c.toString();s.search=h?`?${h}`:""}}return(!e||e===".")&&o.route.index&&(s.search=s.search?s.search.replace(/^\?/,"?index&"):"?index"),n!=="/"&&(s.pathname=s.pathname==="/"?n:V([n,s.pathname])),xe(s)}function hs(e,{relative:t}={}){let n=l.useContext(hr);C(n!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:r}=Er("useViewTransitionState"),o=Re(e,{relative:t});if(!n.isTransitioning)return!1;let s=K(n.currentLocation.pathname,r)||n.currentLocation.pathname,i=K(n.nextLocation.pathname,r)||n.nextLocation.pathname;return He(o.pathname,i)!=null||He(o.pathname,s)!=null}/** 14 * @license lucide-react v1.16.0 - ISC 15 * 16 * This source code is licensed under the ISC license. 17 * See the LICENSE file in the root directory of this source tree. 18 */const _r=(...e)=>e.filter((t,n,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===n).join(" ").trim();/** 19 * @license lucide-react v1.16.0 - ISC 20 * 21 * This source code is licensed under the ISC license. 22 * See the LICENSE file in the root directory of this source tree. 23 */const ms=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();/** 24 * @license lucide-react v1.16.0 - ISC 25 * 26 * This source code is licensed under the ISC license. 27 * See the LICENSE file in the root directory of this source tree. 28 */const fs=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,n,r)=>r?r.toUpperCase():n.toLowerCase());/** 29 * @license lucide-react v1.16.0 - ISC 30 * 31 * This source code is licensed under the ISC license. 32 * See the LICENSE file in the root directory of this source tree. 33 */const In=e=>{const t=fs(e);return t.charAt(0).toUpperCase()+t.slice(1)};/** 34 * @license lucide-react v1.16.0 - ISC 35 * 36 * This source code is licensed under the ISC license. 37 * See the LICENSE file in the root directory of this source tree. 38 */var wt={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** 39 * @license lucide-react v1.16.0 - ISC 40 * 41 * This source code is licensed under the ISC license. 42 * See the LICENSE file in the root directory of this source tree. 43 */const gs=e=>{for(const t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0;return!1},ys=l.createContext({}),bs=()=>l.useContext(ys),ws=l.forwardRef(({color:e,size:t,strokeWidth:n,absoluteStrokeWidth:r,className:o="",children:s,iconNode:i,...c},d)=>{const{size:u=24,strokeWidth:h=2,absoluteStrokeWidth:p=!1,color:m="currentColor",className:x=""}=bs()??{},k=r??p?Number(n??h)*24/Number(t??u):n??h;return l.createElement("svg",{ref:d,...wt,width:t??u??wt.width,height:t??u??wt.height,stroke:e??m,
43strokeWidth:k,className:_r("lucide",x,o),...!s&&!gs(c)&&{"aria-hidden":"true"},...c},[...i.map(([w,g])=>l.createElement(w,g)),...Array.isArray(s)?s:[s]])});/** 44 * @license lucide-react v1.16.0 - ISC 45 * 46 * This source code is licensed under the ISC license. 47 * See the LICENSE file in the root directory of this source tree. 48 */const v=(e,t)=>{const n=l.forwardRef(({className:r,...o},s)=>l.createElement(ws,{ref:s,iconNode:t,className:_r(`lucide-${ms(In(e))}`,`lucide-${e}`,r),...o}));return n.displayName=In(e),n};/** 49 * @license lucide-react v1.16.0 - ISC 50 * 51 * This source code is licensed under the ISC license. 52 * See the LICENSE file in the root directory of this source tree. 53 */const xs=[["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}],["path",{d:"M10 4v4",key:"pp8u80"}],["path",{d:"M2 8h20",key:"d11cs7"}],["path",{d:"M6 4v4",key:"1svtjw"}]],vs=v("app-window",xs);/** 54 * @license lucide-react v1.16.0 - ISC 55 * 56 * This source code is licensed under the ISC license. 57 * See the LICENSE file in the root directory of this source tree. 58 */const ks=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],We=v("arrow-right",ks);/** 59 * @license lucide-react v1.16.0 - ISC 60 * 61 * This source code is licensed under the ISC license. 62 * See the LICENSE file in the root directory of this source tree. 63 */const Es=[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]],_s=v("book-open",Es);/** 64 * @license lucide-react v1.16.0 - ISC 65 * 66 * This source code is licensed under the ISC license. 67 * See the LICENSE file in the root directory of this source tree. 68 */const Ss=[["path",{d:"M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16",key:"jecpp"}],["rect",{width:"20",height:"14",x:"2",y:"6",rx:"2",key:"i6l2r4"}]],Cs=v("briefcase",Ss);/** 69 * @license lucide-react v1.16.0 - ISC 70 * 71 * This source code is licensed under the ISC license. 72 * See the LICENSE file in the root directory of this source tree. 73 */const Ps=[["path",{d:"M12 20v-9",key:"1qisl0"}],["path",{d:"M14 7a4 4 0 0 1 4 4v3a6 6 0 0 1-12 0v-3a4 4 0 0 1 4-4z",key:"uouzyp"}],["path",{d:"M14.12 3.88 16 2",key:"qol33r"}],["path",{d:"M21 21a4 4 0 0 0-3.81-4",key:"1b0z45"}],["path",{d:"M21 5a4 4 0 0 1-3.55 3.97",key:"5cxbf6"}],["path",{d:"M22 13h-4",key:"1jl80f"}],["path",{d:"M3 21a4 4 0 0 1 3.81-4",key:"1fjd4g"}],["path",{d:"M3 5a4 4 0 0 0 3.55 3.97",key:"1d7oge"}],["path",{d:"M6 13H2",key:"82j7cp"}],["path",{d:"m8 2 1.88 1.88",key:"fmnt4t"}],["path",{d:"M9 7.13V6a3 3 0 1 1 6 0v1.13",key:"1vgav8"}]],js=v("bug",Ps);/** 74 * @license lucide-react v1.16.0 - ISC 75 * 76 * This source code is licensed under the ISC license. 77 * See the LICENSE file in the root directory of this source tree. 78 */const Rs=[["path",{d:"M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z",key:"18u6gg"}],["circle",{cx:"12",cy:"13",r:"3",key:"1vg3eu"}]],Kt=v("camera",Rs);/** 79 * @license lucide-react v1.16.0 - ISC 80 * 81 * This source code is licensed under the ISC license. 82 * See the LICENSE file in the root directory of this source tree. 83 */const Ts=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],Is=v("chevron-down",Ts);/** 84 * @license lucide-react v1.16.0 - ISC 85 * 86 * This source code is licensed under the ISC license. 87 * See the LICENSE file in the root directory of this source tree. 88 */const Ns=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]],As=v("circle-dot",Ns);/** 89 * @license lucide-react v1.16.0 - ISC 90 * 91 * This source code is licensed under the ISC license. 92 * See the LICENSE file in the root directory of this source tree. 93 */const Ls=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"m9 14 2 2 4-4",key:"df797q"}]],Os=v("clipboard-check",Ls);/** 94 * @license lucide-react v1.16.0 - ISC 95 * 96 * This source code is licensed under the ISC license. 97 * See the LICENSE file in the root directory of this source tree.
98 */const Ds=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"M12 11h4",key:"1jrz19"}],["path",{d:"M12 16h4",key:"n85exb"}],["path",{d:"M8 11h.01",key:"1dfujw"}],["path",{d:"M8 16h.01",key:"18s6g9"}]],Ms=v("clipboard-list",Ds);/** 99 * @license lucide-react v1.16.0 - ISC 100 * 101 * This source code is licensed under the ISC license. 102 * See the LICENSE file in the root directory of this source tree. 103 */const Fs=[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]],$s=v("cloud",Fs);/** 104 * @license lucide-react v1.16.0 - ISC 105 * 106 * This source code is licensed under the ISC license. 107 * See the LICENSE file in the root directory of this source tree. 108 */const Us=[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]],Bs=v("code-xml",Us);/** 109 * @license lucide-react v1.16.0 - ISC 110 * 111 * This source code is licensed under the ISC license. 112 * See the LICENSE file in the root directory of this source tree. 113 */const Vs=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M12 3v18",key:"108xh3"}]],Hs=v("columns-2",Vs);/** 114 * @license lucide-react v1.16.0 - ISC 115 * 116 * This source code is licensed under the ISC license. 117 * See the LICENSE file in the root directory of this source tree. 118 */const zs=[["path",{d:"M12 2a10 10 0 1 0 10 10 4 4 0 0 1-5-5 4 4 0 0 1-5-5",key:"laymnq"}],["path",{d:"M8.5 8.5v.01",key:"ue8clq"}],["path",{d:"M16 15.5v.01",key:"14dtrp"}],["path",{d:"M12 12v.01",key:"u5ubse"}],["path",{d:"M11 17v.01",key:"1hyl5a"}],["path",{d:"M7 14v.01",key:"uct60s"}]],Ws=v("cookie",zs);/** 119 * @license lucide-react v1.16.0 - ISC 120 * 121 * This source code is licensed under the ISC license. 122 * See the LICENSE file in the root directory of this source tree. 123 */const Gs=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M14.83 14.83a4 4 0 1 1 0-5.66",key:"1i56pz"}]],Sr=v("copyright",Gs);/** 124 * @license lucide-react v1.16.0 - ISC 125 * 126 * This source code is licensed under the ISC license. 127 * See the LICENSE file in the root directory of this source tree. 128 */const qs=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],Ys=v("download",qs);/** 129 * @license lucide-react v1.16.0 - ISC 130 * 131 * This source code is licensed under the ISC license. 132 * See the LICENSE file in the root directory of this source tree. 133 */const Ks=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],Cr=v("external-link",Ks);/** 134 * @license lucide-react v1.16.0 - ISC 135 * 136 * This source code is licensed under the ISC license. 137 * See the LICENSE file in the root directory of this source tree. 138 */const Js=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],ot=v("file-text",Js);/** 139 * @license lucide-react v1.16.0 - ISC 140 * 141 * This source code is licensed under the ISC license. 142 * See the LICENSE file in the root directory of this source tree. 143 */const Qs=[["path",{d:"M15 6a9 9 0 0 0-9 9V3",key:"1cii5b"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}]],st=v("git-branch",Qs);/** 144 * @license lucide-react v1.16.0 - ISC 145 * 146 * This source code is licensed under the ISC license. 147 * See the LICENSE file in the root directory of this source tree. 148 */const Xs=[["path",{d:"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z",key:"j76jl0"}],["path",{d:"M22 10v6",key:"1lu8f3"}],["path",{d:"M6 12.5V16a6 3 0 0 0 12 0v-3.5",key:"1r8lef"}]],Zs=v("graduation-cap",Xs);/** 149 * @license lucide-react v1.16.0 - ISC 150 * 151 * This source code is licensed under the ISC license. 152 * See the LICENSE file in the root directory of this source tree. 153 */const ei=[["path",{d:"M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3",key:"1xhozi"}]],ti=v("headphones",ei);/** 154 * @license lucide-react v1.16.0 - ISC 155 * 156 * This source code is licensed under the ISC license. 157 * See the LICENSE file in the root directory of this source tree. 158 */const ni=[["path",{d:"M19.414 14.414C21 12.828 22 11.5 22 9.5a5.5 5.5 0 0 0-9.591-3.676.6.6 0 0 1-.818.001A5.5 5.5 0 0 0 2 9.5c0 2.3 1.5 4 3 5.5l5.535 5.362a2 2 0 0 0 2.879.052 2.12 2.12 0 0 0-.004-3 2.124 2.124 0 1 0 3-3 2.124 2.124 0 0 0 3.004 0 2 2
1580 0 0 0-2.828l-1.881-1.882a2.41 2.41 0 0 0-3.409 0l-1.71 1.71a2 2 0 0 1-2.828 0 2 2 0 0 1 0-2.828l2.823-2.762",key:"17lmqv"}]],ri=v("heart-handshake",ni);/** 159 * @license lucide-react v1.16.0 - ISC 160 * 161 * This source code is licensed under the ISC license. 162 * See the LICENSE file in the root directory of this source tree. 163 */const ai=[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]],oi=v("house",ai);/** 164 * @license lucide-react v1.16.0 - ISC 165 * 166 * This source code is licensed under the ISC license. 167 * See the LICENSE file in the root directory of this source tree. 168 */const si=[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]],it=v("layers",si);/** 169 * @license lucide-react v1.16.0 - ISC 170 * 171 * This source code is licensed under the ISC license. 172 * See the LICENSE file in the root directory of this source tree. 173 */const ii=[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]],li=v("layout-dashboard",ii);/** 174 * @license lucide-react v1.16.0 - ISC 175 * 176 * This source code is licensed under the ISC license. 177 * See the LICENSE file in the root directory of this source tree. 178 */const ci=[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}],["path",{d:"M14 4h7",key:"3xa0d5"}],["path",{d:"M14 9h7",key:"1icrd9"}],["path",{d:"M14 15h7",key:"1mj8o2"}],["path",{d:"M14 20h7",key:"11slyb"}]],di=v("layout-list",ci);/** 179 * @license lucide-react v1.16.0 - ISC 180 * 181 * This source code is licensed under the ISC license. 182 * See the LICENSE file in the root directory of this source tree. 183 */const ui=[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]],pi=v("link-2",ui);/** 184 * @license lucide-react v1.16.0 - ISC 185 * 186 * This source code is licensed under the ISC license. 187 * See the LICENSE file in the root directory of this source tree. 188 */const hi=[["path",{d:"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z",key:"169xi5"}],["path",{d:"M15 5.764v15",key:"1pn4in"}],["path",{d:"M9 3.236v15",key:"1uimfh"}]],mi=v("map",hi);/** 189 * @license lucide-react v1.16.0 - ISC 190 * 191 * This source code is licensed under the ISC license. 192 * See the LICENSE file in the root directory of this source tree. 193 */const fi=[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]],Pr=v("menu",fi);/** 194 * @license lucide-react v1.16.0 - ISC 195 * 196 * This source code is licensed under the ISC license. 197 * See the LICENSE file in the root directory of this source tree. 198 */const gi=[["path",{d:"M15.033 9.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56V7.648a.645.645 0 0 1 .967-.56z",key:"vbtd3f"}],["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"M8 21h8",key:"1ev6f3"}],["rect",{x:"2",y:"3",width:"20",height:"14",rx:"2",key:"x3v2xh"}]],jr=v("monitor-play",gi);/** 199 * @license lucide-react v1.16.0 - ISC 200 * 201 * This source code is licensed under the ISC license. 202 * See the LICENSE file in the root directory of this source tree. 203 */const yi=[["path",{d:"M14 4.1 12 6",key:"ita8i4"}],["path",{d:"m5.1 8-2.9-.8",key:"1go3kf"}],["path",{d:"m6 12-1.9 2",key:"mnht97"}],["path",{d:"M7.2 2.2 8 5.1",key:"1cfko1"}],["path",{d:"M9.037 9.69a.498.498 0 0 1 .653-.653l11 4.5a.5.5 0 0 1-.074.949l-4.349 1.041a1 1 0 0 0-.74.739l-1.04 4.35a.5.5 0 0 1-.95.
203074z",key:"s0h3yz"}]],bi=v("mouse-pointer-click",yi);/** 204 * @license lucide-react v1.16.0 - ISC 205 * 206 * This source code is licensed under the ISC license. 207 * See the LICENSE file in the root directory of this source tree. 208 */const wi=[["path",{d:"m14.622 17.897-10.68-2.913",key:"vj2p1u"}],["path",{d:"M18.376 2.622a1 1 0 1 1 3.002 3.002L17.36 9.643a.5.5 0 0 0 0 .707l.944.944a2.41 2.41 0 0 1 0 3.408l-.944.944a.5.5 0 0 1-.707 0L8.354 7.348a.5.5 0 0 1 0-.707l.944-.944a2.41 2.41 0 0 1 3.408 0l.944.944a.5.5 0 0 0 .707 0z",key:"18tc5c"}],["path",{d:"M9 8c-1.804 2.71-3.97 3.46-6.583 3.948a.507.507 0 0 0-.302.819l7.32 8.883a1 1 0 0 0 1.185.204C12.735 20.405 16 16.792 16 15",key:"ytzfxy"}]],Rr=v("paintbrush",wi);/** 209 * @license lucide-react v1.16.0 - ISC 210 * 211 * This source code is licensed under the ISC license. 212 * See the LICENSE file in the root directory of this source tree. 213 */const xi=[["path",{d:"M2 3h20",key:"91anmk"}],["path",{d:"M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3",key:"2k9sn8"}],["path",{d:"m7 21 5-5 5 5",key:"bip4we"}]],Tr=v("presentation",xi);/** 214 * @license lucide-react v1.16.0 - ISC 215 * 216 * This source code is licensed under the ISC license. 217 * See the LICENSE file in the root directory of this source tree. 218 */const vi=[["path",{d:"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",key:"w46dr5"}]],Te=v("puzzle",vi);/** 219 * @license lucide-react v1.16.0 - ISC 220 * 221 * This source code is licensed under the ISC license. 222 * See the LICENSE file in the root directory of this source tree. 223 */const ki=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],Ge=v("refresh-cw",ki);/** 224 * @license lucide-react v1.16.0 - ISC 225 * 226 * This source code is licensed under the ISC license. 227 * See the LICENSE file in the root directory of this source tree. 228 */const Ei=[["circle",{cx:"6",cy:"19",r:"3",key:"1kj8tv"}],["path",{d:"M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15",key:"1d8sl"}],["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}]],Ir=v("route",Ei);/** 229 * @license lucide-react v1.16.0 - ISC 230 * 231 * This source code is licensed under the ISC license. 232 * See the LICENSE file in the root directory of this source tree. 233 */const _i=[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]],Nr=v("share-2",_i);/** 234 * @license lucide-react v1.16.0 - ISC 235 * 236 * This source code is licensed under the ISC license. 237 * See the LICENSE file in the root directory of this source tree. 238 */const Si=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],Ci=v("shield",Si);/** 239 * @license lucide-react v1.16.0 - ISC 240 * 241 * This source code is licensed under the ISC license. 242 * See the LICENSE file in the root directory of this source tree. 243 */const Pi=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}
243],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],Ar=v("sparkles",Pi);/** 244 * @license lucide-react v1.16.0 - ISC 245 * 246 * This source code is licensed under the ISC license. 247 * See the LICENSE file in the root directory of this source tree. 248 */const ji=[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]],Ri=v("square-terminal",ji);/** 249 * @license lucide-react v1.16.0 - ISC 250 * 251 * This source code is licensed under the ISC license. 252 * See the LICENSE file in the root directory of this source tree. 253 */const Ti=[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]],Ii=v("tag",Ti);/** 254 * @license lucide-react v1.16.0 - ISC 255 * 256 * This source code is licensed under the ISC license. 257 * See the LICENSE file in the root directory of this source tree. 258 */const Ni=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],Lr=v("triangle-alert",Ni);/** 259 * @license lucide-react v1.16.0 - ISC 260 * 261 * This source code is licensed under the ISC license. 262 * See the LICENSE file in the root directory of this source tree. 263 */const Ai=[["path",{d:"M18 21a8 8 0 0 0-16 0",key:"3ypg7q"}],["circle",{cx:"10",cy:"8",r:"5",key:"o932ke"}],["path",{d:"M22 20c0-3.37-2-6.5-4-8a5 5 0 0 0-.45-8.3",key:"10s06x"}]],Li=v("users-round",Ai);/** 264 * @license lucide-react v1.16.0 - ISC 265 * 266 * This source code is licensed under the ISC license. 267 * See the LICENSE file in the root directory of this source tree. 268 */const Oi=[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]],Di=v("workflow",Oi);/** 269 * @license lucide-react v1.16.0 - ISC 270 * 271 * This source code is licensed under the ISC license. 272 * See the LICENSE file in the root directory of this source tree. 273 */const Mi=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Jt=v("x",Mi);function Fi(){return{init:()=>{},shutdown:()=>{},track:(e,t)=>{},page:e=>{},captureException:(e,t)=>{},identify:(e,t)=>{},group:(e,t,n)=>{},registerSuperProperties:e=>{},reset:()=>{}}}const O={acquisitionContextCaptured:"acquisition_context_captured",analyticsEnabled:"analytics_enabled",consentAccepted:"consent_accepted",consentRejected:"consent_rejected",pageView:"$pageview",hardErrorViewed:"hard_error_viewed",softErrorShown:"soft_error_shown",exceptionCaptured:"exception_captured",userSignedIn:"user_signed_in",extensionGateViewed:"extension_gate_viewed",extensionDetected:"extension_detected",extensionInstallCtaClicked:"extension_install_cta_clicked",documentCreated:"document_created",documentDeleted:"document_deleted",documentShared:"document_shared",documentEmbedded:"document_embedded",documentPdfExported:"document_pdf_exported",documentFirstSaved:"document_first_saved",documentSaved:"document_saved",tourCreated:"tour_created",tourDeleted:"tour_deleted",tourShared:"tour_shared",tourEmbedded:"tour_embedded",tourPdfExported:"tour_pdf_exported",editorOpened:"editor_opened",playerOpened:"player_opened",routeDeleted:"route_deleted",routeShared:"route_shared",routePdfExported:"route_pdf_exported",artifactGenerated:"artifact_generated",artifactRegenerated:"artifact_regenerated",artifactDownloaded:"artifact_downloaded",flowMapEditModeToggled:"flow_map_edit_mode_toggled",flowMapOverlaySaved:"flow_map_overlay_saved",flowMapLayoutReset:"flow_map_layout_reset",workspaceCreatedPersonal:"workspace_created_personal",workspaceCreatedTeam:"workspace_created_team",workspaceInviteAccepted:"workspace_invite_accepted",workspaceSwitched:"workspace_switched",memberInvited:"member_invited",memberInviteResent:"member_invite_resent",memberInviteRevoked:"member_invite_revoked",memberCapabilitiesUpdated:"member_capabilities_updated",memberStatusUpdated:"member_status_updated",localLibraryImported:"local_library_imported",betaPricingInterest:"beta_pricing_interest",captureBlockedMobile:"capture_blocked_mobile",actionSucceeded:"action_succeeded",actionFailed:"action_failed"};
273function Or(){if(typeof document>"u"||!document.referrer)return null;try{const e=new URL(document.referrer);return e.hostname===window.location.hostname?null:e.hostname}catch{return null}}function Vp(){if(typeof window>"u")return null;try{const e=window.location.ancestorOrigins;if(e&&e.length>0){const t=e[e.length-1];if(t){const n=new URL(t).hostname;if(n&&n!==window.location.hostname)return n}}}catch{}return Or()}function $i(){if(typeof window>"u")return{};const e=new URLSearchParams(window.location.search),t={};for(const[n,r]of e.entries())n.toLowerCase().startsWith("utm_")&&r&&(t[n.toLowerCase()]=r);return t}const Dr="peacock-acquisition-pending";function Ui(e,t){return e||t||"direct"}function Bi(e){const t=e.utmParams.utm_source,n=e.referrerDomain;return{acquisition_source:Ui(t,n),acquisition_medium:e.utmParams.utm_medium??null,acquisition_campaign:e.utmParams.utm_campaign??null,acquisition_content:e.utmParams.utm_content??null,initial_referrer_domain:n,initial_landing_path:e.landingPath,initial_landing_at:e.capturedAt??new Date().toISOString()}}function Mr(){if(typeof window>"u")return null;try{const e=window.sessionStorage.getItem(Dr);return e?JSON.parse(e):null}catch{return null}}function Vi(e){try{window.sessionStorage.setItem(Dr,JSON.stringify(e))}catch{}}function Hi(){if(typeof window>"u")return null;const e=Mr();if(e)return e;const t=Bi({utmParams:$i(),referrerDomain:Or(),landingPath:window.location.pathname});return Vi(t),t}function Fr(){return Mr()}function $r(e){return e?{...e}:{}}let j=Fi(),U=!1,qe=!1;const Ur="peacock-analytics-first-saved-docs";function zi(e){j=e}function Wi(){U||(U=!0,qe||(j.init(),qe=!0))}function Gi(){U&&(U=!1,qe&&(j.shutdown(),qe=!1))}function F(e,t){U&&j.track(e,t)}function qi(e){U&&j.page(e)}function Yi(e,t){var n;U&&((n=j.captureException)==null||n.call(j,e,t))}function Ki(e,t){var n;U&&((n=j.identify)==null||n.call(j,e,t))}function Ji(e,t,n){var r;U&&((r=j.group)==null||r.call(j,e,t,n))}function Qi(){var t;if(!U)return;const e=$r(Fr());Object.keys(e).length!==0&&((t=j.registerSuperProperties)==null||t.call(j,e),j.track(O.acquisitionContextCaptured,e))}function Nn(){var e;U&&((e=j.reset)==null||e.call(j))}function Xi(){if(typeof window>"u")return new Set;try{const e=window.sessionStorage.getItem(Ur);if(!e)return new Set;const t=JSON.parse(e);return Array.isArray(t)?new Set(t.filter(n=>typeof n=="string")):new Set}catch{return new Set}}function Zi(e){if(!(typeof window>"u"))try{window.sessionStorage.setItem(Ur,JSON.stringify([...e]))}catch{}}function Hp(e,t){if(!U||!e)return;const n=Xi();n.has(e)||(n.add(e),Zi(n),j.track(O.documentFirstSaved,{document_id:e,...t}))}const el=({title:e="This guide is unavailable",description:t="The embedded guide could not be loaded. Try refreshing the page.",detail:n=null,workarounds:r=[],onRetry:o})=>a.jsx("div",{className:"flex h-dvh flex-col items-center justify-center bg-slate-50 px-6 py-10 text-center",children:a.jsxs("div",{className:"w-full max-w-md rounded-2xl border border-slate-200 bg-white p-6 shadow-sm",children:[a.jsx("div",{className:"mx-auto flex h-12 w-12 items-center justify-center rounded-xl bg-rose-50 text-rose-600 ring-1 ring-rose-100",children:a.jsx(Lr,{className:"h-6 w-6","aria-hidden":!0})}),a.jsx("h1",{className:"mt-4 text-lg font-bold tracking-tight text-slate-900",children:e}),a.jsx("p",{className:"mt-2 text-sm leading-relaxed text-slate-600",children:t}),r.length>0?a.jsx("ul",{className:"mt-4 list-disc space-y-1 pl-5 text-left text-xs text-slate-600",children:r.map(s=>a.jsx("li",{children:s},s))}):null,n?a.jsxs("details",{className:"mt-4 rounded-xl border border-slate-200 bg-slate-50 px-3 py-2 text-left",children:[a.jsx("summary",{className:"cursor-pointer text-xs font-semibold text-slate-500",children:"Technical details"}),a.jsx("pre",{className:"mt-2 max-h-32 overflow-auto whitespace-pre-wrap break-words text-[11px] text-slate-600",children:n})]}):null,a.jsx("div",{className:"mt-5",children:o?a.jsxs("button",{type:"button",onClick:o,className:"inline-flex items-center gap-2 rounded-xl bg-peacock-600 px-4 py-2.5 text-sm font-semibold text-white shadow-md shadow-peacock-600/20 transition hover:bg-peacock-700",children:[a.jsx(Ge,{className:"h-4 w-4","aria-hidden":!0}),"Try again"]}):a.jsxs("button",{type:"button",onClick:()=>window.location.reload(),className:"inline-flex items-center gap-2 rounded-xl bg-peacock-600 px-4 py-2.5 text-sm font-semibold text-white shadow-md shadow-peacock-600/20 transition hover:bg-peacock-700",children:[a.jsx(Ge,{className:"h-4 w-4","aria-hidden":!0}),"Refresh page"]})})]})}),T="/",R="/dashboard",tl="/edit/new-image",Qt="/flow-docs",Xt="/product-tours",H="/pricing",Zt="/install-extension",ve="/privacy",Ye="/terms",ke="/test-cases",Ee="/playwright-tests",_e="/flow-maps",Me="/onboarding/workspace",Br="/accept-invite",nl="/org/admin",Ke="/super-admin",rl="/platform/admin",al="/health",ol="/api-docs",en="/error";function tn(e){return/^\/s\/[^/]+\/embed\/?$/.test(e)}function lt(e){return e==="/examples"||e.startsWith("/examples/")}function sl(e){const t=e.startsWith("?")?e.slice(1):e;return new URLSearchParams(t).get("embed")==="true"}function Ie(e,t=""){return tn(e)||lt(e)||sl(t)}function zp(e){return!e||e==="platform"?Ke:`${Ke}?tab=${e}`}function Wp(e){return`${ke}/${e}`}function Gp(e){return`${Ee}/${e}`}function qp(e){return`${_e}/${e}`}const nn=({title:e="Something went wrong",description:t="An unexpected error stopped this page. You can try again or return to your library.",detail:n=null,onRetry:r,homePath:o=R,homeLabel:s="Go to dashboard",compact:i=!1,embed:c=!1})=>(l.useEffect(()=>{F(O.hardErrorViewed,{title:e,home_path:c?void 0:o,compact:!!(i||c),has_detail
273:!!n,path:typeof window<"u"?window.location.pathname:void 0,embed:c})},[e,o,i,n,c]),c?a.jsx(el,{title:e,description:t,detail:n,onRetry:r}):a.jsxs("div",{className:`relative flex flex-col items-center justify-center overflow-hidden px-6 text-center ${i?"py-10":"min-h-screen py-16"}`,children:[i?null:a.jsxs(a.Fragment,{children:[a.jsx("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-0 bg-gradient-to-b from-slate-50 via-white to-slate-100"}),a.jsx("div",{"aria-hidden":!0,className:"pointer-events-none absolute -left-24 top-16 h-64 w-64 rounded-full bg-rose-200/30 blur-3xl"}),a.jsx("div",{"aria-hidden":!0,className:"pointer-events-none absolute -right-16 bottom-10 h-72 w-72 rounded-full bg-peacock-200/25 blur-3xl"})]}),a.jsxs("div",{className:"relative w-full max-w-lg rounded-3xl border border-slate-200/80 bg-white/90 p-8 shadow-xl shadow-slate-900/5 backdrop-blur-sm",children:[a.jsx("div",{className:"mx-auto flex h-14 w-14 items-center justify-center rounded-2xl bg-rose-50 text-rose-600 ring-1 ring-rose-100",children:a.jsx(Lr,{className:"h-7 w-7","aria-hidden":!0})}),a.jsx("h1",{className:"mt-5 text-2xl font-bold tracking-tight text-slate-900",children:e}),a.jsx("p",{className:"mt-2 text-sm leading-relaxed text-slate-600",children:t}),n?a.jsxs("details",{className:"mt-4 rounded-xl border border-slate-200 bg-slate-50 px-3 py-2 text-left",children:[a.jsx("summary",{className:"cursor-pointer text-xs font-semibold text-slate-500",children:"Technical details"}),a.jsx("pre",{className:"mt-2 max-h-40 overflow-auto whitespace-pre-wrap break-words text-[11px] text-slate-600",children:n})]}):null,a.jsxs("div",{className:"mt-6 flex flex-wrap items-center justify-center gap-3",children:[r?a.jsxs("button",{type:"button",onClick:r,className:"inline-flex items-center gap-2 rounded-xl bg-peacock-600 px-4 py-2.5 text-sm font-semibold text-white shadow-md shadow-peacock-600/20 transition hover:bg-peacock-700",children:[a.jsx(Ge,{className:"h-4 w-4","aria-hidden":!0}),"Try again"]}):a.jsxs("button",{type:"button",onClick:()=>window.location.reload(),className:"inline-flex items-center gap-2 rounded-xl bg-peacock-600 px-4 py-2.5 text-sm font-semibold text-white shadow-md shadow-peacock-600/20 transition hover:bg-peacock-700",children:[a.jsx(Ge,{className:"h-4 w-4","aria-hidden":!0}),"Refresh page"]}),a.jsxs(E,{to:o,className:"inline-flex items-center gap-2 rounded-xl border border-slate-200 bg-white px-4 py-2.5 text-sm font-semibold text-slate-700 shadow-sm transition hover:bg-slate-50",children:[a.jsx(oi,{className:"h-4 w-4","aria-hidden":!0}),s]})]}),a.jsxs("p",{className:"mt-5 text-xs text-slate-400",children:["Prefer to start over?"," ",a.jsx(E,{to:T,className:"font-medium text-peacock-700 hover:text-peacock-800",children:"Go to home"})]})]})]}));function il(){return"phc_rzQHky3xArCAGDctscoqyrYHUwR88NoMHErYRSogzBZq".trim()||void 0}function Yp(){return"https://eu.i.posthog.com".trim()||"https://eu.i.posthog.com"}function Vr(){return!!il()}function Hr(){return"https://5c63ec2918baf5e491ac7097b4a2b94a@o4508450113716225.ingest.de.sentry.io/4511774982340688".trim()||void 0}function Kp(){return!!Hr()}function ll(){return{scriptSrc:"https://eu.fw-cdn.com/13649148/1552572.js"}}function ct(e){if(typeof e=="string")return/jwt expired|exp claim timestamp check failed|session expired/i.test(e);if(!e||typeof e!="object")return!1;const t=e,n=String(t.code??""),r=String(t.message??t.name??"").toLowerCase();return n==="PGRST303"||n==="PGRST301"||/jwt expired|exp claim timestamp check failed|session expired|invalid jwt/i.test(r)}let ye=!1;const jt=[/ResizeObserver loop/i,/Please sign in again/i,/session expired/i,/session is not ready/i,/Turnstile challenge (?:failed|expired)/i,/Turnstile (?:is not available|failed to load|execute failed)/i,/Nothing to reset found for provided container/i,/Rate limit unavailable/i,/Multiple Sentry Session Replay instances are not supported/i,/verified primary email is required for cloud sync/i,/Publish this documentation to Live/i,/Bot check failed/i,/Share request failed \(429\)/i,/ChunkLoadError|Loading chunk [\d]+ failed|Failed to fetch dynamically imported module/i,/JWT expired|PGRST303|exp claim timestamp check failed/i,/Internal error/i],zr=/Failed to execute 'json' on 'Response'|Unexpected end of JSON input|Failed to load Clerk/i;function cl(e){if(e instanceof Error)return e.stack??"";if(e&&typeof e=="object"&&"stack"in e){const t=e.stack;if(typeof t=="string")return t}return""}function Wr(e){return/clerk\.browser\.js|@clerk\/|clerk\.accounts\.dev/i.test(e)}function Je(e){const t=e instanceof Error?e.message:typeof e=="string"?e:e&&typeof e=="object"&&"message"in e?String(e.message??""):"";return/Failed to load Clerk/i.test(t)?!0:zr.test(t)?Wr(cl(e)):!1}function dl(e){var r,o;const t=Gr(e);return/Failed to load Clerk/i.test(t)?!0:zr.test(t)?(((o=(r=e.exception)==null?void 0:r.values)==null?void 0:o.flatMap(s=>{var i;return((i=s.stacktrace)==null?void 0:i.frames)??[]}))??[]).some(s=>Wr(s.filename??"")):!1}function Gr(e){var r,o,s;const t=e.message??"",n=((s=(o=(r=e.exception)==null?void 0:r.values)==null?void 0:o[0])==null?void 0:s.value)??"";return`${t} ${n}`}function ul(e){var n,r;return(((r=(n=e.exception)==null?void 0:n.values)==null?void 0:r.flatMap(o=>{var s;return((s=o.stacktrace)==null?void 0:s.frames)??[]}))??[]).some(o=>{const s=o.filename??"",i=o.function??"";return/@react-refresh|performReactRefresh|scheduleRefresh/i.test(s)||/performReactRefresh|scheduleRefresh/i.test(i)})}function pl(){return"328af9360253562e63fe76d5bd2079d9ad6a2d4c".trim()||void 0}function hl(){const e=Hr();if(!e)return;if(ye||Ra()){ye=!0;return}ye=!0;const t=pl();try{Ta({dsn:e,environment:"production",release:t,integrations:[Ia(),Na()],tracesSampleRate:.1,replaysSessionSampleRate:.1,replaysOnErrorSampleRate:1,ignoreErrors:jt,beforeSend(n,r){if(ul(n)||dl(n)||ct(r.originalException))return null;const o=Gr(n);return jt.some(s=>s.test(o))?null:n}})}catch(n){if(n instanceof Error&&/Multiple Sentry Session Replay instances are not supported/i.test(n.message))return;throw ye=!1,n}}function rn(){return ye}function Z(e){if(Je(e)||ct(e))return!0;const t=e instanceof Error?e.message:typeof e=="string"?e:e&&typeof e=="object"&&"message"in e?String(e.message??""):"";return jt.some(n=>n.test(t))}const ml=Object.freeze(Object.defineProperty({__proto__:null,initSentry:hl,isClerkSdkNoise:Je,isExpectedClientNoise:Z,isSentryInitialized:rn},Symbol.toStringTag,{value:"Module"}));
273class fl extends Error{constructor(n){super(n);re(this,"name","ShareNotAllowedError")}}function qr(e){return e instanceof fl}const An="Something went wrong. Please try again or refresh the page.";function Yr(e){return!e||typeof e!="object"?{message:typeof e=="string"?e:void 0}:e}function Kr(e){if(e instanceof Error)return e.message;if(typeof e=="string")return e;const t=Yr(e);return t.message??t.details??""}const gl=/ResizeObserver loop(?: completed with undelivered notifications| limit exceeded)?/i,yl=/ChunkLoadError|Loading chunk [\d]+ failed|Failed to fetch dynamically imported module|error loading dynamically imported module|Importing a module script failed/i,bl=/publish this documentation to live|bot check failed|share link is invalid|link unavailable|share request failed \(429\)/i;function wl(e,t,n){return n==="ChunkLoadError"?!0:yl.test(t)}function Fe(e,t){return e.isHard?!1:!!(e.kind==="auth"||e.kind==="session"||e.kind==="network"||e.kind==="not_found"||e.kind==="validation"||t&&(qr(t)||Z(t))||Z(e.userMessage))}function Ln(e){return gl.test(Kr(e))}function xl(e,t,n){return n==="IndexedDBOpenError"?!0:n==="VersionError"||n==="InvalidStateError"?/indexeddb|idb|object store|database/i.test(t):/indexeddb open failed|failed to open.*indexeddb|indexeddb.*(?:blocked|corrupt|upgrade)|could not open.*(?:indexeddb|database)|idbopen/i.test(t)}function vl(e,t,n){return n==="CorruptDocumentPayloadError"||n==="SyntaxError"?n==="CorruptDocumentPayloadError"||/json|unexpected token|unparseable|corrupt|malformed|payload|document/i.test(t):/corrupt(?:ed)?(?:\s+or\s+)?unparseable|unparseable document|malformed document|invalid document payload|corrupt.*payload/i.test(t)}function ie(e){const t=Yr(e),n=Kr(e),r=String(t.code??""),o=Number(t.status??t.statusCode??NaN),s=n.toLowerCase(),i=t.name??(e instanceof Error?e.name:"");return xl(e,s,i)?{kind:"database",title:"Local library unavailable",userMessage:"Peacock could not open local browser storage. Check that IndexedDB is allowed for this site, then refresh.",isHard:!0,cause:e}:vl(e,s,i)?{kind:"validation",title:"Documentation is unreadable",userMessage:"This documentation payload is corrupt or unreadable. Try another document, or restore from a share link if you have one.",isHard:!0,cause:e}:qr(e)||/publish this documentation to live/i.test(s)?{kind:"validation",title:"Publish to Live first",userMessage:n||"Publish this documentation to Live before sharing publicly.",isHard:!1,cause:e}:/bot check failed|share request failed \(429\)/i.test(s)?{kind:"validation",title:/429/.test(s)?"Too many requests":"Bot check failed",userMessage:n||(/429/.test(s)?"Please wait a moment and try again.":"The bot check did not pass. Refresh the page and try again."),isHard:!1,cause:e}:wl(e,s,i)?{kind:"network",title:"Failed to load this page",userMessage:"A required code bundle did not load. Check your connection, then refresh.",isHard:!1,cause:e}:bl.test(s)?{kind:"not_found",title:"Link unavailable",userMessage:n||"This share link is invalid or has expired.",isHard:!1,cause:e}:ct(e)?{kind:"session",title:"Session expired",userMessage:"Your session expired. Please sign in again to continue.",isHard:!1,cause:e}:o>=500||/failed to fetch|networkerror|network request failed|load failed|timeout|timed out|offline/i.test(s)?{kind:"network",title:"Connection problem",userMessage:"We could not reach the server. Check your connection and try again.",isHard:!1,cause:e}:/^internal error$/i.test(s)||/^share unavailable$/i.test(s)||/upstream unavailable/i.test(s)?{kind:"not_found",title:"Share unavailable",userMessage:"This share link could not be loaded right now. Refresh and try again.",isHard:!1,cause:e}:o===401||r==="PGRST301"||r==="PGRST303"||/jwt|unauthorized|not authenticated|invalid.*token|session.*expired|signed out/i.test(s)?{kind:/expired|signed out/i.test(s)?"session":"auth",title:/expired|signed out/i.test(s)?"Session expired":"Authentication required",userMessage:/expired|signed out/i.test(s)?"Your session expired. Please sign in again to continue.":"Please sign in again to continue.",isHard:!1,cause:e}:o===403||r==="42501"||/permission|not allowed|forbidden|do not have permission|only admins|row-level security/i.test(s)?{kind:"permission",title:"Permission denied",userMessage:/row-level security/i.test(s)?"Cloud could not save this row for your workspace. Refresh and try again, or check your member permissions.":n||"You do not have permission to do that in this workspace.",isHard:!1,cause:e}:/document limit reached|storage.*limit|quota/i.test(s)?{kind:"val
273idation",title:"Workspace limit",userMessage:n||"This workspace has reached its documentation limit. Delete an unused doc or upgrade the plan.",isHard:!1,cause:e}:t.name==="TitleVersionConflictError"||/documentation named .+ with version .+ already exists|title.?version|flow_documents_org_title_version/i.test(s)||r==="23505"&&/title|version|flow_documents/i.test(s)?{kind:"validation",title:"Name already in use",userMessage:n||"Another documentation already uses this title and version. Change the version, or save with the next free version on this documentation.",isHard:!1,cause:e}:o===404||r==="PGRST116"||/not found|does not exist/i.test(s)?{kind:"not_found",title:"Not found",userMessage:n||"We could not find what you were looking for.",isHard:!1,cause:e}:o===400||o===422||r==="23514"||r==="23502"||/required|invalid|validation|check constraint|already a member|valid email/i.test(s)?{kind:"validation",title:"Check your input",userMessage:n||"Please check your entries and try again.",isHard:!1,cause:e}:r==="42P01"||r==="23505"||r==="57014"||/postgres|database|relation .* does not exist|duplicate key/i.test(s)?{kind:"database",title:"Database error",userMessage:r==="42P01"?"Cloud database tables are missing. Apply the latest Supabase migrations, then try again.":An,isHard:!1,cause:e}:{kind:"unknown",title:"Something went wrong",userMessage:n&&n.length<180?n:An,isHard:!1,cause:e}}function On(e){return ie(e).userMessage}function le(e,t){const n=ie(t);if(Fe(n,t)){console.warn(`[Peacock] ${e}`,t);return}console.error(`[Peacock] ${e}`,t),Yi(t instanceof Error?t:new Error(n.userMessage),{peacock_context:e,peacock_error_kind:n.kind,peacock_error_title:n.title}),rn()&&Aa(r=>{r.setTag("peacock.context",e),r.setTag("peacock.error_kind",n.kind),t instanceof Error?kn(t):kn(new Error(n.userMessage),{extra:{cause:t,context:e}})})}function kl(e,t){console.warn(`[Peacock] ${e}`,t)}function El(e,t){return le(e,t),ie(t)}class _l extends l.Component{constructor(){super(...arguments);re(this,"state",{hasError:!1,message:null});re(this,"handleRetry",()=>{this.setState({hasError:!1,message:null})})}static getDerivedStateFromError(n){return{hasError:!0,message:n!=null&&n.message?String(n.message):null}}componentDidCatch(n,r){le("Uncaught React render error",{message:n.message,name:n.name,stack:n.stack,componentStack:r.componentStack})}render(){if(this.state.hasError){const n=this.props.embed??(typeof window<"u"&&Ie(window.location.pathname));return a.jsx(nn,{compact:this.props.compact,embed:n,title:this.props.title??"This page crashed",description:this.props.description??"A rendering error stopped Peacock. You can retry this view or return to your dashboard.",detail:this.state.message,onRetry:this.handleRetry,homePath:this.props.homePath??R,homeLabel:this.props.homeLabel??"Go to dashboard"})}return this.props.children}}const an=4200;function Jp(e,t){ee.success(e,{description:t,timing:{displayDuration:an},showTimestamp:!1,preset:"smooth"})}function Qp(e,t){ee.info(e,{description:t,timing:{displayDuration:an},showTimestamp:!1,preset:"smooth"})}function Dn(e,t){ee.warning(e,{description:t,timing:{displayDuration:5e3},showTimestamp:!1,preset:"smooth"})}function Rt(e,t){if(typeof e=="string")return F(O.softErrorShown,{title:e,description:t}),ee.error(e,{description:t,timing:{displayDuration:5600},showTimestamp:!1,preset:"smooth"}),null;const n=ie(e);return le(t??"Action failed",e),F(O.softErrorShown,{title:n.title,kind:n.kind,context:t}),(n.kind==="validation"&&!n.isHard?ee.warning:ee.error)(n.title,{description:n.userMessage,timing:{displayDuration:n.kind==="validation"?5e3:5600},showTimestamp:!1,preset:"smooth"}),n}async function Xp(e,t){const n=e.then(r=>(t.event?F(t.event,t.eventProps):F(O.actionSucceeded,{context:t.context??t.loading,...t.eventProps}),r),r=>{throw F(O.actionFailed,{context:t.context??t.loading,event:t.event,...t.eventProps}),r});return ee.promise(n,{loading:t.loading,success:t.success,error:r=>(El(t.context??t.loading,r),typeof t.error=="function"?t.error(r):typeof t.error=="string"?t.error:On(r)),description:{success:t.successDescription,error:r=>On(r)},timing:{displayDuration:an}
273,showTimestamp:!1,preset:"smooth"}),n}const Mn=new Map,Sl=8e3;function Zp(e,t){const n=Date.now(),r=Mn.get(t)??0;if(n-r<Sl){le(t,e);return}Mn.set(t,n),Rt(e,t)}const Cl=()=>{var o,s;const[e]=ls(),t=je(),n=((o=e.get("title"))==null?void 0:o.trim())||"Something went wrong",r=((s=e.get("message"))==null?void 0:s.trim())||"An unexpected error occurred. Return to your dashboard and try again.";return l.useEffect(()=>{document.title=`${n} · Peacock Studio`},[n]),a.jsx(nn,{title:n,description:r,homePath:R,homeLabel:"Go to dashboard",onRetry:()=>t(R,{replace:!0})})};function Jr(e,t){const n=new URLSearchParams({title:e.slice(0,80),message:t.slice(0,280)});return`${en}?${n.toString()}`}const Pl=Object.freeze(Object.defineProperty({__proto__:null,ErrorPage:Cl,buildHardErrorPath:Jr},Symbol.toStringTag,{value:"Module"})),jl=()=>{const e=je(),{pathname:t}=P();return l.useEffect(()=>{const n=s=>{if(s.isHard){if(Ie(t)){Rt(s.title,s.userMessage);return}e(Jr(s.title,s.userMessage),{replace:!0});return}if(s.kind==="session"||s.kind==="auth"){Dn(s.title,s.userMessage);return}if(Fe(s,s.cause)||Z(s.cause)||Z(s.userMessage)){Dn(s.title,s.userMessage);return}Rt(s.title,s.userMessage)},r=s=>{const i=s.reason;if(Ln(i)||Je(i)||Z(i)||ct(i)){s.preventDefault();return}const c=ie(i);Fe(c,i)?s.preventDefault():le("Unhandled promise rejection",i),n(c)},o=s=>{if(!s.error&&!s.message||s.message==="Script error."&&!s.error)return;const i=s.error??s.message;if(Ln(i)||Je(i)||Z(i)){s.preventDefault();return}const c=s.error??new Error(s.message||"Unknown window error"),d=ie(c);Fe(d,c)||le("Window error",c),n(d)};return window.addEventListener("unhandledrejection",r),window.addEventListener("error",o),()=>{window.removeEventListener("unhandledrejection",r),window.removeEventListener("error",o)}},[e,t]),null},Rl="modulepreload",Tl=function(e){return"/"+e},Fn={},y=function(t,n,r){let o=Promise.resolve();if(n&&n.length>0){let i=function(u){return Promise.all(u.map(h=>Promise.resolve(h).then(p=>({status:"fulfilled",value:p}),p=>({status:"rejected",reason:p}))))};document.getElementsByTagName("link");const c=document.querySelector("meta[property=csp-nonce]"),d=(c==null?void 0:c.nonce)||(c==null?void 0:c.getAttribute("nonce"));o=i(n.map(u=>{if(u=Tl(u),u in Fn)return;Fn[u]=!0;const h=u.endsWith(".css"),p=h?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${p}`))return;const m=document.createElement("link");if(m.rel=h?"stylesheet":Rl,h||(m.as="script"),m.crossOrigin="",m.href=u,d&&m.setAttribute("nonce",d),document.head.appendChild(m),h)return new Promise((x,k)=>{m.addEventListener("load",x),m.addEventListener("error",()=>k(new Error(`Unable to preload CSS for ${u}`)))})}))}function s(i){const c=new Event("vite:preloadError",{cancelable:!0});if(c.payload=i,window.dispatchEvent(c),!c.defaultPrevented)throw i}return o.then(i=>{for(const c of i||[])c.status==="rejected"&&s(c.reason);return t().catch(s)})},Il=({error:e,showLocalLibraryNote:t=!0})=>a.jsxs("div",{className:"rounded-2xl border border-amber-200 bg-amber-50 px-4 py-3 text-sm text-amber-950 shadow-sm",children:[a.jsx("p",{className:"font-semibold",children:e.title}),a.jsx("p",{className:"mt-1 text-amber-900/90",children:e.message}),e.workarounds.length>0?a.jsx("ul",{className:"mt-3 list-disc space-y-1 pl-5 text-xs text-amber-900/90",children:e.workarounds.map(n=>a.jsx("li",{children:n},n))}):null,t?a.jsx("p",{className:"mt-3 text-xs text-amber-800/80",children:"Showing your local guest library for now. Cloud sync will resume when this browser can reach Peacock's cloud servers."}):null]}),eh=({error:e,showLocalLibraryNote:t=!0})=>e.kind==="network_blocked"?a.jsx(Il,{error:e,showLocalLibraryNote:t}):a.jsxs("div",{className:"rounded-2xl border border-amber-200 bg-amber-50 px-4 py-3 text-sm text-amber-950 shadow-sm",children:[a.jsx("p",{className:"font-semibold",children:e.title}),a.jsx("p",{className:"mt-1 text-amber-900/90",children:e.message}),t?a.jsx("p",{className:"mt-2 text-xs text-amber-800/80",children:"Showing your local guest library for now. Sign out from the avatar menu, then sign back in after fixing Clerk â Supabase auth."}):null]}),Nl=({error:e,onRetry:t})=>a.jsxs("div",{className:"mx-auto w-full max-w-lg rounded-2xl border border-slate-200 bg-white px-6 py-8 text-center shadow-sm",children:[a.jsx("h2",{className:"text-lg font-semibold text-slate-900",children:e.title}),a.jsx("p",{className:"mt-2 text-sm leading-relaxed text-slate-600",children:e.message}),e.workarounds.length>0?a.jsx("ul",{className:"mt-4 list-disc space-y-1 pl-5 text-left text-xs text-slate-600",children:e.workarounds.map(n=>a.jsx("li",{children:n},n))}):null,t?a.jsx("button",{type:"button",onClick:t,className:"btn-peacock btn-peacock--sm mt-6",children:"Retry"}):null]}),Qr={read:!0,create:!0,edit:!0,delete:!0,share:!0,export:!0,embed:!0},Al={read:!0,create:!0,edit:!0,delete:!1,share:!0,export:!0,embed:!0},th=["read","create","edit","delete","share","export","embed"];function nh(e,t="member"){const n=t==="admin"?Qr:Al;if(!e||typeof e!="object")return{...n};const r=e;return{read:typeof r.read=="boolean"?r.read:n.read,create:typeof r.create=="boolean"?r.create:n.create,edit:typeof r.edit=="boolean"?r.edit:n.edit,delete:typeof r.delete=="boolean"?r.delete:n.delete,share:typeof r.share=="boolean"?r.share:n.share,export:typeof r.export=="boolean"?r.export:n.export,embed:typeof r.embed=="boolean"?r.embed:n.embed}}
273let X=null,se=null,be=null;const Tt=new Set;function Xr(){Tt.forEach(e=>e())}function rh(e){X=e,e&&(se=null,be=null),Xr()}function ah(e){e===null?(se=null,be=null):typeof e=="string"?(se=e,be={kind:"unknown",title:"Cloud library unavailable",message:e,workarounds:[]}):(be=e,se=e.message),Xr()}function Ll(){return se}function Zr(){return X}function Ol(){const e=X;if(!e)throw new Error("Cloud library is not ready. Sign in and wait for sync to initialize.");return e}function oh(){const e=Ol();if(!e.workspaceResolved||e.needsWorkspaceOnboarding||!e.organizationId)throw new Error("Choose or join a workspace before using the cloud library.");return e}function on(){return X!==null&&X.workspaceResolved&&!X.needsWorkspaceOnboarding&&!!X.organizationId}function dt(e){return Tt.add(e),()=>Tt.delete(e)}function sh(){return on()}function Dl(){return se}function Ml(){return be}function sn(e){var n;const t=X;return!t||!t.workspaceResolved||t.needsWorkspaceOnboarding||!on()?!1:!!((n=t.capabilities)!=null&&n[e])}function ih(e){if(!sn(e))throw new Error(`You do not have permission to ${e} in this workspace.`)}function lh(e){var r,o,s;const t=(r=e==null?void 0:e.fullName)==null?void 0:r.trim();if(t)return t;const n=[e==null?void 0:e.firstName,e==null?void 0:e.lastName].map(i=>i==null?void 0:i.trim()).filter(Boolean).join(" ").trim();return n||((s=(o=e==null?void 0:e.primaryEmailAddress)==null?void 0:o.emailAddress)==null?void 0:s.trim())||null}function ch(e){var r,o;const t=((r=e==null?void 0:e.firstName)==null?void 0:r.trim())||null,n=((o=e==null?void 0:e.lastName)==null?void 0:o.trim())||null;return{firstName:t,lastName:n}}function dh(e){const t=e.activeMembership;return{clerkUserId:e.clerkUserId,userEmail:e.userEmail,userDisplayName:e.userDisplayName,organizationId:(t==null?void 0:t.organizationId)??"",organizationName:(t==null?void 0:t.organizationName)??"",workspaceType:(t==null?void 0:t.workspaceType)??null,role:(t==null?void 0:t.role)??null,capabilities:(t==null?void 0:t.capabilities)??(t?Qr:null),memberships:e.memberships,workspaceResolved:e.workspaceResolved,needsWorkspaceOnboarding:e.workspaceResolved&&e.memberships.length===0,getAccessToken:e.getAccessToken}}const Fl=new Set(["1","true","yes","on"]);function ce(){const e="true".trim().toLowerCase();return!!(e&&Fl.has(e))}function D(){return ce()?!!("pk_live_Y2xlcmsucGVhY29ja3N0dWRpby5hcHAk".trim()&&"https://lbbafpzxsalfogvbodqi.supabase.co".trim()&&"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImxiYmFmcHp4c2FsZm9ndmJvZHFpIiwicm9sZSI6ImFub24iLCJpYXQiOjE3ODQzNDQ3MjIsImV4cCI6MjA5OTkyMDcyMn0.mrC6XcXrl52wnhLxZWcM5UJYSFU1HLA-PXnaQILtQSI".trim()):!1}function uh(){if(!ce())return null;const e=[];return"pk_live_Y2xlcmsucGVhY29ja3N0dWRpby5hcHAk".trim()||e.push("VITE_CLERK_PUBLISHABLE_KEY"),"https://lbbafpzxsalfogvbodqi.supabase.co".trim()||e.push("VITE_SUPABASE_URL"),"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImxiYmFmcHp4c2FsZm9ndmJvZHFpIiwicm9sZSI6ImFub24iLCJpYXQiOjE3ODQzNDQ3MjIsImV4cCI6MjA5OTkyMDcyMn0.mrC6XcXrl52wnhLxZWcM5UJYSFU1HLA-PXnaQILtQSI".trim()||e.push("VITE_SUPABASE_ANON_KEY"),e.length===0?null:`Cloud sync is on, but this build is missing ${e.join(", ")}. Set them in Vercel â Project â Settings â Environment Variables (Production), then redeploy.`}function $l(){return"pk_live_Y2xlcmsucGVhY29ja3N0dWRpby5hcHAk".trim()||void 0}function ph(){const e="https://lbbafpzxsalfogvbodqi.supabase.co".trim();if(!e)throw new Error("VITE_SUPABASE_URL is not configured.");return e}function hh(){const e="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImxiYmFmcHp4c2FsZm9ndmJvZHFpIiwicm9sZSI6ImFub24iLCJpYXQiOjE3ODQzNDQ3MjIsImV4cCI6MjA5OTkyMDcyMn0.mrC6XcXrl52wnhLxZWcM5UJYSFU1HLA-PXnaQILtQSI".trim();if(!e)throw new Error("VITE_SUPABASE_ANON_KEY is not configured.");return e}const mh="screenshots",fh=3600;let ln=!1,cn=!1;const It=new Set;function Ul(){It.forEach(e=>e())}function $n(e,t){ln=e,cn=t,Ul()}function Nt(e){return It.add(e),()=>It.delete(e)}function Un(){return ln}function Bn(){return cn}function At(){if(!D())return"local";if(!ln)return"loading";if(!cn)return"guest";
273const e=Zr();return(!e||!e.workspaceResolved)&&Ll()?"guest":!e||!e.workspaceResolved?"connecting":e.needsWorkspaceOnboarding?"onboarding":on()?"cloud":"connecting"}function Bl(e){const t=Nt(e),n=dt(e);return()=>{t(),n()}}function gh(){return At()==="guest"}const Vl="Your organization network is blocking Peacock cloud services",Hl="Your organization is not allowing us to load Clerk for authentication and/or Supabase for screenshots. Please talk to us and your IT team to allowlist the required hosts.",zl=["Ask IT to allowlist peacockstudio.app, clerk.peacockstudio.app, *.clerk.com, and *.supabase.co.","Try a personal device or home network (mobile hotspot) to confirm Peacock works outside the corporate network.","Contact Peacock support so we can help you and your IT team allowlist the required hosts."];function ea(){return{kind:"network_blocked",title:Vl,message:Hl,workarounds:[...zl]}}function ut(e){return!e||typeof e!="object"?{message:typeof e=="string"?e:void 0}:e}function dn(e){return e instanceof Error?e.message:typeof e=="string"?e:ut(e).message??""}function ta(e){return Number((e==null?void 0:e.status)??(e==null?void 0:e.statusCode)??NaN)}function Wl(e){const t=ut(e),n=t.message??dn(e);return(t.name??(e instanceof Error?e.name:""))==="InvalidCharacterError"||/atob|not correctly encoded|invalid character/i.test(n)}function Gl(e){const t=ut(e),n=dn(e),r=n.toLowerCase(),o=t.name??(e instanceof Error?e.name:""),s=ta(e);return s===403||s>=502&&s<=504?!0:o==="TypeError"&&/failed to fetch/i.test(n)||/failed to fetch|networkerror|network request failed|load failed|timeout|timed out|offline|upstream unavailable|upstream fetch failed|forbidden|access denied/i.test(r)}function yh(e){var s;const t=ut(e),n=t.code,r=ta(e),o=dn(e);
273return Gl(e)?ea():Wl(e)?{kind:"auth",title:"Cloud setup incomplete",message:"Could not decode an auth or API key. Check packages/app/.env.local: VITE_CLERK_PUBLISHABLE_KEY must be pk_test_⦠or pk_live_â¦, and VITE_SUPABASE_ANON_KEY must be your Supabase publishable/anon key â no quotes, no secret key. Then complete Clerk â Supabase third-party auth setup.",workarounds:[]}:n==="PGRST301"||r===401||/jwt|invalid.*token|not authenticated/i.test(o)?{kind:"auth",title:"Authentication required",message:"Supabase rejected the Clerk session token. Connect Clerk and Supabase: in Clerk, activate the Supabase integration (adds the role claim to tokens); in Supabase, add Clerk under Authentication â Third-party auth. Then sign out and sign back in.",workarounds:[]}:n==="42P01"?{kind:"migration",title:"Database migration required",message:"Cloud database tables are missing. Apply the Supabase migrations in supabase/migrations/.",workarounds:[]}:n==="23505"&&((s=t.message)!=null&&s.includes("screenshot_assets_org_hash_uidx"))?{kind:"migration",title:"Database migration required",message:"Screenshot sync failed due to an outdated database constraint. Run supabase db push to apply the latest migrations (screenshot_assets_hash_index), then try again.",workarounds:[]}:o?{kind:"unknown",title:"Cloud library unavailable",message:o,workarounds:[]}:{kind:"unknown",title:"Cloud library unavailable",message:"Could not connect your cloud library. Check Clerk, Supabase, and migration setup.",workarounds:[]}}function bh(e){if(!e||e.startsWith("data:")||e.startsWith("blob:"))return!1;try{const t=new URL(e,typeof window<"u"?window.location.origin:"https://peacockstudio.app");if(t.pathname.includes("/storage/images/"))return!0;const n=t.hostname.toLowerCase();return n==="supabase.co"||n.endsWith(".supabase.co")}catch{return/\/storage\/images\//i.test(e)||/\.supabase\.co/i.test(e)}}const we="/s";function ql(e,t={}){return t.embed?`${we}/${e}/embed`:t.editable?`${we}/${e}/edit`:`${we}/${e}`}function wh(e,t={}){return`${window.location.origin}${ql(e,t)}`}const Lt=1280,na=720;function xh(e,t="Peacock Studio guide"){const n=t.replace(/"/g,""");return`<iframe 274 src="${e}" 275 title="${n}" 276 width="${Lt}" 277 height="${na}" 278 style="border:0;border-radius:12px;overflow:hidden;width:100%;max-width:${Lt}px;aspect-ratio:16/9;height:auto;" 279 loading="lazy" 280 allowfullscreen 281></iframe>`}function Yl(e){return`/docs/${e}/edit`}function Kl(e,t){return!t||t==="hub"?`/docs/${e}`:`/docs/${e}?view=${t}`}function Jl(e,t={}){const n=t.accessMode??"readonly",r=t.viewMode??"doc",o=t.query??"",s=n==="editable"?Yl(e):Kl(e,r);return`${window.location.origin}${s}${o}`}function vh(){return"flow-details"}const kh="flow-details";function Ql(e){return`step-${e}`}function Eh(e){return`linked-path-${e}`}function _h(e,t){return`linked-${e}-${t}`}function Xl(e,t){return`${Jl(e,{viewMode:"doc"})}#${t}`}function Sh(e,t){return Xl(e,Ql(t))}const Ot="[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}";function Zl(e){const t=e.match(new RegExp(`^linked-path-(${Ot})$`,"i"));return(t==null?void 0:t[1])??null}function ec(e){const t=e.match(new RegExp(`^linked-(${Ot})-(${Ot})$`,"i"));return!(t!=null&&t[1])||!t[2]?null:{pathId:t[1],stepId:t[2]}}function Ch(e){var t;return Zl(e)??((t=ec(e))==null?void 0:t.pathId)??null}function Ph(e,t="readonly"){const n=t==="editable"?`/routes/${e}/edit`:`/routes/${e}`;return`${window.location.origin}${n}`}function jh(e,t="readonly",n={}){const r=t==="editable"?`/tours/${e}/edit`:`/tours/${e}`,o=new URLSearchParams;n.presenter&&o.set("presenter","1");const s=o.toString();return`${window.location.origin}${r}${s?`?${s}`:""}`}async function Rh(e){await navigator.clipboard.writeText(e)}const tc=["/products","/solutions",H,ve,Ye,Zt];function pt(e){return e===T?!0:tc.some(t=>e===t||e.startsWith(`${t}/`))}function ra(e){return e===we||e.startsWith(`${we}/`)}function nc(e){return pt(e)||ra(e)||lt(e)}function rc(e){return pt(e)||tn(e)||lt(e)}const ac=()=>a.jsx("div",{className:"flex min-h-screen items-center justify-center bg-slate-50",role:"status","aria-live":"polite",children:a.jsx("p",{className:"text-sm font-medium text-slate-600",children:"Loadingâ¦"})}),oc=({publishableKey:e,children:t})=>{const{pathname:n}=P(),[r,o]=l.useState(null),[s,i]=l.useState(!1),c=pt(n),d=ra(n),u=nc(n),h=rc(n),p=!c&&!d;return l.useEffect(()=>{if(h){$n(!0,!1);return}if(r)return;let m=!1;return y(()=>import("./ClerkCloudAuthTree-D74D3J4M.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])).then(x=>{m||(i(!1),o(()=>x.ClerkCloudAuthTree))}).catch(()=>{m||($n(!0,!1),i(!0))}),()=>{m=!0}},[r,h]),h?a.jsx(a.Fragment,{children:t}):r?a.jsx(r,{publishableKey:e,enableCloudSync:p,children:t}):u?a.jsx(a.Fragment,{children:t}):s?a.jsx("div",{className:"flex min-h-screen flex-col items-center justify-center px-6 py-16",children:a.jsx(Nl,{error:ea(),onRetry:()=>window.location.reload()})}):a.jsx(ac,{})},$e="peacock-cloud-sync-pending-success";let Se={phase:"idle",message:null,importedDocuments:0,exceedsFreeLimit:!1,visible:!1};const Dt=new Set;
281function aa(){Dt.forEach(e=>e())}function sc(){try{const e=sessionStorage.getItem($e);if(!e)return;sessionStorage.removeItem($e);const t=JSON.parse(e);Se={phase:"success",message:t.message,importedDocuments:t.importedDocuments,exceedsFreeLimit:t.exceedsFreeLimit,visible:t.visible}}catch{sessionStorage.removeItem($e)}}sc();function ic(){return Se}function lc(e){return Dt.add(e),()=>Dt.delete(e)}function cc(e){Se={...Se,...e},aa()}function Th(e){sessionStorage.setItem($e,JSON.stringify(e))}function Ih(){Se={phase:"idle",message:null,importedDocuments:0,exceedsFreeLimit:!1,visible:!1},aa()}const dc={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1,VITE_CLERK_PUBLISHABLE_KEY:"pk_live_Y2xlcmsucGVhY29ja3N0dWRpby5hcHAk",VITE_CLOUD_SYNC:"true",VITE_FREE_ACCOUNT_DOC_LIMIT:"10",VITE_GUEST_VISIBLE_DOC_LIMIT:"3",VITE_POSTHOG_HOST:"https://eu.i.posthog.com",VITE_POSTHOG_KEY:"phc_rzQHky3xArCAGDctscoqyrYHUwR88NoMHErYRSogzBZq",VITE_SENTRY_DSN:"https://5c63ec2918baf5e491ac7097b4a2b94a@o4508450113716225.ingest.de.sentry.io/4511774982340688",VITE_SENTRY_RELEASE:"328af9360253562e63fe76d5bd2079d9ad6a2d4c",VITE_SUPABASE_ANON_KEY:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImxiYmFmcHp4c2FsZm9ndmJvZHFpIiwicm9sZSI6ImFub24iLCJpYXQiOjE3ODQzNDQ3MjIsImV4cCI6MjA5OTkyMDcyMn0.mrC6XcXrl52wnhLxZWcM5UJYSFU1HLA-PXnaQILtQSI",VITE_SUPABASE_URL:"https://lbbafpzxsalfogvbodqi.supabase.co",VITE_TAWK_PROPERTY_ID:"6a5fca8d4693711d483c377e",VITE_TAWK_WIDGET_ID:"1ju32uecl",VITE_TURNSTILE_SITE_KEY:"0x4AAAAAAD9d6GIXRMhdASXh",VITE_VERCEL_BRANCH_URL:"peacock-studio-git-main-mentorbridge.vercel.app",VITE_VERCEL_DEPLOYMENT_ID:"dpl_2mFQNUnGryFu8ygcs56FdabTNbJT",VITE_VERCEL_ENV:"production",VITE_VERCEL_GIT_COMMIT_AUTHOR_LOGIN:"senthilkumar979",VITE_VERCEL_GIT_COMMIT_AUTHOR_NAME:"Senthil Kumar Thangavel",VITE_VERCEL_GIT_COMMIT_MESSAGE:"Create sonarcloud.yml",VITE_VERCEL_GIT_COMMIT_REF:"main",VITE_VERCEL_GIT_COMMIT_SHA:"328af9360253562e63fe76d5bd2079d9ad6a2d4c",VITE_VERCEL_GIT_PREVIOUS_SHA:"",VITE_VERCEL_GIT_PROVIDER:"github",VITE_VERCEL_GIT_PULL_REQUEST_ID:"",VITE_VERCEL_GIT_REPO_ID:"1247400624",VITE_VERCEL_GIT_REPO_OWNER:"senthilkumar979",VITE_VERCEL_GIT_REPO_SLUG:"peacock-studio",VITE_VERCEL_OBSERVABILITY_CLIENT_CONFIG:'{"analytics":{"scriptSrc":"8e270f7ca5b21847/script.js","viewEndpoint":"8e270f7ca5b21847/view","eventEndpoint":"8e270f7ca5b21847/event","sessionEndpoint":"8e270f7ca5b21847/session"},"speedInsights":{"scriptSrc":"7184122751152281/script.js","endpoint":"7184122751152281/vitals"}}',VITE_VERCEL_PROJECT_ID:"prj_aFhHBILsdkKyuK22gNBhpKzgWDym",VITE_VERCEL_PROJECT_PRODUCTION_URL:"peacockstudio.app",VITE_VERCEL_TARGET_ENV:"production",VITE_VERCEL_URL:"peacock-studio-iwdp0frej-mentorbridge.vercel.app"};function un(e,t){var o;const n=(o=dc[e])==null?void 0:o.trim();if(!n)return t;const r=Number.parseInt(n,10);return!Number.isFinite(r)||r<1?t:r}const uc=new Set(["pro","team"]),pc=104857600;function Nh(){return un("VITE_GUEST_VISIBLE_DOC_LIMIT",3)}function hc(){return un("VITE_FREE_ACCOUNT_DOC_LIMIT",10)}function mc(){return un("VITE_FREE_ACCOUNT_STORAGE_BYTES_LIMIT",pc)}function Ah(e){const t=(e??"free").trim().toLowerCase();return!uc.has(t)}function fc(e){const t=Math.max(0,Number(e)||0);if(t<1024)return`${t} B`;const n=["KB","MB","GB","TB"];let r=t/1024,o=0;for(;r>=1024&&o<n.length-1;)r/=1024,o+=1;const s=r>=100||o===0?0:r>=10?1:2;return`${r.toFixed(s)} ${n[o]}`}const gc=({isOpen:e,importedCount:t,onClose:n})=>{if(!e)return null;const r=hc(),o=fc(mc());return _a.createPortal(a.jsxs("div",{className:"fixed inset-0 z-[80] flex items-center justify-center p-4",children:[a.jsx("button",{type:"button","aria-label":"Close upgrade dialog",className:"absolute inset-0 bg-slate-900/50",onClick:n}),a.jsxs("div",{className:"relative w-full max-w-lg rounded-2xl bg-white p-6 shadow-xl",children:[a.jsx("button",{type:"button",onClick:n,className:"absolute right-4 top-4 roun
281ded-lg p-2 hover:bg-slate-100","aria-label":"Close",children:a.jsx(Jt,{className:"h-4 w-4"})}),a.jsx("h2",{className:"text-lg font-bold text-slate-900",children:"Upgrade to keep your full library"}),a.jsxs("p",{className:"mt-2 text-sm text-slate-600",children:["We synced ",t," document",t===1?"":"s"," from this device. Your free plan includes up to ",r," documents and ",o," of screenshot storage in the cloud â these are separate limits."]}),a.jsx("p",{className:"mt-3 text-sm text-slate-600",children:"Upgrade to Pro to keep unlimited documentation, higher storage, advanced sharing, and team features. During beta, see what's included on the pricing page."}),a.jsxs("div",{className:"mt-6 flex flex-wrap justify-end gap-2",children:[a.jsx(E,{to:H,onClick:()=>{F(O.betaPricingInterest,{surface:"upgrade_modal_continue_free"}),n()},className:"rounded-lg border border-slate-300 px-4 py-2 text-sm font-medium text-slate-700 hover:bg-slate-50",children:"Continue on free plan"}),a.jsx(E,{to:H,onClick:()=>{F(O.betaPricingInterest,{surface:"upgrade_modal_view_pricing"}),n()},className:"rounded-lg bg-peacock-600 px-4 py-2 text-sm font-semibold text-white hover:bg-peacock-700",children:"View pricing"})]})]})]}),document.body)},yc=()=>{const e=l.useSyncExternalStore(lc,ic),[t,n]=l.useState(!1);l.useEffect(()=>{e.phase==="success"&&e.exceedsFreeLimit&&n(!0)},[e.phase,e.exceedsFreeLimit]);const r=()=>{cc({phase:"idle",message:null,visible:!1})},o=e.visible&&e.phase==="syncing",s=e.visible&&e.phase==="success"&&e.importedDocuments>0,i=e.visible&&e.phase==="error"&&!!e.message;return a.jsxs(a.Fragment,{children:[a.jsxs(tt,{children:[o?a.jsx(L.div,{initial:{opacity:0,y:-12},animate:{opacity:1,y:0},exit:{opacity:0,y:-12},className:"fixed inset-x-0 top-0 z-[70] border-b border-peacock-200/80 bg-gradient-to-r from-peacock-600 via-peacock-700 to-brand-violet px-4 py-3 text-white shadow-lg",children:a.jsxs("div",{className:"mx-auto flex max-w-3xl items-center justify-center gap-3",children:[a.jsx(L.span,{animate:{rotate:360},transition:{duration:2,repeat:1/0,ease:"linear"},children:a.jsx($s,{className:"h-5 w-5","aria-hidden":!0})}),a.jsx("p",{className:"text-sm font-medium",children:e.message??"Syncing to cloudâ¦"}),a.jsx(L.span,{className:"inline-flex gap-1",animate:{opacity:[.4,1,.4]},transition:{duration:1.2,repeat:1/0},children:a.jsx(Ar,{className:"h-4 w-4","aria-hidden":!0})})]})},"syncing"):null,s?a.jsx(L.div,{initial:{opacity:0,y:-12},animate:{opacity:1,y:0},exit:{opacity:0,y:-12},className:"fixed inset-x-0 top-0 z-[70] border-b border-emerald-200 bg-emerald-50 px-4 py-3 text-emerald-900 shadow-sm",children:a.jsxs("div",{className:"mx-auto flex max-w-3xl items-center justify-between gap-3",children:[a.jsx("p",{className:"text-sm font-medium",children:e.message}),a.jsx("button",{type:"button",onClick:r,className:"shrink-0 rounded-lg px-3 py-1 text-xs font-semibold text-emerald-800 hover:bg-emerald-100",children:"Dismiss"})]})},"success"):null,i?a.jsx(L.div,{initial:{opacity:0,y:-12},animate:{opacity:1,y:0},exit:{opacity:0,y:-12},className:"fixed inset-x-0 top-0 z-[70] border-b border-red-200 bg-red-50 px-4 py-3 text-red-800",children:a.jsx("p",{className:"mx-auto max-w-3xl text-center text-sm font-medium",children:e.message})},"error"):null]}),a.jsx(gc,{isOpen:t,importedCount:e.importedDocuments,onClose:()=>n(!1)})]})},pn=1;function bc(e){return{version:pn,decidedAt:new Date().toISOString(),analytics:e}}function wc(e){if(!e)return null;try{const t=JSON.parse(e);return!t||typeof t!="object"||typeof t.version!="number"||typeof t.decidedAt!="string"||typeof t.analytics!="boolean"?null:{version:t.version,decidedAt:t.decidedAt,analytics:t.analytics}}catch{return null}}function xc(e,t=pn){return e?e.version<t:!0}function vc(e){return!!(e!=null&&e.analytics)}const ge={password:/password|pwd|passwd/i,token:/token|api.?key|secret.?key|bearer/i,financial:/ssn|cvv|cvc|pin|credit.?card|card.?number|iban|routing.?number|account.?number/i,auth:/authorization|auth.?token|session.?id/i,security:/\botp\b|mfa|2fa|security.?code|verification.?code/i};new RegExp([ge.password,ge.token,ge.financial,ge.auth,ge.security].map(e=>e.source).join("|"),"i");function ae(e,t){const n=e.match(t);return(n==null?void 0:n[1])??null}function kc(e){const t=e;return/Edg\//i.test(t)?{family:"edge",name:"Microsoft Edge",version:ae(t,/Edg\/([\d.]+)/i)}:/OPR\//i.test(t)||/Opera/i.test(t)?{family:"opera",name:"Opera",version:ae(t,/(?:OPR|Opera)\/([\d.]+)/i)}:/Firefox\//i.test(t)?{family:"firefox",name:"Firefox",version:ae(t,/Firefox\/([\d.]+)/i)}:/Chrome\//i.test(t)&&!/Edg\//i.test(t)&&!/OPR\//i.test(t)?/Brave/i.test(t)?{family:"brave",name:"Brave",version:ae(t,/Chrome\/([\d.]+)/i)}:{family:"chrome",name:"Chrome",version:ae(t,/Chrome\/([\d.]+)/i)}:/Safari\//i.test(t)&&!/Chrome\//i.test(t)?{family:"safari",name:"Safari",version:ae(t,/Version\/([\d.]+)/i)}:{family:"unknown",name:"Unknown browser",version:null}}const Vn=e=>{let t;const n=new Set,r=(u,h)=>{const p=typeof u=="function"?u(t):u;if(!Object.is(p,t)){const m=t;t=h??(typeof p!="object"||p===null)?p:Object.assign({}
281,t,p),n.forEach(x=>x(t,m))}},o=()=>t,c={setState:r,getState:o,getInitialState:()=>d,subscribe:u=>(n.add(u),()=>n.delete(u))},d=t=e(r,o,c);return c},Ec=(e=>e?Vn(e):Vn),_c=e=>e;function Sc(e,t=_c){const n=Ne.useSyncExternalStore(e.subscribe,Ne.useCallback(()=>t(e.getState()),[e,t]),Ne.useCallback(()=>t(e.getInitialState()),[e,t]));return Ne.useDebugValue(n),n}const Hn=e=>{const t=Ec(e),n=r=>Sc(t,r);return Object.assign(n,t),n},Cc=(e=>e?Hn(e):Hn),hn="peacock-cookie-consent",Pc=[{id:"necessary",label:"Strictly necessary",description:"Required for Peacock to work â your local library (IndexedDB), session state, and sign-in. Always on.",required:!0},{id:"analytics",label:"Analytics",description:"Helps us understand how Peacock is used so we can improve it. Off unless you allow it.",required:!1}];function jc(){if(typeof window>"u")return null;try{return wc(window.localStorage.getItem(hn))}catch{return null}}function Rc(e){try{window.localStorage.setItem(hn,JSON.stringify(e))}catch{}}const q=Cc(e=>{const t=n=>{const r=bc(n);Rc(r),e({record:r,isPreferencesOpen:!1})};return{record:jc(),isPreferencesOpen:!1,acceptAll:()=>t(!0),rejectNonEssential:()=>t(!1),savePreferences:n=>t(n),openPreferences:()=>e({isPreferencesOpen:!0}),closePreferences:()=>e({isPreferencesOpen:!1}),resetConsent:()=>{try{window.localStorage.removeItem(hn)}catch{}e({record:null,isPreferencesOpen:!1})}}}),mn=()=>{const e=q(r=>r.record),t=q(r=>r.isPreferencesOpen),n=xc(e,pn);return{record:e,hasDecided:!n,isBannerVisible:n&&!t,isPreferencesOpen:t,isAnalyticsAllowed:vc(e)}},Tc=()=>{const{pathname:e,search:t}=P(),{isBannerVisible:n}=mn(),r=q(i=>i.acceptAll),o=q(i=>i.rejectNonEssential),s=q(i=>i.openPreferences);return Ie(e,t)||!n?null:a.jsx("div",{role:"region","aria-label":"Cookie consent",className:"fixed inset-x-0 bottom-0 z-50 p-4",children:a.jsxs("div",{className:"mx-auto flex max-w-4xl flex-col gap-4 roun
281ded-2xl border border-slate-200 bg-white p-5 shadow-2xl shadow-slate-400/30 sm:flex-row sm:items-center sm:justify-between",children:[a.jsxs("div",{className:"flex items-start gap-3",children:[a.jsx(Ws,{className:"mt-0.5 h-5 w-5 shrink-0 text-peacock-600","aria-hidden":!0}),a.jsxs("p",{className:"text-sm text-slate-600",children:["Peacock uses strictly necessary storage to run, and â only with your permission â analytics to improve the product. See our"," ",a.jsx(E,{to:ve,className:"font-medium text-peacock-700 underline",children:"privacy policy"}),". You can change this anytime from the footer."]})]}),a.jsxs("div",{className:"flex shrink-0 flex-wrap items-center gap-2",children:[a.jsx("button",{type:"button",onClick:s,className:"rounded-lg border border-slate-300 px-3 py-2 text-sm font-medium text-slate-700 hover:bg-slate-50",children:"Manage preferences"}),a.jsx("button",{type:"button",onClick:o,className:"rounded-lg border border-slate-300 px-3 py-2 text-sm font-medium text-slate-700 hover:bg-slate-50",children:"Reject non-essential"}),a.jsx("button",{type:"button",onClick:r,className:"btn-peacock btn-peacock--sm",children:"Accept all"})]})]})})},Ic=({category:e,enabled:t,onChange:n})=>{const r=e.required;return a.jsxs("div",{className:"flex items-start justify-between gap-4 rounded-lg border border-slate-200 p-4",children:[a.jsxs("div",{children:[a.jsx("p",{className:"text-sm font-semibold text-slate-900",children:e.label}),a.jsx("p",{className:"mt-1 text-xs text-slate-600",children:e.description})]}),a.jsx("button",{type:"button",role:"switch","aria-checked":t,"aria-label":`${e.label}${r?" (always on)":""}`,disabled:r,onClick:()=>n(e.id,!t),className:`relative mt-1 inline-flex h-6 w-11 shrink-0 items-center rounded-full transition-colors ${t?"bg-peacock-600":"bg-slate-300"} ${r?"cursor-not-allowed opacity-70":"cursor-pointer"}`,children:a.jsx("span",{className:`inline-block h-4 w-4 transform rounded-full bg-white shadow transition-transform ${t?"translate-x-6":"translate-x-1"}`})})]})},Nc=()=>{const{pathname:e,search:t}=P(),n=q(p=>p.isPreferencesOpen),r=q(p=>p.record),o=q(p=>p.savePreferences),s=q(p=>p.closePreferences),i=l.useId(),[c,d]=l.useState(!1);if(l.useEffect(()=>{n&&d(!!(r!=null&&r.analytics))},[n,r]),l.useEffect(()=>{if(!n)return;const p=m=>{m.key==="Escape"&&s()};return window.addEventListener("keydown",p),()=>window.removeEventListener("keydown",p)},[n,s]),Ie(e,t)||!n)return null;const u=p=>p==="analytics"?c:!0,h=(p,m)=>{p==="analytics"&&d(m)};return a.jsxs("div",{className:"fixed inset-0 z-[60] flex items-center justify-center p-4",children:[a.jsx("button",{type:"button","aria-label":"Close cookie preferences",className:"absolute inset-0 bg-slate-900/50",onClick:s}),a.jsxs("div",{role:"dialog","aria-modal":"true","aria-labelledby":i,className:"relative w-full max-w-lg rounded-xl bg-white p-6 shadow-xl",children:[a.jsx("h2",{id:i,className:"text-lg font-semibold text-slate-900",children:"Cookie preferences"}),a.jsx("p",{className:"mt-2 text-sm text-slate-600",children:"Choose which optional storage Peacock can use. Strictly necessary items are always on."}),a.jsx("div",{className:"mt-4 space-y-3",children:Pc.map(p=>a.jsx(Ic,{category:p,enabled:u(p.id),onChange:h},p.id))}),a.jsxs("div",{className:"mt-6 flex justify-end gap-2",children:[a.jsx("button",{type:"button",onClick:s,className:"rounded-lg border border-slate-300 px-3 py-2 text-sm font-medium text-slate-700 hover:bg-slate-50",children:"Cancel"}),a.jsx("button",{type:"button",onClick:()=>o(c),className:"btn-peacock btn-peacock--sm",children:"Save preferences"})]})]})]})},fn={cloudLibrary:"cloud_library",publicShare:"public_share",orgInvites:"org_invites"};let Ue=null;function Lh(e){Ue=e}function gn(e,t=!0){if(!ce())return!1;const n=Ue==null?void 0:Ue(e);return typeof n=="boolean"?n:t}function Oh(){return gn(fn.cloudLibrary)}function Ac(){return gn(fn.publicShare)}function Dh(){return gn(fn.orgInvites)}function Lc(){return l.useSyncExternalStore(dt,Dl,()=>null)}function Oc(){return l.useSyncExternalStore(dt,Ml,()=>null)}function te(){return l.useSyncExternalStore(Bl,At,()=>At())}function Mh(){return te()==="guest"}function Dc(){const e=te();return D()?e==="cloud"||e==="connecting"||e==="onboarding":!0}function Fh(){const e=te();return e==="local"?!0:e!=="cloud"?!1:sn("delete")}function ht(){return l.useSyncExternalStore(dt,Zr,()=>null)}function $h(){const e=ht();return!!(e!=null&&e.needsWorkspaceOnboarding)}function Uh(){const e=ht();return{organizationId:(e==null?void 0:e.organizationId)??null,organizationName:(e==null?void 0:e.organizationName)??null,workspaceType:(e==null?void 0:e.workspaceType)??null,role:(e==null?void 0:e.role)??null,capabilities:(e==null?void 0:e.capabilities)??null,memberships:(e==null?void 0:e.memberships)??[],isAdmin:(e==null?void 0:e.role)==="admin"}}function Be(e){return ht(),sn(e)}function Bh(){const e=te(),t=Lc(),n=Oc(),r=Be("share"),o=Be("export"),s=Be("embed");if(e==="local")return{canShare:!0,canExport:!0,canEmbed:!1,disabledReasons:{embed:"Embeds require cloud sync and a signed-in workspace."}};if(e==="loading"||e==="connecting"){const d=(n==null?void 0:n.kind)==="network_blocked"?"Cloud sharing is unavailable on this network. Ask IT to allowlist peacockstudio.app, clerk.peacockstudio.app, *.clerk.com, and *.supabase.co â or try a personal device / hotspot.":t?"Cloud workspace failed to connect. Refresh, or sign out and sign back in.":"Workspace is still loadingâ¦";return{canShare:!1,canExport:!0,canEmbed:!1,disabledReasons:{link:d,embed:d}}}if(e==="guest")return{canShare:!1,canExport:!0,canEmbed:!1,disabledReasons:{link:"Sign up or sign in to create share links.",embed:"Sign up or sign in to publish embeds."}};if(e==="onboarding")return{canShare:!1,canExport:!0,canEmbed:!1,disabledReasons:{link:"Choose a workspace to create share links.",embed:"Choose a workspace to publish embeds."}};const i=!ce()||Ac(),c={};
281return i||(c.link="Public sharing is temporarily disabled.",c.embed="Embeds are temporarily disabled."),r||(c.link="Your workspace role cannot share."),o||(c.pdf="Your workspace role cannot export."),s||(c.embed="Your workspace role cannot publish embeds. Ask a workspace admin to enable Embed for your account."),{canShare:r&&i,canExport:o,canEmbed:s&&i,disabledReasons:c}}function Vh(){const e=te(),t=Be("create");return e==="local"?!0:e!=="cloud"?!1:t}let xt=null;function Mc(){return Vr()?(xt||(xt=y(()=>import("./posthogSink-DkKap2Fm.js"),__vite__mapDeps([11,1,10])).then(e=>{zi(e.createPostHogSink())})),xt):Promise.resolve()}const Fc=()=>{const{isAnalyticsAllowed:e}=mn(),t=P(),n=ht(),r=l.useRef(!1),o=l.useRef(null),s=l.useRef(null),i=l.useRef(null);return l.useEffect(()=>{Hi()},[]),l.useEffect(()=>{let c=!1;if(e)return Mc().then(()=>{if(c)return;const d=!r.current;Wi(),r.current=!0,d&&(F(O.consentAccepted,{source:"consent_gate"}),F(O.analyticsEnabled,{provider:Vr()?"posthog":"console"}),Qi())}),()=>{c=!0};r.current&&(F(O.consentRejected,{source:"consent_withdrawn"}),Nn(),o.current=null,s.current=null,i.current=null),Gi(),r.current=!1},[e]),l.useEffect(()=>{e&&qi(`${t.pathname}${t.search}`)},[e,t.pathname,t.search]),l.useEffect(()=>{if(!e||!D())return;const c=(n==null?void 0:n.clerkUserId)??null;if(!c){o.current&&(Nn(),o.current=null,s.current=null,i.current=null);return}o.current!==c&&(Ki(c,{...$r(Fr()),email:n==null?void 0:n.userEmail,name:n==null?void 0:n.userDisplayName,organization_id:(n==null?void 0:n.organizationId)??void 0,organization_name:(n==null?void 0:n.organizationName)??void 0,workspace_type:(n==null?void 0:n.workspaceType)??void 0}),o.current=c,i.current!==c&&(F(O.userSignedIn,{workspace_type:(n==null?void 0:n.workspaceType)??void 0}),i.current=c));const d=(n==null?void 0:n.organizationId)??null;d&&s.current!==d&&(Ji("organization",d,{name:(n==null?void 0:n.organizationName)??void 0,workspace_type:(n==null?void 0:n.workspaceType)??void 0}),s.current=d)},[e,n]),l.useEffect(()=>{if(!D()||!rn())return;const c=(n==null?void 0:n.clerkUserId)??null;if(!c){En(null);return}En({id:c})},[n==null?void 0:n.clerkUserId]),null};function $c(){var e;if(typeof window>"u"||typeof navigator>"u")return!1;if(((e=navigator.userAgentData)==null?void 0:e.mobile)===!0)return!0;try{if(window.matchMedia("(pointer: coarse)").matches||window.matchMedia("(max-width: 767px)").matches)return!0}catch{}return!1}const Uc="[email protected]",oa="peacock-hide-support-widget";function Bc(){var t;const e=window.fcWidget;return!!((t=e==null?void 0:e.isLoaded)!=null&&t.call(e))&&typeof(e==null?void 0:e.open)=="function"}function Hh(){var e,t,n;if(!Bc()){window.location.href=`mailto:${Uc}?subject=Peacock%20Support`;return}document.documentElement.classList.remove(oa),(t=(e=window.fcWidget)==null?void 0:e.show)==null||t.call(e),(n=window.fcWidget)==null||n.open()}const zn="freshchat-widget",Vc=4e3;function Mt(){Ut($t(window.location.pathname))}function Ft(e){var r,o,s,i;if((o=(r=window.fcWidget)==null?void 0:r.isLoaded)!=null&&o.call(r)){e();return}(i=(s=window.fcWidget)==null?void 0:s.on)==null||i.call(s,"widget:loaded",e);let t=0;const n=window.setInterval(()=>{var c,d;if(t+=1,(d=(c=window.fcWidget)==null?void 0:c.isLoaded)!=null&&d.call(c)){window.clearInterval(n),e();return}t>=40&&window.clearInterval(n)},250)}function Hc(e){if(document.getElementById(zn)){Ft(Mt);return}const t=document.createElement("script");t.id=zn,t.async=!0,t.src=e,t.setAttribute("chat","true"),t.onload=()=>Ft(Mt),document.body.appendChild(t)}function zc(e){return!!(e==="/editor"||e==="/tours/new"||e.startsWith("/edit/")||e.endsWith("/edit")||e.startsWith("/editor/"))}function Wc(e){return zc(e)||tn(e)||lt(e)}function Gc(e){return Wc(e)?!1:e===T||e===H}function $t(e){return Gc(e)&&!$c()}function Ut(e){var t,n,r,o;if(document.documentElement.classList.toggle(oa,!e),!!((n=(t=window.fcWidget)==null?void 0:t.isLoaded)!=null&&n.call(t))){if(e){window.fcWidget.show();return}(o=(r=window.fcWidget).isOpen)!=null&&o.call(r)&&window.fcWidget.close(),window.fcWidget.hide()}}function qc(e){if(typeof window.requestIdleCallback=="function"){const n=window.requestIdleCallback(()=>e(),{timeout:Vc});return()=>window.cancelIdleCallback(n)}const t=window.setTimeout(e,2e3);return()=>window.clearTimeout(t)}const Yc=()=>{var o;const e=(o=ll())==null?void 0:o.scriptSrc,{pathname:t}=P(),n=l.useRef(!1),r=$t(t);return l.useEffect(()=>{Ut(r),Ft(Mt)},[t,r]),l.useEffect(()=>{if(!(!e||!r)){if(!n.current)return qc(()=>{n.current||$t(window.location.pathname)&&(Hc(e),n.current=!0)});Ut(!0)}},[e,r]),null};let Wn=!1;const Kc=()=>{const{pathname:e}=P();return l.useEffect(()=>{pt(e)||Wn||(Wn=!0,y(()=>Promise.resolve().then(()=>ml),void 0).then(t=>t.initSentry()))},[e]),null};var Qe={},Jc=()=>{window.va||(window.va=function(...t){window.vaq||(window.vaq=[]),window.vaq.push(t)})},Qc="@vercel/analytics",Xc="2.0.1";function sa(){return typeof window<"u"}function ia(){try{const e="production"}catch{}return"production"}function Zc(e="auto"){if(e==="auto"){window.vam=ia();return}window.vam=e}function ed(){return(sa()?window.vam:ia())||"production"}function yn(){return ed()==="development"}function td(e){return e.scriptSrc?oe(e.scriptSrc):yn()?"https://va.vercel-scripts.com/v1/script.debug.js":e.basePath?oe(`${e.basePath}
281/insights/script.js`):"/_vercel/insights/script.js"}function nd(e,t){var n;let r=e;if(t)try{r={...(n=JSON.parse(t))==null?void 0:n.analytics,...e}}catch{}Zc(r.mode);const o={sdkn:Qc+(r.framework?`/${r.framework}`:""),sdkv:Xc};return r.disableAutoTrack&&(o.disableAutoTrack="1"),r.viewEndpoint&&(o.viewEndpoint=oe(r.viewEndpoint)),r.eventEndpoint&&(o.eventEndpoint=oe(r.eventEndpoint)),r.sessionEndpoint&&(o.sessionEndpoint=oe(r.sessionEndpoint)),yn()&&r.debug===!1&&(o.debug="false"),r.dsn&&(o.dsn=r.dsn),r.endpoint?o.endpoint=r.endpoint:r.basePath&&(o.endpoint=oe(`${r.basePath}/insights`)),{beforeSend:r.beforeSend,src:td(r),dataset:o}}function oe(e){return e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/")?e:`/${e}`}function rd(e={debug:!0},t){var n;if(!sa())return;const{beforeSend:r,src:o,dataset:s}=nd(e,t);if(Jc(),r&&((n=window.va)==null||n.call(window,"beforeSend",r)),document.head.querySelector(`script[src*="${o}"]`))return;const i=document.createElement("script");i.src=o;for(const[c,d]of Object.entries(s))i.dataset[c]=d;i.defer=!0,i.onerror=()=>{const c=yn()?"Please check if any ad blockers are enabled and try again.":"Be sure to enable Web Analytics for your project and deploy again. See https://vercel.com/docs/analytics/quickstart for more information.";console.log(`[Vercel Web Analytics] Failed to load script from ${o}. ${c}`)},document.head.appendChild(i)}function ad({route:e,path:t}){var n;(n=window.va)==null||n.call(window,"pageview",{route:e,path:t})}function od(){if(!(typeof process>"u"||typeof Qe>"u"))return Qe.REACT_APP_VERCEL_OBSERVABILITY_BASEPATH}
281function sd(){if(!(typeof process>"u"||typeof Qe>"u"))return Qe.REACT_APP_VERCEL_OBSERVABILITY_CLIENT_CONFIG}function id(e){return l.useEffect(()=>{var t;e.beforeSend&&((t=window.va)==null||t.call(window,"beforeSend",e.beforeSend))},[e.beforeSend]),l.useEffect(()=>{rd({framework:e.framework||"react",basePath:e.basePath??od(),...e.route!==void 0&&{disableAutoTrack:!0},...e},e.configString??sd())},[]),l.useEffect(()=>{e.route&&e.path&&ad({route:e.route,path:e.path})},[e.route,e.path]),null}var Xe={},ld=()=>{window.si||(window.si=function(...t){window.siq=window.siq||[],window.siq.push(t)})},cd="@vercel/speed-insights",dd="2.0.0";function ud(){return typeof window<"u"}function pd(){try{const e="production"}catch{}return"production"}function la(){return pd()==="development"}function hd(e){return e.scriptSrc?Ze(e.scriptSrc):la()?"https://va.vercel-scripts.com/v1/speed-insights/script.debug.js":e.dsn?"https://va.vercel-scripts.com/v1/speed-insights/script.js":e.basePath?Ze(`${e.basePath}/speed-insights/script.js`):"/_vercel/speed-insights/script.js"}function md(e,t){var n;let r=e;if(t)try{r={...(n=JSON.parse(t))==null?void 0:n.speedInsights,...e}}catch{}const o={sdkn:cd+(r.framework?`/${r.framework}`:""),sdkv:dd};return r.sampleRate&&(o.sampleRate=r.sampleRate.toString()),r.route&&(o.route=r.route),la()&&r.debug===!1&&(o.debug="false"),r.dsn&&(o.dsn=r.dsn),r.endpoint?o.endpoint=Ze(r.endpoint):r.basePath&&(o.endpoint=Ze(`${r.basePath}/speed-insights/vitals`)),{src:hd(r),beforeSend:r.beforeSend,dataset:o}}function Ze(e){return e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/")?e:`/${e}`}function fd(e={},t){var n;if(!ud()||e.route===null)return null;ld();const{beforeSend:r,src:o,dataset:s}=md(e,t);if(document.head.querySelector(`script[src*="${o}"]`))return null;r&&((n=window.si)==null||n.call(window,"beforeSend",r));const i=document.createElement("script");i.src=o,i.defer=!0;for(const[c,d]of Object.entries(s))i.dataset[c]=d;return i.onerror=()=>{console.log(`[Vercel Speed Insights] Failed to load script from ${o}. Please check if any content blockers are enabled and try again.`)},document.head.appendChild(i),{setRoute:c=>{i.dataset.route=c??void 0}}}function gd(){if(!(typeof process>"u"||typeof Xe>"u"))return Xe.REACT_APP_VERCEL_OBSERVABILITY_BASEPATH}function yd(){if(!(typeof process>"u"||typeof Xe>"u"))return Xe.REACT_APP_VERCEL_OBSERVABILITY_CLIENT_CONFIG}function bd(e){l.useEffect(()=>{var n;e.beforeSend&&((n=window.si)==null||n.call(window,"beforeSend",e.beforeSend))},[e.beforeSend]);const t=l.useRef(null);return l.useEffect(()=>{if(!t.current){const n=fd({framework:e.framework??"react",basePath:e.basePath??gd(),...e},e.configString??yd());n&&(t.current=n.setRoute)}},[e]),l.useEffect(()=>{t.current&&e.route&&t.current(e.route)},[e.route]),null}const wd=[{pattern:/^\/s\/[^/]+/,replacement:"/s/[token]"},{pattern:/^\/docs\/[^/]+/,replacement:"/docs/[id]"},{pattern:/^\/tours\/[^/]+/,replacement:"/tours/[id]"},{pattern:/^\/capture\/[^/]+/,replacement:"/capture/[id]"}];function xd(e){for(const{pattern:t,replacement:n}of wd)if(t.test(e))return e.replace(t,n);return e}function vd(e){try{const t=new URL(e,"https://peacock.local");return t.pathname=xd(t.pathname),e.startsWith("http://")||e.startsWith("https://")?t.toString():`${t.pathname}${t.search}${t.hash}`}catch{return e.replace(/^\/s\/[^/?#]+/,"/s/[token]")}}function Gn(e){return{...e,url:vd(e.url)}}const kd=()=>{const{isAnalyticsAllowed:e}=mn(),t=l.useRef(e);t.current=e;const n=l.useCallback(o=>t.current?Gn(o):null,[]),r=l.useCallback(o=>Gn(o),[]);return a.jsxs(a.Fragment,{children:[e&&a.jsx(id,{beforeSend:n}),a.jsx(bd,{beforeSend:r})]})},Ed=({children:e})=>{const t=$l(),n=D()&&!!t,r=a.jsxs(a.Fragment,{children:[a.jsx(jl,{}),a.jsx(Kc,{}),a.jsx(kd,{}),e,a.jsx(Fc,{}),a.jsx(Yc,{}),a.jsx(yc,{}),a.jsx(Tc,{}),a.jsx(Nc,{}),a.jsx(Sa,{position:"bottom-center",preset:"smooth",closeButton:"top-right",showTimestamp:!1,showProgress:!0,theme:"light",offset:"24px"})]});return a.jsx(as,{children:a.jsx(_l,{children:n?a.jsx(oc,{publishableKey:t,children:r}):r})})},ca=[.22,1,.36,1],zh={initial:{opacity:0}
281,animate:{opacity:1},exit:{opacity:0}},Wh={duration:.28,ease:ca},_d={duration:.28,ease:ca},Sd=[R,Qt,Xt,ke,Ee,_e,Ke];function Cd(e){return Sd.some(t=>e===t||e.startsWith(`${t}/`))}const Pd=({children:e})=>{const t=P(),n=Ca(),r=l.useRef(!0),o=Cd(t.pathname)||t.pathname===T;return l.useEffect(()=>{r.current=!1},[]),n||o||r.current?a.jsx(a.Fragment,{children:e}):a.jsx(tt,{mode:"wait",children:a.jsx(L.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:_d,className:"min-h-screen",children:e},t.pathname)})},jd=({children:e})=>{const t=te(),r=P().pathname,o=r.startsWith(Me)||r.startsWith(Br),s=r.startsWith(en);return!D()||s?e:t==="onboarding"&&!o?a.jsx(W,{to:Me,replace:!0}):t==="cloud"&&o&&r.startsWith(Me)?a.jsx(W,{to:R,replace:!0}):e};function qn(e){const t=e instanceof Error?`${e.name} ${e.message}`:typeof e=="string"?e:"";return/ChunkLoadError|Loading chunk [\d]+ failed|Failed to fetch dynamically imported module|error loading dynamically imported module|Importing a module script failed/i.test(t)}class Rd extends l.Component{constructor(){super(...arguments);re(this,"state",{error:null});re(this,"handleRetry",()=>{window.location.reload()})}static getDerivedStateFromError(n){return{error:n}}componentDidCatch(n,r){qn(n)&&kl("Route chunk load failed",{message:n.message,name:n.name,stack:n.stack,componentStack:r.componentStack})}render(){const{error:n}=this.state;if(n){if(!qn(n))throw n;const r=Ie(window.location.pathname);return a.jsx(nn,{embed:r,title:"Failed to load this page",description:r?"A required code bundle did not load. Check your connection, then refresh.":"A required code bundle did not load. Check your connection, then retry.",detail:n.message,onRetry:this.handleRetry,homePath:R,homeLabel:"Go to dashboard"})}return this.props.children}}const mt="/peacock-logo.png",N="Peacock Studio",Gh={primary:"#2563EB",primaryMutedBg:"#EFF6FF",primaryMutedBorder:"#BFDBFE",primaryLabel:"#1D4ED8",primaryInstructionText:"#1E3A5F",accentViolet:"#7C3AED"};function Yn(e){document.title=e}function Td(e,t,n){let r=document.querySelector(`meta[${e}="${t}"]`);r||(r=document.createElement("meta"),r.setAttribute(e,t),document.head.appendChild(r)),r.setAttribute("content",n)}function Id(e,t){let n=document.querySelector(`link[rel="${e}"]`);n||(n=document.createElement("link"),n.rel=e,document.head.appendChild(n)),n.href=t}function Nd(e,t){let n=document.getElementById(e);n||(n=document.createElement("script"),n.id=e,n.type="application/ld+json",document.head.appendChild(n)),n.textContent=JSON.stringify(t)}function Ad(e){var t;(t=document.getElementById(e))==null||t.remove()}function Ld(e){for(const t of e)Td(t.attr,t.key,t.content)}const G="https://peacockstudio.app",Od=N,et="Peacock Studio turns real browser workflows into editable Flow Documents and Product Tours â interactive documentation with screenshots, branches, PDF export, cloud sync, and team workspaces.",Dd=`${N} â Flow docs & product tours from real workflows`,Md="/peacock-logo.png",Fd=1e3,$d=1e3,Ud="en_US";function Ce(e="/"){if(e.startsWith("http://")||e.startsWith("https://"))return e;const t=e.startsWith("/")?e:`/${e}`;return`${G}${t==="/"?"":t}`||G}function Bd(){return Ce(Md)}const da=[{slug:"flow-documents",name:"Flow Documents",shortName:"Flow Documents",tagline:"Execution-grade guides from real product usage.",summary:"Step-by-step workflow guides with screenshots, sections, branches, and share links â how teams run QA, support, and internal processes.",overview:"Flow Documents turn live browser workflows into structured, editable references. Record once in the Chrome extension, refine steps and chapters in the flow editor, then publish for async review, guided playback, or PDF export.",highlights:[{title:"Structured capture",description:"Clicks, inputs, navigation, and screenshots sync into editable steps automatically."},{title:"Branches & sections",description:"Link decision paths to other saved docs and divi
281de long guides into navigable chapters."},{title:"Share & export",description:"Readonly or editable links, document view, interactive player, and multi-page PDF export."}],idealFor:["QA & regression","Support playbooks","Internal SOPs","Release validation"],icon:ot,accentGradient:"from-peacock-700 to-peacock-900",iconBg:"bg-peacock-50 text-peacock-700"},{slug:"product-tours",name:"Product Tours",shortName:"Product Tours",tagline:"Adoption narratives composed from multiple demos.",summary:"Persona-led journeys that bundle saved flow documents into guided stories for onboarding, sales, releases, and executive updates.",overview:"Product Tours combine multiple captured demos into feature chapters anchored to a buyer or user persona. Present live, share a presenter link, or let prospects explore at their own pace â without rebuilding decks for every audience.",highlights:[{title:"Persona-led structure",description:"Organize demos by audience so each story stays focused and relevant."},{title:"Feature chapters",description:"Group related flow documents into digestible chapters within one tour."},{title:"Guided playback",description:"Step-through experience with keyboard navigation and presenter-ready links."}],idealFor:["Sales demos","Customer onboarding","Release storytelling","Enablement"],icon:Ir,accentGradient:"from-brand-violet to-peacock-800",iconBg:"bg-brand-violet/10 text-brand-violet"},{slug:"capture-screenshot-editor",name:"Capture Screenshot & Editor",shortName:"Capture & Editor",tagline:"Polished screenshots without leaving the browser.",summary:"Grab visible, selected, or full-page screenshots from the extension, then crop, blur, redact, and brand them for guides and leave-behinds.",overview:"Peacockâs capture tools live in the Chrome extension popup â quick screenshots for support, marketing, and documentation assets. Open any capture in the editor to add context, protect sensitive data, and publish professional images ready for flow docs or external channels.",highlights:[{title:"Flexible capture modes",description:"Visible region, selected region, or entire scrollable page â from any tab."},{title:"Privacy-safe editing",description:"Blur and redact regions before screenshots leave your machine."},{title:"On-brand polish",description:"Gradient backgrounds, crop, and title or description context for publish-ready assets."}],idealFor:["Support articles","Marketing assets","Help desk","Audit-friendly exports"],icon:Kt,accentGradient:"from-slate-800 to-peacock-900",iconBg:"bg-slate-100 text-slate-700"}],Vd=e=>da.find(t=>t.slug===e),qh={headline:"The system of record for how work actually happens.",description:"Peacock transforms real workflows into reusable execution guides and narrative experiences, helping teams align faster, enable others consistently, and preserve operational knowledge as products evolve."},ua=[{slug:"developers",title:"Developers & Engineers",shortTitle:"Developers",tagline:"Hand off working software â without becoming the documentation layer.",summary:"Peacock captures how internal tools and features actually work â structured flow docs for handoff, tours for the broader story your org needs.",whoTheyAre:"Engineers ship continuously and absorb interruption from QA, support, and product. They need to transfer working software without becoming the living documentation layer.",bestFitWhen:["Engineers repeat the same walkthroughs every sprint","Internal tools change faster than written guides stay current","QA and support rely on tribal knowledge instead of authoritative references"],primaryChallenges:[{title:"You are the handoff",description:"Every release triggers screen shares and Slack threads. Without a durable artifact, engineering stays on the critical path for questions others should self-serve."},{title:"Internal surfaces stay invisible",description:"Admin consoles, flags, and ops workflows never get the documentation investment customer features receive. Knowledge compounds in individuals, not the org."},{title:"Manual docs decay on contact",description:"Screenshot-based guides mislead after the first UI tweak. Teams stop trusting docs or burn cycles maintaining assets nobody owns."}],flowDocuments:{headline:"The execution reference for engineering handoff",description:"Record while building or verifying. Each capture becomes a step-indexed, branch-aware doc â the operational artifact QA runs against and support follows on tickets.",benefits:[{title:"Capture from any environment",description:"Document staging, local, or internal
281consoles during normal work â not a separate documentation sprint."},{title:"One doc, multiple paths",description:"Model admin, member, and edge-case flows without maintaining parallel copies."},{title:"Hand off with a link",description:"Replace the next calendar invite with a readonly player your org can trust."}]},productTours:{headline:"The narrative layer for platform and release communication",description:"Chain flow docs into guided journeys â how the platform fits together, what shipped this quarter, how a new engineer should orient.",benefits:[{title:"Tell the platform story once",description:"Group deploy, rollback, and observability flows into a coherent internal narrative."},{title:"Frame by audience",description:"On-call engineer, platform admin, or new hire â open with context before depth."},{title:"Platform narrative stays current",description:"Update a linked capture; every tour referencing it reflects the latest behavior."}]},whyPeacock:{headline:"How your software actually works â preserved as teams change it",differentiators:[{title:"Workflows captured, not written up",description:"Peacock records what happens in the browser. Engineering hands downstream teams structured steps tied to the live product."},{title:"Built for change, not archival",description:"When UI shifts, update the affected capture. Links and tour references stay valid."},{title:"One source downstream teams execute against",description:"QA, support, and PM pull from the same truth instead of reconstructing it from memory."}]},useCases:[{title:"Sprint handoff to QA",description:"Branching flow doc with happy path and validation scenarios attached to the release."},{title:"Internal platform orientation",description:"Tour connecting DevOps, admin, and troubleshooting workflows for new engineers."},{title:"Changelog with proof",description:"Readonly flow docs linked from release notes so stakeholders see what changed."}],businessOutcomes:[{label:"Engineering leverage",value:"Fewer repeat walkthroughs"},{label:"Cross-team clarity",value:"One authoritative handoff artifact"},{label:"Documentation trust",value:"References that match the product"}],icon:Bs,accentGradient:"from-sky-500 to-blue-700",iconBg:"bg-sky-500/10 text-sky-700"},{slug:"testers",title:"QA & Test Engineers",shortTitle:"Testers",tagline:"Make release decisions with evidence the business can read.",summary:"Peacock turns live product behavior into visual validation assets â execution-grade scenarios for QA, business-readable journeys for UAT and regression review.",whoTheyAre:"QA owns quality evidence and coordinates sign-off across engineering and the business. They need scenarios grounded in what users see â not abstract scripts that diverge from the build under test.",bestFitWhen:["Business stakeholders struggle to validate releases from text-only test cases","Regression scope is debated without a visual reference everyone trusts","Test documentation falls behind UI changes every release"],primaryChallenges:[{title:"Scripts and screens diverge",description:"Written cases describe controls that moved or renamed. Testers reconcile documentation instead of exercising risk."},{title:"UAT defaults to live demos",description:"Business reviewers cannot self-validate from dense step lists. Sign-off waits on calendars, not evidence."},{title:"Regression scope is invisible",description:"Spreadsheets of case IDs do not show leadership what user impact is actually covered before go-live."}],flowDocuments:{headline:"Visual scenarios your team executes against",description:"Each capture becomes a screenshot-driven scenario with editable steps â the reference testers run and attach to formal validation packages.",benefits:[{title:"Business-readable validation steps",description:"Sponsors see the exact screen at each decision point â not tester shorthand."},{title:"Branching without duplication",description:"Role-based and error paths live in one scenario instead of fragmented copies."},{title:"Before-and-after confidence",description:"Compare captures across builds to confirm UI changes landed as expected."}]},productTours:{headline:"Regression narratives business stakeholders review independently",description:"Bundle priority journeys into a structured release story â scope, sequence, and expected behavior in one approval-ready experience.",benefits:[{title:"Release scope everyone can see",description:"Auth, core flows, and integrations presented as a coherent validation story."},{title:"Stakeholder sign-off without calendar dependency",description:"Business owners validate expected behavior async and arr
281ive at approval prepared."},{title:"Targeted review under release debate",description:"Sponsors revisit the exact workflow in question â not an entire regression session."}]},whyPeacock:{headline:"QA as the strategic owner of release confidence",differentiators:[{title:"Evidence from the application under test",description:"Peacock captures behavior directly from the product under test â not abstract descriptions written after the fact."},{title:"Structured validation, not a recording graveyard",description:"Steps are indexed, editable, and exportable. Formal packages attach to release governance."},{title:"A language both engineering and the business share",description:"Visual scenarios bridge QA precision and sponsor comprehension â reducing sign-off friction."}]},useCases:[{title:"Pre-release regression review",description:"Tour of priority user journeys shared with release managers and business owners."},{title:"Defect reproduction package",description:"Exact step sequence attached to the ticket â no ambiguity about reproduction."},{title:"Exploratory session capture",description:"Record discovered paths during exploration; formalize into scenarios later."}],businessOutcomes:[{label:"Release confidence",value:"Greater certainty before go-live"},{label:"Stakeholder alignment",value:"Faster cross-functional sign-off"},{label:"Validation integrity",value:"Scenarios aligned to live UI"}],icon:js,accentGradient:"from-violet-500 to-purple-700",iconBg:"bg-violet-500/10 text-violet-700"},{slug:"product-owners",title:"Product Owners & Product Managers",shortTitle:"Product Owners",tagline:"Ship capability and the story that sells it â together.",summary:"Capture accepted workflows as execution references for GTM, then compose release narratives that connect features to customer outcomes.",whoTheyAre:"PMs translate problems into shipped value and carry that message to sales, CS, support, and leadership. The product moves weekly; launch materials rarely keep pace.",bestFitWhen:["Every launch spawns decks, videos, and docs with
281no single source of truth","Sales, CS, and support each need a different angle on the same release","Leadership asks how features connect â not just what shipped"],primaryChallenges:[{title:"No canonical launch artifact",description:"Enablement hunts across Slack, decks, and recordings for what actually shipped and why it matters."},{title:"GTM angles multiply your workload",description:"The same release becomes three narratives rebuilt manually for different audiences."},{title:"Features without a through-line",description:"Isolated demos fail to show how capabilities compose into the customer outcome executives fund."}],flowDocuments:{headline:"Acceptance-grade execution references",description:"Record each closed story on staging â one flow doc per journey. Support and CS execute against these post-launch; they are how work actually happens in the product.",benefits:[{title:"Done criteria with proof",description:"Acceptance backed by real product behavior, not slide approximations."},{title:"Complex flows, readable structure",description:"Section long journeys so GTM teams can follow without engineering present."},{title:"Leadership review before announcement",description:"Share readonly links async â arrive at launch aligned, not surprised."}]},productTours:{headline:"Release narratives that connect investment to outcome",description:"Sequence flow docs into a story about who benefits, what changed, and how capabilities fit together â built for enablement, all-hands, and partner updates.",benefits:[{title:"Context before capability depth",description:"Open with the buyer or user role so feature detail lands with purpose."},{title:"Iterate privately, publish when ready",description:"Draft tours until messaging is right; mark live when GTM is equipped."},{title:"One voice across GTM at launch",description:"Sales, CS, and support draw from the same release narrative â regardless of who presents."}]},whyPeacock:{headline:"Launch from the product, not from a deck factory",differentiators:[{title:"Captured at acceptance, not reconstructed later",description:"Flows are recorded from the product as stories close â the canonical record of what shipped."},{title:"Execution and narrative from one pipeline",description:"Flow docs power support and CS; tours power sales and leadership â without duplicate production."},{title:"Current when the product moves",description:"Refresh individual capabilities; linked tours inherit the update."}]},useCases:[{title:"Quarterly release enablement",description:"Tour grouping flagship capabilities under the target buyer narrative."},{title:"Design partner onboarding",description:"Self-serve journey for beta cohorts with a completion path to feedback."},{title:"Executive roadmap preview",description:"Condensed tour connecting shipped work to strategic themes."}],businessOutcomes:[{label:"Launch readiness",value:"GTM assets available at ship time"},{label:"Message consistency",value:"One narrative, multiple audiences"},{label:"Investment visibility",value:"Outcomes visible across releases"}],icon:it,accentGradient:"from-peacock-500 to-peacock-800",iconBg:"bg-peacock-500/10 text-peacock-800"},{slug:"business-analysts",title:"Business Analysts & Stakeholders",shortTitle:"Business Analysts",tagline:"Turn agreed process into evidence sponsors can approve.",summary:"Record as-is and to-be workflows on the live system. Give cross-functional sponsors visual proof for sign-off, training, and process change.",whoTheyAre:"BAs translate business need into delivered behavior and defend that alignment to non-technical sponsors. They need proof approvers can review without a developer on the call.",bestFitWhen:["Requirements and specs lack on-screen evidence sponsors trust","Sign-off stalls waiting for live demos everyone can attend","Process changes must land consistently across finance, HR, and operations"],primaryChallenges:[{title:"Specs without visual proof",description:"Text-heavy requirements hide what users will actually see. Disputes surface late when built behavior diverges from sponsor expectations."}
281,{title:"Approval tied to availability",description:"Sign-off waits on coordinated walkthroughs because async evidence does not exist."},{title:"Process change does not travel",description:"A workflow update in one system must be understood differently by finance, HR, and ops â static diagrams miss the on-screen reality."}],flowDocuments:{headline:"Process execution with audit-friendly evidence",description:"Capture what the business user sees and does at each step. These are the operational references for training, sign-off, and traceable export.",benefits:[{title:"Screens replace abstraction",description:"Every step shows the actual interface â not a flowchart alone."},{title:"Session context attached",description:"Environment metadata captured automatically for attributable records."},{title:"Approval-ready exports",description:"PDF packages with instructions and visuals sponsors can file."}]},productTours:{headline:"End-to-end process stories for sponsor review",description:"Walk approvers through complete business processes across system touchpoints â organized how sponsors think about the work, not how tickets are routed.",benefits:[{title:"Framing before field-level detail",description:"Intro context sets the process before step-by-step playback."},{title:"Review on their schedule",description:"Readonly links reduce the meeting loops that delay go-live."},{title:"Lens by business role",description:"Finance approver, HR partner, or operations lead â same process, right framing."}]},whyPeacock:{headline:"How work happens â documented where it happens",differentiators:[{title:"Evidence from the live application",description:"Peacock captures workflows in the application under review â not screenshots pasted into a shared doc."},{title:"Sponsor review on their timeline",description:"Approvers examine the process segments relevant to their function â without scheduling another walkthrough."},{title:"Maintainable as procedures evolve",description:"Update the affected flow when policy changes â without rebuilding approval binders."}]},useCases:[{title:"UAT sign-off on staging",description:"Expected behavior shared with business owners before production cutover."},{title:"Legacy-to-target migration",description:"As-is and to-be flow docs for process re-engineering programs."},{title:"Procurement and RFP evidence",description:"Exported workflows demonstrating supported business processes."}],businessOutcomes:[{label:"Approval confidence",value:"Visual proof on record"},{label:"Cross-functional alignment",value:"Shared reference across departments"},{label:"Governance efficiency",value:"Async review before live sessions"}],icon:Ms,accentGradient:"from-amber-500 to-orange-600",iconBg:"bg-amber-500/10 text-amber-800"},{slug:"helpdesk",title:"IT Support & Service Desk",shortTitle:"IT Support",tagline:"Every agent follows the same proven path â on every ticket.",summary:"Capture resolution workflows as execution playbooks agents run on live calls, and training journeys that ramp new hires without weeks of shadowing.",whoTheyAre:"Service desk teams operate at volume with rotating staff. They need resolution paths that match the product today â not tribal knowledge from whoever has been on the team longest.",bestFitWhen:["Knowledge base articles no longer match the product UI","New agents depend on shadowing to learn resolution paths","The same ticket type gets different answers depending on who picks it up"],primaryChallenges:[{title:"KB drift erodes trust",description:"Support articles mislead agents on live calls. Customers notice when guidance does not match their screen."},{title:"Ramp depends on proximity",description:"Hiring spikes extend shadowing cycles because no structured curriculum exists agents can replay alone."},{title:"Inconsistent first-touch resolution",description:"Without step-accurate playbooks, quality varies by agent and escalations absorb what frontline guidance should prevent."}],flowDocuments:{headline:"Resolution playbooks built for ticket execution",description:"Record the correct path once â access, device, identity, VPN â with click-level steps agents follow while on the call or in the queue.",benefits:[{title:"Steps agents can execute under pressure",description:"Exact UI guidance replaces vague KB paragraphs during live assistance."},{title:"Aligned with the customer on live calls",description:"Agents execute steps while assisting the customer â no guessing from vague KB text."},{title:"Stable links through UI changes",description:"Update the capture; agents keep the same bookmark."}]},productTours:{headline:"Tier-1 curricula that scale with hiring",description:"Organize top resolution paths into a structured ramp journey â how new agents learn the queue, not a folder of disconnected articles.",benefits:[{title:"Organized by how t
281ickets arrive",description:"Access, device, billing, network â mapped to actual queue patterns."},{title:"Goals framed for frontline success",description:"First-touch resolution and escalation reduction built into the journey arc."},{title:"Team refresh without retraining from zero",description:"Walk through process updates in a structured session, not ad hoc tips."}]},whyPeacock:{headline:"The authoritative reference for how issues get resolved",differentiators:[{title:"Captured from the consoles agents use daily",description:"Peacock records resolution paths in the actual admin and support tools â not articles rebuilt after every UI change."},{title:"Indexed steps supervisors can standardize",description:"Agents land on the exact procedure. Frontline quality no longer depends on who answered the queue."},{title:"Playbooks that survive product updates",description:"Refresh the workflow capture; the organization keeps one trusted link."}]},useCases:[{title:"High-volume ticket paths",description:"Tour covering the resolution workflows that drive most queue volume."},{title:"Week-one agent ramp",description:"Self-paced journey completed before first live shift."},{title:"Customer self-serve for simple fixes",description:"Readonly flow doc sent when the fix is safe for the customer to run."}],businessOutcomes:[{label:"Resolution consistency",value:"Standard paths across the desk"},{label:"Agent ramp",value:"Structured training without shadowing bottlenecks"},{label:"Customer trust",value:"Instructions that match the product"}],icon:ti,accentGradient:"from-teal-500 to-emerald-700",iconBg:"bg-teal-500/10 text-teal-800"},{slug:"new-hires",title:"New Hires & Onboarding",shortTitle:"New Hires",tagline:"Give every cohort the same clear path in â at any hiring volume.",summary:"Task-level flow docs for discrete internal jobs, plus structured onboarding journeys that mirror your checklist across tools and teams.",whoTheyAre:"New hires must become productive across internal systems quickly. Without reusable assets, managers and buddies repeat the same orientation for every start date.",bestFitWhen:["Hiring spikes overwhelm live orientation capacity","Week one delivers dozens of links with no clear sequence","Managers repeat the same tool walkthroughs for every new starter"],primaryChallenges:[{title:"Orientation does not scale",description:"Live walkthrough capacity breaks when headcount grows. Ramp quality varies by team and start week."},{title:"No sequenced path through tools",description:"Handbooks, videos, and tool help arrive without order. Hires save everything and finish little with confidence."},{title:"Managers as default trainers",description:"Leads lose calendar to repeat demos that should exist as authoritative references."}],flowDocuments:{headline:"Task guides hires complete independently",description:"One flow doc per job â request access, submit expenses, run a report. Hires execute the task by following steps until it sticks.",benefits:[{title:"Repeat until confident",description:"Self-paced playback until the task is muscle memory."},{title:"Library of how work happens here",description:"All onboarding flows discoverable from one place."},{title:"Current when tools change",description:"Update the capture; cohorts always get the right version."}]},productTours:{headline:"Onboarding journeys with a deliberate arc",description:"Week-by-week tours aligned to your checklist â structured adoption through internal tools, not a pile of orientation recordings.",benefits:[{title:"Sequence that matches your program",description:"Intro, essentials, role depth, and completion â in the order you intend."},{title:"Revisit the right topic at the right moment",description:"Hires return to the module when that workflow appears in their actual job."},{title:"Cohorts by function",description:"Separate journeys for engineering, GTM, and operations paths."}]},whyPeacock:{headline:"Onboarding built on how work actually happens",differentiators:[{title:"Recorded from your internal stack",description:"Peacock captures real workflows in the tools hires will use â not generic handbook prose."}
281,{title:"Self-directed ramp through the program",description:"Hires access the module they need when that workflow surfaces â not hour-long orientation sessions."},{title:"Managers point, not repeat",description:"Live time shifts to questions and context â not re-demonstrating the same clicks."}]},useCases:[{title:"Week-one platform essentials",description:"Core internal tools every hire must know before role-specific depth."},{title:"Function-specific ramp",description:"Dedicated journey per business unit or job family."},{title:"Buddy program accelerator",description:"Docs and tours handle walkthroughs; buddies handle nuance and culture."}],businessOutcomes:[{label:"Ramp consistency",value:"Same curriculum every cohort"},{label:"Manager leverage",value:"Reusable assets over live repetition"},{label:"Time to productivity",value:"Clear path through internal work"}],icon:Zs,accentGradient:"from-rose-500 to-pink-600",iconBg:"bg-rose-500/10 text-rose-700"},{slug:"sales",title:"Sales, Pre-sales & Solution Consultants",shortTitle:"Sales & Pre-sales",tagline:"Win the room once. Let every rep â and every prospect â replay it.",summary:"Capability-level flow docs for precise demo execution, and buyer-matched tours for live presentation and post-call momentum.",whoTheyAre:"Revenue teams demo under pressure across deal stages and buyer types. Without standard assets, top performers carry the org and new reps take too long to sound credible.",bestFitWhen:["Demo quality swings depending on who is presenting","Reps lose selling time rebuilding environments before calls","Prospects have nothing substantive to revisit after the meeting"],primaryChallenges:[{title:"Messaging variance costs deals",description:"Without a canonical demo narrative, pipeline quality depends on individual performance on a given day."},{title:"Prep competes with pipeline",description:"Reps hunt for screens and rehearse ad hoc instead of delivering a proven story."},{title:"Follow-up fails to extend the conversation",description:"Generic decks do not replay what the prospect saw. Momentum fades between touchpoints."}],flowDocuments:{headline:"Capability demos reps execute with precision",description:"Record tight workflows â integration, security, reporting â as reusable references with click-accurate steps for live calls.",benefits:[{title:"Never miss a step on a live call",description:"Follow the doc as your guide when the room is watching."},{title:"Answer branching questions cleanly",description:"Admin vs user, plan tier, configuration path â from one asset."},{title:"Extend the meeting after it ends",description:"Share a readonly link that recaps exactly what you demonstrated."}]},productTours:{headline:"Buyer-matched narratives that close the story",description:"Compose tours for enterprise vs mid-market, technical vs economic buyer â the journey prospects explore after discovery and during evaluation.",benefits:[{title:"Prospect sees their role first",description:"Open with the buyer context so capability depth lands with relevance."},{title:"Consistent story across the revenue org",description:"New reps deliver the same proven narrative from early tenure."},{title:"Built for live delivery and async follow-up",description:"One asset for the call and the inbox â no duplicate production."}]},whyPeacock:{headline:"Demo assets anchored in the product, not the slide deck",differentiators:[{title:"Truth from the application",description:"Demos are captured from the actual product â grounded in what you show in market."},{title:"Buying conversations that continue after the call",description:"Prospects revisit the evaluation story independently â sustaining engagement between meetings."},{title:"Keep pace with product velocity",description:"Update a capability capture; the tour your team relies on stays aligned."}]},useCases:[{title:"Discovery-to-demo handoff",description:"Buyer-matched tour sent after the first call to maintain momentum."},{title:"Enterprise evaluation package",description:"Security, SSO, and admin workflows sequenced for technical buyers."},{title:"Event and field demo loop",description:"Flagship tour running on a reliable, repeatable narrative."}],businessOutcomes:[{label:"Pipeline quality",value:"Consistent demo narratives across reps"},{label:"Deal momentum",value:"Stronger post-call engagement"},{label:"Revenue ramp",value:"Credible delivery from early tenure"}],icon:Tr,accentGradient:"from-indigo-500 to-blue-800",iconBg:"bg-indigo-500/10 text-indigo-700"},{slug:"customer-success",title:"Customer Success & Account Management",shortTitle:"Customer Success",tagline:"Accelerate time-to-value between the calls you canât scale.",summary:"Milestone flow docs customers execute until tasks are done, plus adoption journeys mapped to purchased
281scope and first-value goals.",whoTheyAre:"CSMs drive retention and expansion across growing books. They need enablement that scales between touchpoints â not live walkthroughs for every milestone on every account.",bestFitWhen:["Kickoff and onboarding cannot scale with portfolio growth","Customers forget steps shown once on a crowded call","Enablement content ignores what the account actually purchased"],primaryChallenges:[{title:"High-touch onboarding hits a ceiling",description:"Growing books force tradeoffs. Smaller accounts wait longer; CSMs sacrifice strategic work for repeat demos."},{title:"Training evaporates after kickoff",description:"Users return alone and cannot reconstruct what was shown in a single session."},{title:"Generic content misaligns with scope",description:"Customers receive guidance for modules they do not own. CSMs manually curate links per account."}],flowDocuments:{headline:"Milestone tasks customers execute on their own",description:"First dashboard, invite the team, connect the integration â each milestone is a flow doc customers replay until the job is done.",benefits:[{title:"Progress between CSM touchpoints",description:"Customers advance without waiting for the next scheduled session."},{title:"Scoped to what they bought",description:"One guide per purchased capability â no noise from unused modules."},{title:"Leave-behinds that travel",description:"Attach to welcome sequences and QBR prep with export support."}]},productTours:{headline:"Adoption journeys tied to customer outcomes",description:"Sequence milestones toward first value â framed for the userâs role, scoped to their modules, designed for the first 30 days and beyond.",benefits:[{title:"Clear path to first value",description:"Customers understand what to do next and why it matters."},{title:"Expansion-ready storytelling",description:"Introduce unused modules through structured adoption narratives."},{title:"Expansion paths surfaced before the upsell conversation",description:"Introduce underused modules through structured adoption narratives tied to account goals."}]},whyPeacock:{headline:"Customer enablement that scales with the book",differentiators:[{title:"Guides from the product customers use",description:"Peacock captures the customer-facing UI â an authoritative reference for how they should work in your platform."},{title:"Adoption milestones between CSM touchpoints",description:"Accounts progress through first-value tasks on their own â improving time-to-value across the book."},{title:"Renewal conversations grounded in demonstrated use",description:"QBR and renewal discussions reference what customers actually completed â not what was shown once on kickoff."}]},useCases:[{title:"Welcome and kickoff package",description:"Role-matched tour in the welcome sequence on day one."},{title:"Module adoption campaign",description:"Structured journey introducing an expansion capability to target accounts."},{title:"Pre-renewal value review",description:"Tour replay anchoring the business case before the renewal conversation."}],businessOutcomes:[{label:"Time to value",value:"Faster path to first meaningful outcome"},{label:"CS leverage",value:"Scaled enablement between touchpoints"},{label:"Customer experience",value:"Consistent guidance across accounts"}],icon:ri,accentGradient:"from-fuchsia-500 to-purple-700",iconBg:"bg-fuchsia-500/10 text-fuchsia-700"},{slug:"executives",title:"Executives & Leadership",shortTitle:"Executives",tagline:"See where product investment lands â before the board asks.",summary:"Curated product narratives for leadership forums. Understand strategic alignment, customer outcomes, and release direction without operational deep dives.",whoTheyAre:"Executives decide where capital goes and what the organization communicates externally. They need high-signal product understanding â consistent across forums â not feature tours that read like engineering documentation.",bestFitWhen:["Product briefings either oversimplify or overrun leadership calendars","All-hands and board segments tell different stories about the same roadmap","It is hard to connect shipped work to customer and market outcomes"],primaryChallenges:[{title:"Wrong altitude in every briefing",description:"Updates swing between bullet lists and feature minutiae. Neither supports investment or communication decisions."},{title:"Narrative depends on who presents",description:"Employees and directors receive mixed signals when the company story changes with the speaker."},{title:"Strategy hidden inside release lists",description:"Individual shipments do not compose into a platform story without manual synthesis each quarter."}],flowDocuments:{headline:"Depth available when questions require it",description:"Flagship workflow captures exist for optional drill-down â execution detail on demand, not loaded into every leadership session.",benefits:[{title:"Answer specifics without a PM briefing",description:"Directors follow a linked flow when a capability warrants scrutiny."},{title:"Leave-behind for board materials",description:"Professional exports when appendix detail is appropriate."}]},productTours:{headline:"Strategic narratives for decision forums",description:"Condensed journeys connecting customer outcomes, market positioning, and shipped capability â built for all-hands, board segments, and partner reviews.",benefits:[{title:"Leadership aligns before major decisions",de
281scription:"One product narrative reviewed async â not reconstructed in every prep cycle."},{title:"Consistent company story",description:"The same strategic arc whether product, CEO, or GM presents."},{title:"Respect for executive time",description:"Duration and scope designed for how leaders actually consume information."}]},whyPeacock:{headline:"Investment visibility without dependency on live briefings",differentiators:[{title:"Outcomes over feature inventory",description:"Tours connect shipped work to customer and market impact â how leaders evaluate return on product investment."},{title:"Self-serve strategic review",description:"Directors and VPs replay the canonical narrative before board and all-hands â not during them."},{title:"Organizational consistency",description:"One canonical narrative for how the company explains product direction and customer impact."}]},useCases:[{title:"All-hands product segment",description:"Strategic tour replacing slide-only product sections."},{title:"Board quarterly review",description:"Readonly journey with optional appendix flows."},{title:"M&A and partnership diligence",description:"Platform overview for evaluators who need speed and clarity."}],businessOutcomes:[{label:"Decision confidence",value:"Clear view of product direction"},{label:"Strategic alignment",value:"Consistent narrative across forums"},{label:"Investment visibility",value:"Outcomes connected to shipped work"}],icon:Cs,accentGradient:"from-slate-600 to-slate-900",iconBg:"bg-slate-500/10 text-slate-700"},{slug:"security-compliance",title:"Security, Compliance & Audit",shortTitle:"Security & Compliance",tagline:"Collect control evidence without exposing what must stay protected.",summary:"Capture approved workflows with built-in sensitive-data safeguards and environment metadata â then guide reviewers through control domains in structured tours.",whoTheyAre:"Security and compliance teams must prove approved procedures are followed and documented. Auditors expect attributable evidence; teams should not trade data protection for documentation speed.",bestFitWhen:["Audits require recurring evidence collection from production systems","Sensitive data cannot appear in screenshots or recordings","Approved workflows evolve faster than control documentation stays current"],primaryChallenges:[{title:"Evidence fragmented across the org",description:"Control proof lives in drives, email, and individual machines â no authoritative, indexed library."},{title:"Manual collection every audit cycle",description:"Teams re-walk systems to assemble screenshots by hand â repetitive work that delays remediation."},{title:"Documentation trails production",description:"Approved-path evidence falls behind UI changes, surfacing findings that continuous alignment would prevent."}],flowDocuments:{headline:"Audit-ready captures with built-in safeguards",description:"Record approved workflows as step-by-step execution references. Password fields are automatically excluded. Sensitive inputs are never captured. Environment metadata is recorded with every session.",benefits:[{title:"Password fields excluded automatically",description:"Credential inputs never appear in snapshots â guaranteed by design."},{title:"Sensitive inputs never captured",description:"Protected field types are excluded from recording and export."},{title:"Environment metadata on every capture",description:"Browser, OS, and session context attached for attributable evidence."},{title:"Control packages for reviewers",description:"Export step instructions and visuals formatted for audit submission."}]},productTours:{headline:"Control domain journeys for structured review",description:"Guide auditors through access provisioning, change management, and log review as a navigable narrative â not a folder assembled under deadline.",benefits:[{title:"Reviewers self-pace with readonly access",description:"Auditors explore control domains without edit rights to source assets."},{title:"Domains mapped to control frameworks",description:"Journey structure aligns to how reviewers evaluate the environment."}]},whyPeacock:{headline:"Evidence collection designed for regulated environments",differentiators:[{title:"Capture without credential exposure",description:"Password fields are automatically excluded. Sensitive inputs are never captured. Documentation speed does not compromise data protection."}
281,{title:"Metadata-rich, attributable records",description:"Environment context on every capture supports audit trails that informal screenshots cannot provide."},{title:"Living control library",description:"An authoritative index of approved workflows â maintained as procedures evolve, not assembled under deadline."}]},useCases:[{title:"SOC 2 access provisioning evidence",description:"Approved admin workflow with metadata-rich export for auditor review."},{title:"Annual control evidence index",description:"Library of flow docs linked from the compliance portal."},{title:"Enterprise customer security review",description:"Readonly control journey shared during vendor assessment."}],businessOutcomes:[{label:"Evidence integrity",value:"Metadata-rich, attributable captures"},{label:"Data protection",value:"Sensitive fields excluded by default"},{label:"Audit readiness",value:"Continuous alignment with approved paths"}],icon:Ci,accentGradient:"from-emerald-600 to-teal-800",iconBg:"bg-emerald-500/10 text-emerald-800"}];function Hd(e){return ua.find(t=>t.slug===e)}const Yh=[{label:"Build & ship",slugs:["developers","product-owners","business-analysts"]},{label:"Validate & assure",slugs:["testers","security-compliance"]},{label:"Enable & adopt",slugs:["helpdesk","new-hires","customer-success"]},{label:"Revenue & leadership",slugs:["sales","executives"]}],zd={companyName:"Mentor Bridge",supportEmail:"[email protected]",websiteUrl:"https://peacockstudio.app",governingLaw:"India"},Kh="July 26, 2026",Wd=` · ${N}`;function Y(e){return`${e}${Wd}`}const Gd=["/dashboard","/flow-docs","/product-tours","/test-cases","/playwright-tests","/flow-maps","/editor","/edit","/docs/","/capture/","/tours/","/compare","/s/","/examples/","/sign-in","/sign-up","/onboarding/","/accept-invite","/org/","/super-admin","/platform/","/health","/api-docs","/error"];function qd(e){return Gd.some(t=>e===t||e.startsWith(t))}function Yd(){const e=Ce("/peacock-logo.png");return{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":`${G}/#organization`,name:N,url:G,logo:e,email:zd.supportEmail},{"@type":"WebSite","@id":`${G}/#website`,name:N,url:G,description:et,publisher:{"@id":`${G}/#organization`},inLanguage:"en"},{"@type":"SoftwareApplication","@id":`${G}/#software`,name:N,applicationCategory:"BusinessApplication",operatingSystem:"Web, Chrome",description:et,url:G,image:e,publisher:{"@id":`${G}/#organization`},offers:{"@type":"Offer",price:"0",priceCurrency:"USD"}}]}}function Kd(e){const n={"/":{title:Dd,description:et},"/products":{title:Y("Products"),description:"Flow Documents, Product Tours, and Capture & Editor â turn real browser usage into reusable guides, demos, and screenshots."},"/solutions":{title:Y("Solutions by role"),description:"See how Peacock Studio helps developers, QA, product, support, sales, and leadership capture workflows as Flow Documents and Product Tours."},"/pricing":{title:Y("Pricing"),description:"Peacock Studio is free during public beta. Compare Free, Team, and Enterprise plans for flow docs, product tours, and interactive documentation."},"/privacy":{title:Y("Privacy Policy"),description:`How ${N} handles data for the web app and Chrome extension.`},"/terms":{title:Y("Terms of Service"),description:`Terms of use for ${N}.`},"/install-extension":{title:Y("Install browser extension"),description:`Install the ${N} browser extension to capture browser workflows.`}}[e];return n?{...n,robots:"index,follow",canonical:Ce(e==="/"?"/":e),jsonLd:e==="/"?Yd():void 0}:null}function Jd(e){if(qd(e))return{title:N,description:et,path:e,robots:"noindex,nofollow"};const t=Kd(e);if(t)return{...t,path:e};const n=e.match(/^\/products\/([^/]+)\/?$/);if(n){const o=Vd(n[1]);if(o)return{title:Y(o.name),description:o.summary,path:e,robots:"index,follow",canonical:Ce(e),ogImageAlt:`${o.name} â ${N}`}}const r=e.match(/^\/solutions\/([^/]+)\/?$/);if(r){const o=Hd(r[1]);if(o)return{title:Y(o.title),description:o.summary,path:e,robots:"index,follow",canonical:Ce(e),ogImageAlt:`${o.title} â ${N}`}}return{title:Y("Page not found"),description:"That URL does not match a Peacock Studio page.",path:e,robots:"noindex,nofollow"}}function Qd(e){return e.ogImage??Bd()}function Xd(e){const t=Qd(e),n=e.ogImageAlt??e.title,r=[{attr:"name",key:"description",content:e.description},{attr:"name",key:"robots",content:e.robots},{attr:"property",key:"og:title",content:e.title},{attr:"property",key:"og:description",content:e.description},{attr:"property",key:"og:type",content:e.ogType??"website"},{attr:"property",key:"og:site_name",content:Od},{attr:"property",key:"og:image",content:t},{attr:"property",key:"og:image:width",content:String(Fd)},{attr:"property",key:"og:image:height",content:String($d)},{attr:"property",key:"og:image:alt",content:n},{attr:"property",key:"og:locale",content:Ud},{attr:"name",key:"twitter:card",content:"summary_large_image"},{attr:"name",key:"twitter:title",content:e.title},{attr:"name",key:"twitter:description",content:e.description},{attr:"name",key:"twitter:image",content:t},{attr:"name",key:"twitter:image:alt",content:n}];return e.canonical&&r.push({attr:"property",key:"og:url",content:e.canonical}),r}const Kn="peacock-landing-jsonld",Zd=()=>{const{pathname:e}=P();return l.useEffect(()=>{const t=Jd(e);return Yn(t.title),Ld(Xd(t)),t.canonical&&Id("canonical",t.canonical),t.jsonLd?Nd(Kn,t.jsonLd):Ad(Kn),()=>{Yn(N)}},[e]),null},eu=[{label:"Dashboard",path:R,icon:li,end:!0},{label:"Product Tours",path:Xt,icon:mi},{label:"Flow Docs",path:Qt,icon:ot},{label:"Test Cases",path:ke,icon:Os},{label:"Playwright tests",path:Ee,icon:Ri},{label:"Flow maps",path:_e,icon:st}],Ve="https://chromewebstore.google.com/detail/peacock-studio/abjglkkkjaoabboginagilnejoacnnnm",vt="abjglkkkjaoabboginagilnejoacnnnm",tu="https://microsoftedge.microsoft.com/addons/detail/peacock-studio/jehdcpioaiikjafefnbjnnigalpjikob",nu="jehdcpioaiikjafefnbjnnigalpjikob",ru="Peacock Studio extension",Jn={chrome:{storeUrl:Ve,extensionId:vt,label:"Chrome Web Store"},edge:{storeUrl:tu,extensionId:nu,label:"Edge Add-ons"},firefox:{storeUrl:null,extensionId:null,label:"Firefox Add-ons"},brave:{storeUrl:Ve,extensionId:vt,label:"Chrome Web Store"},opera:{storeUrl:Ve,extensionId:vt,label:"Chrome Web Store"}},Jh=["chrome","edge","firefox"],au={storeUrl:Ve,extensionId:null,label:"Chrome Web Store"};function ou(e){const t=Jn[e];if(t!=null&&t.storeUrl)return t;const n=Jn.chrome;return n!=null&&n.storeUrl?n:au}function su(e=typeof navigator<"u"?navigator.userAgent:""){const{family:t}=kc(e);return ou(t)}const iu=({className:e,children:t,showIcon:n=!1,onClick:r})=>{const s=su().storeUrl;return s?a.jsxs("a",{href:s,target:"_blank",rel:"noopener noreferrer",className:e,onClick:r,children:[n?a.jsx(Te,{className:"h-4 w-4 shrink-0","aria-hidden":!0}):null,t??ru,a.jsx(Cr,{className:"h-3.5 w-3.5 shrink-0 opacity-70","aria-hidden":!0})]}):null},bn=e=>a.jsx(iu,{...e}),kt=[{id:"problem",label:"Problem"},{id:"solution",label:"Solution"},{id:"preview",label:"Preview"},{id:"features",label:"Features"},{id:"workflow",label:"Workflow"},{id:"platform-comparison",label:"Compare"},{id:"faq",label:"FAQ"}],pa=da.map(e=>({slug:e.slug,label:e.shortName,href:`/products/${e.slug}`,description:e.tagline})),ha=ua.map(e=>({slug:e.slug,label:e.shortTitle,href:`/solutions/${e.slug}`,description:e.tagline})),ma="Platform where developers and business document workflows together",lu=[{label:"Home",href:T},{label:"Products",href:"/products"},{label:"Solutions",href:"/solutions"},{label:"Pricing",href:H}],cu=pa.map(({label:e,href:t})=>({label:e,href:t}
281)),du=ha.slice(0,5).map(({label:e,href:t})=>({label:e,href:t}));function fa(e){return`${e} ${N}`}const uu="text-xs font-medium text-slate-500 underline-offset-2 transition hover:text-peacock-700 hover:underline",Qn="select-none text-slate-300",ga=({className:e="flex flex-wrap items-center gap-x-4 gap-y-1",linkClassName:t=uu,withSeparators:n=!1})=>{const r=q(o=>o.openPreferences);return n?a.jsxs("div",{className:e,children:[a.jsx(E,{to:ve,className:t,children:"Privacy"}),a.jsx("span",{className:Qn,"aria-hidden":!0,children:"·"}),a.jsx(E,{to:Ye,className:t,children:"Terms"}),a.jsx("span",{className:Qn,"aria-hidden":!0,children:"·"}),a.jsx("button",{type:"button",onClick:r,className:t,children:"Cookie preferences"})]}):a.jsxs("div",{className:e,children:[a.jsx(E,{to:ve,className:t,children:"Privacy"}),a.jsx(E,{to:Ye,className:t,children:"Terms"}),a.jsx("button",{type:"button",onClick:r,className:t,children:"Cookie preferences"})]})},Xn={cloud:"Library synced to your account",local:"Library stored on this device"},pu=({isActive:e})=>`group flex items-center gap-3 rounded-xl px-3 py-2.5 transition-all duration-200 ${e?"bg-peacock-50/90 ring-1 ring-peacock-100/80":"hover:bg-white hover:shadow-sm hover:ring-1 hover:ring-slate-200/70"}`,hu=()=>{const e=new Date().getFullYear(),t=te(),n=D()&&t==="cloud"?Xn.cloud:Xn.local;return a.jsx("footer",{className:"mt-auto border-t border-slate-200/70 bg-white/75 py-10 backdrop-blur-md supp
281orts-[backdrop-filter]:bg-white/65",children:a.jsxs("div",{className:"mx-auto max-w-8xl px-4 sm:px-6",children:[a.jsxs("div",{className:"flex flex-col gap-10 lg:flex-row lg:items-start lg:gap-14",children:[a.jsxs("div",{className:"max-w-sm shrink-0 lg:border-r lg:border-slate-200/70 lg:pr-12",children:[a.jsxs(E,{to:R,className:"group inline-flex items-center gap-3.5 rounded-2xl outline-none ring-peacock-500 focus-visible:ring-2",children:[a.jsx("span",{className:"inline-flex rounded-2xl bg-gradient-to-br from-peacock-500 to-peacock-700 p-3 shadow-lg shadow-peacock-500/15 ring-1 ring-peacock-600/10 transition group-hover:shadow-peacock-500/25",children:a.jsx("img",{src:mt,alt:"",className:"h-12 w-12 object-contain"})}),a.jsxs("span",{className:"min-w-0 text-left",children:[a.jsx("span",{className:"block text-base font-semibold tracking-tight text-slate-900",children:N}),a.jsxs("span",{className:"mt-1 inline-flex items-center gap-1.5 text-[11px] font-medium text-peacock-700",children:[a.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-peacock-500","aria-hidden":!0}),n]})]})]}),a.jsx("p",{className:"mt-5 text-sm leading-relaxed text-slate-500",children:ma}),a.jsx(bn,{showIcon:!0,className:"mt-4 inline-flex items-center gap-2 text-sm font-medium text-peacock-700 transition hover:text-peacock-900"})]}),a.jsxs("div",{className:"min-w-0 flex-1 lg:pt-1",children:[a.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-slate-400",children:"Workspace"}),a.jsx("nav",{"aria-label":"Library shortcuts",className:"mt-4 grid grid-cols-1 gap-2 sm:grid-cols-2 xl:grid-cols-3",children:eu.map(r=>{const o=r.icon;return a.jsxs(kr,{to:r.path,end:r.end,className:pu,children:[a.jsx("span",{className:"inline-flex rounded-lg bg-peacock-50 p-2 ring-1 ring-peacock-100/80 transition group-hover:bg-peacock-100/70",children:a.jsx(o,{className:"h-4 w-4 shrink-0 text-peacock-600","aria-hidden":!0})}),a.jsx("span",{className:"text-sm font-medium text-slate-700 transition group-hover:text-peacock-800",children:r.label})]},r.path)})})]})]}),a.jsxs("div",{className:"mt-10 flex flex-col gap-4 border-t border-slate-200/70 pt-6 sm:flex-row sm:items-center sm:justify-between",children:[a.jsx(ga,{withSeparators:!0,className:"flex flex-wrap items-center gap-x-1 gap-y-2",linkClassName:"px-1.5 py-1 text-xs font-medium text-slate-500 transition hover:text-peacock-700"}),a.jsxs("p",{className:"inline-flex shrink-0 items-center gap-1.5 px-2 text-xs text-slate-500 sm:justify-end",children:[a.jsx(Sr,{className:"h-3.5 w-3.5 shrink-0 text-slate-400","aria-hidden":!0}),a.jsx("span",{className:"font-medium text-slate-600",children:fa(e)})]})]})]})})};l.memo(()=>a.jsx("div",{children:a.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-slate-400",children:"Workspace"})}));const Zn={from:R},mu=()=>{const e=new Date().getFullYear(),t=D();return a.jsx("footer",{className:"mt-auto border-t border-slate-200/80 bg-gradient-to-b from-white to-slate-50/90 py-10 backdrop-blur-sm",children:a.jsxs("div",{className:"mx-auto max-w-7xl px-4 sm:px-6",children:[a.jsxs("div",{className:"grid gap-8 sm:grid-cols-2 lg:grid-cols-4",children:[a.jsxs("div",{className:"sm:col-span-2 lg:col-span-1",children:[a.jsxs(E,{to:"/",className:"inline-flex items-center gap-2.5 rounded-lg outline-none ring-peacock-500 focus-visible:ring-2",children:[a.jsx("img",{src:mt,alt:"",className:"h-9 w-9 object-contain"}),a.jsx("span",{className:"text-sm font-semibold text-slate-900",children:N})]}),a.jsx("p",{className:"mt-3 max-w-xs text-sm leading-relaxed text-slate-600",children:ma}),a.jsx(bn,{showIcon:!0,className:"mt-4 inline-flex items-center gap-2 text-sm font-medium text-peacock-700 transition hover:text-peacock-900"})]}),a.jsxs("div",{children:[a.jsx("p",{className:"text-xs font-semibold uppercase tracking-wide text-slate-900",children:"Explore"}),a.jsx("ul",{className:"mt-3 space-y-2",children:lu.map(n=>a.jsx("li",{children:a.jsx(E,{to:n.href,className:"text-sm text-slate-600 transition hover:text-peacock-700",children:n.label})},n.href))})]}),a.jsxs("div",{children:[a.jsx("p",{className:"text-xs font-semibold uppercase tracking-wide text-slate-900",children:"Products"}),a.jsx("ul",{className:"mt-3 space-y-2",children:cu.map(n=>a.jsx("li",{children:a.jsx(E,{to:n.href,className:"text-sm text-slate-600 transition hover:text-peacock-700",children:n.label})},n.href))})]}),a.jsxs("div",{children:[a.jsx("p",{className:"text-xs font-semibold uppercase tracking-wide text-slate-900",children:"Solutions"}),a.jsx("ul",{className:"mt-3 space-y-2",children:du.map(n=>a.jsx("li",{children:a.jsx(E,{to:n.href,className:"text-sm text-slate-600 transition hover:text-peacock-700",children:n.label})},n.href))})]})]}),a.jsxs("div",{className:"mt-10 flex flex-col gap-4 border-t border-slate-200/80 pt-6 sm:flex-row sm:items-center sm:justify-between",children:[a.jsxs("p",{className:"inline-flex flex-wrap items-center gap-1.5 text-xs text-slate-500",children:[a.jsx(Sr,{className:"h-3.5 w-3.5 shrink-0 text-slate-400","aria-hidden":!0}),a.jsx("span",{className:"font-medium text-slate-600",children:fa(e)})]}),a.jsxs("div",{className:"flex flex-col gap-3 sm:items-end",children:[t?a.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[a.jsx(E,{to:"/sign-in",state:Zn,className:"rounded-lg border border-slate-300 bg-white px-3 py-1.5 text-sm font-medium text-slate-700 hover:bg-slate-50",children:"Sign in"}
281),a.jsx(E,{to:"/sign-up",state:Zn,className:"rounded-lg bg-peacock-600 px-3 py-1.5 text-sm font-semibold text-white hover:bg-peacock-700",children:"Create account"})]}):null,a.jsx(ga,{className:"flex flex-wrap items-center gap-x-4 gap-y-1 sm:justify-end"})]})]})]})})},fu=()=>Dc()?a.jsx(hu,{}):a.jsx(mu,{}),gu=()=>a.jsx("a",{href:"#main-content",className:"absolute left-4 top-4 z-[100] -translate-y-16 rounded-lg bg-white px-4 py-2.5 text-sm font-semibold text-peacock-800 shadow-lg ring-1 ring-slate-200 transition focus:translate-y-0 focus:outline-none focus:ring-2 focus:ring-peacock-500",children:"Skip to content"});function ya(){const e=l.useSyncExternalStore(Nt,Un,Un),t=l.useSyncExternalStore(Nt,Bn,Bn);return D()?e&&!t:!1}function yu(e,t=140){const[n,r]=l.useState(e[0]??"");return l.useEffect(()=>{const o=()=>{const s=window.scrollY+t;let i=e[0]??"";for(const c of e){const d=document.getElementById(c);d&&d.offsetTop<=s&&(i=c)}r(i)};return o(),window.addEventListener("scroll",o,{passive:!0}),window.addEventListener("resize",o),()=>{window.removeEventListener("scroll",o),window.removeEventListener("resize",o)}},[e,t]),n}function de(e=R){const t=ba(e)?e:R,n=new URLSearchParams({next:t});return`${Zt}?${n.toString()}`}function ba(e){return e.startsWith("/")&&!e.startsWith("//")&&!e.includes("://")}function Qh(e,t=R){const n=new URLSearchParams(e).get("next");return!n||!ba(n)?t:n}const bu=[{label:"Home",href:T},{label:"Products",href:"/products"},{label:"Solutions",href:"/solutions"},{label:"Pricing",href:H}],wu=({visible:e=!1})=>{const t=kt.map(i=>i.id),n=yu(t,120),[r,o]=l.useState(!1),s=ya();return l.useEffect(()=>{e||o(!1)},[e]),l.useEffect(()=>{if(!r)return;const i=c=>{c.key==="Escape"&&o(!1)};return window.addEventListener("keydown",i),()=>window.removeEventListener("keydown",i)},[r]),a.jsxs("header",{className:`fixed inset-x-0 top-0 z-50 border-b border-slate-200/80 bg-white/95 backdrop-blur-xl transition duration-300 ${e?"translate-y-0 opacity-100":"-translate-y-full opacity-0 pointer-events-none"}`,children:[a.jsxs("nav",{className:"mx-auto flex max-w-7xl items-center justify-between px-4 py-3 sm:px-6 sm:py-4","aria-label":"Page sections",children:[a.jsxs(E,{to:T,className:"inline-flex shrink-0 items-center gap-2.5 rounded-lg outline-none ring-peacock-500 focus-visible:ring-2",onClick:()=>o(!1),children:[a.jsx("img",{src:mt,alt:"",width:28,height:28,className:"h-7 w-7 object-contain"}),a.jsx("span",{className:"text-sm font-semibold text-slate-900",children:N})]}),a.jsx("div",{className:"hidden min-w-0 flex-1 items-center justify-center gap-1.5 px-4 md:flex lg:gap-2",children:kt.map(i=>{const c=n===i.id;return a.jsx("a",{href:`#${i.id}`,className:`shrink-0 rounded-lg px-3 py-2 text-sm font-medium transition ${c?"bg-peacock-100 text-peacock-800 ring-1 ring-peacock-200":"text-slate-600 hover:bg-slate-100 hover:text-slate-900"}`,children:i.label},i.id)})}),a.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[a.jsxs(E,{to:de(R),className:"hidden items-center gap-1.5 rounded-lg bg-peacock-500 px-4 py-2 text-xs font-semibold text-white shadow-sm transition hover:bg-peacock-600 md:inline-flex",children:["Open App",a.jsx(We,{className:"h-3.5 w-3.5","aria-hidden":!0})]}),a.jsx("button",{type:"button",onClick:()=>o(i=>!i),"aria-label":r?"Close menu":"Open menu","aria-expanded":r,className:"inline-flex rounded-lg p-2 text-slate-700 transition hover:bg-slate-100 md:hidden",children:r?a.jsx(Jt,{className:"h-5 w-5","aria-hidden":!0}):a.jsx(Pr,{className:"h-5 w-5","aria-hidden":!0})})]})]}),a.jsx(tt,{children:r?a.jsx(L.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"overflow-hidden border-t border-slate-200 bg-white md:hidden",children:a.jsxs("div",{className:"max-h-[min(75vh,32rem)] space-y-1 overflow-y-auto px-4 py-4 sm:px-6",children:[bu.map(i=>a.jsx(E,{to:i.href,onClick:()=>o(!1),className:"block rounded-lg px-3 py-2.5 text-sm font-medium text-slate-700 transition hover:bg-slate-50 hover:text-slate-900",children:i.label},i.href)),a.jsxs("div",{className:"my-2 border-t border-slate-100 pt-2",children:[a.jsx("p",{className:"px-3 pb-1 text-[10px] font-semibold uppercase tracking-[0.14em] text-slate-400",children:"On this page"}),kt.map(i=>{const c=n===i.id;return a.jsx("a",{href:`#${i.id}`,onClick:()=>o(!1),className:`block rounded-lg px-3 py-2.5 text-sm font-medium transition ${c?"bg-peacock-50 text-peacock-800":"text-slate-700 hover:bg-slate-50 hover:text-slate-900"}`,children:i.label},i.id)})]}),s?a.jsxs(a.Fragment,{children:[a.jsx(E,{to:"/sign-in",onClick:()=>o(!1),className:"block rounded-lg px-3 py-2.5 text-sm font-medium text-slate-700 hover:bg-slate-50",children:"Sign in"}),a.jsx(E,{to:"/sign-up",onClick:()=>o(!1),className:"block rounded-lg px-3 py-2.5 text-sm font-medium text-slate-700 hover:bg-slate-50",children:"Sign up"})]}):null,a.jsxs(E,{to:de(R),onClick:()=>o(!1),className:"mt-2 flex items-center justify-center gap-1.5 rounded-lg bg-peacock-500 px-4 py-2.5 text-sm font-semibold text-white transition hover:bg-peacock-600",children:["Open App",a.jsx(We,{className:"h-4 w-4","aria-hidden":!0})]})]})}):null})]})},er=({label:e,href:t,items:n,isActive:r=!1})=>a.jsxs("div",{className:"group relative",children:[a.jsxs(E,{to:t,className:`inline-flex items-center gap-1 rounded-lg px-2 py-1.5 text-sm transition hover:text-white ${r?"text-white":"text-slate-300"}`,children:[e,a.jsx(Is,{className:"h-3.5 w-3.5 text-slate-400 transition group-hover:rotate-180 group-focus-within:rotate-180","aria-hidden":!0})]}),a.jsx("div",{className:"invisible absolute left-1/2 top-full z-50 -translate-x-1/2 pt-2 opacity-0 transition group-hover:visible group-hover:opacity-100 group-focus-within:visible group-focus-within:opacity-100",children:a.jsx("div",{className:"w-[42rem] max-w-[calc(100vw-2rem)] rounded-xl border border-white/10 bg-peacock-900 p-2 shadow-xl shadow-black/30",children:a.jsx("div",{className:"grid grid-cols-3 gap-1",children:n.map(o=>a.jsxs(E,{to:o.href,className:"rounded-lg px-3 py-2.5 transition hover:bg-white/10",children:[a.jsx("span",{className:"block text-sm font-medium leading-snug text-white",children:o.label}),o.description?a.jsx("span",{className:"mt-1 block text-xs leading-relaxed text-slate-400 line-clamp-2",children:o.description}):null]},o.href))})})})]}),xu=[{label:"Home",href:T},{label:"Products",href:"/products"},{label:"Solutions",href:"/solutions"},{label:"Pricing",href:H}],tr=e=>`relative rounded-lg px-2 py-1.5 text-sm transition hover:text-white ${e?"text-white":"text-slate-300"}`,vu=({visible:e=!0})=>{const{pathname:t}=P(),[n,r]=l.useState(!1),o=ya(),s=d=>d===T?t===T:t.startsWith(d),i=pa.map(({label:d,href:u,description:h})=>({label:d,href:u,description:h}
281)),c=ha.map(({label:d,href:u,description:h})=>({label:d,href:u,description:h}));return a.jsxs("header",{className:`fixed inset-x-0 top-0 z-50 border-b border-white/10 bg-peacock-900/95 backdrop-blur-xl transition duration-300 ${e?"translate-y-0 opacity-100":"-translate-y-full opacity-0 pointer-events-none"}`,children:[a.jsxs("nav",{className:"mx-auto flex max-w-7xl items-center justify-between px-6 py-4","aria-label":"Main navigation",children:[a.jsxs(E,{to:T,className:"inline-flex items-center gap-2.5 rounded-lg outline-none ring-peacock-500 focus-visible:ring-2",children:[a.jsx("img",{src:mt,alt:"",width:28,height:28,className:"h-7 w-7 object-contain"}),a.jsx("span",{className:"text-sm font-semibold text-white",children:N})]}),a.jsxs("div",{className:"hidden items-center gap-6 md:flex",children:[a.jsxs(E,{to:T,className:tr(s(T)),children:["Home",s(T)?a.jsx(nr,{}):null]}),a.jsx(er,{label:"Products",href:"/products",items:i,isActive:s("/products")}),a.jsx(er,{label:"Solutions",href:"/solutions",items:c,isActive:s("/solutions")}),a.jsxs(E,{to:H,className:tr(s(H)),children:["Pricing",s(H)?a.jsx(nr,{}):null]})]}),a.jsxs("div",{className:"flex items-center gap-2",children:[o?a.jsxs(a.Fragment,{children:[a.jsx(E,{to:"/sign-in",className:"hidden rounded-lg px-3 py-2 text-xs font-semibold text-slate-200 transition hover:bg-white/10 hover:text-white md:inline-flex",children:"Sign in"}),a.jsx(E,{to:"/sign-up",className:"hidden rounded-lg border border-white/25 px-3 py-2 text-xs font-semibold text-white transition hover:bg-white/10 md:inline-flex",children:"Sign up"})]}):null,a.jsxs(E,{to:de(R),className:"hidden items-center gap-1.5 rounded-lg bg-white px-4 py-2 text-xs font-semibold text-peacock-800 shadow-sm transition hover:bg-slate-100 md:inline-flex",children:["Open App",a.jsx(We,{className:"h-3.5 w-3.5","aria-hidden":!0})]}),a.jsx("button",{type:"button",onClick:()=>r(d=>!d),"aria-label":n?"Close menu":"Open menu","aria-expanded":n,className:"inline-flex rounded-lg p-2 text-slate-200 transition hover:bg-white/10 md:hidden",children:n?a.jsx(Jt,{className:"h-5 w-5","aria-hidden":!0}):a.jsx(Pr,{className:"h-5 w-5","aria-hidden":!0})})]})]}),a.jsx(tt,{children:n?a.jsx(L.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"overflow-hidden border-t border-white/10 md:hidden",children:a.jsxs("div",{className:"space-y-1 px-6 py-4",children:[xu.map(d=>a.jsx(E,{to:d.href,onClick:()=>r(!1),className:`block rounded-lg px-3 py-2 text-sm font-medium transition ${s(d.href)?"bg-white/10 text-white":"text-slate-300 hover:bg-white/5 hover:text-white"}`,children:d.label},d.href)),o?a.jsxs(a.Fragment,{children:[a.jsx(E,{to:"/sign-in",onClick:()=>r(!1),className:"block rounded-lg px-3 py-2 text-sm font-medium text-slate-300 hover:bg-white/5 hover:text-white",children:"Sign in"}),a.jsx(E,{to:"/sign-up",onClick:()=>r(!1),className:"block rounded-lg px-3 py-2 text-sm font-medium text-slate-300 hover:bg-white/5 hover:text-white",children:"Sign up"})]}):null,a.jsxs(E,{to:de(R),onClick:()=>r(!1),className:"mt-2 flex items-center justify-center gap-1.5 rounded-lg bg-white px-4 py-2.5 text-sm font-semibold text-peacock-800",children:["Open App",a.jsx(We,{className:"h-4 w-4","aria-hidden":!0})]})]})}):null})]})},nr=()=>a.jsx(L.span,{layoutId:"site-nav-underline",className:"absolute inset-x-2 -bottom-0.5 h-0.5 rounded-full bg-brand-cyan"}),ku=()=>window.innerHeight,Eu=()=>window.innerHeight*.88,_u=()=>{const[e,t]=l.useState(!1);return l.useEffect(()=>{const n=()=>{const r=window.scrollY;t(o=>!o&&r>=ku()?!0:o&&r<=Eu()?!1:o)};return n(),window.addEventListener("scroll",n,{passive:!0}),window.addEventListener("resize",n),()=>{window.removeEventListener("scroll",n),window.removeEventListener("resize",n)}},[]),{showMainNav:!e,showSubNav:e}},Su={light:"landing-section-light",muted:"landing-section-muted",dark:"landing-section-dark"},Cu={light:"text-peacock-700",muted:"text-peacock-700",dark:"text-brand-cyan"},Pu={light:"text-slate-600",muted:"text-slate-600",dark:"text-slate-300"},ju=({id:e,eyebrow:t,title:n,description:r,children:o,tone:s="light"})=>a.jsx("section",{id:e,className:Su[s],children:a.jsxs("div",{className:"landing-section-inner",children:[a.jsxs(L.header,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0,amount:.35},transition:{duration:.4},className:"landing-section-header",children:[a.jsx("p",{className:`text-xs font-semibold uppercase tracking-[0.16em] ${Cu[s]}`,children:t}),n&&a.jsx("h2",{className:"mt-3 text-3xl font-bold tracking-tight sm:text-4xl",children:n}),r?a.jsx("p",{className:`mt-4 text-base leading-relaxed ${Pu[s]}`,children:r}):null]}),a.jsx("div",{className:"landing-section-body",children:o})]})}),wn="kachabazar",Ru="KachaBazar - eCommerce",Tu="Try a real interactive guide â the same player your team and customers will use.";function Iu(){return`/examples/${wn}`}function Nu(){return`/examples/${wn}`}const Au="peacockExampleEmbed";function wa(){if(typeof document>"u"||document.head.querySelector("link[data-peacock-example-embed]"))return;const e=document.createElement("link");e.rel="prefetch",e.as="fetch",e.href=`/examples/${wn}/document.json`,e.crossOrigin="anonymous",e.dataset[Au]="true",document.head.appendChild(e)}wa();const Lu=()=>{const e=Iu(),t=Nu();return a.jsx(ju,{id:"example-flow",tone:"dark",eyebrow:"Live example",title:"",description:Tu,children:a.jsxs("div",{className:"space-y-4",children:[a.jsx("div",{className:"overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-lg shadow-slate-200/60",children:a.jsx("iframe",{title:Ru,src:e,width:Lt,height:na,loading:"eager",allowFullScreen:!0,className:"aspect-video h-auto w-full max-w-full border-0"})}),a.jsx("div",{className:"flex flex-wrap items-center justify-center gap-3",children:a.jsxs(E,{to:t,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 rounded-xl bg-peacock-700 px-4 py-2.5 text-sm font-semibold text-white transition hover:bg-peacock-800",children:["Open full screen",a.jsx(Cr,{className:"h-4 w-4","aria-hidden":!0})]})})]})})},Xh=[{id:"capture",label:"Capture",description:"Record workflows and grab screenshots directly from the browser.",icon:Te},{id:"structure",label:"Structure & edit",description:"Shape complex guides with branches, chapters, and persona-led tour
281composition.",icon:st},{id:"playback",label:"Playback & views",description:"Scrollable documentation, guided playback, and side-by-side doc comparison.",icon:jr},{id:"distribute",label:"Share & export",description:"Distribute readonly links, player playback, and printable PDFs.",icon:Nr}],rr={headline:"The system of record for how work actually happens.",description:"Peacock transforms real workflows into reusable execution guides and narrative experiences, helping teams align faster, enable others consistently, and preserve operational knowledge as products evolve."},Zh=[{title:"Flow Documents",subtitle:"Execution references",copy:"Step-by-step guides with screenshots, branches, and share links â how teams run QA, support, and internal processes."},{title:"Product Tours",subtitle:"Adoption narratives",copy:"Multiple demos composed into guided journeys for onboarding, sales, releases, and executive storytelling."}],em=[{name:"Chrome extension capture",explanation:"Record clicks, inputs, navigation, and screenshots directly from any website.",benefit:"Turn real product usage into structured steps without manual screenshot work.",impact:"Cut documentation prep time from hours to minutes.",icon:Te,category:"capture"},{name:"Flow editor with branches",explanation:"Reorder steps and link branching paths to other saved documents.",benefit:"Handle complex workflows and decision points in one guided experience.",impact:"Replace fragmented docs, recordings, and slide decks with one narrative.",icon:st,category:"structure"},{name:"Sectioning in flow doc",explanation:"Add chapter dividers with title and description to split long guides into navigable sections in the outline.",benefit:"Organize phased onboarding, release chapters, and multi-part SOPs without separate documents.",impact:"Keep long flows readable in document view, player chapter cards, and PDF exports.",icon:di,category:"structure"},{name:"Persona-led product tours",explanation:"Organize multiple demos into feature chapters anchored to a buyer persona.",benefit:"Each audience sees a focused story instead of a generic product dump.",impact:"Improve demo relevance across sales, onboarding, and enablement.",icon:Li,category:"structure"},{name:"Interactive player",explanation:"Step-through playback with autoplay, keyboard navigation, and branch selection.",benefit:"Let prospects and users explore at their own pace with clear context.",impact:"Increase comprehension without another live call.",icon:jr,category:"playback"},{name:"Document view or Player View",explanation:"Same saved flow opens as scrollable documentation or guided step-through playback.",benefit:"One asset for reference reading and live or self-serve walkthroughs.",impact:"Support async review and guided demos without duplicating content.",icon:_s,category:"playback"},{name:"Share link",explanation:"Copy readonly or editable URLs for flow documents and product tours â with optional branch path filters on readonly shares.",benefit:"Distribute the same guide to teammates, customers, or auditors without re-recording.",impact:"Scale walkthroughs across email, chat, and internal wikis from one source.",icon:pi,category:"distribute"},{name:"Embed player",explanation:"Share guided player links for step-through playback, or embed Flow Documents and Product Tours with an iframe.",benefit:"Let viewers explore flows interactively instead of scrolling static screenshots alone.",impact:"Improve c
281omprehension with the same player experience you use on live calls.",icon:vs,category:"distribute"},{name:"Export to PDF",explanation:"Export flow documents and product tours as multi-page PDFs with cover, steps, branches, and session metadata.",benefit:"Attach printable leave-behinds to emails, QBR packs, audit submissions, and release notes.",impact:"Reach audiences who need offline or archivable documentation formats.",icon:ot,category:"distribute"},{name:"Capture screenshot",explanation:"Grab screenshots from the extension popup â visible region, selected region, or the entire scrollable page.",benefit:"Capture exactly what you need without leaving the browser or stitching images manually.",impact:"Start support, marketing, and doc assets from real product screens in seconds.",icon:Kt,category:"capture"},{name:"Edit captured screenshot",explanation:"Open captures in the editor to add gradient backgrounds, crop, blur, redact, and title or description context.",benefit:"Polish privacy-safe, on-brand images ready for guides, help articles, and leave-behinds.",impact:"Publish professional screenshots without a separate design workflow.",icon:Rr,category:"capture"},{name:"Compare flow docs",explanation:"Review two saved documents side by side, stepping through aligned indices in sync.",benefit:"Validate UI changes and release diffs with a structured before-and-after view.",impact:"Catch workflow drift after updates without manual screenshot comparison.",icon:Hs,category:"playback"}],tm=[{step:"01",title:"Install & record",description:"Pin the Peacock Chrome extension and record a real workflow on any site.",deliverables:["Clicks, inputs, and navigation captured in sync","Screenshots attached to every step automatically","Structured events ready for the flow editor"],outcome:"Turn live product usage into editable steps in minutes",icon:Te},{step:"02",title:"Edit & structure",description:"Refine steps, add sections and branches, attach screenshots, and auto-save locally.",deliverables:["Reorder steps, add chapters, and link branch paths","Replace or polish screenshots in the editor","Auto-save to IndexedDB as you refine"],outcome:"One guide covers complex paths without duplicate recordings",icon:Di},{step:"03",title:"Tour & share",description:"Bundle demos into persona-led tours, then share links, export PDFs, or present live.",deliverables:["Publish Flow Documents for execution and reference","Compose Product Tours for adoption narratives","Share links & embeds, export PDFs, or present live"],outcome:"Sales, success, and support share the same narrative instantly",icon:it}],nm=[{value:"3",label:"Guided stages"},{value:"2",label:"Output formats"},{value:"1",label:"Tour Library"}],rm=[{title:"Flow Documents",subtitle:"Execution references",copy:"Step-by-step guides with branches, sections, and share links for QA, support, and internal runbooks."},{title:"Product Tours",subtitle:"Adoption narratives",copy:"Persona-led journeys that combine multiple demos for onboarding, sales, and release storytelling."}],am={badge:"Outcome",title:"A reusable asset your entire GTM org can trust",copy:"One capture pipeline produces execution-grade documentation and adoption-focused tours â ready for async review, live calls, and PDF leave-behinds."},om=[{label:"Setup time",manual:"Hours per guide",peacock:"Minutes from recording"},{label:"Consistency",manual:"Varies by presenter",peacock:"Same narrative every time"},{label:"Branching",manual:"Separate videos or docs",peacock:"Built-in path selection"},{label:"Persona targeting",manual:"Custom decks per role",peacock:"Structured product tours"},{label:"Data control",manual:"Scattered files & drives",peacock:"Guest local + cloud workspaces"},{label:"Screenshot sync",manual:"Manual paste & crop",peacock:"Captured with each action"},{label:"Release review",manual:"Side-by-side guesswork",peacock:"Compare Docs by step index"}],sm=[{question:"What is Peacock Studio?",answer:"Peacock Studio is a browser flow capture and documentation platform. It converts real product usage into editable walkthroughs, shareable demos, and persona-led product tours."},{question:"Do I need a backend or account to start?",answer:"No account is required to try Peacock â a limited guest library stays in your browser. Sign in to unlock cloud sync, team workspaces, and secure share links."},{question:"Can I share guides with my team or customers?",answer:"Yes. Signed-in workspaces can create tokenized share links and embeds, export PDFs, and manage access. Team workspaces support inv
281ites and role capabilities."},{question:"How do product tours differ from single documents?",answer:"Product tours combine multiple saved demos into feature chapters, anchored to a persona, with a guided playback flow including presenter mode."},{question:"Does Peacock use AI to write my guides?",answer:"Not today. Step titles and descriptions are generated with deterministic rules from captured element metadata. AI-assisted rewrite is on the roadmap."},{question:"Who is this built for?",answer:"Product marketing, sales engineering, customer success, support, and enablement teams who need repeatable, high-quality product storytelling."},{question:"What should I know about current limitations?",answer:"Compare Docs still aligns steps by index rather than semantic diff, and AI-assisted rewrite is on the roadmap. Cloud sync, team workspaces, embeds, and secure share links ship with accounts enabled for your deployment."}],im=[{id:"capture",label:"At capture",description:"Recording starts with structured steps, guardrails, and session context.",icon:Te},{id:"library",label:"In your library",description:"Every edit persists locally with release-aware organization.",icon:it},{id:"delivery",label:"At delivery",description:"Presenter-ready links keep the narrative focused for live and async audiences.",icon:Nr}],lm=[{title:"Auto step descriptions",copy:"Captured clicks and inputs become readable step titles without manual typing.",outcome:"Eliminate blank-doc setup after every recording",category:"capture",icon:Ar},{title:"Capture screenshot",copy:"Grab screenshots from the extension popup â visible region, selected region, or the entire scrollable page.",outcome:"Capture exactly what you need without leaving the browser or stitching images manually.",category:"capture",icon:Kt},{title:"Version labels",copy:"Tag documents by release so your library and PDFs stay searchable across iterations.",outcome:"Trace workflow changes across product releases",category:"library",icon:Ii},{title:"Presenter-ready tours",copy:"Share a clean presenter link that hides chrome and focuses on the story.",outcome:"Deliver polished demos without rebuilding decks",category:"delivery",icon:Tr},{title:"Edit captured screenshot",copy:"Open captures in the editor to add gradient backgrounds, crop, blur, redact, and title or description context.",outcome:"A ready-to-use screenshot with custom background and privacy protections.",category:"library",icon:Rr},{title:"Download or Copy to Clipboard",copy:"Download unedited/edited image directly or copy to clipboard to paste it directly to chat or word documents.",outcome:"Share the capture with teammates or in a doc without rebuilding screenshots with context.",category:"delivery",icon:Ys}],cm=[{value:"6",label:"Built-in automations"},{value:"100%",label:"On-device processing"}],dm=[{title:"Faster time-to-publish",copy:"Teams move from recording to shareable guide without rebuilding screenshots or retyping steps."},{title:"Predictable output",copy:"Rule-based titles and guardrails produce consistent documentation your org can trust and edit."},{title:"Enterprise-ready hygiene",copy:"Sensitive URL pauses, environment metadata, and version labels support audit and release discipline."}],Ou=[{id:"capture",label:"Extension capture",detail:"Click · Input · Navigate",icon:bi,x:"4%",y:"8%",delay:0},{id:"branch",label:"Branch point",detail:"Choose admin or member path",icon:st,x:"52%",y:"4%",delay:.15},{id:"tour",label:"Product tour",detail:"3 features · 5 demos",icon:it,x:"58%",y:"52%",delay:.3},{id:"live",label:"Recording",detail:"Step 4 of 12",icon:As,x:"6%",y:"58%",delay:.45}],Du=()=>a.jsxs("div",{className:"relative mx-auto aspect-[4/3] w-full max-w-xl overflow-hidden rounded-3xl border border-white/15 bg-slate-900/60 p-4 shadow-2xl shadow-black/40 backdrop-blur-md sm:p-6","aria-hidden":!0,children:[a.jsx("div",{className:"absolute inset-0 bg-[radial-gradient(circle_at_30%_20%,rgba(6,182,212,0.15),transparent_50%),radial-gradient(circle_at_70%_80%,rgba(124,58,237,0.2),transparent_45%)]"}),a.jsxs("div",{className:"relative flex h-full flex-col rounded-2xl border border-white/10 bg-slate-950/80",children:[a.jsxs("div",{className:"flex items-center gap-2 border-b border-white/10 px-4 py-3",children:[a.jsx("span",{className:"h-2.5 w-2.5 rounded-full bg-red-400/80"}),a.jsx("span",{className:"h-2.5 w-2.5 rounded-full bg-amber-400/80"}),a.jsx("span",{className:"h-2.5 w-2.5 rounded-full bg-emerald-400/80"}),a.jsx("span",{className:"ml-3 text-xs text-slate-400",children:"app.example.com/onboarding"})]}),a.jsxs("div",{className:"relative flex-1 p-4",children:[a.jsx("div",{className:"grid h-full grid-cols-3 gap-2",children:[1,2,3].map(e=>a.jsxs("div",{className:"space-y-2",children:[a.jsx("div",{className:"h-3 w-full rounded bg-white/10"}),a.jsx("div",{className:"h-16 rounded-lg bg-white/5 ring-1 ring-white/10"}),a.jsx("div",{className:"h-8 rounded bg-white/5"}),a.jsx("div",{className:"h-8 w-2/3 rounded bg-white/5"})]},e))}),a.jsx(L.div,{className:"absolute left-[38%] top-[42%] h-8 w-8 rounded-full border-2 border-brand-cyan bg-brand-cyan/20",animate:{scale:[1,1.2,1],opacity:[.7,1,.7]},transition:{duration:2,repeat:1/0}})]})]}),Ou.map(e=>{const t=e.icon;return a.jsxs(L.div,{initial:{opacity:0,y:12}
281,animate:{opacity:1,y:0},transition:{delay:.4+e.delay,duration:.5},style:{left:e.x,top:e.y},className:"absolute w-[42%] max-w-[180px] rounded-xl border border-white/20 bg-white/10 p-3 backdrop-blur-md",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("span",{className:"inline-flex rounded-lg bg-peacock-600/30 p-1.5 text-brand-cyan",children:a.jsx(t,{className:"h-3.5 w-3.5"})}),a.jsx("p",{className:"text-xs font-semibold text-white",children:e.label})]}),a.jsx("p",{className:"mt-1.5 text-[10px] leading-snug text-slate-300",children:e.detail})]},e.id)})]}),Mu=()=>a.jsxs("section",{id:"hero",className:"relative mt-12 min-h-screen overflow-hidden border-b border-slate-800 bg-slate-950 px-6 pb-2 sm:pb-2 sm:pt-16",children:[a.jsx(L.div,{"aria-hidden":!0,className:"pointer-events-none absolute -right-24 top-0 h-96 w-96 rounded-full bg-brand-violet/20 blur-3xl",animate:{opacity:[.3,.5,.3]},transition:{duration:8,repeat:1/0}}),a.jsx(L.div,{"aria-hidden":!0,className:"pointer-events-none absolute -left-24 bottom-0 h-80 w-80 rounded-full bg-brand-cyan/15 blur-3xl",animate:{opacity:[.2,.4,.2]},transition:{duration:10,repeat:1/0}}),a.jsxs("div",{className:"relative mx-auto grid max-w-7xl gap-12 lg:grid-cols-2 lg:items-center lg:gap-16",children:[a.jsxs("div",{children:[a.jsx("p",{className:"mt-10 inline-flex items-center gap-2 rounded-full border border-white/15 bg-white/5 px-3 py-1 text-xs font-semibold uppercase tracking-[0.14em] text-brand-cyan",children:"Structured workflow capture â not screen recording"}),a.jsx("h1",{className:"mt-6 text-4xl font-bold leading-[1.08] tracking-tight text-white sm:text-5xl lg:text-[3.25rem]",children:rr.headline}),a.jsx("p",{className:"mt-6 max-w-xl text-base leading-relaxed text-slate-300 sm:text-lg",children:rr.description}),a.jsx("p",{className:"mt-4 max-w-xl text-sm leading-relaxed text-slate-400",children:"Peacock captures clicks, inputs, and screenshots from any website via the free Chrome extension, then turns them into editable Flow Documents and Product Tours â start as a guest, sign in when you need cloud sync and team sharing."}),a.jsxs("div",{className:"mt-8 flex flex-wrap items-center gap-3",children:[a.jsxs(E,{to:de("/editor"),className:"inline-flex items-center gap-2 rounded-xl bg-white px-6 py-3.5 text-sm font-semibold text-peacock-800 shadow-lg shadow-peacock-900/30 transition hover:bg-slate-100",children:[a.jsx(ot,{className:"h-4 w-4","aria-hidden":!0}),"Capture a workflow"]}),a.jsxs(E,{to:de("/tours/new"),className:"inline-flex items-center gap-2 rounded-xl border border-white/20 bg-white/10 px-6 py-3.5 text-sm font-semibold text-white backdrop-blur transition hover:bg-white/15",children:[a.jsx(Ir,{className:"h-4 w-4","aria-hidden":!0}),"Build a product tour"]})]}),a.jsx(bn,{className:"mt-4 inline-flex items-center gap-2 text-sm font-medium text-brand-cyan transition hover:text-cyan-300"}),a.jsx("dl",{className:"mt-10 grid grid-cols-3 gap-4 border-t border-white/10 pt-8",children:[["Capture","Browser extension"],["Structure","Branches & sections"],["Share","Links, PDF & tours"]].map(([e,t])=>a.jsxs("div",{children:[a.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-slate-500",children:e}),a.jsx("dd",{className:"mt-1 text-sm font-semibold text-white",children:t})]},e))})]}),a.jsx(L.div,{initial:{opacity:0,scale:.98},animate:{opacity:1,scale:1},transition:{duration:.5,delay:.1},children:a.jsx(Du,{})})]})]});wa();const Fu=l.lazy(()=>y(()=>import("./ProblemSection-DN2nsT59.js"),__vite__mapDeps([12,1,13,10])).then(e=>({default:e.ProblemSection}))),$u=l.lazy(()=>y(()=>import("./SolutionSection-BQFMmXGp.js"),__vite__mapDeps([14,1,10])).then(e=>({default:e.SolutionSection}))),Uu=l.lazy(()=>y(()=>import("./FeaturesSection-a6CFoq4l.js"),__vite__mapDeps([15,1,16,17,10])).then(e=>({default:e.FeaturesSection}))),Bu=l.lazy(()=>y(()=>import("./WorkflowSection-CSMp2mdf.js"),__vite__mapDeps([18,1,17,10])).then(e=>({default:e.WorkflowSection}))),Vu=l.lazy(()=>y(()=>import("./AutomationSection-B7bK2AeB.js"),__vite__mapDeps([19,1,10])).then(e=>({default:e.AutomationSection}))),Hu=l.lazy(()=>y(()=>import("./ComparisonSection-Cm8YsWR4.js"),__vite__mapDeps([20,1,21,22,10])).then(e=>({default:e.ComparisonSection}))),zu=l.lazy(()=>y(()=>import("./PlatformComparisonSection-yp0taJcM.js"),__vite__mapDeps([23,1,10])).then(e=>({default:e.PlatformComparisonSection}))),Wu=l.lazy(()=>y(()=>import("./PreviewSection-C5RR07Pt.js"),__vite__mapDeps([24,1,25,26,27,10])).then(e=>({default:e.PreviewSection}))),Gu=l.lazy(()=>y(()=>import("./FAQSection-CRFzJjf-.js"),__vite__mapDeps([28,1,29,10])).then(e=>({default:e.FAQSection}))),qu=l.lazy(()=>y(()=>import("./CTASection-BvIT4eGW.js"),__vite__mapDeps([30,1,10])).then(e=>({default:e.CTASection}))),Yu=()=>a.jsx("div",{className:"min-h-[40vh]","aria-hidden":!0}),Le=({children:e})=>a.jsx(l.Suspense,{fallback:a.jsx(Yu,{}),children:e}),Ku=()=>{const{showMainNav:e,showSubNav:t}=_u();return a.jsx(Pa,{reducedMotion:"user",children:a.jsxs("div",{className:"landing-page",children:[a.jsx(gu,{}),a.jsx(vu,{visible:e}),a.jsx(wu,{visible:t}),a.jsxs("main",{id:"main-content",children:[a.jsx(Mu,{}),a.jsx(Le,{children:a.jsx(Fu,{})}),a.jsx(Le,{children:a.jsx($u,{})}),a.jsx(Le,{children:a.jsx(Wu,{})}),a.jsx(Lu,{}),a.jsxs(Le,{children:[a.jsx(Uu,{}),a.jsx(Bu,{}),a.jsx(Vu,{}),a.jsx(Hu,{}),a.jsx(zu,{}),a.jsx(Gu,{}),a.jsx(qu,{})]})]}),a.jsx(fu,{})]})})},Ju=()=>a.jsxs("div",{className:"flex min-h-screen items-center justify-center bg-slate-50",role:"status",children:[a.jsx("span",{className:"sr-only",children:"Loading"}),a.jsx("div",{className:"h-8 w-8 animate-pulse rounded-full bg-peacock-500/40","aria-hidden":!0})]}),Qu=l.lazy(()=>y(()=>import("./Dashboard-pafiGzW8.js"),__vite__mapDeps([31,1,32,33,34,35,36,2,3,4,37,9,6,38,39,40,41,42,43,44,45,46,47,48,16,49,50,51,52,53,54,55,13,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,10])).then(e=>({default:e.Dashboard}))),Xu=l.lazy(()=>y(()=>Promise.resolve().then(()=>Pl),void 0).then(e=>({default:e.ErrorPage}))),Zu=l.lazy(()=>y(()=>import("./FlowDocsLibraryPage-wCBu_NSA.js"),__vite__mapDeps([72,1,32,33,34,35,36,2,3,4,37,9,6,38,39,40,41,42,43,44,45,46,47,48,16,49,50,51,52,53,67,73,74,75,29,76,77,78,70,68,71,79,10])).then(e=>({default:e.FlowDocsLibraryPage}
281))),ep=l.lazy(()=>y(()=>import("./ProductToursLibraryPage-BWZCUN71.js"),__vite__mapDeps([80,1,32,33,34,35,54,55,38,39,40,9,3,4,6,41,42,13,45,46,67,68,75,29,76,77,78,70,10])).then(e=>({default:e.ProductToursLibraryPage}))),tp=l.lazy(()=>y(()=>import("./CompareDocs-Bp45mwVs.js"),__vite__mapDeps([81,1,82,37,9,3,4,6,38,39,40,41,42,33,34,35,55,83,84,85,86,10])).then(e=>({default:e.CompareDocs}))),ar=l.lazy(()=>y(()=>import("./Editor-B-ldyJSd.js"),__vite__mapDeps([87,1,32,33,34,35,17,56,69,41,9,3,4,6,38,39,40,42,88,89,90,86,78,91,48,73,92,37,83,25,93,71,62,94,95,26,53,58,21,96,44,97,45,65,66,10])).then(e=>({default:e.Editor}))),np=l.lazy(()=>y(()=>import("./ExtensionInstallPage-Dbw7AKOH.js"),__vite__mapDeps([98,1,62,40,63,64,65,66,17,10])).then(e=>({default:e.ExtensionInstallPage}))),Et=l.lazy(()=>y(()=>import("./LegacyRouteRedirect-WzoQUGoZ.js"),__vite__mapDeps([99,1,10])).then(e=>({default:e.LegacyRouteRedirect}))),rp=l.lazy(()=>y(()=>import("./NewProductTour-xxiCkQxP.js"),__vite__mapDeps([100,1,40,101,9,3,4,6,10])).then(e=>({default:e.NewProductTour}))),ap=l.lazy(()=>y(()=>import("./Player-CYaIoacs.js"),__vite__mapDeps([102,1,56,93,9,3,4,6,71,40,37,38,39,41,42,33,34,35,94,69,96,103,104,105,85,86,106,95,22,60,17,58,52,16,92,83,25,44,107,46,48,43,108,13,109,110,8,76,68,45,111,84,10])).then(e=>({default:e.Player}))),op=l.lazy(()=>y(()=>import("./ProductTourBuilder-B__0XcCt.js"),__vite__mapDeps([112,1,56,69,94,40,95,101,9,3,4,6,113,108,17,82,37,38,39,41,42,33,34,35,55,83,84,90,22,114,115,116,46,91,48,73,26,78,10])).then(e=>({default:e.ProductTourBuilder}))),sp=l.lazy(()=>y(()=>import("./ProductTourLearner-B9ufNsSE.js"),__vite__mapDeps([117,1,9,3,4,6,56,94,40,82,37,38,39,41,42,33,34,35,55,83,84,95,69,85,86,113,108,17,105,106,58,13,45,10])).then(e=>({default:e.ProductTourLearner}))),ip=l.lazy(()=>y(()=>import("./CaptureEditor-eDcjmxq0.js"),__vite__mapDeps([118,1,82,37,9,3,4,6,38,39,40,41,42,33,34,35,55,83,84,94,88,89,90,119,66,10])).then(e=>({default:e.CaptureEditor}))),lp=l.lazy(()=>y(()=>import("./CaptureEditorLegacyRedirect-DdHoDkAT.js"),__vite__mapDeps([120,1,10])).then(e=>({default:e.CaptureEditorLegacyRedirect}))),cp=l.lazy(()=>y(()=>import("./NewImageEditor-BkoaUFve.js"),__vite__mapDeps([121,1,82,37,9,3,4,6,38,39,40,41,42,33,34,35,55,83,84,88,89,90,119,97,10])).then(e=>({default:e.NewImageEditor}))),dp=l.lazy(()=>y(()=>import("./Products-3Kx35-NO.js"),__vite__mapDeps([122,1,10])).then(e=>({default:e.Products}))),up=l.lazy(()=>y(()=>import("./ProductDetail-DAKmANBA.js"),__vite__mapDeps([123,1,89,124,125,51,74,22,17,27,108,10])).then(e=>({default:e.ProductDetail}))),pp=l.lazy(()=>y(()=>import("./Solutions-C3pX_T0x.js"),__vite__mapDeps([126,1,10])).then(e=>({default:e.Solutions}))),hp=l.lazy(()=>y(()=>import("./SolutionRole-LBQxL6mF.js"),__vite__mapDeps([127,1,17,83,22,10])).then(e=>({default:e.SolutionRole}))),mp=l.lazy(()=>y(()=>import("./Pricing-Cnvi0ssk.js"),__vite__mapDeps([128,1,22,10])).then(e=>({default:e.Pricing}))),fp=l.lazy(()=>y(()=>import("./SignInPage-B3YMKG4R.js"),__vite__mapDeps([129,1,130,10])).then(e=>({default:e.SignInPage}))),gp=l.lazy(()=>y(()=>import("./SignUpPage-zLVLEg9j.js"),__vite__mapDeps([131,1,130,10])).then(e=>({default:e.SignUpPage}))),_t=l.lazy(()=>y(()=>import("./PublicSharePage-DGWRx0v_.js"),__vite__mapDeps([132,1,133,9,3,4,6,40,103,96,37,38,39,41,42,33,34,35,117,56,94,82,55,83,84,95,69,85,86,113,108,17,105,106,58,13,45,104,22,60,52,16,92,25,44,107,46,48,43,109,110,8,76,68,111,10])).then(e=>({default:e.PublicSharePage}))),yp=l.lazy(()=>y(()=>import("./StaticExamplePlayerPage-Cei27-rB.js"),__vite__mapDeps([134,1,133,40,104,9,3,4,6,105,41,38,39,42,85,86,106,33,34,95,56,22,60,17,58,52,16,92,37,35,83,25,44,107,46,48,43,108,13,109,110,8,76,68,45,111,84,10])).then(e=>({default:e.StaticExamplePlayerPage}))),bp=l.lazy(()=>y(()=>import("./PrivacyPolicy-N9ts9zwo.js"),__vite__mapDeps([135,1,136,49,10])).then(e=>({default:e.PrivacyPolicy}))),wp=l.lazy(()=>y(()=>import("./TermsAndConditions-CTfXPD0M.js"),__vite__mapDeps([137,1,136,49,10])).then(e=>({default:e.TermsAndConditions}))),xp=l.lazy(()=>y(()=>import("./TestCasesLibraryPage-BuwMu9xu.js"),__vite__mapDeps([138,1,139,40,109,110,8,76,9,3,4,6,41,42,68,75,29,77,78,70,43,10])).then(e=>({default:e.TestCasesLibraryPage}
281))),vp=l.lazy(()=>y(()=>import("./TestCasesDetailPage-CaJAcICP.js"),__vite__mapDeps([140,1,141,40,82,37,9,3,4,6,38,39,41,42,33,34,35,55,83,84,109,110,8,76,68,22,47,46,106,107,43,10,142])).then(e=>({default:e.TestCasesDetailPage}))),kp=l.lazy(()=>y(()=>import("./PlaywrightTestsLibraryPage-DbWZZ_0G.js"),__vite__mapDeps([143,1,139,40,109,110,8,76,9,3,4,6,41,42,68,75,29,77,78,70,43,10])).then(e=>({default:e.PlaywrightTestsLibraryPage}))),Ep=l.lazy(()=>y(()=>import("./PlaywrightTestsDetailPage-Wgtg-cKH.js"),__vite__mapDeps([144,1,141,40,82,37,9,3,4,6,38,39,41,42,33,34,35,55,83,84,109,110,8,76,68,22,47,46,106,107,43,10,142])).then(e=>({default:e.PlaywrightTestsDetailPage}))),_p=l.lazy(()=>y(()=>import("./FlowMapsLibraryPage-DwCtPM1J.js"),__vite__mapDeps([145,1,139,40,109,110,8,76,9,3,4,6,41,42,68,75,29,77,78,70,43,10])).then(e=>({default:e.FlowMapsLibraryPage}))),Sp=l.lazy(()=>y(()=>import("./FlowMapsDetailPage-Uqfhtxn1.js"),__vite__mapDeps([146,1,141,40,82,37,9,3,4,6,38,39,41,42,33,34,35,55,83,84,109,110,8,76,68,22,47,46,106,107,43,10,142])).then(e=>({default:e.FlowMapsDetailPage}))),Cp=l.lazy(()=>y(()=>import("./WorkspaceChooserPage-dFufwrIf.js"),__vite__mapDeps([147,1,148,5,4,6,40,33,34,90,115,116,10])).then(e=>({default:e.WorkspaceChooserPage}))),Pp=l.lazy(()=>y(()=>import("./AcceptInvitePage-BgzHCkvn.js"),__vite__mapDeps([149,1,148,5,4,6,40,10])).then(e=>({default:e.AcceptInvitePage}))),jp=l.lazy(()=>y(()=>import("./OrgAdminPage-DYXoHPTJ.js"),__vite__mapDeps([150,1,39,151,40,5,4,6,148,46,78,32,33,34,35,90,22,2,3,77,114,59,60,42,61,10])).then(e=>({default:e.OrgAdminPage}))),Rp=l.lazy(()=>y(()=>import("./SuperAdminPage-BOTMy52A.js"),__vite__mapDeps([152,1,40,153,4,33,35,111,17,7,9,3,6,64,65,66,125,151,52,116,77,61,57,10,142,154])).then(e=>({default:e.SuperAdminPage}))),Tp=l.lazy(()=>y(()=>import("./PlatformAdminPage-DhyA4SZa.js"),__vite__mapDeps([155,1,10])).then(e=>({default:e.PlatformAdminPage}))),Ip=l.lazy(()=>y(()=>import("./HealthCheckerPage-BQQYzw1Z.js"),__vite__mapDeps([156,1,10])).then(e=>({default:e.HealthCheckerPage}))),Np=l.lazy(()=>y(()=>import("./ApiDocsPage-xgixl0vY.js"),__vite__mapDeps([157,1,10])).then(e=>({default:e.ApiDocsPage}))),Ap=l.lazy(()=>y(()=>import("./NotFoundPage-XhcsnEn5.js"),__vite__mapDeps([158,1,79,10])).then(e=>({default:e.NotFoundPage}))),Lp=l.lazy(()=>y(()=>import("./LibraryLayout-KMyYF1NZ.js"),__vite__mapDeps([159,1,110,8,153,4,124,50,10])).then(e=>({default:e.LibraryLayout}))),Op=()=>{const e=P();return a.jsxs(jd,{children:[a.jsx(Zd,{}),a.jsx(Pd,{children:a.jsx(Rd,{children:a.jsx(l.Suspense,{fallback:a.jsx(Ju,{}),children:a.jsxs(Ao,{location:e,children:[a.jsx(b,{path:T,element:a.jsx(Ku,{})}),a.jsx(b,{path:"/landing",element:a.jsx(W,{to:T,replace:!0})}),a.jsx(b,{path:"/sign-in/*",element:ce()?a.jsx(fp,{}):a.jsx(W,{to:T,replace:!0})}),a.jsx(b,{path:"/sign-up/*",element:ce()?a.jsx(gp,{}):a.jsx(W,{to:T,replace:!0})}),a.jsx(b,{path:Me,element:D()?a.jsx(Cp,{}):a.jsx(W,{to:T,replace:!0})}),a.jsx(b,{path:Br,element:D()?a.jsx(Pp,{}):a.jsx(W,{to:T,replace:!0})}),a.jsx(b,{path:en,element:a.jsx(Xu,{})}),a.jsx(b,{path:"/products",element:a.jsx(dp,{})}),a.jsx(b,{path:"/products/:productSlug",element:a.jsx(up,{})}),a.jsx(b,{path:"/solutions",element:a.jsx(pp,{})}),a.jsx(b,{path:"/solutions/:roleSlug",element:a.jsx(hp,{})}),a.jsx(b,{path:H,element:a.jsx(mp,{})}),a.jsx(b,{path:Zt,element:a.jsx(np,{})}),a.jsx(b,{path:ve,element:a.jsx(bp,{})}),a.jsx(b,{path:Ye,element:a.jsx(wp,{})}),a.jsx(b,{path:`${ke}/:documentId`,element:a.jsx(vp,{})}),a.jsx(b,{path:`${Ee}/:documentId`,element:a.jsx(Ep,{})}),a.jsx(b,{path:`${_e}/:documentId`,element:a.jsx(Sp,{})}),a.jsx(b,{path:"/examples/:slug",element:a.jsx(yp,{})}),a.jsx(b,{path:"/s/:token/embed",element:a.jsx(_t,{mode:"embed"})}),a.jsx(b,{path:"/s/:token/edit",element:a.jsx(_t,{mode:"edit"})}),a.jsx(b,{path:"/s/:token",element:a.jsx(_t,{mode:"view"})}),a.jsxs(b,{element:a.jsx(Lp,{}),children:[a.jsx(b,{path:R,element:a.jsx(Qu,{})}),a.jsx(b,{path:Qt,element:a.jsx(Zu,{})}),a.jsx(b,{path:Xt,element:a.jsx(ep,{})}),a.jsx(b,{path:ke,element:a.jsx(xp,{})}),a.jsx(b,{path:Ee,element:a.jsx(kp,{})}),a.jsx(b,{path:_e,element:a.jsx(_p,{})}),a.jsx(b,{path:nl,element:D()?a.jsx(jp,{}):a.jsx(W,{to:R,replace:!0})}),a.jsx(b,{path:Ke,element:D()?a.jsx(Rp,{}):a.jsx(W,{to:R,replace:!0})}),a.jsx(b,{path:rl,element:a.jsx(Tp,{})}),a.jsx(b,{path:al,element:a.jsx(Ip,{})}),a.jsx(b,{path:ol,element:a.jsx(Np,{})})]}),a.jsx(b,{path:"/compare",element:a.jsx(tp,{})}),a.jsx(b,{path:"/editor",element:a.jsx(ar,{})}),a.jsx(b,{path:"/tours/new",element:a.jsx(rp,{})}),a.jsx(b,{path:"/tours/:tourId/edit",element:a.jsx(op,{})}),a.jsx(b,{path:"/tours/:tourId",element:a.jsx(sp,{})}),a.jsx(b,{path:"/routes/new",element:a.jsx(Et,{mode:"new"})}),a.jsx(b,{path:"/routes/:routeId/edit",element:a.jsx(Et,{mode:"edit"})}),a.jsx(b,{path:"/routes/:routeId",element:a.jsx(Et,{mode:"view"})}),a.jsx(b,{path:"/docs/:documentId",element:a.jsx(ap,{})}),a.jsx(b,{path:"/docs/:documentId/edit",element:a.jsx(ar,{})}),a.jsx(b,{path:"/capture/:captureId/edit",element:a.jsx(ip,{})}),a.jsx(b,{path:tl,element:a.jsx(cp,{})}),a.jsx(b,{path:"/editor/capture/:captureId/edit",element:a.jsx(lp,{})}),a.jsx(b,{path:"/player",element:a.jsx(W,{to:R,replace:!0})}),a.jsx(b,{path:"*",element:a.jsx(Ap,{})})]})})})})]})};ja.createRoot(document.getElementById("root")).render(a.jsx(l.StrictMode,{children:a.jsx(Ed,{children:a.jsx(Op,{})})}));export{ju as $,Br as A,Gh as B,th as C,R as D,Jh as E,Jn as F,el as G,Cr as H,kh as I,Qt as J,_e as K,ot as L,An as M,st as N,Zs as O,nn as P,ti as Q,ri as R,oi as S,sm as T,em as U,Xh as V,T as W,Zh as X,zd as Y,Kh as Z,eu as _,Qr as a,$l as a$,it as a0,di as a1,E as a2,pi as a3,mi as a4,jr as a5,bi as a6,tl as a7,kr as a8,W as a9,Ye as aA,ke as aB,Ii as aC,Lr as aD,Li as aE,rm as aF,am as aG,nm as aH,tm as aI,Me as aJ,Di as aK,Jt as aL,y as aM,Ce as aN,Ld as aO,dh as aP,xh as aQ,wh as aR,Jl as aS,jh as aT,Ph as aU,Xd as aV,yh as aW,Rh as aX,Cc as aY,v as aZ,fc as a_,nl as aa,N as ab,qh as ac,mt as ad,Ee as ae,H as af,ve as ag,da as ah,Xt as ai,Rr as aj,Tr as ak,Te as al,Ge as am,Ir as an,mh as ao,fh as ap,ua as aq,Yh as ar,Ke as as,Nr as at,fl as au,Ci as av,vu as aw,gu as ax,Ar as ay,Ri as az,im as b,Ol as b$,Zr as b0,Dl as b1,sh as b2,ea as b3,uh as b4,Xl as b5,vh as b6,Kl as b7,Ql as b8,Sh as b9,gh as bA,Dh as bB,Vr as bC,ct as bD,Ac as bE,Kp as bF,rn as bG,le as bH,kl as bI,Rt as bJ,Qp as bK,Zp as bL,Xp as bM,Jp as bN,Dn as bO,Bd as bP,Hh as bQ,Wh as bR,zh as bS,nh as bT,ec as bU,Th as bV,Qh as bW,Lh as bX,El as bY,ih as bZ,oh as b_,Vp as ba,de as bb,qp as bc,hc as bd,Nh as be,Eh as bf,_h as bg,Gp as bh,Yp as bi,il as bj,su as bk,Vd as bl,ql as bm,Or as bn,At as bo,Hd as bp,hh as bq,ph as br,zp as bs,Wp as bt,$i as bu,bh as bv,on as bw,Oh as bx,D as by,ce as bz,lm as c,Ih as c0,lh as c1,ch as c2,Ch as c3,rh as c4,ah as c5,cc as c6,Yn as c7,$n as c8,Ah as c9,dt as ca,Hp as cb,F as cc,Uh as cd,yu as ce,Vh as cf,Fh as cg,ht as ch,Lc as ci,Oc as cj,Mh as ck,P as cl,je as cm,$h as cn,Up as co,Bp as cp,ls as cq,te as cr,Bh as cs,dm as d,cm as e,O as f,_l as g,fu as h,We as i,_s as j,js as k,om as l,Kt as m,Is as n,bn as o,As as p,Os as q,Ms as r,$s as s,Nl as t,eh as u,Il as v,Bs as w,Hs as x,Al as y,Ys as z}; 282//# sourceMappingURL=index-CTi7hHs9.js.map
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.