PageSourceSearch

https://piratesofbugs.com/assets/index-BQlkmR9O.js

js piratesofbugs.com collected 2026-10-02 01:39:14 UTC 731,572 bytes, 1,307 lines download raw bytes

vendor: 6,275 bytes, lines 1-9
1var k1=Object.defineProperty;var $p=e=>{throw TypeError(e)};var N1=(e,t,n)=>t in e?k1(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var $i=(e,t,n)=>N1(e,typeof t!="symbol"?t+"":t,n),gc=(e,t,n)=>t.has(e)||$p("Cannot "+n);var j=(e,t,n)=>(gc(e,t,"read from private field"),n?n.call(e):t.get(e)),I=(e,t,n)=>t.has(e)?$p("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),F=(e,t,n,s)=>(gc(e,t,"write to private field"),s?s.call(e,n):t.set(e,n),n),J=(e,t,n)=>(gc(e,t,"access private method"),n);var qi=(e,t,n,s)=>({set _(a){F(e,t,a,n)},get _(){return j(e,t,s)}});function S1(e,t){for(var n=0;n<t.length;n++){const s=t[n];if(typeof s!="string"&&!Array.isArray(s)){for(const a in s)if(a!=="default"&&!(a in e)){const i=Object.getOwnPropertyDescriptor(s,a);i&&Object.defineProperty(e,a,i.get?i:{enumerable:!0,get:()=>s[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))s(a);new MutationObserver(a=>{for(const i of a)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&s(o)}).observe(document,{childList:!0,subtree:!0});function n(a){const i={};return a.integrity&&(i.integrity=a.integrity),a.referrerPolicy&&(i.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?i.credentials="include":a.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function s(a){if(a.ep)return;a.ep=!0;const i=n(a);fetch(a.href,i)}})();function C1(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Ig={exports:{}},Il={},Bg={exports:{}},H={};/**
2 * @license React
3 * react.production.min.js
4 *
5 * Copyright (c) Facebook, Inc. and its affiliates.
6 *
7 * This source code is licensed under the MIT license found in the
8 * LICENSE file in the root directory of this source tree.
9 */var Ti=Symbol.for("react.element"),P1=Symbol.for("react.portal"),T1=Symbol.for("react.fragment"),E1=Symbol.for("react.strict_mode"),_1=Symbol.for("react.profiler"),A1=Symbol.for("react.provider"),F1=Symbol.for("react.context"),M1=Symbol.for("react.forward_ref"),D1=Symbol.for("react.suspense"),O1=Symbol.for("react.memo"),R1=Symbol.for("react.lazy"),qp=Symbol.iterator;function L1(e){return e===null||typeof e!="object"?null:(e=qp&&e[qp]||e["@@iterator"],typeof e=="function"?e:null)}var Vg={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Ug=Object.assign,zg={};function Kr(e,t,n){this.props=e,this.context=t,this.refs=zg,this.updater=n||Vg}Kr.prototype.isReactComponent={};Kr.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Kr.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Wg(){}Wg.prototype=Kr.prototype;function Yu(e,t,n){this.props=e,this.context=t,this.refs=zg,this.updater=n||Vg}var Zu=Yu.prototype=new Wg;Zu.constructor=Yu;Ug(Zu,Kr.prototype);Zu.isPureReactComponent=!0;var Hp=Array.isArray,$g=Object.prototype.hasOwnProperty,Ku={current:null},qg={key:!0,ref:!0,__self:!0,__source:!0};function Hg(e,t,n){var s,a={},i=null,o=null;if(t!=null)for(s in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(i=""+t.key),t)$g.call(t,s)&&!qg.hasOwnProperty(s)&&(a[s]=t[s]);var l=arguments.length-2;if(l===1)a.children=n;else if(1<l){for(var c=Array(l),d=0;d<l;d++)c[d]=arguments[d+2];a.children=c}if(e&&e.defaultProps)for(s in l=e.defaultProps,l)a[s]===void 0&&(a[s]=l[s]);return{$$typeof:Ti,type:e,key:i,ref:o,props:a,_owner:Ku.current}}function I1(e,t){return{$$typeof:Ti,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function Xu(e){return typeof e=="object"&&e!==null&&e.$$typeof===Ti}function B1(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var Jp=/\/+/g;function yc(e,t){return typeof e=="object"&&e!==null&&e.key!=null?B1(""+e.key):t.toString(36)}function _o(e,t,n,s,a){var i=typeof e;(i==="undefined"||i==="boolean")&&(e=null);var o=!1;if(e===null)o=!0;else switch(i){case"string":case"number":o=!0;break;case"object":switch(e.$$typeof){case Ti:case P1:o=!0}}if(o)return o=e,a=a(o),e=s===""?"."+yc(o,0):s,Hp(a)?(n="",e!=null&&(n=e.replace(Jp,"$&/")+"/"),_o(a,t,n,"",function(d){return d})):a!=null&&(Xu(a)&&(a=I1(a,n+(!a.key||o&&o.key===a.key?"":(""+a.key).replace(Jp,"$&/")+"/")+e)),t.push(a)),1;if(o=0,s=s===""?".":s+":",Hp(e))for(var l=0;l<e.length;l++){i=e[l];var c=s+yc(i,l);o+=_o(i,t,n,c,a)}else if(c=L1(e),typeof c=="function")for(e=c.call(e),l=0;!(i=e.next()).done;)i=i.value,c=s+yc(i,l++),o+=_o(i,t,n,c,a);else if(i==="object")throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return o}function Hi(e,t,n){if(e==null)return e;var s=[],a=0;return _o(e,s,"","",function(i){return t.call(n,i,a++)}),s}function V1(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(n){(e._status===0||e._status===-1)&&(e._status=1,e._result=n)},function(n){(e._status===0||e._status===-1)&&(e._status=2,e._result=n)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var We={current:null},Ao={transition:null},U1={ReactCurrentDispatcher:We,ReactCurrentBatchConfig:Ao,ReactCurrentOwner:Ku};function Jg(){throw Error("act(...) is not supported in production builds of React.")}H.Children={map:Hi,forEach:function(e,t,n){Hi(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return Hi(e,function(){t++}),t},toArray:function(e){return Hi(e,function(t){return t})||[]},only:function(e){if(!Xu(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};H.Component=Kr;H.Fragment=T1;H.Profiler=_1;H.PureComponent=Yu;H.StrictMode=E1;H.Suspense=D1;
vendor: 3,312 bytes, lines 9-17
9H.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=U1;H.act=Jg;H.cloneElement=function(e,t,n){if(e==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var s=Ug({},e.props),a=e.key,i=e.ref,o=e._owner;if(t!=null){if(t.ref!==void 0&&(i=t.ref,o=Ku.current),t.key!==void 0&&(a=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(c in t)$g.call(t,c)&&!qg.hasOwnProperty(c)&&(s[c]=t[c]===void 0&&l!==void 0?l[c]:t[c])}var c=arguments.length-2;if(c===1)s.children=n;else if(1<c){l=Array(c);for(var d=0;d<c;d++)l[d]=arguments[d+2];s.children=l}return{$$typeof:Ti,type:e.type,key:a,ref:i,props:s,_owner:o}};H.createContext=function(e){return e={$$typeof:F1,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:A1,_context:e},e.Consumer=e};H.createElement=Hg;H.createFactory=function(e){var t=Hg.bind(null,e);return t.type=e,t};H.createRef=function(){return{current:null}};H.forwardRef=function(e){return{$$typeof:M1,render:e}};H.isValidElement=Xu;H.lazy=function(e){return{$$typeof:R1,_payload:{_status:-1,_result:e},_init:V1}};H.memo=function(e,t){return{$$typeof:O1,type:e,compare:t===void 0?null:t}};H.startTransition=function(e){var t=Ao.transition;Ao.transition={};try{e()}finally{Ao.transition=t}};H.unstable_act=Jg;H.useCallback=function(e,t){return We.current.useCallback(e,t)};H.useContext=function(e){return We.current.useContext(e)};H.useDebugValue=function(){};H.useDeferredValue=function(e){return We.current.useDeferredValue(e)};H.useEffect=function(e,t){return We.current.useEffect(e,t)};H.useId=function(){return We.current.useId()};H.useImperativeHandle=function(e,t,n){return We.current.useImperativeHandle(e,t,n)};H.useInsertionEffect=function(e,t){return We.current.useInsertionEffect(e,t)};H.useLayoutEffect=function(e,t){return We.current.useLayoutEffect(e,t)};H.useMemo=function(e,t){return We.current.useMemo(e,t)};H.useReducer=function(e,t,n){return We.current.useReducer(e,t,n)};H.useRef=function(e){return We.current.useRef(e)};H.useState=function(e){return We.current.useState(e)};H.useSyncExternalStore=function(e,t,n){return We.current.useSyncExternalStore(e,t,n)};H.useTransition=function(){return We.current.useTransition()};H.version="18.3.1";Bg.exports=H;var w=Bg.exports;const Qg=C1(w),z1=S1({__proto__:null,default:Qg},[w]);/**
10 * @license React
11 * react-jsx-runtime.production.min.js
12 *
13 * Copyright (c) Facebook, Inc. and its affiliates.
14 *
15 * This source code is licensed under the MIT license found in the
16 * LICENSE file in the root directory of this source tree.
17 */var W1=w,$1=Symbol.for("react.element"),q1=Symbol.for("react.fragment"),H1=Object.prototype.hasOwnProperty,J1=W1.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Q1={key:!0,ref:!0,__self:!0,__source:!0};function Gg(e,t,n){var s,a={},i=null,o=null;n!==void 0&&(i=""+n),t.key!==void 0&&(i=""+t.key),t.ref!==void 0&&(o=t.ref);for(s in t)H1.call(t,s)&&!Q1.hasOwnProperty(s)&&(a[s]=t[s]);if(e&&e.defaultProps)for(s in t=e.defaultProps,t)a[s]===void 0&&(a[s]=t[s]);return{$$typeof:$1,type:e,key:i,ref:o,props:a,_owner:J1.current}}Il.Fragment=q1;Il.jsx=Gg;Il.jsxs=Gg;Ig.exports=Il;var r=Ig.exports,pd={},Yg={exports:{}},ht={},Zg={exports:{}},Kg={};
vendor: 9,754 bytes, lines 17-33
17/**
18 * @license React
19 * scheduler.production.min.js
20 *
21 * Copyright (c) Facebook, Inc. and its affiliates.
22 *
23 * This source code is licensed under the MIT license found in the
24 * LICENSE file in the root directory of this source tree.
25 */(function(e){function t(_,U){var $=_.length;_.push(U);e:for(;0<$;){var me=$-1>>>1,ke=_[me];if(0<a(ke,U))_[me]=U,_[$]=ke,$=me;else break e}}function n(_){return _.length===0?null:_[0]}function s(_){if(_.length===0)return null;var U=_[0],$=_.pop();if($!==U){_[0]=$;e:for(var me=0,ke=_.length,zi=ke>>>1;me<zi;){var cs=2*(me+1)-1,xc=_[cs],ds=cs+1,Wi=_[ds];if(0>a(xc,$))ds<ke&&0>a(Wi,xc)?(_[me]=Wi,_[ds]=$,me=ds):(_[me]=xc,_[cs]=$,me=cs);else if(ds<ke&&0>a(Wi,$))_[me]=Wi,_[ds]=$,me=ds;else break e}}return U}function a(_,U){var $=_.sortIndex-U.sortIndex;return $!==0?$:_.id-U.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var o=Date,l=o.now();e.unstable_now=function(){return o.now()-l}}var c=[],d=[],u=1,h=null,p=3,g=!1,y=!1,v=!1,k=typeof setTimeout=="function"?setTimeout:null,f=typeof clearTimeout=="function"?clearTimeout:null,x=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function m(_){for(var U=n(d);U!==null;){if(U.callback===null)s(d);else if(U.startTime<=_)s(d),U.sortIndex=U.expirationTime,t(c,U);else break;U=n(d)}}function b(_){if(v=!1,m(_),!y)if(n(c)!==null)y=!0,Ui(N);else{var U=n(d);U!==null&&we(b,U.startTime-_)}}function N(_,U){y=!1,v&&(v=!1,f(S),S=-1),g=!0;var $=p;try{for(m(U),h=n(c);h!==null&&(!(h.expirationTime>U)||_&&!te());){var me=h.callback;if(typeof me=="function"){h.callback=null,p=h.priorityLevel;var ke=me(h.expirationTime<=U);U=e.unstable_now(),typeof ke=="function"?h.callback=ke:h===n(c)&&s(c),m(U)}else s(c);h=n(c)}if(h!==null)var zi=!0;else{var cs=n(d);cs!==null&&we(b,cs.startTime-U),zi=!1}return zi}finally{h=null,p=$,g=!1}}var C=!1,T=null,S=-1,L=5,D=-1;function te(){return!(e.unstable_now()-D<L)}function tt(){if(T!==null){var _=e.unstable_now();D=_;var U=!0;try{U=T(!0,_)}finally{U?Ot():(C=!1,T=null)}}else C=!1}var Ot;if(typeof x=="function")Ot=function(){x(tt)};else if(typeof MessageChannel<"u"){var Rt=new MessageChannel,ls=Rt.port2;Rt.port1.onmessage=tt,Ot=function(){ls.postMessage(null)}}else Ot=function(){k(tt,0)};function Ui(_){T=_,C||(C=!0,Ot())}function we(_,U){S=k(function(){_(e.unstable_now())},U)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(_){_.callback=null},e.unstable_continueExecution=function(){y||g||(y=!0,Ui(N))},e.unstable_forceFrameRate=function(_){0>_||125<_?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):L=0<_?Math.floor(1e3/_):5},e.unstable_getCurrentPriorityLevel=function(){return p},e.unstable_getFirstCallbackNode=function(){return n(c)},e.unstable_next=function(_){switch(p){case 1:case 2:case 3:var U=3;break;default:U=p}var $=p;p=U;try{return _()}finally{p=$}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(_,U){switch(_){case 1:case 2:case 3:case 4:case 5:break;default:_=3}var $=p;p=_;try{return U()}finally{p=$}},e.unstable_scheduleCallback=function(_,U,$){var me=e.unstable_now();switch(typeof $=="object"&&$!==null?($=$.delay,$=typeof $=="number"&&0<$?me+$:me):$=me,_){case 1:var ke=-1;break;case 2:ke=250;break;case 5:ke=1073741823;break;case 4:ke=1e4;break;default:ke=5e3}return ke=$+ke,_={id:u++,callback:U,priorityLevel:_,startTime:$,expirationTime:ke,sortIndex:-1},$>me?(_.sortIndex=$,t(d,_),n(c)===null&&_===n(d)&&(v?(f(S),S=-1):v=!0,we(b,$-me))):(_.sortIndex=ke,t(c,_),y||g||(y=!0,Ui(N))),_},e.unstable_shouldYield=te,e.unstable_wrapCallback=function(_){var U=p;return function(){var $=p;p=U;try{return _.apply(this,arguments)}finally{p=$}}}})(Kg);Zg.exports=Kg;var G1=Zg.exports;/**
26 * @license React
27 * react-dom.production.min.js
28 *
29 * Copyright (c) Facebook, Inc. and its affiliates.
30 *
31 * This source code is licensed under the MIT license found in the
32 * LICENSE file in the root directory of this source tree.
33 */var Y1=w,ct=G1;function P(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var Xg=new Set,Ha={};function Vs(e,t){Lr(e,t),Lr(e+"Capture",t)}function Lr(e,t){for(Ha[e]=t,e=0;e<t.length;e++)Xg.add(t[e])}var on=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),md=Object.prototype.hasOwnProperty,Z1=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Qp={},Gp={};function K1(e){return md.call(Gp,e)?!0:md.call(Qp,e)?!1:Z1.test(e)?Gp[e]=!0:(Qp[e]=!0,!1)}function X1(e,t,n,s){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return s?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function e2(e,t,n,s){if(t===null||typeof t>"u"||X1(e,t,n,s))return!0;if(s)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function $e(e,t,n,s,a,i,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=s,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=o}var Ae={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Ae[e]=new $e(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Ae[t]=new $e(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Ae[e]=new $e(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Ae[e]=new $e(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Ae[e]=new $e(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Ae[e]=new $e(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Ae[e]=new $e(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Ae[e]=new $e(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Ae[e]=new $e(e,5,!1,e.toLowerCase(),null,!1,!1)});var eh=/[\-:]([a-z])/g;function th(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(eh,th);Ae[t]=new $e(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(eh,th);Ae[t]=new $e(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(eh,th);Ae[t]=new $e(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Ae[e]=new $e(e,1,!1,e.toLowerCase(),null,!1,!1)});Ae.xlinkHref=new $e("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Ae[e]=new $e(e,1,!1,e.toLowerCase(),null,!0,!0)});function nh(e,t,n,s){var a=Ae.hasOwnProperty(t)?Ae[t]:null;(a!==null?a.type!==0:s||!(2<t.length)||t[0]!=="o"&&t[0]!=="O"||t[1]!=="n"&&t[1]!=="N")&&(e2(t,n,a,s)&&(n=null),s||a===null?K1(t)&&(n===null?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=n===null?a.type===3?!1:"":n:(t=a.attributeName,s=a.attributeNamespace,n===null?e.removeAttribute(t):(a=a.type,n=a===3||a===4&&n===!0?"":""+n,s?e.setAttributeNS(s,t,n):e.setAttribute(t,n))))}
vendor: 5,498 bytes, lines 33-37
33var fn=Y1.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,Ji=Symbol.for("react.element"),er=Symbol.for("react.portal"),tr=Symbol.for("react.fragment"),sh=Symbol.for("react.strict_mode"),fd=Symbol.for("react.profiler"),ey=Symbol.for("react.provider"),ty=Symbol.for("react.context"),rh=Symbol.for("react.forward_ref"),xd=Symbol.for("react.suspense"),gd=Symbol.for("react.suspense_list"),ah=Symbol.for("react.memo"),bn=Symbol.for("react.lazy"),ny=Symbol.for("react.offscreen"),Yp=Symbol.iterator;function ua(e){return e===null||typeof e!="object"?null:(e=Yp&&e[Yp]||e["@@iterator"],typeof e=="function"?e:null)}var de=Object.assign,vc;function ka(e){if(vc===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);vc=t&&t[1]||""}return`
34`+vc+e}var wc=!1;function bc(e,t){if(!e||wc)return"";wc=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(t,[])}catch(d){var s=d}Reflect.construct(e,[],t)}else{try{t.call()}catch(d){s=d}e.call(t.prototype)}else{try{throw Error()}catch(d){s=d}e()}}catch(d){if(d&&s&&typeof d.stack=="string"){for(var a=d.stack.split(`
35`),i=s.stack.split(`
36`),o=a.length-1,l=i.length-1;1<=o&&0<=l&&a[o]!==i[l];)l--;for(;1<=o&&0<=l;o--,l--)if(a[o]!==i[l]){if(o!==1||l!==1)do if(o--,l--,0>l||a[o]!==i[l]){var c=`
37`+a[o].replace(" at new "," at ");return e.displayName&&c.includes("<anonymous>")&&(c=c.replace("<anonymous>",e.displayName)),c}while(1<=o&&0<=l);break}}}finally{wc=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?ka(e):""}function t2(e){switch(e.tag){case 5:return ka(e.type);case 16:return ka("Lazy");case 13:return ka("Suspense");case 19:return ka("SuspenseList");case 0:case 2:case 15:return e=bc(e.type,!1),e;case 11:return e=bc(e.type.render,!1),e;case 1:return e=bc(e.type,!0),e;default:return""}}function yd(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case tr:return"Fragment";case er:return"Portal";case fd:return"Profiler";case sh:return"StrictMode";case xd:return"Suspense";case gd:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case ty:return(e.displayName||"Context")+".Consumer";case ey:return(e._context.displayName||"Context")+".Provider";case rh:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ah:return t=e.displayName||null,t!==null?t:yd(e.type)||"Memo";case bn:t=e._payload,e=e._init;try{return yd(e(t))}catch{}}return null}function n2(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return yd(t);case 8:return t===sh?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Gn(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function sy(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function s2(e){var t=sy(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),s=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var a=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(o){s=""+o,i.call(this,o)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return s},setValue:function(o){s=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Qi(e){e._valueTracker||(e._valueTracker=s2(e))}function ry(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),s="";return e&&(s=sy(e)?e.checked?"true":"false":e.value),e=s,e!==n?(t.setValue(e),!0):!1}function Jo(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function vd(e,t){var n=t.checked;return de({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Zp(e,t){var n=t.defaultValue==null?"":t.defaultValue,s=t.checked!=null?t.checked:t.defaultChecked;n=Gn(t.value!=null?t.value:n),e._wrapperState={initialChecked:s,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function ay(e,t){t=t.checked,t!=null&&nh(e,"checked",t,!1)}function wd(e,t){ay(e,t);var n=Gn(t.value),s=t.type;if(n!=null)s==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(s==="submit"||s==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?bd(e,t.type,n):t.hasOwnProperty("defaultValue")&&bd(e,t.type,Gn(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}
vendor: 4,180 bytes, line 37
37function Kp(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var s=t.type;if(!(s!=="submit"&&s!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function bd(e,t,n){(t!=="number"||Jo(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Na=Array.isArray;function gr(e,t,n,s){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&s&&(e[n].defaultSelected=!0)}else{for(n=""+Gn(n),t=null,a=0;a<e.length;a++){if(e[a].value===n){e[a].selected=!0,s&&(e[a].defaultSelected=!0);return}t!==null||e[a].disabled||(t=e[a])}t!==null&&(t.selected=!0)}}function jd(e,t){if(t.dangerouslySetInnerHTML!=null)throw Error(P(91));return de({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function Xp(e,t){var n=t.value;if(n==null){if(n=t.children,t=t.defaultValue,n!=null){if(t!=null)throw Error(P(92));if(Na(n)){if(1<n.length)throw Error(P(93));n=n[0]}t=n}t==null&&(t=""),n=t}e._wrapperState={initialValue:Gn(n)}}function iy(e,t){var n=Gn(t.value),s=Gn(t.defaultValue);n!=null&&(n=""+n,n!==e.value&&(e.value=n),t.defaultValue==null&&e.defaultValue!==n&&(e.defaultValue=n)),s!=null&&(e.defaultValue=""+s)}function em(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}function oy(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function kd(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?oy(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var Gi,ly=function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(t,n,s,a){MSApp.execUnsafeLocalFunction(function(){return e(t,n,s,a)})}:e}(function(e,t){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=t;else{for(Gi=Gi||document.createElement("div"),Gi.innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=Gi.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Ja(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Fa={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},r2=["Webkit","ms","Moz","O"];Object.keys(Fa).forEach(function(e){r2.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Fa[t]=Fa[e]})});function cy(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Fa.hasOwnProperty(e)&&Fa[e]?(""+t).trim():t+"px"}function dy(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var s=n.indexOf("--")===0,a=cy(n,t[n],s);n==="float"&&(n="cssFloat"),s?e.setProperty(n,a):e[n]=a}}var a2=de({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Nd(e,t){if(t){if(a2[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(P(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(P(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(P(61))}if(t.style!=null&&typeof t.style!="object")throw Error(P(62))}}function Sd(e,t){if(e.indexOf("-")===-1)return typeof t.is=="str
37ing";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Cd=null;function ih(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Pd=null,yr=null,vr=null;function tm(e){if(e=Ai(e)){if(typeof Pd!="function")throw Error(P(280));var t=e.stateNode;t&&(t=Wl(t),Pd(e.stateNode,e.type,t))}}function uy(e){yr?vr?vr.push(e):vr=[e]:yr=e}function hy(){if(yr){var e=yr,t=vr;if(vr=yr=null,tm(e),t)for(e=0;e<t.length;e++)tm(t[e])}}function py(e,t){return e(t)}function my(){}var jc=!1;function fy(e,t,n){if(jc)return e(t,n);jc=!0;try{return py(e,t,n)}finally{jc=!1,(yr!==null||vr!==null)&&(my(),hy())}}function Qa(e,t){var n=e.stateNode;if(n===null)return null;var s=Wl(n);if(s===null)return null;n=s[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(s=!s.disabled)||(e=e.type,s=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!s;break e;default:e=!1}if(e)return null;if(n&&typeof n!="function")throw Error(P(231,t,typeof n));return n}var Td=!1;if(on)try{var ha={};Object.defineProperty(ha,"passive",{get:function(){Td=!0}}),window.addEventListener("test",ha,ha),window.removeEventListener("test",ha,ha)}catch{Td=!1}function i2(e,t,n,s,a,i,o,l,c){var d=Array.prototype.slice.call(arguments,3);try{t.apply(n,d)}catch(u){this.onError(u)}}var Ma=!1,Qo=null,Go=!1,Ed=null,o2={onError:function(e){Ma=!0,Qo=e}};function l2(e,t,n,s,a,i,o,l,c){Ma=!1,Qo=null,i2.apply(o2,arguments)}function c2(e,t,n,s,a,i,o,l,c){if(l2.apply(this,arguments),Ma){if(Ma){var d=Qo;Ma=!1,Qo=null}else throw Error(P(198));Go||(Go=!0,Ed=d)}}function Us(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function xy(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function nm(e){if(Us(e)!==e)throw Error(P(188))}function d2(e){var t=e.alternate;if(!t){if(t=Us(e),t===null)throw Error(P(188));return t!==e?null:e}for(var n=e,s=t;;){var a=n.return;if(a===null)break;var i=a.alternate;if(i===null){if(s=a.return,s!==null){n=s;continue}break}if(a.child===i.child){for(i=a.child;i;){if(i===n)return nm(a),e;if(i===s)return nm(a),t;i=i.sibling}throw Error(P(188))}if(n.return!==s.return)n=a,s=i;else{for(var o=!1,l=a.child;l;){if(l===n){o=!0,n=a,s=i;break}if(l===s){o=!0,s=a,n=i;break}l=l.sibling}if(!o){for(l=i.child;l;){if(l===n){o=!0,n=i,s=a;break}if(l===s){o=!0,s=i,n=a;break}l=l.sibling}if(!o)throw Error(P(189))}}if(n.alternate!==s)throw Error(P(190))}if(n.tag!==3)throw Error(P(188));return n.stateNode.current===n?e:t}function gy(e){return e=d2(e),e!==null?yy(e):null}function yy(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var t=yy(e);if(t!==null)return t;e=e.sibling}return null}var vy=ct.unstable_scheduleCallback,sm=ct.unstable_cancelCallback,u2=ct.unstable_shouldYield,h2=ct.unstable_requestPaint,xe=ct.unstable_now,p2=ct.unstable_getCurrentPriorityLevel,oh=ct.unstable_ImmediatePriority,wy=ct.unstable_UserBlockingPriority,Yo=ct.unstable_NormalPriority,m2=ct.unstable_LowPriority,by=ct.unstable_IdlePriority,Bl=null,Wt=null;function f2(e){if(Wt&&typeof Wt.onCommitFiberRoot=="function")try{Wt.onCommitFiberRoot(Bl,e,void 0,(e.current.flags&128)===128)}catch{}}var At=Math.clz32?Math.clz32:y2,x2=Math.log,g2=Math.LN2;function y2(e){return e>>>=0,e===0?32:31-(x2(e)/g2|0)|0}var Yi=64,Zi=4194304;function Sa(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Zo(e,t){var n=e.pendingLanes;if(n===0)return 0;var s=0,a=e.suspendedLanes,i=e.pingedLanes,o=n&268435455;if(o!==0){var l=o&~a;l!==0?s=Sa(l):(i&=o,i!==0&&(s=Sa(i)))}else o=n&~a,o!==0?s=Sa(o):i!==0&&(s=Sa(i));if(s===0)return 0;if(t!==0&&t!==s&&!(t&a)&&(a=s&-s,i=t&-t,a>=i||a===16&&(i&4194240)!==0))return t;if(s&4&&(s|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=s;0<t;)n=31-At(t),a=1<<n,s|=e[n],t&=~a;return s}function v2(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function w2(e,t){for(var n=e.suspendedLanes,s=e.pingedLanes,a=e.expirationTimes,i=e.pendingLanes;0<i;){var o=31-At(i),l=1<<o,c=a[o];c===-1?(!(l&n)||l&s)&&(a[o]=v2(l,t)):c<=t&&(e.expiredLanes|=l),i&=~l}}function _d(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function jy(){var e=Yi;return Yi<<=1,!(Yi&4194240)&&(Yi=64),e}function kc(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Ei(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-At(t),e[t]=n}function b2(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var s=e.eventTimes;for(e=e.expirationTimes;0<n;){var a=31-At(n),i=1<<a;t[a]=0,s[a]=-1,e[a]=-1,n&=~i}}function lh(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var s=31-At(n),a=1<<s;a&t|e[s]&t&&(e[s]|=t),n&=~a}}var ee=0;function ky(e){return e&=-e,1<e?4<e?e&268435455?16:536870912:4:1}var Ny,ch,Sy,Cy,Py,Ad=!1,Ki=[],In=null,Bn=null,Vn=null,Ga=new Map,Ya=new Map,Nn=[],j2="mou
37sedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function rm(e,t){switch(e){case"focusin":case"focusout":In=null;break;case"dragenter":case"dragleave":Bn=null;break;case"mouseover":case"mouseout":Vn=null;break;case"pointerover":case"pointerout":Ga.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Ya.delete(t.pointerId)}}function pa(e,t,n,s,a,i){return e===null||e.nativeEvent!==i?(e={blockedOn:t,domEventName:n,eventSystemFlags:s,nativeEvent:i,targetContainers:[a]},t!==null&&(t=Ai(t),t!==null&&ch(t)),e):(e.eventSystemFlags|=s,t=e.targetContainers,a!==null&&t.indexOf(a)===-1&&t.push(a),e)}function k2(e,t,n,s,a){switch(t){case"focusin":return In=pa(In,e,t,n,s,a),!0;case"dragenter":return Bn=pa(Bn,e,t,n,s,a),!0;case"mouseover":return Vn=pa(Vn,e,t,n,s,a),!0;case"pointerover":var i=a.pointerId;return Ga.set(i,pa(Ga.get(i)||null,e,t,n,s,a)),!0;case"gotpointercapture":return i=a.pointerId,Ya.set(i,pa(Ya.get(i)||null,e,t,n,s,a)),!0}return!1}function Ty(e){var t=xs(e.target);if(t!==null){var n=Us(t);if(n!==null){if(t=n.tag,t===13){if(t=xy(n),t!==null){e.blockedOn=t,Py(e.priority,function(){Sy(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Fo(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=Fd(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(n===null){n=e.nativeEvent;var s=new n.constructor(n.type,n);Cd=s,n.target.dispatchEvent(s),Cd=null}else return t=Ai(n),t!==null&&ch(t),e.blockedOn=n,!1;t.shift()}return!0}function am(e,t,n){Fo(e)&&n.delete(t)}function N2(){Ad=!1,In!==null&&Fo(In)&&(In=null),Bn!==null&&Fo(Bn)&&(Bn=null),Vn!==null&&Fo(Vn)&&(Vn=null),Ga.forEach(am),Ya.forEach(am)}function ma(e,t){e.blockedOn===t&&(e.blockedOn=null,Ad||(Ad=!0,ct.unstable_scheduleCallback(ct.unstable_NormalPriority,N2)))}function Za(e){function t(a){return ma(a,e)}if(0<Ki.length){ma(Ki[0],e);for(var n=1;n<Ki.length;n++){var s=Ki[n];s.blockedOn===e&&(s.blockedOn=null)}}for(In!==null&&ma(In,e),Bn!==null&&ma(Bn,e),Vn!==null&&ma(Vn,e),Ga.forEach(t),Ya.forEach(t),n=0;n<Nn.length;n++)s=Nn[n],s.blockedOn===e&&(s.blockedOn=null);for(;0<Nn.length&&(n=Nn[0],n.blockedOn===null);)Ty(n),n.blockedOn===null&&Nn.shift()}var wr=fn.ReactCurrentBatchConfig,Ko=!0;function S2(e,t,n,s){var a=ee,i=wr.transition;wr.transition=null;try{ee=1,dh(e,t,n,s)}finally{ee=a,wr.transition=i}}function C2(e,t,n,s){var a=ee,i=wr.transition;wr.transition=null;try{ee=4,dh(e,t,n,s)}finally{ee=a,wr.transition=i}}function dh(e,t,n,s){if(Ko){var a=Fd(e,t,n,s);if(a===null)Mc(e,t,s,Xo,n),rm(e,s);else if(k2(a,e,t,n,s))s.stopPropagation();else if(rm(e,s),t&4&&-1<j2.indexOf(e)){for(;a!==null;){var i=Ai(a);if(i!==null&&Ny(i),i=Fd(e,t,n,s),i===null&&Mc(e,t,s,Xo,n),i===a)break;a=i}a!==null&&s.stopPropagation()}else Mc(e,t,s,null,n)}}var Xo=null;function Fd(e,t,n,s){if(Xo=null,e=ih(s),e=xs(e),e!==null)if(t=Us(e),t===null)e=null;else if(n=t.tag,n===13){if(e=xy(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Xo=e,null}function Ey(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(p2()){case oh:return 1;case wy:return 4;case Yo:case m2:return 16;case by:return 536870912;default:return 16}default:return 16}}var Dn=null,uh=null,Mo=null;function _y(){if(Mo)return Mo;var e,t=uh,n=t.length,s,a="value"in Dn?Dn.value:Dn.textContent,i=a.length;for(e=0;e<n&&t[e]===a[e];e++);var o=n-e;for(s=1;s<=o&&t[n-s]===a[i-s];s++);return Mo=a.slice(e,1<s?1-s:void 0)}function Do(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function Xi(){return!0}function im(){return!1}function pt(e){function t(n,s,a,i,o){this._reactName=n,this._targetInst=a,this.type=s,this.nativeEvent=i,this.target=o,this.currentTarget=null;for(var l in e)e.hasOwnProperty(l)&&(n=e[l],this[l]=n?n(i):i[l]);return this.isDefaultPrevented=(i.defaultPrevented!=null?i.defaultPrevented:i.returnValue===!1)?Xi:im,this.isPropagationStopped=im,this}return de(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var n=this.nativeEvent;n&&(n.preventDefault?n.preventDefault():typeof n.returnValue!="unknown"&&(n.returnValue=!1),this.isDefaultPrevented=Xi)},stopPropagation:function(){var n=this.nativeEvent;n&&(n.stopPropagation?n.stopPropagation():typeof n.cancelBubble!="unknown"&&(n.cancelBubble=!0),this.isPropagationStopped=Xi)},persist:function(){},isPersistent:Xi}),t}var Xr={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},hh=pt(Xr),_i=de({},Xr,{view:0,detail:0}),P2=pt(_i),Nc,Sc,fa,Vl=de({},_i,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:ph,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==fa&&(fa&&e.type==="mousemove"?(Nc=e.screenX-fa.screenX,Sc=e.screenY-fa.screenY):Sc=Nc=0,fa=e),Nc)},movementY:function(e){return"movementY"in e?e.movementY:Sc}}),om=pt(Vl),T2=de({},Vl,{dataTransfer:0}),E2=pt(T2),_2=de({},_i,{relatedTarget:0}),Cc=pt(_2),A2=de({},Xr,{animationName:0,elapsedTime:0,pseudoElement:0}),F2=pt(A2),M2=de({},Xr,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),D2=pt(M2),O2=de({},Xr,{data:0}),lm=pt(O2),R2={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},L2={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},I2={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function B2(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=I2[e])?!!t[e]:!1}function ph(){return B2}var V2=de({},_i,{key:function(e){if(e.key){var t=R2[e.key]||e.key;if(t!=="Unidentified")return t}
vendor: 6,028 bytes, line 37
37return e.type==="keypress"?(e=Do(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?L2[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:ph,charCode:function(e){return e.type==="keypress"?Do(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?Do(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),U2=pt(V2),z2=de({},Vl,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),cm=pt(z2),W2=de({},_i,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:ph}),$2=pt(W2),q2=de({},Xr,{propertyName:0,elapsedTime:0,pseudoElement:0}),H2=pt(q2),J2=de({},Vl,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Q2=pt(J2),G2=[9,13,27,32],mh=on&&"CompositionEvent"in window,Da=null;on&&"documentMode"in document&&(Da=document.documentMode);var Y2=on&&"TextEvent"in window&&!Da,Ay=on&&(!mh||Da&&8<Da&&11>=Da),dm=" ",um=!1;function Fy(e,t){switch(e){case"keyup":return G2.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function My(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var nr=!1;function Z2(e,t){switch(e){case"compositionend":return My(t);case"keypress":return t.which!==32?null:(um=!0,dm);case"textInput":return e=t.data,e===dm&&um?null:e;default:return null}}function K2(e,t){if(nr)return e==="compositionend"||!mh&&Fy(e,t)?(e=_y(),Mo=uh=Dn=null,nr=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Ay&&t.locale!=="ko"?null:t.data;default:return null}}var X2={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function hm(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!X2[e.type]:t==="textarea"}function Dy(e,t,n,s){uy(s),t=el(t,"onChange"),0<t.length&&(n=new hh("onChange","change",null,n,s),e.push({event:n,listeners:t}))}var Oa=null,Ka=null;function eb(e){qy(e,0)}function Ul(e){var t=ar(e);if(ry(t))return e}function tb(e,t){if(e==="change")return t}var Oy=!1;if(on){var Pc;if(on){var Tc="oninput"in document;if(!Tc){var pm=document.createElement("div");pm.setAttribute("oninput","return;"),Tc=typeof pm.oninput=="function"}Pc=Tc}else Pc=!1;Oy=Pc&&(!document.documentMode||9<document.documentMode)}function mm(){Oa&&(Oa.detachEvent("onpropertychange",Ry),Ka=Oa=null)}function Ry(e){if(e.propertyName==="value"&&Ul(Ka)){var t=[];Dy(t,Ka,e,ih(e)),fy(eb,t)}}function nb(e,t,n){e==="focusin"?(mm(),Oa=t,Ka=n,Oa.attachEvent("onpropertychange",Ry)):e==="focusout"&&mm()}function sb(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return Ul(Ka)}function rb(e,t){if(e==="click")return Ul(t)}function ab(e,t){if(e==="input"||e==="change")return Ul(t)}function ib(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Mt=typeof Object.is=="function"?Object.is:ib;function Xa(e,t){if(Mt(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var n=Object.keys(e),s=Object.keys(t);if(n.length!==s.length)return!1;for(s=0;s<n.length;s++){var a=n[s];if(!md.call(t,a)||!Mt(e[a],t[a]))return!1}return!0}function fm(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function xm(e,t){var n=fm(e);e=0;for(var s;n;){if(n.nodeType===3){if(s=e+n.textContent.length,e<=t&&s>=t)return{node:n,offset:t-e};e=s}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=fm(n)}}function Ly(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Ly(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Iy(){for(var e=window,t=Jo();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Jo(e.document)}return t}function fh(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function ob(e){var t=Iy(),n=e.focusedElem,s=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Ly(n.ownerDocument.documentElement,n)){if(s!==null&&fh(n)){if(t=s.start,e=s.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var a=n.textContent.length,i=Math.min(s.start,a);s=s.end===void 0?i:Math.min(s.end,a),!e.extend&&i>s&&(a=s,s=i,i=a),a=xm(n,i);var o=xm(n,s);a&&o&&(e.rangeCount!==1||e.anchorNode!==a.node||e.anchorOffset!==a.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(a.node,a.offset),e.removeAllRanges(),i>s?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n<t.length;n++)e=t[n],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var lb=on&&"documentMode"in document&&11>=document.documentMode,sr=null,Md=null,Ra=null,Dd=!1;function gm(e,t,n){var s=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Dd||sr==null||sr!==Jo(s)||(s=sr,"selectionStart"in s&&fh(s)?s={start:s.selectionStart,end:s.selectionEnd}:(s=(s.ownerDocument&&s.ownerDocument.defaultView||window).getSelection(),s={anchorNode:s.anchorNode,anchorOffset:s.anchorOffset,focu
vendor: 4,383 bytes, line 37
37sNode:s.focusNode,focusOffset:s.focusOffset}),Ra&&Xa(Ra,s)||(Ra=s,s=el(Md,"onSelect"),0<s.length&&(t=new hh("onSelect","select",null,t,n),e.push({event:t,listeners:s}),t.target=sr)))}function eo(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var rr={animationend:eo("Animation","AnimationEnd"),animationiteration:eo("Animation","AnimationIteration"),animationstart:eo("Animation","AnimationStart"),transitionend:eo("Transition","TransitionEnd")},Ec={},By={};on&&(By=document.createElement("div").style,"AnimationEvent"in window||(delete rr.animationend.animation,delete rr.animationiteration.animation,delete rr.animationstart.animation),"TransitionEvent"in window||delete rr.transitionend.transition);function zl(e){if(Ec[e])return Ec[e];if(!rr[e])return e;var t=rr[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in By)return Ec[e]=t[n];return e}var Vy=zl("animationend"),Uy=zl("animationiteration"),zy=zl("animationstart"),Wy=zl("transitionend"),$y=new Map,ym="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function ns(e,t){$y.set(e,t),Vs(t,[e])}for(var _c=0;_c<ym.length;_c++){var Ac=ym[_c],cb=Ac.toLowerCase(),db=Ac[0].toUpperCase()+Ac.slice(1);ns(cb,"on"+db)}ns(Vy,"onAnimationEnd");ns(Uy,"onAnimationIteration");ns(zy,"onAnimationStart");ns("dblclick","onDoubleClick");ns("focusin","onFocus");ns("focusout","onBlur");ns(Wy,"onTransitionEnd");Lr("onMouseEnter",["mouseout","mouseover"]);Lr("onMouseLeave",["mouseout","mouseover"]);Lr("onPointerEnter",["pointerout","pointerover"]);Lr("onPointerLeave",["pointerout","pointerover"]);Vs("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));Vs("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));Vs("onBeforeInput",["compositionend","keypress","textInput","paste"]);Vs("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));Vs("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));Vs("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Ca="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),ub=new Set("cancel close invalid load scroll toggle".split(" ").concat(Ca));function vm(e,t,n){var s=e.type||"unknown-event";e.currentTarget=n,c2(s,t,void 0,e),e.currentTarget=null}function qy(e,t){t=(t&4)!==0;for(var n=0;n<e.length;n++){var s=e[n],a=s.event;s=s.listeners;e:{var i=void 0;if(t)for(var o=s.length-1;0<=o;o--){var l=s[o],c=l.instance,d=l.currentTarget;if(l=l.listener,c!==i&&a.isPropagationStopped())break e;vm(a,l,d),i=c}else for(o=0;o<s.length;o++){if(l=s[o],c=l.instance,d=l.currentTarget,l=l.listener,c!==i&&a.isPropagationStopped())break e;vm(a,l,d),i=c}}}if(Go)throw e=Ed,Go=!1,Ed=null,e}function se(e,t){var n=t[Bd];n===void 0&&(n=t[Bd]=new Set);var s=e+"__bubble";n.has(s)||(Hy(t,e,2,!1),n.add(s))}function Fc(e,t,n){var s=0;t&&(s|=4),Hy(n,e,s,t)}var to="_reactListening"+Math.random().toString(36).slice(2);function ei(e){if(!e[to]){e[to]=!0,Xg.forEach(function(n){n!=="selectionchange"&&(ub.has(n)||Fc(n,!1,e),Fc(n,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[to]||(t[to]=!0,Fc("selectionchange",!1,t))}}function Hy(e,t,n,s){switch(Ey(t)){case 1:var a=S2;break;case 4:a=C2;break;default:a=dh}n=a.bind(null,t,n,e),a=void 0,!Td||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(a=!0),s?a!==void 0?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):a!==void 0?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function Mc(e,t,n,s,a){var i=s;
vendor: 7,219 bytes, lines 37-38
37if(!(t&1)&&!(t&2)&&s!==null)e:for(;;){if(s===null)return;var o=s.tag;if(o===3||o===4){var l=s.stateNode.containerInfo;if(l===a||l.nodeType===8&&l.parentNode===a)break;if(o===4)for(o=s.return;o!==null;){var c=o.tag;if((c===3||c===4)&&(c=o.stateNode.containerInfo,c===a||c.nodeType===8&&c.parentNode===a))return;o=o.return}for(;l!==null;){if(o=xs(l),o===null)return;if(c=o.tag,c===5||c===6){s=i=o;continue e}l=l.parentNode}}s=s.return}fy(function(){var d=i,u=ih(n),h=[];e:{var p=$y.get(e);if(p!==void 0){var g=hh,y=e;switch(e){case"keypress":if(Do(n)===0)break e;case"keydown":case"keyup":g=U2;break;case"focusin":y="focus",g=Cc;break;case"focusout":y="blur",g=Cc;break;case"beforeblur":case"afterblur":g=Cc;break;case"click":if(n.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":g=om;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":g=E2;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":g=$2;break;case Vy:case Uy:case zy:g=F2;break;case Wy:g=H2;break;case"scroll":g=P2;break;case"wheel":g=Q2;break;case"copy":case"cut":case"paste":g=D2;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":g=cm}var v=(t&4)!==0,k=!v&&e==="scroll",f=v?p!==null?p+"Capture":null:p;v=[];for(var x=d,m;x!==null;){m=x;var b=m.stateNode;if(m.tag===5&&b!==null&&(m=b,f!==null&&(b=Qa(x,f),b!=null&&v.push(ti(x,b,m)))),k)break;x=x.return}0<v.length&&(p=new g(p,y,null,n,u),h.push({event:p,listeners:v}))}}if(!(t&7)){e:{if(p=e==="mouseover"||e==="pointerover",g=e==="mouseout"||e==="pointerout",p&&n!==Cd&&(y=n.relatedTarget||n.fromElement)&&(xs(y)||y[ln]))break e;if((g||p)&&(p=u.window===u?u:(p=u.ownerDocument)?p.defaultView||p.parentWindow:window,g?(y=n.relatedTarget||n.toElement,g=d,y=y?xs(y):null,y!==null&&(k=Us(y),y!==k||y.tag!==5&&y.tag!==6)&&(y=null)):(g=null,y=d),g!==y)){if(v=om,b="onMouseLeave",f="onMouseEnter",x="mouse",(e==="pointerout"||e==="pointerover")&&(v=cm,b="onPointerLeave",f="onPointerEnter",x="pointer"),k=g==null?p:ar(g),m=y==null?p:ar(y),p=new v(b,x+"leave",g,n,u),p.target=k,p.relatedTarget=m,b=null,xs(u)===d&&(v=new v(f,x+"enter",y,n,u),v.target=m,v.relatedTarget=k,b=v),k=b,g&&y)t:{for(v=g,f=y,x=0,m=v;m;m=Hs(m))x++;for(m=0,b=f;b;b=Hs(b))m++;for(;0<x-m;)v=Hs(v),x--;for(;0<m-x;)f=Hs(f),m--;for(;x--;){if(v===f||f!==null&&v===f.alternate)break t;v=Hs(v),f=Hs(f)}v=null}else v=null;g!==null&&wm(h,p,g,v,!1),y!==null&&k!==null&&wm(h,k,y,v,!0)}}e:{if(p=d?ar(d):window,g=p.nodeName&&p.nodeName.toLowerCase(),g==="select"||g==="input"&&p.type==="file")var N=tb;else if(hm(p))if(Oy)N=ab;else{N=sb;var C=nb}else(g=p.nodeName)&&g.toLowerCase()==="input"&&(p.type==="checkbox"||p.type==="radio")&&(N=rb);if(N&&(N=N(e,d))){Dy(h,N,n,u);break e}C&&C(e,p,d),e==="focusout"&&(C=p._wrapperState)&&C.controlled&&p.type==="number"&&bd(p,"number",p.value)}switch(C=d?ar(d):window,e){case"focusin":(hm(C)||C.contentEditable==="true")&&(sr=C,Md=d,Ra=null);break;case"focusout":Ra=Md=sr=null;break;case"mousedown":Dd=!0;break;case"contextmenu":case"mouseup":case"dragend":Dd=!1,gm(h,n,u);break;case"selectionchange":if(lb)break;case"keydown":case"keyup":gm(h,n,u)}var T;if(mh)e:{switch(e){case"compositionstart":var S="onCompositionStart";break e;case"compositionend":S="onCompositionEnd";break e;case"compositionupdate":S="onCompositionUpdate";break e}S=void 0}else nr?Fy(e,n)&&(S="onCompositionEnd"):e==="keydown"&&n.keyCode===229&&(S="onCompositionStart");S&&(Ay&&n.locale!=="ko"&&(nr||S!=="onCompositionStart"?S==="onCompositionEnd"&&nr&&(T=_y()):(Dn=u,uh="value"in Dn?Dn.value:Dn.textContent,nr=!0)),C=el(d,S),0<C.length&&(S=new lm(S,e,null,n,u),h.push({event:S,listeners:C}),T?S.data=T:(T=My(n),T!==null&&(S.data=T)))),(T=Y2?Z2(e,n):K2(e,n))&&(d=el(d,"onBeforeInput"),0<d.length&&(u=new lm("onBeforeInput","beforeinput",null,n,u),h.push({event:u,listeners:d}),u.data=T))}qy(h,t)})}function ti(e,t,n){return{instance:e,listener:t,currentTarget:n}}function el(e,t){for(var n=t+"Capture",s=[];e!==null;){var a=e,i=a.stateNode;a.tag===5&&i!==null&&(a=i,i=Qa(e,n),i!=null&&s.unshift(ti(e,i,a)),i=Qa(e,t),i!=null&&s.push(ti(e,i,a))),e=e.return}return s}function Hs(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function wm(e,t,n,s,a){for(var i=t._reactName,o=[];n!==null&&n!==s;){var l=n,c=l.alternate,d=l.stateNode;if(c!==null&&c===s)break;l.tag===5&&d!==null&&(l=d,a?(c=Qa(n,i),c!=null&&o.unshift(ti(n,c,l))):a||(c=Qa(n,i),c!=null&&o.push(ti(n,c,l)))),n=n.return}o.length!==0&&e.push({event:t,listeners:o})}var hb=/\r\n?/g,pb=/\u0000|\uFFFD/g;function bm(e){return(typeof e=="string"?e:""+e).replace(hb,`
38`).replace(pb,"")}function no(e,t,n){if(t=bm(t),bm(e)!==t&&n)throw Error(P(425))}function tl(){}var Od=null,Rd=null;function Ld(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var Id=typeof setTimeout=="function"?setTimeout:void 0,mb=typeof clearTimeout=="function"?clearTimeout:void 0,jm=typeof Promise=="function"?Promise:void 0,fb=typeof queueMicrotask=="function"?queueMicrotask:typeof jm<"u"?function(e){return jm.resolve(null).then(e).catch(xb)}:Id;function xb(e){setTimeout(function(){throw e})}function Dc(e,t){var n=t,s=0;do{var a=n.nextSibling;if(e.removeChild(n),a&&a.nodeType===8)if(n=a.data,n==="/$"){if(s===0){e.removeChild(a),Za(t);return}s--}else n!=="$"&&n!=="$?"&&n!=="$!"||s++;n=a}while(n);Za(t)}function Un(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?")break;if(t==="/$")return null}}return e}function km(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="$"||n==="$!"||n==="$?"){if(t===0)return e;t--}else n==="/$"&&t++}e=e.previousSibling}return null}var ea=Math.random().toString(36).slice(2),zt="__reactFiber$"+ea,ni="__reactProps$"+ea,ln="__reactContainer$"+ea,Bd="__reactEvents$"+ea,gb="__reactListeners$"+ea,yb="__reactHandles$"+ea;function xs(e){var t=e[zt];if(t)return t;for(var n=e.parentNode;n;){if(t=n[ln]||n[zt]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=km(e);e!==null;){if(n=e[zt])return n;e=km(e)}return t}e=n,n=e.parentNode}return null}function Ai(e){return e=e[zt]||e[ln],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function ar(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(P(33))}function Wl(e){return e[ni]||null}var Vd=[],ir=-1;function ss(e){return{current:e}}function re(e){0>ir||(e.current=Vd[ir],Vd[ir]=null,ir--)}function ne(e,t){ir++,Vd[ir]=e.current,e.current=t}var Yn={},Be=ss(Yn),Ke=ss(!1),Ds=Yn;function Ir(e,t){var n=e.type.contextTypes;if(!n)return Yn;var s=e.stateNode;if(s&&s.__reactInternalMemoizedUnmaskedChildContext===t)return s.__reactInternalMemoizedMaskedChildContext;var a={},i;for(i in n)a[i]=t[i];return s&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a
vendor: 1,107 bytes, line 38
38),a}function Xe(e){return e=e.childContextTypes,e!=null}function nl(){re(Ke),re(Be)}function Nm(e,t,n){if(Be.current!==Yn)throw Error(P(168));ne(Be,t),ne(Ke,n)}function Jy(e,t,n){var s=e.stateNode;if(t=t.childContextTypes,typeof s.getChildContext!="function")return n;s=s.getChildContext();for(var a in s)if(!(a in t))throw Error(P(108,n2(e)||"Unknown",a));return de({},n,s)}function sl(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Yn,Ds=Be.current,ne(Be,e),ne(Ke,Ke.current),!0}function Sm(e,t,n){var s=e.stateNode;if(!s)throw Error(P(169));n?(e=Jy(e,t,Ds),s.__reactInternalMemoizedMergedChildContext=e,re(Ke),re(Be),ne(Be,e)):re(Ke),ne(Ke,n)}var Kt=null,$l=!1,Oc=!1;function Qy(e){Kt===null?Kt=[e]:Kt.push(e)}function vb(e){$l=!0,Qy(e)}function rs(){if(!Oc&&Kt!==null){Oc=!0;var e=0,t=ee;try{var n=Kt;for(ee=1;e<n.length;e++){var s=n[e];do s=s(!0);while(s!==null)}Kt=null,$l=!1}catch(a){throw Kt!==null&&(Kt=Kt.slice(e+1)),vy(oh,rs),a}finally{ee=t,Oc=!1}}return null}var or=[],lr=0,rl=null,al=0,gt=[],yt=0,Os=null,tn=1,nn="";function hs(e,t){or[lr++]=al,or[lr++]=rl,rl=e,al=t}
vendor: 25,306 bytes, lines 38-40
38function Gy(e,t,n){gt[yt++]=tn,gt[yt++]=nn,gt[yt++]=Os,Os=e;var s=tn;e=nn;var a=32-At(s)-1;s&=~(1<<a),n+=1;var i=32-At(t)+a;if(30<i){var o=a-a%5;i=(s&(1<<o)-1).toString(32),s>>=o,a-=o,tn=1<<32-At(t)+a|n<<a|s,nn=i+e}else tn=1<<i|n<<a|s,nn=e}function xh(e){e.return!==null&&(hs(e,1),Gy(e,1,0))}function gh(e){for(;e===rl;)rl=or[--lr],or[lr]=null,al=or[--lr],or[lr]=null;for(;e===Os;)Os=gt[--yt],gt[yt]=null,nn=gt[--yt],gt[yt]=null,tn=gt[--yt],gt[yt]=null}var ot=null,it=null,ie=!1,_t=null;function Yy(e,t){var n=vt(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,t=e.deletions,t===null?(e.deletions=[n],e.flags|=16):t.push(n)}function Cm(e,t){switch(e.tag){case 5:var n=e.type;return t=t.nodeType!==1||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,ot=e,it=Un(t.firstChild),!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,ot=e,it=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(n=Os!==null?{id:tn,overflow:nn}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},n=vt(18,null,null,0),n.stateNode=t,n.return=e,e.child=n,ot=e,it=null,!0):!1;default:return!1}}function Ud(e){return(e.mode&1)!==0&&(e.flags&128)===0}function zd(e){if(ie){var t=it;if(t){var n=t;if(!Cm(e,t)){if(Ud(e))throw Error(P(418));t=Un(n.nextSibling);var s=ot;t&&Cm(e,t)?Yy(s,n):(e.flags=e.flags&-4097|2,ie=!1,ot=e)}}else{if(Ud(e))throw Error(P(418));e.flags=e.flags&-4097|2,ie=!1,ot=e}}}function Pm(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;ot=e}function so(e){if(e!==ot)return!1;if(!ie)return Pm(e),ie=!0,!1;var t;if((t=e.tag!==3)&&!(t=e.tag!==5)&&(t=e.type,t=t!=="head"&&t!=="body"&&!Ld(e.type,e.memoizedProps)),t&&(t=it)){if(Ud(e))throw Zy(),Error(P(418));for(;t;)Yy(e,t),t=Un(t.nextSibling)}if(Pm(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(P(317));e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"){if(t===0){it=Un(e.nextSibling);break e}t--}else n!=="$"&&n!=="$!"&&n!=="$?"||t++}e=e.nextSibling}it=null}}else it=ot?Un(e.stateNode.nextSibling):null;return!0}function Zy(){for(var e=it;e;)e=Un(e.nextSibling)}function Br(){it=ot=null,ie=!1}function yh(e){_t===null?_t=[e]:_t.push(e)}var wb=fn.ReactCurrentBatchConfig;function xa(e,t,n){if(e=n.ref,e!==null&&typeof e!="function"&&typeof e!="object"){if(n._owner){if(n=n._owner,n){if(n.tag!==1)throw Error(P(309));var s=n.stateNode}if(!s)throw Error(P(147,e));var a=s,i=""+e;return t!==null&&t.ref!==null&&typeof t.ref=="function"&&t.ref._stringRef===i?t.ref:(t=function(o){var l=a.refs;o===null?delete l[i]:l[i]=o},t._stringRef=i,t)}if(typeof e!="string")throw Error(P(284));if(!n._owner)throw Error(P(290,e))}return e}function ro(e,t){throw e=Object.prototype.toString.call(t),Error(P(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function Tm(e){var t=e._init;return t(e._payload)}function Ky(e){function t(f,x){if(e){var m=f.deletions;m===null?(f.deletions=[x],f.flags|=16):m.push(x)}}function n(f,x){if(!e)return null;for(;x!==null;)t(f,x),x=x.sibling;return null}function s(f,x){for(f=new Map;x!==null;)x.key!==null?f.set(x.key,x):f.set(x.index,x),x=x.sibling;return f}function a(f,x){return f=qn(f,x),f.index=0,f.sibling=null,f}function i(f,x,m){return f.index=m,e?(m=f.alternate,m!==null?(m=m.index,m<x?(f.flags|=2,x):m):(f.flags|=2,x)):(f.flags|=1048576,x)}function o(f){return e&&f.alternate===null&&(f.flags|=2),f}function l(f,x,m,b){return x===null||x.tag!==6?(x=zc(m,f.mode,b),x.return=f,x):(x=a(x,m),x.return=f,x)}function c(f,x,m,b){var N=m.type;return N===tr?u(f,x,m.props.children,b,m.key):x!==null&&(x.elementType===N||typeof N=="object"&&N!==null&&N.$$typeof===bn&&Tm(N)===x.type)?(b=a(x,m.props),b.ref=xa(f,x,m),b.return=f,b):(b=Uo(m.type,m.key,m.props,null,f.mode,b),b.ref=xa(f,x,m),b.return=f,b)}function d(f,x,m,b){return x===null||x.tag!==4||x.stateNode.containerInfo!==m.containerInfo||x.stateNode.implementation!==m.implementation?(x=Wc(m,f.mode,b),x.return=f,x):(x=a(x,m.children||[]),x.return=f,x)}function u(f,x,m,b,N){return x===null||x.tag!==7?(x=As(m,f.mode,b,N),x.return=f,x):(x=a(x,m),x.return=f,x)}function h(f,x,m){if(typeof x=="string"&&x!==""||typeof x=="number")return x=zc(""+x,f.mode,m),x.return=f,x;if(typeof x=="object"&&x!==null){switch(x.$$typeof){case Ji:return m=Uo(x.type,x.key,x.props,null,f.mode,m),m.ref=xa(f,null,x),m.return=f,m;case er:return x=Wc(x,f.mode,m),x.return=f,x;case bn:var b=x._init;return h(f,b(x._payload),m)}if(Na(x)||ua(x))return x=As(x,f.mode,m,null),x.return=f,x;ro(f,x)}return null}function p(f,x,m,b){var N=x!==null?x.key:null;if(typeof m=="string"&&m!==""||typeof m=="number")return N!==null?null:l(f,x,""+m,b);if(typeof m=="object"&&m!==null){switch(m.$$typeof){case Ji:return m.key===N?c(f,x,m,b):null;case er:return m.key===N?d(f,x,m,b):null;case bn:return N=m._init,p(f,x,N(m._payload),b)}if(Na(m)||ua(m))return N!==null?null:u(f,x,m,b,null);ro(f,m)}return null}function g(f,x,m,b,N){if(typeof b=="string"&&b!==""||typeof b=="number")return f=f.get(m)||null,l(x,f,""+b,N);if(typeof b=="object"&&b!==null){switch(b.$$typeof){case Ji:return f=f.get(b.key===null?m:b.key)||null,c(x,f,b,N);case er:return f=f.get(b.key===null?m:b.key)||null,d(x,f,b,N);case bn:var C=b._init;return g(f,x,m,C(b._payload),N)}if(Na(b)||ua(b))return f=f.get(m)||null,u(x,f,b,N,null);ro(x,b)}return null}function y(f,x,m,b){for(var N=null,C=null,T=x,S=x=0,L=null;T!==null&&S<m.length;S++){T.index>S?(L=T,T=null):L=T.sibling;var D=p(f,T,m[S],b);if(D===null){T===null&&(T=L);break}e&&T&&D.alternate===null&&t(f,T),x=i(D,x,S),C===null?N=D:C.sibling=D,C=D,T=L}if(S===m.length)return n(f,T),ie&&hs(f,S),N;if(T===null){for(;S<m.length;S++)T=h(f,m[S],b),T!==null&&(x=i(T,x,S),C===null?N=T:C.sibling=T,C=T);return ie&&hs(f,S),N}for(T=s(f,T);S<m.length;S++)L=g(T,f,S,m[S],b),L!==null&&(e&&L.alternate!==null&&T.delete(L.key===null?S:L.key),x=i(L,x,S),C===null?N=L:C.sibling=L,C=L);return e&&T.forEach(function(te){return t(f,te)}),ie&&hs(f,S),N}function v(f,x,m,b){var N=ua(m);if(typeof N!="function")throw Error(P(150));if(m=N.call(m),m==null)throw Error(P(151));for(var C=N=null,T=x,S=x=0,L=null,D=m.next();T!==null&&!D.done;S++,D=m.next()){T.index>S?(L=T,T=null):L=T.sibling;var te=p(f,T,D.value,b);if(te===null){T===null&&(T=L);break}e&&T&&te.alternate===null&&t(f,T),x=i(te,x,S),C===null?N=te:C.sibling=te,C=te,T=L}if(D.done)return n(f,T),ie&&hs(f,S),N;if(T===null){for(;!D.done;S++,D=m.next())D=h(f,D.value,b),D!==null&&(x=i(D,x,S),C===null?N=D:C.sibling=D,C=D);return ie&&hs(f,S),N}for(T=s(f,T);!D.done;S++,D=m.next())D=g(T,f,S,D.value,b),D!==null&&(e&&D.alternate!==null&&T.delete(D.key===null?S:D.key),x=i(D,x,S),C===null?N=D:C.sibling=D,C=D);return e&&T.forEach(function(tt){return t(f,tt)}),ie&&hs(f,S),N}function k(f,x,m,b){if(typeof m=="object"&&m!==null&&m.type===tr&&m.key===null&&(m=m.props.children),typeof m=="object"&&m!==null){switch(m.$$typeof){case Ji:e:{for(var N=m.key,C=x;C!==null;){if(C.key===N){if(N=m.type,N===tr){if(C.tag===7){n(f,C.sibling),x=a(C,m.props.children),x.return=f,f=x;break e}}else if(C.elementType===N||typeof N=="object"&&N!==null&&N.$$typeof===bn&&Tm(N)===C.type){n(f,C.sibling),x=a(C,m.props),x.ref=xa(f,C,m),x.return=f,f=x;break e}n(f,C);break}else t(f,C);C=C.sibling}m.type===tr?(x=As(m.props.children,f.mode,b,m.key),x.return=f,f=x):(b=Uo(m.type,m.key,m.props,null,f.mode,b),b.ref=xa(f,x,m),b.return=f,f=b)}return o(f);case er:e:{for(C=m.key;x!==null;){if(x.key===C)if(x.tag===4&&x.stateNode.containerInfo===m.containerInfo&&x.stateNode.implementation===m.implementation){n(f,x.sibling),x=a(x,m.children||[]),x.return=f,f=x;break e}else{n(f,x);break}else t(f,x);x=x.sibling}x=Wc(m,f.mode,b),x.return=f,f=x}return o(f);case bn:return C=m._init,k(f,x,C(m._payload),b)}if(Na(m))return y(f,x,m,b);if(ua(m))return v(f,x,m,b);ro(f,m)}return typeof m=="string"&&m!==""||typeof m=="number"?(m=""+m,x!==null&&x.tag===6?(n(f,x.sibling),x=a(x,m),x.return=f,f=x):(n(f,x),x=zc(m,f.mode,b),x.return=f,f=x),o(f)):n(f,x)}return k}var Vr=Ky(!0),Xy=Ky(!1),il=ss(null),ol=null,cr=null,vh=null;function wh(){vh=cr=ol=null}function bh(e){var t=il.current;re(il),e._currentValue=t}function Wd(e,t,n){for(;e!==null;){var s=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,s!==null&&(s.childLanes|=t)):s!==null&&(s.childLanes&t)!==t&&(s.childLanes|=t),e===n)break;e=e.return}}function br(e,t){ol=e,vh=cr=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Ze=!0),e.firstContext=null)}function bt(e){var t=e._currentValue;if(vh!==e)if(e={context:e,memoizedValue:t,next:null},cr===null){if(ol===null)throw Error(P(308));cr=e,ol.dependencies={lanes:0,firstContext:e}}else cr=cr.next=e;return t}var gs=null;function jh(e){gs===null?gs=[e]:gs.push(e)}function e0(e,t,n,s){var a=t.interleaved;return a===null?(n.next=n,jh(t)):(n.next=a.next,a.next=n),t.interleaved=n,cn(e,s)}function cn(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var jn=!1;function kh(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function t0(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function sn(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function zn(e,t,n){var s=e.updateQueue;if(s===null)return null;if(s=s.shared,G&2){var a=s.pending;return a===null?t.next=t:(t.next=a.next,a.next=t),s.pending=t,cn(e,n)}return a=s.interleaved,a===null?(t.next=t,jh(s)):(t.next=a.next,a.next=t),s.interleaved=t,cn(e,n)}function Oo(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var s=t.lanes;s&=e.pendingLanes,n|=s,t.lanes=n,lh(e,n)}}function Em(e,t){var n=e.updateQueue,s=e.alternate;if(s!==null&&(s=s.updateQueue,n===s)){var a=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};i===null?a=i=o:i=i.next=o,n=n.next}while(n!==null);i===null?a=i=t:i=i.next=t}else a=i=t;n={baseState:s.baseState,firstBaseUpdate:a,lastBaseUpdate:i,shared:s.shared,effects:s.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function ll(e,t,n,s){var a=e.updateQueue;jn=!1;var i=a.firstBaseUpdate,o=a.lastBaseUpdate,l=a.shared.pending;if(l!==null){a.shared.pending=null;var c=l,d=c.next;c.next=null,o===null?i=d:o.next=d,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,l=u.lastBaseUpdate,l!==o&&(l===null?u.firstBaseUpdate=d:l.next=d,u.lastBaseUpdate=c))}if(i!==null){var h=a.baseState;o=0,u=d=c=null,l=i;do{var p=l.lane,g=l.eventTime;if((s&p)===p){u!==null&&(u=u.next={eventTime:g,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var y=e,v=l;switch(p=t,g=n,v.tag){case 1:if(y=v.payload,typeof y=="function"){h=y.call(g,h,p);break e}h=y;break e;case 3:y.flags=y.flags&-65537|128;case 0:if(y=v.payload,p=typeof y=="function"?y.call(g,h,p):y,p==null)break e;h=de({},h,p);break e;case 2:jn=!0}}l.callback!==null&&l.lane!==0&&(e.flags|=64,p=a.effects,p===null?a.effects=[l]:p.push(l))}else g={eventTime:g,lane:p,tag:l.tag,payload:l.payload,callback:l.callback,next:null},u===null?(d=u=g,c=h):u=u.next=g,o|=p;if(l=l.next,l===null){if(l=a.shared.pending,l===null)break;p=l,l=p.next,p.next=null,a.lastBaseUpdate=p,a.shared.pending=null}}while(!0);if(u===null&&(c=h),a.baseState=c,a.firstBaseUpdate=d,a.lastBaseUpdate=u,t=a.shared.interleaved,t!==null){a=t;do o|=a.lane,a=a.next;while(a!==t)}else i===null&&(a.shared.lanes=0);Ls|=o,e.lanes=o,e.memoizedState=h}}function _m(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;t<e.length;t++){var s=e[t],a=s.callback;if(a!==null){if(s.callback=null,s=n,typeof a!="function")throw Error(P(191,a));a.call(s)}}}var Fi={},$t=ss(Fi),si=ss(Fi),ri=ss(Fi);function ys(e){if(e===Fi)throw Error(P(174));return e}function Nh(e,t){switch(ne(ri,t),ne(si,e),ne($t,Fi),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:kd(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=kd(t,e)}re($t),ne($t,t)}function Ur(){re($t),re(si),re(ri)}function n0(e){ys(ri.current);var t=ys($t.current),n=kd(t,e.type);t!==n&&(ne(si,e),ne($t,n))}function Sh(e){si.current===e&&(re($t),re(si))}var oe=ss(0);function cl(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Rc=[];function Ch(){for(var e=0;e<Rc.length;e++)Rc[e]._workInProgressVersionPrimary=null;Rc.length=0}var Ro=fn.ReactCurrentDispatcher,Lc=fn.ReactCurrentBatchConfig,Rs=0,ce=null,be=null,Se=null,dl=!1,La=!1,ai=0,bb=0;function Me(){throw Error(P(321))}function Ph(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!Mt(e[n],t[n]))return!1;return!0}function Th(e,t,n,s,a,i){if(Rs=i,ce=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Ro.current=e===null||e.memoizedState===null?Sb:Cb,e=n(s,a),La){i=0;do{if(La=!1,ai=0,25<=i)throw Error(P(301));i+=1,Se=be=null,t.updateQueue=null,Ro.current=Pb,e=n(s,a)}while(La)}if(Ro.current=ul,t=be!==null&&be.next!==null,Rs=0,Se=be=ce=null,dl=!1,t)throw Error(P(300));return e}function Eh(){var e=ai!==0;return ai=0,e}function It(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Se===null?ce.memoizedState=Se=e:Se=Se.next=e,Se}function jt(){if(be===null){var e=ce.alternate;e=e!==null?e.memoizedState:null}else e=be.next;var t=Se===null?ce.memoizedState:Se.next;if(t!==null)Se=t,be=e;else{if(e===null)throw Error(P(310));be=e,e={memoizedState:be.memoizedState,baseState:be.baseState,baseQueue:be.baseQueue,queue:be.queue,next:null},Se===null?ce.memoizedState=Se=e:Se=Se.next=e}return Se}function ii(e,t){return typeof t=="function"?t(e):t}function Ic(e){var t=jt(),n=t.queue;if(n===null)throw Error(P(311));n.lastRenderedReducer=e;var s=be,a=s.baseQueue,i=n.pending;if(i!==null){if(a!==null){var o=a.next;a.next=i.next,i.next=o}s.baseQueue=a=i,n.pending=null}if(a!==null){i=a.next,s=s.baseState;var l=o=null,c=null,d=i;do{var u=d.lane;if((Rs&u)===u)c!==null&&(c=c.next={lane:0,action:d.action,hasEagerState:d.hasEagerState,eagerState:d.eagerState,next:null}),s=d.hasEagerState?d.eagerState:e(s,d.action);else{var h={lane:u,action:d.action,hasEagerState:d.hasEagerState,eagerState:d.eagerState,next:null};c===null?(l=c=h,o=s):c=c.next=h,ce.lanes|=u,Ls|=u}d=d.next}while(d!==null&&d!==i);c===null?o=s:c.next=l,Mt(s,t.memoizedState)||(Ze=!0),t.memoizedState=s,t.baseState=o,t.baseQueue=c,n.lastRenderedState=s}if(e=n.interleaved,e!==null){a=e;do i=a.lane,ce.lanes|=i,Ls|=i,a=a.next;while(a!==e)}else a===null&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function Bc(e){var t=jt(),n=t.queue;if(n===null)throw Error(P(311));n.lastRenderedReducer=e;var s=n.dispatch,a=n.pending,i=t.memoizedState;if(a!==null){n.pending=null;var o=a=a.next;do i=e(i,o.action),o=o.next;while(o!==a);Mt(i,t.memoizedState)||(Ze=!0),t.memoizedState=i,t.baseQueue===null&&(t.baseState=i),n.lastRenderedState=i}return[i,s]}function s0(){}function r0(e,t){var n=ce,s=jt(),a=t(),i=!Mt(s.memoizedState,a);if(i&&(s.memoizedState=a,Ze=!0),s=s.queue,_h(o0.bind(null,n,s,e),[e]),s.getSnapshot!==t||i||Se!==null&&Se.memoizedState.tag&1){if(n.flags|=2048,oi(9,i0.bind(null,n,s,a,t),void 0,null),Ce===null)throw Error(P(349));Rs&30||a0(n,t,a)}return a}function a0(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=ce.updateQueue,t===null?(t={lastEffect:null,stores:null},ce.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function i0(e,t,n,s){t.value=n,t.getSnapshot=s,l0(t)&&c0(e)}function o0(e,t,n){return n(function(){l0(t)&&c0(e)})}function l0(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Mt(e,n)}catch{return!0}}function c0(e){var t=cn(e,1);t!==null&&Ft(t,e,1,-1)}function Am(e){var t=It();return typeof e=="function"&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:ii,lastRenderedState:e},t.queue=e,e=e.dispatch=Nb.bind(null,ce,e),[t.memoizedState,e]}function oi(e,t,n,s){return e={tag:e,create:t,destroy:n,deps:s,next:null},t=ce.updateQueue,t===null?(t={lastEffect:null,stores:null},ce.updateQueue=t,t.lastEffect=e.next=e):(n=t.lastEffect,n===null?t.lastEffect=e.next=e:(s=n.next,n.next=e,e.next=s,t.lastEffect=e)),e}function d0(){return jt().memoizedState}function Lo(e,t,n,s){var a=It();ce.flags|=e,a.memoizedState=oi(1|t,n,void 0,s===void 0?null:s)}function ql(e,t,n,s){var a=jt();s=s===void 0?null:s;var i=void 0;if(be!==null){var o=be.memoizedState;if(i=o.destroy,s!==null&&Ph(s,o.deps)){a.memoizedState=oi(t,n,i,s);return}}ce.flags|=e,a.memoizedState=oi(1|t,n,i,s)}function Fm(e,t){return Lo(8390656,8,e,t)}function _h(e,t){return ql(2048,8,e,t)}function u0(e,t){return ql(4,2,e,t)}function h0(e,t){return ql(4,4,e,t)}function p0(e,t){if(typeof t=="function")return e=e(),t(e),function(){t(null)};if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function m0(e,t,n){return n=n!=null?n.concat([e]):null,ql(4,4,p0.bind(null,t,e),n)}function Ah(){}function f0(e,t){var n=jt();t=t===void 0?null:t;var s=n.memoizedState;return s!==null&&t!==null&&Ph(t,s[1])?s[0]:(n.memoizedState=[e,t],e)}function x0(e,t){var n=jt();t=t===void 0?null:t;var s=n.memoizedState;return s!==null&&t!==null&&Ph(t,s[1])?s[0]:(e=e(),n.memoizedState=[e,t],e)}function g0(e,t,n){return Rs&21?(Mt(n,t)||(n=jy(),ce.lanes|=n,Ls|=n,e.baseState=!0),t):(e.baseState&&(e.baseState=!1,Ze=!0),e.memoizedState=n)}function jb(e,t){var n=ee;ee=n!==0&&4>n?n:4,e(!0);var s=Lc.transition;Lc.transition={};try{e(!1),t()}finally{ee=n,Lc.transition=s}}function y0(){return jt().memoizedState}function kb(e,t,n){var s=$n(e);if(n={lane:s,action:n,hasEagerState:!1,eagerState:null,next:null},v0(e))w0(t,n);else if(n=e0(e,t,n,s),n!==null){var a=ze();Ft(n,e,s,a),b0(n,t,s)}}function Nb(e,t,n){var s=$n(e),a={lane:s,action:n,hasEagerState:!1,eagerState:null,next:null};if(v0(e))w0(t,a);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var o=t.lastRenderedState,l=i(o,n);if(a.hasEagerState=!0,a.eagerState=l,Mt(l,o)){var c=t.interleaved;c===null?(a.next=a,jh(t)):(a.next=c.next,c.next=a),t.interleaved=a;return}}catch{}finally{}n=e0(e,t,a,s),n!==null&&(a=ze(),Ft(n,e,s,a),b0(n,t,s))}}function v0(e){var t=e.alternate;return e===ce||t!==null&&t===ce}function w0(e,t){La=dl=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function b0(e,t,n){if(n&4194240){var s=t.lanes;s&=e.pendingLanes,n|=s,t.lanes=n,lh(e,n)}}var ul={readContext:bt,useCallback:Me,useContext:Me,useEffect:Me,useImperativeHandle:Me,useInsertionEffect:Me,useLayoutEffect:Me,useMemo:Me,useReducer:Me,useRef:Me,useState:Me,useDebugValue:Me,useDeferredValue:Me,useTransition:Me,useMutableSource:Me,useSyncExternalStore:Me,useId:Me,unstable_isNewReconciler:!1},Sb={readContext:bt,useCallback:function(e,t){return It().memoizedState=[e,t===void 0?null:t],e},useContext:bt,useEffect:Fm,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Lo(4194308,4,p0.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Lo(4194308,4,e,t)},useInsertionEffect:function(e,t){return Lo(4,2,e,t)},useMemo:function(e,t){var n=It();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var s=It();return t=n!==void 0?n(t):t,s.memoizedState=s.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},s.queue=e,e=e.dispatch=kb.bind(null,ce,e),[s.memoizedState,e]},useRef:function(e){var t=It();return e={current:e},t.memoizedState=e},useState:Am,useDebugValue:Ah,useDeferredValue:function(e){return It().memoizedState=e},useTransition:function(){var e=Am(!1),t=e[0];return e=jb.bind(null,e[1]),It().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var s=ce,a=It();if(ie){if(n===void 0)throw Error(P(407));n=n()}else{if(n=t(),Ce===null)throw Error(P(349));Rs&30||a0(s,t,n)}a.memoizedState=n;var i={value:n,getSnapshot:t};return a.queue=i,Fm(o0.bind(null,s,i,e),[e]),s.flags|=2048,oi(9,i0.bind(null,s,i,n,t),void 0,null),n},useId:function(){var e=It(),t=Ce.identifierPrefix;if(ie){var n=nn,s=tn;n=(s&~(1<<32-At(s)-1)).toString(32)+n,t=":"+t+"R"+n,n=ai++,0<n&&(t+="H"+n.toString(32)),t+=":"}else n=bb++,t=":"+t+"r"+n.toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},Cb={readContext:bt,useCallback:f0,useContext:bt,useEffect:_h,useImperativeHandle:m0,useInsertionEffect:u0,useLayoutEffect:h0,useMemo:x0,useReducer:Ic,useRef:d0,useState:function(){return Ic(ii)},useDebugValue:Ah,useDeferredValue:function(e){var t=jt();return g0(t,be.memoizedState,e)},useTransition:function(){var e=Ic(ii)[0],t=jt().memoizedState;return[e,t]},useMutableSource:s0,useSyncExternalStore:r0,useId:y0,unstable_isNewReconciler:!1},Pb={readContext:bt,useCallback:f0,useContext:bt,useEffect:_h,useImperativeHandle:m0,useInsertionEffect:u0,useLayoutEffect:h0,useMemo:x0,useReducer:Bc,useRef:d0,useState:function(){return Bc(ii)},useDebugValue:Ah,useDeferredValue:function(e){var t=jt();return be===null?t.memoizedState=e:g0(t,be.memoizedState,e)},useTransition:function(){var e=Bc(ii)[0],t=jt().memoizedState;return[e,t]},useMutableSource:s0,useSyncExternalStore:r0,useId:y0,unstable_isNewReconciler:!1};function Pt(e,t){if(e&&e.defaultProps){t=de({},t),e=e.defaultProps;for(var n in e)t[n]===void 0&&(t[n]=e[n]);return t}return t}function $d(e,t,n,s){t=e.memoizedState,n=n(s,t),n=n==null?t:de({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var Hl={isMounted:function(e){return(e=e._reactInternals)?Us(e)===e:!1},enqueueSetState:function(e,t,n){e=e._reactInternals;var s=ze(),a=$n(e),i=sn(s,a);i.payload=t,n!=null&&(i.callback=n),t=zn(e,i,a),t!==null&&(Ft(t,e,a,s),Oo(t,e,a))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var s=ze(),a=$n(e),i=sn(s,a);i.tag=1,i.payload=t,n!=null&&(i.callback=n),t=zn(e,i,a),t!==null&&(Ft(t,e,a,s),Oo(t,e,a))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=ze(),s=$n(e),a=sn(n,s);a.tag=2,t!=null&&(a.callback=t),t=zn(e,a,s),t!==null&&(Ft(t,e,s,n),Oo(t,e,s))}};function Mm(e,t,n,s,a,i,o){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(s,i,o):t.prototype&&t.prototype.isPureReactComponent?!Xa(n,s)||!Xa(a,i):!0}function j0(e,t,n){var s=!1,a=Yn,i=t.contextType;return typeof i=="object"&&i!==null?i=bt(i):(a=Xe(t)?Ds:Be.current,s=t.contextTypes,i=(s=s!=null)?Ir(e,a):Yn),t=new t(n,i),e.memoizedState=t.state!==null&&t.state!==void 0?t.state:null,t.updater=Hl,e.stateNode=t,t._reactInternals=e,s&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=i),t}function Dm(e,t,n,s){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(n,s),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(n,s),t.state!==e&&Hl.enqueueReplaceState(t,t.state,null)}function qd(e,t,n,s){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs={},kh(e);var i=t.contextType;typeof i=="object"&&i!==null?a.context=bt(i):(i=Xe(t)?Ds:Be.current,a.context=Ir(e,i)),a.state=e.memoizedState,i=t.getDerivedStateFromProps,typeof i=="function"&&($d(e,t,i,n),a.state=e.memoizedState),typeof t.getDerivedStateFromProps=="function"||typeof a.getSnapshotBeforeUpdate=="function"||typeof a.UNSAFE_componentWillMount!="function"&&typeof a.componentWillMount!="function"||(t=a.state,typeof a.componentWillMount=="function"&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount=="function"&&a.UNSAFE_componentWillMount(),t!==a.state&&Hl.enqueueReplaceState(a,a.state,null),ll(e,n,a,s),a.state=e.memoizedState),typeof a.componentDidMount=="function"&&(e.flags|=4194308)}function zr(e,t){try{var n="",s=t;do n+=t2(s),s=s.return;while(s);var a=n}catch(i){a=`
39Error generating stack: `+i.message+`
40`+i.stack}return{value:e,source:t,stack:a,digest:null}}function Vc(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function Hd(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var Tb=typeof WeakMap=="function"?WeakMap:Map;function k0(e,t,n){n=sn(-1,n),n.tag=3,n.payload={element:null};var s=t.value;return n.callback=function(){pl||(pl=!0,nu=s),Hd(e,t)},n}function N0(e,t,n){n=sn(-1,n),n.tag=3;var s=e.type.getDerivedStateFromError;if(typeof s=="function"){var a=t.value;n.payload=function(){return s(a)},n.callback=function(){Hd(e,t)}}var i=e.stateNode;return i!==null&&typeof i.componentDidCatch=="function"&&(n.callback=function(){Hd(e,t),typeof s!="function"&&(Wn===null?Wn=new Set([this]):Wn.add(this));var o=t.stack;this.componentDidCatch(t.value,{componentStack:o!==null?o:""})}),n}
vendor: 10,320 bytes, line 40
40function Om(e,t,n){var s=e.pingCache;if(s===null){s=e.pingCache=new Tb;var a=new Set;s.set(t,a)}else a=s.get(t),a===void 0&&(a=new Set,s.set(t,a));a.has(n)||(a.add(n),e=zb.bind(null,e,t,n),t.then(e,e))}function Rm(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function Lm(e,t,n,s,a){return e.mode&1?(e.flags|=65536,e.lanes=a,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=sn(-1,1),t.tag=2,zn(n,t,1))),n.lanes|=1),e)}var Eb=fn.ReactCurrentOwner,Ze=!1;function Ue(e,t,n,s){t.child=e===null?Xy(t,null,n,s):Vr(t,e.child,n,s)}function Im(e,t,n,s,a){n=n.render;var i=t.ref;return br(t,a),s=Th(e,t,n,s,i,a),n=Eh(),e!==null&&!Ze?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,dn(e,t,a)):(ie&&n&&xh(t),t.flags|=1,Ue(e,t,s,a),t.child)}function Bm(e,t,n,s,a){if(e===null){var i=n.type;return typeof i=="function"&&!Bh(i)&&i.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=i,S0(e,t,i,s,a)):(e=Uo(n.type,null,s,t,t.mode,a),e.ref=t.ref,e.return=t,t.child=e)}if(i=e.child,!(e.lanes&a)){var o=i.memoizedProps;if(n=n.compare,n=n!==null?n:Xa,n(o,s)&&e.ref===t.ref)return dn(e,t,a)}return t.flags|=1,e=qn(i,s),e.ref=t.ref,e.return=t,t.child=e}function S0(e,t,n,s,a){if(e!==null){var i=e.memoizedProps;if(Xa(i,s)&&e.ref===t.ref)if(Ze=!1,t.pendingProps=s=i,(e.lanes&a)!==0)e.flags&131072&&(Ze=!0);else return t.lanes=e.lanes,dn(e,t,a)}return Jd(e,t,n,s,a)}function C0(e,t,n){var s=t.pendingProps,a=s.children,i=e!==null?e.memoizedState:null;if(s.mode==="hidden")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},ne(ur,st),st|=n;else{if(!(n&1073741824))return e=i!==null?i.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,ne(ur,st),st|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},s=i!==null?i.baseLanes:n,ne(ur,st),st|=s}else i!==null?(s=i.baseLanes|n,t.memoizedState=null):s=n,ne(ur,st),st|=s;return Ue(e,t,a,n),t.child}function P0(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Jd(e,t,n,s,a){var i=Xe(n)?Ds:Be.current;return i=Ir(t,i),br(t,a),n=Th(e,t,n,s,i,a),s=Eh(),e!==null&&!Ze?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,dn(e,t,a)):(ie&&s&&xh(t),t.flags|=1,Ue(e,t,n,a),t.child)}function Vm(e,t,n,s,a){if(Xe(n)){var i=!0;sl(t)}else i=!1;if(br(t,a),t.stateNode===null)Io(e,t),j0(t,n,s),qd(t,n,s,a),s=!0;else if(e===null){var o=t.stateNode,l=t.memoizedProps;o.props=l;var c=o.context,d=n.contextType;typeof d=="object"&&d!==null?d=bt(d):(d=Xe(n)?Ds:Be.current,d=Ir(t,d));var u=n.getDerivedStateFromProps,h=typeof u=="function"||typeof o.getSnapshotBeforeUpdate=="function";h||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(l!==s||c!==d)&&Dm(t,o,s,d),jn=!1;var p=t.memoizedState;o.state=p,ll(t,s,o,a),c=t.memoizedState,l!==s||p!==c||Ke.current||jn?(typeof u=="function"&&($d(t,n,u,s),c=t.memoizedState),(l=jn||Mm(t,n,l,s,p,c,d))?(h||typeof o.UNSAFE_componentWillMount!="function"&&typeof o.componentWillMount!="function"||(typeof o.componentWillMount=="function"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount=="function"&&o.UNSAFE_componentWillMount()),typeof o.componentDidMount=="function"&&(t.flags|=4194308)):(typeof o.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=s,t.memoizedState=c),o.props=s,o.state=c,o.context=d,s=l):(typeof o.componentDidMount=="function"&&(t.flags|=4194308),s=!1)}else{o=t.stateNode,t0(e,t),l=t.memoizedProps,d=t.type===t.elementType?l:Pt(t.type,l),o.props=d,h=t.pendingProps,p=o.context,c=n.contextType,typeof c=="object"&&c!==null?c=bt(c):(c=Xe(n)?Ds:Be.current,c=Ir(t,c));var g=n.getDerivedStateFromProps;(u=typeof g=="function"||typeof o.getSnapshotBeforeUpdate=="function")||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(l!==h||p!==c)&&Dm(t,o,s,c),jn=!1,p=t.memoizedState,o.state=p,ll(t,s,o,a);var y=t.memoizedState;l!==h||p!==y||Ke.current||jn?(typeof g=="function"&&($d(t,n,g,s),y=t.memoizedState),(d=jn||Mm(t,n,d,s,p,y,c)||!1)?(u||typeof o.UNSAFE_componentWillUpdate!="function"&&typeof o.componentWillUpdate!="function"||(typeof o.componentWillUpdate=="function"&&o.componentWillUpdate(s,y,c),typeof o.UNSAFE_componentWillUpdate=="function"&&o.UNSAFE_componentWillUpdate(s,y,c)),typeof o.componentDidUpdate=="function"&&(t.flags|=4),typeof o.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof o.componentDidUpdate!="function"||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),t.memoizedProps=s,t.memoizedState=y),o.props=s,o.state=y,o.context=c,s=d):(typeof o.componentDidUpdate!="function"||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),s=!1)}return Qd(e,t,n,s,i,a)}function Qd(e,t,n,s,a,i){P0(e,t);var o=(t.flags&128)!==0;if(!s&&!o)return a&&Sm(t,n,!1),dn(e,t,i);s=t.stateNode,Eb.current=t;var l=o&&typeof n.getDerivedStateFromError!="function"?null:s.render();return t.flags|=1,e!==null&&o?(t.child=Vr(t,e.child,null,i),t.child=Vr(t,null,l,i)):Ue(e,t,l,i),t.memoizedState=s.state,a&&Sm(t,n,!0),t.child}function T0(e){var t=e.stateNode;t.pendingContext?Nm(e,t.pendingContext,t.pendingContext!==t.context):t.context&&Nm(e,t.context,!1),Nh(e,t.containerInfo)}function Um(e,t,n,s,a){return Br(),yh(a),t.flags|=256,Ue(e,t,n,s),t.child}var Gd={dehydrated:null,treeContext:null,retryLane:0};function Yd(e){return{baseLanes:e,cachePool:null,transitions:null}}function E0(e,t,n){var s=t.pendingProps,a=oe.current,i=!1,o=(t.flags&128)!==0,l;if((l=o)||(l=e!==null&&e.memoizedState===null?!1:(a&2)!==0),l?(i=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(a|=1),ne(oe,a&1),e===null)return zd(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?(t.mode&1?e.data==="$!"?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(o=s.children,e=s.fallback,i?(s=t.mode,i=t.child,o={mode:"hidden",children:o},!(s&1)&&i!==null?(i.childLanes=0,i.pendingProps=o):i=Gl(o,s,0,null),e=As(e,s,n,null),i.return=t,e.return=t,i.sibling=e,t.child=i,t.child.memoizedState=Yd(n),t.memoizedState=Gd,e):Fh(t,o));if(a=e.memoizedState,a!==null&&(l=a.dehydrated,l!==null))return _b(e,t,o,s,l,a,n);if(i){i=s.fallback,o=t.mode,a=e.child,l=a.sibling;var c={mode:"hidden",children:s.children};return!(o&1)&&t.child!==a?(s=t.child,s.childLanes=0,s.pendingProps=c,t.deletions=null):(s=qn(a,c),s.subtreeFlags=a.subtreeFlags&14680064),l!==null?i=qn(l,i):(i=As(i,o,n,null),i.flags|=2),i.return=t,s.return=t,s.sibling=i,t.child=s,s=i,i=t.child,o=e.child.memoizedState,o=o===null?Yd(n):{baseLanes:o.baseLanes|n,cachePool:null,transitions:o.transitions},i.memoizedState=o,i.childLanes=e.childLanes&~n,t.memoizedState=Gd,s}return i=e.child,e=i.sibling,s=qn(i,{mode:"visible",children:s.children}),!(t.mode&1)&&(s.lanes=n),s.return=t,s.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=s,t.memoizedState=null,s}function Fh(e,t){return t=Gl({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function ao(e,t,n,s){return s!==null&&yh(s),Vr(t,e.child,null,n),e=Fh(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function _b(e,t,n,s,a,i,o){if(n)return t.flags&256?(t.flags&=-257,s=Vc(Error(P(422))),ao(e,t,o,s)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(i=s.fallback,a=t.mode,s=Gl({mode:"visible",children:s.children},a,0,null),i=As(i,a,o,null),i.flags|=2,s.return=t,i.return=t,s.sibling=i,t.child=s,t.mode&1&&Vr(t,e.child,null,o),t.child.memoizedState=Yd(o),t.memoizedState=Gd,i);if(!(t.mode&1))return ao(e,t,o,null);if(a.data==="$!"){if(s=a.nextSibling&&a.nextSibling.dataset,s)var l=s.dgst;return s=l,i=Error(P(419)),s=Vc(i,s,void 0),ao(e,t,o,s)}if(l=(o&e.childLanes)!==0,Ze||l){if(s=Ce,s!==null){switch(o&-o){case 4:a=2;break;case 16:a=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:a=32;break;case 536870912:a=268435456;break;default:a=0}a=a&(s.suspendedLanes|o)?0:a,a!==0&&a!==i.retryLane&&(i.retryLane=a,cn(e,a),Ft(s,e,a,-1))}return Ih(),s=Vc(Error(P(421))),ao(e,t,o,s)}return a.data==="$?"?(t.flags|=128,t.child=e.child,t=Wb.bind(null,e),a._reactRetry=t,null):(e=i.treeContext,it=Un(a.nextSibling),ot=t,ie=!0,_t=null,e!==null&&(gt[yt++]=tn,gt[yt++]=nn,gt[yt++]=Os,tn=e.id,nn=e.overflow,Os=t),t=Fh(t,s.children),t.flags|=4096,t)}function zm(e,t,n){e.lanes|=t;var s=e.alternate;s!==null&&(s.lanes|=t),Wd(e.return,t,n)}function Uc(e,t,n,s,a){var i=e.memoizedState;i===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:s,tail:n,tailMode:a}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=s,i.tail=n,i.tailMode=a)}function _0(e,t,n){var s=t.pendingProps,a=s.revealOrder,i=s.tail;if(Ue(e,t,s.children,n),s=oe.current,s&2)s=s&1|2,t.flags|=128;else{if(e!==null&&e.flags&128)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&zm(e,n,t);else if(e.tag===19)zm(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}s&=1}if(ne(oe,s),!(t.mode&1))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;n!==null;)e=n.alternate,e!==null&&cl(e)===null&&(a=n),n=n.sibling;n=a,n===null?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),Uc(t,!1,a,n,i);break;case"backwards":for(n=null,a=t.child,t.child=null;a!==null;){if(e=a.alternate,e!==null&&cl(e)===null){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}Uc(t,!0,n,null,i);break;case"together":Uc(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Io(e,t){!(t.mode&1)&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function dn(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Ls|
vendor: 4,120 bytes, line 40
40=t.lanes,!(n&t.childLanes))return null;if(e!==null&&t.child!==e.child)throw Error(P(153));if(t.child!==null){for(e=t.child,n=qn(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=qn(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Ab(e,t,n){switch(t.tag){case 3:T0(t),Br();break;case 5:n0(t);break;case 1:Xe(t.type)&&sl(t);break;case 4:Nh(t,t.stateNode.containerInfo);break;case 10:var s=t.type._context,a=t.memoizedProps.value;ne(il,s._currentValue),s._currentValue=a;break;case 13:if(s=t.memoizedState,s!==null)return s.dehydrated!==null?(ne(oe,oe.current&1),t.flags|=128,null):n&t.child.childLanes?E0(e,t,n):(ne(oe,oe.current&1),e=dn(e,t,n),e!==null?e.sibling:null);ne(oe,oe.current&1);break;case 19:if(s=(n&t.childLanes)!==0,e.flags&128){if(s)return _0(e,t,n);t.flags|=128}if(a=t.memoizedState,a!==null&&(a.rendering=null,a.tail=null,a.lastEffect=null),ne(oe,oe.current),s)break;return null;case 22:case 23:return t.lanes=0,C0(e,t,n)}return dn(e,t,n)}var A0,Zd,F0,M0;A0=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}};Zd=function(){};F0=function(e,t,n,s){var a=e.memoizedProps;if(a!==s){e=t.stateNode,ys($t.current);var i=null;switch(n){case"input":a=vd(e,a),s=vd(e,s),i=[];break;case"select":a=de({},a,{value:void 0}),s=de({},s,{value:void 0}),i=[];break;case"textarea":a=jd(e,a),s=jd(e,s),i=[];break;default:typeof a.onClick!="function"&&typeof s.onClick=="function"&&(e.onclick=tl)}Nd(n,s);var o;n=null;for(d in a)if(!s.hasOwnProperty(d)&&a.hasOwnProperty(d)&&a[d]!=null)if(d==="style"){var l=a[d];for(o in l)l.hasOwnProperty(o)&&(n||(n={}),n[o]="")}else d!=="dangerouslySetInnerHTML"&&d!=="children"&&d!=="suppressContentEditableWarning"&&d!=="suppressHydrationWarning"&&d!=="autoFocus"&&(Ha.hasOwnProperty(d)?i||(i=[]):(i=i||[]).push(d,null));for(d in s){var c=s[d];if(l=a!=null?a[d]:void 0,s.hasOwnProperty(d)&&c!==l&&(c!=null||l!=null))if(d==="style")if(l){for(o in l)!l.hasOwnProperty(o)||c&&c.hasOwnProperty(o)||(n||(n={}),n[o]="");for(o in c)c.hasOwnProperty(o)&&l[o]!==c[o]&&(n||(n={}),n[o]=c[o])}else n||(i||(i=[]),i.push(d,n)),n=c;else d==="dangerouslySetInnerHTML"?(c=c?c.__html:void 0,l=l?l.__html:void 0,c!=null&&l!==c&&(i=i||[]).push(d,c)):d==="children"?typeof c!="string"&&typeof c!="number"||(i=i||[]).push(d,""+c):d!=="suppressContentEditableWarning"&&d!=="suppressHydrationWarning"&&(Ha.hasOwnProperty(d)?(c!=null&&d==="onScroll"&&se("scroll",e),i||l===c||(i=[])):(i=i||[]).push(d,c))}n&&(i=i||[]).push("style",n);var d=i;(t.updateQueue=d)&&(t.flags|=4)}};M0=function(e,t,n,s){n!==s&&(t.flags|=4)};function ga(e,t){if(!ie)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var s=null;n!==null;)n.alternate!==null&&(s=n),n=n.sibling;s===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:s.sibling=null}}function De(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,s=0;if(t)for(var a=e.child;a!==null;)n|=a.lanes|a.childLanes,s|=a.subtreeFlags&14680064,s|=a.flags&14680064,a.return=e,a=a.sibling;else for(a=e.child;a!==null;)n|=a.lanes|a.childLanes,s|=a.subtreeFlags,s|=a.flags,a.return=e,a=a.sibling;return e.subtreeFlags|=s,e.childLanes=n,t}function Fb(e,t,n){var s=t.pendingProps;switch(gh(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return De(t),null;case 1:return Xe(t.type)&&nl(),De(t),null;case 3:return s=t.stateNode,Ur(),re(Ke),re(Be),Ch(),s.pendingContext&&(s.context=s.pendingContext,s.pendingContext=null),(e===null||e.child===null)&&(so(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,_t!==null&&(au(_t),_t=null))),Zd(e,t),De(t),null;case 5:Sh(t);var a=ys(ri.current);if(n=t.type,e!==null&&t.stateNode!=null)F0(e,t,n,s,a),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);
vendor: 31,054 bytes, line 40
40else{if(!s){if(t.stateNode===null)throw Error(P(166));return De(t),null}if(e=ys($t.current),so(t)){s=t.stateNode,n=t.type;var i=t.memoizedProps;switch(s[zt]=t,s[ni]=i,e=(t.mode&1)!==0,n){case"dialog":se("cancel",s),se("close",s);break;case"iframe":case"object":case"embed":se("load",s);break;case"video":case"audio":for(a=0;a<Ca.length;a++)se(Ca[a],s);break;case"source":se("error",s);break;case"img":case"image":case"link":se("error",s),se("load",s);break;case"details":se("toggle",s);break;case"input":Zp(s,i),se("invalid",s);break;case"select":s._wrapperState={wasMultiple:!!i.multiple},se("invalid",s);break;case"textarea":Xp(s,i),se("invalid",s)}Nd(n,i),a=null;for(var o in i)if(i.hasOwnProperty(o)){var l=i[o];o==="children"?typeof l=="string"?s.textContent!==l&&(i.suppressHydrationWarning!==!0&&no(s.textContent,l,e),a=["children",l]):typeof l=="number"&&s.textContent!==""+l&&(i.suppressHydrationWarning!==!0&&no(s.textContent,l,e),a=["children",""+l]):Ha.hasOwnProperty(o)&&l!=null&&o==="onScroll"&&se("scroll",s)}switch(n){case"input":Qi(s),Kp(s,i,!0);break;case"textarea":Qi(s),em(s);break;case"select":case"option":break;default:typeof i.onClick=="function"&&(s.onclick=tl)}s=a,t.updateQueue=s,s!==null&&(t.flags|=4)}else{o=a.nodeType===9?a:a.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=oy(n)),e==="http://www.w3.org/1999/xhtml"?n==="script"?(e=o.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):typeof s.is=="string"?e=o.createElement(n,{is:s.is}):(e=o.createElement(n),n==="select"&&(o=e,s.multiple?o.multiple=!0:s.size&&(o.size=s.size))):e=o.createElementNS(e,n),e[zt]=t,e[ni]=s,A0(e,t,!1,!1),t.stateNode=e;e:{switch(o=Sd(n,s),n){case"dialog":se("cancel",e),se("close",e),a=s;break;case"iframe":case"object":case"embed":se("load",e),a=s;break;case"video":case"audio":for(a=0;a<Ca.length;a++)se(Ca[a],e);a=s;break;case"source":se("error",e),a=s;break;case"img":case"image":case"link":se("error",e),se("load",e),a=s;break;case"details":se("toggle",e),a=s;break;case"input":Zp(e,s),a=vd(e,s),se("invalid",e);break;case"option":a=s;break;case"select":e._wrapperState={wasMultiple:!!s.multiple},a=de({},s,{value:void 0}),se("invalid",e);break;case"textarea":Xp(e,s),a=jd(e,s),se("invalid",e);break;default:a=s}Nd(n,a),l=a;for(i in l)if(l.hasOwnProperty(i)){var c=l[i];i==="style"?dy(e,c):i==="dangerouslySetInnerHTML"?(c=c?c.__html:void 0,c!=null&&ly(e,c)):i==="children"?typeof c=="string"?(n!=="textarea"||c!=="")&&Ja(e,c):typeof c=="number"&&Ja(e,""+c):i!=="suppressContentEditableWarning"&&i!=="suppressHydrationWarning"&&i!=="autoFocus"&&(Ha.hasOwnProperty(i)?c!=null&&i==="onScroll"&&se("scroll",e):c!=null&&nh(e,i,c,o))}switch(n){case"input":Qi(e),Kp(e,s,!1);break;case"textarea":Qi(e),em(e);break;case"option":s.value!=null&&e.setAttribute("value",""+Gn(s.value));break;case"select":e.multiple=!!s.multiple,i=s.value,i!=null?gr(e,!!s.multiple,i,!1):s.defaultValue!=null&&gr(e,!!s.multiple,s.defaultValue,!0);break;default:typeof a.onClick=="function"&&(e.onclick=tl)}switch(n){case"button":case"input":case"select":case"textarea":s=!!s.autoFocus;break e;case"img":s=!0;break e;default:s=!1}}s&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return De(t),null;case 6:if(e&&t.stateNode!=null)M0(e,t,e.memoizedProps,s);else{if(typeof s!="string"&&t.stateNode===null)throw Error(P(166));if(n=ys(ri.current),ys($t.current),so(t)){if(s=t.stateNode,n=t.memoizedProps,s[zt]=t,(i=s.nodeValue!==n)&&(e=ot,e!==null))switch(e.tag){case 3:no(s.nodeValue,n,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&no(s.nodeValue,n,(e.mode&1)!==0)}i&&(t.flags|=4)}else s=(n.nodeType===9?n:n.ownerDocument).createTextNode(s),s[zt]=t,t.stateNode=s}return De(t),null;case 13:if(re(oe),s=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(ie&&it!==null&&t.mode&1&&!(t.flags&128))Zy(),Br(),t.flags|=98560,i=!1;else if(i=so(t),s!==null&&s.dehydrated!==null){if(e===null){if(!i)throw Error(P(318));if(i=t.memoizedState,i=i!==null?i.dehydrated:null,!i)throw Error(P(317));i[zt]=t}else Br(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;De(t),i=!1}else _t!==null&&(au(_t),_t=null),i=!0;if(!i)return t.flags&65536?t:null}return t.flags&128?(t.lanes=n,t):(s=s!==null,s!==(e!==null&&e.memoizedState!==null)&&s&&(t.child.flags|=8192,t.mode&1&&(e===null||oe.current&1?je===0&&(je=3):Ih())),t.updateQueue!==null&&(t.flags|=4),De(t),null);case 4:return Ur(),Zd(e,t),e===null&&ei(t.stateNode.containerInfo),De(t),null;case 10:return bh(t.type._context),De(t),null;case 17:return Xe(t.type)&&nl(),De(t),null;case 19:if(re(oe),i=t.memoizedState,i===null)return De(t),null;if(s=(t.flags&128)!==0,o=i.rendering,o===null)if(s)ga(i,!1);else{if(je!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=cl(e),o!==null){for(t.flags|=128,ga(i,!1),s=o.updateQueue,s!==null&&(t.updateQueue=s,t.flags|=4),t.subtreeFlags=0,s=n,n=t.child;n!==null;)i=n,e=s,i.flags&=14680066,o=i.alternate,o===null?(i.childLanes=0,i.lanes=e,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=o.childLanes,i.lanes=o.lanes,i.child=o.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=o.memoizedProps,i.memoizedState=o.memoizedState,i.updateQueue=o.updateQueue,i.type=o.type,e=o.dependencies,i.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return ne(oe,oe.current&1|2),t.child}e=e.sibling}i.tail!==null&&xe()>Wr&&(t.flags|=128,s=!0,ga(i,!1),t.lanes=4194304)}else{if(!s)if(e=cl(o),e!==null){if(t.flags|=128,s=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),ga(i,!0),i.tail===null&&i.tailMode==="hidden"&&!o.alternate&&!ie)return De(t),null}else 2*xe()-i.renderingStartTime>Wr&&n!==1073741824&&(t.flags|=128,s=!0,ga(i,!1),t.lanes=4194304);i.isBackwards?(o.sibling=t.child,t.child=o):(n=i.last,n!==null?n.sibling=o:t.child=o,i.last=o)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=xe(),t.sibling=null,n=oe.current,ne(oe,s?n&1|2:n&1),t):(De(t),null);case 22:case 23:return Lh(),s=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==s&&(t.flags|=8192),s&&t.mode&1?st&1073741824&&(De(t),t.subtreeFlags&6&&(t.flags|=8192)):De(t),null;case 24:return null;case 25:return null}throw Error(P(156,t.tag))}function Mb(e,t){switch(gh(t),t.tag){case 1:return Xe(t.type)&&nl(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Ur(),re(Ke),re(Be),Ch(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Sh(t),null;case 13:if(re(oe),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(P(340));Br()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return re(oe),null;case 4:return Ur(),null;case 10:return bh(t.type._context),null;case 22:case 23:return Lh(),null;case 24:return null;default:return null}}var io=!1,Le=!1,Db=typeof WeakSet=="function"?WeakSet:Set,M=null;function dr(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(s){pe(e,t,s)}else n.current=null}function Kd(e,t,n){try{n()}catch(s){pe(e,t,s)}}var Wm=!1;function Ob(e,t){if(Od=Ko,e=Iy(),fh(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var s=n.getSelection&&n.getSelection();if(s&&s.rangeCount!==0){n=s.anchorNode;var a=s.anchorOffset,i=s.focusNode;s=s.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var o=0,l=-1,c=-1,d=0,u=0,h=e,p=null;t:for(;;){for(var g;h!==n||a!==0&&h.nodeType!==3||(l=o+a),h!==i||s!==0&&h.nodeType!==3||(c=o+s),h.nodeType===3&&(o+=h.nodeValue.length),(g=h.firstChild)!==null;)p=h,h=g;for(;;){if(h===e)break t;if(p===n&&++d===a&&(l=o),p===i&&++u===s&&(c=o),(g=h.nextSibling)!==null)break;h=p,p=h.parentNode}h=g}n=l===-1||c===-1?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(Rd={focusedElem:e,selectionRange:n},Ko=!1,M=t;M!==null;)if(t=M,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,M=e;else for(;M!==null;){t=M;try{var y=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(y!==null){var v=y.memoizedProps,k=y.memoizedState,f=t.stateNode,x=f.getSnapshotBeforeUpdate(t.elementType===t.type?v:Pt(t.type,v),k);f.__reactInternalSnapshotBeforeUpdate=x}break;case 3:var m=t.stateNode.containerInfo;m.nodeType===1?m.textContent="":m.nodeType===9&&m.documentElement&&m.removeChild(m.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(P(163))}}catch(b){pe(t,t.return,b)}if(e=t.sibling,e!==null){e.return=t.return,M=e;break}M=t.return}return y=Wm,Wm=!1,y}function Ia(e,t,n){var s=t.updateQueue;if(s=s!==null?s.lastEffect:null,s!==null){var a=s=s.next;do{if((a.tag&e)===e){var i=a.destroy;a.destroy=void 0,i!==void 0&&Kd(t,n,i)}a=a.next}while(a!==s)}}function Jl(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var s=n.create;n.destroy=s()}n=n.next}while(n!==t)}}function Xd(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function D0(e){var t=e.alternate;t!==null&&(e.alternate=null,D0(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[zt],delete t[ni],delete t[Bd],delete t[gb],delete t[yb])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function O0(e){return e.tag===5||e.tag===3||e.tag===4}function $m(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||O0(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function eu(e,t,n){var s=e.tag;if(s===5||s===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=tl));else if(s!==4&&(e=e.child,e!==null))for(eu(e,t,n),e=e.sibling;e!==null;)eu(e,t,n),e=e.sibling}function tu(e,t,n){var s=e.tag;if(s===5||s===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(s!==4&&(e=e.child,e!==null))for(tu(e,t,n),e=e.sibling;e!==null;)tu(e,t,n),e=e.sibling}var Pe=null,Et=!1;function yn(e,t,n){for(n=n.child;n!==null;)R0(e,t,n),n=n.sibling}function R0(e,t,n){if(Wt&&typeof Wt.onCommitFiberUnmount=="function")try{Wt.onCommitFiberUnmount(Bl,n)}catch{}switch(n.tag){case 5:Le||dr(n,t);case 6:var s=Pe,a=Et;Pe=null,yn(e,t,n),Pe=s,Et=a,Pe!==null&&(Et?(e=Pe,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Pe.removeChild(n.stateNode));break;case 18:Pe!==null&&(Et?(e=Pe,n=n.stateNode,e.nodeType===8?Dc(e.parentNode,n):e.nodeType===1&&Dc(e,n),Za(e)):Dc(Pe,n.stateNode));break;case 4:s=Pe,a=Et,Pe=n.stateNode.containerInfo,Et=!0,yn(e,t,n),Pe=s,Et=a;break;case 0:case 11:case 14:case 15:if(!Le&&(s=n.updateQueue,s!==null&&(s=s.lastEffect,s!==null))){a=s=s.next;do{var i=a,o=i.destroy;i=i.tag,o!==void 0&&(i&2||i&4)&&Kd(n,t,o),a=a.next}while(a!==s)}yn(e,t,n);break;case 1:if(!Le&&(dr(n,t),s=n.stateNode,typeof s.componentWillUnmount=="function"))try{s.props=n.memoizedProps,s.state=n.memoizedState,s.componentWillUnmount()}catch(l){pe(n,t,l)}yn(e,t,n);break;case 21:yn(e,t,n);break;case 22:n.mode&1?(Le=(s=Le)||n.memoizedState!==null,yn(e,t,n),Le=s):yn(e,t,n);break;default:yn(e,t,n)}}function qm(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new Db),t.forEach(function(s){var a=$b.bind(null,e,s);n.has(s)||(n.add(s),s.then(a,a))})}}function St(e,t){var n=t.deletions;if(n!==null)for(var s=0;s<n.length;s++){var a=n[s];try{var i=e,o=t,l=o;e:for(;l!==null;){switch(l.tag){case 5:Pe=l.stateNode,Et=!1;break e;case 3:Pe=l.stateNode.containerInfo,Et=!0;break e;case 4:Pe=l.stateNode.containerInfo,Et=!0;break e}l=l.return}if(Pe===null)throw Error(P(160));R0(i,o,a),Pe=null,Et=!1;var c=a.alternate;c!==null&&(c.return=null),a.return=null}catch(d){pe(a,t,d)}}if(t.subtreeFlags&12854)for(t=t.child;t!==null;)L0(t,e),t=t.sibling}function L0(e,t){var n=e.alternate,s=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(St(t,e),Lt(e),s&4){try{Ia(3,e,e.return),Jl(3,e)}catch(v){pe(e,e.return,v)}try{Ia(5,e,e.return)}catch(v){pe(e,e.return,v)}}break;case 1:St(t,e),Lt(e),s&512&&n!==null&&dr(n,n.return);break;case 5:if(St(t,e),Lt(e),s&512&&n!==null&&dr(n,n.return),e.flags&32){var a=e.stateNode;try{Ja(a,"")}catch(v){pe(e,e.return,v)}}if(s&4&&(a=e.stateNode,a!=null)){var i=e.memoizedProps,o=n!==null?n.memoizedProps:i,l=e.type,c=e.updateQueue;if(e.updateQueue=null,c!==null)try{l==="input"&&i.type==="radio"&&i.name!=null&&ay(a,i),Sd(l,o);var d=Sd(l,i);for(o=0;o<c.length;o+=2){var u=c[o],h=c[o+1];u==="style"?dy(a,h):u==="dangerouslySetInnerHTML"?ly(a,h):u==="children"?Ja(a,h):nh(a,u,h,d)}switch(l){case"input":wd(a,i);break;case"textarea":iy(a,i);break;case"select":var p=a._wrapperState.wasMultiple;a._wrapperState.wasMultiple=!!i.multiple;var g=i.value;g!=null?gr(a,!!i.multiple,g,!1):p!==!!i.multiple&&(i.defaultValue!=null?gr(a,!!i.multiple,i.defaultValue,!0):gr(a,!!i.multiple,i.multiple?[]:"",!1))}a[ni]=i}catch(v){pe(e,e.return,v)}}break;case 6:if(St(t,e),Lt(e),s&4){if(e.stateNode===null)throw Error(P(162));a=e.stateNode,i=e.memoizedProps;try{a.nodeValue=i}catch(v){pe(e,e.return,v)}}break;case 3:if(St(t,e),Lt(e),s&4&&n!==null&&n.memoizedState.isDehydrated)try{Za(t.containerInfo)}catch(v){pe(e,e.return,v)}break;case 4:St(t,e),Lt(e);break;case 13:St(t,e),Lt(e),a=e.child,a.flags&8192&&(i=a.memoizedState!==null,a.stateNode.isHidden=i,!i||a.alternate!==null&&a.alternate.memoizedState!==null||(Oh=xe())),s&4&&qm(e);break;case 22:if(u=n!==null&&n.memoizedState!==null,e.mode&1?(Le=(d=Le)||u,St(t,e),Le=d):St(t,e),Lt(e),s&8192){if(d=e.memoizedState!==null,(e.stateNode.isHidden=d)&&!u&&e.mode&1)for(M=e,u=e.child;u!==null;){for(h=M=u;M!==null;){switch(p=M,g=p.child,p.tag){case 0:case 11:case 14:case 15:Ia(4,p,p.return);break;case 1:dr(p,p.return);var y=p.stateNode;if(typeof y.componentWillUnmount=="function"){s=p,n=p.return;try{t=s,y.props=t.memoizedProps,y.state=t.memoizedState,y.componentWillUnmount()}catch(v){pe(s,n,v)}}break;case 5:dr(p,p.return);break;case 22:if(p.memoizedState!==null){Jm(h);continue}}g!==null?(g.return=p,M=g):Jm(h)}u=u.sibling}e:for(u=null,h=e;;){if(h.tag===5){if(u===null){u=h;try{a=h.stateNode,d?(i=a.style,typeof i.setProperty=="function"?i.setProperty("display","none","important"):i.display="none"):(l=h.stateNode,c=h.memoizedProps.style,o=c!=null&&c.hasOwnProperty("display")?c.display:null,l.style.display=cy("display",o))}catch(v){pe(e,e.return,v)}}}else if(h.tag===6){if(u===null)try{h.stateNode.nodeValue=d?"":h.memoizedProps}catch(v){pe(e,e.return,v)}}else if((h.tag!==22&&h.tag!==23||h.memoizedState===null||h===e)&&h.child!==null){h.child.return=h,h=h.child;continue}if(h===e)break e;for(;h.sibling===null;){if(h.return===null||h.return===e)break e;u===h&&(u=null),h=h.return}u===h&&(u=null),h.sibling.return=h.return,h=h.sibling}}break;case 19:St(t,e),Lt(e),s&4&&qm(e);break;case 21:break;default:St(t,e),Lt(e)}}function Lt(e){var t=e.flags;if(t&2){try{e:{for(var n=e.return;n!==null;){if(O0(n)){var s=n;break e}n=n.return}throw Error(P(160))}switch(s.tag){case 5:var a=s.stateNode;s.flags&32&&(Ja(a,""),s.flags&=-33);var i=$m(e);tu(e,i,a);break;case 3:case 4:var o=s.stateNode.containerInfo,l=$m(e);eu(e,l,o);break;default:throw Error(P(161))}}catch(c){pe(e,e.return,c)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function Rb(e,t,n){M=e,I0(e)}function I0(e,t,n){for(var s=(e.mode&1)!==0;M!==null;){var a=M,i=a.child;if(a.tag===22&&s){var o=a.memoizedState!==null||io;if(!o){var l=a.alternate,c=l!==null&&l.memoizedState!==null||Le;l=io;var d=Le;if(io=o,(Le=c)&&!d)for(M=a;M!==null;)o=M,c=o.child,o.tag===22&&o.memoizedState!==null?Qm(a):c!==null?(c.return=o,M=c):Qm(a);for(;i!==null;)M=i,I0(i),i=i.sibling;M=a,io=l,Le=d}Hm(e)}else a.subtreeFlags&8772&&i!==null?(i.return=a,M=i):Hm(e)}}function Hm(e){for(;M!==null;){var t=M;if(t.flags&8772){var n=t.alternate;try{if(t.flags&8772)switch(t.tag){case 0:case 11:case 15:Le||Jl(5,t);break;case 1:var s=t.stateNode;if(t.flags&4&&!Le)if(n===null)s.componentDidMount();else{var a=t.elementType===t.type?n.memoizedProps:Pt(t.type,n.memoizedProps);s.componentDidUpdate(a,n.memoizedState,s.__reactInternalSnapshotBeforeUpdate)}var i=t.updateQueue;i!==null&&_m(t,i,s);break;case 3:var o=t.updateQueue;if(o!==null){if(n=null,t.child!==null)switch(t.child.tag){case 5:n=t.child.stateNode;break;case 1:n=t.child.stateNode}_m(t,o,n)}break;case 5:var l=t.stateNode;if(n===null&&t.flags&4){n=l;var c=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":c.autoFocus&&n.focus();break;case"img":c.src&&(n.src=c.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(t.memoizedState===null){var d=t.alternate;if(d!==null){var u=d.memoizedState;if(u!==null){var h=u.dehydrated;h!==null&&Za(h)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(P(163))}Le||t.flags&512&&Xd(t)}catch(p){pe(t,t.return,p)}}if(t===e){M=null;break}if(n=t.sibling,n!==null){n.return=t.return,M=n;break}M=t.return}}function Jm(e){for(;M!==null;){var t=M;if(t===e){M=null;break}var n=t.sibling;if(n!==null){n.return=t.return,M=n;break}M=t.return}}function Qm(e){for(;M!==null;){var t=M;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{Jl(4,t)}catch(c){pe(t,n,c)}break;case 1:var s=t.stateNode;if(typeof s.componentDidMount=="function"){var a=t.return;try{s.componentDidMount()}catch(c){pe(t,a,c)}}var i=t.return;try{Xd(t)}catch(c){pe(t,i,c)}break;case 5:var o=t.return;try{Xd(t)}catch(c){pe(t,o,c)}}}catch(c){pe(t,t.return,c)}if(t===e){M=null;break}var l=t.sibling;if(l!==null){l.return=t.return,M=l;break}M=t.return}}var Lb=Math.ceil,hl=fn.ReactCurrentDispatcher,Mh=fn.ReactCurrentOwner,wt=fn.ReactCurrentBatchConfig,G=0,Ce=null,ve=null,_e=0,st=0,ur=ss(0),je=0,li=null,Ls=0,Ql=0,Dh=0,Ba=null,Ye=null,Oh=0,Wr=1/0,Zt=null,pl=!1,nu=null,Wn=null,oo=!1,On=null,ml=0,Va=0,su=null,Bo=-1,Vo=0;function ze(){return G&6?xe():Bo!==-1?Bo:Bo=xe()}function $n(e){return e.mode&1?G&2&&_e!==0?_e&-_e:wb.transition!==null?(Vo===0&&(Vo=jy()),Vo):(e=ee,e!==0||(e=window.event,e=e===void 0?16:Ey(e.type)),e):1}function Ft(e,t,n,s){if(50<Va)throw Va=0,su=null,Error(P(185));Ei(e,n,s),(!(G&2)||e!==Ce)&&(e===Ce&&(!(G&2)&&(Ql|=n),je===4&&Sn(e,_e)),et(e,s),n===1&&G===0&&!(t.mode&1)&&(Wr=xe()+500,$l&&rs()))}function et(e,t){var n=e.callbackNode;w2(e,t);var s=Zo(e,e===Ce?_e:0);if(s===0)n!==null&&sm(n),e.callbackNode=null,e.callbackPriority=0;else if(t=s&-s,e.callbackPriority!==t){if(n!=null&&sm(n),t===1)e.tag===0?vb(Gm.bind(null,e)):Qy(Gm.bind(null,e)),fb(function(){!(G&6)&&rs()}),n=null;else{switch(ky(s)){case 1:n=oh;break;case 4:n=wy;break;case 16:n=Yo;break;case 536870912:n=by;break;default:n=Yo}n=H0(n,B0.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function B0(e,t){if(Bo=-1,Vo=0,G&6)throw Error(P(327));var n=e.callbackNode;if(jr()&&e.callbackNode!==n)return null;var s=Zo(e,e===Ce?_e:0);if(s===0)return null;if(s&30||s&e.expiredLanes||t)t=fl(e,s);else{t=s;var a=G;G|=2;var i=U0();(Ce!==e||_e!==t)&&(Zt=null,Wr=xe()+500,_s(e,t));do try{Vb();break}catch(l){V0(e,l)}while(!0);wh(),hl.current=i,G=a,ve!==null?t=0:(Ce=null,_e=0,t=je)}if(t!==0){if(t===2&&(a=_d(e),a!==0&&(s=a,t=ru(e,a))),t===1)throw n=li,_s(e,0),Sn(e,s),et(e,xe()),n;if(t===6)Sn(e,s);else{if(a=e.current.alternate,!(s&30)&&!Ib(a)&&(t=fl(e,s),t===2&&(i=_d(e),i!==0&&(s=i,t=ru(e,i))),t===1))throw n=li,_s(e,0),Sn(e,s),et(e,xe()),n;switch(e.finishedWork=a,e.finishedLanes=s,t){case 0:case 1:throw Error(P(345));case 2:ps(e,Ye,Zt);break;case 3:if(Sn(e,s),(s&130023424)===s&&(t=Oh+500-xe(),10<t)){if(Zo(e,0)!==0)break;if(a=e.suspendedLanes,(a&s)!==s){ze(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=Id(ps.bind(null,e,Ye,Zt),t);break}ps(e,Ye,Zt);break;case 4:if(Sn(e,s),(s&4194240)===s)break;for(t=e.eventTimes,a=-1;0<s;){var o=31-At(s);i=1<<o,o=t[o],o>a&&(a=o),s&=~i}if(s=a,s=xe()-s,s=(120>s?120:480>s?480:1080>s?1080:1920>s?1920:3e3>s?3e3:4320>s?4320:1960*Lb(s/1960))-s,10<s){e.timeoutHandle=Id(ps.bind(null,e,Ye,Zt),s);break}ps(e,Ye,Zt);break;case 5:ps(e,Ye,Zt);break;default:throw Error(P(329))}}}return et(e,xe()),e.callbackNode===n?B0.bind(null,e):null}function ru(e,t){var n=Ba;return e.current.memoizedState.isDehydrated&&(_s(e,t).flags|=256),e=fl(e,t),e!==2&&(t=Ye,Ye=n,t!==null&&au(t)),e}function au(e){Ye===null?Ye=e:Ye.push.apply(Ye,e)}function Ib(e){for(var t=e;;){if(t.flags&16384){var n=t.updateQueue;if(n!==null&&(n=n.stores,n!==null))for(var s=0;s<n.length;s++){var a=n[s],i=a.getSnapshot;a=a.value;try{if(!Mt(i(),a))return!1}catch{return!1}}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Sn(e,t){for(t&=~Dh,t&=~Ql,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-At(t),s=1<<n;e[n]=-1,t&=~s}}function Gm(e){if(G&6)throw Error(P(327));jr();var t=Zo(e,0);if(!(t&1))return et(e,xe()),null;var n=fl(e,t);if(e.tag!==0&&n===2){var s=_d(e);s!==0&&(t=s,n=ru(e,s))}if(n===1)throw n=li,_s(e,0),Sn(e,t),et(e,xe()),n;if(n===6)throw Error(P(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,ps(e,Ye,Zt),et(e,xe()),null}function Rh(e,t){var n=G;G|=1;try{return e(t)}finally{G=n,G===0&&(Wr=xe()+500,$l&&rs())}}function Is(e){On!==null&&On.tag===0&&!(G&6)&&jr();var t=G;G|=1;var n=wt.transition,s=ee;try{if(wt.transition=null,ee=1,e)return e()}finally{ee=s,wt.transition=n,G=t,!(G&6)&&rs()}}function Lh(){st=ur.current,re(ur)}function _s(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(n!==-1&&(e.timeoutHandle=-1,mb(n)),ve!==null)for(n=ve.return;n!==null;){var s=n;switch(gh(s),s.tag){case 1:s=s.type.childContextTypes,s!=null&&nl();break;case 3:Ur(),re(Ke),re(Be),Ch();break;case 5:Sh(s);break;case 4:Ur();break;case 13:re(oe);break;case 19:re(oe);break;case 10:bh(s.type._context);break;case 22:case 23:Lh()}n=n.return}if(Ce=e,ve=e=qn(e.current,null),_e=st=t,je=0,li=null,Dh=Ql=Ls=0,Ye=Ba=null,gs!==null){for(t=0;t<gs.length;t++)if(n=gs[t],s=n.interleaved,s!==null){n.interleaved=null;var a=s.next,i=n.pending;if(i!==null){var o=i.next;i.next=a,s.next=o}n.pending=s}gs=null}return e}function V0(e,t){do{var n=ve;try{if(wh(),Ro.current=ul,dl){for(var s=ce.memoizedState;s!==null;){var a=s.queue;a!==null&&(a.pending=null),s=s.next}dl=!1}if(Rs=0,Se=be=ce=null,La=!1,ai=0,Mh.current=null,n===null||n.return===null){je=1,li=t,ve=null;break}e:{var i=e,o=n.return,l=n,c=t;if(t=_e,l.flags|=32768,c!==null&&typeof c=="object"&&typeof c.then=="function"){var d=c,u=l,h=u.tag;if(!(u.mode&1)&&(h===0||h===11||h===15)){var p=u.alternate;p?(u.updateQueue=p.updateQueue,u.memoizedState=p.memoizedState,u.lanes=p.lanes):(u.updateQueue=null,u.memoizedState=null)}var g=Rm(o);if(g!==null){g.flags&=-257,Lm(g,o,l,i,t),g.mode&1&&Om(i,d,t),t=g,c=d;var y=t.updateQueue;if(y===null){var v=new Set;v.add(c),t.updateQueue=v}else y.add(c);break e}else{if(!(t&1)){Om(i,d,t),Ih();break e}c=Error(P(426))}}else if(ie&&l.mode&1){var k=Rm(o);if(k!==null){!(k.flags&65536)&&(k.flags|=256),Lm(k,o,l,i,t),yh(zr(c,l));break e}}i=c=zr(c,l),je!==4&&(je=2),Ba===null?Ba=[i]:Ba.push(i),i=o;do{switch(i.tag){case 3:i.flags|=65536,t&=-t,i.lanes|=t;var f=k0(i,c,t);Em(i,f);break e;case 1:l=c;var x=i.type,m=i.stateNode;if(!(i.flags&128)&&(typeof x.getDerivedStateFromError=="function"||m!==null&&typeof m.componentDidCatch=="function"&&(Wn===null||!Wn.has(m)))){i.flags|=65536,t&=-t,i.lanes|=t;var b=N0(i,l,t);Em(i,b);break e}}i=i.return}while(i!==null)}W0(n)}catch(N){t=N,ve===n&&n!==null&&(ve=n=n.return);continue}break}while(!0)}function U0(){var e=hl.current;return hl.current=ul,e===null?ul:e}function Ih(){(je===0||je===3||je===2)&&(je=4),Ce===null||!(Ls&268435455)&&!(Ql&268435455)||Sn(Ce,_e)}function fl(e,t){var n=G;G|=2;var s=U0();(Ce!==e||_e!==t)&&(Zt=null,_s(e,t));do try{Bb();break}catch(a){V0(e,a)}while(!0);if(wh(),G=n,hl.current=s,ve!==null)throw Error(P(261));return Ce=null,_e=0,je}function Bb(){for(;ve!==null;)z0(ve)}function Vb(){for(;ve!==null&&!u2();)z0(ve)}function z0(e){var t=q0(e.alternate,e,st);e.memoizedProps=e.pendingProps,t===null?W0(e):ve=t,Mh.current=null}function W0(e){var t=e;do{var n=t.alternate;if(e=t.return,t.flags&32768){if(n=Mb(n,t),n!==null){n.flags&=32767,ve=n;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{je=6,ve=null;return}}else if(n=Fb(n,t,st),n!==null){ve=n;return}if(t=t.sibling,t!==null){ve=t;return}ve=t=e}while(t!==null);je===0&&(je=5)}function ps(e,t,n){var s=ee,a=wt.transition;try{wt.transition=null,ee=1,Ub(e,t,n,s)}finally{wt.transition=a,ee=s}return null}function Ub(e,t,n,s){do jr();while(On!==null);if(G&6)throw Error(P(327));n=e.finishedWork;var a=e.finishedLanes;if(n===null)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(P(177));e.callbackNode=null,e.callbackPriority=0;var i=n.lanes|n.childLanes;if(b2(e,i),e===Ce&&(ve=Ce=null,_e=0),!(n.subtreeFlags&2064)&&!(n.flags&2064)||oo||(oo=!0,H0(Yo,function(){return jr(),null})),i=(n.flags&15990)!==0,n.subtreeFlags&15990||i){i=wt.transition,wt.transition=null;var o=ee;ee=1;var l=G;G|=4,Mh.current=null,Ob(e,n),L0(n,e),ob(Rd),Ko=!!Od,Rd=Od=null,e.current=n,Rb(n),h2(),G=l,ee=o,wt.transition=i}else e.current=n;if(oo&&(oo=!1,On=e,ml=a),i=e.pendingLanes,i===0&&(Wn=null),f2(n.stateNode),et(e,xe()),t!==null)for(s=e.onRecoverableError,n=0;n<t.length;n++)a=t[n],s(a.value,{componentStack:a.stack,digest:a.digest});if(pl)throw pl=!1,e=nu,nu=null,e;return ml&1&&e.tag!==0&&jr(),i=e.pendingLanes,i&1?e===su?Va++:(Va=0,su=e):Va=0,rs(),null}function jr(){if(On!==null){var e=ky(ml),t=wt.transition,n=ee;try{if(wt.transition=null,ee=16>e?16:e,On===null)var s=!1;else{if(e=On,On=null,ml=0,G&6)throw Error(P(331));var a=G;for(G|=4,M=e.current;M!==null;){var i=M,o=i.child;if(M.flags&16){var l=i.deletions;if(l!==null){for(var c=0;c<l.length;c++){var d=l[c];for(M=d;M!==null;){var u=M;switch(u.tag){case 0:case 11:case 15:Ia(8,u,i)}var h=u.child;if(h!==null)h.return=u,M=h;else for(;M!==null;){u=M;var p=u.sibling,g=u.return;if(D0(u),u===d){M=null;break}if(p!==null){p.return=g,M=p;break}M=g}}}var y=i.alternate;if(y!==null){var v=y.child;if(v!==null){y.child=null;do{var k=v.sibling;v.sibling=null,v=k}while(v!==null)}}M=i}}if(i.subtreeFlags&2064&&o!==null)o.return=i,M=o;else e:for(;M!==null;){if(i=M,i.flags&2048)switch(i.tag){case 0:case 11:case 15:Ia(9,i,i.return)}var f=i.sibling;if(f!==null){f.return=i.return,M=f;break e}M=i.return}}var x=e.current;for(M=x;M!==null;){o=M;var m=o.child;if(o.subtreeFlags&2064&&m!==null)m.return=o,M=m;else e:for(o=x;M!==null;){if(l=M,l.flags&2048)try{switch(l.tag){case 0:case 11:case 15:Jl(9,l)}}catch(N){pe(l,l.return,N)}if(l===o){M=null;break e}var b=l.sibling;if(b!==null){b.return=l.return,M=b;break e}M=l.return}}if(G=a,rs(),Wt&&typeof Wt.onPostCommitFiberRoot=="function")try{Wt.onPostCommitFiberRoot(Bl,e)}catch{}s=!0}return s}finally{ee=n,wt.transition=t}}return!1}function Ym(e,t,n){t=zr(n,t),t=k0(e,t,1),e=zn(e,t,1),t=ze(),e!==null&&(Ei(e,1,t),et(e,t))}function pe(e,t,n){if(e.tag===3)Ym(e,e,n);else for(;t!==null;){if(t.tag===3){Ym(t,e,n);break}else if(t.tag===1){var s=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof s.componentDidCatch=="function"&&(Wn===null||!Wn.has(s))){e=zr(n,e),e=N0(t,e,1),t=zn(t,e,1),e=ze(),t!==null&&(Ei(t,1,e),et(t,e));break}}t=t.return}}function zb(e,t,n){var s=e.pingCache;s!==null&&s.delete(t),t=ze(),e.pingedLanes|=e.suspendedLanes&n,Ce===e&&(_e&n)===n&&(je===4||je===3&&(_e&130023424)===_e&&500>xe()-Oh?_s(e,0):Dh|=n),et(e,t)}function $0(e,t){t===0&&(e.mode&1?(t=Zi,Zi<<=1,!(Zi&130023424)&&(Zi=4194304)):t=1);var n=ze();e=cn(e,t),e!==null&&(Ei(e,t,n),et(e,n))}function Wb(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),$0(e,n)}function $b(e,t){var n=0;switch(e.tag){case 13:var s=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:s=e.stateNode;break;default:throw Error(P(314))}s!==null&&s.delete(t),$0(e,n)}var q0;q0=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Ke.current)Ze=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Ze=!1,Ab(e,t,n);Ze=!!(e.flags&131072)}else Ze=!1,ie&&t.flags&1048576&&Gy(t,al,t.index);switch(t.lanes=0,t.tag){case 2:var s=t.type;Io(e,t),e=t.pendingProps;var a=Ir(t,Be.current);br(t,n),a=Th(null,t,s,e,a,n);var i=Eh();return t.flags|=1,typeof a=="object"&&a!==null&&typeof a.render=="function"&&a.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Xe(s)?(i=!0,sl(t)):i=!1,t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,kh(t),a.updater=Hl,t.stateNode=a,a._reactInternals=t,qd(t,s,e,n),t=Qd(null,t,s,!0,i,n)):(t.tag=0,ie&&i&&xh(t),Ue(null,t,a,n),t=t.child),t;case 16:s=t.elementType;e:{switch(Io(e,t),e=t.pendingProps,a=s._init,s=a(s._payload),t.type=s,a=t.tag=Hb(s),e=Pt(s,e),a){case 0:t=Jd(null,t,s,e,n);break e;case 1:t=Vm(null,t,s,e,n);break e;case 11:t=Im(null,t,s,e,n);break e;case 14:t=Bm(null,t,s,Pt(s.type,e),n);break e}throw Error(P(306,s,""))}return t;case 0:return s=t.type,a=t.pendingProps,a=t.elementType===s?a:Pt(s,a),Jd(e,t,s,a,n);case 1:return s=t.type,a=t.pendingProps,a=t.elementType===s?a:Pt(s,a),Vm(e,t,s,a,n);case 3:e:{if(T0(t),e===null)throw Error(P(387));s=t.pendingProps,i=t.memoizedState,a=i.element,t0(e,t),ll(t,s,null,n);var o=t.memoizedState;if(s=o.element,i.isDehydrated)if(i={element:s,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){a=zr(Error(P(423)),t),t=Um(e,t,s,n,a);break e}else if(s!==a){a=zr(Error(P(424)),t),t=Um(e,t,s,n,a);break e}else for(it=Un(t.stateNode.containerInfo.firstChild),ot=t,ie=!0,_t=null,n=Xy(t,null,s,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Br(),s===a){t=dn(e,t,n);break e}Ue(e,t,s,n)}t=t.child}return t;case 5:return n0(t),e===null&&zd(t),s=t.type,a=t.pendingProps,i=e!==null?e.memoizedProps:null,o=a.children,Ld(s,a)?o=null:i!==null&&Ld(s,i)&&(t.flags|=32),P0(e,t),Ue(e,t,o,n),t.child;case 6:return e===null&&zd(t),null;case 13:return E0(e,t,n);case 4:return Nh(t,t.stateNode.containerInfo),s=t.pendingProps,e===null?t.child=Vr(t,null,s,n):Ue(e,t,s,n),t.child;case 11:return s=t.type,a=t.pendingProps,a=t.elementType===s?a:Pt(s,a),Im(e,t,s,a,n);case 7:return Ue(e,t,t.pendingProps,n),t.child;case 8:return Ue(e,t,t.pendingProps.children,n),t.child;case 12:return Ue(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(s=t.type._context,a=t.pendingProps,i=t.memoizedProps,o=a.value,ne(il,s._currentValue),s._currentValue=o,i!==null)if(Mt(i.value,o)){if(i.children===a.children&&!Ke.current){t=dn(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);
vendor: 10,961 bytes, line 40
40i!==null;){var l=i.dependencies;if(l!==null){o=i.child;for(var c=l.firstContext;c!==null;){if(c.context===s){if(i.tag===1){c=sn(-1,n&-n),c.tag=2;var d=i.updateQueue;if(d!==null){d=d.shared;var u=d.pending;u===null?c.next=c:(c.next=u.next,u.next=c),d.pending=c}}i.lanes|=n,c=i.alternate,c!==null&&(c.lanes|=n),Wd(i.return,n,t),l.lanes|=n;break}c=c.next}}else if(i.tag===10)o=i.type===t.type?null:i.child;else if(i.tag===18){if(o=i.return,o===null)throw Error(P(341));o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),Wd(o,n,t),o=i.sibling}else o=i.child;if(o!==null)o.return=i;else for(o=i;o!==null;){if(o===t){o=null;break}if(i=o.sibling,i!==null){i.return=o.return,o=i;break}o=o.return}i=o}Ue(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,s=t.pendingProps.children,br(t,n),a=bt(a),s=s(a),t.flags|=1,Ue(e,t,s,n),t.child;case 14:return s=t.type,a=Pt(s,t.pendingProps),a=Pt(s.type,a),Bm(e,t,s,a,n);case 15:return S0(e,t,t.type,t.pendingProps,n);case 17:return s=t.type,a=t.pendingProps,a=t.elementType===s?a:Pt(s,a),Io(e,t),t.tag=1,Xe(s)?(e=!0,sl(t)):e=!1,br(t,n),j0(t,s,a),qd(t,s,a,n),Qd(null,t,s,!0,e,n);case 19:return _0(e,t,n);case 22:return C0(e,t,n)}throw Error(P(156,t.tag))};function H0(e,t){return vy(e,t)}function qb(e,t,n,s){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=s,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function vt(e,t,n,s){return new qb(e,t,n,s)}function Bh(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Hb(e){if(typeof e=="function")return Bh(e)?1:0;if(e!=null){if(e=e.$$typeof,e===rh)return 11;if(e===ah)return 14}return 2}function qn(e,t){var n=e.alternate;return n===null?(n=vt(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Uo(e,t,n,s,a,i){var o=2;if(s=e,typeof e=="function")Bh(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case tr:return As(n.children,a,i,t);case sh:o=8,a|=8;break;case fd:return e=vt(12,n,t,a|2),e.elementType=fd,e.lanes=i,e;case xd:return e=vt(13,n,t,a),e.elementType=xd,e.lanes=i,e;case gd:return e=vt(19,n,t,a),e.elementType=gd,e.lanes=i,e;case ny:return Gl(n,a,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case ey:o=10;break e;case ty:o=9;break e;case rh:o=11;break e;case ah:o=14;break e;case bn:o=16,s=null;break e}throw Error(P(130,e==null?e:typeof e,""))}return t=vt(o,n,t,a),t.elementType=e,t.type=s,t.lanes=i,t}function As(e,t,n,s){return e=vt(7,e,s,t),e.lanes=n,e}function Gl(e,t,n,s){return e=vt(22,e,s,t),e.elementType=ny,e.lanes=n,e.stateNode={isHidden:!1},e}function zc(e,t,n){return e=vt(6,e,null,t),e.lanes=n,e}function Wc(e,t,n){return t=vt(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Jb(e,t,n,s,a){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=kc(0),this.expirationTimes=kc(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=kc(0),this.identifierPrefix=s,this.onRecoverableError=a,this.mutableSourceEagerHydrationData=null}function Vh(e,t,n,s,a,i,o,l,c){return e=new Jb(e,t,n,l,c),t===1?(t=1,i===!0&&(t|=8)):t=0,i=vt(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:s,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},kh(i),e}function Qb(e,t,n){var s=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:er,key:s==null?null:""+s,children:e,containerInfo:t,implementation:n}}function J0(e){if(!e)return Yn;e=e._reactInternals;e:{if(Us(e)!==e||e.tag!==1)throw Error(P(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Xe(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(t!==null);throw Error(P(171))}if(e.tag===1){var n=e.type;if(Xe(n))return Jy(e,n,t)}return t}function Q0(e,t,n,s,a,i,o,l,c){return e=Vh(n,s,!0,e,a,i,o,l,c),e.context=J0(null),n=e.current,s=ze(),a=$n(n),i=sn(s,a),i.callback=t??null,zn(n,i,a),e.current.lanes=a,Ei(e,a,s),et(e,s),e}function Yl(e,t,n,s){var a=t.current,i=ze(),o=$n(a);return n=J0(n),t.context===null?t.context=n:t.pendingContext=n,t=sn(i,o),t.payload={element:e},s=s===void 0?null:s,s!==null&&(t.callback=s),e=zn(a,t,o),e!==null&&(Ft(e,a,o,i),Oo(e,a,o)),o}function xl(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function Zm(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function Uh(e,t){Zm(e,t),(e=e.alternate)&&Zm(e,t)}function Gb(){return null}var G0=typeof reportError=="function"?reportError:function(e){console.error(e)};function zh(e){this._internalRoot=e}Zl.prototype.render=zh.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(P(409));Yl(e,t,null,null)};Zl.prototype.unmount=zh.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;Is(function(){Yl(null,e,null,null)}),t[ln]=null}};function Zl(e){this._internalRoot=e}Zl.prototype.unstable_scheduleHydration=function(e){if(e){var t=Cy();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Nn.length&&t!==0&&t<Nn[n].priority;n++);Nn.splice(n,0,e),n===0&&Ty(e)}};function Wh(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function Kl(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function Km(){}function Yb(e,t,n,s,a){if(a){if(typeof s=="function"){var i=s;s=function(){var d=xl(o);i.call(d)}}var o=Q0(t,s,e,0,null,!1,!1,"",Km);return e._reactRootContainer=o,e[ln]=o.current,ei(e.nodeType===8?e.parentNode:e),Is(),o}for(;a=e.lastChild;)e.removeChild(a);if(typeof s=="function"){var l=s;s=function(){var d=xl(c);l.call(d)}}var c=Vh(e,0,!1,null,null,!1,!1,"",Km);return e._reactRootContainer=c,e[ln]=c.current,ei(e.nodeType===8?e.parentNode:e),Is(function(){Yl(t,c,n,s)}),c}function Xl(e,t,n,s,a){var i=n._reactRootContainer;if(i){var o=i;if(typeof a=="function"){var l=a;a=function(){var c=xl(o);l.call(c)}}Yl(t,o,e,a)}else o=Yb(n,t,e,a,s);return xl(o)}Ny=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=Sa(t.pendingLanes);n!==0&&(lh(t,n|1),et(t,xe()),!(G&6)&&(Wr=xe()+500,rs()))}break;case 13:Is(function(){var s=cn(e,1);if(s!==null){var a=ze();Ft(s,e,1,a)}}),Uh(e,1)}};ch=function(e){if(e.tag===13){var t=cn(e,134217728);if(t!==null){var n=ze();Ft(t,e,134217728,n)}Uh(e,134217728)}};Sy=function(e){if(e.tag===13){var t=$n(e),n=cn(e,t);if(n!==null){var s=ze();Ft(n,e,t,s)}Uh(e,t)}};Cy=function(){return ee};Py=function(e,t){var n=ee;try{return ee=e,t()}finally{ee=n}};Pd=function(e,t,n){switch(t){case"input":if(wd(e,n),t=n.name,n.type==="radio"&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var s=n[t];if(s!==e&&s.form===e.form){var a=Wl(s);if(!a)throw Error(P(90));ry(s),wd(s,a)}}}break;case"textarea":iy(e,n);break;case"select":t=n.value,t!=null&&gr(e,!!n.multiple,t,!1)}};py=Rh;my=Is;var Zb={usingClientEntryPoint:!1,Events:[Ai,ar,Wl,uy,hy,Rh]},ya={findFiberByHostInstance:xs,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},Kb={bundleType:ya.bundleType,version:ya.version,rendererPackageName:ya.rendererPackageName,rendererConfig:ya.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:fn.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=gy(e),e===null?null:e.stateNode},findFiberByHostInstance:ya.findFiberByHostInstance||Gb,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var lo=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!lo.isDisabled&&lo.supportsFiber)try{Bl=lo.inject(Kb),Wt=lo}catch{}}ht.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Zb;ht.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!Wh(t))throw Error(P(200));return Qb(e,t,null,n)};ht.createRoot=function(e,t){if(!Wh(e))throw Error(P(299));var n=!1,s="",a=G0;return t!=null&&(t.unstable_strictMode===!0&&(n=!0),t.identifierPrefix!==void 0&&(s=t.identifierPrefix),t.onRecoverableError!==void 0&&(a=t.onRecoverableError)),t=Vh(e,1,!1,null,null,n,!1,s,a),e[ln]=t.current,ei(e.nodeType===8?e.parentNode:e),new zh(t)};ht.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(P(188)):(e=Object.keys(e).join(","),Error(P(268,e)));return e=gy(t),e=e===null?null:e.stateNode,e};ht.flushSync=function(e){return Is(e)};ht.hydrate=function(e,t,n){if(!Kl(t))throw Error(P(200));return Xl(null,e,t,!0,n)};ht.hydrateRoot=function(e,t,n){if(!Wh(e))throw Error(P(405));var s=n!=null&&n.hydratedSources||null,a=!1,i="",o=G0;if(n!=null&&(n.unstable_strictMode===!0&&(a=!0),n.identifierPrefix!==void 0&&(i=n.identifierPrefix),n.onRecoverableError!==void 0&&(o=n.onRecoverableError)),t=Q0(t,null,e,1,n??null,a,!1,i,o),e[ln]=t.current,ei(e),s)for(e=0;e<s.length;e++)n=s[e],a=n._getVersion,a=a(n._source),t.mutableSourceEagerHydrationData==null?t.mutableSourceEagerHydrationData=[n,a]:t.mutableSourceEagerHydrationData.push(n,a);return new Zl(t)};ht.render=function(e,t,n){if(!Kl(t))throw Error(P(200));return Xl(null,e,t,!1,n)};ht.unmountComponentAtNode=function(e){if(!Kl(e))throw Error(P(40));return e._reactRootContainer?(Is(function(){Xl(null,null,e,!1,function(){e._reactRootContainer=null,e[ln]=null})}),!0):!1};ht.unstable_batchedUpdates=Rh;ht.unstable_renderSubtreeIntoContainer=function(e,t,n,s){if(!Kl(n))throw Error(P(200));if(e==null||e._reactInternals===void 0)throw Error(P(38));return Xl(e,t,n,!1,s)};
vendor: 12,874 bytes, lines 40-58
40ht.version="18.3.1-next-f1338f8080-20240426";function Y0(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Y0)}catch(e){console.error(e)}}Y0(),Yg.exports=ht;var Xb=Yg.exports,Xm=Xb;pd.createRoot=Xm.createRoot,pd.hydrateRoot=Xm.hydrateRoot;/**
41 * @remix-run/router v1.23.3
42 *
43 * Copyright (c) Remix Software Inc.
44 *
45 * This source code is licensed under the MIT license found in the
46 * LICENSE.md file in the root directory of this source tree.
47 *
48 * @license MIT
49 */function ci(){return ci=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)({}).hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},ci.apply(null,arguments)}var Rn;(function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"})(Rn||(Rn={}));const ef="popstate";function ej(e){e===void 0&&(e={});function t(s,a){let{pathname:i,search:o,hash:l}=s.location;return iu("",{pathname:i,search:o,hash:l},a.state&&a.state.usr||null,a.state&&a.state.key||"default")}function n(s,a){return typeof a=="string"?a:gl(a)}return nj(t,n,null,e)}function ge(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function $h(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function tj(){return Math.random().toString(36).substr(2,8)}function tf(e,t){return{usr:e.state,key:e.key,idx:t}}function iu(e,t,n,s){return n===void 0&&(n=null),ci({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?ta(t):t,{state:n,key:t&&t.key||s||tj()})}function gl(e){let{pathname:t="/",search:n="",hash:s=""}=e;return n&&n!=="?"&&(t+=n.charAt(0)==="?"?n:"?"+n),s&&s!=="#"&&(t+=s.charAt(0)==="#"?s:"#"+s),t}function ta(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let s=e.indexOf("?");s>=0&&(t.search=e.substr(s),e=e.substr(0,s)),e&&(t.pathname=e)}return t}function nj(e,t,n,s){s===void 0&&(s={});let{window:a=document.defaultView,v5Compat:i=!1}=s,o=a.history,l=Rn.Pop,c=null,d=u();d==null&&(d=0,o.replaceState(ci({},o.state,{idx:d}),""));function u(){return(o.state||{idx:null}).idx}function h(){l=Rn.Pop;let k=u(),f=k==null?null:k-d;d=k,c&&c({action:l,location:v.location,delta:f})}function p(k,f){l=Rn.Push;let x=iu(v.location,k,f);d=u()+1;let m=tf(x,d),b=v.createHref(x);try{o.pushState(m,"",b)}catch(N){if(N instanceof DOMException&&N.name==="DataCloneError")throw N;a.location.assign(b)}i&&c&&c({action:l,location:v.location,delta:1})}function g(k,f){l=Rn.Replace;let x=iu(v.location,k,f);d=u();let m=tf(x,d),b=v.createHref(x);o.replaceState(m,"",b),i&&c&&c({action:l,location:v.location,delta:0})}function y(k){let f=a.location.origin!=="null"?a.location.origin:a.location.href,x=typeof k=="string"?k:gl(k);return x=x.replace(/ $/,"%20"),ge(f,"No window.location.(origin|href) available to create URL for href: "+x),new URL(x,f)}let v={get action(){return l},get location(){return e(a,o)},listen(k){if(c)throw new Error("A history only accepts one active listener");return a.addEventListener(ef,h),c=k,()=>{a.removeEventListener(ef,h),c=null}},createHref(k){return t(a,k)},createURL:y,encodeLocation(k){let f=y(k);return{pathname:f.pathname,search:f.search,hash:f.hash}},push:p,replace:g,go(k){return o.go(k)}};return v}var nf;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(nf||(nf={}));function sj(e,t,n){return n===void 0&&(n="/"),rj(e,t,n)}function rj(e,t,n,s){let a=typeof t=="string"?ta(t):t,i=qh(a.pathname||"/",n);if(i==null)return null;let o=Z0(e);aj(o);let l=null,c=gj(i);for(let d=0;l==null&&d<o.length;++d)l=mj(o[d],c);return l}function Z0(e,t,n,s){t===void 0&&(t=[]),n===void 0&&(n=[]),s===void 0&&(s="");let a=(i,o,l)=>{let c={relativePath:l===void 0?i.path||"":l,caseSensitive:i.caseSensitive===!0,childrenIndex:o,route:i};c.relativePath.startsWith("/")&&(ge(c.relativePath.startsWith(s),'Absolute route path "'+c.relativePath+'" nested under path '+('"'+s+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),c.relativePath=c.relativePath.slice(s.length));let d=Hn([s,c.relativePath]),u=n.concat(c);i.children&&i.children.length>0&&(ge(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+d+'".')),Z0(i.children,t,u,d)),!(i.path==null&&!i.index)&&t.push({path:d,score:hj(d,i.index),routesMeta:u})};return e.forEach((i,o)=>{var l;if(i.path===""||!((l=i.path)!=null&&l.includes("?")))a(i,o);else for(let c of K0(i.path))a(i,o,c)}),t}function K0(e){let t=e.split("/");if(t.length===0)return[];let[n,...s]=t,a=n.endsWith("?"),i=n.replace(/\?$/,"");if(s.length===0)return a?[i,""]:[i];let o=K0(s.join("/")),l=[];return l.push(...o.map(c=>c===""?i:[i,c].join("/"))),a&&l.push(...o),l.map(c=>e.startsWith("/")&&c===""?"/":c)}function aj(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:pj(t.routesMeta.map(s=>s.childrenIndex),n.routesMeta.map(s=>s.childrenIndex)))}const ij=/^:[\w-]+$/,oj=3,lj=2,cj=1,dj=10,uj=-2,sf=e=>e==="*";function hj(e,t){let n=e.split("/"),s=n.length;return n.some(sf)&&(s+=uj),t&&(s+=lj),n.filter(a=>!sf(a)).reduce((a,i)=>a+(ij.test(i)?oj:i===""?cj:dj),s)}function pj(e,t){return e.length===t.length&&e.slice(0,-1).every((s,a)=>s===t[a])?e[e.length-1]-t[t.length-1]:0}function mj(e,t,n){let{routesMeta:s}=e,a={},i="/",o=[];for(let l=0;l<s.length;++l){let c=s[l],d=l===s.length-1,u=i==="/"?t:t.slice(i.length)||"/",h=fj({path:c.relativePath,caseSensitive:c.caseSensitive,end:d},u),p=c.route;if(!h)return null;Object.assign(a,h.params),o.push({params:a,pathname:Hn([i,h.pathname]),pathnameBase:jj(Hn([i,h.pathnameBase])),route:p}),h.pathnameBase!=="/"&&(i=Hn([i,h.pathnameBase]))}return o}function fj(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[n,s]=xj(e.path,e.caseSensitive,e.end),a=t.match(n);if(!a)return null;let i=a[0],o=i.replace(/(.)\/+$/,"$1"),l=a.slice(1);return{params:s.reduce((d,u,h)=>{let{paramName:p,isOptional:g}=u;if(p==="*"){let v=l[h]||"";o=i.slice(0,i.length-v.length).replace(/(.)\/+$/,"$1")}const y=l[h];return g&&!y?d[p]=void 0:d[p]=(y||"").replace(/%2F/g,"/"),d},{}),pathname:i,pathnameBase:o,pattern:e}}function xj(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),$h(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 s=[],a="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,l,c)=>(s.push({paramName:l,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(s.push({paramName:"*"}),a+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?a+="\\/*$":e!==""&&e!=="/"&&(a+="(?:(?=\\/|$))"),[new RegExp(a,t?void 0:"i"),s]}function gj(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return $h(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function qh(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,s=e.charAt(n);return s&&s!=="/"?null:e.slice(n)||"/"}const yj=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,vj=e=>yj.test(e);function wj(e,t){t===void 0&&(t="/");let{pathname:n,search:s="",hash:a=""}=typeof e=="string"?ta(e):e,i;if(n)if(vj(n))i=n;else{if(n.includes("//")){let o=n;n=X0(n),$h(!1,"Pathnames cannot have embedded double slashes - normalizing "+(o+" -> "+n))}n.startsWith("/")?i=rf(n.substring(1),"/"):i=rf(n,t)}else i=t;return{pathname:i,search:kj(s),hash:Nj(a)}}function rf(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(a=>{a===".."?n.length>1&&n.pop():a!=="."&&n.push(a)}),n.length>1?n.join("/"):"/"}function $c(e,t,n,s){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(s)+"].  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 bj(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function Hh(e,t){let n=bj(e);return t?n.map((s,a)=>a===n.length-1?s.pathname:s.pathnameBase):n.map(s=>s.pathnameBase)}function Jh(e,t,n,s){s===void 0&&(s=!1);let a;typeof e=="string"?a=ta(e):(a=ci({},e),ge(!a.pathname||!a.pathname.includes("?"),$c("?","pathname","search",a)),ge(!a.pathname||!a.pathname.includes("#"),$c("#","pathname","hash",a)),ge(!a.search||!a.search.includes("#"),$c("#","search","hash",a)));let i=e===""||a.pathname==="",o=i?"/":a.pathname,l;if(o==null)l=n;else{let h=t.length-1;if(!s&&o.startsWith("..")){let p=o.split("/");for(;p[0]==="..";)p.shift(),h-=1;a.pathname=p.join("/")}l=h>=0?t[h]:"/"}let c=wj(a,l),d=o&&o!=="/"&&o.endsWith("/"),u=(i||o===".")&&n.endsWith("/");return!c.pathname.endsWith("/")&&(d||u)&&(c.pathname+="/"),c}const X0=e=>e.replace(/\/\/+/g,"/"),Hn=e=>X0(e.join("/")),jj=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),kj=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,Nj=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function Sj(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const ev=["post","put","patch","delete"];new Set(ev);const Cj=["get",...ev];new Set(Cj);/**
50 * React Router v6.30.4
51 *
52 * Copyright (c) Remix Software Inc.
53 *
54 * This source code is licensed under the MIT license found in the
55 * LICENSE.md file in the root directory of this source tree.
56 *
57 * @license MIT
58 */function di(){return di=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)({}).hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},di.apply(null,arguments)}const Qh=w.createContext(null),Pj=w.createContext(null),as=w.createContext(null),ec=w.createContext(null),Gt=w.createContext({outlet:null,matches:[],isDataRoute:!1}),tv=w.createContext(null);function Tj(e,t){let{relative:n}=t===void 0?{}:t;na()||ge(!1);let{basename:s,navigator:a}=w.useContext(as),{hash:i,pathname:o,search:l}=sv(e,{relative:n}),c=o;return s!=="/"&&(c=o==="/"?s:Hn([s,o])),a.createHref({pathname:c,search:l,hash:i})}function na(){return w.useContext(ec)!=null}function xn(){return na()||ge(!1),w.useContext(ec).location}function nv(e){w.useContext(as).static||w.useLayoutEffect(e)}function zs(){let{isDataRoute:e}=w.useContext(Gt);return e?$j():Ej()}function Ej(){na()||ge(!1);let e=w.useContext(Qh),{basename:t,future:n,navigator:s}=w.useContext(as),{matches:a}=w.useContext(Gt),{pathname:i}=xn(),o=JSON.stringify(Hh(a,n.v7_relativeSplatPath)),l=w.useRef(!1);return nv(()=>{l.current=!0}),w.useCallback(function(d,u){if(u===void 0&&(u={}),!l.current)return;if(typeof d=="number"){s.go(d);return}let h=Jh(d,JSON.parse(o),i,u.relative==="path");e==null&&t!=="/"&&(h.pathname=h.pathname==="/"?t:Hn([t,h.pathname])),(u.replace?s.replace:s.push)(h,u.state,u)},[t,s,o,i,e])}const _j=w.createContext(null);function Aj(e){let t=w.useContext(Gt).outlet;return t&&w.createElement(_j.Provider,{value:e},t)}function Fj(){let{matches:e}=w.useContext(Gt),t=e[e.length-1];return t?t.params:{}}function sv(e,t){let{relative:n}=t===void 0?{}:t,{future:s}=w.useContext(as),{matches:a}=w.useContext(Gt),{pathname:i}=xn(),o=JSON.stringify(Hh(a,s.v7_relativeSplatPath));return w.useMemo(()=>Jh(e,JSON.parse(o),i,n==="path"),[e,o,i,n])}function Mj(e,t){return Dj(e,t)}function Dj(e,t,n,s){na()||ge(!1);let{navigator:a}=w.useContext(as),{matches:i}=w.useContext(Gt),o=i[i.length-1],l=o?o.params:{};o&&o.pathname;let c=o?o.pathnameBase:"/";o&&o.route;let d=xn(),u;if(t){var h;let k=typeof t=="string"?ta(t):t;c==="/"||(h=k.pathname)!=null&&h.startsWith(c)||ge(!1),u=k}else u=d;let p=u.pathname||"/",g=p;if(c!=="/"){let k=c.replace(/^\//,"").split("/");g="/"+p.replace(/^\//,"").split("/").slice(k.length).join("/")}let y=sj(e,{pathname:g}),v=Bj(y&&y.map(k=>Object.assign({},k,{params:Object.assign({},l,k.params),pathname:Hn([c,a.encodeLocation?a.encodeLocation(k.pathname).pathname:k.pathname]),pathnameBase:k.pathnameBase==="/"?c:Hn([c,a.encodeLocation?a.encodeLocation(k.pathnameBase).pathname:k.pathnameBase])})),i,n,s);return t&&v?w.createElement(ec.Provider,{value:{location:di({pathname:"/",search:"",hash:"",state:null,key:"default"},u),navigationType:Rn.Pop}},v):v}function Oj(){let e=Wj(),t=Sj(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,a={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return w.createElement(w.Fragment,null,w.createElement("h2",null,"Unexpected Application 
58Error!"),w.createElement("h3",{style:{fontStyle:"italic"}},t),n?w.createElement("pre",{style:a},n):null,null)}const Rj=w.createElement(Oj,null);class Lj extends w.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){console.error("React Router caught the following error during render",t,n)}render(){return this.state.error!==void 0?w.createElement(Gt.Provider,{value:this.props.routeContext},w.createElement(tv.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function Ij(e){let{routeContext:t,match:n,children:s}=e,a=w.useContext(Qh);return a&&a.static&&a.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=n.route.id),w.createElement(Gt.Provider,{value:t},s)}function Bj(e,t,n,s){var a;if(t===void 0&&(t=[]),n===void 0&&(n=null),s===void 0&&(s=null),e==null){var i;if(!n)return null;if(n.errors)e=n.matches;else if((i=s)!=null&&i.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let o=e,l=(a=n)==null?void 0:a.errors;if(l!=null){let u=o.findIndex(h=>h.route.id&&(l==null?void 0:l[h.route.id])!==void 0);u>=0||ge(!1),o=o.slice(0,Math.min(o.length,u+1))}let c=!1,d=-1;if(n&&s&&s.v7_partialHydration)for(let u=0;u<o.length;u++){let h=o[u];if((h.route.HydrateFallback||h.route.hydrateFallbackElement)&&(d=u),h.route.id){let{loaderData:p,errors:g}=n,y=h.route.loader&&p[h.route.id]===void 0&&(!g||g[h.route.id]===void 0);if(h.route.lazy||y){c=!0,d>=0?o=o.slice(0,d+1):o=[o[0]];break}}}return o.reduceRight((u,h,p)=>{let g,y=!1,v=null,k=null;n&&(g=l&&h.route.id?l[h.route.id]:void 0,v=h.route.errorElement||Rj,c&&(d<0&&p===0?(qj("route-fallback"),y=!0,k=null):d===p&&(y=!0,k=h.route.hydrateFallbackElement||null)));let f=t.concat(o.slice(0,p+1)),x=()=>{let m;return g?m=v:y?m=k:h.route.Component?m=w.createElement(h.route.Component,null):h.route.element?m=h.route.element:m=u,w.createElement(Ij,{match:h,routeContext:{outlet:u,matches:f,isDataRoute:n!=null},children:m})};return n&&(h.route.ErrorBoundary||h.route.errorElement||p===0)?w.createElement(Lj,{location:n.location,revalidation:n.revalidation,component:v,error:g,children:x(),routeContext:{outlet:null,matches:f,isDataRoute:!0}}):x()},null)}var rv=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(rv||{}),av=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(av||{});function Vj(e){let t=w.useContext(Qh);return t||ge(!1),t}function Uj(e){let t=w.useContext(Pj);return t||ge(!1),t}function zj(e){let t=w.useContext(Gt);return t||ge(!1),t}function iv(e){let t=zj(),n=t.matches[t.matches.length-1];return n.route.id||ge(!1),n.route.id}function Wj(){var e;let t=w.useContext(tv),n=Uj(),s=iv();return t!==void 0?t:(e=n.errors)==null?void 0:e[s]}function $j(){let{router:e}=Vj(rv.UseNavigateStable),t=iv(av.UseNavigateStable),n=w.useRef(!1);return nv(()=>{n.current=!0}),w.useCallback(function(a,i){i===void 0&&(i={}),n.current&&(typeof a=="number"?e.navigate(a):e.navigate(a,di({fromRouteId:t},i)))},[e,t])}const af={};function qj(e,t,n){af[e]||(af[e]=!0)}function Hj(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function zo(e){let{to:t,replace:n,state:s,relative:a}=e;na()||ge(!1);let{future:i,static:o}=w.useContext(as),{matches:l}=w.useContext(Gt),{pathname:c}=xn(),d=zs(),u=Jh(t,Hh(l,i.v7_relativeSplatPath),c,a==="path"),h=JSON.stringify(u);return w.useEffect(()=>d(JSON.parse(h),{replace:n,state:s,relative:a}),[d,h,a,n,s]),null}function Jj(e){return Aj(e.context)}function X(e){ge(!1)}function Qj(e){let{basename:t="/",children:n=null,location:s,navigationType:a=Rn.Pop,navigator:i,static:o=!1,future:l}=e;na()&&ge(!1);let c=t.replace(/^\/*/,"/"),d=w.useMemo(()=>({basename:c,navigator:i,static:o,future:di({v7_relativeSplatPath:!1},l)}),[c,l,i,o]);typeof s=="string"&&(s=ta(s));
58let{pathname:u="/",search:h="",hash:p="",state:g=null,key:y="default"}=s,v=w.useMemo(()=>{let k=qh(u,c);return k==null?null:{location:{pathname:k,search:h,hash:p,state:g,key:y},navigationType:a}},[c,u,h,p,g,y,a]);return v==null?null:w.createElement(as.Provider,{value:d},w.createElement(ec.Provider,{children:n,value:v}))}function Gj(e){let{children:t,location:n}=e;return Mj(ou(t),n)}new Promise(()=>{});function ou(e,t){t===void 0&&(t=[]);let n=[];return w.Children.forEach(e,(s,a)=>{if(!w.isValidElement(s))return;let i=[...t,a];if(s.type===w.Fragment){n.push.apply(n,ou(s.props.children,i));return}s.type!==X&&ge(!1),!s.props.index||!s.props.children||ge(!1);let o={id:s.props.id||i.join("-"),caseSensitive:s.props.caseSensitive,element:s.props.element,Component:s.props.Component,index:s.props.index,path:s.props.path,loader:s.props.loader,action:s.props.action,errorElement:s.props.errorElement,ErrorBoundary:s.props.ErrorBoundary,hasErrorBoundary:s.props.ErrorBoundary!=null||s.props.errorElement!=null,shouldRevalidate:s.props.shouldRevalidate,handle:s.props.handle,lazy:s.props.lazy};s.props.children&&(o.children=ou(s.props.children,i)),n.push(o)}),n}/**
59 * React Router DOM v6.30.4
60 *
61 * Copyright (c) Remix Software Inc.
62 *
63 * This source code is licensed under the MIT license found in the
64 * LICENSE.md file in the root directory of this source tree.
65 *
66 * @license MIT
67 */function lu(){return lu=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)({}).hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},lu.apply(null,arguments)}function Yj(e,t){if(e==null)return{};var n={};for(var s in e)if({}.hasOwnProperty.call(e,s)){if(t.indexOf(s)!==-1)continue;n[s]=e[s]}return n}function Zj(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Kj(e,t){return e.button===0&&(!t||t==="_self")&&!Zj(e)}function cu(e){return e===void 0&&(e=""),new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,n)=>{let s=e[n];return t.concat(Array.isArray(s)?s.map(a=>[n,a]):[[n,s]])},[]))}function Xj(e,t){let n=cu(e);return t&&t.forEach((s,a)=>{n.has(a)||t.getAll(a).forEach(i=>{n.append(a,i)})}),n}const ek=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],tk="6";try{window.__reactRouterVersion=tk}catch{}const nk="startTransition",of=z1[nk];function sk(e){let{basename:t,children:n,future:s,window:a}=e,i=w.useRef();i.current==null&&(i.current=ej({window:a,v5Compat:!0}));let o=i.current,[l,c]=w.useState({action:o.action,location:o.location}),{v7_startTransition:d}=s||{},u=w.useCallback(h=>{d&&of?of(()=>c(h)):c(h)},[c,d]);return w.useLayoutEffect(()=>o.listen(u),[o,u]),w.useEffect(()=>Hj(s),[s]),w.createElement(Qj,{basename:t,children:n,location:l.location,navigationType:l.action,navigator:o,future:s})}const rk=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",ak=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,V=w.forwardRef(function(t,n){let{onClick:s,relative:a,reloadDocument:i,replace:o,state:l,target:c,to:d,preventScrollReset:u,viewTransition:h}=t,p=Yj(t,ek),{basename:g}=w.useContext(as),y,v=!1;if(typeof d=="string"&&ak.test(d)&&(y=d,rk))try{let m=new URL(window.location.href),b=d.startsWith("//")?new URL(m.protocol+d):new URL(d),N=qh(b.pathname,g);b.origin===m.origin&&N!=null?d=N+b.search+b.hash:v=!0}catch{}let k=Tj(d,{relative:a}),f=ik(d,{replace:o,state:l,target:c,preventScrollReset:u,relative:a,viewTransition:h});function x(m){s&&s(m),m.defaultPrevented||f(m)}return w.createElement("a",lu({},p,{href:y||k,onClick:v||i?s:x,ref:n,target:c}))});var lf;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(lf||(lf={}));var cf;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(cf||(cf={}));function ik(e,t){let{target:n,replace:s,state:a,preventScrollReset:i,relative:o,viewTransition:l}=t===void 0?{}:t,c=zs(),d=xn(),u=sv(e,{relative:o});return w.useCallback(h=>{if(Kj(h,n)){h.preventDefault();let p=s!==void 0?s:gl(d)===gl(u);c(e,{replace:p,state:a,preventScrollReset:i,relative:o,viewTransition:l})}},[d,c,u,s,a,n,e,i,o,l])}function ov(e){let t=w.useRef(cu(e)),n=w.useRef(!1),s=xn(),a=w.useMemo(()=>Xj(s.search,n.current?null:t.current),[s.search]),i=zs(),o=w.useCallback((l,c)=>{const d=cu(typeof l=="function"?l(a):l);n.current=!0,i("?"+d,c)},[i,a]);return[a,o]}var Mi=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},bs,Cn,Nr,Tg,ok=(Tg=class extends Mi{constructor(){super();I(this,bs);I(this,Cn);I(this,Nr);F(this,Nr,t=>{if(typeof window<"u"&&window.addEventListener){const n=()=>t();return window.addEventListener("visibilitychange",n,!1),()=>{window.removeEventListener("visibilitychange",n)}}})}onSubscribe(){j(this,Cn)||this.setEventListener(j(this,Nr))}onUnsubscribe(){var t;this.hasListeners()||((t=j(this,Cn))==null||t.call(this),F(this,Cn,void 0))}setEventListener(t){var n;F(this,Nr,t),(n=j(this,Cn))==null||n.call(this),F(this,Cn,t(s=>{typeof s=="boolean"?this.setFocused(s):this.onFocus()}))}setFocused(t){j(this,bs)!==t&&(F(this,bs,t),this.onFocus())}onFocus(){const t=this.isFocused();
67this.listeners.forEach(n=>{n(t)})}isFocused(){var t;return typeof j(this,bs)=="boolean"?j(this,bs):((t=globalThis.document)==null?void 0:t.visibilityState)!=="hidden"}},bs=new WeakMap,Cn=new WeakMap,Nr=new WeakMap,Tg),Gh=new ok,lk={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},Pn,Gu,Eg,ck=(Eg=class{constructor(){I(this,Pn,lk);I(this,Gu,!1)}setTimeoutProvider(e){F(this,Pn,e)}setTimeout(e,t){return j(this,Pn).setTimeout(e,t)}clearTimeout(e){j(this,Pn).clearTimeout(e)}setInterval(e,t){return j(this,Pn).setInterval(e,t)}clearInterval(e){j(this,Pn).clearInterval(e)}},Pn=new WeakMap,Gu=new WeakMap,Eg),vs=new ck;function dk(e){setTimeout(e,0)}var uk=typeof window>"u"||"Deno"in globalThis;function Ge(){}function hk(e,t){return typeof e=="function"?e(t):e}function du(e){return typeof e=="number"&&e>=0&&e!==1/0}function lv(e,t){return Math.max(e+(t||0)-Date.now(),0)}function Jn(e,t){return typeof e=="function"?e(t):e}function at(e,t){return typeof e=="function"?e(t):e}function df(e,t){const{type:n="all",exact:s,fetchStatus:a,predicate:i,queryKey:o,stale:l}=e;if(o){if(s){if(t.queryHash!==Yh(o,t.options))return!1}else if(!$r(t.queryKey,o))return!1}if(n!=="all"){const c=t.isActive();if(n==="active"&&!c||n==="inactive"&&c)return!1}return!(typeof l=="boolean"&&t.isStale()!==l||a&&a!==t.state.fetchStatus||i&&!i(t))}function uf(e,t){const{exact:n,status:s,predicate:a,mutationKey:i}=e;if(i){if(!t.options.mutationKey)return!1;if(n){if(ui(t.options.mutationKey)!==ui(i))return!1}else if(!$r(t.options.mutationKey,i))return!1}return!(s&&t.state.status!==s||a&&!a(t))}function Yh(e,t){return((t==null?void 0:t.queryKeyHashFn)||ui)(e)}function ui(e){return JSON.stringify(e,(t,n)=>hu(n)?Object.keys(n).sort().reduce((s,a)=>(s[a]=n[a],s),{}):n)}function $r(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(Array.isArray(e)&&Array.isArray(t)){for(let s=0;s<t.length;s++)if(!$r(e[s],t[s]))return!1;return!0}const n=Object.keys(t);for(const s of n)if(!$r(e[s],t[s]))return!1;return!0}return!1}var pk=Object.prototype.hasOwnProperty;function cv(e,t,n=0){if(e===t)return e;if(n>500)return t;const s=hf(e)&&hf(t);if(!s&&!(hu(e)&&hu(t)))return t;const i=(s?e:Object.keys(e)).length,o=s?t:Object.keys(t),l=o.length,c=s?new Array(l):{};let d=0;for(let u=0;u<l;u++){const h=s?u:o[u],p=e[h],g=t[h];if(p===g){c[h]=p,(s?u<i:pk.call(e,h))&&d++;continue}if(p===null||g===null||typeof p!="object"||typeof g!="object"){c[h]=g;continue}const y=cv(p,g,n+1);c[h]=y,y===p&&d++}return i===l&&d===i?e:c}function uu(e,t){if(!t||Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(e[n]!==t[n])return!1;return!0}function hf(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function hu(e){if(!pf(e))return!1;const t=e.constructor;if(t===void 0)return!0;const n=t.prototype;return!(!pf(n)||!n.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(e)!==Object.prototype)}function pf(e){return Object.prototype.toString.call(e)==="[object Object]"}function mk(e){return new Promise(t=>{vs.setTimeout(t,e)})}function pu(e,t,n){return typeof n.structuralSharing=="function"?n.structuralSharing(e,t):n.structuralSharing!==!1?cv(e,t):t}function fk(e,t,n=0){const s=[...e,t];return n&&s.length>n?s.slice(1):s}function xk(e,t,n=0){const s=[t,...e];return n&&s.length>n?s.slice(0,-1):s}var Zh=Symbol();function dv(e,t){return!e.queryFn&&(t!=null&&t.initialPromise)?()=>t.initialPromise:!e.queryFn||e.queryFn===Zh?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function uv(e,t){return typeof e=="function"?e(...t):!!e}function gk(e,t,n){let s=!1,a;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(a??(a=t()),s||(s=!0,a.aborted?n():a.addEventListener("abort",n,{once:!0})),a)}),e}var hi=(()=>{let e=()=>uk;return{isServer(){return e()},setIsServer(t){e=t}}})();function mu(){let e,t;const n=new Promise((a,i)=>{e=a,t=i});n.status="pending",n.catch(()=>{});function s(a){Object.assign(n,a),delete n.resolve,delete n.reject}return n.resolve=a=>{s({status:"fulfilled",value:a}),e(a)},n.reject=a=>{s({status:"rejected",reason:a}),t(a)},n}var yk=dk;function vk(){let e=[],t=0,n=l=>{l()},s=l=>{l()},a=yk;const i=l=>{t?e.push(l):a(()=>{n(l)})},o=()=>{const l=e;e=[],l.length&&a(()=>{s(()=>{l.forEach(c=>{n(c)})})})};return{batch:l=>{let c;t++;try{c=l()}finally{t--,t||o()}return c},batchCalls:l=>(...c)=>{i(()=>{l(...c)})},schedule:i,setNotifyFunction:l=>{n=l},setBatchNotifyFunction:l=>{s=l},setScheduler:l=>{a=l}}}var Ee=vk(),Sr,Tn,Cr,_g,wk=(_g=class extends Mi{constructor(){super();I(this,Sr,!0);I(this,Tn);I(this,Cr);F(this,Cr,t=>{if(typeof window<"u"&&window.addEventListener){const n=()=>t(!0),s=()=>t(!1);return window.addEventListener("online",n,!1),window.addEventListener("offline",s,!1),()=>{window.removeEventListener("online",n),window.removeEventListener("offline",s)}}})}onSubscribe(){j(this,Tn)||this.setEventListener(j(this,Cr))}onUnsubscribe(){var t;this.hasListeners()||((t=j(this,Tn))==null||t.call(this),F(this,Tn,void 0))}setEventListener(t){var n;F(this,Cr,t),(n=j(this,Tn))==null||n.call(this),F(this,Tn,t(this.setOnline.bind(this)))}setOnline(t){j(this,Sr)!==t&&(F(this,Sr,t),this.listeners.forEac
67h(s=>{s(t)}))}isOnline(){return j(this,Sr)}},Sr=new WeakMap,Tn=new WeakMap,Cr=new WeakMap,_g),yl=new wk;function bk(e){return Math.min(1e3*2**e,3e4)}function hv(e){return(e??"online")==="online"?yl.isOnline():!0}var fu=class extends Error{constructor(e){super("CancelledError"),this.revert=e==null?void 0:e.revert,this.silent=e==null?void 0:e.silent}};function pv(e){let t=!1,n=0,s;const a=mu(),i=()=>a.status!=="pending",o=v=>{var k;if(!i()){const f=new fu(v);p(f),(k=e.onCancel)==null||k.call(e,f)}},l=()=>{t=!0},c=()=>{t=!1},d=()=>Gh.isFocused()&&(e.networkMode==="always"||yl.isOnline())&&e.canRun(),u=()=>hv(e.networkMode)&&e.canRun(),h=v=>{i()||(s==null||s(),a.resolve(v))},p=v=>{i()||(s==null||s(),a.reject(v))},g=()=>new Promise(v=>{var k;s=f=>{(i()||d())&&v(f)},(k=e.onPause)==null||k.call(e)}).then(()=>{var v;s=void 0,i()||(v=e.onContinue)==null||v.call(e)}),y=()=>{if(i())return;let v;const k=n===0?e.initialPromise:void 0;try{v=k??e.fn()}catch(f){v=Promise.reject(f)}Promise.resolve(v).then(h).catch(f=>{var C;if(i())return;const x=e.retry??(hi.isServer()?0:3),m=e.retryDelay??bk,b=typeof m=="function"?m(n,f):m,N=x===!0||typeof x=="number"&&n<x||typeof x=="function"&&x(n,f);if(t||!N){p(f);return}n++,(C=e.onFail)==null||C.call(e,n,f),mk(b).then(()=>d()?void 0:g()).then(()=>{t?p(f):y()})})};return{promise:a,status:()=>a.status,cancel:o,continue:()=>(s==null||s(),a),cancelRetry:l,continueRetry:c,canStart:u,start:()=>(u()?y():g().then(y),a)}}var js,Ag,mv=(Ag=class{constructor(){I(this,js)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),du(this.gcTime)&&F(this,js,vs.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(hi.isServer()?1/0:5*60*1e3))}clearGcTimeout(){j(this,js)!==void 0&&(vs.clearTimeout(j(this,js)),F(this,js,void 0))}},js=new WeakMap,Ag);function jk(e){return{onFetch:(t,n)=>{var u,h,p,g,y;const s=t.options,a=(p=(h=(u=t.fetchOptions)==null?void 0:u.meta)==null?void 0:h.fetchMore)==null?void 0:p.direction,i=((g=t.state.data)==null?void 0:g.pages)||[],o=((y=t.state.data)==null?void 0:y.pageParams)||[];let l={pages:[],pageParams:[]},c=0;const d=async()=>{let v=!1;const k=m=>{gk(m,()=>t.signal,()=>v=!0)},f=dv(t.options,t.fetchOptions),x=async(m,b,N)=>{if(v)return Promise.reject(t.signal.reason);if(b==null&&m.pages.length)return Promise.resolve(m);const T=(()=>{const te={client:t.client,queryKey:t.queryKey,pageParam:b,direction:N?"backward":"forward",meta:t.options.meta};return k(te),te})(),S=await f(T),{maxPages:L}=t.options,D=N?xk:fk;return{pages:D(m.pages,S,L),pageParams:D(m.pageParams,b,L)}};if(a&&i.length){const m=a==="backward",b=m?kk:mf,N={pages:i,pageParams:o},C=b(s,N);l=await x(N,C,m)}else{const m=e??i.length;do{const b=c===0?o[0]??s.initialPageParam:mf(s,l);if(c>0&&b==null)break;l=await x(l,b),c++}while(c<m)}return l};t.options.persister?t.fetchFn=()=>{var v,k;return(k=(v=t.options).persister)==null?void 0:k.call(v,d,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n)}:t.fetchFn=d}}}function mf(e,{pages:t,pageParams:n}){const s=t.length-1;return t.length>0?e.getNextPageParam(t[s],t,n[s],n):void 0}function kk(e,{pages:t,pageParams:n}){var s;return t.length>0?(s=e.getPreviousPageParam)==null?void 0:s.call(e,t[0],t,n[0],n):void 0}var Pr,ks,Tr,xt,Ns,Ne,ki,Ss,rt,fv,Yt,Fg,Nk=(Fg=class extends mv{constructor(t){super();I(this,rt);I(this,Pr);I(this,ks);I(this,Tr);I(this,xt);I(this,Ns);I(this,Ne);I(this,ki);I(this,Ss);F(this,Ss,!1),F(this,ki,t.defaultOptions),this.setOptions(t.options),this.observers=[],F(this,Ns,t.client),F(this,xt,j(this,Ns).getQueryCache()),this.queryKey=t.queryKey,this.queryHash=t.queryHash,F(this,ks,xf(this.options)),this.state=t.state??j(this,ks),this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return j(this,Pr)}get promise(){var t;return(t=j(this,Ne))==null?void 0:t.promise}setOptions(t){if(this.options={...j(this,ki),...t},t!=null&&t._type&&F(this,Pr,t._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){const n=xf(this.options);n.data!==void 0&&(this.setState(ff(n.data,n.dataUpdatedAt)),F(this,ks,n))}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&j(this,xt).remove(this)}setData(t,n){const s=pu(this.state.data,t,this.options);return J(this,rt,Yt).call(this,{data:s,type:"success",dataUpdatedAt:n==null?void 0:n.updatedAt,manual:n==null?void 0:n.manual}),s}setState(t){J(this,rt,Yt).call(this,{type:"setState",state:t})}cancel(t){var s,a;const n=(s=j(this,Ne))==null?void 0:s.promise;return(a=j(this,Ne))==null||a.cancel(t),n?n.then(Ge).catch(Ge):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return j(this,ks)}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(t=>at(t.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===Zh||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdate
67Count>0}isStatic(){return this.getObserversCount()>0?this.observers.some(t=>Jn(t.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(t=>t.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(t=0){return this.state.data===void 0?!0:t==="static"?!1:this.state.isInvalidated?!0:!lv(this.state.dataUpdatedAt,t)}onFocus(){var n;const t=this.observers.find(s=>s.shouldFetchOnWindowFocus());t==null||t.refetch({cancelRefetch:!1}),(n=j(this,Ne))==null||n.continue()}onOnline(){var n;const t=this.observers.find(s=>s.shouldFetchOnReconnect());t==null||t.refetch({cancelRefetch:!1}),(n=j(this,Ne))==null||n.continue()}addObserver(t){this.observers.includes(t)||(this.observers.push(t),this.clearGcTimeout(),j(this,xt).notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){this.observers.includes(t)&&(this.observers=this.observers.filter(n=>n!==t),this.observers.length||(j(this,Ne)&&(j(this,Ss)||J(this,rt,fv).call(this)?j(this,Ne).cancel({revert:!0}):j(this,Ne).cancelRetry()),this.scheduleGc()),j(this,xt).notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||J(this,rt,Yt).call(this,{type:"invalidate"})}async fetch(t,n){var d,u,h,p,g,y,v,k,f,x,m;if(this.state.fetchStatus!=="idle"&&((d=j(this,Ne))==null?void 0:d.status())!=="rejected"){if(this.state.data!==void 0&&(n!=null&&n.cancelRefetch))this.cancel({silent:!0});else if(j(this,Ne))return j(this,Ne).continueRetry(),j(this,Ne).promise}if(t&&this.setOptions(t),!this.options.queryFn){const b=this.observers.find(N=>N.options.queryFn);b&&this.setOptions(b.options)}const s=new AbortController,a=b=>{Object.defineProperty(b,"signal",{enumerable:!0,get:()=>(F(this,Ss,!0),s.signal)})},i=()=>{const b=dv(this.options,n),C=(()=>{const T={client:j(this,Ns),queryKey:this.queryKey,meta:this.meta};return a(T),T})();return F(this,Ss,!1),this.options.persister?this.options.persister(b,C,this):b(C)},l=(()=>{const b={fetchOptions:n,options:this.options,queryKey:this.queryKey,client:j(this,Ns),state:this.state,fetchFn:i};return a(b),b})(),c=j(this,Pr)==="infinite"?jk(this.options.pages):this.options.behavior;c==null||c.onFetch(l,this),F(this,Tr,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((u=l.fetchOptions)==null?void 0:u.meta))&&J(this,rt,Yt).call(this,{type:"fetch",meta:(h=l.fetchOptions)==null?void 0:h.meta}),F(this,Ne,pv({initialPromise:n==null?void 0:n.initialPromise,fn:l.fetchFn,onCancel:b=>{b instanceof fu&&b.revert&&this.setState({...j(this,Tr),fetchStatus:"idle"}),s.abort()},onFail:(b,N)=>{J(this,rt,Yt).call(this,{type:"failed",failureCount:b,error:N})},onPause:()=>{J(this,rt,Yt).call(this,{type:"pause"})},onContinue:()=>{J(this,rt,Yt).call(this,{type:"continue"})},retry:l.options.retry,retryDelay:l.options.retryDelay,networkMode:l.options.networkMode,canRun:()=>!0}));try{const b=await j(this,Ne).start();if(b===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(b),(g=(p=j(this,xt).config).onSuccess)==null||g.call(p,b,this),(v=(y=j(this,xt).config).onSettled)==null||v.call(y,b,this.state.error,this),b}catch(b){if(b instanceof fu){if(b.silent)return j(this,Ne).promise;if(b.revert){if(this.state.data===void 0)throw b;return this.state.data}}throw J(this,rt,Yt).call(this,{type:"error",error:b}),(f=(k=j(this,xt).config).onError)==null||f.call(k,b,this),(m=(x=j(this,xt).config).onSettled)==null||m.call(x,this.state.data,b,this),b}finally{this.scheduleGc()}}},Pr=new WeakMap,ks=new WeakMap,Tr=new WeakMap,xt=new WeakMap,Ns=new WeakMap,Ne=new WeakMap,ki=new WeakMap,Ss=new WeakMap,rt=new WeakSet,fv=function(){return this.state.fetchStatus==="paused"&&this.state.status==="pending"},Yt=function(t){const n=s=>{switch(t.type){case"failed":return{...s,fetchFailureCount:t.failureCount,fetchFailureReason:t.error};case"pause":return{...s,fetchStatus:"paused"};case"continue":return{...s,fetchStatus:"fetching"};case"fetch":return{...s,...xv(s.data,this.options),fetchMeta:t.meta??null};case"success":const a={...s,...ff(t.data,t.dataUpdatedAt),dataUpdateCount:s.dataUpdateCount+1,...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return F(this,Tr,t.manual?a:void 0),a;case"error":const i=t.error;
vendor: 10,814 bytes, line 67
67return{...s,error:i,errorUpdateCount:s.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:s.fetchFailureCount+1,fetchFailureReason:i,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...s,isInvalidated:!0};case"setState":return{...s,...t.state}}};this.state=n(this.state),Ee.batch(()=>{this.observers.forEach(s=>{s.onQueryUpdate()}),j(this,xt).notify({query:this,type:"updated",action:t})})},Fg);function xv(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:hv(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function ff(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:"success"}}function xf(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,n=t!==void 0,s=n?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?s??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?"success":"pending",fetchStatus:"idle"}}var Qe,Q,Ni,Ve,Cs,Er,Xt,En,Si,_r,Ar,Ps,Ts,_n,Fr,K,Pa,xu,gu,yu,vu,wu,bu,ju,gv,Mg,Sk=(Mg=class extends Mi{constructor(t,n){super();I(this,K);I(this,Qe);I(this,Q);I(this,Ni);I(this,Ve);I(this,Cs);I(this,Er);I(this,Xt);I(this,En);I(this,Si);I(this,_r);I(this,Ar);I(this,Ps);I(this,Ts);I(this,_n);I(this,Fr,new Set);this.options=n,F(this,Qe,t),F(this,En,null),F(this,Xt,mu()),this.bindMethods(),this.setOptions(n)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(j(this,Q).addObserver(this),gf(j(this,Q),this.options)?J(this,K,Pa).call(this):this.updateResult(),J(this,K,vu).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return ku(j(this,Q),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return ku(j(this,Q),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,J(this,K,wu).call(this),J(this,K,bu).call(this),j(this,Q).removeObserver(this)}setOptions(t){const n=this.options,s=j(this,Q);if(this.options=j(this,Qe).defaultQueryOptions(t),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof at(this.options.enabled,j(this,Q))!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");J(this,K,ju).call(this),j(this,Q).setOptions(this.options),n._defaulted&&!uu(this.options,n)&&j(this,Qe).getQueryCache().notify({type:"observerOptionsUpdated",query:j(this,Q),observer:this});const a=this.hasListeners();a&&yf(j(this,Q),s,this.options,n)&&J(this,K,Pa).call(this),this.updateResult(),a&&(j(this,Q)!==s||at(this.options.enabled,j(this,Q))!==at(n.enabled,j(this,Q))||Jn(this.options.staleTime,j(this,Q))!==Jn(n.staleTime,j(this,Q)))&&J(this,K,xu).call(this);const i=J(this,K,gu).call(this);a&&(j(this,Q)!==s||at(this.options.enabled,j(this,Q))!==at(n.enabled,j(this,Q))||i!==j(this,_n))&&J(this,K,yu).call(this,i)}getOptimisticResult(t){const n=j(this,Qe).getQueryCache().build(j(this,Qe),t),s=this.createResult(n,t);return Pk(this,s)&&(F(this,Ve,s),F(this,Er,this.options),F(this,Cs,j(this,Q).state)),s}getCurrentResult(){return j(this,Ve)}trackResult(t,n){return new Proxy(t,{get:(s,a)=>(this.trackProp(a),n==null||n(a),a==="promise"&&(this.trackProp("data"),!this.options.experimental_prefetchInRender&&j(this,Xt).status==="pending"&&j(this,Xt).reject(new Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(s,a))})}trackProp(t){j(this,Fr).add(t)}getCurrentQuery(){return j(this,Q)}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){const n=j(this,Qe).defaultQueryOptions(t),s=j(this,Qe).getQueryCache().build(j(this,Qe),n);return s.fetch().then(()=>this.createResult(s,n))}fetch(t){return J(this,K,Pa).call(this,{...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),j(this,Ve)))}createResult(t,n){var L;const s=j(this,Q),a=this.options,i=j(this,Ve),o=j(this,Cs),l=j(this,Er),d=t!==s?t.state:j(this,Ni),{state:u}=t;let h={...u},p=!1,g;if(n._optimisticResults){const D=this.hasListeners(),te=!D&&gf(t,n),tt=D&&yf(t,s,n,a);(te||tt)&&(h={...h,...xv(u.data,t.options)}),n._optimisticResults==="isRestoring"&&(h.fetchStatus="idle")}let{error:y,errorUpdatedAt:v,status:k}=h;g=h.data;let f=!1;if(n.placeholderData!==void 0&&g===void 0&&k==="pending"){let D;i!=null&&i.isPlaceholderData&&n.placeholderData===(l==null?void 0:l.placeholderData)?(D=i.data,f=!0):D=typeof n.placeholderData=="function"?n.placeholderData((L=j(this,Ar))==null?void 0:L.state.data,j(this,Ar)):n.placeholderData,D!==void 0&&(k="success",g=pu(i==null?void 0:i.data,D,n),p=!0)}if(n.select&&g!==void 0&&!f)if(i&&g===(o==null?void 0:o.data)&&n.select===j(this,Si))g=j(this,_r);else try{F(this,Si,n.select),g=n.select(g),g=pu(i==null?void 0:i.data,g,n),F(this,_r,g),F(this,En,null)}catch(D){F(this,En,D)}j(this,En)&&(y=j(this,En),g=j(this,_r),v=Date.now(),k="error");const x=h.fetchStatus==="fetching",m=k==="pending",b=k==="error",N=m&&x,C=g!==void 0,S={status:k,fetchStatus:h.fetchStatus,isPending:m,isSuccess:k==="success",isError:b,isInitialLoading:N,isLoading:N,data:g,dataUpdatedAt:h.dataUpdatedAt,error:y,errorUpdatedAt:v,failureCount:h.fetchFailureCount,failureReason:h.fetchFailureReason,errorUpdateCount:h.errorUpdateCount,isFetched:t.isFetched(),isFetchedAfterMount:h.dataUpdateCount>d.dataUpdateCount||h.errorUpdateCount>d.errorUpdateCount,isFetching:x,isRefetching:x&&!m,isLoadingError:b&&!C,isPaused:h.fetchStatus==="paused",isPlaceholderData:p,isRefetchError:b&&C,isStale:Kh(t,n),refetch:this.refetch,promise:j(this,Xt),isEnabled:at(n.enabled,t)!==!1};if(this.options.experimental_prefetchInRender){const D=S.data!==void 0,te=S.status==="error"&&!D,tt=ls=>{te?ls.reject(S.error):D&&ls.resolve(S.data)},Ot=()=>{const ls=F(this,Xt,S.promise=mu());tt(ls)},Rt=j(this,Xt);switch(Rt.status){case"pending":t.queryHash===s.queryHash&&tt(Rt);break;case"fulfilled":(te||S.data!==Rt.value)&&Ot();break;case"rejected":(!te||S.error!==Rt.reason)&&Ot();break}}return S}updateResult(){const t=j(this,Ve),n=this.createResult(j(this,Q),this.options);if(F(this,Cs,j(this,Q).state),F(this,Er,this.options),j(this,Cs).data!==void 0&&F(this,Ar,j(this,Q)),uu(n,t))return;F(this,Ve,n);const s=()=>{if(!t)return!0;const{notifyOnChangeProps:a}=this.options,i=typeof a=="function"?a():a;if(i==="all"||!i&&!j(this,Fr).size)return!0;const o=new Set(i??j(this,Fr));return this.options.throwOnError&&o.add("error"),Object.keys(j(this,Ve)).some(l=>{const c=l;return j(this,Ve)[c]!==t[c]&&o.has(c)})};J(this,K,gv).call(this,{listeners:s()})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&J(this,K,vu).call(this)}},Qe=new WeakMap,Q=new WeakMap,Ni=new WeakMap,Ve=new WeakMap,Cs=new WeakMap,Er=new WeakMap,Xt=new WeakMap,En=new WeakMap,Si=new WeakMap,_r=new WeakMap,Ar=new WeakMap,Ps=new WeakMap,Ts=new WeakMap,_n=new WeakMap,Fr=new WeakMap,K=new WeakSet,Pa=function(t){J(this,K,ju).call(this);let n=j(this,Q).fetch(this.options,t);return t!=null&&t.throwOnError||(n=n.catch(Ge)),n},xu=function(){J(this,K,wu).call(this);const t=Jn(this.options.staleTime,j(this,Q));if(hi.isServer()||j(this,Ve).isStale||!du(t))return;const s=lv(j(this,Ve).dataUpdatedAt,t)+1;F(this,Ps,vs.setTimeout(()=>{j(this,Ve).isStale||this.updateResult()},s))},gu=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(j(this,Q)):this.options.refetchInterval)??!1},yu=function(t){J(this,K,bu).call(this),F(this,_n,t),!(hi.isServer()||at(this.options.enabled,j(this,Q))===!1||!du(j(this,_n))||j(this,_n)===0)&&F(this,Ts,vs.setInterval(()=>{(this.options.refetchIntervalInBackground||Gh.isFocused())&&J(this,K,Pa).call(this)},j(this,_n)))},vu=function(){J(this,K,xu).call(this),J(this,K,yu).call(this,J(this,K,gu).call(this))},wu=function(){j(this,Ps)!==void 0&&(vs.clearTimeout(j(this,Ps)),F(this,Ps,void 0))},bu=function(){j(this,Ts)!==void 0&&(vs.clearInterval(j(this,Ts)),F(this,Ts,void 0))},ju=function(){const t=j(this,Qe).getQueryCache().build(j(this,Qe),this.options);if(t===j(this,Q))return;const n=j(this,Q);F(this,Q,t),F(this,Ni,t.state),this.hasListeners()&&(n==null||n.removeObserver(this),t.addObserver(this))},gv=function(t){Ee.batch(()=>{t.listeners&&this.listeners.forEach(n=>{n(j(this,Ve))}),j(this,Qe).getQueryCache().notify({query:j(this,Q),type:"observerResultsUpdated"})})},Mg);function Ck(e,t){return at(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status==="error"&&at(t.retryOnMount,e)===!1)}function gf(e,t){return Ck(e,t)||e.state.data!==void 0&&ku(e,t,t.refetchOnMount)}function ku(e,t,n){if(at(t.enabled,e)!==!1&&Jn(t.staleTime,e)!=="static"){const s=typeof n=="function"?n(e):n;return s==="always"||s!==!1&&Kh(e,t)}return!1}function yf(e,t,n,s){return(e!==t||at(s.enabled,e)===!1)&&(!n.suspense||e.state.status!=="error")&&Kh(e,n)}function Kh(e,t){return at(t.enabled,e)!==!1&&e.isStaleByTime(Jn(t.staleTime,e))}function Pk(e,t){return!uu(e.getCurrentResult(),t)}var Ci,Bt,Oe,Es,Vt,vn,Dg,Tk=(Dg=class extends mv{constructor(t){super();I(this,Vt);I(this,Ci);I(this,Bt);I(this,Oe);I(this,Es);F(this,Ci,t.client),this.mutationId=t.mutationId,F(this,Oe,t.mutationCache),F(this,Bt,[]),this.state=t.state||Ek(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){j(this,Bt).includes(t)||(j(this,Bt).push(t),this.clearGcTimeout(),j(this,Oe).notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){F(this,Bt,j(this,Bt).filter(n=>n!==t)),this.scheduleGc(),j(this,Oe).notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){j(this,Bt).length||(this.state.status==="pending"?this.scheduleGc():j(this,Oe).remove(this))}continue(){var t;return((t=j(this,Es))==null?void 0:t.continue())??this.execute(this.state.variables)}async execute(t){var o,l,c,d,u,h,p,g,y,v,k,f,x,m,b,N,C,T;const n=()=>{J(this,Vt,vn).call(this,{type:"continue"})},s={client:j(this,Ci),meta:this.options.meta,mutationKey:this.options.mutationKey};F(this,Es,pv({fn:()=>this.options.mutationFn?this.options.mutationFn(t,s):Promise.reject(new Error("No mutationFn found")),onFail:(S,L)=>{J(this,Vt,vn).call(this,{type:"failed",failureCount:S,error:L})},onPause:()=>{J(this,Vt,vn).call(this,{type:"pause"})},onContinue:n,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>j(this,Oe).canRun(this)}));const a=this.state.status==="pending",i=!j(this,Es).canStart();try{if(a)n();else{J(this,Vt,vn).call(this,{type:"pending",variables:t,isPaused:i}),j(this,Oe).config.onMutate&&await j(this,Oe).config.onMutate(t,this,s);
67const L=await((l=(o=this.options).onMutate)==null?void 0:l.call(o,t,s));L!==this.state.context&&J(this,Vt,vn).call(this,{type:"pending",context:L,variables:t,isPaused:i})}const S=await j(this,Es).start();return await((d=(c=j(this,Oe).config).onSuccess)==null?void 0:d.call(c,S,t,this.state.context,this,s)),await((h=(u=this.options).onSuccess)==null?void 0:h.call(u,S,t,this.state.context,s)),await((g=(p=j(this,Oe).config).onSettled)==null?void 0:g.call(p,S,null,this.state.variables,this.state.context,this,s)),await((v=(y=this.options).onSettled)==null?void 0:v.call(y,S,null,t,this.state.context,s)),J(this,Vt,vn).call(this,{type:"success",data:S}),S}catch(S){try{await((f=(k=j(this,Oe).config).onError)==null?void 0:f.call(k,S,t,this.state.context,this,s))}catch(L){Promise.reject(L)}try{await((m=(x=this.options).onError)==null?void 0:m.call(x,S,t,this.state.context,s))}catch(L){Promise.reject(L)}try{await((N=(b=j(this,Oe).config).onSettled)==null?void 0:N.call(b,void 0,S,this.state.variables,this.state.context,this,s))}catch(L){Promise.reject(L)}try{await((T=(C=this.options).onSettled)==null?void 0:T.call(C,void 0,S,t,this.state.context,s))}catch(L){Promise.reject(L)}throw J(this,Vt,vn).call(this,{type:"error",error:S}),S}finally{j(this,Oe).runNext(this)}}},Ci=new WeakMap,Bt=new WeakMap,Oe=new WeakMap,Es=new WeakMap,Vt=new WeakSet,vn=function(t){const n=s=>{switch(t.type){case"failed":return{...s,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...s,isPaused:!0};case"continue":return{...s,isPaused:!1};case"pending":return{...s,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...s,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...s,data:void 0,error:t.error,failureCount:s.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}};this.state=n(this.state),Ee.batch(()=>{j(this,Bt).forEach(s=>{s.onMutationUpdate(t)}),j(this,Oe).notify({mutation:this,type:"updated",action:t})})},Dg);function Ek(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var en,Tt,Pi,Og,_k=(Og=class extends Mi{constructor(t={}){super();I(this,en);I(this,Tt);I(this,Pi);this.config=t,F(this,en,new Set),F(this,Tt,new Map),F(this,Pi,0)}build(t,n,s){const a=new Tk({client:t,mutationCache:this,mutationId:++qi(this,Pi)._,options:t.defaultMutationOptions(n),state:s});return this.add(a),a}add(t){j(this,en).add(t);const n=co(t);if(typeof n=="string"){const s=j(this,Tt).get(n);s?s.push(t):j(this,Tt).set(n,[t])}this.notify({type:"added",mutation:t})}remove(t){if(j(this,en).delete(t)){const n=co(t);if(typeof n=="string"){const s=j(this,Tt).get(n);if(s)if(s.length>1){const a=s.indexOf(t);a!==-1&&s.splice(a,1)}else s[0]===t&&j(this,Tt).delete(n)}}this.notify({type:"removed",mutation:t})}canRun(t){const n=co(t);if(typeof n=="string"){const s=j(this,Tt).get(n),a=s==null?void 0:s.find(i=>i.state.status==="pending");return!a||a===t}else return!0}runNext(t){var s;const n=co(t);if(typeof n=="string"){const a=(s=j(this,Tt).get(n))==null?void 0:s.find(i=>i!==t&&i.state.isPaused);return(a==null?void 0:a.continue())??Promise.resolve()}else return Promise.resolve()}clear(){Ee.batch(()=>{j(this,en).forEach(t=>{this.notify({type:"removed",mutation:t})}),j(this,en).clear(),j(this,Tt).clear()})}getAll(){return Array.from(j(this,en))}find(t){const n={exact:!0,...t};return this.getAll().find(s=>uf(n,s))}findAll(t={}){return this.getAll().filter(n=>uf(t,n))}notify(t){Ee.batch(()=>{this.listeners.forEach(n=>{n(t)})})}resumePausedMutations(){const t=this.getAll().filter(n=>n.state.isPaused);return Ee.batch(()=>Promise.all(t.map(n=>n.continue().catch(Ge))))}},en=new WeakMap,Tt=new WeakMap,Pi=new WeakMap,Og);function co(e){var t;return(t=e.options.scope)==null?void 0:t.id}var Ut,Rg,Ak=(Rg=class extends Mi{constructor(t={}){super();I(this,Ut);this.config=t,F(this,Ut,new Map)}build(t,n,s){const a=n.queryKey,i=n.queryHash??Yh(a,n);let o=this.get(i);return o||(o=new Nk({client:t,queryKey:a,queryHash:i,options:t.defaultQueryOptions(n),state:s,defaultOptions:t.getQueryDefaults(a)}),this.add(o)),o}add(t){j(this,Ut).has(t.queryHash)||(j(this,Ut).set(t.queryHash,t),this.notify({type:"added",query:t}))}remove(t){const n=j(this,Ut).get(t.queryHash);n&&(t.destroy(),n===t&&j(this,Ut).delete(t.queryHash),this.notify({type:"removed",query:t}))}clear(){Ee.batch(()=>
vendor: 5,533 bytes, line 67
67{this.getAll().forEach(t=>{this.remove(t)})})}get(t){return j(this,Ut).get(t)}getAll(){return[...j(this,Ut).values()]}find(t){const n={exact:!0,...t};return this.getAll().find(s=>df(n,s))}findAll(t={}){const n=this.getAll();return Object.keys(t).length>0?n.filter(s=>df(t,s)):n}notify(t){Ee.batch(()=>{this.listeners.forEach(n=>{n(t)})})}onFocus(){Ee.batch(()=>{this.getAll().forEach(t=>{t.onFocus()})})}onOnline(){Ee.batch(()=>{this.getAll().forEach(t=>{t.onOnline()})})}},Ut=new WeakMap,Rg),ue,An,Fn,Mr,Dr,Mn,Or,Rr,Lg,Fk=(Lg=class{constructor(e={}){I(this,ue);I(this,An);I(this,Fn);I(this,Mr);I(this,Dr);I(this,Mn);I(this,Or);I(this,Rr);F(this,ue,e.queryCache||new Ak),F(this,An,e.mutationCache||new _k),F(this,Fn,e.defaultOptions||{}),F(this,Mr,new Map),F(this,Dr,new Map),F(this,Mn,0)}mount(){qi(this,Mn)._++,j(this,Mn)===1&&(F(this,Or,Gh.subscribe(async e=>{e&&(await this.resumePausedMutations(),j(this,ue).onFocus())})),F(this,Rr,yl.subscribe(async e=>{e&&(await this.resumePausedMutations(),j(this,ue).onOnline())})))}unmount(){var e,t;qi(this,Mn)._--,j(this,Mn)===0&&((e=j(this,Or))==null||e.call(this),F(this,Or,void 0),(t=j(this,Rr))==null||t.call(this),F(this,Rr,void 0))}isFetching(e){return j(this,ue).findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return j(this,An).findAll({...e,status:"pending"}).length}getQueryData(e){var n;const t=this.defaultQueryOptions({queryKey:e});return(n=j(this,ue).get(t.queryHash))==null?void 0:n.state.data}ensureQueryData(e){const t=this.defaultQueryOptions(e),n=j(this,ue).build(this,t),s=n.state.data;return s===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(Jn(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(s))}getQueriesData(e){return j(this,ue).findAll(e).map(({queryKey:t,state:n})=>{const s=n.data;return[t,s]})}setQueryData(e,t,n){const s=this.defaultQueryOptions({queryKey:e}),a=j(this,ue).get(s.queryHash),i=a==null?void 0:a.state.data,o=hk(t,i);if(o!==void 0)return j(this,ue).build(this,s).setData(o,{...n,manual:!0})}setQueriesData(e,t,n){return Ee.batch(()=>j(this,ue).findAll(e).map(({queryKey:s})=>[s,this.setQueryData(s,t,n)]))}getQueryState(e){var n;const t=this.defaultQueryOptions({queryKey:e});return(n=j(this,ue).get(t.queryHash))==null?void 0:n.state}removeQueries(e){const t=j(this,ue);Ee.batch(()=>{t.findAll(e).forEach(n=>{t.remove(n)})})}resetQueries(e,t){const n=j(this,ue);return Ee.batch(()=>(n.findAll(e).forEach(s=>{s.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){const n={revert:!0,...t},s=Ee.batch(()=>j(this,ue).findAll(e).map(a=>a.cancel(n)));return Promise.all(s).then(Ge).catch(Ge)}invalidateQueries(e,t={}){return Ee.batch(()=>(j(this,ue).findAll(e).forEach(n=>{n.invalidate()}),(e==null?void 0:e.refetchType)==="none"?Promise.resolve():this.refetchQueries({...e,type:(e==null?void 0:e.refetchType)??(e==null?void 0:e.type)??"active"},t)))}refetchQueries(e,t={}){const n={...t,cancelRefetch:t.cancelRefetch??!0},s=Ee.batch(()=>j(this,ue).findAll(e).filter(a=>!a.isDisabled()&&!a.isStatic()).map(a=>{let i=a.fetch(void 0,n);return n.throwOnError||(i=i.catch(Ge)),a.state.fetchStatus==="paused"?Promise.resolve():i}));return Promise.all(s).then(Ge)}fetchQuery(e){const t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);const n=j(this,ue).build(this,t);return n.isStaleByTime(Jn(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(Ge).catch(Ge)}fetchInfiniteQuery(e){return e._type="infinite",this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(Ge).catch(Ge)}ensureInfiniteQueryData(e){return e._type="infinite",this.ensureQueryData(e)}resumePausedMutations(){return yl.isOnline()?j(this,An).resumePausedMutations():Promise.resolve()}getQueryCache(){return j(this,ue)}getMutationCache(){return j(this,An)}getDefaultOptions(){return j(this,Fn)}setDefaultOptions(e){F(this,Fn,e)}setQueryDefaults(e,t){j(this,Mr).set(ui(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...j(this,Mr).values()],n={};return t.forEach(s=>{$r(e,s.queryKey)&&Object.assign(n,s.defaultOptions)}),n}setMutationDefaults(e,t){j(this,Dr).set(ui(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...j(this,Dr).values()],n={};return t.forEach(s=>{$r(e,s.mutationKey)&&Object.assign(n,s.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;const t={...j(this,Fn).queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=Yh(t.queryKey,t)),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!=="always"),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===Zh&&(t.enabled=!1),t}defaultMutationOptions(e){return e!=null&&e._defaulted?e:{...j(this,Fn).mutations,...(e==null?void 0:e.mutationKey)&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){j(this,ue).clear(),j(this,An).clear()}},ue=new WeakMap,An=new WeakMap,Fn=new WeakMap,Mr=new WeakMap,Dr=new WeakMap,Mn=new WeakMap,Or=new WeakMap,Rr=new WeakMap,Lg),yv=w.createContext(void 0),vv=e=>{const t=w.useContext(yv);if(!t)throw new Error("No QueryClient set, use QueryClientProvider to set one");return t},Mk=({client:e,children:t})=>(w.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),r.jsx(yv.Provider,{value:e,children:t})),wv=w.createContext(!1),Dk=()=>w.useContext(wv);wv.Provider;function Ok(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}
67var Rk=w.createContext(Ok()),Lk=()=>w.useContext(Rk),Ik=(e,t,n)=>{const s=n!=null&&n.state.error&&typeof e.throwOnError=="function"?uv(e.throwOnError,[n.state.error,n]):e.throwOnError;(e.suspense||e.experimental_prefetchInRender||s)&&(t.isReset()||(e.retryOnMount=!1))},Bk=e=>{w.useEffect(()=>{e.clearReset()},[e])},Vk=({result:e,errorResetBoundary:t,throwOnError:n,query:s,suspense:a})=>e.isError&&!t.isReset()&&!e.isFetching&&s&&(a&&e.data===void 0||uv(n,[e.error,s])),Uk=e=>{if(e.suspense){const n=a=>a==="static"?a:Math.max(a??1e3,1e3),s=e.staleTime;e.staleTime=typeof s=="function"?(...a)=>n(s(...a)):n(s),typeof e.gcTime=="number"&&(e.gcTime=Math.max(e.gcTime,1e3))}},zk=(e,t)=>e.isLoading&&e.isFetching&&!t,Wk=(e,t)=>(e==null?void 0:e.suspense)&&t.isPending,vf=(e,t,n)=>t.fetchOptimistic(e).catch(()=>{n.clearReset()});function $k(e,t,n){var g,y,v,k;const s=Dk(),a=Lk(),i=vv(),o=i.defaultQueryOptions(e);(y=(g=i.getDefaultOptions().queries)==null?void 0:g._experimental_beforeQuery)==null||y.call(g,o);const l=i.getQueryCache().get(o.queryHash),c=e.subscribed!==!1;o._optimisticResults=s?"isRestoring":c?"optimistic":void 0,Uk(o),Ik(o,a,l),Bk(a);const d=!i.getQueryCache().get(o.queryHash),[u]=w.useState(()=>new t(i,o)),h=u.getOptimisticResult(o),p=!s&&c;if(w.useSyncExternalStore(w.useCallback(f=>{const x=p?u.subscribe(Ee.batchCalls(f)):Ge;return u.updateResult(),x},[u,p]),()=>u.getCurrentResult(),()=>u.getCurrentResult()),w.useEffect(()=>{u.setOptions(o)},[o,u]),Wk(o,h))throw vf(o,u,a);if(Vk({result:h,errorResetBoundary:a,throwOnError:o.throwOnError,query:l,suspense:o.suspense}))throw h.error;if((k=(v=i.getDefaultOptions().queries)==null?void 0:v._experimental_afterQuery)==null||k.call(v,o,h),o.experimental_prefetchInRender&&!hi.isServer()&&zk(h,s)){const f=d?vf(o,u,a):l==null?void 0:l.promise;f==null||f.catch(Ge).finally(()=>{u.updateResult()})}return o.notifyOnChangeProps?h:u.trackResult(h)}function Xh(e,t){return $k(e,Sk)}const qk="/api/v1";class Zn extends Error{constructor(n,s,a,i){super(a);$i(this,"code");$i(this,"status");$i(this,"details");this.status=n,this.code=s,this.details=i}}async function tc(e,t={}){const n=await fetch(`${qk}${e}`,{method:t.method??"GET",headers:t.body?{"Content-Type":"application/json"}:void 0,body:t.body?JSON.stringify(t.body):void 0,credentials:"include",signal:t.signal});let s=null;try{s=await n.json()}catch{}if(!n.ok){const a=s==null?void 0:s.error;throw new Zn(n.status,(a==null?void 0:a.code)??"ERROR",(a==null?void 0:a.message)??"Request failed",a==null?void 0:a.details)}return s.data}const ep=(e,t)=>tc(e,{signal:t}),qt=(e,t)=>tc(e,{method:"POST",body:t}),Hk=(e,t)=>tc(e,{method:"PATCH",body:t}),Jk=e=>tc(e,{method:"DELETE"}),bv=w.createContext(void 0),qc=["auth","me"];function Qk({children:e}){const t=vv(),{data:n,isLoading:s}=Xh({queryKey:qc,queryFn:()=>ep("/auth/me"),staleTime:5*6e4}),a=w.useCallback(u=>t.setQueryData(qc,{user:u}),[t]),i=w.useCallback(async(u,h)=>{const p=await qt("/auth/login",{email:u,password:h});a(p.user)},[a]),o=w.useCallback(async(u,h,p)=>{const g=await qt("/auth/signup",{email:u,password:h,displayName:p});a(g.user)},[a]),l=w.useCallback(async()=>{await qt("/auth/logout"),a(null),t.clear()},[t,a]),c=w.useCallback(async()=>{await t.invalidateQueries({queryKey:qc})},[t]),d=w.useMemo(()=>({user:(n==null?void 0:n.user)??null,loading:s,login:i,signup:o,logout:l,refresh:c}),[n,s,i,o,l,c]);return r.jsx(bv.Provider,{value:d,children:e})}function Ws(){const e=w.useContext(bv);if(!e)throw new Error("useAuth must be used within <AuthProvider>");return e}function Gk(){return r.jsxs(V,{to:"/",className:"flex items-center gap-2.5 shrink-0",children:[r.jsxs("svg",{width:"34",height:"34",viewBox:"0 0 40 40",fill:"none",children:[r.jsx("circle",{cx:"20",cy:"20",r:"19",fill:"#D72638",stroke:"#09162B",strokeWidth:"1.5"}),r.jsx("path",{d:"M12 17c1.5-3 3.5-4 8-4s6.5 1 8 4",stroke:"#09162B",strokeWidth:"1.6",strokeLinecap:"round",fill:"none"}),r.jsx("circle",{cx:"16",cy:"19",r:"2.6",fill:"#FFFDF7"}),r.jsx("circle",{cx:"16",cy:"19",r:"1.1",fill:"#09162B"}),r.jsx("path",{d:"M22 17.5c2 0 3.5 1 3.5 1",stroke:"#09162B",strokeWidth:"1.4",strokeLinecap:"round"}),r.jsx("path",{d:"M14 25c2 1.6 10 1.6 12 0",stroke:"#09162B",strokeWidth:"1.6",strokeLinecap:"round",fill:"none"})]}),r.jsxs("span",{className:"font-display font-bold text-lg tracking-tight text-navy",children:["Pirates",r.jsx("span",{className:"text-primary",children:"Of"}),"Bugs"]})]})}function nc(){const{user:e,logout:t}=Ws();return r.jsx("header",{className:"fixed top-0 inset-x-0 z-50 nav-glass border-b border-black/5",children:r.jsxs("div",{className:"max-w-7xl mx-auto px-6 lg:px-10 h-[72px] flex items-center justify-between",children:[r.jsx(Gk,{}),r.jsxs("nav",{className:"hidden lg:flex items-center gap-8 text-[15px] font-medium text-navy/80",children:[r.jsx(V,{to:"/crew",className:"hover:text-primary transition-colors",children:"Products"}),r.jsx("a",{href:"/#journey",className:"hover:text-primary transition-colors",children:"Solutions"}),r.jsx("a",{href:"/#features",className:"hover:text-primary transition-colors",children:"Developers"}),r.jsx("a",{href:"/#pricing",className:"hover:text-primary transition-colors",children:"Pricing"}),r.jsx("a",{href:"/#community",className:"hover:text-primary transition-colors",children:"Resources"})]}),r.jsx("div",{className:"flex items-center gap-3",children:e?r.jsxs(r.Fragment,{children:[r.jsx(V,{to:"/dashboard",className:"hidden sm:inline-block text-[15px] font-medium text-navy/80 hover:text-primary transition-colors",children:"Dashboard"}),r.jsx(V,{to:"/account",className:"hidden sm:inline-block text-[15px] font-medium text-navy/80 hover:text-primary transition-colors",children:"Account"}),r.jsx("button",{onClick:()=>t(),className:"btn-primary text-[15px] font-semibold px-5 py-2.5 rounded-full shadow-sm shadow-primary/20",children:"Log out"})]}):r.jsxs(r.Fragment,{children:[r.jsx(V,{to:"/login",className:"hidden sm:inline-block text-[15px] font-medium text-navy/80 hover:text-primary transition-colors",children:"Log in"}),r.jsx(V,{to:"/signup",className:"btn-primary text-[15px] font-semibold px-5 py-2.5 rounded-full shadow-sm shadow-primary/20",children:"Start Free"})]})})]})})}const Yk="/assets/hero-main-CYNvbx3u.webp",Zk=[{value:"100K+",label:"Engineers"},{value:"25M+",label:"Tests Executed"},{value:"99.99%",label:"Reliability"},{value:"500+",label:"Engineering Teams"}];function Kk(){return r.jsxs("section",{className:"relative pt-40 pb-28 overflow-hidden bg-gradient-to-b from-[#FFF4E3] via-[#FFFDF7] to-[#FFFDF7]",children:[r.jsx("div",{className:"grain"}),r.jsx("svg",{className:"absolute top-28 left-[8%] w-8 h-8 animate-bird opacity-60 hidden md:block",viewBox:"0 0 24 24",fill:"none",children:r.jsx("path",{d:"M2 14c3-4 6-4 8 0 2-4 5-4 8 0",stroke:"#09162B",strokeWidth:"1.6",strokeLinecap:"round"})}),r.jsx("svg",{className:"absolute top-44 left-[18%] w-6 h-6 animate-birdDelay opacity-50 hidden md:block",viewBox:"0 0 24 24",fill:"none",children:r.jsx("path",{d:"M2 14c3-4 6-4 8 0 2-4 5-4 8 0",stroke:"#09162B",strokeWidth:"1.6",strokeLinecap:"round"})}),r.jsxs("div",{className:"max-w-7xl mx-auto px-6 lg:px-10 grid lg:grid-cols-2 gap-16 items-center",children:[r.jsxs("div",{className:"animate-fadeUp",children:[r.jsxs("div",{className:"inline-flex items-center gap-2 text-primary text-sm font-semibold bg-primary/5 border border-primary/15 px-3.5 py-1.5 rounded-full mb-6",children:[r.jsx("span",{children:"⚑"})," Welcome aboard"]}),r.jsxs("h1",{className:"font-display font-extrabold text-[44px] sm:text-6xl leading-[1.05] tracking-tight text-navy",children:["Hunt Bugs.",r.jsx("br",{}),r.jsx("span",{className:"text-primary",children:"Find Treasure."})]}),r.jsx("p",{className:"mt-6 text-lg text-navy/70 max-w-lg leading-relaxed",children:"PiratesOfBugs is the engineering toolkit for QA engineers, SDETs and developers who refuse to wait for bugs to find them first."}),r.jsxs("div",{className:"mt-9 flex flex-wrap items-center gap-4",children:[r.jsxs(V,{to:"/signup",className:"btn-primary font-semibold px-7 py-3.5 rounded-full shadow-lg shadow-primary/25 hover:shadow-xl transition-all inline-flex items-center gap-2",children:["Start Free ",r.jsx("span",{children:"→"})]}),r.jsxs(V,{to:"/crew",className:"flex items-center gap-2.5 font-semibold text-navy px-6 py-3.5 rounded-full border border-navy/15 hover:border-navy/30 transition-colors",children:[r.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",children:[r.jsx("circle",{cx:"12",cy:"12",r:"10",stroke:"#09162B",strokeWidth:"1.6"}),r.jsx("path",{d:"M10 8.5l6 3.5-6 3.5v-7z",fill:"#09162B"})]}),"Explore the fleet"]})]}),r.jsxs("div",{className:"mt-7 flex flex-wrap items-center gap-x-7 gap-y-2 text-sm text-navy/50 font-medium",children:[r.jsx("span",{className:"flex items-center gap-1.5",children:"✓ No credit card required"}),r.jsx("span",{className:"flex items-center gap-1.5",children:"⚡ Set up in 60 seconds"}),r.jsx("span",{className:"flex items-center gap-1.5",children:"♥ Loved by engineers"})]})]}),r.jsxs("div",{className:"relative animate-fadeUp [animation-delay:.15s]",children:[r.jsxs("svg",{viewBox:"0 0 560 480",className:"w-full h-auto",children:[r.jsx("ellipse",{cx:"90",cy:"360",rx:"46",ry:"14",f
67ill:"#4DA8DA",opacity:".18"}),r.jsx("ellipse",{cx:"480",cy:"380",rx:"60",ry:"16",fill:"#4DA8DA",opacity:".18"}),r.jsx("path",{d:"M0 400 C 60 380, 120 420, 180 400 C 240 380, 300 420, 360 400 C 420 380, 480 420, 560 400 L560 480 L0 480 Z",fill:"#4DA8DA",opacity:".22"}),r.jsx("path",{d:"M0 420 C 70 405, 130 435, 200 420 C 270 405, 330 435, 400 420 C 460 405, 510 435, 560 420 L560 480 L0 480 Z",fill:"#4DA8DA",opacity:".35"}),r.jsx("path",{d:"M170 400 L390 400 L360 440 Q280 458 200 440 Z",fill:"#7A4A2B"}),r.jsx("path",{d:"M170 400 L390 400 L385 410 L175 410 Z",fill:"#9A5F35"}),r.jsx("rect",{x:"270",y:"180",width:"8",height:"220",rx:"3",fill:"#5A3A22"}),r.jsx("path",{d:"M278 186 L322 196 L278 210 Z",fill:"#09162B"}),r.jsx("circle",{cx:"292",cy:"196",r:"3.2",fill:"#FFFDF7"}),r.jsx("path",{d:"M287 199 l3 3 6-8",stroke:"#FFFDF7",strokeWidth:"1.6",fill:"none",strokeLinecap:"round"}),r.jsxs("g",{transform:"translate(280,340)",children:[r.jsxs("g",{className:"origin-center animate-spinSlow",children:[r.jsx("circle",{r:"52",fill:"none",stroke:"#5A3A22",strokeWidth:"9"}),r.jsx("circle",{r:"52",fill:"none",stroke:"#7A4A2B",strokeWidth:"3"}),r.jsxs("g",{stroke:"#5A3A22",strokeWidth:"7",strokeLinecap:"round",children:[r.jsx("line",{x1:"0",y1:"-58",x2:"0",y2:"58"}),r.jsx("line",{x1:"-58",y1:"0",x2:"58",y2:"0"}),r.jsx("line",{x1:"-41",y1:"-41",x2:"41",y2:"41"}),r.jsx("line",{x1:"-41",y1:"41",x2:"41",y2:"-41"})]})]}),r.jsx("circle",{r:"16",fill:"#9A5F35"})]})]}),r.jsx("img",{src:Yk,alt:"Captain Buggy, the PiratesOfBugs mascot, steering the ship",className:"animate-bob absolute pointer-events-none select-none",style:{width:"46%",left:"50%",top:"6%",transform:"translateX(-50%)",filter:"drop-shadow(0 18px 24px rgba(9,22,43,0.28))"}})]})]}),r.jsx("div",{className:"max-w-6xl mx-auto px-6 lg:px-10 mt-16 animate-fadeUp [animation-delay:.3s]",children:r.jsx("div",{className:"bg-white rounded-3xl border border-black/5 shadow-[0_8px_30px_-12px_rgba(9,22,43,0.12)] px-8 py-8 grid grid-cols-2 md:grid-cols-4 gap-8 text-center",children:Zk.map(e=>r.jsxs("div",{children:[r.jsx("div",{className:"font-display font-bold text-3xl text-navy",children:e.value}),r.jsx("div",{className:"text-sm text-navy/60 mt-1",children:e.label})]},e.label))})})]})}const Xk=["Microsoft","Google","Amazon","Atlassian","Adobe","Spotify","Uber","Razorpay"];function eN(){return r.jsx("section",{className:"py-14 border-y border-black/5",children:r.jsxs("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:[r.jsx("p",{className:"text-center text-sm font-semibold tracking-widest text-navy/40 uppercase mb-8",children:"Trusted by engineering teams at"}),r.jsx("div",{className:"flex flex-wrap items-center justify-center gap-x-12 gap-y-6 text-navy/35 font-display font-bold text-xl",children:Xk.map(e=>r.jsx("span",{children:e},e))})]})})}const wf="G-S2TGHF70BX";let bf=!1;const tN=/email|password|phone|token|secret|auth|ssn|address|card/i;function nN(e){if(!e)return;const t=Object.keys(e).filter(n=>tN.test(n));t.length>0&&t.forEach(n=>delete e[n])}function sN(){if(bf)return;window.dataLayer=window.dataLayer||[],window.gtag=function(){window.dataLayer.push(arguments)},window.gtag("consent","default",{analytics_storage:"denied",ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied"});const e=document.createElement("script");e.async=!0,e.src=`https://www.googletagmanager.com/gtag/js?id=${wf}`,document.head.appendChild(e),window.gtag("js",new Date),window.gtag("config",wf,{send_page_view:!1}),bf=!0}function jf(e){window.gtag&&window.gtag("consent","update",{analytics_storage:e?"granted":"denied"})}function rN(e,t){window.gtag&&window.gtag("event","page_view",{page_path:e,page_title:t,page_location:window.location.href})}function sa(e,t){nN(t),window.gtag&&window.gtag("event",e,t)}function Nu(e,t){sa("click_product",{product_name:e,product_slug:t})}function kf(e,t){sa("outbound_link_click",{link_url:e,link_label:t})}function Nf(e){sa("outbound_link_click",{link_label:`social_${e.toLowerCase()}`})}function aN(e,t){sa("cta_click",{cta_label:e,...t})}function tp(e,t){sa("form_submit",{form_name:e,...t})}var Z;(function(e){e.assertEqual=a=>{};function t(a){}e.assertIs=t;function n(a){throw new Error}e.assertNever=n,e.arrayToEnum=a=>{const i={};for(const o of a)i[o]=o;return i},e.getValidEnumValues=a=>{const i=e.objectKeys(a).filter(l=>typeof a[a[l]]!="number"),o={};for(const l of i)o[l]=a[l];return e.objectValues(o)},e.objectValues=a=>e.objectKeys(a).map(function(i){return a[i]}),e.objectKeys=typeof Object.keys=="function"?a=>Object.keys(a):a=>{const i=[];for(const o in a)Object.prototype.hasOwnProperty.call(a,o)&&i.push(o);return i},e.find=(a,i)=>{for(const o of a)if(i(o))return o}
vendor: 7,130 bytes, line 67
67,e.isInteger=typeof Number.isInteger=="function"?a=>Number.isInteger(a):a=>typeof a=="number"&&Number.isFinite(a)&&Math.floor(a)===a;function s(a,i=" | "){return a.map(o=>typeof o=="string"?`'${o}'`:o).join(i)}e.joinValues=s,e.jsonStringifyReplacer=(a,i)=>typeof i=="bigint"?i.toString():i})(Z||(Z={}));var Sf;(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(Sf||(Sf={}));const O=Z.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),kn=e=>{switch(typeof e){case"undefined":return O.undefined;case"string":return O.string;case"number":return Number.isNaN(e)?O.nan:O.number;case"boolean":return O.boolean;case"function":return O.function;case"bigint":return O.bigint;case"symbol":return O.symbol;case"object":return Array.isArray(e)?O.array:e===null?O.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?O.promise:typeof Map<"u"&&e instanceof Map?O.map:typeof Set<"u"&&e instanceof Set?O.set:typeof Date<"u"&&e instanceof Date?O.date:O.object;default:return O.unknown}},E=Z.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class un extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=s=>{this.issues=[...this.issues,s]},this.addIssues=(s=[])=>{this.issues=[...this.issues,...s]};const n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=t}format(t){const n=t||function(i){return i.message},s={_errors:[]},a=i=>{for(const o of i.issues)if(o.code==="invalid_union")o.unionErrors.map(a);else if(o.code==="invalid_return_type")a(o.returnTypeError);else if(o.code==="invalid_arguments")a(o.argumentsError);else if(o.path.length===0)s._errors.push(n(o));else{let l=s,c=0;for(;c<o.path.length;){const d=o.path[c];c===o.path.length-1?(l[d]=l[d]||{_errors:[]},l[d]._errors.push(n(o))):l[d]=l[d]||{_errors:[]},l=l[d],c++}}};return a(this),s}static assert(t){if(!(t instanceof un))throw new Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,Z.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(t=n=>n.message){const n={},s=[];for(const a of this.issues)if(a.path.length>0){const i=a.path[0];n[i]=n[i]||[],n[i].push(t(a))}else s.push(t(a));return{formErrors:s,fieldErrors:n}}get formErrors(){return this.flatten()}}un.create=e=>new un(e);const Su=(e,t)=>{let n;switch(e.code){case E.invalid_type:e.received===O.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case E.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,Z.jsonStringifyReplacer)}`;break;case E.unrecognized_keys:n=`Unrecognized key(s) in object: ${Z.joinValues(e.keys,", ")}`;break;case E.invalid_union:n="Invalid input";break;case E.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${Z.joinValues(e.options)}`;break;case E.invalid_enum_value:n=`Invalid enum value. Expected ${Z.joinValues(e.options)}, received '${e.received}'`;break;case E.invalid_arguments:n="Invalid function arguments";break;case E.invalid_return_type:n="Invalid function return type";break;case E.invalid_date:n="Invalid date";break;case E.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:Z.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case E.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case E.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case E.custom:n="Invalid input";break;case E.invalid_intersection_types:n="Intersection results could not be merged";break;case E.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case E.not_finite:n="Number must be finite";break;default:n=t.defaultError,Z.assertNever(e)}return{message:n}};let iN=Su;function oN(){return iN}const lN=e=>{const{data:t,path:n,errorMaps:s,issueData:a}=e,i=[...n,...a.path||[]],o={...a,path:i};if(a.message!==void 0)return{...a,path:i,message:a.message};let l="";const c=s.filter(d=>!!d).slice().reverse();for(const d of c)l=d(o,{data:t,defaultError:l}).message;return{...a,path:i,message:l}};function A(e,t){const n=oN(),s=lN({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===Su?void 0:Su].filter(a=>!!a)});e.common.issues.push(s)}class dt{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){const s=[];for(const a of n){if(a.status==="aborted")return z;a.status==="dirty"&&t.dirty(),s.push(a.value)}return{status:t.value,value:s}}static async mergeObjectAsync(t,n){const s=[];for(const a of n){const i=await a.key,o=await a.value;s.push({key:i,value:o})}return dt.mergeObjectSync(t,s)}static mergeObjectSync(t,n){const s={};for(const a of n){const{key:i,value:o}=a;if(i.status==="aborted"||o.status==="aborted")return z;i.status==="dirty"&&t.dirty(),o.status==="dirty"&&t.dirty(),i.value!=="__proto__"&&(typeof o.value<"u"||a.alwaysSet)&&(s[i.value]=o.value)}return{status:t.value,value:s}}}const z=Object.freeze({status:"aborted"}),Ta=e=>({status:"dirty",value:e}),Nt=e=>
vendor: 4,853 bytes, line 67
67({status:"valid",value:e}),Cf=e=>e.status==="aborted",Pf=e=>e.status==="dirty",qr=e=>e.status==="valid",vl=e=>typeof Promise<"u"&&e instanceof Promise;var R;(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t==null?void 0:t.message})(R||(R={}));class Kn{constructor(t,n,s,a){this._cachedPath=[],this.parent=t,this.data=n,this._path=s,this._key=a}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const Tf=(e,t)=>{if(qr(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const n=new un(e.common.issues);return this._error=n,this._error}}};function q(e){if(!e)return{};const{errorMap:t,invalid_type_error:n,required_error:s,description:a}=e;if(t&&(n||s))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:a}:{errorMap:(o,l)=>{const{message:c}=e;return o.code==="invalid_enum_value"?{message:c??l.defaultError}:typeof l.data>"u"?{message:c??s??l.defaultError}:o.code!=="invalid_type"?{message:l.defaultError}:{message:c??n??l.defaultError}},description:a}}class Y{get description(){return this._def.description}_getType(t){return kn(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:kn(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new dt,ctx:{common:t.parent.common,data:t.data,parsedType:kn(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){const n=this._parse(t);if(vl(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(t){const n=this._parse(t);return Promise.resolve(n)}parse(t,n){const s=this.safeParse(t,n);if(s.success)return s.data;throw s.error}safeParse(t,n){const s={common:{issues:[],async:(n==null?void 0:n.async)??!1,contextualErrorMap:n==null?void 0:n.errorMap},path:(n==null?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:kn(t)},a=this._parseSync({data:t,path:s.path,parent:s});return Tf(s,a)}"~validate"(t){var s,a;const n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:kn(t)};if(!this["~standard"].async)try{const i=this._parseSync({data:t,path:[],parent:n});return qr(i)?{value:i.value}:{issues:n.common.issues}}catch(i){(a=(s=i==null?void 0:i.message)==null?void 0:s.toLowerCase())!=null&&a.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:n}).then(i=>qr(i)?{value:i.value}:{issues:n.common.issues})}async parseAsync(t,n){const s=await this.safeParseAsync(t,n);if(s.success)return s.data;throw s.error}async safeParseAsync(t,n){const s={common:{issues:[],contextualErrorMap:n==null?void 0:n.errorMap,async:!0},path:(n==null?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:kn(t)},a=this._parse({data:t,path:s.path,parent:s}),i=await(vl(a)?a:Promise.resolve(a));return Tf(s,i)}refine(t,n){const s=a=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(a):n;return this._refinement((a,i)=>{const o=t(a),l=()=>i.addIssue({code:E.custom,...s(a)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(l(),!1)):o?!0:(l(),!1)})}refinement(t,n){return this._refinement((s,a)=>t(s)?!0:(a.addIssue(typeof n=="function"?n(s,a):n),!1))}_refinement(t){return new Jr({schema:this,typeName:W.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:n=>this["~validate"](n)}}
vendor: 4,875 bytes, line 67
67optional(){return Qn.create(this,this._def)}nullable(){return Qr.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Ht.create(this)}promise(){return kl.create(this,this._def)}or(t){return bl.create([this,t],this._def)}and(t){return jl.create(this,t,this._def)}transform(t){return new Jr({...q(this._def),schema:this,typeName:W.ZodEffects,effect:{type:"transform",transform:t}})}default(t){const n=typeof t=="function"?t:()=>t;return new Pu({...q(this._def),innerType:this,defaultValue:n,typeName:W.ZodDefault})}brand(){return new AN({typeName:W.ZodBranded,type:this,...q(this._def)})}catch(t){const n=typeof t=="function"?t:()=>t;return new Tu({...q(this._def),innerType:this,catchValue:n,typeName:W.ZodCatch})}describe(t){const n=this.constructor;return new n({...this._def,description:t})}pipe(t){return np.create(this,t)}readonly(){return Eu.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const cN=/^c[^\s-]{8,}$/i,dN=/^[0-9a-z]+$/,uN=/^[0-9A-HJKMNP-TV-Z]{26}$/i,hN=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,pN=/^[a-z0-9_-]{21}$/i,mN=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,fN=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,xN=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,gN="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let Hc;const yN=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,vN=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,wN=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,bN=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,jN=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,kN=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,jv="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",NN=new RegExp(`^${jv}$`);function kv(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`);const n=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function SN(e){return new RegExp(`^${kv(e)}$`)}function CN(e){let t=`${jv}T${kv(e)}`;const n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function PN(e,t){return!!((t==="v4"||!t)&&yN.test(e)||(t==="v6"||!t)&&wN.test(e))}function TN(e,t){if(!mN.test(e))return!1;try{const[n]=e.split(".");if(!n)return!1;const s=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),a=JSON.parse(atob(s));return!(typeof a!="object"||a===null||"typ"in a&&(a==null?void 0:a.typ)!=="JWT"||!a.alg||t&&a.alg!==t)}catch{return!1}}function EN(e,t){return!!((t==="v4"||!t)&&vN.test(e)||(t==="v6"||!t)&&bN.test(e))}class Ln extends Y{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==O.string){const i=this._getOrReturnCtx(t);return A(i,{code:E.invalid_type,expected:O.string,received:i.parsedType}),z}const s=new dt;let a;for(const i of this._def.checks)if(i.kind==="min")t.data.length<i.value&&(
vendor: 6,700 bytes, line 67
67a=this._getOrReturnCtx(t,a),A(a,{code:E.too_small,minimum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),s.dirty());else if(i.kind==="max")t.data.length>i.value&&(a=this._getOrReturnCtx(t,a),A(a,{code:E.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),s.dirty());else if(i.kind==="length"){const o=t.data.length>i.value,l=t.data.length<i.value;(o||l)&&(a=this._getOrReturnCtx(t,a),o?A(a,{code:E.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!0,message:i.message}):l&&A(a,{code:E.too_small,minimum:i.value,type:"string",inclusive:!0,exact:!0,message:i.message}),s.dirty())}else if(i.kind==="email")xN.test(t.data)||(a=this._getOrReturnCtx(t,a),A(a,{validation:"email",code:E.invalid_string,message:i.message}),s.dirty());else if(i.kind==="emoji")Hc||(Hc=new RegExp(gN,"u")),Hc.test(t.data)||(a=this._getOrReturnCtx(t,a),A(a,{validation:"emoji",code:E.invalid_string,message:i.message}),s.dirty());else if(i.kind==="uuid")hN.test(t.data)||(a=this._getOrReturnCtx(t,a),A(a,{validation:"uuid",code:E.invalid_string,message:i.message}),s.dirty());else if(i.kind==="nanoid")pN.test(t.data)||(a=this._getOrReturnCtx(t,a),A(a,{validation:"nanoid",code:E.invalid_string,message:i.message}),s.dirty());else if(i.kind==="cuid")cN.test(t.data)||(a=this._getOrReturnCtx(t,a),A(a,{validation:"cuid",code:E.invalid_string,message:i.message}),s.dirty());else if(i.kind==="cuid2")dN.test(t.data)||(a=this._getOrReturnCtx(t,a),A(a,{validation:"cuid2",code:E.invalid_string,message:i.message}),s.dirty());else if(i.kind==="ulid")uN.test(t.data)||(a=this._getOrReturnCtx(t,a),A(a,{validation:"ulid",code:E.invalid_string,message:i.message}),s.dirty());else if(i.kind==="url")try{new URL(t.data)}catch{a=this._getOrReturnCtx(t,a),A(a,{validation:"url",code:E.invalid_string,message:i.message}),s.dirty()}else i.kind==="regex"?(i.regex.lastIndex=0,i.regex.test(t.data)||(a=this._getOrReturnCtx(t,a),A(a,{validation:"regex",code:E.invalid_string,message:i.message}),s.dirty())):i.kind==="trim"?t.data=t.data.trim():i.kind==="includes"?t.data.includes(i.value,i.position)||(a=this._getOrReturnCtx(t,a),A(a,{code:E.invalid_string,validation:{includes:i.value,position:i.position},message:i.message}),s.dirty()):i.kind==="toLowerCase"?t.data=t.data.toLowerCase():i.kind==="toUpperCase"?t.data=t.data.toUpperCase():i.kind==="startsWith"?t.data.startsWith(i.value)||(a=this._getOrReturnCtx(t,a),A(a,{code:E.invalid_string,validation:{startsWith:i.value},message:i.message}),s.dirty()):i.kind==="endsWith"?t.data.endsWith(i.value)||(a=this._getOrReturnCtx(t,a),A(a,{code:E.invalid_string,validation:{endsWith:i.value},message:i.message}),s.dirty()):i.kind==="datetime"?CN(i).test(t.data)||(a=this._getOrReturnCtx(t,a),A(a,{code:E.invalid_string,validation:"datetime",message:i.message}),s.dirty()):i.kind==="date"?NN.test(t.data)||(a=this._getOrReturnCtx(t,a),A(a,{code:E.invalid_string,validation:"date",message:i.message}),s.dirty()):i.kind==="time"?SN(i).test(t.data)||(a=this._getOrReturnCtx(t,a),A(a,{code:E.invalid_string,validation:"time",message:i.message}),s.dirty()):i.kind==="duration"?fN.test(t.data)||(a=this._getOrReturnCtx(t,a),A(a,{validation:"duration",code:E.invalid_string,message:i.message}),s.dirty()):i.kind==="ip"?PN(t.data,i.version)||(a=this._getOrReturnCtx(t,a),A(a,{validation:"ip",code:E.invalid_string,message:i.message}),s.dirty()):i.kind==="jwt"?TN(t.data,i.alg)||(a=this._getOrReturnCtx(t,a),A(a,{validation:"jwt",code:E.invalid_string,message:i.message}),s.dirty()):i.kind==="cidr"?EN(t.data,i.version)||(a=this._getOrReturnCtx(t,a),A(a,{validation:"cidr",code:E.invalid_string,message:i.message}),s.dirty()):i.kind==="base64"?jN.test(t.data)||(a=this._getOrReturnCtx(t,a),A(a,{validation:"base64",code:E.invalid_string,message:i.message}),s.dirty()):i.kind==="base64url"?kN.test(t.data)||(a=this._getOrReturnCtx(t,a),A(a,{validation:"base64url",code:E.invalid_string,message:i.message}),s.dirty()):Z.assertNever(i);return{status:s.value,value:t.data}}_regex(t,n,s){return this.refinement(a=>t.test(a),{validation:n,code:E.invalid_string,...R.errToObj(s)})}_addCheck(t){return new Ln({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...R.errToObj(t)})}url(t){return this._addCheck({kind:"url",...R.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...R.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...R.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...R.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...R.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...R.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...R.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...R.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...R.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...R.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...R.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...R.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof(t==null?void 0:t.precision)>"u"?null:t==null?void 0:t.precision,offset:(t==null?void 0:t.offset)??!1,local:(t==null?void 0:t.local)??!1,...R.errToObj(t==null?void 0:t.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof(t==null?void 0:t.precision)>"u"?null:t==null?void 0:t.precision,...R.errToObj(t==null?void 0:t.message)})}duration(t){return this._addCheck({kind:"duration",...R.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...R.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n==null?void 0:n.position,...R.errToObj(n==null?void 0:n.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...R.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...R.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...R.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...R.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...R.errToObj(n)})}nonempty(t){return this.min(1,R.errToObj(t))}trim(){return new Ln({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new Ln({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new Ln({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}
vendor: 4,635 bytes, line 67
67get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}}Ln.create=e=>new Ln({checks:[],typeName:W.ZodString,coerce:(e==null?void 0:e.coerce)??!1,...q(e)});function _N(e,t){const n=(e.toString().split(".")[1]||"").length,s=(t.toString().split(".")[1]||"").length,a=n>s?n:s,i=Number.parseInt(e.toFixed(a).replace(".","")),o=Number.parseInt(t.toFixed(a).replace(".",""));return i%o/10**a}class pi extends Y{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==O.number){const i=this._getOrReturnCtx(t);return A(i,{code:E.invalid_type,expected:O.number,received:i.parsedType}),z}let s;const a=new dt;for(const i of this._def.checks)i.kind==="int"?Z.isInteger(t.data)||(s=this._getOrReturnCtx(t,s),A(s,{code:E.invalid_type,expected:"integer",received:"float",message:i.message}),a.dirty()):i.kind==="min"?(i.inclusive?t.data<i.value:t.data<=i.value)&&(s=this._getOrReturnCtx(t,s),A(s,{code:E.too_small,minimum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),a.dirty()):i.kind==="max"?(i.inclusive?t.data>i.value:t.data>=i.value)&&(s=this._getOrReturnCtx(t,s),A(s,{code:E.too_big,maximum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),a.dirty()):i.kind==="multipleOf"?_N(t.data,i.value)!==0&&(s=this._getOrReturnCtx(t,s),A(s,{code:E.not_multiple_of,multipleOf:i.value,message:i.message}),a.dirty()):i.kind==="finite"?Number.isFinite(t.data)||(s=this._getOrReturnCtx(t,s),A(s,{code:E.not_finite,message:i.message}),a.dirty()):Z.assertNever(i);return{status:a.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,R.toString(n))}gt(t,n){return this.setLimit("min",t,!1,R.toString(n))}lte(t,n){return this.setLimit("max",t,!0,R.toString(n))}lt(t,n){return this.setLimit("max",t,!1,R.toString(n))}setLimit(t,n,s,a){return new pi({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:s,message:R.toString(a)}]})}_addCheck(t){return new pi({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:R.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:R.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:R.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:R.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:R.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:R.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:R.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:R.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:R.toString(t)})}get minValue(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}get isInt(){return!!this._def.checks.find(t=>t.kind==="int"||t.kind==="multipleOf"&&Z.isInteger(t.value))}get isFinite(){let t=null,n=null;for(const s of this._def.checks){if(s.kind==="finite"||s.kind==="int"||s.kind==="multipleOf")return!0;s.kind==="min"?(n===null||s.value>n)&&(n=s.value):s.kind==="max"&&(t===null||s.value<t)&&(t=s.value)}return Number.isFinite(n)&&Number.isFinite(t)}
vendor: 7,912 bytes, line 67
67}pi.create=e=>new pi({checks:[],typeName:W.ZodNumber,coerce:(e==null?void 0:e.coerce)||!1,...q(e)});class mi extends Y{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==O.bigint)return this._getInvalidInput(t);let s;const a=new dt;for(const i of this._def.checks)i.kind==="min"?(i.inclusive?t.data<i.value:t.data<=i.value)&&(s=this._getOrReturnCtx(t,s),A(s,{code:E.too_small,type:"bigint",minimum:i.value,inclusive:i.inclusive,message:i.message}),a.dirty()):i.kind==="max"?(i.inclusive?t.data>i.value:t.data>=i.value)&&(s=this._getOrReturnCtx(t,s),A(s,{code:E.too_big,type:"bigint",maximum:i.value,inclusive:i.inclusive,message:i.message}),a.dirty()):i.kind==="multipleOf"?t.data%i.value!==BigInt(0)&&(s=this._getOrReturnCtx(t,s),A(s,{code:E.not_multiple_of,multipleOf:i.value,message:i.message}),a.dirty()):Z.assertNever(i);return{status:a.value,value:t.data}}_getInvalidInput(t){const n=this._getOrReturnCtx(t);return A(n,{code:E.invalid_type,expected:O.bigint,received:n.parsedType}),z}gte(t,n){return this.setLimit("min",t,!0,R.toString(n))}gt(t,n){return this.setLimit("min",t,!1,R.toString(n))}lte(t,n){return this.setLimit("max",t,!0,R.toString(n))}lt(t,n){return this.setLimit("max",t,!1,R.toString(n))}setLimit(t,n,s,a){return new mi({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:s,message:R.toString(a)}]})}_addCheck(t){return new mi({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:R.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:R.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:R.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:R.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:R.toString(n)})}get minValue(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}}mi.create=e=>new mi({checks:[],typeName:W.ZodBigInt,coerce:(e==null?void 0:e.coerce)??!1,...q(e)});class Ef extends Y{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==O.boolean){const s=this._getOrReturnCtx(t);return A(s,{code:E.invalid_type,expected:O.boolean,received:s.parsedType}),z}return Nt(t.data)}}Ef.create=e=>new Ef({typeName:W.ZodBoolean,coerce:(e==null?void 0:e.coerce)||!1,...q(e)});class wl extends Y{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==O.date){const i=this._getOrReturnCtx(t);return A(i,{code:E.invalid_type,expected:O.date,received:i.parsedType}),z}if(Number.isNaN(t.data.getTime())){const i=this._getOrReturnCtx(t);return A(i,{code:E.invalid_date}),z}const s=new dt;let a;for(const i of this._def.checks)i.kind==="min"?t.data.getTime()<i.value&&(a=this._getOrReturnCtx(t,a),A(a,{code:E.too_small,message:i.message,inclusive:!0,exact:!1,minimum:i.value,type:"date"}),s.dirty()):i.kind==="max"?t.data.getTime()>i.value&&(a=this._getOrReturnCtx(t,a),A(a,{code:E.too_big,message:i.message,inclusive:!0,exact:!1,maximum:i.value,type:"date"}),s.dirty()):Z.assertNever(i);return{status:s.value,value:new Date(t.data.getTime())}}_addCheck(t){return new wl({...this._def,checks:[...this._def.checks,t]})}min(t,n){return this._addCheck({kind:"min",value:t.getTime(),message:R.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:R.toString(n)})}get minDate(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t!=null?new Date(t):null}}wl.create=e=>new wl({checks:[],coerce:(e==null?void 0:e.coerce)||!1,typeName:W.ZodDate,...q(e)});class _f extends Y{_parse(t){if(this._getType(t)!==O.symbol){const s=this._getOrReturnCtx(t);return A(s,{code:E.invalid_type,expected:O.symbol,received:s.parsedType}),z}return Nt(t.data)}}_f.create=e=>new _f({typeName:W.ZodSymbol,...q(e)});class Af extends Y{_parse(t){if(this._getType(t)!==O.undefined){const s=this._getOrReturnCtx(t);return A(s,{code:E.invalid_type,expected:O.undefined,received:s.parsedType}),z}return Nt(t.data)}}Af.create=e=>new Af({typeName:W.ZodUndefined,...q(e)});class Ff extends Y{_parse(t){if(this._getType(t)!==O.null){const s=this._getOrReturnCtx(t);return A(s,{code:E.invalid_type,expected:O.null,received:s.parsedType}),z}return Nt(t.data)}}Ff.create=e=>new Ff({typeName:W.ZodNull,...q(e)});class Mf extends Y{constructor(){super(...arguments),this._any=!0}_parse(t){return Nt(t.data)}}Mf.create=e=>new Mf({typeName:W.ZodAny,...q(e)});class Df extends Y{constructor(){super(...arguments),this._unknown=!0}_parse(t){return Nt(t.data)}}Df.create=e=>new Df({typeName:W.ZodUnknown,...q(e)});class Xn extends Y{_parse(t){const n=this._getOrReturnCtx(t);return A(n,{code:E.invalid_type,expected:O.never,received:n.parsedType}),z}}Xn.create=e=>new Xn({typeName:W.ZodNever,...q(e)});class Of extends Y{_parse(t){if(this._getType(t)!==O.undefined){const s=this._getOrReturnCtx(t);return A(s,{code:E.invalid_type,expected:O.void,received:s.parsedType}),z}return Nt(t.data)}}Of.create=e=>new Of({typeName:W.ZodVoid,...q(e)});class Ht extends Y{_parse(t){const{ctx:n,status:s}=this._processInputParams(t),a=this._def;if(n.parsedType!==O.array)return A(n,{code:E.invalid_type,expected:O.array,received:n.parsedType}),z;if(a.exactLength!==null){const o=n.data.length>a.exactLength.value,l=n.data.length<a.exactLength.value;(o||l)&&(A(n,{code:o?E.too_big:E.too_small,minimum:l?a.exactLength.value:void 0,maximum:o?a.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:a.exactLength.message}),s.dirty())}if(a.minLength!==null&&n.data.length<a.minLength.value&&(A(n,{code:E.too_small,minimum:a.minLength.value,type:"array",inclusive:!0,exact:!1,message:a.minLength.message}),s.dirty()),a.maxLength!==null&&n.data.length>a.maxLength.value&&(A(n,{code:E.too_big,maximum:a.maxLength.value,type:"array",inclusive:!0,exact:!1,message:a.maxLength.message}),s.dirty()),n.common.async)return Promise.all([...n.data].map((o,l)=>a.type._parseAsync(new Kn(n,o,n.path,l)))).then(o=>dt.mergeArray(s,o));const i=[...n.data].map((o,l)=>a.type._parseSync(new Kn(n,o,n.path,l)));return dt.mergeArray(s,i)}get element(){return this._def.type}min(t,n){return new Ht({...this._def,minLength:{value:t,message:R.toString(n)}})}max(t,n){return new Ht({...this._def,maxLength:{value:t,message:R.toString(n)}})}length(t,n){return new Ht({...this._def,exactLength:{value:t,message:R.toString(n)}})}nonempty(t){return this.min(1,t)}}Ht.create=(e,t)=>new Ht({type:e,minLength:null,maxLength:null,exactLength:null,typeName:W.ZodArray,...q(t)});function Xs(e){if(e instanceof ye){const t={};for(const n in e.shape){const s=e.shape[n];t[n]=Qn.create(Xs(s))}return new ye({...e._def,shape:()=>t})}else return e instanceof Ht?new Ht({...e._def,type:Xs(e.element)}):e instanceof Qn?Qn.create(Xs(e.unwrap())):e instanceof Qr?Qr.create(Xs(e.unwrap())):e instanceof Bs?Bs.create(e.items.map(t=>Xs(t))):e}class ye extends Y{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const t=this._def.shape(),n=Z.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==O.object){const d=this._getOrReturnCtx(t);return A(d,{code:E.invalid_type,expected:O.object,received:d.parsedType}),z}const{status:s,ctx:a}=this._processInputParams(t),{shape:i,keys:o}=this._getCached(),l=[];
vendor: 4,608 bytes, line 67
67if(!(this._def.catchall instanceof Xn&&this._def.unknownKeys==="strip"))for(const d in a.data)o.includes(d)||l.push(d);const c=[];for(const d of o){const u=i[d],h=a.data[d];c.push({key:{status:"valid",value:d},value:u._parse(new Kn(a,h,a.path,d)),alwaysSet:d in a.data})}if(this._def.catchall instanceof Xn){const d=this._def.unknownKeys;if(d==="passthrough")for(const u of l)c.push({key:{status:"valid",value:u},value:{status:"valid",value:a.data[u]}});else if(d==="strict")l.length>0&&(A(a,{code:E.unrecognized_keys,keys:l}),s.dirty());else if(d!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const d=this._def.catchall;for(const u of l){const h=a.data[u];c.push({key:{status:"valid",value:u},value:d._parse(new Kn(a,h,a.path,u)),alwaysSet:u in a.data})}}return a.common.async?Promise.resolve().then(async()=>{const d=[];for(const u of c){const h=await u.key,p=await u.value;d.push({key:h,value:p,alwaysSet:u.alwaysSet})}return d}).then(d=>dt.mergeObjectSync(s,d)):dt.mergeObjectSync(s,c)}get shape(){return this._def.shape()}strict(t){return R.errToObj,new ye({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,s)=>{var i,o;const a=((o=(i=this._def).errorMap)==null?void 0:o.call(i,n,s).message)??s.defaultError;return n.code==="unrecognized_keys"?{message:R.errToObj(t).message??a}:{message:a}}}:{}})}strip(){return new ye({...this._def,unknownKeys:"strip"})}passthrough(){return new ye({...this._def,unknownKeys:"passthrough"})}extend(t){return new ye({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new ye({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:W.ZodObject})}setKey(t,n){return this.augment({[t]:n})}catchall(t){return new ye({...this._def,catchall:t})}pick(t){const n={};for(const s of Z.objectKeys(t))t[s]&&this.shape[s]&&(n[s]=this.shape[s]);return new ye({...this._def,shape:()=>n})}omit(t){const n={};for(const s of Z.objectKeys(this.shape))t[s]||(n[s]=this.shape[s]);return new ye({...this._def,shape:()=>n})}deepPartial(){return Xs(this)}partial(t){const n={};for(const s of Z.objectKeys(this.shape)){const a=this.shape[s];t&&!t[s]?n[s]=a:n[s]=a.optional()}return new ye({...this._def,shape:()=>n})}required(t){const n={};for(const s of Z.objectKeys(this.shape))if(t&&!t[s])n[s]=this.shape[s];else{let i=this.shape[s];for(;i instanceof Qn;)i=i._def.innerType;n[s]=i}return new ye({...this._def,shape:()=>n})}keyof(){return Nv(Z.objectKeys(this.shape))}}ye.create=(e,t)=>new ye({shape:()=>e,unknownKeys:"strip",catchall:Xn.create(),typeName:W.ZodObject,...q(t)});ye.strictCreate=(e,t)=>new ye({shape:()=>e,unknownKeys:"strict",catchall:Xn.create(),typeName:W.ZodObject,...q(t)});ye.lazycreate=(e,t)=>new ye({shape:e,unknownKeys:"strip",catchall:Xn.create(),typeName:W.ZodObject,...q(t)});class bl extends Y{_parse(t){const{ctx:n}=this._processInputParams(t),s=this._def.options;function a(i){for(const l of i)if(l.result.status==="valid")return l.result;for(const l of i)if(l.result.status==="dirty")return n.common.issues.push(...l.ctx.common.issues),l.result;const o=i.map(l=>new un(l.ctx.common.issues));return A(n,{code:E.invalid_union,unionErrors:o}),z}if(n.common.async)return Promise.all(s.map(async i=>{const o={...n,common:{...n.common,issues:[]},parent:null};return{result:await i._parseAsync({data:n.data,path:n.path,parent:o}),ctx:o}})).then(a);{let i;const o=[];for(const c of s){const d={...n,common:{...n.common,issues:[]},parent:null},u=c._parseSync({data:n.data,path:n.path,parent:d});if(u.status==="valid")return u;u.status==="dirty"&&!i&&(i={result:u,ctx:d}),d.common.issues.length&&o.push(d.common.issues)}if(i)return n.common.issues.push(...i.ctx.common.issues),i.result;const l=o.map(c=>new un(c));return A(n,{code:E.invalid_union,unionErrors:l}),z}}get options(){return this._def.options}}bl.create=(e,t)=>new bl({options:e,typeName:W.ZodUnion,...q(t)});function Cu(e,t){const n=kn(e),s=kn(t);if(e===t)return{valid:!0,data:e};if(n===O.object&&s===O.object){const a=Z.objectKeys(t),i=Z.objectKeys(e).filter(l=>a.indexOf(l)!==-1),o={...e,...t};for(const l of i){const c=Cu(e[l],t[l]);if(!c.valid)return{valid:!1};o[l]=c.data}return{valid:!0,data:o}}else if(n===O.array&&s===O.array){if(e.length!==t.length)return{valid:!1};const a=[];for(let i=0;i<e.length;i++){const o=e[i],l=t[i],c=Cu(o,l);if(!c.valid)return{valid:!1};a.push(c.data)}return{valid:!0,data:a}}else return n===O.date&&s===O.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}class jl extends Y{_parse(t){const{status:n,ctx:s}=this._processInputParams(t),a=(i,o)=>
vendor: 4,130 bytes, line 67
67{if(Cf(i)||Cf(o))return z;const l=Cu(i.value,o.value);return l.valid?((Pf(i)||Pf(o))&&n.dirty(),{status:n.value,value:l.data}):(A(s,{code:E.invalid_intersection_types}),z)};return s.common.async?Promise.all([this._def.left._parseAsync({data:s.data,path:s.path,parent:s}),this._def.right._parseAsync({data:s.data,path:s.path,parent:s})]).then(([i,o])=>a(i,o)):a(this._def.left._parseSync({data:s.data,path:s.path,parent:s}),this._def.right._parseSync({data:s.data,path:s.path,parent:s}))}}jl.create=(e,t,n)=>new jl({left:e,right:t,typeName:W.ZodIntersection,...q(n)});class Bs extends Y{_parse(t){const{status:n,ctx:s}=this._processInputParams(t);if(s.parsedType!==O.array)return A(s,{code:E.invalid_type,expected:O.array,received:s.parsedType}),z;if(s.data.length<this._def.items.length)return A(s,{code:E.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),z;!this._def.rest&&s.data.length>this._def.items.length&&(A(s,{code:E.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());const i=[...s.data].map((o,l)=>{const c=this._def.items[l]||this._def.rest;return c?c._parse(new Kn(s,o,s.path,l)):null}).filter(o=>!!o);return s.common.async?Promise.all(i).then(o=>dt.mergeArray(n,o)):dt.mergeArray(n,i)}get items(){return this._def.items}rest(t){return new Bs({...this._def,rest:t})}}Bs.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Bs({items:e,typeName:W.ZodTuple,rest:null,...q(t)})};class Rf extends Y{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){const{status:n,ctx:s}=this._processInputParams(t);if(s.parsedType!==O.map)return A(s,{code:E.invalid_type,expected:O.map,received:s.parsedType}),z;const a=this._def.keyType,i=this._def.valueType,o=[...s.data.entries()].map(([l,c],d)=>({key:a._parse(new Kn(s,l,s.path,[d,"key"])),value:i._parse(new Kn(s,c,s.path,[d,"value"]))}));if(s.common.async){const l=new Map;return Promise.resolve().then(async()=>{for(const c of o){const d=await c.key,u=await c.value;if(d.status==="aborted"||u.status==="aborted")return z;(d.status==="dirty"||u.status==="dirty")&&n.dirty(),l.set(d.value,u.value)}return{status:n.value,value:l}})}else{const l=new Map;for(const c of o){const d=c.key,u=c.value;if(d.status==="aborted"||u.status==="aborted")return z;(d.status==="dirty"||u.status==="dirty")&&n.dirty(),l.set(d.value,u.value)}return{status:n.value,value:l}}}}Rf.create=(e,t,n)=>new Rf({valueType:t,keyType:e,typeName:W.ZodMap,...q(n)});class fi extends Y{_parse(t){const{status:n,ctx:s}=this._processInputParams(t);if(s.parsedType!==O.set)return A(s,{code:E.invalid_type,expected:O.set,received:s.parsedType}),z;const a=this._def;a.minSize!==null&&s.data.size<a.minSize.value&&(A(s,{code:E.too_small,minimum:a.minSize.value,type:"set",inclusive:!0,exact:!1,message:a.minSize.message}),n.dirty()),a.maxSize!==null&&s.data.size>a.maxSize.value&&(A(s,{code:E.too_big,maximum:a.maxSize.value,type:"set",inclusive:!0,exact:!1,message:a.maxSize.message}),n.dirty());const i=this._def.valueType;function o(c){const d=new Set;for(const u of c){if(u.status==="aborted")return z;u.status==="dirty"&&n.dirty(),d.add(u.value)}return{status:n.value,value:d}}const l=[...s.data.values()].map((c,d)=>i._parse(new Kn(s,c,s.path,d)));return s.common.async?Promise.all(l).then(c=>o(c)):o(l)}min(t,n){return new fi({...this._def,minSize:{value:t,message:R.toString(n)}})}max(t,n){return new fi({...this._def,maxSize:{value:t,message:R.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}}fi.create=(e,t)=>new fi({valueType:e,minSize:null,maxSize:null,typeName:W.ZodSet,...q(t)});class Lf extends Y{get schema(){return this._def.getter()}_parse(t){const{ctx:n}=this._processInputParams(t);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}}Lf.create=(e,t)=>new Lf({getter:e,typeName:W.ZodLazy,...q(t)});class If extends Y{_parse(t){if(t.data!==this._def.value){const n=this._getOrReturnCtx(t);return A(n,{received:n.data,code:E.invalid_literal,expected:this._def.value}),z}
vendor: 4,111 bytes, line 67
67return{status:"valid",value:t.data}}get value(){return this._def.value}}If.create=(e,t)=>new If({value:e,typeName:W.ZodLiteral,...q(t)});function Nv(e,t){return new Hr({values:e,typeName:W.ZodEnum,...q(t)})}class Hr extends Y{_parse(t){if(typeof t.data!="string"){const n=this._getOrReturnCtx(t),s=this._def.values;return A(n,{expected:Z.joinValues(s),received:n.parsedType,code:E.invalid_type}),z}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){const n=this._getOrReturnCtx(t),s=this._def.values;return A(n,{received:n.data,code:E.invalid_enum_value,options:s}),z}return Nt(t.data)}get options(){return this._def.values}get enum(){const t={};for(const n of this._def.values)t[n]=n;return t}get Values(){const t={};for(const n of this._def.values)t[n]=n;return t}get Enum(){const t={};for(const n of this._def.values)t[n]=n;return t}extract(t,n=this._def){return Hr.create(t,{...this._def,...n})}exclude(t,n=this._def){return Hr.create(this.options.filter(s=>!t.includes(s)),{...this._def,...n})}}Hr.create=Nv;class Bf extends Y{_parse(t){const n=Z.getValidEnumValues(this._def.values),s=this._getOrReturnCtx(t);if(s.parsedType!==O.string&&s.parsedType!==O.number){const a=Z.objectValues(n);return A(s,{expected:Z.joinValues(a),received:s.parsedType,code:E.invalid_type}),z}if(this._cache||(this._cache=new Set(Z.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){const a=Z.objectValues(n);return A(s,{received:s.data,code:E.invalid_enum_value,options:a}),z}return Nt(t.data)}get enum(){return this._def.values}}Bf.create=(e,t)=>new Bf({values:e,typeName:W.ZodNativeEnum,...q(t)});class kl extends Y{unwrap(){return this._def.type}_parse(t){const{ctx:n}=this._processInputParams(t);if(n.parsedType!==O.promise&&n.common.async===!1)return A(n,{code:E.invalid_type,expected:O.promise,received:n.parsedType}),z;const s=n.parsedType===O.promise?n.data:Promise.resolve(n.data);return Nt(s.then(a=>this._def.type.parseAsync(a,{path:n.path,errorMap:n.common.contextualErrorMap})))}}kl.create=(e,t)=>new kl({type:e,typeName:W.ZodPromise,...q(t)});class Jr extends Y{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===W.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){const{status:n,ctx:s}=this._processInputParams(t),a=this._def.effect||null,i={addIssue:o=>{A(s,o),o.fatal?n.abort():n.dirty()},get path(){return s.path}};if(i.addIssue=i.addIssue.bind(i),a.type==="preprocess"){const o=a.transform(s.data,i);if(s.common.async)return Promise.resolve(o).then(async l=>{if(n.value==="aborted")return z;const c=await this._def.schema._parseAsync({data:l,path:s.path,parent:s});return c.status==="aborted"?z:c.status==="dirty"||n.value==="dirty"?Ta(c.value):c});{if(n.value==="aborted")return z;const l=this._def.schema._parseSync({data:o,path:s.path,parent:s});return l.status==="aborted"?z:l.status==="dirty"||n.value==="dirty"?Ta(l.value):l}}if(a.type==="refinement"){const o=l=>{const c=a.refinement(l,i);if(s.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return l};if(s.common.async===!1){const l=this._def.schema._parseSync({data:s.data,path:s.path,parent:s});return l.status==="aborted"?z:(l.status==="dirty"&&n.dirty(),o(l.value),{status:n.value,value:l.value})}else return this._def.schema._parseAsync({data:s.data,path:s.path,parent:s}).then(l=>l.status==="aborted"?z:(l.status==="dirty"&&n.dirty(),o(l.value).then(()=>({status:n.value,value:l.value}))))}if(a.type==="transform")if(s.common.async===!1){const o=this._def.schema._parseSync({data:s.data,path:s.path,parent:s});if(!qr(o))return z;const l=a.transform(o.value,i);if(l instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:l}}else return this._def.schema._parseAsync({data:s.data,path:s.path,parent:s}).then(o=>qr(o)?Promise.resolve(a.transform(o.value,i)).then(l=>({status:n.value,value:l})):z);Z.assertNever(a)}}
67Jr.create=(e,t,n)=>new Jr({schema:e,typeName:W.ZodEffects,effect:t,...q(n)});Jr.createWithPreprocess=(e,t,n)=>new Jr({schema:t,effect:{type:"preprocess",transform:e},typeName:W.ZodEffects,...q(n)});class Qn extends Y{_parse(t){return this._getType(t)===O.undefined?Nt(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}}Qn.create=(e,t)=>new Qn({innerType:e,typeName:W.ZodOptional,...q(t)});class Qr extends Y{_parse(t){return this._getType(t)===O.null?Nt(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}}Qr.create=(e,t)=>new Qr({innerType:e,typeName:W.ZodNullable,...q(t)});class Pu extends Y{_parse(t){const{ctx:n}=this._processInputParams(t);let s=n.data;return n.parsedType===O.undefined&&(s=this._def.defaultValue()),this._def.innerType._parse({data:s,path:n.path,parent:n})}removeDefault(){return this._def.innerType}}Pu.create=(e,t)=>new Pu({innerType:e,typeName:W.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...q(t)});class Tu extends Y{_parse(t){const{ctx:n}=this._processInputParams(t),s={...n,common:{...n.common,issues:[]}},a=this._def.innerType._parse({data:s.data,path:s.path,parent:{...s}});return vl(a)?a.then(i=>({status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new un(s.common.issues)},input:s.data})})):{status:"valid",value:a.status==="valid"?a.value:this._def.catchValue({get error(){return new un(s.common.issues)},input:s.data})}}removeCatch(){return this._def.innerType}}Tu.create=(e,t)=>new Tu({innerType:e,typeName:W.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...q(t)});class Vf extends Y{_parse(t){if(this._getType(t)!==O.nan){const s=this._getOrReturnCtx(t);return A(s,{code:E.invalid_type,expected:O.nan,received:s.parsedType}),z}return{status:"valid",value:t.data}}}Vf.create=e=>new Vf({typeName:W.ZodNaN,...q(e)});class AN extends Y{_parse(t){const{ctx:n}=this._processInputParams(t),s=n.data;return this._def.type._parse({data:s,path:n.path,parent:n})}unwrap(){return this._def.type}}class np extends Y{_parse(t){const{status:n,ctx:s}=this._processInputParams(t);if(s.common.async)return(async()=>{const i=await this._def.in._parseAsync({data:s.data,path:s.path,parent:s});return i.status==="aborted"?z:i.status==="dirty"?(n.dirty(),Ta(i.value)):this._def.out._parseAsync({data:i.value,path:s.path,parent:s})})();{const a=this._def.in._parseSync({data:s.data,path:s.path,parent:s});return a.status==="aborted"?z:a.status==="dirty"?(n.dirty(),{status:"dirty",value:a.value}):this._def.out._parseSync({data:a.value,path:s.path,parent:s})}}static create(t,n){return new np({in:t,out:n,typeName:W.ZodPipeline})}}class Eu extends Y{_parse(t){const n=this._def.innerType._parse(t),s=a=>(qr(a)&&(a.value=Object.freeze(a.value)),a);return vl(n)?n.then(a=>s(a)):s(n)}unwrap(){return this._def.innerType}}Eu.create=(e,t)=>new Eu({innerType:e,typeName:W.ZodReadonly,...q(t)});var W;(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(W||(W={}));const hn=Ln.create;Xn.create;Ht.create;const $s=ye.create;bl.create;jl.create;Bs.create;Hr.create;kl.create;Qn.create;Qr.create;const sc=hn().trim().toLowerCase().email("Enter a valid email address").max(255),sp=hn().min(8,"Password must be at least 8 characters").max(100,"Password is too long").regex(/[A-Za-z]/,"Include at least one letter").regex(/[0-9]/,"Include at least one number"),FN=$s({email:sc,password:sp,displayName:hn().trim().min(1).max(120).optional()}),MN=$s({email:sc,password:hn().min(1,"Password is required").max(100)}),DN=$s({email:sc}),ON=$s({token:hn().min(1,"Reset token is required"),password:sp}),RN=$s({currentPassword:hn().min(1).max(100),newPassword:sp}),LN=$s({displayName:hn().trim().min(1,"Name cannot be empty").max(120)}),IN=$s({email:sc,crewSlug:hn().trim().min(1).max(60).optional(),source:hn().trim().max(60).optional()});function Sv({source:e,crewSlug:t,compact:n=!1,buttonLabel:s="Notify me",placeholder:a="[email protected]"}){const{user:i}=Ws(),[o,l]=w.useState((i==null?void 0:i.email)??""),[c,d]=w.useState("idle"),[u,h]=w.useState("");async function p(g){var v;g.preventDefault();const y=IN.safeParse({email:o,crewSlug:t,source:e});if(!y.success){d("error"),h(((v=y.error.issues[0])==null?void 0:v.message)??"Enter a valid email");return}d("loading");try{await qt("/waitlist",y.data),d("done"),tp("waitlist",{crew_slug:t,source:e}),h("You're on the list — we'll signal you when it launches. ⚑")}catch(k){d("error"),h(k instanceof Zn?k.message:"Something went wrong")}}return c==="done"?r.jsx("p",{className:"text-success text-sm font-medium",children:u}):r.jsxs("form",{onSubmit:p,className:n?"flex flex-col gap-2":"flex flex-col sm:flex-row gap-3",children:[r.jsx("input",{type:"email",value:o,onChange:g=>l(g.target.value),placeholder:a,"aria-label":"Email address",className:"flex-1 rounded-full border border-navy/15 px-5 py-3 text-navy placeholder:text-navy/40 focu
67s:outline-none focus:border-primary focus:ring-2 focus:ring-primary/20"}),r.jsx("button",{type:"submit",disabled:c==="loading",className:"btn-primary font-semibold px-6 py-3 rounded-full shadow-sm shadow-primary/20 disabled:opacity-60",children:c==="loading"?"Joining…":s}),c==="error"&&r.jsx("p",{className:"text-primary text-sm w-full sm:basis-full",children:u})]})}const BN={coming_soon:"Coming Soon",beta:"Beta",live:"Available"};function rp({member:e}){const[t,n]=w.useState(!1),s=e.status==="live";return r.jsxs("div",{className:"crew-card bg-white rounded-3xl border border-black/5 p-7 shadow-[0_6px_20px_-10px_rgba(9,22,43,0.08)]",children:[r.jsxs("div",{className:"flex items-start justify-between",children:[e.mascotSrc?r.jsx("div",{className:"badge-icon w-24 h-24 rounded-2xl flex items-center justify-center mb-5 overflow-hidden",style:{background:`linear-gradient(160deg, ${e.color}18, ${e.color}08)`},children:r.jsx("img",{src:e.mascotSrc,alt:`${e.name} mascot`,className:"w-full h-full object-contain p-1.5",loading:"lazy"})}):r.jsx("div",{className:"badge-icon w-14 h-14 rounded-2xl flex items-center justify-center mb-5",style:{background:e.color},children:r.jsx("svg",{width:"26",height:"26",viewBox:"0 0 24 24",fill:"none",dangerouslySetInnerHTML:{__html:e.iconPaths??""}})}),r.jsx("span",{className:`text-[10px] font-bold uppercase tracking-wide px-2.5 py-1 rounded-full ${s?"bg-success/10 text-success":"bg-gold/15 text-navy/70"}`,children:BN[e.status]})]}),r.jsxs("h3",{className:"font-display font-semibold text-lg text-navy flex items-center gap-2",children:[e.name,e.badge&&r.jsx("span",{className:"text-[10px] font-bold bg-primary/10 text-primary px-2 py-0.5 rounded-full tracking-wide",children:e.badge})]}),r.jsx("p",{className:"text-xs font-semibold text-primary/70 uppercase tracking-wide mt-0.5",children:e.tag}),r.jsx("p",{className:"text-navy/60 text-sm mt-3 leading-relaxed",children:e.description}),r.jsx("div",{className:"mt-5",children:s&&e.chromeStoreUrl?r.jsxs("a",{href:e.chromeStoreUrl,target:"_blank",rel:"noreferrer",className:"inline-flex items-center gap-1.5 text-primary font-semibold text-sm group",children:["Add to Chrome ",r.jsx("span",{className:"transition-transform group-hover:translate-x-1",children:"→"})]}):t?r.jsx(Sv,{source:`crew:${e.slug??e.name}`,crewSlug:e.slug,compact:!0,buttonLabel:"Notify me"}):r.jsxs("button",{onClick:()=>n(!0),className:"inline-flex items-center gap-1.5 text-primary font-semibold text-sm group",children:["Notify me at launch"," ",r.jsx("span",{className:"transition-transform group-hover:translate-x-1",children:"→"})]})})]})}const Cv="/assets/map-Dk9dI3HA.webp",Pv="/assets/spyglass-0eqv675h.webp",Tv="/assets/compass-CqC8YSCN.webp",Ev="/assets/anchor-HuBWlpS5.webp",_v="/assets/kraken-BnHfiCDi.webp",Av="/assets/lantern-CNesOyZO.webp",Fv="/assets/binoculars-DkfI3lS6.webp",VN=[{name:"Treasure Map",tag:"Coverage",description:"See exactly what's tested and what's still uncharted.",color:"#D72638",mascotSrc:Cv},{name:"Spyglass",tag:"Element Inspector",description:"Zoom into any element and know it instantly, pixel by pixel.",color:"#4DA8DA",mascotSrc:Pv},{name:"Compass",tag:"Navigation",description:"Guides your crew straight to the tool a task needs.",color:"#F6B73C",mascotSrc:Tv},{name:"Anchor",tag:"Stable Selectors",description:"Locks your tests to selectors that never drift.",color:"#09162B",mascotSrc:Ev},{name:"Kraken",tag:"Load Testing",description:"Unleashes real-world traffic to find your breaking point.",color:"#4DA8DA",mascotSrc:_v},{name:"Harbor",tag:"Test Reports",description:"Brings every result home to one clear, calm dashboard.",color:"#16A34A",iconPaths:'<path d="M4 20c3-8 6-8 8-14 2 6 5 6 8 14" stroke="white" stroke-width="1.6" fill="none" stroke-linecap="round"/><line x1="2" y1="20" x2="22" y2="20" stroke="white" stroke-width="1.8" stroke-linecap="round"/>'},{name:"Beacon",tag:"Alerts",description:"Signals the crew the moment something breaks.",color:"#D72638",mascotSrc:Av},{name:"Captain",tag:"AI Agent",description:"The AI that plans, tests and reports — all on its own.",color:"#09162B",badge:"NEW",iconPaths:'<path d="M4 20c2-6 4-9 8-9s6 3 8 9" stroke="white" stroke-width="1.8" stroke-linecap="round" fill="none"/><circle cx="12" cy="8" r="3.4" fill="white"/>'},{name:"Scout",tag:"Exploratory Testing",description:"Wanders every path a user might take, then reports back.",color:"#F6B73C",mascotSrc:Fv}],UN={"map.webp":Cv,"spyglass.webp":Pv,"compass.webp":Tv,"anchor.webp":Ev,"kraken.webp":_v,"lantern.webp":Av,"binoculars.webp":Fv};function zN(e){return e?UN[e]:void 0}function WN(e){return{slug:e.slug,name:e.name,tag:e.tag,description:e.description,color:e.color,mascotSrc:zN(e.mascotAsset),iconPaths:e.iconPaths,badge:e.badge,status:e.status,chromeStoreUrl:e.chromeStoreUrl}}const $N=VN.map(e=>({name:e.name,tag:e.tag,description:e.description,color:e.color,mascotSrc:e.mascotSrc,iconPaths:e.iconPaths,badge:e.badge,status:"coming_soon"}));function ap(){const e=Xh({queryKey:["crew"],queryFn:()=>ep("/crew"),select:t=>t.crew.map(WN)});return{crew:e.data&&e.data.length>0?e.data:$N,isLoading:e.isLoading,isError:e.isError}}function qN(){const{crew:e}=ap();return r.jsx("section",{id:"fleet",className:"py-28",children:r.jsxs("div",{className:"max-w-7xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"text-center max-w-2xl mx-auto mb-16",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"⚑ Meet the Fleet"}),r.jsx("h2",{className:"font-display font-bold text-4xl sm:text-5xl text-navy mt-3 tracking-tight",children:"Powerful tools for every mission"}),r.jsx("p",{className:"text-navy/60 mt-4 text-lg",children:"Every tool in the fleet is built by engineers, for the engineers who refuse to ship blind. Launching one by one — join the crew to be first aboard."})]}),r.jsx("div",{className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-6",children:e.map(t=>r.jsx(rp,{member:t},t.slug??t.name))}),r.jsx("div",{className:"text-center mt-12",children:r.jsxs(V,{to:"/crew",className:"inline-flex items-center gap-2 font-semibold text-navy border border-navy/15 hover:border-navy/30 transition-colors px-6 py-3 rounded-full",children:["View All Products ",r.jsx("span",{children:"→"})]})})]})})}const HN=[{name:"Captain",description:"The AI agent that charts the whole voyage.",color:"primary",iconPaths:'<path d="M4 20c2-6 4-9 8-9s6 3 8 9" stroke="#FFFDF7" stroke-width="1.8" stroke-linecap="round" fill="none"/><circle cx="12" cy="8" r="3.4" fill="#FFFDF7"/>'},{name:"Navigator",description:"Plots stable selectors so tests never drift.",color:"sea",iconPaths:'<circle cx="12" cy="12" r="9" stroke="#FFFDF7" stroke-width="1.8"/><path d="M15 9l-2 6-6 2 2-6z" fill="#FFFDF7"/>'},{name:"Explorer",description:"Scouts every screen for hidden treasure — bugs.",color:"gold",iconPaths:'<circle cx="10" cy="10" r="6" stroke="#09162B" stroke-width="1.8"/><line x1="15" y1="15" x2="20" y2="20" stroke="#09162B" stroke-width="1.8" stroke-linecap="round"/>'},{name:"Engineer",description:"Keeps the ship running under real-world load.",color:"primary",iconPaths:'<path d="M14 4l-2 2 6 6-2 2-6-6-2 2 8 8 3-3 1-5-3-3z" stroke="#FFFDF7" stroke-width="1.4" fill="none" stroke-linejoin="round"/>'},{name:"Treasurer",description:"Logs every finding into one clear harbor report.",color:"sea",iconPaths:'<rect x="4" y="9" width="16" height="10" rx="1.5" stroke="#FFFDF7" stroke-width="1.8"/><path d="M4 9l3-4h10l3 4" stroke="#FFFDF7" stroke-width="1.8" fill="none"/>'}],JN={primary:"bg-primary",sea:"bg-sea",gold:"bg-gold"};function QN(){return r.jsxs("section",{className:"py-28 bg-navy relative overflow-hidden",children:[r.jsx("div",{className:"absolute inset-0 opacity-[.06]",style:{backgroundImage:"radial-gradient(circle at 20% 20%, white 1px, transparent 1px)",backgroundSize:"26px 26px"}}),r.jsx("div",{className:"absolute top-16 left-[12%] w-1.5 h-1.5 rounded-full bg-gold animate-twinkle"}),r.jsx("div",{className:"absolute top-32 left-[70%] w-1.5 h-1.5 rounded-full bg-gold animate-twinkle",style:{animationDelay:".7s"}}),r.jsx("div",{className:"absolute top-52 left-[45%] w-1 h-1 rounded-full bg-gold animate-twinkle",style:{animationDelay:"1.3s"}}),r.jsxs("div",{className:"max-w-7xl mx-auto px-6 lg:px-10 relative",children:[r.jsxs("div",{className:"text-center max-w-2xl mx-auto mb-16",children:[r.jsx("span",{className:"text-gold font-semibold text-sm tracking-widest uppercase",children:"Every Great Crew Needs Specialists"}),r.jsx("h2",{className:"font-display font-bold text-4xl sm:text-5xl text-white mt-3 tracking-tight",children:"Five roles. One mission."})]}),r.jsxs("div",{className:"relative overflow-x-auto scrollbar-hide",children:[r.jsx("svg",{className:"absolute top-[52px] left-0 w-full h-6 hidden md:block",viewBox:"0 0 1000 20",preserveAspectRatio:"none",children:r.jsx("line",{x1:"20",y1:"10",x2:"980",y2:"10",stroke:"#F6B73C",strokeWidth:"2",strokeDasharray:"8 8",className:"anim-dash"})}
vendor: 5,142 bytes, line 67
67),r.jsx("div",{className:"grid grid-cols-5 gap-6 min-w-[820px] md:min-w-0 relative",children:HN.map(e=>r.jsxs("div",{className:"text-center",children:[r.jsx("div",{className:`w-16 h-16 mx-auto rounded-full ${JN[e.color]} flex items-center justify-center border-4 border-navy shadow-lg relative z-10`,children:r.jsx("svg",{width:"28",height:"28",viewBox:"0 0 24 24",fill:"none",dangerouslySetInnerHTML:{__html:e.iconPaths}})}),r.jsx("h3",{className:"font-display font-semibold text-white mt-4",children:e.name}),r.jsx("p",{className:"text-white/50 text-sm mt-1.5 px-2",children:e.description})]},e.name))})]})]})]})}const GN=[{title:"AI Powered",description:"Intelligent automation that learns.",bg:"#EDE9FE",iconColor:"#7C3AED",iconPaths:'<circle cx="12" cy="8" r="3.4" stroke="#7C3AED" stroke-width="1.6"/><path d="M4 20c2-6 4-9 8-9s6 3 8 9" stroke="#7C3AED" stroke-width="1.6" fill="none" stroke-linecap="round"/>'},{title:"Lightning Fast",description:"Performance that never slows you down.",bg:"#FEF3C7",iconColor:"#D97706",iconPaths:'<path d="M13 2L4 14h6l-1 8 9-12h-6l1-8z" fill="#D97706"/>'},{title:"Works Everywhere",description:"Local, CI/CD, cloud — we've got you.",bg:"#DBEAFE",iconColor:"#2563EB",iconPaths:'<circle cx="12" cy="12" r="9" stroke="#2563EB" stroke-width="1.6"/><path d="M3 12h18M12 3c2.5 2.5 2.5 15.5 0 18M12 3c-2.5 2.5-2.5 15.5 0 18" stroke="#2563EB" stroke-width="1.4" fill="none"/>'},{title:"Integrates Seamlessly",description:"Playwright, Selenium, Cypress, Postman & more.",bg:"#D1FAE5",iconColor:"#059669",iconPaths:'<rect x="4" y="4" width="7" height="7" rx="1.5" stroke="#059669" stroke-width="1.6"/><rect x="13" y="13" width="7" height="7" rx="1.5" stroke="#059669" stroke-width="1.6"/><path d="M11 7h6M7 11v6" stroke="#059669" stroke-width="1.4"/>'},{title:"Enterprise Ready",description:"Security, compliance & team management.",bg:"#FFE4D6",iconColor:"#C2410C",iconPaths:'<rect x="4" y="7" width="16" height="13" rx="2" stroke="#C2410C" stroke-width="1.6"/><path d="M8 7V5a4 4 0 018 0v2" stroke="#C2410C" stroke-width="1.6" fill="none"/>'},{title:"Developer First",description:"Clean APIs, CLI & extensibility.",bg:"#FCE7F3",iconColor:"#DB2777",iconPaths:'<path d="M8 3l1 4-4 1 4 1-1 4 3-3 3 3-1-4 4-1-4-1 1-4-3 3z" stroke="#DB2777" stroke-width="1.3" fill="none" stroke-linejoin="round"/>'}];function YN(){return r.jsx("section",{id:"features",className:"py-28",children:r.jsxs("div",{className:"max-w-7xl mx-auto px-6 lg:px-10 grid lg:grid-cols-2 gap-16 items-center",children:[r.jsx("div",{className:"animate-fadeUp",children:r.jsxs("svg",{viewBox:"0 0 480 420",className:"w-full h-auto",children:[r.jsx("ellipse",{cx:"240",cy:"380",rx:"200",ry:"20",fill:"#4DA8DA",opacity:".15"}),r.jsxs("g",{className:"animate-bobSlow",children:[r.jsx("rect",{x:"160",y:"120",width:"160",height:"200",rx:"18",fill:"white",stroke:"#09162B",strokeOpacity:".08",strokeWidth:"1.5"}),r.jsx("rect",{x:"180",y:"145",width:"120",height:"14",rx:"4",fill:"#D72638",opacity:".85"}),r.jsx("rect",{x:"180",y:"170",width:"90",height:"10",rx:"4",fill:"#09162B",opacity:".12"}),r.jsx("rect",{x:"180",y:"188",width:"100",height:"10",rx:"4",fill:"#09162B",opacity:".12"}),r.jsx("circle",{cx:"240",cy:"240",r:"34",fill:"#F6B73C",opacity:".9"}),r.jsx("path",{d:"M228 240l8 8 16-18",stroke:"#09162B",strokeWidth:"4",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"}),r.jsx("rect",{x:"180",y:"285",width:"60",height:"10",rx:"4",fill:"#4DA8DA",opacity:".5"}),r.jsx("rect",{x:"248",y:"285",width:"52",height:"10",rx:"4",fill:"#16A34A",opacity:".5"})]}),r.jsxs("g",{transform:"translate(90,300)",children:[r.jsx("ellipse",{cx:"0",cy:"0",rx:"20",ry:"16",fill:"#4DA8DA",opacity:".55"}),r.jsx("path",{d:"M-16 8q-4 12 4 14M-6 12q-2 12 6 12M6 12q4 12 -2 14M16 8q6 10 -2 14",stroke:"#4DA8DA",strokeWidth:"3",fill:"none",strokeLinecap:"round",opacity:".55"}),r.jsx("circle",{cx:"-6",cy:"-2",r:"2",fill:"#09162B"}),r.jsx("circle",{cx:"6",cy:"-2",r:"2",fill:"#09162B"})]})]})}),r.jsxs("div",{className:"animate-fadeUp [animation-delay:.1s]",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"Why engineers love PiratesOfBugs"}),r.jsx("h2",{className:"font-display font-bold text-4xl sm:text-5xl text-navy mt-3 tracking-tight leading-tight",children:"Built for modern engineering teams"}),r.jsx("p",{className:"text-navy/60 mt-5 text-lg leading-relaxed",children:"One connected toolkit that fits the stack you already have — no new workflow to learn, no plugins to fight with."}),r.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-4 mt-9",children:GN.map(e=>r.jsxs("div",{className:"bg-white border border-black/5 rounded-2xl p-4",children:[r.jsx("div",{className:"w-9 h-9 rounded-xl flex items-center justify-center mb-3",style:{background:e.bg},children:r.jsx("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",dangerouslySetInnerHTML:{__html:e.iconPaths}})}),r.jsx("div",{className:"font-display font-semibold text-navy text-sm",children:e.title}),r.jsx("p",{className:"text-navy/50 text-xs mt-1 leading-relaxed",children:e.description})]},e.title))})]})]})})}
67const ZN=[{number:1,title:"Choose Your Tool",description:"Pick the right crew member for the mission ahead."},{number:2,title:"Hunt Bugs",description:"Let the crew scan, test and surface what's hidden."},{number:3,title:"Find Treasure",description:"Turn every finding into a clear, actionable report."},{number:4,title:"Ship Faster",description:"Release with confidence, every single time."}];function KN(){return r.jsx("section",{id:"journey",className:"py-28 bg-[#FFF7EA] relative overflow-hidden",children:r.jsxs("div",{className:"max-w-6xl mx-auto px-6 lg:px-10 relative",children:[r.jsxs("div",{className:"text-center max-w-2xl mx-auto mb-20",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"How it works"}),r.jsx("h2",{className:"font-display font-bold text-4xl sm:text-5xl text-navy mt-3 tracking-tight",children:"Chart Your Course"})]}),r.jsxs("div",{className:"relative",children:[r.jsx("svg",{className:"absolute top-8 left-0 w-full h-10 hidden md:block",viewBox:"0 0 1000 40",preserveAspectRatio:"none",children:r.jsx("path",{d:"M40 20 Q 250 -10 500 20 T 960 20",stroke:"#D72638",strokeWidth:"2",strokeDasharray:"8 10",fill:"none",className:"anim-dash",opacity:".5"})}),r.jsx("div",{className:"grid sm:grid-cols-2 lg:grid-cols-4 gap-8 relative",children:ZN.map((e,t)=>r.jsxs("div",{className:"text-center animate-fadeUp",style:{animationDelay:`${t*.1}s`},children:[r.jsx("div",{className:"w-16 h-16 mx-auto rounded-2xl bg-white shadow-md flex items-center justify-center font-display font-bold text-primary text-xl border border-black/5",children:e.number}),r.jsx("h3",{className:"font-display font-semibold text-navy mt-5",children:e.title}),r.jsx("p",{className:"text-navy/60 text-sm mt-2",children:e.description})]},e.number))})]})]})})}const XN=[{quote:"We used to wait for users to report bugs. Now we find them before a single release goes out.",name:"Rahul Sharma",role:"QA Lead, Fintech Co.",initials:"RS",accent:"primary"},{quote:"Our test suite runs 10x faster and the whole team actually enjoys using it. That's rare.",name:"Sneha Verma",role:"Eng. Manager, Retail Co.",initials:"SV",accent:"sea"},{quote:"Finally, one toolkit instead of twelve tabs. Onboarding new SDETs takes a day, not a month.",name:"Arjun Patel",role:"SDET, Cloud Platform Co.",initials:"AP",accent:"gold"}],e3={primary:{bg:"bg-primary/10",text:"text-primary"},sea:{bg:"bg-sea/10",text:"text-sea"},gold:{bg:"bg-gold/20",text:"text-[#8a5a00]"}};function t3(){return r.jsx("section",{className:"py-28",children:r.jsxs("div",{className:"max-w-7xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"text-center max-w-2xl mx-auto mb-16",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"Captain's Logs"}),r.jsx("h2",{className:"font-display font-bold text-4xl sm:text-5xl text-navy mt-3 tracking-tight",children:"Loved by engineers worldwide"})]}),r.jsx("div",{className:"grid md:grid-cols-3 gap-6",children:XN.map(e=>{const t=e3[e.accent];return r.jsxs("div",{className:"bg-white rounded-3xl p-7 border border-black/5 shadow-[0_8px_24px_-10px_rgba(9,22,43,0.10)] relative",children:[r.jsx("span",{className:"text-4xl text-gold font-display leading-none",children:'"'}),r.jsx("p",{className:"text-navy/80 mt-2 leading-relaxed",children:e.quote}),r.jsxs("div",{className:"flex items-center gap-3 mt-6",children:[r.jsx("div",{className:`w-10 h-10 rounded-full ${t.bg} flex items-center justify-center font-display font-bold ${t.text}`,children:e.initials}),r.jsxs("div",{children:[r.jsx("div",{className:"font-semibold text-navy text-sm",children:e.name}),r.jsx("div",{className:"text-navy/50 text-xs",children:e.role})]})]})]},e.name)})})]})})}const n3=["Discord","GitHub","YouTube","Newsletter","Blog"];function s3(){return r.jsx("section",{id:"community",className:"py-28 bg-navy",children:r.jsxs("div",{className:"max-w-6xl mx-auto px-6 lg:px-10 text-center",children:[r.jsx("span",{className:"text-gold font-semibold text-sm tracking-widest uppercase",children:"Join the fleet"}),r.jsx("h2",{className:"font-display font-bold text-4xl sm:text-5xl text-white mt-3 tracking-tight",children:"Join 100,000 bug hunters"}),r.jsx("p",{className:"text-white/50 mt-4 text-lg max-w-xl mx-auto",children:"Trade findings, ship faster, and never sail alone."}
67),r.jsx("div",{className:"grid grid-cols-2 md:grid-cols-5 gap-4 mt-14",children:n3.map(e=>r.jsx("a",{href:"#",className:"bg-white/5 hover:bg-white/10 border border-white/10 rounded-2xl p-6 transition-colors",children:r.jsx("div",{className:"text-white font-display font-semibold",children:e})},e))})]})})}const r3=[{name:"Free",tagline:"Perfect for getting started",price:"$0",priceSuffix:"forever",features:["3 tools access","1,000 test runs / month","Community support"],ctaLabel:"Get Started"},{name:"Captain Plan",tagline:"For growing engineering teams",price:"$29",priceSuffix:"/user/mo",features:["All tools access","Unlimited test runs","AI insights & reports","Priority support"],ctaLabel:"Start 7-Day Free Trial",highlight:!0},{name:"Enterprise",tagline:"For large organizations",price:"Custom",priceSuffix:"Let's talk",features:["Everything in Captain Plan","SSO, audit logs, RBAC","Dedicated support","Custom integrations"],ctaLabel:"Contact Sales"}];function a3(){const[e,t]=w.useState(""),[n,s]=w.useState(!1);async function a(i){if(i.preventDefault(),!!e){try{await qt("/waitlist",{email:e,source:"pricing"})}catch{}s(!0)}}return r.jsxs("section",{id:"pricing",className:"py-28 bg-navy relative overflow-hidden",children:[r.jsxs("svg",{className:"absolute top-10 right-10 w-16 h-16 opacity-70 animate-twinkle hidden md:block",viewBox:"0 0 24 24",fill:"none",children:[r.jsx("circle",{cx:"12",cy:"12",r:"8",fill:"#F4F1E8",opacity:".9"}),r.jsx("path",{d:"M12 4a8 8 0 000 16 8 8 0 010-16z",fill:"#09162B",opacity:".35"})]}),r.jsxs("div",{className:"max-w-7xl mx-auto px-6 lg:px-10 relative",children:[r.jsxs("div",{className:"text-center max-w-2xl mx-auto mb-16",children:[r.jsx("span",{className:"text-gold font-semibold text-sm tracking-widest uppercase",children:"Plans & Pricing"}),r.jsx("h2",{className:"font-display font-bold text-4xl sm:text-5xl text-white mt-3 tracking-tight",children:"Flexible plans for every crew"})]}),r.jsxs("div",{className:"grid lg:grid-cols-4 gap-6 items-stretch",children:[r3.map(i=>r.jsxs("div",{className:"chest-card rounded-2xl p-7 relative",style:{background:i.highlight?"#1B2C1F":"#12213B",border:`1px solid rgba(246,183,60,${i.highlight?.4:.15})`},children:[i.highlight&&r.jsx("span",{className:"absolute -top-3 left-7 bg-gold text-navy text-[11px] font-bold px-3 py-1 rounded-full",children:"Most Popular"}),r.jsx("div",{className:`absolute top-0 left-0 w-full h-1.5 rounded-t-2xl ${i.highlight?"bg-gold/60":"bg-white/10"}`}),r.jsx("h3",{className:"font-display font-bold text-lg text-white",children:i.name}),r.jsx("p",{className:"text-white/40 text-sm mt-1",children:i.tagline}),r.jsxs("div",{className:"font-display font-bold text-3xl text-white mt-6",children:[i.price,i.priceSuffix&&r.jsxs("span",{className:"text-sm font-medium text-white/40",children:[" ",i.priceSuffix]})]}),r.jsx("ul",{className:"mt-7 space-y-2.5 text-sm text-white/60",children:i.features.map(o=>r.jsxs("li",{className:"flex gap-2",children:[r.jsx("span",{className:"text-gold",children:"✓"})," ",o]},o))}),r.jsx(V,{to:"/signup",className:`mt-8 block text-center font-semibold rounded-full py-3 transition-all ${i.highlight?"text-navy bg-gold hover:brightness-95":"text-white bg-white/10 hover:bg-white/15"}`,children:i.ctaLabel})]},i.name)),r.jsxs("div",{className:"rounded-2xl p-7 flex flex-col justify-between",style:{background:"#12213B",border:"1px solid rgba(255,255,255,0.08)"},children:[r.jsxs("div",{children:[r.jsx("span",{className:"text-gold font-semibold text-xs tracking-widest uppercase",children:"Stay in the loop"}),r.jsx("h4",{className:"font-display font-semibold text-white text-lg mt-2 leading-snug",children:"Get the latest updates, tools and engineering tips."})]}),n?r.jsx("p",{className:"mt-6 text-sm text-gold font-medium",children:"Ahoy! You're on the list. ⚓"}):r.jsxs("form",{className:"mt-6 flex flex-col gap-2.5",onSubmit:a,children:[r.jsx("input",{type:"email",required:!0,value:e,onChange:i=>t(i.target.value),placeholder:"Enter your email",className:"w-full px-4 py-3 rounded-full bg-white/10 text-white placeholder-white/40 text-sm focus:outline-none focus:ring-2 focus:ring-gold border border-white/10"}),r.jsx("button",{type:"submit",className:"bg-primary text-white font-semibold px-5 py-3 rounded-full text-sm hover:bg-primaryDark transition-colors",children:"Subscribe"})]})]})]})]})]})}const i3=["Treasure Map","Spyglass","Compass","Kraken","All Tools"],o3=["Docs","Blog","Guides","Changelog"],l3=["About","Careers","Contact"];function rc(){return r.jsxs("footer",{className:"bg-navy pt-20 pb-10 relative overflow-hidden",children:[r.jsxs("svg",{className:"absolute bottom-6 right-0 w-28 opacity-70 animate-sail",viewBox:"0 0 100 60",children:[r.jsx("path",{d:"M20 40 L80 40 L72 50 Q50 56 28 50 Z",fill:"#5A3A22"}),r.jsx("rect",{x:"48",y:"10",width:"3",height:"30",fill:"#7A4A2B"}),r.jsx("path",{d:"M51 12 L70 20 L51 26Z",fill:"#F6B73C",opacity:".85"})]}),r.jsxs("div",{className:"max-w-7xl mx-auto px-6 lg:px-10 grid md:grid-cols-5 ga
67p-10",children:[r.jsxs("div",{className:"md:col-span-2",children:[r.jsxs("div",{className:"flex items-center gap-2.5 mb-4",children:[r.jsxs("svg",{width:"30",height:"30",viewBox:"0 0 40 40",fill:"none",children:[r.jsx("circle",{cx:"20",cy:"20",r:"19",fill:"#D72638"}),r.jsx("circle",{cx:"16",cy:"19",r:"2.4",fill:"#FFFDF7"}),r.jsx("path",{d:"M14 25c2 1.6 10 1.6 12 0",stroke:"#09162B",strokeWidth:"1.6",strokeLinecap:"round",fill:"none"})]}),r.jsxs("span",{className:"font-display font-bold text-lg text-white",children:["Pirates",r.jsx("span",{className:"text-primary",children:"Of"}),"Bugs"]})]}),r.jsx("p",{className:"text-white/50 text-sm max-w-xs leading-relaxed",children:"The engineering toolkit that helps crews hunt bugs and ship better software, every release."})]}),r.jsx(Jc,{title:"Products",links:i3}),r.jsx(Jc,{title:"Resources",links:o3}),r.jsx(Jc,{title:"Company",links:l3})]}),r.jsxs("div",{className:"max-w-7xl mx-auto px-6 lg:px-10 mt-16 pt-8 border-t border-white/10 flex flex-col sm:flex-row items-center justify-between gap-4 text-white/40 text-sm",children:[r.jsx("span",{children:"© 2026 PiratesOfBugs. All rights reserved."}),r.jsxs("div",{className:"flex gap-6",children:[r.jsx("a",{href:"#",className:"hover:text-white transition-colors",children:"Privacy"}),r.jsx("a",{href:"#",className:"hover:text-white transition-colors",children:"Terms"}),r.jsx("a",{href:"#",className:"hover:text-white transition-colors",children:"Security"})]})]})]})}function Jc({title:e,links:t}){return r.jsxs("div",{children:[r.jsx("h4",{className:"text-white font-semibold text-sm mb-4",children:e}),r.jsx("ul",{className:"space-y-2.5 text-white/50 text-sm",children:t.map(n=>r.jsx("li",{children:r.jsx("a",{href:"#",className:"hover:text-white transition-colors",children:n})},n))})]})}function c3(){return r.jsxs("div",{className:"font-body antialiased",children:[r.jsx(nc,{}),r.jsxs("main",{children:[r.jsx(Kk,{}),r.jsx(eN,{}),r.jsx(qN,{}),r.jsx(QN,{}),r.jsx(YN,{}),r.jsx(KN,{}),r.jsx(t3,{}),r.jsx(s3,{}),r.jsx(a3,{})]}),r.jsx(rc,{})]})}function Di({title:e,subtitle:t,children:n,footer:s}){return r.jsxs("div",{className:"min-h-screen bg-bg font-body flex flex-col items-center justify-center px-6 py-12",children:[r.jsxs(V,{to:"/",className:"flex items-center gap-2.5 mb-8",children:[r.jsxs("svg",{width:"34",height:"34",viewBox:"0 0 40 40",fill:"none",children:[r.jsx("circle",{cx:"20",cy:"20",r:"19",fill:"#D72638",stroke:"#09162B",strokeWidth:"1.5"}),r.jsx("circle",{cx:"16",cy:"19",r:"2.6",fill:"#FFFDF7"}),r.jsx("circle",{cx:"16",cy:"19",r:"1.1",fill:"#09162B"}),r.jsx("path",{d:"M14 25c2 1.6 10 1.6 12 0",stroke:"#09162B",strokeWidth:"1.6",strokeLinecap:"round",fill:"none"})]}),r.jsxs("span",{className:"font-display font-bold text-lg tracking-tight text-navy",children:["Pirates",r.jsx("span",{className:"text-primary",children:"Of"}),"Bugs"]})]}),r.jsxs("div",{className:"w-full max-w-md bg-white rounded-3xl border border-black/5 shadow-[0_20px_50px_-20px_rgba(9,22,43,0.25)] p-8",children:[r.jsx("h1",{className:"font-display font-bold text-2xl text-navy text-center",children:e}),t&&r.jsx("p",{className:"text-navy/60 text-sm text-center mt-2",children:t}),r.jsx("div",{className:"mt-6",children:n})]}),s&&r.jsx("div",{className:"mt-6 text-sm text-navy/60",children:s})]})}function Fs({label:e,type:t="text",value:n,onChange:s,autoComplete:a,placeholder:i}){return r.jsxs("label",{className:"block mb-4",children:[r.jsx("span",{className:"text-sm font-medium text-navy/80",children:e}),r.jsx("input",{type:t,value:n,onChange:o=>s(o.target.value),autoComplete:a,placeholder:i,className:"mt-1.5 w-full rounded-xl border border-navy/15 px-4 py-2.5 text-navy placeholder:text-navy/40 focus:outline-none focus:border-primary focus:ring-2 focus:ring-primary/20"})]})}function ac({loading:e,children:t}){return r.jsx("button",{type:"submit",disabled:e,className:"btn-primary w-full font-semibold px-6 py-3 rounded-full shadow-sm shadow-primary/20 disabled:opacity-60",children:e?"Please wait…":t})}function ic({message:e}){return e?r.jsx("p",{className:"text-primary text-sm mb-4",children:e}):null}function d3(){var g;const{login:e}=Ws(),t=zs(),s=((g=xn().state)==null?void 0:g.from)??"/dashboard",[a,i]=w.useState(""),[o,l]=w.useState(""),[c,d]=w.useState(""),[u,h]=w.useState(!1);async function p(y){var k;y.preventDefault(),d("");const v=MN.safeParse({email:a,password:o});if(!v.success){d(((k=v.error.issues[0])==null?void 0:k.message)??"Check your details");return}h(!0);try{await e(v.data.email,v.data.password),t(s,{replace:!0})}catch(f){d(f instanceof Zn?f.message:"Login failed")}finally{h(!1)}}return r.jsx(Di,{title:"Welcome back aboard",subtitle:"Log in to your Pirates of Bugs account",footer:r.jsxs(r.Fragment,{children:["New here?"," ",r.jsx(V,{to:"/signup",className:"text-primary font-semibold",children:"Create an account"})]}),children:r.jsxs("form",{onSubmit:p,children:[r.jsx(ic,{message:c}),r.jsx(Fs,{label:"Email",type:"email",value:a,onChange:i,autoComplete:"email"}),r.jsx(Fs,{label:"Password",type:"password",value:o,onChange:l,autoComplete:"current-password"}),r.jsx("div",{className:"flex justify-end -mt-2 mb-4",children:r.jsx(V,{to:"/forgot-password",className:"text-sm text-primary font-medium",children:"Forgot password?"})}),r.jsx(ac,{loading:u,children:"Log in"})]})})}function u3(){const{signup:e}=Ws(),t=zs(),[n,s]=w.useState(""),[a,i]=w.useState(""),[o,l]=w.useState(""),[c,d]=w.useState(""),[u,h]=w.useState(!1);async function p(g){var v;g.preventDefault(),d("");const y=FN.safeParse({email:a,password:o,displayName:n||void 0});if(!y.success){d(((v=y.error.issues[0])==null?void 0:v.message)??"Check your details");return}h(!0);try{await e(y.data.email,y.data.password,y.data.displayName),t("/dashboard",{replace:!0})}catch(k){d(k instanceof Zn?k.message:"Sign up failed")}finally{h(!1)}}return r.jsx(Di,{title:"Join the crew",subtitle:"Create your free Pirates of Bugs account",footer:r.jsxs(r.Fragment,{children:["Already sailing with us?"," ",r.jsx(V,{to:"/login",className:"text-primary font-semibold",children:"Log in"})]}),children:r.jsxs("form",{onSubmit:p,children:[r.jsx(ic,{message:c}),r.jsx(Fs,{label:"Name",value:n,onChange:s,autoComplete:"name",placeholder:"Captain Ada"}),r.jsx(Fs,{label:"Email",type:"email",value:a,onChange:i,autoComplete:"email"}),r.jsx(Fs,{label:"Password",type:"password",value:o,onChange:l,autoComplete:"new-password",placeholder:"8+ chars, letters & numbers"}),r.jsx(ac,{loading:u,children:"Create account"})]})})}function h3(){const[e,t]=w.useState(""),[n,s]=w.useState(""),[a,i]=w.useState(!1),[o,l]=w.useState(!1);async function c(d){var h;d.preventDefault(),s("");const u=DN.safeParse({email:e});if(!u.success){s(((h=u.error.issues[0])==null?void 0:h.message)??"Enter a valid email");return}l(!0);try{await qt("/auth/forgot-password",u.data),i(!0)}catch{i(!0)}finally{l(!1)}}return r.jsx(Di,{title:"Reset your password",subtitle:"We'll email you a link to chart a new course",footer:r.jsx(V,{to:"/login",className:"text-primary font-semibold",children:"Back to log in"}),children:a?r.jsxs("p",{className:"text-navy/70 text-sm text-center",children:["If an account exists for ",r.jsx("span",{className:"font-medium",children:e}),", a reset link is on its way. Check your inbox."]}):r.jsxs("form",{onSubmit:c,children:[r.jsx(ic,{message:n}
67),r.jsx(Fs,{label:"Email",type:"email",value:e,onChange:t,autoComplete:"email"}),r.jsx(ac,{loading:o,children:"Send reset link"})]})})}function p3(){const[e]=ov(),t=e.get("token")??"",[n,s]=w.useState(""),[a,i]=w.useState(""),[o,l]=w.useState(!1),[c,d]=w.useState(!1);async function u(h){var g;h.preventDefault(),i("");const p=ON.safeParse({token:t,password:n});if(!p.success){i(((g=p.error.issues[0])==null?void 0:g.message)??"Check your details");return}d(!0);try{await qt("/auth/reset-password",p.data),l(!0)}catch(y){i(y instanceof Zn?y.message:"Reset failed")}finally{d(!1)}}return r.jsx(Di,{title:"Choose a new password",footer:r.jsx(V,{to:"/login",className:"text-primary font-semibold",children:"Back to log in"}),children:t?o?r.jsxs("p",{className:"text-success text-sm text-center",children:["Your password has been reset. You can now"," ",r.jsx(V,{to:"/login",className:"font-semibold underline",children:"log in"}),"."]}):r.jsxs("form",{onSubmit:u,children:[r.jsx(ic,{message:a}),r.jsx(Fs,{label:"New password",type:"password",value:n,onChange:s,autoComplete:"new-password",placeholder:"8+ chars, letters & numbers"}),r.jsx(ac,{loading:c,children:"Reset password"})]}):r.jsx("p",{className:"text-primary text-sm text-center",children:"This reset link is missing its token."})})}function m3(){const[e]=ov(),t=e.get("token")??"",[n,s]=w.useState("verifying"),[a,i]=w.useState(""),o=w.useRef(!1);return w.useEffect(()=>{if(!o.current){if(o.current=!0,!t){s("error"),i("This verification link is missing its token.");return}qt("/auth/verify-email",{token:t}).then(()=>s("ok")).catch(l=>{s("error"),i(l instanceof Zn?l.message:"Verification failed")})}},[t]),r.jsxs(Di,{title:"Email verification",footer:r.jsx(V,{to:"/dashboard",className:"text-primary font-semibold",children:"Go to dashboard"}),children:[n==="verifying"&&r.jsx("p",{className:"text-navy/60 text-sm text-center",children:"Verifying…"}),n==="ok"&&r.jsx("p",{className:"text-success text-sm text-center",children:"Your email is verified. Welcome aboard! ⚓"}),n==="error"&&r.jsx("p",{className:"text-primary text-sm text-center",children:a})]})}function f3(){const{crew:e,isLoading:t}=ap();return r.jsxs("div",{className:"font-body antialiased",children:[r.jsx(nc,{}),r.jsx("main",{className:"pt-[72px]",children:r.jsx("section",{className:"py-20 bg-bg",children:r.jsxs("div",{className:"max-w-7xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"text-center max-w-2xl mx-auto mb-14",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"⚑ The Full Fleet"}),r.jsx("h1",{className:"font-display font-bold text-4xl sm:text-5xl text-navy mt-3 tracking-tight",children:"Meet the whole crew"}),r.jsx("p",{className:"text-navy/60 mt-4 text-lg",children:"Every tool sails in one by one. Join a waitlist and we'll signal you the moment your pick drops."})]}),t?r.jsx("p",{className:"text-center text-navy/50",children:"Charting the fleet…"}):r.jsx("div",{className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-6",children:e.map(n=>r.jsx(rp,{member:n},n.slug??n.name))}),r.jsxs("div",{className:"mt-16 max-w-xl mx-auto text-center bg-white rounded-3xl border border-black/5 p-8",children:[r.jsx("h2",{className:"font-display font-semibold text-xl text-navy",children:"Want the whole treasure map?"}),r.jsx("p",{className:"text-navy/60 text-sm mt-2 mb-5",children:"Get notified about every launch — one email per drop, no spam."}),r.jsx(Sv,{source:"crew-page",buttonLabel:"Join the fleet"})]})]})})}),r.jsx(rc,{})]})}function x3(){const{user:e}=Ws(),{crew:t}=ap(),{data:n}=Xh({queryKey:["waitlist","mine"],queryFn:()=>ep("/waitlist/mine"),select:a=>a.entries}),s=a=>{var i;return((i=t.find(o=>o.slug===a))==null?void 0:i.name)??(a||"General fleet updates")};return r.jsxs("div",{className:"font-body antialiased",children:[r.jsx(nc,{}),r.jsx("main",{className:"pt-[72px] bg-bg min-h-screen",children:r.jsxs("div",{className:"max-w-7xl mx-auto px-6 lg:px-10 py-12",children:[!(e!=null&&e.emailVerified)&&r.jsxs("div",{className:"mb-8 rounded-2xl bg-gold/15 border border-gold/40 px-5 py-4 text-navy/80 text-sm",children:["Please verify your email to secure your account."," ",r.jsx(V,{to:"/account",className:"font-semibold text-primary underline",children:"Manage in Account"})]}),r.jsxs("h1",{className:"font-display font-bold text-3xl text-navy",children:["Ahoy, ",(e==null?void 0:e.displayName)||"captain"," ⚓"]}),r.jsx("p",{className:"text-navy/60 mt-2",children:"Track the fleet and manage the launches you're waiting on."}),r.jsxs("section",{className:"mt-10",children:[r.jsx("h2",{className:"font-display font-semibold text-xl text-navy mb-4",children:"Your waitlists"}),n&&n.length>0?r.jsx("ul",{className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-4",children:n.map(a=>r.jsxs("li",{className:"bg-white rounded-2xl border border-black/5 px-5 py-4 flex items-center justify-between",children:[r.jsx("span",{className:"font-medium text-navy",children:s(a.crewSlug)}
67),r.jsx("span",{className:"text-[10px] font-bold uppercase tracking-wide bg-gold/15 text-navy/70 px-2.5 py-1 rounded-full",children:"Waiting"})]},a.id))}):r.jsx("p",{className:"text-navy/50 text-sm",children:"You haven't joined any launch waitlists yet — pick a tool below."})]}),r.jsxs("section",{className:"mt-12",children:[r.jsx("h2",{className:"font-display font-semibold text-xl text-navy mb-4",children:"The fleet"}),r.jsx("div",{className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-6",children:t.map(a=>r.jsx(rp,{member:a},a.slug??a.name))})]})]})}),r.jsx(rc,{})]})}function uo({title:e,children:t}){return r.jsxs("section",{className:"bg-white rounded-3xl border border-black/5 p-7 mb-6",children:[r.jsx("h2",{className:"font-display font-semibold text-lg text-navy mb-4",children:e}),t]})}const Qc="w-full rounded-xl border border-navy/15 px-4 py-2.5 text-navy focus:outline-none focus:border-primary focus:ring-2 focus:ring-primary/20";function g3(){const{user:e,refresh:t}=Ws(),n=zs(),[s,a]=w.useState((e==null?void 0:e.displayName)??""),[i,o]=w.useState(""),[l,c]=w.useState(""),[d,u]=w.useState(""),[h,p]=w.useState(""),[g,y]=w.useState("");async function v(m){var N;m.preventDefault(),o("");const b=LN.safeParse({displayName:s});if(!b.success)return o(((N=b.error.issues[0])==null?void 0:N.message)??"Invalid name");try{await Hk("/users/me",b.data),await t(),o("Saved ✓")}catch(C){o(C instanceof Zn?C.message:"Could not save")}}async function k(m){var N;m.preventDefault(),p("");const b=RN.safeParse({currentPassword:l,newPassword:d});if(!b.success)return p(((N=b.error.issues[0])==null?void 0:N.message)??"Check your input");try{await qt("/users/me/change-password",b.data),c(""),u(""),p("Password updated ✓")}catch(C){p(C instanceof Zn?C.message:"Could not update")}}async function f(){y("");try{await qt("/auth/resend-verification"),y("Verification email sent — check your inbox.")}catch{y("Could not send right now.")}}async function x(){if(window.confirm("Delete your account permanently? This cannot be undone."))try{await Jk("/users/me"),await t(),n("/",{replace:!0})}catch{}}return r.jsxs("div",{className:"font-body antialiased",children:[r.jsx(nc,{}),r.jsx("main",{className:"pt-[72px] bg-bg min-h-screen",children:r.jsxs("div",{className:"max-w-3xl mx-auto px-6 lg:px-10 py-12",children:[r.jsx("h1",{className:"font-display font-bold text-3xl text-navy mb-8",children:"Account"}),r.jsx(uo,{title:"Profile",children:r.jsxs("form",{onSubmit:v,children:[r.jsx("label",{className:"block text-sm font-medium text-navy/80 mb-1.5",children:"Display name"}),r.jsx("input",{className:Qc,value:s,onChange:m=>a(m.target.value)}),r.jsxs("p",{className:"text-navy/50 text-sm mt-3",children:["Email: ",e==null?void 0:e.email]}),r.jsxs("div",{className:"flex items-center gap-3 mt-4",children:[r.jsx("button",{className:"btn-primary font-semibold px-5 py-2.5 rounded-full",children:"Save"}),i&&r.jsx("span",{className:"text-sm text-navy/60",children:i})]})]})}),r.jsx(uo,{title:"Email verification",children:e!=null&&e.emailVerified?r.jsx("p",{className:"text-success text-sm",children:"Your email is verified. ✓"}):r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx("button",{onClick:f,className:"font-semibold text-navy border border-navy/15 hover:border-navy/30 px-5 py-2.5 rounded-full",children:"Resend verification email"}),g&&r.jsx("span",{className:"text-sm text-navy/60",children:g})]})}),r.jsx(uo,{title:"Change password",children:r.jsxs("form",{onSubmit:k,className:"space-y-4",children:[r.jsxs("div",{children:[r.jsx("label",{className:"block text-sm font-medium text-navy/80 mb-1.5",children:"Current password"}),r.jsx("input",{type:"password",className:Qc,value:l,onChange:m=>c(m.target.value),autoComplete:"current-password"})]}),r.jsxs("div",{children:[r.jsx("label",{className:"block text-sm font-medium text-navy/80 mb-1.5",children:"New password"}),r.jsx("input",{type:"password",className:Qc,value:d,onChange:m=>u(m.target.value),autoComplete:"new-password"})]}),r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx("button",{className:"btn-primary font-semibold px-5 py-2.5 rounded-full",children:"Update password"}),h&&r.jsx("span",{className:"text-sm text-navy/60",children:h})]})]})}),r.jsxs(uo,{title:"Danger zone",children:[r.jsx("p",{className:"text-navy/60 text-sm mb-4",children:"Permanently delete your account and all associated data."}),r.jsx("button",{onClick:x,className:"font-semibold text-primary border border-primary/30 hover:bg-primary/5 px-5 py-2.5 rounded-full",children:"Delete account"})]})]})}),r.jsx(rc,{})]})}function y3(){const{user:e,loading:t}=Ws(),n=xn();return t?r.jsx("div",{className:"min-h-screen flex items-center justify-center text-navy/50 font-body",children:"Loading…"}):e?r.jsx(Jj,{}):r.jsx(zo,{to:"/login",replace:!0,state:{from:n.pathname}})}const v3="/assets/pob-wordmark-light-Dc7VxxMv.webp",Nl="/assets/captain-json-logo-DnZ2Ba0N.webp",oc="/assets/captain-jmx-logo-BpUphsSg.webp",Sl="/assets/bugcapsule-logo-DxBSWQtg.webp",Cl="/assets/captain-capture-logo-AMwdaM-l.webp",Pl="/assets/spyglass-logo-CDpZ1o8b.png",Ua="/assets/octopus-logo-Dvx5_X_5.png",w3=[{name:"Captain JSON",tagline:"The ultimate JSON toolkit for engineers.",href:"/captainjson",logo:Nl,live:!0},{name:"Captain JMX",tagline:"Build Smarter JMeter Test Plans",href:"/captainjmx",logo:oc,live:!1},{name:"Bug Capsule",tagline:"Record a browser bug once, replay it anywhere.",href:"/bugcapsule",logo:Sl,live:!1},{name:"Captain Capture",tagline:"Test evidence that writes itself.",href:"/captaincapture",logo:Cl,live:!1},{name:"Captain Spyglass",tagline:"See how your page lines up — alignment guides + instant screenshots.",href:"/captainspyglass",logo:Pl,live:!0},{name:"Captain Octopus",tagline:"Record a bug once — replay, console, network & steps. All local.",href:"/captainoctopus",logo:Ua,live:!1}],Tl=[...w3].sort((e,t)=>
67Number(t.live)-Number(e.live)),xi=[{name:"Instagram",href:"https://www.instagram.com/piratesofbugs"},{name:"Facebook",href:"https://www.facebook.com/piratesofbugs"},{name:"LinkedIn",href:"https://www.linkedin.com/company/piratesofbugs"},{name:"YouTube",href:"https://www.youtube.com/@piratesofbugs"},{name:"X",href:"https://x.com/piratesofbugs"}];function Mv({className:e}){return r.jsx("svg",{viewBox:"0 0 50 50",fill:"currentColor",className:e,children:r.jsx("path",{d:"M 16 3 C 8.83 3 3 8.83 3 16 L 3 34 C 3 41.17 8.83 47 16 47 L 34 47 C 41.17 47 47 41.17 47 34 L 47 16 C 47 8.83 41.17 3 34 3 L 16 3 z M 37 11 C 38.1 11 39 11.9 39 13 C 39 14.1 38.1 15 37 15 C 35.9 15 35 14.1 35 13 C 35 11.9 35.9 11 37 11 z M 25 14 C 31.07 14 36 18.93 36 25 C 36 31.07 31.07 36 25 36 C 18.93 36 14 31.07 14 25 C 14 18.93 18.93 14 25 14 z M 25 16 C 20.04 16 16 20.04 16 25 C 16 29.96 20.04 34 25 34 C 29.96 34 34 29.96 34 25 C 34 20.04 29.96 16 25 16 z"})})}function b3({className:e}){return r.jsx("svg",{viewBox:"0 0 50 50",fill:"currentColor",className:e,children:r.jsx("path",{d:"M25,3C12.85,3,3,12.85,3,25c0,11.03,8.125,20.137,18.712,21.728V30.831h-5.443v-5.783h5.443v-3.848 c0-6.371,3.104-9.168,8.399-9.168c2.536,0,3.877,0.188,4.512,0.274v5.048h-3.612c-2.248,0-3.033,2.131-3.033,4.533v3.161h6.588 l-0.894,5.783h-5.694v15.944C38.716,45.318,47,36.137,47,25C47,12.85,37.15,3,25,3z"})})}function Dv({className:e}){return r.jsx("svg",{viewBox:"0 0 50 50",fill:"currentColor",className:e,children:r.jsx("path",{d:"M25,2C12.3,2,2,12.3,2,25s10.3,23,23,23s23-10.3,23-23S37.7,2,25,2z M19,35c0,0.5-0.5,1-1,1h-4c-0.5,0-1-0.5-1-1V20 c0-0.5,0.5-1,1-1h4c0.5,0,1,0.5,1,1V35z M16,18c-1.6,0-3-1.4-3-3s1.4-3,3-3s3,1.4,3,3S17.6,18,16,18z M38,35c0,0.5-0.5,1-1,1h-4 c-0.5,0-1-0.5-1-1v-7.5c0-1.4-1.1-2.5-2.5-2.5S27,26.1,27,27.5V35c0,0.5-0.5,1-1,1h-4c-0.5,0-1-0.5-1-1V20c0-0.5,0.5-1,1-1h4 c0.5,0,1,0.4,1,1c1.1-0.6,2.2-1,3.5-1c4.1,0,7.5,3.4,7.5,7.5V35z"})})}function Ov({className:e}){return r.jsx("svg",{viewBox:"0 0 50 50",fill:"currentColor",className:e,children:r.jsx("path",{d:"M 44.898438 14.5 C 44.5 12.300781 42.601563 10.699219 40.398438 10.199219 C 37.101563 9.5 31 9 24.398438 9 C 17.800781 9 11.601563 9.5 8.300781 10.199219 C 6.101563 10.699219 4.199219 12.199219 3.800781 14.5 C 3.398438 17 3 20.5 3 25 C 3 29.5 3.398438 33 3.898438 35.5 C 4.300781 37.699219 6.199219 39.300781 8.398438 39.800781 C 11.898438 40.5 17.898438 41 24.5 41 C 31.101563 41 37.101563 40.5 40.601563 39.800781 C 42.800781 39.300781 44.699219 37.800781 45.101563 35.5 C 45.5 33 46 29.398438 46.101563 25 C 45.898438 20.5 45.398438 17 44.898438 14.5 Z M 19 32 L 19 18 L 31.199219 25 Z"})})}function Rv({className:e}){return r.jsx("svg",{viewBox:"0 0 50 50",fill:"currentColor",className:e,children:r.jsx("path",{d:"M 6.9199219 6 L 21.136719 26.726562 L 6.2285156 44 L 9.40625 44 L 22.544922 28.777344 L 32.986328 44 L 43 44 L 28.123047 22.3125 L 42.203125 6 L 39.027344 6 L 26.716797 20.261719 L 16.933594 6 L 6.9199219 6 z"})})}const Lv={Instagram:Mv,Facebook:b3,LinkedIn:Dv,YouTube:Ov,X:Rv};function _u({social:e,onDark:t=!1,size:n="sm"}){const s=Lv[e.name];if(!s)return null;if(t){const i=n==="md"?"w-10 h-10":"w-9 h-9",o=n==="md"?"w-5 h-5":"w-[18px] h-[18px]";return r.jsx("a",{href:e.href,target:"_blank",rel:"noopener noreferrer","aria-label":e.name,onClick:()=>Nf(e.name),className:"group inline-flex",children:r.jsx("span",{className:`${i} rounded-full bg-white flex items-center justify-center shadow-sm transition-all duration-200 group-hover:scale-110 group-hover:shadow-lg group-hover:shadow-black/20`,children:r.jsx(s,{className:`${o} text-navy transition-colors group-hover:text-primary`})})})}const a=n==="md"?"w-5 h-5":"w-[18px] h-[18px]";return r.jsx("a",{href:e.href,target:"_blank",rel:"noopener noreferrer","aria-label":e.name,onClick:()=>Nf(e.name),className:"inline-flex text-navy/40 hover:text-primary transition-all duration-200 hover:-translate-y-0.5",children:r.jsx(s,{className:a})})}const Uf=[{name:"Contact",tagline:"Reach the crew directly.",href:"/contact",icon:"✉️"},{name:"Become a Sponsor",tagline:"Partner with Pirates of Bugs.",href:"/becomesponsor",icon:"🏴‍☠️"},{name:"Community",tagline:"The crew behind Pirates of Bugs.",href:"/community",icon:"🤝"},{name:"Feedback",tagline:"Report a bug or request a feature.",href:"/feedback",icon:"🐛"}];function qe(){const[e,t]=w.useState(!1),[n,s]=w.useState(!1),[a,i]=w.useState(!1),[o,l]=w.useState(!1);return r.jsxs("header",{className:"fixed top-0 inset-x-0 z-50 nav-glass border-b border-black/5",children:[r.jsxs("div",{className:"max-w-7xl mx-auto px-6 lg:px-10 h-[72px] flex items-center justify-between",children:[r.jsx(V,{to:"/",className:"flex items-center shrink-0",children:r.jsx("img",{src:v3,alt:"Pirates of Bugs",className:"h-8 sm:h-9 w-auto object-contain"})}),r.jsxs("nav",{className:"hidden lg:flex items-center gap-1",children:[r.jsxs("div",{className:"relative",onMouseEnter:()=>t(!0),onMouseLeave:()=>t(!1),children:[r.jsxs("button",{className:"flex items-center gap-1.5 text-[15px] font-medium text-navy/80 hover:text-primary transition-colors py-2 px-3",onClick:()=>t(c=>
67!c),"aria-expanded":e,children:["Products",r.jsx(Gc,{open:e})]}),e&&r.jsx("div",{className:"absolute left-1/2 -translate-x-1/2 top-full pt-3 w-[340px]",children:r.jsxs("div",{className:"bg-white rounded-2xl border border-black/5 shadow-xl p-3",children:[Tl.map(c=>c.live?r.jsxs(V,{to:c.href,className:"flex items-center gap-3.5 p-3 rounded-xl hover:bg-navy/5 transition-colors",onClick:()=>{Nu(c.name,c.href),t(!1)},children:[r.jsx("img",{src:c.logo,alt:"",className:"w-10 h-10 object-contain shrink-0"}),r.jsxs("div",{className:"min-w-0",children:[r.jsx("div",{className:"font-display font-semibold text-navy text-sm",children:c.name}),r.jsx("div",{className:"text-navy/55 text-xs mt-0.5 truncate",children:c.tagline})]})]},c.name):r.jsxs("div",{className:"flex items-center gap-3.5 p-3 rounded-xl opacity-50 cursor-default",children:[r.jsx("img",{src:c.logo,alt:"",className:"w-10 h-10 object-contain shrink-0 grayscale"}),r.jsxs("div",{className:"min-w-0",children:[r.jsxs("div",{className:"font-display font-semibold text-navy text-sm flex items-center gap-2",children:[c.name,r.jsx("span",{className:"text-[9px] font-bold text-navy/40 bg-navy/5 px-1.5 py-0.5 rounded-full whitespace-nowrap",children:"Soon"})]}),r.jsx("div",{className:"text-navy/55 text-xs mt-0.5 truncate",children:c.tagline})]})]},c.name)),r.jsx("div",{className:"px-3 py-3 mt-1 border-t border-black/5",children:r.jsx("p",{className:"text-navy/40 text-xs font-medium",children:"More products coming soon ⚓"})})]})})]}),r.jsxs("a",{href:"https://www.fundootesters.com/TestersPlayground",target:"_blank",rel:"noopener noreferrer",onClick:()=>kf("https://www.fundootesters.com/TestersPlayground","playground"),className:"flex items-center gap-1.5 text-[15px] font-medium text-navy/80 hover:text-primary transition-colors py-2 px-3",children:["Playground",r.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",children:r.jsx("path",{d:"M7 17L17 7M17 7H9M17 7V15",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})]}),r.jsx(V,{to:"/blog",className:"text-[15px] font-medium text-navy/80 hover:text-primary transition-colors py-2 px-3",children:"Blog"}),r.jsxs("div",{className:"relative",onMouseEnter:()=>s(!0),onMouseLeave:()=>s(!1),children:[r.jsxs("button",{className:"flex items-center gap-1.5 text-[15px] font-medium text-navy/80 hover:text-primary transition-colors py-2 px-3",onClick:()=>s(c=>!c),"aria-expanded":n,children:["Company",r.jsx(Gc,{open:n})]}),n&&r.jsx("div",{className:"absolute left-1/2 -translate-x-1/2 top-full pt-3 w-[300px]",children:r.jsx("div",{className:"bg-white rounded-2xl border border-black/5 shadow-xl p-3",children:Uf.map(c=>r.jsxs(V,{to:c.href,className:"flex items-center gap-3.5 p-3 rounded-xl hover:bg-navy/5 transition-colors",onClick:()=>s(!1),children:[r.jsx("span",{className:"w-9 h-9 rounded-full bg-navy/5 flex items-center justify-center text-lg shrink-0",children:c.icon}),r.jsxs("div",{className:"min-w-0",children:[r.jsx("div",{className:"font-display font-semibold text-navy text-sm",children:c.name}),r.jsx("div",{className:"text-navy/55 text-xs mt-0.5 truncate",children:c.tagline})]})]},c.name))})})]})]}),r.jsxs("div",{className:"flex items-center gap-5",children:[r.jsxs("div",{className:"hidden lg:flex items-center gap-3",children:[r.jsx("span",{className:"text-[13px] text-navy/45 font-medium mr-0.5",children:"Follow us"}),xi.map(c=>r.jsx(_u,{social:c},c.name))]}),r.jsx("button",{className:"lg:hidden w-9 h-9 flex items-center justify-center rounded-full border border-navy/15 shrink-0",onClick:()=>i(c=>!c),"aria-label":"Toggle menu","aria-expanded":a,children:r.jsx("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",children:r.jsx("path",{d:"M4 7h16M4 12h16M4 17h16",stroke:"#09162B",strokeWidth:"1.8",strokeLinecap:"round"})})})]})]}),a&&r.jsxs("div",{className:"lg:hidden border-t border-black/5 bg-bg px-6 py-5 flex flex-col gap-4 max-h-[calc(100vh-72px)] overflow-y-auto",children:[r.jsxs("div",{children:[r.jsx("p",{className:"text-navy/40 text-xs font-semibold uppercase tracking-wide mb-2",children:"Products"}),r.jsx("div",{className:"flex flex-col gap-1",children:Tl.map(c=>c.live?r.jsxs(V,{to:c.href,className:"flex items-center gap-3 py-2",onClick:()=>{Nu(c.name,c.href),i(!1)},children:[r.jsx("img",{src:c.logo,alt:"",className:"w-8 h-8 object-contain"}),r.jsxs("div",{children:[r.jsx("div",{className:"font-display font-semibold text-navy text-sm",children:c.name}),r.jsx("div",{className:"text-navy/50 text-xs",children:c.tagline})]})]},c.name):r.jsxs("div",{className:"flex items-center gap-3 py-2 opacity-50",children:[r.jsx("img",{src:c.logo,alt:"",className:"w-8 h-8 object-contain grayscale"}),r.jsxs("div",{children:[r.jsxs("div",{className:"font-display font-semibold text-navy text-sm flex items-center gap-2",children:[c.name,r.jsx("span",{className:"text-[9px] font-bold text-navy/40 bg-navy/5 px-1.5 py-0.5 rounded-full whitespace-nowrap",children:"Soon"})]}),r.jsx("div",{className:"text-navy/50 text-xs",children:c.tagline})]})]},c.name))})]}
67),r.jsx("a",{href:"https://www.fundootesters.com/TestersPlayground",target:"_blank",rel:"noopener noreferrer",onClick:()=>kf("https://www.fundootesters.com/TestersPlayground","playground"),className:"py-2 font-medium text-navy/80 border-t border-black/5 pt-4",children:"Playground ↗"}),r.jsx(V,{to:"/blog",onClick:()=>i(!1),className:"py-2 font-medium text-navy/80 border-t border-black/5 pt-4",children:"Blog"}),r.jsxs("div",{className:"border-t border-black/5 pt-4",children:[r.jsxs("button",{className:"flex items-center justify-between w-full text-navy/40 text-xs font-semibold uppercase tracking-wide mb-2",onClick:()=>l(c=>!c),"aria-expanded":o,children:["Company",r.jsx(Gc,{open:o})]}),o&&r.jsx("div",{className:"flex flex-col gap-1",children:Uf.map(c=>r.jsxs(V,{to:c.href,className:"py-2 font-medium text-navy/80",onClick:()=>i(!1),children:[c.icon," ",c.name]},c.name))})]}),r.jsxs("div",{className:"flex items-center gap-4 pt-2 border-t border-black/5",children:[r.jsx("span",{className:"text-[13px] text-navy/45 font-medium",children:"Follow us"}),xi.map(c=>r.jsx(_u,{social:c},c.name))]})]})]})}function Gc({open:e}){return r.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",className:`transition-transform shrink-0 ${e?"rotate-180":""}`,children:r.jsx("path",{d:"M6 9l6 6 6-6",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}const j3="/assets/pob-wordmark-dark-COft0KcR.webp",k3=[{label:"Docs"},{label:"Blog"},{label:"Guides"},{label:"Changelog"}],N3=[{label:"About"},{label:"Careers"},{label:"Contact",href:"/contact"},{label:"Community",href:"/community"}];function He(){return r.jsxs("footer",{className:"bg-navy pt-20 pb-10 relative overflow-hidden",children:[r.jsxs("svg",{className:"absolute bottom-6 right-0 w-28 opacity-70 animate-sail",viewBox:"0 0 100 60",children:[r.jsx("path",{d:"M20 40 L80 40 L72 50 Q50 56 28 50 Z",fill:"#5A3A22"}),r.jsx("rect",{x:"48",y:"10",width:"3",height:"30",fill:"#7A4A2B"}),r.jsx("path",{d:"M51 12 L70 20 L51 26Z",fill:"#F6B73C",opacity:".85"})]}),r.jsxs("div",{className:"max-w-7xl mx-auto px-6 lg:px-10 grid md:grid-cols-5 gap-10",children:[r.jsxs("div",{className:"md:col-span-2",children:[r.jsx("div",{className:"mb-4",children:r.jsx("img",{src:j3,alt:"Pirates of Bugs",className:"h-8 w-auto object-contain"})}),r.jsx("p",{className:"text-white/50 text-sm max-w-xs leading-relaxed",children:"The engineering toolkit that helps crews hunt bugs and ship better software, every release."})]}),r.jsxs("div",{children:[r.jsx("h4",{className:"text-white font-semibold text-sm mb-4",children:"Products"}),r.jsxs("ul",{className:"space-y-2.5 text-white/50 text-sm",children:[Tl.map(e=>r.jsx("li",{children:r.jsx(V,{to:e.href,className:"hover:text-white transition-colors",children:e.name})},e.name)),r.jsx("li",{className:"text-white/30",children:"More coming soon"})]})]}),r.jsx(zf,{title:"Resources",links:k3,badge:"Coming Soon"}),r.jsx(zf,{title:"Company",links:N3})]}),r.jsxs("div",{className:"max-w-7xl mx-auto px-6 lg:px-10 mt-16 pt-8 border-t border-white/10 flex flex-col sm:flex-row items-center justify-between gap-5 text-white/40 text-sm",children:[r.jsx("span",{children:"© 2026 PiratesOfBugs. All rights reserved."}),r.jsx("div",{className:"flex items-center gap-3",children:xi.map(e=>r.jsx(_u,{social:e,onDark:!0},e.name))}),r.jsxs("div",{className:"flex gap-6",children:[r.jsx(V,{to:"/privacy",className:"hover:text-white transition-colors",children:"Privacy"}),r.jsx("a",{href:"#",className:"hover:text-white transition-colors",children:"Terms"}),r.jsx("a",{href:"#",className:"hover:text-white transition-colors",children:"Security"})]})]})]})}function zf({title:e,links:t,badge:n}){return r.jsxs("div",{children:[r.jsxs("h4",{className:"text-white font-semibold text-sm mb-4 flex items-center gap-2 flex-wrap",children:[e,n&&r.jsx("span",{className:"text-[10px] font-bold text-gold bg-white/10 border border-gold/30 px-2 py-0.5 rounded-full uppercase tracking-wide",children:n})]}),r.jsx("ul",{className:"space-y-2.5 text-white/50 text-sm",children:t.map(s=>s.href?r.jsx("li",{children:r.jsx(V,{to:s.href,className:"hover:text-white transition-colors",children:s.label})},s.label):r.jsx("li",{children:r.jsx("a",{href:"#",className:"hover:text-white transition-colors",children:s.label})},s.label))})]})}const ra="/assets/hero-main-CYNvbx3u.webp";function S3(){return r.jsxs("section",{className:"relative pt-40 pb-28 overflow-hidden bg-gradient-to-b from-[#FFF4E3] via-[#FFFDF7] to-[#FFFDF7]",children:[r.jsx("div",{className:"grain"}),r.jsx("svg",{className:"absolute top-28 left-[8%] w-8 h-8 animate-bird opacity-60 hidden md:block",viewBox:"0 0 24 24",fill:"none",children:r.jsx("path",{d:"M2 14c3-4 6-4 8 0 2-4 5-4 8 0",stroke:"#09162B",strokeWidth:"1.6",strokeLinecap:"round"})}),r.jsx("svg",{className:"absolute top-44 left-[18%] w-6 h-6 animate-birdDelay opacity-50 hidden md:block",viewBox:"0 0 24 24",fill:"none",children:r.jsx("path",{d:"M2 14c3-4 6-4 8 0 2-4 5-4 8 0",stroke:"#09162B",strokeWidth:"1.6",strokeLinecap:"round"})}),r.jsxs("div",{className:"max-w-7xl mx-auto px-6 lg:px-10 grid lg:grid-cols-2 gap-16 items-center",children:[r.jsxs("div",{className:"animate-fadeUp",children:[r.jsxs("div",{className:"inline-flex items-center gap-2 text-primary text-sm font-semibold bg-primary/5 border border-primary/15 px-3.5 py-1.5 rounded-full mb-6",children:[r.jsx("span",{children:"⚑"})," Welcome aboard"]}),r.jsxs("h1",{className:"font-display font-extrabold text-[44px] sm:text-6xl leading-[1.05] tracking-tight text-navy",children:["Hunt Bugs.",r.jsx("br",{}),r.jsx("span",{className:"text-primary",children:"Find Treasure."})]}),r.jsx("p",{className:"mt-6 text-lg text-navy/70 max-w-lg leading-relaxed",children:"Fast testing, automation and developer tools for QA Engineers, SDETs and developers who refuse to wait for bugs to find them first."}),r.jsx("div",{className:"mt-9 flex flex-wrap items-center gap-4",children:r.jsxs("a",{href:"#fleet",onClick:()=>aN("meet_the_fleet"),className:"btn-primary font-semibold px-7 py-3.5 rounded-full shadow-lg shadow-primary/25 hover:shadow-xl transition-all inline-flex items-center gap-2",children:["Meet the Fleet ",r.jsx("span",{children:"→"})]})}),r.jsxs("div",{className:"mt-7 flex flex-wrap items-center gap-x-7 gap-y-2 text-sm text-navy/50 font-medium",children:[r.jsx("span",{className:"flex items-center gap-1.5",children:"✓ No credit card required"}),r.jsx("span",{className:"flex items-center gap-1.5",children:"⚡ Set up in 60 seconds"}),r.jsx("span",{className:"flex items-center gap-1.5",children:"♥ Loved by engineers"})]})]}),r.jsxs("div",{className:"relative animate-fadeUp [animation-delay:.15s]",children:[r.jsxs("svg",{viewBox:"0 0 560 480",className:"w-full h-auto",children:[r.jsx("ellipse",{cx:"90",cy:"360",rx:"46",ry:"14",f
67ill:"#4DA8DA",opacity:".18"}),r.jsx("ellipse",{cx:"480",cy:"380",rx:"60",ry:"16",fill:"#4DA8DA",opacity:".18"}),r.jsx("path",{d:"M0 400 C 60 380, 120 420, 180 400 C 240 380, 300 420, 360 400 C 420 380, 480 420, 560 400 L560 480 L0 480 Z",fill:"#4DA8DA",opacity:".22"}),r.jsx("path",{d:"M0 420 C 70 405, 130 435, 200 420 C 270 405, 330 435, 400 420 C 460 405, 510 435, 560 420 L560 480 L0 480 Z",fill:"#4DA8DA",opacity:".35"}),r.jsx("path",{d:"M170 400 L390 400 L360 440 Q280 458 200 440 Z",fill:"#7A4A2B"}),r.jsx("path",{d:"M170 400 L390 400 L385 410 L175 410 Z",fill:"#9A5F35"}),r.jsx("rect",{x:"270",y:"180",width:"8",height:"220",rx:"3",fill:"#5A3A22"}),r.jsx("path",{d:"M278 186 L322 196 L278 210 Z",fill:"#09162B"}),r.jsx("circle",{cx:"292",cy:"196",r:"3.2",fill:"#FFFDF7"}),r.jsx("path",{d:"M287 199 l3 3 6-8",stroke:"#FFFDF7",strokeWidth:"1.6",fill:"none",strokeLinecap:"round"}),r.jsxs("g",{transform:"translate(280,340)",children:[r.jsxs("g",{className:"origin-center animate-spinSlow",children:[r.jsx("circle",{r:"52",fill:"none",stroke:"#5A3A22",strokeWidth:"9"}),r.jsx("circle",{r:"52",fill:"none",stroke:"#7A4A2B",strokeWidth:"3"}),r.jsxs("g",{stroke:"#5A3A22",strokeWidth:"7",strokeLinecap:"round",children:[r.jsx("line",{x1:"0",y1:"-58",x2:"0",y2:"58"}),r.jsx("line",{x1:"-58",y1:"0",x2:"58",y2:"0"}),r.jsx("line",{x1:"-41",y1:"-41",x2:"41",y2:"41"}),r.jsx("line",{x1:"-41",y1:"41",x2:"41",y2:"-41"})]})]}),r.jsx("circle",{r:"16",fill:"#9A5F35"})]})]}),r.jsx("img",{src:ra,alt:"Captain Buggy, the PiratesOfBugs mascot, steering the ship",className:"animate-bob absolute pointer-events-none select-none",style:{width:"46%",left:"50%",top:"6%",transform:"translateX(-50%)",filter:"drop-shadow(0 18px 24px rgba(9,22,43,0.28))"}})]})]})]})}const C3=["Microsoft","Google","Amazon","Atlassian","Adobe","Spotify","Uber","Razorpay"];function P3(){return r.jsx("section",{className:"py-14 border-y border-black/5",children:r.jsxs("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:[r.jsx("p",{className:"text-center text-sm font-semibold tracking-widest text-navy/40 uppercase mb-8",children:"Trusted by engineering teams at"}),r.jsx("div",{className:"flex flex-wrap items-center justify-center gap-x-12 gap-y-6 text-navy/35 font-display font-bold text-xl",children:C3.map(e=>r.jsx("span",{children:e},e))})]})})}const T3=[{name:"Captain JSON",tag:"JSON Toolkit",description:"Format, validate, compare, convert and generate JSON with 20+ tools.",color:"#D72638",mascotSrc:Nl,href:"/captainjson",live:!0,launchLabel:"Live now"},{name:"Captain JMX",tag:"Build Smarter JMeter Test Plans",description:"Convert Postman collections and OpenAPI specs into production-ready JMeter plans.",color:"#09162B",mascotSrc:oc,href:"/captainjmx",live:!1},{name:"Bug Capsule",tag:"Bug Reproduction",description:'Record a browser bug once, replay it anywhere — no more "cannot reproduce."',color:"#D72638",mascotSrc:Sl,href:"/bugcapsule",live:!1},{name:"Captain Capture",tag:"Test Evidence",description:"Numbered, named, highlighted screenshots — your test report writes itself.",color:"#09162B",mascotSrc:Cl,href:"/captaincapture",live:!1},{name:"Captain Spyglass",tag:"Alignment Inspector",description:"Alignment guides on any live page — then screenshot it with the overlay baked in.",color:"#4DA8DA",mascotSrc:Pl,href:"/captainspyglass",live:!0,launchLabel:"Live now"},{name:"Captain Octopus",tag:"Bug Capture",description:"Record a bug once and hand devs a replayable session with console, network & steps.",color:"#D72638",mascotSrc:Ua,href:"/captainoctopus",live:!1}],E3=[...T3].sort((e,t)=>Number(t.live)-Number(e.live));function _3({member:e}){const t=e.live&&e.href,n=r.jsxs(r.Fragment,{children:[e.launchLabel&&r.jsxs("span",{className:"inline-flex items-center gap-1.5 bg-success/10 text-success text-[11px] font-bold px-3 py-1 rounded-full mb-4 w-fit",children:["🚀 ",e.launchLabel]}),e.mascotSrc?r.jsx("div",{className:"badge-icon w-24 h-24 rounded-2xl flex items-center justify-center mb-5 overflow-hidden",style:{background:`linear-gradient(160deg, ${e.color}18, ${e.color}08)`},children:r.jsx("img",{src:e.mascotSrc,alt:`${e.name} logo`,className:`w-full h-full object-contain p-1.5 ${t?"":"grayscale opacity-60"}`,loading:"lazy"})}
67):r.jsx("div",{className:"badge-icon w-14 h-14 rounded-2xl flex items-center justify-center mb-5",style:{background:t?e.color:"#9CA3AF"},children:r.jsx("svg",{width:"26",height:"26",viewBox:"0 0 24 24",fill:"none",dangerouslySetInnerHTML:{__html:e.iconPaths??""}})}),r.jsxs("h3",{className:"font-display font-semibold text-lg text-navy flex items-center gap-2",children:[e.name,e.badge&&r.jsx("span",{className:"text-[10px] font-bold bg-primary/10 text-primary px-2 py-0.5 rounded-full tracking-wide",children:e.badge})]}),r.jsx("p",{className:"text-xs font-semibold text-primary/70 uppercase tracking-wide mt-0.5",children:e.tag}),r.jsx("p",{className:"text-navy/60 text-sm mt-3 leading-relaxed",children:e.description}),t?r.jsxs("span",{className:"inline-flex items-center gap-1.5 text-primary font-semibold text-sm mt-5 group",children:["Explore ",r.jsx("span",{className:"transition-transform group-hover:translate-x-1",children:"→"})]}):r.jsx("span",{className:"inline-flex items-center gap-1.5 text-navy/40 font-semibold text-xs mt-5 bg-navy/5 px-2.5 py-1 rounded-full",children:"⚓ Coming Soon"})]});return t?r.jsx(V,{to:e.href,onClick:()=>Nu(e.name,e.href),className:"crew-card bg-white rounded-3xl border border-black/5 p-7 shadow-[0_6px_20px_-10px_rgba(9,22,43,0.08)] block",children:n}):r.jsx("div",{className:"bg-white rounded-3xl border border-black/5 p-7 shadow-[0_6px_20px_-10px_rgba(9,22,43,0.08)] opacity-75",children:n})}function A3(){return r.jsx("section",{id:"fleet",className:"py-28",children:r.jsxs("div",{className:"max-w-7xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"text-center max-w-2xl mx-auto mb-16",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"⚑ Meet the Fleet"}),r.jsx("h2",{className:"font-display font-bold text-4xl sm:text-5xl text-navy mt-3 tracking-tight",children:"Powerful tools for every mission"}),r.jsx("p",{className:"text-navy/60 mt-4 text-lg",children:"Every tool in the fleet is built by engineers, for the engineers who refuse to ship blind."})]}),r.jsx("div",{className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-6",children:E3.map(e=>r.jsx(_3,{member:e},e.name))})]})})}const F3=[{name:"Captain",description:"The AI agent that charts the whole voyage.",color:"primary",iconPaths:'<path d="M4 20c2-6 4-9 8-9s6 3 8 9" stroke="#FFFDF7" stroke-width="1.8" stroke-linecap="round" fill="none"/><circle cx="12" cy="8" r="3.4" fill="#FFFDF7"/>'},{name:"Navigator",description:"Plots stable selectors so tests never drift.",color:"sea",iconPaths:'<circle cx="12" cy="12" r="9" stroke="#FFFDF7" stroke-width="1.8"/><path d="M15 9l-2 6-6 2 2-6z" fill="#FFFDF7"/>'},{name:"Explorer",description:"Scouts every screen for hidden treasure — bugs.",color:"gold",iconPaths:'<circle cx="10" cy="10" r="6" stroke="#09162B" stroke-width="1.8"/><line x1="15" y1="15" x2="20" y2="20" stroke="#09162B" stroke-width="1.8" stroke-linecap="round"/>'},{name:"Engineer",description:"Keeps the ship running under real-world load.",color:"primary",iconPaths:'<path d="M14 4l-2 2 6 6-2 2-6-6-2 2 8 8 3-3 1-5-3-3z" stroke="#FFFDF7" stroke-width="1.4" fill="none" stroke-linejoin="round"/>'},{name:"Treasurer",description:"Logs every finding into one clear harbor report.",color:"sea",iconPaths:'<rect x="4" y="9" width="16" height="10" rx="1.5" stroke="#FFFDF7" stroke-width="1.8"/><path d="M4 9l3-4h10l3 4" stroke="#FFFDF7" stroke-width="1.8" fill="none"/>'}],M3={primary:"bg-primary",sea:"bg-sea",gold:"bg-gold"};function D3(){return r.jsxs("section",{className:"py-28 bg-navy relative overflow-hidden",children:[r.jsx("div",{className:"absolute inset-0 opacity-[.06]",style:{backgroundImage:"radial-gradient(circle at 20% 20%, white 1px, transparent 1px)",backgroundSize:"26px 26px"}}),r.jsx("div",{className:"absolute top-16 left-[12%] w-1.5 h-1.5 rounded-full bg-gold animate-twinkle"}),r.jsx("div",{className:"absolute top-32 left-[70%] w-1.5 h-1.5 rounded-full bg-gold animate-twinkle",style:{animationDelay:".7s"}}),r.jsx("div",{className:"absolute top-52 left-[45%] w-1 h-1 rounded-full bg-gold animate-twinkle",style:{animationDelay:"1.3s"}}),r.jsxs("div",{className:"max-w-7xl mx-auto px-6 lg:px-10 relative",children:[r.jsxs("div",{className:"text-center max-w-2xl mx-auto mb-16",children:[r.jsx("span",{className:"text-gold font-semibold text-sm tracking-widest uppercase",children:"Every Great Crew Needs Specialists"}),r.jsx("h2",{className:"font-display font-bold text-4xl sm:text-5xl text-white mt-3 tracking-tight",children:"Five roles. One mission."})]}),r.jsxs("div",{className:"relative overflow-x-auto scrollbar-hide",children:[r.jsx("svg",{className:"absolute top-[52px] left-0 w-full h-6 hidden md:block",viewBox:"0 0 1000 20",preserveAspectRatio:"none",children:r.jsx("line",{x1:"20",y1:"10",x2:"980",y2:"10",stroke:"#F6B73C",strokeWidth:"2",strokeDasharray:"8 8",className:"anim-dash"})}
vendor: 5,142 bytes, line 67
67),r.jsx("div",{className:"grid grid-cols-5 gap-6 min-w-[820px] md:min-w-0 relative",children:F3.map(e=>r.jsxs("div",{className:"text-center",children:[r.jsx("div",{className:`w-16 h-16 mx-auto rounded-full ${M3[e.color]} flex items-center justify-center border-4 border-navy shadow-lg relative z-10`,children:r.jsx("svg",{width:"28",height:"28",viewBox:"0 0 24 24",fill:"none",dangerouslySetInnerHTML:{__html:e.iconPaths}})}),r.jsx("h3",{className:"font-display font-semibold text-white mt-4",children:e.name}),r.jsx("p",{className:"text-white/50 text-sm mt-1.5 px-2",children:e.description})]},e.name))})]})]})]})}const O3=[{title:"AI Powered",description:"Intelligent automation that learns.",bg:"#EDE9FE",iconColor:"#7C3AED",iconPaths:'<circle cx="12" cy="8" r="3.4" stroke="#7C3AED" stroke-width="1.6"/><path d="M4 20c2-6 4-9 8-9s6 3 8 9" stroke="#7C3AED" stroke-width="1.6" fill="none" stroke-linecap="round"/>'},{title:"Lightning Fast",description:"Performance that never slows you down.",bg:"#FEF3C7",iconColor:"#D97706",iconPaths:'<path d="M13 2L4 14h6l-1 8 9-12h-6l1-8z" fill="#D97706"/>'},{title:"Works Everywhere",description:"Local, CI/CD, cloud — we've got you.",bg:"#DBEAFE",iconColor:"#2563EB",iconPaths:'<circle cx="12" cy="12" r="9" stroke="#2563EB" stroke-width="1.6"/><path d="M3 12h18M12 3c2.5 2.5 2.5 15.5 0 18M12 3c-2.5 2.5-2.5 15.5 0 18" stroke="#2563EB" stroke-width="1.4" fill="none"/>'},{title:"Integrates Seamlessly",description:"Playwright, Selenium, Cypress, Postman & more.",bg:"#D1FAE5",iconColor:"#059669",iconPaths:'<rect x="4" y="4" width="7" height="7" rx="1.5" stroke="#059669" stroke-width="1.6"/><rect x="13" y="13" width="7" height="7" rx="1.5" stroke="#059669" stroke-width="1.6"/><path d="M11 7h6M7 11v6" stroke="#059669" stroke-width="1.4"/>'},{title:"Enterprise Ready",description:"Security, compliance & team management.",bg:"#FFE4D6",iconColor:"#C2410C",iconPaths:'<rect x="4" y="7" width="16" height="13" rx="2" stroke="#C2410C" stroke-width="1.6"/><path d="M8 7V5a4 4 0 018 0v2" stroke="#C2410C" stroke-width="1.6" fill="none"/>'},{title:"Developer First",description:"Clean APIs, CLI & extensibility.",bg:"#FCE7F3",iconColor:"#DB2777",iconPaths:'<path d="M8 3l1 4-4 1 4 1-1 4 3-3 3 3-1-4 4-1-4-1 1-4-3 3z" stroke="#DB2777" stroke-width="1.3" fill="none" stroke-linejoin="round"/>'}];function R3(){return r.jsx("section",{id:"features",className:"py-28",children:r.jsxs("div",{className:"max-w-7xl mx-auto px-6 lg:px-10 grid lg:grid-cols-2 gap-16 items-center",children:[r.jsx("div",{className:"animate-fadeUp",children:r.jsxs("svg",{viewBox:"0 0 480 420",className:"w-full h-auto",children:[r.jsx("ellipse",{cx:"240",cy:"380",rx:"200",ry:"20",fill:"#4DA8DA",opacity:".15"}),r.jsxs("g",{className:"animate-bobSlow",children:[r.jsx("rect",{x:"160",y:"120",width:"160",height:"200",rx:"18",fill:"white",stroke:"#09162B",strokeOpacity:".08",strokeWidth:"1.5"}),r.jsx("rect",{x:"180",y:"145",width:"120",height:"14",rx:"4",fill:"#D72638",opacity:".85"}),r.jsx("rect",{x:"180",y:"170",width:"90",height:"10",rx:"4",fill:"#09162B",opacity:".12"}),r.jsx("rect",{x:"180",y:"188",width:"100",height:"10",rx:"4",fill:"#09162B",opacity:".12"}),r.jsx("circle",{cx:"240",cy:"240",r:"34",fill:"#F6B73C",opacity:".9"}),r.jsx("path",{d:"M228 240l8 8 16-18",stroke:"#09162B",strokeWidth:"4",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"}),r.jsx("rect",{x:"180",y:"285",width:"60",height:"10",rx:"4",fill:"#4DA8DA",opacity:".5"}),r.jsx("rect",{x:"248",y:"285",width:"52",height:"10",rx:"4",fill:"#16A34A",opacity:".5"})]}),r.jsxs("g",{transform:"translate(90,300)",children:[r.jsx("ellipse",{cx:"0",cy:"0",rx:"20",ry:"16",fill:"#4DA8DA",opacity:".55"}),r.jsx("path",{d:"M-16 8q-4 12 4 14M-6 12q-2 12 6 12M6 12q4 12 -2 14M16 8q6 10 -2 14",stroke:"#4DA8DA",strokeWidth:"3",fill:"none",strokeLinecap:"round",opacity:".55"}),r.jsx("circle",{cx:"-6",cy:"-2",r:"2",fill:"#09162B"}),r.jsx("circle",{cx:"6",cy:"-2",r:"2",fill:"#09162B"})]})]})}),r.jsxs("div",{className:"animate-fadeUp [animation-delay:.1s]",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"Why engineers love PiratesOfBugs"}),r.jsx("h2",{className:"font-display font-bold text-4xl sm:text-5xl text-navy mt-3 tracking-tight leading-tight",children:"Built for modern engineering teams"}),r.jsx("p",{className:"text-navy/60 mt-5 text-lg leading-relaxed",children:"One connected toolkit that fits the stack you already have — no new workflow to learn, no plugins to fight with."}),r.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-4 mt-9",children:O3.map(e=>r.jsxs("div",{className:"bg-white border border-black/5 rounded-2xl p-4",children:[r.jsx("div",{className:"w-9 h-9 rounded-xl flex items-center justify-center mb-3",style:{background:e.bg},children:r.jsx("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",dangerouslySetInnerHTML:{__html:e.iconPaths}})}),r.jsx("div",{className:"font-display font-semibold text-navy text-sm",children:e.title}),r.jsx("p",{className:"text-navy/50 text-xs mt-1 leading-relaxed",children:e.description})]},e.title))})]})]})})}
67const L3=[{number:1,title:"Choose Your Tool",description:"Pick the right crew member for the mission ahead."},{number:2,title:"Hunt Bugs",description:"Let the crew scan, test and surface what's hidden."},{number:3,title:"Find Treasure",description:"Turn every finding into a clear, actionable report."},{number:4,title:"Ship Faster",description:"Release with confidence, every single time."}];function I3(){return r.jsx("section",{id:"journey",className:"py-28 bg-[#FFF7EA] relative overflow-hidden",children:r.jsxs("div",{className:"max-w-6xl mx-auto px-6 lg:px-10 relative",children:[r.jsxs("div",{className:"text-center max-w-2xl mx-auto mb-20",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"How it works"}),r.jsx("h2",{className:"font-display font-bold text-4xl sm:text-5xl text-navy mt-3 tracking-tight",children:"Chart Your Course"})]}),r.jsxs("div",{className:"relative",children:[r.jsx("svg",{className:"absolute top-8 left-0 w-full h-10 hidden md:block",viewBox:"0 0 1000 40",preserveAspectRatio:"none",children:r.jsx("path",{d:"M40 20 Q 250 -10 500 20 T 960 20",stroke:"#D72638",strokeWidth:"2",strokeDasharray:"8 10",fill:"none",className:"anim-dash",opacity:".5"})}),r.jsx("div",{className:"grid sm:grid-cols-2 lg:grid-cols-4 gap-8 relative",children:L3.map((e,t)=>r.jsxs("div",{className:"text-center animate-fadeUp",style:{animationDelay:`${t*.1}s`},children:[r.jsx("div",{className:"w-16 h-16 mx-auto rounded-2xl bg-white shadow-md flex items-center justify-center font-display font-bold text-primary text-xl border border-black/5",children:e.number}),r.jsx("h3",{className:"font-display font-semibold text-navy mt-5",children:e.title}),r.jsx("p",{className:"text-navy/60 text-sm mt-2",children:e.description})]},e.number))})]})]})})}const B3=[{quote:"We used to wait for users to report bugs. Now we find them before a single release goes out.",name:"Rahul Sharma",role:"QA Lead, Fintech Co.",initials:"RS",accent:"primary"},{quote:"Our test suite runs 10x faster and the whole team actually enjoys using it. That's rare.",name:"Sneha Verma",role:"Eng. Manager, Retail Co.",initials:"SV",accent:"sea"},{quote:"Finally, one toolkit instead of twelve tabs. Onboarding new SDETs takes a day, not a month.",name:"Arjun Patel",role:"SDET, Cloud Platform Co.",initials:"AP",accent:"gold"}],V3={primary:{bg:"bg-primary/10",text:"text-primary"},sea:{bg:"bg-sea/10",text:"text-sea"},gold:{bg:"bg-gold/20",text:"text-[#8a5a00]"}};function U3(){return r.jsx("section",{className:"py-28",children:r.jsxs("div",{className:"max-w-7xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"text-center max-w-2xl mx-auto mb-16",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"Captain's Logs"}),r.jsx("h2",{className:"font-display font-bold text-4xl sm:text-5xl text-navy mt-3 tracking-tight",children:"Loved by engineers worldwide"})]}),r.jsx("div",{className:"grid md:grid-cols-3 gap-6",children:B3.map(e=>{const t=V3[e.accent];return r.jsxs("div",{className:"bg-white rounded-3xl p-7 border border-black/5 shadow-[0_8px_24px_-10px_rgba(9,22,43,0.10)] relative",children:[r.jsx("span",{className:"text-4xl text-gold font-display leading-none",children:'"'}),r.jsx("p",{className:"text-navy/80 mt-2 leading-relaxed",children:e.quote}),r.jsxs("div",{className:"flex items-center gap-3 mt-6",children:[r.jsx("div",{className:`w-10 h-10 rounded-full ${t.bg} flex items-center justify-center font-display font-bold ${t.text}`,children:e.initials}),r.jsxs("div",{children:[r.jsx("div",{className:"font-semibold text-navy text-sm",children:e.name}),r.jsx("div",{className:"text-navy/50 text-xs",children:e.role})]})]})]},e.name)})})]})})}function z3(){return r.jsx("section",{id:"community",className:"py-28 bg-navy",children:r.jsxs("div",{className:"max-w-6xl mx-auto px-6 lg:px-10 text-center",children:[r.jsx("span",{className:"text-gold font-semibold text-sm tracking-widest uppercase",children:"Join the fleet"}),r.jsx("h2",{className:"font-display font-bold text-4xl sm:text-5xl text-white mt-3 tracking-tight",children:"Join bug hunters"}),r.jsx("p",{className:"text-white/50 mt-4 text-lg max-w-xl mx-auto",children:"Trade findings, ship faster, and never sail alone."}
67),r.jsx("div",{className:"grid grid-cols-2 md:grid-cols-5 gap-4 mt-14",children:xi.map(e=>{const t=Lv[e.name];return r.jsxs("a",{href:e.href,target:"_blank",rel:"noopener noreferrer",className:"group bg-white/5 hover:bg-white/10 border border-white/10 hover:border-white/25 rounded-2xl p-6 transition-all flex flex-col items-center gap-3",children:[r.jsx("span",{className:"w-10 h-10 rounded-full bg-white flex items-center justify-center shadow-sm transition-all duration-200 group-hover:scale-110 group-hover:shadow-lg group-hover:shadow-black/20",children:t&&r.jsx(t,{className:"w-5 h-5 text-navy transition-colors group-hover:text-primary"})}),r.jsx("div",{className:"text-white font-display font-semibold text-sm",children:e.name})]},e.name)})})]})})}const W3="/assets/footer-banner-CvJGF2s5.webp";function $3(){return r.jsx("section",{className:"relative bg-navy",children:r.jsxs("div",{className:"relative w-full overflow-hidden",style:{aspectRatio:"2034 / 773"},children:[r.jsx("img",{src:W3,alt:"Pirate ship sailing toward the horizon at sunset",className:"absolute inset-0 w-full h-full object-cover",loading:"lazy",width:2034,height:773}),r.jsx("div",{className:"absolute inset-0 pointer-events-none",style:{background:"linear-gradient(to bottom, transparent 55%, #09162B 100%)"}})]})})}const pn="https://piratesofbugs.com",gi="Pirates of Bugs",q3=`${pn}/og-default.jpg`;function nt(e,t,n){let s=document.querySelector(`meta[${e}="${t}"]`);const a=!!s,i=(s==null?void 0:s.getAttribute("content"))??null;return s||(s=document.createElement("meta"),s.setAttribute(e,t),document.head.appendChild(s)),s.setAttribute("content",n),()=>{s&&(a&&i!==null?s.setAttribute("content",i):a||s.remove())}}function H3(e,t){let n=document.querySelector(`link[rel="${e}"]`);const s=!!n,a=(n==null?void 0:n.getAttribute("href"))??null;return n||(n=document.createElement("link"),n.setAttribute("rel",e),document.head.appendChild(n)),n.setAttribute("href",t),()=>{n&&(s&&a!==null?n.setAttribute("href",a):s||n.remove())}}function Je(e){w.useEffect(()=>{const t=[],n=`${pn}${e.path}`,s=e.raw?e.title:`${e.title} | ${gi}`,a=e.image??q3,i=document.title;return document.title=s,t.push(()=>{document.title=i}),t.push(nt("name","description",e.description)),e.keywords&&t.push(nt("name","keywords",e.keywords)),t.push(nt("name","robots",e.noindex?"noindex, nofollow":"index, follow")),t.push(H3("canonical",n)),t.push(nt("property","og:title",s)),t.push(nt("property","og:description",e.description)),t.push(nt("property","og:url",n)),t.push(nt("property","og:type",e.ogType??"website")),t.push(nt("property","og:site_name",gi)),t.push(nt("property","og:image",a)),t.push(nt("name","twitter:card","summary_large_image")),t.push(nt("name","twitter:title",s)),t.push(nt("name","twitter:description",e.description)),t.push(nt("name","twitter:image",a)),()=>{t.forEach(o=>o())}},[e.title,e.description,e.path,e.image,e.noindex,e.ogType,e.keywords])}function gn(e){w.useEffect(()=>{const t=e.map(n=>{const s=document.createElement("script");return s.type="application/ld+json",s.text=JSON.stringify(n),document.head.appendChild(s),s});return()=>{t.forEach(n=>n.remove())}},[JSON.stringify(e)])}const J3={title:"Pirates of Bugs — Testing, Automation & Developer Tools",description:"Pirates of Bugs builds fast testing, automation and developer tools — Captain JSON, Captain JMX, Bug Capsule, Captain Capture and Captain Spyglass. Chrome extensions and web tools for QA engineers, SDETs and developers.",keywords:"Pirates of Bugs, QA testing tools, developer tools, Chrome extensions for QA, SDET tools, Captain JSON, Captain JMX, Bug Capsule, Captain Capture, Captain Spyglass",path:"/",raw:!0},Wf={title:"Captain JSON — JSON Viewer, Formatter, Validator & Developer Toolkit",description:"Captain JSON is a powerful JSON toolkit Chrome extension for developers, QA engineers and SDETs — view, format, validate, compare, repair, query and convert JSON with 20+ developer tools.",keywords:"Captain JSON, JSON viewer, JSON formatter, JSON validator, JSON compare, JSON repair, JSONPath, JSON toolkit, JSON Chrome extension, Pirates of Bugs",path:"/captainjson"},$f={title:"Captain JMX — Postman & OpenAPI to JMeter Converter",description:"Captain JMX converts Postman collections and OpenAPI specs 
67into production-ready Apache JMeter test plans — including Postman scripts to Groovy — for load and performance testing.",keywords:"Captain JMX, Postman to JMeter, OpenAPI to JMeter, JMeter converter, load testing, performance testing, Pirates of Bugs",path:"/captainjmx"},qf={title:"Bug Capsule — Record a Browser Bug Once, Replay It Anywhere",description:'Bug Capsule is a Chrome extension that records a browser bug into a portable, replayable file — testers capture it once, developers replay it against their own build. No more "cannot reproduce."',keywords:"Bug Capsule, bug reproduction, browser bug recorder, replay bug, QA bug reporting, Chrome extension, Pirates of Bugs",path:"/bugcapsule"},Hf={title:"Captain Capture — Test Evidence & Screenshot Documentation",description:"Record a manual test in Chrome and get numbered, named, highlighted screenshots plus a PDF, Word or ZIP report — sensitive fields masked. A free test-evidence tool for QA engineers.",keywords:"Captain Capture, test evidence, screenshot documentation, QA screenshots, test report generator, manual testing, Chrome extension, Pirates of Bugs",path:"/captaincapture"},Jf={title:"Captain Spyglass — Alignment Inspector & Screenshot Tool for the Web",description:"Captain Spyglass is a Chrome extension that overlays alignment guides, a center cross and a column grid on any live page, inspects element edges on hover, then screenshots the page with the overlay baked in. 100% local.",keywords:"Captain Spyglass, alignment inspector, element inspector, pixel ruler, screenshot annotation, web design QA, Chrome extension, Pirates of Bugs",path:"/captainspyglass"},Qf={title:"Captain Octopus — Local-First Bug Capture & Reporting",description:"Captain Octopus is a Chrome extension that records a bug into a replayable session with console, network and reproduction steps — redacted on your device. Nothing is uploaded.",keywords:"Captain Octopus, bug capture, bug reporting, session replay, reproduction steps, local-first, privacy-first, Chrome extension, Pirates of Bugs",path:"/captainoctopus"},Q3={title:"Blog",description:"Testing, automation and developer tooling tips from the Pirates of Bugs crew — guides, deep-dives and release notes for QA engineers, SDETs and developers.",keywords:"Pirates of Bugs blog, QA testing blog, test automation blog, developer tools blog, SDET",path:"/blog"},G3=xi.map(e=>e.href);function Y3(){return{"@context":"https://schema.org","@type":"Organization",name:gi,url:`${pn}/`,logo:`${pn}/logo.png`,description:"Pirates of Bugs builds fast testing, automation and developer tools — including Captain JSON, Captain JMX, Bug Capsule, Captain Capture and Captain Spyglass — for QA engineers, SDETs and software developers.",sameAs:G3}}function Z3(){return{"@context":"https://schema.org","@type":"WebSite",name:gi,url:`${pn}/`,description:"Pirates of Bugs builds fast testing, automation and developer tools — including Captain JSON, Captain JMX, Bug Capsule, Captain Capture and Captain Spyglass — for QA engineers, SDETs and software developers."}}function aa({name:e,description:t,path:n,applicationCategory:s="DeveloperApplication",operatingSystem:a="Chrome, Chromium-based browsers",isFree:i=!0}){const o={"@context":"https://schema.org","@type":"SoftwareApplication",name:e,description:t,url:`${pn}${n}`,applicationCategory:s,operatingSystem:a};return i&&(o.offers={"@type":"Offer",price:"0",priceCurrency:"USD"}),o}function is(e){return{"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:e.map((t,n)=>({"@type":"ListItem",position:n+1,name:t.name,item:`${pn}${t.path}`}))}}function K3({headline:e,description:t,url:n,image:s,datePublished:a,dateModified:i,authorName:o,authorUrl:l}){const c={"@context":"https://schema.org","@type":"Article",headline:e,description:t,mainEntityOfPage:{"@type":"WebPage","@id":n},url:n,datePublished:a,dateModified:i??a,author:{"@type":"Person",name:o,...l?{url:l}:{}},publisher:{"@type":"Organization",name:gi,logo:{"@type":"ImageObject",url:`${pn}/logo.png`}}};return s&&(c.image=s),c}function X3(){return Je(J3),gn([Y3(),Z3()]),r.jsxs(r.Fragment,{children:[r.jsx(qe,{}),r.jsxs("main",{children:[r.jsx(S3,{}),r.jsx(P3,{}),r.jsx(A3,{}),r.jsx(D3,{}),r.jsx(R3,{}),r.jsx(I3,{}),r.jsx(U3,{}),r.jsx(z3,{}),r.jsx($3,{})]}),r.jsx(He,{})]})}const e5="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='iso-8859-1'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%2
670www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20height='800px'%20width='800px'%20version='1.1'%20id='_x36_'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20viewBox='0%200%20512%20512'%20xml:space='preserve'%3e%3cg%3e%3cg%3e%3cpath%20style='fill:%23D24441;'%20d='M480.759,133.469H275.417c-6.339-1.029-12.85-1.541-19.446-1.541%20c-68.533,0-124.045,55.512-124.045,124.045c0,25.784,7.796,49.685,21.246,69.56L10.537,182.896C42.062,77.1,139.978,0,255.971,0%20c52.085,0,100.486,15.592,140.921,42.319c28.869,19.103,53.627,43.776,72.645,72.645%20C473.563,120.96,477.246,127.129,480.759,133.469z'/%3e%3cpath%20style='fill:%234CB566;'%20d='M325.532,358.771L182.897,501.405c-20.217-5.996-39.406-14.477-57.225-25.102%20c-37.094-21.929-68.105-52.941-90.035-90.033C12.935,348.063,0,303.601,0,255.972c0-25.359,3.684-49.858,10.537-73.076%20l142.634,142.636c22.273,32.896,60.052,54.568,102.799,54.568C281.756,380.1,305.657,372.219,325.532,358.771z'/%3e%3cpath%20style='fill:%23D5CB44;'%20d='M275.395,133.442c59.299,9.325,104.657,60.639,104.657,122.557%20c0,42.759-21.63,80.462-54.543,102.775L182.888,501.396c23.16,6.887,47.686,10.603,73.083,10.603c141.385,0,256-114.615,256-256%20c0-44.4-11.309-86.158-31.195-122.557H275.395z'/%3e%3cpath%20style='fill:%23FFFFFF;'%20d='M275.417,133.469c-6.339-1.029-12.85-1.541-19.446-1.541c-68.533,0-124.045,55.512-124.045,124.045%20c0,25.784,7.796,49.685,21.246,69.56c22.273,32.896,60.052,54.568,102.799,54.568c25.785,0,49.686-7.881,69.561-21.329%20c32.896-22.274,54.484-60.054,54.484-102.799C380.015,194.119,334.697,142.805,275.417,133.469z%20M255.971,356.542%20c-55.426,0-100.573-45.058-100.573-100.57c0-55.428,45.146-100.574,100.573-100.574c55.426,0,100.572,45.146,100.572,100.574%20C356.543,311.483,311.396,356.542,255.971,356.542z'/%3e%3cpath%20style='fill:%235991CD;'%20d='M155.399,256.001c0,55.454,45.117,100.571,100.571,100.571s100.571-45.117,100.571-100.571%20S311.424,155.43,255.97,155.43S155.399,200.547,155.399,256.001z'/%3e%3c/g%3e%3cpath%20style='fill:none;'%20d='M255.971,155.398c-55.426,0-100.573,45.146-100.573,100.574c0,0,0.001,0.012,0.001,0.021%20c0.005-55.451,45.12-100.564,100.571-100.564c27.731,0,52.876,11.283,71.087,29.498l0.005-0.004%20C308.846,166.694,283.695,155.398,255.971,155.398z'/%3e%3cpath%20style='fill:none;'%20d='M380.015,255.972c0,27.352-8.871,52.646-23.856,73.17c15.004-20.513,23.893-45.78,23.893-73.143%20c0-34.26-13.929-65.235-36.383-87.684l-0.019,0.019C366.094,190.781,380.015,221.743,380.015,255.972z'/%3e%3cpath%20style='fill:none;'%20d='M356.541,256.001c0,3.459-0.177,6.879-0.519,10.248c0.344-3.38,0.521-6.808,0.521-10.277%20c0-27.704-11.278-52.837-29.48-71.049l-0.005,0.004C345.265,203.137,356.541,228.279,356.541,256.001z'/%3e%3cpath%20style='opacity:0.06;fill:%23040000;'%20d='M480.744,133.441c-3.509-6.329-7.187-12.49-11.207-18.478%20c-9.496-14.414-20.425-27.783-32.581-39.934l-93.286,93.285c22.453,22.45,36.383,53.424,36.383,87.684%20c0,27.363-8.889,52.63-23.893,73.143c14.985-20.523,23.856-45.818,23.856-73.17c0-34.229-13.921-65.191-36.364-87.639%20l-16.588,16.59c18.202,18.212,29.48,43.345,29.48,71.049c0,3.47-0.177,6.898-0.521,10.277c0.342-3.369,0.519-6.789,0.519-10.248%20c0-27.722-11.277-52.864-29.484-71.074L74.991,436.994c15.125,15.121,32.144,28.35,50.681,39.309%20c17.819,10.625,37.008,19.105,57.225,25.102l0.005-0.004C206.059,508.284,230.579,512,255.971,512%20c141.385,0,255.999-114.616,255.999-256.001c0-44.4-11.309-86.158-31.195-122.557H480.744z'/%3e%3c/g%3e%3c/svg%3e",t5="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20xmlns='http://www.w3.org/2000/svg'%20aria-label='Edge'%20role='img'%20viewBox='0%200%20512%20512'%3e%3crect%20width='512'%20height='512'%20rx='15%25'%20fill='%23ffffff'/%3e%3cradialGradient%20id='a'%20cx='.6'%20cy='.5'%3e%3cstop%20offset='.8'%20stop-color='%23148'/%3e%3cstop%20offset='1'%20stop-color='%23137'/%3e%3c/radialGradient%3e%3cradialGradient%20id='b'%20cx='.5'%20cy='.6'%20fx='.2'%20fy='.6'%3e%3cstop%20offset='.8'%20stop-color='%2338c'/%3e%3cstop%20offset='1'%20stop-color='%23269'/%3e%3c/radialGradient%3e%3clinearGradient%20id='c'%20y1='.5'%20y2='1'%3e%3cstop%20offset='.1'%20stop-color='%235ad'/%3e%3cstop%20offset='.6'%20stop-color='%235c8'/%3e%3cstop%20offset='.8'%20stop-color='%237d5'/%3e%3c/linearGradient%3e%3cpath%20d='M439%20374c-50%2077-131%2098-163%2096-191-9-162-262-47-261-82%2052%2030%20224%20195%20157%2017-12%202
670%203%2015%208'%20fill='url(%23a)'/%3e%3cpath%20d='M311%20255c18-82-31-135-129-135S38%20212%2038%20259c0%20124%20125%20253%20287%20203-134%2039-214-116-146-210%2046-66%20123-68%20132%203%20M411%2099h1'%20fill='url(%23b)'/%3e%3cpath%20d='M39%20253C51-15%20419-30%20472%20202c14%20107-86%20149-166%20115-42-26%2026-20-3-99-48-112-251-103-264%2035'%20fill='url(%23c)'/%3e%3c/svg%3e",n5="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20width='800px'%20height='800px'%20viewBox='0%200%2032%2032'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M11.3953%2023.8859C9.84219%2022.0594%208.84688%2019.3578%208.78125%2016.3281V15.6719C8.84688%2012.6422%209.85313%209.94063%2011.3953%208.11406C13.4078%205.51094%2016.3609%204.34063%2019.6969%204.34063C21.7531%204.34063%2023.6891%204.48281%2025.3297%205.57656C22.8687%203.35625%2019.6203%202.01094%2016.0547%202H16C8.26719%202%202%208.26719%202%2016C2%2023.5031%207.90625%2029.6391%2015.3328%2029.9891C15.5516%2030%2015.7812%2030%2016%2030C19.5875%2030%2022.8578%2028.6547%2025.3297%2026.4344C23.6891%2027.5281%2021.8625%2027.5719%2019.8062%2027.5719C16.4813%2027.5828%2013.3969%2026.5%2011.3953%2023.8859Z'%20fill='url(%23paint0_linear_87_7112)'/%3e%3cpath%20d='M11.3955%208.11426C12.6752%206.59395%2014.3377%205.68613%2016.1533%205.68613C20.233%205.68613%2023.5361%2010.3018%2023.5361%2016.0111C23.5361%2021.7205%2020.233%2026.3361%2016.1533%2026.3361C14.3377%2026.3361%2012.6861%2025.4174%2011.3955%2023.908C13.408%2026.5111%2016.3939%2028.1736%2019.7189%2028.1736C21.7643%2028.1736%2023.6893%2027.5502%2025.3299%2026.4564C28.1955%2023.8752%2030.0002%2020.1455%2030.0002%2016.0002C30.0002%2011.8549%2028.1955%208.1252%2025.3299%205.56582C23.6893%204.47207%2021.7752%203.84863%2019.7189%203.84863C16.383%203.84863%2013.3971%205.5002%2011.3955%208.11426Z'%20fill='url(%23paint1_linear_87_7112)'/%3e%3cdefs%3e%3clinearGradient%20id='paint0_linear_87_7112'%20x1='13.6655'%20y1='2.4564'%20x2='13.6655'%20y2='29.5926'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0.3'%20stop-color='%23FF1B2D'/%3e%3cstop%20offset='0.4381'%20stop-color='%23FA1A2C'/%3e%3cstop%20offset='0.5939'%20stop-color='%23ED1528'/%3e%3cstop%20offset='0.7581'%20stop-color='%23D60E21'/%3e%3cstop%20offset='0.9272'%20stop-color='%23B70519'/%3e%3cstop%20offset='1'%20stop-color='%23A70014'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint1_linear_87_7112'%20x1='20.696'%20y1='4.05613'%20x2='20.696'%20y2='28.0566'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%239C0000'/%3e%3cstop%20offset='0.7'%20stop-color='%23FF4B4B'/%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e",s5="/assets/firefox-BVdN6NU8.svg",r5="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20width='800px'%20height='800px'%20viewBox='0%200%20100%20100'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3e%3cellipse%20cx='50'%20cy='50'%20rx='20'%20ry='20'%20style='fill:%23377EF0'/%3e%3cpath%20d='M%208.5,26%20A%2048,48%200%200%201%2091.5,26%20L%2062,29.5%20A%2024,24%200%200%200%2026,50%20z'%20style='fill:%23275AB0'/%3e%3cpath%20d='M%2050,98%20A%2048,48%200%200%201%208.5,26%20L%2026,50%20A%2024,24%200%200%200%2062,70.5%20z'%20style='fill:%23659BF5'/%3e%3cpath%20d='M%2091.5,26%20A%2048,48%200%200%201%2050,98%20L%2062,70.5%20A%2024,24%200%200%200%2062,29.5%20z'%20style='fill:%23B1CDFD'/%3e%3c/svg%3e",a5="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20width='800px'%20height='800px'%20viewBox='0%200%202770%202770'%20xmlns='http://www.w3.org/2000/svg'%3e%3clinearGradient%20id='a'%20y1='51%25'%20y2='51%25'%3e%3cstop%20offset='.4'%20stop-color='%23f50'/%3e%3cstop%20offset='.6'%20stop-color='%23ff2000'/%3e%3c/linearGradient%3e%3clinearGradient%20id='b'%20x1='2%25'%20y1='51%25'%20y2='51%25'%3e%3cstop%20offset='0'%20stop-color='%23ff452a'/%3e%3cstop%20offset='1'%20stop-color='%23ff2000'/%3e%3c/linearGradient%3e%3cpath%20fill='url(%23a)'%20d='M2395%20723l60-147-170-176c-92-92-288-38-288-38l-222-252H992L769%20363s-196-53-288%2037L311%20575l60%20147-75%20218%20250%20953c52%20204%2087%20283%20234%20387l457%20310c44%2027%2098%2074%20147%2074s103-47%20147-74l457-310c147-104%20182-183%20234-387l250-953z'/%3e%3cpath%20fill='%23ffffff'%20
67d='M1935%20524s287%20347%20287%20420c0%2075-36%2094-72%20133l-215%20230c-20%2020-63%2054-38%20113%2025%2060%2060%20134%2020%20210-40%2077-110%20128-155%20120a820%20820%200%2001-190-90c-38-25-160-126-160-165s126-110%20150-124c23-16%20130-78%20132-102s2-30-30-90-88-140-80-192c10-52%20100-80%20167-105l207-78c16-8%2012-15-36-20-48-4-183-22-244-5s-163%2043-173%2057c-8%2014-16%2014-7%2062l58%20315c4%2040%2012%2067-30%2077-44%2010-117%2027-142%2027s-99-17-142-27-35-37-30-77c4-40%2048-268%2057-315%2010-48%201-48-7-62-10-14-113-40-174-57-60-17-196%201-244%206-48%204-52%2010-36%2020l207%2077c66%2025%20158%2053%20167%20105%2010%2053-47%20132-80%20192s-32%2066-30%2090%20110%2086%20132%20102c24%2015%20150%2085%20150%20124s-119%20140-159%20165a820%20820%200%2001-190%2090c-45%208-115-43-156-120-40-76-4-150%2020-210%2025-60-17-92-38-113l-215-230c-35-37-71-57-71-131s287-420%20287-420l273%2044c32%200%20103-27%20168-50%2065-20%20110-22%20110-22s44%200%20110%2022%20136%2050%20168%2050c33%200%20275-47%20275-47zm-215%201328c18%2010%207%2032-10%2044l-254%20198c-20%2020-52%2050-73%2050s-52-30-73-50a13200%2013200%200%2000-255-198c-16-12-27-33-10-44l150-80a870%20870%200%2001188-73c15%200%20110%2034%20187%2073l150%2080z'/%3e%3cpath%20fill='url(%23b)'%20d='M1999%20363l-224-253H992L769%20363s-196-53-288%2037c0%200%20260-23%20350%20123l276%2047c32%200%20103-27%20168-50%2065-20%20110-22%20110-22s44%200%20110%2022%20136%2050%20168%2050c33%200%20275-47%20275-47%2090-146%20350-123%20350-123-92-92-288-38-288-38'/%3e%3c/svg%3e",ip=[{name:"Google Chrome",icon:e5,available:!1},{name:"Microsoft Edge",icon:t5,available:!1},{name:"Opera",icon:n5,available:!1},{name:"Mozilla Firefox",icon:s5,available:!1},{name:"Chromium",icon:r5,available:!1},{name:"Brave",icon:a5,available:!1}];function ia({productName:e="This extension",browsers:t=ip}){const n=[...t].sort((s,a)=>Number(a.available)-Number(s.available));return r.jsx("section",{id:"browsers",className:"py-24",children:r.jsxs("div",{className:"max-w-6xl mx-auto px-6 lg:px-10 text-center",children:[r.jsxs("span",{className:"inline-flex items-center gap-2 bg-navy text-gold text-[11px] font-bold uppercase tracking-widest px-4 py-2 rounded-full border border-gold/30",children:[r.jsx("span",{className:"w-1 h-1 rounded-full bg-gold"}),"Cross Browser Support",r.jsx("span",{className:"w-1 h-1 rounded-full bg-gold"})]}),r.jsxs("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy mt-5 tracking-tight",children:["Available ",r.jsx("span",{className:"text-primary",children:"Across All Major Browsers"})]}),r.jsxs("p",{className:"text-navy/60 mt-3 max-w-xl mx-auto",children:[e," is built to work seamlessly across all major browsers. We’re actively expanding support for more!"]}),r.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-6 gap-5 mt-12",children:n.map(s=>{const a=r.jsxs("div",{className:`group relative bg-white rounded-2xl border p-6 flex flex-col items-center gap-3 transition-all duration-200 ${s.available?"border-success/30 shadow-[0_8px_24px_-10px_rgba(22,163,74,0.25)] hover:-translate-y-1 hover:shadow-[0_14px_30px_-10px_rgba(22,163,74,0.35)]":"border-black/5 opacity-70 hover:opacity-90"}`,children:[s.available&&r.jsx("span",{className:"absolute -top-2.5 -left-2.5 bg-success text-white text-[10px] font-bold px-2 py-1 rounded-md shadow-sm",children:"AVAILABLE"}),!s.available&&r.jsx("span",{className:"absolute -top-2.5 left-1/2 -translate-x-1/2 bg-gold/15 text-[#8a5a00] text-[10px] font-bold px-2.5 py-1 rounded-full whitespace-nowrap border border-gold/30",children:"⏳ Coming Soon"}),r.jsx("img",{src:s.icon,alt:`${s.name} logo`,className:`w-11 h-11 object-contain mt-2 transition-transform duration-200 ${s.available?"group-hover:scale-110":"grayscale group-hover:grayscale-0"}`,loading:"lazy"}),r.jsx("span",{className:"font-display font-semibold text-navy text-sm text-center",children:s.name}),s.available?r.jsxs("span",{className:"flex items-center gap-1 text-success text-xs font-semibold",children:[r.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",children:r.jsx("path",{d:"M5 13l4 4L19 7",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"})}),"Available Now"]}):r.jsx("span",{className:"text-navy/40 text-xs font-medium",children:"Coming Soon"})]});return s.available&&s.href?r.jsx("a",{href:s.href,target:"_blank",rel:"noopener noreferrer",onClick:()=>sa("install_extension",{product_name:e,browser:s.name}),className:"jmx-focus-ring rounded-2xl focus-visible:outline focus-visible:outline-2 focus-visible:outline-primary focus-visible:outline-offset-2","aria-label":`Get it on ${s.name}`,children:a},s.name):r.jsx("div",{className:"cursor-default",children:a},s.name)})})]})})}function Oi({productName:e="the product",youtubeEmbedUrl:t}){return r.jsx("section",{id:"demo",className:"py-24 bg-[#FFF7EA]",children:r.jsxs("div",{className:"max-w-4xl mx-auto px-6 lg:px-10 text-center",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"See it in action"}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy mt-3 tracking-tight",children:"Watch the demo"}),r.jsxs("p",{className:"text-navy/60 mt-3 max-w-lg mx-auto",children:["A quick walkthrough of ",e," — from install to first result."]}),r.jsx("div",{className:"mt-10 rounded-3xl overflow-hidden border border-black/5 shadow-[0_20px_50px_-20px_rgba(9,22,43,0.25)] bg-navy",children:r.jsx("div",{className:"relative w-full",style:{aspectRatio:"16 / 9"},children:t?r.jsx("iframe",{className:"absolute inset-0 w-full h-full",src:t,title:`${e} demo video`,loading:"lazy",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0}):r.jsxs("div",{className:"absolute inset-0 flex flex-col items-center justify-center gap-3 text-white/50",children:[r.jsx("span",{className:"w-16 h-16 rounded-full bg-white/10 flex items-center justify-center",children:r.jsx("svg",{width:"26",height:"26",viewBox:"0 0 24 24",fill:"none",children:r.jsx("path",{d:"M8 5v14l11-7z",fill:"
67currentColor"})})}),r.jsx("p",{className:"text-sm font-medium",children:"Demo video coming soon"})]})})})]})})}const i5="/assets/fdt-logo-1vBtbq12.webp",o5=[{name:"Fun Doo Testers",tagline:"Content & learning platform for test engineers",description:"A content and learning platform for test engineers and test services company.",logo:i5,href:"https://fundootesters.com/",ctaLabel:"Checkout Fun Doo Testers"}];function l5(e){return e<=1?"grid-cols-1 max-w-sm mx-auto":e===2?"sm:grid-cols-2 max-w-2xl mx-auto":e===4?"sm:grid-cols-2 lg:grid-cols-4":"sm:grid-cols-2 lg:grid-cols-3"}function oa({tools:e=o5}){return e.length===0?null:r.jsx("section",{className:"py-24",children:r.jsxs("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"flex items-end justify-between flex-wrap gap-4 mb-10",children:[r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy tracking-tight",children:"Recommended by amazing tools & platforms"}),r.jsx(V,{to:"/becomesponsor",className:"text-primary font-semibold text-sm hover:underline whitespace-nowrap",children:"Become a Sponsor →"})]}),r.jsx("div",{className:`grid gap-5 ${l5(e.length)}`,children:e.map(t=>r.jsxs("div",{className:"bg-white border border-black/10 rounded-2xl p-6 flex flex-col",children:[r.jsx("span",{className:"inline-flex self-start border border-black/10 rounded-xl px-4 py-3 bg-white",children:r.jsx("img",{src:t.logo,alt:t.name,className:"h-7 w-auto object-contain"})}),r.jsx("h3",{className:"font-display font-bold text-lg text-navy mt-4",children:t.name}),r.jsx("p",{className:"text-navy/50 text-sm mt-0.5",children:t.tagline}),r.jsx("p",{className:"text-navy/65 text-sm mt-4 leading-relaxed",children:t.description}),r.jsxs("a",{href:t.href,target:"_blank",rel:"noopener noreferrer",className:"mt-5 inline-flex items-center gap-2 self-start border border-navy/15 rounded-full pl-5 pr-4 py-2.5 text-sm font-semibold text-navy hover:border-navy/30 hover:bg-navy/[.02] transition-colors",children:[t.ctaLabel,r.jsx("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",children:r.jsx("path",{d:"M7 17L17 7M17 7H9M17 7V15",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})]})]},t.name))})]})})}function la({productName:e,logo:t}){return r.jsx("section",{className:"pb-24",children:r.jsx("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:r.jsxs("div",{className:"bg-white border border-black/5 rounded-3xl p-8 flex flex-col md:flex-row items-center gap-6 justify-between",children:[r.jsxs("div",{className:"flex items-center gap-4",children:[t&&r.jsx("img",{src:t,alt:e,className:"w-16 h-16 object-contain hidden sm:block"}),r.jsxs("h3",{className:"font-display font-bold text-xl sm:text-2xl text-navy",children:[e," is Free Forever ",r.jsx("span",{className:"text-primary",children:"♥"})]})]}),r.jsxs("div",{className:"flex flex-wrap gap-3",children:[r.jsx("a",{href:"#",className:"bg-gold text-navy text-sm font-semibold px-5 py-2.5 rounded-full hover:brightness-95 transition-all",children:"☕ Buy Me a Coffee"}),r.jsx(V,{to:"/becomesponsor",className:"border border-navy/15 text-navy text-sm font-semibold px-5 py-2.5 rounded-full hover:border-navy/30 transition-colors",children:"Become a Sponsor"})]})]})})})}function Iv({currentHref:e}){const t=Tl.filter(n=>n.href!==e);return t.length===0?null:r.jsx("section",{className:"pb-24",children:r.jsxs("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:[r.jsx("h2",{className:"font-display font-bold text-2xl sm:text-3xl text-navy tracking-tight text-center mb-10",children:"Explore more tools from PiratesOfBugs"}),r.jsx("div",{className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-5",children:t.map(n=>{const s=r.jsxs(r.Fragment,{children:[!n.live&&r.jsx("span",{className:"absolute top-4 right-4 text-[10px] font-bold text-navy/40 bg-navy/5 border border-black/5 px-2 py-0.5 rounded-full whitespace-nowrap",children:"⚓ Coming Soon"}),r.jsx("img",{src:n.logo,alt:"",className:`w-10 h-10 object-contain mb-3 ${n.live?"":"grayscale opacity-60"}`,loading:"lazy"}),r.jsx("div",{className:"font-display font-semibold text-navy pr-20",children:n.name}),r.jsx("p",{className:"text-navy/55 text-sm mt-1.5 leading-relaxed",children:n.tagline}),n.live&&r.jsxs("span",{className:"text-primary text-xs font-semibold mt-3 inline-flex items-center gap-1",children:["Explore ",r.jsx("span",{className:"transition-transform group-hover:translate-x-1",children:"→"})]})]});return n.live?r.jsx(V,{to:n.href,className:"group relative bg-white border border-black/5 rounded-2xl p-5 hover:border-primary/30 hover:-translate-y-0.5 hover:shadow-[0_10px_24px_-12px_rgba(9,22,43,0.15)] transition-all",children:s},n.name):r.jsx("div",{className:"relative bg-white border border-black/5 rounded-2xl p-5 opacity-70 cursor-default",children:s},n.name)})})]})})}function c5({feature:e}){const[t,n]=w.useState(!1),s=t?e.bullets:e.bullets.slice(0,4);return r.jsxs("div",{className:"bg-white rounded-3xl border border-black/5 p-7 shadow-[0_6px_20px_-10px_rgba(9,22,43,0.08)] flex flex-col",children:[r.jsx("div",{className:"w-12 h-12 rounded-2xl flex items-center justify-center mb-5",style:{background:e.color},children:r.jsx("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",dangerouslySetInnerHTML:{__html:e.iconPaths}})}),r.jsx("h3",{className:"font-display font-semibold text-lg text-navy",children:e.title}),r.jsx("p",{className:"text-navy/60 text-sm mt-2 leading-relaxed",children:e.description}),r.jsx("ul",{className:"mt-5 space-y-2 text-sm text-navy/70",children:s.map(a=>r.jsxs("li",{className:"flex gap-2",children:[r.jsx("span",{className:"text-success mt-0.5",children:"✓"}),r.jsx("span",{children:a})]},a))}),e.bullets.length>4&&r.jsx("button",{onClick:()=>n(a=>!a),className:"text-primary text-xs font-semibold mt-3 self-start hover:underline",children:t?"Show less":`+${e.bullets.length-4} more features`}),r.jsxs("div",{className:"mt-auto pt-5",children:[r.jsx("p",{className:"text-[11px] font-semibold text-navy/40 uppercase tracking-wide mb-2",children:"Perfect for"}),r.jsx("div",{className:"flex flex-wrap gap-1.5",children:e.useCases.map(a=>r.jsx("span",{className:"text-xs font-medium text-navy/70 bg-navy/5 px-2.5 py-1 rounded-full",children:a},a))})]})]})}function Ri({faqs:e}){const[t,n]=w.useState(0);return r.jsx("div",{className:"space-y-3",children:e.map((s,a)=>{const i=t===a;return r.jsxs("div",{className:"bg-white rounded-2xl border border-black/5 overflow-hidden",children:[r.jsxs("button",{onClick:()=>n(i?null:a),className:"w-full flex items-center justify-between gap-4 text-left px-6 py-5","aria-expanded":i,children:[r.jsx("span",{className:"font-display font-semibold text-navy",children:s.question}),r.jsx("span",{className:`shrink-0 w-7 h-7 rounded-full bg-navy/5 flex items-center justify-center text-navy transition-transform ${i?"rotate-45":""}`,children:"+"})]}),i&&r.jsx("div",{className:"px-6 pb-5 -mt-1 text-sm text-navy/60 leading-relaxed",children:s.answer})]},s.question)})})}const d5=[{value:"30MB+",label:"Files handled smoothly"},{value:"20",label:"Tools in one extension"},{value:"100%",label:"Runs in your browser"},{value:"0",label:"Data ever leaves your device"}],u5=[{number:1,title:"Add Captain JSON to your browser",description:"Install the extension from the Chrome Web Store — it works in any Chromium-based browser."},{number:2,title:"Pin it to your toolbar",description:"Click the puzzle-piece icon and pin Captain JSON for one-click access whenever you need it."},{number:3,title:"Paste, upload or inspect JSON",description:"Open the panel, drop in your JSON from anywhere — an API response, a file, a log — and start working."}],h5=[{label:"Fast JSON parsing",iconPaths:'<path d="M13 2L4 14h6l-1 8 9-12h-6l1-8z" fill="currentColor"/>'},{label:"Optimized for large documents",iconPaths:'<rect x="4" y="4" width="16" height="16" rx="2" stroke="currentColor" stroke-width="1.6" fill="none"/><path d="M8 9h8M8 13h8M8 17h5" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"/>'},{label:"Supports multi-megabyte files",iconPaths:'<path d="M7 3h7l5 5v13a1 1 0 01-1 1H7a1 1 0 01-1-1V4a1 1 0 011-1z" stroke="currentColor" stroke-width="1.6" fill="none" stroke-linejoin="round"/>
67<path d="M14 3v5h5" stroke="currentColor" stroke-width="1.6" fill="none"/>'},{label:"Instant search across payloads",iconPaths:'<circle cx="10" cy="10" r="6" stroke="currentColor" stroke-width="1.8"/><line x1="14.5" y1="14.5" x2="20" y2="20" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/>'},{label:"Efficient memory usage",iconPaths:'<path d="M12 3c2 3 6 6 6 10a6 6 0 01-12 0c0-4 4-7 6-10z" stroke="currentColor" stroke-width="1.6" fill="none"/>'},{label:"Runs completely in your browser",iconPaths:'<rect x="3" y="5" width="18" height="14" rx="2" stroke="currentColor" stroke-width="1.6" fill="none"/><path d="M3 9h18" stroke="currentColor" stroke-width="1.6"/>'},{label:"Your data never leaves your device",iconPaths:'<path d="M12 3l7 3v6c0 4.5-3 8-7 9-4-1-7-4.5-7-9V6z" stroke="currentColor" stroke-width="1.6" fill="none" stroke-linejoin="round"/><path d="M9 12l2 2 4-4" stroke="currentColor" stroke-width="1.6" fill="none" stroke-linecap="round" stroke-linejoin="round"/>'}],p5=[{title:"JSON Compare",description:"Instantly compare two JSON documents and identify differences with ease.",bullets:["Side-by-side comparison","Ignore whitespace differences","Ignore object key order","Auto compare while typing","Swap left and right JSON","Paste, upload or load sample JSON","Download compared JSON","Undo / redo support","Fullscreen editor"],useCases:["API response comparison","Regression testing","Configuration comparison","Contract testing","Debugging payload changes"],color:"#D72638",iconPaths:'<rect x="3" y="5" width="8" height="14" rx="1.5" stroke="white" stroke-width="1.6"/><rect x="13" y="5" width="8" height="14" rx="1.5" stroke="white" stroke-width="1.6"/><path d="M9 9l2 2-2 2M15 9l-2 2 2 2" stroke="white" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" fill="none"/>'},{title:"JSON Pretty Print",description:"Transform unreadable JSON into clean, beautifully formatted code.",bullets:["Pretty format JSON","Minify JSON","Sort object keys alphabetically","Remove empty values","Remove null values","Remove duplicate keys","Choose indentation (2, 4 spaces...)","Live formatting while typing","Copy or download formatted output"],useCases:["API debugging","Log analysis","Code reviews","Documentation","Sharing readable JSON"],color:"#4DA8DA",iconPaths:'<path d="M8 4L4 12l4 8M16 4l4 8-4 8" stroke="white" stroke-width="1.6" fill="none" stroke-linecap="round" stroke-linejoin="round"/>'},{title:"JSON Validator",description:"Validate JSON instantly and locate syntax errors with precision.",bullets:["Validate JSON syntax","Detect malformed JSON","Shows exact error location","Highlights line and column number","Fast validation","Clear error messages","Supports large JSON files"],useCases:["API request validation","Configuration files","JSON debugging","Before deploying configuration changes"],color:"#16A34A",iconPaths:'<path d="M9 12l2 2 4-4" stroke="white" stroke-width="1.8" fill="none" stroke-linecap="round" stroke-linejoin="round"/><circle cx="12" cy="12" r="9" stroke="white" stroke-width="1.6"/>'},{title:"JSONPath Query",description:"Explore and extract data from complex JSON using JSONPath expressions.",bullets:["Execute JSONPath expressions","Interactive JSON tree explorer","Click any node to generate its JSONPath","Auto execute mode","Search nodes by key or value","Expand / collapse all nodes","Query history & built-in examples","Copy or download extracted data"],useCases:["API testing","Data extraction","Automation scripting","Learning JSONPath","Debugging nested JSON"],color:"#F6B73C",iconPaths:'<circle cx="6" cy="6" r="2.5" stroke="#09162B" stroke-width="1.6"/><circle cx="6" cy="18" r="2.5" stroke="#09162B" stroke-width="1.6"/><circle cx="18" cy="12" r="2.5" stroke="#09162B" stroke-width="1.6"/><path d="M8 7l7 4M8 17l7-4" stroke="#09162B" stroke-width="1.6" fill="none"/>'},{title:"JQ Query",description:"Filter and reshape JSON using familiar jq-style expressions.",bullets:["Execute jq-like filters","Live preview & output panel","Built-in examples","Query history","Copy or download results","Lightweight interpreter for common jq operations"],useCases:["JSON filtering","Data transformation","API response cleanup","Automation workflows"],color:"#09162B",iconPaths:'<path d="M4 6h16M4 12h10M4 18h13" stroke="white" stroke-width="1.8" stroke-linecap="round"/><circle cx="19" cy="12" r="1.6" fill="white"/>'},{title:"JSON to Table",description:"Convert deeply nested JSON into structured, readable tables.",bullets:["Automatic table generation","Supports nested objects and arrays","Handles mixed JSON structures","Relational table view","Easy data exploration"],useCases:["Viewing API responses","Data analysis","Business reports","CSV preparation","Database inspection"],color:"#4DA8DA",iconPaths:'<rect x="3" y="4" width="18" height="16" rx="1.5" stroke="white" stroke-width="1.6" fill="none"/><path d="M3 9h18M3 14h18M9 4v16" stroke="white" stroke-width="1.4"/>'},{title:"JSON Escape / Unescape",description:"Convert JSON into escaped strings or restore escaped JSON back to its original format.",bullets:["Escape JSON","Unescape JSON","Live output preview","Instant conversion","Copy converted output"],useCases:["Java source code","JavaScript strings","SQL queries","Configuration files","Embedding JSON in code"],color:"#D72638",iconPaths:'<path d="M8 4L5 9l3 5M16 4l3 5-3 5" stroke="white" stroke-width="1.6" fill="none" stroke-linecap="round" stroke-linejoin="round"/><line x1="12" y1="4" x2="12" y2="20" stroke="white" stroke-width="1.4" stroke-dasharray="2 2"/>'},{title:"JSON Converter",description:"Convert JSON between multiple popular formats — XML and YAML.",bullets:["JSON → XML, JSON → YAML","XML → JSON, YAML → JSON","Auto-detect input format","Swap input / output formats","Copy or download converted output"],useCases:["Configuration migration","Kubernetes YAML","API integration","Data exchange","Documentation"],color:"#F6B73C",iconPaths:'<path d="M4 8h11M11 4l4 4-4 4" stroke="#09162B" stroke-width="1.6" fill="none" stroke-linecap="round" stroke-linejoin="round"/>
67<path d="M20 16H9M13 12l-4 4 4 4" stroke="#09162B" stroke-width="1.6" fill="none" stroke-linecap="round" stroke-linejoin="round"/>'},{title:"🔑 JWT Tokens",description:"Decode, inspect, validate and work with JWT tokens effortlessly.",bullets:["Decode JWT Header, Payload & Signature","Verify JWT signature","Support HS256, HS384 & HS512","Support RS256, RS384 & RS512","Support ES256, ES384 & ES512","Decode Base64URL values","Inspect token claims","Validate expiration (exp)","Validate issued-at (iat) and not-before (nbf) claims","Edit and regenerate JWT tokens","Generate custom JWT tokens","Copy token sections individually"],useCases:["API Authentication","Security Testing","Token Debugging","JWT Integration","Backend Development"],color:"#4F46E5",iconPaths:'<circle cx="8" cy="12" r="4" stroke="white" stroke-width="1.6"/><path d="M11.5 12H20M16 12v3.5M19 12v2.5" stroke="white" stroke-width="1.6" stroke-linecap="round"/>'},{title:"📄 JSONL Workbench",description:"Work with JSONL files for query, filter, validate and transform at scale.",bullets:["Open, view and edit JSONL files","Import .txt, .json, .csv & .xlsx","Convert JSON ↔ JSONL","Query JSONL data","Filter records using conditions","Search across large datasets","Validate each JSON object","Detect malformed JSONL records","Identify invalid line numbers","Sort and transform records","Remove duplicate records","Add, remove and rename fields","Export processed JSONL","Analyze record statistics"],useCases:["Log Analysis","Data Exploration","ETL Workflows","Large Datasets","Data Engineering"],color:"#0D9488",iconPaths:'<path d="M4 6h16M4 12h16M4 18h10" stroke="white" stroke-width="1.7" fill="none" stroke-linecap="round"/>'},{title:"📐 JSON Schema Validator",description:"Validate JSON against JSON Schema and ensure data integrity.",bullets:["Validate JSON against a JSON Schema","Support Draft-04","Support Draft-06","Support Draft-07","Support Draft 2019-09","Support Draft 2020-12","Validate required properties","Validate data types","Validate strings, numbers & arrays","Validate nested objects","Validate enums and constants","Detailed validation errors","Show exact error paths","Test with sample/example data","Visualize and explore schema structure"],useCases:["API Contract Validation","Schema Design","Data Validation","Configuration Files","OpenAPI Development"],color:"#EA580C",iconPaths:'<path d="M12 3l7 3v6c0 4.5-3 7-7 9-4-2-7-4.5-7-9V6z" stroke="white" stroke-width="1.5" fill="none" stroke-linejoin="round"/><path d="M9 12l2 2 4-4" stroke="white" stroke-width="1.6" fill="none" stroke-linecap="round" stroke-linejoin="round"/>'},{title:"💻 JSON to Code",description:"Convert JSON into ready-to-use code for your application.",bullets:["Generate classes/interfaces from JSON","Java","Python","TypeScript","JavaScript","C#","Go","Kotlin","Swift","Custom naming conventions","CamelCase / snake_case conversion","Generate nested models","Generate nullable/optional properties","Add validation annotations","Copy generated code","Download generated code"],useCases:["Model Generation","API Client Development","Backend & Frontend Projects","Rapid Prototyping","Developer Productivity"],color:"#7C3AED",iconPaths:'<path d="M9 6L3 12l6 6M15 6l6 6-6 6" stroke="white" stroke-width="1.7" fill="none" stroke-linecap="round" stroke-linejoin="round"/>'}],m5=["Paste, copy & clear editor","Upload local files","Download output","Undo / redo","Fullscreen editing","Sample JSON loader","Line numbers","Large JSON support","Keyboard shortcuts for every action"],f5=["Software Developers","QA Engineers","Test Automation Engineers","API Testers","Backend Developers","Frontend Developers","DevOps Engineers","Site Reliability Engineers","Data Engineers","Cloud Engineers","Students learning JSON"],x5=["Compare API responses","Beautify JSON payloads","Validate JSON before sending requests","Extract values using JSONPath","Filter responses using jq expressions","Convert JSON into tables","Escape JSON for source code","Convert between JSON, XML and YAML","Analyze complex nested payloads","Debug microservices communication","Explore third-party API responses","Work with configuration files"],g5=[{question:"Does Captain JSON send my data anyw
67here?",answer:"No. Captain JSON runs entirely inside your browser. Your JSON is parsed, formatted, compared and queried locally — nothing is uploaded or stored on a server."},{question:"How large a JSON file can it handle?",answer:"Captain JSON has been tested with files over 30MB, staying smooth for editing, formatting, searching, validating and comparing — including deeply nested objects and arrays."},{question:"Can I use it for JSON, XML and YAML together?",answer:"Yes. The built-in Converter tool handles JSON → XML, JSON → YAML, and the reverse, with auto-detection of your input format."},{question:"Is there a jq-style query tool?",answer:"Yes. The JQ Query tool supports familiar jq-style filtering — field selection, array indexing, filtering, mapping, sorting, grouping and length calculations — with a lightweight in-browser interpreter."},{question:"Who is Captain JSON built for?",answer:"Anyone who works with JSON regularly: developers, QA and automation engineers, API testers, backend/frontend engineers, DevOps and 
67SRE teams, data and cloud engineers, and students learning JSON."},{question:"Do I need to install anything besides the browser extension?",answer:"No. Captain JSON is a self-contained browser extension — install it once, pin it to your toolbar, and every tool is available in one workspace."}],y5=[{title:"Format & Beautify",description:"Make JSON clean and readable in one click.",bg:"#D1FAE5",iconColor:"#059669",iconPaths:'<path d="M8 4L4 12l4 8M16 4l4 8-4 8" stroke="#059669" stroke-width="1.6" fill="none" stroke-linecap="round" stroke-linejoin="round"/>'},{title:"JSON Compare",description:"Compare JSON side by side with smart diff.",bg:"#FEE2E2",iconColor:"#D72638",iconPaths:'<rect x="3" y="5" width="8" height="14" rx="1.5" stroke="#D72638" stroke-width="1.6"/><rect x="13" y="5" width="8" height="14" rx="1.5" stroke="#D72638" stroke-width="1.6"/>'},{title:"JSONPath",description:"Generate JSONPath visually. Super easy!",bg:"#FEF3C7",iconColor:"#D97706",iconPaths:'<circle cx="6" cy="6" r="2.5" stroke="#D97706" stroke-width="1.6"/><circle cx="6" cy="18" r="2.5" stroke="#D97706" stroke-width="1.6"/><circle cx="18" cy="12" r="2.5" stroke="#D97706" stroke-width="1.6"/><path d="M8 7l7 4M8 17l7-4" stroke="#D97706" stroke-width="1.6" fill="none"/>'},{title:"Tree Viewer",description:"Explore huge JSON files with an interactive tree.",bg:"#DBEAFE",iconColor:"#2563EB",iconPaths:'<path d="M6 4v16M6 8h6M6 14h9M12 8v6M15 14v3" stroke="#2563EB" stroke-width="1.6" fill="none" stroke-linecap="round"/>'},{title:"Convert",description:"Convert to CSV, XML, YAML, Excel, SQL & more.",bg:"#EDE9FE",iconColor:"#7C3AED",iconPaths:'<path d="M4 8h11M11 4l4 4-4 4" stroke="#7C3AED" stroke-width="1.6" fill="none" stroke-linecap="round" stroke-linejoin="round"/><path d="M20 16H9M13 12l-4 4 4 4" stroke="#7C3AED" stroke-width="1.6" fill="none" stroke-linecap="round" stroke-linejoin="round"/>'},{title:"Code Generator",description:"Generate POJO, Rest Assured, Postman, JUnit, Playwright & more.",bg:"#FCE7F3",iconColor:"#DB2777",iconPaths:'<path d="M8 3l1 4-4 1 4 1-1 4 3-3 3 3-1-4 4-1-4-1 1-4-3 3z" stroke="#DB2777" stroke-width="1.3" fill="none" stroke-linejoin="round"/>'},{title:"JSONL Workbench",description:"Query, filter, validate and transform JSONL at scale.",bg:"#CCFBF1",iconColor:"#0D9488",iconPaths:'<path d="M4 6h16M4 12h16M4 18h10" stroke="#0D9488" stroke-width="1.6" fill="none" stroke-linecap="round"/>'},{title:"JWT",description:"JWT encoder & decoder, 100% offline with data privacy.",bg:"#E0E7FF",iconColor:"#4F46E5",iconPaths:'<circle cx="8" cy="12" r="4" stroke="#4F46E5" stroke-width="1.6"/><path d="M11.5 12H20M16 12v3.5M19 12v2.5" stroke="#4F46E5" stroke-width="1.6" stroke-linecap="round"/>'},{title:"Schema Validator",description:"Generate a schema and validate JSON against it.",bg:"#FFEDD5",iconColor:"#EA580C",iconPaths:'<path d="M12 3l7 3v6c0 4.5-3 7-7 9-4-2-7-4.5-7-9V6z" stroke="#EA580C" stroke-width="1.5" fill="none" stroke-linejoin="round"/><path d="M9 12l2 2 4-4" stroke="#EA580C" stroke-width="1.6" fill="none" stroke-linecap="round" stroke-linejoin="round"/>'}],v5=["Playwright","Selenium","Postman","Cypress","REST Assured","JUnit","TestNG","Karate","VS Code","GitHub"],Au="https://chromewebstore.google.com/detail/captain-json/mhnpamnabnkbdboniogidoemihkaclce",w5="https://www.youtube.com/embed/MV2ksNes_yA",b5="https://addons.mozilla.org/en-US/firefox/addon/captain-json/",j5=ip.map(e=>e.name==="Google Chrome"?{...e,available:!0,href:Au}:e.name==="Mozilla Firefox"?{...e,available:!0,href:b5}:e);function k5(){return Je(Wf),gn([aa({name:"Captain JSON",description:Wf.description,path:"/captainjson"}),is([{name:"Pirates of Bugs",path:"/"},{name:"Captain JSON",path:"/captainjson"}])]),r.jsxs(r.Fragment,{children:[r.jsx(qe,{}),r.jsx("div",{className:"bg-[#FFF4E3] pt-28 lg:pt-32 pb-2",children:r.jsx("div",{className:"max-w-7xl mx-auto px-6 lg:px-10",children:r.jsxs("nav",{"aria-label":"Breadcrumb",className:"text-sm text-navy/50 flex items-center gap-2",children:[r.jsx(V,{to:"/",className:"hover:text-primary transition-colors",children:"Pirates of Bugs"}),r.jsx("span",{children:"/"}),r.jsx("span",{className:"text-navy font-medium",children:"Captain JSON"})]})})}),r.jsxs("section",{className:"relative pt-6 pb-20 overflow-hidden bg-gradient-to-b from-[#FFF4E3] via-[#FFFDF7] to-[#FFFDF7]",children:[r.jsx("div",{className:"grain"}),r.jsxs("div",{className:"max-w-7xl mx-auto px-6 lg:px-10 grid lg:grid-cols-2 gap-16 items-center",children:[r.jsxs("div",{className:"animate-fadeUp",children:[r.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[r.jsx("img",{src:Nl,alt:"Captain JSON logo",className:"w-12 h-12 object-contain"}),r.jsxs("span",{className:"font-display font-bold text-lg text-navy",children:["Captain ",r.jsx("span",{className:"text-primary",children:"JSON"})]})]}),r.jsx("div",{className:"inline-flex items-center gap-2 text-primary text-xs font-bold bg-primary/5 border border-primary/15 px-3 py-1.5 rounded-full mb-6 uppercase tracking-wide",children:"★ #1 JSON Toolkit Extension"}),r.jsxs("h1",{className:"font-display font-extrabold text-[40px] sm:text-5xl leading-[1.08] tracking-tight text-navy",children:["The Ultimate",r.jsx("br",{}),r.jsx("span",{className:"text-primary",children:"JSON Toolkit"})]}),r.jsx("p",{className:"mt-5 text-lg font-display font-semibold text-navy",children:"Format. Validate. C
67ompare. Convert. Generate."}),r.jsx("p",{className:"mt-3 text-navy/60 max-w-lg leading-relaxed",children:"20+ powerful JSON tools built for developers and QA engineers. Work faster with JSON, handle complex data effortlessly, and spend less time on repetitive tasks."}),r.jsxs("div",{className:"flex flex-wrap items-center gap-x-5 gap-y-2 mt-6 text-sm text-navy/60 font-medium",children:[r.jsx("span",{className:"flex items-center gap-1.5",children:"✓ 100% Offline"}),r.jsx("span",{className:"flex items-center gap-1.5",children:"✓ Privacy First"}),r.jsx("span",{className:"flex items-center gap-1.5",children:"✓ Lightweight"}),r.jsx("span",{className:"flex items-center gap-1.5",children:"✓ Blazing Fast"})]}),r.jsxs("div",{className:"mt-7 flex flex-wrap items-center gap-3",children:[r.jsx("a",{href:Au,target:"_blank",rel:"noopener noreferrer",className:"btn-primary font-semibold px-6 py-3 rounded-full shadow-lg shadow-primary/25 hover:shadow-xl transition-all inline-flex items-center gap-2",children:"⬇ Add to Chrome"}),r.jsx("a",{href:"#demo",className:"font-semibold text-navy px-6 py-3 rounded-full border border-navy/15 hover:border-navy/30 transition-colors",children:"See Demo"})]})]}),r.jsxs("div",{className:"relative animate-fadeUp [animation-delay:.15s]",children:[r.jsxs("div",{className:"rounded-2xl bg-navy shadow-2xl overflow-hidden border border-black/10 flex",children:[r.jsx("div",{className:"hidden sm:flex flex-col w-36 bg-[#0d1e35] border-r border-white/10 py-3 shrink-0",children:["Formatter","Tree Viewer","JSONPath","Compare","Converter","Validator","JQ Playground","Faker","Code Generator","Settings"].map((e,t)=>r.jsx("div",{className:`px-4 py-1.5 text-[11px] font-medium ${t===0?"bg-primary text-white":"text-white/50"}`,children:e},e))}),r.jsxs("div",{className:"flex-1 min-w-0",children:[r.jsxs("div",{className:"flex items-center gap-1.5 px-4 py-2.5 border-b border-white/10",children:[r.jsx("span",{className:"w-2.5 h-2.5 rounded-full bg-primary/70"}),r.jsx("span",{className:"w-2.5 h-2.5 rounded-full bg-gold/70"}),r.jsx("span",{className:"w-2.5 h-2.5 rounded-full bg-success/70"}),r.jsx("span",{className:"ml-2 text-white/40 text-[11px] font-medium",children:"Captain JSON"})]}),r.jsx("pre",{className:"p-4 text-[11px] sm:text-[12px] leading-relaxed overflow-x-auto",children:r.jsxs("code",{children:[r.jsx("span",{className:"text-white/40",children:"{"}),`
68  `,r.jsx("span",{className:"text-sea",children:'"user"'}),r.jsxs("span",{className:"text-white/40",children:[": ","{"]}),`
69    `,r.jsx("span",{className:"text-sea",children:'"id"'}),r.jsx("span",{className:"text-white/40",children:": "}),r.jsx("span",{className:"text-gold",children:"1001"}),r.jsx("span",{className:"text-white/40",children:","}),`
70    `,r.jsx("span",{className:"text-sea",children:'"name"'}),r.jsx("span",{className:"text-white/40",children:": "}),r.jsx("span",{className:"text-gold",children:'"John Doe"'}),r.jsx("span",{className:"text-white/40",children:","}),`
71    `,r.jsx("span",{className:"text-sea",children:'"email"'}),r.jsx("span",{className:"text-white/40",children:": "}),r.jsx("span",{className:"text-gold",children:'"[email protected]"'}),r.jsx("span",{className:"text-white/40",children:","}),`
72    `,r.jsx("span",{className:"text-sea",children:'"skills"'}),r.jsx("span",{className:"text-white/40",children:": ["}),r.jsx("span",{className:"text-gold",children:'"JSON"'}),r.jsx("span",{className:"text-white/40",children:", "}),r.jsx("span",{className:"text-gold",children:'"Java"'}),r.jsx("span",{className:"text-white/40",children:", "}),r.jsx("span",{className:"text-gold",children:'"QA"'}),r.jsx("span",{className:"text-white/40",children:"],"}),`
73    `,r.jsx("span",{className:"text-sea",children:'"isActive"'}),r.jsx("span",{className:"text-white/40",children:": "}),r.jsx("span",{className:"text-success",children:"true"}),`
74  `,r.jsx("span",{className:"text-white/40",children:"}"}),`
75`,r.jsx("span",{className:"text-white/40",children:"}"})]})})]})]}),r.jsx("div",{className:"absolute -top-10 right-2 bg-white rounded-2xl shadow-lg border border-black/5 px-4 py-2.5 hidden sm:block text-xs text-navy/70 font-medium max-w-[160px] leading-snug",children:"Your JSON, beautifully formatted!"}),r.jsxs("div",{className:"absolute -bottom-6 left-6 bg-white rounded-2xl shadow-xl border border-black/5 px-5 py-2.5 flex items-center gap-2",children:[r.jsx("span",{className:"w-2 h-2 rounded-full bg-success"}),r.jsx("span",{className:"text-sm font-semibold text-navy",children:"Valid JSON"})]}),r.jsx("img",{src:ra,alt:"Captain JSON mascot",className:"hidden sm:block absolute -right-10 sm:-right-16 top-1/2 -translate-y-1/2 w-28 sm:w-36 animate-bob pointer-events-none select-none",style:{filter:"drop-shadow(0 12px 20px rgba(9,22,43,0.25))"}})]})]}),r.jsx("div",{className:"max-w-6xl mx-auto px-6 lg:px-10 mt-16 animate-fadeUp [animation-delay:.3s]",children:r.jsx("div",{className:"bg-white rounded-3xl border border-black/5 shadow-[0_8px_30px_-12px_rgba(9,22,43,0.12)] px-8 py-8 grid grid-cols-2 md:grid-cols-4 gap-8 text-center",children:d5.map(e=>r.jsxs("div",{children:[r.jsx("div",{className:"font-display font-bold text-2xl sm:text-3xl text-navy",children:e.value}),r.jsx("div",{className:"text-sm text-navy/60 mt-1",children:e.label})]},e.label))})})]}),r.jsx(ia,{productName:"Captain JSON",browsers:j5}),r.jsx(Oi,{productName:"Captain JSON",youtubeEmbedUrl:w5}),r.jsx("section",{className:"py-24",children:r.jsxs("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"flex items-end justify-between flex-wrap gap-4 mb-10",children:[r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy tracking-tight",children:"Everything you need to work with JSON"}),r.jsx("a",{href:"#tools",className:"text-primary font-semibold text-sm hover:underline whitespace-nowrap",children:"Explore all 20+ tools →"})]}),r.jsx("div",{className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-5",children:y5.map(e=>r.jsxs("div",{className:"bg-white border border-black/5 rounded-2xl p-5",children:[r.jsx("div",{className:"w-10 h-10 rounded-xl flex items-center justify-center mb-3",style:{background:e.bg},children:r.jsx("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",dangerouslySetInnerHTML:{__html:e.iconPaths}})}),r.jsx("div",{className:"font-display font-semibold text-navy",children:e.title}),r.jsx("p",{className:"text-navy/55 text-sm mt-1 leading-relaxed",children:e.description})]},e.title))})]})}),r.jsx("section",{id:"integrations",className:"py-16 border-y border-black/5",children:r.jsxs("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:[r.jsx("p",{className:"text-center text-sm font-semibold tracking-widest text-navy/40 uppercase mb-8",children:"Seamless with your favorite tools"}),r.jsx("div",{className:"flex flex-wrap items-center justify-center gap-x-10 gap-y-4 text-navy/40 font-display font-bold text-lg",children:v5.map(e=>r.jsx("span",{children:e},e))})]})}),r.jsx(oa,{}),r.jsx(la,{productName:"Captain JSON",logo:Nl}),r.jsx(Iv,{currentHref:"/captainjson"}),r.jsx("section",{className:"py-24 bg-[#FFF7EA]",children:r.jsxs("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"text-center max-w-2xl mx-auto mb-14",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"Get started"}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy mt-3 tracking-tight",children:"Install & click — that's it"})]}),r.jsx("div",{className:"grid sm:grid-cols-3 gap-8",children:u5.map(e=>r.jsxs("div",{className:"text-center",children:[r.jsx("div",{className:"w-14 h-14 mx-auto rounded-2xl bg-white shadow-md flex items-center justify-center font-display font-bold text-primary text-xl border border-black/5",children:e.number}),r.jsx("h3",{className:"font-display font-semibold text-navy mt-5",children:e.title}),r.jsx("p",{className:"text-navy/60 text-sm mt-2 leading-relaxed",children:e.description})]},e.number))})]})}),r.jsx("section",{className:"py-24",children:r.jsx("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:r.jsx("div",{className:"bg-navy rounded-3xl px-8 py-10 grid sm:grid-cols-2 lg:grid-cols-4 gap-6",children:h5.map(e=>r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx("span",{className:"text-gold shrink-0",children:r.jsx("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",dangerouslySetInnerHTML:{__html:e.iconPaths}})}),r.jsx("span",{className:"text-white/80 text-sm font-medium leading-snug",children:e.label})]},e.label))})})}),r.jsx("section",{id:"tools",className:"py-8 pb-28",children:r.jsxs("div",{className:"max-w-7xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"text-center max-w-2xl mx-auto mb-16",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"⚑ All Tools"}),r.jsx("h2",{className:"font-display font-bold text-4xl sm:text-5xl text-navy mt-3 tracking-tight",children:"One JSON & JSONL Workspace. Everything You Need."}),r.jsx("p",{className:"text-navy/60 mt-4 text-lg",children:"Everything you need to read, validate, compare and transform JSON without opening a single extra tab."})]}),r.jsx("div",{className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-6",children:p5.map(e=>r.jsx(c5,{feature:e},e.title))})]})}),r.jsx("section",{className:"py-24 bg-navy",children:r.jsxs("div",{className:"max-w-6xl mx-auto px-6 lg:px-10 grid md:grid-cols-2 gap-12",children:[r.jsxs("div",{children:[r.jsx("span",{className:"text-gold font-semibold text-sm tracking-widest uppercase",children:"Powerful editor"}),r.jsx("h2",{className:"font-display font-bold text-3xl text-white mt-3 tracking-tight",children:"Every tool shares one professional editor"}),r.jsx("ul",{className:"mt-6 grid grid-cols-2 gap-x-4 gap-y-2.5 text-sm text-white/70",children:m5.map(e=>r.jsxs("li",{className:"flex gap-2",children:[r.jsx("span",{className:"text-gold",children:"✓"})," ",e]},e))})]}),r.jsxs("div",{children:[r.jsx("span",{className:"text-gold font-semibold text-sm tracking-widest uppercase",children:"Built for the keyboard"}),r.jsx("h2",{className:"font-display font-bold text-3xl text-white mt-3 tracking-tight",children:"Keyboard shortcuts for power users"}),r.jsx("p",{className:"text-white/60 mt-4 leading-relaxed",children:"Qu
75ick navigation between tools, editor actions, copy/paste and undo/redo are all wired to shortcuts — so your hands never have to leave the keyboard."})]})]})}),r.jsx("section",{id:"use-cases",className:"py-28",children:r.jsxs("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"text-center max-w-2xl mx-auto mb-14",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"Who it's for"}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy mt-3 tracking-tight",children:"Built for anyone who lives in JSON"})]}),r.jsx("div",{className:"flex flex-wrap justify-center gap-3",children:f5.map(e=>r.jsx("span",{className:"text-sm font-medium text-navy bg-white border border-black/5 shadow-sm px-4 py-2 rounded-full",children:e},e))})]})}),r.jsx("section",{className:"py-8 pb-28",children:r.jsxs("div",{className:"max-w-5xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"text-center max-w-2xl mx-auto mb-14",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"Use cases"}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy mt-3 tracking-tight",children:"What crews use Captain JSON for"})]}),r.jsx("div",{className:"grid sm:grid-cols-2 gap-x-10 gap-y-3",children:x5.map(e=>r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx("span",{className:"w-2 h-2 rounded-full bg-success shrink-0"}),r.jsx("span",{className:"text-navy/75 font-medium",children:e})]},e))})]})}),r.jsx("section",{id:"faq",className:"py-28",children:r.jsxs("div",{className:"max-w-3xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"text-center mb-14",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"FAQ"}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy mt-3 tracking-tight",children:"Frequently asked questions"})]}),r.jsx(Ri,{faqs:g5})]})}),r.jsx("section",{className:"pb-24",children:r.jsx("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:r.jsxs("div",{className:"bg-navy rounded-3xl px-8 sm:px-12 py-12 flex flex-col md:flex-row items-center justify-between gap-8 relative overflow-hidden",children:[r.jsxs("svg",{className:"absolute bottom-0 right-0 w-40 opacity-70 animate-sail",viewBox:"0 0 100 60",children:[r.jsx("path",{d:"M20 40 L80 40 L72 50 Q50 56 28 50 Z",fill:"#5A3A22"}),r.jsx("rect",{x:"48",y:"10",width:"3",height:"30",fill:"#7A4A2B"}),r.jsx("path",{d:"M51 12 L70 20 L51 26Z",fill:"#F6B73C",opacity:".85"})]}),r.jsxs("div",{className:"relative",children:[r.jsx("h3",{className:"font-display font-bold text-2xl sm:text-3xl text-white",children:"Ready to take control of your JSON?"}),r.jsx("p",{className:"text-white/50 mt-2",children:"Join 100,000+ developers & QA engineers who ship faster with Captain JSON."}),r.jsxs("div",{className:"mt-3 flex flex-wrap items-center gap-x-5 gap-y-1 text-xs text-white/40 font-medium",children:[r.jsx("span",{children:"✓ 100% Offline"}),r.jsx("span",{children:"✓ Secure"}),r.jsx("span",{children:"✓ Lightweight"}),r.jsx("span",{children:"✓ Privacy First"})]})]}),r.jsx("div",{className:"flex gap-3 relative shrink-0",children:r.jsx("a",{href:Au,target:"_blank",rel:"noopener noreferrer",className:"btn-primary font-semibold px-6 py-3 rounded-full shadow-lg shadow-primary/25 hover:shadow-xl transition-all whitespace-nowrap",children:"Install for Chrome"})})]})})}),r.jsx(He,{})]})}const Js={eyebrow:"🔴 Free · Open source · Runs entirely in your browser",h1Line1:"Postman to JMeter.",h1Line2:"Including the scripts.",subhead:"Drop in a Postman collection or an OpenAPI spec and get a production-ready .jmx — thread groups, controllers, assertions, timers, the lot. Your pm.test and pre-request JavaScript is parsed and rewritten as Groovy, not thrown away.",ctaPrimary:"Add to Chrome — Free",trustLine:"No account. No upload. No telemetry. Your collections never leave the tab."},N5=[{figure:"4",label:"Input formats — Postman v2.0, v2.1, OpenAPI 2.0, 3.x"}
75,{figure:"10",label:"JMeter thread group types"},{figure:"7",label:"Load-shape presets"},{figure:"1,000+",label:"Requests per collection, without freezing the tab"}],ho={label:"THE USUAL WAY",heading:"Converting a collection by hand is a week you don't have",body:"Existing converters hand you a skeleton: samplers with the right URLs and nothing else. Your test scripts — the pm.test blocks, the HMAC signing in pre-request, the token capture — are dropped silently. You find out three days later when the run reports 100% pass on a test that asserts nothing.",cards:[{title:"Scripts vanish",body:"Most tools skip pm.test and pre-request JavaScript entirely. Your assertions become nothing, and the plan passes for the wrong reason."},{title:"Silent partial output",body:"Something converts, something doesn't, and nothing tells you which. The gap surfaces during the load window, not before it."},{title:"Nothing is portable",body:"You get one .jmx and no record of what changed, so the next person has to rediscover every workaround you invented."}]},po={label:"WHAT'S IN THE BOX",heading:"Everything a real test plan needs",sub:"Not a skeleton. A plan you can open in JMeter and run.",cards:[{title:"Import anything Postman exports",body:"Collections v2.0 and v2.1, environments, globals, and OpenAPI 2.0/3.x in JSON or YAML — from a file, a drop, or a URL. Drop several at once and they merge into one project.",icon:"Import"},{title:"Structure survives the trip",body:"Folders become Transaction Controllers, execution order is preserved exactly, and inherited auth is resolved down the tree.",icon:"FolderTree"},{title:"Every body mode",body:"Raw JSON, XML, urlencoded, multipart with file parts, GraphQL and binary — each with the right Content-Type and multipart flag set.",icon:"FileJson"},{title:"Variables translated properly",body:"{{postman}} becomes ${jmeter}. Environments shadow collection values, globals go to props, and dynamic variables like {{$guid}} map to real JMeter functions.",icon:"Braces"},{title:"Ten thread group types",body:"Standard, setUp, tearDown and Open Model built in; six more — including Concurrency, Stepping, Ultimate and Arrivals — need jpgc-casutg for real load shapes. Plugin requirements are flagged before you hit a wall in JMeter.",icon:"Users"},{title:"Seven load presets",body:"Smoke, Load, Stress, Spike, Soak, Capacity and API Benchmark. Each sets the thread group, pacing and listeners to the shape that test normally takes — then gets out of your way.",icon:"Gauge"},{title:"Edit before you export",body:"Monaco editor on the raw XML, a visual tree of the plan, and a diff view for every converted script. Change the Groovy and the plan regenerates around it.",icon:"FileEdit"},{title:"Built for big collections",body:"Parsing, conversion and zipping all run in a Web Worker with virtualised lists. A thousand requests doesn't lock the tab.",icon:"Zap"}]},Qs={label:"SCRIPT INTELLIGENCE",heading:"Your JavaScript becomes Groovy. Properly.",body:"Captain JMX parses each script with a real JavaScript parser and walks the syntax tree. It isn't find-and-replace — that can't tell live code from a string literal, and can't keep the order of what it doesn't recognise. Pre-request scripts become JSR223 PreProcessors. Test scripts become Assertions when they assert, and PostProcessors when they only extract.",postmanCode:`pm.test("status is 200", function () {
76    pm.response.to.have.status(200);
77});
78
79pm.test("has token", function () {
80    const data = pm.response.json();
81    pm.expect(data.token).to.not.be.null;
82    pm.environment.set("token", data.token);
83});`,groovyCode:`import groovy.json.JsonSlurper
84
85def failures = []
86
87/** Mirrors pm.test: runs the block, records the failure, keeps going. */
88def runTest = { String name, Closure body ->
89    try {
90        body()
91    } catch (AssertionError | Exception problem) {
92        failures << (name + " — " + problem.getMessage())
93    }
94}
95
96runTest("status is 200") {
97    assert prev.getResponseCode() == String.valueOf(200) : "expected status 200"
98}
99
100runTest("has token") {
101    def data = new JsonSlurper().parseText(prev.getResponseDataAsString())
102    assert !(data.token == null) : "expected not null"
103    vars.put("token", String.valueOf(data.token))
104}
105
106if (!failures.isEmpty()) {
107    AssertionResult.setFailure(true)
108    AssertionResult.setFailureMessage(failures.join("\\n"))
109}`,points:[{title:"Variables, all four scopes.",body:"pm.environment, pm.collectionVariables, pm.variables → vars. pm.globals → props, the only store shared across threads."},{title:"Crypto and dynamic values.",body:"CryptoJS MD5, SHA-1/256/512 and HMAC map to MessageDigest and Mac with the imports written for you. UUIDs, timestamps, Base64, JSON.parse/stringify too."},{title:"Real control flow.",body:"if/else, all four loop forms, switch, functions, try/catch, template literals, regex, destructuring. Groovy dropped do/while, so it becomes a guarded while (true)."},{title:"The full chai vocabulary.",body:".to.have.status, .to.eql, .to.include, .to.match, .to.be.above/below, .to.have.length, .to.be.oneOf, .to.be.null — and every one of them negated."}]},va={label:"WHAT IT WON'T DO",heading:"Nothing is dropped silently. Ever.",body:"Some things genuinely have no JMeter equivalent. pm.sendRequest is asynchronous. setTimeout needs an event loop. require needs a module registry that doesn't exist inside JMeter. Captain JMX doesn't fake any of them — and it doesn't quietly delete them either.",code:`null /* TODO — Postman sends this request asynchronously with a callback.
110  Fix: Model it as its own HTTP Sampler placed before this one, or issue
111  the call synchronously from Groovy with HttpURLConnection.
112  Original JavaScript: pm.sendRequest("https://audit.test", function (e, r) { ... }
112) */`,points:[{title:"Original code preserved.",body:"The JavaScript travels inside the comment, so whoever picks this up has everything they need to finish by hand."},{title:"A confidence score per script.",body:"90+ Converted, 50–89 Partial, below 50 Manual review. Anything under your threshold is written into the plan but left disabled — a half-translated script can't break a run."},{title:"A written record.",body:"CHANGELOG.md lists every script that needs a human, why, and the suggested fix. warnings.json says the same thing to your CI."}]},Yc={label:"FOUR STATIONS",heading:"Import, convert, inspect, ship",steps:[{step:"01",title:"Import",body:"Drop a collection, an environment, a spec, or all three. Every file is validated with diagnostics that point at the line, not just the file."},{step:"02",title:"Convert",body:"Pick a preset or set the thread group, pacing and elements yourself. Scripts convert in the same pass."},{step:"03",title:"Preview",body:"The plan as a JMeter tree, the raw XML, each script's JavaScript beside its Groovy, and a summary with recommendations. Edit anything."},{step:"04",title:"Export",body:"A .jmx on its own, or a bundle with everything the person running the test will need."}]},wa={label:"WHAT YOU GET",heading:"A bundle, not just a file",sub:"Everything needed on a machine that has never seen this project.",tree:`orders-api/
113├── orders-api.jmx                      The test plan
114├── README.md                           Plan shape, variables, warnings, how to run it
115├── CHANGELOG.md                        Every script that needs a human, with the fix
116├── env/orders-api.properties           Override any variable at run time
117├── data/variables.csv                  Variables, secrets redacted
118├── data/requests.csv                   Request inventory for coverage review
119├── reports/conversion-report.html      Each script: JavaScript in, Groovy out
120├── reports/warnings.json               Machine-readable, for CI gates
121├── reports/conversion-metadata.json    Provenance: sources, options, scores
122└── bin/run.sh, bin/run.cmd             Non-GUI run with an HTML report`,note:"Listeners are written into the plan and left disabled. An enabled View Results Tree will exhaust the heap on any run worth doing — read results from the JTL and the HTML report instead. run.sh already does."},mo={label:"PRIVACY",heading:"Your collections never leave the tab",body:"Conversion runs in a Web Worker on your machine. Saved projects live in your browser’s IndexedDB. There is no account, no upload, no analytics call, and no server to have a breach. The extension asks for network access for exactly one reason: fetching an OpenAPI spec when you paste a URL.",points:["No account required","No data leaves your browser","No telemetry, ever"]},S5=[{question:"Do I need JMeter installed to use this?",answer:"No. Captain JMX produces the .jmx file; you'll need JMeter 5.6 or newer to run it. The bundle's bin/run.sh handles the non-GUI invocation and HTML report for you."},{question:"Will the generated plan run as-is?",answer:"Usually, yes — but read CHANGELOG.md first. Anything that could not be converted is listed there with a suggested fix. Correlation between requests, realistic think time and data sets are still yours to add; those are test-design decisions, not translation problems."},{question:"What happens to my pm.test scripts?",answer:"They're parsed and rewritten as Groovy inside JSR223 Assertions or PostProcessors. Each one gets a confidence score, and you can see the JavaScript beside the generated Groovy before exporting — and edit the Groovy if you disagree with it."},{question:"What about pm.sendRequest or setTimeout?",answer:"Neither has a JMeter equivalent, so neither is faked. They are preserved in the output inside a TODO block with the original code and a suggested fix, and reported in the CHANGELOG."},{question:"Do the plugin thread groups work without JMeter Plugins Manager?",answer:"No, and Captain JMX tells you before you export. Standard, setUp, tearDown and Open Model groups are built in; the other six — including Concurrency, Stepping, Ultimate and Arrivals — need jpgc-casutg, which is named in the UI, the README and the metadata."},{question:"Does it handle large collections?",answer:"Yes. Parsing, conversion and zipping run off the main thread with virtualised rendering. A thousand requests converts without the tab freezing."},{question:"Is it really free?",answer:"Yes, and open source."},{question:"Which browsers?",answer:"Chrome 116 or newer, and Chromium-based browsers (Edge, Brave, Arc). It's a Manifest V3 extension that opens in a full tab, not a popup."}],ba={heading:"Stop rebuilding collections by hand",sub:"Import a collection, pick a preset, export a bundle. Two minutes, and you'll have the conversion report to prove what happened to every script.",ctaPrimary:"Add to Chrome — Free",ctaSecondary:"Browse the source",microline:"Free forever · No account · Chrome 116+"},C5="Apache JMeter is a trademark of the Apache Software Foundation. Postman is a trademark of Postman, Inc. Captain JMX is not affiliated with either.",op=w.createContext({});function lp(e){const t=w.useRef(null);return t.current===null&&(t.current=e()),t.current}const lc=w.createContext(null),cp=w.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});class P5 extends w.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(n&&t.isPresent&&!this.props.isPresent){const s=this.props.sizeRef.current;s.height=n.offsetHeight||0,s.width=n.offsetWidth||0,s.top=n.offsetTop,s.left=n.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function T5({children:e,isPresent:t}){const n=w.useId(),s=w.useRef(null),a=w.useRef({width:0,height:0,top:0,left:0}),{nonce:i}=w.useContext(cp);return w.useInsertionEffect(()=>{const{width:o,height:l,top:c,left:d}=a.current;if(t||!s.current||!o||!l)return;s.current.dataset.motionPopId=n;const u=document.createElement("style");return i&&(u.nonce=i),document.head.appendChild(u),u.sheet&&u.sheet.insertRule(`
123          [data-motion-pop-id="${n}"] {
124            position: absolute !important;
125            width: ${o}px !important;
126            height: ${l}px !important;
127            top: ${c}px !important;
128            left: ${d}px !important;
129          }
130        `),()=>{document.head.removeChild(u)}}
vendor: 34,427 bytes, line 130
130,[t]),r.jsx(P5,{isPresent:t,childRef:s,sizeRef:a,children:w.cloneElement(e,{ref:s})})}const E5=({children:e,initial:t,isPresent:n,onExitComplete:s,custom:a,presenceAffectsLayout:i,mode:o})=>{const l=lp(_5),c=w.useId(),d=w.useCallback(h=>{l.set(h,!0);for(const p of l.values())if(!p)return;s&&s()},[l,s]),u=w.useMemo(()=>({id:c,initial:t,isPresent:n,custom:a,onExitComplete:d,register:h=>(l.set(h,!1),()=>l.delete(h))}),i?[Math.random(),d]:[n,d]);return w.useMemo(()=>{l.forEach((h,p)=>l.set(p,!1))},[n]),w.useEffect(()=>{!n&&!l.size&&s&&s()},[n]),o==="popLayout"&&(e=r.jsx(T5,{isPresent:n,children:e})),r.jsx(lc.Provider,{value:u,children:e})};function _5(){return new Map}function Bv(e=!0){const t=w.useContext(lc);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:s,register:a}=t,i=w.useId();w.useEffect(()=>{e&&a(i)},[e]);const o=w.useCallback(()=>e&&s&&s(i),[i,s,e]);return!n&&s?[!1,o]:[!0]}const fo=e=>e.key||"";function Gf(e){const t=[];return w.Children.forEach(e,n=>{w.isValidElement(n)&&t.push(n)}),t}const dp=typeof window<"u",Vv=dp?w.useLayoutEffect:w.useEffect,A5=({children:e,custom:t,initial:n=!0,onExitComplete:s,presenceAffectsLayout:a=!0,mode:i="sync",propagate:o=!1})=>{const[l,c]=Bv(o),d=w.useMemo(()=>Gf(e),[e]),u=o&&!l?[]:d.map(fo),h=w.useRef(!0),p=w.useRef(d),g=lp(()=>new Map),[y,v]=w.useState(d),[k,f]=w.useState(d);Vv(()=>{h.current=!1,p.current=d;for(let b=0;b<k.length;b++){const N=fo(k[b]);u.includes(N)?g.delete(N):g.get(N)!==!0&&g.set(N,!1)}},[k,u.length,u.join("-")]);const x=[];if(d!==y){let b=[...d];for(let N=0;N<k.length;N++){const C=k[N],T=fo(C);u.includes(T)||(b.splice(N,0,C),x.push(C))}i==="wait"&&x.length&&(b=x),f(Gf(b)),v(d);return}const{forceRender:m}=w.useContext(op);return r.jsx(r.Fragment,{children:k.map(b=>{const N=fo(b),C=o&&!l?!1:d===k||u.includes(N),T=()=>{if(g.has(N))g.set(N,!0);else return;let S=!0;g.forEach(L=>{L||(S=!1)}),S&&(m==null||m(),f(p.current),o&&(c==null||c()),s&&s())};return r.jsx(E5,{isPresent:C,initial:!h.current||n?void 0:!1,custom:C?void 0:t,presenceAffectsLayout:a,mode:i,onExitComplete:C?void 0:T,children:b},N)})})},lt=e=>e;let Uv=lt;function up(e){let t;return()=>(t===void 0&&(t=e()),t)}const Gr=(e,t,n)=>{const s=t-e;return s===0?1:(n-e)/s},rn=e=>e*1e3,an=e=>e/1e3,F5={useManualTiming:!1};function M5(e){let t=new Set,n=new Set,s=!1,a=!1;const i=new WeakSet;let o={delta:0,timestamp:0,isProcessing:!1};function l(d){i.has(d)&&(c.schedule(d),e()),d(o)}const c={schedule:(d,u=!1,h=!1)=>{const g=h&&s?t:n;return u&&i.add(d),g.has(d)||g.add(d),d},cancel:d=>{n.delete(d),i.delete(d)},process:d=>{if(o=d,s){a=!0;return}s=!0,[t,n]=[n,t],t.forEach(l),t.clear(),s=!1,a&&(a=!1,c.process(d))}};return c}const xo=["read","resolveKeyframes","update","preRender","render","postRender"],D5=40;function zv(e,t){let n=!1,s=!0;const a={delta:0,timestamp:0,isProcessing:!1},i=()=>n=!0,o=xo.reduce((f,x)=>(f[x]=M5(i),f),{}),{read:l,resolveKeyframes:c,update:d,preRender:u,render:h,postRender:p}=o,g=()=>{const f=performance.now();n=!1,a.delta=s?1e3/60:Math.max(Math.min(f-a.timestamp,D5),1),a.timestamp=f,a.isProcessing=!0,l.process(a),c.process(a),d.process(a),u.process(a),h.process(a),p.process(a),a.isProcessing=!1,n&&t&&(s=!1,e(g))},y=()=>{n=!0,s=!0,a.isProcessing||e(g)};return{schedule:xo.reduce((f,x)=>{const m=o[x];return f[x]=(b,N=!1,C=!1)=>(n||y(),m.schedule(b,N,C)),f},{}),cancel:f=>{for(let x=0;x<xo.length;x++)o[xo[x]].cancel(f)},state:a,steps:o}}const{schedule:ae,cancel:es,state:Te,steps:Zc}=zv(typeof requestAnimationFrame<"u"?requestAnimationFrame:lt,!0),Wv=w.createContext({strict:!1}),Yf={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]},Yr={};for(const e in Yf)Yr[e]={isEnabled:t=>Yf[e].some(n=>!!t[n])};function O5(e){for(const t in e)Yr[t]={...Yr[t],...e[t]}}const R5=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function El(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||R5.has(e)}let $v=e=>!El(e);function L5(e){e&&($v=t=>t.startsWith("on")?!El(t):e(t))}try{L5(require("@emotion/is-prop-valid").default)}catch{}function I5(e,t,n){const s={};for(const a in e)a==="values"&&typeof e.values=="object"||($v(a)||n===!0&&El(a)||!t&&!El(a)||e.draggable&&a.startsWith("onDrag"))&&(s[a]=e[a]);return s}function B5(e){if(typeof Proxy>"u")return e;const t=new Map,n=(...s)=>e(...s);return new Proxy(n,{get:(s,a)=>a==="create"?e:(t.has(a)||t.set(a,e(a)),t.get(a))})}const cc=w.createContext({});function yi(e){return typeof e=="string"||Array.isArray(e)}function dc(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}const hp=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],pp=["initial",...hp];function uc(e){return dc(e.animate)||pp.some(t=>yi(e[t]))}function qv(e){return!!(uc(e)||e.variants)}function V5(e,t){if(uc(e)){const{initial:n,animate:s}=e;return{initial:n===!1||yi(n)?n:void 0,animate:yi(s)?s:void 0}}return e.inherit!==!1?t:{}}function U5(e){const{initial:t,animate:n}=V5(e,w.useContext(cc));return w.useMemo(()=>({initial:t,animate:n}),[Zf(t),Zf(n)])}function Zf(e){return Array.isArray(e)?e.join(" "):e}const z5=Symbol.for("motionComponentSymbol");function hr(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function W5(e,t,n){return w.useCallback(s=>{s&&e.onMount&&e.onMount(s),t&&(s?t.mount(s):t.unmount()),n&&(typeof n=="function"?n(s):hr(n)&&(n.current=s))},[t])}const mp=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),$5="framerAppearId",Hv="data-"+mp($5),{schedule:fp}=zv(queueMicrotask,!1),Jv=w.createContext({});function q5(e,t,n,s,a){var i,o;const{visualElement:l}=w.useContext(cc),c=w.useContext(Wv),d=w.useContext(lc),u=w.useContext(cp).reducedMotion,h=w.useRef(null);s=s||c.renderer,!h.current&&s&&(h.current=s(e,{visualState:t,parent:l,props:n,presenceContext:d,blockInitialAnimation:d?d.initial===!1:!1,reducedMotionConfig:u}));const p=h.current,g=w.useContext(Jv);p&&!p.projection&&a&&(p.type==="html"||p.type==="svg")&&H5(h.current,n,a,g);const y=w.useRef(!1);w.useInsertionEffect(()=>{p&&y.current&&p.update(n,d)});const v=n[Hv],k=w.useRef(!!v&&!(!((i=window.MotionHandoffIsComplete)===null||i===void 0)&&i.call(window,v))&&((o=window.MotionHasOptimisedAnimation)===null||o===void 0?void 0:o.call(window,v)));return Vv(()=>{p&&(y.current=!0,window.MotionIsMounted=!0,p.updateFeatures(),fp.render(p.render),k.current&&p.animationState&&p.animationState.animateChanges())}),w.useEffect(()=>{p&&(!k.current&&p.animationState&&p.animationState.animateChanges(),k.current&&(queueMicrotask(()=>{var f;(f=window.MotionHandoffMarkAsComplete)===null||f===void 0||f.call(window,v)}),k.current=!1))}),p}function H5(e,t,n,s){const{layoutId:a,layout:i,drag:o,dragConstraints:l,layoutScroll:c,layoutRoot:d}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:Qv(e.parent)),e.projection.setOptions({layoutId:a,layout:i,alwaysMeasureLayout:!!o||l&&hr(l),visualElement:e,animationType:typeof i=="string"?i:"both",initialPromotionConfig:s,layoutScroll:c,layoutRoot:d})}function Qv(e){if(e)return e.options.allowProjection!==!1?e.projection:Qv(e.parent)}function J5({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:s,Component:a}){var i,o;e&&O5(e);function l(d,u){let h;const p={...w.useContext(cp),...d,layoutId:Q5(d)},{isStatic:g}=p,y=U5(d),v=s(d,g);if(!g&&dp){G5();const k=Y5(p);h=k.MeasureLayout,y.visualElement=q5(a,v,p,t,k.ProjectionNode)}return r.jsxs(cc.Provider,{value:y,children:[h&&y.visualElement?r.jsx(h,{visualElement:y.visualElement,...p}):null,n(a,d,W5(v,y.visualElement,u),v,g,y.visualElement)]})}l.displayName=`motion.${typeof a=="string"?a:`create(${(o=(i=a.displayName)!==null&&i!==void 0?i:a.name)!==null&&o!==void 0?o:""})`}`;const c=w.forwardRef(l);return c[z5]=a,c}function Q5({layoutId:e}){const t=w.useContext(op).id;return t&&e!==void 0?t+"-"+e:e}function G5(e,t){w.useContext(Wv).strict}function Y5(e){const{drag:t,layout:n}=Yr;if(!t&&!n)return{};const s={...t,...n};return{MeasureLayout:t!=null&&t.isEnabled(e)||n!=null&&n.isEnabled(e)?s.MeasureLayout:void 0,ProjectionNode:s.ProjectionNode}}const Z5=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function xp(e){return typeof e!="string"||e.includes("-")?!1:!!(Z5.indexOf(e)>-1||/[A-Z]/u.test(e))}function Kf(e){const t=[{},{}];return e==null||e.values.forEach((n,s)=>{t[0][s]=n.get(),t[1][s]=n.getVelocity()}),t}function gp(e,t,n,s){if(typeof t=="function"){const[a,i]=Kf(s);t=t(n!==void 0?n:e.custom,a,i)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[a,i]=Kf(s);t=t(n!==void 0?n:e.custom,a,i)}return t}const Fu=e=>Array.isArray(e),K5=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),X5=e=>Fu(e)?e[e.length-1]||0:e,Ie=e=>!!(e&&e.getVelocity);function Wo(e){const t=Ie(e)?e.get():e;return K5(t)?t.toValue():t}function e4({scrapeMotionValuesFromProps:e,createRenderState:t,onUpdate:n},s,a,i){const o={latestValues:t4(s,a,i,e),renderState:t()};return n&&(o.onMount=l=>n({props:s,current:l,...o}),o.onUpdate=l=>n(l)),o}const Gv=e=>(t,n)=>{const s=w.useContext(cc),a=w.useContext(lc),i=()=>e4(e,t,s,a);return n?i():lp(i)};function t4(e,t,n,s){const a={},i=s(e,{});for(const p in i)a[p]=Wo(i[p]);let{initial:o,animate:l}=e;const c=uc(e),d=qv(e);t&&d&&!c&&e.inherit!==!1&&(o===void 0&&(o=t.initial),l===void 0&&(l=t.animate));let u=n?n.initial===!1:!1;u=u||o===!1;const h=u?l:o;if(h&&typeof h!="boolean"&&!dc(h)){const p=Array.isArray(h)?h:[h];for(let g=0;g<p.length;g++){const y=gp(e,p[g]);if(y){const{transitionEnd:v,transition:k,...f}=y;for(const x in f){let m=f[x];if(Array.isArray(m)){const b=u?m.length-1:0;m=m[b]}m!==null&&(a[x]=m)}for(const x in v)a[x]=v[x]}}}return a}const ca=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],qs=new Set(ca),Yv=e=>t=>typeof t=="string"&&t.startsWith(e),Zv=Yv("--"),n4=Yv("var(--"),yp=e=>n4(e)?s4.test(e.split("/*")[0].trim()):!1,s4=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,Kv=(e,t)=>t&&typeof e=="number"?t.transform(e):e,mn=(e,t,n)=>n>t?t:n<e?e:n,da={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},vi={...da,transform:e=>mn(0,1,e)},go={...da,default:1},Li=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),wn=Li("deg"),Jt=Li("%"),B=Li("px"),r4=Li("vh"),a4=Li("vw"),Xf={...Jt,parse:e=>Jt.parse(e)/100,transform:e=>Jt.transform(e*100)},i4={borderWidth:B,borderTopWidth:B,borderRightWidth:B,borderBottomWidth:B,borderLeftWidth:B,borderRadius:B,radius:B,borderTopLeftRadius:B,borderTopRightRadius:B,borderBottomRightRadius:B,borderBottomLeftRadius:B,width:B,maxWidth:B,height:B,maxHeight:B,top:B,right:B,bottom:B,left:B,padding:B,paddingTop:B,paddingRight:B,paddingBottom:B,paddingLeft:B,margin:B,marginTop:B,marginRight:B,marginBottom:B,marginLeft:B,backgroundPositionX:B,backgroundPositionY:B},o4={rotate:wn,rotateX:wn,rotateY:wn,rotateZ:wn,scale:go,scaleX:go,scaleY:go,scaleZ:go,skew:wn,skewX:wn,skewY:wn,distance:B,translateX:B,translateY:B,translateZ:B,x:B,y:B,z:B,perspective:B,transformPerspective:B,opacity:vi,originX:Xf,originY:Xf,originZ:B},ex={...da,transform:Math.round},vp={...i4,...o4,zIndex:ex,size:B,fillOpacity:vi,strokeOpacity:vi,numOctaves:ex},l4={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},c4=ca.length;function d4(e,t,n){let s="",a=!0;for(let i=0;i<c4;i++){const o=ca[i],l=e[o];if(l===void 0)continue;let c=!0;if(typeof l=="number"?c=l===(o.startsWith("scale")?1:0):c=parseFloat(l)===0,!c||n){const d=Kv(l,vp[o]);if(!c){a=!1;const u=l4[o]||o;s+=`${u}(${d}) `}n&&(t[o]=d)}}return s=s.trim(),n?s=n(t,a?"":s):a&&(s="none"),s}function wp(e,t,n){const{style:s,vars:a,transformOrigin:i}=e;let o=!1,l=!1;for(const c in t){const d=t[c];if(qs.has(c)){o=!0;continue}else if(Zv(c)){a[c]=d;continue}else{const u=Kv(d,vp[c]);c.startsWith("origin")?(l=!0,i[c]=u):s[c]=u}}if(t.transform||(o||n?s.transform=d4(t,e.transform,n):s.transform&&(s.transform="none")),l){const{originX:c="50%",originY:d="50%",originZ:u=0}=i;s.transformOrigin=`${c} ${d} ${u}`}}const u4={offset:"stroke-dashoffset",array:"stroke-dasharray"},h4={offset:"strokeDashoffset",array:"strokeDasharray"};function p4(e,t,n=1,s=0,a=!0){e.pathLength=1;const i=a?u4:h4;e[i.offset]=B.transform(-s);const o=B.transform(t),l=B.transform(n);e[i.array]=`${o} ${l}`}function tx(e,t,n){return typeof e=="string"?e:B.transform(t+n*e)}function m4(e,t,n){const s=tx(t,e.x,e.width),a=tx(n,e.y,e.height);return`${s} ${a}`}function bp(e,{attrX:t,attrY:n,attrScale:s,originX:a,originY:i,pathLength:o,pathSpacing:l=1,pathOffset:c=0,...d},u,h){if(wp(e,d,h),u){e.style.viewBox&&(e.attrs.viewBox=e.style.viewBox);return}e.attrs=e.style,e.style={};const{attrs:p,style:g,dimensions:y}=e;p.transform&&(y&&(g.transform=p.transform),delete p.transform),y&&(a!==void 0||i!==void 0||g.transform)&&(g.transformOrigin=m4(y,a!==void 0?a:.5,i!==void 0?i:.5)),t!==void 0&&(p.x=t),n!==void 0&&(p.y=n),s!==void 0&&(p.scale=s),o!==void 0&&p4(p,o,l,c,!1)}const jp=()=>({style:{},transform:{},transformOrigin:{},vars:{}}),Xv=()=>({...jp(),attrs:{}}),kp=e=>typeof e=="string"&&e.toLowerCase()==="svg";function ew(e,{style:t,vars:n},s,a){Object.assign(e.style,t,a&&a.getProjectionStyles(s));for(const i in n)e.style.setProperty(i,n[i])}const tw=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function nw(e,t,n,s){ew(e,t,void 0,s);for(const a in t.attrs)e.setAttribute(tw.has(a)?a:mp(a),t.attrs[a])}const _l={};function f4(e){Object.assign(_l,e)}function sw(e,{layout:t,layoutId:n}){return qs.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!_l[e]||e==="opacity")}function Np(e,t,n){var s;const{style:a}=e,i={};for(const o in a)(Ie(a[o])||t.style&&Ie(t.style[o])||sw(o,e)||((s=n==null?void 0:n.getValue(o))===null||s===void 0?void 0:s.liveStyle)!==void 0)&&(i[o]=a[o]);return i}function rw(e,t,n){const s=Np(e,t,n);for(const a in e)if(Ie(e[a])||Ie(t[a])){const i=ca.indexOf(a)!==-1?"attr"+a.charAt(0).toUpperCase()+a.substring(1):a;s[i]=e[a]}return s}function x4(e,t){try{t.dimensions=typeof e.getBBox=="function"?e.getBBox():e.getBoundingClientRect()}catch{t.dimensions={x:0,y:0,width:0,height:0}}}const nx=["x","y","width","height","cx","cy","r"],g4={useVisualState:Gv({scrapeMotionValuesFromProps:rw,createRenderState:Xv,onUpdate:({props:e,prevProps:t,current:n,renderState:s,latestValues:a})=>{if(!n)return;let i=!!e.drag;if(!i){for(const l in a)if(qs.has(l)){i=!0;break}}if(!i)return;let o=!t;if(t)for(let l=0;l<nx.length;l++){const c=nx[l];e[c]!==t[c]&&(o=!0)}o&&ae.read(()=>{x4(n,s),ae.render(()=>{bp(s,a,kp(n.tagName),e.transformTemplate),nw(n,s)})})}})},y4={useVisualState:Gv({scrapeMotionValuesFromProps:Np,createRenderState:jp})};function aw(e,t,n){for(const s in t)!Ie(t[s])&&!sw(s,n)&&(e[s]=t[s])}function v4({transformTemplate:e},t){return w.useMemo(()=>{const n=jp();return wp(n,t,e),Object.assign({},n.vars,n.style)},[t])}function w4(e,t){const n=e.style||{},s={};return aw(s,n,e),Object.assign(s,v4(e,t)),s}function b4(e,t){const n={},s=w4(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,s.userSelect=s.WebkitUserSelect=s.WebkitTouchCallout="none",s.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=s,n}function j4(e,t,n,s){const a=w.useMemo(()=>{const i=Xv();return bp(i,t,kp(s),e.transformTemplate),{...i.attrs,style:{...i.style}}},[t]);if(e.style){const i={};aw(i,e.style,e),a.style={...i,...a.style}}return a}function k4(e=!1){return(n,s,a,{latestValues:i},o)=>{const c=(xp(n)?j4:b4)(s,i,o,n),d=I5(s,typeof n=="string",e),u=n!==w.Fragment?{...d,...c,ref:a}:{},{children:h}=s,p=w.useMemo(()=>Ie(h)?h.get():h,[h]);return w.createElement(n,{...u,children:p})}}function N4(e,t){return function(s,{forwardMotionProps:a}={forwardMotionProps:!1}){const o={...xp(s)?g4:y4,preloadedFeatures:e,useRender:k4(a),createVisualElement:t,Component:s};return J5(o)}}function iw(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let s=0;s<n;s++)if(t[s]!==e[s])return!1;return!0}function hc(e,t,n){const s=e.getProps();return gp(s,t,n!==void 0?n:s.custom,e)}const S4=up(()=>window.ScrollTimeline!==void 0);class C4{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}get finished(){return Promise.all(this.animations.map(t=>"finished"in t?t.finished:t))}getAll(t){return this.animations[0][t]}setAll(t,n){for(let s=0;s<this.animations.length;s++)this.animations[s][t]=n}attachTimeline(t,n){const s=this.animations.map(a=>{if(S4()&&a.attachTimeline)return a.attachTimeline(t);if(typeof n=="function")return n(a)});return()=>{s.forEach((a,i)=>{a&&a(),this.animations[i].stop()})}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get startTime(){return this.getAll("startTime")}get duration(){let t=0;for(let n=0;n<this.animations.length;n++)t=Math.max(t,this.animations[n].duration);return t}runAll(t){this.animations.forEach(n=>n[t]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}class P4 extends C4{then(t,n){return Promise.all(this.animations).then(t).catch(n)}}function Sp(e,t){return e?e[t]||e.default||e:void 0}const Mu=2e4;function ow(e){let t=0;const n=50;let s=e.next(t);for(;!s.done&&t<Mu;)t+=n,s=e.next(t);return t>=Mu?1/0:t}function Cp(e){return typeof e=="function"}function sx(e,t){e.timeline=t,e.onfinish=null}const Pp=e=>Array.isArray(e)&&typeof e[0]=="number",T4={linearEasing:void 0};function E4(e,t){const n=up(e);return()=>{var s;return(s=T4[t])!==null&&s!==void 0?s:n()}}const Al=E4(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),lw=(e,t,n=10)=>{let s="";const a=Math.max(Math.round(t/n),2);for(let i=0;i<a;i++)s+=e(Gr(0,a-1,i))+", ";return`linear(${s.substring(0,s.length-2)})`};function cw(e){return!!(typeof e=="function"&&Al()||!e||typeof e=="string"&&(e in Du||Al())||Pp(e)||Array.isArray(e)&&e.every(cw))}const Ea=([e,t,n,s])=>`cubic-bezier(${e}, ${t}, ${n}, ${s})`,Du={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:Ea([0,.65,.55,1]),circOut:Ea([.55,0,1,.45]),backIn:Ea([.31,.01,.66,-.59]),backOut:Ea([.33,1.53,.69,.99])};function dw(e,t){if(e)return typeof e=="function"&&Al()?lw(e,t):Pp(e)?Ea(e):Array.isArray(e)?e.map(n=>dw(n,t)||Du.easeOut):Du[e]}const Ct={x:!1,y:!1};function uw(){return Ct.x||Ct.y}function _4(e,t,n){var s;if(e instanceof Element)return[e];if(typeof e=="string"){let a=document;const i=(s=void 0)!==null&&s!==void 0?s:a.querySelectorAll(e);return i?Array.from(i):[]}return Array.from(e)}function hw(e,t){const n=_4(e),s=new AbortController,a={passive:!0,...t,signal:s.signal};return[n,a,()=>s.abort()]}function rx(e){return t=>{t.pointerType==="touch"||uw()||e(t)}}function A4(e,t,n={}){const[s,a,i]=hw(e,n),o=rx(l=>{const{target:c}=l,d=t(l);if(typeof d!="function"||!c)return;const u=rx(h=>{d(h),c.removeEventListener("pointerleave",u)});c.addEventListener("pointerleave",u,a)});return s.forEach(l=>{l.addEventListener("pointerenter",o,a)}),i}const pw=(e,t)=>t?e===t?!0:pw(e,t.parentElement):!1,Tp=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,F4=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function M4(e){return F4.has(e.tagName)||e.tabIndex!==-1}const _a=new WeakSet;function ax(e){return t=>{t.key==="Enter"&&e(t)}}function Kc(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const D4=(e,t)=>{const n=e.currentTarget;if(!n)return;const s=ax(()=>{if(_a.has(n))return;Kc(n,"down");const a=ax(()=>{Kc(n,"up")}),i=()=>Kc(n,"cancel");n.addEventListener("keyup",a,t),n.addEventListener("blur",i,t)});n.addEventListener("keydown",s,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",s),t)};function ix(e){return Tp(e)&&!uw()}function O4(e,t,n={}){const[s,a,i]=hw(e,n),o=l=>{const c=l.currentTarget;if(!ix(l)||_a.has(c))return;_a.add(c);const d=t(l),u=(g,y)=>{window.removeEventListener("pointerup",h),window.removeEventListener("pointercancel",p),!(!ix(g)||!_a.has(c))&&(_a.delete(c),typeof d=="function"&&d(g,{success:y}))},h=g=>{u(g,n.useGlobalTarget||pw(c,g.target))},p=g=>{u(g,!1)};window.addEventListener("pointerup",h,a),window.addEventListener("pointercancel",p,a)};return s.forEach(l=>{!M4(l)&&l.getAttribute("tabindex")===null&&(l.tabIndex=0),(n.useGlobalTarget?window:l).addEventListener("pointerdown",o,a),l.addEventListener("focus",d=>D4(d,a),a)}),i}function R4(e){return e==="x"||e==="y"?Ct[e]?null:(Ct[e]=!0,()=>{Ct[e]=!1}):Ct.x||Ct.y?null:(Ct.x=Ct.y=!0,()=>{Ct.x=Ct.y=!1})}const mw=new Set(["width","height","top","left","right","bottom",...ca]);let $o;function L4(){$o=void 0}const Qt={now:()=>($o===void 0&&Qt.set(Te.isProcessing||F5.useManualTiming?Te.timestamp:performance.now()),$o),set:e=>{$o=e,queueMicrotask(L4)}};function Ep(e,t){e.indexOf(t)===-1&&e.push(t)}function _p(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class Ap{constructor(){this.subscriptions=[]}add(t){return Ep(this.subscriptions,t),()=>_p(this.subscriptions,t)}notify(t,n,s){const a=this.subscriptions.length;if(a)if(a===1)this.subscriptions[0](t,n,s);else for(let i=0;i<a;i++){const o=this.subscriptions[i];o&&o(t,n,s)}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}}function fw(e,t){return t?e*(1e3/t):0}const ox=30,I4=e=>!isNaN(parseFloat(e));class B4{constructor(t,n={}){this.version="11.18.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(s,a=!0)=>{const i=Qt.now();this.updatedAt!==i&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(s),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),a&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=Qt.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=I4(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new Ap);const s=this.events[t].add(n);return t==="change"?()=>{s(),ae.read(()=>{this.events.change.getSize()||this.stop()})}:s}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,s){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-s}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=Qt.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>ox)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,ox);return fw(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function wi(e,t){return new B4(e,t)}function V4(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,wi(n))}function U4(e,t){const n=hc(e,t);let{transitionEnd:s={},transition:a={},...i}=n||{};i={...i,...s};for(const o in i){const l=X5(i[o]);V4(e,o,l)}}function z4(e){return!!(Ie(e)&&e.add)}function Ou(e,t){const n=e.getValue("willChange");if(z4(n))return n.add(t)}function xw(e){return e.props[Hv]}const gw=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,W4=1e-7,$4=12;function q4(e,t,n,s,a){let i,o,l=0;do o=t+(n-t)/2,i=gw(o,s,a)-e,i>0?n=o:t=o;while(Math.abs(i)>W4&&++l<$4);return o}function Ii(e,t,n,s){if(e===t&&n===s)return lt;const a=i=>q4(i,0,1,e,n);return i=>i===0||i===1?i:gw(a(i),t,s)}const yw=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,vw=e=>t=>1-e(1-t),ww=Ii(.33,1.53,.69,.99),Fp=vw(ww),bw=yw(Fp),jw=e=>(e*=2)<1?.5*Fp(e):.5*(2-Math.pow(2,-10*(e-1))),Mp=e=>1-Math.sin(Math.acos(e)),kw=vw(Mp),Nw=yw(Mp),Sw=e=>/^0[^.\s]+$/u.test(e);function H4(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||Sw(e):!0}const za=e=>Math.round(e*1e5)/1e5,Dp=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function J4(e){return e==null}const Q4=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,Op=(e,t)=>n=>!!(typeof n=="string"&&Q4.test(n)&&n.startsWith(e)||t&&!J4(n)&&Object.prototype.hasOwnProperty.call(n,t)),Cw=(e,t,n)=>s=>{if(typeof s!="string")return s;const[a,i,o,l]=s.match(Dp);return{[e]:parseFloat(a),[t]:parseFloat(i),[n]:parseFloat(o),alpha:l!==void 0?parseFloat(l):1}},G4=e=>mn(0,255,e),Xc={...da,transform:e=>Math.round(G4(e))},ws={test:Op("rgb","red"),parse:Cw("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:s=1})=>"rgba("+Xc.transform(e)+", "+Xc.transform(t)+", "+Xc.transform(n)+", "+za(vi.transform(s))+")"};function Y4(e){let t="",n="",s="",a="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),s=e.substring(5,7),a=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),s=e.substring(3,4),a=e.substring(4,5),t+=t,n+=n,s+=s,a+=a),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(s,16),alpha:a?parseInt(a,16)/255:1}}const Ru={test:Op("#"),parse:Y4,transform:ws.transform},pr={test:Op("hsl","hue"),parse:Cw("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:s=1})=>"hsla("+Math.round(e)+", "+Jt.transform(za(t))+", "+Jt.transform(za(n))+", "+za(vi.transform(s))+")"},Re={test:e=>ws.test(e)||Ru.test(e)||pr.test(e),parse:e=>ws.test(e)?ws.parse(e):pr.test(e)?pr.parse(e):Ru.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?ws.transform(e):pr.transform(e)},Z4=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function K4(e){var t,n;return isNaN(e)&&typeof e=="string"&&(((t=e.match(Dp))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(Z4))===null||n===void 0?void 0:n.length)||0)>0}const Pw="number",Tw="color",X4="var",eS="var(",lx="${}",tS=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function bi(e){const t=e.toString(),n=[],s={color:[],number:[],var:[]},a=[];let i=0;const l=t.replace(tS,c=>(Re.test(c)?(s.color.push(i),a.push(Tw),n.push(Re.parse(c))):c.startsWith(eS)?(s.var.push(i),a.push(X4),n.push(c)):(s.number.push(i),a.push(Pw),n.push(parseFloat(c))),++i,lx)).split(lx);return{values:n,split:l,indexes:s,types:a}}function Ew(e){return bi(e).values}function _w(e){const{split:t,types:n}=bi(e),s=t.length;return a=>{let i="";for(let o=0;o<s;o++)if(i+=t[o],a[o]!==void 0){const l=n[o];l===Pw?i+=za(a[o]):l===Tw?i+=Re.transform(a[o]):i+=a[o]}return i}}const nS=e=>typeof e=="number"?0:e;function sS(e){const t=Ew(e);return _w(e)(t.map(nS))}const ts={test:K4,parse:Ew,createTransformer:_w,getAnimatableNone:sS},rS=new Set(["brightness","contrast","saturate","opacity"]);function aS(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[s]=n.match(Dp)||[];if(!s)return e;const a=n.replace(s,"");let i=rS.has(t)?1:0;return s!==n&&(i*=100),t+"("+i+a+")"}const iS=/\b([a-z-]*)\(.*?\)/gu,Lu={...ts,getAnimatableNone:e=>{const t=e.match(iS);return t?t.map(aS).join(" "):e}},oS={...vp,color:Re,backgroundColor:Re,outlineColor:Re,fill:Re,stroke:Re,borderColor:Re,borderTopColor:Re,borderRightColor:Re,borderBottomColor:Re,borderLeftColor:Re,filter:Lu,WebkitFilter:Lu},Rp=e=>oS[e];function Aw(e,t){let n=Rp(e);return n!==Lu&&(n=ts),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const lS=new Set(["auto","none","0"]);function cS(e,t,n){let s=0,a;for(;s<e.length&&!a;){const i=e[s];typeof i=="string"&&!lS.has(i)&&bi(i).values.length&&(a=e[s]),s++}if(a&&n)for(const i of t)e[i]=Aw(n,a)}const cx=e=>e===da||e===B,dx=(e,t)=>parseFloat(e.split(", ")[t]),ux=(e,t)=>(n,{transform:s})=>{if(s==="none"||!s)return 0;const a=s.match(/^matrix3d\((.+)\)$/u);if(a)return dx(a[1],t);{const i=s.match(/^matrix\((.+)\)$/u);return i?dx(i[1],e):0}},dS=new Set(["x","y","z"]),uS=ca.filter(e=>!dS.has(e));function hS(e){const t=[];return uS.forEach(n=>{const s=e.getValue(n);s!==void 0&&(t.push([n,s.get()]),s.set(n.startsWith("scale")?1:0))}),t}const Zr={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:ux(4,13),y:ux(5,14)};Zr.translateX=Zr.x;Zr.translateY=Zr.y;const Ms=new Set;let Iu=!1,Bu=!1;function Fw(){if(Bu){const e=Array.from(Ms).filter(s=>s.needsMeasurement),t=new Set(e.map(s=>s.element)),n=new Map;t.forEach(s=>{const a=hS(s);a.length&&(n.set(s,a),s.render())}),e.forEach(s=>s.measureInitialState()),t.forEach(s=>{s.render();const a=n.get(s);a&&a.forEach(([i,o])=>{var l;(l=s.getValue(i))===null||l===void 0||l.set(o)})}),e.forEach(s=>s.measureEndState()),e.forEach(s=>{s.suspendedScrollY!==void 0&&window.scrollTo(0,s.suspendedScrollY)})}Bu=!1,Iu=!1,Ms.forEach(e=>e.complete()),Ms.clear()}function Mw(){Ms.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(Bu=!0)})}function pS(){Mw(),Fw()}class Lp{constructor(t,n,s,a,i,o=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=s,this.motionValue=a,this.element=i,this.isAsync=o}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Ms.add(this),Iu||(Iu=!0,ae.read(Mw),ae.resolveKeyframes(Fw))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:s,motionValue:a}=this;for(let i=0;i<t.length;i++)if(t[i]===null)if(i===0){const o=a==null?void 0:a.get(),l=t[t.length-1];if(o!==void 0)t[0]=o;else if(s&&n){const c=s.readValue(n,l);c!=null&&(t[0]=c)}t[0]===void 0&&(t[0]=l),a&&o===void 0&&a.set(t[0])}else t[i]=t[i-1]}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(){this.isComplete=!0,this.onComplete(this.unresolvedKeyframes,this.finalKeyframe),Ms.delete(this)}cancel(){this.isComplete||(this.isScheduled=!1,Ms.delete(this))}resume(){this.isComplete||this.scheduleResolve()}}const Dw=e=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),mS=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function fS(e){const t=mS.exec(e);if(!t)return[,];const[,n,s,a]=t;return[`--${n??s}`,a]}function Ow(e,t,n=1){const[s,a]=fS(e);if(!s)return;const i=window.getComputedStyle(t).getPropertyValue(s);if(i){const o=i.trim();return Dw(o)?parseFloat(o):o}return yp(a)?Ow(a,t,n+1):a}const Rw=e=>t=>t.test(e),xS={test:e=>e==="auto",parse:e=>e},Lw=[da,B,Jt,wn,a4,r4,xS],hx=e=>Lw.find(Rw(e));class Iw extends Lp{constructor(t,n,s,a,i){super(t,n,s,a,i,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:n,name:s}=this;if(!n||!n.current)return;super.readKeyframes();for(let c=0;c<t.length;c++){let d=t[c];if(typeof d=="string"&&(d=d.trim(),yp(d))){const u=Ow(d,n.current);u!==void 0&&(t[c]=u),c===t.length-1&&(this.finalKeyframe=d)}}if(this.resolveNoneKeyframes(),!mw.has(s)||t.length!==2)return;const[a,i]=t,o=hx(a),l=hx(i);if(o!==l)if(cx(o)&&cx(l))for(let c=0;c<t.length;c++){const d=t[c];typeof d=="string"&&(t[c]=parseFloat(d))}else this.needsMeasurement=!0}resolveNoneKeyframes(){const{unresolvedKeyframes:t,name:n}=this,s=[];for(let a=0;a<t.length;a++)H4(t[a])&&s.push(a);s.length&&cS(t,s,n)}measureInitialState(){const{element:t,unresolvedKeyframes:n,name:s}=this;if(!t||!t.current)return;s==="height"&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=Zr[s](t.measureViewportBox(),window.getComputedStyle(t.current)),n[0]=this.measuredOrigin;const a=n[n.length-1];a!==void 0&&t.getValue(s,a).jump(a,!1)}measureEndState(){var t;const{element:n,name:s,unresolvedKeyframes:a}=this;if(!n||!n.current)return;const i=n.getValue(s);i&&i.jump(this.measuredOrigin,!1);const o=a.length-1,l=a[o];a[o]=Zr[s](n.measureViewportBox(),window.getComputedStyle(n.current)),l!==null&&this.finalKeyframe===void 0&&(this.finalKeyframe=l),!((t=this.removedTransforms)===null||t===void 0)&&t.length&&this.removedTransforms.forEac
vendor: 10,704 bytes, line 130
130h(([c,d])=>{n.getValue(c).set(d)}),this.resolveNoneKeyframes()}}const px=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(ts.test(e)||e==="0")&&!e.startsWith("url("));function gS(e){const t=e[0];if(e.length===1)return!0;for(let n=0;n<e.length;n++)if(e[n]!==t)return!0}function yS(e,t,n,s){const a=e[0];if(a===null)return!1;if(t==="display"||t==="visibility")return!0;const i=e[e.length-1],o=px(a,t),l=px(i,t);return!o||!l?!1:gS(e)||(n==="spring"||Cp(n))&&s}const vS=e=>e!==null;function pc(e,{repeat:t,repeatType:n="loop"},s){const a=e.filter(vS),i=t&&n!=="loop"&&t%2===1?0:a.length-1;return!i||s===void 0?a[i]:s}const wS=40;class Bw{constructor({autoplay:t=!0,delay:n=0,type:s="keyframes",repeat:a=0,repeatDelay:i=0,repeatType:o="loop",...l}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=Qt.now(),this.options={autoplay:t,delay:n,type:s,repeat:a,repeatDelay:i,repeatType:o,...l},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>wS?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&pS(),this._resolved}onKeyframesResolved(t,n){this.resolvedAt=Qt.now(),this.hasAttemptedResolve=!0;const{name:s,type:a,velocity:i,delay:o,onComplete:l,onUpdate:c,isGenerator:d}=this.options;if(!d&&!yS(t,s,a,i))if(o)this.options.duration=0;else{c&&c(pc(t,this.options,n)),l&&l(),this.resolveFinishedPromise();return}const u=this.initPlayback(t,n);u!==!1&&(this._resolved={keyframes:t,finalKeyframe:n,...u},this.onPostResolved())}onPostResolved(){}then(t,n){return this.currentFinishedPromise.then(t,n)}flatten(){this.options.type="keyframes",this.options.ease="linear"}updateFinishedPromise(){this.currentFinishedPromise=new Promise(t=>{this.resolveFinishedPromise=t})}}const le=(e,t,n)=>e+(t-e)*n;function ed(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function bS({hue:e,saturation:t,lightness:n,alpha:s}){e/=360,t/=100,n/=100;let a=0,i=0,o=0;if(!t)a=i=o=n;else{const l=n<.5?n*(1+t):n+t-n*t,c=2*n-l;a=ed(c,l,e+1/3),i=ed(c,l,e),o=ed(c,l,e-1/3)}return{red:Math.round(a*255),green:Math.round(i*255),blue:Math.round(o*255),alpha:s}}function Fl(e,t){return n=>n>0?t:e}const td=(e,t,n)=>{const s=e*e,a=n*(t*t-s)+s;return a<0?0:Math.sqrt(a)},jS=[Ru,ws,pr],kS=e=>jS.find(t=>t.test(e));function mx(e){const t=kS(e);if(!t)return!1;let n=t.parse(e);return t===pr&&(n=bS(n)),n}const fx=(e,t)=>{const n=mx(e),s=mx(t);if(!n||!s)return Fl(e,t);const a={...n};return i=>(a.red=td(n.red,s.red,i),a.green=td(n.green,s.green,i),a.blue=td(n.blue,s.blue,i),a.alpha=le(n.alpha,s.alpha,i),ws.transform(a))},NS=(e,t)=>n=>t(e(n)),Bi=(...e)=>e.reduce(NS),Vu=new Set(["none","hidden"]);function SS(e,t){return Vu.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function CS(e,t){return n=>le(e,t,n)}function Ip(e){return typeof e=="number"?CS:typeof e=="string"?yp(e)?Fl:Re.test(e)?fx:ES:Array.isArray(e)?Vw:typeof e=="object"?Re.test(e)?fx:PS:Fl}function Vw(e,t){const n=[...e],s=n.length,a=e.map((i,o)=>Ip(i)(i,t[o]));return i=>{for(let o=0;o<s;o++)n[o]=a[o](i);return n}}function PS(e,t){const n={...e,...t},s={};for(const a in n)e[a]!==void 0&&t[a]!==void 0&&(s[a]=Ip(e[a])(e[a],t[a]));return a=>{for(const i in s)n[i]=s[i](a);return n}}function TS(e,t){var n;const s=[],a={color:0,var:0,number:0};for(let i=0;i<t.values.length;i++){const o=t.types[i],l=e.indexes[o][a[o]],c=(n=e.values[l])!==null&&n!==void 0?n:0;s[i]=c,a[o]++}return s}const ES=(e,t)=>{const n=ts.createTransformer(t),s=bi(e),a=bi(t);return s.indexes.var.length===a.indexes.var.length&&s.indexes.color.length===a.indexes.color.length&&s.indexes.number.length>=a.indexes.number.length?Vu.has(e)&&!a.values.length||Vu.has(t)&&!s.values.length?SS(e,t):Bi(Vw(TS(s,a),a.values),n):Fl(e,t)};function Uw(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?le(e,t,n):Ip(e)(e,t)}const _S=5;function zw(e,t,n){const s=Math.max(t-_S,0);return fw(n-e(s),t-s)}const he={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},nd=.001;function AS({duration:e=he.duration,bounce:t=he.bounce,velocity:n=he.velocity,mass:s=he.mass}){let a,i,o=1-t;o=mn(he.minDamping,he.maxDamping,o),e=mn(he.minDuration,he.maxDuration,an(e)),o<1?(a=d=>{const u=d*o,h=u*e,p=u-n,g=Uu(d,o),y=Math.exp(-h);return nd-p/g*y},i=d=>{const h=d*o*e,p=h*n+n,g=Math.pow(o,2)*Math.pow(d,2)*e,y=Math.exp(-h),v=Uu(Math.pow(d,2),o);return(-a(d)+nd>0?-1:1)*((p-g)*y)/v}):(a=d=>{const u=Math.exp(-d*e),h=(d-n)*e+1;return-nd+u*h},i=d=>{const u=Math.exp(-d*e),h=(n-d)*(e*e);return u*h});const l=5/e,c=MS(a,i,l);if(e=rn(e),isNaN(c))return{stiffness:he.stiffness,damping:he.damping,duration:e};{const d=Math.pow(c,2)*s;return{stiffness:d,damping:o*2*Math.sqrt(s*d),duration:e}}}const FS=12;function MS(e,t,n){let s=n;for(let a=1;a<FS;a++)s=s-e(s)/t(s);return s}function Uu(e,t){return e*Math.sqrt(1-t*t)}const DS=["duration","bounce"],OS=["stiffness","damping","mass"];function xx(e,t){return t.some(n=>e[n]!==void 0)}function RS(e){let t={velocity:he.velocity,stiffness:he.stiffness,damping:he.damping,mass:he.mass,isResolvedFromDuration:!1,...e};if(!xx(e,OS)&&xx(e,DS))if(e.visualDuration){const n=e.visualDuration,s=2*Math.PI/(n*1.2),a=s*s,i=2*mn(.05,1,1-(e.bounce||0))*Math.sqrt(a);t={...t,mass:he.mass,stiffness:a,damping:i}}else{const n=AS(e);t={...t,...n,mass:he.mass},t.isResolvedFromDuration=!0}return t}function Ww(e=he.visualDuration,t=he.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:s,restDelta:a}=n;const i=n.keyframes[0],o=n.keyframes[n.keyframes.length-1],l={done:!1,value:i},{stiffness:c,damping:d,mass:u,duration:h,velocity:p,isResolvedFromDuration:g}=RS({...n,velocity:-an(n.velocity||0)}),y=p||0,v=d/(2*Math.sqrt(c*u)),k=o-i,f=an(Math.sqrt(c/u)),x=Math.abs(k)<5;s||(s=x?he.restSpeed.granular:he.restSpeed.default),a||(a=x?he.restDelta.granular:he.restDelta.default);let m;if(v<1){const N=Uu(f,v);m=C=>{const T=Math.exp(-v*f*C);return o-T*((y+v*f*k)/N*Math.sin(N*C)+k*Math.cos(N*C))}}else if(v===1)m=N=>o-Math.exp(-f*N)*(k+(y+f*k)*N);else{const N=f*Math.sqrt(v*v-1);m=C=>{const T=Math.exp(-v*f*C),S=Math.min(N*C,300);return o-T*((y+v*f*k)*Math.sinh(S)+N*k*Math.cosh(S))/N}}const b={calculatedDuration:g&&h||null,next:N=>{const C=m(N);if(g)l.done=N>=h;else{let T=0;v<1&&(T=N===0?rn(y):zw(m,N,C));const S=Math.abs(T)<=s,L=Math.abs(o-C)<=a;l.done=S&&L}return l.value=l.done?o:C,l},toString:()=>{const N=Math.min(ow(b),Mu),C=lw(T=>b.next(N*T).value,N,30);return N+"ms "+C}};return b}function gx({keyframes:e,velocity:t=0,power:n=.8,timeConstant:s=325,bounceDamping:a=10,bounceStiffness:i=500,modifyTarget:o,min:l,max:c,restDelta:d=.5,restSpeed:u}){const h=e[0],p={done:!1,value:h},g=S=>l!==void 0&&S<l||c!==void 0&&S>c,y=S=>l===void 0?c:c===void 0||Math.abs(l-S)<Math.abs(c-S)?l:c;let v=n*t;const k=h+v,f=o===void 0?k:o(k);f!==k&&(v=f-h);const x=S=>-v*Math.exp(-S/s),m=S=>f+x(S),b=S=>{const L=x(S),D=m(S);p.done=Math.abs(L)<=d,p.value=p.done?f:D};let N,C;const T=S=>{g(p.value)&&(N=S,C=Ww({keyframes:[p.value,y(p.value)],velocity:zw(m,S,p.value),damping:a,stiffness:i,restDelta:d,restSpeed:u}))};return T(0),{calculatedDuration:null,next:S=>{let L=!1;return!C&&N===void 0&&(L=!0,b(S),T(S)),N!==void 0&&S>=N?C.next(S-N):(!L&&b(S),p)}}}const LS=Ii(.42,0,1,1),IS=Ii(0,0,.58,1),$w=Ii(.42,0,.58,1),BS=e=>Array.isArray(e)&&typeof e[0]!="number",VS={linear:lt,easeIn:LS,easeInOut:$w,easeOut:IS,circIn:Mp,circInOut:Nw,circOut:kw,backIn:Fp,backInOut:bw,backOut:ww,anticipate:jw},yx=e=>{if(Pp(e)){Uv(e.length===4);const[t,n,s,a]=e;return Ii(t,n,s,a)}else if(typeof e=="string")return VS[e];return e};function US(e,t,n){const s=[],a=n||Uw,i=e.length-1;for(let o=0;o<i;o++){let l=a(e[o],e[o+1]);if(t){const c=Array.isArray(t)?t[o]||lt:t;l=Bi(c,l)}s.push(l)}return s}function zS(e,t,{clamp:n=!0,ease:s,mixer:a}={}){const i=e.length;if(Uv(i===t.length),i===1)return()=>t[0];if(i===2&&t[0]===t[1])return()=>t[1];const o=e[0]===e[1];e[0]>e[i-1]&&(e=[...e].reverse(),t=[...t].reverse());const l=US(t,s,a),c=l.length,d=u=>{if(o&&u<e[0])return t[0];let h=0;if(c>1)for(;h<e.length-2&&!(u<e[h+1]);h++);const p=Gr(e[h],e[h+1],u);return l[h](p)};return n?u=>d(mn(e[0],e[i-1],u)):d}function WS(e,t){const n=e[e.length-1];for(let s=1;s<=t;s++){const a=Gr(0,t,s);e.push(le(n,1,a))}}function $S(e){const t=[0];return WS(t,e.length-1),t}function qS(e,t){return e.map(n=>n*t)}function HS(e,t){return e.map(()=>t||$w).splice(0,e.length-1)}function Ml({duration:e=300,keyframes:t,times:n,ease:s="easeInOut"}){const a=BS(s)?s.map(yx):yx(s),i={done:!1,value:t[0]},o=qS(n&&n.length===t.length?n:$S(t),e),l=zS(o,t,{ease:Array.isArray(a)?a:HS(t,a)});return{calculatedDuration:e,next:c=>(i.value=l(c),i.done=c>=e,i)}}const JS=e=>{const t=({timestamp:n})=>e(n);return{start:()=>ae.update(t,!0),stop:()=>es(t),now:()=>Te.isProcessing?Te.timestamp:Qt.now()}},QS={decay:gx,inertia:gx,tween:Ml,keyframes:Ml,spring:Ww},GS=e=>e/100;class Bp extends Bw{constructor(t){super(t),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:c}=this.options;c&&c()};const{name:n,motionValue:s,element:a,keyframes:i}=this.options,o=(a==null?void 0:a.KeyframeResolver)||Lp,l=(c,d)=>this.onKeyframesResolved(c,d);this.resolver=new o(i,l,n,s,a),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(t){const{type:n="keyframes",repeat:s=0,repeatDelay:a=0,repeatType:i,velocity:o=0}=this.options,l=Cp(n)?n:QS[n]||Ml;let c,d;l!==Ml&&typeof t[0]!="number"&&(c=Bi(GS,Uw(t[0],t[1])),t=[0,100]);const u=l({...this.options,keyframes:t});i==="mirror"&&(d=l({...this.options,keyframes:[...t].reverse(),velocity:-o})),u.calculatedDuration===null&&(u.calculatedDuration=ow(u));const{calculatedDuration:h}=u,p=h+a,g=p*(s+1)-a;return{generator:u,mirroredGenerator:d,mapPercentToKeyframes:c,calculatedDuration:h,resolvedDuration:p,totalDuration:g}}onPostResolved(){const{autoplay:t=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!t?this.pause():this.state=this.pendingPlayState}tick(t,n=!1){const{resolved:s}=this;if(!s){const{keyframes:S}=this.options;return{done:!0,value:S[S.length-1]}}const{finalKeyframe:a,generator:i,mirroredGenerator:o,mapPercentToKeyframes:l,keyframes:c,calculatedDuration:d,totalDuration:u,resolvedDuration:h}=s;
vendor: 17,692 bytes, line 130
130if(this.startTime===null)return i.next(0);const{delay:p,repeat:g,repeatType:y,repeatDelay:v,onUpdate:k}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-u/this.speed,this.startTime)),n?this.currentTime=t:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(t-this.startTime)*this.speed;const f=this.currentTime-p*(this.speed>=0?1:-1),x=this.speed>=0?f<0:f>u;this.currentTime=Math.max(f,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=u);let m=this.currentTime,b=i;if(g){const S=Math.min(this.currentTime,u)/h;let L=Math.floor(S),D=S%1;!D&&S>=1&&(D=1),D===1&&L--,L=Math.min(L,g+1),!!(L%2)&&(y==="reverse"?(D=1-D,v&&(D-=v/h)):y==="mirror"&&(b=o)),m=mn(0,1,D)*h}const N=x?{done:!1,value:c[0]}:b.next(m);l&&(N.value=l(N.value));let{done:C}=N;!x&&d!==null&&(C=this.speed>=0?this.currentTime>=u:this.currentTime<=0);const T=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&C);return T&&a!==void 0&&(N.value=pc(c,this.options,a)),k&&k(N.value),T&&this.finish(),N}get duration(){const{resolved:t}=this;return t?an(t.calculatedDuration):0}get time(){return an(this.currentTime)}set time(t){t=rn(t),this.currentTime=t,this.holdTime!==null||this.speed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.speed)}get speed(){return this.playbackSpeed}set speed(t){const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=an(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:t=JS,onPlay:n,startTime:s}=this.options;this.driver||(this.driver=t(i=>this.tick(i))),n&&n();const a=this.driver.now();this.holdTime!==null?this.startTime=a-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=a):this.startTime=s??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var t;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(t=this.currentTime)!==null&&t!==void 0?t:0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:t}=this.options;t&&t()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}}const YS=new Set(["opacity","clipPath","filter","transform"]);function ZS(e,t,n,{delay:s=0,duration:a=300,repeat:i=0,repeatType:o="loop",ease:l="easeInOut",times:c}={}){const d={[t]:n};c&&(d.offset=c);const u=dw(l,a);return Array.isArray(u)&&(d.easing=u),e.animate(d,{delay:s,duration:a,easing:Array.isArray(u)?"linear":u,fill:"both",iterations:i+1,direction:o==="reverse"?"alternate":"normal"})}const KS=up(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),Dl=10,XS=2e4;function eC(e){return Cp(e.type)||e.type==="spring"||!cw(e.ease)}function tC(e,t){const n=new Bp({...t,keyframes:e,repeat:0,delay:0,isGenerator:!0});let s={done:!1,value:e[0]};const a=[];let i=0;for(;!s.done&&i<XS;)s=n.sample(i),a.push(s.value),i+=Dl;return{times:void 0,keyframes:a,duration:i-Dl,ease:"linear"}}const qw={anticipate:jw,backInOut:bw,circInOut:Nw};function nC(e){return e in qw}class vx extends Bw{constructor(t){super(t);const{name:n,motionValue:s,element:a,keyframes:i}=this.options;this.resolver=new Iw(i,(o,l)=>this.onKeyframesResolved(o,l),n,s,a),this.resolver.scheduleResolve()}initPlayback(t,n){let{duration:s=300,times:a,ease:i,type:o,motionValue:l,name:c,startTime:d}=this.options;if(!l.owner||!l.owner.current)return!1;if(typeof i=="string"&&Al()&&nC(i)&&(i=qw[i]),eC(this.options)){const{onComplete:h,onUpdate:p,motionValue:g,element:y,...v}=this.options,k=tC(t,v);t=k.keyframes,t.length===1&&(t[1]=t[0]),s=k.duration,a=k.times,i=k.ease,o="keyframes"}const u=ZS(l.owner.current,c,t,{...this.options,duration:s,times:a,ease:i});return u.startTime=d??this.calcStartTime(),this.pendingTimeline?(sx(u,this.pendingTimeline),this.pendingTimeline=void 0):u.onfinish=()=>{const{onComplete:h}=this.options;l.set(pc(t,this.options,n)),h&&h(),this.cancel(),this.resolveFinishedPromise()},{animation:u,duration:s,times:a,type:o,ease:i,keyframes:t}}get duration(){const{resolved:t}=this;if(!t)return 0;const{duration:n}=t;return an(n)}get time(){const{resolved:t}=this;if(!t)return 0;const{animation:n}=t;return an(n.currentTime||0)}set time(t){const{resolved:n}=this;if(!n)return;const{animation:s}=n;s.currentTime=rn(t)}get speed(){const{resolved:t}=this;if(!t)return 1;const{animation:n}=t;return n.playbackRate}set speed(t){const{resolved:n}=this;if(!n)return;const{animation:s}=n;s.playbackRate=t}get state(){const{resolved:t}=this;if(!t)return"idle";const{animation:n}=t;return n.playState}get startTime(){const{resolved:t}=this;if(!t)return null;const{animation:n}=t;return n.startTime}attachTimeline(t){if(!this._resolved)this.pendingTimeline=t;else{const{resolved:n}=this;if(!n)return lt;const{animation:s}=n;sx(s,t)}return lt}play(){if(this.isStopped)return;const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.playState==="finished"&&this.updateFinishedPromise(),n.play()}pause(){const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:t}=this;if(!t)return;const{animation:n,keyframes:s,duration:a,type:i,ease:o,times:l}=t;if(n.playState==="idle"||n.playState==="finished")return;if(this.time){const{motionValue:d,onUpdate:u,onComplete:h,element:p,...g}=this.options,y=new Bp({...g,keyframes:s,duration:a,type:i,ease:o,times:l,isGenerator:!0}),v=rn(this.time);d.setWithVelocity(y.sample(v-Dl).value,y.sample(v).value,Dl)}const{onStop:c}=this.options;c&&c(),this.cancel()}complete(){const{resolved:t}=this;t&&t.animation.finish()}cancel(){const{resolved:t}=this;t&&t.animation.cancel()}static supports(t){const{motionValue:n,name:s,repeatDelay:a,repeatType:i,damping:o,type:l}=t;if(!n||!n.owner||!(n.owner.current instanceof HTMLElement))return!1;const{onUpdate:c,transformTemplate:d}=n.owner.getProps();return KS()&&s&&YS.has(s)&&!c&&!d&&!a&&i!=="mirror"&&o!==0&&l!=="inertia"}}const sC={type:"spring",stiffness:500,damping:25,restSpeed:10},rC=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),aC={type:"keyframes",duration:.8},iC={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},oC=(e,{keyframes:t})=>t.length>2?aC:qs.has(e)?e.startsWith("scale")?rC(t[1]):sC:iC;function lC({when:e,delay:t,delayChildren:n,staggerChildren:s,staggerDirection:a,repeat:i,repeatType:o,repeatDelay:l,from:c,elapsed:d,...u}){return!!Object.keys(u).length}const Vp=(e,t,n,s={},a,i)=>o=>{const l=Sp(s,e)||{},c=l.delay||s.delay||0;let{elapsed:d=0}=s;d=d-rn(c);let u={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...l,delay:-d,onUpdate:p=>{t.set(p),l.onUpdate&&l.onUpdate(p)},onComplete:()=>{o(),l.onComplete&&l.onComplete()},name:e,motionValue:t,element:i?void 0:a};lC(l)||(u={...u,...oC(e,u)}),u.duration&&(u.duration=rn(u.duration)),u.repeatDelay&&(u.repeatDelay=rn(u.repeatDelay)),u.from!==void 0&&(u.keyframes[0]=u.from);let h=!1;if((u.type===!1||u.duration===0&&!u.repeatDelay)&&(u.duration=0,u.delay===0&&(h=!0)),h&&!i&&t.get()!==void 0){const p=pc(u.keyframes,l);if(p!==void 0)return ae.update(()=>{u.onUpdate(p),u.onComplete()}),new P4([])}return!i&&vx.supports(u)?new vx(u):new Bp(u)};function cC({protectedKeys:e,needsAnimating:t},n){const s=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,s}function Hw(e,t,{delay:n=0,transitionOverride:s,type:a}={}){var i;let{transition:o=e.getDefaultTransition(),transitionEnd:l,...c}=t;s&&(o=s);const d=[],u=a&&e.animationState&&e.animationState.getState()[a];for(const h in c){const p=e.getValue(h,(i=e.latestValues[h])!==null&&i!==void 0?i:null),g=c[h];if(g===void 0||u&&cC(u,h))continue;const y={delay:n,...Sp(o||{},h)};let v=!1;if(window.MotionHandoffAnimation){const f=xw(e);if(f){const x=window.MotionHandoffAnimation(f,h,ae);x!==null&&(y.startTime=x,v=!0)}}Ou(e,h),p.start(Vp(h,p,g,e.shouldReduceMotion&&mw.has(h)?{type:!1}:y,e,v));const k=p.animation;k&&d.push(k)}return l&&Promise.all(d).then(()=>{ae.update(()=>{l&&U4(e,l)})}),d}function zu(e,t,n={}){var s;const a=hc(e,t,n.type==="exit"?(s=e.presenceContext)===null||s===void 0?void 0:s.custom:void 0);let{transition:i=e.getDefaultTransition()||{}}=a||{};n.transitionOverride&&(i=n.transitionOverride);const o=a?()=>Promise.all(Hw(e,a,n)):()=>Promise.resolve(),l=e.variantChildren&&e.variantChildren.size?(d=0)=>{const{delayChildren:u=0,staggerChildren:h,staggerDirection:p}=i;return dC(e,t,u+d,h,p,n)}:()=>Promise.resolve(),{when:c}=i;if(c){const[d,u]=c==="beforeChildren"?[o,l]:[l,o];return d().then(()=>u())}else return Promise.all([o(),l(n.delay)])}function dC(e,t,n=0,s=0,a=1,i){const o=[],l=(e.variantChildren.size-1)*s,c=a===1?(d=0)=>d*s:(d=0)=>l-d*s;return Array.from(e.variantChildren).sort(uC).forEach((d,u)=>{d.notify("AnimationStart",t),o.push(zu(d,t,{...i,delay:n+c(u)}).then(()=>d.notify("AnimationComplete",t)))}),Promise.all(o)}function uC(e,t){return e.sortNodePosition(t)}function hC(e,t,n={}){e.notify("AnimationStart",t);let s;if(Array.isArray(t)){const a=t.map(i=>zu(e,i,n));s=Promise.all(a)}else if(typeof t=="string")s=zu(e,t,n);else{const a=typeof t=="function"?hc(e,t,n.custom):t;s=Promise.all(Hw(e,a,n))}return s.then(()=>{e.notify("AnimationComplete",t)})}const pC=pp.length;function Jw(e){if(!e)return;if(!e.isControllingVariants){const n=e.parent?Jw(e.parent)||{}:{};return e.props.initial!==void 0&&(n.initial=e.props.initial),n}const t={};for(let n=0;n<pC;n++){const s=pp[n],a=e.props[s];(yi(a)||a===!1)&&(t[s]=a)}return t}const mC=[...hp].reverse(),fC=hp.length;function xC(e){return t=>Promise.all(t.map(({animation:n,options:s})=>hC(e,n,s)))}function gC(e){let t=xC(e),n=wx(),s=!0;const a=c=>(d,u)=>{var h;const p=hc(e,u,c==="exit"?(h=e.presenceContext)===null||h===void 0?void 0:h.custom:void 0);if(p){const{transition:g,transitionEnd:y,...v}=p;d={...d,...v,...y}}return d};function i(c){t=c(e)}function o(c){const{props:d}=e,u=Jw(e.parent)||{},h=[],p=new Set;let g={},y=1/0;for(let k=0;k<fC;k++){const f=mC[k],x=n[f],m=d[f]!==void 0?d[f]:u[f],b=yi(m),N=f===c?x.isActive:null;N===!1&&(y=k);let C=m===u[f]&&m!==d[f]&&b;if(C&&s&&e.manuallyAnimateOnMount&&(C=!1),x.protectedKeys={...g},!x.isActive&&N===null||!m&&!x.prevProp||dc(m)||typeof m=="boolean")continue;const T=yC(x.prevProp,m);let S=T||f===c&&x.isActive&&!C&&b||k>y&&b,L=!1;const D=Array.isArray(m)?m:[m];let te=D.reduce(a(f),{});N===!1&&(te={});const{prevResolvedValues:tt={}}=x,Ot={...tt,...te},Rt=we=>{S=!0,p.has(we)&&(L=!0,p.delete(we)),x.needsAnimating[we]=!0;const _=e.getValue(we);_&&(_.liveStyle=!1)};for(const we in Ot){const _=te[we],U=tt[we];if(g.hasOwnProperty(we))continue;let $=!1;Fu(_)&&Fu(U)?$=!iw(_,U):$=_!==U,$?_!=null?Rt(we):p.add(we):_!==void 0&&p.has(we)?Rt(we):x.protectedKeys[we]=!0}x.prevProp=m,x.prevResolvedValues=te,x.isActive&&(g={...g,...te}),s&&e.blockInitialAnimation&&(S=!1),S&&(!(C&&T)||L)&&h.push(...D.map(we=>({animation:we,options:{type:f}})))}if(p.size){const k={};p.forEach(f=>{const x=e.getBaseTarget(f),m=e.getValue(f);m&&(m.liveStyle=!0),k[f]=x??null}),h.push({animation:k})}let v=!!h.length;return s&&(d.initial===!1||d.initial===d.animate)&&!e.manuallyAnimateOnMount&&(v=!1),s=!1,v?t(h):Promise.resolve()}function l(c,d){var u;if(n[c].isActive===d)return Promise.resolve();(u=e.variantChildren)===null||u===void 0||u.forEach(p=>{var g;return(g=p.animationState)===null||g===void 0?void 0:g.setActive(c,d)}),n[c].isActive=d;const h=o(c);for(const p in n)n[p].protectedKeys={};return h}return{animateChanges:o,setActive:l,setAnimateFunction:i,getState:()=>n,reset:()=>{n=wx(),s=!0}}}function yC(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!iw(t,e):!1}function us(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function wx(){return{animate:us(!0),whileInView:us(),whileHover:us(),whileTap:us(),whileDrag:us(),whileFocus:us(),exit:us()}}class os{constructor(t){this.isMounted=!1,this.node=t}update(){}}class vC extends os{constructor(t){super(t),t.animationState||(t.animationState=gC(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();dc(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){var t;this.node.animationState.reset(),(t=this.unmountControls)===null||t===void 0||t.call(this)}}let wC=0;class bC extends os{constructor(){super(...arguments),this.id=wC++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:s}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===s)return;const a=this.node.animationState.setActive("exit",!t);n&&!t&&a.then(()=>n(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const jC={animation:{Feature:vC},exit:{Feature:bC}};function ji(e,t,n,s={passive:!0}){return e.addEventListener(t,n,s),()=>e.removeEventListener(t,n)}function Vi(e){return{point:{x:e.pageX,y:e.pageY}}}const kC=e=>t=>Tp(t)&&e(t,Vi(t));function Wa(e,t,n,s){return ji(e,t,kC(n),s)}const bx=(e,t)=>Math.abs(e-t);function NC(e,t){const n=bx(e.x,t.x),s=bx(e.y,t.y);return Math.sqrt(n**2+s**2)}class Qw{constructor(t,n,{transformPagePoint:s,contextWindow:a,dragSnapToOrigin:i=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const h=rd(this.lastMoveEventInfo,this.history),p=this.startEvent!==null,g=NC(h.offset,{x:0,y:0})>=3;if(!p&&!g)return;const{point:y}=h,{timestamp:v}=Te;this.history.push({...y,timestamp:v});const{onStart:k,onMove:f}=this.handlers;p||(k&&k(this.lastMoveEvent,h),this.startEvent=this.lastMoveEvent),f&&f(this.lastMoveEvent,h)},this.handlePointerMove=(h,p)=>{this.lastMoveEvent=h,this.lastMoveEventInfo=sd(p,this.transformPagePoint),ae.update(this.updatePoint,!0)},this.handlePointerUp=(h,p)=>{this.end();const{onEnd:g,onSessionEnd:y,resumeAnimation:v}=this.handlers;if(this.dragSnapToOrigin&&v&&v(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const k=rd(h.type==="pointercancel"?this.lastMoveEventInfo:sd(p,this.transformPagePoint),this.history);this.startEvent&&g&&g(h,k),y&&y(h,k)},!Tp(t))return;this.dragSnapToOrigin=i,this.handlers=n,this.transformPagePoint=s,this.contextWindow=a||window;const o=Vi(t),l=sd(o,this.transformPagePoint),{point:c}=l,{timestamp:d}=Te;this.history=[{...c,timestamp:d}];const{onSessionStart:u}=n;u&&u(t,rd(l,this.history)),this.removeListeners=Bi(Wa(this.contextWindow,"pointermove",this.handlePointerMove),Wa(this.contextWindow,"pointerup",this.handlePointerUp),Wa(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),es(this.updatePoint)}}function sd(e,t){return t?{point:t(e.point)}:e}function jx(e,t){return{x:e.x-t.x,y:e.y-t.y}}function rd({point:e},t){return{point:e,delta:jx(e,Gw(t)),offset:jx(e,SC(t)),velocity:CC(t,.1)}}function SC(e){return e[0]}function Gw(e){return e[e.length-1]}function CC(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,s=null;const a=Gw(e);for(;n>=0&&(s=e[n],!(a.timestamp-s.timestamp>rn(t)));)n--;if(!s)return{x:0,y:0};const i=an(a.timestamp-s.timestamp);if(i===0)return{x:0,y:0};const o={x:(a.x-s.x)/i,y:(a.y-s.y)/i};return o.x===1/0&&(o.x=0),o.y===1/0&&(o.y=0),o}const Yw=1e-4,PC=1-Yw,TC=1+Yw,Zw=.01,EC=0-Zw,_C=0+Zw;function ut(e){return e.max-e.min}function AC(e,t,n){return Math.abs(e-t)<=n}function kx(e,t,n,s=.5){e.origin=s,e.originPoint=le(t.min,t.max,e.origin),e.scale=ut(n)/ut(t),e.translate=le(n.min,n.max,e.origin)-e.originPoint,(e.scale>=PC&&e.scale<=TC||isNaN(e.scale))&&(e.scale=1),(e.translate>=EC&&e.translate<=_C||isNaN(e.translate))&&(e.translate=0)}function $a(e,t,n,s){kx(e.x,t.x,n.x,s?s.originX:void 0),kx(e.y,t.y,n.y,s?s.originY:void 0)}function Nx(e,t,n){e.min=n.min+t.min,e.max=e.min+ut(t)}function FC(e,t,n){Nx(e.x,t.x,n.x),Nx(e.y,t.y,n.y)}function Sx(e,t,n){e.min=t.min-n.min,e.max=e.min+ut(t)}function qa(e,t,n){Sx(e.x,t.x,n.x),Sx(e.y,t.y,n.y)}function MC(e,{min:t,max:n},s){return t!==void 0&&e<t?e=s?le(t,e,s.min):Math.max(e,t):n!==void 0&&e>n&&(e=s?le(n,e,s.max):Math.min(e,n)),e}function Cx(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function DC(e,{top:t,left:n,bottom:s,right:a}){return{x:Cx(e.x,n,a),y:Cx(e.y,t,s)}}function Px(e,t){let n=t.min-e.min,s=t.max-e.max;return t.max-t.min<e.max-e.min&&([n,s]=[s,n]),{min:n,max:s}}function OC(e,t){return{x:Px(e.x,t.x),y:Px(e.y,t.y)}}function RC(e,t){let n=.5;const s=ut(e),a=ut(t);return a>s?n=Gr(t.min,t.max-s,e.min):s>a&&(n=Gr(e.min,e.max-a,t.min)),mn(0,1,n)}function LC(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const Wu=.35;function IC(e=Wu){return e===!1?e=0:e===!0&&(e=Wu),{x:Tx(e,"left","right"),y:Tx(e,"to
130p","bottom")}}function Tx(e,t,n){return{min:Ex(e,t),max:Ex(e,n)}}function Ex(e,t){return typeof e=="number"?e:e[t]||0}const _x=()=>({translate:0,scale:1,origin:0,originPoint:0}),mr=()=>({x:_x(),y:_x()}),Ax=()=>({min:0,max:0}),fe=()=>({x:Ax(),y:Ax()});function ft(e){return[e("x"),e("y")]}function Kw({top:e,left:t,right:n,bottom:s}){return{x:{min:t,max:n},y:{min:e,max:s}}}function BC({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function VC(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),s=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:s.y,right:s.x}}function ad(e){return e===void 0||e===1}function $u({scale:e,scaleX:t,scaleY:n}){return!ad(e)||!ad(t)||!ad(n)}function ms(e){return $u(e)||Xw(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function Xw(e){return Fx(e.x)||Fx(e.y)}function Fx(e){return e&&e!=="0%"}function Ol(e,t,n){const s=e-n,a=t*s;return n+a}function Mx(e,t,n,s,a){return a!==void 0&&(e=Ol(e,a,s)),Ol(e,n,s)+t}function qu(e,t=0,n=1,s,a){e.min=Mx(e.min,t,n,s,a),e.max=Mx(e.max,t,n,s,a)}function e1(e,{x:t,y:n}){qu(e.x,t.translate,t.scale,t.originPoint),qu(e.y,n.translate,n.scale,n.originPoint)}const Dx=.999999999999,Ox=1.0000000000001;function UC(e,t,n,s=!1){const a=n.length;if(!a)return;t.x=t.y=1;let i,o;for(let l=0;l<a;l++){i=n[l],o=i.projectionDelta;const{visualElement:c}=i.options;c&&c.props.style&&c.props.style.display==="contents"||(s&&i.options.layoutScroll&&i.scroll&&i!==i.root&&xr(e,{x:-i.scroll.offset.x,y:-i.scroll.offset.y}),o&&(t.x*=o.x.scale,t.y*=o.y.scale,e1(e,o)),s&&ms(i.latestValues)&&xr(e,i.latestValues))}t.x<Ox&&t.x>Dx&&(t.x=1),t.y<Ox&&t.y>Dx&&(t.y=1)}function fr(e,t){e.min=e.min+t,e.max=e.max+t}function Rx(e,t,n,s,a=.5){const i=le(e.min,e.max,a);qu(e,t,n,i,s)}function xr(e,t){Rx(e.x,t.x,t.scaleX,t.scale,t.originX),Rx(e.y,t.y,t.scaleY,t.scale,t.originY)}function t1(e,t){return Kw(VC(e.getBoundingClientRect(),t))}function zC(e,t,n){const s=t1(e,n),{scroll:a}=t;return a&&(fr(s.x,a.offset.x),fr(s.y,a.offset.y)),s}const n1=({current:e})=>e?e.ownerDocument.defaultView:null,WC=new WeakMap;class $C{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=fe(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:s}=this.visualElement;if(s&&s.isPresent===!1)return;const a=u=>{const{dragSnapToOrigin:h}=this.getProps();h?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor(Vi(u).point)},i=(u,h)=>{const{drag:p,dragPropagation:g,onDragStart:y}=this.getProps();if(p&&!g&&(this.openDragLock&&this.openDragLock(),this.openDragLock=R4(p),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),ft(k=>{let f=this.getAxisMotionValue(k).get()||0;if(Jt.test(f)){const{projection:x}=this.visualElement;if(x&&x.layout){const m=x.layout.layoutBox[k];m&&(f=ut(m)*(parseFloat(f)/100))}}this.originPoint[k]=f}),y&&ae.postRender(()=>y(u,h)),Ou(this.visualElement,"transform");const{animationState:v}=this.visualElement;v&&v.setActive("whileDrag",!0)},o=(u,h)=>{const{dragPropagation:p,dragDirectionLock:g,onDirectionLock:y,onDrag:v}=this.getProps();if(!p&&!this.openDragLock)return;const{offset:k}=h;if(g&&this.currentDirection===null){this.currentDirection=qC(k),this.currentDirection!==null&&y&&y(this.currentDirection);return}this.updateAxis("x",h.point,k),this.updateAxis("y",h.point,k),this.visualElement.render(),v&&v(u,h)},l=(u,h)=>this.stop(u,h),c=()=>ft(u=>{var h;return this.getAnimationState(u)==="paused"&&((h=this.getAxisMotionValue(u).animation)===null||h===void 0?void 0:h.play())}),{dragSnapToOrigin:d}=this.getProps();this.panSession=new Qw(t,{onSessionStart:a,onStart:i,onMove:o,onSessionEnd:l,resumeAnimation:c},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:d,contextWindow:n1(this.visualElement)})}stop(t,n){const s=this.isDragging;if(this.cancel(),!s)return;const{velocity:a}=n;this.startAnimation(a);const{onDragEnd:i}=this.getProps();i&&ae.postRender(()=>i(t,n))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:s}=this.getProps();!s&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,s){const{drag:a}=this.getProps();if(!s||!yo(t,a,this.currentDirection))return;const i=this.getAxisMotionValue(t);let o=this.originPoint[t]+s[t];this.constraints&&this.constraints[t]&&(o=MC(o,this.constraints[t],this.elastic[t])),i.set(o)}resolveConstraints(){var t;const{dragConstraints:n,dragElastic:s}=this.getProps(),a=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(t=this.visualElement.projection)===null||t===void 0?void 0:t.layout,i=this.constraints;n&&hr(n)?this.constraints||(this.constraints=this.resolveRefConstraints()):n&&a?this.constraints=DC(a.layoutBox,n):this.constraints=!1,this.elastic=IC(s),i!==this.constraints&&a&&this.constraints&&!this.hasMutatedConstraints&&ft(o=>{this.constraints!==!1&&this.getAxisMotionValue(o)&&(this.constraints[o]=LC(a.layoutBox[o],this.constraints[o]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!hr(t))return!1;const s=t.current,{projection:a}=this.visualElement;if(!a||!a.layout)return!1;const i=zC(s,a.root,this.visualElement.getTransformPagePoint());let o=OC(a.layout.layoutBox,i);if(n){const l=n(BC(o));this.hasMutatedConstraints=!!l,l&&(o=Kw(l))}return o}startAnimation(t){const{drag:n,dragMomentum:s,dragElastic:a,dragTransition:i,dragSnapToOrigin:o,onDragTransitionEnd:l}=this.getProps(),c=this.constraints||{},d=ft(u=>{if(!yo(u,n,this.currentDirection))return;
vendor: 31,907 bytes, line 130
130let h=c&&c[u]||{};o&&(h={min:0,max:0});const p=a?200:1e6,g=a?40:1e7,y={type:"inertia",velocity:s?t[u]:0,bounceStiffness:p,bounceDamping:g,timeConstant:750,restDelta:1,restSpeed:10,...i,...h};return this.startAxisValueAnimation(u,y)});return Promise.all(d).then(l)}startAxisValueAnimation(t,n){const s=this.getAxisMotionValue(t);return Ou(this.visualElement,t),s.start(Vp(t,s,0,n,this.visualElement,!1))}stopAnimation(){ft(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){ft(t=>{var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.pause()})}getAnimationState(t){var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.state}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,s=this.visualElement.getProps(),a=s[n];return a||this.visualElement.getValue(t,(s.initial?s.initial[t]:void 0)||0)}snapToCursor(t){ft(n=>{const{drag:s}=this.getProps();if(!yo(n,s,this.currentDirection))return;const{projection:a}=this.visualElement,i=this.getAxisMotionValue(n);if(a&&a.layout){const{min:o,max:l}=a.layout.layoutBox[n];i.set(t[n]-le(o,l,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:s}=this.visualElement;if(!hr(n)||!s||!this.constraints)return;this.stopAnimation();const a={x:0,y:0};ft(o=>{const l=this.getAxisMotionValue(o);if(l&&this.constraints!==!1){const c=l.get();a[o]=RC({min:c,max:c},this.constraints[o])}});const{transformTemplate:i}=this.visualElement.getProps();this.visualElement.current.style.transform=i?i({},""):"none",s.root&&s.root.updateScroll(),s.updateLayout(),this.resolveConstraints(),ft(o=>{if(!yo(o,t,null))return;const l=this.getAxisMotionValue(o),{min:c,max:d}=this.constraints[o];l.set(le(c,d,a[o]))})}addListeners(){if(!this.visualElement.current)return;WC.set(this.visualElement,this);const t=this.visualElement.current,n=Wa(t,"pointerdown",c=>{const{drag:d,dragListener:u=!0}=this.getProps();d&&u&&this.start(c)}),s=()=>{const{dragConstraints:c}=this.getProps();hr(c)&&c.current&&(this.constraints=this.resolveRefConstraints())},{projection:a}=this.visualElement,i=a.addEventListener("measure",s);a&&!a.layout&&(a.root&&a.root.updateScroll(),a.updateLayout()),ae.read(s);const o=ji(window,"resize",()=>this.scalePositionWithinConstraints()),l=a.addEventListener("didUpdate",({delta:c,hasLayoutChanged:d})=>{this.isDragging&&d&&(ft(u=>{const h=this.getAxisMotionValue(u);h&&(this.originPoint[u]+=c[u].translate,h.set(h.get()+c[u].translate))}),this.visualElement.render())});return()=>{o(),n(),i(),l&&l()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:s=!1,dragPropagation:a=!1,dragConstraints:i=!1,dragElastic:o=Wu,dragMomentum:l=!0}=t;return{...t,drag:n,dragDirectionLock:s,dragPropagation:a,dragConstraints:i,dragElastic:o,dragMomentum:l}}}function yo(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function qC(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class HC extends os{constructor(t){super(t),this.removeGroupControls=lt,this.removeListeners=lt,this.controls=new $C(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||lt}unmount(){this.removeGroupControls(),this.removeListeners()}}const Lx=e=>(t,n)=>{e&&ae.postRender(()=>e(t,n))};class JC extends os{constructor(){super(...arguments),this.removePointerDownListener=lt}onPointerDown(t){this.session=new Qw(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:n1(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:s,onPanEnd:a}=this.node.getProps();return{onSessionStart:Lx(t),onStart:Lx(n),onMove:s,onEnd:(i,o)=>{delete this.session,a&&ae.postRender(()=>a(i,o))}}}mount(){this.removePointerDownListener=Wa(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const qo={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function Ix(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const ja={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(B.test(e))e=parseFloat(e);else return e;const n=Ix(e,t.target.x),s=Ix(e,t.target.y);return`${n}% ${s}%`}},QC={correct:(e,{treeScale:t,projectionDelta:n})=>{const s=e,a=ts.parse(e);if(a.length>5)return s;const i=ts.createTransformer(e),o=typeof a[0]!="number"?1:0,l=n.x.scale*t.x,c=n.y.scale*t.y;a[0+o]/=l,a[1+o]/=c;const d=le(l,c,.5);return typeof a[2+o]=="number"&&(a[2+o]/=d),typeof a[3+o]=="number"&&(a[3+o]/=d),i(a)}};class GC extends w.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:s,layoutId:a}=this.props,{projection:i}=t;f4(YC),i&&(n.group&&n.group.add(i),s&&s.register&&a&&s.register(i),i.root.didUpdate(),i.addEventListener("animationComplete",()=>{this.safeToRemove()}),i.setOptions({...i.options,onExitComplete:()=>this.safeToRemove()})),qo.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:s,drag:a,isPresent:i}=this.props,o=s.projection;return o&&(o.isPresent=i,a||t.layoutDependency!==n||n===void 0?o.willUpdate():this.safeToRemove(),t.isPresent!==i&&(i?o.promote():o.relegate()||ae.postRender(()=>{const l=o.getStack();(!l||!l.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),fp.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:s}=this.props,{projection:a}=t;a&&(a.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(a),s&&s.deregister&&s.deregister(a))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function s1(e){const[t,n]=Bv(),s=w.useContext(op);return r.jsx(GC,{...e,layoutGroup:s,switchLayoutGroup:w.useContext(Jv),isPresent:t,safeToRemove:n})}const YC={borderRadius:{...ja,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:ja,borderTopRightRadius:ja,borderBottomLeftRadius:ja,borderBottomRightRadius:ja,boxShadow:QC};function ZC(e,t,n){const s=Ie(e)?e:wi(e);return s.start(Vp("",s,t,n)),s.animation}function KC(e){return e instanceof SVGElement&&e.tagName!=="svg"}const XC=(e,t)=>e.depth-t.depth;class e6{constructor(){this.children=[],this.isDirty=!1}add(t){Ep(this.children,t),this.isDirty=!0}remove(t){_p(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(XC),this.isDirty=!1,this.children.forEach(t)}}function t6(e,t){const n=Qt.now(),s=({timestamp:a})=>{const i=a-n;i>=t&&(es(s),e(i-t))};return ae.read(s,!0),()=>es(s)}const r1=["TopLeft","TopRight","BottomLeft","BottomRight"],n6=r1.length,Bx=e=>typeof e=="string"?parseFloat(e):e,Vx=e=>typeof e=="number"||B.test(e);function s6(e,t,n,s,a,i){a?(e.opacity=le(0,n.opacity!==void 0?n.opacity:1,r6(s)),e.opacityExit=le(t.opacity!==void 0?t.opacity:1,0,a6(s))):i&&(e.opacity=le(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,s));for(let o=0;o<n6;o++){const l=`border${r1[o]}Radius`;let c=Ux(t,l),d=Ux(n,l);if(c===void 0&&d===void 0)continue;c||(c=0),d||(d=0),c===0||d===0||Vx(c)===Vx(d)?(e[l]=Math.max(le(Bx(c),Bx(d),s),0),(Jt.test(d)||Jt.test(c))&&(e[l]+="%")):e[l]=d}(t.rotate||n.rotate)&&(e.rotate=le(t.rotate||0,n.rotate||0,s))}function Ux(e,t){return e[t]!==void 0?e[t]:e.borderRadius}const r6=a1(0,.5,kw),a6=a1(.5,.95,lt);function a1(e,t,n){return s=>s<e?0:s>t?1:n(Gr(e,t,s))}function zx(e,t){e.min=t.min,e.max=t.max}function mt(e,t){zx(e.x,t.x),zx(e.y,t.y)}function Wx(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function $x(e,t,n,s,a){return e-=t,e=Ol(e,1/n,s),a!==void 0&&(e=Ol(e,1/a,s)),e}function i6(e,t=0,n=1,s=.5,a,i=e,o=e){if(Jt.test(t)&&(t=parseFloat(t),t=le(o.min,o.max,t/100)-o.min),typeof t!="number")return;let l=le(i.min,i.max,s);e===i&&(l-=t),e.min=$x(e.min,t,n,l,a),e.max=$x(e.max,t,n,l,a)}function qx(e,t,[n,s,a],i,o){i6(e,t[n],t[s],t[a],t.scale,i,o)}const o6=["x","scaleX","originX"],l6=["y","scaleY","originY"];function Hx(e,t,n,s){qx(e.x,t,o6,n?n.x:void 0,s?s.x:void 0),qx(e.y,t,l6,n?n.y:void 0,s?s.y:void 0)}function Jx(e){return e.translate===0&&e.scale===1}function i1(e){return Jx(e.x)&&Jx(e.y)}function Qx(e,t){return e.min===t.min&&e.max===t.max}function c6(e,t){return Qx(e.x,t.x)&&Qx(e.y,t.y)}function Gx(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function o1(e,t){return Gx(e.x,t.x)&&Gx(e.y,t.y)}function Yx(e){return ut(e.x)/ut(e.y)}function Zx(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class d6{constructor(){this.members=[]}add(t){Ep(this.members,t),t.scheduleRender()}remove(t){if(_p(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(a=>t===a);if(n===0)return!1;let s;for(let a=n;a>=0;a--){const i=this.members[a];if(i.isPresent!==!1){s=i;break}}return s?(this.promote(s),!0):!1}promote(t,n){const s=this.lead;if(t!==s&&(this.prevLead=s,this.lead=t,t.show(),s)){s.instance&&s.scheduleRender(),t.scheduleRender(),t.resumeFrom=s,n&&(t.resumeFrom.preserveOpacity=!0),s.snapshot&&(t.snapshot=s.snapshot,t.snapshot.latestValues=s.animationValues||s.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:a}=t.options;a===!1&&s.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:s}=t;n.onExitComplete&&n.onExitComplete(),s&&s.options.onExitComplete&&s.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function u6(e,t,n){let s="";const a=e.x.translate/t.x,i=e.y.translate/t.y,o=(n==null?void 0:n.z)||0;if((a||i||o)&&(s=`translate3d(${a}px, ${i}px, ${o}px) `),(t.x!==1||t.y!==1)&&(s+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:d,rotate:u,rotateX:h,rotateY:p,skewX:g,skewY:y}=n;d&&(s=`perspective(${d}px) ${s}`),u&&(s+=`rotate(${u}deg) `),h&&(s+=`rotateX(${h}deg) `),p&&(s+=`rotateY(${p}deg) `),g&&(s+=`skewX(${g}deg) `),y&&(s+=`skewY(${y}deg) `)}const l=e.x.scale*t.x,c=e.y.scale*t.y;return(l!==1||c!==1)&&(s+=`scale(${l}, ${c})`),s||"none"}const fs={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},Aa=typeof window<"u"&&window.MotionDebug!==void 0,id=["","X","Y","Z"],h6={visibility:"hidden"},Kx=1e3;let p6=0;function od(e,t,n,s){const{latestValues:a}=t;a[e]&&(n[e]=a[e],t.setStaticValue(e,0),s&&(s[e]=0))}function l1(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=xw(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:a,layoutId:i}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",ae,!(a||i))}const{parent:s}=e;s&&!s.hasCheckedOptimisedAppear&&l1(s)}function c1({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:s,resetTransform:a}){return class{constructor(o={},l=t==null?void 0:t()){this.id=p6++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,Aa&&(fs.totalNodes=fs.resolvedTargetDeltas=fs.recalculatedProjection=0),this.nodes.forEach(x6),this.nodes.forEach(b6),this.nodes.forEach(j6),this.nodes.forEach(g6),Aa&&window.MotionDebug.record(fs)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=o,this.root=l?l.root||l:this,this.path=l?[...l.path,l]:[],this.parent=l,this.depth=l?l.depth+1:0;for(let c=0;c<this.path.length;c++)this.path[c].shouldResetTransform=!0;this.root===this&&(this.nodes=new e6)}addEventListener(o,l){return this.eventHandlers.has(o)||this.eventHandlers.set(o,new Ap),this.eventHandlers.get(o).add(l)}notifyListeners(o,...l){const c=this.eventHandlers.get(o);c&&c.notify(...l)}hasListeners(o){return this.eventHandlers.has(o)}mount(o,l=this.root.hasTreeAnimated){if(this.instance)return;this.isSVG=KC(o),this.instance=o;const{layoutId:c,layout:d,visualElement:u}=this.options;if(u&&!u.current&&u.mount(o),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),l&&(d||c)&&(this.isLayoutDirty=!0),e){let h;const p=()=>this.root.updateBlockedByResize=!1;e(o,()=>{this.root.updateBlockedByResize=!0,h&&h(),h=t6(p,250),qo.hasAnimatedSinceResize&&(qo.hasAnimatedSinceResize=!1,this.nodes.forEach(eg))})}c&&this.root.registerSharedNode(c,this),this.options.animate!==!1&&u&&(c||d)&&this.addEventListener("didUpdate",({delta:h,hasLayoutChanged:p,hasRelativeTargetChanged:g,layout:y})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const v=this.options.transition||u.getDefaultTransition()||P6,{onLayoutAnimationStart:k,onLayoutAnimationComplete:f}=u.getProps(),x=!this.targetLayout||!o1(this.targetLayout,y)||g,m=!p&&g;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||m||p&&(x||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(h,m);const b={...Sp(v,"layout"),onPlay:k,onComplete:f};(u.shouldReduceMotion||this.options.layoutRoot)&&(b.delay=0,b.type=!1),this.startAnimation(b)}else p||eg(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=y})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const o=this.getStack();o&&o.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,es(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(k6),this.animationId++)}getTransformTemplate(){const{visualElement:o}=this.options;return o&&o.getProps().transformTemplate}willUpdate(o=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&l1(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let u=0;u<this.path.length;u++){const h=this.path[u];h.shouldResetTransform=!0,h.updateScroll("snapshot"),h.options.layoutRoot&&h.willUpdate(!1)}const{layoutId:l,layout:c}=this.options;if(l===void 0&&!c)return;const d=this.getTransformTemplate();this.prevTransformTemplateValue=d?d(this.latestValues,""):void 0,this.updateSnapshot(),o&&this.notifyListeners("willUpdate")}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){this.unblockUpdate(),this.clearAllSnapshots(),this.nodes.forEach(Xx);return}this.isUpdating||this.nodes.forEach(v6),this.isUpdating=!1,this.nodes.forEach(w6),this.nodes.forEach(m6),this.nodes.forEach(f6),this.clearAllSnapshots();const l=Qt.now();Te.delta=mn(0,1e3/60,l-Te.timestamp),Te.timestamp=l,Te.isProcessing=!0,Zc.update.process(Te),Zc.preRender.process(Te),Zc.render.process(Te),Te.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,fp.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(y6),this.sharedNodes.forEach(N6)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,ae.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){ae.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let c=0;c<this.path.length;c++)this.path[c].updateScroll();const o=this.layout;this.layout=this.measure(!1),this.layoutCorrected=fe(),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners("measure",this.layout.layoutBox);const{visualElement:l}=this.options;l&&l.notify("LayoutMeasure",this.layout.layoutBox,o?o.layoutBox:void 0)}updateScroll(o="measure"){let l=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===o&&(l=!1),l){const c=s(this.instance);this.scroll={animationId:this.root.animationId,phase:o,isRoot:c,offset:n(this.instance),wasRoot:this.scroll?this.scroll.isRoot:c}}}resetTransform(){if(!a)return;const o=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,l=this.projectionDelta&&!i1(this.projectionDelta),c=this.getTransformTemplate(),d=c?c(this.latestValues,""):void 0,u=d!==this.prevTransformTemplateValue;o&&(l||ms(this.latestValues)||u)&&(a(this.instance,d),this.shouldResetTransform=!1,this.scheduleRender())}measure(o=!0){const l=this.measurePageBox();let c=this.removeElementScroll(l);return o&&(c=this.removeTransform(c)),T6(c),{animationId:this.root.animationId,measuredBox:l,layoutBox:c,latestValues:{},source:this.id}}measurePageBox(){var o;const{visualElement:l}=this.options;if(!l)return fe();const c=l.measureViewportBox();if(!(((o=this.scroll)===null||o===void 0?void 0:o.wasRoot)||this.path.some(E6))){const{scroll:u}=this.root;u&&(fr(c.x,u.offset.x),fr(c.y,u.offset.y))}return c}removeElementScroll(o){var l;const c=fe();if(mt(c,o),!((l=this.scroll)===null||l===void 0)&&l.wasRoot)return c;for(let d=0;d<this.path.length;d++){const u=this.path[d],{scroll:h,options:p}=u;u!==this.root&&h&&p.layoutScroll&&(h.wasRoot&&mt(c,o),fr(c.x,h.offset.x),fr(c.y,h.offset.y))}return c}applyTransform(o,l=!1){const c=fe();mt(c,o);for(let d=0;d<this.path.length;d++){const u=this.path[d];!l&&u.options.layoutScroll&&u.scroll&&u!==u.root&&xr(c,{x:-u.scroll.offset.x,y:-u.scroll.offset.y}),ms(u.latestValues)&&xr(c,u.latestValues)}return ms(this.latestValues)&&xr(c,this.latestValues),c}removeTransform(o){const l=fe();mt(l,o);for(let c=0;c<this.path.length;c++){const d=this.path[c];if(!d.instance||!ms(d.latestValues))continue;$u(d.latestValues)&&d.updateSnapshot();const u=fe(),h=d.measurePageBox();mt(u,h),Hx(l,d.latestValues,d.snapshot?d.snapshot.layoutBox:void 0,u)}return ms(this.latestValues)&&Hx(l,this.latestValues),l}setTargetDelta(o){this.targetDelta=o,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(o){this.options={...this.options,...o,crossfade:o.crossfade!==void 0?o.crossfade:!0}}clearMeasurements(){this.scroll=void 0,this.layout=void 0,this.snapshot=void 0,this.prevTransformTemplateValue=void 0,this.targetDelta=void 0,this.target=void 0,this.isLayoutDirty=!1}forceRelativeParentToResolveTarget(){this.relativeParent&&this.relativeParent.resolvedRelativeTargetAt!==Te.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(o=!1){var l;const c=this.getLead();this.isProjectionDirty||(this.isProjectionDirty=c.isProjectionDirty),this.isTransformDirty||(this.isTransformDirty=c.isTransformDirty),this.isSharedProjectionDirty||(this.isSharedProjectionDirty=c.isSharedProjectionDirty);const d=!!this.resumingFrom||this!==c;if(!(o||d&&this.isSharedProjectionDirty||this.isProjectionDirty||!((l=this.parent)===null||l===void 0)&&l.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;const{layout:h,layoutId:p}=this.options;if(!(!this.layout||!(h||p))){if(this.resolvedRelativeTargetAt=Te.timestamp,!this.targetDelta&&!this.relativeTarget){const g=this.getClosestProjectingParent();g&&g.layout&&this.animationProgress!==1?(this.relativeParent=g,this.forceRelativeParentToResolveTarget(),this.relativeTarget=fe(),this.relativeTargetOrigin=fe(),qa(this.relativeTargetOrigin,this.layout.layoutBox,g.layout.layoutBox),mt(this.relativeTarget,this.relativeTargetOrigin)):this.relativeParent=this.relativeTarget=void 0}if(!(!this.relativeTarget&&!this.targetDelta)){if(this.target||(this.target=fe(),this.targetWithTransforms=fe()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target?(this.forceRelativeParentToResolveTarget(),FC(this.target,this.relativeTarget,this.relativeParent.target)):this.targetDelta?(this.resumingFrom?this.target=this.applyTransform(this.layout.layoutBox):mt(this.target,this.layout.layoutBox),e1(this.target,this.targetDelta)):mt(this.target,this.layout.layoutBox),this.attemptToResolveRelativeTarget){this.attemptToResolveRelativeTarget=!1;const g=this.getClosestProjectingParent();g&&!!g.resumingFrom==!!this.resumingFrom&&!g.options.layoutScroll&&g.target&&this.animationProgress!==1?(this.relativeParent=g,this.forceRelativeParentToResolveTarget(),this.relativeTarget=fe(),this.relativeTargetOrigin=fe(),qa(this.relativeTargetOrigin,this.target,g.target),mt(this.relativeTarget,this.relativeTargetOrigin)):this.relativeParent=this.relativeTarget=void 0}Aa&&fs.resolvedTargetDeltas++}}}getClosestProjectingParent(){if(!(!this.parent||$u(this.parent.latestValues)||Xw(this.parent.latestValues)))return this.parent.isProjecting()?this.parent:this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}calcProjection(){var o;const l=this.getLead(),c=!!this.resumingFrom||this!==l;let d=!0;if((this.isProjectionDirty||!((o=this.parent)===null||o===void 0)&&o.isProjectionDirty)&&(d=!1),c&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(d=!1),this.resolvedRelativeTargetAt===Te.timestamp&&(d=!1),d)return;const{layout:u,layoutId:h}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(u||h))return;mt(this.layoutCorrected,this.layout.layoutBox);const p=this.treeScale.x,g=this.treeScale.y;UC(this.layoutCorrected,this.treeScale,this.path,c),l.layout&&!l.target&&(this.treeScale.x!==1||this.treeScale.y!==1)&&(l.target=l.layout.layoutBox,l.targetWithTransforms=fe());const{target:y}=l;if(!y){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}!this.projectionDelta||!this.prevProjectionDelta?this.createProjectionDeltas():(Wx(this.prevProjectionDelta.x,this.projectionDelta.x),Wx(this.prevProjectionDelta.y,this.projectionDelta.y)),$a(this.projectionDelta,this.layoutCorrected,y,this.latestValues),(this.treeScale.x!==p||this.treeScale.y!==g||!Zx(this.projectionDelta.x,this.prevProjectionDelta.x)||!Zx(this.projectionDelta.y,this.prevProjectionDelta.y))&&(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",y)),Aa&&fs.recalculatedProjection++}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(o=!0){var l;if((l=this.options.visualElement)===null||l===void 0||l.scheduleRender(),o){const c=this.getStack();c&&c.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=mr(),this.projectionDelta=mr(),this.projectionDeltaWithTransform=mr()}setAnimationOrigin(o,l=!1){const c=this.snapshot,d=c?c.latestValues:{},u={...this.latestValues},h=mr();(!this.relativeParent||!this.relativeParent.options.layoutRoot)&&(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!l;const p=fe(),g=c?c.source:void 0,y=this.layout?this.layout.source:void 0,v=g!==y,k=this.getStack(),f=!k||k.members.length<=1,x=!!(v&&!f&&this.options.crossfade===!0&&!this.path.some(C6));this.animationProgress=0;let m;this.mixTargetDelta=b=>{const N=b/1e3;tg(h.x,o.x,N),tg(h.y,o.y,N),this.setTargetDelta(h),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(qa(p,this.layout.layoutBox,this.relativeParent.layout.layoutBox),S6(this.relativeTarget,this.relativeTargetOrigin,p,N),m&&c6(this.relativeTarget,m)&&(this.isProjectionDirty=!1),m||(m=fe()),mt(m,this.relativeTarget)),v&&(this.animationValues=u,s6(u,d,this.latestValues,N,x,f)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=N},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(o){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(es(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=ae.update(()=>{qo.hasAnimatedSinceResize=!0,this.currentAnimation=ZC(0,Kx,{...o,onUpdate:l=>{this.mixTargetDelta(l),o.onUpdate&&o.onUpdate(l)},onComplete:()=>{o.onComplete&&o.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const o=this.getStack();o&&o.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(Kx),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const o=this.getLead();let{targetWithTransforms:l,target:c,layout:d,latestValues:u}=o;if(!(!l||!c||!d)){if(this!==o&&this.layout&&d&&d1(this.options.animationType,this.layout.layoutBox,d.layoutBox)){c=this.target||fe();const h=ut(this.layout.layoutBox.x);c.x.min=o.target.x.min,c.x.max=c.x.min+h;const p=ut(this.layout.layoutBox.y);c.y.min=o.target.y.min,c.y.max=c.y.min+p}mt(l,c),xr(l,u),$a(this.projectionDeltaWithTransform,this.layoutCorrected,l,u)}}registerSharedNode(o,l){this.sharedNodes.has(o)||this.sharedNodes.set(o,new d6),this.sharedNodes.get(o).add(l);const d=l.options.initialPromotionConfig;l.promote({transition:d?d.transition:void 0,preserveFollowOpacity:d&&d.shouldPreserveFollowOpacity?d.shouldPreserveFollowOpacity(l):void 0})}isLead(){const o=this.getStack();return o?o.lead===this:!0}getLead(){var o;const{layoutId:l}=this.options;return l?((o=this.getStack())===null||o===void 0?void 0:o.lead)||this:this}getPrevLead(){var o;const{layoutId:l}=this.options;return l?(o=this.getStack())===null||o===void 0?void 0:o.prevLead:void 0}getStack(){const{layoutId:o}=this.options;if(o)return this.root.sharedNodes.get(o)}promote({needsReset:o,transition:l,preserveFollowOpacity:c}={}){const d=this.getStack();d&&d.promote(this,c),o&&(this.projectionDelta=void 0,this.needsReset=!0),l&&this.setOptions({transition:l})}relegate(){const o=this.getStack();return o?o.relegate(this):!1}resetSkewAndRotation(){const{visualElement:o}=this.options;if(!o)return;let l=!1;const{latestValues:c}=o;if((c.z||c.rotate||c.rotateX||c.rotateY||c.rotateZ||c.skewX||c.skewY)&&(l=!0),!l)return;const d={};c.z&&od("z",o,d,this.animationValues);for(let u=0;u<id.length;u++)od(`rotate${id[u]}`,o,d,this.animationValues),od(`skew${id[u]}`,o,d,this.animationValues);o.render();for(const u in d)o.setStaticValue(u,d[u]),this.animationValues&&(this.animationValues[u]=d[u]);o.scheduleRender()}getProjectionStyles(o){var l,c;if(!this.instance||this.isSVG)return;if(!this.isVisible)return h6;const d={visibility:""},u=this.getTransformTemplate();if(this.needsReset)return this.needsReset=!1,d.opacity="",d.pointerEvents=Wo(o==null?void 0:o.pointerEvents)||"",d.transform=u?u(this.latestValues,""):"none",d;const h=this.getLead();if(!this.projectionDelta||!this.layout||!h.target){const v={};return this.options.layoutId&&(v.opacity=this.latestValues.opacity!==void 0?this.latestValues.opacity:1,v.pointerEvents=Wo(o==null?void 0:o.pointerEvents)||""),this.hasProjected&&!ms(this.latestValues)&&(v.transform=u?u({},""):"none",this.hasProjected=!1),v}const p=h.animationValues||h.latestValues;this.applyTransformsToTarget(),d.transform=u6(this.projectionDeltaWithTransform,this.treeScale,p),u&&(d.transform=u(p,d.transform));const{x:g,y}=this.projectionDelta;d.transformOrigin=`${g.origin*100}% ${y.origin*100}% 0`,h.animationValues?d.opacity=h===this?(c=(l=p.opacity)!==null&&l!==void 0?l:this.latestValues.opacity)!==null&&c!==void 0?c:1:this.preserveOpacity?this.latestValues.opacity:p.opacityExit:d.opacity=h===this?p.opacity!==void 0?p.opacity:"":p.opacityExit!==void 0?p.opacityExit:0;for(const v in _l){if(p[v]===void 0)continue;const{correct:k,applyTo:f}=_l[v],x=d.transform==="none"?p[v]:k(p[v],h);if(f){const m=f.length;for(let b=0;b<m;b++)d[f[b]]=x}else d[v]=x}return this.options.layoutId&&(d.pointerEvents=h===this?Wo(o==null?void 0:o.pointerEvents)||"":"none"),d}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(o=>{var l;return(l=o.currentAnimation)===null||l===void 0?void 0:l.stop()}),this.root.nodes.forEach(Xx),this.root.sharedNodes.clear()}}}function m6(e){e.updateLayout()}function f6(e){var t;const n=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners("didUpdate")){const{layoutBox:s,measuredBox:a}=e.layout,{animationType:i}=e.options,o=n.source!==e.layout.source;i==="size"?ft(h=>{const p=o?n.measuredBox[h]:n.layoutBox[h],g=ut(p);p.min=s[h].min,p.max=p.min+g}):d1(i,n.layoutBox,s)&&ft(h=>{const p=o?n.measuredBox[h]:n.layoutBox[h],g=ut(s[h]);p.max=p.min+g,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[h].max=e.relativeTarget[h].min+g)});const l=mr();$a(l,s,n.layoutBox);const c=mr();o?$a(c,e.applyTransform(a,!0),n.measuredBox):$a(c,s,n.layoutBox);const d=!i1(l);let u=!1;if(!e.resumeFrom){const h=e.getClosestProjectingParent();if(h&&!h.resumeFrom){const{snapshot:p,layout:g}=h;if(p&&g){const y=fe();qa(y,n.layoutBox,p.layoutBox);const v=fe();qa(v,s,g.layoutBox),o1(y,v)||(u=!0),h.options.layoutRoot&&(e.relativeTarget=v,e.relativeTargetOrigin=y,e.relativeParent=h)}}}e.notifyListeners("didUpdate",{layout:s,snapshot:n,delta:c,layoutDelta:l,hasLayoutChanged:d,hasRelativeTargetChanged:u})}else if(e.isLead()){const{onExitComplete:s}=e.options;s&&s()}e.options.transition=void 0}function x6(e){Aa&&fs.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function g6(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function y6(e){e.clearSnapshot()}function Xx(e){e.clearMeasurements()}function v6(e){e.isLayoutDirty=!1}function w6(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function eg(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function b6(e){e.resolveTargetDelta()}function j6(e){e.calcProjection()}
vendor: 5,738 bytes, line 130
130function k6(e){e.resetSkewAndRotation()}function N6(e){e.removeLeadSnapshot()}function tg(e,t,n){e.translate=le(t.translate,0,n),e.scale=le(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function ng(e,t,n,s){e.min=le(t.min,n.min,s),e.max=le(t.max,n.max,s)}function S6(e,t,n,s){ng(e.x,t.x,n.x,s),ng(e.y,t.y,n.y,s)}function C6(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const P6={duration:.45,ease:[.4,0,.1,1]},sg=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),rg=sg("applewebkit/")&&!sg("chrome/")?Math.round:lt;function ag(e){e.min=rg(e.min),e.max=rg(e.max)}function T6(e){ag(e.x),ag(e.y)}function d1(e,t,n){return e==="position"||e==="preserve-aspect"&&!AC(Yx(t),Yx(n),.2)}function E6(e){var t;return e!==e.root&&((t=e.scroll)===null||t===void 0?void 0:t.wasRoot)}const _6=c1({attachResizeListener:(e,t)=>ji(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),ld={current:void 0},u1=c1({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!ld.current){const e=new _6({});e.mount(window),e.setOptions({layoutScroll:!0}),ld.current=e}return ld.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),A6={pan:{Feature:JC},drag:{Feature:HC,ProjectionNode:u1,MeasureLayout:s1}};function ig(e,t,n){const{props:s}=e;e.animationState&&s.whileHover&&e.animationState.setActive("whileHover",n==="Start");const a="onHover"+n,i=s[a];i&&ae.postRender(()=>i(t,Vi(t)))}class F6 extends os{mount(){const{current:t}=this.node;t&&(this.unmount=A4(t,n=>(ig(this.node,n,"Start"),s=>ig(this.node,s,"End"))))}unmount(){}}class M6 extends os{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=Bi(ji(this.node.current,"focus",()=>this.onFocus()),ji(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function og(e,t,n){const{props:s}=e;e.animationState&&s.whileTap&&e.animationState.setActive("whileTap",n==="Start");const a="onTap"+(n==="End"?"":n),i=s[a];i&&ae.postRender(()=>i(t,Vi(t)))}class D6 extends os{mount(){const{current:t}=this.node;t&&(this.unmount=O4(t,n=>(og(this.node,n,"Start"),(s,{success:a})=>og(this.node,s,a?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const Hu=new WeakMap,cd=new WeakMap,O6=e=>{const t=Hu.get(e.target);t&&t(e)},R6=e=>{e.forEach(O6)};function L6({root:e,...t}){const n=e||document;cd.has(n)||cd.set(n,{});const s=cd.get(n),a=JSON.stringify(t);return s[a]||(s[a]=new IntersectionObserver(R6,{root:e,...t})),s[a]}function I6(e,t,n){const s=L6(t);return Hu.set(e,n),s.observe(e),()=>{Hu.delete(e),s.unobserve(e)}}const B6={some:0,all:1};class V6 extends os{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:s,amount:a="some",once:i}=t,o={root:n?n.current:void 0,rootMargin:s,threshold:typeof a=="number"?a:B6[a]},l=c=>{const{isIntersecting:d}=c;if(this.isInView===d||(this.isInView=d,i&&!d&&this.hasEnteredView))return;d&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",d);const{onViewportEnter:u,onViewportLeave:h}=this.node.getProps(),p=d?u:h;p&&p(c)};return I6(this.node.current,o,l)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(U6(t,n))&&this.startObserver()}unmount(){}}function U6({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const z6={inView:{Feature:V6},tap:{Feature:D6},focus:{Feature:M6},hover:{Feature:F6}},W6={layout:{ProjectionNode:u1,MeasureLayout:s1}},Rl={current:null},Up={current:!1};function h1(){if(Up.current=!0,!!dp)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>Rl.current=e.matches;e.addListener(t),t()}else Rl.current=!1}const $6=[...Lw,Re,ts],q6=e=>$6.find(Rw(e)),lg=new WeakMap;function H6(e,t,n){for(const s in t){const a=t[s],i=n[s];if(Ie(a))e.addValue(s,a);else if(Ie(i))e.addValue(s,wi(a,{owner:e}));else if(i!==a)if(e.hasValue(s)){const o=e.getValue(s);o.liveStyle===!0?o.jump(a):o.hasAnimated||o.set(a)}else{const o=e.getStaticValue(s);e.addValue(s,wi(o!==void 0?o:a,{owner:e}))}}for(const s in n)t[s]===void 0&&e.removeValue(s);return t}const cg=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class J6{scrapeMotionValuesFromProps(t,n,s){return{}}constructor({parent:t,props:n,presenceContext:s,reducedMotionConfig:a,blockInitialAnimation:i,visualState:o},l={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=Lp,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const g=Qt.now();this.renderScheduledAt<g&&(this.renderScheduledAt=g,ae.render(this.render,!1,!0))};
vendor: 4,590 bytes, line 130
130const{latestValues:c,renderState:d,onUpdate:u}=o;this.onUpdate=u,this.latestValues=c,this.baseTarget={...c},this.initialValues=n.initial?{...c}:{},this.renderState=d,this.parent=t,this.props=n,this.presenceContext=s,this.depth=t?t.depth+1:0,this.reducedMotionConfig=a,this.options=l,this.blockInitialAnimation=!!i,this.isControllingVariants=uc(n),this.isVariantNode=qv(n),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(t&&t.current);const{willChange:h,...p}=this.scrapeMotionValuesFromProps(n,{},this);for(const g in p){const y=p[g];c[g]!==void 0&&Ie(y)&&y.set(c[g],!1)}}mount(t){this.current=t,lg.set(t,this),this.projection&&!this.projection.instance&&this.projection.mount(t),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((n,s)=>this.bindToMotionValue(s,n)),Up.current||h1(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:Rl.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){lg.delete(this.current),this.projection&&this.projection.unmount(),es(this.notifyUpdate),es(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const n=this.features[t];n&&(n.unmount(),n.isMounted=!1)}this.current=null}bindToMotionValue(t,n){this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();const s=qs.has(t),a=n.on("change",l=>{this.latestValues[t]=l,this.props.onUpdate&&ae.preRender(this.notifyUpdate),s&&this.projection&&(this.projection.isTransformDirty=!0)}),i=n.on("renderRequest",this.scheduleRender);let o;window.MotionCheckAppearSync&&(o=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{a(),i(),o&&o(),n.owner&&n.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in Yr){const n=Yr[t];if(!n)continue;const{isEnabled:s,Feature:a}=n;if(!this.features[t]&&a&&s(this.props)&&(this.features[t]=new a(this)),this.features[t]){const i=this.features[t];i.isMounted?i.update():(i.mount(),i.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):fe()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let s=0;s<cg.length;s++){const a=cg[s];this.propEventSubscriptions[a]&&(this.propEventSubscriptions[a](),delete this.propEventSubscriptions[a]);const i="on"+a,o=t[i];o&&(this.propEventSubscriptions[a]=this.on(a,o))}this.prevMotionValues=H6(this,this.scrapeMotionValuesFromProps(t,this.prevProps,this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue(),this.onUpdate&&this.onUpdate(this)}getProps(){return this.props}getVariant(t){return this.props.variants?this.props.variants[t]:void 0}getDefaultTransition(){return this.props.transition}getTransformPagePoint(){return this.props.transformPagePoint}getClosestVariantNode(){return this.isVariantNode?this:this.parent?this.parent.getClosestVariantNode():void 0}addVariantChild(t){const n=this.getClosestVariantNode();if(n)return n.variantChildren&&n.variantChildren.add(t),()=>n.variantChildren.delete(t)}addValue(t,n){const s=this.values.get(t);n!==s&&(s&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let s=this.values.get(t);return s===void 0&&n!==void 0&&(s=wi(n===null?void 0:n,{owner:this}),this.addValue(t,s)),s}readValue(t,n){var s;let a=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:(s=this.getBaseTargetFromProps(this.props,t))!==null&&s!==void 0?s:this.readValueFromInstance(this.current,t,this.options);
130return a!=null&&(typeof a=="string"&&(Dw(a)||Sw(a))?a=parseFloat(a):!q6(a)&&ts.test(n)&&(a=Aw(t,n)),this.setBaseTarget(t,Ie(a)?a.get():a)),Ie(a)?a.get():a}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:s}=this.props;let a;if(typeof s=="string"||typeof s=="object"){const o=gp(this.props,s,(n=this.presenceContext)===null||n===void 0?void 0:n.custom);o&&(a=o[t])}if(s&&a!==void 0)return a;const i=this.getBaseTargetFromProps(this.props,t);return i!==void 0&&!Ie(i)?i:this.initialValues[t]!==void 0&&a===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new Ap),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}class p1 extends J6{constructor(){super(...arguments),this.KeyframeResolver=Iw}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:s}){delete n[t],delete s[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;Ie(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}function Q6(e){return window.getComputedStyle(e)}class G6 extends p1{constructor(){super(...arguments),this.type="html",this.renderInstance=ew}readValueFromInstance(t,n){if(qs.has(n)){const s=Rp(n);return s&&s.default||0}else{const s=Q6(t),a=(Zv(n)?s.getPropertyValue(n):s[n])||0;return typeof a=="string"?a.trim():a}}measureInstanceViewportBox(t,{transformPagePoint:n}){return t1(t,n)}build(t,n,s){wp(t,n,s.transformTemplate)}scrapeMotionValuesFromProps(t,n,s){return Np(t,n,s)}}class Y6 extends p1{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=fe}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(qs.has(n)){const s=Rp(n);return s&&s.default||0}return n=tw.has(n)?n:mp(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,s){return rw(t,n,s)}build(t,n,s){bp(t,n,this.isSVGTag,s.transformTemplate)}renderInstance(t,n,s,a){nw(t,n,s,a)}mount(t){this.isSVGTag=kp(t.tagName),super.mount(t)}}const Z6=(e,t)=>xp(e)?new Y6(t):new G6(t,{allowProjection:e!==w.Fragment}),K6=N4({...jC,...z6,...A6,...W6},Z6),kt=B5(K6);function X6(){!Up.current&&h1();const[e]=w.useState(Rl.current);return e}function Fe({children:e,className:t,delay:n=0,as:s="div"}){const a=s==="li"?kt.li:kt.div;return r.jsx(a,{className:t,initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0,amount:.15},transition:{duration:.4,ease:[.22,1,.36,1],delay:n},children:e})}function mc({children:e,className:t}){return r.jsx(kt.div,{className:t,initial:"hidden",whileInView:"show",viewport:{once:!0,amount:.15},variants:{hidden:{},show:{transition:{staggerChildren:.06}}},children:e})}function fc({children:e,className:t}){return r.jsx(kt.div,{className:t,variants:{hidden:{opacity:0,y:16},show:{opacity:1,y:0,transition:{duration:.4,ease:[.22,1,.36,1]}}},children:e})}function vo(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}const eP=["function","const","let","var","if","else","return","true","false","null","new"],tP=["def","import","try","catch","if","while","true","false","null","assert","String"],nP="text-[#8FD6B4]",sP="text-jmx-gold",rP="text-white/35";function zp(e,t){if(t==="plain")return vo(e);const n=t==="js"?eP:tP,s=/(\/\*[\s\S]*?\*\/|\/\/.*|"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|`(?:[^`\\]|\\.)*`)/g;return e.split(s).map(i=>{if(!i)return"";if(/^(\/\*[\s\S]*\*\/|\/\/.*)$/.test(i))return`<span class="${rP}">${vo(i)}</span>`;if(/^["'`]/.test(i))return`<span class="${sP}">${vo(i)}</span>`;let o=vo(i);return n.forEach(l=>{const c=new RegExp(`\\b(${l})\\b`,"g");o=o.replace(c,`<span class="${nP}">$1</span>`)}),o}).join("")}const aP=`{
131  "name": "Get Order",
132  "request": {
133    "method": "GET",
134    "url": "{{base_url}}/orders/{{id}}"
135  }
136}`,iP=`<HTTPSamplerProxy>
137  <stringProp name="HTTPSampler.path">
138    /orders/\${id}
139  </stringProp>
140  <stringProp name="HTTPSampler.method">
141    GET
142  </stringProp>
143</HTTPSamplerProxy>`;function oP(){const e=X6();return r.jsxs("div",{className:"flex flex-col items-stretch gap-2 max-w-md mx-auto lg:mx-0",children:[r.jsx(kt.div,{animate:e?void 0:{y:[0,-6,0]},transition:{duration:2.4,repeat:1/0,ease:"easeInOut"},children:r.jsx(dg,{badge:"Postman",badgeColor:"#FF6C37",filename:"orders-api.postman_collection.json",code:aP,lang:"js"})}),r.jsx("div",{className:"flex items-center justify-center py-1",children:r.jsx(lP,{reducedMotion:!!e})}),r.jsx(dg,{badge:"JMeter",badgeColor:"#D22128",filename:"orders-api.jmx",code:iP,lang:"plain"})]})}function lP({reducedMotion:e}){return r.jsxs("div",{className:"relative w-6 h-16 flex items-center justify-center",children:[r.jsxs("svg",{className:"absolute inset-0 w-full h-full",viewBox:"0 0 24 64",fill:"none","aria-hidden":"true",children:[r.jsx("line",{x1:"12",y1:"4",x2:"12",y2:"52",stroke:"rgb(var(--color-border))",strokeWidth:"2"}),r.jsx("path",{d:"M6 44l6 8 6-8",stroke:"rgb(var(--color-accent))",strokeWidth:"2.5",fill:"none",strokeLinecap:"round",strokeLinejoin:"round"})]}),!e&&[0,1,2].map(t=>r.jsx(kt.span,{className:"absolute w-1.5 h-1.5 rounded-full bg-jmx-accent",style:{to
143p:4},animate:{top:[4,48],opacity:[0,1,1,0]},transition:{duration:1.6,repeat:1/0,delay:t*.5,ease:"easeInOut"}},t))]})}function dg({badge:e,badgeColor:t,filename:n,code:s,lang:a}){const i=zp(s,a);return r.jsxs("div",{className:"rounded-2xl overflow-hidden border border-jmx-border bg-jmx-ink shadow-[0_16px_36px_-16px_rgba(9,22,43,0.3)]",children:[r.jsxs("div",{className:"flex items-center gap-2 px-4 py-2.5 border-b border-white/10",children:[r.jsx("span",{className:"text-[10px] font-bold text-white px-2 py-0.5 rounded uppercase tracking-wide",style:{background:t},children:e}),r.jsx("span",{className:"font-jmxMono text-[11px] text-white/50 truncate",children:n})]}),r.jsx("pre",{className:"p-4 text-[11px] sm:text-[12px] leading-relaxed overflow-x-auto font-jmxMono",children:r.jsx("code",{className:"text-white/85",dangerouslySetInnerHTML:{__html:i}})})]})}function cP(){return r.jsxs("section",{className:"relative pt-28 pb-20 lg:pt-32 lg:pb-28 overflow-hidden bg-gradient-to-b from-[#FBEFDA] via-jmx-bg to-jmx-bg",children:[r.jsx("div",{className:"absolute inset-0 opacity-60 pointer-events-none",style:{background:"radial-gradient(circle at 85% 10%, rgba(220,30,32,0.06), transparent 45%), radial-gradient(circle at 5% 90%, rgba(238,174,53,0.10), transparent 40%)"}}),r.jsxs("div",{className:"max-w-6xl mx-auto px-6 lg:px-10 relative",children:[r.jsxs("nav",{"aria-label":"Breadcrumb",className:"text-sm text-jmx-ink/50 flex items-center gap-2 mb-8",children:[r.jsx(V,{to:"/",className:"hover:text-jmx-accent transition-colors",children:"Pirates of Bugs"}),r.jsx("span",{children:"/"}),r.jsx("span",{className:"text-jmx-ink font-medium",children:"Captain JMX"})]}),r.jsxs("div",{className:"grid lg:grid-cols-2 gap-14 items-center",children:[r.jsxs(Fe,{children:[r.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[r.jsx("img",{src:oc,alt:"Captain JMX logo",className:"w-12 h-12 object-contain"}),r.jsxs("span",{className:"font-jmxDisplay font-bold text-lg text-jmx-ink",children:["Captain ",r.jsx("span",{className:"text-jmx-accent",children:"JMX"})]})]}),r.jsx("span",{className:"jmx-label inline-block mb-5",children:Js.eyebrow}),r.jsxs("h1",{className:"font-jmxDisplay font-extrabold tracking-tight text-jmx-ink leading-[1.05] text-[clamp(2.75rem,5vw,4rem)]",children:[Js.h1Line1,r.jsx("br",{}),r.jsx("span",{className:"text-jmx-accent",children:Js.h1Line2})]}),r.jsx("p",{className:"mt-6 text-jmx-ink/75 text-lg leading-relaxed max-w-[55ch]",children:Js.subhead}),r.jsxs("div",{className:"mt-8 flex flex-wrap items-center gap-3",children:[r.jsx("a",{href:"#",className:"jmx-focus-ring bg-jmx-accent text-white font-semibold px-6 py-3.5 rounded-full hover:brightness-110 transition-all",children:Js.ctaPrimary}),r.jsx("a",{href:"#demo",className:"jmx-focus-ring font-semibold text-jmx-ink px-6 py-3.5 rounded-full border border-jmx-border hover:bg-jmx-sunken transition-colors",children:"See Demo"})]}),r.jsxs("div",{className:"flex flex-wrap items-center gap-x-5 gap-y-2 mt-6 text-sm text-jmx-ink/60 font-medium",children:[r.jsx("span",{className:"flex items-center gap-1.5",children:"✓ 100% Offline"}),r.jsx("span",{className:"flex items-center gap-1.5",children:"✓ Privacy First"}),r.jsx("span",{className:"flex items-center gap-1.5",children:"✓ Lightweight"}),r.jsx("span",{className:"flex items-center gap-1.5",children:"✓ Blazing Fast"})]}),r.jsx("p",{className:"mt-6 text-sm text-jmx-ink/50 font-medium",children:Js.trustLine})]}),r.jsx(Fe,{delay:.1,children:r.jsx(oP,{})})]})]})]})}function dP(){return r.jsx("section",{className:"py-12 lg:py-16",children:r.jsx("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:r.jsx(Fe,{children:r.jsx("div",{className:"jmx-card px-6 py-8 lg:px-10 grid grid-cols-2 lg:grid-cols-4 gap-8 text-center",children:N5.map(e=>r.jsxs("div",{children:[r.jsx("div",{className:"font-jmxMono font-bold text-jmx-accent text-[2.25rem] leading-none",children:e.figure}),r.jsx("p",{className:"text-jmx-ink/60 text-sm mt-3 leading-snug",children:e.label})]},e.label))})})})})}function uP(){return r.jsx("section",{className:"py-16 lg:py-24",children:r.jsxs("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:[r.jsxs(Fe,{className:"max-w-2xl",children:[r.jsx("span",{className:"jmx-label",children:ho.label}),r.jsx("h2",{className:"font-jmxDisplay font-bold text-3xl sm:text-4xl text-jmx-ink mt-3 tracking-tight",children:ho.heading}),r.jsx("p",{className:"text-jmx-ink/65 mt-5 leading-relaxed",children:ho.body})]}),r.jsx(mc,{className:"grid sm:grid-cols-3 gap-5 mt-10",children:ho.cards.map(e=>r.jsx(fc,{children:r.jsxs("div",{className:"bg-jmx-sunken border border-jmx-border rounded-xl p-6 h-full",children:[r.jsx("h3",{className:"font-jmxDisplay font-semibold text-jmx-ink",children:e.title}),r.jsx("p",{className:"text-jmx-ink/60 text-sm mt-2.5 leading-relaxed",children:e.body})]})}
vendor: 4,530 bytes, lines 143-202
143,e.title))})]})})}/**
144 * @license lucide-react v0.462.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 hP=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),m1=(...e)=>e.filter((t,n,s)=>!!t&&t.trim()!==""&&s.indexOf(t)===n).join(" ").trim();/**
149 * @license lucide-react v0.462.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 */var pP={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"};/**
154 * @license lucide-react v0.462.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 mP=w.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:s,className:a="",children:i,iconNode:o,...l},c)=>w.createElement("svg",{ref:c,...pP,width:t,height:t,stroke:e,strokeWidth:s?Number(n)*24/Number(t):n,className:m1("lucide",a),...l},[...o.map(([d,u])=>w.createElement(d,u)),...Array.isArray(i)?i:[i]]));/**
159 * @license lucide-react v0.462.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 Dt=(e,t)=>{const n=w.forwardRef(({className:s,...a},i)=>w.createElement(mP,{ref:i,iconNode:t,className:m1(`lucide-${hP(e)}`,s),...a}));return n.displayName=`${e}`,n};/**
164 * @license lucide-react v0.462.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 fP=Dt("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/**
169 * @license lucide-react v0.462.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 xP=Dt("Braces",[["path",{d:"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1",key:"ezmyqa"}],["path",{d:"M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1",key:"e1hn23"}]]);/**
174 * @license lucide-react v0.462.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 gP=Dt("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/**
179 * @license lucide-react v0.462.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 yP=Dt("FileJson",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1",key:"1oajmo"}],["path",{d:"M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1",key:"mpwhp6"}]]);/**
184 * @license lucide-react v0.462.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 vP=Dt("FilePen",[["path",{d:"M12.5 22H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v9.5",key:"1couwa"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M13.378 15.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"1y4qbx"}]]);/**
189 * @license lucide-react v0.462.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 wP=Dt("FolderTree",[["path",{d:"M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"hod4my"}],["path",{d:"M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"w4yl2u"}],["path",{d:"M3 5a2 2 0 0 0 2 2h3",key:"f2jnh7"}],["path",{d:"M3 3v13a2 2 0 0 0 2 2h3",key:"k8epm1"}]]);/**
194 * @license lucide-react v0.462.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 bP=Dt("Gauge",[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]]);/**
199 * @license lucide-react v0.462.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 jP=Dt("Import",[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m8 11 4 4 4-4",key:"1dohi6"}],["path",{d:"M8 5H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-4",key:"1ywtjm"}]]);/**
204 * @license lucide-react v0.462.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 kP=Dt("ShieldCheck",[["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"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/**
209 * @license lucide-react v0.462.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 NP=Dt("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);/**
214 * @license lucide-react v0.462.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 SP=Dt("Zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]),CP={Import:jP,FolderTree:wP,FileJson:yP,Braces:xP,Users:NP,Gauge:bP,FileEdit:vP,Zap:SP},ug=[{bg:"rgb(var(--color-accent) / 0.10)",fg:"rgb(var(--color-accent))"},{bg:"rgb(var(--color-secondary) / 0.10)",fg:"rgb(var(--color-secondary))"},{bg:"rgb(var(--color-gold) / 0.18)",fg:"#8a5a00"}];function PP(){return r.jsx("section",{id:"features",className:"py-16 lg:py-24 bg-jmx-sunken/40",children:r.jsxs("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:[r.jsxs(Fe,{className:"max-w-2xl",children:[r.jsx("span",{className:"jmx-label",children:po.label}),r.jsx("h2",{className:"font-jmxDisplay font-bold text-3xl sm:text-4xl text-jmx-ink mt-3 tracking-tight",children:po.heading}),r.jsx("p",{className:"text-jmx-ink/65 mt-3",children:po.sub})]}),r.jsx(mc,{className:"grid sm:grid-cols-2 lg:grid-cols-4 gap-6 mt-10",children:po.cards.map((e,t)=>{const n=CP[e.icon],s=ug[t%ug.length];return r.jsx(fc,{children:r.jsxs("div",{className:"group jmx-card p-6 h-full transition-all hover:border-jmx-accent/40 hover:-translate-y-0.5",children:[r.jsx("span",{className:"w-10 h-10 rounded-xl flex items-center justify-center mb-4",style:{background:s.bg},children:r.jsx(n,{size:19,style:{color:s.fg}})}),r.jsx("h3",{className:"font-jmxDisplay font-semibold text-jmx-ink",children:e.title}),r.jsx("p",{className:"text-jmx-ink/60 text-sm mt-2 leading-relaxed",children:e.body})]})},e.title)})})]})})}function TP(){return r.jsx("section",{id:"script-engine",className:"py-16 lg:py-24",children:r.jsxs("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:[r.jsxs(Fe,{className:"max-w-2xl",children:[r.jsx("span",{className:"jmx-label",children:Qs.label}),r.jsx("h2",{className:"font-jmxDisplay font-bold text-3xl sm:text-4xl text-jmx-ink mt-3 tracking-tight",children:Qs.heading}),r.jsx("p",{className:"text-jmx-ink/65 mt-5 leading-relaxed",children:Qs.body})]}),r.jsx(Fe,{delay:.1,className:"mt-10",children:r.jsxs("div",{className:"flex flex-col lg:flex-row items-stretch gap-4 lg:gap-0",children:[r.jsx(hg,{label:"Postman (JavaScript)",code:Qs.postmanCode,lang:"js"}),r.jsxs("div",{className:"flex items-center justify-center lg:w-16 shrink-0 py-2 lg:py-0",children:[r.jsx(fP,{size:22,className:"text-jmx-accent rotate-90 lg:rotate-0","aria-hidden":"true"}),r.jsx("span",{className:"sr-only",children:"converts to"})]}),r.jsx(hg,{label:"Captain JMX (Groovy)",code:Qs.groovyCode,lang:"groovy"})]})}),r.jsx(mc,{className:"grid sm:grid-cols-2 gap-5 mt-10",children:Qs.points.map(e=>r.jsx(fc,{children:r.jsxs("div",{className:"border-l-2 border-jmx-secondary/40 pl-4",children:[r.jsx("h3",{className:"font-jmxDisplay font-semibold text-jmx-ink text-sm",children:e.title}),r.jsx("p",{className:"text-jmx-ink/60 text-sm mt-1.5 leading-relaxed",children:e.body})]})}
218,e.title))})]})})}function hg({label:e,code:t,lang:n}){const s=zp(t,n);return r.jsxs("div",{className:"flex-1 min-w-0 rounded-xl overflow-hidden border border-jmx-border bg-jmx-ink",children:[r.jsxs("div",{className:"flex items-center gap-2 px-4 py-2.5 border-b border-white/10",children:[r.jsx("span",{className:"w-2 h-2 rounded-full bg-white/20"}),r.jsx("span",{className:"font-jmxMono text-[11px] text-white/50",children:e})]}),r.jsx("pre",{className:"p-4 text-[12px] sm:text-[13px] leading-relaxed overflow-x-auto font-jmxMono",children:r.jsx("code",{className:"text-white/85",lang:n,dangerouslySetInnerHTML:{__html:s}})})]})}function EP(){return r.jsxs("section",{className:"relative py-20 lg:py-32 bg-jmx-sunken border-y border-jmx-border overflow-hidden",children:[r.jsx("div",{className:"absolute top-0 inset-x-0 h-px",style:{background:"linear-gradient(90deg, transparent, rgb(var(--color-gold) / 0.5), transparent)"}}),r.jsxs("div",{className:"max-w-5xl mx-auto px-6 lg:px-10",children:[r.jsxs(Fe,{className:"max-w-2xl",children:[r.jsx("span",{className:"jmx-label",children:va.label}),r.jsx("h2",{className:"font-jmxDisplay font-bold text-3xl sm:text-4xl text-jmx-ink mt-3 tracking-tight",children:va.heading}),r.jsx("p",{className:"text-jmx-ink/70 mt-5 leading-relaxed",children:va.body})]}),r.jsx(Fe,{delay:.1,className:"mt-10",children:r.jsxs("div",{className:"rounded-xl overflow-hidden border border-jmx-border bg-jmx-ink max-w-3xl shadow-[0_16px_40px_-16px_rgba(9,22,43,0.35)]",children:[r.jsx("div",{className:"flex items-center gap-2 px-4 py-2.5 border-b border-white/10",children:r.jsx("span",{className:"font-jmxMono text-[11px] text-white/50",children:"TODO block — preserved in the plan"})}),r.jsx("pre",{className:"p-5 text-[12px] sm:text-[13px] leading-relaxed overflow-x-auto font-jmxMono",children:r.jsx("code",{className:"text-white/85",lang:"groovy",dangerouslySetInnerHTML:{__html:zp(va.code,"groovy")}})})]})}),r.jsx(mc,{className:"grid sm:grid-cols-3 gap-6 mt-12",children:va.points.map((e,t)=>r.jsxs(fc,{children:[r.jsx("span",{className:"w-8 h-8 rounded-full bg-jmx-gold/20 border border-jmx-gold/40 flex items-center justify-center font-jmxMono text-xs font-bold text-[#8a5a00] mb-3",children:t+1}),r.jsx("h3",{className:"font-jmxDisplay font-semibold text-jmx-ink",children:e.title}),r.jsx("p",{className:"text-jmx-ink/65 text-sm mt-2 leading-relaxed",children:e.body})]},e.title))})]})]})}function _P(){return r.jsx("section",{id:"how-it-works",className:"py-16 lg:py-24",children:r.jsxs("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:[r.jsxs(Fe,{className:"max-w-2xl",children:[r.jsx("span",{className:"jmx-label",children:Yc.label}),r.jsx("h2",{className:"font-jmxDisplay font-bold text-3xl sm:text-4xl text-jmx-ink mt-3 tracking-tight",children:Yc.heading})]}),r.jsxs("div",{className:"relative mt-14",children:[r.jsx("div",{className:"hidden lg:block absolute top-6 left-[12.5%] right-[12.5%] h-px bg-jmx-border overflow-hidden",children:r.jsx(kt.div,{className:"h-full jmx-quality-gradient",initial:{scaleX:0},whileInView:{scaleX:1},viewport:{once:!0,amount:.4},transition:{duration:.9,ease:[.22,1,.36,1]},style:{transformOrigin:"left"}})}),r.jsx("div",{className:"lg:hidden absolute top-0 bottom-0 left-6 w-px bg-jmx-border overflow-hidden",children:r.jsx(kt.div,{className:"w-full jmx-quality-gradient",initial:{scaleY:0},whileInView:{scaleY:1},viewport:{once:!0,amount:.2},transition:{duration:.9,ease:[.22,1,.36,1]},style:{transformOrigin:"top"}})}),r.jsx("div",{className:"grid lg:grid-cols-4 gap-10 lg:gap-6",children:Yc.steps.map(e=>r.jsxs(Fe,{className:"relative flex lg:flex-col gap-4 lg:gap-0 lg:text-center",children:[r.jsx("span",{className:"relative z-10 shrink-0 w-12 h-12 rounded-full bg-jmx-gold text-jmx-ink font-jmxDisplay font-bold flex items-center justify-center lg:mx-auto",children:e.step}),r.jsxs("div",{className:"lg:mt-5",children:[r.jsx("h3",{className:"font-jmxDisplay font-semibold text-jmx-ink",children:e.title}),r.jsx("p",{className:"text-jmx-ink/60 text-sm mt-2 leading-relaxed lg:max-w-[22ch] lg:mx-auto",children:e.body})]})]},e.step))})]})]})})}function AP(){return r.jsx("section",{id:"coverage",className:"py-16 lg:py-24",children:r.jsxs("div",{className:"max-w-5xl mx-auto px-6 lg:px-10",children:[r.jsxs(Fe,{className:"max-w-2xl",children:[r.jsx("span",{className:"jmx-label",children:wa.label}),r.jsx("h2",{className:"font-jmxDisplay font-bold text-3xl sm:text-4xl text-jmx-ink mt-3 tracking-tight",children:wa.heading}),r.jsx("p",{className:"text-jmx-ink/65 mt-3",children:wa.sub})]}),r.jsxs(Fe,{delay:.1,className:"mt-8",children:[r.jsx("div",{className:"jmx-card p-5 sm:p-6 overflow-x-auto",children:r.jsx("pre",{className:"font-jmxMono text-[12px] leading-relaxed text-jmx-ink/85 whitespace-pre",children:wa.tree})}),r.jsx("p",{className:"text-jmx-ink/50 text-sm mt-4 max-w-2xl",children:wa.note})]})]})})}function FP(){return r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"max-w-3xl mx-auto px-6 lg:px-10 text-center",children:r.jsxs(Fe,{children:[r.jsx("span",{className:"jmx-label",children:mo.label}),r.jsx("h2",{className:"font-jmxDisplay font-bold text-3xl sm:text-4xl text-jmx-ink mt-3 tracking-tight",children:mo.heading}),r.jsx("p",{className:"text-jmx-ink/65 mt-5 leading-relaxed max-w-2xl mx-auto",children:mo.body}),r.jsx("ul",{className:"flex flex-col sm:flex-row items-center justify-center gap-x-8 gap-y-3 mt-8 text-sm text-jmx-ink/75 font-medium",children:mo.points.map(e=>r.jsxs("li",{className:"flex items-center gap-2",children:[r.jsx(kP,{size:16,className:"text-jmx-secondary"}),e]},e))})]})})})}function MP(){return r.jsx("section",{id:"faq",className:"py-16 lg:py-24",children:r.jsxs("div",{className:"max-w-3xl mx-auto px-6 lg:px-10",children:[r.jsxs(Fe,{className:"text-center mb-10",children:[r.jsx("span",{className:"jmx-label",children:"FAQ"}),r.jsx("h2",{className:"font-jmxDisplay font-bold text-3xl sm:text-4xl text-jmx-ink mt-3 tracking-tight",children:"Questions worth asking before you install"})]}),r.jsx(Fe,{delay:.1,className:"space-y-3",children:S5.map((e,t)=>r.jsxs("details",{open:t===0,className:"jmx-card group px-5 sm:px-6 py-1",children:[r.jsxs("summary",{className:"jmx-focus-ring rounded-sm list-none flex items-center justify-between gap-4 py-4 cursor-pointer font-jmxDisplay font-semibold text-jmx-ink",children:[e.question,r.jsx(gP,{size:18,className:"jmx-chevron shrink-0 text-jmx-ink/40 transition-transform duration-200"})]}),r.jsx("p",{className:"text-jmx-ink/65 text-sm leading-relaxed pb-5 -mt-1",children:e.answer})]},e.question))})]})})}function DP(){return r.jsxs("section",{className:"relative py-16 lg:py-24 overflow-hidden",children:[r.jsx("div",{className:"absolute inset-0 pointer-events-none",style:{background:"radial-gradient(circle at 50% 30%, rgba(220,30,32,0.05), transparent 55%)"}}),r.jsx("div",{className:"absolute inset-0 opacity-[0.4] pointer-events-none",style:{backgroundImage:"linear-gradient(rgb(var(--color-border)) 1px, transparent 1px), linear-gradient(90deg, rgb(var(--color-border)) 1px, transparent 1px)",backgroundSize:"32px 32px",maskImage:"radial-gradient(ellipse at center, black 0%, transparent 70%)",WebkitMaskImage:"radial-gradient(ellipse at center, black 0%, transparent 70%)"}}),r.jsx("div",{className:"relative max-w-2xl mx-auto px-6 text-center",children:r.jsxs(Fe,{children:[r.jsx("h2",{className:"font-jmxDisplay font-bold text-3xl sm:text-4xl text-jmx-ink tracking-tight",children:ba.heading}),r.jsx("p",{className:"text-jmx-ink/65 mt-4 leading-relaxed",children:ba.sub}),r.jsxs("div",{className:"mt-8 flex flex-wrap items-center justify-center gap-3",children:[r.jsx("a",{href:"#",className:"jmx-focus-ring bg-jmx-accent text-white font-semibold px-7 py-3.5 rounded-full hover:brightness-110 transition-all",children:ba.ctaPrimary}),r.jsx("a",{href:"#",className:"jmx-focus-ring font-semibold text-jmx-ink px-7 py-3.5 rounded-full border border-jmx-border hover:bg-jmx-sunken transition-colors",children:ba.ctaSecondary})]}),r.jsx("p",{className:"mt-6 text-sm text-jmx-ink/45 font-jmxMono",children:ba.microline})]})})]})}function OP(){return Je($f),gn([aa({name:"Captain JMX",description:$f.description,path:"/captainjmx"}),is([{name:"Pirates of Bugs",path:"/"},{name:"Captain JMX",path:"/captainjmx"}])]),r.jsxs(r.Fragment,{children:[r.jsx(qe,{}),r.jsxs("div",{className:"jmx-theme font-jmxBody",children:[r.jsxs("main",{children:[r.jsx(cP,{}),r.jsx(ia,{productName:"Captain JMX"}),r.jsx(Oi,{productName:"Captain JMX"}),r.jsx(dP,{}),r.jsx(uP,{}),r.jsx(PP,{}),r.jsx(TP,{}),r.jsx(EP,{}),r.jsx(_P,{}),r.jsx(AP,{}),r.jsx(FP,{}),r.jsx(MP,{})]}),r.jsx(oa,{}),r.jsx(la,{productName:"Captain JMX",logo:oc}),r.jsx(Iv,{currentHref:"/captainjmx"}),r.jsx(DP,{}),r.jsx("p",{className:"text-xs text-jmx-ink/35 leading-relaxed max-w-6xl mx-auto px-6 lg:px-10 pb-8",children:C5})]}),r.jsx(He,{})]})}function dd(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}
218const RP=["function","const","let","var","if","else","return","true","false","null","new"],LP=["def","import","try","catch","if","while","true","false","null","assert","String"];function IP(e,t){const n=t==="js"?RP:LP,s=/(\/\*[\s\S]*?\*\/|\/\/.*|"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|`(?:[^`\\]|\\.)*`)/g;return e.split(s).map(i=>{if(!i)return"";if(/^(\/\*[\s\S]*\*\/|\/\/.*)$/.test(i))return`<span class="text-white/35">${dd(i)}</span>`;if(/^["'`]/.test(i))return`<span class="text-gold">${dd(i)}</span>`;let o=dd(i);return n.forEach(l=>{const c=new RegExp(`\\b(${l})\\b`,"g");o=o.replace(c,'<span class="text-sea">$1</span>')}),o}).join("")}function BP({label:e,code:t,lang:n}){const s=n==="plain"?VP(t):IP(t,n);return r.jsxs("div",{className:"rounded-2xl bg-navy overflow-hidden border border-black/10",children:[r.jsxs("div",{className:"flex items-center gap-2 px-4 py-2.5 border-b border-white/10",children:[r.jsx("span",{className:"w-2.5 h-2.5 rounded-full bg-primary/70"}),r.jsx("span",{className:"w-2.5 h-2.5 rounded-full bg-gold/70"}),r.jsx("span",{className:"w-2.5 h-2.5 rounded-full bg-success/70"}),r.jsx("span",{className:"ml-2 text-white/40 text-[11px] font-medium",children:e})]}),r.jsx("pre",{className:"p-4 sm:p-5 text-[12px] sm:text-[13px] leading-relaxed overflow-x-auto",children:r.jsx("code",{className:"text-white/85",dangerouslySetInnerHTML:{__html:s}})})]})}function VP(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}const pg={developer:"Developers stop re-clicking ten steps to test one fix.",tester:'Testers stop having bugs closed as "cannot reproduce".'},UP=["Replay the whole flow — every click, keystroke, dropdown and tab switch, in order","Replay from any step — pick the step, skip the ten before it","Forms refill themselves — starting mid-flow means the fields were never typed, so the capsule carries the whole form and restores it","Watch it run — the current element is highlighted, step by step, at whatever speed you set"],zP="Replay reconstructs the browser, not your backend. If step 11 depends on an order that step 6 created server-side, the capsule can’t recreate it — and it says so before you start.",WP=["The flow itself, as an executable recording — not a description of a recording","Screenshots at every meaningful step, with the failure frame marked","Console errors and uncaught exceptions, timestamped against the step that caused them","Network requests with method, status, timing and headers — exported as a standard HAR you can open in DevTools","The environment — browser, OS, viewport, URL, app version","Expected vs actual, in the tester’s own words, attached to the exact failing step"],$P=[{step:"01",title:"Record",body:"Click Record a bug, reproduce the problem once, click Mark bug when it breaks. A small controller sits on the page while you work — pause, mark, stop."},{step:"02",title:"Package",body:"Bug Capsule builds a .bugcapsule file: the flow, the evidence, the environment, the failure. Passwords, tokens and auth headers are replaced with [REDACTED] as they’re captured. Cookies are never included."},{step:"03",title:"Share",body:"Attach it to the Jira ticket or GitHub issue — the extension can do it for you — or just send the file. It’s a plain ZIP, so anyone can open it and read the report even without the extension installed."},{step:"04",title:"Replay",body:"The developer imports it and presses Replay. The flow runs. They fix the code, replay again, and compare the two runs side by side."}],ud={eyebrow:'"IT WORKS NOW" IS A CLAIM. THIS IS EVIDENCE.',body1:"After the fix, replay the same capsule. Bug Capsule puts the two runs next to each other: the failing step then and now, the request that returned 500 and what it returns today, the screenshot from each.",body2:"It won’t tell you the bug is fixed. It reports that the original failure was not reproduced — which is the accurate claim, and the one QA can verify against the same capsule."},qP=[{title:"Records what people do",body:"Clicks, typing, dropdowns, checkboxes, scrolls, swipes, keyboard shortcuts, tab switches. Not raw DOM events — a readable list a human can follow."},{title:"Follows you across tabs",body:"Opens a payment provider in a 
218new tab? The capsule records the switch and keeps recording. Replay follows the same path."},{title:"Locators that survive a redesign",body:"Every step stores several selectors from different families — test id, ARIA name, link target, text, relative XPath, list position — because they break for unrelated reasons. Replay tries each in turn, and can build a fresh locator from the element’s surroundings when they’ve all gone stale."},{title:"Evidence that explains itself",body:"Failed requests are surfaced for the tester to triage, never auto-classified as the bug. The tester decides what the failure was."},{title:"Privacy by default",body:"Password fields are never stored. Authorization headers, tokens, session ids and sensitive query parameters are redacted at capture time — not on export, so a secret never reaches disk. Request and response bodies stay off unless you turn them on."},{title:"Works offline",body:"Recording, review, export, import and replay all run locally. There’s no backend, no account, and no telemetry."},{title:"Opens without us",body:".bugcapsule is a ZIP. Inside: REPORT.md in plain English, screenshots as PNGs, network.har for DevTools, and flow.json in Chrome Recorder’s own format — importable into DevTools Recorder or runnable under Puppeteer."},{title:"Ships with your tracker",body:"Create and attach to Jira or GitHub Issues from the extension, with a readable reproduction summary alongside the file."}],HP=`checkout-flow.bugcapsule/
219├── REPORT.md              Plain-English summary: steps, expected vs actual
220├── flow.json               Chrome Recorder format — import into DevTools or Puppeteer
221├── network.har              Every request: method, status, timing, headers
222├── screenshots/              One per meaningful step, failure frame marked
223└── environment.json           Browser, OS, viewport, URL, app version`,JP=[{question:"Is this a test automation framework?",answer:"No. It’s a bug reproduction artifact. There’s nothing to maintain, no test suite, no CI job. You record a bug, and the recording is the report."},{question:"Does it replace Chrome’s Recorder?",answer:"It builds on it. Chrome Recorder gives you the user flow; Bug Capsule adds the failure context, the evidence, the sharing and the verification around it. Capsules export in Recorder’s own format, so you can open the flow there whenever you want."},{question:"Will replay always work?",answer:"It replays reliably against stable flows — checkouts, forms, admin screens, dashboards. It struggles where the page itself isn’t repeatable: a personalised search feed can serve different results on every load, and no locator can click a product that isn’t there. When that happens, replay stops at the step, tells you which selectors it tried, and doesn’t pretend the run passed."},{question:"Can it restore my server state?",answer:"No. It restores the browser — the URL, viewport, localStorage, sessionStorage and the recorded actions. Databases, queues and third-party state are outside what a browser extension can reach, and the product says so before you start a mid-flow replay."},{question:"What about our data?",answer:"Nothing leaves your machine. There’s no backend and no telemetry. The only outbound request the extension ever makes is the one you trigger by attaching a capsule to your bug tracker."},{question:"Why does it ask for access to all sites?",answer:"Chrome requires the all-sites permission for any screen capture, and for following you between tabs. If you’d rather not grant it, turn off screenshots and cross-tab recording and it will ask for the one site you’re recording instead."},{question:"How big are the files?",answer:"Typically a few megabytes — mostly screenshots, which are compressed. The extension shows the size breakdown before you export."}];function QP(){return Je(qf),gn([aa({name:"Bug Capsule",description:qf.description,path:"/bugcapsule"}),is([{name:"Pirates of Bugs",path:"/"},{name:"Bug Capsule",path:"/bugcapsule"}])]),r.jsxs(r.Fragment,{children:[r.jsx(qe,{}),r.jsx("div",{className:"bg-[#FFF4E3] pt-28 lg:pt-32 pb-2",children:r.jsx("div",{className:"max-w-7xl mx-auto px-6 lg:px-10",children:r.jsxs("nav",{"aria-label":"Breadcrumb",className:"text-sm text-navy/50 flex items-center gap-2",children:[r.jsx(V,{to:"/",className:"hover:text-primary transition-colors",children:"Pirates of Bugs"}),r.jsx("span",{children:"/"}),r.jsx("span",{className:"text-navy font-medium",children:"Bug Capsule"})]})})}),r.jsxs("section",{className:"relative pt-6 pb-20 overflow-hidden bg-gradient-to-b from-[#FFF4E3] via-[#FFFDF7] to-[#FFFDF7]",children:[r.jsx("div",{className:"grain"}),r.jsxs("div",{className:"max-w-7xl mx-auto px-6 lg:px-10 grid lg:grid-cols-2 gap-16 items-center",children:[r.jsxs("div",{className:"animate-fadeUp",children:[r.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[r.jsx("img",{src:Sl,alt:"Bug Capsule logo",className:"w-11 h-11 object-contain"}),r.jsxs("span",{className:"font-display font-bold text-lg text-navy",children:["Bug ",r.jsx("span",{className:"text-primary",children:"Capsule"})]})]}),r.jsx("div",{className:"inline-flex items-center gap-2 text-primary text-xs font-bold bg-primary/5 border border-primary/15 px-3 py-1.5 rounded-full mb-6",children:"🧪 Chrome extension · No AI, just evidence"}),r.jsxs("h1",{className:"font-display font-extrabold text-[36px] sm:text-5xl leading-[1.1] tracking-tight text-navy",children:["Stop explaining bugs. ",r.jsx("span",{className:"text-primary",children:"Hand over one file."})]}),r.jsxs("p",{className:"mt-6 text-navy/65 max-w-xl leading-relaxed",children:["A tester records the bug once. The developer gets one"," ",r.jsx("code",{className:"text-navy bg-navy/5 px-1.5 py-0.5 rounded text-[0.9em]",children:".bugcapsule"})," ","file containing the exact flow, the screenshots, the console errors, the failed request, and the point where it broke — and replays it against their own build in a click."]}),r.jsxs("div",{className:"mt-7 flex flex-wrap items-center gap-3",children:[r.jsx("a",{href:"#",className:"btn-primary font-semibold px-6 py-3 rounded-full shadow-lg shadow-primary/25 hover:shadow-xl transition-all",children:"Add to Chrome — free"}),r.jsx("a",{href:"#demo",className:"font-semibold text-navy px-6 py-3 rounded-full border border-navy/15 hover:border-navy/30 transition-colors",children:"See Demo"})]}),r.jsx("p",{className:"mt-6 text-sm text-navy/50 font-medium",children:"No account. No backend. Nothing leaves your machine unless you send it."})]}),r.jsxs("div",{className:"relative animate-fadeUp [animation-delay:.15s]",children:[r.jsxs("div",{className:"rounded-2xl bg-navy shadow-2xl overflow-hidden border border-black/10",children:[r.jsxs("div",{className:"flex items-center gap-1.5 px-4 py-2.5 border-b border-white/10",children:[r.jsx("span",{className:"w-2.5 h-2.5 rounded-full bg-primary/70"}),r.jsx("span",{className:"w-2.5 h-2.5 rounded-full bg-gold/70"}),r.jsx("span",{className:"w-2.5 h-2.5 rounded-full bg-success/70"}),r.jsx("span",{className:"ml-2 text-white/40 text-[11px] font-medium",children:"checkout-flow — recording"})]}),r.jsx("div",{className:"p-5 space-y-2.5",children:[{label:"Log in",done:!0},{label:"Search product",done:!0},{label:"Add to cart",done:!0},{label:"Apply coupon",done:!0},{label:"Checkout — 500 response",done:!0,failed:!0}].map(e=>r.jsxs("div",{className:`flex items-center gap-3 rounded-xl px-3 py-2.5 text-sm ${e.failed?"bg-primary/15 border border-primary/40":"bg-white/5"}`,children:[r.jsx("span",{className:`w-5 h-5 rounded-full flex items-center justify-center text-[10px] font-bold ${e.failed?"bg-primary text-white":"bg-success text-white"}`,children:e.failed?"!":"✓"}),r.jsx("span",{className:e.failed?"text-white font-medium":"text-white/70",children:e.label})]},e.label))})]}),r.jsxs("div",{className:"absolute -bottom-6 -left-6 bg-white rounded-2xl shadow-xl border border-black/5 px-5 py-3 flex items-center gap-3",children:[r.jsx("span",{className:"w-8 h-8 rounded-lg bg-gold/20 flex items-center justify-center text-gold text-sm font-bold",children:"⬇"}),r.jsxs("div",{children:[r.jsx("div",{className:"text-sm font-semibold text-navy",children:"checkout-flow.bugcapsule"}),r.jsx("div",{className:"text-[11px] text-navy/40",children:"2.1 MB · ready to share"})]})]})]})]})]}),r.jsx(ia,{productName:"Bug Capsule"}),r.jsx(Oi,{productName:"Bug Capsule"}),r.jsx("section",{className:"py-16 border-y border-black/5",children:r.jsxs("div",{className:"max-w-6xl mx-auto px-6 lg:px-10 grid sm:grid-cols-2 gap-6",children:[r.jsxs("div",{className:"bg-white border border-black/5 rounded-2xl p-6",children:[r.jsx("span",{className:"text-[11px] font-bold text-primary uppercase tracking-wide",children:"For developers"}),r.jsx("p",{className:"font-display font-semibold text-lg text-navy mt-2 leading-snug",children:pg.developer})]}),r.jsxs("div",{className:"bg-white border border-black/5 rounded-2xl p-6",children:[r.jsx("span",{className:"text-[11px] font-bold text-primary uppercase tracking-wide",children:"For testers"}),r.jsx("p",{className:"font-display font-semibold text-lg text-navy mt-2 leading-snug",children:pg.tester})]})]})}),r.jsx("section",{className:"py-24",children:r.jsxs("div",{className:"max-w-5xl mx-auto px-6 lg:px-10",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"The developer's problem"}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy mt-3 tracking-tight",children:"Fix the bug. Then replay step 11."}),r.jsx("p",{className:"text-navy/65 mt-5 leading-relaxed max-w-2xl",children:"You found the bug at step 10 of a checkout flow. You fix it, redeploy, and now you have to do the whole thing again — log in, search, open the product, add to cart, apply the coupon, hit checkout — just to see one line of code behave."}),r.jsx("p",{className:"text-navy/65 mt-4 leading-relaxed max-w-2xl",children:"Ten steps of manual clicking for every attempt. Five attempts is fifty steps of work that isn't engineering."}),r.jsx("p",{className:"text-navy/65 mt-4 leading-relaxed max-w-2xl",children:"With Bug Capsule, you replay. Hit Replay and the recorded flow executes itself against your local build. Or start from any step you like — step 11, the one you actually changed — and skip everything before it. The steps you're not debugging stop costing you anything."}),r.jsx("div",{className:"grid sm:grid-cols-2 gap-4 mt-8",children:UP.map(e=>r.jsxs("div",{className:"flex items-start gap-2.5 text-sm text-navy/75",children:[r.jsx("span",{className:"text-success mt-0.5 shrink-0",children:"✓"}),r.jsx("span",{children:e})]},e))}),r.jsxs("div",{className:"mt-8 bg-[#FFF7EA] border border-gold/30 rounded-2xl p-5 flex items-start gap-3",children:[r.jsx("span",{className:"text-gold shrink-0 mt-0.5",children:"⚠"}),r.jsx("p",{className:"text-sm text-navy/70 leading-relaxed",children:zP})]})]})}),r.jsx("section",{className:"py-24 bg-[#FFF7EA]",children:r.jsxs("div",{className:"max-w-5xl mx-auto px-6 lg:px-10",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"The tester's problem"}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy mt-3 tracking-tight",children:'"Cannot reproduce." Closed.'}),r.jsx("p",{className:"text-navy/65 mt-5 leading-relaxed max-w-2xl",children:"Every tester knows the reply. You found a real bug, you wrote six lines of steps, and it came back closed because it worked on the developer's machine."}),r.jsx("p",{className:"text-navy/65 mt-4 leading-relaxed max-w-2xl",children:"It usually wasn't your steps. It was the browser, the viewport, the logged-in account, the feature flag, the coupon that only exists on staging, the request that 500'd once and not again — none of which fit in a text field."}),r.jsx("p",{className:"text-navy/65 mt-4 leading-relaxed max-w-2xl",children:"A capsule carries all of it. The tester clicks Mark bug at the moment it breaks, writes what they expected and what happened instead, and exports one file. The developer opens it and presses Replay."}),r.jsx("div",{className:"grid sm:grid-cols-2 gap-x-8 gap-y-3 mt-8",children:WP.map(e=>r.jsxs("div",{className:"flex items-start gap-2.5 text-sm text-navy/75",children:[r.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-1.5 shrink-0"}),r.jsx("span",{children:e})]},e))})]})}),r.jsx("section",{id:"how-it-works",className:"py-24",children:r.jsxs("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"text-center max-w-2xl mx-auto mb-14",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"How it works"}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy mt-3 tracking-tight",children:"Record, package, share, replay"})]}),r.jsx("div",{className:"grid sm:grid-cols-2 lg:grid-cols-4 gap-6",children:$P.map(e=>r.jsxs("div",{className:"bg-white border border-black/5 rounded-2xl p-6",children:[r.jsx("span",{className:"font-display font-bold text-2xl text-primary/30",children:e.step}),r.jsx("h3",{className:"font-display font-semibold text-navy mt-2",children:e.title}),r.jsx("p",{className:"text-navy/60 text-sm mt-2 leading-relaxed",children:e.body})]},e.step))})]})}),r.jsx("section",{id:"verify",className:"py-24 bg-navy",children:r.jsxs("div",{className:"max-w-4xl mx-auto px-6 lg:px-10 text-center",children:[r.jsx("span",{className:"text-gold font-semibold text-xs tracking-widest uppercase",children:ud.eyebrow}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-white mt-4 tracking-tight",children:"Evidence, not a claim"}),r.jsx("p",{className:"text-white/60 mt-6 leading-relaxed",children:ud.body1}),r.jsx("p",{className:"text-white/60 mt-4 leading-relaxed",children:ud.body2}),r.jsxs("div",{className:"grid sm:grid-cols-2 gap-4 mt-10 text-left",children:[r.jsxs("div",{className:"bg-white/5 border border-white/10 rounded-2xl p-5",children:[r.jsx("span",{className:"text-[11px] font-bold text-white/40 uppercase tracking-wide",children:"The
223n"}),r.jsx("p",{className:"text-white text-sm mt-2",children:"Step 11 · Checkout — request returned 500"})]}),r.jsxs("div",{className:"bg-white/5 border border-success/40 rounded-2xl p-5",children:[r.jsx("span",{className:"text-[11px] font-bold text-success uppercase tracking-wide",children:"Now"}),r.jsx("p",{className:"text-white text-sm mt-2",children:"Step 11 · Checkout — original failure not reproduced"})]})]})]})}),r.jsx("section",{id:"features",className:"py-8 pb-24",children:r.jsxs("div",{className:"max-w-7xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"text-center max-w-2xl mx-auto mb-16",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"What's inside"}),r.jsx("h2",{className:"font-display font-bold text-4xl sm:text-5xl text-navy mt-3 tracking-tight",children:"Built to be trusted, not just used"})]}),r.jsx("div",{className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-6",children:qP.map(e=>r.jsxs("div",{className:"bg-white rounded-3xl border border-black/5 p-7 shadow-[0_6px_20px_-10px_rgba(9,22,43,0.08)]",children:[r.jsx("h3",{className:"font-display font-semibold text-lg text-navy",children:e.title}),r.jsx("p",{className:"text-navy/60 text-sm mt-2.5 leading-relaxed",children:e.body})]},e.title))}),r.jsxs("div",{className:"mt-10 max-w-2xl mx-auto",children:[r.jsx("p",{className:"text-center text-sm font-semibold text-navy/50 uppercase tracking-wide mb-3",children:"What's inside a .bugcapsule file"}),r.jsx(BP,{label:"checkout-flow.bugcapsule (ZIP)",code:HP,lang:"plain"})]})]})}),r.jsx("section",{id:"faq",className:"py-28 bg-[#FFF7EA]",children:r.jsxs("div",{className:"max-w-3xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"text-center mb-14",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"FAQ"}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy mt-3 tracking-tight",children:"Objection handling"})]}),r.jsx(Ri,{faqs:JP})]})}),r.jsx(oa,{}),r.jsx(la,{productName:"Bug Capsule",logo:Sl}),r.jsx("section",{className:"py-24",children:r.jsx("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:r.jsxs("div",{className:"bg-navy rounded-3xl px-8 sm:px-12 py-12 text-center",children:[r.jsx("h3",{className:"font-display font-bold text-2xl sm:text-3xl text-white",children:"One file. One replay. One less argument."}),r.jsx("a",{href:"#",className:"mt-7 inline-block btn-primary font-semibold px-7 py-3.5 rounded-full shadow-lg shadow-primary/25 hover:shadow-xl transition-all",children:"Add to Chrome — free"}),r.jsx("p",{className:"mt-5 text-white/40 text-sm",children:"Made with ❤️ by Pirates of Bugs"})]})})}),r.jsx(He,{})]})}function GP(){return r.jsxs("div",{className:"rounded-2xl overflow-hidden border border-black/10 shadow-2xl bg-white",children:[r.jsxs("div",{className:"flex items-center gap-2 px-4 py-2.5 bg-navy",children:[r.jsx("span",{className:"w-2.5 h-2.5 rounded-full bg-primary/70"}),r.jsx("span",{className:"w-2.5 h-2.5 rounded-full bg-gold/70"}),r.jsx("span",{className:"w-2.5 h-2.5 rounded-full bg-success/70"}),r.jsx("span",{className:"ml-2 font-mono text-[11px] text-white/60 truncate",children:"https://app.example.com/login"})]}),r.jsx("div",{className:"relative bg-[#F4F1E8] px-8 py-10 sm:px-14 sm:py-16",children:r.jsxs("div",{className:"max-w-xs mx-auto bg-white rounded-xl border border-black/10 shadow-sm p-6",children:[r.jsx("div",{className:"h-2.5 w-20 rounded bg-navy/10 mb-5"}),r.jsx("div",{className:"h-9 rounded-lg border border-black/10 mb-3"}),r.jsx("div",{className:"h-9 rounded-lg border border-black/10 mb-5"}),r.jsxs("div",{className:"relative",children:[r.jsx("div",{className:"h-10 rounded-lg bg-primary flex items-center justify-center text-white text-sm font-semibold",children:"Login"}),r.jsx("div",{className:"absolute -inset-1.5 rounded-lg border-[3px] border-primary pointer-events-none"}),r.jsx("div",{className:"absolute -top-8 left-0 bg-primary text-white text-[11px] font-bold px-2.5 py-1 rounded whitespace-nowrap",children:"STEP 4 · Click Login Button"})]})]})}),r.jsxs("div",{className:"flex flex-wrap items-center gap-x-4 gap-y-1.5 px-4 py-3 bg-navy text-[10px] sm:text-[11px] text-white/50 font-mono border-t border-white/10",children:[r.jsx("span",{children:"Step 4 · Click Login Button"}),r.jsx("span",{className:"text-white/20",children:"|"}),r.jsx("span",{children:"2026-08-13 · 11:42 AM"}),r.jsx("span",{className:"text-white/20",children:"|"}),r.jsx("span",{children:"Chrome 128 · macOS"}),r.jsx("span",{className:"text-white/20",children:"|"}),r.jsx("span",{children:"1440×900"}),r.jsx("span",{className:"text-white/20",children:"|"}),r.jsx("span",{children:"Flow: Login Test"})]})]})}const Gs={eyebrow:"📸 Chrome extension · No AI, just DOM semantics",headline:"Capture Every Step. Prove Every Test.",subhead:"A Chrome extension that turns a manual test run into execution evidence. Press record, do the test, press stop. Every click, entry and page load becomes a numbered, named, highlighted screenshot — and your report is already written.",ctaPrimary:"Add to Chrome — Free",ctaSecondary:"See Demo",trustLine:"Free · Works on any site · Nothing leaves your browser"},mg={heading:"You already did the hard part.",body:['You found the bug. You reproduced it. Then you spent forty minutes cropping screenshots, pasting them into a document, numbering them, typing "Step 3 — clicked 
223Login," and remembering which browser you were on.',"That part isn't testing. It's transcription."]},YP=[{step:"01",title:"Press record",body:'Name your flow — "Login Test," "Checkout Regression" — and start. A small floating widget shows what’s being captured. You can pause, undo the last step, or grab a manual screenshot at any point.'},{step:"02",title:"Run your test",body:"Click, type, select, scroll, switch tabs. Captain Capture watches thirteen kinds of action and decides which ones deserve a frame. The element you touched is outlined in the screenshot itself, with the step number and name printed beside it."},{step:"03",title:"Press stop",body:"Your evidence downloads automatically. ZIP, PDF, Word, or a folder of PNGs — whichever you picked."}],ZP=[{did:"Typed into the username field",writes:"Enter Username"},{did:"Clicked the Login button",writes:"Click Login Button"},{did:'Ticked "Remember me"',writes:"Select Remember Me"},{did:"Chose India from a dropdown",writes:"Select India In Country"},{did:"Landed on /cart/checkout",writes:"Navigate To Checkout"}],KP=[{title:"The highlight is in the screenshot",body:"Not an overlay. Not a layer that needs a viewer. The rectangle, the step label and the mouse 
223cursor are drawn into the pixels, so the evidence survives being pasted into an email, a Jira ticket or a slide. The element is measured in the instant before the shutter fires — not when you clicked — so the box lands on the button even if the page shifted while it loaded. If the element scrolled out of view, no box is drawn at all. Six shapes, six colours, adjustable thickness, optional glow and pulse."},{title:"Passwords never make it into the file",body:"Password fields, OTP boxes, card numbers, CVVs and anything matching your own keyword list are pixelated inside the frame before it’s saved. Not blurred — a Gaussian blur over a password is partly recoverable. Pixelated, and the value is stored as •••••• rather than the text. Add your own selectors for anything else that shouldn’t ship."},{title:"No loading spinners in your evidence",body:"Click Login and a naive recorder photographs the spinner. Captain Capture waits for the page to stop changing before it captures — a fixed delay plus a DOM-quiet check, both adjustable. Page loads get more patience than checkbox ticks, so nothing feels sluggish."},{title:"It follows you across tabs",body:"Open a new tab, switch windows, close one and land back on the last — every move is captured and named. The recorder is injected into every tab when you start and into new ones as they open."},{title:"Annotate before you send",body:"Any step opens in a full-page editor: arrows, boxes, circles, marker pen, blur, text, emoji and auto-numbered markers, with full undo and redo. Annotations stay editable until you flatten them, and saving updates the exported reports automatically."},{title:"Four ways out",body:"ZIP — numbered screenshots plus metadata.json. PDF — cover sheet with environment details, then one page per step. DOCX — the same report, editable, for clients who want to add notes. PNG — a plain folder of frames plus a summary file. Every frame carries the URL along the top and the step number, name, date, time, browser, OS, resolution and flow name along the bottom."}],wo={heading:"Your screenshots never leave your machine.",body:"Captain Capture has no network code. Nothing is uploaded, nothing is analysed, there is no account and no server to breach. Frames are held in your browser’s own storage and written straight to your Downloads folder.",body2:"Recordings clear themselves 30 minutes after they finish, and starting a new session clears the previous one. Screenshots of a live system are working material, not an archive — so export what you need, and the rest disposes of itself.",points:["No account, no login, no telemetry","Works on internal staging and localhost — nothing has to be reachable from outside","Every frame is stamped By Captain Capture, so evidence carries its provenance","Open the source and check: it's all in the extension bundle"]},XP=[{title:"QA Engineers",body:'Who file bug reports that get closed as "cannot reproduce."'},{title:"Agencies & Consultancies",body:"Who bill for UAT and have to hand a client something that looks like it was worth the invoice."},{title:"Compliance & Audit Testers",body:"Who need timestamped, environment-stamped proof that a step was performed."},{title:"Support & Ops Teams",body:"Documenting a workaround once so nobody has to explain it twelve times."}],eT=[{question:"Do I need to write any code?",answer:"No. There's nothing to configure to get started — install it, press record."},{question:"Is this a test automation tool?",answer:"No, and deliberately so. Captain Capture documents a test a human performed. It doesn't generate scripts or replay anything. If you want automation, use Playwright or Cypress — then use Captain Capture for the exploratory and UAT work they don't cover."},{question:"Will it capture my password?",answer:"No. Password, OTP, card and CVV fields are pixelated in the image before it’s stored, and you can add your own keywords and selectors."},{question:"Does it work on internal sites?",answer:"Yes. Anything you can open in Chrome, including localhost and staging behind a VPN. Nothing needs to be publicly reach
223able."},{question:"Can I edit the steps afterwards?",answer:"Yes — rename any step, delete ones you don't want, reorder is automatic, and annotate any frame in the built-in editor."},{question:"How many steps can it handle?",answer:"Up to 300 by default, adjustable. Screenshots are written to browser storage rather than held in memory, so a long regression run won't slow the browser down."},{question:"What does it cost?",answer:"Nothing. The extension is free and supported by the sponsor banner."}],tT=["Chrome captures the visible screen, so frames show what was on screen. Full-page capture is available for page loads as an option.","Chrome won't let any extension record its own settings pages, the Web Store, or other extensions.","Actions inside cross-origin iframes aren't recorded — a framed page can't know where it sits on the parent, so any highlight drawn from it would be in the wrong place.","Chrome limits screenshots to roughly two per second. Click faster than that and every click is still recorded correctly, but the pace is the browser’s, not ours."],bo={heading:"Your next bug report writes itself.",body:"Install it, run one test, and look at what comes out. If it doesn't save you the write-up, uninstall it — there's no account to cancel.",cta:"Add to Chrome — Free",microline:"Made with ♥ by Pirates Of Bugs"};function nT(){return Je(Hf),gn([aa({name:"Captain Capture",description:Hf.description,path:"/captaincapture"}),is([{name:"Pirates of Bugs",path:"/"},{name:"Captain Capture",path:"/captaincapture"}])]),r.jsxs(r.Fragment,{children:[r.jsx(qe,{}),r.jsx("div",{className:"bg-[#FFF4E3] pt-28 lg:pt-32 pb-2",children:r.jsx("div",{className:"max-w-7xl mx-auto px-6 lg:px-10",children:r.jsxs("nav",{"aria-label":"Breadcrumb",className:"text-sm text-navy/50 flex items-center gap-2",children:[r.jsx(V,{to:"/",className:"hover:text-primary transition-colors",children:"Pirates of Bugs"}),r.jsx("span",{children:"/"}),r.jsx("span",{className:"text-navy font-medium",children:"Captain Capture"})]})})}),r.jsxs("section",{className:"relative pt-6 pb-20 overflow-hidden bg-gradient-to-b from-[#FFF4E3] via-[#FFFDF7] to-[#FFFDF7]",children:[r.jsx("div",{className:"grain"}),r.jsxs("div",{className:"max-w-7xl mx-auto px-6 lg:px-10 grid lg:grid-cols-2 gap-16 items-center",children:[r.jsxs("div",{className:"animate-fadeUp",children:[r.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[r.jsx("img",{src:Cl,alt:"Captain Capture logo",className:"w-12 h-12 object-contain"}),r.jsxs("span",{className:"font-display font-bold text-lg text-navy",children:["Captain ",r.jsx("span",{className:"text-primary",children:"Capture"})]})]}),r.jsx("div",{className:"inline-flex items-center gap-2 text-primary text-xs font-bold bg-primary/5 border border-primary/15 px-3 py-1.5 rounded-full mb-6",children:Gs.eyebrow}),r.jsx("h1",{className:"font-display font-extrabold text-[36px] sm:text-5xl leading-[1.1] tracking-tight text-navy",children:Gs.headline}),r.jsx("p",{className:"mt-6 text-navy/65 max-w-xl leading-relaxed",children:Gs.subhead}),r.jsxs("div",{className:"mt-7 flex flex-wrap items-center gap-3",children:[r.jsx("a",{href:"#",className:"btn-primary font-semibold px-6 py-3 rounded-full shadow-lg shadow-primary/25 hover:shadow-xl transition-all",children:Gs.ctaPrimary}),r.jsx("a",{href:"#demo",className:"font-semibold text-navy px-6 py-3 rounded-full border border-navy/15 hover:border-navy/30 transition-colors",children:Gs.ctaSecondary})]}),r.jsx("p",{className:"mt-6 text-sm text-navy/50 font-medium",children:Gs.trustLine})]}),r.jsx("div",{className:"animate-fadeUp [animation-delay:.15s]",children:r.jsx(GP,{})})]})]}),r.jsx(ia,{productName:"Captain Capture"}),r.jsx(Oi,{productName:"Captain Capture"}),r.jsx("section",{className:"py-24",children:r.jsxs("div",{className:"max-w-3xl mx-auto px-6 lg:px-10 text-center",children:[r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy tracking-tight",children:mg.heading}),mg.body.map(e=>r.jsx("p",{className:"text-navy/60 mt-5 leading-relaxed",children:e},e))]})}),r.jsx("section",{id:"how-it-works",className:"py-24 bg-[#FFF7EA]",children:r.jsxs("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"text-center max-w-2xl mx-auto mb-14",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"How it works"}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy mt-3 tracking-tight",children:"Press record. Test. Press stop."})]}),r.jsx("div",{className:"grid sm:grid-cols-3 gap-8",children:YP.map(e=>r.jsxs("div",{className:"bg-white rounded-2xl border border-black/5 p-6",children:[r.jsx("span",{className:"font-display font-bold text-3xl text-primary/25",children:e.step}),r.jsx("h3",{className:"font-display font-semibold text-navy mt-3",children:e.title}),r.jsx("p",{className:"text-navy/60 text-sm mt-2.5 leading-relaxed",children:e.body})]},e.step))})]})}),r.jsx("section",{className:"py-24",children:r.jsxs("div",{className:"max-w-4xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"text-center mb-12",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"Steps that name themselves"}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy mt-3 tracking-tight",children:"Screenshot 4.png tells a client nothing"}),r.jsx("p",{className:"text-navy/60 mt-4 max-w-xl mx-auto",children:"Captain Capture reads the element you interacted with and writes the step for you."})]}),r.jsxs("div",{className:"bg-white rounded-2xl border border-black/5 overflow-hidden",children:[r.jsxs("div",{className:"grid grid-cols-2 bg-navy text-white text-xs font-bold uppercase tracking-wide",children:[r.jsx("div",{className:"px-5 py-3",children:"You did this"}),r.jsx("div",{className:"px-5 py-3",children:"It writes"})]}),ZP.map((e,t)=>r.jsxs("div",{className:`grid grid-cols-2 text-sm ${t%2===0?"bg-white":"bg-[#FFF7EA]"}`,children:[r.jsx("div",{className:"px-5 py-3.5 text-navy/70",children:e.did}),r.jsx("div",{className:"px-5 py-3.5 text-navy font-semibold font-mono text-[13px]",children:e.writes})]},e.did))]}),r.jsxs("p",{className:"text-navy/50 text-sm mt-5 text-center",children:["Files come out as"," ",r.jsx("code",{className:"bg-navy/5 px-1.5 py-0.5 rounded text-navy",children:"001_Login_Page.png"}),","," ",r.jsx("code",{className:"bg-navy/5 px-1.5 py-0.5 rounded text-navy",children:"002_Enter_Username.png"})," ","— already in order, already readable. Rename any step afterwards if you want the wording your team uses."]})]})}),r.jsx("section",{id:"features",className:"py-24 bg-[#FFF7EA]",children:r.jsxs("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"text-center max-w-2xl mx-auto mb-14",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"Features"}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy mt-3 tracking-tight",children:"Evidence, not just screenshots"})]}),r.jsx("div",{className:"grid sm:grid-cols-2 gap-6",children:KP.map(e=>r.jsxs("div",{className:"bg-white rounded-2xl border border-black/5 p-6",children:[r.jsx("h3",{className:"font-display font-semibold text-navy",children:e.title}),r.jsx("p",{className:"text-navy/60 text-sm mt-2.5 leading-relaxed",children:e.body})]},e.title))})]})}),r.jsx("section",{className:"py-24 bg-navy",children:r.jsxs("div",{className:"max-w-3xl mx-auto px-6 lg:px-10 text-center",children:[r.jsx("span",{className:"text-gold font-semibold text-xs tracking-widest uppercase",children:"The section that closes technical buyers"}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-white mt-4 tracking-tight",children:wo.heading}),r.jsx("p",{className:"text-white/60 mt-6 leading-relaxed",children:wo.body}),r.jsx("p",{className:"text-white/60 mt-4 leading-relaxed",children:wo.body2}),r.jsx("ul",{className:"grid sm:grid-cols-2 gap-3 mt-8 text-left max-w-xl mx-auto",children:wo.points.map(e=>r.jsxs("li",{className:"flex items-start gap-2.5 text-sm text-white/70",children:[r.jsx("span",{className:"text-gold mt-0.5 shrink-0",children:"✓"}),e]},e))})]})}),r.jsx("section",{className:"py-24",children:r.jsxs("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"text-center max-w-2xl mx-auto mb-14",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"Who it’s for"}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy mt-3 tracking-tight",children:"Built for anyone who has to prove a test happened"})]}),r.jsx("div",{className:"grid sm:grid-cols-2 lg:grid-cols-4 gap-
2235",children:XP.map(e=>r.jsxs("div",{className:"bg-white rounded-2xl border border-black/5 p-5",children:[r.jsx("h3",{className:"font-display font-semibold text-navy text-sm",children:e.title}),r.jsx("p",{className:"text-navy/60 text-sm mt-2 leading-relaxed",children:e.body})]},e.title))})]})}),r.jsx("section",{className:"py-24 bg-[#FFF7EA]",children:r.jsxs("div",{className:"max-w-3xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"text-center mb-10",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"What it doesn’t do"}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy mt-3 tracking-tight",children:"We’d rather you know now."})]}),r.jsx("ul",{className:"space-y-3",children:tT.map(e=>r.jsxs("li",{className:"flex items-start gap-3 bg-white rounded-xl border border-black/5 p-4 text-sm text-navy/70",children:[r.jsx("span",{className:"text-gold shrink-0 mt-0.5",children:"⚠"}),e]},e))})]})}),r.jsx("section",{id:"faq",className:"py-24",children:r.jsxs("div",{className:"max-w-3xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"text-center mb-14",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"FAQ"}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy mt-3 tracking-tight",children:"Objection handling"})]}),r.jsx(Ri,{faqs:eT})]})}),r.jsx(oa,{}),r.jsx(la,{productName:"Captain Capture",logo:Cl}),r.jsx("section",{className:"pb-24",children:r.jsx("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:r.jsxs("div",{className:"bg-navy rounded-3xl px-8 sm:px-12 py-12 text-center",children:[r.jsx("h3",{className:"font-display font-bold text-2xl sm:text-3xl text-white",children:bo.heading}),r.jsx("p",{className:"text-white/50 mt-3 max-w-lg mx-auto",children:bo.body}),r.jsx("a",{href:"#",className:"mt-7 inline-block btn-primary font-semibold px-7 py-3.5 rounded-full shadow-lg shadow-primary/25 hover:shadow-xl transition-all",children:bo.cta}),r.jsx("p",{className:"mt-5 text-white/40 text-sm",children:bo.microline})]})})}),r.jsx(He,{})]})}const sT="/assets/spyglass-hero-BkFs0Rvl.webp",Ys={eyebrow:"🔍 Chrome extension · 100% local, no account",headline:"See How Your Page Lines Up.",subhead:"Captain Spyglass overlays alignment guides, a center cross and a column grid on any live page. Hover any element to see its exact edges, then ⌘/Ctrl+click to screenshot the page with the overlay baked into the image. Everything stays on your machine.",ctaPrimary:"Add to Chrome — Free",ctaSecondary:"How it works",trustLine:"Free · Works on any site · Nothing leaves your browser"},fg={heading:"Eyeballing alignment is a guess.",body:["You nudge a button two pixels, squint, and hope it lines up with the field above it. Then you open DevTools, measure, close it, and do the same dance on the next element.","You just want to see the grid and the edges — on the real page, without leaving it."]},rT=[{step:"01",title:"Turn it on",body:"Click the toolbar icon or press Alt+Shift+A. A transparent column grid, edge guides and a center cross appear over the live page."},{step:"02",title:"Hover to inspect",body:"Move your cursor over any element and Captain Spyglass draws its exact edges and center lines, so you can read spacing and alignment at a glance."},{step:"03",title:"Capture it",body:"⌘/Ctrl+click anywhere to screenshot the page with the overlay baked into the pixels. It lands in your local capture history, ready to crop, highlight and download."}],aT=[{title:"The overlay is on the real page",body:"No mockups, no separate canvas. The column grid, edge guides and center cross render over the live site you're actually looking at — so what you measure is what ships."},{title:"Screenshots with the guides baked in",body:"A ⌘/Ctrl+click captures the visible page with the overlay drawn into the image itself, so the evidence survives being pasted into a Jira ticket, a design review or a Slack thread."},{title:"A local capture history",body:"Every capture is saved on your device. Browse them on a dedicated page, rename each one, and come back to them whenever you need. Nothing is ever uploaded."},{title:"Built-in image editor",body:"Open any capture and mark it up — crop to the region that matters, highlight, draw with the pen, box things with a rectangle — then download the finished PNG."},{title:"One-key toggle",body:"Alt+Shift+A flips the inspector on or off on the current tab, so it's out of your way the instant you don't need it. Remap the shortcut any time."},{title:"Works on any site",body:"Staging, localhost, production — anything you can open in Chrome. Nothing needs to be publicly reach
223able, and Captain Spyglass only acts on the tab you point it at."}],jo={heading:"Your captures never leave your machine.",body:"Captain Spyglass has no account, no server and no analytics. The overlay runs only on the tab you point it at, and your screenshots and settings live in your browser's own local storage.",body2:"When you download a capture it goes straight to your Downloads folder. Nothing is uploaded, nothing is analysed, and there is no account or server to breach.",points:["No account, no login, no telemetry","No broad site access — it uses activeTab, on the current tab only","Works on internal staging and localhost","All code ships in the extension bundle — no remote scripts"]},iT=[{title:"Front-end Developers",body:"Checking spacing, alignment and grid conformance on a live build instead of guessing in DevTools."},{title:"Designers",body:"Verifying that what shipped matches the layout — pixel by pixel, on the real page."},{title:"QA Engineers",body:"Filing alignment and layout bugs with a marked-up screenshot attached as proof."},{title:"Anyone reviewing a page",body:"Who needs to point at exactly what is off and grab evidence of it in one click."}],oT=[{question:"Do I need an account?",answer:"No. Install it and press Alt+Shift+A. There's nothing to sign up for and nothing to configure."},{question:"Does it send my screenshots anywhere?",answer:"No. Captures and settings are stored locally in your browser and only ever leave when you choose to download one to your computer."},{question:"Which sites does it work on?",answer:"Any site you can open in Chrome, including localhost and staging behind a VPN. It only acts on the tab you turn it on for, using the activeTab permission."},{question:"Can I edit a capture?",answer:"Yes — the history page has a built-in editor with crop, highlight, pen and rectangle tools, plus one-click download of the finished PNG."},{question:"How do I toggle it?",answer:"Click the toolbar icon or press Alt+Shift+A. You can remap the shortcut any time at chrome://extensions/shortcuts."},{question:"What does it cost?",answer:"Nothing. Captain Spyglass is free, supported by the sponsor banner shown in the popup."}],lT=["Chrome captures the visible screen, so a screenshot shows what was on screen at that moment.","Chrome won't let any extension run on its own settings pages, the Web Store, or other extensions' pages.","Chrome limits screenshots to roughly two per second — click faster and each capture still saves, but at the browser’s pace."],ko={heading:"Stop guessing at alignment.",body:"Turn it on, hover a few elements, grab a screenshot. If it doesn't make your layout work faster, uninstall it — there's no account to cancel.",cta:"Add to Chrome — Free",microline:"Made with ♥ by Pirates Of Bugs"},Ju="https://chromewebstore.google.com/detail/captain-spyglass-%E2%80%94-alignm/cbdhbfjgpflpiinjenjpepbojnadianj",cT="https://www.youtube.com/embed/lpp2cSxvxBQ",dT=ip.map(e=>e.name==="Google Chrome"?{...e,available:!0,href:Ju}:e);function uT(){return Je(Jf),gn([aa({name:"Captain Spyglass",description:Jf.description,path:"/captainspyglass"}),is([{name:"Pirates of Bugs",path:"/"},{name:"Captain Spyglass",path:"/captainspyglass"}])]),r.jsxs(r.Fragment,{children:[r.jsx(qe,{}),r.jsx("div",{className:"bg-[#FFF4E3] pt-28 lg:pt-32 pb-2",children:r.jsx("div",{className:"max-w-7xl mx-auto px-6 lg:px-10",children:r.jsxs("nav",{"aria-label":"Breadcrumb",className:"text-sm text-navy/50 flex items-center gap-2",children:[r.jsx(V,{to:"/",className:"hover:text-primary transition-colors",children:"Pirates of Bugs"}),r.jsx("span",{children:"/"}),r.jsx("span",{className:"text-navy font-medium",children:"Captain Spyglass"})]})})}),r.jsxs("section",{className:"relative pt-6 pb-20 overflow-hidden bg-gradient-to-b from-[#FFF4E3] via-[#FFFDF7] to-[#FFFDF7]",children:[r.jsx("div",{className:"grain"}),r.jsxs("div",{className:"max-w-7xl mx-auto px-6 lg:px-10 grid lg:grid-cols-2 gap-16 items-center",children:[r.jsxs("div",{className:"animate-fadeUp",children:[r.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[r.jsx("img",{src:Pl,alt:"Captain Spyglass logo",className:"w-12 h-12 object-contain"}),r.jsx("span",{className:"font-display font-bold text-lg text-navy",children:"Captain Spyglass"})]}),r.jsx("div",{className:"inline-flex items-center gap-2 text-primary text-xs font-bold bg-primary/5 border border-primary/15 px-3 py-1.5 rounded-full mb-6",children:Ys.eyebrow}),r.jsx("h1",{className:"font-display font-extrabold text-[36px] sm:text-5xl leading-[1.1] tracking-tight text-navy",children:Ys.headline}),r.jsx("p",{className:"mt-6 text-navy/65 max-w-xl leading-relaxed",children:Ys.subhead}),r.jsxs("div",{className:"mt-7 flex flex-wrap items-center gap-3",children:[r.jsx("a",{href:Ju,target:"_blank",rel:"noopener noreferrer",className:"btn-primary font-semibold px-6 py-3 rounded-full shadow-lg shadow-primary/25 hover:shadow-xl transition-all",children:Ys.ctaPrimary}),r.jsx("a",{href:"#how-it-works",className:"font-semibold text-navy px-6 py-3 rounded-full border border-navy/15 hover:border-navy/30 transition-colors",children:Ys.ctaSecondary})]}),r.jsx("p",{className:"mt-6 text-sm text-navy/50 font-medium",children:Ys.trustLine})]}),r.jsx("div",{className:"animate-fadeUp [animation-delay:.15s]",children:r.jsx("div",{className:"relative w-full aspect-video rounded-3xl border border-black/5 overflow-hidden shadow-[0_28px_60px_-24px_rgba(9,22,43,0.30)]",children:r.jsx("img",{src:sT,alt:"Captain Spyglass inspecting a live web page — element edges, size and distance overlays",className:"w-full h-full object-cover select-none"})})})]})]}),r.jsx(ia,{productName:"Captain Spyglass",browsers:dT}),r.jsx(Oi,{productName:"Captain Spyglass",youtubeEmbedUrl:cT}),r.jsx("section",{className:"py-24",children:r.jsxs("div",{className:"max-w-3xl mx-auto px-6 lg:px-10 text-center",children:[r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy tracking-tight",children:fg.heading}),fg.body.map(e=>r.jsx("p",{className:"text-navy/60 mt-5 leading-relaxed",children:e},e))]})}),r.jsx("section",{id:"how-it-works",className:"py-24 bg-[#FFF7EA]",children:r.jsxs("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"text-center max-w-2xl mx-auto mb-14",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"How it works"}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy mt-3 tracking-tight",children:"Turn it on. Hover. Capture."})]}),r.jsx("div",{className:"grid sm:grid-cols-3 gap-8",children:rT.map(e=>r.jsxs("div",{className:"bg-white rounded-2xl border border-black/5 p-6",children:[r.jsx("span",{className:"font-display font-bold text-3xl text-primary/25",children:e.step}),r.jsx("h3",{className:"font-display font-semibold text-navy mt-3",children:e.title}),r.jsx("p",{className:"text-navy/60 text-sm mt-2.5 leading-relaxed",children:e.body})]},e.step))})]})}),r.jsx("section",{id:"features",className:"py-24",children:r.jsxs("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"text-center max-w-2xl mx-auto mb-14",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"Features"}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy mt-3 tracking-tight",children:"Guides you can see — and screenshot"})]}),r.jsx("div",{className:"grid sm:grid-cols-2 gap-6",children:aT.map(e=>r.jsxs("div",{className:"bg-white rounded-2xl border border-black/5 p-6",children:[r.jsx("h3",{className:"font-display font-semibold text-navy",children:e.title}),r.jsx("p",{className:"text-navy/60 text-sm mt-2.5 leading-relaxed",children:e.body})]},e.title))})]})}),r.jsx("section",{className:"py-24 bg-navy",children:r.jsxs("div",{className:"max-w-3xl mx-auto px-6 lg:px-10 text-center",children:[r.jsx("span",{className:"text-gold font-semibold text-xs tracking-widest uppercase",children:"Local-first by design"}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-white mt-4 tracking-tight",children:jo.heading}),r.jsx("p",{className:"text-white/60 mt-6 leading-relaxed",children:jo.body}),r.jsx("p",{className:"text-white/60 mt-4 leading-relaxed",children:jo.body2}),r.jsx("ul",{className:"grid sm:grid-cols-2 gap-3 mt-8 text-left max-w-xl mx-auto",children:jo.points.map(e=>r.jsxs("li",{className:"flex items-start gap-2.5 text-sm text-white/70",children:[r.jsx("span",{className:"text-gold mt-0.5 shrink-0",children:"✓"}),e]},e))})]})}),r.jsx("section",{className:"py-24",children:r.jsxs("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"text-center max-w-2xl mx-auto mb-14",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"Who it’s for"}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy mt-3 tracking-tight",children:"For anyone who cares where the pixels land"})]}),r.jsx("div",{className:"grid sm:grid-cols-2 lg:grid-cols-4 gap-
2235",children:iT.map(e=>r.jsxs("div",{className:"bg-white rounded-2xl border border-black/5 p-5",children:[r.jsx("h3",{className:"font-display font-semibold text-navy text-sm",children:e.title}),r.jsx("p",{className:"text-navy/60 text-sm mt-2 leading-relaxed",children:e.body})]},e.title))})]})}),r.jsx("section",{className:"py-24 bg-[#FFF7EA]",children:r.jsxs("div",{className:"max-w-3xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"text-center mb-10",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"What it doesn’t do"}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy mt-3 tracking-tight",children:"We’d rather you know now."})]}),r.jsx("ul",{className:"space-y-3",children:lT.map(e=>r.jsxs("li",{className:"flex items-start gap-3 bg-white rounded-xl border border-black/5 p-4 text-sm text-navy/70",children:[r.jsx("span",{className:"text-gold shrink-0 mt-0.5",children:"⚠"}),e]},e))})]})}),r.jsx("section",{id:"faq",className:"py-24",children:r.jsxs("div",{className:"max-w-3xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"text-center mb-14",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"FAQ"}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy mt-3 tracking-tight",children:"Questions, answered"})]}),r.jsx(Ri,{faqs:oT})]})}),r.jsx(oa,{}),r.jsx(la,{productName:"Captain Spyglass",logo:Pl}),r.jsx("section",{className:"pb-24",children:r.jsx("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:r.jsxs("div",{className:"bg-navy rounded-3xl px-8 sm:px-12 py-12 text-center",children:[r.jsx("h3",{className:"font-display font-bold text-2xl sm:text-3xl text-white",children:ko.heading}),r.jsx("p",{className:"text-white/50 mt-3 max-w-lg mx-auto",children:ko.body}),r.jsx("a",{href:Ju,target:"_blank",rel:"noopener noreferrer",className:"mt-7 inline-block btn-primary font-semibold px-7 py-3.5 rounded-full shadow-lg shadow-primary/25 hover:shadow-xl transition-all",children:ko.cta}),r.jsx("p",{className:"mt-5 text-white/40 text-sm",children:ko.microline})]})})}),r.jsx(He,{})]})}const Zs={eyebrow:"🐙 Chrome extension · 100% local, no account",headline:"One Click. The Whole Bug.",subhead:"Captain Octopus records the bug as it happens — a replayable DOM session plus the console, network and the exact steps that led there. Everything is redacted on your device before it is stored, and nothing is ever uploaded.",ctaPrimary:"Add to Chrome — Free",ctaSecondary:"How it works",trustLine:"Free · Local-first · Nothing leaves your browser"},xg={heading:'"Cannot reproduce" is where bugs go to hide.',body:["A tester swears the button breaks. The developer clicks it and it works. Screenshots miss the console error, the failing request, and the three steps that actually triggered it — so the ticket bounces back and forth for days.","You want to hand engineering everything they need to reproduce it, captured the moment it happened, without leaking anything sensitive."]},hT=[{step:"01",title:"Start recording",body:"Click the Captain Octopus icon and hit Start. A small pill in the corner shows it is recording the tab — capture is off until you ask for it."},{step:"02",title:"Reproduce the bug",body:"Do the thing that breaks. Captain Octopus captures the replayable session, console logs, network calls and every click and input along the way."},{step:"03",title:"Stop → get the report",body:"Hit Stop and Captain Octopus opens a report: a scrubbable replay synced with the console, network and reproduction steps — ready to attach to a ticket."}],pT=[{title:"A replayable session, not a screenshot",body:"Captain Octopus records the DOM as it changed, so the report plays back like a video you can scrub — but it is real markup, so text stays crisp and searchable."},{title:"Console & network, in context",body:"Every console message, error and network request is captured and lined up on the same timeline as the replay, so the failing call sits right next to the moment it failed."},{title:"Reproduction steps, written for you",body:'Clicks, inputs and navigations become a clean, numbered list of steps — the "how to reproduce" section engineers always ask for, filled 
223in automatically.'},{title:"Redacted on your device",body:"Auth headers, tokens, emails, card and SSN patterns and password fields are masked before anything is stored — the privacy pass runs locally, not on a server."},{title:"The report opens in the extension",body:"No upload, no link to a cloud dashboard. The report is a local page inside the extension, with a full replay viewer and console/network/steps panels."},{title:"A local history of every capture",body:"Reports are saved on your device and listed on their own page. Reopen them any time, or export one to share — you decide what leaves your machine."}],No={heading:"The whole bug — and it never leaves your machine.",body:"Captain Octopus has no account, no server and no analytics. Recording only runs while you have a session started, and the session is redacted and stored in your own browser.",body2:"A report only leaves your device if you explicitly export it. Nothing is uploaded, nothing is analysed, and there is no cloud dashboard or account to breach.",points:["No account, no login, no telemetry","Targeted redaction runs before anything is stored","Reports live in your browser — export only when you choose","All code ships in the extension bundle — no remote scripts"]},mT=[{title:"QA Engineers & Testers",body:"File a bug that developers can actually reproduce — replay, console, network and steps, captured the moment it broke."},{title:"Developers",body:"Stop guessing from a screenshot. Open the replay, read the failing request and console error, and follow the exact steps."},{title:"Product & Support",body:"Capture a customer issue faithfully without needing to understand DevTools — one click records everything that matters."},{title:"Privacy-conscious teams",body:"Get rich bug reports without shipping session data to a third-party cloud — everything stays on the reporter’s machine."}],fT=[{question:"Do I need an account?",answer:"No. Install it, click the icon and press Start. There is nothing to sign up for and nothing to configure."},{question:"Is my session data uploaded anywhere?",answer:"No. Recording, redaction, storage and the report viewer all run on your device. A report only leaves your machine if you export it yourself."},{question:"What exactly does it capture?",answer:"A replayable DOM session, console messages and errors, network requests (method, URL, status, timing and size-capped bodies), and a step-by-step trail of your clicks, inputs and navigations."},{question:"How is sensitive data handled?",answer:"A redaction pass runs locally before anything is stored: auth/cookie headers, tokens and API keys, emails, card and SSN patterns and password fields are masked, and you can add your own selectors and patterns."},{question:"How do I record a bug?",answer:"Open the popup and press Start recording, reproduce the bug, then press Stop — C
223aptain Octopus builds the report and opens it in a new tab. You can pause any time from the on-page pill."},{question:"What does it cost?",answer:"Nothing. Captain Octopus is free, supported by the sponsor shown in the popup."}],xT=["Cross-origin iframes cannot be captured — the browser isolates them, so they are flagged rather than replayed.","Chrome won't let any extension run on its own settings pages, the Web Store, or other extensions' pages.","Very heavy pages are sampled or briefly paused to stay responsive, so an extreme burst of DOM changes may be thinned in the replay."],So={heading:'Turn "cannot reproduce" into a replay.',body:"Record a bug once, hand engineering the whole story, and keep every byte on your machine. If it does not save you a round-trip, uninstall it — there is no account to cancel.",cta:"Add to Chrome — Free",microline:"Made with ♥ by Pirates Of Bugs"};function gT(){return Je(Qf),gn([aa({name:"Captain Octopus",description:Qf.description,path:"/captainoctopus"}),is([{name:"Pirates of Bugs",path:"/"},{name:"Captain Octopus",path:"/captainoctopus"}])]),r.jsxs(r.Fragment,{children:[r.jsx(qe,{}),r.jsx("div",{className:"bg-[#FFF4E3] pt-28 lg:pt-32 pb-2",children:r.jsx("div",{className:"max-w-7xl mx-auto px-6 lg:px-10",children:r.jsxs("nav",{"aria-label":"Breadcrumb",className:"text-sm text-navy/50 flex items-center gap-2",children:[r.jsx(V,{to:"/",className:"hover:text-primary transition-colors",children:"Pirates of Bugs"}),r.jsx("span",{children:"/"}),r.jsx("span",{className:"text-navy font-medium",children:"Captain Octopus"})]})})}),r.jsxs("section",{className:"relative pt-6 pb-20 overflow-hidden bg-gradient-to-b from-[#FFF4E3] via-[#FFFDF7] to-[#FFFDF7]",children:[r.jsx("div",{className:"grain"}),r.jsxs("div",{className:"max-w-7xl mx-auto px-6 lg:px-10 grid lg:grid-cols-2 gap-16 items-center",children:[r.jsxs("div",{className:"animate-fadeUp",children:[r.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[r.jsx("img",{src:Ua,alt:"Captain Octopus logo",className:"w-12 h-12 object-contain"}),r.jsx("span",{className:"font-display font-bold text-lg text-navy",children:"Captain Octopus"})]}),r.jsx("div",{className:"inline-flex items-center gap-2 text-primary text-xs font-bold bg-primary/5 border border-primary/15 px-3 py-1.5 rounded-full mb-6",children:Zs.eyebrow}),r.jsx("h1",{className:"font-display font-extrabold text-[36px] sm:text-5xl leading-[1.1] tracking-tight text-navy",children:Zs.headline}),r.jsx("p",{className:"mt-6 text-navy/65 max-w-xl leading-relaxed",children:Zs.subhead}),r.jsxs("div",{className:"mt-7 flex flex-wrap items-center gap-3",children:[r.jsx("a",{href:"#",className:"btn-primary font-semibold px-6 py-3 rounded-full shadow-lg shadow-primary/25 hover:shadow-xl transition-all",children:Zs.ctaPrimary}),r.jsx("a",{href:"#how-it-works",className:"font-semibold text-navy px-6 py-3 rounded-full border border-navy/15 hover:border-navy/30 transition-colors",children:Zs.ctaSecondary})]}),r.jsx("p",{className:"mt-6 text-sm text-navy/50 font-medium",children:Zs.trustLine})]}),r.jsx("div",{className:"animate-fadeUp [animation-delay:.15s]",children:r.jsxs("div",{className:"relative rounded-3xl border border-black/5 bg-white shadow-[0_20px_50px_-20px_rgba(9,22,43,0.25)] overflow-hidden",children:[r.jsxs("div",{className:"flex items-center gap-2 px-4 py-3 border-b border-black/5 bg-[#FBFBFD]",children:[r.jsx("span",{className:"w-2.5 h-2.5 rounded-full bg-[#FF5F57]"}),r.jsx("span",{className:"w-2.5 h-2.5 rounded-full bg-[#FEBC2E]"}),r.jsx("span",{className:"w-2.5 h-2.5 rounded-full bg-[#28C840]"}),r.jsxs("div",{className:"ml-3 flex items-center gap-2",children:[r.jsx("img",{src:Ua,alt:"",className:"w-5 h-5 object-contain"}),r.jsx("span",{className:"text-xs font-semibold text-navy/70",children:"Bug report · replay"})]}),r.jsxs("span",{className:"ml-auto inline-flex items-center gap-1.5 text-[10px] font-bold text-primary bg-primary/10 px-2 py-1 rounded-full",children:[r.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary"})," LOCAL"]})]}),r.jsxs("div",{className:"px-4 pt-4",children:[r.jsx("div",{className:"aspect-[16/9] rounded-xl border border-black/5 bg-gradient-to-br from-[#EEF3F9] to-[#E3ECF5] grid place-items-center",children:r.jsx("span",{className:"grid place-items-center w-12 h-12 rounded-full bg-white shadow text-primary",children:"▶"})}),r.jsx("div",{className:"mt-3 h-1.5 rounded-full bg-black/10 overflow-hidden",children:r.jsx("div",{className:"h-full w-2/3 bg-primary rounded-full"})})]}),r.jsx("div",{className:"grid grid-cols-3 gap-px bg-black/5 mt-4 text-[11px]",children:[["Console","1 error","text-[#9B1F2E]"],["Network","2 failed","text-[#A5580C]"],["Steps","5 actions","text-navy/70"]].map(([e,t,n])=>r.jsxs("div",{className:"bg-white px-3 py-3",children:[r.jsx("div",{className:"font-semibold text-navy/50 uppercase tracking-wide text-[9px]",children:e}),r.jsx("div",{className:`mt-1 font-mono font-bold ${n}`,children:t})]},e))})]})})]})]}),r.jsx(ia,{productName:"Captain Octopus"}),r.jsx("section",{className:"py-24",children:r.jsxs("div",{className:"max-w-3xl mx-auto px-6 lg:px-10 text-center",children:[r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy tracking-tight",children:xg.heading}),xg.body.map(e=>r.jsx("p",{className:"text-navy/60 mt-5 leading-relaxed",children:e},e))]})}),r.jsx("section",{id:"how-it-works",className:"py-24 bg-[#FFF7EA]",children:r.jsxs("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"text-center max-w-2xl mx-auto mb-14",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"How it works"}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy mt-3 tracking-tight",children:"Start. Reproduce. Stop."})]}),r.jsx("div",{className:"grid sm:grid-cols-3 gap-8",children:hT.map(e=>r.jsxs("div",{className:"bg-white rounded-2xl border border-black/5 p-6",children:[r.jsx("span",{className:"font-display font-bold text-3xl text-primary/25",children:e.step}),r.jsx("h3",{className:"font-display font-semibold text-navy mt-3",children:e.title}),r.jsx("p",{className:"text-navy/60 text-sm mt-2.5 leading-relaxed",children:e.body})]},e.step))})]})}),r.jsx("section",{id:"features",className:"py-24",children:r.jsxs("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"text-center max-w-2xl mx-auto mb-14",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"Features"}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy mt-3 tracking-tight",children:"Everything engineering asks for — captured once"})]}),r.jsx("div",{className:"grid sm:grid-cols-2 gap-6",children:pT.map(e=>r.jsxs("div",{className:"bg-white rounded-2xl border border-black/5 p-6",children:[r.jsx("h3",{className:"font-display font-semibold text-navy",children:e.title}),r.jsx("p",{className:"text-navy/60 text-sm mt-2.5 leading-relaxed",children:e.body})]},e.title))})]})}),r.jsx("section",{className:"py-24 bg-navy",children:r.jsxs("div",{className:"max-w-3xl mx-auto px-6 lg:px-10 text-center",children:[r.jsx("span",{className:"text-gold font-semibold text-xs tracking-widest uppercase",children:"Local-first by design"}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-white mt-4 tracking-tight",children:No.heading}),r.jsx("p",{className:"text-white/60 mt-6 leading-relaxed",children:No.body}),r.jsx("p",{className:"text-white/60 mt-4 leading-relaxed",children:No.body2}),r.jsx("ul",{className:"grid sm:grid-cols-2 gap-3 mt-8 text-left max-w-xl mx-auto",children:No.points.map(e=>r.jsxs("li",{className:"flex items-start gap-2.5 text-sm text-white/70",children:[r.jsx("span",{className:"text-gold mt-0.5 shrink-0",children:"✓"}),e]},e))})]})}),r.jsx("section",{className:"py-24",children:r.jsxs("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"text-center max-w-2xl mx-auto mb-14",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"Who it’s for"}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy mt-3 tracking-tight",children:"For everyone who touches a bug"})]}),r.jsx("div",{className:"grid sm:grid-cols-2 lg:grid-cols-4 gap-
2235",children:mT.map(e=>r.jsxs("div",{className:"bg-white rounded-2xl border border-black/5 p-5",children:[r.jsx("h3",{className:"font-display font-semibold text-navy text-sm",children:e.title}),r.jsx("p",{className:"text-navy/60 text-sm mt-2 leading-relaxed",children:e.body})]},e.title))})]})}),r.jsx("section",{className:"py-24 bg-[#FFF7EA]",children:r.jsxs("div",{className:"max-w-3xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"text-center mb-10",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"What it doesn’t do"}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy mt-3 tracking-tight",children:"We’d rather you know now."})]}),r.jsx("ul",{className:"space-y-3",children:xT.map(e=>r.jsxs("li",{className:"flex items-start gap-3 bg-white rounded-xl border border-black/5 p-4 text-sm text-navy/70",children:[r.jsx("span",{className:"text-gold shrink-0 mt-0.5",children:"⚠"}),e]},e))})]})}),r.jsx("section",{id:"faq",className:"py-24",children:r.jsxs("div",{className:"max-w-3xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"text-center mb-14",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"FAQ"}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy mt-3 tracking-tight",children:"Questions, answered"})]}),r.jsx(Ri,{faqs:fT})]})}),r.jsx(oa,{}),r.jsx(la,{productName:"Captain Octopus",logo:Ua}),r.jsx("section",{className:"pb-24",children:r.jsx("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:r.jsxs("div",{className:"bg-navy rounded-3xl px-8 sm:px-12 py-12 text-center",children:[r.jsx("h3",{className:"font-display font-bold text-2xl sm:text-3xl text-white",children:So.heading}),r.jsx("p",{className:"text-white/50 mt-3 max-w-lg mx-auto",children:So.body}),r.jsx("a",{href:"#",className:"mt-7 inline-block btn-primary font-semibold px-7 py-3.5 rounded-full shadow-lg shadow-primary/25 hover:shadow-xl transition-all",children:So.cta}),r.jsx("p",{className:"mt-5 text-white/40 text-sm",children:So.microline})]})})}),r.jsx(He,{})]})}function f1(){Je({title:"Page not found",description:"That page could not be found. Explore Captain JSON and the Pirates of Bugs toolkit instead.",path:"/404",noindex:!0});const e=[{name:"Captain JSON",to:"/captainjson"},{name:"Captain JMX",to:"/captainjmx"},{name:"Bug Capsule",to:"/bugcapsule"},{name:"Captain Capture",to:"/captaincapture"},{name:"Captain Spyglass",to:"/captainspyglass"},{name:"Community",to:"/community"}];return r.jsxs(r.Fragment,{children:[r.jsx(qe,{}),r.jsx("main",{className:"min-h-[70vh] flex items-center bg-gradient-to-b from-[#FFF4E3] to-[#FFFDF7]",children:r.jsxs("div",{className:"max-w-3xl mx-auto px-6 lg:px-10 py-28 text-center",children:[r.jsx("div",{className:"font-display font-extrabold text-7xl text-primary",children:"404"}),r.jsx("h1",{className:"font-display font-bold text-3xl text-navy mt-4",children:"This page drifted off the map"}),r.jsx("p",{className:"text-navy/60 mt-3 max-w-lg mx-auto leading-relaxed",children:"The URL you followed doesn’t exist (or moved). Here are some good places to pick up the trail."}),r.jsx("div",{className:"mt-8 flex flex-wrap justify-center gap-2.5",children:e.map(t=>r.jsx(V,{to:t.to,className:"text-sm font-medium text-navy bg-white border border-black/5 shadow-sm px-4 py-2 rounded-full hover:border-primary/30 hover:text-primary transition-colors",children:t.name},t.to))}),r.jsx("div",{className:"mt-8",children:r.jsx(V,{to:"/",className:"text-primary font-semibold text-sm hover:underline",children:"← Back to Pirates of Bugs home"})})]})}),r.jsx(He,{})]})}const yT=[{title:"CSS Margin vs Padding: The Complete Guide to Spacing, Layout & UI Design",slug:"css-margin-vs-padding-the-complete-guide-to-spacing-layout-ui-design",date:"2026-10-01T18:15:03",modified:"2026-10-01T18:27:16",excerpt:"Margin vs padding, explained clearly: what each CSS property does, when to use which, and how they shape spacing, layout and visual hierarchy in UI design",contentHtml:`
224<p class="wp-block-paragraph"><a href="https://medium.com/@piratesofbugs?source=post_page---byline--9f310e78a3c8-----------------------------------------"></a></p>
225
226
227
228<p class="wp-block-paragraph">If you have ever looked at a webpage and thought, <strong>
228“Why does this section feel too cramped?”</strong> or <strong>“Why is there so much space between these elements?”</strong>, you have already encountered one of the most important aspects of frontend development: <strong>spacing</strong>.</p>
229
230
231
232<p class="wp-block-paragraph">Spacing is one of those details users rarely notice when it is done well — but immediately notice when it is wrong.</p>
233
234
235
236<p class="wp-block-paragraph">Two CSS properties sit at the center of this discussion:</p>
237
238
239
240<p class="wp-block-paragraph"><code><strong>margin</strong></code> <strong>and</strong> <code><strong>padding</strong></code><strong>.</strong></p>
241
242
243
244<p class="wp-block-paragraph">Understanding the difference between CSS margin and padding is fundamental to building clean layouts, responsive interfaces, and polished user experiences.</p>
245
246
247
248<p class="wp-block-paragraph">But good spacing is about more than knowing which property to use. It is also about understanding <strong>visual hierarchy, consistency, spacing systems, component relationships, and the box model</strong>.</p>
249
250
251
252<p class="wp-block-paragraph">In this guide, we’ll break down:</p>
253
254
255
256<ul class="wp-block-list">
257<li>What CSS margin is</li>
258
259
260
261<li>What CSS padding is</li>
262
263
264
265<li>Margin vs padding</li>
266
267
268
269<li>How the CSS box model works</li>
270
271
272
273<li>Practical spacing rules for UI design</li>
274
275
276
277<li>The 8px spacing system</li>
278
279
280
281<li>How to choose margin and padding</li>
282
283
284
285<li>Button padding guidelines</li>
286
287
288
289<li>How developers inspect spacing on real websites</li>
290
291
292
293<li>How to compare webpage spacing with Figma designs</li>
294
295
296
297<li>A faster way to inspect margin and padding using <strong>Captain Spyglass</strong></li>
298</ul>
299
300
301
302<h2 class="wp-block-heading">What Is CSS Margin?</h2>
303
304
305
306<p class="wp-block-paragraph"><strong>Margin is the space outside an element.</strong></p>
307
308
309
310<p class="wp-block-paragraph">It controls the distance between an element and the elements surrounding it.</p>
311
312
313
314<p class="wp-block-paragraph">For example:</p>
315
316
317
318<pre class="wp-block-preformatted">.card {<br>  margin: 20px;<br>}</pre>
319
320
321
322<p class="wp-block-paragraph">This creates <strong>20px of space around the outside of the card</strong>.</p>
323
324
325
326<p class="wp-block-paragraph">You can also control each side independently:</p>
327
328
329
330<pre class="wp-block-preformatted">.card {<br>  margin-top: 20px;<br>  margin-right: 16px;<br>  margin-bottom: 24px;<br>  margin-left: 16px;<br>}</pre>
331
332
333
334<p class="wp-block-paragraph">Or use CSS shorthand:</p>
335
336
337
338<pre class="wp-block-preformatted">.card {<br>  margin: 20px 16px 24px 16px;<br>}</pre>
339
340
341
342<h2 class="wp-block-heading">Think of margin as external space</h2>
343
344
345
346<p class="wp-block-paragraph">If you have two cards:</p>
347
348
349
350<pre class="wp-block-preformatted">┌───────────────┐       ┌───────────────┐<br>│     Card 1    │       │     Card 2    │<br>└───────────────┘       └───────────────┘<br>          ↑<br>        margin</pre>
351
352
353
354<p class="wp-block-paragraph">The space <strong>between the cards</strong> is controlled by margin or another layout mechanism such as <code>gap</code>.</p>
355
356
357
358<p class="wp-block-paragraph">Margin essentially answers:</p>
359
360
361
362<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
363<p class="wp-block-paragraph"><strong><em>“How much space should exist between this element and the elements around it?”</em></strong></p>
364</blockquote>
365
366
367
368<h2 class="wp-block-heading">What Is CSS Padding?</h2>
369
370
371
372<p class="wp-block-paragraph"><strong>Padding is the space inside an element, between its content and its border.</strong></p>
373
374
375
376<p class="wp-block-paragraph">For example:</p>
377
378
379
380<pre class="wp-block-preformatted">.card {<br>  padding: 20px;<br>}</pre>
381
382
383
384<p class="wp-block-paragraph">The content inside the card gets 20px of breathing room from the card’s edges.</p>
385
386
387
388<pre class="wp-block-preformatted">┌──────────────────────────────┐<br>│        ↑  padding  ↑         │<br>│                              │<br>│       Card Content           │<br>│                              │<br>│        ↓  padding  ↓         │<br>└──────────────────────────────┘</pre>
389
390
391
392<p class="wp-block-paragraph">You can control padding independently:</p>
393
394
395
396<pre class="wp-block-preformatted">.card {<br>  padding-top: 16px;<br>  padding-right: 24px;<br>  padding-bottom: 16px;<br>  padding-left: 24px;<br>}</pre>
397
398
399
400<p class="wp-block-paragraph">Padding answers:</p>
401
402
403
404<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
405<p class="wp-block-paragraph"><strong><em>“How much space should exist between this component’s content and its boundaries?”</em></strong></p>
406</blockquote>
407
408
409
410<h2 class="wp-block-heading">Margin vs Padding: What’s the Difference?</h2>
411
412
413
414<p class="wp-block-paragraph">The easiest way to remember the difference is:</p>
415
416
417
418<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
419<p class="wp-block-paragraph"><strong><em>Margin = outside the element</em></strong><em><br></em><strong><em>Padding = inside the element</em></strong></p>
420</blockquote>
421
422
423
424<p class="wp-block-paragraph">Consider a simple card:</p>
425
426
427
428<pre class="wp-block-preformatted">.card {<br>  margin: 24px;<br>  padding: 16px;<br>  border: 1px solid #ddd;<br>}</pre>
429
430
431
432<p class="wp-block-paragraph">The result is:</p>
433
434
435
436<pre class="wp-block-preformatted">←──── margin ────→</pre>
437
438
439
440<pre class="wp-block-preformatted">   ┌──────────────────────────┐<br>   │        ← padding →       │<br>   │                          │<br>   │      Card Content        │<br>   │                          │<br>   └──────────────────────────┘        ←──── margin ────→</pre>
441
442
443
444<p class="wp-block-paragraph">The <strong>margin separates the card from other elements</strong>.</p>
445
446
447
448<p class="wp-block-paragraph">The <strong>
448padding separates the content from the card’s boundary</strong>.</p>
449
450
451
452<h2 class="wp-block-heading">Understanding the CSS Box Model</h2>
453
454
455
456<p class="wp-block-paragraph">To really understand margin and padding, you need to understand the <strong>CSS box model</strong>.</p>
457
458
459
460<p class="wp-block-paragraph">Every HTML element can be thought of as having four layers:</p>
461
462
463
464<pre class="wp-block-preformatted">┌───────────────────────────────┐<br>│             Margin            │<br>│   ┌───────────────────────┐   │<br>│   │        Border         │   │<br>│   │   ┌───────────────┐   │   │<br>│   │   │    Padding    │   │   │<br>│   │   │  ┌─────────┐  │   │   │<br>│   │   │  │ Content │  │   │   │<br>│   │   │  └─────────┘  │   │   │<br>│   │   └───────────────┘   │   │<br>│   └───────────────────────┘   │<br>└───────────────────────────────┘</pre>
465
466
467
468<p class="wp-block-paragraph">The four areas are:</p>
469
470
471
472<ol class="wp-block-list">
473<li><strong>Content</strong></li>
474
475
476
477<li><strong>Padding</strong></li>
478
479
480
481<li><strong>Border</strong></li>
482
483
484
485<li><strong>Margin</strong></li>
486</ol>
487
488
489
490<p class="wp-block-paragraph">This is commonly referred to as the <strong>CSS box model</strong>.</p>
491
492
493
494<p class="wp-block-paragraph">Understanding this model makes debugging layout problems significantly easier.</p>
495
496
497
498<h2 class="wp-block-heading">Why Spacing Matters in UI Design</h2>
499
500
501
502<p class="wp-block-paragraph">Good spacing isn’t simply about making a webpage look attractive.</p>
503
504
505
506<p class="wp-block-paragraph">It creates <strong>visual hierarchy</strong>.</p>
507
508
509
510<p class="wp-block-paragraph">Imagine a dashboard where every heading, button, card, and paragraph has exactly the same amount of spacing.</p>
511
512
513
514<p class="wp-block-paragraph">Everything starts to look equally important.</p>
515
516
517
518<p class="wp-block-paragraph">Now introduce intentional spacing:</p>
519
520
521
522<pre class="wp-block-preformatted">Dashboard</pre>
523
524
525
526<pre class="wp-block-preformatted">[Large space]Revenue Overview[Small space]Revenue cards[Medium space]Recent Transactions[Small space]Transaction table</pre>
527
528
529
530<p class="wp-block-paragraph">The spacing itself communicates relationships.</p>
531
532
533
534<p class="wp-block-paragraph">Users can visually understand:</p>
535
536
537
538<ul class="wp-block-list">
539<li>Which elements belong together</li>
540
541
542
543<li>Which sections are separate</li>
544
545
546
547<li>What deserves attention</li>
548
549
550
551<li>Where one interaction ends and another begins</li>
552</ul>
553
554
555
556<p class="wp-block-paragraph">In other words:</p>
557
558
559
560<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
561<p class="wp-block-paragraph"><strong><em>Spacing is a visual language.</em></strong></p>
562</blockquote>
563
564
565
566<h2 class="wp-block-heading">The “Outer Margins Are Larger Than Inner Margins” Principle</h2>
567
568
569
570<p class="wp-block-paragraph">One useful UI design principle is to think about spacing according to <strong>hierarchy</strong>.</p>
571
572
573
574<p class="wp-block-paragraph">A larger container generally has more space separating it from other containers, while elements inside that container often have smaller spacing.</p>
575
576
577
578<p class="wp-block-paragraph">For example:</p>
579
580
581
582<pre class="wp-block-preformatted">Page Section<br>    ↓<br>Card<br>    ↓<br>Card Header<br>    ↓<br>Title<br>    ↓<br>Supporting Text</pre>
583
584
585
586<p class="wp-block-paragraph">The spacing might progressively become smaller:</p>
587
588
589
590<pre class="wp-block-preformatted">Section → Section       48px<br>Card → Card             32px<br>Card → Content          24px<br>Content → Content       16px<br>Text → Text              8px</pre>
591
592
593
594<p class="wp-block-paragraph">This creates a sense of nesting.</p>
595
596
597
598<p class="wp-block-paragraph">A useful way to think about it is:</p>
599
600
601
602<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
603<p class="wp-block-paragraph"><strong><em>The deeper you go into a component hierarchy, the more compact the spacing can become.</em></strong></p>
604</blockquote>
605
606
607
608<p class="wp-block-paragraph">This isn’t a strict CSS rule. It’s a <strong>design principle</strong> that helps create visual grouping and hierarchy.</p>
609
610
611
612<h2 class="wp-block-heading">The 8px Spacing System</h2>
613
614
615
616<p class="wp-block-paragraph">Many modern design systems use a spacing scale based around multiples of <strong>8px</strong>.</p>
617
618
619
620<p class="wp-block-paragraph">For example:</p>
621
622
623
624<pre class="wp-block-preformatted">8px<br>16px<br>24px<br>32px<br>40px<br>48px<br>64px<br>80px</pre>
625
626
627
628<p class="wp-block-paragraph">The exact scale varies between design systems, but the underlying idea is consistency.</p>
629
630
631
632<p class="wp-block-paragraph">Instead of randomly choosing:</p>
633
634
635
636<pre class="wp-block-preformatted">margin: 13px;<br>
636padding: 19px;<br>margin-bottom: 27px;</pre>
637
638
639
640<p class="wp-block-paragraph">you might establish a predictable system:</p>
641
642
643
644<pre class="wp-block-preformatted">margin: 16px;<br>padding: 24px;<br>margin-bottom: 32px;</pre>
645
646
647
648<p class="wp-block-paragraph">This makes the interface feel more intentional.</p>
649
650
651
652<h2 class="wp-block-heading">Why spacing systems help</h2>
653
654
655
656<p class="wp-block-paragraph">A consistent spacing system provides:</p>
657
658
659
660<ul class="wp-block-list">
661<li>Better visual rhythm</li>
662
663
664
665<li>Easier design decisions</li>
666
667
668
669<li>More consistent components</li>
670
671
672
673<li>Easier maintenance</li>
674
675
676
677<li>Better collaboration between designers and developers</li>
678
679
680
681<li>Easier translation from Figma to code</li>
682</ul>
683
684
685
686<p class="wp-block-paragraph">The important point is not that <strong>8px is always correct</strong>.</p>
687
688
689
690<p class="wp-block-paragraph">The important point is:</p>
691
692
693
694<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
695<p class="wp-block-paragraph"><strong><em>Use a consistent spacing system rather than arbitrary numbers everywhere.</em></strong></p>
696</blockquote>
697
698
699
700<h2 class="wp-block-heading">How Much Margin Should You Use?</h2>
701
702
703
704<p class="wp-block-paragraph">There is no universal value that works for every interface.</p>
705
706
707
708<p class="wp-block-paragraph">The right margin depends on:</p>
709
710
711
712<ul class="wp-block-list">
713<li>Component hierarchy</li>
714
715
716
717<li>Content density</li>
718
719
720
721<li>Screen size</li>
722
723
724
725<li>Design system</li>
726
727
728
729<li>Typography</li>
730
731
732
733<li>Layout</li>
734
735
736
737<li>Interaction patterns</li>
738</ul>
739
740
741
742<p class="wp-block-paragraph">For example:</p>
743
744
745
746<pre class="wp-block-preformatted">Small relationship       → 8px<br>Related elements         → 16px<br>Component separation    → 24px<br>Section separation      → 32–48px<br>Major section separation → 64px+</pre>
747
748
749
750<p class="wp-block-paragraph">These are starting points — not laws.</p>
751
752
753
754<p class="wp-block-paragraph">The key is to make the relationship between elements visually understandable.</p>
755
756
757
758<h2 class="wp-block-heading">Padding Rules for Buttons</h2>
759
760
761
762<p class="wp-block-paragraph">Buttons are an interesting case because padding directly affects both <strong>appearance and usability</strong>.</p>
763
764
765
766<p class="wp-block-paragraph">Consider:</p>
767
768
769
770<pre class="wp-block-preformatted">button {<br>  padding: 8px 24px;<br>}</pre>
771
772
773
774<p class="wp-block-paragraph">Here:</p>
775
776
777
778<ul class="wp-block-list">
779<li>Vertical padding = <code>8px</code></li>
780
781
782
783<li>Horizontal padding = <code>24px</code></li>
784</ul>
785
786
787
788<p class="wp-block-paragraph">The horizontal padding is <strong>3× the vertical padding</strong>.</p>
789
790
791
792<p class="wp-block-paragraph">This often creates a visually balanced button because text naturally occupies more horizontal space than vertical space.</p>
793
794
795
796<p class="wp-block-paragraph">For example:</p>
797
798
799
800<pre class="wp-block-preformatted">←──── 24px ────→<br>    ┌──────────────────────┐<br>    │      Submit           │<br>    └──────────────────────┘<br>        ↑              ↑<br>          8px vertical</pre>
801
802
803
804<p class="wp-block-paragraph">Common button padding might look like:</p>
805
806
807
808<pre class="wp-block-preformatted">button {<br>  padding: 8px 24px;<br>}</pre>
809
810
811
812<p class="wp-block-paragraph">or:</p>
813
814
815
816<pre class="wp-block-preformatted">button {<br>  padding: 12px 24px;<br>}</pre>
817
818
819
820<p class="wp-block-paragraph">or:</p>
821
822
823
824<pre class="wp-block-preformatted">button {<br>  padding: 12px 32px;<br>}</pre>
825
826
827
828<p class="wp-block-paragraph">Again, these aren’t rigid rules.</p>
829
830
831
832<p class="wp-block-paragraph">The right choice depends on:</p>
833
834
835
836<ul class="wp-block-list">
837<li>Font size</li>
838
839
840
841<li>Button height</li>
842
843
844
845<li>Design system</li>
846
847
848
849<li>Touch target requirements</li>
850
851
852
853<li>Visual style</li>
854
855
856
857<li>Amount of text</li>
858
859
860
861<li>Button importance</li>
862</ul>
863
864
865
866<h2 class="wp-block-heading">Margin vs Padding: When Should You Use Which?</h2>
867
868
869
870<p class="wp-block-paragraph">A simple rule can help.</p>
871
872
873
874<h2 class="wp-block-heading">Use margin when:</h2>
875
876
877
878<p class="wp-block-paragraph">You want to control the relationship <strong>between elements</strong>.</p>
879
880
881
882<pre class="wp-block-preformatted">.heading {<br>  margin-bottom: 16px;<br>}</pre>
883
884
885
886<h2 class="wp-block-heading">Use padding when:</h2>
887
888
889
890<p class="wp-block-paragraph">You want to control the space <strong>inside a component</strong>.</p>
891
892
893
894<pre class="wp-block-preformatted">.card {<br>  padding: 24px;<br>}</pre>
895
896
897
898<p class="wp-block-paragraph">For example:</p>
899
900
901
902<pre class="wp-block-preformatted">.card {<br>  margin-bottom: 24px;<br>  padding: 20px;<br>}</pre>
903
904
905
906<p class="wp-block-paragraph">Here:</p>
907
908
909
910<ul class="wp-block-list">
911<li><code>margin-bottom</code> separates the card from the next component.</li>
912
913
914
915<li><code>padding</code> creates breathing room inside the card.</li>
916</ul>
917
918
919
920<h2 class="wp-block-heading">Don’t Forget CSS <code>gap</code></h2>
921
922
923
924<p class="wp-block-paragraph">Modern CSS layouts also provide another powerful spacing mechanism:</p>
925
926
927
928<pre class="wp-block-preformatted">.container {<br>  display: flex;<br>  gap: 16px;<br>}</pre>
929
930
931
932<p class="wp-block-paragraph">or:</p>
933
934
935
936<pre class="wp-block-preformatted">.grid {<br>  display: grid;<br>  gap: 24px;<br>}</pre>
937
938
939
940<p class="wp-block-paragraph"><code>gap</code> is particularly useful when spacing <strong>siblings in Flexbox or Grid layouts</strong>.</p>
941
942
943
944<p class="wp-block-paragraph">Instead of:</p>
945
946
947
948<pre class="wp-block-preformatted">.card {<br>  margin-right: 16px;<br>}</pre>
949
950
951
952<p class="wp-block-paragraph">you can often use:</p>
953
954
955
956<pre class="wp-block-preformatted">.cards {<br>  display: flex;<br>  gap: 16px;<br>}</pre>
957
958
959
960<p class="wp-block-paragraph">This can make layout intent clearer and avoids some common margin-management problems.</p>
961
962
963
964<h2 class="wp-block-heading">How Developers Check Margin and Padding on a Webpage</h2>
965
966
967
968<p class="wp-block-paragraph">This is where things become interesting for frontend developers.</p>
969
970
971
972<p class="wp-block-paragraph">You receive a Figma design.</p>
973
974
975
976<p class="wp-block-paragraph">You build the page.</p>
977
978
979
980<p class="wp-block-paragraph">Then someone says:</p>
981
982
983
984<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
985<p class="wp-block-paragraph"><em>“The spacing doesn’t look exactly like Figma.”</em></p>
986</blockquote>
987
988
989
990<p class="wp-block-paragraph">Now you start inspecting.</p>
991
992
993
994<p class="wp-block-paragraph">Right-click → Inspect.</p>
995
996
997
998<p class="wp-block-paragraph">Open DevTools.</p>
999
1000
1001
1002<p class="wp-block-paragraph">Find the element.</p>
1003
1004
1005
1006<p class="wp-block-paragraph">Check computed styles.</p>
1007
1008
1009
1010<p class="wp-block-paragraph">Look at the box model.</p>
1011
1012
1013
1014<p class="wp-block-paragraph">Check:</p>
1015
1016
1017
1018<pre class="wp-block-preformatted">margin-top<br>margin-right<br>margin-bottom<br>margin-left</pre>
1019
1020
1021
1022<pre class="wp-block-preformatted">padding-top<br>padding-right<br>padding-bottom<br>padding-left</pre>
1023
1024
1025
1026<p class="wp-block-paragraph">Then compare those values with the design.</p>
1027
1028
1029
1030<p class="wp-block-paragraph">And then you repeat the same process for another component.</p>
1031
1032
1033
1034<p class="wp-block-paragraph">And another.</p>
1035
1036
1037
1038<p class="wp-block-paragraph">And another.</p>
1039
1040
1041
1042<p class="wp-block-paragraph">For a complex page, <strong>checking spacing can become surprisingly time-consuming</strong>.</p>
1043
1044
1045
1046<h2 class="wp-block-heading">Comparing a Website With Figma</h2>
1047
1048
1049
1050<p class="wp-block-paragraph">One of the most common frontend workflows is:</p>
1051
1052
1053
1054<p class="wp-block-paragraph"><strong>Figma → Development → Browser → Inspection → Adjustment</strong></p>
1055
1056
1057
1058<p class="wp-block-paragraph">You might notice:</p>
1059
1060
1061
1062<pre class="wp-block-preformatted">Figma:<br>Card padding = 24px</pre>
1063
1064
1065
1066<pre class="wp-block-preformatted">Browser:<br>Card padding = 20pxDifference:<br>4px</pre>
1067
1068
1069
1070<p class="wp-block-paragraph">Then you check:</p>
1071
1072
1073
1074<pre class="wp-block-preformatted">Header<br>Card<br>Button<br>Input<br>Footer<br>Section<br>Grid</pre>
1075
1076
1077
1078<p class="wp-block-paragraph">This is where having a quick visual way to inspect spacing can save a lot of time.</p>
1079
1080
1081
1082<h2 class="wp-block-heading">A Faster Way to Inspect Margin and Padding</h2>
1083
1084
1085
1086<p class="wp-block-paragraph">This is exactly the problem <strong>Captain Spyglass</strong> was built around.</p>
1087
1088
1089
1090<p class="wp-block-paragraph">Instead of constantly opening DevTools and digging through styles, <strong>Captain Spyglass</strong> lets you inspect webpage elements directly while you work.</p>
1091
1092
1093
1094<p class="wp-block-paragraph"><strong>Hover over an element and quickly understand its:</strong></p>
1095
1096
1097
1098<ul class="wp-block-list">
1099<li>Margin</li>
1100
1101
1102
1103<li>Padding</li>
1104
1105
1106
1107<li>Dimensions</li>
1108
1109
1110
1111<li>Spacing</li>
1112
1113
1114
1115<li>Alignment</li>
1116
1117
1118
1119<li>Positioning</li>
1120
1121
1122
1123<li>Element relationships</li>
1124</ul>
1125
1126
1127
1128<p class="wp-block-paragraph">It is particularly useful when you’re trying to answer questions such as:</p>
1129
1130
1131
1132<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
1133<p class="wp-block-paragraph"><em>“Why is this element 16px away from that one?”</em></p>
1134
1135
1136
1137<p class="wp-block-paragraph"><em>“Where is this extra 24px coming from?”</em></p>
1138
1139
1140
1141<p class="wp-block-paragraph"><em>“Does this component have 16px or 24px padding?”</em></p>
1142
1143
1144
1145<p class="wp-block-paragraph"><em>“Is this section aligned correctly with the Figma design?”</em></p>
1146</blockquote>
1147
1148
1149
1150<p class="wp-block-paragraph">For frontend developers, UI engineers, QA engineers, and anyone involved in pixel-perfect implementation, this turns spacing inspection into a much faster workflow.</p>
1151
1152
1153
1154<h2 class="wp-block-heading">Captain Spyglass: Inspect UI Spacing Without the Guesswork</h2>
1155
1156
1157
1158<p class="wp-block-paragraph"><strong>Captain Spyglass — Alignment Inspector</strong> is designed to make webpage inspection faster.</p>
1159
1160
1161
1162<p class="wp-block-paragraph">Instead of repeatedly navigating through DevTools just to understand spacing, you can <strong>hover over an element and inspect its layout information directly</strong>.</p>
1163
1164
1165
1166<p class="wp-block-paragraph">It becomes especially useful during:</p>
1167
1168
1169
1170<ul class="wp-block-list">
1171<li>Figma-to-code implementation</li>
1172
1173
1174
1175<li>UI debugging</li>
1176
1177
1178
1179<li>Pixel-perfect development</li>
1180
1181
1182
1183<li>Design QA</li>
1184
1185
1186
1187<li>Responsive layout testing</li>
1188
1189
1190
1191<li>Frontend development</li>
1192
1193
1194
1195<li>Design-to-development handoff</li>
1196</ul>
1197
1198
1199
1200<p class="wp-block-paragraph">The goal is simple:</p>
1201
1202
1203
1204<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
1205<p class="wp-block-paragraph"><strong><em>Stop guessing where the spacing comes from. Inspect it.</em></strong></p>
1206</blockquote>
1207
1208
1209
1210<h2 class="wp-block-heading">Final Takeaway</h2>
1211
1212
1213
1214<p class="wp-block-paragraph">There isn’t a single “perfect” margin or padding value.</p>
1215
1216
1217
1218<p class="wp-block-paragraph">Good UI spacing comes from <strong>consistency, hierarchy, proportion, and context</strong>.</p>
1219
1220
1221
1222<p class="wp-block-paragraph">Remember these fundamentals:</p>
1223
1224
1225
1226<h2 class="wp-block-heading">Margin</h2>
1227
1228
1229
1230<p class="wp-block-paragraph"><strong>Space outside an element.</strong></p>
1231
1232
1233
1234<pre class="wp-block-preformatted">margin: 24px;</pre>
1235
1236
1237
1238<h2 class="wp-block-heading">Padding</h2>
1239
1240
1241
1242<p class="wp-block-paragraph"><strong>Space inside an element.</strong></p>
1243
1244
1245
1246<pre class="wp-block-preformatted">padding: 16px;</pre>
1247
1248
1249
1250<h2 class="wp-block-heading">Gap</h2>
1251
1252
1253
1254<p class="wp-block-paragraph"><strong>Space between items in Flexbox/Grid.</strong></p>
1255
1256
1257
1258<pre class="wp-block-preformatted">gap: 16px;</pre>
1259
1260
1261
1262<h2 class="wp-block-heading">Spacing system</h2>
1263
1264
1265
1266<p class="wp-block-paragraph">Use a consistent scale rather than arbitrary values.</p>
1267
1268
1269
1270<pre class="wp-block-preformatted">8 → 16 → 24 → 32 → 48 → 64</pre>
1271
1272
1273
1274<h2 class="wp-block-heading">Visual hierarchy</h2>
1275
1276
1277
1278<p class="wp-block-paragraph">Larger structural relationships generally need more space than tightly related elements.</p>
1279
1280
1281
1282<h2 class="wp-block-heading">Buttons</h2>
1283
1284
1285
1286<p class="wp-block-paragraph">Horizontal padding is often larger than vertical padding to create a balanced visual shape.</p>
1287
1288
1289
1290<p class="wp-block-paragraph">And when you’re implementing or reviewing a real webpage, don’t rely on your eyes alone.</p>
1291
1292
1293
1294<p class="wp-block-paragraph"><strong>Inspect the spacing. Understand the box model. Compare it with the design. Then adjust.</strong></p>
1295
1296
1297
1298<p class="wp-block-paragraph">That’s where tools like <strong>Captain Spyglass</strong> can make the frontend workflow significantly faster.</p>
1299
1300
1301
1302<p class="wp-block-paragraph"><strong>Captain Spyglass — Hover. Inspect. Understand.</strong></p>
1303
1304
1305
1306<p class="wp-block-paragraph"><a href="https://piratesofbugs.com/captainspyglass" rel="noopener" target="_blank">Try Captain Spyglass →</a></p>
1307`,author:{name:"Pirates Of Bugs",description:""},featuredImage:{url:"https://cms.piratesofbugs.com/wp-content/uploads/2026/10/1_Uf8y0Mdn
1307QqjSU5O6nHIQZA.webp",alt:""},categories:["CSS","Frontend development","Software Development","Web Development"]}],Qu=yT;function vT(e){return Qu.find(t=>t.slug===e)}function x1(e){if(!e)return"";const t=new Date(e);return Number.isNaN(t.getTime())?"":t.toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"})}function wT(){return Je(Q3),gn([is([{name:"Pirates of Bugs",path:"/"},{name:"Blog",path:"/blog"}])]),r.jsxs(r.Fragment,{children:[r.jsx(qe,{}),r.jsx("header",{className:"bg-gradient-to-b from-[#FFF4E3] to-[#FFFDF7] border-b border-black/5",children:r.jsxs("div",{className:"max-w-5xl mx-auto px-6 lg:px-10 pt-28 lg:pt-32 pb-16 text-center",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"Pirates of Bugs"}),r.jsx("h1",{className:"font-display font-extrabold text-4xl sm:text-5xl text-navy mt-3 tracking-tight",children:"Blog"}),r.jsx("p",{className:"text-navy/60 mt-4 max-w-2xl mx-auto leading-relaxed",children:"Testing, automation and developer tooling tips from the crew — guides, deep-dives and release notes for QA engineers, SDETs and developers."})]})}),r.jsx("main",{className:"max-w-6xl mx-auto px-6 lg:px-10 py-16",children:Qu.length===0?r.jsxs("div",{className:"text-center py-20",children:[r.jsx("p",{className:"font-display font-semibold text-2xl text-navy",children:"New posts are on the way"}),r.jsx("p",{className:"text-navy/55 mt-3 max-w-md mx-auto",children:"We’re writing the first articles now. Check back soon, or explore the toolkit in the meantime."}),r.jsx(V,{to:"/",className:"inline-block mt-7 font-semibold text-white bg-primary px-6 py-3 rounded-full hover:brightness-110 transition",children:"Explore the fleet"})]}):r.jsx("div",{className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-6",children:Qu.map(e=>{var t;return r.jsxs(V,{to:`/blog/${e.slug}`,className:"group flex flex-col bg-white rounded-2xl border border-black/5 overflow-hidden hover:border-primary/30 hover:shadow-lg transition-all",children:[e.featuredImage&&r.jsx("div",{className:"aspect-[16/9] overflow-hidden bg-[#F5F0E6]",children:r.jsx("img",{src:e.featuredImage.url,alt:e.featuredImage.alt,loading:"lazy",className:"w-full h-full object-cover group-hover:scale-105 transition-transform duration-300"})}),r.jsxs("div",{className:"flex flex-col flex-1 p-6",children:[e.categories[0]&&r.jsx("span",{className:"text-primary text-xs font-semibold tracking-widest uppercase",children:e.categories[0]}),r.jsx("h2",{className:"font-display font-bold text-lg text-navy mt-2 group-hover:text-primary transition-colors leading-snug",children:e.title}),e.excerpt&&r.jsx("p",{className:"text-navy/55 text-sm mt-2.5 leading-relaxed line-clamp-3",children:e.excerpt}),r.jsxs("div",{className:"mt-auto pt-4 text-xs text-navy/40 font-medium",children:[x1(e.date),(t=e.author)!=null&&t.name?` · ${e.author.name}`:""]})]})]},e.slug)})})}),r.jsx(He,{})]})}function bT(){var a,i,o,l;const{slug:e=""}=Fj(),t=vT(e);if(!t)return r.jsx(f1,{});const n=`/blog/${t.slug}`,s=t.excerpt||`${t.title} — from the Pirates of Bugs blog.`;return Je({title:t.title,description:s,path:n,ogType:"article",image:(a=t.featuredImage)==null?void 0:a.url}),gn([K3({headline:t.title,description:s,url:`${pn}${n}`,image:(i=t.featuredImage)==null?void 0:i.url,datePublished:t.date??new Date().toISOString(),dateModified:t.modified??void 0,authorName:((o=t.author)==null?void 0:o.name)??"Pirates of Bugs"}),is([{name:"Pirates of Bugs",path:"/"},{name:"Blog",path:"/blog"},{name:t.title,path:n}])]),r.jsxs(r.Fragment,{children:[r.jsx(qe,{}),r.jsxs("main",{className:"max-w-3xl mx-auto px-6 lg:px-10 pt-28 lg:pt-32 pb-16",children:[r.jsx("nav",{className:"text-sm font-medium",children:r.jsxs(V,{to:"/blog",className:"inline-flex items-center gap-1.5 text-navy/55 hover:text-primary transition-colors",children:[r.jsx("span",{"aria-hidden":"true",children:"←"})," Back to Blog"]})}),r.jsxs("article",{className:"mt-8",children:[r.jsxs("header",{children:[t.categories[0]&&r.jsx("span",{className:"text-primary text-xs font-semibold tracking-widest uppercase",children:t.categories[0]}),r.jsx("h1",{className:"font-display font-extrabold text-3xl sm:text-4xl text-navy mt-3 tracking-tight leading-tight",children:t.title}),r.jsxs("div",{className:"mt-4 text-sm text-navy/45 font-medium",children:[x1(t.date),(l=t.author)!=null&&l.name?` · ${t.author.name}`:""]})]}),t.featuredImage&&r.jsx("img",{src:t.featuredImage.url,alt:t.featuredImage.alt,className:"w-full rounded-2xl border border-black/5 mt-8"}),r.jsx("div",{className:"blog-content mt-10 leading-relaxed text-navy/80",dangerouslySetInnerHTML:{__html:t.contentHtml}})]}),r.jsx("div",{className:"mt-14 pt-8 border-t border-black/5",children:r.jsx(V,{to:"/blog",className:"text-primary font-semibold text-sm hover:underline",children:"← Back to all posts"})})]}),r.jsx(He,{})]})}function jT({className:e}){return r.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",className:e,children:[r.jsx("path",{d:"M12 21s7-6.5 7-12a7 7 0 10-14 0c0 5.5 7 12 7 12z",stroke:"currentColor",strokeWidth:"1.7",strokeLinejoin:"round"}),r.jsx("circle",{cx:"12",cy:"9",r:"2.5",stroke:"currentColor",strokeWidth:"1.7"})]})}const g1="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%2
13070www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20width='800px'%20height='800px'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M3.02832%2010L10.2246%2014.8166C10.8661%2015.2443%2011.1869%2015.4581%2011.5336%2015.5412C11.8399%2015.6146%2012.1593%2015.6146%2012.4657%2015.5412C12.8124%2015.4581%2013.1332%2015.2443%2013.7747%2014.8166L20.971%2010M10.2981%204.06879L4.49814%207.71127C3.95121%208.05474%203.67775%208.22648%203.4794%208.45864C3.30385%208.66412%203.17176%208.90305%203.09111%209.161C3%209.45244%203%209.77535%203%2010.4212V16.8C3%2017.9201%203%2018.4802%203.21799%2018.908C3.40973%2019.2843%203.71569%2019.5903%204.09202%2019.782C4.51984%2020%205.07989%2020%206.2%2020H17.8C18.9201%2020%2019.4802%2020%2019.908%2019.782C20.2843%2019.5903%2020.5903%2019.2843%2020.782%2018.908C21%2018.4802%2021%2017.9201%2021%2016.8V10.4212C21%209.77535%2021%209.45244%2020.9089%209.161C20.8282%208.90305%2020.6962%208.66412%2020.5206%208.45864C20.3223%208.22648%2020.0488%208.05474%2019.5019%207.71127L13.7019%204.06879C13.0846%203.68116%2012.776%203.48735%2012.4449%203.4118C12.152%203.34499%2011.848%203.34499%2011.5551%203.4118C11.224%203.48735%2010.9154%203.68116%2010.2981%204.06879Z'%20stroke='%23000000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e";async function Ll(e,t){const n=new URLSearchParams;for(const[s,a]of Object.entries(e.fields))t[s]!==void 0&&n.append(a,t[s]);await fetch(e.actionUrl,{method:"POST",mode:"no-cors",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:n})}const kT={actionUrl:"https://docs.google.com/forms/d/e/1FAIpQLScgeYVMbsAQK5Hl1iSt0VWCvYoyl79CWC1ga_ZlbwtnjhKVLw/formResponse",fields:{name:"entry.511631956",email:"entry.1761799311",phone:"entry.1102205908",message:"entry.744488651"}},NT={actionUrl:"https://docs.google.com/forms/d/e/1FAIpQLScKr0xJVgR6boqq_1Qy58Uzx0wCbQbRaWV-vi4LJXVD8D2rIA/formResponse",fields:{fullName:"entry.795249034",workEmail:"entry.1802656356",company:"entry.904476361",subject:"entry.1824096126",message:"entry.629012486"}},ST={actionUrl:"https://docs.google.com/forms/d/e/1FAIpQLSeaIzHW2p13zDdkFfO51aqlH-3QcRofb9MJnAAZbc0uLwTVVA/formResponse",fields:{title:"entry.1604355765",product:"entry.1389247941",description:"entry.1668049836"}},CT={actionUrl:"https://docs.google.com/forms/d/e/1FAIpQLSe6CVFeN63Ce-pX8M85f2gbxpZ9p_ZigpsRtfYfeTW5NApsjQ/formResponse",fields:{name:"entry.1398898670",email:"entry.1771430585",phone:"entry.894349881",product:"entry.79981829",description:"entry.670141517"}},PT=[{icon:g1,label:"Email Us",value:"[email protected]",href:"mailto:[email protected]",sub:null},{icon:null,label:"Our Headquarters",value:"Bangalore, India",href:null,sub:"Built by engineers. For engineers."}],TT=[{title:"Fast Response",body:"We typically respond within 24 business hours."},{title:"Secure & Private",body:"Your information is safe with us. Always."},{title:"Built by Engineers",body:"We understand your world because we&rsquo;re in it too."},{title:"Join Our Crew",body:"Explore careers and be part of our mission."}];function ET(){Je({title:"Contact Us",description:"Have a question, feedback, or want to explore a partnership with Pirates of Bugs? Send us a message and our crew will get back to you soon.",path:"/contact"});const[e,t]=w.useState("idle"),[n,s]=w.useState(!0),[a,i]=w.useState({fullName:"",workEmail:"",company:"",subject:"",message:""});async function o(l){if(l.preventDefault(),!!n){t("submitting");try{await Ll(NT,a),t("success"),tp("contact")}catch{t("error")}}}return r.jsxs(r.Fragment,{children:[r.jsx(qe,{}),r.jsxs("section",{className:"relative pt-32 pb-20 overflow-hidden bg-gradient-to-b from-[#FFF4E3] via-[#FFFDF7] to-[#FFFDF7]",children:[r.jsx("div",{className:"grain"}),r.jsxs("div",{className:"max-w-7xl mx-auto px-6 lg:px-10 grid lg:grid-cols-2 gap-14 items-start",children:[r.jsxs("div",{className:"animate-fadeUp",children:[r.jsxs("span",{className:"inline-flex items-center gap-2 text-primary text-xs font-bold uppercase tracking-widest mb-5",children:[r.jsx("span",{className:"w-1 h-1 rounded-full bg-primary"})," We’re here to help"," ",r.jsx("span",{className:"w-1 h-1 rounded-full bg-primary"})]}),r.jsxs("h1",{className:"font-display font-extrabold text-[40px] sm:text-5xl leading-[1.08] tracking-tight text-navy uppercase",children:["Let’s Talk.",r.jsx("br",{}),r.jsx("span",{className:"text-primary",children:"Let’s Build."})]}),r.jsx("p",{className:"mt-5 text-navy/60 max-w-md leading-relaxed",children:"Have a question, feedback, or want to explore a partnership? Drop us a message and our crew will get back to you soon."}),r.jsx("ul",{className:"mt-9 space-y-6",children:PT.map(l=>r.jsxs("li",{className:"flex items-start gap-4",children:[r.jsx("span",{className:"shrink-0 w-11 h-11 rounded-full bg-gold/15 border border-gold/30 flex items-center justify-center text-[#8a5a00]",children:l.icon?r.jsx("img",{src:l.icon,alt:"",className:"w-5 h-5"}):r.jsx(jT,{className:"w-5 h-5"})}),r.jsxs("div",{children:[r.jsx("div",{className:"text-xs font-bold text-navy uppercase tracking-wide",children:l.label}),l.href?r.jsx("a",{href:l.href,className:"text-primary font-semibold hover:underline",children:l.value}):r.jsx("span",{className:"text-navy font-semibold",children:l.value}),l.sub&&r.jsx("p",{className:"text-navy/50 text-sm mt-0.5",children:l.sub})]})]},l.label))})]}),r.jsxs("div",{className:"animate-fadeUp [animation-delay:.1s] relative",children:[r.jsx("div",{className:"relative bg-white rounded-3xl border border-black/5 shadow-[0_20px_50px_-20px_rgba(9,22,43,0.25)] p-7 sm:p-8",children:e==="success"?r.jsxs("div",{className:"text-center py-10",children:[r.jsx("div",{className:"w-14 h-14 roun
1307ded-full bg-success/10 flex items-center justify-center mx-auto mb-4",children:r.jsx("svg",{width:"26",height:"26",viewBox:"0 0 24 24",fill:"none",children:r.jsx("path",{d:"M5 13l4 4L19 7",stroke:"#16A34A",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),r.jsx("h3",{className:"font-display font-bold text-xl text-navy",children:"Thanks for reaching out! ⚓"}),r.jsx("p",{className:"text-navy/60 text-sm mt-2",children:"Our team will contact you soon."})]}):r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"flex items-center gap-2 pb-4 border-b border-black/5",children:[r.jsx("img",{src:g1,alt:"",className:"w-5 h-5"}),r.jsx("h2",{className:"font-display font-bold text-navy",children:"Send Us a Message"})]}),r.jsxs("form",{onSubmit:o,className:"mt-6 flex flex-col gap-4",children:[r.jsxs("div",{className:"grid sm:grid-cols-2 gap-4",children:[r.jsx(Co,{label:"Full Name",required:!0,value:a.fullName,onChange:l=>i(c=>({...c,fullName:l})),placeholder:"Your name"}),r.jsx(Co,{label:"Work Email",type:"email",required:!0,value:a.workEmail,onChange:l=>i(c=>({...c,workEmail:l})),placeholder:"[email protected]"})]}),r.jsxs("div",{className:"grid sm:grid-cols-2 gap-4",children:[r.jsx(Co,{label:"Company",value:a.company,onChange:l=>i(c=>({...c,company:l})),placeholder:"Your company name"}),r.jsx(Co,{label:"Subject",required:!0,value:a.subject,onChange:l=>i(c=>({...c,subject:l})),placeholder:"How can we help?"})]}),r.jsxs("div",{children:[r.jsx("label",{className:"text-xs font-semibold text-navy/60 uppercase tracking-wide",children:"Message"}),r.jsx("textarea",{required:!0,rows:4,value:a.message,onChange:l=>i(c=>({...c,message:l.target.value})),placeholder:"Tell us more about your query...",className:"mt-1.5 w-full rounded-xl border border-navy/15 px-4 py-2.5 text-sm focus:outline-none focus:ring-2 focus:ring-primary resize-none"})]}),r.jsxs("label",{className:"flex items-start gap-2.5 text-sm text-navy/60",children:[r.jsx("input",{type:"checkbox",checked:n,onChange:l=>s(l.target.checked),className:"mt-0.5 accent-primary"}),"I agree to the"," ",r.jsx("a",{href:"#",className:"text-primary hover:underline",children:"Privacy Policy"})," ","and"," ",r.jsx("a",{href:"#",className:"text-primary hover:underline",children:"Terms of Service."})]}),e==="error"&&r.jsx("p",{className:"text-xs text-primary font-medium",children:"Something went wrong sending that — please try again in a moment."}),r.jsxs("button",{type:"submit",disabled:e==="submitting"||!n,className:"btn-primary font-semibold px-6 py-3.5 rounded-full inline-flex items-center justify-center gap-2 hover:shadow-lg transition-all disabled:opacity-60 disabled:cursor-not-allowed",children:[e==="submitting"?"Sending…":"Send Message",r.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:r.jsx("path",{d:"M4 12h16M14 6l6 6-6 6",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})]})]})]})}),r.jsx("img",{src:ra,alt:"",className:"hidden lg:block absolute -bottom-10 -right-10 w-40 opacity-90 pointer-events-none select-none",style:{filter:"drop-shadow(0 16px 24px rgba(9,22,43,0.2))"}})]})]}),r.jsx("div",{className:"max-w-6xl mx-auto px-6 lg:px-10 mt-16",children:r.jsx("div",{className:"bg-white rounded-3xl border border-black/5 shadow-[0_8px_30px_-12px_rgba(9,22,43,0.12)] px-8 py-8 grid sm:grid-cols-2 lg:grid-cols-4 gap-8",children:TT.map(l=>r.jsxs("div",{children:[r.jsx("div",{className:"font-display font-semibold text-navy text-sm",children:l.title}),r.jsx("p",{className:"text-navy/55 text-sm mt-1.5 leading-relaxed",children:l.body})]},l.title))})})]}),r.jsx(He,{})]})}function Co({label:e,value:t,onChange:n,placeholder:s,type:a="text",required:i=!1}){return r.jsxs("div",{children:[r.jsx("label",{className:"text-xs font-semibold text-navy/60 uppercase tracking-wide",children:e}),r.jsx("input",{type:a,required:i,value:t,onChange:o=>n(o.target.value),placeholder:s,className:"mt-1.5 w-full rounded-xl border border-navy/15 px-4 py-2.5 text-sm focus:outline-none focus:ring-2 focus:ring-primary"})]})}function gg(){const e=Math.floor(Math.random()*8)+1,t=Math.floor(Math.random()*8)+1;return{question:`${e} + ${t}`,answer:e+t}}function y1({onVerify:e}){const[t,n]=w.useState(gg),[s,a]=w.useState(""),[i,o]=w.useState(!1),l=i&&Number(s)===t.answer;w.useEffect(()=>{e(l)},[l]);function c(){n(gg()),a(""),o(!1)}return r.jsxs("div",{children:[r.jsxs("label",{className:"text-xs font-semibold text-navy/60 uppercase tracking-wide",children:["Quick check — what’s ",t.question,"?"]}),r.jsxs("div",{className:"mt-1.5 flex items-center gap-2",children:[r.jsx("input",{type:"text",inputMode:"numeric",autoComplete:"off",value:s,onChange:d=>{a(d.target.value),o(!0)},placeholder:"Your answer",className:`w-28 rounded-xl border px-4 py-2.5 text-sm focus:outline-none focus:ring-2 ${i&&!l?"border-primary/40 focu
1307s:ring-primary":"border-navy/15 focus:ring-primary"}`}),l&&r.jsxs("span",{className:"text-success text-sm font-semibold flex items-center gap-1",children:[r.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:r.jsx("path",{d:"M5 13l4 4L19 7",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"})}),"Verified"]}),r.jsx("button",{type:"button",onClick:c,"aria-label":"Get a new question",className:"text-navy/40 hover:text-navy transition-colors",children:r.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:r.jsx("path",{d:"M4 4v5h5M20 20v-5h-5M4.5 15a8 8 0 0014.5 3.5M19.5 9A8 8 0 005 5.5",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"})})})]})]})}const kr="company_website";function v1(e){return e.trim().length>0}const _T=1500;function w1(e){return Date.now()-e<_T}const yg={title:"Become a Sponsor — Pirates of Bugs",description:"Sponsor a Pirates of Bugs product, launch or community initiative and put your brand in front of QA engineers, SDETs and developers — while they build."},Po={eyebrow:"🏴‍☠️ Sponsorship",headline:"Sponsor the Crew Engineers Actually Trust",subhead:"Pirates of Bugs builds the tools QA engineers, SDETs and developers use every day. Put your brand where engineering work actually happens — not next to it.",cta:"Become a Sponsor"},AT=[{icon:"🎯",title:"Reach Engineers",body:"Connect with QA engineers, SDETs, developers and engineering leaders."},{icon:"🚀",title:"Reach Them While They Build",body:"Your brand appears inside tools and resources engineers actually use."},{icon:"🧩",title:"Be Part of the Ecosystem",body:"Sponsor a product, feature, launch, community initiative or engineering resource."},{icon:"🌎",title:"Developer-First Audience",body:"Build awareness among a highly relevant technical audience rather than a generic one."}],FT=[{icon:"🏴‍☠️",title:"Product Sponsor",tagline:"Own the spotlight. Sponsor a Pirates of Bugs product or extension.",examples:["Captain JSON","Captain JMX","Bug Capsule","Captain Capture","Future products"],benefits:["Sponsor branding","Logo placement","Product page exposure","Launch campaign","Social promotion","Newsletter/community mentions"]},{icon:"🎥",title:"Content Partner",tagline:"Tell your story to engineers.",examples:["YouTube integrations","Tutorials","Product demos","Technical content","Engineering interviews","Webinars","Community events"],benefits:[]}],MT=[{icon:"🧰",title:"Tools",body:"Sponsor a developer tool."},{icon:"🐛",title:"Bug Hunts",body:"Sponsor testing challenges."},{icon:"🎓",title:"Learning",body:"Sponsor tutorials & workshops."},{icon:"🎥",title:"Content",body:"Sponsor technical videos."},{icon:"🚀",title:"Product Launches",body:"Become a launch partner."},{icon:"🏴‍☠️",title:"Community",body:"Support developer communities."}],vg={heading:"Be one of the first brands to join the crew.",body:"Partner with the Pirates of Bugs engineering ecosystem."};function DT(){Je({title:yg.title,description:yg.description,path:"/becomesponsor",raw:!0});const[e,t]=w.useState("idle"),[n,s]=w.useState(!1),[a,i]=w.useState(!1),[o,l]=w.useState(""),[c]=w.useState(()=>Date.now()),[d,u]=w.useState({name:"",email:"",phone:"",message:""}),h=a;async function p(y){if(y.preventDefault(),!!h){if(v1(o)||w1(c)){t("success"),s(!0);return}t("submitting");try{await Ll(kT,d),t("success"),s(!0)}catch{t("error")}}}function g(){u({name:"",email:"",phone:"",message:""}),t("idle"),i(!1)}return r.jsxs(r.Fragment,{children:[r.jsx(qe,{}),r.jsxs("section",{className:"relative pt-32 pb-20 overflow-hidden bg-gradient-to-b from-[#FFF4E3] via-[#FFFDF7] to-[#FFFDF7]",children:[r.jsx("div",{className:"grain"}),r.jsxs("div",{className:"max-w-4xl mx-auto px-6 lg:px-10 text-center",children:[r.jsx("span",{className:"inline-flex items-center gap-2 text-primary text-xs font-bold uppercase tracking-widest bg-primary/5 border border-primary/15 px-4 py-2 rounded-full",children:Po.eyebrow}),r.jsx("h1",{className:"font-display font-extrabold text-[36px] sm:text-5xl leading-[1.1] tracking-tight text-navy mt-6",children:Po.headline}),r.jsx("p",{className:"mt-6 text-navy/65 max-w-2xl mx-auto leading-relaxed",children:Po.subhead}),r.jsx("a",{href:"#sponsor-form",className:"btn-primary inline-block font-semibold px-7 py-3.5 rounded-full mt-8 shadow-lg shadow-primary/25 hover:shadow-xl transition-all",children:Po.cta})]})]}),r.jsx("section",{className:"py-24",children:r.jsxs("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"text-center max-w-2xl mx-auto mb-14",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"Why sponsor"}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy mt-3 tracking-tight",children:"Why Sponsor Pirates of Bugs?"})]}),r.jsx("div",{className:"grid sm:grid-cols-2 lg:grid-cols-4 gap-
13075",children:AT.map(y=>r.jsxs("div",{className:"bg-white rounded-2xl border border-black/5 p-6",children:[r.jsx("span",{className:"text-3xl",children:y.icon}),r.jsx("h3",{className:"font-display font-semibold text-navy mt-4",children:y.title}),r.jsx("p",{className:"text-navy/60 text-sm mt-2 leading-relaxed",children:y.body})]},y.title))})]})}),r.jsx("section",{className:"py-24 bg-[#FFF7EA]",children:r.jsx("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:r.jsx("div",{className:"grid lg:grid-cols-2 gap-6",children:FT.map(y=>r.jsxs("div",{className:"bg-white rounded-3xl border border-black/5 p-8",children:[r.jsx("span",{className:"text-4xl",children:y.icon}),r.jsx("h3",{className:"font-display font-bold text-2xl text-navy mt-4",children:y.title}),r.jsx("p",{className:"text-navy/60 mt-2 leading-relaxed",children:y.tagline}),r.jsx("p",{className:"text-[11px] font-bold text-navy/40 uppercase tracking-wide mt-6 mb-2.5",children:"Examples"}),r.jsx("div",{className:"flex flex-wrap gap-2",children:y.examples.map(v=>r.jsx("span",{className:"text-xs font-medium text-navy bg-navy/5 px-3 py-1.5 rounded-full",children:v},v))}),y.benefits.length>0&&r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"text-[11px] font-bold text-navy/40 uppercase tracking-wide mt-6 mb-2.5",children:"Possible benefits"}),r.jsx("ul",{className:"grid grid-cols-2 gap-x-4 gap-y-1.5",children:y.benefits.map(v=>r.jsxs("li",{className:"flex items-start gap-1.5 text-sm text-navy/65",children:[r.jsx("span",{className:"text-success mt-0.5",children:"✓"}),v]},v))})]})]},y.title))})})}),r.jsxs("section",{className:"py-24 bg-navy relative overflow-hidden",children:[r.jsx("div",{className:"absolute inset-0 opacity-[.06]",style:{backgroundImage:"radial-gradient(circle at 20% 20%, white 1px, transparent 1px)",backgroundSize:"26px 26px"}}),r.jsxs("div",{className:"max-w-6xl mx-auto px-6 lg:px-10 relative",children:[r.jsxs("div",{className:"text-center max-w-2xl mx-auto mb-14",children:[r.jsx("span",{className:"text-gold font-semibold text-sm tracking-widest uppercase",children:"Chart your course"}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-white mt-3 tracking-tight",children:"What Can Your Brand Sponsor?"})]}),r.jsxs("div",{className:"relative",children:[r.jsx("svg",{className:"absolute top-10 left-0 w-full h-full hidden lg:block pointer-events-none",viewBox:"0 0 1000 260",preserveAspectRatio:"none",fill:"none",children:r.jsx("path",{d:"M60 40 Q 220 120 340 40 T 620 40 T 900 40",stroke:"#F6B73C",strokeWidth:"2",strokeDasharray:"8 8",opacity:".4"})}),r.jsx("div",{className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-6 relative",children:MT.map(y=>r.jsxs("div",{className:"bg-white/5 border border-white/10 hover:border-gold/40 hover:bg-white/10 rounded-2xl p-6 text-center transition-all",children:[r.jsx("span",{className:"w-12 h-12 rounded-full bg-gold/15 border border-gold/30 flex items-center justify-center text-2xl mx-auto",children:y.icon}),r.jsx("h3",{className:"font-display font-semibold text-white mt-4",children:y.title}),r.jsx("p",{className:"text-white/50 text-sm mt-1.5",children:y.body})]},y.title))})]})]})]}),r.jsx("section",{id:"sponsor-form",className:"py-24",children:r.jsxs("div",{className:"max-w-2xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"text-center mb-10",children:[r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy tracking-tight",children:vg.heading}),r.jsx("p",{className:"text-navy/60 mt-3",children:vg.body})]}),r.jsxs("div",{className:"relative",children:[r.jsxs("form",{onSubmit:p,className:"bg-white rounded-3xl border border-black/5 shadow-[0_20px_50px_-20px_rgba(9,22,43,0.2)] p-7 sm:p-8 flex flex-col gap-4",children:[r.jsxs("div",{"aria-hidden":"true",style:{position:"absolute",left:"-9999px",width:1,height:1,overflow:"hidden"},children:[r.jsx("label",{htmlFor:kr,children:"Company website"}),r.jsx("input",{id:kr,name:kr,type:"text",tabIndex:-1,autoComplete:"off",value:o,onChange:y=>l(y.target.value)})]}),r.jsxs("div",{className:"grid sm:grid-cols-2 gap-4",children:[r.jsx(hd,{label:"Name",required:!0,value:d.name,onChange:y=>u(v=>({...v,name:y})),placeholder:"Your name"}),r.jsx(hd,{label:"Email",type:"email",required:!0,value:d.email,onChange:y=>u(v=>({...v,email:y})),placeholder:"[email protected]"})]}),r.jsx(hd,{label:"Phone Number",type:"tel",value:d.phone,onChange:y=>u(v=>({...v,phone:y})),placeholder:"+1 555 000 0000"}),r.jsxs("div",{children:[r.jsx("label",{className:"text-xs font-semibold text-navy/60 uppercase tracking-wide",children:"Share your requirements"}),r.jsx("textarea",{required:!0,rows:4,value:d.message,onChange:y=>u(v=>({...v,message:y.target.value})),placeholder:"What would you like to sponsor, and what are you hoping to get out of it?",className:"mt-1.5 w-full rounded-xl border border-navy/15 px-4 py-2.5 text-sm focus:outline-none focus:ring-2 focus:ring-primary resize-none"})]}),r.jsx(y1,{onVerify:i}),e==="error"&&r.jsx("p",{className:"text-xs text-primary font-medium",children:"Something went wrong sending that — please try again in a moment."}),r.jsx("button",{type:"submit",disabled:e==="submitting"||!h,className:"btn-primary font-semibold px-6 py-3.5 rounded-full hover:shadow-lg transition-all disabled:opacity-60 disabled:cursor-not-allowed",children:e==="submitting"?"Sending…":"Become a Sponsor"})]}),r.jsx("img",{src:ra,alt:"",className:"hidden lg:block absolute -bottom-10 -right-14 w-36 opacity-90 pointer-events-none select-none",style:{filter:"drop-shadow(0 16px 24px rgba(9,22,43,0.2))"}})]})]})}),r.jsx(He,{}),n&&r.jsxs("div",{className:"fixed inset-0 z-[70] flex items-center justify-center p-4",role:"dialog","aria-modal":"true","aria-labelledby":"sponsor-success-title",children:[r.jsx("div",{className:"absolute inset-0 bg-navy/60 backdrop-blur-sm",onClick:()=>s(!1)}),r.jsxs("div",{className:"relative bg-white rounded-3xl max-w-sm w-full p-8 shadow-2xl text-center",children:[r.jsx("div",{className:"w-14 h-14 roun
1307ded-full bg-success/10 flex items-center justify-center mx-auto mb-4",children:r.jsx("svg",{width:"26",height:"26",viewBox:"0 0 24 24",fill:"none",children:r.jsx("path",{d:"M5 13l4 4L19 7",stroke:"#16A34A",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),r.jsx("h3",{id:"sponsor-success-title",className:"font-display font-bold text-xl text-navy",children:"Thanks for reaching out! ⚓"}),r.jsx("p",{className:"text-navy/60 text-sm mt-2",children:"Our team will review your request and get back to you soon."}),r.jsx("button",{onClick:()=>{s(!1),g()},className:"mt-6 font-semibold text-sm text-white bg-navy rounded-full px-6 py-2.5 hover:bg-[#0e1f3d] transition-colors",children:"Close"})]})]})]})}function hd({label:e,value:t,onChange:n,placeholder:s,type:a="text",required:i=!1}){return r.jsxs("div",{children:[r.jsx("label",{className:"text-xs font-semibold text-navy/60 uppercase tracking-wide",children:e}),r.jsx("input",{type:a,required:i,value:t,onChange:o=>n(o.target.value),placeholder:s,className:"mt-1.5 w-full rounded-xl border border-navy/15 px-4 py-2.5 text-sm focus:outline-none focus:ring-2 focus:ring-primary"})]})}const wg={title:"Bug & Feature Hunt — Report an Issue or Request a Feature",description:"Found a bug in a Pirates of Bugs tool, or have an idea worth building? Tell the crew — report an issue or request a feature in under a minute."},To={eyebrow:"🏴‍☠️ Bug & Feature Hunt",headline:"Found Something? Tell the Crew.",subhead:"Bugs, ideas, improvements — every great product starts with someone who cared enough to report it. Help us make Pirates of Bugs better.",microline:"No treasure map required. Just give us enough details to find the problem. 😉"},bg=[{type:"bug",icon:"🐛",title:"Report a Bug",tagline:"Something broke?",body:"Tell us what went wrong and help the crew track it down.",examples:["Extension not working","Incorrect output","UI issue","Performance problem","Browser compatibility issue","Unexpected behavior"],cta:"Report a Bug →"},{type:"feature",icon:"💡",title:"Request a Feature",tagline:"Got an idea worth building?",body:"Tell us what you wish Pirates of Bugs could do.",examples:["New functionality","New integrations","New browser support","New automation capability","New developer utility"],cta:"Request a Feature →"}],OT=[{step:"1",title:"What happened?",body:"Describe the problem."},{step:"2",title:"What did you expect?",body:"Tell us what should have happened."},{step:"3",title:"How can we reproduce it?",body:"Steps to reproduce the issue, if you have them."},{step:"4",title:"Where did it happen?",body:"Browser, product, and anything else relevant."}],Ks=["Captain JSON","Captain JMX","Bug Capsule","Captain Capture","Other"],RT={bug:{heading:"The bug has been captured. 🐛🔒",body:"Your report has reached the crew. We’ll review the details and investigate."},feature:{heading:"New treasure added to the map. 🗺️",body:"Your idea has reached the crew. We read every one of these."}},LT=[{name:"Captain JSON",href:"/captainjson#faq"},{name:"Captain JMX",href:"/captainjmx#faq"},{name:"Bug Capsule",href:"/bugcapsule#faq"},{name:"Captain Capture",href:"/captaincapture#faq"}];function IT(){Je({title:wg.title,description:wg.description,path:"/feedback",raw:!0});const[e,t]=w.useState("bug"),[n,s]=w.useState("idle"),[a,i]=w.useState(!1),[o,l]=w.useState(!1),[c,d]=w.useState(""),[u]=w.useState(()=>Date.now()),[h,p]=w.useState({product:Ks[0],title:"",description:""}),[g,y]=w.useState({name:"",email:"",phone:"",product:Ks[0],description:""});function v(m){var b;t(m),(b=document.getElementById("feedback-form"))==null||b.scrollIntoView({behavior:"smooth",block:"start"})}async function k(m){if(m.preventDefault(),!!o){if(v1(c)||w1(u)){s("success"),i(!0);return}s("submitting");try{e==="bug"?await Ll(ST,h):await Ll(CT,g),s("success"),i(!0),tp("feedback",{feedback_type:e})}catch{s("error")}}}function f(){p({product:Ks[0],title:"",description:""}),y({name:"",email:"",phone:"",product:Ks[0],description:""}),s("idle"),l(!1)}const x=RT[e];return r.jsxs(r.Fragment,{children:[r.jsx(qe,{}),r.jsxs("section",{className:"relative pt-32 pb-20 overflow-hidden bg-gradient-to-b from-[#FFF4E3] via-[#FFFDF7] to-[#FFFDF7]",children:[r.jsx("div",{className:"grain"}),r.jsxs("div",{className:"max-w-3xl mx-auto px-6 lg:px-10 text-center",children:[r.jsx("span",{className:"inline-flex items-center gap-2 text-primary text-xs font-bold uppercase tracking-widest bg-primary/5 border border-primary/15 px-4 py-2 rounded-full",children:To.eyebrow}),r.jsx("h1",{className:"font-display font-extrabold text-[36px] sm:text-5xl leading-[1.1] tracking-tight text-navy mt-6",children:To.headline}),r.jsx("p",{className:"mt-5 text-navy/65 leading-relaxed",children:To.subhead}),r.jsxs("div",{className:"mt-8 flex flex-wrap items-center justify-center gap-3",children:[r.jsx("button",{onClick:()=>v("bug"),className:"btn-primary font-semibold px-6 py-3 rounded-full shadow-lg shadow-primary/25 hover:shadow-xl transition-all",children:"🐛 Report a Bug"}),r.jsx("button",{onClick:()=>v("feature"),className:"font-semibold text-navy px-6 py-3 rounded-full border border-navy/15 hover:border-navy/30 transition-colors",children:"💡 Suggest an Idea"})]}),r.jsx("p",{className:"mt-5 text-sm text-navy/45",children:To.microline})]})]}),r.jsx("section",{className:"py-24",children:r.jsxs("div",{className:"max-w-5xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"text-center max-w-xl mx-auto mb-12",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"Choose one"}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy mt-3 tracking-tight",children:"What would you like to report?"})]}),r.jsx("div",{className:"grid sm:grid-cols-2 gap-6",children:bg.map(m=>r.jsxs("button",{onClick:()=>v(m.type),className:`text-left bg-white rounded-3xl border p-7 transition-all hover:-translate-y-1 hover:shadow-[0_14px_30px_-10px_rgba(9,22,43,0.15)] ${e===m.type?"border-primary/40 ring-2 ring-primary/15":"border-black/5"}`,children:[r.jsx("span",{className:"text-4xl",children:m.icon}),r.jsx("h3",{className:"font-display font-bold text-xl text-navy mt-4",children:m.title}),r.jsx("p",{className:"text-navy/60 text-sm mt-1",children:m.tagline}),r.jsx("p",{className:"text-navy/60 text-sm mt-2 leading-relaxed",children:m.body}),r.jsx("div",{className:"flex flex-wrap gap-1.5 mt-4",children:m.examples.map(b=>r.jsx("span",{className:"text-xs font-medium text-navy/60 bg-navy/5 px-2.5 py-1 rounded-full",children:b},b))}),r.jsx("span",{className:"inline-block text-primary font-semibold text-sm mt-5",children:m.cta})]},m.type))})]})}),r.jsx("section",{className:"py-24 bg-[#FFF7EA]",children:r.jsxs("div",{className:"max-w-5xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"text-center max-w-xl mx-auto mb-12",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"🧭 Help us hunt it down"}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy mt-3 tracking-tight",children:"Give the Crew a Good Treasure Map"}),r.jsx("p",{className:"text-navy/60 mt-3",children:"The more information you provide, the faster we can investigate."})]}),r.jsx("div",{className:"grid sm:grid-cols-2 lg:grid-cols-4 gap-
13075",children:OT.map(m=>r.jsxs("div",{className:"bg-white rounded-2xl border border-black/5 p-5",children:[r.jsx("span",{className:"font-display font-bold text-2xl text-primary/25",children:m.step}),r.jsx("h3",{className:"font-display font-semibold text-navy mt-2 text-sm",children:m.title}),r.jsx("p",{className:"text-navy/55 text-sm mt-1.5",children:m.body})]},m.step))})]})}),r.jsx("section",{id:"feedback-form",className:"py-24",children:r.jsxs("div",{className:"max-w-2xl mx-auto px-6 lg:px-10",children:[r.jsx("div",{className:"text-center mb-8",children:r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy tracking-tight",children:"Send It to the Crew"})}),r.jsx("div",{className:"flex justify-center gap-2 mb-6",children:bg.map(m=>r.jsxs("button",{type:"button",onClick:()=>t(m.type),className:`text-sm font-semibold px-5 py-2.5 rounded-full transition-colors ${e===m.type?"bg-navy text-white":"bg-white text-navy/60 border border-navy/15 hover:border-navy/30"}`,children:[m.icon," ",m.title]},m.type))}),r.jsxs("div",{className:"relative",children:[r.jsxs("form",{onSubmit:k,className:"bg-white rounded-3xl border border-black/5 shadow-[0_20px_50px_-20px_rgba(9,22,43,0.2)] p-7 sm:p-8 flex flex-col gap-4",children:[r.jsxs("div",{"aria-hidden":"true",style:{position:"absolute",left:"-9999px",width:1,height:1,overflow:"hidden"},children:[r.jsx("label",{htmlFor:kr,children:"Company website"}),r.jsx("input",{id:kr,name:kr,type:"text",tabIndex:-1,autoComplete:"off",value:c,onChange:m=>d(m.target.value)})]}),e==="bug"?r.jsxs(r.Fragment,{children:[r.jsx(kg,{label:"Product",value:h.product,onChange:m=>p(b=>({...b,product:m})),options:Ks}),r.jsx(Eo,{label:"Title",required:!0,value:h.title,onChange:m=>p(b=>({...b,title:m})),placeholder:"JSON comparison fails for large files"}),r.jsx(jg,{label:"Tell us what happened",required:!0,value:h.description,onChange:m=>p(b=>({...b,description:m})),placeholder:"Describe the issue in as much detail as possible — what you did, what you expected, and what actually happened. Browser/OS details help too."})]}):r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"grid sm:grid-cols-2 gap-4",children:[r.jsx(Eo,{label:"Name",required:!0,value:g.name,onChange:m=>y(b=>({...b,name:m})),placeholder:"Your name"}),r.jsx(Eo,{label:"Email",type:"email",required:!0,value:g.email,onChange:m=>y(b=>({...b,email:m})),placeholder:"[email protected]"})]}),r.jsx(Eo,{label:"Phone Number",type:"tel",value:g.phone,onChange:m=>y(b=>({...b,phone:m})),placeholder:"+1 555 000 0000"}),r.jsx(kg,{label:"Product",value:g.product,onChange:m=>y(b=>({...b,product:m})),options:Ks}),r.jsx(jg,{label:"What should we build?",required:!0,value:g.description,onChange:m=>y(b=>({...b,description:m})),placeholder:"What problem would this solve, and how would you like it to work?"})]}),r.jsx(y1,{onVerify:l}),n==="error"&&r.jsx("p",{className:"text-xs text-primary font-medium",children:"Something went wrong sending that — please try again in a moment."}),r.jsx("button",{type:"submit",disabled:n==="submitting"||!o,className:"btn-primary font-semibold px-6 py-3.5 rounded-full hover:shadow-lg transition-all disabled:opacity-60 disabled:cursor-not-allowed",children:n==="submitting"?"Sending…":"Send to the Crew ⚓"})]}),r.jsx("img",{src:ra,alt:"",className:"hidden lg:block absolute -bottom-10 -right-14 w-36 opacity-90 pointer-events-none select-none",style:{filter:"drop-shadow(0 16px 24px rgba(9,22,43,0.2))"}})]})]})}),r.jsx("section",{className:"py-24 bg-navy",children:r.jsxs("div",{className:"max-w-4xl mx-auto px-6 lg:px-10 text-center",children:[r.jsx("span",{className:"text-gold font-semibold text-sm tracking-widest uppercase",children:"Before you report"}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-white mt-3 tracking-tight",children:"Check if someone already found it"}),r.jsx("p",{className:"text-white/50 mt-3 max-w-lg mx-auto",children:"Your bug might already be answered in a product’s FAQ."}),r.jsx("div",{className:"flex flex-wrap items-center justify-center gap-3 mt-8",children:LT.map(m=>r.jsxs(V,{to:m.href,className:"text-sm font-semibold text-white bg-white/5 hover:bg-white/10 border border-white/10 hover:border-white/25 rounded-full px-5 py-2.5 transition-all",children:[m.name," FAQ →"]},m.name))})]})}),r.jsx("section",{className:"py-24",children:r.jsxs("div",{className:"max-w-3xl mx-auto px-6 lg:px-10 text-center",children:[r.jsx("span",{className:"text-primary font-semibold text-sm tracking-widest uppercase",children:"🗺️ Coming soon"}),r.jsx("h2",{className:"font-display font-bold text-3xl sm:text-4xl text-navy mt-3 tracking-tight",children:"A public Bug & Feature Map"}),r.jsx("p",{className:"text-navy/60 mt-4 leading-relaxed max-w-xl mx-auto",children:"We’re working towards a public roadmap where you can see what’s reported, planned, in progress and shipped — and vote on what matters most to you. For now, every report below goes straight to the crew."})]})}),r.jsx("section",{className:"pb-24",children:r.jsx("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:r.jsxs("div",{className:"bg-navy rounded-3xl px-8 sm:px-12 py-12 text-center",children:[r.jsx("h3",{className:"font-display font-bold text-2xl sm:text-3xl text-white",children:"Every Great Product Needs a Good Bug Hunter."}),r.jsx("p",{className:"text-white/50 mt-3 max-w-lg mx-auto",children:"Found something broken? Have an idea? Don’t keep it buried."}),r.jsx("a",{href:"#feedback-form",className:"mt-7 inline-block btn-primary font-semibold px-7 py-3.5 rounded-full shadow-lg shadow-primary/25 hover:shadow-xl transition-all",children:"Report It →"})]})})}),r.jsx(He,{}),a&&r.jsxs("div",{className:"fixed inset-0 z-[70] flex items-center justify-center p-4",role:"dialog","aria-modal":"true","aria-labelledby":"feedback-success-title",children:[r.jsx("div",{className:"absolute inset-0 bg-navy/60 backdrop-blur-sm",onClick:()=>i(!1)}),r.jsxs("div",{className:"relative bg-white rounded-3xl max-w-sm w-full p-8 shadow-2xl text-center",children:[r.jsx("div",{className:"w-14 h-14 roun
1307ded-full bg-success/10 flex items-center justify-center mx-auto mb-4",children:r.jsx("svg",{width:"26",height:"26",viewBox:"0 0 24 24",fill:"none",children:r.jsx("path",{d:"M5 13l4 4L19 7",stroke:"#16A34A",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),r.jsx("h3",{id:"feedback-success-title",className:"font-display font-bold text-xl text-navy",children:"Message Received, Captain! 🏴‍☠️"}),r.jsx("p",{className:"text-navy/60 text-sm mt-2",children:x.heading}),r.jsx("p",{className:"text-navy/50 text-xs mt-1.5",children:x.body}),r.jsx("button",{onClick:()=>{i(!1),f()},className:"mt-6 font-semibold text-sm text-white bg-navy rounded-full px-6 py-2.5 hover:bg-[#0e1f3d] transition-colors",children:"Close"})]})]})]})}function Eo({label:e,value:t,onChange:n,placeholder:s,type:a="text",required:i=!1}){return r.jsxs("div",{children:[r.jsx("label",{className:"text-xs font-semibold text-navy/60 uppercase tracking-wide",children:e}),r.jsx("input",{type:a,required:i,value:t,onChange:o=>n(o.target.value),placeholder:s,className:"mt-1.5 w-full rounded-xl border border-navy/15 px-4 py-2.5 text-sm focus:outline-none focus:ring-2 focus:ring-primary"})]})}function jg({label:e,value:t,onChange:n,placeholder:s,required:a=!1}){return r.jsxs("div",{children:[r.jsx("label",{className:"text-xs font-semibold text-navy/60 uppercase tracking-wide",children:e}),r.jsx("textarea",{required:a,rows:4,value:t,onChange:i=>n(i.target.value),placeholder:s,className:"mt-1.5 w-full rounded-xl border border-navy/15 px-4 py-2.5 text-sm focus:outline-none focus:ring-2 focus:ring-primary resize-none"})]})}function kg({label:e,value:t,onChange:n,options:s}){return r.jsxs("div",{children:[r.jsx("label",{className:"text-xs font-semibold text-navy/60 uppercase tracking-wide",children:e}),r.jsx("select",{value:t,onChange:a=>n(a.target.value),className:"mt-1.5 w-full rounded-xl border border-navy/15 px-4 py-2.5 text-sm focus:outline-none focus:ring-2 focus:ring-primary bg-white",children:s.map(a=>r.jsx("option",{value:a,children:a},a))})]})}function BT({className:e}){return r.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",className:e,children:[r.jsx("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"1.7"}),r.jsx("path",{d:"M3 12h18M12 3c2.5 2.5 2.5 15.5 0 18M12 3c-2.5 2.5-2.5 15.5 0 18",stroke:"currentColor",strokeWidth:"1.5",fill:"none"})]})}const Ng=["#D72638","#09162B","#4DA8DA","#B8860B"];function VT(e){let t=0;for(let n=0;n<e.length;n++)t=e.charCodeAt(n)+((t<<5)-t);return Ng[Math.abs(t)%Ng.length]}function UT(e){var a;const t=e.trim().split(/\s+/),n=((a=t[0])==null?void 0:a[0])??"",s=t.length>1?t[t.length-1][0]:"";return(n+s).toUpperCase()}function zT({name:e,size:t=72}){return r.jsx("div",{className:"rounded-full flex items-center justify-center text-white font-display font-bold border-[1.5px] border-primary",style:{width:t,height:t,background:VT(e),fontSize:t*.34},children:UT(e)})}const WT=[{key:"linkedin",label:"LinkedIn",Icon:Dv},{key:"twitter",label:"X",Icon:Rv},{key:"youtube",label:"YouTube",Icon:Ov},{key:"instagram",label:"Instagram",Icon:Mv},{key:"portfolio",label:"portfolio",Icon:BT}];function $T({member:e}){return r.jsxs("div",{className:"bg-white rounded-2xl border border-black/5 p-6 flex flex-col items-center text-center hover:-translate-y-0.5 hover:shadow-[0_14px_30px_-14px_rgba(9,22,43,0.18)] transition-all",children:[r.jsxs("div",{className:"relative rounded-full p-2.5 flex items-center justify-center",style:{background:"rgba(215, 38, 56, 0.10)"},children:[e.photo?r.jsx("img",{src:e.photo,alt:e.name,className:"w-24 h-24 rounded-full object-cover border-[1.5px] border-primary",loading:"lazy"}):r.jsx(zT,{name:e.name,size:96}),e.featured&&r.jsx("span",{className:"absolute top-0.5 right-0.5 w-6 h-6 rounded-full bg-gold border-2 border-white flex items-center justify-center",children:r.jsx("svg",{viewBox:"0 0 24 24",fill:"#09162B",className:"w-3 h-3",children:r.jsx("path",{d:"M12 2l2.9 6.6 7.1.6-5.4 4.7 1.6 7-6.2-3.8-6.2 3.8 1.6-7L2 9.2l7.1-.6z"})})})]}),r.jsx("h3",{className:"font-display font-semibold text-navy mt-4",children:e.name}),r.jsx("p",{className:"text-primary text-xs font-bold uppercase tracking-wide mt-1",children:e.role}),r.jsx("div",{className:"flex items-center gap-2.5 mt-4 flex-wrap justify-center",children:WT.map(({key:t,label:n,Icon:s})=>{const a=e[t];return a?r.jsx("a",{href:a,target:"_blank",rel:"noopener noreferrer","aria-label":`${e.name} — ${n}`,className:"w-8 h-8 rounded-full bg-navy/5 flex items-center justify-center text-navy/60 hover:bg-primary hover:text-white transition-colors",children:r.jsx(s,{className:"w-4 h-4"})},t):null})}
1307),r.jsx("p",{className:"text-xs text-navy/50 font-medium mt-4",children:e.country})]})}const Ho={title:"Our Community",subtitle:"Engineers, testers and builders from around the world",itemsPerRow:{desktop:4,tablet:3,mobile:2},people:[{name:"Amit Jha",photo:"/people/amit-jha.webp",role:"Senior SDET",country:"India",linkedin:"https://www.linkedin.com/in/amit-kumar-jha-b5256b209/",portfolio:null,featured:!0},{name:"Gandharv Madan",photo:"/people/gandhrav-madan.webp",role:"Creator",country:"India",linkedin:"https://www.linkedin.com/in/gandharv-madan-552891162/",portfolio:"https://www.linkedin.com/company/salesforcetestingguy/",featured:!0},{name:"Nandish Gohel",photo:"/people/nandish-gohel.webp",role:"Senior SDET",country:"India",linkedin:"https://www.linkedin.com/in/nandishgohel/",portfolio:null,featured:!0},{name:"Nirmal Patel",photo:"/people/nirmal-patel.webp",role:"Senior Quality Assurance",country:"India",linkedin:"https://www.linkedin.com/in/nirmalka-patel/",portfolio:null,featured:!0},{name:"Anees Shaikh",photo:"/people/anees-shaikh.webp",role:"Test Architect",country:"India",linkedin:"https://www.linkedin.com/in/shaikhanees/",portfolio:null,featured:!0},{name:"Jayesh Wankhade",photo:"/people/jayesh-wankhade.webp",role:"Lead QA Engineer",country:"India",linkedin:"https://www.linkedin.com/in/jayeshwankhade13",portfolio:null,featured:!0},{name:"Shashank Srivastava",photo:"/people/shashank-srivastava.webp",role:"Quality Architect",country:"India",linkedin:"https://www.linkedin.com/in/shashank-srivastava-qaprogramlead/",portfolio:null,featured:!0},{name:"Prince Batra",photo:"/people/prince-batra.webp",role:"AI Enabled Automation Lead- Creator",country:"India",linkedin:"https://www.linkedin.com/in/prince-batra-automation/",youtube:"https://www.youtube.com/@PrinceAutomationDestination",featured:!0},{name:"Prachi Dahibhate",photo:"/people/prachi-dahibhate.webp",role:"Senior QA Engineer",country:"India",linkedin:"https://www.linkedin.com/in/prachi-dahibhate-testing/",twitter:"https://x.com/dahibhateprachi",featured:!0},{name:"Divya Verma",photo:"/people/divya-verma.webp",role:"Test Specialist",country:"India",linkedin:"https://www.linkedin.com/in/divya-verma-12600411b",instagram:"https://www.instagram.com/techiedivya?igsi=MWI0dnlnNjJ6dHdjOA%3D%3D&utm_source=qr",featured:!0},{name:"Gaurav Khurana",photo:"/people/gaurav-khurana.webp",role:"Sr. Test Consultant",country:"India",linkedin:"https://www.linkedin.com/in/gauravkhuraana",youtube:"https://www.youtube.com/@udzial",portfolio:"https://gauravkhurana.com/",featured:!0},{name:"Suneina Jemima",photo:"/people/suneina-jemima.webp",role:"QA Automation Engineer",country:"India",linkedin:"https://www.linkedin.com/in/suneina-cheeran",instagram:"https://www.instagram.com/suneina_jemima_04?igsi=cXFud3h2aDU4Z3dk",featured:!0},{name:"Sidharth Shukla",photo:"/people/sidharth-shukla.webp",role:"AI-Driven Software Reliability Architect - SDET2",country:"USA",linkedin:"https://www.linkedin.com/in/sidharth-s-77b53145/",featured:!0},{name:"Shivam Chaturvedi",photo:"/people/shivam-chaturvedi.webp",role:"Senior Software Engineer L1- SDET",country:"India",linkedin:"https://www.linkedin.com/in/shivam-chaturvedi2011",featured:!0}]};function qT(){return[...Ho.people].sort((e,t)=>e.name.localeCompare(t.name))}const HT="https://docs.google.com/forms/d/e/1FAIpQLScIsq8VWIIaCY6O3hMPbywOjAZQL-ql0PReBlnzyYQQY_OD4w/viewform?usp=dialog",JT={1:"grid-cols-1",2:"grid-cols-2",3:"grid-cols-3",4:"grid-cols-4"},QT={1:"sm:grid-cols-1",2:"sm:grid-cols-2",3:"sm:grid-cols-3",4:"sm:grid-cols-4"},GT={1:"lg:grid-cols-1",2:"lg:grid-cols-2",3:"lg:grid-cols-3",4:"lg:grid-cols-4",5:"lg:grid-cols-5",6:"lg:grid-cols-6"};function YT(){Je({title:"Community — Pirates of Bugs",description:"The community behind Pirates of Bugs — the testers, reviewers, advocates and early believers who helped shape our products from day one.",path:"/community"});const e=qT(),{itemsPerRow:t}=Ho,n=[JT[t.mobile],QT[t.tablet],GT[t.desktop]].join(" ");return r.jsxs(r.Fragment,{children:[r.jsx(qe,{}),r.jsxs("section",{className:"relative pt-32 pb-16 overflow-hidden bg-gradient-to-b from-[#FFF4E3] via-[#FFFDF7] to-[#FFFDF7]",children:[r.jsx("div",{className:"grain"}),r.jsxs("div",{className:"max-w-3xl mx-auto px-6 lg:px-10 text-center relative",children:[r.jsxs("span",{className:"inline-flex items-center gap-2 text-primary text-xs font-bold uppercase tracking-widest bg-primary/5 border border-primary/15 px-4 py-2 rounded-full",children:[r.jsx(ZT,{className:"w-3.5 h-3.5"}),"Behind every bug hunter is a crew"]}),r.jsxs("h1",{className:"font-display font-extrabold text-[36px] sm:text-5xl leading-[1.1] tracking-tight text-navy mt-6",children:["Our journey is powered by an ",r.jsx("span",{className:"text-primary",children:"amazing community."})]}),r.jsxs("div",{className:"mt-8 bg-white border border-black/5 rounded-2xl p-5 flex items-start gap-3.5 text-left max-w-xl mx-auto",children:[r.jsx("span",{className:"w-9 h-9 rounded-full bg-primary/10 flex items-center justify-center shrink-0",children:r.jsx(KT,{className:"w-4 h-4 text-primary"})}),r.jsxs("p",{className:"text-navy/65 text-sm leading-relaxed",children:["To every supporter, contributor, reviewer and early believer — thank you."," ",r.jsx("span",{className:"text-navy font-semibold",children:"We will be forever grateful to have you in our 
1307crew."})]})]})]})]}),r.jsx("section",{className:"py-24",style:{background:"rgb(255 247 234)"},children:r.jsxs("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:[r.jsxs("div",{className:"text-center max-w-xl mx-auto mb-14",children:[r.jsx("h2",{className:"font-display font-bold text-2xl sm:text-3xl text-navy tracking-tight",children:Ho.title}),r.jsx("p",{className:"text-navy/60 mt-2",children:Ho.subtitle})]}),r.jsx("div",{className:`grid gap-6 ${n}`,children:e.map(s=>r.jsx($T,{member:s},s.name))})]})}),r.jsx("section",{className:"pb-24 pt-24",children:r.jsx("div",{className:"max-w-6xl mx-auto px-6 lg:px-10",children:r.jsxs("div",{className:"bg-white border border-black/5 rounded-3xl p-8 flex flex-col md:flex-row items-center gap-6 justify-between",children:[r.jsxs("div",{children:[r.jsxs("h3",{className:"font-display font-bold text-xl sm:text-2xl text-navy",children:["Join Founding Crew Program ",r.jsx("span",{className:"text-primary",children:"♥"})]}),r.jsx("p",{className:"text-navy/60 text-sm mt-1.5",children:"We’re always looking for passionate people who love building, testing and creating amazing things."})]}),r.jsxs("a",{href:HT,target:"_blank",rel:"noopener noreferrer",className:"btn-primary font-semibold px-6 py-3.5 rounded-full whitespace-nowrap hover:shadow-lg transition-all inline-flex items-center gap-2",children:["Join Our Crew ",r.jsx("span",{children:"→"})]})]})})}),r.jsx(He,{})]})}function ZT({className:e}){return r.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",className:e,children:[r.jsx("path",{d:"M5 3v18",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round"}),r.jsx("path",{d:"M5 4c3-1.5 5 1.5 8 0s5 1.5 5 1.5v8s-2-1.5-5 0-5-1.5-8 0z",fill:"currentColor"})]})}function KT({className:e}){return r.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor",className:e,children:r.jsx("path",{d:"M12 21s-7.5-4.6-10-9.3C.4 8.3 2 4.5 5.6 4c2-.3 3.8.7 4.9 2.3C11.6 4.7 13.4 3.7 15.4 4c3.6.5 5.2 4.3 3.6 7.7C16.5 16.4 12 21 12 21z"})})}const XT="August 15, 2026",e8=[{id:"overview",heading:"Overview",body:r.jsxs(r.Fragment,{children:[r.jsxs("p",{children:["Pirates of Bugs (“Pirates of Bugs,” “we,” “us,” or “our”) builds developer tools, including this website at"," ",r.jsx("a",{href:"https://piratesofbugs.com",className:"text-primary hover:underline",children:"piratesofbugs.com"})," ","and a family of browser extensions and applications. This Privacy Policy explains what information we collect, how we use it, who we share it with, and the choices you have."]}),r.jsx("p",{children:"We are privacy-first by design. Our browser extensions do their work locally on your device, and we keep the personal information we collect through this website to the minimum needed to operate our services and respond to you."})]})},{id:"scope",heading:"Scope",body:r.jsxs(r.Fragment,{children:[r.jsx("p",{children:"This policy covers two things:"}),r.jsxs("ul",{children:[r.jsxs("li",{children:[r.jsx("strong",{children:"This website"})," — including account sign-up, waitlists, contact and feedback forms, partnership inquiries, and general browsing."]}),r.jsxs("li",{children:[r.jsx("strong",{children:"Our browser extensions and apps"})," — such as Captain JSON, Captain Spyglass, Captain Octopus, Bug Capsule, Captain Capture, and CaptainJMX. These are designed to be local-first (see “Our local-first tools” below)."]})]})]})},{id:"information-we-collect",heading:"Information We Collect",body:r.jsxs(r.Fragment,{children:[r.jsxs("p",{children:[r.jsx("strong",{children:"Information you provide to us."})," When you create an account, join a waitlist, verify your email, reset a password, contact us, submit feedback, or ask about a partnership or sponsorship, you may give us information such as your name, email address, a password (stored only in hashed form), your company or role, and the contents of your message."]}),r.jsxs("p",{children:[r.jsx("strong",{children:"Information collected automatically."})," When you use the website we may collect limited technical and usage data such as your browser type, device and operating system, approximate location derived from your IP address, the pages you view, and referring links. Where required, this is collected only after you consent through our cookie banner."]}
1307),r.jsxs("p",{children:[r.jsx("strong",{children:"Cookies and similar technologies."})," We use a small number of cookies and local storage entries that are strictly necessary for the site to function (for example, keeping you signed in), and, with your consent, analytics cookies that help us understand how the site is used. You can manage or withdraw your consent at any time using the cookie banner."]})]})},{id:"local-first-tools",heading:"Our Local-First Tools",body:r.jsxs(r.Fragment,{children:[r.jsxs("p",{children:["Our browser extensions and desktop-style tools are built to keep your data on your device. As a general rule, the JSON, session recordings, screenshots, logs, and other content you work with inside these tools are processed ",r.jsx("strong",{children:"locally in your browser or on your machine"})," and are"," ",r.jsx("strong",{children:"not transmitted to our servers"}),". Several of our tools request only local storage permissions and make no network calls with your content."]}),r.jsx("p",{children:"Some tools may offer optional features (for example, an opt-in cloud sync or shareable links) that do send data off your device. Where that is the case, those features are clearly optional, are off by default, and the specific data handling is described in that product’s own documentation or store listing."}),r.jsxs("p",{children:[r.jsx("strong",{children:"Captain Spyglass"}),", for example, draws alignment guides over the current page and lets you capture and annotate screenshots of it. It has no account, no server, and no analytics. It uses only the"," ",r.jsx("code",{children:"activeTab"})," permission — acting solely on the tab you explicitly turn it on for, never requesting broad access to every site. Your screenshots, capture history, and settings are stored"," ",r.jsx("strong",{children:"locally in your browser"}),", and images leave your device only when you choose to download one to your computer. Nothing is uploaded, analysed, or shared."]}),r.jsxs("p",{children:[r.jsx("strong",{children:"Captain Octopus"})," records a bug into a replayable session — the DOM, console, network requests and your reproduction steps. A redaction pass runs ",r.jsx("strong",{children:"locally before anything is stored"}),", masking auth headers, tokens, emails, card/SSN patterns and password fields. Reports are kept in your browser and open in an in-extension viewer; a report only leaves your device if you explicitly export it. There is no account, server, or analytics."]})]})},{id:"how-we-use",heading:"How We Use Information",body:r.jsxs(r.Fragment,{children:[r.jsx("p",{children:"We use the information we collect to:"}),r.jsxs("ul",{children:[r.jsx("li",{children:"Provide, operate, and maintain our website and services;"}),r.jsx("li",{children:"Create and manage your account and keep you signed in;"}),r.jsx("li",{children:"Respond to your messages, feedback, and partnership or support requests;"}),r.jsx("li",{children:"Send you service-related communications, such as email verification and password resets;"}),r.jsx("li",{children:"Send product updates or waitlist notifications where you have asked to receive them;"}),r.jsx("li",{children:"Understand and improve how our website and products are used;"}),r.jsx("li",{children:"Maintain the security and integrity of our services and prevent abuse; and"}),r.jsx("li",{children:"Comply with legal obligations."})]})]})},{id:"legal-bases",heading:"Legal Bases for Processing",body:r.jsx("p",{children:"Where the GDPR or similar laws apply, we process personal information on the basis of your consent (for example, analytics cookies and marketing emails), to perform a contract with you (for example, providing an account you signed up for), for our legitimate interests in operating and improving our services, and to comply with legal obligations. You may withdraw consent at any time."})},{id:"sharing",heading:"How We Share Information",body:r.jsxs(r.Fragment,{children:[r.jsxs("p",{children:[r.jsx("strong",{children:"We do not sell your personal information."})," We share it only in the limited circumstances below:"]}),r.jsxs("ul",{children:[r.jsxs("li",{children:[r.jsx("strong",{children:"Service providers."})," We work with trusted third parties who process data on our behalf to run our services — for example, hosting and infrastru
1307cture providers, email delivery services, form providers (such as Google Forms, which we use for some contact and feedback forms), and analytics providers. They may only use the data to provide services to us."]}),r.jsxs("li",{children:[r.jsx("strong",{children:"Legal and safety."})," We may disclose information if required by law, regulation, or legal process, or where necessary to protect the rights, property, or safety of Pirates of Bugs, our users, or others."]}),r.jsxs("li",{children:[r.jsx("strong",{children:"Business transfers."})," If we are involved in a merger, acquisition, or sale of assets, your information may be transferred as part of that transaction, subject to this policy."]})]})]})},{id:"retention",heading:"Data Retention",body:r.jsx("p",{children:"We keep personal information only for as long as needed for the purposes described in this policy — for example, for as long as you have an account with us, or as needed to respond to your inquiry — and then delete or anonymize it, unless a longer period is required by law. You can ask us to delete your account and associated data at any time."})},{id:"security",heading:"Security",body:r.jsx("p",{children:"We take reasonable technical and organizational measures to protect your information, including hashing of passwords and encryption of data in transit. No method of transmission or storage is completely secure, so we cannot guarantee absolute security, but we work to protect your information and to promptly address any issues."})},{id:"your-rights",heading:"Your Rights and Choices",body:r.jsxs(r.Fragment,{children:[r.jsx("p",{children:"Depending on where you live, you may have the right to:"}),r.jsxs("ul",{children:[r.jsx("li",{children:"Access the personal information we hold about you;"}),r.jsx("li",{children:"Correct information that is inaccurate or incomplete;"}),r.jsx("li",{children:"Delete your personal information;"}),r.jsx("li",{children:"Object to or restrict certain processing, and withdraw consent;"}),r.jsx("li",{children:"Receive a copy of your information in a portable format; and"}),r.jsx("li",{children:"Opt out of marketing emails at any time using the unsubscribe link or by contacting us."})]}),r.jsxs("p",{children:["To exercise any of these rights, email us at"," ",r.jsx("a",{href:"mailto:[email protected]",className:"text-primary hover:underline",children:"[email protected]"}),". We will respond within the timeframe required by applicable law."]})]})},{id:"international",heading:"International Data Transfers",body:r.jsx("p",{children:"We are based in India and may process information in India and other countries where we or our service providers operate. Where we transfer personal information across borders, we take steps to ensure it remains protected in line with this policy and applicable law."})},{id:"children",heading:"Children's Privacy",body:r.jsx("p",{children:"Our services are intended for developers and other professional users and are not directed to children. We do not knowingly collect personal information from children under 16. If you believe a child has provided us with personal information, please contact us and we will delete it."})},{id:"third-party",heading:"Third-Party Links",body:r.jsx("p",{children:"Our website and products may link to third-party sites and services that we do not control. This policy does not apply to those third parties, and we encourage you to review their privacy policies."})},{id:"changes",heading:"Changes to This Policy",body:r.jsx("p",{children:"We may update this Privacy Policy from time to time. When we do, we will revise the “Last updated” date at the top of this page, and, for material changes, we will provide a more prominent notice where appropriate."})},{id:"contact",heading:"Contact Us",body:r.jsxs(r.Fragment,{children:[r.jsx("p",{children:"If you have questions about this Privacy Policy or how we handle your information, contact us at:"}),r.jsxs("p",{children:[r.jsx("strong",{children:"Pirates of Bugs"}),r.jsx("br",{}),"Email:"," ",r.jsx("a",{href:"mailto:[email protected]",className:"text-primary hover:underline",children:"[email protected]"}),r.jsx("br",{}),"Bangalore, India"]})]})}];function t8(){return Je({title:"Privacy Policy",description:"How Pirates of Bugs collects, uses, and protects your information across our website and local-first developer tools.",path:"/privacy"}),r.jsxs("div",{className:"min-h-screen bg-bg font-body text-ink",children:[r.jsx(qe,{}),r.jsxs("section",{className:"relative pt-32 pb-14 overflow-hidden bg-gradient-to-b from-[#FFF4E3] via-[#FFFDF7] to-[#FFFDF7]",children:[r.jsx("div",{className:"grain"}),r.jsxs("div",{className:"max-w-3xl mx-auto px-6 lg:px-10 text-center",children:[r.jsx("span",{className:"inline-block text-xs font-bold uppercase tracking-[0.18em] text-primary",children:"Legal"}),r.jsx("h1",{className:"font-display font-bold text-4xl sm:text-5xl text-navy mt-4 tracking-tight",children:"Privacy Policy"}),r.jsxs("p",{className:"text-ink/60 mt-4",children:["Last updated: ",XT]})]})]}),r.jsx("section",{className:"pb-24",children:r.jsx("div",{className:"max-w-3xl mx-auto px-6 lg:px-10",children:r.jsx("div",{className:"bg-white rounded-3xl border border-black/5 shadow-[0_8px_30px_-12px_rgba(9,22,43,0.12)] px-7 py-8 sm:px-10 sm:py-10 space-y-10",children:e8.map(e=>r.jsxs("div",{id:e.id,className:"scroll-mt-28",children:[r.jsx("h2",{className:"font-display font-semibold text-xl sm:text-2xl text-navy tracking-tight",children:e.heading}),r.jsx("div",{className:"mt-3 space-y-4 leading-relaxed text-ink/75 [&_ul]:mt-3 [&_ul]:space-y-2 [&_ul]:pl-5 [&_ul]:list-disc [&_li]:marker:text-primary/60 [&_strong]:text-navy [&_strong]:font-semibold",children:e.body})]},e.id))})})}),r.jsx(He,{})]})}function n8(){const e=xn();return w.useEffect(()=>{sN()},[]),w.useEffect(()=>{const t=window.setTimeout(()=>{rN(e.pathname,document.title)},0);return()=>window.clearTimeout(t)},[e.pathname]),null}const Sg="pob_analytics_consent";function s8(){const[e,t]=w.useState(!1);w.useEffect(()=>{const s=window.localStorage.getItem(Sg);s==="granted"?jf(!0):s!=="denied"&&t(!0)},[]);function n(s){window.localStorage.setItem(Sg,s?"granted":"denied"),jf(s),t(!1)}return e?r.jsx("div",{className:"fixed bottom-0 inset-x-0 z-[60] bg-navy text-white/85 border-t border-white/10",children:r.jsxs("div",{className:"max-w-5xl mx-auto px-6 py-4 flex flex-col sm:flex-row items-center gap-4",children:[r.jsx("p",{className:"text-sm flex-1",children:"We use analytics cookies to understand how the site is used. No personal data is sold. See our privacy practices before choosing."}),r.jsxs("div",{className:"flex gap-2 shrink-0",children:[r.jsx("button",{onClick:()=>n(!1),className:"text-sm font-semibold px-4 py-2 rounded-full border border-white/20 hover:border-white/40 transition-colors",children:"Decline"}),r.jsx("button",{onClick:()=>n(!0),className:"text-sm font-semibold px-4 py-2 rounded-full bg-primary text-white hover:brightness-110 transition-all",children:"Accept"})]})]})}):null}const b1=w.createContext("idle");function j1(){return w.useContext(b1)}function Wp(){const[e,t]=w.useState(!1);return w.useEffect(()=>{const n=window.matchMedia("(prefers-reduced-motion: reduce)");t(n.matches);const s=()=>t(n.matches);
1307return n.addEventListener("change",s),()=>n.removeEventListener("change",s)},[]),e}const r8=180,Cg=420,a8=0,Pg=100,i8=90;function o8(e){if(e.hasAttribute("download"))return null;const t=e.getAttribute("target");if(t&&t!=="_self")return null;const n=e.getAttribute("href");if(!n||n.startsWith("mailto:")||n.startsWith("tel:")||n.startsWith("#"))return null;let s;try{s=new URL(n,window.location.href)}catch{return null}return s.origin!==window.location.origin?null:s.pathname+s.search+s.hash}function l8({children:e}){const t=zs(),n=Wp(),s=w.useRef(n);s.current=n;const[a,i]=w.useState("idle"),o=w.useRef(0),l=w.useRef([]);function c(){l.current.forEach(p=>window.clearTimeout(p)),l.current=[]}function d(p,g){const y=window.setTimeout(p,g);return l.current.push(y),y}function u(p,g){i("entering"),d(()=>{o.current===p&&i("idle")},g)}function h(p){const g=++o.current;c(),i("exiting");const y=s.current?a8:r8,v=s.current?Pg:Cg;d(()=>{if(o.current!==g)return;const[k,f]=p.split("#");t(p),f?requestAnimationFrame(()=>{var x;(x=document.getElementById(f))==null||x.scrollIntoView({behavior:"auto",block:"start"})}):k&&window.scrollTo({top:0,left:0,behavior:"auto"}),u(g,v)},y)}return w.useEffect(()=>{function p(g){if(g.defaultPrevented||g.button!==0||g.metaKey||g.ctrlKey||g.shiftKey||g.altKey)return;const y=g.target.closest("a");if(!y)return;const v=o8(y);if(!v)return;const[k,f]=v.split("#"),x=window.location.pathname+window.location.search;if(k===x){f||g.preventDefault();return}g.preventDefault(),h(v)}return document.addEventListener("click",p,!0),()=>document.removeEventListener("click",p,!0)},[]),w.useEffect(()=>{function p(){const g=++o.current;c(),i("exiting");const y=s.current?Pg:Cg,v=s.current?0:i8;d(()=>{o.current===g&&u(g,y)},v)}return window.addEventListener("popstate",p),()=>window.removeEventListener("popstate",p)},[]),w.useEffect(()=>c,[]),r.jsx(b1.Provider,{value:a,children:e})}function c8({reducedMotion:e}){return r.jsx(kt.img,{src:ra,alt:"",className:"w-32 sm:w-40 select-none",initial:{opacity:0,scale:.97},animate:e?{opacity:1,scale:1}:{opacity:[0,1,1,1],scale:[.97,1,1.035,1]},transition:e?{duration:.1}:{duration:.5,times:[0,.25,.65,1],ease:"easeInOut"},style:{filter:"brightness(1.04) drop-shadow(0 6px 18px rgba(9,22,43,0.08))"}})}function d8({reducedMotion:e}){return e?null:r.jsx("div",{className:"mt-8 w-[120px] h-[1.5px] rounded-full bg-navy/10 relative overflow-hidden",children:r.jsx(kt.div,{className:"absolute inset-y-0 w-1/3 rounded-full",style:{background:"#F6B73C"},animate:{x:["0%","200%"]},transition:{duration:.8,repeat:1/0,repeatType:"reverse",ease:"easeInOut"}})})}function u8(){const e=j1(),t=Wp(),n=e!=="idle";return r.jsx(A5,{children:n&&r.jsxs(kt.div,{className:"fixed inset-0 z-[100] flex flex-col items-center justify-center",initial:{opacity:0}
1307,animate:{opacity:e==="entering"?0:1},exit:{opacity:0},transition:{duration:t?.08:e==="entering"?.32:.16,ease:"easeInOut"},style:{background:"radial-gradient(circle at 50% 45%, rgba(246,183,60,0.06), rgba(255,253,247,0) 60%), #FFFDF7"},children:[r.jsx(c8,{reducedMotion:t}),r.jsx(d8,{reducedMotion:t})]})})}function h8({children:e}){const t=j1();if(Wp())return r.jsx(r.Fragment,{children:e});const s=t==="exiting";return r.jsx(kt.div,{initial:{opacity:1,y:0,filter:"blur(0px)"},animate:s?{opacity:0,y:8,filter:"blur(2px)"}:{opacity:1,y:0,filter:"blur(0px)"},transition:{duration:s?.15:.32,ease:[.22,1,.36,1]},style:{willChange:"opacity, transform, filter"},children:e})}function p8(){return r.jsx(l8,{children:r.jsxs("div",{className:"font-body antialiased",children:[r.jsx(n8,{}),r.jsx(u8,{}),r.jsx(h8,{children:r.jsxs(Gj,{children:[r.jsx(X,{path:"/",element:r.jsx(X3,{})}),r.jsx(X,{path:"/captainjson",element:r.jsx(k5,{})}),r.jsx(X,{path:"/blog",element:r.jsx(wT,{})}),r.jsx(X,{path:"/blog/:slug",element:r.jsx(bT,{})}),r.jsx(X,{path:"/captainjmx",element:r.jsx(OP,{})}),r.jsx(X,{path:"/bugcapsule",element:r.jsx(QP,{})}),r.jsx(X,{path:"/captaincapture",element:r.jsx(nT,{})}),r.jsx(X,{path:"/captainspyglass",element:r.jsx(uT,{})}),r.jsx(X,{path:"/spyglass",element:r.jsx(zo,{to:"/captainspyglass",replace:!0})}),r.jsx(X,{path:"/captainoctopus",element:r.jsx(gT,{})}),r.jsx(X,{path:"/octopus",element:r.jsx(zo,{to:"/captainoctopus",replace:!0})}),r.jsx(X,{path:"/contact",element:r.jsx(ET,{})}),r.jsx(X,{path:"/becomesponsor",element:r.jsx(DT,{})}),r.jsx(X,{path:"/becomesponsers",element:r.jsx(zo,{to:"/becomesponsor",replace:!0})}),r.jsx(X,{path:"/feedback",element:r.jsx(IT,{})}),r.jsx(X,{path:"/community",element:r.jsx(YT,{})}),r.jsx(X,{path:"/privacy",element:r.jsx(t8,{})}),r.jsx(X,{path:"/landing",element:r.jsx(c3,{})}),r.jsx(X,{path:"/crew",element:r.jsx(f3,{})}),r.jsx(X,{path:"/login",element:r.jsx(d3,{})}),r.jsx(X,{path:"/signup",element:r.jsx(u3,{})}),r.jsx(X,{path:"/forgot-password",element:r.jsx(h3,{})}),r.jsx(X,{path:"/reset-password",element:r.jsx(p3,{})}),r.jsx(X,{path:"/verify-email",element:r.jsx(m3,{})}),r.jsxs(X,{element:r.jsx(y3,{}),children:[r.jsx(X,{path:"/dashboard",element:r.jsx(x3,{})}),r.jsx(X,{path:"/account",element:r.jsx(g3,{})})]}),r.jsx(X,{path:"*",element:r.jsx(f1,{})})]})}),r.jsx(s8,{})]})})}const m8=new Fk({defaultOptions:{queries:{retry:1,staleTime:6e4,refetchOnWindowFocus:!1}}});pd.createRoot(document.getElementById("root")).render(r.jsx(Qg.StrictMode,{children:r.jsx(Mk,{client:m8,children:r.jsx(sk,{children:r.jsx(Qk,{children:r.jsx(p8,{})})})})}));

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.