vendor: 4,268 bytes, lines 1-10
1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/leaflet-Dgihpmma.css"])))=>i.map(i=>d[i]); 2var hf=e=>{throw TypeError(e)};var wd=(e,t,n)=>t.has(e)||hf("Cannot "+n);var M=(e,t,n)=>(wd(e,t,"read from private field"),n?n.call(e):t.get(e)),we=(e,t,n)=>t.has(e)?hf("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),se=(e,t,n,r)=>(wd(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),ct=(e,t,n)=>(wd(e,t,"access private method"),n);var wi=(e,t,n,r)=>({set _(a){se(e,t,a,n)},get _(){return M(e,t,r)}});function TN(e,t){for(var n=0;n<t.length;n++){const r=t[n];if(typeof r!="string"&&!Array.isArray(r)){for(const a in r)if(a!=="default"&&!(a in e)){const s=Object.getOwnPropertyDescriptor(r,a);s&&Object.defineProperty(e,a,s.get?s:{enumerable:!0,get:()=>r[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"]'))r(a);new MutationObserver(a=>{for(const s of a)if(s.type==="childList")for(const i of s.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(a){const s={};return a.integrity&&(s.integrity=a.integrity),a.referrerPolicy&&(s.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?s.credentials="include":a.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(a){if(a.ep)return;a.ep=!0;const s=n(a);fetch(a.href,s)}})();var qL=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Xx(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Yx={exports:{}},pc={},Kx={exports:{}},he={};/** 3 * @license React 4 * react.production.min.js 5 * 6 * Copyright (c) Facebook, Inc. and its affiliates. 7 * 8 * This source code is licensed under the MIT license found in the 9 * LICENSE file in the root directory of this source tree. 10 */var Zs=Symbol.for("react.element"),PN=Symbol.for("react.portal"),RN=Symbol.for("react.fragment"),DN=Symbol.for("react.strict_mode"),MN=Symbol.for("react.profiler"),_N=Symbol.for("react.provider"),BN=Symbol.for("react.context"),ON=Symbol.for("react.forward_ref"),FN=Symbol.for("react.suspense"),LN=Symbol.for("react.memo"),HN=Symbol.for("react.lazy"),mf=Symbol.iterator;function UN(e){return e===null||typeof e!="object"?null:(e=mf&&e[mf]||e["@@iterator"],typeof e=="function"?e:null)}var Jx={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Zx=Object.assign,ev={};function Ra(e,t,n){this.props=e,this.context=t,this.refs=ev,this.updater=n||Jx}Ra.prototype.isReactComponent={};Ra.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")};Ra.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function tv(){}tv.prototype=Ra.prototype;function om(e,t,n){this.props=e,this.context=t,this.refs=ev,this.updater=n||Jx}var am=om.prototype=new tv;am.constructor=om;Zx(am,Ra.prototype);am.isPureReactComponent=!0;var pf=Array.isArray,nv=Object.prototype.hasOwnProperty,sm={current:null},rv={key:!0,ref:!0,__self:!0,__source:!0};function ov(e,t,n){var r,a={},s=null,i=null;if(t!=null)for(r in t.ref!==void 0&&(i=t.ref),t.key!==void 0&&(s=""+t.key),t)nv.call(t,r)&&!rv.hasOwnProperty(r)&&(a[r]=t[r]);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(r in l=e.defaultProps,l)a[r]===void 0&&(a[r]=l[r]);return{$$typeof:Zs,type:e,key:s,ref:i,props:a,_owner:sm.current}}function zN(e,t){return{$$typeof:Zs,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function im(e){return typeof e=="object"&&e!==null&&e.$$typeof===Zs}function $N(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var ff=/\/+/g;
vendor: 4,880 bytes, lines 10-18
10function jd(e,t){return typeof e=="object"&&e!==null&&e.key!=null?$N(""+e.key):t.toString(36)}function al(e,t,n,r,a){var s=typeof e;(s==="undefined"||s==="boolean")&&(e=null);var i=!1;if(e===null)i=!0;else switch(s){case"string":case"number":i=!0;break;case"object":switch(e.$$typeof){case Zs:case PN:i=!0}}if(i)return i=e,a=a(i),e=r===""?"."+jd(i,0):r,pf(a)?(n="",e!=null&&(n=e.replace(ff,"$&/")+"/"),al(a,t,n,"",function(d){return d})):a!=null&&(im(a)&&(a=zN(a,n+(!a.key||i&&i.key===a.key?"":(""+a.key).replace(ff,"$&/")+"/")+e)),t.push(a)),1;if(i=0,r=r===""?".":r+":",pf(e))for(var l=0;l<e.length;l++){s=e[l];var c=r+jd(s,l);i+=al(s,t,n,c,a)}else if(c=UN(e),typeof c=="function")for(e=c.call(e),l=0;!(s=e.next()).done;)s=s.value,c=r+jd(s,l++),i+=al(s,t,n,c,a);else if(s==="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 i}function ji(e,t,n){if(e==null)return e;var r=[],a=0;return al(e,r,"","",function(s){return t.call(n,s,a++)}),r}function GN(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 wt={current:null},sl={transition:null},QN={ReactCurrentDispatcher:wt,ReactCurrentBatchConfig:sl,ReactCurrentOwner:sm};function av(){throw Error("act(...) is not supported in production builds of React.")}he.Children={map:ji,forEach:function(e,t,n){ji(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return ji(e,function(){t++}),t},toArray:function(e){return ji(e,function(t){return t})||[]},only:function(e){if(!im(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};he.Component=Ra;he.Fragment=RN;he.Profiler=MN;he.PureComponent=om;he.StrictMode=DN;he.Suspense=FN;he.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=QN;he.act=av;he.cloneElement=function(e,t,n){if(e==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var r=Zx({},e.props),a=e.key,s=e.ref,i=e._owner;if(t!=null){if(t.ref!==void 0&&(s=t.ref,i=sm.current),t.key!==void 0&&(a=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(c in t)nv.call(t,c)&&!rv.hasOwnProperty(c)&&(r[c]=t[c]===void 0&&l!==void 0?l[c]:t[c])}var c=arguments.length-2;if(c===1)r.children=n;else if(1<c){l=Array(c);for(var d=0;d<c;d++)l[d]=arguments[d+2];r.children=l}return{$$typeof:Zs,type:e.type,key:a,ref:s,props:r,_owner:i}};he.createContext=function(e){return e={$$typeof:BN,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:_N,_context:e},e.Consumer=e};he.createElement=ov;he.createFactory=function(e){var t=ov.bind(null,e);return t.type=e,t};he.createRef=function(){return{current:null}};he.forwardRef=function(e){return{$$typeof:ON,render:e}};he.isValidElement=im;he.lazy=function(e){return{$$typeof:HN,_payload:{_status:-1,_result:e},_init:GN}};he.memo=function(e,t){return{$$typeof:LN,type:e,compare:t===void 0?null:t}};he.startTransition=function(e){var t=sl.transition;sl.transition={};try{e()}finally{sl.transition=t}};he.unstable_act=av;he.useCallback=function(e,t){return wt.current.useCallback(e,t)};he.useContext=function(e){return wt.current.useContext(e)};he.useDebugValue=function(){};he.useDeferredValue=function(e){return wt.current.useDeferredValue(e)};he.useEffect=function(e,t){return wt.current.useEffect(e,t)};he.useId=function(){return wt.current.useId()};he.useImperativeHandle=function(e,t,n){return wt.current.useImperativeHandle(e,t,n)};he.useInsertionEffect=function(e,t){return wt.current.useInsertionEffect(e,t)};he.useLayoutEffect=function(e,t){return wt.current.useLayoutEffect(e,t)};he.useMemo=function(e,t){return wt.current.useMemo(e,t)};he.useReducer=function(e,t,n){return wt.current.useReducer(e,t,n)};he.useRef=function(e){return wt.current.useRef(e)};he.useState=function(e){return wt.current.useState(e)};he.useSyncExternalStore=function(e,t,n){return wt.current.useSyncExternalStore(e,t,n)};he.useTransition=function(){return wt.current.useTransition()};he.version="18.3.1";Kx.exports=he;var h=Kx.exports;const F=Xx(h),lm=TN({__proto__:null,default:F},[h]);/** 11 * @license React 12 * react-jsx-runtime.production.min.js 13 * 14 * Copyright (c) Facebook, Inc. and its affiliates. 15 * 16 * This source code is licensed under the MIT license found in the 17 * LICENSE file in the root directory of this source tree. 18 */var WN=h,qN=Symbol.for("react.element"),VN=Symbol.for("react.fragment"),XN=Object.prototype.hasOwnProperty,YN=WN.__SECRET_INT
vendor: 11,400 bytes, lines 18-35
18ERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,KN={key:!0,ref:!0,__self:!0,__source:!0};function sv(e,t,n){var r,a={},s=null,i=null;n!==void 0&&(s=""+n),t.key!==void 0&&(s=""+t.key),t.ref!==void 0&&(i=t.ref);for(r in t)XN.call(t,r)&&!KN.hasOwnProperty(r)&&(a[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps,t)a[r]===void 0&&(a[r]=t[r]);return{$$typeof:qN,type:e,key:s,ref:i,props:a,_owner:YN.current}}pc.Fragment=VN;pc.jsx=sv;pc.jsxs=sv;Yx.exports=pc;var o=Yx.exports,iv={exports:{}},Ot={},lv={exports:{}},cv={};/** 19 * @license React 20 * scheduler.production.min.js 21 * 22 * Copyright (c) Facebook, Inc. and its affiliates. 23 * 24 * This source code is licensed under the MIT license found in the 25 * LICENSE file in the root directory of this source tree. 26 */(function(e){function t(T,I){var B=T.length;T.push(I);e:for(;0<B;){var z=B-1>>>1,G=T[z];if(0<a(G,I))T[z]=I,T[B]=G,B=z;else break e}}function n(T){return T.length===0?null:T[0]}function r(T){if(T.length===0)return null;var I=T[0],B=T.pop();if(B!==I){T[0]=B;e:for(var z=0,G=T.length,J=G>>>1;z<J;){var Z=2*(z+1)-1,xe=T[Z],Ce=Z+1,Q=T[Ce];if(0>a(xe,B))Ce<G&&0>a(Q,xe)?(T[z]=Q,T[Ce]=B,z=Ce):(T[z]=xe,T[Z]=B,z=Z);else if(Ce<G&&0>a(Q,B))T[z]=Q,T[Ce]=B,z=Ce;else break e}}return I}function a(T,I){var B=T.sortIndex-I.sortIndex;return B!==0?B:T.id-I.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var i=Date,l=i.now();e.unstable_now=function(){return i.now()-l}}var c=[],d=[],u=1,m=null,p=3,f=!1,w=!1,y=!1,v=typeof setTimeout=="function"?setTimeout:null,x=typeof clearTimeout=="function"?clearTimeout:null,g=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function b(T){for(var I=n(d);I!==null;){if(I.callback===null)r(d);else if(I.startTime<=T)r(d),I.sortIndex=I.expirationTime,t(c,I);else break;I=n(d)}}function j(T){if(y=!1,b(T),!w)if(n(c)!==null)w=!0,U(N);else{var I=n(d);I!==null&&V(j,I.startTime-T)}}function N(T,I){w=!1,y&&(y=!1,x(S),S=-1),f=!0;var B=p;try{for(b(I),m=n(c);m!==null&&(!(m.expirationTime>I)||T&&!$());){var z=m.callback;if(typeof z=="function"){m.callback=null,p=m.priorityLevel;var G=z(m.expirationTime<=I);I=e.unstable_now(),typeof G=="function"?m.callback=G:m===n(c)&&r(c),b(I)}else r(c);m=n(c)}if(m!==null)var J=!0;else{var Z=n(d);Z!==null&&V(j,Z.startTime-I),J=!1}return J}finally{m=null,p=B,f=!1}}var A=!1,E=null,S=-1,D=5,R=-1;function $(){return!(e.unstable_now()-R<D)}function k(){if(E!==null){var T=e.unstable_now();R=T;var I=!0;try{I=E(!0,T)}finally{I?O():(A=!1,E=null)}}else A=!1}var O;if(typeof g=="function")O=function(){g(k)};else if(typeof MessageChannel<"u"){var _=new MessageChannel,W=_.port2;_.port1.onmessage=k,O=function(){W.postMessage(null)}}else O=function(){v(k,0)};function U(T){E=T,A||(A=!0,O())}function V(T,I){S=v(function(){T(e.unstable_now())},I)}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(T){T.callback=null},e.unstable_continueExecution=function(){w||f||(w=!0,U(N))},e.unstable_forceFrameRate=function(T){0>T||125<T?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):D=0<T?Math.floor(1e3/T):5},e.unstable_getCurrentPriorityLevel=function(){return p},e.unstable_getFirstCallbackNode=function(){return n(c)},e.unstable_next=function(T){switch(p){case 1:case 2:case 3:var I=3;break;default:I=p}var B=p;p=I;try{return T()}finally{p=B}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(T,I){switch(T){case 1:case 2:case 3:case 4:case 5:break;default:T=3}var B=p;p=T;try{return I()}finally{p=B}},e.unstable_scheduleCallback=function(T,I,B){var z=e.unstable_now();switch(typeof B=="object"&&B!==null?(B=B.delay,B=typeof B=="number"&&0<B?z+B:z):B=z,T){case 1:var G=-1;break;case 2:G=250;break;case 5:G=1073741823;break;case 4:G=1e4;break;default:G=5e3}return G=B+G,T={id:u++,callback:I,priorityLevel:T,startTime:B,expirationTime:G,sortIndex:-1},B>z?(T.sortIndex=B,t(d,T),n(c)===null&&T===n(d)&&(y?(x(S),S=-1):y=!0,V(j,B-z))):(T.sortIndex=G,t(c,T),w||f||(w=!0,U(N))),T},e.unstable_shouldYield=$,e.unstable_wrapCallback=function(T){var I=p;return function(){var B=p;p=I;try{return T.apply(this,arguments)}finally{p=B}}}})(cv);lv.exports=cv;var JN=lv.exports;/** 27 * @license React 28 * react-dom.production.min.js 29 * 30 * Copyright (c) Facebook, Inc. and its affiliates. 31 * 32 * This source code is licensed under the MIT license found in the 33 * LICENSE file in the root directory of this source tree. 34 */var ZN=h,_t=JN;function L(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 dv=new Set,Ss={};function Io(e,t){ga(e,t),ga(e+"Capture",t)}function ga(e,t){for(Ss[e]=t,e=0;e<t.length;e++)dv.add(t[e])}var Kn=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),wu=Object.prototype.hasOwnProperty,eA=/^[: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]*$/,gf={},yf={};function tA(e){return wu.call(yf,e)?!0:wu.call(gf,e)?!1:eA.test(e)?yf[e]=!0:(gf[e]=!0,!1)}function nA(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function rA(e,t,n,r){if(t===null||typeof t>"u"||nA(e,t,n,r))return!0;if(r)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 jt(e,t,n,r,a,s,i){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=s,this.removeEmptyString=i}var lt={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){lt[e]=new jt(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];lt[t]=new jt(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){lt[e]=new jt(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){lt[e]=new jt(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){lt[e]=new jt(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){lt[e]=new jt(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){lt[e]=new jt(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){lt[e]=new jt(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){lt[e]=new jt(e,5,!1,e.toLowerCase(),null,!1,!1)});var cm=/[\-:]([a-z])/g;function dm(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(cm,dm);lt[t]=new jt(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(cm,dm);lt[t]=new jt(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(cm,dm);lt[t]=new jt(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){lt[e]=new jt(e,1,!1,e.toLowerCase(),null,!1,!1)});lt.xlinkHref=new jt("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){lt[e]=new jt(e,1,!1,e.toLowerCase(),null,!0,!0)});function um(e,t,n,r){var a=lt.hasOwnProperty(t)?lt[t]:null;(a!==null?a.type!==0:r||!(2<t.length)||t[0]!=="o"&&t[0]!=="O"||t[1]!=="n"&&t[1]!=="N")&&(rA(t,n,a,r)&&(n=null),r||a===null?tA(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,r=a.attributeNamespace,n===null?e.removeAttribute(t):(a=a.type,n=a===3||a===4&&n===!0?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}var ar=ZN.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,Ni=Symbol.for("react.element"),Lo=Symbol.for("react.portal"),Ho=Symbol.for("react.fragment"),hm=Symbol.for("react.strict_mode"),ju=Symbol.for("react.profiler"),uv=Symbol.for("react.provider"),hv=Symbol.for("react.context"),mm=Symbol.for("react.forward_ref"),Nu=Symbol.for("react.suspense"),Au=Symbol.for("react.suspense_list"),pm=Symbol.for("react.memo"),gr=Symbol.for("react.lazy"),mv=Symbol.for("react.offscreen"),xf=Symbol.iterator;function Wa(e){return e===null||typeof e!="object"?null:(e=xf&&e[xf]||e["@@iterator"],typeof e=="function"?e:null)}var Ue=Object.assign,Nd;function ls(e){if(Nd===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);Nd=t&&t[1]||""}return` 35`+Nd+e}var Ad=!1;function Ed(e,t){if(!e||Ad)return"";Ad=!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 r=d}Reflect.construct(e,[],t)}else{try{t.call()}catch(d){r=d}e.call(t.prototype)}else{try{throw Error()}catch(d){r=d}e()}}
vendor: 14,090 bytes, lines 35-38
35catch(d){if(d&&r&&typeof d.stack=="string"){for(var a=d.stack.split(` 36`),s=r.stack.split(` 37`),i=a.length-1,l=s.length-1;1<=i&&0<=l&&a[i]!==s[l];)l--;for(;1<=i&&0<=l;i--,l--)if(a[i]!==s[l]){if(i!==1||l!==1)do if(i--,l--,0>l||a[i]!==s[l]){var c=` 38`+a[i].replace(" at new "," at ");return e.displayName&&c.includes("<anonymous>")&&(c=c.replace("<anonymous>",e.displayName)),c}while(1<=i&&0<=l);break}}}finally{Ad=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?ls(e):""}function oA(e){switch(e.tag){case 5:return ls(e.type);case 16:return ls("Lazy");case 13:return ls("Suspense");case 19:return ls("SuspenseList");case 0:case 2:case 15:return e=Ed(e.type,!1),e;case 11:return e=Ed(e.type.render,!1),e;case 1:return e=Ed(e.type,!0),e;default:return""}}function Eu(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 Ho:return"Fragment";case Lo:return"Portal";case ju:return"Profiler";case hm:return"StrictMode";case Nu:return"Suspense";case Au:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case hv:return(e.displayName||"Context")+".Consumer";case uv:return(e._context.displayName||"Context")+".Provider";case mm:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case pm:return t=e.displayName||null,t!==null?t:Eu(e.type)||"Memo";case gr:t=e._payload,e=e._init;try{return Eu(e(t))}catch{}}return null}function aA(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 Eu(t);case 8:return t===hm?"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 Or(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function pv(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function sA(e){var t=pv(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var a=n.get,s=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(i){r=""+i,s.call(this,i)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(i){r=""+i},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Ai(e){e._valueTracker||(e._valueTracker=sA(e))}function fv(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=pv(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function El(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 Su(e,t){var n=t.checked;return Ue({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function vf(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Or(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function gv(e,t){t=t.checked,t!=null&&um(e,"checked",t,!1)}function Iu(e,t){gv(e,t);var n=Or(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?ku(e,t.type,n):t.hasOwnProperty("defaultValue")&&ku(e,t.type,Or(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function bf(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="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 ku(e,t,n){(t!=="number"||El(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var cs=Array.isArray;function Ko(e,t,n,r){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&&r&&(e[n].defaultSelected=!0)}else{for(n=""+Or(n),t=null,a=0;a<e.length;a++){if(e[a].value===n){e[a].selected=!0,r&&(e[a].defaultSelected=!0);return}t!==null||e[a].disabled||(t=e[a])}t!==null&&(t.selected=!0)}}function Cu(e,t){if(t.dangerouslySetInnerHTML!=null)throw Error(L(91));return Ue({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function wf(e,t){var n=t.value;if(n==null){if(n=t.children,t=t.defaultValue,n!=null){if(t!=null)throw Error(L(92));if(cs(n)){if(1<n.length)throw Error(L(93));n=n[0]}t=n}t==null&&(t=""),n=t}e._wrapperState={initialValue:Or(n)}}function yv(e,t){var n=Or(t.value),r=Or(t.defaultValue);n!=null&&(n=""+n,n!==e.value&&(e.value=n),t.defaultValue==null&&e.defaultValue!==n&&(e.defaultValue=n)),r!=null&&(e.defaultValue=""+r)}function jf(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}function xv(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 Tu(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?xv(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var Ei,vv=function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(t,n,r,a){MSApp.execUnsafeLocalFunction(function(){return e(t,n,r,a)})}:e}(function(e,t){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=t;else{for(Ei=Ei||document.createElement("div"),Ei.innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=Ei.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Is(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var fs={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},iA=["Webkit","ms","Moz","O"];Object.keys(fs).forEach(function(e){iA.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),fs[t]=fs[e]})});function bv(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||fs.hasOwnProperty(e)&&fs[e]?(""+t).trim():t+"px"}function wv(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,a=bv(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}var lA=Ue({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 Pu(e,t){if(t){if(lA[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(L(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(L(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(L(61))}if(t.style!=null&&typeof t.style!="object")throw Error(L(62))}}function Ru(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";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 Du=null;function fm(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Mu=null,Jo=null,Zo=null;function Nf(e){if(e=ni(e)){if(typeof Mu!="function")throw Error(L(280));var t=e.stateNode;t&&(t=vc(t),Mu(e.stateNode,e.type,t))}}function jv(e){Jo?Zo?Zo.push(e):Zo=[e]:Jo=e}function Nv(){if(Jo){var e=Jo,t=Zo;if(Zo=Jo=null,Nf(e),t)for(e=0;e<t.length;e++)Nf(t[e])}}function Av(e,t){return e(t)}function Ev(){}var Sd=!1;function Sv(e,t,n){if(Sd)return e(t,n);Sd=!0;try{return Av(e,t,n)}finally{Sd=!1,(Jo!==null||Zo!==null)&&(Ev(),Nv())}}function ks(e,t){var n=e.stateNode;if(n===null)return null;var r=vc(n);if(r===null)return null;n=r[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":(r=!r.disabled)||(e=e.type,r=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!r;break e;default:e=!1}if(e)return null;if(n&&typeof n!="function")throw Error(L(231,t,typeof n));return n}var _u=!1;if(Kn)try{var qa={};Object.defineProperty(qa,"passive",{get:function(){_u=!0}}),window.addEventListener("test",qa,qa),window.removeEventListener("test",qa,qa)}catch{_u=!1}function cA(e,t,n,r,a,s,i,l,c){var d=Array.prototype.slice.call(arguments,3);try{t.apply(n,d)}catch(u){this.onError(u)}}var gs=!1,Sl=null,Il=!1,Bu=null,dA={onError:function(e){gs=!0,Sl=e}};function uA(e,t,n,r,a,s,i,l,c){gs=!1,Sl=null,cA.apply(dA,arguments)}function hA(e,t,n,r,a,s,i,l,c){if(uA.apply(this,arguments),gs){if(gs){var d=Sl;gs=!1,Sl=null}else throw Error(L(198));Il||(Il=!0,Bu=d)}}function ko(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 Iv(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 Af(e){if(ko(e)!==e)throw Error(L(188))}function mA(e){var t=e.alternate;if(!t){if(t=ko(e),t===null)throw Error(L(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(a===null)break;var s=a.alternate;if(s===null){if(r=a.return,r!==null){n=r;continue}break}if(a.child===s.child){for(s=a.child;s;){if(s===n)return Af(a),e;if(s===r)return Af(a),t;s=s.sibling}throw Error(L(188))}if(n.return!==r.return)n=a,r=s;else{for(var i=!1,l=a.child;l;){if(l===n){i=!0,n=a,r=s;break}if(l===r){i=!0,r=a,n=s;break}l=l.sibling}if(!i){for(l=s.child;l;){if(l===n){i=!0,n=s,r=a;break}if(l===r){i=!0,r=s,n=a;break}l=l.sibling}if(!i)throw Error(L(189))}}if(n.alternate!==r)throw Error(L(190))}if(n.tag!==3)throw Error(L(188));return n.stateNode.current===n?e:t}function kv(e){return e=mA(e),e!==null?Cv(e):null}function Cv(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var t=Cv(e);if(t!==null)return t;e=e.sibling}return null}var Tv=_t.unstable_scheduleCallback,Ef=_t.unstable_cancelCallback,pA=_t.unstable_shouldYield,fA=_t.unstable_requestPaint,Qe=_t.unstable_now,gA=_t.unstable_getCurrentPriorityLevel,gm=_t.unstable_ImmediatePriority,Pv=_t.unstable_UserBlockingPriority,kl=_t.unstable_NormalPriority,yA=_t.unstable_LowPriority,Rv=_t.unstable_IdlePriority,fc=null,Mn=null;function xA(e){if(Mn&&typeof Mn.onCommitFiberRoot=="function")try{Mn.onCommitFiberRoot(fc,e,void 0,(e.current.flags&128)===128)}catch{}}var hn=Math.clz32?Math.clz32:wA,vA=Math.log,bA=Math.LN2;function wA(e){return e>>>=0,e===0?32:31-(vA(e)/bA|0)|0}var Si=64,Ii=4194304;function ds(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 Cl(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,a=e.suspendedLanes,s=e.pingedLanes,i=n&268435455;if(i!==0){var l=i&~a;l!==0?r=ds(l):(s&=i,s!==0&&(r=ds(s)))}else i=n&~a,i!==0?r=ds(i):s!==0&&(r=ds(s));if(r===0)return 0;if(t!==0&&t!==r&&!(t&a)&&(a=r&-r,s=t&-t,a>=s||a===16&&(s&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0<t;)n=31-hn(t),a=1<<n,r|=e[n],t&=~a;return r}function jA(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 NA(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,a=e.expirationTimes,s=e.pendingLanes;0<s;){var i=31-hn(s),l=1<<i,c=a[i];c===-1?(!(l&n)||l&r)&&(a[i]=jA(l,t)):c<=t&&(e.expiredLanes|=l),s&=~l}}function Ou(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function Dv(){var e=Si;return Si<<=1,!(Si&4194240)&&(Si=64),e}function Id(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}
vendor: 4,087 bytes, line 38
38function ei(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-hn(t),e[t]=n}function AA(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 r=e.eventTimes;for(e=e.expirationTimes;0<n;){var a=31-hn(n),s=1<<a;t[a]=0,r[a]=-1,e[a]=-1,n&=~s}}function ym(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-hn(n),a=1<<r;a&t|e[r]&t&&(e[r]|=t),n&=~a}}var Ne=0;function Mv(e){return e&=-e,1<e?4<e?e&268435455?16:536870912:4:1}var _v,xm,Bv,Ov,Fv,Fu=!1,ki=[],kr=null,Cr=null,Tr=null,Cs=new Map,Ts=new Map,xr=[],EA="mousedown 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 Sf(e,t){switch(e){case"focusin":case"focusout":kr=null;break;case"dragenter":case"dragleave":Cr=null;break;case"mouseover":case"mouseout":Tr=null;break;case"pointerover":case"pointerout":Cs.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Ts.delete(t.pointerId)}}function Va(e,t,n,r,a,s){return e===null||e.nativeEvent!==s?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:s,targetContainers:[a]},t!==null&&(t=ni(t),t!==null&&xm(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,a!==null&&t.indexOf(a)===-1&&t.push(a),e)}function SA(e,t,n,r,a){switch(t){case"focusin":return kr=Va(kr,e,t,n,r,a),!0;case"dragenter":return Cr=Va(Cr,e,t,n,r,a),!0;case"mouseover":return Tr=Va(Tr,e,t,n,r,a),!0;case"pointerover":var s=a.pointerId;return Cs.set(s,Va(Cs.get(s)||null,e,t,n,r,a)),!0;case"gotpointercapture":return s=a.pointerId,Ts.set(s,Va(Ts.get(s)||null,e,t,n,r,a)),!0}return!1}function Lv(e){var t=ro(e.target);if(t!==null){var n=ko(t);if(n!==null){if(t=n.tag,t===13){if(t=Iv(n),t!==null){e.blockedOn=t,Fv(e.priority,function(){Bv(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 il(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=Lu(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);Du=r,n.target.dispatchEvent(r),Du=null}else return t=ni(n),t!==null&&xm(t),e.blockedOn=n,!1;t.shift()}return!0}function If(e,t,n){il(e)&&n.delete(t)}function IA(){Fu=!1,kr!==null&&il(kr)&&(kr=null),Cr!==null&&il(Cr)&&(Cr=null),Tr!==null&&il(Tr)&&(Tr=null),Cs.forEach(If),Ts.forEach(If)}function Xa(e,t){e.blockedOn===t&&(e.blockedOn=null,Fu||(Fu=!0,_t.unstable_scheduleCallback(_t.unstable_NormalPriority,IA)))}function Ps(e){function t(a){return Xa(a,e)}if(0<ki.length){Xa(ki[0],e);for(var n=1;n<ki.length;n++){var r=ki[n];r.blockedOn===e&&(r.blockedOn=null)}}for(kr!==null&&Xa(kr,e),Cr!==null&&Xa(Cr,e),Tr!==null&&Xa(Tr,e),Cs.forEach(t),Ts.forEach(t),n=0;n<xr.length;n++)r=xr[n],r.blockedOn===e&&(r.blockedOn=null);for(;0<xr.length&&(n=xr[0],n.blockedOn===null);)Lv(n),n.blockedOn===null&&xr.shift()}var ea=ar.ReactCurrentBatchConfig,Tl=!0;function kA(e,t,n,r){var a=Ne,s=ea.transition;ea.transition=null;try{Ne=1,vm(e,t,n,r)}finally{Ne=a,ea.transition=s}}function CA(e,t,n,r){var a=Ne,s=ea.transition;ea.transition=null;try{Ne=4,vm(e,t,n,r)}finally{Ne=a,ea.transition=s}}function vm(e,t,n,r){if(Tl){var a=Lu(e,t,n,r);if(a===null)Od(e,t,r,Pl,n),Sf(e,r);else if(SA(a,e,t,n,r))r.stopPropagation();else if(Sf(e,r),t&4&&-1<EA.indexOf(e)){for(;a!==null;){var s=ni(a);if(s!==null&&_v(s),s=Lu(e,t,n,r),s===null&&Od(e,t,r,Pl,n),s===a)break;a=s}a!==null&&r.stopPropagation()}else Od(e,t,r,null,n)}}var Pl=null;function Lu(e,t,n,r){if(Pl=null,e=fm(r),e=ro(e),e!==null)if(t=ko(e),t===null)e=null;else if(n=t.tag,n===13){if(e=Iv(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 Pl=e,null}
vendor: 9,127 bytes, line 38
38function Hv(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(gA()){case gm:return 1;case Pv:return 4;case kl:case yA:return 16;case Rv:return 536870912;default:return 16}default:return 16}}var Er=null,bm=null,ll=null;function Uv(){if(ll)return ll;var e,t=bm,n=t.length,r,a="value"in Er?Er.value:Er.textContent,s=a.length;for(e=0;e<n&&t[e]===a[e];e++);var i=n-e;for(r=1;r<=i&&t[n-r]===a[s-r];r++);return ll=a.slice(e,1<r?1-r:void 0)}function cl(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 Ci(){return!0}function kf(){return!1}function Ft(e){function t(n,r,a,s,i){this._reactName=n,this._targetInst=a,this.type=r,this.nativeEvent=s,this.target=i,this.currentTarget=null;for(var l in e)e.hasOwnProperty(l)&&(n=e[l],this[l]=n?n(s):s[l]);return this.isDefaultPrevented=(s.defaultPrevented!=null?s.defaultPrevented:s.returnValue===!1)?Ci:kf,this.isPropagationStopped=kf,this}return Ue(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=Ci)},stopPropagation:function(){var n=this.nativeEvent;n&&(n.stopPropagation?n.stopPropagation():typeof n.cancelBubble!="unknown"&&(n.cancelBubble=!0),this.isPropagationStopped=Ci)},persist:function(){},isPersistent:Ci}),t}var Da={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},wm=Ft(Da),ti=Ue({},Da,{view:0,detail:0}),TA=Ft(ti),kd,Cd,Ya,gc=Ue({},ti,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:jm,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!==Ya&&(Ya&&e.type==="mousemove"?(kd=e.screenX-Ya.screenX,Cd=e.screenY-Ya.screenY):Cd=kd=0,Ya=e),kd)},movementY:function(e){return"movementY"in e?e.movementY:Cd}}),Cf=Ft(gc),PA=Ue({},gc,{dataTransfer:0}),RA=Ft(PA),DA=Ue({},ti,{relatedTarget:0}),Td=Ft(DA),MA=Ue({},Da,{animationName:0,elapsedTime:0,pseudoElement:0}),_A=Ft(MA),BA=Ue({},Da,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),OA=Ft(BA),FA=Ue({},Da,{data:0}),Tf=Ft(FA),LA={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},HA={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"},UA={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function zA(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=UA[e])?!!t[e]:!1}function jm(){return zA}var $A=Ue({},ti,{key:function(e){if(e.key){var t=LA[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=cl(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?HA[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:jm,charCode:function(e){return e.type==="keypress"?cl(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?cl(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),GA=Ft($A),QA=Ue({},gc,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Pf=Ft(QA),WA=Ue({},ti,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:jm}),qA=Ft(WA),VA=Ue({},Da,{propertyName:0,elapsedTime:0,pseudoElement:0}),XA=Ft(VA),YA=Ue({},gc,{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}),KA=Ft(YA),JA=[9,13,27,32],Nm=Kn&&"CompositionEvent"in window,ys=null;Kn&&"documentMode"in document&&(ys=document.documentMode);var ZA=Kn&&"TextEvent"in window&&!ys,zv=Kn&&(!Nm||ys&&8<ys&&11>=ys),Rf=" ",Df=!1;function $v(e,t){switch(e){case"keyup":return JA.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Gv(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Uo=!1;function eE(e,t){switch(e){case"compositionend":return Gv(t);case"keypress":return t.which!==32?null:(Df=!0,Rf);case"textInput":return e=t.data,e===Rf&&Df?null:e;default:return null}}function tE(e,t){if(Uo)return e==="compositionend"||!Nm&&$v(e,t)?(e=Uv(),ll=bm=Er=null,Uo=!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 zv&&t.locale!=="ko"?null:t.data;default:return null}}var nE={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 Mf(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!nE[e.type]:t==="textarea"}function Qv(e,t,n,r){jv(r),t=Rl(t,"onChange"),0<t.length&&(n=new wm("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var xs=null,Rs=null;function rE(e){nb(e,0)}function yc(e){var t=Go(e);if(fv(t))return e}function oE(e,t){if(e==="change")return t}var Wv=!1;if(Kn){var Pd;if(Kn){var Rd="oninput"in document;if(!Rd){var _f=document.createElement("div");_f.setAttribute("oninput","return;"),Rd=typeof _f.oninput=="function"}Pd=Rd}else Pd=!1;Wv=Pd&&(!document.documentMode||9<document.documentMode)}function Bf(){xs&&(xs.detachEvent("onpropertychange",qv),Rs=xs=null)}function qv(e){if(e.propertyName==="value"&&yc(Rs)){var t=[];Qv(t,Rs,e,fm(e)),Sv(rE,t)}}function aE(e,t,n){e==="focusin"?(Bf(),xs=t,Rs=n,xs.attachEvent("onpropertychange",qv)):e==="focusout"&&Bf()}function sE(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return yc(Rs)}function iE(e,t){if(e==="click")return yc(t)}function lE(e,t){if(e==="input"||e==="change")return yc(t)}function cE(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var pn=typeof Object.is=="function"?Object.is:cE;function Ds(e,t){if(pn(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var a=n[r];if(!wu.call(t,a)||!pn(e[a],t[a]))return!1}return!0}function Of(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Ff(e,t){var n=Of(e);e=0;for(var r;n;){if(n.nodeType===3){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Of(n)}}function Vv(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Vv(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Xv(){for(var e=window,t=El();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=El(e.document)}return t}function Am(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 dE(e){var t=Xv(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Vv(n.ownerDocument.documentElement,n)){if(r!==null&&Am(n)){if
vendor: 4,964 bytes, line 38
38(t=r.start,e=r.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,s=Math.min(r.start,a);r=r.end===void 0?s:Math.min(r.end,a),!e.extend&&s>r&&(a=r,r=s,s=a),a=Ff(n,s);var i=Ff(n,r);a&&i&&(e.rangeCount!==1||e.anchorNode!==a.node||e.anchorOffset!==a.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(a.node,a.offset),e.removeAllRanges(),s>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.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 uE=Kn&&"documentMode"in document&&11>=document.documentMode,zo=null,Hu=null,vs=null,Uu=!1;function Lf(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Uu||zo==null||zo!==El(r)||(r=zo,"selectionStart"in r&&Am(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),vs&&Ds(vs,r)||(vs=r,r=Rl(Hu,"onSelect"),0<r.length&&(t=new wm("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=zo)))}function Ti(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var $o={animationend:Ti("Animation","AnimationEnd"),animationiteration:Ti("Animation","AnimationIteration"),animationstart:Ti("Animation","AnimationStart"),transitionend:Ti("Transition","TransitionEnd")},Dd={},Yv={};Kn&&(Yv=document.createElement("div").style,"AnimationEvent"in window||(delete $o.animationend.animation,delete $o.animationiteration.animation,delete $o.animationstart.animation),"TransitionEvent"in window||delete $o.transitionend.transition);function xc(e){if(Dd[e])return Dd[e];if(!$o[e])return e;var t=$o[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in Yv)return Dd[e]=t[n];return e}var Kv=xc("animationend"),Jv=xc("animationiteration"),Zv=xc("animationstart"),eb=xc("transitionend"),tb=new Map,Hf="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 Gr(e,t){tb.set(e,t),Io(t,[e])}for(var Md=0;Md<Hf.length;Md++){var _d=Hf[Md],hE=_d.toLowerCase(),mE=_d[0].toUpperCase()+_d.slice(1);Gr(hE,"on"+mE)}Gr(Kv,"onAnimationEnd");Gr(Jv,"onAnimationIteration");Gr(Zv,"onAnimationStart");Gr("dblclick","onDoubleClick");Gr("focusin","onFocus");Gr("focusout","onBlur");Gr(eb,"onTransitionEnd");ga("onMouseEnter",["mouseout","mouseover"]);ga("onMouseLeave",["mouseout","mouseover"]);ga("onPointerEnter",["pointerout","pointerover"]);ga("onPointerLeave",["pointerout","pointerover"]);Io("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));Io("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));Io("onBeforeInput",["compositionend","keypress","textInput","paste"]);Io("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));Io("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));Io("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var us="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(" "),pE=new Set("cancel close invalid load scroll toggle".split(" ").concat(us));function Uf(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,hA(r,t,void 0,e),e.currentTarget=null}function nb(e,t){t=(t&4)!==0;for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var s=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],c=l.instance,d=l.currentTarget;if(l=l.listener,c!==s&&a.isPropagationStopped())break e;Uf(a,l,d),s=c}else for(i=0;i<r.length;i++){if(l=r[i],c=l.instance,d=l.currentTarget,l=l.listener,c!==s&&a.isPropagationStopped())break e;Uf(a,l,d),s=c}}}if(Il)throw e=Bu,Il=!1,Bu=null,e}function Me(e,t){var n=t[Wu];n===void 0&&(n=t[Wu]=new Set);var r=e+"__bubble";n.has(r)||(rb(t,e,2,!1),n.add(r))}
vendor: 4,424 bytes, line 38
38function Bd(e,t,n){var r=0;t&&(r|=4),rb(n,e,r,t)}var Pi="_reactListening"+Math.random().toString(36).slice(2);function Ms(e){if(!e[Pi]){e[Pi]=!0,dv.forEach(function(n){n!=="selectionchange"&&(pE.has(n)||Bd(n,!1,e),Bd(n,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Pi]||(t[Pi]=!0,Bd("selectionchange",!1,t))}}function rb(e,t,n,r){switch(Hv(t)){case 1:var a=kA;break;case 4:a=CA;break;default:a=vm}n=a.bind(null,t,n,e),a=void 0,!_u||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(a=!0),r?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 Od(e,t,n,r,a){var s=r;if(!(t&1)&&!(t&2)&&r!==null)e:for(;;){if(r===null)return;var i=r.tag;if(i===3||i===4){var l=r.stateNode.containerInfo;if(l===a||l.nodeType===8&&l.parentNode===a)break;if(i===4)for(i=r.return;i!==null;){var c=i.tag;if((c===3||c===4)&&(c=i.stateNode.containerInfo,c===a||c.nodeType===8&&c.parentNode===a))return;i=i.return}for(;l!==null;){if(i=ro(l),i===null)return;if(c=i.tag,c===5||c===6){r=s=i;continue e}l=l.parentNode}}r=r.return}Sv(function(){var d=s,u=fm(n),m=[];e:{var p=tb.get(e);if(p!==void 0){var f=wm,w=e;switch(e){case"keypress":if(cl(n)===0)break e;case"keydown":case"keyup":f=GA;break;case"focusin":w="focus",f=Td;break;case"focusout":w="blur",f=Td;break;case"beforeblur":case"afterblur":f=Td;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":f=Cf;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":f=RA;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":f=qA;break;case Kv:case Jv:case Zv:f=_A;break;case eb:f=XA;break;case"scroll":f=TA;break;case"wheel":f=KA;break;case"copy":case"cut":case"paste":f=OA;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":f=Pf}var y=(t&4)!==0,v=!y&&e==="scroll",x=y?p!==null?p+"Capture":null:p;y=[];for(var g=d,b;g!==null;){b=g;var j=b.stateNode;if(b.tag===5&&j!==null&&(b=j,x!==null&&(j=ks(g,x),j!=null&&y.push(_s(g,j,b)))),v)break;g=g.return}0<y.length&&(p=new f(p,w,null,n,u),m.push({event:p,listeners:y}))}}if(!(t&7)){e:{if(p=e==="mouseover"||e==="pointerover",f=e==="mouseout"||e==="pointerout",p&&n!==Du&&(w=n.relatedTarget||n.fromElement)&&(ro(w)||w[Jn]))break e;if((f||p)&&(p=u.window===u?u:(p=u.ownerDocument)?p.defaultView||p.parentWindow:window,f?(w=n.relatedTarget||n.toElement,f=d,w=w?ro(w):null,w!==null&&(v=ko(w),w!==v||w.tag!==5&&w.tag!==6)&&(w=null)):(f=null,w=d),f!==w)){if(y=Cf,j="onMouseLeave",x="onMouseEnter",g="mouse",(e==="pointerout"||e==="pointerover")&&(y=Pf,j="onPointerLeave",x="onPointerEnter",g="pointer"),v=f==null?p:Go(f),b=w==null?p:Go(w),p=new y(j,g+"leave",f,n,u),p.target=v,p.relatedTarget=b,j=null,ro(u)===d&&(y=new y(x,g+"enter",w,n,u),y.target=b,y.relatedTarget=v,j=y),v=j,f&&w)t:{for(y=f,x=w,g=0,b=y;b;b=Do(b))g++;for(b=0,j=x;j;j=Do(j))b++;for(;0<g-b;)y=Do(y),g--;for(;0<b-g;)x=Do(x),b--;for(;g--;){if(y===x||x!==null&&y===x.alternate)break t;y=Do(y),x=Do(x)}y=null}else y=null;f!==null&&zf(m,p,f,y,!1),w!==null&&v!==null&&zf(m,v,w,y,!0)}}e:{if(p=d?Go(d):window,f=p.nodeName&&p.nodeName.toLowerCase(),f==="select"||f==="input"&&p.type==="file")var N=oE;else if(Mf(p))if(Wv)N=lE;else{N=sE;var A=aE}else(f=p.nodeName)&&f.toLowerCase()==="input"&&(p.type==="checkbox"||p.type==="radio")&&(N=iE);if(N&&(N=N(e,d))){Qv(m,N,n,u);break e}A&&A(e,p,d),e==="focusout"&&(A=p._wrapperState)&&A.controlled&&p.type==="number"&&ku(p,"number",p.value)}switch(A=d?Go(d):window,e){case"focusin":(Mf(A)||A.contentEditable==="true")&&(zo=A,Hu=d,vs=null);break;case"focusout":vs=Hu=zo=null;break;case"mousedown":Uu=!0;break;case"contextmenu":case"mouseup":case"dragend":Uu=!1,Lf(m,n,u);break;case"selectionchange":if(uE)break;case"keydown":case"keyup":Lf(m,n,u)}var E;if(Nm)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 Uo?$v(e,n)&&(S="onCompositionEnd"):e==="keydown"&&n.keyCode===229&&(S="onCompositionStart");S&&(zv&&n.locale!=="ko"&&(Uo||S!=="onCompositionStart"?S==="onCompositionEnd"&&Uo&&(E=Uv()
vendor: 4,595 bytes, lines 38-39
38):(Er=u,bm="value"in Er?Er.value:Er.textContent,Uo=!0)),A=Rl(d,S),0<A.length&&(S=new Tf(S,e,null,n,u),m.push({event:S,listeners:A}),E?S.data=E:(E=Gv(n),E!==null&&(S.data=E)))),(E=ZA?eE(e,n):tE(e,n))&&(d=Rl(d,"onBeforeInput"),0<d.length&&(u=new Tf("onBeforeInput","beforeinput",null,n,u),m.push({event:u,listeners:d}),u.data=E))}nb(m,t)})}function _s(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Rl(e,t){for(var n=t+"Capture",r=[];e!==null;){var a=e,s=a.stateNode;a.tag===5&&s!==null&&(a=s,s=ks(e,n),s!=null&&r.unshift(_s(e,s,a)),s=ks(e,t),s!=null&&r.push(_s(e,s,a))),e=e.return}return r}function Do(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function zf(e,t,n,r,a){for(var s=t._reactName,i=[];n!==null&&n!==r;){var l=n,c=l.alternate,d=l.stateNode;if(c!==null&&c===r)break;l.tag===5&&d!==null&&(l=d,a?(c=ks(n,s),c!=null&&i.unshift(_s(n,c,l))):a||(c=ks(n,s),c!=null&&i.push(_s(n,c,l)))),n=n.return}i.length!==0&&e.push({event:t,listeners:i})}var fE=/\r\n?/g,gE=/\u0000|\uFFFD/g;function $f(e){return(typeof e=="string"?e:""+e).replace(fE,` 39`).replace(gE,"")}function Ri(e,t,n){if(t=$f(t),$f(e)!==t&&n)throw Error(L(425))}function Dl(){}var zu=null,$u=null;function Gu(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 Qu=typeof setTimeout=="function"?setTimeout:void 0,yE=typeof clearTimeout=="function"?clearTimeout:void 0,Gf=typeof Promise=="function"?Promise:void 0,xE=typeof queueMicrotask=="function"?queueMicrotask:typeof Gf<"u"?function(e){return Gf.resolve(null).then(e).catch(vE)}:Qu;function vE(e){setTimeout(function(){throw e})}function Fd(e,t){var n=t,r=0;do{var a=n.nextSibling;if(e.removeChild(n),a&&a.nodeType===8)if(n=a.data,n==="/$"){if(r===0){e.removeChild(a),Ps(t);return}r--}else n!=="$"&&n!=="$?"&&n!=="$!"||r++;n=a}while(n);Ps(t)}function Pr(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 Qf(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 Ma=Math.random().toString(36).slice(2),Tn="__reactFiber$"+Ma,Bs="__reactProps$"+Ma,Jn="__reactContainer$"+Ma,Wu="__reactEvents$"+Ma,bE="__reactListeners$"+Ma,wE="__reactHandles$"+Ma;function ro(e){var t=e[Tn];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Jn]||n[Tn]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=Qf(e);e!==null;){if(n=e[Tn])return n;e=Qf(e)}return t}e=n,n=e.parentNode}return null}function ni(e){return e=e[Tn]||e[Jn],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function Go(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(L(33))}function vc(e){return e[Bs]||null}var qu=[],Qo=-1;function Qr(e){return{current:e}}function Be(e){0>Qo||(e.current=qu[Qo],qu[Qo]=null,Qo--)}function Re(e,t){Qo++,qu[Qo]=e.current,e.current=t}var Fr={},pt=Qr(Fr),It=Qr(!1),yo=Fr;function ya(e,t){var n=e.type.contextTypes;if(!n)return Fr;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a={},s;for(s in n)a[s]=t[s];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function kt(e){return e=e.childContextTypes,e!=null}function Ml(){Be(It),Be(pt)}function Wf(e,t,n){if(pt.current!==Fr)throw Error(L(168));Re(pt,t),Re(It,n)}function ob(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var a in r)if(!(a in t))throw Error(L(108,aA(e)||"Unknown",a));return Ue({},n,r)}function _l(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Fr,yo=pt.current,Re(pt,e),Re(It,It.current),!0}function qf(e,t,n){var r=e.stateNode;if(!r)throw Error(L(169));n?(e=ob(e,t,yo),r.__reactInternalMemoizedMergedChildContext=e,Be(It),Be(pt),Re(pt,e)):Be(It),Re(It,n)}var Wn=null,bc=!1,Ld=!1;function ab(e){Wn===null?Wn=[e]:Wn.push(e)}function jE(e){bc=!0,ab(e)}function Wr(){if(!Ld&&Wn!==null){Ld=!0;var e=0,t=Ne;try{var n=Wn;for(Ne=1;e<n.length;e++){var r=n[e];do r=r(!0);while(r!==null)}Wn=null,bc=!1}catch(a){throw Wn!==null&&(Wn=Wn.slice(e+1)),Tv(gm,Wr),a}finally{Ne=t,Ld=!1}}return null}var Wo=[],qo=0,Bl=null,Ol=0,$t=[],Gt=0,xo=null,Vn=1,Xn="";function to(e,t){Wo[qo++]=Ol,Wo[qo++]=Bl,Bl=e,Ol=t}
vendor: 5,396 bytes, line 39
39function sb(e,t,n){$t[Gt++]=Vn,$t[Gt++]=Xn,$t[Gt++]=xo,xo=e;var r=Vn;e=Xn;var a=32-hn(r)-1;r&=~(1<<a),n+=1;var s=32-hn(t)+a;if(30<s){var i=a-a%5;s=(r&(1<<i)-1).toString(32),r>>=i,a-=i,Vn=1<<32-hn(t)+a|n<<a|r,Xn=s+e}else Vn=1<<s|n<<a|r,Xn=e}function Em(e){e.return!==null&&(to(e,1),sb(e,1,0))}function Sm(e){for(;e===Bl;)Bl=Wo[--qo],Wo[qo]=null,Ol=Wo[--qo],Wo[qo]=null;for(;e===xo;)xo=$t[--Gt],$t[Gt]=null,Xn=$t[--Gt],$t[Gt]=null,Vn=$t[--Gt],$t[Gt]=null}var Dt=null,Rt=null,Fe=!1,cn=null;function ib(e,t){var n=Qt(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 Vf(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,Dt=e,Rt=Pr(t.firstChild),!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,Dt=e,Rt=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(n=xo!==null?{id:Vn,overflow:Xn}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},n=Qt(18,null,null,0),n.stateNode=t,n.return=e,e.child=n,Dt=e,Rt=null,!0):!1;default:return!1}}function Vu(e){return(e.mode&1)!==0&&(e.flags&128)===0}function Xu(e){if(Fe){var t=Rt;if(t){var n=t;if(!Vf(e,t)){if(Vu(e))throw Error(L(418));t=Pr(n.nextSibling);var r=Dt;t&&Vf(e,t)?ib(r,n):(e.flags=e.flags&-4097|2,Fe=!1,Dt=e)}}else{if(Vu(e))throw Error(L(418));e.flags=e.flags&-4097|2,Fe=!1,Dt=e}}}function Xf(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;Dt=e}function Di(e){if(e!==Dt)return!1;if(!Fe)return Xf(e),Fe=!0,!1;var t;if((t=e.tag!==3)&&!(t=e.tag!==5)&&(t=e.type,t=t!=="head"&&t!=="body"&&!Gu(e.type,e.memoizedProps)),t&&(t=Rt)){if(Vu(e))throw lb(),Error(L(418));for(;t;)ib(e,t),t=Pr(t.nextSibling)}if(Xf(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(L(317));e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"){if(t===0){Rt=Pr(e.nextSibling);break e}t--}else n!=="$"&&n!=="$!"&&n!=="$?"||t++}e=e.nextSibling}Rt=null}}else Rt=Dt?Pr(e.stateNode.nextSibling):null;return!0}function lb(){for(var e=Rt;e;)e=Pr(e.nextSibling)}function xa(){Rt=Dt=null,Fe=!1}function Im(e){cn===null?cn=[e]:cn.push(e)}var NE=ar.ReactCurrentBatchConfig;function Ka(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(L(309));var r=n.stateNode}if(!r)throw Error(L(147,e));var a=r,s=""+e;return t!==null&&t.ref!==null&&typeof t.ref=="function"&&t.ref._stringRef===s?t.ref:(t=function(i){var l=a.refs;i===null?delete l[s]:l[s]=i},t._stringRef=s,t)}if(typeof e!="string")throw Error(L(284));if(!n._owner)throw Error(L(290,e))}return e}function Mi(e,t){throw e=Object.prototype.toString.call(t),Error(L(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function Yf(e){var t=e._init;return t(e._payload)}function cb(e){function t(x,g){if(e){var b=x.deletions;b===null?(x.deletions=[g],x.flags|=16):b.push(g)}}function n(x,g){if(!e)return null;for(;g!==null;)t(x,g),g=g.sibling;return null}function r(x,g){for(x=new Map;g!==null;)g.key!==null?x.set(g.key,g):x.set(g.index,g),g=g.sibling;return x}function a(x,g){return x=_r(x,g),x.index=0,x.sibling=null,x}function s(x,g,b){return x.index=b,e?(b=x.alternate,b!==null?(b=b.index,b<g?(x.flags|=2,g):b):(x.flags|=2,g)):(x.flags|=1048576,g)}function i(x){return e&&x.alternate===null&&(x.flags|=2),x}function l(x,g,b,j){return g===null||g.tag!==6?(g=Wd(b,x.mode,j),g.return=x,g):(g=a(g,b),g.return=x,g)}function c(x,g,b,j){var N=b.type;return N===Ho?u(x,g,b.props.children,j,b.key):g!==null&&(g.elementType===N||typeof N=="object"&&N!==null&&N.$$typeof===gr&&Yf(N)===g.type)?(j=a(g,b.props),j.ref=Ka(x,g,b),j.return=x,j):(j=gl(b.type,b.key,b.props,null,x.mode,j),j.ref=Ka(x,g,b),j.return=x,j)}function d(x,g,b,j){return g===null||g.tag!==4||g.stateNode.containerInfo!==b.containerInfo||g.stateNode.implementation!==b.implementation?(g=qd(b,x.mode,j),g.return=x,g):(g=a(g,b.children||[]),g.return=x,g)}function u(x,g,b,j,N){return g===null||g.tag!==7?(g=fo(b,x.mode,j,N),g.return=x,g):(g=a(g,b),g.return=x,g)}function m(x,g,b){if(typeof g=="string"&&g!==""||typeof g=="number")return g=Wd(""+g,x.mode,b),g.return=x,g;if(typeof g=="object"&&g!==null){switch(g.$$typeof){case Ni:return b=gl(g.type,g.key,g.props,null,x.mode,b),b.ref=Ka(x,null,g),b.return=x,b;case Lo:return g=qd(g,x.mode,b),g.return=x,g;case gr:var j=g._init;return m(x,j(g._payload),b)}if(cs(g)||Wa(g))return g=fo(g,x.mode,b,null),g.return=x,g;Mi(x,g)}return null}function p(x,g,b,j){var N=g!==null?g.key:null;if(typeof b=="string"&&b!==""||typeof b=="number")return N!==null?null:l(x,g,""+b,j);if(typeof b=="object"&&b!==null){switch(b.$$typeof){case Ni:return b.key===N?c(x,g,b,j):null;case Lo:return b.key===N?d(x,g,b,j):null;case gr:return N=b._init,p(x,g,N(b._payload),j)}if(cs(b)||Wa(b))return N!==null?null:u(x,g,b,j,null);Mi(x,b)}return null}function f(x,g,b,j,N){if(typeof j=="string"&&j!==""||typeof j=="number")return x=x.get(b)||null,l(g,x,""+j,N);if(typeof j=="object"&&j!==null){switch(j.$$typeof){case Ni:return x=x.get(j.key===null?b:j.key)||null,c(g,x,j,N);case Lo:return x=x.get(j.key===null?b:j.key)||null,d(g,x,j,N);case gr:var A=j._init;return f(x,g,b,A(j._payload),N)}if(cs(j)||Wa(j))return x=x.get(b)||null,u(g,x,j,N,null);
vendor: 1,082 bytes, line 39
39Mi(g,j)}return null}function w(x,g,b,j){for(var N=null,A=null,E=g,S=g=0,D=null;E!==null&&S<b.length;S++){E.index>S?(D=E,E=null):D=E.sibling;var R=p(x,E,b[S],j);if(R===null){E===null&&(E=D);break}e&&E&&R.alternate===null&&t(x,E),g=s(R,g,S),A===null?N=R:A.sibling=R,A=R,E=D}if(S===b.length)return n(x,E),Fe&&to(x,S),N;if(E===null){for(;S<b.length;S++)E=m(x,b[S],j),E!==null&&(g=s(E,g,S),A===null?N=E:A.sibling=E,A=E);return Fe&&to(x,S),N}for(E=r(x,E);S<b.length;S++)D=f(E,x,S,b[S],j),D!==null&&(e&&D.alternate!==null&&E.delete(D.key===null?S:D.key),g=s(D,g,S),A===null?N=D:A.sibling=D,A=D);return e&&E.forEach(function($){return t(x,$)}),Fe&&to(x,S),N}function y(x,g,b,j){var N=Wa(b);if(typeof N!="function")throw Error(L(150));if(b=N.call(b),b==null)throw Error(L(151));for(var A=N=null,E=g,S=g=0,D=null,R=b.next();E!==null&&!R.done;S++,R=b.next()){E.index>S?(D=E,E=null):D=E.sibling;var $=p(x,E,R.value,j);if($===null){E===null&&(E=D);break}e&&E&&$.alternate===null&&t(x,E),g=s($,g,S),A===null?N=$:A.sibling=$,A=$,E=D}if(R.done)return n(x,E),Fe&&to(x,S),N;if(E===null){for(;!R.done;
vendor: 21,050 bytes, lines 39-41
39S++,R=b.next())R=m(x,R.value,j),R!==null&&(g=s(R,g,S),A===null?N=R:A.sibling=R,A=R);return Fe&&to(x,S),N}for(E=r(x,E);!R.done;S++,R=b.next())R=f(E,x,S,R.value,j),R!==null&&(e&&R.alternate!==null&&E.delete(R.key===null?S:R.key),g=s(R,g,S),A===null?N=R:A.sibling=R,A=R);return e&&E.forEach(function(k){return t(x,k)}),Fe&&to(x,S),N}function v(x,g,b,j){if(typeof b=="object"&&b!==null&&b.type===Ho&&b.key===null&&(b=b.props.children),typeof b=="object"&&b!==null){switch(b.$$typeof){case Ni:e:{for(var N=b.key,A=g;A!==null;){if(A.key===N){if(N=b.type,N===Ho){if(A.tag===7){n(x,A.sibling),g=a(A,b.props.children),g.return=x,x=g;break e}}else if(A.elementType===N||typeof N=="object"&&N!==null&&N.$$typeof===gr&&Yf(N)===A.type){n(x,A.sibling),g=a(A,b.props),g.ref=Ka(x,A,b),g.return=x,x=g;break e}n(x,A);break}else t(x,A);A=A.sibling}b.type===Ho?(g=fo(b.props.children,x.mode,j,b.key),g.return=x,x=g):(j=gl(b.type,b.key,b.props,null,x.mode,j),j.ref=Ka(x,g,b),j.return=x,x=j)}return i(x);case Lo:e:{for(A=b.key;g!==null;){if(g.key===A)if(g.tag===4&&g.stateNode.containerInfo===b.containerInfo&&g.stateNode.implementation===b.implementation){n(x,g.sibling),g=a(g,b.children||[]),g.return=x,x=g;break e}else{n(x,g);break}else t(x,g);g=g.sibling}g=qd(b,x.mode,j),g.return=x,x=g}return i(x);case gr:return A=b._init,v(x,g,A(b._payload),j)}if(cs(b))return w(x,g,b,j);if(Wa(b))return y(x,g,b,j);Mi(x,b)}return typeof b=="string"&&b!==""||typeof b=="number"?(b=""+b,g!==null&&g.tag===6?(n(x,g.sibling),g=a(g,b),g.return=x,x=g):(n(x,g),g=Wd(b,x.mode,j),g.return=x,x=g),i(x)):n(x,g)}return v}var va=cb(!0),db=cb(!1),Fl=Qr(null),Ll=null,Vo=null,km=null;function Cm(){km=Vo=Ll=null}function Tm(e){var t=Fl.current;Be(Fl),e._currentValue=t}function Yu(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function ta(e,t){Ll=e,km=Vo=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(St=!0),e.firstContext=null)}function qt(e){var t=e._currentValue;if(km!==e)if(e={context:e,memoizedValue:t,next:null},Vo===null){if(Ll===null)throw Error(L(308));Vo=e,Ll.dependencies={lanes:0,firstContext:e}}else Vo=Vo.next=e;return t}var oo=null;function Pm(e){oo===null?oo=[e]:oo.push(e)}function ub(e,t,n,r){var a=t.interleaved;return a===null?(n.next=n,Pm(t)):(n.next=a.next,a.next=n),t.interleaved=n,Zn(e,r)}function Zn(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 yr=!1;function Rm(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function hb(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 Yn(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Rr(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,be&2){var a=r.pending;return a===null?t.next=t:(t.next=a.next,a.next=t),r.pending=t,Zn(e,n)}return a=r.interleaved,a===null?(t.next=t,Pm(r)):(t.next=a.next,a.next=t),r.interleaved=t,Zn(e,n)}function dl(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,ym(e,n)}}function Kf(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var a=null,s=null;if(n=n.firstBaseUpdate,n!==null){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};s===null?a=s=i:s=s.next=i,n=n.next}while(n!==null);s===null?a=s=t:s=s.next=t}else a=s=t;n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:s,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Hl(e,t,n,r){var a=e.updateQueue;yr=!1;var s=a.firstBaseUpdate,i=a.lastBaseUpdate,l=a.shared.pending;if(l!==null){a.shared.pending=null;var c=l,d=c.next;c.next=null,i===null?s=d:i.next=d,i=c;var u=e.alternate;u!==null&&(u=u.updateQueue,l=u.lastBaseUpdate,l!==i&&(l===null?u.firstBaseUpdate=d:l.next=d,u.lastBaseUpdate=c))}if(s!==null){var m=a.baseState;i=0,u=d=c=null,l=s;do{var p=l.lane,f=l.eventTime;if((r&p)===p){u!==null&&(u=u.next={eventTime:f,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var w=e,y=l;switch(p=t,f=n,y.tag){case 1:if(w=y.payload,typeof w=="function"){m=w.call(f,m,p);break e}m=w;break e;case 3:w.flags=w.flags&-65537|128;case 0:if(w=y.payload,p=typeof w=="function"?w.call(f,m,p):w,p==null)break e;m=Ue({},m,p);break e;case 2:yr=!0}}l.callback!==null&&l.lane!==0&&(e.flags|=64,p=a.effects,p===null?a.effects=[l]:p.push(l))}else f={eventTime:f,lane:p,tag:l.tag,payload:l.payload,callback:l.callback,next:null},u===null?(d=u=f,c=m):u=u.next=f,i|=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=m),a.baseState=c,a.firstBaseUpdate=d,a.lastBaseUpdate=u,t=a.shared.interleaved,t!==null){a=t;do i|=a.lane,a=a.next;while(a!==t)}else s===null&&(a.shared.lanes=0);bo|=i,e.lanes=i,e.memoizedState=m}}function Jf(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(a!==null){if(r.callback=null,r=n,typeof a!="function")throw Error(L(191,a));a.call(r)}}}var ri={},_n=Qr(ri),Os=Qr(ri),Fs=Qr(ri);function ao(e){if(e===ri)throw Error(L(174));return e}function Dm(e,t){switch(Re(Fs,t),Re(Os,e),Re(_n,ri),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:Tu(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=Tu(t,e)}Be(_n),Re(_n,t)}function ba(){Be(_n),Be(Os),Be(Fs)}function mb(e){ao(Fs.current);var t=ao(_n.current),n=Tu(t,e.type);t!==n&&(Re(Os,e),Re(_n,n))}function Mm(e){Os.current===e&&(Be(_n),Be(Os))}var Le=Qr(0);function Ul(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 Hd=[];function _m(){for(var e=0;e<Hd.length;e++)Hd[e]._workInProgressVersionPrimary=null;Hd.length=0}var ul=ar.ReactCurrentDispatcher,Ud=ar.ReactCurrentBatchConfig,vo=0,He=null,Ke=null,nt=null,zl=!1,bs=!1,Ls=0,AE=0;function dt(){throw Error(L(321))}function Bm(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!pn(e[n],t[n]))return!1;return!0}function Om(e,t,n,r,a,s){if(vo=s,He=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,ul.current=e===null||e.memoizedState===null?kE:CE,e=n(r,a),bs){s=0;do{if(bs=!1,Ls=0,25<=s)throw Error(L(301));s+=1,nt=Ke=null,t.updateQueue=null,ul.current=TE,e=n(r,a)}while(bs)}if(ul.current=$l,t=Ke!==null&&Ke.next!==null,vo=0,nt=Ke=He=null,zl=!1,t)throw Error(L(300));return e}function Fm(){var e=Ls!==0;return Ls=0,e}function An(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return nt===null?He.memoizedState=nt=e:nt=nt.next=e,nt}function Vt(){if(Ke===null){var e=He.alternate;e=e!==null?e.memoizedState:null}else e=Ke.next;var t=nt===null?He.memoizedState:nt.next;if(t!==null)nt=t,Ke=e;else{if(e===null)throw Error(L(310));Ke=e,e={memoizedState:Ke.memoizedState,baseState:Ke.baseState,baseQueue:Ke.baseQueue,queue:Ke.queue,next:null},nt===null?He.memoizedState=nt=e:nt=nt.next=e}return nt}function Hs(e,t){return typeof t=="function"?t(e):t}function zd(e){var t=Vt(),n=t.queue;if(n===null)throw Error(L(311));n.lastRenderedReducer=e;var r=Ke,a=r.baseQueue,s=n.pending;if(s!==null){if(a!==null){var i=a.next;a.next=s.next,s.next=i}r.baseQueue=a=s,n.pending=null}if(a!==null){s=a.next,r=r.baseState;var l=i=null,c=null,d=s;do{var u=d.lane;if((vo&u)===u)c!==null&&(c=c.next={lane:0,action:d.action,hasEagerState:d.hasEagerState,eagerState:d.eagerState,next:null}),r=d.hasEagerState?d.eagerState:e(r,d.action);else{var m={lane:u,action:d.action,hasEagerState:d.hasEagerState,eagerState:d.eagerState,next:null};c===null?(l=c=m,i=r):c=c.next=m,He.lanes|=u,bo|=u}d=d.next}while(d!==null&&d!==s);c===null?i=r:c.next=l,pn(r,t.memoizedState)||(St=!0),t.memoizedState=r,t.baseState=i,t.baseQueue=c,n.lastRenderedState=r}if(e=n.interleaved,e!==null){a=e;do s=a.lane,He.lanes|=s,bo|=s,a=a.next;while(a!==e)}else a===null&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function $d(e){var t=Vt(),n=t.queue;if(n===null)throw Error(L(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,s=t.memoizedState;if(a!==null){n.pending=null;var i=a=a.next;do s=e(s,i.action),i=i.next;while(i!==a);pn(s,t.memoizedState)||(St=!0),t.memoizedState=s,t.baseQueue===null&&(t.baseState=s),n.lastRenderedState=s}return[s,r]}function pb(){}function fb(e,t){var n=He,r=Vt(),a=t(),s=!pn(r.memoizedState,a);if(s&&(r.memoizedState=a,St=!0),r=r.queue,Lm(xb.bind(null,n,r,e),[e]),r.getSnapshot!==t||s||nt!==null&&nt.memoizedState.tag&1){if(n.flags|=2048,Us(9,yb.bind(null,n,r,a,t),void 0,null),rt===null)throw Error(L(349));vo&30||gb(n,t,a)}return a}function gb(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=He.updateQueue,t===null?(t={lastEffect:null,stores:null},He.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function yb(e,t,n,r){t.value=n,t.getSnapshot=r,vb(t)&&bb(e)}function xb(e,t,n){return n(function(){vb(t)&&bb(e)})}function vb(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!pn(e,n)}catch{return!0}}function bb(e){var t=Zn(e,1);t!==null&&mn(t,e,1,-1)}function Zf(e){var t=An();return typeof e=="function"&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Hs,lastRenderedState:e},t.queue=e,e=e.dispatch=IE.bind(null,He,e),[t.memoizedState,e]}function Us(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},t=He.updateQueue,t===null?(t={lastEffect:null,stores:null},He.updateQueue=t,t.lastEffect=e.next=e):(n=t.lastEffect,n===null?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e)),e}function wb(){return Vt().memoizedState}function hl(e,t,n,r){var a=An();He.flags|=e,a.memoizedState=Us(1|t,n,void 0,r===void 0?null:r)}function wc(e,t,n,r){var a=Vt();r=r===void 0?null:r;var s=void 0;if(Ke!==null){var i=Ke.memoizedState;if(s=i.destroy,r!==null&&Bm(r,i.deps)){a.memoizedState=Us(t,n,s,r);return}}He.flags|=e,a.memoizedState=Us(1|t,n,s,r)}function eg(e,t){return hl(8390656,8,e,t)}function Lm(e,t){return wc(2048,8,e,t)}function jb(e,t){return wc(4,2,e,t)}function Nb(e,t){return wc(4,4,e,t)}function Ab(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 Eb(e,t,n){return n=n!=null?n.concat([e]):null,wc(4,4,Ab.bind(null,t,e),n)}function Hm(){}function Sb(e,t){var n=Vt();t=t===void 0?null:t;var r=n.memoizedState;return r!==null&&t!==null&&Bm(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ib(e,t){var n=Vt();t=t===void 0?null:t;var r=n.memoizedState;return r!==null&&t!==null&&Bm(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function kb(e,t,n){return vo&21?(pn(n,t)||(n=Dv(),He.lanes|=n,bo|=n,e.baseState=!0),t):(e.baseState&&(e.baseState=!1,St=!0),e.memoizedState=n)}function EE(e,t){var n=Ne;Ne=n!==0&&4>n?n:4,e(!0);var r=Ud.transition;Ud.transition={};try{e(!1),t()}finally{Ne=n,Ud.transition=r}}function Cb(){return Vt().memoizedState}function SE(e,t,n){var r=Mr(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Tb(e))Pb(t,n);else if(n=ub(e,t,n,r),n!==null){var a=bt();mn(n,e,r,a),Rb(n,t,r)}}function IE(e,t,n){var r=Mr(e),a={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Tb(e))Pb(t,a);else{var s=e.alternate;if(e.lanes===0&&(s===null||s.lanes===0)&&(s=t.lastRenderedReducer,s!==null))try{var i=t.lastRenderedState,l=s(i,n);if(a.hasEagerState=!0,a.eagerState=l,pn(l,i)){var c=t.interleaved;c===null?(a.next=a,Pm(t)):(a.next=c.next,c.next=a),t.interleaved=a;return}}catch{}finally{}n=ub(e,t,a,r),n!==null&&(a=bt(),mn(n,e,r,a),Rb(n,t,r))}}function Tb(e){var t=e.alternate;return e===He||t!==null&&t===He}function Pb(e,t){bs=zl=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Rb(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,ym(e,n)}}var $l={readContext:qt,useCallback:dt,useContext:dt,useEffect:dt,useImperativeHandle:dt,useInsertionEffect:dt,useLayoutEffect:dt,useMemo:dt,useReducer:dt,useRef:dt,useState:dt,useDebugValue:dt,useDeferredValue:dt,useTransition:dt,useMutableSource:dt,useSyncExternalStore:dt,useId:dt,unstable_isNewReconciler:!1},kE={readContext:qt,useCallback:function(e,t){return An().memoizedState=[e,t===void 0?null:t],e},useContext:qt,useEffect:eg,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,hl(4194308,4,Ab.bind(null,t,e),n)},useLayoutEffect:function(e,t){return hl(4194308,4,e,t)},useInsertionEffect:function(e,t){return hl(4,2,e,t)},useMemo:function(e,t){var n=An();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=An();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=SE.bind(null,He,e),[r.memoizedState,e]},useRef:function(e){var t=An();return e={current:e},t.memoizedState=e},useState:Zf,useDebugValue:Hm,useDeferredValue:function(e){return An().memoizedState=e},useTransition:function(){var e=Zf(!1),t=e[0];return e=EE.bind(null,e[1]),An().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=He,a=An();if(Fe){if(n===void 0)throw Error(L(407));n=n()}else{if(n=t(),rt===null)throw Error(L(349));vo&30||gb(r,t,n)}a.memoizedState=n;var s={value:n,getSnapshot:t};return a.queue=s,eg(xb.bind(null,r,s,e),[e]),r.flags|=2048,Us(9,yb.bind(null,r,s,n,t),void 0,null),n},useId:function(){var e=An(),t=rt.identifierPrefix;if(Fe){var n=Xn,r=Vn;n=(r&~(1<<32-hn(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Ls++,0<n&&(t+="H"+n.toString(32)),t+=":"}else n=AE++,t=":"+t+"r"+n.toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},CE={readContext:qt,useCallback:Sb,useContext:qt,useEffect:Lm,useImperativeHandle:Eb,useInsertionEffect:jb,useLayoutEffect:Nb,useMemo:Ib,useReducer:zd,useRef:wb,useState:function(){return zd(Hs)},useDebugValue:Hm,useDeferredValue:function(e){var t=Vt();return kb(t,Ke.memoizedState,e)},useTransition:function(){var e=zd(Hs)[0],t=Vt().memoizedState;return[e,t]},useMutableSource:pb,useSyncExternalStore:fb,useId:Cb,unstable_isNewReconciler:!1},TE={readContext:qt,useCallback:Sb,useContext:qt,useEffect:Lm,useImperativeHandle:Eb,useInsertionEffect:jb,useLayoutEffect:Nb,useMemo:Ib,useReducer:$d,useRef:wb,useState:function(){return $d(Hs)},useDebugValue:Hm,useDeferredValue:function(e){var t=Vt();return Ke===null?t.memoizedState=e:kb(t,Ke.memoizedState,e)},useTransition:function(){var e=$d(Hs)[0],t=Vt().memoizedState;return[e,t]},useMutableSource:pb,useSyncExternalStore:fb,useId:Cb,unstable_isNewReconciler:!1};function rn(e,t){if(e&&e.defaultProps){t=Ue({},t),e=e.defaultProps;for(var n in e)t[n]===void 0&&(t[n]=e[n]);return t}return t}function Ku(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:Ue({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var jc={isMounted:function(e){return(e=e._reactInternals)?ko(e)===e:!1},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=bt(),a=Mr(e),s=Yn(r,a);s.payload=t,n!=null&&(s.callback=n),t=Rr(e,s,a),t!==null&&(mn(t,e,a,r),dl(t,e,a))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=bt(),a=Mr(e),s=Yn(r,a);s.tag=1,s.payload=t,n!=null&&(s.callback=n),t=Rr(e,s,a),t!==null&&(mn(t,e,a,r),dl(t,e,a))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=bt(),r=Mr(e),a=Yn(n,r);a.tag=2,t!=null&&(a.callback=t),t=Rr(e,a,r),t!==null&&(mn(t,e,r,n),dl(t,e,r))}};function tg(e,t,n,r,a,s,i){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(r,s,i):t.prototype&&t.prototype.isPureReactComponent?!Ds(n,r)||!Ds(a,s):!0}function Db(e,t,n){var r=!1,a=Fr,s=t.contextType;return typeof s=="object"&&s!==null?s=qt(s):(a=kt(t)?yo:pt.current,r=t.contextTypes,s=(r=r!=null)?ya(e,a):Fr),t=new t(n,s),e.memoizedState=t.state!==null&&t.state!==void 0?t.state:null,t.updater=jc,e.stateNode=t,t._reactInternals=e,r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=s),t}function ng(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&jc.enqueueReplaceState(t,t.state,null)}function Ju(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs={},Rm(e);var s=t.contextType;typeof s=="object"&&s!==null?a.context=qt(s):(s=kt(t)?yo:pt.current,a.context=ya(e,s)),a.state=e.memoizedState,s=t.getDerivedStateFromProps,typeof s=="function"&&(Ku(e,t,s,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&&jc.enqueueReplaceState(a,a.state,null),Hl(e,n,a,r),a.state=e.memoizedState),typeof a.componentDidMount=="function"&&(e.flags|=4194308)}function wa(e,t){try{var n="",r=t;do n+=oA(r),r=r.return;while(r);var a=n}catch(s){a=` 40Error generating stack: `+s.message+` 41`+s.stack}return{value:e,source:t,stack:a,digest:null}}function Gd(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function Zu(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var PE=typeof WeakMap=="function"?WeakMap:Map;function Mb(e,t,n){n=Yn(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Ql||(Ql=!0,ch=r),Zu(e,t)},n}function _b(e,t,n){n=Yn(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var a=t.value;n.payload=function(){return r(a)},n.callback=function(){Zu(e,t)}}var s=e.stateNode;return s!==null&&typeof s.componentDidCatch=="function"&&(n.callback=function(){Zu(e,t),typeof r!="function"&&(Dr===null?Dr=new Set([this]):Dr.add(this));var i=t.stack;this.componentDidCatch(t.value,{componentStack:i!==null?i:""})}),n}function rg(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new PE;var a=new Set;r.set(t,a)}else a=r.get(t),a===void 0&&(a=new Set,r.set(t,a));a.has(n)||(a.add(n),e=QE.bind(null,e,t,n),t.then(e,e))}function og(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 ag(e,t,n,r,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=Yn(-1,1),t.tag=2,Rr(n,t,1))),n.lanes|=1),e)}var RE=ar.ReactCurrentOwner,St=!1;function xt(e,t,n,r){t.child=e===null?db(t,null,n,r):va(t,e.child,n,r)}function sg(e,t,n,r,a){n=n.render;var s=t.ref;return ta(t,a),r=Om(e,t,n,r,s,a),n=Fm(),e!==null&&!St?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,er(e,t,a)):(Fe&&n&&Em(t),t.flags|=1,xt(e,t,r,a),t.child)}function ig(e,t,n,r,a){if(e===null){var s=n.type;return typeof s=="function"&&!Vm(s)&&s.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=s,Bb(e,t,s,r,a)):(e=gl(n.type,null,r,t,t.mode,a),e.ref=t.ref,e.return=t,t.child=e)}if(s=e.child,!(e.lanes&a)){var i=s.memoizedProps;if(n=n.compare,n=n!==null?n:Ds,n(i,r)&&e.ref===t.ref)return er(e,t,a)}return t.flags|=1,e=_r(s,r),e.ref=t.ref,e.return=t,t.child=e}function Bb(e,t,n,r,a){if(e!==null){var s=e.memoizedProps;if(Ds(s,r)&&e.ref===t.ref)if(St=!1,t.pendingProps=r=s,(e.lanes&a)!==0)e.flags&131072&&(St=!0);else return t.lanes=e.lanes,er(e,t,a)}return eh(e,t,n,r,a)}function Ob(e,t,n){var r=t.pendingProps,a=r.children,s=e!==null?e.memoizedState:null;if(r.mode==="hidden")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},Re(Yo,Tt),Tt|=n;else{if(!(n&1073741824))return e=s!==null?s.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,Re(Yo,Tt),Tt|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=s!==null?s.baseLanes:n,Re(Yo,Tt),Tt|=r}else s!==null?(r=s.baseLanes|n,t.memoizedState=null):r=n,Re(Yo,Tt),Tt|=r;return xt(e,t,a,n),t.child}function Fb(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}
vendor: 8,178 bytes, line 41
41function eh(e,t,n,r,a){var s=kt(n)?yo:pt.current;return s=ya(t,s),ta(t,a),n=Om(e,t,n,r,s,a),r=Fm(),e!==null&&!St?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,er(e,t,a)):(Fe&&r&&Em(t),t.flags|=1,xt(e,t,n,a),t.child)}function lg(e,t,n,r,a){if(kt(n)){var s=!0;_l(t)}else s=!1;if(ta(t,a),t.stateNode===null)ml(e,t),Db(t,n,r),Ju(t,n,r,a),r=!0;else if(e===null){var i=t.stateNode,l=t.memoizedProps;i.props=l;var c=i.context,d=n.contextType;typeof d=="object"&&d!==null?d=qt(d):(d=kt(n)?yo:pt.current,d=ya(t,d));var u=n.getDerivedStateFromProps,m=typeof u=="function"||typeof i.getSnapshotBeforeUpdate=="function";m||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(l!==r||c!==d)&&ng(t,i,r,d),yr=!1;var p=t.memoizedState;i.state=p,Hl(t,r,i,a),c=t.memoizedState,l!==r||p!==c||It.current||yr?(typeof u=="function"&&(Ku(t,n,u,r),c=t.memoizedState),(l=yr||tg(t,n,l,r,p,c,d))?(m||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount()),typeof i.componentDidMount=="function"&&(t.flags|=4194308)):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=c),i.props=r,i.state=c,i.context=d,r=l):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,hb(e,t),l=t.memoizedProps,d=t.type===t.elementType?l:rn(t.type,l),i.props=d,m=t.pendingProps,p=i.context,c=n.contextType,typeof c=="object"&&c!==null?c=qt(c):(c=kt(n)?yo:pt.current,c=ya(t,c));var f=n.getDerivedStateFromProps;(u=typeof f=="function"||typeof i.getSnapshotBeforeUpdate=="function")||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(l!==m||p!==c)&&ng(t,i,r,c),yr=!1,p=t.memoizedState,i.state=p,Hl(t,r,i,a);var w=t.memoizedState;l!==m||p!==w||It.current||yr?(typeof f=="function"&&(Ku(t,n,f,r),w=t.memoizedState),(d=yr||tg(t,n,d,r,p,w,c)||!1)?(u||typeof i.UNSAFE_componentWillUpdate!="function"&&typeof i.componentWillUpdate!="function"||(typeof i.componentWillUpdate=="function"&&i.componentWillUpdate(r,w,c),typeof i.UNSAFE_componentWillUpdate=="function"&&i.UNSAFE_componentWillUpdate(r,w,c)),typeof i.componentDidUpdate=="function"&&(t.flags|=4),typeof i.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof i.componentDidUpdate!="function"||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=w),i.props=r,i.state=w,i.context=c,r=d):(typeof i.componentDidUpdate!="function"||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),r=!1)}return th(e,t,n,r,s,a)}function th(e,t,n,r,a,s){Fb(e,t);var i=(t.flags&128)!==0;if(!r&&!i)return a&&qf(t,n,!1),er(e,t,s);r=t.stateNode,RE.current=t;var l=i&&typeof n.getDerivedStateFromError!="function"?null:r.render();return t.flags|=1,e!==null&&i?(t.child=va(t,e.child,null,s),t.child=va(t,null,l,s)):xt(e,t,l,s),t.memoizedState=r.state,a&&qf(t,n,!0),t.child}function Lb(e){var t=e.stateNode;t.pendingContext?Wf(e,t.pendingContext,t.pendingContext!==t.context):t.context&&Wf(e,t.context,!1),Dm(e,t.containerInfo)}function cg(e,t,n,r,a){return xa(),Im(a),t.flags|=256,xt(e,t,n,r),t.child}var nh={dehydrated:null,treeContext:null,retryLane:0};function rh(e){return{baseLanes:e,cachePool:null,transitions:null}}function Hb(e,t,n){var r=t.pendingProps,a=Le.current,s=!1,i=(t.flags&128)!==0,l;if((l=i)||(l=e!==null&&e.memoizedState===null?!1:(a&2)!==0),l?(s=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(a|=1),Re(Le,a&1),e===null)return Xu(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):(i=r.children,e=r.fallback,s?(r=t.mode,s=t.child,i={mode:"hidden",children:i},!(r&1)&&s!==null?(s.childLanes=0,s.pendingProps=i):s=Ec(i,r,0,null),e=fo(e,r,n,null),s.return=t,e.return=t,s.sibling=e,t.child=s,t.child.memoizedState=rh(n),t.memoizedState=nh,e):Um(t,i));if(a=e.memoizedState,a!==null&&(l=a.dehydrated,l!==null))return DE(e,t,i,r,l,a,n);if(s){s=r.fallback,i=t.mode,a=e.child,l=a.sibling;var c={mode:"hidden",children:r.children};return!(i&1)&&t.child!==a?(r=t.child,r.childLanes=0,r.pendingProps=c,t.deletions=null):(r=_r(a,c),r.subtreeFlags=a.subtreeFlags&14680064),l!==null?s=_r(l,s):(s=fo(s,i,n,null),s.flags|=2),s.return=t,r.return=t,r.sibling=s,t.child=r,r=s,s=t.child,i=e.child.memoizedState,i=i===null?rh(n):{baseLanes:i.baseLanes|n,cachePool:null,transitions:i.transitions},s.memoizedState=i,s.childLanes=e.childLanes&~n,t.memoizedState=nh,r}return s=e.child,e=s.sibling,r=_r(s,{mode:"visible",children:r.children}),!(t.mode&1)&&(r.lanes=n),r.return=t,r.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=r,t.memoizedState=null,r}function Um(e,t){return t=Ec({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function _i(e,t,n,r){return r!==null&&Im(r),va(t,e.child,null,n),e=Um(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function DE(e,t,n,r,a,s,i){if(n)return t.flags&256?(t.flags&=-257,r=Gd(Error(L(422))),_i(e,t,i,r)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(s=r.fallback,a=t.mode,r=Ec({mode:"visible",children:r.children},a,0,null),s=fo(s,a,i,null),s.flags|=2,r.return=t,s.return=t,r.sibling=s,t.child=r,t.mode&1&&va(t,e.child,null,i),t.child.memoizedState=rh(i),t.memoizedState=nh,s);if(!(t.mode&1))return _i(e,t,i,null);if(a.data==="$!"){if(r=a.nextSibling&&a.nextSibling.dataset,r)var l=r.dgst;return r=l,s=Error(L(419)),r=Gd(s,r,void 0),_i(e,t,i,r)}if(l=(i&e.childLanes)!==0,St||l){if(r=rt,r!==null){switch(i&-i){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&(r.suspendedLanes|i)?0:a,a!==0&&a!==s.retryLane&&(s.retryLane=a,Zn(e,a),mn(r,e,a,-1))}return qm(),r=Gd(Error(L(421))),_i(e,t,i,r)}return a.data==="$?"?(t.flags|=128,t.child=e.child,t=WE.bind(null,e),a._reactRetry=t,null):(e=s.treeContext,Rt=Pr(a.nextSibling),Dt=t,Fe=!0,cn=null,e!==null&&($t[Gt++]=Vn,$t[Gt++]=Xn,$t[Gt++]=xo,Vn=e.id,Xn=e.overflow,xo=t),t=Um(t,r.children),t.flags|=4096,t)}function dg(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Yu(e.return,t,n)}function Qd(e,t,n,r,a){var s=e.memoizedState;s===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a}:(s.isBackwards=t,s.rendering=null,s.renderingStartTime=0,s.last=r,s.tail=n,s.tailMode=a)}function Ub(e,t,n){var r=t.pendingProps,a=r.revealOrder,s=r.tail;if(xt(e,t,r.children,n),r=Le.current,r&2)r=r&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&&dg(e,n,t);else if(e.tag===19)dg(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}r&=1}if(Re(Le,r),!(t.mode&1))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;n!==null;)e=n.alternate,e!==null&&Ul(e)===null&&(a=n),n=n.sibling;n=a,n===null?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),Qd(t,!1,a,n,s);break;case"backwards":for(n=null,a=t.child,t.child=null;a!==null;){if(e=a.alternate,e!==null&&Ul(e)===null){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}Qd(t,!0,n,null,s);break;case"together":Qd(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function ml(e,t){!(t.mode&1)&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function er(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),bo|=t.lanes,!(n&t.childLanes))return null;if(e!==null&&t.child!==e.child)throw Error(L(153));
vendor: 5,451 bytes, line 41
41if(t.child!==null){for(e=t.child,n=_r(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=_r(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function ME(e,t,n){switch(t.tag){case 3:Lb(t),xa();break;case 5:mb(t);break;case 1:kt(t.type)&&_l(t);break;case 4:Dm(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,a=t.memoizedProps.value;Re(Fl,r._currentValue),r._currentValue=a;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated!==null?(Re(Le,Le.current&1),t.flags|=128,null):n&t.child.childLanes?Hb(e,t,n):(Re(Le,Le.current&1),e=er(e,t,n),e!==null?e.sibling:null);Re(Le,Le.current&1);break;case 19:if(r=(n&t.childLanes)!==0,e.flags&128){if(r)return Ub(e,t,n);t.flags|=128}if(a=t.memoizedState,a!==null&&(a.rendering=null,a.tail=null,a.lastEffect=null),Re(Le,Le.current),r)break;return null;case 22:case 23:return t.lanes=0,Ob(e,t,n)}return er(e,t,n)}var zb,oh,$b,Gb;zb=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}};oh=function(){};$b=function(e,t,n,r){var a=e.memoizedProps;if(a!==r){e=t.stateNode,ao(_n.current);var s=null;switch(n){case"input":a=Su(e,a),r=Su(e,r),s=[];break;case"select":a=Ue({},a,{value:void 0}),r=Ue({},r,{value:void 0}),s=[];break;case"textarea":a=Cu(e,a),r=Cu(e,r),s=[];break;default:typeof a.onClick!="function"&&typeof r.onClick=="function"&&(e.onclick=Dl)}Pu(n,r);var i;n=null;for(d in a)if(!r.hasOwnProperty(d)&&a.hasOwnProperty(d)&&a[d]!=null)if(d==="style"){var l=a[d];for(i in l)l.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else d!=="dangerouslySetInnerHTML"&&d!=="children"&&d!=="suppressContentEditableWarning"&&d!=="suppressHydrationWarning"&&d!=="autoFocus"&&(Ss.hasOwnProperty(d)?s||(s=[]):(s=s||[]).push(d,null));for(d in r){var c=r[d];if(l=a!=null?a[d]:void 0,r.hasOwnProperty(d)&&c!==l&&(c!=null||l!=null))if(d==="style")if(l){for(i in l)!l.hasOwnProperty(i)||c&&c.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in c)c.hasOwnProperty(i)&&l[i]!==c[i]&&(n||(n={}),n[i]=c[i])}else n||(s||(s=[]),s.push(d,n)),n=c;else d==="dangerouslySetInnerHTML"?(c=c?c.__html:void 0,l=l?l.__html:void 0,c!=null&&l!==c&&(s=s||[]).push(d,c)):d==="children"?typeof c!="string"&&typeof c!="number"||(s=s||[]).push(d,""+c):d!=="suppressContentEditableWarning"&&d!=="suppressHydrationWarning"&&(Ss.hasOwnProperty(d)?(c!=null&&d==="onScroll"&&Me("scroll",e),s||l===c||(s=[])):(s=s||[]).push(d,c))}n&&(s=s||[]).push("style",n);var d=s;(t.updateQueue=d)&&(t.flags|=4)}};Gb=function(e,t,n,r){n!==r&&(t.flags|=4)};function Ja(e,t){if(!Fe)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 r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ut(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var a=e.child;a!==null;)n|=a.lanes|a.childLanes,r|=a.subtreeFlags&14680064,r|=a.flags&14680064,a.return=e,a=a.sibling;else for(a=e.child;a!==null;)n|=a.lanes|a.childLanes,r|=a.subtreeFlags,r|=a.flags,a.return=e,a=a.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function _E(e,t,n){var r=t.pendingProps;switch(Sm(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return ut(t),null;case 1:return kt(t.type)&&Ml(),ut(t),null;case 3:return r=t.stateNode,ba(),Be(It),Be(pt),_m(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(e===null||e.child===null)&&(Di(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,cn!==null&&(hh(cn),cn=null))),oh(e,t),ut(t),null;case 5:Mm(t);var a=ao(Fs.current);if(n=t.type,e!==null&&t.stateNode!=null)$b(e,t,n,r,a),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(t.stateNode===null)throw Error(L(166));return ut(t),null}if(e=ao(_n.current),Di(t)){r=t.stateNode,n=t.type;var s=t.memoizedProps;switch(r[Tn]=t,r[Bs]=s,e=(t.mode&1)!==0,n){case"dialog":Me("cancel",r),Me("close",r);break;case"iframe":case"object":case"embed":Me("load",r);break;case"video":case"audio":for(a=0;a<us.length;a++)Me(us[a],r);break;case"source":Me("error",r);break;case"img":case"image":case"link":Me("error",r),Me("load",r);break;case"details":Me("toggle",r);break;case"input":vf(r,s),Me("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!s.multiple},Me("invalid",r);break;case"textarea":wf(r,s),Me("invalid",r)}Pu(n,s),a=null;for(var i in s)if(s.hasOwnProperty(i)){var l=s[i];i==="children"?typeof l=="string"?r.textContent!==l&&(s.suppressHydrationWarning!==!0&&Ri(r.textContent,l,e),a=["children",l]):typeof l=="number"&&r.textContent!==""+l&&(s.suppressHydrationWarning!==!0&&Ri(r.textContent,l,e),a=["children",""+l]):Ss.hasOwnProperty(i)&&l!=null&&i==="onScroll"&&Me("scroll",r)}switch(n){case"input":Ai(r),bf(r,s,!0);break;case"textarea":Ai(r),jf(r);break;case"select":case"option":break;default:typeof s.onClick=="function"&&(r.onclick=Dl)}r=a,t.updateQueue=r,r!==null&&(t.flags|=4)}else{i=a.nodeType===9?a:a.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=xv(n)),e==="http://www.w3.org/1999/xhtml"?n==="script"?(e=i.createElement("div"),e.innerHTML="<script><\/script>
41",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=i.createElement(n,{is:r.is}):(e=i.createElement(n),n==="select"&&(i=e,r.multiple?i.multiple=!0:r.size&&(i.size=r.size))):e=i.createElementNS(e,n),e[Tn]=t,e[Bs]=r,zb(e,t,!1,!1),t.stateNode=e;e:{switch(i=Ru(n,r),n){case"dialog":Me("cancel",e),Me("close",e),a=r;break;case"iframe":case"object":case"embed":Me("load",e),a=r;break;case"video":case"audio":for(a=0;a<us.length;a++)Me(us[a],e);a=r;break;case"source":Me("error",e),a=r;break;case"img":case"image":case"link":Me("error",e),Me("load",e),a=r;break;case"details":Me("toggle",e),a=r;break;case"input":vf(e,r),a=Su(e,r),Me("invalid",e);break;case"option":a=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},a=Ue({},r,{value:void 0}),Me("invalid",e);break;case"textarea":wf(e,r),a=Cu(e,r),Me("invalid",e);break;default:a=r}Pu(n,a),l=a;for(s in l)if(l.hasOwnProperty(s)){var c=l[s];s==="style"?wv(e,c):s==="dangerouslySetInnerHTML"?(c=c?c.__html:void 0,c!=null&&vv(e,c)):s==="children"?typeof c=="string"?(n!=="textarea"||c!=="")&&Is(e,c):typeof c=="number"&&Is(e,""+c):s!=="suppressContentEditableWarning"&&s!=="suppressHydrationWarning"&&s!=="autoFocus"&&(Ss.hasOwnProperty(s)?c!=null&&s==="onScroll"&&Me("scroll",e):c!=null&&um(e,s,c,i))}switch(n){case"input":Ai(e),bf(e,r,!1);break;case"textarea":Ai(e),jf(e);break;case"option":r.value!=null&&e.setAttribute("value",""+Or(r.value));break;case"select":e.multiple=!!r.multiple,s=r.value,s!=null?Ko(e,!!r.multiple,s,!1):r.defaultValue!=null&&Ko(e,!!r.multiple,r.defaultValue,!0);break;default:typeof a.onClick=="function"&&(e.onclick=Dl)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return ut(t),null;case 6:if(e&&t.stateNode!=null)Gb(e,t,e.memoizedProps,r);else{if(typeof r!="string"&&t.stateNode===null)throw Error(L(166));if(n=ao(Fs.current),ao(_n.current),Di(t)){if(r=t.stateNode,n=t.memoizedProps,r[Tn]=t,(s=r.nodeValue!==n)&&(e=Dt,e!==null))switch(e.tag){case 3:Ri(r.nodeValue,n,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&Ri(r.nodeValue,n,(e.mode&1)!==0)}s&&(t.flags|=4)}else r=(n.nodeType===9?n:n.ownerDocument).createTextNode(r),r[Tn]=t,t.stateNode=r}return ut(t),null;case 13:if(Be(Le),r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(Fe&&Rt!==null&&t.mode&1&&!(t.flags&128))lb(),xa(),t.flags|=98560,s=!1;else if(s=Di(t),r!==null&&r.dehydrated!==null){if(e===null){if(!s)throw Error(L(318));if(s=t.memoizedState,s=s!==null?s.dehydrated:null,!s)throw Error(L(317));s[Tn]=t}else xa(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;ut(t),s=!1}else cn!==null&&(hh(cn),cn=null),s=!0;if(!s)return t.flags&65536?t:null}return t.flags&128?(t.lanes=n,t):(r=r!==null,r!==(e!==null&&e.memoizedState!==null)&&r&&(t.child.flags|=8192,t.mode&1&&(e===null||Le.current&1?Je===0&&(Je=3):qm())),t.updateQueue!==null&&(t.flags|=4),ut(t),null);case 4:return ba(),oh(e,t),e===null&&Ms(t.stateNode.containerInfo),ut(t),null;case 10:return Tm(t.type._context),ut(t),null;case 17:return kt(t.type)&&Ml(),ut(t),null;case 19:if(Be(Le),s=t.memoizedState,s===null)return ut(t),null;if(r=(t.flags&128)!==0,i=s.rendering,i===null)if(r)Ja(s,!1);else{if(Je!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(i=Ul(e),i!==null){for(t.flags|=128,Ja(s,!1),r=i.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;n!==null;)s=n,e=r,s.flags&=14680066,i=s.alternate,i===null?(s.childLanes=0,s.lanes=e,s.child=null,s.subtreeFlags=0,s.memoizedProps=null,s.memoizedState=null,s.updateQueue=null,s.dependencies=null,s.stateNode=null):(s.childLanes=i.childLanes,s.lanes=i.lanes,s.child=i.child,s.subtreeFlags=0,s.deletions=null,s.memoizedProps=i.memoizedProps,s.memoizedState=i.memoizedState,s.updateQueue=i.updateQueue,s.type=i.type,e=i.dependencies,s.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return Re(Le,Le.current&1|2),t.child}e=e.sibling}s.tail!==null&&Qe()>ja&&(t.flags|=128,r=!0,Ja(s,!1),t.lanes=4194304)}else{if(!r)if(e=Ul(i),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Ja(s,!0),s.tail===null&&s.tailMode==="hidden"&&!i.alternate&&!Fe)return ut(t),null}else 2*Qe()-s.renderingStartTime>ja&&n!==1073741824&&(t.flags|=128,r=!0,Ja(s,!1),t.lanes=4194304);s.isBackwards?(i.sibling=t.child,t.child=i):(n=s.last,n!==null?n.sibling=i:t.child=i,s.last=i)}return s.tail!==null?(t=s.tail,s.rendering=t,s.tail=t.sibling,s.renderingStartTime=Qe(),t.sibling=null,n=Le.current,Re(Le,r?n&1|2:n&1),t):(ut(t),null);case 22:case 23:return Wm(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?Tt&1073741824&&(ut(t),t.subtreeFlags&6&&(t.flags|=8192)):ut(t),null;case 24:return null;case 25:return null}throw Error(L(156,t.tag))}function BE(e,t){switch(Sm(t),t.tag){case 1:return kt(t.type)&&Ml(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;
vendor: 23,144 bytes, line 41
41case 3:return ba(),Be(It),Be(pt),_m(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Mm(t),null;case 13:if(Be(Le),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(L(340));xa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Be(Le),null;case 4:return ba(),null;case 10:return Tm(t.type._context),null;case 22:case 23:return Wm(),null;case 24:return null;default:return null}}var Bi=!1,mt=!1,OE=typeof WeakSet=="function"?WeakSet:Set,K=null;function Xo(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){Ge(e,t,r)}else n.current=null}function ah(e,t,n){try{n()}catch(r){Ge(e,t,r)}}var ug=!1;function FE(e,t){if(zu=Tl,e=Xv(),Am(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var a=r.anchorOffset,s=r.focusNode;r=r.focusOffset;try{n.nodeType,s.nodeType}catch{n=null;break e}var i=0,l=-1,c=-1,d=0,u=0,m=e,p=null;t:for(;;){for(var f;m!==n||a!==0&&m.nodeType!==3||(l=i+a),m!==s||r!==0&&m.nodeType!==3||(c=i+r),m.nodeType===3&&(i+=m.nodeValue.length),(f=m.firstChild)!==null;)p=m,m=f;for(;;){if(m===e)break t;if(p===n&&++d===a&&(l=i),p===s&&++u===r&&(c=i),(f=m.nextSibling)!==null)break;m=p,p=m.parentNode}m=f}n=l===-1||c===-1?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for($u={focusedElem:e,selectionRange:n},Tl=!1,K=t;K!==null;)if(t=K,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,K=e;else for(;K!==null;){t=K;try{var w=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(w!==null){var y=w.memoizedProps,v=w.memoizedState,x=t.stateNode,g=x.getSnapshotBeforeUpdate(t.elementType===t.type?y:rn(t.type,y),v);x.__reactInternalSnapshotBeforeUpdate=g}break;case 3:var b=t.stateNode.containerInfo;b.nodeType===1?b.textContent="":b.nodeType===9&&b.documentElement&&b.removeChild(b.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(L(163))}}catch(j){Ge(t,t.return,j)}if(e=t.sibling,e!==null){e.return=t.return,K=e;break}K=t.return}return w=ug,ug=!1,w}function ws(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var a=r=r.next;do{if((a.tag&e)===e){var s=a.destroy;a.destroy=void 0,s!==void 0&&ah(t,n,s)}a=a.next}while(a!==r)}}function Nc(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 r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function sh(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 Qb(e){var t=e.alternate;t!==null&&(e.alternate=null,Qb(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Tn],delete t[Bs],delete t[Wu],delete t[bE],delete t[wE])),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 Wb(e){return e.tag===5||e.tag===3||e.tag===4}function hg(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Wb(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 ih(e,t,n){var r=e.tag;if(r===5||r===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=Dl));else if(r!==4&&(e=e.child,e!==null))for(ih(e,t,n),e=e.sibling;e!==null;)ih(e,t,n),e=e.sibling}function lh(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(lh(e,t,n),e=e.sibling;e!==null;)lh(e,t,n),e=e.sibling}var st=null,ln=!1;function ur(e,t,n){for(n=n.child;n!==null;)qb(e,t,n),n=n.sibling}function qb(e,t,n){if(Mn&&typeof Mn.onCommitFiberUnmount=="function")try{Mn.onCommitFiberUnmount(fc,n)}catch{}switch(n.tag){case 5:mt||Xo(n,t);case 6:var r=st,a=ln;st=null,ur(e,t,n),st=r,ln=a,st!==null&&(ln?(e=st,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):st.removeChild(n.stateNode));break;case 18:st!==null&&(ln?(e=st,n=n.stateNode,e.nodeType===8?Fd(e.parentNode,n):e.nodeType===1&&Fd(e,n),Ps(e)):Fd(st,n.stateNode));break;case 4:r=st,a=ln,st=n.stateNode.containerInfo,ln=!0,ur(e,t,n),st=r,ln=a;break;case 0:case 11:case 14:case 15:if(!mt&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){a=r=r.next;do{var s=a,i=s.destroy;s=s.tag,i!==void 0&&(s&2||s&4)&&ah(n,t,i),a=a.next}while(a!==r)}ur(e,t,n);break;case 1:if(!mt&&(Xo(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){Ge(n,t,l)}ur(e,t,n);break;case 21:ur(e,t,n);break;case 22:n.mode&1?(mt=(r=mt)||n.memoizedState!==null,ur(e,t,n),mt=r):ur(e,t,n);break;default:ur(e,t,n)}}function mg(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new OE),t.forEach(function(r){var a=qE.bind(null,e,r);n.has(r)||(n.add(r),r.then(a,a))})}}function en(e,t){var n=t.deletions;if(n!==null)for(var r=0;r<n.length;r++){var a=n[r];try{var s=e,i=t,l=i;e:for(;l!==null;){switch(l.tag){case 5:st=l.stateNode,ln=!1;break e;case 3:st=l.stateNode.containerInfo,ln=!0;break e;case 4:st=l.stateNode.containerInfo,ln=!0;break e}l=l.return}if(st===null)throw Error(L(160));qb(s,i,a),st=null,ln=!1;var c=a.alternate;c!==null&&(c.return=null),a.return=null}catch(d){Ge(a,t,d)}}if(t.subtreeFlags&12854)for(t=t.child;t!==null;)Vb(t,e),t=t.sibling}function Vb(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(en(t,e),jn(e),r&4){try{ws(3,e,e.return),Nc(3,e)}catch(y){Ge(e,e.return,y)}try{ws(5,e,e.return)}catch(y){Ge(e,e.return,y)}}break;case 1:en(t,e),jn(e),r&512&&n!==null&&Xo(n,n.return);break;case 5:if(en(t,e),jn(e),r&512&&n!==null&&Xo(n,n.return),e.flags&32){var a=e.stateNode;try{Is(a,"")}catch(y){Ge(e,e.return,y)}}if(r&4&&(a=e.stateNode,a!=null)){var s=e.memoizedProps,i=n!==null?n.memoizedProps:s,l=e.type,c=e.updateQueue;if(e.updateQueue=null,c!==null)try{l==="input"&&s.type==="radio"&&s.name!=null&&gv(a,s),Ru(l,i);var d=Ru(l,s);for(i=0;i<c.length;i+=2){var u=c[i],m=c[i+1];u==="style"?wv(a,m):u==="dangerouslySetInnerHTML"?vv(a,m):u==="children"?Is(a,m):um(a,u,m,d)}switch(l){case"input":Iu(a,s);break;case"textarea":yv(a,s);break;case"select":var p=a._wrapperState.wasMultiple;a._wrapperState.wasMultiple=!!s.multiple;var f=s.value;f!=null?Ko(a,!!s.multiple,f,!1):p!==!!s.multiple&&(s.defaultValue!=null?Ko(a,!!s.multiple,s.defaultValue,!0):Ko(a,!!s.multiple,s.multiple?[]:"",!1))}a[Bs]=s}catch(y){Ge(e,e.return,y)}}break;case 6:if(en(t,e),jn(e),r&4){if(e.stateNode===null)throw Error(L(162));a=e.stateNode,s=e.memoizedProps;try{a.nodeValue=s}catch(y){Ge(e,e.return,y)}}break;case 3:if(en(t,e),jn(e),r&4&&n!==null&&n.memoizedState.isDehydrated)try{Ps(t.containerInfo)}catch(y){Ge(e,e.return,y)}break;case 4:en(t,e),jn(e);break;case 13:en(t,e),jn(e),a=e.child,a.flags&8192&&(s=a.memoizedState!==null,a.stateNode.isHidden=s,!s||a.alternate!==null&&a.alternate.memoizedState!==null||(Gm=Qe())),r&4&&mg(e);break;case 22:if(u=n!==null&&n.memoizedState!==null,e.mode&1?(mt=(d=mt)||u,en(t,e),mt=d):en(t,e),jn(e),r&8192){if(d=e.memoizedState!==null,(e.stateNode.isHidden=d)&&!u&&e.mode&1)for(K=e,u=e.child;u!==null;){for(m=K=u;K!==null;){switch(p=K,f=p.child,p.tag){case 0:case 11:case 14:case 15:ws(4,p,p.return);break;case 1:Xo(p,p.return);var w=p.stateNode;if(typeof w.componentWillUnmount=="function"){r=p,n=p.return;try{t=r,w.props=t.memoizedProps,w.state=t.memoizedState,w.componentWillUnmount()}catch(y){Ge(r,n,y)}}break;case 5:Xo(p,p.return);break;case 22:if(p.memoizedState!==null){fg(m);continue}}f!==null?(f.return=p,K=f):fg(m)}u=u.sibling}e:for(u=null,m=e;;){if(m.tag===5){if(u===null){u=m;try{a=m.stateNode,d?(s=a.style,typeof s.setProperty=="function"?s.setProperty("display","none","important"):s.display="none"):(l=m.stateNode,c=m.memoizedProps.style,i=c!=null&&c.hasOwnProperty("display")?c.display:null,l.style.display=bv("display",i))}catch(y){Ge(e,e.return,y)}}}else if(m.tag===6){if(u===null)try{m.stateNode.nodeValue=d?"":m.memoizedProps}catch(y){Ge(e,e.return,y)}}else if((m.tag!==22&&m.tag!==23||m.memoizedState===null||m===e)&&m.child!==null){m.child.return=m,m=m.child;continue}if(m===e)break e;for(;m.sibling===null;){if(m.return===null||m.return===e)break e;u===m&&(u=null),m=m.return}u===m&&(u=null),m.sibling.return=m.return,m=m.sibling}}break;case 19:en(t,e),jn(e),r&4&&mg(e);break;case 21:break;default:en(t,e),jn(e)}}function jn(e){var t=e.flags;if(t&2){try{e:{for(var n=e.return;n!==null;){if(Wb(n)){var r=n;break e}n=n.return}throw Error(L(160))}switch(r.tag){case 5:var a=r.stateNode;r.flags&32&&(Is(a,""),r.flags&=-33);var s=hg(e);lh(e,s,a);break;case 3:case 4:var i=r.stateNode.containerInfo,l=hg(e);ih(e,l,i);break;default:throw Error(L(161))}}catch(c){Ge(e,e.return,c)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function LE(e,t,n){K=e,Xb(e)}function Xb(e,t,n){for(var r=(e.mode&1)!==0;K!==null;){var a=K,s=a.child;if(a.tag===22&&r){var i=a.memoizedState!==null||Bi;if(!i){var l=a.alternate,c=l!==null&&l.memoizedState!==null||mt;l=Bi;var d=mt;if(Bi=i,(mt=c)&&!d)for(K=a;K!==null;)i=K,c=i.child,i.tag===22&&i.memoizedState!==null?gg(a):c!==null?(c.return=i,K=c):gg(a);for(;s!==null;)K=s,Xb(s),s=s.sibling;K=a,Bi=l,mt=d}pg(e)}else a.subtreeFlags&8772&&s!==null?(s.return=a,K=s):pg(e)}}function pg(e){for(;K!==null;){var t=K;if(t.flags&8772){var n=t.alternate;try{if(t.flags&8772)switch(t.tag){case 0:case 11:case 15:mt||Nc(5,t);break;case 1:var r=t.stateNode;if(t.flags&4&&!mt)if(n===null)r.componentDidMount();else{var a=t.elementType===t.type?n.memoizedProps:rn(t.type,n.memoizedProps);r.componentDidUpdate(a,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var s=t.updateQueue;s!==null&&Jf(t,s,r);break;case 3:var i=t.updateQueue;if(i!==null){if(n=null,t.child!==null)switch(t.child.tag){case 5:n=t.child.stateNode;break;case 1:n=t.child.stateNode}Jf(t,i,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 m=u.dehydrated;m!==null&&Ps(m)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(L(163))}mt||t.flags&512&&sh(t)}catch(p){Ge(t,t.return,p)}}if(t===e){K=null;break}if(n=t.sibling,n!==null){n.return=t.return,K=n;break}K=t.return}}function fg(e){for(;K!==null;){var t=K;if(t===e){K=null;break}var n=t.sibling;if(n!==null){n.return=t.return,K=n;break}K=t.return}}function gg(e){for(;K!==null;){var t=K;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{Nc(4,t)}catch(c){Ge(t,n,c)}break;case 1:var r=t.stateNode;if(typeof r.componentDidMount=="function"){var a=t.return;try{r.componentDidMount()}catch(c){Ge(t,a,c)}}var s=t.return;try{sh(t)}catch(c){Ge(t,s,c)}break;case 5:var i=t.return;try{sh(t)}catch(c){Ge(t,i,c)}}}catch(c){Ge(t,t.return,c)}if(t===e){K=null;break}var l=t.sibling;if(l!==null){l.return=t.return,K=l;break}K=t.return}}var HE=Math.ceil,Gl=ar.ReactCurrentDispatcher,zm=ar.ReactCurrentOwner,Wt=ar.ReactCurrentBatchConfig,be=0,rt=null,Xe=null,it=0,Tt=0,Yo=Qr(0),Je=0,zs=null,bo=0,Ac=0,$m=0,js=null,Et=null,Gm=0,ja=1/0,Qn=null,Ql=!1,ch=null,Dr=null,Oi=!1,Sr=null,Wl=0,Ns=0,dh=null,pl=-1,fl=0;function bt(){return be&6?Qe():pl!==-1?pl:pl=Qe()}function Mr(e){return e.mode&1?be&2&&it!==0?it&-it:NE.transition!==null?(fl===0&&(fl=Dv()),fl):(e=Ne,e!==0||(e=window.event,e=e===void 0?16:Hv(e.type)),e):1}function mn(e,t,n,r){if(50<Ns)throw Ns=0,dh=null,Error(L(185));ei(e,n,r),(!(be&2)||e!==rt)&&(e===rt&&(!(be&2)&&(Ac|=n),Je===4&&vr(e,it)),Ct(e,r),n===1&&be===0&&!(t.mode&1)&&(ja=Qe()+500,bc&&Wr()))}function Ct(e,t){var n=e.callbackNode;NA(e,t);var r=Cl(e,e===rt?it:0);if(r===0)n!==null&&Ef(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(n!=null&&Ef(n),t===1)e.tag===0?jE(yg.bind(null,e)):ab(yg.bind(null,e)),xE(function(){!(be&6)&&Wr()}),n=null;else{switch(Mv(r)){case 1:n=gm;break;case 4:n=Pv;break;case 16:n=kl;break;case 536870912:n=Rv;break;default:n=kl}n=rw(n,Yb.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function Yb(e,t){if(pl=-1,fl=0,be&6)throw Error(L(327));var n=e.callbackNode;if(na()&&e.callbackNode!==n)return null;var r=Cl(e,e===rt?it:0);if(r===0)return null;if(r&30||r&e.expiredLanes||t)t=ql(e,r);else{t=r;var a=be;be|=2;var s=Jb();(rt!==e||it!==t)&&(Qn=null,ja=Qe()+500,po(e,t));do try{$E();break}catch(l){Kb(e,l)}while(!0);Cm(),Gl.current=s,be=a,Xe!==null?t=0:(rt=null,it=0,t=Je)}if(t!==0){if(t===2&&(a=Ou(e),a!==0&&(r=a,t=uh(e,a))),t===1)throw n=zs,po(e,0),vr(e,r),Ct(e,Qe()),n;if(t===6)vr(e,r);else{if(a=e.current.alternate,!(r&30)&&!UE(a)&&(t=ql(e,r),t===2&&(s=Ou(e),s!==0&&(r=s,t=uh(e,s))),t===1))throw n=zs,po(e,0),vr(e,r),Ct(e,Qe()),n;switch(e.finishedWork=a,e.finishedLanes=r,t){case 0:case 1:throw Error(L(345));case 2:no(e,Et,Qn);break;case 3:if(vr(e,r),(r&130023424)===r&&(t=Gm+500-Qe(),10<t)){if(Cl(e,0)!==0)break;if(a=e.suspendedLanes,(a&r)!==r){bt(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=Qu(no.bind(null,e,Et,Qn),t);break}no(e,Et,Qn);break;case 4:if(vr(e,r),(r&4194240)===r)break;for(t=e.eventTimes,a=-1;0<r;){var i=31-hn(r);s=1<<i,i=t[i],i>a&&(a=i),r&=~s}if(r=a,r=Qe()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*HE(r/1960))-r,10<r){e.timeoutHandle=Qu(no.bind(null,e,Et,Qn),r);break}no(e,Et,Qn);break;case 5:no(e,Et,Qn);break;default:throw Error(L(329))}}}return Ct(e,Qe()),e.callbackNode===n?Yb.bind(null,e):null}function uh(e,t){var n=js;return e.current.memoizedState.isDehydrated&&(po(e,t).flags|=256),e=ql(e,t),e!==2&&(t=Et,Et=n,t!==null&&hh(t)),e}function hh(e){Et===null?Et=e:Et.push.apply(Et,e)}function UE(e){for(var t=e;;){if(t.flags&16384){var n=t.updateQueue;if(n!==null&&(n=n.stores,n!==null))for(var r=0;r<n.length;r++){var a=n[r],s=a.getSnapshot;a=a.value;try{if(!pn(s(),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 vr(e,t){for(t&=~$m,t&=~Ac,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-hn(t),r=1<<n;e[n]=-1,t&=~r}}function yg(e){if(be&6)throw Error(L(327));na();var t=Cl(e,0);if(!(t&1))return Ct(e,Qe()),null;var n=ql(e,t);if(e.tag!==0&&n===2){var r=Ou(e);r!==0&&(t=r,n=uh(e,r))}if(n===1)throw n=zs,po(e,0),vr(e,t),Ct(e,Qe()),n;if(n===6)throw Error(L(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,no(e,Et,Qn),Ct(e,Qe()),null}function Qm(e,t){var n=be;be|=1;try{return e(t)}finally{be=n,be===0&&(ja=Qe()+500,bc&&Wr())}}function wo(e){Sr!==null&&Sr.tag===0&&!(be&6)&&na();var t=be;be|=1;var n=Wt.transition,r=Ne;try{if(Wt.transition=null,Ne=1,e)return e()}finally{Ne=r,Wt.transition=n,be=t,!(be&6)&&Wr()}}function Wm(){Tt=Yo.current,Be(Yo)}function po(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(n!==-1&&(e.timeoutHandle=-1,yE(n)),Xe!==null)for(n=Xe.return;n!==null;){var r=n;switch(Sm(r),r.tag){case 1:r=r.type.childContextTypes,r!=null&&Ml();break;case 3:ba(),Be(It),Be(pt),_m();break;case 5:Mm(r);break;case 4:ba();break;case 13:Be(Le);break;case 19:Be(Le);break;case 10:Tm(r.type._context);break;case 22:case 23:Wm()}n=n.return}if(rt=e,Xe=e=_r(e.current,null),it=Tt=t,Je=0,zs=null,$m=Ac=bo=0,Et=js=null,oo!==null){for(t=0;t<oo.length;t++)if(n=oo[t],r=n.interleaved,r!==null){n.interleaved=null;var a=r.next,s=n.pending;if(s!==null){var i=s.next;s.next=a,r.next=i}n.pending=r}oo=null}return e}function Kb(e,t){do{var n=Xe;try{if(Cm(),ul.current=$l,zl){for(var r=He.memoizedState;r!==null;){var a=r.queue;a!==null&&(a.pending=null),r=r.next}zl=!1}if(vo=0,nt=Ke=He=null,bs=!1,Ls=0,zm.current=null,n===null||n.return===null){Je=1,zs=t,Xe=null;break}e:{var s=e,i=n.return,l=n,c=t;if(t=it,l.flags|=32768,c!==null&&typeof c=="object"&&typeof c.then=="function"){var d=c,u=l,m=u.tag;if(!(u.mode&1)&&(m===0||m===11||m===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 f=og(i);if(f!==null){f.flags&=-257,ag(f,i,l,s,t),f.mode&1&&rg(s,d,t),t=f,c=d;var w=t.updateQueue;if(w===null){var y=new Set;y.add(c),t.updateQueue=y}else w.add(c);break e}else{if(!(t&1)){rg(s,d,t),qm();break e}c=Error(L(426))}}else if(Fe&&l.mode&1){var v=og(i);if(v!==null){!(v.flags&65536)&&(v.flags|=256),ag(v,i,l,s,t),Im(wa(c,l));break e}}s=c=wa(c,l),Je!==4&&(Je=2),js===null?js=[s]:js.push(s),s=i;do{switch(s.tag){case 3:s.flags|=65536,t&=-t,s.lanes|=t;var x=Mb(s,c,t);Kf(s,x);break e;case 1:l=c;var g=s.type,b=s.stateNode;if(!(s.flags&128)&&(typeof g.getDerivedStateFromError=="function"||b!==null&&typeof b.componentDidCatch=="function"&&(Dr===null||!Dr.has(b)))){s.flags|=65536,t&=-t,s.lanes|=t;var j=_b(s,l,t);Kf(s,j);break e}}s=s.return}while(s!==null)}ew(n)}catch(N){t=N,Xe===n&&n!==null&&(Xe=n=n.return);continue}break}while(!0)}function Jb(){var e=Gl.current;return Gl.current=$l,e===null?$l:e}function qm(){(Je===0||Je===3||Je===2)&&(Je=4),rt===null||!(bo&268435455)&&!(Ac&268435455)||vr(rt,it)}function ql(e,t){var n=be;be|=2;var r=Jb();(rt!==e||it!==t)&&(Qn=null,po(e,t));do try{zE();break}catch(a){Kb(e,a)}while(!0);if(Cm(),be=n,Gl.current=r,Xe!==null)throw Error(L(261));return rt=null,it=0,Je}function zE(){for(;Xe!==null;)Zb(Xe)}function $E(){for(;Xe!==null&&!pA();)Zb(Xe)}function Zb(e){var t=nw(e.alternate,e,Tt);e.memoizedProps=e.pendingProps,t===null?ew(e):Xe=t,zm.current=null}function ew(e){var t=e;do{var n=t.alternate;if(e=t.return,t.flags&32768){if(n=BE(n,t),n!==null){n.flags&=32767,Xe=n;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{Je=6,Xe=null;return}}else if(n=_E(n,t,Tt),n!==null){Xe=n;return}if(t=t.sibling,t!==null){Xe=t;return}Xe=t=e}while(t!==null);Je===0&&(Je=5)}function no(e,t,n){var r=Ne,a=Wt.transition;try{Wt.transition=null,Ne=1,GE(e,t,n,r)}finally{Wt.transition=a,Ne=r}return null}function GE(e,t,n,r){do na();while(Sr!==null);if(be&6)throw Error(L(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(L(177));e.callbackNode=null,e.callbackPriority=0;var s=n.lanes|n.childLanes;if(AA(e,s),e===rt&&(Xe=rt=null,it=0),!(n.subtreeFlags&2064)&&!(n.flags&2064)||Oi||(Oi=!0,rw(kl,function(){return na(),null})),s=(n.flags&15990)!==0,n.subtreeFlags&15990||s){s=Wt.transition,Wt.transition=null;var i=Ne;Ne=1;var l=be;be|=4,zm.current=null,FE(e,n),Vb(n,e),dE($u),Tl=!!zu,$u=zu=null,e.current=n,LE(n),fA(),be=l,Ne=i,Wt.transition=s}else e.current=n;if(Oi&&(Oi=!1,Sr=e,Wl=a),s=e.pendingLanes,s===0&&(Dr=null),xA(n.stateNode),Ct(e,Qe()),t!==null)for(r=e.onRecoverableError,n=0;n<t.length;n++)a=t[n],r(a.value,{componentStack:a.stack,digest:a.digest});if(Ql)throw Ql=!1,e=ch,ch=null,e;return Wl&1&&e.tag!==0&&na(),s=e.pendingLanes,s&1?e===dh?Ns++:(Ns=0,dh=e):Ns=0,Wr(),null}function na(){if(Sr!==null){var e=Mv(Wl),t=Wt.transition,n=Ne;try{if(Wt.transition=null,Ne=16>e?16:e,Sr===null)var r=!1;else{if(e=Sr,Sr=null,Wl=0,be&6)throw Error(L(331));var a=be;for(be|=4,K=e.current;K!==null;){var s=K,i=s.child;if(K.flags&16){var l=s.deletions;if(l!==null){for(var c=0;c<l.length;c++){var d=l[c];for(K=d;K!==null;){var u=K;switch(u.tag){case 0:case 11:case 15:ws(8,u,s)}var m=u.child;if(m!==null)m.return=u,K=m;else for(;K!==null;){u=K;var p=u.sibling,f=u.return;if(Qb(u),u===d){K=null;break}if(p!==null){p.return=f,K=p;break}K=f}}}var w=s.alternate;if(w!==null){var y=w.child;if(y!==null){w.child=null;do{var v=y.sibling;y.sibling=null,y=v}while(y!==null)}}K=s}}if(s.subtreeFlags&2064&&i!==null)i.return=s,K=i;else e:for(;K!==null;){if(s=K,s.flags&2048)switch(s.tag){case 0:case 11:case 15:ws(9,s,s.return)}var x=s.sibling;if(x!==null){x.return=s.return,K=x;break e}K=s.return}}var g=e.current;for(K=g;K!==null;){i=K;var b=i.child;if(i.subtreeFlags&2064&&b!==null)b.return=i,K=b;else e:for(i=g;K!==null;){if(l=K,l.flags&2048)try{switch(l.tag){case 0:case 11:case 15:Nc(9,l)}}catch(N){Ge(l,l.return,N)}if(l===i){K=null;break e}var j=l.sibling;if(j!==null){j.return=l.return,K=j;break e}K=l.return}}if(be=a,Wr(),Mn&&typeof Mn.onPostCommitFiberRoot=="function")try{Mn.onPostCommitFiberRoot(fc,e)}catch{}r=!0}return r}finally{Ne=n,Wt.transition=t}}return!1}function xg(e,t,n){t=wa(n,t),t=Mb(e,t,1),e=Rr(e,t,1),t=bt(),e!==null&&(ei(e,1,t),Ct(e,t))}function Ge(e,t,n){if(e.tag===3)xg(e,e,n);else for(;t!==null;){if(t.tag===3){xg(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof r.componentDidCatch=="function"&&(Dr===null||!Dr.has(r))){e=wa(n,e),e=_b(t,e,1),t=Rr(t,e,1),e=bt(),t!==null&&(ei(t,1,e),Ct(t,e));break}}t=t.return}}function QE(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),t=bt(),e.pingedLanes|=e.suspendedLanes&n,rt===e&&(it&n)===n&&(Je===4||Je===3&&(it&130023424)===it&&500>Qe()-Gm?po(e,0):$m|=n),Ct(e,t)}function tw(e,t){t===0&&(e.mode&1?(t=Ii,Ii<<=1,!(Ii&130023424)&&(Ii=4194304)):t=1);var n=bt();e=Zn(e,t),e!==null&&(ei(e,t,n),Ct(e,n))}function WE(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),tw(e,n)}function qE(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(L(314))}r!==null&&r.delete(t),tw(e,n)}var nw;nw=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||It.current)St=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return St=!1,ME(e,t,n);St=!!(e.flags&131072)}else St=!1,Fe&&t.flags&1048576&&sb(t,Ol,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;ml(e,t),e=t.pendingProps;var a=ya(t,pt.current);ta(t,n),a=Om(null,t,r,e,a,n);var s=Fm();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,kt(r)?(s=!0,_l(t)):s=!1,t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,Rm(t),a.updater=jc,t.stateNode=a,a._reactInternals=t,Ju(t,r,e,n),t=th(null,t,r,!0,s,n)):(t.tag=0,Fe&&s&&Em(t),xt(null,t,a,n),t=t.child),t;case 16:r=t.elementType;e:{switch(ml(e,t),e=t.pendingProps,a=r._init,r=a(r._payload),t.type=r,a=t.tag=XE(r),e=rn(r,e),a){case 0:t=eh(null,t,r,e,n);break e;case 1:t=lg(null,t,r,e,n);break e;case 11:t=sg(null,t,r,e,n);break e;case 14:t=ig(null,t,r,rn(r.type,e),n);break e}throw Error(L(306,r,""))}return t;case 0:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:rn(r,a),eh(e,t,r,a,n);case 1:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:rn(r,a),lg(e,t,r,a,n);case 3:e:{if(Lb(t),e===null)throw Error(L(387));
vendor: 4,464 bytes, line 41
41r=t.pendingProps,s=t.memoizedState,a=s.element,hb(e,t),Hl(t,r,null,n);var i=t.memoizedState;if(r=i.element,s.isDehydrated)if(s={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=s,t.memoizedState=s,t.flags&256){a=wa(Error(L(423)),t),t=cg(e,t,r,n,a);break e}else if(r!==a){a=wa(Error(L(424)),t),t=cg(e,t,r,n,a);break e}else for(Rt=Pr(t.stateNode.containerInfo.firstChild),Dt=t,Fe=!0,cn=null,n=db(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(xa(),r===a){t=er(e,t,n);break e}xt(e,t,r,n)}t=t.child}return t;case 5:return mb(t),e===null&&Xu(t),r=t.type,a=t.pendingProps,s=e!==null?e.memoizedProps:null,i=a.children,Gu(r,a)?i=null:s!==null&&Gu(r,s)&&(t.flags|=32),Fb(e,t),xt(e,t,i,n),t.child;case 6:return e===null&&Xu(t),null;case 13:return Hb(e,t,n);case 4:return Dm(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=va(t,null,r,n):xt(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:rn(r,a),sg(e,t,r,a,n);case 7:return xt(e,t,t.pendingProps,n),t.child;case 8:return xt(e,t,t.pendingProps.children,n),t.child;case 12:return xt(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,a=t.pendingProps,s=t.memoizedProps,i=a.value,Re(Fl,r._currentValue),r._currentValue=i,s!==null)if(pn(s.value,i)){if(s.children===a.children&&!It.current){t=er(e,t,n);break e}}else for(s=t.child,s!==null&&(s.return=t);s!==null;){var l=s.dependencies;if(l!==null){i=s.child;for(var c=l.firstContext;c!==null;){if(c.context===r){if(s.tag===1){c=Yn(-1,n&-n),c.tag=2;var d=s.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}}s.lanes|=n,c=s.alternate,c!==null&&(c.lanes|=n),Yu(s.return,n,t),l.lanes|=n;break}c=c.next}}else if(s.tag===10)i=s.type===t.type?null:s.child;else if(s.tag===18){if(i=s.return,i===null)throw Error(L(341));i.lanes|=n,l=i.alternate,l!==null&&(l.lanes|=n),Yu(i,n,t),i=s.sibling}else i=s.child;if(i!==null)i.return=s;else for(i=s;i!==null;){if(i===t){i=null;break}if(s=i.sibling,s!==null){s.return=i.return,i=s;break}i=i.return}s=i}xt(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=t.pendingProps.children,ta(t,n),a=qt(a),r=r(a),t.flags|=1,xt(e,t,r,n),t.child;case 14:return r=t.type,a=rn(r,t.pendingProps),a=rn(r.type,a),ig(e,t,r,a,n);case 15:return Bb(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:rn(r,a),ml(e,t),t.tag=1,kt(r)?(e=!0,_l(t)):e=!1,ta(t,n),Db(t,r,a),Ju(t,r,a,n),th(null,t,r,!0,e,n);case 19:return Ub(e,t,n);case 22:return Ob(e,t,n)}throw Error(L(156,t.tag))};function rw(e,t){return Tv(e,t)}function VE(e,t,n,r){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=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Qt(e,t,n,r){return new VE(e,t,n,r)}function Vm(e){return e=e.prototype,!(!e||!e.isReactComponent)}function XE(e){if(typeof e=="function")return Vm(e)?1:0;if(e!=null){if(e=e.$$typeof,e===mm)return 11;if(e===pm)return 14}return 2}function _r(e,t){var n=e.alternate;return n===null?(n=Qt(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 gl(e,t,n,r,a,s){var i=2;if(r=e,typeof e=="function")Vm(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case Ho:return fo(n.children,a,s,t);case hm:i=8,a|=8;break;case ju:return e=Qt(12,n,t,a|2),e.elementType=ju,e.lanes=s,e;case Nu:return e=Qt(13,n,t,a),e.elementType=Nu,e.lanes=s,e;case Au:return e=Qt(19,n,t,a),e.elementType=Au,e.lanes=s,e;case mv:return Ec(n,a,s,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case uv:i=10;break e;case hv:i=9;break e;case mm:i=11;break e;case pm:i=14;break e;case gr:i=16,r=null;break e}throw Error(L(130,e==null?e:typeof e,""))}
vendor: 5,901 bytes, line 41
41return t=Qt(i,n,t,a),t.elementType=e,t.type=r,t.lanes=s,t}function fo(e,t,n,r){return e=Qt(7,e,r,t),e.lanes=n,e}function Ec(e,t,n,r){return e=Qt(22,e,r,t),e.elementType=mv,e.lanes=n,e.stateNode={isHidden:!1},e}function Wd(e,t,n){return e=Qt(6,e,null,t),e.lanes=n,e}function qd(e,t,n){return t=Qt(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function YE(e,t,n,r,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=Id(0),this.expirationTimes=Id(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Id(0),this.identifierPrefix=r,this.onRecoverableError=a,this.mutableSourceEagerHydrationData=null}function Xm(e,t,n,r,a,s,i,l,c){return e=new YE(e,t,n,l,c),t===1?(t=1,s===!0&&(t|=8)):t=0,s=Qt(3,null,null,t),e.current=s,s.stateNode=e,s.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Rm(s),e}function KE(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:Lo,key:r==null?null:""+r,children:e,containerInfo:t,implementation:n}}function ow(e){if(!e)return Fr;e=e._reactInternals;e:{if(ko(e)!==e||e.tag!==1)throw Error(L(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(kt(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(t!==null);throw Error(L(171))}if(e.tag===1){var n=e.type;if(kt(n))return ob(e,n,t)}return t}function aw(e,t,n,r,a,s,i,l,c){return e=Xm(n,r,!0,e,a,s,i,l,c),e.context=ow(null),n=e.current,r=bt(),a=Mr(n),s=Yn(r,a),s.callback=t??null,Rr(n,s,a),e.current.lanes=a,ei(e,a,r),Ct(e,r),e}function Sc(e,t,n,r){var a=t.current,s=bt(),i=Mr(a);return n=ow(n),t.context===null?t.context=n:t.pendingContext=n,t=Yn(s,i),t.payload={element:e},r=r===void 0?null:r,r!==null&&(t.callback=r),e=Rr(a,t,i),e!==null&&(mn(e,a,i,s),dl(e,a,i)),i}function Vl(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 vg(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function Ym(e,t){vg(e,t),(e=e.alternate)&&vg(e,t)}function JE(){return null}var sw=typeof reportError=="function"?reportError:function(e){console.error(e)};function Km(e){this._internalRoot=e}Ic.prototype.render=Km.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(L(409));Sc(e,t,null,null)};Ic.prototype.unmount=Km.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;wo(function(){Sc(null,e,null,null)}),t[Jn]=null}};function Ic(e){this._internalRoot=e}Ic.prototype.unstable_scheduleHydration=function(e){if(e){var t=Ov();e={blockedOn:null,target:e,priority:t};for(var n=0;n<xr.length&&t!==0&&t<xr[n].priority;n++);xr.splice(n,0,e),n===0&&Lv(e)}};function Jm(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function kc(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function bg(){}function ZE(e,t,n,r,a){if(a){if(typeof r=="function"){var s=r;r=function(){var d=Vl(i);s.call(d)}}var i=aw(t,r,e,0,null,!1,!1,"",bg);return e._reactRootContainer=i,e[Jn]=i.current,Ms(e.nodeType===8?e.parentNode:e),wo(),i}for(;a=e.lastChild;)e.removeChild(a);if(typeof r=="function"){var l=r;r=function(){var d=Vl(c);l.call(d)}}var c=Xm(e,0,!1,null,null,!1,!1,"",bg);return e._reactRootContainer=c,e[Jn]=c.current,Ms(e.nodeType===8?e.parentNode:e),wo(function(){Sc(t,c,n,r)}),c}function Cc(e,t,n,r,a){var s=n._reactRootContainer;if(s){var i=s;if(typeof a=="function"){var l=a;a=function(){var c=Vl(i);l.call(c)}}Sc(t,i,e,a)}else i=ZE(n,t,e,a,r);return Vl(i)}_v=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=ds(t.pendingLanes);n!==0&&(ym(t,n|1),Ct(t,Qe()),!(be&6)&&(ja=Qe()+500,Wr()))}break;case 13:wo(function(){var r=Zn(e,1);if(r!==null){var a=bt();mn(r,e,1,a)}}),Ym(e,1)}};xm=function(e){if(e.tag===13){var t=Zn(e,134217728);if(t!==null){var n=bt();mn(t,e,134217728,n)}Ym(e,134217728)}};Bv=function(e){if(e.tag===13){var t=Mr(e),n=Zn(e,t);if(n!==null){var r=bt();mn(n,e,t,r)}Ym(e,t)}};Ov=function(){return Ne};Fv=function(e,t){var n=Ne;try{return Ne=e,t()}finally{Ne=n}};Mu=function(e,t,n){switch(t){case"input":if(Iu(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 r=n[t];if(r!==e&&r.form===e.form){var a=vc(r);if(!a)throw Error(L(90));fv(r),Iu(r,a)}}}break;case"textarea":yv(e,n);break;case"select":t=n.value,t!=null&&Ko(e,!!n.multiple,t,!1)}};Av=Qm;Ev=wo;var eS={usingClientEntryPoint:!1,Events:[ni,Go,vc,jv,Nv,Qm]},Za={findFiberByHostInstance:ro,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},tS={bundleType:Za.bundleType,version:Za.version,rendererPackageName:Za.rendererPackageName,rendererConfig:Za.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ar.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=kv(e),e===null?null:e.stateNode},findFiberByHostInstance:Za.findFiberByHostInstance||JE,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};
41if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Fi=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Fi.isDisabled&&Fi.supportsFiber)try{fc=Fi.inject(tS),Mn=Fi}catch{}}Ot.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=eS;Ot.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!Jm(t))throw Error(L(200));return KE(e,t,null,n)};Ot.createRoot=function(e,t){if(!Jm(e))throw Error(L(299));var n=!1,r="",a=sw;return t!=null&&(t.unstable_strictMode===!0&&(n=!0),t.identifierPrefix!==void 0&&(r=t.identifierPrefix),t.onRecoverableError!==void 0&&(a=t.onRecoverableError)),t=Xm(e,1,!1,null,null,n,!1,r,a),e[Jn]=t.current,Ms(e.nodeType===8?e.parentNode:e),new Km(t)};Ot.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(L(188)):(e=Object.keys(e).join(","),Error(L(268,e)));return e=kv(t),e=e===null?null:e.stateNode,e};Ot.flushSync=function(e){return wo(e)};Ot.hydrate=function(e,t,n){if(!kc(t))throw Error(L(200));return Cc(null,e,t,!0,n)};Ot.hydrateRoot=function(e,t,n){if(!Jm(e))throw Error(L(405));var r=n!=null&&n.hydratedSources||null,a=!1,s="",i=sw;if(n!=null&&(n.unstable_strictMode===!0&&(a=!0),n.identifierPrefix!==void 0&&(s=n.identifierPrefix),n.onRecoverableError!==void 0&&(i=n.onRecoverableError)),t=aw(t,null,e,1,n??null,a,!1,s,i),e[Jn]=t.current,Ms(e),r)for(e=0;e<r.length;e++)n=r[e],a=n._getVersion,a=a(n._source),t.mutableSourceEagerHydrationData==null?t.mutableSourceEagerHydrationData=[n,a]:t.mutableSourceEagerHydrationData.push(n,a);return new Ic(t)};Ot.render=function(e,t,n){if(!kc(t))throw Error(L(200));return Cc(null,e,t,!1,n)};Ot.unmountComponentAtNode=function(e){if(!kc(e))throw Error(L(40));return e._reactRootContainer?(wo(function(){Cc(null,null,e,!1,function(){e._reactRootContainer=null,e[Jn]=null})}),!0):!1};Ot.unstable_batchedUpdates=Qm;Ot.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!kc(n))throw Error(L(200));if(e==null||e._reactInternals===void 0)throw Error(L(38));return Cc(e,t,n,!1,r)};Ot.version="18.3.1-next-f1338f8080-20240426";function iw(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(iw)}catch(e){console.error(e)}}iw(),iv.exports=Ot;var qr=iv.exports;const lw=Xx(qr);var cw,wg=qr;cw=wg.createRoot,wg.hydrateRoot;var Xl=["light","dark"],Zm="(prefers-color-scheme: dark)",nS=typeof window>"u",ep=h.createContext(void 0),rS={setTheme:e=>{},themes:[]},oS=()=>{var e;return(e=h.useContext(ep))!=null?e:rS},aS=e=>h.useContext(ep)?e.children:h.createElement(iS,{...e}),sS=["light","dark"],iS=({forcedTheme:e,disableTransitionOnChange:t=!1,enableSystem:n=!0,enableColorScheme:r=!0,storageKey:a="theme",themes:s=sS,defaultTheme:i=n?"system":"light",attribute:l="data-theme",value:c,children:d,nonce:u})=>{let[m,p]=h.useState(()=>jg(a,i)),[f,w]=h.useState(()=>jg(a)),y=c?Object.values(c):s,v=h.useCallback(j=>{let N=j;if(!N)return;j==="system"&&n&&(N=Ng());let A=c?c[N]:N,E=t?cS():null,S=document.documentElement;if(l==="class"?(S.classList.remove(...y),A&&S.classList.add(A)):A?S.setAttribute(l,A):S.removeAttribute(l),r){let D=Xl.includes(i)?i:null,R=Xl.includes(N)?N:D;S.style.colorScheme=R}E==null||E()},[]),x=h.useCallback(j=>{let N=typeof j=="function"?j(j):j;p(N);try{localStorage.setItem(a,N)}catch{}},[e]),g=h.useCallback(j=>{let N=Ng(j);w(N),m==="system"&&n&&!e&&v("system")},[m,e]);h.useEffect(()=>{let j=window.matchMedia(Zm);return j.addListener(g),g(j),()=>j.removeListener(g)},[g]),h.useEffect(()=>{let j=N=>{if(N.key!==a)return;let A=N.newValue||i;x(A)};return window.addEventListener("storage",j),()=>window.removeEventListener("storage",j)},[x]),h.useEffect(()=>{v(e??m)},[e,m]);let b=h.useMemo(()=>({theme:m,setTheme:x,forcedTheme:e,resolvedTheme:m==="system"?f:m,themes:n?[...s,"system"]:s,systemTheme:n?f:void 0}),[m,x,e,f,n,s]);return h.createElement(ep.Provider,{value:b},h.createElement(lS,{forcedTheme:e,disableTransitionOnChange:t,enableSystem:n,enableColorScheme:r,storageKey:a,themes:s,defaultTheme:i,attribute:l,value:c,children:d,attrs:y,nonce:u}),d)},lS=h.memo(({forcedTheme:e,storageKey:t,attribute:n,enableSystem:r,enableColorScheme:a,defaultTheme:s,value:i,attrs:l,nonce:c})=>{let d=s==="system",u=n==="class"?`var d=document.documentElement,c=d.classList;${`c.remove(${l.map(w=>`'${w}'`).join(",")})`};`:`var d=document.documentElement,n='${n}',s='setAttribute';`,m=a?Xl.includes(s)&&s?`if(e==='light'||e==='dark'||!e)d.style.colorScheme=e||'${s}'`:"if(e==='light'||e==='dark')d.style.colorScheme=e":"",p=(w,y=!1,v=!0)=>{let x=i?i[w]:w,g=y?w+"|| ''":`'${x}'`,b="";return a&&v&&!y&&Xl.includes(w)&&(b+=`d.style.colorScheme = '${w}';`),n==="class"?y||x?b+=`c.add(${g})`:b+="null":x&&(b+=`d[s](n,${g})`),b},f=e?`!function(){${u}${p(e)}}()`:r?`!function(){try{${u}var e=localStorage.getItem('${t}');if('system'===e||(!e&&${d})){var t='${Zm}',m=window.matchMedia(t);if(m.media!==t||m.matches){${p("dark")}}else{${p("light")}}}else if(e){${i?`var x=${JSON.stringify(i)};`:""}${p(i?"x[e]":"e",!0)}}${d?"":"else{"+p(s,!1,!1)+"}"}${m}}catch(e){}}()`:`!function(){try{${u}var e=localStorage.getItem('${t}');if(e){${i?`var x=${JSON.stringify(i)};`:""}${p(i?"x[e]":"e",!0)}}else{${p(s,!1,!1)};}${m}}catch(t){}}();`;return h.createElement("script",{nonce:c,dangerouslySetInnerHTML:{__html:f}})}),jg=(e,t)=>
41{if(nS)return;let n;try{n=localStorage.getItem(e)||void 0}catch{}return n||t},cS=()=>{let e=document.createElement("style");return e.appendChild(document.createTextNode("*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),document.head.appendChild(e),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(e)},1)}},Ng=e=>(e||(e=window.matchMedia(Zm)),e.matches?"dark":"light");const dS=1,uS=1e6;let Vd=0;function hS(){return Vd=(Vd+1)%Number.MAX_SAFE_INTEGER,Vd.toString()}const Xd=new Map,Ag=e=>{if(Xd.has(e))return;const t=setTimeout(()=>{Xd.delete(e),As({type:"REMOVE_TOAST",toastId:e})},uS);Xd.set(e,t)},mS=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,dS)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(n=>n.id===t.toast.id?{...n,...t.toast}:n)};case"DISMISS_TOAST":{const{toastId:n}=t;return n?Ag(n):e.toasts.forEach(r=>{Ag(r.id)}),{...e,toasts:e.toasts.map(r=>r.id===n||n===void 0?{...r,open:!1}:r)}}case"REMOVE_TOAST":return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(n=>n.id!==t.toastId)}}},yl=[];let xl={toasts:[]};function As(e){xl=mS(xl,e),yl.forEach(t=>{t(xl)})}function pS({...e}){const t=hS(),n=a=>As({type:"UPDATE_TOAST",toast:{...a,id:t}}),r=()=>As({type:"DISMISS_TOAST",toastId:t});return As({type:"ADD_TOAST",toast:{...e,id:t,open:!0,onOpenChange:a=>{a||r()}}}),{id:t,dismiss:r,update:n}}function dw(){const[e,t]=h.useState(xl);return h.useEffect(()=>(yl.push(t),()=>{const n=yl.indexOf(t);n>-1&&yl.splice(n,1)}),[e]),{...e,toast:pS,dismiss:n=>As({type:"DISMISS_TOAST",toastId:n})}}function oe(e,t,{checkForDefaultPrevented:n=!0}={}){return function(a){if(e==null||e(a),n===!1||!a.defaultPrevented)return t==null?void 0:t(a)}}function Eg(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function uw(...e){return t=>{let n=!1;const r=e.map(a=>{const s=Eg(a,t);return!n&&typeof s=="function"&&(n=!0),s});if(n)return()=>{for(let a=0;a<r.length;a++){const s=r[a];typeof s=="function"?s():Eg(e[a],null)}}}}function Ae(...e){return h.useCallback(uw(...e),e)}function fS(e,t){const n=h.createContext(t),r=s=>{const{children:i,...l}=s,c=h.useMemo(()=>l,Object.values(l));return o.jsx(n.Provider,{value:c,children:i})};r.displayName=e+"Provider";function a(s){const i=h.useContext(n);if(i)return i;if(t!==void 0)return t;throw new Error(`\`${s}\` must be used within \`${e}\``)}return[r,a]}function sr(e,t=[]){let n=[];function r(s,i){const l=h.createContext(i),c=n.length;n=[...n,i];const d=m=>{var x;const{scope:p,children:f,...w}=m,y=((x=p==null?void 0:p[e])==null?void 0:x[c])||l,v=h.useMemo(()=>w,Object.values(w));return o.jsx(y.Provider,{value:v,children:f})};d.displayName=s+"Provider";function u(m,p){var y;const f=((y=p==null?void 0:p[e])==null?void 0:y[c])||l,w=h.useContext(f);if(w)return w;if(i!==void 0)return i;throw new Error(`\`${m}\` must be used within \`${s}\``)}return[d,u]}const a=()=>{const s=n.map(i=>h.createContext(i));return function(l){const c=(l==null?void 0:l[e])||s;return h.useMemo(()=>({[`__scope${e}`]:{...l,[e]:c}}),[l,c])}};return a.scopeName=e,[r,gS(a,...t)]}function gS(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(s){const i=r.reduce((l,{useScope:c,scopeName:d})=>{const m=c(s)[`__scope${d}`];return{...l,...m}},{});return h.useMemo(()=>({[`__scope${t.scopeName}`]:i}),[i])}};return n.scopeName=t.scopeName,n}function Na(e){const t=xS(e),n=h.forwardRef((r,a)=>{const{children:s,...i}=r,l=h.Children.toArray(s),c=l.find(bS);if(c){const d=c.props.children,u=l.map(m=>m===c?h.Children.count(d)>1?h.Children.only(null):h.isValidElement(d)?d.props.children:null:m);return o.jsx(t,{...i,ref:a,children:h.isValidElement(d)?h.cloneElement(d,void 0,u):null})}return o.jsx(t,{...i,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}var yS=Na("Slot");function xS(e){const t=h.forwardRef((n,r)=>{const{children:a,...s}=n;if(h.isValidElement(a)){const i=jS(a),l=wS(s,a.props);
vendor: 9,928 bytes, line 41
41return a.type!==h.Fragment&&(l.ref=r?uw(r,i):i),h.cloneElement(a,l)}return h.Children.count(a)>1?h.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var hw=Symbol("radix.slottable");function vS(e){const t=({children:n})=>o.jsx(o.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=hw,t}function bS(e){return h.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===hw}function wS(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...l)=>{const c=s(...l);return a(...l),c}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function jS(e){var r,a;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(a=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:a.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function tp(e){const t=e+"CollectionProvider",[n,r]=sr(t),[a,s]=n(t,{collectionRef:{current:null},itemMap:new Map}),i=y=>{const{scope:v,children:x}=y,g=F.useRef(null),b=F.useRef(new Map).current;return o.jsx(a,{scope:v,itemMap:b,collectionRef:g,children:x})};i.displayName=t;const l=e+"CollectionSlot",c=Na(l),d=F.forwardRef((y,v)=>{const{scope:x,children:g}=y,b=s(l,x),j=Ae(v,b.collectionRef);return o.jsx(c,{ref:j,children:g})});d.displayName=l;const u=e+"CollectionItemSlot",m="data-radix-collection-item",p=Na(u),f=F.forwardRef((y,v)=>{const{scope:x,children:g,...b}=y,j=F.useRef(null),N=Ae(v,j),A=s(u,x);return F.useEffect(()=>(A.itemMap.set(j,{ref:j,...b}),()=>void A.itemMap.delete(j))),o.jsx(p,{[m]:"",ref:N,children:g})});f.displayName=u;function w(y){const v=s(e+"CollectionConsumer",y);return F.useCallback(()=>{const g=v.collectionRef.current;if(!g)return[];const b=Array.from(g.querySelectorAll(`[${m}]`));return Array.from(v.itemMap.values()).sort((A,E)=>b.indexOf(A.ref.current)-b.indexOf(E.ref.current))},[v.collectionRef,v.itemMap])}return[{Provider:i,Slot:d,ItemSlot:f},w,r]}var NS=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],de=NS.reduce((e,t)=>{const n=Na(`Primitive.${t}`),r=h.forwardRef((a,s)=>{const{asChild:i,...l}=a,c=i?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),o.jsx(c,{...l,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function mw(e,t){e&&qr.flushSync(()=>e.dispatchEvent(t))}function fn(e){const t=h.useRef(e);return h.useEffect(()=>{t.current=e}),h.useMemo(()=>(...n)=>{var r;return(r=t.current)==null?void 0:r.call(t,...n)},[])}function AS(e,t=globalThis==null?void 0:globalThis.document){const n=fn(e);h.useEffect(()=>{const r=a=>{a.key==="Escape"&&n(a)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var ES="DismissableLayer",mh="dismissableLayer.update",SS="dismissableLayer.pointerDownOutside",IS="dismissableLayer.focusOutside",Sg,pw=h.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),oi=h.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:a,onFocusOutside:s,onInteractOutside:i,onDismiss:l,...c}=e,d=h.useContext(pw),[u,m]=h.useState(null),p=(u==null?void 0:u.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,f]=h.useState({}),w=Ae(t,E=>m(E)),y=Array.from(d.layers),[v]=[...d.layersWithOutsidePointerEventsDisabled].slice(-1),x=y.indexOf(v),g=u?y.indexOf(u):-1,b=d.layersWithOutsidePointerEventsDisabled.size>0,j=g>=x,N=CS(E=>{const S=E.target,D=[...d.branches].some(R=>R.contains(S));!j||D||(a==null||a(E),i==null||i(E),E.defaultPrevented||l==null||l())},p),A=TS(E=>{const S=E.target;[...d.branches].some(R=>R.contains(S))||(s==null||s(E),i==null||i(E),E.defaultPrevented||l==null||l())},p);return AS(E=>{g===d.layers.size-1&&(r==null||r(E),!E.defaultPrevented&&l&&(E.preventDefault(),l()))},p),h.useEffect(()=>{if(u)return n&&(d.layersWithOutsidePointerEventsDisabled.size===0&&(Sg=p.body.style.pointerEvents,p.body.style.pointerEvents="none"),d.layersWithOutsidePointerEventsDisabled.add(u)),d.layers.add(u),Ig(),()=>{n&&d.layersWithOutsidePointerEventsDisabled.size===1&&(p.body.style.pointerEvents=Sg)}},[u,p,n,d]),h.useEffect(()=>()=>{u&&(d.layers.delete(u),d.layersWithOutsidePointerEventsDisabled.delete(u),Ig())},[u,d]),h.useEffect(()=>{const E=()=>f({});return document.addEventListener(mh,E),()=>document.removeEventListener(mh,E)},[]),o.jsx(de.div,{...c,ref:w,style:{pointerEvents:b?j?"auto":"none":void 0,...e.style},onFocusCapture:oe(e.onFocusCapture,A.onFocusCapture),onBlurCapture:oe(e.onBlurCapture,A.onBlurCapture),onPointerDownCapture:oe(e.onPointerDownCapture,N.onPointerDownCapture)})});oi.displayName=ES;var kS="DismissableLayerBranch",fw=h.forwardRef((e,t)=>{const n=h.useContext(pw),r=h.useRef(null),a=Ae(t,r);return h.useEffect(()=>{const s=r.current;if(s)return n.branches.add(s),()=>{n.branches.delete(s)}},[n.branches]),o.jsx(de.div,{...e,ref:a})});fw.displayName=kS;function CS(e,t=globalThis==null?void 0:globalThis.document){const n=fn(e),r=h.useRef(!1),a=h.useRef(()=>{});return h.useEffect(()=>{const s=l=>{if(l.target&&!r.current){let c=function(){gw(SS,n,d,{discrete:!0})};const d={originalEvent:l};l.pointerType==="touch"?(t.removeEventListener("click",a.current),a.current=c,t.addEventListener("click",a.current,{once:!0})):c()}else t.removeEventListener("click",a.current);r.current=!1},i=window.setTimeout(()=>{t.addEventListener("pointerdown",s)},0);return()=>{window.clearTimeout(i),t.removeEventListener("pointerdown",s),t.removeEventListener("click",a.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function TS(e,t=globalThis==null?void 0:globalThis.document){const n=fn(e),r=h.useRef(!1);return h.useEffect(()=>{const a=s=>{s.target&&!r.current&&gw(IS,n,{originalEvent:s},{discrete:!1})};return t.addEventListener("focusin",a),()=>t.removeEventListener("focusin",a)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function Ig(){const e=new CustomEvent(mh);document.dispatchEvent(e)}function gw(e,t,n,{discrete:r}){const a=n.originalEvent.target,s=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&a.addEventListener(e,t,{once:!0}),r?mw(a,s):a.dispatchEvent(s)}var PS=oi,RS=fw,ot=globalThis!=null&&globalThis.document?h.useLayoutEffect:()=>{},DS="Portal",Tc=h.forwardRef((e,t)=>{var l;const{container:n,...r}=e,[a,s]=h.useState(!1);ot(()=>s(!0),[]);const i=n||a&&((l=globalThis==null?void 0:globalThis.document)==null?void 0:l.body);return i?lw.createPortal(o.jsx(de.div,{...r,ref:t}),i):null});Tc.displayName=DS;function MS(e,t){return h.useReducer((n,r)=>t[n][r]??n,e)}var Co=e=>{const{present:t,children:n}=e,r=_S(t),a=typeof n=="function"?n({present:r.isPresent}):h.Children.only(n),s=Ae(r.ref,BS(a));return typeof n=="function"||r.isPresent?h.cloneElement(a,{ref:s}):null};Co.displayName="Presence";function _S(e){const[t,n]=h.useState(),r=h.useRef(null),a=h.useRef(e),s=h.useRef("none"),i=e?"mounted":"unmounted",[l,c]=MS(i,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return h.useEffect(()=>{const d=Li(r.current);s.current=l==="mounted"?d:"none"},[l]),ot(()=>{const d=r.current,u=a.current;if(u!==e){const p=s.current,f=Li(d);e?c("MOUNT"):f==="none"||(d==null?void 0:d.display)==="none"?c("UNMOUNT"):c(u&&p!==f?"ANIMATION_OUT":"UNMOUNT"),a.current=e}},[e,c]),ot(()=>{if(t){let d;const u=t.ownerDocument.defaultView??window,m=f=>{const y=Li(r.current).includes(f.animationName);if(f.target===t&&y&&(c("ANIMATION_END"),!a.current)){const v=t.style.animationFillMode;t.style.animationFillMode="forwards",d=u.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=v)})}},p=f=>{f.target===t&&(s.current=Li(r.current))};return t.addEventListener("animationstart",p),t.addEventListener("animationcancel",m),t.addEventListener("animationend",m),()=>{u.clearTimeout(d),t.removeEventListener("animationstart",p),t.removeEventListener("animationcancel",m),t.removeEventListener("animationend",m)}}else c("ANIMATION_END")},[t,c]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:h.useCallback(d=>{r.current=d?getComputedStyle(d):null,n(d)},[])}}function Li(e){return(e==null?void 0:e.animationName)||"none"}function BS(e){var r,a;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(a=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:a.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var OS=lm[" useInsertionEffect ".trim().toString()]||ot;function Lr({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[a,s,i]=FS({defaultProp:t,onChange:n}),l=e!==void 0,c=l?e:a;{const u=h.useRef(e!==void 0);h.useEffect(()=>{const m=u.current;m!==l&&console.warn(`${r} is changing from ${m?"controlled":"uncontrolled"} to ${l?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),u.current=l},[l,r])}const d=h.useCallback(u=>{var m;if(l){const p=LS(u)?u(e):u;p!==e&&((m=i.current)==null||m.call(i,p))}else s(u)},[l,e,s,i]);return[c,d]}function FS({defaultProp:e,onChange:t}){const[n,r]=h.useState(e),a=h.useRef(n),s=h.useRef(t);return OS(()=>{s.current=t},[t]),h.useEffect(()=>{var i;a.current!==n&&((i=s.current)==null||i.call(s,n),a.current=n)},[n,a]),[n,r,s]}function LS(e){return typeof e=="function"}var yw=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),HS="VisuallyHidden",Pc=h.forwardRef((e,t)=>
41o.jsx(de.span,{...e,ref:t,style:{...yw,...e.style}}));Pc.displayName=HS;var US=Pc,np="ToastProvider",[rp,zS,$S]=tp("Toast"),[xw]=sr("Toast",[$S]),[GS,Rc]=xw(np),vw=e=>{const{__scopeToast:t,label:n="Notification",duration:r=5e3,swipeDirection:a="right",swipeThreshold:s=50,children:i}=e,[l,c]=h.useState(null),[d,u]=h.useState(0),m=h.useRef(!1),p=h.useRef(!1);return n.trim()||console.error(`Invalid prop \`label\` supplied to \`${np}\`. Expected non-empty \`string\`.`),o.jsx(rp.Provider,{scope:t,children:o.jsx(GS,{scope:t,label:n,duration:r,swipeDirection:a,swipeThreshold:s,toastCount:d,viewport:l,onViewportChange:c,onToastAdd:h.useCallback(()=>u(f=>f+1),[]),onToastRemove:h.useCallback(()=>u(f=>f-1),[]),isFocusedToastEscapeKeyDownRef:m,isClosePausedRef:p,children:i})})};vw.displayName=np;var bw="ToastViewport",QS=["F8"],ph="toast.viewportPause",fh="toast.viewportResume",ww=h.forwardRef((e,t)=>{const{__scopeToast:n,hotkey:r=QS,label:a="Notifications ({hotkey})",...s}=e,i=Rc(bw,n),l=zS(n),c=h.useRef(null),d=h.useRef(null),u=h.useRef(null),m=h.useRef(null),p=Ae(t,m,i.onViewportChange),f=r.join("+").replace(/Key/g,"").replace(/Digit/g,""),w=i.toastCount>0;h.useEffect(()=>{const v=x=>{var b;r.length!==0&&r.every(j=>x[j]||x.code===j)&&((b=m.current)==null||b.focus())};return document.addEventListener("keydown",v),()=>document.removeEventListener("keydown",v)},[r]),h.useEffect(()=>{const v=c.current,x=m.current;if(w&&v&&x){const g=()=>{if(!i.isClosePausedRef.current){const A=new CustomEvent(ph);x.dispatchEvent(A),i.isClosePausedRef.current=!0}},b=()=>{if(i.isClosePausedRef.current){const A=new CustomEvent(fh);x.dispatchEvent(A),i.isClosePausedRef.current=!1}},j=A=>{!v.contains(A.relatedTarget)&&b()},N=()=>{v.contains(document.activeElement)||b()};return v.addEventListener("focusin",g),v.addEventListener("focusout",j),v.addEventListener("pointermove",g),v.addEventListener("pointerleave",N),window.addEventListener("blur",g),window.addEventListener("focus",b),()=>{v.removeEventListener("focusin",g),v.removeEventListener("focusout",j),v.removeEventListener("pointermove",g),v.removeEventListener("pointerleave",N),window.removeEventListener("blur",g),window.removeEventListener("focus",b)}}},[w,i.isClosePausedRef]);const y=h.useCallback(({tabbingDirection:v})=>{const g=l().map(b=>{const j=b.ref.current,N=[j,...oI(j)];return v==="forwards"?N:N.reverse()});return(v==="forwards"?g.reverse():g).flat()},[l]);return h.useEffect(()=>{const v=m.current;if(v){const x=g=>{var N,A,E;const b=g.altKey||g.ctrlKey||g.metaKey;if(g.key==="Tab"&&!b){const S=document.activeElement,D=g.shiftKey;if(g.target===v&&D){(N=d.current)==null||N.focus();return}const k=y({tabbingDirection:D?"backwards":"forwards"}),O=k.findIndex(_=>_===S);Yd(k.slice(O+1))?g.preventDefault():D?(A=d.current)==null||A.focus():(E=u.current)==null||E.focus()}};return v.addEventListener("keydown",x),()=>v.removeEventListener("keydown",x)}},[l,y]),o.jsxs(RS,{ref:c,role:"region","aria-label":a.replace("{hotkey}",f),tabIndex:-1,style:{pointerEvents:w?void 0:"none"},children:[w&&o.jsx(gh,{ref:d,onFocusFromOutsideViewport:()=>{const v=y({tabbingDirection:"forwards"});Yd(v)}}),o.jsx(rp.Slot,{scope:n,children:o.jsx(de.ol,{tabIndex:-1,...s,ref:p})}),w&&o.jsx(gh,{ref:u,onFocusFromOutsideViewport:()=>{const v=y({tabbingDirection:"backwards"});Yd(v)}})]})});ww.displayName=bw;var jw="ToastFocusProxy",gh=h.forwardRef((e,t)=>{const{__scopeToast:n,onFocusFromOutsideViewport:r,...a}=e,s=Rc(jw,n);return o.jsx(Pc,{"aria-hidden":!0,tabIndex:0,...a,ref:t,style:{position:"fixed"},onFocus:i=>{var d;const l=i.relatedTarget;!((d=s.viewport)!=null&&d.contains(l))&&r()}})});gh.displayName=jw;var ai="Toast",WS="toast.swipeStart",qS="toast.swipeMove",VS="toast.swipeCancel",XS="toast.swipeEnd",Nw=h.forwardRef((e,t)=>{const{forceMount:n,open:r,defaultOpen:a,onOpenChange:s,...i}=e,[l,c]=Lr({prop:r,defaultProp:a??!0,onChange:s,caller:ai});return o.jsx(Co,{present:n||l,children:o.jsx(JS,{open:l,...i,ref:t,onClose:()=>c(!1),onPause:fn(e.onPause),onResume:fn(e.onResume),onSwipeStart:oe(e.onSwipeStart,d=>{d.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:oe(e.onSwipeMove,d=>{const{x:u,y:m}=d.detail.delta;d.currentTarget.setAttribute("data-swipe","move"),d.currentTarget.style.setProperty("--radix-toast-swipe-move-x",`${u}px`),d.currentTarget.style.setProperty("--radix-toast-swipe-move-y",`${m}px`)}),onSwipeCancel:oe(e.onSwipeCancel,d=>{d.currentTarget.setAttribute("data-swipe","cancel"),d.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),d.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),d.currentTarget.style.removeProperty("--radix-toast-swipe-end-x"),d.currentTarget.style.removeProperty("--radix-toast-swipe-end-y")}),onSwipeEnd:oe(e.onSwipeEnd,d=>{const{x:u,y:m}=d.detail.delta;d.currentTarget.setAttribute("data-swipe","end"),d.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),d.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),d.currentTarget.style.setProperty("--radix-toast-swipe-end-x",`${u}px`),d.currentTarget.style.setProperty("--radix-toast-swipe-end-y",`${m}px`),c(!1)})})})});Nw.displayName=ai;var[YS,KS]=xw(ai,{onClose(){}}),JS=h.forwardRef((e,t)=>
41{const{__scopeToast:n,type:r="foreground",duration:a,open:s,onClose:i,onEscapeKeyDown:l,onPause:c,onResume:d,onSwipeStart:u,onSwipeMove:m,onSwipeCancel:p,onSwipeEnd:f,...w}=e,y=Rc(ai,n),[v,x]=h.useState(null),g=Ae(t,_=>x(_)),b=h.useRef(null),j=h.useRef(null),N=a||y.duration,A=h.useRef(0),E=h.useRef(N),S=h.useRef(0),{onToastAdd:D,onToastRemove:R}=y,$=fn(()=>{var W;(v==null?void 0:v.contains(document.activeElement))&&((W=y.viewport)==null||W.focus()),i()}),k=h.useCallback(_=>{!_||_===1/0||(window.clearTimeout(S.current),A.current=new Date().getTime(),S.current=window.setTimeout($,_))},[$]);h.useEffect(()=>{const _=y.viewport;if(_){const W=()=>{k(E.current),d==null||d()},U=()=>{const V=new Date().getTime()-A.current;E.current=E.current-V,window.clearTimeout(S.current),c==null||c()};return _.addEventListener(ph,U),_.addEventListener(fh,W),()=>{_.removeEventListener(ph,U),_.removeEventListener(fh,W)}}},[y.viewport,N,c,d,k]),h.useEffect(()=>{s&&!y.isClosePausedRef.current&&k(N)},[s,N,y.isClosePausedRef,k]),h.useEffect(()=>(D(),()=>R()),[D,R]);const O=h.useMemo(()=>v?Tw(v):null,[v]);return y.viewport?o.jsxs(o.Fragment,{children:[O&&o.jsx(ZS,{__scopeToast:n,role:"status","aria-live":r==="foreground"?"assertive":"polite","aria-atomic":!0,children:O}),o.jsx(YS,{scope:n,onClose:$,children:qr.createPortal(o.jsx(rp.ItemSlot,{scope:n,children:o.jsx(PS,{asChild:!0,onEscapeKeyDown:oe(l,()=>{y.isFocusedToastEscapeKeyDownRef.current||$(),y.isFocusedToastEscapeKeyDownRef.current=!1}),children:o.jsx(de.li,{role:"status","aria-live":"off","aria-atomic":!0,tabIndex:0,"data-state":s?"open":"closed","data-swipe-direction":y.swipeDirection,...w,ref:g,style:{userSelect:"none",touchAction:"none",...e.style},onKeyDown:oe(e.onKeyDown,_=>{_.key==="Escape"&&(l==null||l(_.nativeEvent),_.nativeEvent.defaultPrevented||(y.isFocusedToastEscapeKeyDownRef.current=!0,$()))}),onPointerDown:oe(e.onPointerDown,_=>{_.button===0&&(b.current={x:_.clientX,y:_.clientY})}),onPointerMove:oe(e.onPointerMove,_=>{if(!b.current)return;const W=_.clientX-b.current.x,U=_.clientY-b.current.y,V=!!j.current,T=["left","right"].includes(y.swipeDirection),I=["left","up"].includes(y.swipeDirection)?Math.min:Math.max,B=T?I(0,W):0,z=T?0:I(0,U),G=_.pointerType==="touch"?10:2,J={x:B,y:z},Z={originalEvent:_,delta:J};V?(j.current=J,Hi(qS,m,Z,{discrete:!1})):kg(J,y.swipeDirection,G)?(j.current=J,Hi(WS,u,Z,{discrete:!1}),_.target.setPointerCapture(_.pointerId)):(Math.abs(W)>G||Math.abs(U)>G)&&(b.current=null)}),onPointerUp:oe(e.onPointerUp,_=>{const W=j.current,U=_.target;if(U.hasPointerCapture(_.pointerId)&&U.releasePointerCapture(_.pointerId),j.current=null,b.current=null,W){const V=_.currentTarget,T={originalEvent:_,delta:W};kg(W,y.swipeDirection,y.swipeThreshold)?Hi(XS,f,T,{discrete:!0}):Hi(VS,p,T,{discrete:!0}),V.addEventListener("click",I=>I.preventDefault(),{once:!0})}})})})}),y.viewport)})]}):null}),ZS=e=>{const{__scopeToast:t,children:n,...r}=e,a=Rc(ai,t),[s,i]=h.useState(!1),[l,c]=h.useState(!1);return nI(()=>i(!0)),h.useEffect(()=>{const d=window.setTimeout(()=>c(!0),1e3);return()=>window.clearTimeout(d)},[]),l?null:o.jsx(Tc,{asChild:!0,children:o.jsx(Pc,{...r,children:s&&o.jsxs(o.Fragment,{children:[a.label," ",n]})})})},eI="ToastTitle",Aw=h.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e;return o.jsx(de.div,{...r,ref:t})});Aw.displayName=eI;var tI="ToastDescription",Ew=h.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e;return o.jsx(de.div,{...r,ref:t})});Ew.displayName=tI;var Sw="ToastAction",Iw=h.forwardRef((e,t)=>{const{altText:n,...r}=e;return n.trim()?o.jsx(Cw,{altText:n,asChild:!0,children:o.jsx(op,{...r,ref:t})}):(console.error(`Invalid prop \`altText\` supplied to \`${Sw}\`. Expected non-empty \`string\`.`),null)});Iw.displayName=Sw;var kw="ToastClose",op=h.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e,a=KS(kw,n);return o.jsx(Cw,{asChild:!0,children:o.jsx(de.button,{type:"button",...r,ref:t,onClick:oe(e.onClick,a.onClose)})})});op.displayName=kw;var Cw=h.forwardRef((e,t)=>{const{__scopeToast:n,altText:r,...a}=e;return o.jsx(de.div,{"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":r||void 0,...a,ref:t})});function Tw(e){const t=[];
vendor: 5,643 bytes, lines 41-86
41return Array.from(e.childNodes).forEach(r=>{if(r.nodeType===r.TEXT_NODE&&r.textContent&&t.push(r.textContent),rI(r)){const a=r.ariaHidden||r.hidden||r.style.display==="none",s=r.dataset.radixToastAnnounceExclude==="";if(!a)if(s){const i=r.dataset.radixToastAnnounceAlt;i&&t.push(i)}else t.push(...Tw(r))}}),t}function Hi(e,t,n,{discrete:r}){const a=n.originalEvent.currentTarget,s=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n});t&&a.addEventListener(e,t,{once:!0}),r?mw(a,s):a.dispatchEvent(s)}var kg=(e,t,n=0)=>{const r=Math.abs(e.x),a=Math.abs(e.y),s=r>a;return t==="left"||t==="right"?s&&r>n:!s&&a>n};function nI(e=()=>{}){const t=fn(e);ot(()=>{let n=0,r=0;return n=window.requestAnimationFrame(()=>r=window.requestAnimationFrame(t)),()=>{window.cancelAnimationFrame(n),window.cancelAnimationFrame(r)}},[t])}function rI(e){return e.nodeType===e.ELEMENT_NODE}function oI(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const a=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||a?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function Yd(e){const t=document.activeElement;return e.some(n=>n===t?!0:(n.focus(),document.activeElement!==t))}var aI=vw,Pw=ww,Rw=Nw,Dw=Aw,Mw=Ew,_w=Iw,Bw=op;function Ow(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var a=e.length;for(t=0;t<a;t++)e[t]&&(n=Ow(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function Fw(){for(var e,t,n=0,r="",a=arguments.length;n<a;n++)(e=arguments[n])&&(t=Ow(e))&&(r&&(r+=" "),r+=t);return r}const Cg=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,Tg=Fw,Lw=(e,t)=>n=>{var r;if((t==null?void 0:t.variants)==null)return Tg(e,n==null?void 0:n.class,n==null?void 0:n.className);const{variants:a,defaultVariants:s}=t,i=Object.keys(a).map(d=>{const u=n==null?void 0:n[d],m=s==null?void 0:s[d];if(u===null)return null;const p=Cg(u)||Cg(m);return a[d][p]}),l=n&&Object.entries(n).reduce((d,u)=>{let[m,p]=u;return p===void 0||(d[m]=p),d},{}),c=t==null||(r=t.compoundVariants)===null||r===void 0?void 0:r.reduce((d,u)=>{let{class:m,className:p,...f}=u;return Object.entries(f).every(w=>{let[y,v]=w;return Array.isArray(v)?v.includes({...s,...l}[y]):{...s,...l}[y]===v})?[...d,m,p]:d},[]);return Tg(e,i,c,n==null?void 0:n.class,n==null?void 0:n.className)};/** 42 * @license lucide-react v0.462.0 - ISC 43 * 44 * This source code is licensed under the ISC license. 45 * See the LICENSE file in the root directory of this source tree. 46 */const sI=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Hw=(...e)=>e.filter((t,n,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===n).join(" ").trim();/** 47 * @license lucide-react v0.462.0 - ISC 48 * 49 * This source code is licensed under the ISC license. 50 * See the LICENSE file in the root directory of this source tree. 51 */var iI={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"};/** 52 * @license lucide-react v0.462.0 - ISC 53 * 54 * This source code is licensed under the ISC license. 55 * See the LICENSE file in the root directory of this source tree. 56 */const lI=h.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:a="",children:s,iconNode:i,...l},c)=>h.createElement("svg",{ref:c,...iI,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:Hw("lucide",a),...l},[...i.map(([d,u])=>h.createElement(d,u)),...Array.isArray(s)?s:[s]]));/** 57 * @license lucide-react v0.462.0 - ISC 58 * 59 * This source code is licensed under the ISC license. 60 * See the LICENSE file in the root directory of this source tree. 61 */const Y=(e,t)=>{const n=h.forwardRef(({className:r,...a},s)=>h.createElement(lI,{ref:s,iconNode:t,className:Hw(`lucide-${sI(e)}`,r),...a}));return n.displayName=`${e}`,n};/** 62 * @license lucide-react v0.462.0 - ISC 63 * 64 * This source code is licensed under the ISC license. 65 * See the LICENSE file in the root directory of this source tree. 66 */const cI=Y("ArrowDown",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);/** 67 * @license lucide-react v0.462.0 - ISC 68 * 69 * This source code is licensed under the ISC license. 70 * See the LICENSE file in the root directory of this source tree. 71 */const dI=Y("ArrowLeftRight",[["path",{d:"M8 3 4 7l4 4",key:"9rb6wj"}],["path",{d:"M4 7h16",key:"6tx8e3"}],["path",{d:"m16 21 4-4-4-4",key:"siv7j2"}],["path",{d:"M20 17H4",key:"h6l3hr"}]]);/** 72 * @license lucide-react v0.462.0 - ISC 73 * 74 * This source code is licensed under the ISC license. 75 * See the LICENSE file in the root directory of this source tree. 76 */const _a=Y("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/** 77 * @license lucide-react v0.462.0 - ISC 78 * 79 * This source code is licensed under the ISC license. 80 * See the LICENSE file in the root directory of this source tree. 81 */const uI=Y("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);/** 82 * @license lucide-react v0.462.0 - ISC 83 * 84 * This source code is licensed under the ISC license. 85 * See the LICENSE file in the root directory of this source tree. 86 */const Uw=Y("Building2",[["path",{d:"M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z",key:"1b4qmf"}],["path",{d:"M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2",key:"i71pzd"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2",key:"10jefs"}],["path",{d:"M10 6h4",key:"1itunk"}],["path",{d:"M10 10h4",key:"tcdvrf"}
86],["path",{d:"M10 14h4",key:"kelpxr"}],["path",{d:"M10 18h4",key:"1ulq68"}]]);/** 87 * @license lucide-react v0.462.0 - ISC 88 * 89 * This source code is licensed under the ISC license. 90 * See the LICENSE file in the root directory of this source tree. 91 */const Dc=Y("Camera",[["path",{d:"M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3l-2.5-3z",key:"1tc9qg"}],["circle",{cx:"12",cy:"13",r:"3",key:"1vg3eu"}]]);/** 92 * @license lucide-react v0.462.0 - ISC 93 * 94 * This source code is licensed under the ISC license. 95 * See the LICENSE file in the root directory of this source tree. 96 */const hI=Y("Car",[["path",{d:"M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2",key:"5owen"}],["circle",{cx:"7",cy:"17",r:"2",key:"u2ysq9"}],["path",{d:"M9 17h6",key:"r8uit2"}],["circle",{cx:"17",cy:"17",r:"2",key:"axvx0g"}]]);/** 97 * @license lucide-react v0.462.0 - ISC 98 * 99 * This source code is licensed under the ISC license. 100 * See the LICENSE file in the root directory of this source tree. 101 */const tr=Y("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** 102 * @license lucide-react v0.462.0 - ISC 103 * 104 * This source code is licensed under the ISC license. 105 * See the LICENSE file in the root directory of this source tree. 106 */const gn=Y("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** 107 * @license lucide-react v0.462.0 - ISC 108 * 109 * This source code is licensed under the ISC license. 110 * See the LICENSE file in the root directory of this source tree. 111 */const mI=Y("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);/** 112 * @license lucide-react v0.462.0 - ISC 113 * 114 * This source code is licensed under the ISC license. 115 * See the LICENSE file in the root directory of this source tree. 116 */const pI=Y("CircleCheck",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** 117 * @license lucide-react v0.462.0 - ISC 118 * 119 * This source code is licensed under the ISC license. 120 * See the LICENSE file in the root directory of this source tree. 121 */const fI=Y("CirclePlus",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"M12 8v8",key:"napkw2"}]]);/** 122 * @license lucide-react v0.462.0 - ISC 123 * 124 * This source code is licensed under the ISC license. 125 * See the LICENSE file in the root directory of this source tree. 126 */const gI=Y("CircleUserRound",[["path",{d:"M18 20a6 6 0 0 0-12 0",key:"1qehca"}],["circle",{cx:"12",cy:"10",r:"4",key:"1h16sb"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);/** 127 * @license lucide-react v0.462.0 - ISC 128 * 129 * This source code is licensed under the ISC license. 130 * See the LICENSE file in the root directory of this source tree. 131 */const zw=Y("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/** 132 * @license lucide-react v0.462.0 - ISC 133 * 134 * This source code is licensed under the ISC license. 135 * See the LICENSE file in the root directory of this source tree. 136 */const yI=Y("CloudOff",[["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M5.782 5.782A7 7 0 0 0 9 19h8.5a4.5 4.5 0 0 0 1.307-.193",key:"yfwify"}],["path",{d:"M21.532 16.5A4.5 4.5 0 0 0 17.5 10h-1.79A7.008 7.008 0 0 0 10 5.07",key:"jlfiyv"}]]);/** 137 * @license lucide-react v0.462.0 - ISC 138 * 139 * This source code is licensed under the ISC license. 140 * See the LICENSE file in the root directory of this source tree. 141 */const xI=Y("CloudUpload",[["path",{d:"M12 13v8",key:"1l5pq0"}],["path",{d:"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242",key:"1pljnt"}],["path",{d:"m8 17 4-4 4 4",key:"1quai1"}]]);/** 142 * @license lucide-react v0.462.0 - ISC 143 * 144 * This source code is licensed under the ISC license. 145 * See the LICENSE file in the root directory of this source tree. 146 */const vI=Y("Cloud",[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]]);/** 147 * @license lucide-react v0.462.0 - ISC 148 * 149 * This source code is licensed under the ISC license. 150 * See the LICENSE file in the root directory of this source tree.
151 */const bI=Y("CreditCard",[["rect",{width:"20",height:"14",x:"2",y:"5",rx:"2",key:"ynyp8z"}],["line",{x1:"2",x2:"22",y1:"10",y2:"10",key:"1b3vmo"}]]);/** 152 * @license lucide-react v0.462.0 - ISC 153 * 154 * This source code is licensed under the ISC license. 155 * See the LICENSE file in the root directory of this source tree. 156 */const wI=Y("Crosshair",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"22",x2:"18",y1:"12",y2:"12",key:"l9bcsi"}],["line",{x1:"6",x2:"2",y1:"12",y2:"12",key:"13hhkx"}],["line",{x1:"12",x2:"12",y1:"6",y2:"2",key:"10w3f3"}],["line",{x1:"12",x2:"12",y1:"22",y2:"18",key:"15g9kq"}]]);/** 157 * @license lucide-react v0.462.0 - ISC 158 * 159 * This source code is licensed under the ISC license. 160 * See the LICENSE file in the root directory of this source tree. 161 */const jI=Y("Crown",[["path",{d:"M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z",key:"1vdc57"}],["path",{d:"M5 21h14",key:"11awu3"}]]);/** 162 * @license lucide-react v0.462.0 - ISC 163 * 164 * This source code is licensed under the ISC license. 165 * See the LICENSE file in the root directory of this source tree. 166 */const Yl=Y("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);/** 167 * @license lucide-react v0.462.0 - ISC 168 * 169 * This source code is licensed under the ISC license. 170 * See the LICENSE file in the root directory of this source tree. 171 */const $w=Y("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);/** 172 * @license lucide-react v0.462.0 - ISC 173 * 174 * This source code is licensed under the ISC license. 175 * See the LICENSE file in the root directory of this source tree. 176 */const yh=Y("FileDown",[["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:"M12 18v-6",key:"17g6i2"}],["path",{d:"m9 15 3 3 3-3",key:"1npd3o"}]]);/** 177 * @license lucide-react v0.462.0 - ISC 178 * 179 * This source code is licensed under the ISC license. 180 * See the LICENSE file in the root directory of this source tree. 181 */const NI=Y("FileSearch",[["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M4.268 21a2 2 0 0 0 1.727 1H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3",key:"ms7g94"}],["path",{d:"m9 18-1.5-1.5",key:"1j6qii"}],["circle",{cx:"5",cy:"14",r:"3",key:"ufru5t"}]]);/** 182 * @license lucide-react v0.462.0 - ISC 183 * 184 * This source code is licensed under the ISC license. 185 * See the LICENSE file in the root directory of this source tree. 186 */const AI=Y("Fingerprint",[["path",{d:"M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4",key:"1nerag"}],["path",{d:"M14 13.12c0 2.38 0 6.38-1 8.88",key:"o46ks0"}],["path",{d:"M17.29 21.02c.12-.6.43-2.3.5-3.02",key:"ptglia"}],["path",{d:"M2 12a10 10 0 0 1 18-6",key:"ydlgp0"}],["path",{d:"M2 16h.01",key:"1gqxmh"}],["path",{d:"M21.8 16c.2-2 .131-5.354 0-6",key:"drycrb"}],["path",{d:"M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2",key:"1tidbn"}],["path",{d:"M8.65 22c.21-.66.45-1.32.57-2",key:"13wd9y"}],["path",{d:"M9 6.8a6 6 0 0 1 9 5.2v2",key:"1fr1j5"}]]);/** 187 * @license lucide-react v0.462.0 - ISC 188 * 189 * This source code is licensed under the ISC license. 190 * See the LICENSE file in the root directory of this source tree. 191 */const EI=Y("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);/** 192 * @license lucide-react v0.462.0 - ISC 193 * 194 * This source code is licensed under the ISC license. 195 * See the LICENSE file in the root directory of this source tree. 196 */const Gw=Y("FolderSync",[["path",{d:"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v.5",key:"1dkoa9"}],["path",{d:"M12 10v4h4",key:"1czhmt"}],["path",{d:"m12 14 1.535-1.605a5 5 0 0 1 8 1.5",key:"lvuxfi"}],["path",{d:"M22 22v-4h-4",key:"1ewp4q"}],["path",{d:"m22 18-1.535 1.605a5 5 0 0 1-8-1.5",key:"14ync0"}]]);/** 197 * @license lucide-react v0.462.0 - ISC 198 * 199 * This source code is licensed under the ISC license. 200 * See the LICENSE file in the root directory of this source tree. 201 */const SI=Y("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);/** 202 * @license lucide-react v0.462.0 - ISC 203 * 204 * This source code is licensed under the ISC license. 205 * See the LICENSE file in the root directory of this source tree. 206 */const Qw=Y("House",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"1d0kgt"}]]);/** 207 * @license lucide-react v0.462.0 - ISC 208 * 209 * This source code is licensed under the ISC license. 210 * See the LICENSE file in the root directory of this source tree. 211 */const II=Y("ImagePlus",[["path",{d:"M16 5h6",key:"1vod17"}],["path",{d:"M19 2v6",key:"4bpg5p"}],["path",{d:"M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5",key:"1ue2ih"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}]]);/** 212 * @license lucide-react v0.462.0 - ISC 213 * 214 * This source code is licensed under the ISC license. 215 * See the LICENSE file in the root directory of this source tree. 216 */const si=Y("Image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);/** 217 * @license lucide-react v0.462.0 - ISC 218 * 219 * This source code is licensed under the ISC license. 220 * See the LICENSE file in the root directory of this source tree. 221 */const kI=Y("Images",[["path",{d:"M18 22H4a2 2 0 0 1-2-2V6",key:"pblm9e"}],["path",{d:"m22 13-1.296-1.296a2.41 2.41 0 0 0-3.408 0L11 18",key:"nf6bnh"}],["circle",{cx:"12",cy:"8",r:"2",key:"1822b1"}],["rect",{width:"16",height:"16",x:"6",y:"2",rx:"2",key:"12espp"}]]);/** 222 * @license lucide-react v0.462.0 - ISC 223 * 224 * This source code is licensed under the ISC license. 225 * See the LICENSE file in the root directory of this source tree. 226 */const CI=Y("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);/** 227 * @license lucide-react v0.462.0 - ISC 228 * 229 * This source code is licensed under the ISC license. 230 * See the LICENSE file in the root directory of this source tree.
231 */const Mc=Y("Link2",[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]]);/** 232 * @license lucide-react v0.462.0 - ISC 233 * 234 * This source code is licensed under the ISC license. 235 * See the LICENSE file in the root directory of this source tree. 236 */const Bn=Y("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/** 237 * @license lucide-react v0.462.0 - ISC 238 * 239 * This source code is licensed under the ISC license. 240 * See the LICENSE file in the root directory of this source tree. 241 */const ap=Y("Lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);/** 242 * @license lucide-react v0.462.0 - ISC 243 * 244 * This source code is licensed under the ISC license. 245 * See the LICENSE file in the root directory of this source tree. 246 */const TI=Y("LogOut",[["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}],["polyline",{points:"16 17 21 12 16 7",key:"1gabdz"}],["line",{x1:"21",x2:"9",y1:"12",y2:"12",key:"1uyos4"}]]);/** 247 * @license lucide-react v0.462.0 - ISC 248 * 249 * This source code is licensed under the ISC license. 250 * See the LICENSE file in the root directory of this source tree. 251 */const PI=Y("MailOpen",[["path",{d:"M21.2 8.4c.5.38.8.97.8 1.6v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V10a2 2 0 0 1 .8-1.6l8-6a2 2 0 0 1 2.4 0l8 6Z",key:"1jhwl8"}],["path",{d:"m22 10-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 10",key:"1qfld7"}]]);/** 252 * @license lucide-react v0.462.0 - ISC 253 * 254 * This source code is licensed under the ISC license. 255 * See the LICENSE file in the root directory of this source tree. 256 */const sp=Y("Mail",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}]]);/** 257 * @license lucide-react v0.462.0 - ISC 258 * 259 * This source code is licensed under the ISC license. 260 * See the LICENSE file in the root directory of this source tree. 261 */const Aa=Y("MapPin",[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}]]);/** 262 * @license lucide-react v0.462.0 - ISC 263 * 264 * This source code is licensed under the ISC license. 265 * See the LICENSE file in the root directory of this source tree. 266 */const RI=Y("MapPinned",[["path",{d:"M18 8c0 3.613-3.869 7.429-5.393 8.795a1 1 0 0 1-1.214 0C9.87 15.429 6 11.613 6 8a6 6 0 0 1 12 0",key:"11u0oz"}],["circle",{cx:"12",cy:"8",r:"2",key:"1822b1"}],["path",{d:"M8.714 14h-3.71a1 1 0 0 0-.948.683l-2.004 6A1 1 0 0 0 3 22h18a1 1 0 0 0 .948-1.316l-2-6a1 1 0 0 0-.949-.684h-3.712",key:"q8zwxj"}]]);/** 267 * @license lucide-react v0.462.0 - ISC 268 * 269 * This source code is licensed under the ISC license. 270 * See the LICENSE file in the root directory of this source tree. 271 */const DI=Y("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]]);/** 272 * @license lucide-react v0.462.0 - ISC 273 * 274 * This source code is licensed under the ISC license. 275 * See the LICENSE file in the root directory of this source tree. 276 */const MI=Y("MessageCircle",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}]]);/** 277 * @license lucide-react v0.462.0 - ISC 278 * 279 * This source code is licensed under the ISC license. 280 * See the LICENSE file in the root directory of this source tree. 281 */const _I=Y("Minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);/** 282 * @license lucide-react v0.462.0 - ISC 283 * 284 * This source code is licensed under the ISC license. 285 * See the LICENSE file in the root directory of this source tree. 286 */const BI=Y("Package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["path",{d:"m3.3 7 7.703 4.734a2 2 0 0 0 1.994 0L20.7 7",key:"yx3hmr"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]);/** 287 * @license lucide-react v0.462.0 - ISC 288 * 289 * This source code is licensed under the ISC license. 290 * See the LICENSE file in the root directory of this source tree. 291 */const Ww=Y("Palette",[["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["path",{d:"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z",key:"12rzf8"}]]);/** 292 * @license lucide-react v0.462.0 - ISC 293 * 294 * This source code is licensed under the ISC license. 295 * See the LICENSE file in the root directory of this source tree. 296 */const OI=Y("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);/** 297 * @license lucide-react v0.462.0 - ISC 298 * 299 * This source code is licensed under the ISC license. 300 * See the LICENSE file in the root directory of this source tree. 301 */const Kl=Y("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/** 302 * @license lucide-react v0.462.0 - ISC 303 * 304 * This source code is licensed under the ISC license. 305 * See the LICENSE file in the root directory of this source tree. 306 */const Pg=Y("QrCode",[["rect",{width:"5",height:"5",x:"3",y:"3",rx:"1",key:"1tu5fj"}],["rect",{width:"5",height:"5",x:"16",y:"3",rx:"1",key:"1v8r4q"}],["rect",{width:"5",height:"5",x:"3",y:"16",rx:"1",key:"1x03jg"}],["path",{d:"M21 16h-3a2 2 0 0 0-2 2v3",key:"177gqh"}],["path",{d:"M21 21v.01",key:"ents32"}],["path",{d:"M12 7v3a2 2 0 0 1-2 2H7",key:"8crl2c"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M12 3h.01",key:"n36tog"}],["path",{d:"M12 16v.01",key:"133mhm"}],["path",{d:"M16 12h1",key:"1slzba"}],["path",{d:"M21 12v.01",key:"1lwtk9"}],["path",{d:"M12 21v-1",key:"1880an"}]]);/** 307 * @license lucide-react v0.462.0 - ISC 308 * 309 * This source code is licensed under the ISC license. 310 * See the LICENSE file in the root directory of this source tree. 311 */const ip=Y("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/** 312 * @license lucide-react v0.462.0 - ISC 313 * 314 * This source code is licensed under the ISC license. 315 * See the LICENSE file in the root directory of this source tree. 316 */const FI=Y("Send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);/** 317 * @license lucide-react v0.462.0 - ISC 318 * 319 * This source code is licensed under the ISC license. 320 * See the LICENSE file in the root directory of this source tree. 321 */const LI=Y("Settings2",[["path",{d:"M20 7h-9",key:"3s1dr2"}],["path",{d:"M14 17H5",key:"gfn3mx"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]]);/** 322 * @license lucide-react v0.462.0 - ISC 323 * 324 * This source code is licensed under the ISC license. 325 * See the LICENSE file in the root directory of this source tree. 326 */const HI=Y("Share2",[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]]);/** 327 * @license lucide-react v0.462.0 - ISC 328 * 329 * This source code is licensed under the ISC license. 330 * See the LICENSE file in the root directory of this source tree. 331 */const ii=Y("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",ke
331y:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** 332 * @license lucide-react v0.462.0 - ISC 333 * 334 * This source code is licensed under the ISC license. 335 * See the LICENSE file in the root directory of this source tree. 336 */const UI=Y("ShoppingCart",[["circle",{cx:"8",cy:"21",r:"1",key:"jimo8o"}],["circle",{cx:"19",cy:"21",r:"1",key:"13723u"}],["path",{d:"M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12",key:"9zh506"}]]);/** 337 * @license lucide-react v0.462.0 - ISC 338 * 339 * This source code is licensed under the ISC license. 340 * See the LICENSE file in the root directory of this source tree. 341 */const zI=Y("SlidersHorizontal",[["line",{x1:"21",x2:"14",y1:"4",y2:"4",key:"obuewd"}],["line",{x1:"10",x2:"3",y1:"4",y2:"4",key:"1q6298"}],["line",{x1:"21",x2:"12",y1:"12",y2:"12",key:"1iu8h1"}],["line",{x1:"8",x2:"3",y1:"12",y2:"12",key:"ntss68"}],["line",{x1:"21",x2:"16",y1:"20",y2:"20",key:"14d8ph"}],["line",{x1:"12",x2:"3",y1:"20",y2:"20",key:"m0wm8r"}],["line",{x1:"14",x2:"14",y1:"2",y2:"6",key:"14e1ph"}],["line",{x1:"8",x2:"8",y1:"10",y2:"14",key:"1i6ji0"}],["line",{x1:"16",x2:"16",y1:"18",y2:"22",key:"1lctlv"}]]);/** 342 * @license lucide-react v0.462.0 - ISC 343 * 344 * This source code is licensed under the ISC license. 345 * See the LICENSE file in the root directory of this source tree. 346 */const Rg=Y("Smartphone",[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]]);/** 347 * @license lucide-react v0.462.0 - ISC 348 * 349 * This source code is licensed under the ISC license. 350 * See the LICENSE file in the root directory of this source tree. 351 */const $I=Y("Stamp",[["path",{d:"M5 22h14",key:"ehvnwv"}],["path",{d:"M19.27 13.73A2.5 2.5 0 0 0 17.5 13h-11A2.5 2.5 0 0 0 4 15.5V17a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-1.5c0-.66-.26-1.3-.73-1.77Z",key:"1sy9ra"}],["path",{d:"M14 13V8.5C14 7 15 7 15 5a3 3 0 0 0-3-3c-1.66 0-3 1-3 3s1 2 1 3.5V13",key:"cnxgux"}]]);/** 352 * @license lucide-react v0.462.0 - ISC 353 * 354 * This source code is licensed under the ISC license. 355 * See the LICENSE file in the root directory of this source tree. 356 */const Hr=Y("Star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);/** 357 * @license lucide-react v0.462.0 - ISC 358 * 359 * This source code is licensed under the ISC license. 360 * See the LICENSE file in the root directory of this source tree. 361 */const qw=Y("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);/** 362 * @license lucide-react v0.462.0 - ISC 363 * 364 * This source code is licensed under the ISC license. 365 * See the LICENSE file in the root directory of this source tree. 366 */const GI=Y("UserPlus",[["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"}],["line",{x1:"19",x2:"19",y1:"8",y2:"14",key:"1bvyxn"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]]);/** 367 * @license lucide-react v0.462.0 - ISC 368 * 369 * This source code is licensed under the ISC license. 370 * See the LICENSE file in the root directory of this source tree. 371 */const lp=Y("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"}]]);/** 372 * @license lucide-react v0.462.0 - ISC 373 * 374 * This source code is licensed under the ISC license. 375 * See the LICENSE file in the root directory of this source tree. 376 */const QI=Y("UtensilsCrossed",[["path",{d:"m16 2-2.3 2.3a3 3 0 0 0 0 4.2l1.8 1.8a3 3 0 0 0 4.2 0L22 8",key:"n7qcjb"}],["path",{d:"M15 15 3.3 3.3a4.2 4.2 0 0 0 0 6l7.3 7.3c.7.7 2 .7 2.8 0L15 15Zm0 0 7 7",key:"d0u48b"}],["path",{d:"m2.1 21.8 6.4-6.3",key:"yn04lh"}],["path",{d:"m19 5-7 7",key:"194lzd"}]]);/** 377 * @license lucide-react v0.462.0 - ISC 378 * 379 * This source code is licensed under the ISC license. 380 * See the LICENSE file in the root directory of this source tree. 381 */const WI=Y("Video",[["path",{d:"m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5",key:"ftymec"}],["rect",{x:"2",y:"6",width:"14",height:"12",rx:"2",key:"158x01"}]]);/** 382 * @license lucide-react v0.462.0 - ISC 383 * 384 * This source code is licensed under the ISC license. 385 * See the LICENSE file in the root directory of this source tree. 386 */const qI=Y("WifiOff",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}
vendor: 9,025 bytes, lines 386-406
386],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);/** 387 * @license lucide-react v0.462.0 - ISC 388 * 389 * This source code is licensed under the ISC license. 390 * See the LICENSE file in the root directory of this source tree. 391 */const VI=Y("Wifi",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["path",{d:"M5 12.859a10 10 0 0 1 14 0",key:"1x1e6c"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]]);/** 392 * @license lucide-react v0.462.0 - ISC 393 * 394 * This source code is licensed under the ISC license. 395 * See the LICENSE file in the root directory of this source tree. 396 */const XI=Y("Wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]);/** 397 * @license lucide-react v0.462.0 - ISC 398 * 399 * This source code is licensed under the ISC license. 400 * See the LICENSE file in the root directory of this source tree. 401 */const Bt=Y("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);/** 402 * @license lucide-react v0.462.0 - ISC 403 * 404 * This source code is licensed under the ISC license. 405 * See the LICENSE file in the root directory of this source tree. 406 */const YI=Y("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="-",KI=e=>{const t=ZI(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:i=>{const l=i.split(cp);return l[0]===""&&l.length!==1&&l.shift(),Vw(l,t)||JI(i)},getConflictingClassGroupIds:(i,l)=>{const c=n[i]||[];return l&&r[i]?[...c,...r[i]]:c}}},Vw=(e,t)=>{var i;if(e.length===0)return t.classGroupId;const n=e[0],r=t.nextPart.get(n),a=r?Vw(e.slice(1),r):void 0;if(a)return a;if(t.validators.length===0)return;const s=e.join(cp);return(i=t.validators.find(({validator:l})=>l(s)))==null?void 0:i.classGroupId},Dg=/^\[(.+)\]$/,JI=e=>{if(Dg.test(e)){const t=Dg.exec(e)[1],n=t==null?void 0:t.substring(0,t.indexOf(":"));if(n)return"arbitrary.."+n}},ZI=e=>{const{theme:t,prefix:n}=e,r={nextPart:new Map,validators:[]};return tk(Object.entries(e.classGroups),n).forEach(([s,i])=>{xh(i,r,s,t)}),r},xh=(e,t,n,r)=>{e.forEach(a=>{if(typeof a=="string"){const s=a===""?t:Mg(t,a);s.classGroupId=n;return}if(typeof a=="function"){if(ek(a)){xh(a(r),t,n,r);return}t.validators.push({validator:a,classGroupId:n});return}Object.entries(a).forEach(([s,i])=>{xh(i,Mg(t,s),n,r)})})},Mg=(e,t)=>{let n=e;return t.split(cp).forEach(r=>{n.nextPart.has(r)||n.nextPart.set(r,{nextPart:new Map,validators:[]}),n=n.nextPart.get(r)}),n},ek=e=>e.isThemeGetter,tk=(e,t)=>t?e.map(([n,r])=>{const a=r.map(s=>typeof s=="string"?t+s:typeof s=="object"?Object.fromEntries(Object.entries(s).map(([i,l])=>[t+i,l])):s);return[n,a]}):e,nk=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=new Map,r=new Map;const a=(s,i)=>{n.set(s,i),t++,t>e&&(t=0,r=n,n=new Map)};return{get(s){let i=n.get(s);if(i!==void 0)return i;if((i=r.get(s))!==void 0)return a(s,i),i},set(s,i){n.has(s)?n.set(s,i):a(s,i)}}},Xw="!",rk=e=>{const{separator:t,experimentalParseClassName:n}=e,r=t.length===1,a=t[0],s=t.length,i=l=>{const c=[];let d=0,u=0,m;for(let v=0;v<l.length;v++){let x=l[v];if(d===0){if(x===a&&(r||l.slice(v,v+s)===t)){c.push(l.slice(u,v)),u=v+s;continue}if(x==="/"){m=v;continue}}x==="["?d++:x==="]"&&d--}const p=c.length===0?l:l.substring(u),f=p.startsWith(Xw),w=f?p.substring(1):p,y=m&&m>u?m-u:void 0;return{modifiers:c,hasImportantModifier:f,baseClassName:w,maybePostfixModifierPosition:y}};return n?l=>n({className:l,parseClassName:i}):i},ok=e=>{if(e.length<=1)return e;const t=[];let n=[];return e.forEach(r=>{r[0]==="["?(t.push(...n.sort(),r),n=[]):n.push(r)}),t.push(...n.sort()),t},ak=e=>({cache:nk(e.cacheSize),parseClassName:rk(e),...KI(e)}),sk=/\s+/,ik=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:a}=t,s=[],i=e.trim().split(sk);let l="";for(let c=i.length-1;c>=0;c-=1){const d=i[c],{modifiers:u,hasImportantModifier:m,baseClassName:p,maybePostfixModifierPosition:f}=n(d);let w=!!f,y=r(w?p.substring(0,f):p);if(!y){if(!w){l=d+(l.length>0?" "+l:l);continue}if(y=r(p),!y){l=d+(l.length>0?" "+l:l);continue}w=!1}const v=ok(u).join(":"),x=m?v+Xw:v,g=x+y;if(s.includes(g))continue;s.push(g);const b=a(y,w);for(let j=0;j<b.length;++j){const N=b[j];s.push(x+N)}l=d+(l.length>0?" "+l:l)}return l};function lk(){let e=0,t,n,r="";for(;e<arguments.length;)(t=arguments[e++])&&(n=Yw(t))&&(r&&(r+=" "),r+=n);return r}const Yw=e=>{if(typeof e=="string")return e;let t,n="";for(let r=0;r<e.length;r++)e[r]&&(t=Yw(e[r]))&&(n&&(n+=" "),n+=t);return n};function ck(e,...t){let n,r,a,s=i;function i(c){const d=t.reduce((u,m)=>m(u),e());return n=ak(d),r=n.cache.get,a=n.cache.set,s=l,l(c)}function l(c){const d=r(c);if(d)return d;const u=ik(c,n);return a(c,u),u}return function(){return s(lk.apply(null,arguments))}}const De=e=>{const t=n=>n[e]||[];return t.isThemeGetter=!0,t},Kw=/^\[(?:([a-z-]+):)?(.+)\]$/i,dk=/^\d+\/\d+$/,uk=new Set(["px","full","screen"]),hk=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,mk=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,pk=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,fk=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,gk=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,$n=e=>ra(e)||uk.has(e)||dk.test(e),hr=e=>Ba(e,"length",Ak),ra=e=>!!e&&!Number.isNaN(Number(e)),Kd=e=>Ba(e,"number",ra),es=e=>!!e&&Number.isInteger(Number(e)),yk=e=>e.endsWith("%")&&ra(e.slice(0,-1)),le=e=>Kw.test(e),mr=e=>hk.test(e),xk=new Set(["length","size","percentage"]),vk=e=>Ba(e,xk,Jw),bk=e=>Ba(e,"position",Jw),wk=new Set(["image","url"]),jk=e=>Ba(e,wk,Sk),Nk=e=>Ba(e,"",Ek),ts=()=>!0,Ba=(e,t,n)=>{const r=Kw.exec(e);return r?r[1]?typeof t=="string"?r[1]===t:t.has(r[1]):n(r[2]):!1},Ak=e=>mk.test(e)&&!pk.test(e),Jw=()=>!1,Ek=e=>fk.test(e),Sk=e=>gk.test(e),Ik=()=>{const e=De("colors"),t=De("spacing"),n=De("blur"),r=De("brightness"),a=De("borderColor"),s=De("borderRadius"),i=De("borderSpacing"),l=De("borderWidth"),c=De("contrast"),d=De("grayscale"),u=De("hueRotate"),m=De("invert"),p=De("gap"),f=De("gradientColorStops"),w=De("gradientColorStopPositions"),y=De("inset"),v=De("margin"),x=De("opacity"),g=De("padding"),b=De("saturate"),j=De("scale"),N=De("sepia"),A=De("skew"),E=De("space"),S=De("translate"),D=()=>["auto","contain","none"],R=()=>["auto","hidden","clip","visible","scroll"],$=()=>["auto",le,t],k=()=>[le,t],O=()=>["",$n,hr],_=()=>["auto",ra,le],W=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],U=()=>["solid","dashed","dotted","double","none"],V=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],T=()=>["start","end","center","between","around","evenly","stretch"],I=()=>["","0",le],B=()=>["auto","avoid","all","avoid-page","page","left","right","column"],z=()=>[ra,le];return{cacheSize:500,separator:":",theme:{colors:[ts],spacing:[$n,hr],blur:["none","",mr,le],brightness:z(),borderColor:[e],borderRadius:["none","","full",mr,le],borderSpacing:k(),borderWidth:O(),contrast:z(),grayscale:I(),hueRotate:z(),invert:I(),gap:k(),gradientColorStops:[e],gradientColorStopPositions:[yk,hr],inset:$(),margin:$(),opacity:z(),padding:k(),saturate:z(),scale:z(),sepia:I(),skew:z(),space:k(),translate:k()},classGroups:{aspect:[{aspect:["auto","square","video",le]}],container:["container"],columns:[{columns:[mr]}],"break-after":[{"break-after":B()}],"break-before":[{"break-before":B()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...W(),le]}],overflow:[{overflow:R()}],"overflow-x":[{"overflow-x":R()}],"overflow-y":[{"overflow-y":R()}],overscroll:[{overscroll:D()}],"overscroll-x":[{"overscroll-x":D()}],"overscroll-y":[{"overscroll-y":D()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[y]}],"inset-x":[{"inset-x":[y]}],"inset-y":[{"inset-y":[y]}],start:[{start:[y]}],end:[{end:[y]}],top:[{top:[y]}
vendor: 9,947 bytes, line 406
406],right:[{right:[y]}],bottom:[{bottom:[y]}],left:[{left:[y]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",es,le]}],basis:[{basis:$()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",le]}],grow:[{grow:I()}],shrink:[{shrink:I()}],order:[{order:["first","last","none",es,le]}],"grid-cols":[{"grid-cols":[ts]}],"col-start-end":[{col:["auto",{span:["full",es,le]},le]}],"col-start":[{"col-start":_()}],"col-end":[{"col-end":_()}],"grid-rows":[{"grid-rows":[ts]}],"row-start-end":[{row:["auto",{span:[es,le]},le]}],"row-start":[{"row-start":_()}],"row-end":[{"row-end":_()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",le]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",le]}],gap:[{gap:[p]}],"gap-x":[{"gap-x":[p]}],"gap-y":[{"gap-y":[p]}],"justify-content":[{justify:["normal",...T()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...T(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...T(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[g]}],px:[{px:[g]}],py:[{py:[g]}],ps:[{ps:[g]}],pe:[{pe:[g]}],pt:[{pt:[g]}],pr:[{pr:[g]}],pb:[{pb:[g]}],pl:[{pl:[g]}],m:[{m:[v]}],mx:[{mx:[v]}],my:[{my:[v]}],ms:[{ms:[v]}],me:[{me:[v]}],mt:[{mt:[v]}],mr:[{mr:[v]}],mb:[{mb:[v]}],ml:[{ml:[v]}],"space-x":[{"space-x":[E]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[E]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",le,t]}],"min-w":[{"min-w":[le,t,"min","max","fit"]}],"max-w":[{"max-w":[le,t,"none","full","min","max","fit","prose",{screen:[mr]},mr]}],h:[{h:[le,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[le,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[le,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[le,t,"auto","min","max","fit"]}],"font-size":[{text:["base",mr,hr]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",Kd]}],"font-family":[{font:[ts]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",le]}],"line-clamp":[{"line-clamp":["none",ra,Kd]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",$n,le]}],"list-image":[{"list-image":["none",le]}],"list-style-type":[{list:["none","disc","decimal",le]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[x]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[x]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...U(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",$n,hr]}],"underline-offset":[{"underline-offset":["auto",$n,le]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:k()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",le]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",le]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[x]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...W(),bk]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",vk]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},jk]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[w]}],"gradient-via-pos":[{via:[w]}],"gradient-to-pos":[{to:[w]}],"gradient-from":[{from:[f]}],"gradient-via":[{via:[f]}],"gradient-to":[{to:[f]}],rounded:[{rounded:[s]}],"rounded-s":[{"rounded-s":[s]}],"rounded-e":[{"rounded-e":[s]}],"rounded-t":[{"rounded-t":[s]}],"rounded-r":[{"rounded-r":[s]}],"rounded-b":[{"rounded-b":[s]}],"rounded-l":[{"rounded-l":[s]}],"rounded-ss":[{"rounded-ss":[s]}],"rounded-se":[{"rounded-se":[s]}],"rounded-ee":[{"rounded-ee":[s]}],"rounded-es":[{"rounded-es":[s]}],"rounded-tl":[{"rounded-tl":[s]}],"rounded-tr":[{"rounded-tr":[s]}],"rounded-br":[{"rounded-br":[s]}],"rounded-bl":[{"rounded-bl":[s]}],"border-w":[{border:[l]}],"border-w-x":[{"border-x":[l]}],"border-w-y":[{"border-y":[l]}],"border-w-s":[{"border-s":[l]}],"border-w-e":[{"border-e":[l]}],"border-w-t":[{"border-t":[l]}],"border-w-r":[{"border-r":[l]}],"border-w-b":[{"border-b":[l]}],"border-w-l":[{"border-l":[l]}],"border-opacity":[{"border-opacity":[x]}],"border-style":[{border:[...U(),"hidden"]}],"divide-x":[{"divide-x":[l]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[l]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[x]}],"divide-style":[{divide:U()}],"border-color":[{border:[a]}],"border-color-x":[{"border-x":[a]}],"border-color-y":[{"border-y":[a]}],"border-color-s":[{"border-s":[a]}],"border-color-e":[{"border-e":[a]}],"border-color-t":[{"border-t":[a]}],"border-color-r":[{"border-r":[a]}],"border-color-b":[{"border-b":[a]}],"border-color-l":[{"border-l":[a]}],"divide-color":[{divide:[a]}],"outline-style":[{outline:["",...U()]}],"outline-offset":[{"outline-offset":[$n,le]}],"outline-w":[{outline:[$n,hr]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:O()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[x]}],"ring-offset-w":[{"ring-offset":[$n,hr]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",mr,Nk]}],"shadow-color":[{shadow:[ts]}],opacity:[{opacity:[x]}],"mix-blend":[{"mix-blend":[...V(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":V()}],filter:[{filter:["","none"]}],blur:[{blur:[n]}],brightness:[{brightness:[r]}],contrast:[{contrast:[c]}],"drop-shadow":[{"drop-shadow":["","none",mr,le]}],grayscale:[{grayscale:[d]}],"hue-rotate":[{"hue-rotate":[u]}],invert:[{invert:[m]}],saturate:[{saturate:[b]}],sepia:[{sepia:[N]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[n]}],"backdrop-brightness":[{"backdrop-brightness":[r]}],"backdrop-contrast":[{"backdrop-contrast":[c]}],"backdrop-grayscale":[{"backdrop-grayscale":[d]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[u]}],"backdrop-invert":[{"backdrop-invert":[m]}],"backdrop-opacity":[{"backdrop-opacity":[x]}],"backdrop-saturate":[{"backdrop-saturate":[b]}],"backdrop-sepia":[{"backdrop-sepia":[N]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[i]}],"border-spacing-x":[{"border-spacing-x":[i]}],"border-spacing-y":[{"border-spacing-y":[i]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",le]}],duration:[{duration:z()}],ease:[{ease:["linear","in","out","in-out",le]}],delay:[{delay:z()}],animate:[{animate:["none","spin","ping","pulse","bounce",le]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[j]}],"scale-x":[{"scale-x":[j]}],"scale-y":[{"scale-y":[j]}],rotate:[{rotate:[es,le]}],"translate-x":[{"translate-x":[S]}],"translate-y":[{"translate-y":[S]}],"skew-x":[{"skew-x":[A]}],"skew-y":[{"skew-y":[A]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",le]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",le]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":k()}],"scroll-mx":[{"scroll-mx":k()}],"scroll-my":[{"scroll-my":k()}],"scroll-ms":[{"scroll-ms":k()}],"scroll-me":[{"scroll-me":k()}],"scroll-mt":[{"scroll-mt":k()}],"scroll-mr":[{"scroll-mr":k()}],"scroll-mb":[{"scroll-mb":k()}],"scroll-ml":[{"scroll-ml":k()}],"scroll-p":[{"scroll-p":k()}],"scroll-px":[{"scroll-px":k()}],"scroll-py":[{"scroll-py":k()}],"scroll-ps":[{"scroll-ps":k()}],"scroll-pe":[{"scroll-pe":k()}],"scroll-pt":[{"scroll-pt":k()}],"scroll-pr":[{"scroll-pr":k()}],"scroll-pb":[{"scroll-pb":k()}],"scroll-pl":[{"scroll-pl":k()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}
vendor: 4,647 bytes, line 406
406],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",le]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[$n,hr,Kd]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},kk=ck(Ik);function ke(...e){return kk(Fw(e))}const Ck=aI,Zw=h.forwardRef(({className:e,...t},n)=>o.jsx(Pw,{ref:n,className:ke("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",e),...t}));Zw.displayName=Pw.displayName;const Tk=Lw("group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",{variants:{variant:{default:"border bg-background text-foreground",destructive:"destructive group border-destructive bg-destructive text-destructive-foreground"}},defaultVariants:{variant:"default"}}),e0=h.forwardRef(({className:e,variant:t,...n},r)=>o.jsx(Rw,{ref:r,className:ke(Tk({variant:t}),e),...n}));e0.displayName=Rw.displayName;const Pk=h.forwardRef(({className:e,...t},n)=>o.jsx(_w,{ref:n,className:ke("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors group-[.destructive]:border-muted/40 hover:bg-secondary group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 group-[.destructive]:focus:ring-destructive disabled:pointer-events-none disabled:opacity-50",e),...t}));Pk.displayName=_w.displayName;const t0=h.forwardRef(({className:e,...t},n)=>o.jsx(Bw,{ref:n,className:ke("absolute right-2 top-2 rounded-md p-1 text-foreground
406/50 opacity-0 transition-opacity group-hover:opacity-100 group-[.destructive]:text-red-300 hover:text-foreground group-[.destructive]:hover:text-red-50 focus:opacity-100 focus:outline-none focus:ring-2 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",e),"toast-close":"",...t,children:o.jsx(Bt,{className:"h-4 w-4"})}));t0.displayName=Bw.displayName;const n0=h.forwardRef(({className:e,...t},n)=>o.jsx(Dw,{ref:n,className:ke("text-sm font-semibold",e),...t}));n0.displayName=Dw.displayName;const r0=h.forwardRef(({className:e,...t},n)=>o.jsx(Mw,{ref:n,className:ke("text-sm opacity-90",e),...t}));r0.displayName=Mw.displayName;function Rk(){const{toasts:e}=dw();return o.jsxs(Ck,{children:[e.map(function({id:t,title:n,description:r,action:a,...s}){return o.jsxs(e0,{...s,children:[o.jsxs("div",{className:"grid gap-1",children:[n&&o.jsx(n0,{children:n}),r&&o.jsx(r0,{children:r})]}),a,o.jsx(t0,{})]},t)}),o.jsx(Zw,{})]})}var Dk=e=>{switch(e){case"success":return Bk;case"info":return Fk;case"warning":return Ok;case"error":return Lk;default:return null}},Mk=Array(12).fill(0),_k=({visible:e,className:t})=>F.createElement("div",{className:["sonner-loading-wrapper",t].filter(Boolean).join(" "),"data-visible":e},F.createElement("div",{className:"sonner-spinner"},Mk.map((n,r)=>F.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${r}`})))),Bk=F.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},F.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),Ok=F.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},F.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),Fk=F.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},F.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),Lk=F.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},F.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),Hk=F.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},F.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),F.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),Uk=()=>{let[e,t]=F.useState(document.hidden);return F.useEffect(()=>{let n=()=>{t(document.hidden)};return document.addEventListener("visibilitychange",n),()=>window.removeEventListener("visibilitychange",n)},[]),e},vh=1,zk=class{constructor(){this.subscribe=e=>(this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)}),this.publish=e=>{this.subscribers.forEach(t=>t(e))},this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e]},this.create=e=>{var t;let{message:n,...r}=e,a=typeof(e==null?void 0:e.id)=="number"||((t=e.id)==null?void 0:t.length)>0?e.id:vh++,s=this.toasts.find(l=>l.id===a),i=e.dismissible===void 0?!0:e.dismissible;return this.dismissedToasts.has(a)&&this.dismissedToasts.delete(a),s?this.toasts=this.toasts.map(l=>l.id===a?(this.publish({...l,...e,id:a,title:n}),{...l,...e,id:a,dismissible:i,title:n}):l):this.addToast({title:n,...r,dismissible:i,id:a}),a},this.dismiss=e=>
406(this.dismissedToasts.add(e),e||this.toasts.forEach(t=>{this.subscribers.forEach(n=>n({id:t.id,dismiss:!0}))}),this.subscribers.forEach(t=>t({id:e,dismiss:!0})),e),this.message=(e,t)=>this.create({...t,message:e}),this.error=(e,t)=>this.create({...t,message:e,type:"error"}),this.success=(e,t)=>this.create({...t,type:"success",message:e}),this.info=(e,t)=>this.create({...t,type:"info",message:e}),this.warning=(e,t)=>this.create({...t,type:"warning",message:e}),this.loading=(e,t)=>this.create({...t,type:"loading",message:e}),this.promise=(e,t)=>{if(!t)return;let n;t.loading!==void 0&&(n=this.create({...t,promise:e,type:"loading",message:t.loading,description:typeof t.description!="function"?t.description:void 0}));let r=e instanceof Promise?e:e(),a=n!==void 0,s,i=r.then(async c=>{if(s=["resolve",c],F.isValidElement(c))a=!1,this.create({id:n,type:"default",message:c});else if(Gk(c)&&!c.ok){a=!1;let d=typeof t.error=="function"?await t.error(`HTTP error! status: ${c.status}`):t.error,u=typeof t.description=="function"?await t.description(`HTTP error! status: ${c.status}`):t.description;this.create({id:n,type:"error",message:d,description:u})}else if(t.success!==void 0){a=!1;let d=typeof t.success=="function"?await t.success(c):t.success,u=typeof t.description=="function"?await t.description(c):t.description;this.create({id:n,type:"success",message:d,description:u})}}).catch(async c=>{if(s=["reject",c],t.error!==void 0){a=!1;let d=typeof t.error=="function"?await t.error(c):t.error,u=typeof t.description=="function"?await t.description(c):t.description;this.create({id:n,type:"error",message:d,description:u})}}).finally(()=>{var c;a&&(this.dismiss(n),n=void 0),(c=t.finally)==null||c.call(t)}),l=()=>new Promise((c,d)=>i.then(()=>s[0]==="reject"?d(s[1]):c(s[1])).catch(d));return typeof n!="string"&&typeof n!="number"?{unwrap:l}:Object.assign(n,{unwrap:l})},this.custom=(e,t)=>{let n=(t==null?void 0:t.id)||vh++;return this.create({jsx:e(n),id:n,...t}),n},this.getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},At=new zk,$k=(e,t)=>{let n=(t==null?void 0:t.id)||vh++;return At.addToast({title:e,...t,id:n}),n},Gk=e=>e&&typeof e=="object"&&"ok"in e&&typeof e.ok=="boolean"&&"status"in e&&typeof e.status=="number",Qk=$k,Wk=()=>At.toasts,qk=()=>At.getActiveToasts();Object.assign(Qk,{success:At.success,info:At.info,warning:At.warning,error:At.error,custom:At.custom,message:At.message,promise:At.promise,dismiss:At.dismiss,loading:At.loading},{getHistory:Wk,getToasts:qk});function Vk(e,{insertAt:t}={}){if(typeof document>"u")return;let n=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css",t==="top"&&n.firstChild?n.insertBefore(r,n.firstChild):n.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}Vk(`:where(html[dir="ltr"]),:where([data-sonner-toaster][dir="ltr"]){--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}:where(html[dir="rtl"]),:where([data-sonner-toaster][dir="rtl"]){--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}:where([data-sonner-toaster]){position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999;transition:transform .4s ease}:where([data-sonner-toaster][data-lifted="true"]){transform:translateY(-10px)}@media (hover: none) and (pointer: coarse){:where([data-sonner-toaster][data-lifted="true"]){transform:none}}:where([data-sonner-toaster][data-x-position="right"]){right:var(--offset-right)}:where([data-sonner-toaster][data-x-position="left"]){left:var(--offset-left)}:where([data-sonner-toaster][data-x-position="center"]){left:50%;transform:translate(-50%)}:where([data-sonner-toaster][data-y-position="top"]){top:var(--offset-top)}:where([data-sonner-toaster][data-y-position="bottom"]){bottom:var(--offset-bottom)}:where([data-sonner-toast]){--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}:where([data-sonner-toast][data-styled="true"]){padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast][data-y-position="top"]){top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position="bottom"]){bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([data-icon]){display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}:where([data-sonner-toast][data-promise="true"]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([data-content]){display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px #0006}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme="dark"]) :where([data-cancel]){background:rgba(255,255,255,.3)}:where([data-sonner-toast]) :where([data-close-button]){position:absolute;
406left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast] [data-close-button]{background:var(--gray1)}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast]) :where([data-disabled="true"]){cursor:not-allowed}:where([data-sonner-toast]):hover :where([data-close-button]):hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping="true"]):before{content:"";position:absolute;left:-50%;right:-50%;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position="top"][data-swiping="true"]):before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position="bottom"][data-swiping="true"]):before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping="false"][data-removed="true"]):before{content:"";position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast]):after{content:"";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted="true"]){--y: translateY(0);opacity:1}:where([data-sonner-toast][data-expanded="false"][data-front="false"]){--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded="false"][data-front="false"][data-styled="true"])>*{opacity:0}
406:where([data-sonner-toast][data-visible="false"]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted="true"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed="true"][data-front="true"][data-swipe-out="false"]){--y: translateY(calc(var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="false"]){--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}:where([data-sonner-toast][data-removed="true"][data-front="false"]):before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y, 0px)) translate(var(--swipe-amount-x, 0px));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg: #fff;--normal-border: var(--gray4);--normal-text: var(--gray12);--success-bg: hsl(143, 85%, 96%);--success-border: hsl(145, 92%, 91%);--success-text: hsl(140, 100%, 27%);--info-bg: hsl(208, 100%, 97%);--info-border: hsl(221, 91%, 91%);--info-text: hsl(210, 92%, 45%);--warning-bg: hsl(49, 100%, 97%);--warning-border: hsl(49, 91%, 91%);--warning-text: hsl(31, 92%, 45%);--error-bg: hsl(359, 100%, 97%);--error-border: hsl(359, 100%, 94%);--error-text: hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg: #fff;--normal-border: var(--gray3);--normal-text: var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg: #000;--normal-bg-hover: hsl(0, 0%, 12%);--normal-border: hsl(0, 0%, 20%);--normal-border-hover: hsl(0, 0%, 25%);--normal-text: var(--gray1);--success-bg: hsl(150, 100%, 6%);--success-border: hsl(147, 100%, 12%);--success-text: hsl(150, 86%, 65%);--info-bg: hsl(215, 100%, 6%);--info-border: hsl(223, 100%, 12%);--info-text: hsl(216, 87%, 65%);--warning-bg: hsl(64, 100%, 6%);--warning-border: hsl(60, 100%, 12%);--warning-text: hsl(46, 87%, 65%);--error-bg: hsl(358, 76%, 10%);--error-border: hsl(357, 89%, 16%);
406--error-text: hsl(358, 100%, 81%)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size: 16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)} 407`);function Ui(e){return e.label!==void 0}var Xk=3,Yk="32px",Kk="16px",_g=4e3,Jk=356,Zk=14,eC=20,tC=200;function tn(...e){return e.filter(Boolean).join(" ")}function nC(e){let[t,n]=e.split("-"),r=[];return t&&r.push(t),n&&r.push(n),r}var rC=e=>{var t,n,r,a,s,i,l,c,d,u,m;let{invert:p,toast:f,unstyled:w,interacting:y,setHeights:v,visibleToasts:x,heights:g,index:b,toasts:j,expanded:N,removeToast:A,defaultRichColors:E,closeButton:S,style:D,cancelButtonStyle:R,actionButtonStyle:$,className:k="",descriptionClassName:O="",duration:_,position:W,gap:U,loadingIcon:V,expandByDefault:T,classNames:I,icons:B,closeButtonAriaLabel:z="Close toast",pauseWhenPageIsHidden:G}=e,[J,Z]=F.useState(null),[xe,Ce]=F.useState(null),[Q,ge]=F.useState(!1),[Se,me]=F.useState(!1),[ue,pe]=F.useState(!1),[C,q]=F.useState(!1),[P,H]=F.useState(!1),[ee,ve]=F.useState(0),[Te,Pe]=F.useState(0),tt=F.useRef(f.duration||_||_g),wn=F.useRef(null),ft=F.useRef(null),xd=b===0,jN=b+1<=x,Ht=f.type,To=f.dismissible!==!1,NN=f.className||"",AN=f.descriptionClassName||"",bi=F.useMemo(()=>g.findIndex(ae=>ae.toastId===f.id)||0,[g,f.id]),EN=F.useMemo(()=>{var ae;return(ae=f.closeButton)!=null?ae:S},[f.closeButton,S]),lf=F.useMemo(()=>f.duration||_||_g,[f.duration,_]),vd=F.useRef(0),Po=F.useRef(0),cf=F.useRef(0),Ro=F.useRef(null),[SN,IN]=W.split("-"),df=F.useMemo(()=>g.reduce((ae,Ie,Oe)=>Oe>=bi?ae:ae+Ie.height,0),[g,bi]),uf=Uk(),kN=f.invert||p,bd=Ht==="loading";Po.current=F.useMemo(()=>bi*U+df,[bi,df]),F.useEffect(()=>{tt.current=lf},[lf]),F.useEffect(()=>{ge(!0)},[]),F.useEffect(()=>{let ae=ft.current;if(ae){let Ie=ae.getBoundingClientRect().height;return Pe(Ie),v(Oe=>[{toastId:f.id,height:Ie,position:f.position},...Oe]),()=>v(Oe=>Oe.filter(Kt=>Kt.toastId!==f.id))}},[v,f.id]),F.useLayoutEffect(()=>{if(!Q)return;let ae=ft.current,Ie=ae.style.height;ae.style.height="auto";let Oe=ae.getBoundingClientRect().height;ae.style.height=Ie,Pe(Oe),v(Kt=>Kt.find(Jt=>Jt.toastId===f.id)?Kt.map(Jt=>Jt.toastId===f.id?{...Jt,height:Oe}:Jt):[{toastId:f.id,height:Oe,position:f.position}
407,...Kt])},[Q,f.title,f.description,v,f.id]);let lr=F.useCallback(()=>{me(!0),ve(Po.current),v(ae=>ae.filter(Ie=>Ie.toastId!==f.id)),setTimeout(()=>{A(f)},tC)},[f,A,v,Po]);F.useEffect(()=>{if(f.promise&&Ht==="loading"||f.duration===1/0||f.type==="loading")return;let ae;return N||y||G&&uf?(()=>{if(cf.current<vd.current){let Ie=new Date().getTime()-vd.current;tt.current=tt.current-Ie}cf.current=new Date().getTime()})():tt.current!==1/0&&(vd.current=new Date().getTime(),ae=setTimeout(()=>{var Ie;(Ie=f.onAutoClose)==null||Ie.call(f,f),lr()},tt.current)),()=>clearTimeout(ae)},[N,y,f,Ht,G,uf,lr]),F.useEffect(()=>{f.delete&&lr()},[lr,f.delete]);function CN(){var ae,Ie,Oe;return B!=null&&B.loading?F.createElement("div",{className:tn(I==null?void 0:I.loader,(ae=f==null?void 0:f.classNames)==null?void 0:ae.loader,"sonner-loader"),"data-visible":Ht==="loading"},B.loading):V?F.createElement("div",{className:tn(I==null?void 0:I.loader,(Ie=f==null?void 0:f.classNames)==null?void 0:Ie.loader,"sonner-loader"),"data-visible":Ht==="loading"},V):F.createElement(_k,{className:tn(I==null?void 0:I.loader,(Oe=f==null?void 0:f.classNames)==null?void 0:Oe.loader),visible:Ht==="loading"})}return F.createElement("li",{tabIndex:0,ref:ft,className:tn(k,NN,I==null?void 0:I.toast,(t=f==null?void 0:f.classNames)==null?void 0:t.toast,I==null?void 0:I.default,I==null?void 0:I[Ht],(n=f==null?void 0:f.classNames)==null?void 0:n[Ht]),"data-sonner-toast":"","data-rich-colors":(r=f.richColors)!=null?r:E,"data-styled":!(f.jsx||f.unstyled||w),"data-mounted":Q,"data-promise":!!f.promise,"data-swiped":P,"data-removed":Se,"data-visible":jN,"data-y-position":SN,"data-x-position":IN,"data-index":b,"data-front":xd,"data-swiping":ue,"data-dismissible":To,"data-type":Ht,"data-invert":kN,"data-swipe-out":C,"data-swipe-direction":xe,"data-expanded":!!(N||T&&Q),style:{"--index":b,"--toasts-before":b,"--z-index":j.length-b,"--offset":`${Se?ee:Po.current}px`,"--initial-height":T?"auto":`${Te}px`,...D,...f.style},onDragEnd:()=>{pe(!1),Z(null),Ro.current=null},onPointerDown:ae=>{bd||!To||(wn.current=new Date,ve(Po.current),ae.target.setPointerCapture(ae.pointerId),ae.target.tagName!=="BUTTON"&&(pe(!0),Ro.current={x:ae.clientX,y:ae.clientY}))},onPointerUp:()=>{var ae,Ie,Oe,Kt;if(C||!To)return;Ro.current=null;let Jt=Number(((ae=ft.current)==null?void 0:ae.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),cr=Number(((Ie=ft.current)==null?void 0:Ie.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),Jr=new Date().getTime()-((Oe=wn.current)==null?void 0:Oe.getTime()),Zt=J==="x"?Jt:cr,dr=Math.abs(Zt)/Jr;if(Math.abs(Zt)>=eC||dr>.11){ve(Po.current),(Kt=f.onDismiss)==null||Kt.call(f,f),Ce(J==="x"?Jt>0?"right":"left":cr>0?"down":"up"),lr(),q(!0),H(!1);return}pe(!1),Z(null)},onPointerMove:ae=>{var Ie,Oe,Kt,Jt;if(!Ro.current||!To||((Ie=window.getSelection())==null?void 0:Ie.toString().length)>0)return;let cr=ae.clientY-Ro.current.y,Jr=ae.clientX-Ro.current.x,Zt=(Oe=e.swipeDirections)!=null?Oe:nC(W);!J&&(Math.abs(Jr)>1||Math.abs(cr)>1)&&Z(Math.abs(Jr)>Math.abs(cr)?"x":"y");let dr={x:0,y:0};J==="y"?(Zt.includes("top")||Zt.includes("bottom"))&&(Zt.includes("top")&&cr<0||Zt.includes("bottom")&&cr>0)&&(dr.y=cr):J==="x"&&(Zt.includes("left")||Zt.includes("right"))&&(Zt.includes("left")&&Jr<0||Zt.includes("right")&&Jr>0)&&(dr.x=Jr),(Math.abs(dr.x)>0||Math.abs(dr.y)>0)&&H(!0),(Kt=ft.current)==null||Kt.style.setProperty("--swipe-amount-x",`${dr.x}px`),(Jt=ft.current)==null||Jt.style.setProperty("--swipe-amount-y",`${dr.y}px`)}},EN&&!f.jsx?F.createElement("button",{"aria-label":z,"data-disabled":bd,"data-close-button":!0,onClick:bd||!To?()=>{}:()=>{var ae;lr(),(ae=f.onDismiss)==null||ae.call(f,f)},className:tn(I==null?void 0:I.closeButton,(a=f==null?void 0:f.classNames)==null?void 0:a.closeButton)},(s=B==null?void 0:B.close)!=null?s:Hk):null,f.jsx||h.isValidElement(f.title)?f.jsx?f.jsx:typeof f.title=="function"?f.title():f.title:F.createElement(F.Fragment,null,Ht||f.icon||f.promise?F.createElement("div",{"data-icon":"",className:tn(I==null?void 0:I.icon,(i=f==null?void 0:f.classNames)==null?void 0:i.icon)},f.promise||f.type==="loading"&&!f.icon?f.icon||CN():null,f.type!=="loading"?f.icon||(B==null?void 0:B[Ht])||Dk(Ht):null):null,F.createElement("div",{"data-content":"",className:tn(I==null?void 0:I.content,(l=f==null?void 0:f.classNames)==null?void 0:l.content)},F.createElement("div",{"data-title":"",className:tn(I==null?void 0:I.title,(c=f==null?void 0:f.classNames)==null?void 0:c.title)},typeof f.title=="function"?f.title():f.title),f.description?F.createElement("div",{"data-description":"",className:tn(O,AN,I==null?void 0:I.description,(d=f==null?void 0:f.classNames)==null?void 0:d.description)},typeof f.description=="function"?f.description():f.description):null),h.isValidElement(f.cancel)?f.cancel:f.cancel&&Ui(f.cancel)?F.createElement("button",{"data-button":!0,"data-cancel":!0,style:f.cancelButtonStyle||R,onClick:ae=>{var Ie,Oe;Ui(f.cancel)&&To&&((Oe=(Ie=f.cancel).onClick)==null||Oe.call(Ie,ae),lr())},className:tn(I==null?void 0:I.cancelButton,(u=f==null?void 0:f.classNames)==null?void 0:u.cancelButton)},f.cancel.label):null,h.isValidElement(f.action)?f.action:f.action&&Ui(f.action)?F.createElement("button",{"data-button":!0,"data-action":!0,style:f.actionButtonStyle||$,onClick:ae=>{var Ie,Oe;Ui(f.action)&&((Oe=(Ie=f.action).onClick)==null||Oe.call(Ie,ae),!ae.defaultPrevented&&lr())},className:tn(I==null?void 0:I.actionButton,(m=f==null?void 0:f.classNames)==null?void 0:m.actionButton)},f.action.label):null))};function Bg(){if(typeof window>"u"||typeof document>"u")return"ltr";let e=document.documentElement.getAttribute("dir");return e==="auto"||!e?window.getComputedStyle(document.documentElement).direction:e}function oC(e,t){let n={};return[e,t].forEach((r,a)=>{let s=a===1,i=s?"--mobile-offset":"--offset",l=s?Kk:Yk;function c(d){["top","right","bottom","left"].forEach(u=>{n[`${i}-${u}`]=typeof d=="number"?`${d}px`:d})}typeof r=="number"||typeof r=="string"?c(r):typeof r=="object"?["top","right","bottom","left"].forEach(d=>{r[d]===void 0?n[`${i}-${d}`]=l:n[`${i}-${d}`]=typeof r[d]=="number"?`${r[d]}px`:r[d]}):c(l)}),n}var aC=h.forwardRef(function(e,t){let{invert:n,position:r="bottom-right",hotkey:a=["altKey","KeyT"],expand:s,closeButton:i,className:l,offset:c,mobileOffset:d,theme:u="light",richColors:m,duration:p,style:f,visibleToasts:w=Xk,toastOptions:y,dir:v=Bg(),gap:x=Zk,loadingIcon:g,icons:b,containerAriaLabel:j="Notifications",pauseWhenPageIsHidden:N}=e,[A,E]=F.useState([]),S=F.useMemo(()=>Array.from(new Set([r].concat(A.filter(G=>G.position).map(G=>G.position)))),[A,r]),[D,R]=F.useState([]),[$,k]=F.useState(!1),[O,_]=F.useState(!1),[W,U]=F.useState(u!=="system"?u:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dar
407k":"light"),V=F.useRef(null),T=a.join("+").replace(/Key/g,"").replace(/Digit/g,""),I=F.useRef(null),B=F.useRef(!1),z=F.useCallback(G=>{E(J=>{var Z;return(Z=J.find(xe=>xe.id===G.id))!=null&&Z.delete||At.dismiss(G.id),J.filter(({id:xe})=>xe!==G.id)})},[]);return F.useEffect(()=>At.subscribe(G=>{if(G.dismiss){E(J=>J.map(Z=>Z.id===G.id?{...Z,delete:!0}:Z));return}setTimeout(()=>{lw.flushSync(()=>{E(J=>{let Z=J.findIndex(xe=>xe.id===G.id);return Z!==-1?[...J.slice(0,Z),{...J[Z],...G},...J.slice(Z+1)]:[G,...J]})})})}),[]),F.useEffect(()=>{if(u!=="system"){U(u);return}if(u==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?U("dark"):U("light")),typeof window>"u")return;let G=window.matchMedia("(prefers-color-scheme: dark)");try{G.addEventListener("change",({matches:J})=>{U(J?"dark":"light")})}catch{G.addListener(({matches:Z})=>{try{U(Z?"dark":"light")}catch(xe){console.error(xe)}})}},[u]),F.useEffect(()=>{A.length<=1&&k(!1)},[A]),F.useEffect(()=>{let G=J=>{var Z,xe;a.every(Ce=>J[Ce]||J.code===Ce)&&(k(!0),(Z=V.current)==null||Z.focus()),J.code==="Escape"&&(document.activeElement===V.current||(xe=V.current)!=null&&xe.contains(document.activeElement))&&k(!1)};return document.addEventListener("keydown",G),()=>document.removeEventListener("keydown",G)},[a]),F.useEffect(()=>{if(V.current)return()=>{I.current&&(I.current.focus({preventScroll:!0}),I.current=null,B.current=!1)}},[V.current]),F.createElement("section",{ref:t,"aria-label":`${j} ${T}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},S.map((G,J)=>{var Z;let[xe,Ce]=G.split("-");return A.length?F.createElement("ol",{key:G,dir:v==="auto"?Bg():v,tabIndex:-1,ref:V,className:l,"data-sonner-toaster":!0,"data-theme":W,"data-y-position":xe,"data-lifted":$&&A.length>1&&!s,"data-x-position":Ce,style:{"--front-toast-height":`${((Z=D[0])==null?void 0:Z.height)||0}px`,"--width":`${Jk}px`,"--gap":`${x}px`,...f,...oC(c,d)},onBlur:Q=>{B.current&&!Q.currentTarget.contains(Q.relatedTarget)&&(B.current=!1,I.current&&(I.current.focus({preventScroll:!0}),I.current=null))},onFocus:Q=>{Q.target instanceof HTMLElement&&Q.target.dataset.dismissible==="false"||B.current||(B.current=!0,I.current=Q.relatedTarget)},onMouseEnter:()=>k(!0),onMouseMove:()=>k(!0),onMouseLeave:()=>{O||k(!1)},onDragEnd:()=>k(!1),onPointerDown:Q=>{Q.target instanceof HTMLElement&&Q.target.dataset.dismissible==="false"||_(!0)},onPointerUp:()=>_(!1)},A.filter(Q=>!Q.position&&J===0||Q.position===G).map((Q,ge)=>{var Se,me;return F.createElement(rC,{key:Q.id,icons:b,index:ge,toast:Q,defaultRichColors:m,duration:(Se=y==null?void 0:y.duration)!=null?Se:p,className:y==null?void 0:y.className,descriptionClassName:y==null?void 0:y.descriptionClassName,invert:n,visibleToasts:w,closeButton:(me=y==null?void 0:y.closeButton)!=null?me:i,interacting:O,position:G,style:y==null?void 0:y.style,unstyled:y==null?void 0:y.unstyled,classNames:y==null?void 0:y.classNames,cancelButtonStyle:y==null?void 0:y.cancelButtonStyle,actionButtonStyle:y==null?void 0:y.actionButtonStyle,removeToast:z,toasts:A.filter(ue=>ue.position==Q.position),heights:D.filter(ue=>ue.position==Q.position),setHeights:R,expandByDefault:s,gap:x,loadingIcon:g,expanded:$,pauseWhenPageIsHidden:N,swipeDirections:e.swipeDirections})})):null}))});const sC=({...e})=>{const{theme:t="system"}=oS();return o.jsx(aC,{theme:t,className:"toaster group",toastOptions:{classNames:{toast:"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",description:"group-[.toast]:text-muted-foreground",actionButton:"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",cancelButton:"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"}},...e})};var iC=lm[" useId ".trim().toString()]||(()=>{}),lC=0;function Br(e){const[t,n]=h.useState(iC());return ot(()=>{n(r=>r??String(lC++))},[e]),t?`radix-${t}`:""}const cC=["top","right","bottom","left"],Ur=Math.min,Pt=Math.max,Jl=Math.round,zi=Math.floor,On=e=>({x:e,y:e}
vendor: 11,893 bytes, line 407
407),dC={left:"right",right:"left",bottom:"top",top:"bottom"},uC={start:"end",end:"start"};function bh(e,t,n){return Pt(e,Ur(t,n))}function nr(e,t){return typeof e=="function"?e(t):e}function rr(e){return e.split("-")[0]}function Oa(e){return e.split("-")[1]}function dp(e){return e==="x"?"y":"x"}function up(e){return e==="y"?"height":"width"}const hC=new Set(["top","bottom"]);function Rn(e){return hC.has(rr(e))?"y":"x"}function hp(e){return dp(Rn(e))}function mC(e,t,n){n===void 0&&(n=!1);const r=Oa(e),a=hp(e),s=up(a);let i=a==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[s]>t.floating[s]&&(i=Zl(i)),[i,Zl(i)]}function pC(e){const t=Zl(e);return[wh(e),t,wh(t)]}function wh(e){return e.replace(/start|end/g,t=>uC[t])}const Og=["left","right"],Fg=["right","left"],fC=["top","bottom"],gC=["bottom","top"];function yC(e,t,n){switch(e){case"top":case"bottom":return n?t?Fg:Og:t?Og:Fg;case"left":case"right":return t?fC:gC;default:return[]}}function xC(e,t,n,r){const a=Oa(e);let s=yC(rr(e),n==="start",r);return a&&(s=s.map(i=>i+"-"+a),t&&(s=s.concat(s.map(wh)))),s}function Zl(e){return e.replace(/left|right|bottom|top/g,t=>dC[t])}function vC(e){return{top:0,right:0,bottom:0,left:0,...e}}function o0(e){return typeof e!="number"?vC(e):{top:e,right:e,bottom:e,left:e}}function ec(e){const{x:t,y:n,width:r,height:a}=e;return{width:r,height:a,top:n,left:t,right:t+r,bottom:n+a,x:t,y:n}}function Lg(e,t,n){let{reference:r,floating:a}=e;const s=Rn(t),i=hp(t),l=up(i),c=rr(t),d=s==="y",u=r.x+r.width/2-a.width/2,m=r.y+r.height/2-a.height/2,p=r[l]/2-a[l]/2;let f;switch(c){case"top":f={x:u,y:r.y-a.height};break;case"bottom":f={x:u,y:r.y+r.height};break;case"right":f={x:r.x+r.width,y:m};break;case"left":f={x:r.x-a.width,y:m};break;default:f={x:r.x,y:r.y}}switch(Oa(t)){case"start":f[i]-=p*(n&&d?-1:1);break;case"end":f[i]+=p*(n&&d?-1:1);break}return f}const bC=async(e,t,n)=>{const{placement:r="bottom",strategy:a="absolute",middleware:s=[],platform:i}=n,l=s.filter(Boolean),c=await(i.isRTL==null?void 0:i.isRTL(t));let d=await i.getElementRects({reference:e,floating:t,strategy:a}),{x:u,y:m}=Lg(d,r,c),p=r,f={},w=0;for(let y=0;y<l.length;y++){const{name:v,fn:x}=l[y],{x:g,y:b,data:j,reset:N}=await x({x:u,y:m,initialPlacement:r,placement:p,strategy:a,middlewareData:f,rects:d,platform:i,elements:{reference:e,floating:t}});u=g??u,m=b??m,f={...f,[v]:{...f[v],...j}},N&&w<=50&&(w++,typeof N=="object"&&(N.placement&&(p=N.placement),N.rects&&(d=N.rects===!0?await i.getElementRects({reference:e,floating:t,strategy:a}):N.rects),{x:u,y:m}=Lg(d,p,c)),y=-1)}return{x:u,y:m,placement:p,strategy:a,middlewareData:f}};async function $s(e,t){var n;t===void 0&&(t={});const{x:r,y:a,platform:s,rects:i,elements:l,strategy:c}=e,{boundary:d="clippingAncestors",rootBoundary:u="viewport",elementContext:m="floating",altBoundary:p=!1,padding:f=0}=nr(t,e),w=o0(f),v=l[p?m==="floating"?"reference":"floating":m],x=ec(await s.getClippingRect({element:(n=await(s.isElement==null?void 0:s.isElement(v)))==null||n?v:v.contextElement||await(s.getDocumentElement==null?void 0:s.getDocumentElement(l.floating)),boundary:d,rootBoundary:u,strategy:c})),g=m==="floating"?{x:r,y:a,width:i.floating.width,height:i.floating.height}:i.reference,b=await(s.getOffsetParent==null?void 0:s.getOffsetParent(l.floating)),j=await(s.isElement==null?void 0:s.isElement(b))?await(s.getScale==null?void 0:s.getScale(b))||{x:1,y:1}:{x:1,y:1},N=ec(s.convertOffsetParentRelativeRectToViewportRelativeRect?await s.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:g,offsetParent:b,strategy:c}):g);return{top:(x.top-N.top+w.top)/j.y,bottom:(N.bottom-x.bottom+w.bottom)/j.y,left:(x.left-N.left+w.left)/j.x,right:(N.right-x.right+w.right)/j.x}}const wC=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:a,rects:s,platform:i,elements:l,middlewareData:c}=t,{element:d,padding:u=0}=nr(e,t)||{};if(d==null)return{};const m=o0(u),p={x:n,y:r},f=hp(a),w=up(f),y=await i.getDimensions(d),v=f==="y",x=v?"top":"left",g=v?"bottom":"right",b=v?"clientHeight":"clientWidth",j=s.reference[w]+s.reference[f]-p[f]-s.floating[w],N=p[f]-s.reference[f],A=await(i.getOffsetParent==null?void 0:i.getOffsetParent(d));let E=A?A[b]:0;(!E||!await(i.isElement==null?void 0:i.isElement(A)))&&(E=l.floating[b]||s.floating[w]);const S=j/2-N/2,D=E/2-y[w]/2-1,R=Ur(m[x],D),$=Ur(m[g],D),k=R,O=E-y[w]-$,_=E/2-y[w]/2+S,W=bh(k,_,O),U=!c.arrow&&Oa(a)!=null&&_!==W&&s.reference[w]/2-(_<k?R:$)-y[w]/2<0,V=U?_<k?_-k:_-O:0;return{[f]:p[f]+V,data:{[f]:W,centerOffset:_-W-V,...U&&{alignmentOffset:V}},reset:U}}}),jC=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n,r;const{placement:a,middlewareData:s,rects:i,initialPlacement:l,platform:c,elements:d}=t,{mainAxis:u=!0,crossAxis:m=!0,fallbackPlacements:p,fallbackStrategy:f="bestFit",fallbackAxisSideDirection:w="none",flipAlignment:y=!0,...v}=nr(e,t);if((n=s.arrow)!=null&&n.alignmentOffset)return{};const x=rr(a),g=Rn(l),b=rr(l)===l,j=await(c.isRTL==null?void 0:c.isRTL(d.floating)),N=p||(b||!y?[Zl(l)]:pC(l)),A=w!=="none";!p&&A&&N.push(...xC(l,y,w,j));const E=[l,...N],S=await $s(t,v),D=[];let R=((r=s.flip)==null?void 0:r.overflows)||[];if(u&&D.push(S[x]),m){const _=mC(a,i,j);D.push(S[_[0]],S[_[1]])}if(R=[...R,{placement:a,overflows:D}],!D.every(_=>_<=0)){var $,k;const _=((($=s.flip)==null?void 0:$.index)||0)+1,W=E[_];if(W&&(!(m==="alignment"?g!==Rn(W):!1)||R.every(T=>T.overflows[0]>0&&Rn(T.placement)===g)))return{data:{index:_,overflows:R},reset:{placement:W}};let U=(k=R.filter(V=>V.overflows[0]<=0).sort((V,T)=>V.overflows[1]-T.overflows[1])[0])==null?void 0:k.placement;if(!U)switch(f){case"bestFit":{var O;const V=(O=R.filter(T=>{if(A){const I=Rn(T.placement);return I===g||I==="y"}return!0}).map(T=>[T.placement,T.overflows.filter(I=>I>0).reduce((I,B)=>I+B,0)]).sort((T,I)=>T[1]-I[1])[0])==null?void 0:O[0];V&&(U=V);break}case"initialPlacement":U=l;break}if(a!==U)return{reset:{placement:U}}}return{}}}};function Hg(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Ug(e){return cC.some(t=>e[t]>=0)}const NC=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:r="referenceHidden",...a}=nr(e,t);switch(r){case"referenceHidden":{const s=await $s(t,{...a,elementContext:"reference"}),i=Hg(s,n.reference);return{data:{referenceHiddenOffsets:i,referenceHidden:Ug(i)}}}case"escaped":{const s=await $s(t,{...a,altBoundary:!0}),i=Hg(s,n.floating);return{data:{escapedOffsets:i,escaped:Ug(i)}}}default:return{}}}}},a0=new Set(["left","top"]);async function AC(e,t){const{placement:n,platform:r,elements:a}=e,s=await(r.isRTL==null?void 0:r.isRTL(a.floating)),i=rr(n),l=Oa(n),c=Rn(n)==="y",d=a0.has(i)?-1:1,u=s&&c?-1:1,m=nr(t,e);let{mainAxis:p,crossAxis:f,alignmentAxis:w}=typeof m=="number"?{mainAxis:m,crossAxis:0,alignmentAxis:null}:{mainAxis:m.mainAxis||0,crossAxis:m.crossAxis||0,alignmentAxis:m.alignmentAxis};return l&&typeof w=="number"&&(f=l==="end"?w*-1:w),c?{x:f*u,y:p*d}:{x:p*d,y:f*u}}const EC=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:a,y:s,placement:i,middlewareData:l}=t,c=await AC(t,e);return i===((n=l.offset)==null?void 0:n.placement)&&(r=l.arrow)!=null&&r.alignmentOffset?{}:{x:a+c.x,y:s+c.y,data:{...c,placement:i}}}}},SC=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:a}=t,{mainAxis:s=!0,crossAxis:i=!1,limiter:l={fn:v=>{let{x,y:g}=v;return{x,y:g}}},...c}=nr(e,t),d={x:n,y:r},u=await $s(t,c),m=Rn(rr(a)),p=dp(m);let f=d[p],w=d[m];if(s){const v=p==="y"?"top":"left",x=p==="y"?"bottom":"right",g=f+u[v],b=f-u[x];f=bh(g,f,b)}if(i){const v=m==="y"?"top":"left",x=m==="y"?"bottom":"right",g=w+u[v],b=w-u[x];w=bh(g,w,b)}const y=l.fn({...t,[p]:f,[m]:w});return{...y,data:{x:y.x-n,y:y.y-r,enabled:{[p]:s,[m]:i}}}}}},IC=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:a,rects:s,middlewareData:i}=t,{offset:l=0,mainAxis:c=!0,crossAxis:d=!0}=nr(e,t),u={x:n,y:r},m=Rn(a),p=dp(m);let f=u[p],w=u[m];const y=nr(l,t),v=typeof y=="number"?{mainAxis:y,crossAxis:0}:{mainAxis:0,crossAxis:0,...y};if(c){const b=p==="y"?"height":"width",j=s.reference[p]-s.floating[b]+v.mainAxis,N=s.reference[p]+s.reference[b]-v.mainAxis;f<j?f=j:f>N&&(f=N)}if(d){var x,g;const b=p==="y"?"width":"height",j=a0.has(rr(a)),N=s.reference[m]-s.floating[b]+(j&&((x=i.offset)==null?void 0:x[m])||0)+(j?0:v.crossAxis),A=s.reference[m]+s.reference[b]+(j?0:((g=i.offset)==null?void 0:g[m])||0)-(j?v.crossAxis:0);w<N?w=N:w>A&&(w=A)}return{[p]:f,[m]:w}}}},kC=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:a,rects:s,platform:i,elements:l}=t,{apply:c=()=>{},...d}=nr(e,t),u=await $s(t,d),m=rr(a),p=Oa(a),f=Rn(a)==="y",{width:w,height:y}=s.floating;let v,x;m==="top"||m==="bottom"?(v=m,x=p===(await(i.isRTL==null?void 0:i.isRTL(l.floating))?"start":"end")?"left":"right"):(x=m,v=p==="end"?"top":"bottom");const g=y-u.top-u.bottom,b=w-u.left-u.right,j=Ur(y-u[v],g),N=Ur(w-u[x],b),A=!t.middlewareData.shift;let E=j,S=N;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(S=b),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(E=g),A&&!p){const R=Pt(u.left,0),$=Pt(u.right,0),k=Pt(u.top,0),O=Pt(u.bottom,0);f?S=w-2*(R!==0||$!==0?R+$:Pt(u.left,u.right)):E=y-2*(k!==0||O!==0?k+O:Pt(u.top,u.bottom))}await c({...t,availableWidth:S,availableHeight:E});const D=await i.getDimensions(l.floating);return w!==D.width||y!==D.height?{reset:{rects:!0}}:{}}}};function _c(){return typeof window<"u"}function Fa(e){return s0(e)?(e.nodeName||"").toLowerCase():"#document"}function Mt(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Un(e){var t;return(t=(s0(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function s0(e){return _c()?e instanceof Node||e instanceof Mt(e).Node:!1}function yn(e){return _c()?e instanceof Element||e instanceof Mt(e).Element:!1}function Fn(e){return _c()?e instanceof HTMLElement||e instanceof Mt(e).HTMLElement:!1}function zg(e){return!_c()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof Mt(e).ShadowRoot}const CC=new Set(["inline","contents"]);function li(e){const{overflow:t,overflowX:n,overflowY:r,display:a}=xn(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!CC.has(a)}const TC=new Set(["table","td","th"]);function PC(e){return TC.has(Fa(e))}const RC=[":popover-open",":modal"];function Bc(e){return RC.some(t=>{try{return e.matches(t)}catch{return!1}})}const DC=["transform","translate","scale","rotate","perspective"],MC=["transform","translate","scale","rotate","perspective","filter"],_C=["paint","layout","strict","content"];function mp(e){const t=pp(),n=yn(e)?xn(e):e;return DC.some(r=>n[r]?n[r]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||MC.some(r=>(n.willChange||"").includes(r))||_C.some(r=>(n.contain||"").includes(r))}function BC(e){let t=zr(e);for(;Fn(t)&&!Ea(t);){if(mp(t))return t;if(Bc(t))return null;t=zr(t)}return null}function pp(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const OC=new Set(["html","body","#document"]);function Ea(e){return OC.has(Fa(e))}function xn(e){return Mt(e).getComputedStyle(e)}function Oc(e){return yn(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function zr(e){if(Fa(e)==="html")return e;const t=e.assignedSlot||e.parentNode||zg(e)&&e.host||Un(e);return zg(t)?t.host:t}function i0(e){const t=zr(e);return Ea(t)?e.ownerDocument?e.ownerDocument.body:e.body:Fn(t)&&li(t)?t:i0(t)}function Gs(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const a=i0(e),s=a===((r=e.ownerDocument)==null?void 0:r.body),i=Mt
vendor: 4,796 bytes, line 407
407(a);if(s){const l=jh(i);return t.concat(i,i.visualViewport||[],li(a)?a:[],l&&n?Gs(l):[])}return t.concat(a,Gs(a,[],n))}function jh(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function l0(e){const t=xn(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const a=Fn(e),s=a?e.offsetWidth:n,i=a?e.offsetHeight:r,l=Jl(n)!==s||Jl(r)!==i;return l&&(n=s,r=i),{width:n,height:r,$:l}}function fp(e){return yn(e)?e:e.contextElement}function oa(e){const t=fp(e);if(!Fn(t))return On(1);const n=t.getBoundingClientRect(),{width:r,height:a,$:s}=l0(t);let i=(s?Jl(n.width):n.width)/r,l=(s?Jl(n.height):n.height)/a;return(!i||!Number.isFinite(i))&&(i=1),(!l||!Number.isFinite(l))&&(l=1),{x:i,y:l}}const FC=On(0);function c0(e){const t=Mt(e);return!pp()||!t.visualViewport?FC:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function LC(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==Mt(e)?!1:t}function jo(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const a=e.getBoundingClientRect(),s=fp(e);let i=On(1);t&&(r?yn(r)&&(i=oa(r)):i=oa(e));const l=LC(s,n,r)?c0(s):On(0);let c=(a.left+l.x)/i.x,d=(a.top+l.y)/i.y,u=a.width/i.x,m=a.height/i.y;if(s){const p=Mt(s),f=r&&yn(r)?Mt(r):r;let w=p,y=jh(w);for(;y&&r&&f!==w;){const v=oa(y),x=y.getBoundingClientRect(),g=xn(y),b=x.left+(y.clientLeft+parseFloat(g.paddingLeft))*v.x,j=x.top+(y.clientTop+parseFloat(g.paddingTop))*v.y;c*=v.x,d*=v.y,u*=v.x,m*=v.y,c+=b,d+=j,w=Mt(y),y=jh(w)}}return ec({width:u,height:m,x:c,y:d})}function gp(e,t){const n=Oc(e).scrollLeft;return t?t.left+n:jo(Un(e)).left+n}function d0(e,t,n){n===void 0&&(n=!1);const r=e.getBoundingClientRect(),a=r.left+t.scrollLeft-(n?0:gp(e,r)),s=r.top+t.scrollTop;return{x:a,y:s}}function HC(e){let{elements:t,rect:n,offsetParent:r,strategy:a}=e;const s=a==="fixed",i=Un(r),l=t?Bc(t.floating):!1;if(r===i||l&&s)return n;let c={scrollLeft:0,scrollTop:0},d=On(1);const u=On(0),m=Fn(r);if((m||!m&&!s)&&((Fa(r)!=="body"||li(i))&&(c=Oc(r)),Fn(r))){const f=jo(r);d=oa(r),u.x=f.x+r.clientLeft,u.y=f.y+r.clientTop}const p=i&&!m&&!s?d0(i,c,!0):On(0);return{width:n.width*d.x,height:n.height*d.y,x:n.x*d.x-c.scrollLeft*d.x+u.x+p.x,y:n.y*d.y-c.scrollTop*d.y+u.y+p.y}}function UC(e){return Array.from(e.getClientRects())}function zC(e){const t=Un(e),n=Oc(e),r=e.ownerDocument.body,a=Pt(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),s=Pt(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let i=-n.scrollLeft+gp(e);const l=-n.scrollTop;return xn(r).direction==="rtl"&&(i+=Pt(t.clientWidth,r.clientWidth)-a),{width:a,height:s,x:i,y:l}}function $C(e,t){const n=Mt(e),r=Un(e),a=n.visualViewport;let s=r.clientWidth,i=r.clientHeight,l=0,c=0;if(a){s=a.width,i=a.height;const d=pp();(!d||d&&t==="fixed")&&(l=a.offsetLeft,c=a.offsetTop)}return{width:s,height:i,x:l,y:c}}const GC=new Set(["absolute","fixed"]);function QC(e,t){const n=jo(e,!0,t==="fixed"),r=n.top+e.clientTop,a=n.left+e.clientLeft,s=Fn(e)?oa(e):On(1),i=e.clientWidth*s.x,l=e.clientHeight*s.y,c=a*s.x,d=r*s.y;return{width:i,height:l,x:c,y:d}}function $g(e,t,n){let r;if(t==="viewport")r=$C(e,n);else if(t==="document")r=zC(Un(e));else if(yn(t))r=QC(t,n);else{const a=c0(e);r={x:t.x-a.x,y:t.y-a.y,width:t.width,height:t.height}}return ec(r)}function u0(e,t){const n=zr(e);return n===t||!yn(n)||Ea(n)?!1:xn(n).position==="fixed"||u0(n,t)}function WC(e,t){const n=t.get(e);if(n)return n;let r=Gs(e,[],!1).filter(l=>yn(l)&&Fa(l)!=="body"),a=null;const s=xn(e).position==="fixed";let i=s?zr(e):e;for(;yn(i)&&!Ea(i);){const l=xn(i),c=mp(i);!c&&l.position==="fixed"&&(a=null),(s?!c&&!a:!c&&l.position==="static"&&!!a&&GC.has(a.position)||li(i)&&!c&&u0(e,i))?r=r.filter(u=>u!==i):a=l,i=zr(i)}return t.set(e,r),r}function qC(e){let{element:t,boundary:n,rootBoundary:r,strategy:a}=e;const i=[...n==="clippingAncestors"?Bc(t)?[]:WC(t,this._c):[].concat(n),r],l=i[0],c=i.reduce((d,u)=>{const m=$g(t,u,a);return d.top=Pt(m.top,d.top),d.right=Ur(m.right,d.right),d.bottom=Ur(m.bottom,d.bottom),d.left=Pt(m.left,d.left),d},$g(t,l,a));return{width:c.right-c.left,height:c.bottom-c.top,x:c.left,y:c.top}}function VC(e){const{width:t,height:n}=l0(e);return{width:t,height:n}}function XC(e,t,n){const r=Fn(t),a=Un(t),s=n==="fixed",i=jo(e,!0,s,t);let l={scrollLeft:0,scrollTop:0};const c=On(0);function d(){c.x=gp(a)}if(r||!r&&!s)if((Fa(t)!=="body"||li(a))&&(l=Oc(t)),r){const f=jo(t,!0,s,t);c.x=f.x+t.clientLeft,c.y=f.y+t.clientTop}else a&&d();s&&!r&&a&&d();const u=a&&!r&&!s?d0(a,l):On(0),m=i.left+l.scrollLeft-c.x-u.x,p=i.top+l.scrollTop-c.y-u.y;return{x:m,y:p,width:i.width,height:i.height}}function Jd(e){return xn(e).position==="static"}function Gg(e,t){if(!Fn(e)||xn(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return Un(e)===n&&(n=n.ownerDocument.body),n}function h0(e,t){const n=Mt(e);
vendor: 9,816 bytes, line 407
407if(Bc(e))return n;if(!Fn(e)){let a=zr(e);for(;a&&!Ea(a);){if(yn(a)&&!Jd(a))return a;a=zr(a)}return n}let r=Gg(e,t);for(;r&&PC(r)&&Jd(r);)r=Gg(r,t);return r&&Ea(r)&&Jd(r)&&!mp(r)?n:r||BC(e)||n}const YC=async function(e){const t=this.getOffsetParent||h0,n=this.getDimensions,r=await n(e.floating);return{reference:XC(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function KC(e){return xn(e).direction==="rtl"}const JC={convertOffsetParentRelativeRectToViewportRelativeRect:HC,getDocumentElement:Un,getClippingRect:qC,getOffsetParent:h0,getElementRects:YC,getClientRects:UC,getDimensions:VC,getScale:oa,isElement:yn,isRTL:KC};function m0(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function ZC(e,t){let n=null,r;const a=Un(e);function s(){var l;clearTimeout(r),(l=n)==null||l.disconnect(),n=null}function i(l,c){l===void 0&&(l=!1),c===void 0&&(c=1),s();const d=e.getBoundingClientRect(),{left:u,top:m,width:p,height:f}=d;if(l||t(),!p||!f)return;const w=zi(m),y=zi(a.clientWidth-(u+p)),v=zi(a.clientHeight-(m+f)),x=zi(u),b={rootMargin:-w+"px "+-y+"px "+-v+"px "+-x+"px",threshold:Pt(0,Ur(1,c))||1};let j=!0;function N(A){const E=A[0].intersectionRatio;if(E!==c){if(!j)return i();E?i(!1,E):r=setTimeout(()=>{i(!1,1e-7)},1e3)}E===1&&!m0(d,e.getBoundingClientRect())&&i(),j=!1}try{n=new IntersectionObserver(N,{...b,root:a.ownerDocument})}catch{n=new IntersectionObserver(N,b)}n.observe(e)}return i(!0),s}function eT(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:a=!0,ancestorResize:s=!0,elementResize:i=typeof ResizeObserver=="function",layoutShift:l=typeof IntersectionObserver=="function",animationFrame:c=!1}=r,d=fp(e),u=a||s?[...d?Gs(d):[],...Gs(t)]:[];u.forEach(x=>{a&&x.addEventListener("scroll",n,{passive:!0}),s&&x.addEventListener("resize",n)});const m=d&&l?ZC(d,n):null;let p=-1,f=null;i&&(f=new ResizeObserver(x=>{let[g]=x;g&&g.target===d&&f&&(f.unobserve(t),cancelAnimationFrame(p),p=requestAnimationFrame(()=>{var b;(b=f)==null||b.observe(t)})),n()}),d&&!c&&f.observe(d),f.observe(t));let w,y=c?jo(e):null;c&&v();function v(){const x=jo(e);y&&!m0(y,x)&&n(),y=x,w=requestAnimationFrame(v)}return n(),()=>{var x;u.forEach(g=>{a&&g.removeEventListener("scroll",n),s&&g.removeEventListener("resize",n)}),m==null||m(),(x=f)==null||x.disconnect(),f=null,c&&cancelAnimationFrame(w)}}const tT=EC,nT=SC,rT=jC,oT=kC,aT=NC,Qg=wC,sT=IC,iT=(e,t,n)=>{const r=new Map,a={platform:JC,...n},s={...a.platform,_c:r};return bC(e,t,{...a,platform:s})};var lT=typeof document<"u",cT=function(){},vl=lT?h.useLayoutEffect:cT;function tc(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,r,a;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!tc(e[r],t[r]))return!1;return!0}if(a=Object.keys(e),n=a.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,a[r]))return!1;for(r=n;r--!==0;){const s=a[r];if(!(s==="_owner"&&e.$$typeof)&&!tc(e[s],t[s]))return!1}return!0}return e!==e&&t!==t}function p0(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Wg(e,t){const n=p0(e);return Math.round(t*n)/n}function Zd(e){const t=h.useRef(e);return vl(()=>{t.current=e}),t}function dT(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:a,elements:{reference:s,floating:i}={},transform:l=!0,whileElementsMounted:c,open:d}=e,[u,m]=h.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[p,f]=h.useState(r);tc(p,r)||f(r);const[w,y]=h.useState(null),[v,x]=h.useState(null),g=h.useCallback(T=>{T!==A.current&&(A.current=T,y(T))},[]),b=h.useCallback(T=>{T!==E.current&&(E.current=T,x(T))},[]),j=s||w,N=i||v,A=h.useRef(null),E=h.useRef(null),S=h.useRef(u),D=c!=null,R=Zd(c),$=Zd(a),k=Zd(d),O=h.useCallback(()=>{if(!A.current||!E.current)return;const T={placement:t,strategy:n,middleware:p};$.current&&(T.platform=$.current),iT(A.current,E.current,T).then(I=>{const B={...I,isPositioned:k.current!==!1};_.current&&!tc(S.current,B)&&(S.current=B,qr.flushSync(()=>{m(B)}))})},[p,t,n,$,k]);vl(()=>{d===!1&&S.current.isPositioned&&(S.current.isPositioned=!1,m(T=>({...T,isPositioned:!1})))},[d]);const _=h.useRef(!1);vl(()=>(_.current=!0,()=>{_.current=!1}),[]),vl(()=>{if(j&&(A.current=j),N&&(E.current=N),j&&N){if(R.current)return R.current(j,N,O);O()}},[j,N,O,R,D]);const W=h.useMemo(()=>({reference:A,floating:E,setReference:g,setFloating:b}),[g,b]),U=h.useMemo(()=>({reference:j,floating:N}),[j,N]),V=h.useMemo(()=>{const T={position:n,left:0,top:0};if(!U.floating)return T;const I=Wg(U.floating,u.x),B=Wg(U.floating,u.y);return l?{...T,transform:"translate("+I+"px, "+B+"px)",...p0(U.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:I,top:B}},[n,l,U.floating,u.x,u.y]);return h.useMemo(()=>({...u,update:O,refs:W,elements:U,floatingStyles:V}),[u,O,W,U,V])}const uT=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:r,padding:a}=typeof e=="function"?e(n):e;return r&&t(r)?r.current!=null?Qg({element:r.current,padding:a}).fn(n):{}:r?Qg({element:r,padding:a}).fn(n):{}}}},hT=(e,t)=>({...tT(e),options:[e,t]}),mT=(e,t)=>({...nT(e),options:[e,t]}),pT=(e,t)=>({...sT(e),options:[e,t]}),fT=(e,t)=>({...rT(e),options:[e,t]}),gT=(e,t)=>({...oT(e),options:[e,t]}),yT=(e,t)=>({...aT(e),options:[e,t]}),xT=(e,t)=>({...uT(e),options:[e,t]});var vT="Arrow",f0=h.forwardRef((e,t)=>{const{children:n,width:r=10,height:a=5,...s}=e;return o.jsx(de.svg,{...s,ref:t,width:r,height:a,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:o.jsx("polygon",{points:"0,0 30,0 15,10"})})});f0.displayName=vT;var bT=f0;function g0(e){const[t,n]=h.useState(void 0);return ot(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(a=>{if(!Array.isArray(a)||!a.length)return;const s=a[0];let i,l;if("borderBoxSize"in s){const c=s.borderBoxSize,d=Array.isArray(c)?c[0]:c;i=d.inlineSize,l=d.blockSize}else i=e.offsetWidth,l=e.offsetHeight;n({width:i,height:l})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}var yp="Popper",[y0,Fc]=sr(yp),[wT,x0]=y0(yp),v0=e=>{const{__scopePopper:t,children:n}=e,[r,a]=h.useState(null);return o.jsx(wT,{scope:t,anchor:r,onAnchorChange:a,children:n})};v0.displayName=yp;var b0="PopperAnchor",w0=h.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...a}=e,s=x0(b0,n),i=h.useRef(null),l=Ae(t,i);return h.useEffect(()=>{s.onAnchorChange((r==null?void 0:r.current)||i.current)}),r?null:o.jsx(de.div,{...a,ref:l})});w0.displayName=b0;var xp="PopperContent",[jT,NT]=y0(xp),j0=h.forwardRef((e,t)=>{var Q,ge,Se,me,ue,pe;const{__scopePopper:n,side:r="bottom",sideOffset:a=0,align:s="center",alignOffset:i=0,arrowPadding:l=0,avoidCollisions:c=!0,collisionBoundary:d=[],collisionPadding:u=0,sticky:m="partial",hideWhenDetached:p=!1,updatePositionStrategy:f="optimized",onPlaced:w,...y}=e,v=x0(xp,n),[x,g]=h.useState(null),b=Ae(t,C=>g(C)),[j,N]=h.useState(null),A=g0(j),E=(A==null?void 0:A.width)??0,S=(A==null?void 0:A.height)??0,D=r+(s!=="center"?"-"+s:""),R=typeof u=="number"?u:{top:0,right:0,bottom:0,left:0,...u},$=Array.isArray(d)?d:[d],k=$.length>0,O={padding:R,boundary:$.filter(ET),altBoundary:k},{refs:_,floatingStyles:W,placement:U,isPositioned:V,middlewareData:T}=dT({strategy:"fixed",placement:D,whileElementsMounted:(...C)=>eT(...C,{animationFrame:f==="always"}),elements:{reference:v.anchor},middleware:[hT({mainAxis:a+S,alignmentAxis:i}),c&&mT({mainAxis:!0,crossAxis:!1,limiter:m==="partial"?pT():void 0,...O}),c&&fT({...O}),gT({...O,apply:({elements:C,rects:q,availableWidth:P,availableHeight:H})=>{const{width:ee,height:ve}=q.reference,Te=C.floating.style;Te.setProperty("--radix-popper-available-width",`${P}px`),Te.setProperty("--radix-popper-available-height",`${H}px`),Te.setProperty("--radix-popper-anchor-width",`${ee}px`),Te.setProperty("--radix-popper-anchor-height",`${ve}px`)}}),j&&xT({element:j,padding:l}),ST({arrowWidth:E,arrowHeight:S}),p&&yT({strategy:"referenceHidden",...O})]}),[I,B]=E0(U),z=fn(w);ot(()=>{V&&(z==null||z())},[V,z]);const G=(Q=T.arrow)==null?void 0:Q.x,J=(ge=T.arrow)==null?void 0:ge.y,Z=((Se=T.arrow)==null?void 0:Se.centerOffset)!==0,[xe,Ce]=h.useState();return ot(()=>{x&&Ce(window.getComputedStyle(x).zIndex)},[x]),o.jsx("div",{ref:_.setFloating,"data-radix-popper-content-wrapper":"",style:{...W,transform:V?W.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:xe,"--radix-popper-transform-origin":[(me=T.transformOrigin)==null?void 0:me.x,(ue=T.transformOrigin)==null?void 0:ue.y].join(" "),...((pe=T.hide)==null?void 0:pe.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:o.jsx(jT,{scope:n,placedSide:I,onArrowChange:N,arrowX:G,arrowY:J,shouldHideArrow:Z,children:o.jsx(de.div,{"data-side":I,"data-align":B,...y,ref:b,style:{...y.style,animation:V?void 0:"none"}})})})});j0.displayName=xp;var N0="PopperArrow",AT={top:"bottom",right:"left",bottom:"top",left:"right"},A0=h.forwardRef(function(t,n){const{__scopePopper:r,...a}=t,s=NT(N0,r),i=AT[s.placedSide];return o.jsx("span",{ref:s.onArrowChange,style:{position:"absolute",left:s.arrowX,top:s.arrowY,[i]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[s.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[s.placedSide],visibility:s.shouldHideArrow?"hidden":void 0},children:o.jsx(bT,{...a,ref:n,style:{...a.style,display:"block"}})})});A0.displayName=N0;function ET(e){return e!==null}var ST=e=>({name:"transformOrigin",options:e,fn(t){var v,x,g;
vendor: 4,949 bytes, line 407
407const{placement:n,rects:r,middlewareData:a}=t,i=((v=a.arrow)==null?void 0:v.centerOffset)!==0,l=i?0:e.arrowWidth,c=i?0:e.arrowHeight,[d,u]=E0(n),m={start:"0%",center:"50%",end:"100%"}[u],p=(((x=a.arrow)==null?void 0:x.x)??0)+l/2,f=(((g=a.arrow)==null?void 0:g.y)??0)+c/2;let w="",y="";return d==="bottom"?(w=i?m:`${p}px`,y=`${-c}px`):d==="top"?(w=i?m:`${p}px`,y=`${r.floating.height+c}px`):d==="right"?(w=`${-c}px`,y=i?m:`${f}px`):d==="left"&&(w=`${r.floating.width+c}px`,y=i?m:`${f}px`),{data:{x:w,y}}}});function E0(e){const[t,n="center"]=e.split("-");return[t,n]}var IT=v0,S0=w0,I0=j0,k0=A0,[Lc]=sr("Tooltip",[Fc]),vp=Fc(),C0="TooltipProvider",kT=700,qg="tooltip.open",[CT,T0]=Lc(C0),P0=e=>{const{__scopeTooltip:t,delayDuration:n=kT,skipDelayDuration:r=300,disableHoverableContent:a=!1,children:s}=e,i=h.useRef(!0),l=h.useRef(!1),c=h.useRef(0);return h.useEffect(()=>{const d=c.current;return()=>window.clearTimeout(d)},[]),o.jsx(CT,{scope:t,isOpenDelayedRef:i,delayDuration:n,onOpen:h.useCallback(()=>{window.clearTimeout(c.current),i.current=!1},[]),onClose:h.useCallback(()=>{window.clearTimeout(c.current),c.current=window.setTimeout(()=>i.current=!0,r)},[r]),isPointerInTransitRef:l,onPointerInTransitChange:h.useCallback(d=>{l.current=d},[]),disableHoverableContent:a,children:s})};P0.displayName=C0;var R0="Tooltip",[VL,Hc]=Lc(R0),Nh="TooltipTrigger",TT=h.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,a=Hc(Nh,n),s=T0(Nh,n),i=vp(n),l=h.useRef(null),c=Ae(t,l,a.onTriggerChange),d=h.useRef(!1),u=h.useRef(!1),m=h.useCallback(()=>d.current=!1,[]);return h.useEffect(()=>()=>document.removeEventListener("pointerup",m),[m]),o.jsx(S0,{asChild:!0,...i,children:o.jsx(de.button,{"aria-describedby":a.open?a.contentId:void 0,"data-state":a.stateAttribute,...r,ref:c,onPointerMove:oe(e.onPointerMove,p=>{p.pointerType!=="touch"&&!u.current&&!s.isPointerInTransitRef.current&&(a.onTriggerEnter(),u.current=!0)}),onPointerLeave:oe(e.onPointerLeave,()=>{a.onTriggerLeave(),u.current=!1}),onPointerDown:oe(e.onPointerDown,()=>{a.open&&a.onClose(),d.current=!0,document.addEventListener("pointerup",m,{once:!0})}),onFocus:oe(e.onFocus,()=>{d.current||a.onOpen()}),onBlur:oe(e.onBlur,a.onClose),onClick:oe(e.onClick,a.onClose)})})});TT.displayName=Nh;var PT="TooltipPortal",[XL,RT]=Lc(PT,{forceMount:void 0}),Sa="TooltipContent",D0=h.forwardRef((e,t)=>{const n=RT(Sa,e.__scopeTooltip),{forceMount:r=n.forceMount,side:a="top",...s}=e,i=Hc(Sa,e.__scopeTooltip);return o.jsx(Co,{present:r||i.open,children:i.disableHoverableContent?o.jsx(M0,{side:a,...s,ref:t}):o.jsx(DT,{side:a,...s,ref:t})})}),DT=h.forwardRef((e,t)=>{const n=Hc(Sa,e.__scopeTooltip),r=T0(Sa,e.__scopeTooltip),a=h.useRef(null),s=Ae(t,a),[i,l]=h.useState(null),{trigger:c,onClose:d}=n,u=a.current,{onPointerInTransitChange:m}=r,p=h.useCallback(()=>{l(null),m(!1)},[m]),f=h.useCallback((w,y)=>{const v=w.currentTarget,x={x:w.clientX,y:w.clientY},g=FT(x,v.getBoundingClientRect()),b=LT(x,g),j=HT(y.getBoundingClientRect()),N=zT([...b,...j]);l(N),m(!0)},[m]);return h.useEffect(()=>()=>p(),[p]),h.useEffect(()=>{if(c&&u){const w=v=>f(v,u),y=v=>f(v,c);return c.addEventListener("pointerleave",w),u.addEventListener("pointerleave",y),()=>{c.removeEventListener("pointerleave",w),u.removeEventListener("pointerleave",y)}}},[c,u,f,p]),h.useEffect(()=>{if(i){const w=y=>{const v=y.target,x={x:y.clientX,y:y.clientY},g=(c==null?void 0:c.contains(v))||(u==null?void 0:u.contains(v)),b=!UT(x,i);g?p():b&&(p(),d())};return document.addEventListener("pointermove",w),()=>document.removeEventListener("pointermove",w)}},[c,u,i,d,p]),o.jsx(M0,{...e,ref:s})}),[MT,_T]=Lc(R0,{isInside:!1}),BT=vS("TooltipContent"),M0=h.forwardRef((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":a,onEscapeKeyDown:s,onPointerDownOutside:i,...l}=e,c=Hc(Sa,n),d=vp(n),{onClose:u}=c;return h.useEffect(()=>(document.addEventListener(qg,u),()=>document.removeEventListener(qg,u)),[u]),h.useEffect(()=>{if(c.trigger){const m=p=>{const f=p.target;f!=null&&f.contains(c.trigger)&&u()};return window.addEventListener("scroll",m,{capture:!0}),()=>window.removeEventListener("scroll",m,{capture:!0})}},[c.trigger,u]),o.jsx(oi,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:s,onPointerDownOutside:i,onFocusOutside:m=>m.preventDefault(),onDismiss:u,children:o.jsxs(I0,{"data-state":c.stateAttribute,...d,...l,ref:t,style:{...l.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[o.jsx(BT,{children:r}),o.jsx(MT,{scope:n,isInside:!0,children:o.jsx(US,{id:c.contentId,role:"tooltip",children:a||r})})]})})});D0.displayName=Sa;var _0="TooltipArrow",OT=h.forwardRef((e,t)=>
407{const{__scopeTooltip:n,...r}=e,a=vp(n);return _T(_0,n).isInside?null:o.jsx(k0,{...a,...r,ref:t})});OT.displayName=_0;function FT(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),a=Math.abs(t.right-e.x),s=Math.abs(t.left-e.x);switch(Math.min(n,r,a,s)){case s:return"left";case a:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function LT(e,t,n=5){const r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function HT(e){const{top:t,right:n,bottom:r,left:a}=e;return[{x:a,y:t},{x:n,y:t},{x:n,y:r},{x:a,y:r}]}function UT(e,t){const{x:n,y:r}=e;let a=!1;for(let s=0,i=t.length-1;s<t.length;i=s++){const l=t[s],c=t[i],d=l.x,u=l.y,m=c.x,p=c.y;u>r!=p>r&&n<(m-d)*(r-u)/(p-u)+d&&(a=!a)}return a}function zT(e){const t=e.slice();return t.sort((n,r)=>n.x<r.x?-1:n.x>r.x?1:n.y<r.y?-1:n.y>r.y?1:0),$T(t)}function $T(e){if(e.length<=1)return e.slice();const t=[];for(let r=0;r<e.length;r++){const a=e[r];for(;t.length>=2;){const s=t[t.length-1],i=t[t.length-2];if((s.x-i.x)*(a.y-i.y)>=(s.y-i.y)*(a.x-i.x))t.pop();else break}t.push(a)}t.pop();const n=[];for(let r=e.length-1;r>=0;r--){const a=e[r];for(;n.length>=2;){const s=n[n.length-1],i=n[n.length-2];if((s.x-i.x)*(a.y-i.y)>=(s.y-i.y)*(a.x-i.x))n.pop();else break}n.push(a)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var GT=P0,B0=D0;const QT=GT,WT=h.forwardRef(({className:e,sideOffset:t=4,...n},r)=>o.jsx(B0,{ref:r,sideOffset:t,className:ke("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...n}));WT.displayName=B0.displayName;var Uc=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(){}},zc=typeof window>"u"||"Deno"in globalThis;function on(){}function qT(e,t){return typeof e=="function"?e(t):e}function VT(e){return typeof e=="number"&&e>=0&&e!==1/0}function XT(e,t){return Math.max(e+(t||0)-Date.now(),0)}function Ah(e,t){return typeof e=="function"?e(t):e}function YT(e,t){return typeof e=="function"?e(t):e}function Vg(e,t){const{type:n="all",exact:r,fetchStatus:a,predicate:s,queryKey:i,stale:l}=e;if(i){if(r){if(t.queryHash!==bp(i,t.options))return!1}else if(!Ws(t.queryKey,i))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||s&&!s(t))}function Xg(e,t){const{exact:n,status:r,predicate:a,mutationKey:s}=e;if(s){if(!t.options.mutationKey)return!1;if(n){if(Qs(t.options.mutationKey)!==Qs(s))return!1}else if(!Ws(t.options.mutationKey,s))return!1}return!(r&&t.state.status!==r||a&&!a(t))}function bp(e,t){return((t==null?void 0:t.queryKeyHashFn)||Qs)(e)}function Qs(e){return JSON.stringify(e,(t,n)=>Eh(n)?Object.keys(n).sort().reduce((r,a)=>(r[a]=n[a],r),{}):n)}function Ws(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(t).every(n=>Ws(e[n],t[n])):!1}function O0(e,t){if(e===t)return e;const n=Yg(e)&&Yg(t);if(n||Eh(e)&&Eh(t)){const r=n?e:Object.keys(e),a=r.length,s=n?t:Object.keys(t),i=s.length,l=n?[]:{},c=new Set(r);let d=0;for(let u=0;u<i;u++){const m=n?u:s[u];(!n&&c.has(m)||n)&&e[m]===void 0&&t[m]===void 0?(l[m]=void 0,d++):(l[m]=O0(e[m],t[m]),l[m]===e[m]&&e[m]!==void 0&&d++)}return a===i&&d===a?e:l}return t}function Yg(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function Eh(e){if(!Kg(e))return!1;const t=e.constructor;if(t===void 0)return!0;const n=t.prototype;return!(!Kg(n)||!n.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(e)!==Object.prototype)}function Kg(e){return Object.prototype.toString.call(e)==="[object Object]"}function KT(e){return new Promise(t=>{setTimeout(t,e)})}function JT(e,t,n){return typeof n.structuralSharing=="function"?n.structuralSharing(e,t):n.structuralSharing!==!1?O0(e,t):t}function ZT(e,t,n=0){const r=[...e,t];return n&&r.length>n?r.slice(1):r}function eP(e,t,n=0){const r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var wp=Symbol();function F0(e,t){return!e.queryFn&&(t!=null&&t.initialPromise)?()=>t.initialPromise:!e.queryFn||e.queryFn===wp?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}
vendor: 20,616 bytes, line 407
407var io,br,la,Ux,tP=(Ux=class extends Uc{constructor(){super();we(this,io);we(this,br);we(this,la);se(this,la,t=>{if(!zc&&window.addEventListener){const n=()=>t();return window.addEventListener("visibilitychange",n,!1),()=>{window.removeEventListener("visibilitychange",n)}}})}onSubscribe(){M(this,br)||this.setEventListener(M(this,la))}onUnsubscribe(){var t;this.hasListeners()||((t=M(this,br))==null||t.call(this),se(this,br,void 0))}setEventListener(t){var n;se(this,la,t),(n=M(this,br))==null||n.call(this),se(this,br,t(r=>{typeof r=="boolean"?this.setFocused(r):this.onFocus()}))}setFocused(t){M(this,io)!==t&&(se(this,io,t),this.onFocus())}onFocus(){const t=this.isFocused();this.listeners.forEach(n=>{n(t)})}isFocused(){var t;return typeof M(this,io)=="boolean"?M(this,io):((t=globalThis.document)==null?void 0:t.visibilityState)!=="hidden"}},io=new WeakMap,br=new WeakMap,la=new WeakMap,Ux),L0=new tP,ca,wr,da,zx,nP=(zx=class extends Uc{constructor(){super();we(this,ca,!0);we(this,wr);we(this,da);se(this,da,t=>{if(!zc&&window.addEventListener){const n=()=>t(!0),r=()=>t(!1);return window.addEventListener("online",n,!1),window.addEventListener("offline",r,!1),()=>{window.removeEventListener("online",n),window.removeEventListener("offline",r)}}})}onSubscribe(){M(this,wr)||this.setEventListener(M(this,da))}onUnsubscribe(){var t;this.hasListeners()||((t=M(this,wr))==null||t.call(this),se(this,wr,void 0))}setEventListener(t){var n;se(this,da,t),(n=M(this,wr))==null||n.call(this),se(this,wr,t(this.setOnline.bind(this)))}setOnline(t){M(this,ca)!==t&&(se(this,ca,t),this.listeners.forEach(r=>{r(t)}))}isOnline(){return M(this,ca)}},ca=new WeakMap,wr=new WeakMap,da=new WeakMap,zx),nc=new nP;function rP(){let e,t;const n=new Promise((a,s)=>{e=a,t=s});n.status="pending",n.catch(()=>{});function r(a){Object.assign(n,a),delete n.resolve,delete n.reject}return n.resolve=a=>{r({status:"fulfilled",value:a}),e(a)},n.reject=a=>{r({status:"rejected",reason:a}),t(a)},n}function oP(e){return Math.min(1e3*2**e,3e4)}function H0(e){return(e??"online")==="online"?nc.isOnline():!0}var U0=class extends Error{constructor(e){super("CancelledError"),this.revert=e==null?void 0:e.revert,this.silent=e==null?void 0:e.silent}};function eu(e){return e instanceof U0}function z0(e){let t=!1,n=0,r=!1,a;const s=rP(),i=y=>{var v;r||(p(new U0(y)),(v=e.abort)==null||v.call(e))},l=()=>{t=!0},c=()=>{t=!1},d=()=>L0.isFocused()&&(e.networkMode==="always"||nc.isOnline())&&e.canRun(),u=()=>H0(e.networkMode)&&e.canRun(),m=y=>{var v;r||(r=!0,(v=e.onSuccess)==null||v.call(e,y),a==null||a(),s.resolve(y))},p=y=>{var v;r||(r=!0,(v=e.onError)==null||v.call(e,y),a==null||a(),s.reject(y))},f=()=>new Promise(y=>{var v;a=x=>{(r||d())&&y(x)},(v=e.onPause)==null||v.call(e)}).then(()=>{var y;a=void 0,r||(y=e.onContinue)==null||y.call(e)}),w=()=>{if(r)return;let y;const v=n===0?e.initialPromise:void 0;try{y=v??e.fn()}catch(x){y=Promise.reject(x)}Promise.resolve(y).then(m).catch(x=>{var A;if(r)return;const g=e.retry??(zc?0:3),b=e.retryDelay??oP,j=typeof b=="function"?b(n,x):b,N=g===!0||typeof g=="number"&&n<g||typeof g=="function"&&g(n,x);if(t||!N){p(x);return}n++,(A=e.onFail)==null||A.call(e,n,x),KT(j).then(()=>d()?void 0:f()).then(()=>{t?p(x):w()})})};return{promise:s,cancel:i,continue:()=>(a==null||a(),s),cancelRetry:l,continueRetry:c,canStart:u,start:()=>(u()?w():f().then(w),s)}}var aP=e=>setTimeout(e,0);function sP(){let e=[],t=0,n=l=>{l()},r=l=>{l()},a=aP;const s=l=>{t?e.push(l):a(()=>{n(l)})},i=()=>{const l=e;e=[],l.length&&a(()=>{r(()=>{l.forEach(c=>{n(c)})})})};return{batch:l=>{let c;t++;try{c=l()}finally{t--,t||i()}return c},batchCalls:l=>(...c)=>{s(()=>{l(...c)})},schedule:s,setNotifyFunction:l=>{n=l},setBatchNotifyFunction:l=>{r=l},setScheduler:l=>{a=l}}}var vt=sP(),lo,$x,$0=($x=class{constructor(){we(this,lo)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),VT(this.gcTime)&&se(this,lo,setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(zc?1/0:5*60*1e3))}clearGcTimeout(){M(this,lo)&&(clearTimeout(M(this,lo)),se(this,lo,void 0))}},lo=new WeakMap,$x),ua,co,Ut,uo,ht,Ks,ho,an,Gn,Gx,iP=(Gx=class extends $0{constructor(t){super();we(this,an);we(this,ua);we(this,co);we(this,Ut);we(this,uo);we(this,ht);we(this,Ks);we(this,ho);se(this,ho,!1),se(this,Ks,t.defaultOptions),this.setOptions(t.options),this.observers=[],se(this,uo,t.client),se(this,Ut,M(this,uo).getQueryCache()),this.queryKey=t.queryKey,this.queryHash=t.queryHash,se(this,ua,cP(this.options)),this.state=t.state??M(this,ua),this.scheduleGc()}get meta(){return this.options.meta}get promise(){var t;return(t=M(this,ht))==null?void 0:t.promise}setOptions(t){this.options={...M(this,Ks),...t},this.updateGcTime(this.options.gcTime)}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&M(this,Ut).remove(this)}setData(t,n){const r=JT(this.state.data,t,this.options);return ct(this,an,Gn).call(this,{data:r,type:"success",dataUpdatedAt:n==null?void 0:n.updatedAt,manual:n==null?void 0:n.manual}),r}setState(t,n){ct(this,an,Gn).call(this,{type:"setState",state:t,setStateOptions:n})}cancel(t){var r,a;const n=(r=M(this,ht))==null?void 0:r.promise;return(a=M(this,ht))==null||a.cancel(t),n?n.then(on).catch(on):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(M(this,ua))}isActive(){return this.observers.some(t=>YT(t.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===wp||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStatic(){return this.getObserversCount()>0?this.observers.some(t=>Ah(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:!XT(this.state.dataUpdatedAt,t)}onFocus(){var n;const t=this.observers.find(r=>r.shouldFetchOnWindowFocus());t==null||t.refetch({cancelRefetch:!1}),(n=M(this,ht))==null||n.continue()}onOnline(){var n;const t=this.observers.find(r=>r.shouldFetchOnReconnect());t==null||t.refetch({cancelRefetch:!1}),(n=M(this,ht))==null||n.continue()}addObserver(t){this.observers.includes(t)||(this.observers.push(t),this.clearGcTimeout(),M(this,Ut).notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){this.observers.includes(t)&&(this.observers=this.observers.filter(n=>n!==t),this.observers.length||(M(this,ht)&&(M(this,ho)?M(this,ht).cancel({revert:!0}):M(this,ht).cancelRetry()),this.scheduleGc()),M(this,Ut).notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||ct(this,an,Gn).call(this,{type:"invalidate"})}fetch(t,n){var d,u,m;if(this.state.fetchStatus!=="idle"){if(this.state.data!==void 0&&(n!=null&&n.cancelRefetch))this.cancel({silent:!0});else if(M(this,ht))return M(this,ht).continueRetry(),M(this,ht).promise}if(t&&this.setOptions(t),!this.options.queryFn){const p=this.observers.find(f=>f.options.queryFn);p&&this.setOptions(p.options)}const r=new AbortController,a=p=>{Object.defineProperty(p,"signal",{enumerable:!0,get:()=>(se(this,ho,!0),r.signal)})},s=()=>{const p=F0(this.options,n),w=(()=>{const y={client:M(this,uo),queryKey:this.queryKey,meta:this.meta};return a(y),y})();return se(this,ho,!1),this.options.persister?this.options.persister(p,w,this):p(w)},l=(()=>{const p={fetchOptions:n,options:this.options,queryKey:this.queryKey,client:M(this,uo),state:this.state,fetchFn:s};return a(p),p})();(d=this.options.behavior)==null||d.onFetch(l,this),se(this,co,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((u=l.fetchOptions)==null?void 0:u.meta))&&ct(this,an,Gn).call(this,{type:"fetch",meta:(m=l.fetchOptions)==null?void 0:m.meta});const c=p=>{var f,w,y,v;eu(p)&&p.silent||ct(this,an,Gn).call(this,{type:"error",error:p}),eu(p)||((w=(f=M(this,Ut).config).onError)==null||w.call(f,p,this),(v=(y=M(this,Ut).config).onSettled)==null||v.call(y,this.state.data,p,this)),this.scheduleGc()};return se(this,ht,z0({initialPromise:n==null?void 0:n.initialPromise,fn:l.fetchFn,abort:r.abort.bind(r),onSuccess:p=>{var f,w,y,v;if(p===void 0){c(new Error(`${this.queryHash} data is undefined`));return}try{this.setData(p)}catch(x){c(x);return}(w=(f=M(this,Ut).config).onSuccess)==null||w.call(f,p,this),(v=(y=M(this,Ut).config).onSettled)==null||v.call(y,p,this.state.error,this),this.scheduleGc()},onError:c,onFail:(p,f)=>{ct(this,an,Gn).call(this,{type:"failed",failureCount:p,error:f})},onPause:()=>{ct(this,an,Gn).call(this,{type:"pause"})},onContinue:()=>{ct(this,an,Gn).call(this,{type:"continue"})},retry:l.options.retry,retryDelay:l.options.retryDelay,networkMode:l.options.networkMode,canRun:()=>!0})),M(this,ht).start()}},ua=new WeakMap,co=new WeakMap,Ut=new WeakMap,uo=new WeakMap,ht=new WeakMap,Ks=new WeakMap,ho=new WeakMap,an=new WeakSet,Gn=function(t){const n=r=>{switch(t.type){case"failed":return{...r,fetchFailureCount:t.failureCount,fetchFailureReason:t.error};case"pause":return{...r,fetchStatus:"paused"};case"continue":return{...r,fetchStatus:"fetching"};case"fetch":return{...r,...lP(r.data,this.options),fetchMeta:t.meta??null};case"success":return se(this,co,void 0),{...r,data:t.data,dataUpdateCount:r.dataUpdateCount+1,dataUpdatedAt:t.dataUpdatedAt??Date.now(),error:null,isInvalidated:!1,status:"success",...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};case"error":const a=t.error;return eu(a)&&a.revert&&M(this,co)?{...M(this,co),fetchStatus:"idle"}:{...r,error:a,errorUpdateCount:r.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:r.fetchFailureCount+1,fetchFailureReason:a,fetchStatus:"idle",status:"error"};case"invalidate":return{...r,isInvalidated:!0};case"setState":return{...r,...t.state}}};this.state=n(this.state),vt.batch(()=>{this.observers.forEach(r=>{r.onQueryUpdate()}),M(this,Ut).notify({query:this,type:"updated",action:t})})},Gx);function lP(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:H0(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function cP(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,n=t!==void 0,r=n?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?"success":"pending",fetchStatus:"idle"}}var In,Qx,dP=(Qx=class extends Uc{constructor(t={}){super();we(this,In);this.config=t,se(this,In,new Map)}build(t,n,r){const a=n.queryKey,s=n.queryHash??bp(a,n);let i=this.get(s);return i||(i=new iP({client:t,queryKey:a,queryHash:s,options:t.defaultQueryOptions(n),state:r,defaultOptions:t.getQueryDefaults(a)}),this.add(i)),i}add(t){M(this,In).has(t.queryHash)||(M(this,In).set(t.queryHash,t),this.notify({type:"added",query:t}))}remove(t){const n=M(this,In).get(t.queryHash);n&&(t.destroy(),n===t&&M(this,In).delete(t.queryHash),this.notify({type:"removed",query:t}))}clear(){vt.batch(()=>{this.getAll().forEach(t=>{this.remove(t)})})}get(t){return M(this,In).get(t)}getAll(){return[...M(this,In).values()]}find(t){const n={exact:!0,...t};return this.getAll().find(r=>Vg(n,r))}findAll(t={}){const n=this.getAll();return Object.keys(t).length>0?n.filter(r=>Vg(t,r)):n}notify(t){vt.batch(()=>{this.listeners.forEach(n=>{n(t)})})}onFocus(){vt.batch(()=>{this.getAll().forEach(t=>{t.onFocus()})})}onOnline(){vt.batch(()=>{this.getAll().forEach(t=>{t.onOnline()})})}},In=new WeakMap,Qx),kn,gt,mo,Cn,pr,Wx,uP=(Wx=class extends $0{constructor(t){super();we(this,Cn);we(this,kn);we(this,gt);we(this,mo);this.mutationId=t.mutationId,se(this,gt,t.mutationCache),se(this,kn,[]),this.state=t.state||hP(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){M(this,kn).includes(t)||(M(this,kn).push(t),this.clearGcTimeout(),M(this,gt).notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){se(this,kn,M(this,kn).filter(n=>n!==t)),this.scheduleGc(),M(this,gt).notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){M(this,kn).length||(this.state.status==="pending"?this.scheduleGc():M(this,gt).remove(this))}continue(){var t;return((t=M(this,mo))==null?void 0:t.continue())??this.execute(this.state.variables)}async execute(t){var s,i,l,c,d,u,m,p,f,w,y,v,x,g,b,j,N,A,E,S;const n=()=>{ct(this,Cn,pr).call(this,{type:"continue"})};se(this,mo,z0({fn:()=>this.options.mutationFn?this.options.mutationFn(t):Promise.reject(new Error("No mutationFn found")),onFail:(D,R)=>{ct(this,Cn,pr).call(this,{type:"failed",failureCount:D,error:R})},onPause:()=>{ct(this,Cn,pr).call(this,{type:"pause"})},onContinue:n,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>M(this,gt).canRun(this)}));const r=this.state.status==="pending",a=!M(this,mo).canStart();try{if(r)n();else{ct(this,Cn,pr).call(this,{type:"pending",variables:t,isPaused:a}),await((i=(s=M(this,gt).config).onMutate)==null?void 0:i.call(s,t,this));const R=await((c=(l=this.options).onMutate)==null?void 0:c.call(l,t));R!==this.state.context&&ct(this,Cn,pr).call(this,{type:"pending",context:R,variables:t,isPaused:a})}const D=await M(this,mo).start();return await((u=(d=M(this,gt).config).onSuccess)==null?void 0:u.call(d,D,t,this.state.context,this)),await((p=(m=this.options).onSuccess)==null?void 0:p.call(m,D,t,this.state.context)),await((w=(f=M(this,gt).config).onSettled)==null?void 0:w.call(f,D,null,this.state.variables,this.state.context,this)),await((v=(y=this.options).onSettled)==null?void 0:v.call(y,D,null,t,this.state.context)),ct(this,Cn,pr).call(this,{type:"success",data:D}),D}catch(D){try{throw await((g=(x=M(this,gt).config).onError)==null?void 0:g.call(x,D,t,this.state.context,this)),await((j=(b=this.options).onError)==null?void 0:j.call(b,D,t,this.state.context)),await((A=(N=M(this,gt).config).onSettled)==null?void 0:A.call(N,void 0,D,this.state.variables,this.state.context,this)),await((S=(E=this.options).onSettled)==null?void 0:S.call(E,void 0,D,t,this.state.context)),D}finally{ct(this,Cn,pr).call(this,{type:"error",error:D})}}finally{M(this,gt).runNext(this)}}},kn=new WeakMap,gt=new WeakMap,mo=new WeakMap,Cn=new WeakSet,pr=function(t){const n=r=>{switch(t.type){case"failed":return{...r,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...r,isPaused:!0};case"continue":return{...r,isPaused:!1};case"pending":return{...r,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{...r,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...r,data:void 0,error:t.error,failureCount:r.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}};this.state=n(this.state),vt.batch(()=>{M(this,kn).forEach(r=>{r.onMutationUpdate(t)}),M(this,gt).notify({mutation:this,type:"updated",action:t})})},Wx);function hP(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var qn,sn,Js,qx,mP=(qx=class extends Uc{constructor(t={}){super();we(this,qn);we(this,sn);we(this,Js);this.config=t,se(this,qn,new Set),se(this,sn,new Map),se(this,Js,0)}build(t,n,r){const a=new uP({mutationCache:this,mutationId:++wi(this,Js)._,options:t.defaultMutationOptions(n),state:r});return this.add(a),a}add(t){M(this,qn).add(t);const n=$i(t);if(typeof n=="string"){const r=M(this,sn).get(n);r?r.push(t):M(this,sn).set(n,[t])}this.notify({type:"added",mutation:t})}remove(t){if(M(this,qn).delete(t)){const n=$i(t);if(typeof n=="string"){const r=M(this,sn).get(n);if(r)if(r.length>1){const a=r.indexOf(t);a!==-1&&r.splice(a,1)}else r[0]===t&&M(this,sn).delete(n)}}this.notify({type:"removed",mutation:t})}canRun(t){const n=$i(t);if(typeof n=="string"){const r=M(this,sn).get(n),a=r==null?void 0:r.find(s=>s.state.status==="pending");return!a||a===t}else return!0}runNext(t){var r;const n=$i(t);if(typeof n=="string"){const a=(r=M(this,sn).get(n))==null?void 0:r.find(s=>s!==t&&s.state.isPaused);return(a==null?void 0:a.continue())??Promise.resolve()}else return Promise.resolve()}clear(){vt.batch(()=>{M(this,qn).forEach(t=>{this.notify({type:"removed",mutation:t})}),M(this,qn).clear(),M(this,sn).clear()})}getAll(){return Array.from(M(this,qn))}find(t){const n={exact:!0,...t};return this.getAll().find(r=>Xg(n,r))}findAll(t={}){return this.getAll().filter(n=>Xg(t,n))}notify(t){vt.batch(()=>{this.listeners.forEach(n=>{n(t)})})}resumePausedMutations(){const t=this.getAll().filter(n=>n.state.isPaused);return vt.batch(()=>Promise.all(t.map(n=>n.continue().catch(on))))}},qn=new WeakMap,sn=new WeakMap,Js=new WeakMap,qx);function $i(e){var t;return(t=e.options.scope)==null?void 0:t.id}function Jg(e){return{onFetch:(t,n)=>{var u,m,p,f,w;const r=t.options,a=(p=(m=(u=t.fetchOptions)==null?void 0:u.meta)==null?void 0:m.fetchMore)==null?void 0:p.direction,s=((f=t.state.data)==null?void 0:f.pages)||[],i=((w=t.state.data)==null?void 0:w.pageParams)||[];let l={pages:[],pageParams:[]},c=0;const d=async()=>{let y=!1;const v=b=>{Object.defineProperty(b,"signal",{enumerable:!0,get:()=>(t.signal.aborted?y=!0:t.signal.addEventListener("abort",()=>{y=!0}),t.signal)})},x=F0(t.options,t.fetchOptions),g=async(b,j,N)=>{if(y)return Promise.reject();if(j==null&&b.pages.length)return Promise.resolve(b);const E=(()=>{const $={client:t.client,queryKey:t.queryKey,pageParam:j,direction:N?"backward":"forward",meta:t.options.meta};return v($),$})(),S=await x(E),{maxPages:D}=t.options,R=N?eP:ZT;return{pages:R(b.pages,S,D),pageParams:R(b.pageParams,j,D)}};if(a&&s.length){const b=a==="backward",j=b?pP:Zg,N={pages:s,pageParams:i},A=j(r,N);l=await g(N,A,b)}else{const b=e??s.length;do{const j=c===0?i[0]??r.initialPageParam:Zg(r,l);if(c>0&&j==null)break;l=await g(l,j),c++}while(c<b)}return l};t.options.persister?t.fetchFn=()=>{var y,v;return(v=(y=t.options).persister)==null?void 0:v.call(y,d,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n)}:t.fetchFn=d}}}function Zg(e,{pages:t,pageParams:n}){const r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,n[r],n):void 0}function pP(e,{pages:t,pageParams:n}){var r;return t.length>0?(r=e.getPreviousPageParam)==null?void 0:r.call(e,t[0],t,n[0],n):void 0}var $e,jr,Nr,ha,ma,Ar,pa,fa,Vx,fP=(Vx=class{constructor(e={}){we(this,$e);we(this,jr);we(this,Nr);we(this,ha);we(this,ma);we(this,Ar);we(this,pa);we(this,fa);se(this,$e,e.queryCache||new dP),se(this,jr,e.mutationCache||new mP),se(this,Nr,e.defaultOptions||{}),se(this,ha,new Map),se(this,ma,new Map),se(this,Ar,0)}mount(){wi(this,Ar)._++,M(this,Ar)===1&&(se(this,pa,L0.subscribe(async e=>{e&&(await this.resumePausedMutations(),M(this,$e).onFocus())})),se(this,fa,nc.subscribe(async e=>{e&&(await this.resumePausedMutations(),M(this,$e).onOnline())})))}unmount(){var e,t;wi(this,Ar)._--,M(this,Ar)===0&&((e=M(this,pa))==null||e.call(this),se(this,pa,void 0),(t=M(this,fa))==null||t.call(this),se(this,fa,void 0))}isFetching(e){return M(this,$e).findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return M(this,jr).findAll({...e,status:"pending"}).length}getQueryData(e){var n;const t=this.defaultQueryOptions({queryKey:e});return(n=M(this,$e).get(t.queryHash))==null?void 0:n.state.data}ensureQueryData(e){const t=this.defaultQueryOptions(e),n=M(this,$e).build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(Ah(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return M(this,$e).findAll(e).map(({queryKey:t,state:n})=>{const r=n.data;return[t,r]})}setQueryData(e,t,n){const r=this.defaultQueryOptions({queryKey:e}),a=M(this,$e).get(r.queryHash),s=a==null?void 0:a.state.data,i=qT(t,s);if(i!==void 0)return M(this,$e).build(this,r).setData(i,{...n,manual:!0})}setQueriesData(e,t,n){return vt.batch(()=>M(this,$e).findAll(e).map(({queryKey:r})=>[r,this.setQueryData(r,t,n)]))}getQueryState(e){var n;const t=this.defaultQueryOptions({queryKey:e});return(n=M(this,$e).get(t.queryHash))==null?void 0:n.state}removeQueries(e){const t=M(this,$e);vt.batch(()=>
407{t.findAll(e).forEach(n=>{t.remove(n)})})}resetQueries(e,t){const n=M(this,$e);return vt.batch(()=>(n.findAll(e).forEach(r=>{r.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){const n={revert:!0,...t},r=vt.batch(()=>M(this,$e).findAll(e).map(a=>a.cancel(n)));return Promise.all(r).then(on).catch(on)}invalidateQueries(e,t={}){return vt.batch(()=>(M(this,$e).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},r=vt.batch(()=>M(this,$e).findAll(e).filter(a=>!a.isDisabled()&&!a.isStatic()).map(a=>{let s=a.fetch(void 0,n);return n.throwOnError||(s=s.catch(on)),a.state.fetchStatus==="paused"?Promise.resolve():s}));return Promise.all(r).then(on)}fetchQuery(e){const t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);const n=M(this,$e).build(this,t);return n.isStaleByTime(Ah(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(on).catch(on)}fetchInfiniteQuery(e){return e.behavior=Jg(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(on).catch(on)}ensureInfiniteQueryData(e){return e.behavior=Jg(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return nc.isOnline()?M(this,jr).resumePausedMutations():Promise.resolve()}getQueryCache(){return M(this,$e)}getMutationCache(){return M(this,jr)}getDefaultOptions(){return M(this,Nr)}setDefaultOptions(e){se(this,Nr,e)}setQueryDefaults(e,t){M(this,ha).set(Qs(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...M(this,ha).values()],n={};return t.forEach(r=>{Ws(e,r.queryKey)&&Object.assign(n,r.defaultOptions)}),n}setMutationDefaults(e,t){M(this,ma).set(Qs(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...M(this,ma).values()],n={};return t.forEach(r=>{Ws(e,r.mutationKey)&&Object.assign(n,r.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;const t={...M(this,Nr).queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=bp(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===wp&&(t.enabled=!1),t}defaultMutationOptions(e){return e!=null&&e._defaulted?e:{...M(this,Nr).mutations,...(e==null?void 0:e.mutationKey)&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){M(this,$e).clear(),M(this,jr).clear()}},$e=new WeakMap,jr=new WeakMap,Nr=new WeakMap,ha=new WeakMap,ma=new WeakMap,Ar=new WeakMap,pa=new WeakMap,fa=new WeakMap,Vx),gP=h.createContext(void 0),yP=({client:e,children:t})=>(h.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),o.jsx(gP.Provider,{value:e,children:t})),Sh=function(e,t){return Sh=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[a]=r[a])},Sh(e,t)};function Xt(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");Sh(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var X=function(){return X=Object.assign||function(t){for(var n,r=1,a=arguments.length;r<a;r++){n=arguments[r];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},X.apply(this,arguments)};function La(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]]);return n}function dn(e,t,n){if(n||arguments.length===2)for(var r=0,a=t.length,s;r<a;r++)(s||!(r in t))&&(s||(s=Array.prototype.slice.call(t,0,r)),s[r]=t[r]);return e.concat(s||Array.prototype.slice.call(t))}function En(e,t){var n=t&&t.cache?t.cache:AP,r=t&&t.serializer?t.serializer:jP,a=t&&t.strategy?t.strategy:bP;return a(e,{cache:n,serializer:r})}function xP(e){return e==null||typeof e=="number"||typeof e=="boolean"}function vP(e,t,n,r){var a=xP(r)?r:n(r),s=t.get(a);return typeof s>"u"&&(s=e.call(this,r),t.set(a,s)),s}
vendor: 6,359 bytes, line 407
407function G0(e,t,n){var r=Array.prototype.slice.call(arguments,3),a=n(r),s=t.get(a);return typeof s>"u"&&(s=e.apply(this,r),t.set(a,s)),s}function Q0(e,t,n,r,a){return n.bind(t,e,r,a)}function bP(e,t){var n=e.length===1?vP:G0;return Q0(e,this,n,t.cache.create(),t.serializer)}function wP(e,t){return Q0(e,this,G0,t.cache.create(),t.serializer)}var jP=function(){return JSON.stringify(arguments)},NP=function(){function e(){this.cache=Object.create(null)}return e.prototype.get=function(t){return this.cache[t]},e.prototype.set=function(t,n){this.cache[t]=n},e}(),AP={create:function(){return new NP}},Sn={variadic:wP},fe;(function(e){e[e.EXPECT_ARGUMENT_CLOSING_BRACE=1]="EXPECT_ARGUMENT_CLOSING_BRACE",e[e.EMPTY_ARGUMENT=2]="EMPTY_ARGUMENT",e[e.MALFORMED_ARGUMENT=3]="MALFORMED_ARGUMENT",e[e.EXPECT_ARGUMENT_TYPE=4]="EXPECT_ARGUMENT_TYPE",e[e.INVALID_ARGUMENT_TYPE=5]="INVALID_ARGUMENT_TYPE",e[e.EXPECT_ARGUMENT_STYLE=6]="EXPECT_ARGUMENT_STYLE",e[e.INVALID_NUMBER_SKELETON=7]="INVALID_NUMBER_SKELETON",e[e.INVALID_DATE_TIME_SKELETON=8]="INVALID_DATE_TIME_SKELETON",e[e.EXPECT_NUMBER_SKELETON=9]="EXPECT_NUMBER_SKELETON",e[e.EXPECT_DATE_TIME_SKELETON=10]="EXPECT_DATE_TIME_SKELETON",e[e.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE=11]="UNCLOSED_QUOTE_IN_ARGUMENT_STYLE",e[e.EXPECT_SELECT_ARGUMENT_OPTIONS=12]="EXPECT_SELECT_ARGUMENT_OPTIONS",e[e.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE=13]="EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE",e[e.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE=14]="INVALID_PLURAL_ARGUMENT_OFFSET_VALUE",e[e.EXPECT_SELECT_ARGUMENT_SELECTOR=15]="EXPECT_SELECT_ARGUMENT_SELECTOR",e[e.EXPECT_PLURAL_ARGUMENT_SELECTOR=16]="EXPECT_PLURAL_ARGUMENT_SELECTOR",e[e.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT=17]="EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT",e[e.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT=18]="EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT",e[e.INVALID_PLURAL_ARGUMENT_SELECTOR=19]="INVALID_PLURAL_ARGUMENT_SELECTOR",e[e.DUPLICATE_PLURAL_ARGUMENT_SELECTOR=20]="DUPLICATE_PLURAL_ARGUMENT_SELECTOR",e[e.DUPLICATE_SELECT_ARGUMENT_SELECTOR=21]="DUPLICATE_SELECT_ARGUMENT_SELECTOR",e[e.MISSING_OTHER_CLAUSE=22]="MISSING_OTHER_CLAUSE",e[e.INVALID_TAG=23]="INVALID_TAG",e[e.INVALID_TAG_NAME=25]="INVALID_TAG_NAME",e[e.UNMATCHED_CLOSING_TAG=26]="UNMATCHED_CLOSING_TAG",e[e.UNCLOSED_TAG=27]="UNCLOSED_TAG"})(fe||(fe={}));var _e;(function(e){e[e.literal=0]="literal",e[e.argument=1]="argument",e[e.number=2]="number",e[e.date=3]="date",e[e.time=4]="time",e[e.select=5]="select",e[e.plural=6]="plural",e[e.pound=7]="pound",e[e.tag=8]="tag"})(_e||(_e={}));var Ia;(function(e){e[e.number=0]="number",e[e.dateTime=1]="dateTime"})(Ia||(Ia={}));function ey(e){return e.type===_e.literal}function EP(e){return e.type===_e.argument}function W0(e){return e.type===_e.number}function q0(e){return e.type===_e.date}function V0(e){return e.type===_e.time}function X0(e){return e.type===_e.select}function Y0(e){return e.type===_e.plural}function SP(e){return e.type===_e.pound}function K0(e){return e.type===_e.tag}function J0(e){return!!(e&&typeof e=="object"&&e.type===Ia.number)}function Ih(e){return!!(e&&typeof e=="object"&&e.type===Ia.dateTime)}var Z0=/[ \xA0\u1680\u2000-\u200A\u202F\u205F\u3000]/,IP=/(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;function kP(e){var t={};return e.replace(IP,function(n){var r=n.length;switch(n[0]){case"G":t.era=r===4?"long":r===5?"narrow":"short";break;case"y":t.year=r===2?"2-digit":"numeric";break;case"Y":case"u":case"U":case"r":throw new RangeError("`Y/u/U/r` (year) patterns are not supported, use `y` instead");case"q":case"Q":throw new RangeError("`q/Q` (quarter) patterns are not supported");case"M":case"L":t.month=["numeric","2-digit","short","long","narrow"][r-1];break;case"w":case"W":throw new RangeError("`w/W` (week) patterns are not supported");case"d":t.day=["numeric","2-digit"][r-1];break;case"D":case"F":case"g":throw new RangeError("`D/F/g` (day) patterns are not supported, use `d` instead");case"E":t.weekday=r===4?"long":r===5?"narrow":"short";break;case"e":if(r<4)throw new RangeError("`e..eee` (weekday) patterns are not supported");t.weekday=["short","long","narrow","short"][r-4];break;case"c":if(r<4)throw new RangeError("`c..ccc` (weekday) patterns are not supported");t.weekday=["short","long","narrow","short"][r-4];break;case"a":t.hour12=!0;break;case"b":case"B":throw new RangeError("`b/B` (period) patterns are not supported, use `a` instead");case"h":t.hourCycle="h12",t.hour=["numeric","2-digit"][r-1];break;case"H":t.hourCycle="h23",t.hour=["numeric","2-digit"][r-1];break;case"K":t.hourCycle="h11",t.hour=["numeric","2-digit"][r-1];break;case"k":t.hourCycle="h24",t.hour=["numeric","2-digit"][r-1];break;case"j":case"J":case"C":throw new RangeError("`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead");case"m":t.minute=["numeric","2-digit"][r-1];break;case"s":t.second=["numeric","2-digit"][r-1];break;case"S":case"A":throw new RangeError("`S/A` (second) patterns are not supported, use `s` instead");case"z":t.timeZoneName=r<4?"short":"long";break;case"Z":case"O":case"v":case"V":case"X":case"x":throw new RangeError("`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead")}return""}),t}var CP=/[\t-\r \x85\u200E\u200F\u2028\u2029]/i;function TP(e){if(e.length===0)throw new Error("Number skeleton cannot be empty");for(var t=e.split(CP).filter(function(p){return p.length>0}),n=[],r=0,a=t;r<a.length;r++){var s=a[r],i=s.split("/");if(i.length===0)throw new Error("Invalid number skeleton");for(var l=i[0],c=i.slice(1),d=0,u=c;d<u.length;d++){var m=u[d];if(m.length===0)throw new Error("Invalid number skeleton")}n.push({stem:l,options:c})}return n}function PP(e){return e.replace(/^(.*?)-/,"")}var ty=/^\.(?:(0+)(\*)?|(#+)|(0+)(#+))$/g,e1=/^(@+)?(\+|#+)?[rs]?$/g,RP=/(\*)(0+)|(#+)(0+)|(0+)/g,t1=/^(0+)$/;function ny(e){var t={};return e[e.length-1]==="r"?t.roundingPriority="morePrecision":e[e.length-1]==="s"&&(t.roundingPriority="lessPrecision"),e.replace(e1,function(n,r,a){return typeof a!="string"?(t.minimumSignificantDigits=r.length,t.maximumSignificantDigits=r.length):a==="+"?t.minimumSignificantDigits=r.length:r[0]==="#"?t.maximumSignificantDigits=r.length:(t.minimumSignificantDigits=r.length,t.maximumSignificantDigits=r.length+(typeof a=="str
407ing"?a.length:0)),""}),t}function n1(e){switch(e){case"sign-auto":return{signDisplay:"auto"};case"sign-accounting":case"()":return{currencySign:"accounting"};case"sign-always":case"+!":return{signDisplay:"always"};case"sign-accounting-always":case"()!":return{signDisplay:"always",currencySign:"accounting"};case"sign-except-zero":case"+?":return{signDisplay:"exceptZero"};case"sign-accounting-except-zero":case"()?":return{signDisplay:"exceptZero",currencySign:"accounting"};case"sign-never":case"+_":return{signDisplay:"never"}}}function DP(e){var t;if(e[0]==="E"&&e[1]==="E"?(t={notation:"engineering"},e=e.slice(2)):e[0]==="E"&&(t={notation:"scientific"},e=e.slice(1)),t){var n=e.slice(0,2);if(n==="+!"?(t.signDisplay="always",e=e.slice(2)):n==="+?"&&(t.signDisplay="exceptZero",e=e.slice(2)),!t1.test(e))throw new Error("Malformed concise eng/scientific notation");t.minimumIntegerDigits=e.length}return t}function ry(e){var t={},n=n1(e);return n||t}function MP(e){for(var t={},n=0,r=e;n<r.length;n++){var a=r[n];switch(a.stem){case"percent":case"%":t.style="percent";continue;case"%x100":t.style="percent",t.scale=100;continue;case"currency":t.style="currency",t.currency=a.options[0];continue;case"group-off":case",_":t.useGrouping=!1;continue;case"precision-integer":case".":t.maximumFractionDigits=0;continue;case"measure-unit":case"unit":t.style="unit",t.unit=PP(a.options[0]);continue;case"compact-short":case"K":t.notation="compact",t.compactDisplay="short";continue;case"compact-long":case"KK":t.notation="compact",t.compactDisplay="long";continue;case"scientific":t=X(X(X({},t),{notation:"scientific"}),a.options.reduce(function(c,d){return X(X({},c),ry(d))},{}));continue;case"engineering":t=X(X(X({},t),{notation:"engineering"}),a.options.reduce(function(c,d){return X(X({},c),ry(d))},{}));continue;case"notation-simple":t.notation="standard";continue;case"unit-width-narrow":t.currencyDisplay="narrowSymbol",t.unitDisplay="narrow";continue;case"unit-width-short":t.currencyDisplay="code",t.unitDisplay="short";continue;case"unit-width-full-name":t.currencyDisplay="name",t.unitDisplay="long";continue;case"unit-width-iso-code":t.currencyDisplay="symbol";continue;case"scale":t.scale=parseFloat(a.options[0]);continue;case"rounding-mode-floor":t.roundingMode="floor";continue;case"rounding-mode-ceiling":t.roundingMode="ceil";continue;case"rounding-mode-down":t.roundingMode="trunc";continue;case"rounding-mode-up":t.roundingMode="expand";continue;case"rounding-mode-half-even":t.roundingMode="halfEven";continue;case"rounding-mode-half-down":t.roundingMode="halfTrunc";continue;case"rounding-mode-half-up":t.roundingMode="halfExpand";continue;case"integer-width":if(a.options.length>1)throw new RangeError("integer-width stems only accept a single optional option");a.options[0].replace(RP,function(c,d,u,m,p,f){if(d)t.minimumIntegerDigits=u.length;else{if(m&&p)throw new Error("We currently do not support maximum integer digits");if(f)throw new Error("We currently do not support exact integer digits")}return""});continue}if(t1.test(a.stem)){t.minimumIntegerDigits=a.stem.length;continue}if(ty.test(a.stem)){if(a.options.length>1)throw new RangeError("Fraction-precision stems only accept a single optional option");a.stem.replace(ty,function(c,d,u,m,p,f){return u==="*"?t.minimumFractionDigits=d.length:m&&m[0]==="#"?t.maximumFractionDigits=m.length:p&&f?(t.minimumFractionDigits=p.length,t.maximumFractionDigits=p.length+f.length):(t.minimumFractionDigits=d.length,t.maximumFractionDigits=d.length),""});var s=a.options[0];s==="w"?t=X(X({},t),{trailingZeroDisplay:"stripIfInteger"}):s&&(t=X(X({},t),ny(s)));continue}if(e1.test(a.stem)){t=X(X({},t),ny(a.stem));continue}var i=n1(a.stem);i&&(t=X(X({},t),i));var l=DP(a.stem);l&&(t=X(X({},t),l))}return t}var Gi={"001":["H","h"],419:["h","H","hB","hb"],AC:["H","h","hb","hB"],AD:["H","hB"],AE:["h","hB","hb","H"],AF:["H","hb","hB","h"],AG:["h","hb","H","hB"],AI:["H","h","hb","hB"],AL:["h","H","hB"],AM:["H","hB"],AO:["H","hB"],AR:["h","H","hB","hb"],AS:["h","H"],AT:["H","hB"],AU:["h","hb","H","hB"],AW:["H","hB"],AX:["H"],AZ:["H","hB","h"],BA:["H","hB","h"],BB:["h","hb","H","hB"],BD:["h","hB","H"],BE:["H","hB"],BF:["H","hB"],BG:["H","hB","h"],BH:["h","hB","hb","H"],BI:["H","h"],BJ:["H","hB"],BL:["H","hB"],BM:["h","hb","H","hB"],BN:["hb","hB","h","H"],BO:["h","H","hB","hb"],BQ:["H"],BR:["H","hB"],BS:["h","hb","H","hB"],BT:["h","H"],BW:["H","h","hb","hB"],BY:["H","h"],BZ:["H","h","hb","hB"],CA:["h","hb","H","hB"],CC:["H","h","hb","hB"],CD:["hB","H"],CF:["H","h","hB"],CG:["H","hB"],CH:["H","hB","h"],CI:["H","hB"],CK:["H","h","hb","hB"],CL:["h","H","hB","hb"],CM:["H","h","hB"],CN:["H","hB","hb","h"],CO:["h","H","hB","hb"],CP:["H"],CR:["h","H","hB","hb"],CU:["h","H","hB","hb"],CV:["H","hB"],CW:["H","hB"],CX:["H","h","hb","hB"],CY:["h","H","hb","hB"],CZ:["H"],DE:["H","hB"],DG:["H","h","hb","hB"],DJ:["h","H"],DK:["H"],DM:["h","hb","H","hB"],DO:["h","H","hB","hb"],DZ:["h","hB","hb","H"],EA:["H","h","hB","hb"],EC:["h","H","hB","hb"],EE:["H","hB"],EG:["h","hB","hb","H"],EH:["h","hB","hb","H"],ER:["h","H"],ES:["H","hB","h","hb"],ET:["hB","hb","h","H"],FI:["H"],FJ:["h","hb","H","hB"],FK:["H","h","hb","hB"],FM:["h","hb","H","hB"],FO:["H","h"],FR:["H","hB"],GA:["H","hB"],GB:["H","h","hb","hB"],GD:["h","hb","H","hB"],GE:["H","hB","h"],GF:["H","hB"],GG:["H","h","hb","hB"],GH:["h","H"],GI:["H","h","hb","hB"],GL:["H","h"],GM:["h","hb","H","hB"],GN:["H","hB"],GP:["H","hB"],GQ:["H","hB","h","hb"],GR:["h","H","hb","hB"],GT:["h","H","hB","hb"],GU:["h","hb","H","hB"],GW:["H","hB"],GY:["h","hb","H","hB"],HK:["h","hB","hb","H"],HN:["h","H","hB","hb"],HR:["H","hB"],HU:["H","h"],IC:["H","h","hB","hb"],ID:["H"],IE:["H","h","hb","hB"],IL:["H","hB"],IM:["H","h","hb","hB"],IN:["h","H"],IO:["H","h","hb","hB"],IQ:["h","hB","hb","H"],IR:["hB","H"],IS:["H"],IT:["H","hB"],JE:["H","h","hb","hB"],JM:["h","hb","H","hB"],JO:["h","hB","hb","H"],JP:["H","K","h"],KE:["hB","hb","H","h"],KG:["H","h","hB","hb"],KH:["hB","h","H","hb"],KI:["h","hb","H","hB"],KM:["H","h","hB","hb"],KN:["h","hb","H","hB"],KP:["h","H","hB","hb"],KR:["h","H","hB","hb"],KW:["h","hB","hb","H"],KY:["h","hb","H","hB"],KZ:["H","hB"],LA:["H","hb","hB","h"],LB:["h","hB","hb","H"],LC:["h","hb","H","hB"],LI:["H","hB","h"],LK:["H","h","hB","hb"],LR:["h","hb","H","hB"],LS:["h","H"],LT:["H","h","hb","hB"],LU:["H","h","hB"],LV:["H","hB","hb","h"],LY:["h","hB","hb","H"],MA
vendor: 4,384 bytes, line 407
407:["H","h","hB","hb"],MC:["H","hB"],MD:["H","hB"],ME:["H","hB","h"],MF:["H","hB"],MG:["H","h"],MH:["h","hb","H","hB"],MK:["H","h","hb","hB"],ML:["H"],MM:["hB","hb","H","h"],MN:["H","h","hb","hB"],MO:["h","hB","hb","H"],MP:["h","hb","H","hB"],MQ:["H","hB"],MR:["h","hB","hb","H"],MS:["H","h","hb","hB"],MT:["H","h"],MU:["H","h"],MV:["H","h"],MW:["h","hb","H","hB"],MX:["h","H","hB","hb"],MY:["hb","hB","h","H"],MZ:["H","hB"],NA:["h","H","hB","hb"],NC:["H","hB"],NE:["H"],NF:["H","h","hb","hB"],NG:["H","h","hb","hB"],NI:["h","H","hB","hb"],NL:["H","hB"],NO:["H","h"],NP:["H","h","hB"],NR:["H","h","hb","hB"],NU:["H","h","hb","hB"],NZ:["h","hb","H","hB"],OM:["h","hB","hb","H"],PA:["h","H","hB","hb"],PE:["h","H","hB","hb"],PF:["H","h","hB"],PG:["h","H"],PH:["h","hB","hb","H"],PK:["h","hB","H"],PL:["H","h"],PM:["H","hB"],PN:["H","h","hb","hB"],PR:["h","H","hB","hb"],PS:["h","hB","hb","H"],PT:["H","hB"],PW:["h","H"],PY:["h","H","hB","hb"],QA:["h","hB","hb","H"],RE:["H","hB"],RO:["H","hB"],RS:["H","hB","h"],RU:["H"],RW:["H","h"],SA:["h","hB","hb","H"],SB:["h","hb","H","hB"],SC:["H","h","hB"],SD:["h","hB","hb","H"],SE:["H"],SG:["h","hb","H","hB"],SH:["H","h","hb","hB"],SI:["H","hB"],SJ:["H"],SK:["H"],SL:["h","hb","H","hB"],SM:["H","h","hB"],SN:["H","h","hB"],SO:["h","H"],SR:["H","hB"],SS:["h","hb","H","hB"],ST:["H","hB"],SV:["h","H","hB","hb"],SX:["H","h","hb","hB"],SY:["h","hB","hb","H"],SZ:["h","hb","H","hB"],TA:["H","h","hb","hB"],TC:["h","hb","H","hB"],TD:["h","H","hB"],TF:["H","h","hB"],TG:["H","hB"],TH:["H","h"],TJ:["H","h"],TL:["H","hB","hb","h"],TM:["H","h"],TN:["h","hB","hb","H"],TO:["h","H"],TR:["H","hB"],TT:["h","hb","H","hB"],TW:["hB","hb","h","H"],TZ:["hB","hb","H","h"],UA:["H","hB","h"],UG:["hB","hb","H","h"],UM:["h","hb","H","hB"],US:["h","hb","H","hB"],UY:["h","H","hB","hb"],UZ:["H","hB","h"],VA:["H","h","hB"],VC:["h","hb","H","hB"],VE:["h","H","hB","hb"],VG:["h","hb","H","hB"],VI:["h","hb","H","hB"],VN:["H","h"],VU:["h","H"],WF:["H","hB"],WS:["h","H"],XK:["H","hB","h"],YE:["h","hB","hb","H"],YT:["H","hB"],ZA:["H","h","hb","hB"],ZM:["h","hb","H","hB"],ZW:["H","h"],"af-ZA":["H","h","hB","hb"],"ar-001":["h","hB","hb","H"],"ca-ES":["H","h","hB"],"en-001":["h","hb","H","hB"],"en-HK":["h","hb","H","hB"],"en-IL":["H","h","hb","hB"],"en-MY":["h","hb","H","hB"],"es-BR":["H","h","hB","hb"],"es-ES":["H","h","hB","hb"],"es-GQ":["H","h","hB","hb"],"fr-CA":["H","h","hB"],"gl-ES":["H","h","hB"],"gu-IN":["hB","hb","h","H"],"hi-IN":["hB","h","H"],"it-CH":["H","h","hB"],"it-IT":["H","h","hB"],"kn-IN":["hB","h","H"],"ml-IN":["hB","h","H"],"mr-IN":["hB","hb","h","H"],"pa-IN":["hB","hb","h","H"],"ta-IN":["hB","h","hb","H"],"te-IN":["hB","h","H"],"zu-ZA":["H","hB","hb","h"]};function _P(e,t){for(var n="",r=0;r<e.length;r++){var a=e.charAt(r);if(a==="j"){for(var s=0;r+1<e.length&&e.charAt(r+1)===a;)s++,r++;var i=1+(s&1),l=s<2?1:3+(s>>1),c="a",d=BP(t);for((d=="H"||d=="k")&&(l=0);l-- >0;)n+=c;for(;i-- >0;)n=d+n}else a==="J"?n+="H":n+=a}return n}function BP(e){var t=e.hourCycle;if(t===void 0&&e.hourCycles&&e.hourCycles.length&&(t=e.hourCycles[0]),t)switch(t){case"h24":return"k";case"h23":return"H";case"h12":return"h";case"h11":return"K";default:throw new Error("Invalid hourCycle")}var n=e.language,r;n!=="root"&&(r=e.maximize().region);var a=Gi[r||""]||Gi[n||""]||Gi["".concat(n,"-001")]||Gi["001"];return a[0]}var tu,OP=new RegExp("^".concat(Z0.source,"*")),FP=new RegExp("".concat(Z0.source,"*$"));function ye(e,t){return{start:e,end:t}}var LP=!!String.prototype.startsWith&&"_a".startsWith("a",1),HP=!!String.fromCodePoint,UP=!!Object.fromEntries,zP=!!String.prototype.codePointAt,$P=!!String.prototype.trimStart,GP=!!String.prototype.trimEnd,QP=!!Number.isSafeInteger,WP=QP?Number.isSafeInteger:function(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e&&Math.abs(e)<=9007199254740991},kh=!0;try{var qP=o1("([^\\p{White_Space}\\p{Pattern_Syntax}]*)","yu");kh=((tu=qP.exec("a"))===null||tu===void 0?void 0:tu[0])==="a"}catch{kh=!1}var oy=LP?function(t,n,r){return t.startsWith(n,r)}:function(t,n,r){return t.slice(r,r+n.length)===n},Ch=HP?String.fromCodePoint:function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];for(var r="",a=t.length,s=0,i;a>s;){if(i=t[s++],i>1114111)throw RangeError(i+" is not a valid code point");r+=i<65536?String.fromCharCode(i):String.fromCharCode(((i-=65536)>>10)+55296,i%1024+56320)}return r}
vendor: 6,592 bytes, line 407
407,ay=UP?Object.fromEntries:function(t){for(var n={},r=0,a=t;r<a.length;r++){var s=a[r],i=s[0],l=s[1];n[i]=l}return n},r1=zP?function(t,n){return t.codePointAt(n)}:function(t,n){var r=t.length;if(!(n<0||n>=r)){var a=t.charCodeAt(n),s;return a<55296||a>56319||n+1===r||(s=t.charCodeAt(n+1))<56320||s>57343?a:(a-55296<<10)+(s-56320)+65536}},VP=$P?function(t){return t.trimStart()}:function(t){return t.replace(OP,"")},XP=GP?function(t){return t.trimEnd()}:function(t){return t.replace(FP,"")};function o1(e,t){return new RegExp(e,t)}var Th;if(kh){var sy=o1("([^\\p{White_Space}\\p{Pattern_Syntax}]*)","yu");Th=function(t,n){var r;sy.lastIndex=n;var a=sy.exec(t);return(r=a[1])!==null&&r!==void 0?r:""}}else Th=function(t,n){for(var r=[];;){var a=r1(t,n);if(a===void 0||a1(a)||ZP(a))break;r.push(a),n+=a>=65536?2:1}return Ch.apply(void 0,r)};var YP=function(){function e(t,n){n===void 0&&(n={}),this.message=t,this.position={offset:0,line:1,column:1},this.ignoreTag=!!n.ignoreTag,this.locale=n.locale,this.requiresOtherClause=!!n.requiresOtherClause,this.shouldParseSkeletons=!!n.shouldParseSkeletons}return e.prototype.parse=function(){if(this.offset()!==0)throw Error("parser can only be used once");return this.parseMessage(0,"",!1)},e.prototype.parseMessage=function(t,n,r){for(var a=[];!this.isEOF();){var s=this.char();if(s===123){var i=this.parseArgument(t,r);if(i.err)return i;a.push(i.val)}else{if(s===125&&t>0)break;if(s===35&&(n==="plural"||n==="selectordinal")){var l=this.clonePosition();this.bump(),a.push({type:_e.pound,location:ye(l,this.clonePosition())})}else if(s===60&&!this.ignoreTag&&this.peek()===47){if(r)break;return this.error(fe.UNMATCHED_CLOSING_TAG,ye(this.clonePosition(),this.clonePosition()))}else if(s===60&&!this.ignoreTag&&Ph(this.peek()||0)){var i=this.parseTag(t,n);if(i.err)return i;a.push(i.val)}else{var i=this.parseLiteral(t,n);if(i.err)return i;a.push(i.val)}}}return{val:a,err:null}},e.prototype.parseTag=function(t,n){var r=this.clonePosition();this.bump();var a=this.parseTagName();if(this.bumpSpace(),this.bumpIf("/>"))return{val:{type:_e.literal,value:"<".concat(a,"/>"),location:ye(r,this.clonePosition())},err:null};if(this.bumpIf(">")){var s=this.parseMessage(t+1,n,!0);if(s.err)return s;var i=s.val,l=this.clonePosition();if(this.bumpIf("</")){if(this.isEOF()||!Ph(this.char()))return this.error(fe.INVALID_TAG,ye(l,this.clonePosition()));var c=this.clonePosition(),d=this.parseTagName();return a!==d?this.error(fe.UNMATCHED_CLOSING_TAG,ye(c,this.clonePosition())):(this.bumpSpace(),this.bumpIf(">")?{val:{type:_e.tag,value:a,children:i,location:ye(r,this.clonePosition())},err:null}:this.error(fe.INVALID_TAG,ye(l,this.clonePosition())))}else return this.error(fe.UNCLOSED_TAG,ye(r,this.clonePosition()))}else return this.error(fe.INVALID_TAG,ye(r,this.clonePosition()))},e.prototype.parseTagName=function(){var t=this.offset();for(this.bump();!this.isEOF()&&JP(this.char());)this.bump();return this.message.slice(t,this.offset())},e.prototype.parseLiteral=function(t,n){for(var r=this.clonePosition(),a="";;){var s=this.tryParseQuote(n);if(s){a+=s;continue}var i=this.tryParseUnquoted(t,n);if(i){a+=i;continue}var l=this.tryParseLeftAngleBracket();if(l){a+=l;continue}break}var c=ye(r,this.clonePosition());return{val:{type:_e.literal,value:a,location:c},err:null}},e.prototype.tryParseLeftAngleBracket=function(){return!this.isEOF()&&this.char()===60&&(this.ignoreTag||!KP(this.peek()||0))?(this.bump(),"<"):null},e.prototype.tryParseQuote=function(t){if(this.isEOF()||this.char()!==39)return null;switch(this.peek()){case 39:return this.bump(),this.bump(),"'";case 123:case 60:case 62:case 125:break;case 35:if(t==="plural"||t==="selectordinal")break;return null;default:return null}this.bump();var n=[this.char()];for(this.bump();!this.isEOF();){var r=this.char();if(r===39)if(this.peek()===39)n.push(39),this.bump();else{this.bump();break}else n.push(r);this.bump()}return Ch.apply(void 0,n)},e.prototype.tryParseUnquoted=function(t,n){if(this.isEOF())return null;var r=this.char();return r===60||r===123||r===35&&(n==="plural"||n==="selectordinal")||r===125&&t>0?null:(this.bump(),Ch(r))},e.prototype.parseArgument=function(t,n){var r=this.clonePosition();if(this.bump(),this.bumpSpace(),this.isEOF())return this.error(fe.EXPECT_ARGUMENT_CLOSING_BRACE,ye(r,this.clonePosition()));if(this.char()===125)return this.bump(),this.error(fe.EMPTY_ARGUMENT,ye(r,this.clonePosition()));var a=this.parseIdentifierIfPossible().value;if(!a)return this.error(fe.MALFORMED_ARGUMENT,ye(r,this.clonePosition()));if(this.bumpSpace(),this.isEOF())return this.error(fe.EXPECT_ARGUMENT_CLOSING_BRACE,ye(r,this.clonePosition()));switch(this.char()){case 125:return this.bump(),{val:{type:_e.argument,value:a,location:ye(r,this.clonePosition())},err:null};case 44:return this.bump(),this.bumpSpace(),this.isEOF()?this.error(fe.EXPECT_ARGUMENT_CLOSING_BRACE,ye(r,this.clonePosition())):this.parseArgumentOptions(t,n,a,r);default:return this.error(fe.MALFORMED_ARGUMENT,ye(r,this.clonePosition()))}},e.prototype.parseIdentifierIfPossible=function(){var t=this.clonePosition(),n=this.offset(),r=Th(this.message,n),a=n+r.length;this.bumpTo(a);var s=this.clonePosition(),i=ye(t,s);return{value:r,location:i}},e.prototype.parseArgumentOptions=function(t,n,r,a){var s,i=this.clonePosition(),l=this.parseIdentifierIfPossible().value,c=this.clonePosition();switch(l){case"":return this.error(fe.EXPECT_ARGUMENT_TYPE,ye(i,c));case"number":case"date":case"time":{this.bumpSpace();var d=null;if(this.bumpIf(",")){this.bumpSpace();var u=this.clonePosition(),m=this.parseSimpleArgStyleIfPossible();if(m.err)return m;var p=XP(m.val);if(p.length===0)return this.error(fe.EXPECT_ARGUMENT_STYLE,ye(this.clonePosition(),this.clonePosition()));var f=ye(u,this.clonePosition());d={style:p,styleLocation:f}}var w=this.tryParseArgumentClose(a);if(w.err)return w;var y=ye(a,this.clonePosition());if(d&&oy(d==null?void 0:d.style,"::",0)){var v=VP(d.style.slice(2));if(l==="number"){var m=this.parseNumberSkeletonFromString(v,d.styleLocation);return m.err?m:{val:{type:_e.number,value:r,location:y,style:m.val},err:null}}else{if(v.length===0)return this.error(fe.EXPECT_DATE_TIME_SKELETON,y);var x=v;this.locale&&(x=_P(v,this.locale));var p={type:Ia.dateTime,pattern:x,location:d.styleLocation,parsedOptions:this.shouldParseSkeletons?kP(x):{}},g=l==="date"?_e.date:_e.time;return{val:{type:g,value:r,location:y,style:p},err:null}}}return{val:{type:l==="number"?_e.number:l==="date"?_e.date:_e.time,value:r,location:y,style:(s=d==null?void 0:d.style)!==null&&s!==void 0?s:null},err:null}}
vendor: 15,216 bytes, lines 407-409
407case"plural":case"selectordinal":case"select":{var b=this.clonePosition();if(this.bumpSpace(),!this.bumpIf(","))return this.error(fe.EXPECT_SELECT_ARGUMENT_OPTIONS,ye(b,X({},b)));this.bumpSpace();var j=this.parseIdentifierIfPossible(),N=0;if(l!=="select"&&j.value==="offset"){if(!this.bumpIf(":"))return this.error(fe.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE,ye(this.clonePosition(),this.clonePosition()));this.bumpSpace();var m=this.tryParseDecimalInteger(fe.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE,fe.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);if(m.err)return m;this.bumpSpace(),j=this.parseIdentifierIfPossible(),N=m.val}var A=this.tryParsePluralOrSelectOptions(t,l,n,j);if(A.err)return A;var w=this.tryParseArgumentClose(a);if(w.err)return w;var E=ye(a,this.clonePosition());return l==="select"?{val:{type:_e.select,value:r,options:ay(A.val),location:E},err:null}:{val:{type:_e.plural,value:r,options:ay(A.val),offset:N,pluralType:l==="plural"?"cardinal":"ordinal",location:E},err:null}}default:return this.error(fe.INVALID_ARGUMENT_TYPE,ye(i,c))}},e.prototype.tryParseArgumentClose=function(t){return this.isEOF()||this.char()!==125?this.error(fe.EXPECT_ARGUMENT_CLOSING_BRACE,ye(t,this.clonePosition())):(this.bump(),{val:!0,err:null})},e.prototype.parseSimpleArgStyleIfPossible=function(){for(var t=0,n=this.clonePosition();!this.isEOF();){var r=this.char();switch(r){case 39:{this.bump();var a=this.clonePosition();if(!this.bumpUntil("'"))return this.error(fe.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE,ye(a,this.clonePosition()));this.bump();break}case 123:{t+=1,this.bump();break}case 125:{if(t>0)t-=1;else return{val:this.message.slice(n.offset,this.offset()),err:null};break}default:this.bump();break}}return{val:this.message.slice(n.offset,this.offset()),err:null}},e.prototype.parseNumberSkeletonFromString=function(t,n){var r=[];try{r=TP(t)}catch{return this.error(fe.INVALID_NUMBER_SKELETON,n)}return{val:{type:Ia.number,tokens:r,location:n,parsedOptions:this.shouldParseSkeletons?MP(r):{}},err:null}},e.prototype.tryParsePluralOrSelectOptions=function(t,n,r,a){for(var s,i=!1,l=[],c=new Set,d=a.value,u=a.location;;){if(d.length===0){var m=this.clonePosition();if(n!=="select"&&this.bumpIf("=")){var p=this.tryParseDecimalInteger(fe.EXPECT_PLURAL_ARGUMENT_SELECTOR,fe.INVALID_PLURAL_ARGUMENT_SELECTOR);if(p.err)return p;u=ye(m,this.clonePosition()),d=this.message.slice(m.offset,this.offset())}else break}if(c.has(d))return this.error(n==="select"?fe.DUPLICATE_SELECT_ARGUMENT_SELECTOR:fe.DUPLICATE_PLURAL_ARGUMENT_SELECTOR,u);d==="other"&&(i=!0),this.bumpSpace();var f=this.clonePosition();if(!this.bumpIf("{"))return this.error(n==="select"?fe.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT:fe.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT,ye(this.clonePosition(),this.clonePosition()));var w=this.parseMessage(t+1,n,r);if(w.err)return w;var y=this.tryParseArgumentClose(f);if(y.err)return y;l.push([d,{value:w.val,location:ye(f,this.clonePosition())}]),c.add(d),this.bumpSpace(),s=this.parseIdentifierIfPossible(),d=s.value,u=s.location}return l.length===0?this.error(n==="select"?fe.EXPECT_SELECT_ARGUMENT_SELECTOR:fe.EXPECT_PLURAL_ARGUMENT_SELECTOR,ye(this.clonePosition(),this.clonePosition())):this.requiresOtherClause&&!i?this.error(fe.MISSING_OTHER_CLAUSE,ye(this.clonePosition(),this.clonePosition())):{val:l,err:null}},e.prototype.tryParseDecimalInteger=function(t,n){var r=1,a=this.clonePosition();this.bumpIf("+")||this.bumpIf("-")&&(r=-1);for(var s=!1,i=0;!this.isEOF();){var l=this.char();if(l>=48&&l<=57)s=!0,i=i*10+(l-48),this.bump();else break}var c=ye(a,this.clonePosition());return s?(i*=r,WP(i)?{val:i,err:null}:this.error(n,c)):this.error(t,c)},e.prototype.offset=function(){return this.position.offset},e.prototype.isEOF=function(){return this.offset()===this.message.length},e.prototype.clonePosition=function(){return{offset:this.position.offset,line:this.position.line,column:this.position.column}},e.prototype.char=function(){var t=this.position.offset;if(t>=this.message.length)throw Error("out of bound");var n=r1(this.message,t);if(n===void 0)throw Error("Offset ".concat(t," is at invalid UTF-16 code unit boundary"));return n},e.prototype.error=function(t,n){return{val:null,err:{kind:t,message:this.message,location:n}}},e.prototype.bump=function(){if(!this.isEOF()){var t=this.char();t===10?(this.position.line+=1,this.position.column=1,this.position.offset+=1):(this.position.column+=1,this.position.offset+=t<65536?1:2)}},e.prototype.bumpIf=function(t){if(oy(this.message,t,this.offset())){for(var n=0;n<t.length;n++)this.bump();return!0}return!1},e.prototype.bumpUntil=function(t){var n=this.offset(),r=this.message.indexOf(t,n);return r>=0?(this.bumpTo(r),!0):(this.bumpTo(this.message.length),!1)},e.prototype.bumpTo=function(t){if(this.offset()>t)throw Error("targetOffset ".concat(t," must be greater than or equal to the current offset ").concat(this.offset()));for(t=Math.min(t,this.message.length);;){var n=this.offset();if(n===t)break;if(n>t)throw Error("targetOffset ".concat(t," is at invalid UTF-16 code unit boundary"));if(this.bump(),this.isEOF())break}},e.prototype.bumpSpace=function(){for(;!this.isEOF()&&a1(this.char());)this.bump()},e.prototype.peek=function(){if(this.isEOF())return null;var t=this.char(),n=this.offset(),r=this.message.charCodeAt(n+(t>=65536?2:1));return r??null},e}();function Ph(e){return e>=97&&e<=122||e>=65&&e<=90}function KP(e){return Ph(e)||e===47}function JP(e){return e===45||e===46||e>=48&&e<=57||e===95||e>=97&&e<=122||e>=65&&e<=90||e==183||e>=192&&e<=214||e>=216&&e<=246||e>=248&&e<=893||e>=895&&e<=8191||e>=8204&&e<=8205||e>=8255&&e<=8256||e>=8304&&e<=8591||e>=11264&&e<=12271||e>=12289&&e<=55295||e>=63744&&e<=64975||e>=65008&&e<=65533||e>=65536&&e<=983039}function a1(e){return e>=9&&e<=13||e===32||e===133||e>=8206&&e<=8207||e===8232||e===8233}function ZP(e){return e>=33&&e<=35||e===36||e>=37&&e<=39||e===40||e===41||e===42||e===43||e===44||e===45||e>=46&&e<=47||e>=58&&e<=59||e>=60&&e<=62||e>=63&&e<=64||e===91||e===92||e===93||e===94||e===96||e===123||e===124||e===125||e===126||e===161||e>=162&&e<=165||e===166||e===167||e===169||e===171||e===172||e===174||e===176||e===177||e===182||e===187||e===191||e===215||e===247||e>=8208&&e<=8213||e>=8214&&e<=8215||e===8216||e===8217||e===8218||e>=8219&&e<=8220||e===8221||e===8222||e===8223||e>=8224&&e<=8231||e>=8240&&e<=8248||e===8249||e===8250||e>=8251&&e<=8254||e>=8257&&e<=8259||e===8260||e===8261||e===8262||e>=8263&&e<=8273||e===8274||e===8275||e>=8277&&e<=8286||e>=8592&&e<=8596||e>=8597&&e<=8601||e>=8602&&e<=8603||e>=8604&&e<=8607||e===8608||e>=8609&&e<=8610||e===8611||e>=8612&&e<=8613||e===8614||e>=8615&&e<=8621||e===8622||e>=8623&&e<=8653||e>=8654&&e<=8655||e>=8656&&e<=8657||e===8658||e===8659||e===8660||e>=8661&&e<=8691||e>=8692&&e<=8959||e>=8960&&e<=8967||e===8968||e===8969||e===8970||e===8971||e>=8972&&e<=8991||e>=8992&&e<=8993||e>=8994&&e<=9e3||e===9001||e===9002||e>=9003&&e<=9083||e===9084||e>=9085&&e<=9114||e>=9115&&e<=9139||e>=9140&&e<=9179||e>=9180&&e<=9185||e>=9186&&e<=9254||e>=9255&&e<=9279||e>=9280&&e<=9290||e>=9291&&e<=9311||e>=9472&&e<=9654||e===9655||e>=9656&&e<=9664||e===9665||e>=9666&&e<=9719||e>=9720&&e<=9727||e>=9728&&e<=9838||e===9839||e>=9840&&e<=10087||e===10088||e===10089||e===10090||e===10091||e===10092||e===10093||e===10094||e===10095||e===10096||e===10097||e===10098||e===10099||e===10100||e===10101||e>=10132&&e<=10175||e>=10176&&e<=10180||e===10181||e===10182||e>=10183&&e<=10213||e===10214||e===10215||e===10216||e===10217||e===10218||e===10219||e===10220||e===10221||e===10222||e===10223||e>=10224&&e<=10239||e>=10240&&e<=10495||e>=10496&&e<=10626||e===10627||e===10628||e===10629||e===10630||e===10631||e===10632||e===10633||e===10634||e===10635||e===10636||e===10637||e===10638||e===10639||e===10640||e===10641||e===10642||e===10643||e===10644||e===10645||e===10646||e===10647||e===10648||e>=10649&&e<=10711||e===10712||e===10713||e===10714||e===10715||e>=10716&&e<=10747||e===10748||e===10749||e>=10750&&e<=11007||e>=11008&&e<=11055||e>=11056&&e<=11076||e>=11077&&e<=11078||e>=11079&&e<=11084||e>=11085&&e<=11123||e>=11124&&e<=11125||e>=11126&&e<=11157||e===11158||e>=11159&&e<=11263||e>=11776&&e<=11777||e===11778||e===11779||e===11780||e===11781||e>=11782&&e<=11784||e===11785||e===11786||e===11787||e===11788||e===11789||e>=11790&&e<=11798||e===11799||e>=11800&&e<=11801||e===11802||e===11803||e===11804||e===11805||e>=11806&&e<=11807||e===11808||e===11809||e===11810||e===11811||e===11812||e===11813||e===11814||e===11815||e===11816||e===11817||e>=11818&&e<=11822||e===11823||e>=11824&&e<=11833||e>=11834&&e<=11835||e>=11836&&e<=11839||e===11840||e===11841||e===11842||e>=11843&&e<=11855||e>=11856&&e<=11857||e===11858||e>=11859&&e<=11903||e>=12289&&e<=12291||e===12296||e===12297||e===12298||e===12299||e===12300||e===12301||e===12302||e===12303||e===12304||e===12305||e>=12306&&e<=12307||e===12308||e===12309||e===12310||e===12311||e===12312||e===12313||e===12314||e===12315||e===12316||e===12317||e>=12318&&e<=12319||e===12320||e===12336||e===64830||e===64831||e>=65093&&e<=65094}function Rh(e){e.forEach(function(t){if(delete t.location,X0(t)||Y0(t))for(var n in t.options)delete t.options[n].location,Rh(t.options[n].value);else W0(t)&&J0(t.style)||(q0(t)||V0(t))&&Ih(t.style)?delete t.style.location:K0(t)&&Rh(t.children)})}function e3(e,t){t===void 0&&(t={}),t=X({shouldParseSkeletons:!0,requiresOtherClause:!0},t);var n=new YP(e,t).parse();if(n.err){var r=SyntaxError(fe[n.err.kind]);throw r.location=n.err.location,r.originalMessage=n.err.message,r}return t!=null&&t.captureLocation||Rh(n.val),n.val}var Ln;(function(e){e.MISSING_VALUE="MISSING_VALUE",e.INVALID_VALUE="INVALID_VALUE",e.MISSING_INTL_API="MISSING_INTL_API"})(Ln||(Ln={}));var Vr=function(e){Xt(t,e);function t(n,r,a){var s=e.call(this,n)||this;return s.code=r,s.originalMessage=a,s}return t.prototype.toString=function(){return"[formatjs Error: ".concat(this.code,"] ").concat(this.message)},t}(Error),iy=function(e){Xt(t,e);function t(n,r,a,s){return e.call(this,'Invalid values for "'.concat(n,'": "').concat(r,'". Options are "').concat(Object.keys(a).join('", "'),'"'),Ln.INVALID_VALUE,s)||this}return t}(Vr),t3=function(e){Xt(t,e);function t(n,r,a){return e.call(this,'Value for "'.concat(n,'" must be of type ').concat(r),Ln.INVALID_VALUE,a)||this}return t}(Vr),n3=function(e){Xt(t,e);function t(n,r){return e.call(this,'The intl string context variable "'.concat(n,'" was not provided to the string "').concat(r,'"'),Ln.MISSING_VALUE,r)||this}return t}(Vr),yt;(function(e){e[e.literal=0]="literal",e[e.object=1]="object"})(yt||(yt={}));function r3(e){return e.length<2?e:e.reduce(function(t,n){var r=t[t.length-1];return!r||r.type!==yt.literal||n.type!==yt.literal?t.push(n):r.value+=n.value,t},[])}function s1(e){return typeof e=="function"}function bl(e,t,n,r,a,s,i){if(e.length===1&&ey(e[0]))return[{type:yt.literal,value:e[0].value}];for(var l=[],c=0,d=e;c<d.length;c++){var u=d[c];if(ey(u)){l.push({type:yt.literal,value:u.value});continue}if(SP(u)){typeof s=="number"&&l.push({type:yt.literal,value:n.getNumberFormat(t).format(s)});continue}var m=u.value;if(!(a&&m in a))throw new n3(m,i);var p=a[m];if(EP(u)){(!p||typeof p=="string"||typeof p=="number")&&(p=typeof p=="string"||typeof p=="number"?String(p):""),l.push({type:typeof p=="string"?yt.literal:yt.object,value:p});continue}if(q0(u)){var f=typeof u.style=="string"?r.date[u.style]:Ih(u.style)?u.style.parsedOptions:void 0;l.push({type:yt.literal,value:n.getDateTimeFormat(t,f).format(p)});continue}if(V0(u)){var f=typeof u.style=="string"?r.time[u.style]:Ih(u.style)?u.style.parsedOptions:r.time.medium;l.push({type:yt.literal,value:n.getDateTimeFormat(t,f).format(p)});continue}if(W0(u)){var f=typeof u.style=="string"?r.number[u.style]:J0(u.style)?u.style.parsedOptions:void 0;f&&f.scale&&(p=p*(f.scale||1)),l.push({type:yt.literal,value:n.getNumberFormat(t,f).format(p)});continue}if(K0(u)){var w=u.children,y=u.value,v=a[y];if(!s1(v))throw new t3(y,"function",i);var x=bl(w,t,n,r,a,s),g=v(x.map(function(N){return N.value}));Array.isArray(g)||(g=[g]),l.push.apply(l,g.map(function(N){return{type:typeof N=="string"?yt.literal:yt.object,value:N}}))}if(X0(u)){var b=u.options[p]||u.options.other;if(!b)throw new iy(u.value,p,Object.keys(u.options),i);l.push.apply(l,bl(b.value,t,n,r,a));continue}if(Y0(u)){var b=u.options["=".concat(p)];if(!b){if(!Intl.PluralRules)throw new Vr(`Intl.PluralRules is not available in this environment. 408Try polyfilling it using "@formatjs/intl-pluralrules" 409`,Ln.MISSING_INTL_API,i);var j=n.getPluralRules(t,{type:u.pluralType}).select(p-(u.offset||0));b=u.options[j]||u.options.other}if(!b)throw new iy(u.value,p,Object.keys(u.options),i);l.push.apply(l,bl(b.value,t,n,r,a,p-(u.offset||0)));continue}}return r3(l)}function o3(e,t){return t?X(X(X({},e||{}),t||{}),Object.keys(e).reduce(function(n,r){return n[r]=X(X({},e[r]),t[r]||{}),n},{})):e}function a3(e,t){return t?Object.keys(e).reduce(function(n,r){return n[r]=o3(e[r],t[r]),n},X({},e)):e}function nu(e){return{create:function(){return{get:function(t){return e[t]},set:function(t,n){e[t]=n}}}}}function s3(e){return e===void 0&&(e={number:{},dateTime:{},pluralRules:{}}),{getNumberFormat:En(function(){for(var t,n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return new((t=Intl.NumberFormat).bind.apply(t,dn([void 0],n,!1)))},{cache:nu(e.number),strategy:Sn.variadic}),getDateTimeFormat:En(function(){for(var t,n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return new((t=Intl.DateTimeFormat).bind.apply(t,dn([void 0],n,!1)))},{cache:nu(e.dateTime),strategy:Sn.variadic}),getPluralRules:En(function(){for(var t,n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return new((t=Intl.PluralRules).bind.apply(t,dn([void 0],n,!1)))},{cache:nu(e.pluralRules),strategy:Sn.variadic})}}var i1=function(){function e(t,n,r,a){n===void 0&&(n=e.defaultLocale);var s=this;if(this.formatterCache={number:{},dateTime:{},pluralRules:{}},this.format=function(c){var d=s.formatToParts(c);if(d.length===1)return d[0].value;var u=d.reduce(function(m,p){return!m.length||p.type!==yt.literal||typeof m[m.length-1]!="string"?m.push(p.value):m[m.length-1]+=p.value,m},[]);return u.length<=1?u[0]||"":u},this.formatToParts=function(c){return bl(s.ast,s.locales,s.formatters,s.formats,c,void 0,s.message)},this.resolvedOptions=function(){var c;return{locale:((c=s.resolvedLocale)===null||c===void 0?void 0:c.toString())||Intl.NumberFormat.supportedLocalesOf(s.locales)[0]}},this.getAst=function(){return s.ast},this.locales=n,this.resolvedLocale=e.resolveLocale(n),typeof t=="string"){if(this.message=t,!e.__parse)throw new TypeError("IntlMessageFormat.__parse must be set to process `message` of type `string`");var i=a||{};i.formatters;var l=La(i,["formatters"]);this.ast=e.__parse(t,X(X({},l),{locale:this.resolvedLocale}))}else this.ast=t;if(!Array.isArray(this.ast))throw new TypeError("A message must be provided as a String or AST.");this.formats=a3(e.formats,r),this.formatters=a&&a.formatters||s3(this.formatterCache)}return Object.defineProperty(e,"defaultLocale",{get:function(){return e.memoizedDefaultLocale||(e.memoizedDefaultLocale=new Intl.NumberFormat().resolvedOptions().locale),e.memoizedDefaultLocale}
vendor: 10,252 bytes, lines 409-424
409,enumerable:!1,configurable:!0}),e.memoizedDefaultLocale=null,e.resolveLocale=function(t){if(!(typeof Intl.Locale>"u")){var n=Intl.NumberFormat.supportedLocalesOf(t);return n.length>0?new Intl.Locale(n[0]):new Intl.Locale(typeof t=="string"?t:t[0])}},e.__parse=e3,e.formats={number:{integer:{maximumFractionDigits:0},currency:{style:"currency"},percent:{style:"percent"}},date:{short:{month:"numeric",day:"numeric",year:"2-digit"},medium:{month:"short",day:"numeric",year:"numeric"},long:{month:"long",day:"numeric",year:"numeric"},full:{weekday:"long",month:"long",day:"numeric",year:"numeric"}},time:{short:{hour:"numeric",minute:"numeric"},medium:{hour:"numeric",minute:"numeric",second:"numeric"},long:{hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"short"},full:{hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"short"}}},e}(),No;(function(e){e.FORMAT_ERROR="FORMAT_ERROR",e.UNSUPPORTED_FORMATTER="UNSUPPORTED_FORMATTER",e.INVALID_CONFIG="INVALID_CONFIG",e.MISSING_DATA="MISSING_DATA",e.MISSING_TRANSLATION="MISSING_TRANSLATION"})(No||(No={}));var ci=function(e){Xt(t,e);function t(n,r,a){var s=this,i=a?a instanceof Error?a:new Error(String(a)):void 0;return s=e.call(this,"[@formatjs/intl Error ".concat(n,"] ").concat(r,` 410`).concat(i?` 411`.concat(i.message,` 412`).concat(i.stack):""))||this,s.code=n,typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(s,t),s}return t}(Error),i3=function(e){Xt(t,e);function t(n,r){return e.call(this,No.UNSUPPORTED_FORMATTER,n,r)||this}return t}(ci),l3=function(e){Xt(t,e);function t(n,r){return e.call(this,No.INVALID_CONFIG,n,r)||this}return t}(ci),ly=function(e){Xt(t,e);function t(n,r){return e.call(this,No.MISSING_DATA,n,r)||this}return t}(ci),Yt=function(e){Xt(t,e);function t(n,r,a){var s=e.call(this,No.FORMAT_ERROR,"".concat(n,` 413Locale: `).concat(r,` 414`),a)||this;return s.locale=r,s}return t}(ci),ru=function(e){Xt(t,e);function t(n,r,a,s){var i=e.call(this,"".concat(n,` 415MessageID: `).concat(a==null?void 0:a.id,` 416Default Message: `).concat(a==null?void 0:a.defaultMessage,` 417Description: `).concat(a==null?void 0:a.description,` 418`),r,s)||this;return i.descriptor=a,i.locale=r,i}return t}(Yt),c3=function(e){Xt(t,e);function t(n,r){var a=e.call(this,No.MISSING_TRANSLATION,'Missing message: "'.concat(n.id,'" for locale "').concat(r,'", using ').concat(n.defaultMessage?"default message (".concat(typeof n.defaultMessage=="string"?n.defaultMessage:n.defaultMessage.map(function(s){var i;return(i=s.value)!==null&&i!==void 0?i:JSON.stringify(s)}).join(),")"):"id"," as fallback."))||this;return a.descriptor=n,a}return t}(ci);function d3(e,t,n){if(n===void 0&&(n=Error),!e)throw new n(t)}function Ha(e,t,n){return n===void 0&&(n={}),t.reduce(function(r,a){return a in e?r[a]=e[a]:a in n&&(r[a]=n[a]),r},{})}var u3=function(e){},h3=function(e){},l1={formats:{},messages:{},timeZone:void 0,defaultLocale:"en",defaultFormats:{},fallbackOnEmptyString:!0,onError:u3,onWarn:h3};function c1(){return{dateTime:{},number:{},message:{},relativeTime:{},pluralRules:{},list:{},displayNames:{}}}function Zr(e){return{create:function(){return{get:function(t){return e[t]},set:function(t,n){e[t]=n}}}}}function m3(e){e===void 0&&(e=c1());var t=Intl.RelativeTimeFormat,n=Intl.ListFormat,r=Intl.DisplayNames,a=En(function(){for(var l,c=[],d=0;d<arguments.length;d++)c[d]=arguments[d];return new((l=Intl.DateTimeFormat).bind.apply(l,dn([void 0],c,!1)))},{cache:Zr(e.dateTime),strategy:Sn.variadic}),s=En(function(){for(var l,c=[],d=0;d<arguments.length;d++)c[d]=arguments[d];return new((l=Intl.NumberFormat).bind.apply(l,dn([void 0],c,!1)))},{cache:Zr(e.number),strategy:Sn.variadic}),i=En(function(){for(var l,c=[],d=0;d<arguments.length;d++)c[d]=arguments[d];return new((l=Intl.PluralRules).bind.apply(l,dn([void 0],c,!1)))},{cache:Zr(e.pluralRules),strategy:Sn.variadic});return{getDateTimeFormat:a,getNumberFormat:s,getMessageFormat:En(function(l,c,d,u){return new i1(l,c,d,X({formatters:{getNumberFormat:s,getDateTimeFormat:a,getPluralRules:i}},u||{}))},{cache:Zr(e.message),strategy:Sn.variadic}),getRelativeTimeFormat:En(function(){for(var l=[],c=0;c<arguments.length;c++)l[c]=arguments[c];return new(t.bind.apply(t,dn([void 0],l,!1)))},{cache:Zr(e.relativeTime),strategy:Sn.variadic}),getPluralRules:i,getListFormat:En(function(){for(var l=[],c=0;c<arguments.length;c++)l[c]=arguments[c];return new(n.bind.apply(n,dn([void 0],l,!1)))},{cache:Zr(e.list),strategy:Sn.variadic}),getDisplayNames:En(function(){for(var l=[],c=0;c<arguments.length;c++)l[c]=arguments[c];return new(r.bind.apply(r,dn([void 0],l,!1)))},{cache:Zr(e.displayNames),strategy:Sn.variadic})}}function jp(e,t,n,r){var a=e&&e[t],s;if(a&&(s=a[n]),s)return s;r(new i3("No ".concat(t," format named: ").concat(n)))}function Qi(e,t){return Object.keys(e).reduce(function(n,r){return n[r]=X({timeZone:t},e[r]),n},{})}function cy(e,t){var n=Object.keys(X(X({},e),t));return n.reduce(function(r,a){return r[a]=X(X({},e[a]||{}),t[a]||{}),r},{})}function dy(e,t){if(!t)return e;var n=i1.formats;return X(X(X({},n),e),{date:cy(Qi(n.date,t),Qi(e.date||{},t)),time:cy(Qi(n.time,t),Qi(e.time||{},t))})}var Dh=function(e,t,n,r,a){var s=e.locale,i=e.formats,l=e.messages,c=e.defaultLocale,d=e.defaultFormats,u=e.fallbackOnEmptyString,m=e.onError,p=e.timeZone,f=e.defaultRichTextElements;n===void 0&&(n={id:""});var w=n.id,y=n.defaultMessage;d3(!!w,"[@formatjs/intl] An `id` must be provided to format a message. You can either:\n1. Configure your build toolchain with [babel-plugin-formatjs](https://formatjs.github.io/docs/tooling/babel-plugin)\nor [@formatjs/ts-transformer](https://formatjs.github.io/docs/tooling/ts-transformer) OR\n2. Configure your `eslint` config to include [eslint-plugin-formatjs](https://formatjs.github.io/docs/tooling/linter#enforce-id)\nto autofix this issue");var v=String(w),x=l&&Object.prototype.hasOwnProperty.call(l,v)&&l[v];if(Array.isArray(x)&&x.length===1&&x[0].type===_e.literal)return x[0].value;if(!r&&x&&typeof x=="string"&&!f)return x.replace(/'\{(.*?)\}'/gi,"{$1}");if(r=X(X({},f),r||{}),i=dy(i,p),d=dy(d,p),!x){if(u===!1&&x==="")return x;if((!y||s&&s.toLowerCase()!==c.toLowerCase())&&m(new c3(n,s)),y)try{var g=t.getMessageFormat(y,c,d,a);return g.format(r)}catch(b){return m(new ru('Error formatting default message for: "'.concat(v,'", rendering default message verbatim'),s,n,b)),typeof y=="string"?y:v}return v}try{var g=t.getMessageFormat(x,s,i,X({formatters:t},a||{}));return g.format(r)}catch(b){m(new ru('Error formatting message: "'.concat(v,'", using ').concat(y?"default message":"id"," as fallback."),s,n,b))}if(y)try{var g=t.getMessageFormat(y,c,d,a);return g.format(r)}catch(b){m(new ru('Error formatting the default message for: "'.concat(v,'", rendering message verbatim'),s,n,b))}return typeof x=="string"?x:typeof y=="string"?y:v},p3=["formatMatcher","timeZone","hour12","weekday","era","year","month","day","hour","minute","second","timeZoneName","hourCycle","dateStyle","timeStyle","calendar","numberingSystem","fractionalSecondDigits"];function di(e,t,n,r){var a=e.locale,s=e.formats,i=e.onError,l=e.timeZone;r===void 0&&(r={});var c=r.format,d=X(X({},l&&{timeZone:l}),c&&jp(s,t,c,i)),u=Ha(r,p3,d);return t==="time"&&!u.hour&&!u.minute&&!u.second&&!u.timeStyle&&!u.dateStyle&&(u=X(X({},u),{hour:"numeric",minute:"numeric"})),n(a,u)}function f3(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var a=n[0],s=n[1],i=s===void 0?{}:s,l=typeof a=="string"?new Date(a||0):a;try{return di(e,"date",t,i).format(l)}catch(c){e.onError(new Yt("Error formatting date.",e.locale,c))}return String(l)}function g3(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var a=n[0],s=n[1],i=s===void 0?{}:s,l=typeof a=="string"?new Date(a||0):a;try{return di(e,"time",t,i).format(l)}catch(c){e.onError(new Yt("Error formatting time.",e.locale,c))}return String(l)}function y3(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var a=n[0],s=n[1],i=n[2],l=i===void 0?{}:i,c=typeof a=="string"?new Date(a||0):a,d=typeof s=="string"?new Date(s||0):s;try{return di(e,"dateTimeRange",t,l).formatRange(c,d)}catch(u){e.onError(new Yt("Error formatting date time range.",e.locale,u))}return String(c)}function x3(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var a=n[0],s=n[1],i=s===void 0?{}:s,l=typeof a=="string"?new Date(a||0):a;try{return di(e,"date",t,i).formatToParts(l)}catch(c){e.onError(new Yt("Error formatting date.",e.locale,c))}return[]}function v3(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var a=n[0],s=n[1],i=s===void 0?{}:s,l=typeof a=="string"?new Date(a||0):a;try{return di(e,"time",t,i).formatToParts(l)}catch(c){e.onError(new Yt("Error formatting time.",e.locale,c))}return[]}var b3=["style","type","fallback","languageDisplay"];function w3(e,t,n,r){var a=e.locale,s=e.onError,i=Intl.DisplayNames;i||s(new Vr(`Intl.DisplayNames is not available in this environment. 419Try polyfilling it using "@formatjs/intl-displaynames" 420`,Ln.MISSING_INTL_API));var l=Ha(r,b3);try{return t(a,l).of(n)}catch(c){s(new Yt("Error formatting display name.",a,c))}}var j3=["type","style"],uy=Date.now();function N3(e){return"".concat(uy,"_").concat(e,"_").concat(uy)}function A3(e,t,n,r){r===void 0&&(r={});var a=d1(e,t,n,r).reduce(function(s,i){var l=i.value;return typeof l!="string"?s.push(l):typeof s[s.length-1]=="string"?s[s.length-1]+=l:s.push(l),s},[]);return a.length===1?a[0]:a.length===0?"":a}function d1(e,t,n,r){var a=e.locale,s=e.onError;r===void 0&&(r={});var i=Intl.ListFormat;i||s(new Vr(`Intl.ListFormat is not available in this environment. 421Try polyfilling it using "@formatjs/intl-listformat" 422`,Ln.MISSING_INTL_API));var l=Ha(r,j3);try{var c={},d=Array.from(n).map(function(u,m){if(typeof u=="object"&&u!==null){var p=N3(m);return c[p]=u,p}return String(u)});return t(a,l).formatToParts(d).map(function(u){return u.type==="literal"?u:X(X({},u),{value:c[u.value]||u.value})})}catch(u){s(new Yt("Error formatting list.",a,u))}return n}var E3=["type"];function S3(e,t,n,r){var a=e.locale,s=e.onError;r===void 0&&(r={}),Intl.PluralRules||s(new Vr(`Intl.PluralRules is not available in this environment. 423Try polyfilling it using "@formatjs/intl-pluralrules" 424`,Ln.MISSING_INTL_API));
424var i=Ha(r,E3);try{return t(a,i).select(n)}catch(l){s(new Yt("Error formatting plural.",a,l))}return"other"}var I3=["numeric","style"];function k3(e,t,n){var r=e.locale,a=e.formats,s=e.onError;n===void 0&&(n={});var i=n.format,l=!!i&&jp(a,"relative",i,s)||{},c=Ha(n,I3,l);return t(r,c)}function C3(e,t,n,r,a){a===void 0&&(a={}),r||(r="second");var s=Intl.RelativeTimeFormat;s||e.onError(new Vr(`Intl.RelativeTimeFormat is not available in this environment. 425Try polyfilling it using "@formatjs/intl-relativetimeformat" 426`,Ln.MISSING_INTL_API));try{return k3(e,t,a).format(n,r)}catch(i){e.onError(new Yt("Error formatting relative time.",e.locale,i))}return String(n)}var T3=["style","currency","unit","unitDisplay","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","compactDisplay","currencyDisplay","currencySign","notation","signDisplay","unit","unitDisplay","numberingSystem","trailingZeroDisplay","roundingPriority","roundingIncrement","roundingMode"];function u1(e,t,n){var r=e.locale,a=e.formats,s=e.onError;n===void 0&&(n={});var i=n.format,l=i&&jp(a,"number",i,s)||{},c=Ha(n,T3,l);return t(r,c)}function P3(e,t,n,r){r===void 0&&(r={});try{return u1(e,t,r).format(n)}catch(a){e.onError(new Yt("Error formatting number.",e.locale,a))}return String(n)}function R3(e,t,n,r){r===void 0&&(r={});try{return u1(e,t,r).formatToParts(n)}catch(a){e.onError(new Yt("Error formatting number.",e.locale,a))}return[]}function D3(e){var t=e?e[Object.keys(e)[0]]:void 0;return typeof t=="string"}function M3(e){e.onWarn&&e.defaultRichTextElements&&D3(e.messages||{})&&e.onWarn(`[@formatjs/intl] "defaultRichTextElements" was specified but "message" was not pre-compiled. 427Please consider using "@formatjs/cli" to pre-compile your messages for performance. 428For more details see https://formatjs.github.io/docs/getting-started/message-distribution`)}function _3(e,t){var n=m3(t),r=X(X({},l1),e),a=r.locale,s=r.defaultLocale,i=r.onError;return a?!Intl.NumberFormat.supportedLocalesOf(a).length&&i?i(new ly('Missing locale data for locale: "'.concat(a,'" in Intl.NumberFormat. Using default locale: "').concat(s,'" as fallback. See https://formatjs.github.io/docs/react-intl#runtime-requirements for more details'))):!Intl.DateTimeFormat.supportedLocalesOf(a).length&&i&&i(new ly('Missing locale data for locale: "'.concat(a,'" in Intl.DateTimeFormat. Using default locale: "').concat(s,'" as fallback. See https://formatjs.github.io/docs/react-intl#runtime-requirements for more details'))):(i&&i(new l3('"locale" was not configured, using "'.concat(s,'" as fallback. See https://formatjs.github.io/docs/react-intl/api#intlshape for more details'))),r.locale=r.defaultLocale||"en"),M3(r),X(X({},r),{formatters:n,formatNumber:P3.bind(null,r,n.getNumberFormat),formatNumberToParts:R3.bind(null,r,n.getNumberFormat),formatRelativeTime:C3.bind(null,r,n.getRelativeTimeFormat),formatDate:f3.bind(null,r,n.getDateTimeFormat),formatDateToParts:x3.bind(null,r,n.getDateTimeFormat),formatTime:g3.bind(null,r,n.getDateTimeFormat),formatDateTimeRange:y3.bind(null,r,n.getDateTimeFormat),formatTimeToParts:v3.bind(null,r,n.getDateTimeFormat),formatPlural:S3.bind(null,r,n.getPluralRules),formatMessage:Dh.bind(null,r,n),$t:Dh.bind(null,r,n),formatList:A3.bind(null,r,n.getListFormat),formatListToParts:d1.bind(null,r,n.getListFormat),formatDisplayName:w3.bind(null,r,n.getDisplayNames)})}function B3(e,t,n){if(n===void 0&&(n=Error),!e)throw new n(t)}function h1(e){B3(e,"[React Intl] Could not find required `intl` object. <IntlProvider> needs to exist in the component ancestry.")}var m1=X(X({},l1),{textComponent:h.Fragment}),O3=function(e,t){return h.isValidElement(e)?h.cloneElement(e,{key:t}):e},p1=function(e){var t;return(t=h.Children.map(e,O3))!==null&&t!==void 0?t:[]};function F3(e){return function(t){return e(p1(t))}}function L3(e,t){if(e===t)return!0;if(!e||!t)return!1;var n=Object.keys(e),r=Object.keys(t),a=n.length;if(r.length!==a)return!1;for(var s=0;s<a;s++){var i=n[s];if(e[i]!==t[i]||!Object.prototype.hasOwnProperty.call(t,i))return!1}return!0}var f1={exports:{}},Ee={};/** @license React v16.13.1 429 * react-is.production.min.js 430 * 431 * Copyright (c) Facebook, Inc. and its affiliates. 432 * 433 * This source code is licensed under the MIT license found in the 434 * LICENSE file in the root directory of this source tree. 435 */var at=typeof Symbol=="function"&&Symbol.for,Np=at?Symbol.for("react.element"):60103,Ap=at?Symbol.for("react.portal"):60106,$c=at?Symbol.for("react.fragment"):60107,Gc=at?Symbol.for("react.strict_mode"):60108,Qc=at?Symbol.for("react.profiler"):60114,Wc=at?Symbol.for("react.provider"):60109,qc=at?Symbol.for("react.context"):60110,Ep=at?Symbol.for("react.async_mode"):60111,Vc=at?Symbol.for("react.concurrent_mode"):60111,Xc=at?Symbol.for("react.forward_ref"):60112,Yc=at?Symbol.for("react.suspense"):60113,H3=at?Symbol.for("react.suspense_list"):60120,Kc=at?Symbol.for("react.memo"):60115,Jc=at?Symbol.for("react.lazy"):60116,U3=at?Symbol.for("react.block"):60121,z3=at?Symbol.for("react.fundamental"):60117,$3=at?Symbol.for("react.responder"):60118,G3=at?Symbol.for("react.scope"):60119;function Lt(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case Np:switch(e=e.type,e){case Ep:case Vc:case $c:case Qc:case Gc:case Yc:return e;default:switch(e=e&&e.$$typeof,e){case qc:case Xc:case Jc:case Kc:case Wc:return e;default:return t}}case Ap:return t}}}function g1(e){return Lt(e)===Vc}Ee.AsyncMode=Ep;Ee.ConcurrentMode=Vc;Ee.ContextConsumer=qc;Ee.ContextProvider=Wc;Ee.Element=Np;Ee.ForwardRef=Xc;Ee.Fragment=$c;Ee.Lazy=Jc;Ee.Memo=Kc;Ee.Portal=Ap;Ee.Profiler=Qc;Ee.StrictMode=Gc;Ee.Suspense=Yc;Ee.isAsyncMode=function(e){return g1(e)||Lt(e)===Ep};Ee.isConcurrentMode=g1;Ee.isContextConsumer=function(e){return Lt(e)===qc};Ee.isContextProvider=function(e){return Lt(e)===Wc};Ee.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===Np};Ee.isForwardRef=function(e){return Lt(e)===Xc};Ee.isFragment=function(e){return Lt(e)===$c};Ee.isLazy=function(e){return Lt(e)===Jc};Ee.isMemo=function(e){return Lt(e)===Kc};Ee.isPortal=function(e){return Lt(e)===Ap};Ee.isProfiler=function(e){return Lt(e)===Qc};Ee.isStrictMode=function(e){return Lt(e)===Gc};Ee.isSuspense=function(e){return Lt(e)===Yc};Ee.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===$c||e===Vc||e===Qc||e===Gc||e===Yc||e===H3||typeof e=="object"&&e!==null&&(e.$$typeof===Jc||e.$$typeof===Kc||e.$$typeof===Wc||e.$$typeof===qc||e.$$typeof===Xc||e.$$typeof===z3||e.$$typeof===$3||e.$$typeof===G3||e.$$typeof===U3)};Ee.typeOf=Lt;f1.exports=Ee;var Q3=f1.exports,y1=Q3,W3={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},q3={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},x1={};x1[y1.ForwardRef]=W3;x1[y1.Memo]=q3;var Sp=typeof window<"u"&&!window.__REACT_INTL_BYPASS_GLOBAL_CONTEXT__?window.__REACT_INTL_CONTEXT__||(window.__REACT_INTL_CONTEXT__=h.createContext(null)):h.createContext(null);Sp.Consumer;var V3=Sp.Provider,X3=V3,Y3=Sp;function Zc(){var e=h.useContext(Y3);return h1(e),e}var Mh;(function(e){e.formatDate="FormattedDate",e.formatTime="FormattedTime",e.formatNumber="FormattedNumber",e.formatList="FormattedList",e.formatDisplayName="FormattedDisplayName"})(Mh||(Mh={}));var _h;(function(e){e.formatDate="FormattedDateParts",e.formatTime="FormattedTimeParts",e.formatNumber="FormattedNumberParts",e.formatList="FormattedListParts"})(_h||(_h={}));function v1(e){var t=function(n){var r=Zc(),a=n.value,s=n.children,i=La(n,["value","children"]),l=typeof a=="str
435ing"?new Date(a||0):a,c=e==="formatDate"?r.formatDateToParts(l,i):r.formatTimeToParts(l,i);return s(c)};return t.displayName=_h[e],t}function ui(e){var t=function(n){var r=Zc(),a=n.value,s=n.children,i=La(n,["value","children"]),l=r[e](a,i);if(typeof s=="function")return s(l);var c=r.textComponent||h.Fragment;return h.createElement(c,null,l)};return t.displayName=Mh[e],t}function b1(e){return e&&Object.keys(e).reduce(function(t,n){var r=e[n];return t[n]=s1(r)?F3(r):r,t},{})}var hy=function(e,t,n,r){for(var a=[],s=4;s<arguments.length;s++)a[s-4]=arguments[s];var i=b1(r),l=Dh.apply(void 0,dn([e,t,n,i],a,!1));return Array.isArray(l)?p1(l):l},my=function(e,t){var n=e.defaultRichTextElements,r=La(e,["defaultRichTextElements"]),a=b1(n),s=_3(X(X(X({},m1),r),{defaultRichTextElements:a}),t),i={locale:s.locale,timeZone:s.timeZone,fallbackOnEmptyString:s.fallbackOnEmptyString,formats:s.formats,defaultLocale:s.defaultLocale,defaultFormats:s.defaultFormats,messages:s.messages,onError:s.onError,defaultRichTextElements:a};return X(X({},s),{formatMessage:hy.bind(null,i,s.formatters),$t:hy.bind(null,i,s.formatters)})};function ou(e){return{locale:e.locale,timeZone:e.timeZone,fallbackOnEmptyString:e.fallbackOnEmptyString,formats:e.formats,textComponent:e.textComponent,messages:e.messages,defaultLocale:e.defaultLocale,defaultFormats:e.defaultFormats,onError:e.onError,onWarn:e.onWarn,wrapRichTextChunksInFragment:e.wrapRichTextChunksInFragment,defaultRichTextElements:e.defaultRichTextElements}}var K3=function(e){Xt(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.cache=c1(),n.state={cache:n.cache,intl:my(ou(n.props),n.cache),prevConfig:ou(n.props)},n}return t.getDerivedStateFromProps=function(n,r){var a=r.prevConfig,s=r.cache,i=ou(n);return L3(a,i)?null:{intl:my(i,s),prevConfig:i}},t.prototype.render=function(){return h1(this.state.intl),h.createElement(X3,{value:this.state.intl},this.props.children)},t.displayName="IntlProvider",t.defaultProps=m1,t}(h.PureComponent);ui("formatDate");ui("formatTime");ui("formatNumber");ui("formatList");ui("formatDisplayName");v1("formatDate");v1("formatTime");/** 436 * @remix-run/router v1.23.2 437 * 438 * Copyright (c) Remix Software Inc. 439 * 440 * This source code is licensed under the MIT license found in the 441 * LICENSE.md file in the root directory of this source tree. 442 * 443 * @license MIT 444 */function qs(){return qs=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},qs.apply(this,arguments)}var Ir;(function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"})(Ir||(Ir={}));const py="popstate";function J3(e){e===void 0&&(e={});function t(r,a){let{pathname:s,search:i,hash:l}=r.location;return Bh("",{pathname:s,search:i,hash:l},a.state&&a.state.usr||null,a.state&&a.state.key||"default")}function n(r,a){return typeof a=="string"?a:w1(a)}return eR(t,n,null,e)}function Ye(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function Ip(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function Z3(){return Math.random().toString(36).substr(2,8)}function fy(e,t){return{usr:e.state,key:e.key,idx:t}}function Bh(e,t,n,r){return n===void 0&&(n=null),qs({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Ua(t):t,{state:n,key:t&&t.key||r||Z3()})}function w1(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&n!=="?"&&(t+=n.charAt(0)==="?"?n:"?"+n),r&&r!=="#"&&(t+=r.charAt(0)==="#"?r:"#"+r),t}function Ua(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}function eR(e,t,n,r){r===void 0&&(r={});let{window:a=document.defaultView,v5Compat:s=!1}=r,i=a.history,l=Ir.Pop,c=null,d=u();d==null&&(d=0,i.replaceState(qs({},i.state,{idx:d}),""));function u(){return(i.state||{idx:null}).idx}function m(){l=Ir.Pop;let v=u(),x=v==null?null:v-d;d=v,c&&c({action:l,location:y.location,delta:x})}function p(v,x){l=Ir.Push;let g=Bh(y.location,v,x);d=u()+1;let b=fy(g,d),j=y.createHref(g);try{i.pushState(b,"",j)}catch(N){if(N instanceof DOMException&&N.name==="DataCloneError")throw N;a.location.assign(j)}s&&c&&c({action:l,location:y.location,delta:1})}function f(v,x){l=Ir.Replace;let g=Bh(y.location,v,x);d=u();let b=fy(g,d),j=y.createHref(g);i.replaceState(b,"",j),s&&c&&c({action:l,location:y.location,delta:0})}function w(v){let x=a.location.origin!=="null"?a.location.origin:a.location.href,g=typeof v=="string"?v:w1(v);return g=g.replace(/ $/,"%20"),Ye(x,"No window.location.(origin|href) available to create URL for href: "+g),new URL(g,x)}let y={get action(){return l},get location(){return e(a,i)},listen(v){if(c)throw new Error("A history only accepts one active listener");return a.addEventListener(py,m),c=v,()=>{a.removeEventListener(py,m),c=null}},createHref(v){return t(a,v)},createURL:w,encodeLocation(v){let x=w(v);return{pathname:x.pathname,search:x.search,hash:x.hash}},push:p,replace:f,go(v){return i.go(v)}};return y}var gy;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(gy||(gy={}));function tR(e,t,n){return n===void 0&&(n="/"),nR(e,t,n)}function nR(e,t,n,r){let a=typeof t=="string"?Ua(t):t,s=A1(a.pathname||"/",n);if(s==null)return null;let i=j1(e);rR(i);let l=null;for(let c=0;l==null&&c<i.length;++c){let d=fR(s);l=hR(i[c],d)}return l}function j1(e,t,n,r){t===void 0&&(t=[]),n===void 0&&(n=[]),r===void 0&&(r="");let a=(s,i,l)=>{let c={relativePath:l===void 0?s.path||"":l,caseSensitive:s.caseSensitive===!0,childrenIndex:i,route:s};c.relativePath.startsWith("/")&&(Ye(c.relativePath.startsWith(r),'Absolute route path "'+c.relativePath+'" nested under path '+('"'+r+'" is not val
444id. An absolute child route path ')+"must start with the combined path of all its parent routes."),c.relativePath=c.relativePath.slice(r.length));let d=go([r,c.relativePath]),u=n.concat(c);s.children&&s.children.length>0&&(Ye(s.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+d+'".')),j1(s.children,t,u,d)),!(s.path==null&&!s.index)&&t.push({path:d,score:dR(d,s.index),routesMeta:u})};return e.forEach((s,i)=>{var l;if(s.path===""||!((l=s.path)!=null&&l.includes("?")))a(s,i);else for(let c of N1(s.path))a(s,i,c)}),t}function N1(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,a=n.endsWith("?"),s=n.replace(/\?$/,"");if(r.length===0)return a?[s,""]:[s];let i=N1(r.join("/")),l=[];return l.push(...i.map(c=>c===""?s:[s,c].join("/"))),a&&l.push(...i),l.map(c=>e.startsWith("/")&&c===""?"/":c)}function rR(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:uR(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const oR=/^:[\w-]+$/,aR=3,sR=2,iR=1,lR=10,cR=-2,yy=e=>e==="*";function dR(e,t){let n=e.split("/"),r=n.length;return n.some(yy)&&(r+=cR),t&&(r+=sR),n.filter(a=>!yy(a)).reduce((a,s)=>a+(oR.test(s)?aR:s===""?iR:lR),r)}function uR(e,t){return e.length===t.length&&e.slice(0,-1).every((r,a)=>r===t[a])?e[e.length-1]-t[t.length-1]:0}function hR(e,t,n){let{routesMeta:r}=e,a={},s="/",i=[];for(let l=0;l<r.length;++l){let c=r[l],d=l===r.length-1,u=s==="/"?t:t.slice(s.length)||"/",m=mR({path:c.relativePath,caseSensitive:c.caseSensitive,end:d},u),p=c.route;if(!m)return null;
vendor: 6,692 bytes, lines 444-453
444Object.assign(a,m.params),i.push({params:a,pathname:go([s,m.pathname]),pathnameBase:bR(go([s,m.pathnameBase])),route:p}),m.pathnameBase!=="/"&&(s=go([s,m.pathnameBase]))}return i}function mR(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[n,r]=pR(e.path,e.caseSensitive,e.end),a=t.match(n);if(!a)return null;let s=a[0],i=s.replace(/(.)\/+$/,"$1"),l=a.slice(1);return{params:r.reduce((d,u,m)=>{let{paramName:p,isOptional:f}=u;if(p==="*"){let y=l[m]||"";i=s.slice(0,s.length-y.length).replace(/(.)\/+$/,"$1")}const w=l[m];return f&&!w?d[p]=void 0:d[p]=(w||"").replace(/%2F/g,"/"),d},{}),pathname:s,pathnameBase:i,pattern:e}}function pR(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),Ip(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let r=[],a="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(i,l,c)=>(r.push({paramName:l,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),a+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?a+="\\/*$":e!==""&&e!=="/"&&(a+="(?:(?=\\/|$))"),[new RegExp(a,t?void 0:"i"),r]}function fR(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Ip(!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 A1(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}const gR=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,yR=e=>gR.test(e);function xR(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:a=""}=typeof e=="string"?Ua(e):e,s;if(n)if(yR(n))s=n;else{if(n.includes("//")){let i=n;n=n.replace(/\/\/+/g,"/"),Ip(!1,"Pathnames cannot have embedded double slashes - normalizing "+(i+" -> "+n))}n.startsWith("/")?s=xy(n.substring(1),"/"):s=xy(n,t)}else s=t;return{pathname:s,search:wR(r),hash:jR(a)}}function xy(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 au(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(r)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in <Link to="..."> and the router will parse it for you.'}function vR(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function E1(e,t){let n=vR(e);return t?n.map((r,a)=>a===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function S1(e,t,n,r){r===void 0&&(r=!1);let a;typeof e=="string"?a=Ua(e):(a=qs({},e),Ye(!a.pathname||!a.pathname.includes("?"),au("?","pathname","search",a)),Ye(!a.pathname||!a.pathname.includes("#"),au("#","pathname","hash",a)),Ye(!a.search||!a.search.includes("#"),au("#","search","hash",a)));let s=e===""||a.pathname==="",i=s?"/":a.pathname,l;if(i==null)l=n;else{let m=t.length-1;if(!r&&i.startsWith("..")){let p=i.split("/");for(;p[0]==="..";)p.shift(),m-=1;a.pathname=p.join("/")}l=m>=0?t[m]:"/"}let c=xR(a,l),d=i&&i!=="/"&&i.endsWith("/"),u=(s||i===".")&&n.endsWith("/");return!c.pathname.endsWith("/")&&(d||u)&&(c.pathname+="/"),c}const go=e=>e.join("/").replace(/\/\/+/g,"/"),bR=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),wR=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,jR=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function NR(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const I1=["post","put","patch","delete"];new Set(I1);const AR=["get",...I1];new Set(AR);/** 445 * React Router v6.30.3 446 * 447 * Copyright (c) Remix Software Inc. 448 * 449 * This source code is licensed under the MIT license found in the 450 * LICENSE.md file in the root directory of this source tree. 451 * 452 * @license MIT 453 */function Vs(){return Vs=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Vs.apply(this,arguments)}const kp=h.createContext(null),ER=h.createContext(null),hi=h.createContext(null),ed=h.createContext(null),Xr=h.createContext({outlet:null,matches:[],isDataRoute:!1}),k1=h.createContext(null);function mi(){return h.useContext(ed)!=null}function za(){return mi()||Ye(!1),h.useContext(ed).location}function C1(e){h.useContext(hi).static||h.useLayoutEffect(e)}function SR(){let{isDataRoute:e}=h.useContext(Xr);return e?LR():IR()}function IR(){mi()||Ye(!1);let e=h.useContext(kp),{basename:t,future:n,navigator:r}=h.useContext(hi),{matches:a}=h.useContext(Xr),{pathname:s}=za(),i=JSON.stringify(E1(a,n.v7_relativeSplatPath)),l=h.useRef(!1);return C1(()=>{l.current=!0}),h.useCallback(function(d,u){if(u===void 0&&(u={}),!l.current)return;if(typeof d=="number"){r.go(d);return}let m=S1(d,JSON.parse(i),s,u.relative==="path");e==null&&t!=="/"&&(m.pathname=m.pathname==="/"?t:go([t,m.pathname])),(u.replace?r.replace:r.push)(m,u.state,u)},[t,r,i,s,e])}function pi(){let{matches:e}=h.useContext(Xr),t=e[e.length-1];return t?t.params:{}}function kR(e,t){return CR(e,t)}function CR(e,t,n,r){mi()||Ye(!1);let{navigator:a}=h.useContext(hi),{matches:s}=h.useContext(Xr),i=s[s.length-1],l=i?i.params:{};i&&i.pathname;let c=i?i.pathnameBase:"/";i&&i.route;let d=za(),u;if(t){var m;let v=typeof t=="string"?Ua(t):t;c==="/"||(m=v.pathname)!=null&&m.startsWith(c)||Ye(!1),u=v}else u=d;let p=u.pathname||"/",f=p;if(c!=="/"){let v=c.replace(/^\//,"").split("/");f="/"+p.replace(/^\//,"").split("/").slice(v.length).join("/")}let w=tR(e,{pathname:f}),y=MR(w&&w.map(v=>Object.assign({},v,{params:Object.assign({},l,v.params),pathname:go([c,a.encodeLocation?a.encodeLocation(v.pathname).pathname:v.pathname]),pathnameBase:v.pathnameBase==="/"?c:go([c,a.encodeLocation?a.encodeLocation(v.pathnameBase).pathname:v.pathnameBase])})),s,n,r);return t&&y?h.createElement(ed.Provider,{value:{location:Vs({pathname:"/",search:"",hash:"",state:null,key:"default"},u),navigationType:Ir.Pop}},y):y}function TR(){let e=FR(),t=NR(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 h.createElement(h.Fragment,null,h.createElement("h2",null,"Unexpected Application
453Error!"),h.createElement("h3",{style:{fontStyle:"italic"}},t),n?h.createElement("pre",{style:a},n):null,null)}const PR=h.createElement(TR,null);class RR extends h.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?h.createElement(Xr.Provider,{value:this.props.routeContext},h.createElement(k1.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function DR(e){let{routeContext:t,match:n,children:r}=e,a=h.useContext(kp);return a&&a.static&&a.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=n.route.id),h.createElement(Xr.Provider,{value:t},r)}function MR(e,t,n,r){var a;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var s;if(!n)return null;if(n.errors)e=n.matches;else if((s=r)!=null&&s.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let i=e,l=(a=n)==null?void 0:a.errors;if(l!=null){let u=i.findIndex(m=>m.route.id&&(l==null?void 0:l[m.route.id])!==void 0);u>=0||Ye(!1),i=i.slice(0,Math.min(i.length,u+1))}let c=!1,d=-1;if(n&&r&&r.v7_partialHydration)for(let u=0;u<i.length;u++){let m=i[u];if((m.route.HydrateFallback||m.route.hydrateFallbackElement)&&(d=u),m.route.id){let{loaderData:p,errors:f}=n,w=m.route.loader&&p[m.route.id]===void 0&&(!f||f[m.route.id]===void 0);if(m.route.lazy||w){c=!0,d>=0?i=i.slice(0,d+1):i=[i[0]];break}}}return i.reduceRight((u,m,p)=>{let f,w=!1,y=null,v=null;n&&(f=l&&m.route.id?l[m.route.id]:void 0,y=m.route.errorElement||PR,c&&(d<0&&p===0?(HR("route-fallback"),w=!0,v=null):d===p&&(w=!0,v=m.route.hydrateFallbackElement||null)));let x=t.concat(i.slice(0,p+1)),g=()=>{let b;return f?b=y:w?b=v:m.route.Component?b=h.createElement(m.route.Component,null):m.route.element?b=m.route.element:b=u,h.createElement(DR,{match:m,routeContext:{outlet:u,matches:x,isDataRoute:n!=null},children:b})};return n&&(m.route.ErrorBoundary||m.route.errorElement||p===0)?h.createElement(RR,{location:n.location,revalidation:n.revalidation,component:y,error:f,children:g(),routeContext:{outlet:null,matches:x,isDataRoute:!0}}):g()},null)}var T1=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(T1||{}),P1=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}(P1||{});function _R(e){let t=h.useContext(kp);return t||Ye(!1),t}function BR(e){let t=h.useContext(ER);return t||Ye(!1),t}function OR(e){let t=h.useContext(Xr);return t||Ye(!1),t}function R1(e){let t=OR(),n=t.matches[t.matches.length-1];return n.route.id||Ye(!1),n.route.id}function FR(){var e;let t=h.useContext(k1),n=BR(),r=R1();return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function LR(){let{router:e}=_R(T1.UseNavigateStable),t=R1(P1.UseNavigateStable),n=h.useRef(!1);return C1(()=>{n.current=!0}),h.useCallback(function(a,s){s===void 0&&(s={}),n.current&&(typeof a=="number"?e.navigate(a):e.navigate(a,Vs({fromRouteId:t},s)))},[e,t])}const vy={};function HR(e,t,n){vy[e]||(vy[e]=!0)}function UR(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function Cp(e){let{to:t,replace:n,state:r,relative:a}=e;mi()||Ye(!1);let{future:s,static:i}=h.useContext(hi),{matches:l}=h.useContext(Xr),{pathname:c}=za(),d=SR(),u=S1(t,E1(l,s.v7_relativeSplatPath),c,a==="path"),m=JSON.stringify(u);return h.useEffect(()=>d(JSON.parse(m),{replace:n,state:r,relative:a}),[d,m,a,n,r]),null}function je(e){Ye(!1)}function zR(e){let{basename:t="/",children:n=null,location:r,navigationType:a=Ir.Pop,navigator:s,static:i=!1,future:l}=e;mi()&&Ye(!1);let c=t.replace(/^\/*/,"/"),d=h.useMemo(()=>({basename:c,navigator:s,static:i,future:Vs({v7_relativeSplatPath:!1},l)}),[c,l,s,i]);typeof r=="string"&&(r=Ua(r));
vendor: 3,574 bytes, lines 453-462
453let{pathname:u="/",search:m="",hash:p="",state:f=null,key:w="default"}=r,y=h.useMemo(()=>{let v=A1(u,c);return v==null?null:{location:{pathname:v,search:m,hash:p,state:f,key:w},navigationType:a}},[c,u,m,p,f,w,a]);return y==null?null:h.createElement(hi.Provider,{value:d},h.createElement(ed.Provider,{children:n,value:y}))}function $R(e){let{children:t,location:n}=e;return kR(Oh(t),n)}new Promise(()=>{});function Oh(e,t){t===void 0&&(t=[]);let n=[];return h.Children.forEach(e,(r,a)=>{if(!h.isValidElement(r))return;let s=[...t,a];if(r.type===h.Fragment){n.push.apply(n,Oh(r.props.children,s));return}r.type!==je&&Ye(!1),!r.props.index||!r.props.children||Ye(!1);let i={id:r.props.id||s.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,loader:r.props.loader,action:r.props.action,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(i.children=Oh(r.props.children,s)),n.push(i)}),n}/** 454 * React Router DOM v6.30.3 455 * 456 * Copyright (c) Remix Software Inc. 457 * 458 * This source code is licensed under the MIT license found in the 459 * LICENSE.md file in the root directory of this source tree. 460 * 461 * @license MIT 462 */const GR="6";try{window.__reactRouterVersion=GR}catch{}const QR="startTransition",by=lm[QR];function WR(e){let{basename:t,children:n,future:r,window:a}=e,s=h.useRef();s.current==null&&(s.current=J3({window:a,v5Compat:!0}));let i=s.current,[l,c]=h.useState({action:i.action,location:i.location}),{v7_startTransition:d}=r||{},u=h.useCallback(m=>{d&&by?by(()=>c(m)):c(m)},[c,d]);return h.useLayoutEffect(()=>i.listen(u),[i,u]),h.useEffect(()=>UR(r),[r]),h.createElement(zR,{basename:t,children:n,location:l.location,navigationType:l.action,navigator:i,future:r})}var wy;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(wy||(wy={}));var jy;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(jy||(jy={}));const qR=Lw("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-lg text-sm font-semibold transition-all duration-300 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow-lg hover:bg-primary/90 hover:shadow-xl hover:scale-[1.02] active:scale-[0.98]",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-border bg-transparent text-foreground hover:bg-secondary hover:border-primary/50",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"text-foreground hover:bg-secondary hover:text-foreground",link:"text-primary underline-offset-4 hover:underline",hero:"bg-primary text-primary-foreground shadow-lg glow hover:bg-primary/90 hover:shadow-2xl hover:scale-[1.03] active:scale-[0.98] text-base font-bold",store:"bg-secondary/80 backdrop-blur-sm border border-border hover:bg-secondary hover:border-primary/30 hover:scale-[1.02] active:scale-[0.98]"},size:{default:"h-11 px-5 py-2",sm:"h-9 rounded-md px-3 text-xs",lg:"h-14 roun
462ded-xl px-8 text-base",xl:"h-16 rounded-xl px-10 text-lg",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),ne=h.forwardRef(({className:e,variant:t,size:n,asChild:r=!1,...a},s)=>{const i=r?yS:"button";return o.jsx(i,{className:ke(qR({variant:t,size:n,className:e})),ref:s,...a})});ne.displayName="Button";const D1="/assets/app-icon-CmkS_sbw.webp",td="/assets/app-icon-CwTeqE6c.webp 40w, /assets/app-icon-CmkS_sbw.webp 80w, /assets/app-icon-CI9aog5C.webp 120w, /assets/app-icon-UNK7pjYn.webp 160w, /assets/app-icon-8NhW0piL.webp 240w";function re(){const e=Zc();return(t,n)=>e.formatMessage({id:t,defaultMessage:t},n)}function Ny(e,[t,n]){return Math.min(n,Math.max(t,e))}var VR=h.createContext(void 0);function M1(e){const t=h.useContext(VR);return e||t||"ltr"}var su=0;function _1(){h.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??Ay()),document.body.insertAdjacentElement("beforeend",e[1]??Ay()),su++,()=>{su===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),su--}},[])}function Ay(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var iu="focusScope.autoFocusOnMount",lu="focusScope.autoFocusOnUnmount",Ey={bubbles:!1,cancelable:!0},XR="FocusScope",Tp=h.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:a,onUnmountAutoFocus:s,...i}=e,[l,c]=h.useState(null),d=fn(a),u=fn(s),m=h.useRef(null),p=Ae(t,y=>c(y)),f=h.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;h.useEffect(()=>{if(r){let y=function(b){if(f.paused||!l)return;const j=b.target;l.contains(j)?m.current=j:fr(m.current,{select:!0})},v=function(b){if(f.paused||!l)return;const j=b.relatedTarget;j!==null&&(l.contains(j)||fr(m.current,{select:!0}))},x=function(b){if(document.activeElement===document.body)for(const N of b)N.removedNodes.length>0&&fr(l)};document.addEventListener("focusin",y),document.addEventListener("focusout",v);const g=new MutationObserver(x);return l&&g.observe(l,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",y),document.removeEventListener("focusout",v),g.disconnect()}}},[r,l,f.paused]),h.useEffect(()=>{if(l){Iy.add(f);const y=document.activeElement;if(!l.contains(y)){const x=new CustomEvent(iu,Ey);l.addEventListener(iu,d),l.dispatchEvent(x),x.defaultPrevented||(YR(tD(B1(l)),{select:!0}),document.activeElement===y&&fr(l))}return()=>{l.removeEventListener(iu,d),setTimeout(()=>{const x=new CustomEvent(lu,Ey);l.addEventListener(lu,u),l.dispatchEvent(x),x.defaultPrevented||fr(y??document.body,{select:!0}),l.removeEventListener(lu,u),Iy.remove(f)},0)}}},[l,d,u,f]);const w=h.useCallback(y=>{if(!n&&!r||f.paused)return;const v=y.key==="Tab"&&!y.altKey&&!y.ctrlKey&&!y.metaKey,x=document.activeElement;if(v&&x){const g=y.currentTarget,[b,j]=KR(g);b&&j?!y.shiftKey&&x===j?(y.preventDefault(),n&&fr(b,{select:!0})):y.shiftKey&&x===b&&(y.preventDefault(),n&&fr(j,{select:!0})):x===g&&y.preventDefault()}},[n,r,f.paused]);return o.jsx(de.div,{tabIndex:-1,...i,ref:p,onKeyDown:w})});Tp.displayName=XR;function YR(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(fr(r,{select:t}),document.activeElement!==n)return}function KR(e){const t=B1(e),n=Sy(t,e),r=Sy(t.reverse(),e);return[n,r]}function B1(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const a=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||a?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function Sy(e,t){for(const n of e)if(!JR(n,{upTo:t}))return n}function JR(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function ZR(e){return e instanceof HTMLInputElement&&"select"in e}function fr(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&ZR(e)&&t&&e.select()}}var Iy=eD();function eD(){let e=[];return{add(t){const n=e[0];t!==n&&(n==null||n.pause()),e=ky(e,t),e.unshift(t)},remove(t){var n;e=ky(e,t),(n=e[0])==null||n.resume()}}}function ky(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function tD(e){return e.filter(t=>t.tagName!=="A")}function O1(e){const t=h.useRef({value:e,previous:e});return h.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}var nD=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},Mo=new WeakMap,Wi=new WeakMap,qi={},cu=0,F1=function(e){return e&&(e.host||F1(e.parentNode))},rD=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=F1(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},oD=function(e,t,n,r){var a=rD(t,Array.isArray(e)?e:[e]);qi[n]||(qi[n]=new WeakMap);
vendor: 5,804 bytes, lines 462-477
462var s=qi[n],i=[],l=new Set,c=new Set(a),d=function(m){!m||l.has(m)||(l.add(m),d(m.parentNode))};a.forEach(d);var u=function(m){!m||c.has(m)||Array.prototype.forEach.call(m.children,function(p){if(l.has(p))u(p);else try{var f=p.getAttribute(r),w=f!==null&&f!=="false",y=(Mo.get(p)||0)+1,v=(s.get(p)||0)+1;Mo.set(p,y),s.set(p,v),i.push(p),y===1&&w&&Wi.set(p,!0),v===1&&p.setAttribute(n,"true"),w||p.setAttribute(r,"true")}catch(x){console.error("aria-hidden: cannot operate on ",p,x)}})};return u(t),l.clear(),cu++,function(){i.forEach(function(m){var p=Mo.get(m)-1,f=s.get(m)-1;Mo.set(m,p),s.set(m,f),p||(Wi.has(m)||m.removeAttribute(r),Wi.delete(m)),f||m.removeAttribute(n)}),cu--,cu||(Mo=new WeakMap,Mo=new WeakMap,Wi=new WeakMap,qi={})}},L1=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),a=nD(e);return a?(r.push.apply(r,Array.from(a.querySelectorAll("[aria-live]"))),oD(r,a,n,"aria-hidden")):function(){return null}},wl="right-scroll-bar-position",jl="width-before-scroll-bar",aD="with-scroll-bars-hidden",sD="--removed-body-scroll-bar-size";function du(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function iD(e,t){var n=h.useState(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(r){var a=n.value;a!==r&&(n.value=r,n.callback(r,a))}}}})[0];return n.callback=t,n.facade}var lD=typeof window<"u"?h.useLayoutEffect:h.useEffect,Cy=new WeakMap;function cD(e,t){var n=iD(null,function(r){return e.forEach(function(a){return du(a,r)})});return lD(function(){var r=Cy.get(n);if(r){var a=new Set(r),s=new Set(e),i=n.current;a.forEach(function(l){s.has(l)||du(l,null)}),s.forEach(function(l){a.has(l)||du(l,i)})}Cy.set(n,e)},[e]),n}function dD(e){return e}function uD(e,t){t===void 0&&(t=dD);var n=[],r=!1,a={read:function(){if(r)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(s){var i=t(s,r);return n.push(i),function(){n=n.filter(function(l){return l!==i})}},assignSyncMedium:function(s){for(r=!0;n.length;){var i=n;n=[],i.forEach(s)}n={push:function(l){return s(l)},filter:function(){return n}}},assignMedium:function(s){r=!0;var i=[];if(n.length){var l=n;n=[],l.forEach(s),i=n}var c=function(){var u=i;i=[],u.forEach(s)},d=function(){return Promise.resolve().then(c)};d(),n={push:function(u){i.push(u),d()},filter:function(u){return i=i.filter(u),n}}}};return a}function hD(e){e===void 0&&(e={});var t=uD(null);return t.options=X({async:!0,ssr:!1},e),t}var H1=function(e){var t=e.sideCar,n=La(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw new Error("Sidecar medium not found");return h.createElement(r,X({},n))};H1.isSideCarExport=!0;function mD(e,t){return e.useMedium(t),H1}var U1=hD(),uu=function(){},nd=h.forwardRef(function(e,t){var n=h.useRef(null),r=h.useState({onScrollCapture:uu,onWheelCapture:uu,onTouchMoveCapture:uu}),a=r[0],s=r[1],i=e.forwardProps,l=e.children,c=e.className,d=e.removeScrollBar,u=e.enabled,m=e.shards,p=e.sideCar,f=e.noRelative,w=e.noIsolation,y=e.inert,v=e.allowPinchZoom,x=e.as,g=x===void 0?"div":x,b=e.gapMode,j=La(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),N=p,A=cD([n,t]),E=X(X({},j),a);return h.createElement(h.Fragment,null,u&&h.createElement(N,{sideCar:U1,removeScrollBar:d,shards:m,noRelative:f,noIsolation:w,inert:y,setCallbacks:s,allowPinchZoom:!!v,lockRef:n,gapMode:b}),i?h.cloneElement(h.Children.only(l),X(X({},E),{ref:A})):h.createElement(g,X({},E,{className:c,ref:A}),l))});nd.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};nd.classNames={fullWidth:jl,zeroRight:wl};var pD=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function fD(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=pD();return t&&e.setAttribute("nonce",t),e}function gD(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function yD(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var xD=function(){var e=0,t=null;return{add:function(n){e==0&&(t=fD())&&(gD(t,n),yD(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},vD=function(){var e=xD();return function(t,n){h.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},z1=function(){var e=vD(),t=function(n){var r=n.styles,a=n.dynamic;return e(r,a),null};return t},bD={left:0,top:0,right:0,gap:0},hu=function(e){return parseInt(e||"",10)||0},wD=function(e){var t=window.getComputedStyle(document.body),n=t[e==="padding"?"paddingLeft":"marginLeft"],r=t[e==="padding"?"paddingTop":"marginTop"],a=t[e==="padding"?"paddingRight":"marginRight"];return[hu(n),hu(r),hu(a)]},jD=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return bD;var t=wD(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},ND=z1(),aa="data-scroll-locked",AD=function(e,t,n,r){var a=e.left,s=e.top,i=e.right,l=e.gap;return n===void 0&&(n="margin"),` 463 .`.concat(aD,` { 464 overflow: hidden `).concat(r,`; 465 padding-right: `).concat(l,"px ").concat(r,`; 466 } 467 body[`).concat(aa,`] { 468 overflow: hidden `).concat(r,`; 469 overscroll-behavior: contain; 470 `).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&` 471 padding-left: `.concat(a,`px; 472 padding-top: `).concat(s,`px; 473 padding-right: `).concat(i,`px; 474 margin-left:0; 475 margin-top:0; 476 margin-right: `).concat(l,"px ").concat(r,`; 477 `),n==="padding"&&"padding-right: ".concat(l,"px ").concat(r,";
477")].filter(Boolean).join(""),` 478 } 479 480 .`).concat(wl,` { 481 right: `).concat(l,"px ").concat(r,`; 482 } 483 484 .`).concat(jl,` { 485 margin-right: `).concat(l,"px ").concat(r,`; 486 } 487 488 .`).concat(wl," .").concat(wl,` { 489 right: 0 `).concat(r,`; 490 } 491 492 .`).concat(jl," .").concat(jl,` { 493 margin-right: 0 `).concat(r,`; 494 } 495 496 body[`).concat(aa,`] { 497 `).concat(sD,": ").concat(l,`px; 498 } 499`)},Ty=function(){var e=parseInt(document.body.getAttribute(aa)||"0",10);return isFinite(e)?e:0},ED=function(){h.useEffect(function(){return document.body.setAttribute(aa,(Ty()+1).toString()),function(){var e=Ty()-1;e<=0?document.body.removeAttribute(aa):document.body.setAttribute(aa,e.toString())}},[])},SD=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,a=r===void 0?"margin":r;ED();var s=h.useMemo(function(){return jD(a)},[a]);return h.createElement(ND,{styles:AD(s,!t,a,n?"":"!important")})},Fh=!1;if(typeof window<"u")try{var Vi=Object.defineProperty({},"passive",{get:function(){return Fh=!0,!0}});window.addEventListener("test",Vi,Vi),window.removeEventListener("test",Vi,Vi)}catch{Fh=!1}var _o=Fh?{passive:!1}:!1,ID=function(e){return e.tagName==="TEXTAREA"},$1=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!ID(e)&&n[t]==="visible")},kD=function(e){return $1(e,"overflowY")},CD=function(e){return $1(e,"overflowX")},Py=function(e,t){var n=t.ownerDocument,r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var a=G1(e,r);if(a){var s=Q1(e,r),i=s[1],l=s[2];if(i>l)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},TD=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},PD=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},G1=function(e,t){return e==="v"?kD(t):CD(t)},Q1=function(e,t){return e==="v"?TD(t):PD(t)},RD=function(e,t){return e==="h"&&t==="rtl"?-1:1},DD=function(e,t,n,r,a){var s=RD(e,window.getComputedStyle(t).direction),i=s*r,l=n.target,c=t.contains(l),d=!1,u=i>0,m=0,p=0;do{if(!l)break;var f=Q1(e,l),w=f[0],y=f[1],v=f[2],x=y-v-s*w;(w||x)&&G1(e,l)&&(m+=x,p+=w);var g=l.parentNode;l=g&&g.nodeType===Node.DOCUMENT_FRAGMENT_NODE?g.host:g}while(!c&&l!==document.body||c&&(t.contains(l)||t===l));return(u&&Math.abs(m)<1||!u&&Math.abs(p)<1)&&(d=!0),d},Xi=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Ry=function(e){return[e.deltaX,e.deltaY]},Dy=function(e){return e&&"current"in e?e.current:e},MD=function(e,t){return e[0]===t[0]&&e[1]===t[1]},_D=function(e){return` 500 .block-interactivity-`.concat(e,` {pointer-events: none;} 501 .allow-interactivity-`).concat(e,` {pointer-events: all;} 502`)},BD=0,Bo=[];function OD(e){var t=h.useRef([]),n=h.useRef([0,0]),r=h.useRef(),a=h.useState(BD++)[0],s=h.useState(z1)[0],i=h.useRef(e);h.useEffect(function(){i.current=e},[e]),h.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(a));var y=dn([e.lockRef.current],(e.shards||[]).map(Dy),!0).filter(Boolean);return y.forEach(function(v){return v.classList.add("allow-interactivity-".concat(a))}),function(){document.body.classList.remove("block-interactivity-".concat(a)),y.forEach(function(v){return v.classList.remove("allow-interactivity-".concat(a))})}}},[e.inert,e.lockRef.current,e.shards]);var l=h.useCallback(function(y,v){if("touches"in y&&y.touches.length===2||y.type==="wheel"&&y.ctrlKey)return!i.current.allowPinchZoom;var x=Xi(y),g=n.current,b="deltaX"in y?y.deltaX:g[0]-x[0],j="deltaY"in y?y.deltaY:g[1]-x[1],N,A=y.target,E=Math.abs(b)>Math.abs(j)?"h":"v";if("touches"in y&&E==="h"&&A.type==="range")return!1;var S=Py(E,A);if(!S)return!0;if(S?N=E:(N=E==="v"?"h":"v",S=Py(E,A)),!S)return!1;if(!r.current&&"changedTouches"in y&&(b||j)&&(r.current=N),!N)return!0;var D=r.current||N;return DD(D,v,y,D==="h"?b:j)},[]),c=h.useCallback(function(y){var v=y;if(!(!Bo.length||Bo[Bo.length-1]!==s)){var x="deltaY"in v?Ry(v):Xi(v),g=t.current.filter(function(N){return N.name===v.type&&(N.target===v.target||v.target===N.shadowParent)&&MD(N.delta,x)})[0];if(g&&g.should){v.cancelable&&v.preventDefault();return}
vendor: 4,216 bytes, line 502
502if(!g){var b=(i.current.shards||[]).map(Dy).filter(Boolean).filter(function(N){return N.contains(v.target)}),j=b.length>0?l(v,b[0]):!i.current.noIsolation;j&&v.cancelable&&v.preventDefault()}}},[]),d=h.useCallback(function(y,v,x,g){var b={name:y,delta:v,target:x,should:g,shadowParent:FD(x)};t.current.push(b),setTimeout(function(){t.current=t.current.filter(function(j){return j!==b})},1)},[]),u=h.useCallback(function(y){n.current=Xi(y),r.current=void 0},[]),m=h.useCallback(function(y){d(y.type,Ry(y),y.target,l(y,e.lockRef.current))},[]),p=h.useCallback(function(y){d(y.type,Xi(y),y.target,l(y,e.lockRef.current))},[]);h.useEffect(function(){return Bo.push(s),e.setCallbacks({onScrollCapture:m,onWheelCapture:m,onTouchMoveCapture:p}),document.addEventListener("wheel",c,_o),document.addEventListener("touchmove",c,_o),document.addEventListener("touchstart",u,_o),function(){Bo=Bo.filter(function(y){return y!==s}),document.removeEventListener("wheel",c,_o),document.removeEventListener("touchmove",c,_o),document.removeEventListener("touchstart",u,_o)}},[]);var f=e.removeScrollBar,w=e.inert;return h.createElement(h.Fragment,null,w?h.createElement(s,{styles:_D(a)}):null,f?h.createElement(SD,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function FD(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const LD=mD(U1,OD);var Pp=h.forwardRef(function(e,t){return h.createElement(nd,X({},e,{ref:t,sideCar:LD}))});Pp.classNames=nd.classNames;var HD=[" ","Enter","ArrowUp","ArrowDown"],UD=[" ","Enter"],Ao="Select",[rd,od,zD]=tp(Ao),[$a]=sr(Ao,[zD,Fc]),ad=Fc(),[$D,Yr]=$a(Ao),[GD,QD]=$a(Ao),W1=e=>{const{__scopeSelect:t,children:n,open:r,defaultOpen:a,onOpenChange:s,value:i,defaultValue:l,onValueChange:c,dir:d,name:u,autoComplete:m,disabled:p,required:f,form:w}=e,y=ad(t),[v,x]=h.useState(null),[g,b]=h.useState(null),[j,N]=h.useState(!1),A=M1(d),[E,S]=Lr({prop:r,defaultProp:a??!1,onChange:s,caller:Ao}),[D,R]=Lr({prop:i,defaultProp:l,onChange:c,caller:Ao}),$=h.useRef(null),k=v?w||!!v.closest("form"):!0,[O,_]=h.useState(new Set),W=Array.from(O).map(U=>U.props.value).join(";");return o.jsx(IT,{...y,children:o.jsxs($D,{required:f,scope:t,trigger:v,onTriggerChange:x,valueNode:g,onValueNodeChange:b,valueNodeHasChildren:j,onValueNodeHasChildrenChange:N,contentId:Br(),value:D,onValueChange:R,open:E,onOpenChange:S,dir:A,triggerPointerDownPosRef:$,disabled:p,children:[o.jsx(rd.Provider,{scope:t,children:o.jsx(GD,{scope:e.__scopeSelect,onNativeOptionAdd:h.useCallback(U=>{_(V=>new Set(V).add(U))},[]),onNativeOptionRemove:h.useCallback(U=>{_(V=>{const T=new Set(V);return T.delete(U),T})},[]),children:n})}),k?o.jsxs(gj,{"aria-hidden":!0,required:f,tabIndex:-1,name:u,autoComplete:m,value:D,onChange:U=>R(U.target.value),disabled:p,form:w,children:[D===void 0?o.jsx("option",{value:""}):null,Array.from(O)]},W):null]})})};W1.displayName=Ao;var q1="SelectTrigger",V1=h.forwardRef((e,t)=>{const{__scopeSelect:n,disabled:r=!1,...a}=e,s=ad(n),i=Yr(q1,n),l=i.disabled||r,c=Ae(t,i.onTriggerChange),d=od(n),u=h.useRef("touch"),[m,p,f]=xj(y=>{const v=d().filter(b=>!b.disabled),x=v.find(b=>b.value===i.value),g=vj(v,y,x);g!==void 0&&i.onValueChange(g.value)}),w=y=>{l||(i.onOpenChange(!0),f()),y&&(i.triggerPointerDownPosRef.current={x:Math.round(y.pageX),y:Math.round(y.pageY)})};return o.jsx(S0,{asChild:!0,...s,children:o.jsx(de.button,{type:"button",role:"combobox","aria-controls":i.contentId,"aria-expanded":i.open,"aria-required":i.required,"aria-autocomplete":"none",dir:i.dir,"data-state":i.open?"open":"closed",disabled:l,"data-disabled":l?"":void 0,"data-placeholder":yj(i.value)?"":void 0,...a,ref:c,onClick:oe(a.onClick,y=>{y.currentTarget.focus(),u.current!=="mouse"&&w(y)}),onPointerDown:oe(a.onPointerDown,y=>{u.current=y.pointerType;const v=y.target;v.hasPointerCapture(y.pointerId)&&v.releasePointerCapture(y.pointerId),y.button===0&&y.ctrlKey===!1&&y.pointerType==="mouse"&&(w(y),y.preventDefault())}),onKeyDown:oe(a.onKeyDown,y=>{const v=m.current!=="";!(y.ctrlKey||y.altKey||y.metaKey)&&y.key.length===1&&p(y.key),!(v&&y.key===" ")&&HD.includes(y.key)&&(w(),y.preventDefault())})})})});V1.displayName=q1;var X1="SelectValue",Y1=h.forwardRef((e,t)=>
vendor: 14,902 bytes, line 502
502{const{__scopeSelect:n,className:r,style:a,children:s,placeholder:i="",...l}=e,c=Yr(X1,n),{onValueNodeHasChildrenChange:d}=c,u=s!==void 0,m=Ae(t,c.onValueNodeChange);return ot(()=>{d(u)},[d,u]),o.jsx(de.span,{...l,ref:m,style:{pointerEvents:"none"},children:yj(c.value)?o.jsx(o.Fragment,{children:i}):s})});Y1.displayName=X1;var WD="SelectIcon",K1=h.forwardRef((e,t)=>{const{__scopeSelect:n,children:r,...a}=e;return o.jsx(de.span,{"aria-hidden":!0,...a,ref:t,children:r||"â¼"})});K1.displayName=WD;var qD="SelectPortal",J1=e=>o.jsx(Tc,{asChild:!0,...e});J1.displayName=qD;var Eo="SelectContent",Z1=h.forwardRef((e,t)=>{const n=Yr(Eo,e.__scopeSelect),[r,a]=h.useState();if(ot(()=>{a(new DocumentFragment)},[]),!n.open){const s=r;return s?qr.createPortal(o.jsx(ej,{scope:e.__scopeSelect,children:o.jsx(rd.Slot,{scope:e.__scopeSelect,children:o.jsx("div",{children:e.children})})}),s):null}return o.jsx(tj,{...e,ref:t})});Z1.displayName=Eo;var nn=10,[ej,Kr]=$a(Eo),VD="SelectContentImpl",XD=Na("SelectContent.RemoveScroll"),tj=h.forwardRef((e,t)=>{const{__scopeSelect:n,position:r="item-aligned",onCloseAutoFocus:a,onEscapeKeyDown:s,onPointerDownOutside:i,side:l,sideOffset:c,align:d,alignOffset:u,arrowPadding:m,collisionBoundary:p,collisionPadding:f,sticky:w,hideWhenDetached:y,avoidCollisions:v,...x}=e,g=Yr(Eo,n),[b,j]=h.useState(null),[N,A]=h.useState(null),E=Ae(t,Q=>j(Q)),[S,D]=h.useState(null),[R,$]=h.useState(null),k=od(n),[O,_]=h.useState(!1),W=h.useRef(!1);h.useEffect(()=>{if(b)return L1(b)},[b]),_1();const U=h.useCallback(Q=>{const[ge,...Se]=k().map(pe=>pe.ref.current),[me]=Se.slice(-1),ue=document.activeElement;for(const pe of Q)if(pe===ue||(pe==null||pe.scrollIntoView({block:"nearest"}),pe===ge&&N&&(N.scrollTop=0),pe===me&&N&&(N.scrollTop=N.scrollHeight),pe==null||pe.focus(),document.activeElement!==ue))return},[k,N]),V=h.useCallback(()=>U([S,b]),[U,S,b]);h.useEffect(()=>{O&&V()},[O,V]);const{onOpenChange:T,triggerPointerDownPosRef:I}=g;h.useEffect(()=>{if(b){let Q={x:0,y:0};const ge=me=>{var ue,pe;Q={x:Math.abs(Math.round(me.pageX)-(((ue=I.current)==null?void 0:ue.x)??0)),y:Math.abs(Math.round(me.pageY)-(((pe=I.current)==null?void 0:pe.y)??0))}},Se=me=>{Q.x<=10&&Q.y<=10?me.preventDefault():b.contains(me.target)||T(!1),document.removeEventListener("pointermove",ge),I.current=null};return I.current!==null&&(document.addEventListener("pointermove",ge),document.addEventListener("pointerup",Se,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",ge),document.removeEventListener("pointerup",Se,{capture:!0})}}},[b,T,I]),h.useEffect(()=>{const Q=()=>T(!1);return window.addEventListener("blur",Q),window.addEventListener("resize",Q),()=>{window.removeEventListener("blur",Q),window.removeEventListener("resize",Q)}},[T]);const[B,z]=xj(Q=>{const ge=k().filter(ue=>!ue.disabled),Se=ge.find(ue=>ue.ref.current===document.activeElement),me=vj(ge,Q,Se);me&&setTimeout(()=>me.ref.current.focus())}),G=h.useCallback((Q,ge,Se)=>{const me=!W.current&&!Se;(g.value!==void 0&&g.value===ge||me)&&(D(Q),me&&(W.current=!0))},[g.value]),J=h.useCallback(()=>b==null?void 0:b.focus(),[b]),Z=h.useCallback((Q,ge,Se)=>{const me=!W.current&&!Se;(g.value!==void 0&&g.value===ge||me)&&$(Q)},[g.value]),xe=r==="popper"?Lh:nj,Ce=xe===Lh?{side:l,sideOffset:c,align:d,alignOffset:u,arrowPadding:m,collisionBoundary:p,collisionPadding:f,sticky:w,hideWhenDetached:y,avoidCollisions:v}:{};return o.jsx(ej,{scope:n,content:b,viewport:N,onViewportChange:A,itemRefCallback:G,selectedItem:S,onItemLeave:J,itemTextRefCallback:Z,focusSelectedItem:V,selectedItemText:R,position:r,isPositioned:O,searchRef:B,children:o.jsx(Pp,{as:XD,allowPinchZoom:!0,children:o.jsx(Tp,{asChild:!0,trapped:g.open,onMountAutoFocus:Q=>{Q.preventDefault()},onUnmountAutoFocus:oe(a,Q=>{var ge;(ge=g.trigger)==null||ge.focus({preventScroll:!0}),Q.preventDefault()}),children:o.jsx(oi,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:s,onPointerDownOutside:i,onFocusOutside:Q=>Q.preventDefault(),onDismiss:()=>g.onOpenChange(!1),children:o.jsx(xe,{role:"listbox",id:g.contentId,"data-state":g.open?"open":"closed",dir:g.dir,onContextMenu:Q=>Q.preventDefault(),...x,...Ce,onPlaced:()=>_(!0),ref:E,style:{display:"flex",flexDirection:"column",outline:"none",...x.style},onKeyDown:oe(x.onKeyDown,Q=>{const ge=Q.ctrlKey||Q.altKey||Q.metaKey;if(Q.key==="Tab"&&Q.preventDefault(),!ge&&Q.key.length===1&&z(Q.key),["ArrowUp","ArrowDown","Home","End"].includes(Q.key)){let me=k().filter(ue=>!ue.disabled).map(ue=>ue.ref.current);if(["ArrowUp","End"].includes(Q.key)&&(me=me.slice().reverse()),["ArrowUp","ArrowDown"].includes(Q.key)){const ue=Q.target,pe=me.indexOf(ue);me=me.slice(pe+1)}setTimeout(()=>U(me)),Q.preventDefault()}})})})})})})});tj.displayName=VD;var YD="SelectItemAlignedPosition",nj=h.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:r,...a}=e,s=Yr(Eo,n),i=Kr(Eo,n),[l,c]=h.useState(null),[d,u]=h.useState(null),m=Ae(t,E=>u(E)),p=od(n),f=h.useRef(!1),w=h.useRef(!0),{viewport:y,selectedItem:v,selectedItemText:x,focusSelectedItem:g}=i,b=h.useCallback(()=>{if(s.trigger&&s.valueNode&&l&&d&&y&&v&&x){const E=s.trigger.getBoundingClientRect(),S=d.getBoundingClientRect(),D=s.valueNode.getBoundingClientRect(),R=x.getBoundingClientRect();if(s.dir!=="rtl"){const ue=R.left-S.left,pe=D.left-ue,C=E.left-pe,q=E.width+C,P=Math.max(q,S.width),H=window.innerWidth-nn,ee=Ny(pe,[nn,Math.max(nn,H-P)]);l.style.minWidth=q+"px",l.style.left=ee+"px"}else{const ue=S.right-R.right,pe=window.innerWidth-D.right-ue,C=window.innerWidth-E.right-pe,q=E.width+C,P=Math.max(q,S.width),H=window.innerWidth-nn,ee=Ny(pe,[nn,Math.max(nn,H-P)]);l.style.minWidth=q+"px",l.style.right=ee+"px"}const $=p(),k=window.innerHeight-nn*2,O=y.scrollHeight,_=window.getComputedStyle(d),W=parseInt(_.borderTopWidth,10),U=parseInt(_.paddingTop,10),V=parseInt(_.borderBottomWidth,10),T=parseInt(_.paddingBottom,10),I=W+U+O+T+V,B=Math.min(v.offsetHeight*5,I),z=window.getComputedStyle(y),G=parseInt(z.paddingTop,10),J=parseInt(z.paddingBottom,10),Z=E.top+E.height/2-nn,xe=k-Z,Ce=v.offsetHeight/2,Q=v.offsetTop+Ce,ge=W+U+Q,Se=I-ge;if(ge<=Z){const ue=$.length>0&&v===$[$.length-1].ref.current;l.style.bottom="0px";const pe=d.clientHeight-y.offsetTop-y.offsetHeight,C=Math.max(xe,Ce+(ue?J:0)+pe+V),q=ge+C;l.style.height=q+"px"}else{const ue=$.length>0&&v===$[0].ref.current;l.style.top="0px";const C=Math.max(Z,W+y.offsetTop+(ue?G:0)+Ce)+Se;l.style.height=C+"px",y.scrollTop=ge-Z+y.offsetTop}l.style.margin=`${nn}px 0`,l.style.minHeight=B+"px",l.style.maxHeight=k+"px",r==null||r(),requestAnimationFrame(()=>f.current=!0)}},[p,s.trigger,s.valueNode,l,d,y,v,x,s.dir,r]);ot(()=>b(),[b]);const[j,N]=h.useState();ot(()=>{d&&N(window.getComputedStyle(d).zIndex)},[d]);const A=h.useCallback(E=>{E&&w.current===!0&&(b(),g==null||g(),w.current=!1)},[b,g]);return o.jsx(JD,{scope:n,contentWrapper:l,shouldExpandOnScrollRef:f,onScrollButtonChange:A,children:o.jsx("div",{ref:c,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:j},children:o.jsx(de.div,{...a,ref:m,style:{boxSizing:"border-box",maxHeight:"100%",...a.style}})})})});nj.displayName=YD;var KD="SelectPopperPosition",Lh=h.forwardRef((e,t)=>{const{__scopeSelect:n,align:r="start",collisionPadding:a=nn,...s}=e,i=ad(n);return o.jsx(I0,{...i,...s,ref:t,align:r,collisionPadding:a,style:{boxSizing:"border-box",...s.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});Lh.displayName=KD;var[JD,Rp]=$a(Eo,{}),Hh="SelectViewport",rj=h.forwardRef((e,t)=>{const{__scopeSelect:n,nonce:r,...a}=e,s=Kr(Hh,n),i=Rp(Hh,n),l=Ae(t,s.onViewportChange),c=h.useRef(0);return o.jsxs(o.Fragment,{children:[o.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:r}),o.jsx(rd.Slot,{scope:n,children:o.jsx(de.div,{"data-radix-select-viewport":"",role:"presentation",...a,ref:l,style:{position:"relative",flex:1,overflow:"hidden auto",...a.style},onScroll:oe(a.onScroll,d=>{const u=d.currentTarget,{contentWrapper:m,shouldExpandOnScrollRef:p}=i;if(p!=null&&p.current&&m){const f=Math.abs(c.current-u.scrollTop);if(f>0){const w=window.innerHeight-nn*2,y=parseFloat(m.style.minHeight),v=parseFloat(m.style.height),x=Math.max(y,v);if(x<w){const g=x+f,b=Math.min(w,g),j=g-b;m.style.height=b+"px",m.style.bottom==="0px"&&(u.scrollTop=j>0?j:0,m.style.justifyContent="flex-end")}}}c.current=u.scrollTop})})})]})});rj.displayName=Hh;var oj="SelectGroup",[ZD,eM]=$a(oj),tM=h.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=Br();return o.jsx(ZD,{scope:n,id:a,children:o.jsx(de.div,{role:"group","aria-labelledby":a,...r,ref:t})})});tM.displayName=oj;var aj="SelectLabel",sj=h.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=eM(aj,n);return o.jsx(de.div,{id:a.id,...r,ref:t})});sj.displayName=aj;var rc="SelectItem",[nM,ij]=$a(rc),lj=h.forwardRef((e,t)=>{const{__scopeSelect:n,value:r,disabled:a=!1,textValue:s,...i}=e,l=Yr(rc,n),c=Kr(rc,n),d=l.value===r,[u,m]=h.useState(s??""),[p,f]=h.useState(!1),w=Ae(t,g=>{var b;return(b=c.itemRefCallback)==null?void 0:b.call(c,g,r,a)}),y=Br(),v=h.useRef("touch"),x=()=>{a||(l.onValueChange(r),l.onOpenChange(!1))};if(r==="")throw new Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return o.jsx(nM,{scope:n,value:r,disabled:a,textId:y,isSelected:d,onItemTextChange:h.useCallback(g=>{m(b=>b||((g==null?void 0:g.textContent)??"").trim())},[]),children:o.jsx(rd.ItemSlot,{scope:n,value:r,disabled:a,textValue:u,children:o.jsx(de.div,{role:"option","aria-labelledby":y,"data-highlighted":p?"":void 0,"aria-selected":d&&p,"data-state":d?"checked":"unchecked","aria-disabled":a||void 0,"data-disabled":a?"":void 0,tabIndex:a?void 0:-1,...i,ref:w,onFocus:oe(i.onFocus,()=>f(!0)),onBlur:oe(i.onBlur,()=>f(!1)),onClick:oe(i.onClick,()=>{v.current!=="mouse"&&x()}),onPointerUp:oe(i.onPointerUp,()=>{v.current==="mouse"&&x()}),onPointerDown:oe(i.onPointerDown,g=>{v.current=g.pointerType}),onPointerMove:oe(i.onPointerMove,g=>{var b;v.current=g.pointerType,a?(b=c.onItemLeave)==null||b.call(c):v.current==="mouse"&&g.currentTarget.focus({preventScroll:!0})}),onPointerLeave:oe(i.onPointerLeave,g=>{var b;g.currentTarget===document.activeElement&&((b=c.onItemLeave)==null||b.call(c))}),onKeyDown:oe(i.onKeyDown,g=>{var j;((j=c.searchRef)==null?void 0:j.current)!==""&&g.key===" "||(UD.includes(g.key)&&x(),g.key===" "&&g.preventDefault())})})})})});lj.displayName=rc;var hs="SelectItemText",cj=h.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:a,...s}=e,i=Yr(hs,n),l=Kr(hs,n),c=ij(hs,n),d=QD(hs,n),[u,m]=h.useState(null),p=Ae(t,x=>m(x),c.onItemTextChange,x=>{var g;return(g=l.itemTextRefCallback)==null?void 0:g.call(l,x,c.value,c.disabled)}),f=u==null?void 0:u.textContent,w=h.useMemo(()=>o.jsx("option",{value:c.value,disabled:c.disabled,children:f},c.value),[c.disabled,c.value,f]),{onNativeOptionAdd:y,onNativeOptionRemove:v}=d;return ot(()=>(y(w),()=>v(w)),[y,v,w]),o.jsxs(o.Fragment,{children:[o.jsx(de.span,{id:c.textId,...s,ref:p}),c.isSelected&&i.valueNode&&!i.valueNodeHasChildren?qr.createPortal(s.children,i.valueNode):null]})});cj.displayName=hs;var dj="SelectItemIndicator",uj=h.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return ij(dj,n).isSelected?o.jsx(de.span,{"aria-hidden":!0,...r,ref:t}):null});uj.displayName=dj;var Uh="SelectScrollUpButton",hj=h.forwardRef((e,t)=>{const n=Kr(Uh,e.__scopeSelect),r=Rp(Uh,e.__scopeSelect),[a,s]=h.useState(!1),i=Ae(t,r.onScrollButtonChange);return ot(()=>{if(n.viewport&&n.isPositioned){let l=function(){const d=c.scrollTop>0;s(d)};const c=n.viewport;return l(),c.addEventListener("scroll",l),()=>c.removeEventListener("scroll",l)}},[n.viewport,n.isPositioned]),a?o.jsx(pj,{...e,ref:i,onAutoScroll:()=>{const{viewport:l,selectedItem:c}=n;l&&c&&(l.scrollTop=l.scrollTop-c.offsetHeight)}}):null});hj.displayName=Uh;var zh="SelectScrollDownButton",mj=h.forwardRef((e,t)=>{const n=Kr(zh,e.__scopeSelect),r=Rp(zh,e.__scopeSelect),[a,s]=h.useState(!1),i=Ae(t,r.onScrollButtonChange);return ot(()=>{if(n.viewport&&n.isPositioned){let l=function(){const d=c.scrollHeight-c.clientHeight,u=Math.ceil(c.scrollTop)<d;s(u)};const c=n.viewport;return l(),c.addEventListener("scroll",l),()=>c.removeEventListener("scroll",l)}},[n.viewport,n.isPositioned]),a?o.jsx(pj,{...e,ref:i,onAutoScroll:()=>{const{viewport:l,selectedItem:c}=n;l&&c&&(l.scrollTop=l.scrollTop+c.offsetHeight)}}):null});mj.displayName=zh;var pj=h.forwardRef((e,t)=>{const{__scopeSelect:n,onAutoScroll:r,...a}=e,s=Kr("SelectScrollButton",n),i=h.useRef(null),l=od(n),c=h.useCallback(()=>{i.current!==null&&(window.clearInterval(i.current),i.current=null)},[]);return h.useEffect(()=>()=>c(),[c]),ot(()=>{var u;const d=l().find(m=>m.ref.current===document.activeElement);(u=d==null?void 0:d.ref.current)==null||u.scrollIntoView({block:"nearest"})},[l]),o.jsx(de.div,{"aria-hidden":!0,...a,ref:t,style:{flexShrink:0,...a.style},onPointerDown:oe(a.onPointerDown,()=>{i.current===null&&(i.current=window.setInterval(r,50))}),onPointerMove:oe(a.onPointerMove,()=>{var d;(d=s.onItemLeave)==null||d.call(s),i.current===null&&(i.current=window.setInterval(r,50))}),onPointerLeave:oe(a.onPointerLeave,()=>{c()})})}),rM="SelectSeparator",fj=h.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return o.jsx(de.div,{"aria-hidden":!0,...r,ref:t})});fj.displayName=rM;var $h="SelectArrow",oM=h.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=ad(n),s=Yr($h,n),i=Kr($h,n);return s.open&&i.position==="popper"?o.jsx(k0,{...a,...r,ref:t}):null});oM.displayName=$h;var aM="SelectBubbleInput",gj=h.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{const a=h.useRef(null),s=Ae(r,a),i=O1(t);return h.useEffect(()=>{const l=a.current;if(!l)return;const c=window.HTMLSelectElement.prototype,u=Object.getOwnPropertyDescriptor(c,"value").set;if(i!==t&&u){const m=new Event("change",{bubbles:!0});u.call(l,t),l.dispatchEvent(m)}},[i,t]),o.jsx(de.select,{...n,style:{...yw,...n.style},ref:s,defaultValue:t})});gj.displayName=aM;function yj(e){return e===""||e===void 0}function xj(e){const t=fn(e),n=h.useRef(""),r=h.useRef(0),a=h.useCallback(i=>{const l=n.current+i;t(l),function c(d){n.current=d,window.clearTimeout(r.current),d!==""&&(r.current=window.setTimeout(()=>c(""),1e3))}(l)},[t]),s=h.useCallback(()=>{n.current="",window.clearTimeout(r.current)},[]);return h.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,a,s]}
502function vj(e,t,n){const a=t.length>1&&Array.from(t).every(d=>d===t[0])?t[0]:t,s=n?e.indexOf(n):-1;let i=sM(e,Math.max(s,0));a.length===1&&(i=i.filter(d=>d!==n));const c=i.find(d=>d.textValue.toLowerCase().startsWith(a.toLowerCase()));return c!==n?c:void 0}function sM(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var iM=W1,bj=V1,lM=Y1,cM=K1,dM=J1,wj=Z1,uM=rj,jj=sj,Nj=lj,hM=cj,mM=uj,Aj=hj,Ej=mj,Sj=fj;const Ij=iM,pM=lM,Dp=h.forwardRef(({className:e,children:t,...n},r)=>o.jsxs(bj,{ref:r,className:ke("flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",e),...n,children:[t,o.jsx(cM,{asChild:!0,children:o.jsx(gn,{className:"h-4 w-4 opacity-50"})})]}));Dp.displayName=bj.displayName;const kj=h.forwardRef(({className:e,...t},n)=>o.jsx(Aj,{ref:n,className:ke("flex cursor-default items-center justify-center py-1",e),...t,children:o.jsx(mI,{className:"h-4 w-4"})}));kj.displayName=Aj.displayName;const Cj=h.forwardRef(({className:e,...t},n)=>o.jsx(Ej,{ref:n,className:ke("flex cursor-default items-center justify-center py-1",e),...t,children:o.jsx(gn,{className:"h-4 w-4"})}));Cj.displayName=Ej.displayName;const Mp=h.forwardRef(({className:e,children:t,position:n="popper",...r},a)=>
502o.jsx(dM,{children:o.jsxs(wj,{ref:a,className:ke("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",n==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:n,...r,children:[o.jsx(kj,{}),o.jsx(uM,{className:ke("p-1",n==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:t}),o.jsx(Cj,{})]})}));Mp.displayName=wj.displayName;const fM=h.forwardRef(({className:e,...t},n)=>o.jsx(jj,{ref:n,className:ke("py-1.5 pl-8 pr-2 text-sm font-semibold",e),...t}));fM.displayName=jj.displayName;const _p=h.forwardRef(({className:e,children:t,...n},r)=>o.jsxs(Nj,{ref:r,className:ke("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground",e),...n,children:[o.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:o.jsx(mM,{children:o.jsx(tr,{className:"h-4 w-4"})})}),o.jsx(hM,{children:t})]}));_p.displayName=Nj.displayName;const gM=h.forwardRef(({className:e,...t},n)=>o.jsx(Sj,{ref:n,className:ke("-mx-1 my-1 h-px bg-muted",e),...t}));gM.displayName=Sj.displayName;const My="lang",Tj="site-locale",Bp=["es","fr","hi","id","th"],Pj=["en",...Bp];function Op(e){return Pj.includes(e)}function sd(e){const t=e.match(/^\/([a-z]{2})(?=\/|$)/),n=t==null?void 0:t[1];if(n&&Op(n)&&n!=="en"&&Bp.includes(n)){const r=e.slice(n.length+1);return{locale:n,path:r===""?"/":r}}return{locale:"en",path:e||"/"}}function yM(e){return e==="en"?"":`/${e}`}function or(e,t){if(t==="en"||!e.startsWith("/"))return e;const{locale:n}=sd(e);return n!=="en"?e:e==="/"?`/${t}`:`/${t}${e}`}function id(){return typeof window>"u"?"en":sd(window.location.pathname).locale}const xM=new Set(["Asia/Jakarta","Asia/Makassar","Asia/Jayapura"]);function vM(){if(typeof navigator>"u")return"en";const e=[...navigator.languages||[],navigator.language].filter(Boolean).map(t=>t.toLowerCase());for(const t of Bp)if(e.some(n=>n===t||n.startsWith(`${t}-`)))return t;try{const t=Intl.DateTimeFormat().resolvedOptions().timeZone;if(xM.has(t))return"id"}catch{}return"en"}function bM(){if(typeof window>"u")return null;try{const e=window.localStorage.getItem(Tj);return e&&Op(e)?e:null}catch{return null}}function wM(){if(typeof window>"u")return null;const e=new URLSearchParams(window.location.search).get(My);if(!e||!Op(e))return null;const{locale:t,path:n}=sd(window.location.pathname);if(e===t)return null;const r=new URLSearchParams(window.location.search);r.delete(My);const a=r.toString();return`${or(n,e)}${a?`?${a}`:""}${window.location.hash}`}function $r(){const e=id();return e==="id"?"id-ID":e==="es"?"es-ES":e==="hi"?"hi-IN":e==="fr"?"fr-FR":e==="th"?"th-TH-u-ca-gregory":"en-US"}function Fp(){const e=id();return e==="en"||e==="hi"}const mu=[{value:"en",label:"English"},{value:"es",label:"Español"},{value:"fr",label:"Français"},{value:"hi",label:"हिनà¥à¤¦à¥"},{value:"id",label:"Bahasa Indonesia"},{value:"th",label:"à¹à¸à¸¢"}];function oc(e){if(!(typeof window>"u"))try{window.localStorage.setItem(Tj,e)}catch{}}const Rj=h.createContext(null);function jM({children:e,initialLocale:t}){const[n,r]=h.useState(()=>t??id()),a=h.useCallback(i=>{oc(i),r(i)},[]),s=h.useMemo(()=>({locale:n,setLocale:a}),[n,a]);return o.jsx(Rj.Provider,{value:s,children:e})}function ir(){const e=h.useContext(Rj);if(!e)throw new Error("useSiteLocale must be used inside SiteLocaleProvider");return e}function Gh({className:e}){const{locale:t}=ir(),n=mu.find(a=>a.value===t)??mu[0],r=a=>{if(oc(a),typeof window>"u")return;const{path:s}=sd(window.location.pathname),{search:i,hash:l}=window.location;window.location.assign(`${or(s,a)}${i}${l}`)};return o.jsxs(Ij,{value:t,onValueChange:a=>r(a),children:[o.jsxs(Dp,{className:e,"aria-label":"Select language",title:"Select language",children:[o.jsx(SI,{className:"w-4 h-4 shrink-0 opacity-70","aria-hidden":"true"}),o.jsx("span",{className:"truncate",children:n.label})]}),o.jsx(Mp,{children:mu.map(a=>o.jsx(_p,{value:a.value,children:a.label},a.value))})]})}const fi=[{label:"/01",title:"Capture on site",body:"Open Timestamp It on iPhone or Android, snap the photo, and the date, time, and GPS are stamped automatically before you put your phone away."},{label:"/02",title:"Organize by project",body:"Photos drop into the project you tagged. Stamps stay on the image, EXIF stays intact, and projects sync across every device on your account."},{label:"/03",title:"Share with one link",body:"Send a project link to a client, export a PDF report, or hand off a ZIP. No account required for the person you're sharing with."}],NM={slug:"best-companycam-alternative",competitorName:"CompanyCam",competitorContextLine:"CompanyCam's published pricing starts at Core, $63/month on annual billing, which includes one user, with additional users at $29 each. There is no free plan; Crew, at $129/month on annual billing, is the first tier that includes three users.",hero:{eyebrow:"CompanyCam alternative",h1:"The best CompanyCam alternative",intro:"Timestamp It auto-stamps date, time, and GPS on every jobsite photo, organizes them by project, and lets you share or export a PDF report in one tap. CompanyCam's cheapest plan is $63/month for a single user and there is no free tier. Timestamp It starts at nothing."},whyBlocks:[{title:"A free plan, not a free trial",body:"CompanyCam publishes no free tier â the cheapest way in is Core at $63/month on annual billing, for one user. Timestamp It is free for solo use with unlimited photos and projects, and bills per active user only when you bring a team on."},{title:"Verified photo proof",body:"Every Timestamp It capture burns the timestamp and GPS co
502ordinates onto the image and preserves the original EXIF metadata, so the photo holds up as evidence in disputes, insurance claims, or audits."},{title:"Free PDF & ZIP exports",body:"Export a stamped PDF report or a ZIP of originals from any project, on any plan. CompanyCam puts polished PDF reports behind paid tiers."},{title:"Works on iPhone, Android, and the web",body:"Capture on mobile, review on the web dashboard, share with anyone. No app install required for the client you're handing the project off to."}],steps:fi,pricingHeadline:"Timestamp It vs CompanyCam pricing",pricingSubheadline:"CompanyCam's published entry plan is Core at $63/month on annual billing, including one user, with $29/month per additional user and no free tier. Timestamp It has a free plan and a $8.99/month Pro tier for solo use.",pricingRows:[{label:"Free plan",us:"Yes",them:"No published free tier"},{label:"Entry price",us:"$0 (Free) / $8.99 per month (Pro)",them:"$63 per month (Core, 1 user, annual billing)"},{label:"Per-extra-user cost",us:"Custom team pricing â talk to us",them:"$29 per extra user / month"},{label:"Unlimited stamping on paid plan",us:!0,them:!0},{label:"Annual savings option",us:"$69.00 / year (Pro)",them:"Annual billing required for listed prices"},{label:"Free trial",us:"Free plan, no card required",them:"Demo on request"}],deepDive:[{title:"Verified, court-ready jobsite photos",body:"Insurance adjusters, building inspectors, and clients want photo proof they can trust. Timestamp It hard-stamps the capture date, time, and GPS co
502ordinates onto the pixels and keeps the original EXIF intact in the file.",bullets:["Time, date, and GPS burned into the photo at capture time","Original EXIF metadata preserved so chain-of-custody is provable","Customizable stamp font, color, position, and accuracy units","Optional notes and project tags written directly onto the image"]},{title:"Auto-organization by project",body:"Tag a project once and every photo you take that session lands there. Switching jobs is one tap. No drag-and-drop, no manual album shuffling.",bullets:["Unlimited projects on every plan","Project-level cover photos, descriptions, and address","Cloud sync across iPhone, Android, and the web dashboard","Search by project, date range, or location"]},{title:"Team collaboration without per-seat headaches",body:"Bring teammates in with an invite link. Everyone's photos sync to the same shared project in real time. Pricing scales with your actual team size, rather than adding $29/month per seat on top of a plan fee.",bullets:["One-click invite links for crew members","Real-time sync of new photos across devices","Per-active-user team pricing â talk to us for a quote","Web dashboard for office staff who don't need the mobile app"]}],useCases:[{title:"Construction & remodeling",body:"Document daily progress on every job, prove the site condition before you started, and hand the homeowner a stamped PDF when you wrap."},{title:"Insurance & restoration",body:"Capture damage with verified time, GPS, and the weather conditions at that moment, so adjusters approve claims faster and disputes don't drag on."},{title:"Field service & inspections",body:"HVAC, pest control, solar, telecom techs â close out a job with proof of work that the office can audit and the customer can keep."}],matrix:{headline:"How Timestamp It compares to CompanyCam",sections:[{heading:"Getting started",rows:[{label:"Free plan with stamping",us:!0,them:!1},{label:"Solo paid plan",us:"$8.99 / month",them:"$63 / month (Core, annual billing)"},{label:"Users included at the entry price",us:"Unlimited photos, 1 account",them:"1 (Core)"},{label:"Cheapest plan that includes 3 users",us:"Custom team pricing",them:"Crew, $129 / month annual"}]},{heading:"Stamp customization",rows:[{label:"Date, time, GPS auto-stamped",us:!0,them:!0},{label:"Customize stamp position",us:!0,them:"Fixed bottom-right corner"},{label:"Customize stamp font and color",us:!0,them:!1},{label:"Custom company logo on stamp",us:"All plans",them:"Premium ($129 / mo), per-photo only"}]},{heading:"Reports & sharing",rows:[{label:"PDF photo reports",us:"Free on Pro",them:"Pro plan and up"},{label:"Public share link",us:!0,them:!0}]},{heading:"Support",rows:[{label:"1:1 access to the developer for feature requests",us:!0,them:!1}]}]},testimonials:[{headline:"Saved $237/month switching from CompanyCam",quote:"We had a two-person crew and CompanyCam was charging us for a third user we didn't have. Timestamp It scales with our actual headcount.",author:"Marcus J.",role:"Owner, residential roofing"},{headline:"Insurance adjuster accepted the PDF on the first try",quote:"I sent the stamped PDF report straight from the app and the claim went through. The GPS on every photo is what sealed it.",author:"Priya R.",role:"Restoration project manager"},{headline:"Office staff finally have everything in one place",quote:"Photos used to be in five different group chats. Now the office pulls them up by project on the web dashboard. Same day we adopted it, no training needed.",author:"Daniel K.",role:"Operations lead, HVAC"}],faqs:[{q:"What is the best CompanyCam alternative?",a:"Timestamp It is the closest like-for-like alternative for crews that want auto-stamped jobsite photos, project organization, PDF reports, and team sync, with a free plan instead of a $63/month floor. Other alternatives include Raken, SiteCapture, and BuildBook, each with a different focus."},{q:"Is Timestamp It cheaper than CompanyCam?",a:"For a solo operator or a small crew, yes. CompanyCam publishes no free tier and starts at Core, $63/month on annual billing for one user, with $29/month per additional user. Timestamp It has a free plan with unlimited photos and projects, a $8.99/month Pro tier for solo use, and custom per-active-user team pricing."},{q:"Does Timestamp It add timestamps automatically like CompanyCam?",a:"Yes. Every photo captured through the app is stamped with date, time, and GPS co
502ordinates at capture time. The stamp is burned into the pixels and the original EXIF metadata is preserved."},{q:"Can I export a PDF report?",a:"Yes. PDF photo reports are included on the Pro plan with no per-report fees. You can also export a ZIP of the original files."},{q:"Does Timestamp It work on iPhone, Android, and the web?",a:"Yes. The mobile app runs on iPhone and Android and there's a web dashboard for office staff who don't need to capture in the field."},{q:"Does it work offline like CompanyCam?",a:"Yes. Photos capture and stamp normally with no signal â they sync to the cloud and to your team as soon as you're back online."}],closingCta:{title:"Try the smarter CompanyCam alternative â free",body:"Stamp date, time, and GPS on every photo. Organize jobs by project. Send a PDF report your client will keep. Unlimited photos and projects on a free plan, rather than $63/month before you start."}},AM={slug:"best-timemark-alternative",competitorName:"Timemark",competitorContextLine:"Timemark's published pricing puts 100 photos in a Teamspace and 3 projects on both the free plan and the $5/user/month Plus plan. 300,000 photos and unlimited projects start at Business, $7/user/month.",hero:{eyebrow:"Timemark alternative",h1:"The best Timemark alternative",intro:"Timestamp It and Timemark both auto-stamp date, time, and GPS on every jobsite photo. The difference shows up on a busy week: Timemark's published limit is 100 photos and 3 projects, on the free plan and on Plus at $5/user/month alike. Timestamp It has no cap on either, on any plan."},whyBlocks:[{title:"Unlimited uploads, even on the free plan",body:"Timemark's published limit is 100 photos in a Teamspace â the same on free as on Plus at $5/user/month. A two-day roofing job can pass that. Timestamp It never counts your photos, whether you are paying or not."},{title:"Unlimited projects, also on free",body:"Timemark lists 3 projects on free and on Plus; unlimited projects begin at Business. Timestamp It has never limited projects on any plan, so a new job never means archiving an old one to make room."},{title:"Trusted since 2009",body:"Timestamp It was one of the first photo timestamp apps on the App Store and has been refined for over 15 years by field crews. 4.7/5 stars and 700K+ users."},{title:"PDF reports your client keeps",body:"Generate a stamped PDF straight from the app or web dashboard â cover page, project address, photo grid â and send it as the close-out deliverable."}],steps:fi,deepDive:[{title:"Stamping the way you'd configure it yourself",body:"Hard-burned date, time, and GPS on the image, with the original EXIF preserved underneath. Customize the stamp until it looks like your brand, not a generic watermark.",bullets:["Customizable stamp font, color, position, and accuracy units","Imperial or metric, 12- or 24-hour, locale-aware","Optional company logo and project notes on the stamp","Original file kept untouched in the cloud backup"]},{title:"One plan, unlimited stamping, unlimited cloud",body:"Pro is $8.99/month or $69.00/year, and nothing counts down. No 100-photo Teamspace allowance to watch, no archiving last month's job to free up room for this one. Stamp every site, every day, and sync all of it.",bullets:["Unlimited projects","Unlimited stamping","Unlimited cloud sync across iPhone, Android, and web","Annual option saves ~35% over monthly"]},{title:"Reports the office actually uses",body:"Generate a stamped PDF or a ZIP of originals from any project. Send straight to email, or hand the client a public web link.",bullets:["PDF report with cover page, photo grid, and stamps preserved","ZIP export with originals plus a stamped copy of each","Web dashboard for office review and download","Free for the recipient â no Timestamp It account required"]}],useCases:[{title:"Solo trades on a flat budget",body:"If you'd rather pay one $8.99/month price than choose between Plus and Business, Timestamp It Pro keeps the math simple â unlimited stamping and unlimited cloud sync, no tier upgrades when your photo count grows."},{title:"Crews who want a polished close-out PDF",body:"Tag the project on capture, the close-out PDF writes itself: cover page, project address, photo grid with stamps preserved. Send it to the homeowner, the adjuster, or the GC."},{title:"Long-time iPhone users",body:"Timestamp It has been on the App Store since 2009 and is the iPhone-native stamping app many crews already know. Same workflow, refined for over a decade."}],matrix:{headline:"How Timestamp It compares to Timemark",sections:[{heading:"Limits",rows:[{label:"Photos on the free plan",us:"Unlimited",them:"100 in a Teamspace"},{label:"Photos on the entry paid plan",us:"Unlimited",them:"100 in a Teamspace (Plus, $5/user/mo)"},{label:"Projects on the free plan",us:"Unlimited",them:"3"},{label:"Projects on the entry paid plan",us:"Unlimited",them:"3 (Plus)"},{label:"Plan needed to lift the photo cap",us:"None",them:"Business, $7/user/mo"}]},{heading:"What's on the stamp",rows:[{label:"Date, time, and GPS auto-stamped",us:!0,them:!0},{label:"Custom company logo on stamp",us:!0,them:!0},{label:"No app watermark on output",us:!0,them:"Watermark on free tier"}]},{heading:"Track record",rows:[{label:"On the App Store since 2009",us:!0,them:!1},{label:"Active user base",us:"700K+ field pros",them:"Published user base"},{label:"App Store rating",us:"4.7 / 5",them:"Published rating"}]},{heading:"Support",rows:[{label:"1:1 access to the developer for feature requests",us:!0,them:!1}]}]},testimonials:[{headline:"$8.99 flat â no tier shopping",quote:"I didn't want to figure out which Teamspace tier matched our photo volume. Timestamp It Pro is one price, unlimited everything, and we've never thought about it again.",author:"Travis P.",role:"Operations, fencing contractor"},{headline:"Stamps look exactly how I want them",quote:"Custom font, custom color, my logo in the corner. The stamps look like our brand, not a generic watermark.",author:"Eduardo S.",role:"Independent contractor"},{headline:"Switched from Timemark and didn't lose a beat",quote:"Same auto-stamping I had before, plus project-tagged photos and a PDF report dropped on the homeowner. Took us a day to migrate.",author:"Aisha L.",role:"Solo handyperson"}],faqs:[{q:"What is the best Timemark alternative?",a:"Timestamp It is the closest alternative for crews who like Timemark's auto-stamping but want a single $8.99/month Pro plan with unlimited stamping and unlimited cloud sync â no tier-shopping between Plus and Business. Other options include CompanyCam (heavier and more expensive) and generic timestamp camera apps (lighter, no team features)."},{q:"Is Timestamp It cheaper than Timemark?",a:"Plus is cheaper per month at $5/user, but its published Teamspace limit is 100 photos and 3 projects â identical to Timemark's free plan. Lifting the photo cap means Business at $7/user/month. Timestamp It does not cap photos or projects on any plan, including the free one, so the honest comparison depends on how much you shoot rather than on the sticker price."},{q:"Does Timestamp It cap the number of photos I can stamp?",a:"No. The Free plan has no hard photo cap, and the $8.99/month Pro plan is unlimited stamping with full cloud sync across your devices."},{q:"Can I export to OneDrive or Google Drive?",a:"Auto-backup to OneDrive and Google Drive is on the roadmap. Today you can export PDFs and ZIPs and forward them anywhere â and the cloud sync inside Timestamp It already keeps everything backed up across your devices."},{q:"Does Timestamp It work on iPhone, Android, and the web like Timemark?",a:"Yes â Timestamp It and Timemark both ship iPhone, Android, and a web dashboard."},{q:"Will my Timemark photos transfer over?",a:"Yes. Re-import them from your camera roll or cloud backup; their original EXIF (capture time, GPS) is preserved, so the stamp lines up with reality."}],closingCta:{title:"Try Timestamp It â free",body:"Same auto-stamped photos, project-based organization, and a polished PDF report. One flat Pro plan with unlimited stamping and unlimited cloud sync."}},EM={slug:"best-google-drive-alternative",competitorName:"Google Drive",competitorContextLine:"Google Drive is a general-purpose cloud storage service. Workspace Bu
502siness Starter is $7/user/month for 30 GB; the personal tier is 15 GB free.",hero:{eyebrow:"Stop using Drive for jobsite photos",h1:"The best Google Drive alternative for jobsite photos",intro:"Google Drive is great for spreadsheets. It's a chore for stamped jobsite photos. Timestamp It auto-stamps date, time, and GPS, files them by project, and exports a PDF report your client can keep â without uploading, renaming, and foldering by hand."},whyBlocks:[{title:"Stamps happen at capture, not after",body:"Drive stores files. It doesn't add date, time, or GPS to your photos. Timestamp It stamps every photo as you take it, so the proof is on the image, not just in the EXIF."},{title:"Projects, not folder trees",body:"Stop dragging photos into nested Drive folders named '2026/Jobs/Smith/Day 3'. Tag the project once on your phone and every photo lands there."},{title:"Client-ready PDF reports",body:"Drive has a 'share link' button. Timestamp It has a PDF report with stamps, project address, and a cover page â the deliverable a homeowner or adjuster actually wants."},{title:"Built for crews, not just files",body:"Real-time team sync, public share links for clients without a Google account, and a web dashboard for the office. None of that comes out of the box with Drive."}],steps:fi,pricingHeadline:"Timestamp It vs Google Drive (for jobsite photos)",pricingSubheadline:"Drive bills as cloud storage; Timestamp It bills as field-photo software. Compared side by side for the job they're being asked to do.",pricingRows:[{label:"Free tier",us:"Free Timestamp It plan",them:"15 GB on personal Google account"},{label:"Solo paid plan",us:"$8.99 / month (Pro)",them:"$7 / user / month (Workspace Bu
502siness Starter â 30 GB)"},{label:"Photo cap",us:"Unlimited on every plan",them:"Capped by your storage tier (30 GB on Starter)"},{label:"Auto timestamp on photos",us:"Yes â burned into the image",them:"No â Drive only stores the file"},{label:"Organize photos by project",us:"Yes â automatic on capture",them:"Manual folder upload and rename"},{label:"Client-ready PDF report",us:"Built in",them:"Build it yourself in Docs / Sheets"}],deepDive:[{title:"Photos stamped at capture, not edited later",body:"Drive holds whatever you upload. If a photo's missing its capture date or GPS, Drive can't add it back. Timestamp It stamps the image at the moment of capture so the proof travels with the file forever.",bullets:["Date, time, and GPS burned into the image","Original EXIF preserved underneath the stamp","Customizable stamp font, color, and accuracy units","Optional logo and project notes on every photo"]},{title:"Project organization without the folder dance",body:"Drive's job is files in folders. A jobsite is 40 photos that belong to one project. Timestamp It tags the project once and routes everything there automatically â no upload, no rename, no folder tree.",bullets:["Tag a project at the start of the day, capture all session","Cover photos, project addresses, and notes built in","Cloud sync across iPhone, Android, and web","Search by project, date range, or location"]},{title:"PDF reports your client will actually keep",body:"Sending a Drive folder link is a poor deliverable. Sending a stamped PDF report with a cover page, project address, and a tidy photo grid is what closes the job out.",bullets:["One-tap PDF report from any project","Cover page with project name and date range","Photos in stamped grid layout, full resolution","ZIP export option with originals plus stamped copies"]}],useCases:[{title:"Crews still emailing Drive folder links",body:"Replace the 'here's a folder' workflow with a stamped PDF report your client can save, print, or forward to insurance."},{title:"Back-office staff drowning in uploads",body:"If your day involves dragging phone photos into Drive folders, Timestamp It's auto-routing makes that step disappear."},{title:"Insurance, inspections, and disputes",body:"When proof of when and where matters, Drive's storage doesn't help. The stamp on a Timestamp It photo does."}],matrix:{headline:"How Timestamp It compares to Google Drive",sections:[{heading:"Photo capture",rows:[{label:"Auto date & time stamp",us:!0,them:!1},{label:"Auto GPS stamp",us:!0,them:!1},{label:"Stamp burned into the image",us:!0,them:!1},{label:"Original EXIF preserved",us:!0,them:!0},{label:"Custom stamp template",us:!0,them:!1}]},{heading:"Organization",rows:[{label:"Project-based organization",us:!0,them:"Manual folders"},{label:"Cover photos, addresses, notes",us:!0,them:!1},{label:"Auto-route photos by project",us:!0,them:!1},{label:"Search by location",us:!0,them:!1}]},{heading:"Reports & sharing",rows:[{label:"PDF photo report",us:!0,them:"Build manually in Docs"},{label:"ZIP export of originals",us:!0,them:!0},{label:"Public share link (no account needed)",us:!0,them:!0},{label:"Stamped photo grid layout",us:!0,them:!1}]},{heading:"Sync & platforms",rows:[{label:"iPhone capture app",us:!0,them:"Drive app stores files"},{label:"Android capture app",us:!0,them:"Drive app stores files"},{label:"Web dashboard",us:!0,them:!0},{label:"Real-time team sync",us:!0,them:!0}]}]},testimonials:[{headline:"Stopped uploading 80 photos a day",quote:"Drive made me drag photos into a folder every night. Timestamp It tags them on capture and they show up in the right project automatically.",author:"Hector M.",role:"Foreman, residential framing"},{headline:"Insurance accepted the PDF, not the Drive link",quote:"I'd been sending a Drive folder for years. The adjuster always asked for 'something that shows when these were taken.' The stamped PDF was the answer.",author:"Lena K.",role:"Restoration estimator"},{headline:"Office finally has the photos when they need them",quote:"Used to be 'check the shared Drive.' Now it's a project link they can open in any browser, with the photos already stamped and laid out.",author:"Will T.",role:"Operations, plumbing & HVAC"}],faqs:[{q:"Is Timestamp It a Google Drive alternative?",a:"For jobsite photos, yes. Drive is general-purpose cloud storage; Timestamp It is field-photo software. Most field crews end up using Drive because they didn't have a better option for stamped photos and project organization."},{q:"Will Timestamp It replace my whole Drive?",a:"No â keep Drive for documents and spreadsheets. Replace it specifically for the jobsite-photo workflow: capture, stamp, organize by project, export a PDF."},{q:"Can I export Timestamp It photos to Google Drive?",a:"Yes. ZIP exports of any project work with Drive uploads, and auto-backup to Drive is on the roadmap. You're not locked in."},{q:"Why won't Drive add timestamps to my photos?",a:"Drive is storage â it shows the file's existing EXIF. If your camera didn't write a clear capture time and GPS, or if a photo was edited or screenshot, Drive can't recover that. Timestamp It stamps the image at capture so proof is on the pixel."},{q:"Does Timestamp It have a free plan?",a:"Yes â stamp unlimited photos for free, three at a time. Upgrade to Pro at $8.99/month for unlimited batch stamping, custom fonts, and PDF reports."},{q:"Can my crew share photos in real time like a shared Drive folder?",a:"Yes. Team projects sync new photos in real time across every member's devices and the web dashboard."}],closingCta:{title:"Stop using Drive for jobsite photos",body:"Capture, stamp, organize by project, export a PDF. Free to try, $8.99/month for Pro, custom for teams."}},SM={slug:"best-timestamp-camera-alternative",competitorName:"Timestamp Camera",competitorContextLine:"Timestamp Camera is a well-regarded stamping app on iPhone and Android, rated 4.8/5 across 33K ratings, with a one-time Pro unlock. It stamps the moment of capture and leaves the photo in your camera roll.",hero:{eyebrow:"Timestamp Camera alternative",h1:"The best Timestamp Camera alternative",intro:"Timestamp Camera stamps the date, time, and GPS onto a photo and hands it back to your camera roll. Timestamp It does that too, then files it under the job, syncs it to your crew, and turns the set into a PDF your client can keep."},whyBlocks:[{title:"The stamp is the easy part",body:"Burning date, time, and GPS into a photo is table stakes, and Timestamp Camera does it well. The work that actually eats your evening is everything after: sorting, naming, finding, and sending."},{title:"Photos land in a project, not a camera roll",body:"Tag the job once and every photo from that session files itself. Two months later you search by project, date range, or location instead of scrolling a year of thumbnails."},{title:"Your crew's photos arrive in the same place",body:"Send an invite link and everyone's captures sync into one shared project in real time. No end-of-day group chat, no one forwarding forty images."},{title:"A deliverable, not a folder",body:"Export a stamped PDF report or a ZIP of the originals, or send a share link that opens in any browser. The person receiving it needs no app and no account."}],steps:fi,deepDive:[{title:"Same proof on the pixel, plus a record behind it",body:"Both apps burn the capture time and coordinates into the image at the moment of capture. What Timestamp It adds is a record behind the picture: the original EXIF is kept intact underneath the stamp, and a SHA-256 fingerprint of the file is recorded, so a specific image can be checked later rather than merely asserted.",bullets:["Date, time, and GPS burned into the pixels at capture","Original EXIF preserved underneath the stamp","SHA-256 fingerprint recorded, verifiable by anyone at /verify"]},{title:"Everything after the shutter",body:"This is the whole difference. A stamping app finishes when the photo is saved; a documentation app is just getting started. Projects, sync, and export are what turn a pile of stamped images into something you can hand to a general contractor, an adjuster, or a homeowner.",bullets:["Unlimited projects with address, cover photo, and notes","Search by project, date range, or location","Cloud sync across iPhone, Android, and the web dashboard","Offline capture that syncs the moment signal returns"]},{title:"Built for a crew, not just a phone",body:"Invite teammates with a link and their photos flow into the same shared project as they shoot. Office staff review and export from the web dashboard without installing anything, and clients open a share link in a browser.",bullets:["One-click invite links for crew members","Real-time sync of new photos across every device","Web dashboard for office staff who never capture in the field","Public share links that need no account to open"]}],useCases:[{title:"Contractors closing out a job",body:"Daily progress under one project, then a stamped PDF for the GC or homeowner the day you finish, instead of an evening spent assembling one."},{title:"Insurance and restoration",body:"Damage captured with verified time and GPS, exported as a report an adjuster will accept without asking when the photos were taken."},{title:"Property and field teams",body:"Several people documenting several sites, with everything landing in the right project automatically and visible from the office the same day."}],matrix:{headline:"How Timestamp It compares to Timestamp Camera",sections:[{heading:"Stamping the photo",rows:[{label:"Date, time, and GPS stamped at capture",us:!0,them:!0},{label:"Customize stamp font, color, and position",us:!0,them:!0},{label:"Company logo on the stamp",us:!0,them:!0},{label:"Available on iPhone and Android",us:!0,them:!0},{label:"Stamps video as well as photos",us:!0,them:!0},{label:"Original EXIF preserved underneath the stamp",us:!0,them:"Not stated"}]},{heading:"After the shutter",rows:[{label:"Photos auto-filed into a project",us:!0,them:"Camera roll"},{label:"Search by project, date range, or location",us:!0,them:!1},{label:"Cloud sync across devices",us:!0,them:!1},{label:"Web dashboard for the office",us:!0,them:!1}]},{heading:"Handing work over",rows:[{label:"Client-ready PDF photo report",us:!0,them:!1},{label:"ZIP export of originals",us:!0,them:!1},{label:"Public share link, no account needed",us:!0,them:!1},{label:"Team invite links and shared projects",us:!0,them:!1}]},{heading:"Proving a file later",rows:[{label:"SHA-256 fingerprint recorded at capture",us:!0,them:!1},{label:"Public verification page for any file",us:!0,them:!1}]}]},faqs:[{q:"What is the best Timestamp Camera alternative?",a:"It depends what you need after the photo is taken. If you only want the stamp, Timestamp Camera is good at it and inexpensive. If the photos have to be organized by job, shared with a crew, and handed to a client as a report, Timestamp It covers that whole workflow and has a free plan to try it on."},{q:"Does Timestamp It stamp photos the same way Timestamp Camera does?",a:"Yes. Date, time, and GPS co
502ordinates are burned into the pixels at capture, and you can customize the font, color, position, and add a company logo. Timestamp It also keeps the original EXIF metadata intact in the file and records a SHA-256 fingerprint, so the exact file can be verified later."},{q:"Can Timestamp Camera organize photos into projects?",a:"Its published description covers stamping, GPS and address insertion, custom formats, and camera controls â photos are saved to your camera roll. Timestamp It files each session into the project you tagged, which is the main practical difference between the two."},{q:"Can I share photos with a client who doesn't have the app?",a:"Yes. Send a project share link that opens in any browser, or export a stamped PDF report or a ZIP of the originals. The person receiving it needs no account and no install."},{q:"Does it work offline?",a:"Yes. Capture and stamping happen entirely on the device, so basements, new builds, and rural sites work normally. Everything syncs to the cloud and to your team as soon as you're back on data."},{q:"Can my whole crew contribute to the same set of photos?",a:"Yes. Invite them with a link and their photos sync into the same shared project in real time. Office staff can review and export everything from the web dashboard without installing the mobile app."}],closingCta:{title:"Keep the stamp. Lose the camera roll.",body:"Same date, time, and GPS burned into every photo â then organized by job, synced to your crew, and exported as a report your client will keep. Free to start, no credit card."}},IM={slug:"best-marki-alternative",competitorName:"Marki",competitorContextLine:"Marki is a free, ad-supported timestamp camera with over a million Google Play installs and a 3.6/5 rating there. Its team features are built around attendance: clock-in photos, worked-hour totals, and GPS routes of where staff took pictures.",hero:{eyebrow:"Marki alternative",h1:"The best Marki alternative",intro:"Marki and Timestamp It both stamp time and GPS onto every photo. Marki is built to track attendance â clock-ins, hours, and staff routes. Timestamp It is built to document the job: every photo filed under a project and handed to your client as a stamped PDF report."},whyBlocks:[{title:"Proof of the work, not a time clock",body:"Marki's reports are about the employee: when they clocked in, how long they worked, where they went. Timestamp It's reports are about the job: what the site looked like, when, and where, laid out for the person paying for it."},{title:"Photos land in a project, not a team feed",body:"Tag the job once and every photo from that session files itself under it, with the address, notes, and a cover photo. Months later you find it by project, date range, or location."},{title:"A deliverable your client keeps",body:"Export a stamped PDF report or a ZIP of the originals, or send a share link that opens in any browser. The person receiving it needs no app and no account."},{title:"Trusted since 2009",body:"Timestamp It was one of the first photo timestamp apps on the App Store and has been refined for over 15 years by field crews. 4.7/5 stars and 700K+ users."}],steps:fi,deepDive:[{title:"Stamped at capture, verifiable later",body:"Date, time, and GPS are burned into the pixels the moment you take the photo. Underneath, the original EXIF stays intact and a SHA-256 fingerprint of the file is recorded, so a specific image can be checked later rather than merely asserted.",bullets:["Date, time, and GPS burned into the pixels at capture","Original EXIF preserved underneath the stamp","SHA-256 fingerprint recorded, verifiable by anyone at /verify","Optional weather conditions captured at the moment of the shot"]},{title:"Organized by job, not by employee",body:"A jobsite is forty photos that belong to one project, whoever took them. Timestamp It routes each photo into the project you tagged, so the record of a job is complete in one place instead of spread across a crew's feed.",bullets:["Unlimited projects with address, cover photo, and notes","Search by project, date range, or location","Cloud sync across iPhone, Android, and the web dashboard","Offline capture that syncs the moment signal returns"]},{title:"A close-out, not an export",body:"Handing a client a folder of watermarked images is not a deliverable. A stamped PDF with a cover page, the project address, and a tidy photo grid is what closes the job out.",bullets:["PDF report with cover page, photo grid, and stamps preserved","ZIP export with originals plus a stamped copy of each","Public share links that need no account to open","Web dashboard for office review and download"]}],useCases:[{title:"Contractors closing out a job",body:"Daily progress under one project, then a stamped PDF for the GC or homeowner the day you finish, instead of an evening spent assembling one."},{title:"Insurance and restoration",body:"Damage captured with verified time and GPS, exported as a report an adjuster will accept without asking when the photos were taken."},{title:"Owner-operators who don't need a time clock",body:"If you run the crew yourself, clock-ins and route tracking are overhead. Timestamp It skips straight to documenting the work and sending it to the client."}],matrix:{headline:"How Timestamp It compares to Marki",sections:[{heading:"Using the app",rows:[{label:"No ads in the app",us:!0,them:"Contains ads"}]},{heading:"Stamping the photo",rows:[{label:"Date, time, and GPS stamped at capture",us:!0,them:!0},{label:"Custom stamp templates",us:!0,them:!0},{label:"Available on iPhone and Android",us:!0,them:!0},{label:"Original EXIF preserved underneath the stamp",us:!0,them:"Not stated"}]},{heading:"Organizing the job",rows:[{label:"Photos auto-filed into a project",us:!0,them:"Team album"},{label:"Search by project, date range, or location",us:!0,them:"Search by stamp keyword"},{label:"Cloud sync across devices",us:!0,them:!0},{label:"Web dashboard for the office",us:!0,them:!0}]},{heading:"Handing work over",rows:[{label:"Client-ready PDF photo report",us:!0,them:"Attendance reports"},{label:"Public share link, no account needed",us:!0,them:"Not stated"}]},{heading:"Proving a file later",rows:[{label:"SHA-256 fingerprint recorded at capture",us:!0,them:"Not stated"},{label:"Public verification page for any file",us:!0,them:"Not stated"}]},{heading:"Track record",rows:[{label:"On the App Store since 2009",us:!0,them:"Since 2020"},{label:"Google Play rating",us:"4.6 / 5",them:"3.6 / 5"}]}]},faqs:[{q:"What is the best Marki alternative?",a:"It depends on what the photos are for. If you need them to clock staff in and out, Marki is built around that. If they have to document a job â organized by project and handed to a client, adjuster, or GC as a report â Timestamp It covers that whole workflow and has a free plan to try it on."},{q:"Does Timestamp It have a free plan?",a:"Yes. The free plan stamps unlimited photos, three at a time, with unlimited projects and cloud sync across your devices. Pro is $8.99/month or $69.00/year and adds unlimited batch stamping, custom fonts, and PDF reports."},{q:"Can I share photos with a client who doesn't have the app?",a:"Yes. Send a project share link that opens in any browser, or export a stamped PDF report or a ZIP of the originals. The person receiving it needs no account and no install."},{q:"Can I prove a photo hasn't been edited?",a:"Yes. Timestamp It records a SHA-256 fingerprint of each photo at capture and keeps the original EXIF intact. Anyone can check a file against that record on the public verification page, with no account."},{q:"Does it work offline?",a:"Yes. Capture and stamping happen entirely on the device, so basements, new builds, and rural sites work normally. Everything syncs to the cloud and to your team as soon as you're back on data."}
502,{q:"Can my whole crew contribute to the same set of photos?",a:"Yes. Invite them with a link and their photos sync into the same shared project in real time. Office staff can review and export everything from the web dashboard without installing the mobile app."}],closingCta:{title:"Document the job, not the time sheet",body:"Same time and GPS burned into every photo â then filed by project, synced to your crew, and exported as a report your client will keep. Free to start, no credit card."}},Lp=[NM,AM,EM,SM,IM],kM=Lp.reduce((e,t)=>(e[t.slug]=t,e),{}),CM={slug:"construction",industryName:"construction",seo:{title:"Construction Photo Documentation App | Timestamp It",description:"Document jobsite progress with date, time, and GPS stamped on every photo. Organize by project, work offline, and hand clients a PDF report. Free to start."},hero:{eyebrow:"For construction & contractors",h1:"Construction photo documentation that holds up",intro:"Stamp the date, time, and GPS coordinates onto every jobsite photo the moment you take it. Organize by project, capture with no signal, and send the GC or homeowner a stamped PDF report when the job wraps."},painPoints:[{title:"Change orders turn into arguments",body:"Six weeks later, nobody agrees on what the site looked like before you started. A stamped progress photo with GPS ends the conversation in one screenshot instead of a week of emails."},{title:"Photos scatter across five group chats",body:"Crew photos live in texts, WhatsApp threads, and three different camera rolls. Tag the project once and every photo from that session lands in the same place, synced to the office."},{title:"Basements and new builds have no signal",body:"Capture and stamping happen on-device, so a dead zone doesn't stop the job. Photos sync to your team the moment you're back on data."},{title:"Handoff packets take a whole evening",body:"Export a stamped PDF report or a ZIP of the originals straight from the project. No assembling a deck in the truck at 8pm."}],steps:[{label:"/01",title:"Tag the job once",body:"Pick the project when you get to site. Every photo you take that session lands there automatically â no sorting later, no dragging between albums."},{label:"/02",title:"Shoot your progress",body:"Date, time, and GPS are burned into the pixels as you capture. Add a note or a punchlist caption directly on the image while you're still standing in front of the work."},{label:"/03",title:"Send the packet",body:"Export a PDF report for the GC, a ZIP of originals for the insurer, or drop a share link in the client thread. They don't need the app or an account to open it."}],deepDive:[{title:"Proof that survives a screenshot",body:"The date, time, and GPS co
502ordinates are burned into the visible pixels at capture time, and the original EXIF metadata is preserved in the file. That matters because most messaging and social apps strip EXIF â a photo that only carries its date in metadata loses it the first time someone forwards it.",bullets:["Time, date, and GPS stamped onto the image at capture","Original EXIF preserved so chain of custody stays provable","Customize stamp position, font, color, and accuracy units","Markup to call out a defect directly on the photo","Optional weather conditions captured at the moment of the shot","SHA-256 fingerprint recorded so a file can be verified later at /verify"]},{title:"Daily progress logs without the paperwork",body:"Each project holds its own address, cover photo, and description, and photos are searchable by date range or location. Pulling the week of October 14th on the Riverside job takes about four seconds.",bullets:["Unlimited projects on every plan","Search by project, date range, or location","Cloud sync across iPhone, Android, and the web dashboard","Offline capture that syncs automatically when signal returns"]},{title:"The office sees the site without driving to it",body:"Send crew members an invite link and their photos sync into the same shared project in real time. Office staff review everything from the web dashboard â no mobile app install, no per-seat block pricing.",bullets:["One-click invite links for crew members","Real-time sync of new photos across every device","Web dashboard for PMs and office staff","Per-active-user team pricing â talk to us for a quote"]}],checklist:{headline:"What to photograph on every job",intro:"A documentation habit is worth more than any single photo. This is the sequence most contractors settle into after their first dispute.",groups:[{heading:"Before you start",items:["Wide shot of each elevation and the approach to the property","Existing damage â cracks, stains, prior repairs, landscaping","Utility locations, meter readings, and shutoff positions","Staging and access areas as you found them"]},{heading:"During the work",items:["Daily wide shot from the same position for a clean progress sequence","Anything that will be covered before it gets covered â rough-in, framing, waterproofing","Deliveries, material counts, and equipment on site","Conditions that cause delays â weather, blocked access, missing selections â with the weather stamped onto the photo rather than recalled later"]},{heading:"At closeout",items:["Completed work from the same angles as your before shots","Punchlist items photographed as resolved","Site restored â cleanup, landscaping, protection removed","Final walkthrough with the client, exported as a stamped PDF"]}]},testimonials:[{headline:"Insurance adjuster accepted the PDF on the first try",quote:"I sent the stamped PDF report straight from the app and the claim went through. The GPS on every photo is what sealed it.",author:"Priya R.",role:"Restoration project manager"},{headline:"Office finally has everything in one place",quote:"Photos used to be in five different group chats. Now the office pulls them up by project on the web dashboard. Same day we adopted it, no training needed.",author:"Daniel K.",role:"Operations lead, HVAC"}],faqs:[{q:"What is the best app for construction photo documentation?",a:"For crews that want automatic date, time, and GPS stamping, project organization, and client-ready PDF reports without a per-seat minimum, Timestamp It covers the core workflow and has a free plan. Larger contractors who need full project management alongside photos often look at CompanyCam, Raken, or Procore, which bundle scheduling, daily logs, and budgeting at a higher price point."},{q:"Do timestamped construction photos hold up in a dispute?",a:"They carry real weight, though no photo is automatically conclusive. What strengthens a photo is corroboration: the stamp burned into the pixels, the original EXIF preserved in the file, GPS coordinates matching the jobsite, and a consistent capture habit across the whole project rather than photos produced only after a dispute started. Timestamp It also records a SHA-256 fingerprint of the file, so you can later demonstrate a specific image hasn't been altered since capture."},{q:"Does it work without cell service on the jobsite?",a:"Yes. Photos capture and stamp entirely on the device, so basements, new builds, and rural sites work normally. Everything syncs to the cloud and to your team as soon as you're back on data."},{q:"Can I put my company logo on jobsite photos?",a:"Yes. Custom logo stamping is available on all plans, along with control over the stamp's position, font, color, and coordinate accuracy units."},{q:"How do I send photos to a general contractor or homeowner?",a:"Export a stamped PDF report, export a ZIP of the original files, or send a project share link. The person receiving it doesn't need the app or an account."},{q:"How much does it cost for a small crew?",a:"There's a free plan, and Pro is $8.99/month or $69.00/year for solo use. Team pricing is per active user rather than
502in fixed seat blocks â get in touch and we'll quote your crew size."}],relatedLinks:[{label:"Timestamp It vs CompanyCam",href:"/compare/best-companycam-alternative",blurb:"Side-by-side pricing and features against the best-known jobsite photo platform."},{label:"Before & after photo maker",href:"/before-after-photo",blurb:"Free browser tool that builds a labeled side-by-side from two stamped images."},{label:"Verify a photo",href:"/verify",blurb:"Check a file against the SHA-256 fingerprint recorded at capture."}],closingCta:{title:"Start documenting your jobs properly â free",body:"Date, time, and GPS on every photo. Organized by project. Exported as a PDF your client will actually keep. No seat minimums, no credit card to start."}},TM={slug:"real-estate",industryName:"real estate",seo:{title:"Real Estate Photo Documentation App | Timestamp It",description:"Timestamp listing photos, showings, and property conditions with date, time, and GPS. Organize by property and share a stamped report with clients. Free to start."},hero:{eyebrow:"For real estate agents",h1:"Photo documentation for real estate agents",intro:"Prove what a property looked like and when. Stamp date, time, and GPS onto condition photos, showing records, and listing shots, organized by address and ready to share with a client or broker in one link."},painPoints:[{title:`"It wasn't like that at the showing"`,body:"Condition disputes between showing and closing come down to whose photo is dated. A stamp burned into the image with the property's GPS settles it without a phone call."},{title:"Listing photos get questioned",body:"When a listing sits, buyers ask how current the photos are. A visible capture date answers that up front rather than becoming an awkward disclosure later."},{title:"Every property lives in the camera roll",body:"Twelve active listings means twelve tangled photo sets. Tag the address once and the session files itself, searchable later by property or date range."},{title:"Client updates take too long to assemble",body:"Export a stamped PDF for the seller or send a share link. No building a slide deck between showings."}],steps:[{label:"/01",title:"Create a project per property",body:"Each listing gets its own project with the address, a cover photo, and a description, so photos never end up filed under the wrong house."},{label:"/02",title:"Shoot condition and showings",body:`Date, time, and GPS stamp onto each photo automatically. Add a note on the image â "water stain, primary bath ceiling" â while you're standing there.`},{label:"/03",title:"Share with sellers and brokers",body:"Send a PDF report or a link. Sellers see documented activity, brokers get a clean record, and neither needs to install anything."}],deepDive:[{title:"Condition records that survive a forward",body:"The capture date and GPS are burned into the visible pixels, not just written to metadata. This matters more in real estate than most fields, because condition photos get forwarded through email, texted to a spouse, and pasted into PDFs â every one of which typically strips EXIF and takes the date with it.",bullets:["Date, time, and GPS visible on the image itself","Original EXIF preserved in the stored file","Notes and captions written onto the photo at capture","SHA-256 fingerprint recorded so the file can be verified later"]},{title:"One project per address",body:"Photos organize by property automatically once you tag the session. Search by address, date range, or location when a question comes up on a deal that closed two months ago.",bullets:["Unlimited properties on every plan","Project address, cover photo, and description fields","Search by project, date range, or location","Cloud sync across iPhone, Android, and the web dashboard"]},{title:"Clean handoffs to sellers and brokerages",body:"Every project exports as a stamped PDF report or a ZIP of the original files, and share links open in any browser. Team members can be invited into shared projects for co-listings and brokerage-wide records.",bullets:["Stamped PDF reports and ZIP exports on Pro","Public share links that need no account to open","Invite links for c
502o-listing agents and assistants","Web dashboard for brokerage staff"]}],checklist:{headline:"What to photograph on every listing",intro:"Condition disputes almost always trace back to a gap in the record. This is the coverage that closes those gaps.",groups:[{heading:"At listing intake",items:["Every room, wide, from the doorway","Existing damage: stains, cracks, worn flooring, appliance condition","Roof, gutters, foundation, and grading from outside","Meter readings, water heater, HVAC unit, and their serial plates"]},{heading:"Around showings and open houses",items:["Property state before the first visitor arrives","Property state after the last one leaves","Any damage or change a visitor reports, photographed same day","Staging and furniture placement if the seller expects it restored"]},{heading:"Before closing",items:["Final walkthrough condition against your intake photos","Repairs completed under the inspection agreement","Items the contract says convey, still on site","Keys, remotes, and manuals handed over"]}]},testimonials:[{headline:"Exactly what my real estate business needed",quote:"I rarely buy apps but I use this all the time with my real estate business. Does exactly what I need and nothing more. Super simple!",author:"App Store review",role:"Real estate agent"}],faqs:[{q:"Why timestamp real estate photos?",a:"Two reasons. Condition disputes between listing, showing, and closing hinge on being able to prove what the property looked like on a specific date. And buyers increasingly question how current listing photos are on a property that's been on the market a while â a visible capture date answers that up front."},{q:"Do timestamped photos help with property condition disputes?",a:"They help substantially, though a photo is evidence rather than proof on its own. What makes a condition photo persuasive is that the date and GPS are burned into the image, the original EXIF is intact, and the photos were taken as a routine habit at intake and walkthrough rather than assembled after a dispute began."},{q:"Can I organize photos by property address?",a:"Yes. Each property is its own project with an address, cover photo, and description. Photos taken during a tagged session file themselves there, and you can search later by project, date range, or location."},{q:"Can I share photos with a seller who doesn't have the app?",a:"Yes. Send a project share link or export a stamped PDF report. The person receiving it needs no account and no app install."},{q:"Will the timestamp appear on my MLS listing photos?",a:"Only if you want it to. The stamp is applied to photos you capture through the app for documentation purposes â most agents keep stamped photos as their internal condition record and use unstamped professional photography for the MLS listing itself."},{q:"Does it work on iPhone and Android?",a:"Yes, plus a web dashboard for reviewing and exporting from a desktop."}],relatedLinks:[{label:"Photo metadata viewer",href:"/photo-metadata-tool",blurb:"Free tool to inspect the EXIF date, GPS, and camera on any photo."},{label:"Before & after photo maker",href:"/before-after-photo",blurb:"Build a labeled side-by-side for renovation and staging records."},{label:"For property managers",href:"/for/property-management",blurb:"Move-in and move-out inspection documentation for rentals."}],closingCta:{title:"Document every property properly â free",body:"Stamped condition photos, organized by address, shareable in one link. Start free, no credit card."}},PM={slug:"property-management",industryName:"property management",seo:{title:"Move-In Move-Out Inspection App | Property Management Photos",description:"Document unit condition with date, time, and GPS stamped on every photo. Move-in and move-out inspections, maintenance records, and tenant reports in one PDF."},hero:{eyebrow:"For property managers",h1:"Move-in and move-out inspection documentation",intro:"Photograph unit condition with the date, time, and GPS burned into every image. Keep move-in and move-out sets side by side, document maintenance as it happens, and produce a stamped PDF when a deposit is disputed."},painPoints:[{title:"Deposit disputes come down to dated photos",body:"A tenant says the carpet stain was there when they moved in. Without a dated move-in photo, you're arguing from memory â and in most jurisdictions the burden of proving damage sits with the landlord."},{title:"Move-in and move-out sets never line up",body:"Two sets of photos taken a year apart, from different angles, in different apps. Keeping both in one project makes the comparison obvious instead of forensic."},{title:"Maintenance history disappears between vendors",body:"Photograph the issue when the ticket opens and the fix when it closes, filed under the unit. Next year's question about that same leak answers itself."},{title:"Turnover documentation eats the whole day",body:"Export a stamped PDF per unit instead of assembling one manually. Send it to the owner, the tenant, or the deposit-dispute file."}],steps:[{label:"/01",title:"One project per unit",body:"Each unit gets its own project with the address and a cover photo, so move-in, maintenance, and move-out photos accumulate in one place across tenancies."},{label:"/02",title:"Walk and shoot",body:'Date, time, and GPS stamp automatically. Add a note on the image â "scuff, bedroom 2 baseboard, north wall" â so the photo explains itself a year later.'},{label:"/03",title:"Export the record",body:"Produce a stamped PDF for the tenant at move-in, the owner at turnover, or the file when a deposit is contested. No account needed to open it."}],deepDive:[{title:"A condition record with a date you can defend",body:"The capture date, time, and GPS are burned into the pixels and the original EXIF is preserved in the stored file. Because most email clients and messaging apps strip EXIF, a metadata-only date usually vanishes the first time a photo is forwarded to a tenant or an owner â a visible stamp does not.",bullets:["Date, time, and GPS visible on the image itself","Original EXIF preserved for chain of custody","Per-photo notes identifying room, wall, and defect","Markup to circle the damage rather than describe where it is","SHA-256 fingerprint recorded so a file can be verified at /verify"]},{title:"Move-in and move-out in the same project",body:'Both inspection sets live under the same unit, searchable by date range. Pulling "everything from the March 2025 move-in" next to "everything from the February 2026 move-out" is a filter, not an archaeology project.',bullets:["Unlimited units on every plan","Search by project, date range, or location","Cloud sync across iPhone, Android, and the web dashboard","Offline capture for basements, vacant units, and dead zones"]},{title:"Techs in the field, managers in the office",body:"Invite maintenance techs with a link and their photos sync into the same unit project in real time. Office staff review and export from the web dashboard without installing the mobile app.",bullets:["One-click invite links for maintenance staff","Real-time sync across every device on the account","Web dashboard for property managers and owners","Per-active-user team pricing â talk to us for a quote"]}],checklist:{headline:"Move-in and move-out inspection checklist",intro:"Shoot the same list in the same order at both ends of a tenancy. The comparison does the work for you, and gaps are what deposit disputes exploit.",groups:[{heading:"Every room",items:["Wide shot from the doorway, then each wall corner to corner","Floor covering â stains, burns, tears, pet damage, wear patterns","Walls and ceiling â holes, scuffs, paint condition, water marks","Windows, blinds, screens, and locks in working position","Light fixtures, switches, outlets, and smoke detectors"]},{heading:"Kitchen and bathrooms",items:["Every appliance, inside and out, with serial plates","Under-sink cabinets and plumbing connections for existing leaks","Countertops, backsplash, and cabinet faces","Grout, caulk, tub, and toilet condition","Water pressure and drainage, photographed running"]},{heading:"Systems and exterior",items:["HVAC unit, filter condition, and thermostat reading","Water heater and its serial plate","All meter readings on the day of handover","Balcony, patio, garage, storage, and assigned parking","Keys, fobs, remotes, and mailbox key photographed at handover"]}]},faqs:[{q:"What's the best app for move-in and move-out inspections?",a:"For managers whose core need is dated, defensible photo evidence of unit condition, Timestamp It covers move-in and move-out sets, maintenance history, and PDF export from a free starting plan. Purpose-built inspection platforms like zInspector or Happy Inspector add structured form templates and scoring workflows, which is worth the higher price if your process is form-driven rather than photo-driven."},{q:"Do timestamped photos help in a security deposit dispute?",a:"Considerably. In most jurisdictions the landlord carries the burden of showing that damage is beyond normal wear and tear and that it occurred during the tenancy â which is exactly a before-and-after question. Dated move-in photos with GPS matching the unit, taken as routine practice rather than after the dispute, are the strongest ordinary evidence for that. Local law varies on notice periods and itemization requirements, so check your state or country's rules on what the deposit statement must include."},{q:"Can maintenance techs add photos to the same unit record?",a:"Yes. Invite them with a link and their photos sync into the shared unit project in real time. The office sees them on the web dashboard without anyone forwarding anything."},{q:"Can I give the tenant a copy at move-in?",a:"Yes, and it's good practice â export the stamped PDF and send it when they take possession. Documenting condition jointly at the start is what prevents the argument at the end."},{q:"Does it work in vacant units with no Wi-Fi?",a:"Yes. Capture and stamping happen on the device. Photos sync as soon as you're back on data."},{q:"How long should I keep inspection photos?",a:"Keep them at least through the deposit-return window and any applicable statute of limitations for property claims in your jurisdiction â often several years. Projects sync to the cloud and stay available on the Pro plan, so you're not depending on a phone that gets replaced."}],relatedLinks:[{label:"Before & after photo maker",href:"/before-after-photo",blurb:"Build a labeled move-in vs move-out side-by-side from two photos."},{label:"Pricing and team plans",href:"/pricing",blurb:"Shared unit projects, invite links, and cross-device sync for your staff."},{label:"For real estate agents",href:"/for/real-estate",blurb:"Listing condition records and showing documentation."}],closingCta:{title:"Make every unit defensible â free to start",body:"Stamped move-in and move-out sets, maintenance history, and a PDF you can hand to a tenant or an owner. No credit card to begin."}},RM={slug:"private-investigation",industryName:"private investigation",seo:{title:"Time-Stamped Photo Evidence App for Investigators | Timestamp It",description:"Capture surveillance photos with date, time, and GPS burned in and EXIF preserved. SHA-256 verification, case-based organization, and PDF report export."},hero:{eyebrow:"For private investigators",h1:"Time-stamped photo evidence for investigators",intro:"Capture with the date, time, and GPS co
502ordinates burned into the image and the original EXIF preserved. Every file gets a SHA-256 fingerprint you can verify later, so a challenge to authenticity has an answer."},painPoints:[{title:"Authenticity gets challenged, not the content",body:"Opposing counsel rarely argues about what's in the frame. They argue the file could have been altered or the date is unreliable. A recorded hash and preserved EXIF turn that into a checkable question."},{title:"Metadata dies in transit",body:"Email a surveillance photo to a client and the EXIF date is usually gone on arrival. A stamp burned into the pixels rides along through every forward, screenshot, and PDF."},{title:"Case files sprawl across devices",body:"Tag the case once and the session files itself, searchable by date range and location, synced to your office machine."},{title:"Report assembly is billable time you can't bill",body:"Export a stamped PDF of the case's photo record instead of laying one out by hand."}],steps:[{label:"/01",title:"Open a case project",body:"Each matter is its own project with a description and a cover photo. Sessions tagged to that case land there, keeping unrelated work separated."},{label:"/02",title:"Capture in the field",body:"Date, time, and GPS stamp onto the image as you shoot, and the original EXIF stays intact in the file. Add a contemporaneous note directly on the photo."},{label:"/03",title:"Produce the record",body:"Export a stamped PDF or a ZIP of the originals for the client or counsel, with the file fingerprints available for verification."}],deepDive:[{title:"Verification anyone can run",body:`Timestamp It records a SHA-256 fingerprint for each capture. Anyone can drop the file into the verification page and check whether it still matches what was recorded â the file is hashed in the browser and never uploaded. That gives you a concrete answer to "how do we know this wasn't edited" rather than an assertion.`,bullets:["SHA-256 fingerprint recorded at capture","Public verification at /verify â hashing happens locally, no upload","Original EXIF preserved alongside the burned-in stamp","Per-record verification links you can hand to counsel"]},{title:"Contemporaneous notes on the image",body:"Add a caption at capture time and it's written onto the photo, not stored in a separate document that has to be reconciled later. When typing isn't practical â in a vehicle, or while the subject is still moving â record a voice memo against the photo instead. Your note, the timestamp, and the coordinates arrive as one artifact.",bullets:["Notes and case tags written onto the image at capture","Voice memos attached to a photo when writing is not practical","A map snapshot burned in alongside the coordinates","Customizable stamp position, font, color, and accuracy units","GPS coordinates with selectable accuracy display","Offline capture for surveillance in poor-signal locations"]},{title:"Case organization and handoff",body:"Photos are searchable by case, date range, or location, and each case exports as a stamped PDF report or a ZIP of original files for counsel's own review.",bullets:["Unlimited case projects on every plan","Search by project, date range, or location","Stamped PDF reports and ZIP exports of originals","Cloud sync across iPhone, Android, and the web dashboard"]}],checklist:{headline:"Building a defensible photo record",intro:"These are general documentation practices, not legal advice. Admissibility rules vary by jurisdiction and matter type â your client's counsel decides what's usable.",groups:[{heading:"At capture",items:["Establish location context with a wide shot before the detail shot","Capture continuously rather than selecting moments after the fact","Write your observation as a note on the image while you're there","Keep the device clock synced to network time, not set manually"]},{heading:"Chain of custody",items:["Preserve original files â export ZIPs of originals, not re-compressed copies","Record the file fingerprint at capture, before any copy is distributed","
502Log who received which export and when","Avoid editing originals; produce annotated copies as separate files"]},{heading:"For production",items:["Export the full sequence, not only the frames that help","Include the verification link so authenticity can be checked independently","Keep your capture practice consistent across every case","Confirm retention requirements with the instructing client or counsel"]}]},faqs:[{q:"Are time-stamped photos admissible as evidence?",a:"Admissibility depends on the jurisdiction, the type of proceeding, and how the photo is authenticated â a timestamp alone doesn't make an image admissible, and this isn't legal advice. What generally matters is whether the photo fairly and accurately depicts what it purports to show, and whether its authenticity can be supported. Burned-in date and GPS, preserved original EXIF, a recorded SHA-256 fingerprint, and a consistent capture practice all support that showing. Instructing counsel should confirm requirements for the specific matter."},{q:"How does the SHA-256 verification work?",a:"A cryptographic fingerprint of the file is recorded when the photo is captured. Later, anyone can open the verification page, select the file, and see whether its fingerprint still matches. The hashing runs in the browser â the file is never uploaded â so counsel or an opposing party can check it without sending you anything or trusting our servers with the image."},{q:"Can photo timestamps be faked?",a:"EXIF timestamps can be edited trivially with free tools, which is exactly why an EXIF date alone carries little weight. A visibly burned-in stamp is harder to alter convincingly but not impossible. The meaningful protection is the fingerprint: because it's recorded at capture and any modification to the file changes the hash, an altered copy fails verification."},{q:"Does it capture GPS coordinates?",a:"Yes, with the coordinates stamped onto the image and accuracy units you can configure. If Location Services is off or unavailable, the location line is omitted and the stamp shows date and time only."},{q:"Does it work with no signal during surveillance?",a:"Yes. Capture and stamping are entirely on-device. Photos sync once you're back on data."},{q:"Can I keep separate cases from mixing?",a:"Yes. Each matter is its own project, and photos taken in a tagged session file there automatically. Search by project, date range, or location."}],relatedLinks:[{label:"Verify a photo",href:"/verify",blurb:"Check any file against its recorded SHA-256 fingerprint, hashed locally."},{label:"Photo metadata viewer",href:"/photo-metadata-tool",blurb:"Free tool to inspect EXIF date, GPS, and camera details on any image."},{label:"Security & trust",href:"/security",blurb:"How photos are hosted, encrypted, and access-controlled."}],closingCta:{title:"Capture evidence you can stand behind",body:"Burned-in date and GPS, preserved EXIF, and a SHA-256 fingerprint on every file. Start free, no credit card."}},Hp=[CM,TM,PM,RM],DM=Hp.reduce((e,t)=>(e[t.slug]=t,e),{}),Up="/assets/camera-D5Xa92H4.webp",zp="/assets/edit-stamp-light-BojOxK6J.webp",Dj="/assets/stamped-jobsite-photo-CAh7uNIZ.webp",MM="/assets/ios-photos-metadata-panel-CU1Q6FV3.webp",_M="/assets/ios-photos-metadata-stripped-NxWXhonG.webp",BM="/assets/stamp-existing-photo-3UZ2u4Zy.webp",OM="/assets/verify-match-BuCMR-rZ.webp",FM="/assets/verify-no-match-D246dwXo.webp",LM={slug:"how-to-add-timestamp-to-photos-iphone",title:"How to add a timestamp to photos on iPhone",seoTitle:"How to Add a Timestamp to Photos on iPhone | Timestamp It",description:"iOS records the capture date in metadata but never prints it on the photo. Here are the two ways to get a visible date, time, and location onto an iPhone photo, and how much weight each one can carry.",publishedAt:"2026-08-03",readingMinutes:6,intro:"The iPhone camera has never had a setting that prints the date onto a photo. It records the capture time, the GPS coordinates, and the camera settings into the file's metadata, where you cannot see them and where most apps quietly discard them. If you need the date visible in the picture â for a job record, an insurance claim, or a dispute six months from now â you have to put it there yourself.",heroImage:{src:Dj,alt:"A construction progress photo with a caption, city, date, and time stamped into the top right corner of the image",caption:"The finished result: caption, location, and capture time drawn into the picture, where forwarding it cannot strip them.",size:"wide"},sections:[{heading:"Why the iPhone has no built-in date stamp",body:["Every photo your iPhone takes already carries its capture date. It lives in the EXIF block
502inside the file, alongside the GPS coordinates, the lens used, and the exposure settings. Open any photo in the Photos app, swipe up, and you will see it.","The catch is that EXIF is metadata, not pixels. It is attached to the file rather than drawn into the image, so it survives only as long as the file does. Send that photo through most messaging apps, upload it to a social platform, paste it into a document, or take a screenshot of it, and the metadata is stripped on the way out. The picture arrives looking identical and carrying no date at all.","That is a deliberate privacy decision by Apple and the platforms, and it is the right default for personal photos. It is the wrong default when the date is the entire point of the photo.",'The pair below is one photo. On the left, straight from the camera: the capture time, the iPhone model, the lens, the exposure, and a map of where it was taken. On the right, the same picture after a round trip through WhatsApp â the timestamp is now when it was saved rather than when it was shot, the camera and lens read "No information", the exposure row is empty, and the map is gone. It also came back as a 2 MP JPEG in place of a 24 MP original, which is a separate problem for anyone who might need to zoom in later.'],images:[{src:MM,alt:"The iOS Photos information panel for a photo straight from the camera, listing the capture date and time, the iPhone model, the lens and exposure settings, and a map of where it was taken",caption:"Straight from the camera"},{src:_M,alt:"The same photo after being sent through WhatsApp and saved again: the time is now when it was saved, the camera and lens read as no information, the exposure row is empty, and the map has been replaced by an Add a location prompt",caption:"The same photo, after WhatsApp"}]},{heading:"Option 1: stamp it at the moment of capture",body:["The most reliable approach is to take the photo with an app that draws the stamp into the image as it captures. The date, time, and location become part of the picture, so nothing downstream can remove them.","In Timestamp It this is the StampCam mode. The stamp is rendered live in the viewfinder, so you can see exactly what the finished photo will look like before you press the shutter, and the project picker at the top files the photo under the right job automatically."],steps:["Open Timestamp It and switch to the StampCam tab.","Tap the project name at the top to file this session under the right job. Every photo you take until you change it lands there.","Check the stamp preview in the corner of the frame â that is exactly what will be burned into the photo.","Take the photo. The date, time, and location are already in the pixels."],image:{src:Up,alt:"The Timestamp It StampCam view, showing the project picker at the top and a live preview of the caption, city, and capture time drawn onto the bottom of the frame",caption:"The stamp is previewed live, so what you see in the viewfinder is what ends up in the file."}},{heading:"Choosing what the stamp actually says",body:["A stamp is only useful if it carries the information the reader needs. A date alone answers when; a date with an address answers when and where, which is what most disputes actually turn on.","Timestamp It lets you set the caption, the date format, and how the location is written â full coordinates for evidence work, or city and state when a street address would be too much. You can also set the font, size, and color so the stamp stays legible against whatever you are photographing, and add a company logo if the photo is going to a client.","There is also a weather toggle, off by default. Turned on, the conditions at the moment of capture are pulled from your location and burned in alongside the time. It is niche until the day it is not: rain on the afternoon a pour was called off, or the temperature when a material failed, is the sort of detail nobody writes down and everybody later wishes they had."],image:{src:zp,alt:"The Edit Timestamp screen in Timestamp It, showing controls for caption, date format, location format, weather, font, font size, and text color above a live preview",caption:"Caption, date format, location format, font, size, and color are all set once and reused on every capture."}},{heading:"Option 2: stamp a photo you have already taken",body:["If the photo already exists, you can still add a visible stamp â but be clear about what it proves. Stamping after the fact draws the date onto the image from the file's existing EXIF, so it is only as trustworthy as that metadata. If the photo has been through a messaging app and lost its EXIF, there may be no reliable c
502apture date left to read.","That still has real uses. Importing a batch from the camera roll at the end of a job and stamping it is far better than no record at all, and the original EXIF is preserved underneath the stamp. Just do not treat a stamp applied later as equivalent to one applied at capture.","You can see the distinction in the screen below. The photo was taken in July and is being stamped in August, and the stamp reads the July date â because it is drawn from the file, not from the clock. That is the behavior you want, and it is also exactly why the stamp is only as good as the metadata underneath it."],image:{src:BM,alt:"The Stamp Photos screen in Timestamp It, showing an existing photo with a preview of the city, weather, and original capture date, a project selector, a Stamp this media button, and controls to edit, annotate, note, tag, and share",caption:"Stamping a photo you already have. The weather line is optional, and the date shown is the one in the file rather than today.",size:"medium"}},{heading:"Which one should you use",body:["If the photo might ever need to settle a question, stamp at capture. It is the only option where the date cannot be separated from the image, and it costs nothing extra once the app is set up.","If you are cataloguing photos that already exist, stamp them afterwards and keep the originals. Both approaches are worth having, but they are not equivalent, and the difference only matters on the day someone asks when a photo was taken."]}],faqs:[{q:"Can the iPhone camera add a date to photos by itself?",a:"No. iOS records the capture date into the photo's EXIF metadata but has never had a setting to print it onto the image. Getting a visible date requires an app that draws it into the picture."},{q:"Why did the date disappear when I sent the photo?",a:"Most messaging and social apps strip EXIF metadata when a photo is shared, to protect the sender's privacy. The image looks identical but the capture date and GPS coordinates are gone. A stamp burned into the pixels survives that, because it is part of the picture rather than attached to the file."},{q:"Does stamping a photo change the original?",a:"In Timestamp It the stamped photo is produced as a new file and the original EXIF metadata is preserved, so you keep both the visible stamp and the underlying record."},{q:"Will the stamp show the location as well as the time?",a:"Yes, if Location Services is available when the photo is taken. You can choose how precise it is â full coordinates, or a friendlier city and state â and the location line is simply omitted when no location is available."}],cta:{title:"Put the date where it cannot be stripped",body:"Stamp the date, time, and location into the photo as you take it. Free on iPhone and Android, with unlimited photos and projects."}},HM={slug:"can-photo-timestamps-be-faked",title:"Can photo timestamps be faked?",seoTitle:"Can Photo Timestamps Be Faked? | Timestamp It",description:"Most photo timestamps can be changed in seconds, and a date printed on a picture is a claim rather than a proof. Here is what each kind of timestamp actually establishes, and what none of them catch.",publishedAt:"2026-08-03",readingMinutes:7,intro:"Yes. Most of them, easily, with free software and no particular skill. That is worth knowing before you build a record on top of one, because the useful question is not whether a timestamp can be faked but what a particular timestamp would take to fake, and whether anyone could tell.",sections:[{heading:"An EXIF date takes about ten seconds to change",body:["The capture date your camera writes into a photo lives in the EXIF block, and EXIF is a set of editable fields in the file. Free tools rewrite them in bulk. Nothing about the format resists it, because it was never designed to: EXIF exists so software can sort your holiday photos, not so a date can survive a motivated adversary.","This is why a bare EXIF date carries very little weight on its own. It is evidence that a file says something, not evidence that the something is true. Anyone who has been shown a screenshot of a file listing as proof of when work happened has already met the limits of this."]},{heading:"A stamp in the pixels raises the cost, without settling it",body:["Burning the date into the image is a real improvement, and for an ordinary dispute it is usually enough. The date is no longer a field to edit; it is part of the picture. Removing it means retouching the photo, and doing that convincingly over a detailed background is more work than most people arguing about an invoice will do.","But raising the cost is not the same as making it impossible, and it is worth being blunt about that. Someone determined, with an image editor and some patience, can alter a stamp. A stamp is a strong claim rather than a proof.","There is a second limit that matters more in practice, because it needs no adversary at all. The stamp records what the device believed at the time. Timestamp It draws the date from the phone's clock at the moment of capture, so a phone with the wrong clock produces a photo with the wrong stamp, honestly and without anyone intending it."]},{heading:"A fingerprint does not care what the clock said",body:["This is where the question changes shape. Instead of asking whether the date on the picture is true, ask a narrower question that has a checkable answer: did this exact file exist by a certain point in t
502ime, and has it changed since?","Timestamp It records a SHA-256 fingerprint of each file. A fingerprint is a short value derived from every byte of the image; change one pixel and the value changes completely, and there is no practical way to work backwards from a fingerprint to a file that produces it. When that fingerprint reaches the server it is recorded with a server-witnessed time â a time that does not come from your phone, and that you cannot set.","So even if the stamp on the picture is disputed, the fingerprint establishes something independent of it: a file with exactly these bytes existed by this date, and the copy in front of you is still that file. Anyone can check it by selecting the file on the verification page. The hashing runs in the browser and the image is never uploaded, so the other side can verify your photo without you sending it to them, and without trusting our servers with it."],image:{src:OM,alt:"A verification result showing a Verified capture badge, the device-reported capture date labeled as a claim by the device rather than something witnessed, the date shown on the stamp, and the fingerprint anchor time labeled as witnessed and unable to be backdated, above the file's SHA-256 value",caption:"Three dates, separately labeled. Only the last one was witnessed by anybody other than the phone.",size:"wide"}},{heading:"Where the date came from is disclosed, not glossed",body:["Timestamp It lets you set a stamp date by hand, and lets you stamp an imported photo using the date already in its metadata. Both are legitimate â cataloguing a backlog is a real need â and both mean the printed date did not come from a live capture.","Rather than quietly treating those the same, a verification result says which one it was. A date taken from the device at capture is labeled a verified capture. A date read from an imported photo's own metadata is labeled a device-reported date. A date typed in by a person is labeled exactly that. Where the record is too old to say, it says the source is not recorded rather than guessing.","That distinction is the point. The verified label means something precisely because the other labels are shown honestly; a system that called all four the same thing would be worth nothing, and anyone checking would be right to ignore it."]},{heading:"What none of this catches",body:["No stamping app, this one included, can tell you that a photograph is honest. It can only tell you things about the file.","Photograph a screen showing an old picture and you get a genuine capture, correctly stamped, of a fake subject. Stamp an imported photo whose EXIF was already wrong and the stamp faithfully reproduces the wrong date â correctly labeled as device-reported, and still wrong. Photograph the right thing at the wrong address, or the wrong thing at the right one, and every technical signal agrees with you.","This is not a gap peculiar to timestamps. A photograph has never established more than that light hit a sensor in a particular arrangement. What the record adds is that the file has not changed since a known date, which is a narrower claim and the only one worth making.","There is a mirror-image trap worth knowing about too: a failed check is not evidence of forgery. Most no-matches are innocent. Messaging apps re-compress photos when they send them, and re-compression changes the bytes, so the copy that arrives is genuinely not the file that was fingerprinted â the same mechanism that strips the capture date out of a photo you send to a client. The original still verifies. The forwarded copy never will, and treating that as a red flag would be a mistake in the other direction."],image:{src:FM,alt:"A verification result reading No fingerprint matches this file, explaining that messaging apps re-compress photos so the copy that arrives is not the file that was fingerprinted, with suggestions for obtaining the original such as AirDrop, sending as a document, or using the project share link",caption:"A no-match usually means the file took a lossy route, not that anyone tampered with it. The page says so, and tells you how to get the original.",size:"wide"}},{heading:"What holds up in practice",body:["Disputes are rarely settled by one perfect photo. They are settled by a body of evidence that is boring and consistent: photographs taken as a matter of routine across a whole job, at the start and n
502ot only when something went wrong, with the original files kept rather than screenshots of them.","That pattern is hard to fabricate after the fact, and it is the thing a stamp and a fingerprint make legible. A single photo produced the week a claim is filed invites the obvious question. Four hundred photos captured over three months, each fingerprinted on the day it was taken, does not.","Whether any of it is admissible is a separate question with a jurisdiction-specific answer, and nothing here is legal advice. But admissibility is downstream of credibility, and credibility is built by habit rather than by any single feature."]}],faqs:[{q:"Can you change the date on a photo?",a:"The EXIF date, yes â it is an editable field and free tools rewrite it in seconds. A date burned into the pixels is harder, because it means retouching the image itself, but harder is not impossible."},{q:"If my phone's clock is wrong, will the stamp be wrong?",a:"Yes. Timestamp It takes the stamped date from the device clock at the moment of capture, so a device with the wrong time produces a photo with the wrong stamp. The SHA-256 fingerprint is recorded with a server-witnessed time instead, which is why it establishes something the stamp cannot."},{q:"What does verifying a photo actually prove?",a:"That a file with exactly these bytes existed by the time the fingerprint was recorded, and that the copy you are holding has not changed since. It does not vouch for the date printed on the picture, and the verification page is explicit about that."},{q:"Do I have to upload my photo to verify it?",a:"No. The file is hashed in your browser and only the resulting fingerprint is sent, so the image itself never leaves your device. That also means the other side of a dispute can verify a photo without you handing it over."},{q:"Can someone remove the stamp and re-upload the photo?",a:"They can edit the pixels, but the edited file will have a different fingerprint and will not match the recorded one. What they cannot do is produce a different file that matches the original fingerprint."},{q:"A photo I was sent does not match. Was it tampered with?",a:"Probably not. The most common cause is that it reached you through a messaging app, which re-compresses photos and therefore changes the bytes â the copy you have is a different file from the one that was fingerprinted, even though it looks the same. Ask for the original by AirDrop, as an email attachment, as a document rather than a photo, or through a project share link. If the original still fails, that is worth a question."},{q:"Does a timestamp make a photo admissible in court?",a:"No, and anyone claiming otherwise is overselling. Admissibility depends on the jurisdiction, the type of proceeding, and how the photo is authenticated. A stamped date, preserved metadata, a recorded fingerprint, and a consistent capture habit all help establish that a photo is what it claims to be, but the decision belongs to counsel and the court."}],cta:{title:"Check a photo against its fingerprint",body:"Select any file on the verification page and see whether it still matches what was recorded. The hashing happens in your browser â the photo never leaves your device.",secondary:{label:"Verify a photo",href:"/verify"}}},ld=[LM,HM],UM=ld.reduce((e,t)=>(e[t.slug]=t,e),{}),Mj=[{q:"What is GigStamper?",a:"GigStamper is an app for gig workers that burns the capture time and GPS location directly into a photo. It is built for documenting deliveries, rides, and tasks so a completed job can be proven if a customer or platform disputes it."},{q:"How is GigStamper different from Timestamp It?",a:"Both stamp time, date, and location onto photos. GigStamper is built for one person protecting their own record, where capturing the proof is the entire workflow. Timestamp It is built for work that gets handed off, with projects, batch stamping, share links, PDF exports, and team collaboration."},{q:"Is GigStamper free?",a:"GigStamper is free to download and does not require an account to start stamping photos."},{q:"Is GigStamper available on Android?",a:"Yes. GigStamper is available on both Android through Google Play and iPhone through the App Store."},{q:"Does GigStamper work without a signal?",a:"Yes. Photos are captured and stamped on the device, so a dead zone does not stop you documenting a drop-off. Everything syncs once you are back on data."}],Ga="4.7",zM="5",$M="1",GM="5300",te="https://timestampitapp.com",QM=new Set(["name","headline","description","text"]);function Qh(e,t){return Array.isArray(e)?e.map(n=>Qh(n,t)):e&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([n,r])=>[n,typeof r=="string"&&QM.has(n)?t(r):Qh(r,t)])):e}const WM=1200,qM=630;function _j(e){return[{"@context":"https://schema.org","@type":"Article",headline:e.h1,description:e.intro,mainEntityOfPage:e.url,url:e.url,author:{"@type":"Organization",name:"Timestamp It"},publisher:{"@type":"Organization",name:"Timestamp It",logo:{"@type":"ImageObject",url:`${te}/favicon.ico`}}},{"@context":"https://schema.org","@type":"FAQPage",mainEntity:e.faqs.map(t=>
502({"@type":"Question",name:t.q,acceptedAnswer:{"@type":"Answer",text:t.a}}))}]}function VM(e,t){return{"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Timestamp It",item:`${te}/`},{"@type":"ListItem",position:2,name:e,item:`${te}${t}`}]}}function XM(e){const t=`/compare/${e.slug}`;return[t,{routeKey:t,title:`${e.hero.h1} | Timestamp It`,description:e.hero.intro,canonical:`${te}${t}`,indexable:!0,breadcrumbName:e.hero.h1,jsonLd:_j({url:`${te}${t}`,h1:e.hero.h1,intro:e.hero.intro,faqs:e.faqs})}]}function YM(e){var n;const t=`/blog/${e.slug}`;return[t,{routeKey:t,title:e.seoTitle,description:e.description,canonical:`${te}${t}`,indexable:!0,breadcrumbName:e.title,jsonLd:[{"@context":"https://schema.org","@type":"Article",headline:e.title,description:e.description,datePublished:e.publishedAt,dateModified:e.updatedAt??e.publishedAt,mainEntityOfPage:`${te}${t}`,url:`${te}${t}`,author:{"@type":"Organization",name:"Timestamp It"},publisher:{"@type":"Organization",name:"Timestamp It",logo:{"@type":"ImageObject",url:`${te}/favicon.ico`}}},...(n=e.faqs)!=null&&n.length?[{"@context":"https://schema.org","@type":"FAQPage",mainEntity:e.faqs.map(r=>({"@type":"Question",name:r.q,acceptedAnswer:{"@type":"Answer",text:r.a}}))}]:[]]}]}function KM(e){const t=`/for/${e.slug}`;return[t,{routeKey:t,title:e.seo.title,description:e.seo.description,canonical:`${te}${t}`,indexable:!0,breadcrumbName:e.hero.h1,jsonLd:_j({url:`${te}${t}`,h1:e.hero.h1,intro:e.hero.intro,faqs:e.faqs})}]}const JM=[{"@context":"https://schema.org","@type":"Organization",name:"Timestamp It",url:te,email:"[email protected]",logo:`${te}/favicon.ico`,sameAs:["https://apps.apple.com/us/app/timestamp-it-photo-stamper/id327756085","https://play.google.com/store/apps/details?id=com.shabzco.timestampit_android"]},{"@context":"https://schema.org","@type":"SoftwareApplication",name:"Timestamp It",alternateName:"Timestamp Camera",applicationCategory:"PhotographyApplication",operatingSystem:"iOS, Android",url:te,description:"Timestamp camera app that adds time, date, and GPS stamps to photos in seconds. Organize projects, share client-ready galleries, export PDF or ZIP, and collaborate with your team.",featureList:["Time and date stamps","GPS and location stamps","Weather conditions at the moment of capture","Stamped video capture","Map snapshots burned into the image","Markup and annotation on photos","Voice memos and text notes attached to a photo","Customizable fonts, colors, and layouts","Project organization with batch stamping","Cloud sync across devices","Team collaboration with invite links","Client-ready share links","Export as PDF or ZIP"],offers:{"@type":"Offer",price:"0",priceCurrency:"USD"},aggregateRating:{"@type":"AggregateRating",ratingValue:Ga,reviewCount:GM,bestRating:zM,worstRating:$M}}],ZM=[{"@context":"https://schema.org","@type":"WebApplication",name:"Photo Report Maker",applicationCategory:"BusinessApplication",operatingSystem:"Any",url:`${te}/photo-report`,description:"Free online photo report maker. Turn up to 10 photos into a PDF report with each photo's date, GPS location and notes, built in the browser without uploading anything.",offers:{"@type":"Offer",price:"0",priceCurrency:"USD"}}],e4=[{"@context":"https://schema.org","@type":"WebApplication",name:"Add GPS Coordinates to Photos",applicationCategory:"MultimediaApplication",operatingSystem:"Any",url:`${te}/add-gps-to-photos`,description:"Free online tool to add GPS coordinates to photos. Search an address, use your current location or click a map, and write the location into each photo's EXIF data in the browser, keeping its existing metadata.",offers:{"@type":"Offer",price:"0",priceCurrency:"USD"}}],t4=[{"@context":"https://schema.org","@type":"WebApplication",name:"Photo Metadata Viewer",applicationCategory:"MultimediaApplication",operatingSystem:"Any",url:`${te}/photo-metadata-tool`,description:"Free online photo metadata viewer. Inspect EXIF, IPTC, and XMP fields including capture date, GPS, camera and lens model, exposure, and image dimensions, all in the browser without uploading the file.",offers:{"@type":"Offer",price:"0",priceCurrency:"USD"}},{"@context":"https://schema.org","@type":"FAQPage",mainEntity:[{"@type":"Question",name:"What is EXIF data?",acceptedA
502nswer:{"@type":"Answer",text:"EXIF (Exchangeable Image File Format) is the structured metadata cameras and phones embed in every photo: capture date and time, GPS coordinates, camera and lens model, exposure settings, ISO, white balance, image dimensions, orientation, and software signatures. This viewer reads those fields directly from the file."}},{"@type":"Question",name:"Does this tool keep my photos?",acceptedAnswer:{"@type":"Answer",text:"No. Metadata extraction runs entirely in your browser using JavaScript â your photo is never uploaded to a server, never logged, and never stored. As soon as you close the tab, the file and its metadata are gone."}},{"@type":"Question",name:"Why doesn't my screenshot have any EXIF data?",acceptedAnswer:{"@type":"Answer",text:"Screenshots and images downloaded from social platforms typically have most EXIF stripped or never had it. iOS, Instagram, Facebook, WhatsApp, and many messaging apps remove EXIF on share to protect user privacy. The viewer will still show file-level metadata (size, type, dimensions) even when EXIF is empty."}},{"@type":"Question",name:"Why is GPS missing on photos taken with my iPhone or Android?",acceptedAnswer:{"@type":"Answer",text:"GPS only embeds when the Camera app has Location Services permission at the moment of capture. If the permission was off, never granted, or the photo was taken in airplane mode without a GPS lock, the location field will be missing. Re-enabling Location Services only affects future photos."}},{"@type":"Question",name:"Does this support HEIC files?",acceptedAnswer:{"@type":"Answer",text:"HEIC support depends on your browser. Safari decodes HEIC natively; Chrome and Firefox typically need a fallback decoder. The viewer will attempt to convert HEIC to JPEG client-side so you can preview the file. If your browser cannot decode the file, you'll see a notice and the file-level metadata will still display."}},{"@type":"Question",name:"Can I edit or remove metadata with this tool?",acceptedAnswer:{"@type":"Answer",text:"No, this is a read-only metadata viewer. To stamp the capture date, time, and GPS location onto the photo itself for documentation, use the Timestamp Photo tool â it runs in the same browser with the same privacy model."}},{"@type":"Question",name:"Is this the same metadata Lightroom or Google Photos shows?",acceptedAnswer:{"@type":"Answer",text:"Yes. All these tools read the same standardized EXIF, IPTC, and XMP metadata blocks. The fields you see here are the raw values pulled directly from the file; consumer apps may rename, group, or hide some of them in their UI."}}]}],n4=[{"@context":"https://schema.org","@type":"MobileApplication",name:"GigStamper",applicationCategory:"BusinessApplication",operatingSystem:"iOS, Android",url:"https://gigstamper.com",installUrl:"https://apps.apple.com/us/app/gigstamper-by-timestamp-it/id6757725201",description:"Timestamp and GPS camera for gig workers. Stamp delivery, rideshare, and task photos with the time and location they were taken, so a completed job can be proven later.",offers:{"@type":"Offer",price:"0",priceCurrency:"USD"}},{"@context":"https://schema.org","@type":"FAQPage",mainEntity:Mj.map(e=>({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))}],r4=[{"@context":"https://schema.org","@type":"WebApplication",name:"Timestamp Photo Online Tool",applicationCategory:"MultimediaApplication",operatingSystem:"Any",url:`${te}/timestamp-photo`,description:"Free online tool to add a timestamp to a photo using image metadata and download the stamped image.",offers:{"@type":"Offer",price:"0",priceCurrency:"USD"}},{"@context":"https://schema.org","@type":"FAQPage",mainEntity:[{"@type":"Question",name:"Does this tool keep my photos?",acceptedAnswer:{"@type":"Answer",text:"No. Stamping runs entirely in your browser using JavaScript and HTML5 canvas â your photo is never uploaded to a server, never logged, and never stored. Closing the tab is enough to remove the file from memory."}},{"@type":"Question",name:"What date does it stamp on the photo?",acceptedAnswer:{"@type":"Answer",text:"The capture date pulled from the photo's EXIF DateTimeOriginal field. If no EXIF date is present (for example on screenshots or images that have been re-saved), the tool falls back to the file's modified time. The exact date and source is shown to you before you download."}},{"@type":"Question",name:"Will the timestamp survive screenshots, downloads, and shares?",acceptedA
502nswer:{"@type":"Answer",text:"Yes. Because the date and location are baked into the visible pixels, they survive every transformation that preserves the image â screenshots, downloads, re-uploads, social shares, even AirDrop. EXIF-based timestamps, by contrast, are stripped by most messaging and social apps."}},{"@type":"Question",name:"What if my photo doesn't have GPS data?",acceptedAnswer:{"@type":"Answer",text:"The location line is simply omitted, and the stamp shows just the date and time. Photos taken with Location Services off, screenshots, and images shared through apps that strip EXIF won't have GPS in their metadata, so there is nothing to stamp."}},{"@type":"Question",name:"Where on the photo does the timestamp appear?",acceptedAnswer:{"@type":"Answer",text:"Bottom-left corner, in legible white text sized proportionally to the image. The web tool uses a fixed style; the mobile app supports custom positions, fonts, colors, and logos."}},{"@type":"Question",name:"Does my original photo get changed?",acceptedA
502nswer:{"@type":"Answer",text:"No. The stamped photo is generated as a new JPEG you can download. Your original file is untouched."}},{"@type":"Question",name:"Can I batch-stamp multiple photos at once?",acceptedAnswer:{"@type":"Answer",text:"Yes, up to three at a time. Drop three photos on the tool and it stamps all of them, with a download for each and a Download All button. Three is the same batch size the free plan carries everywhere else. For bigger batches, a free account keeps stamped photos organized in projects, and Pro in the Timestamp It app stamps unlimited photos at once."}}]}],un={"/":{routeKey:"/",title:"Timestamp It | Timestamp Camera & Date Stamp App for Photos",description:"Timestamp It is the timestamp camera app for iPhone and Android. Stamp time, date, and GPS on photos, organize projects, and share client-ready PDF reports. Trusted by 700K+ field pros.",canonical:`${te}/`,indexable:!0,jsonLd:JM},"/pricing":{routeKey:"/pricing",breadcrumbName:"Pricing",title:"Pricing | Timestamp It Free, Pro, and Team Plans",description:"Start free, or get Pro for $8.99/month. Team plans add shared projects, invite links, and cloud sync, discounted by total users.",canonical:`${te}/pricing`,indexable:!0},"/how-it-works":{routeKey:"/how-it-works",breadcrumbName:"How it works",title:"How Timestamp It Works | Help, Teams, Projects, and Sync",description:"Read the Timestamp It help guide covering photo stamping, projects, teams, invites, sync, and subscriptions.",canonical:`${te}/how-it-works`,indexable:!0},"/privacy-policy":{routeKey:"/privacy-policy",title:"Privacy Policy | Timestamp It",description:"Read the Timestamp It privacy policy, including details on media storage, cloud sync, and data handling.",canonical:`${te}/privacy-policy`,indexable:!0},"/trust":{routeKey:"/trust",title:"Trust Center | Timestamp It",description:"Security, privacy, subprocessors, terms, and accessibility information for Timestamp It in one place.",canonical:`${te}/trust`,indexable:!0},"/security":{routeKey:"/security",title:"Security | Timestamp It",description:"How Timestamp It is hosted, encrypted, and access-controlled, plus our compliance posture and data residency.",canonical:`${te}/security`,indexable:!0},"/subprocessors":{routeKey:"/subprocessors",title:"Subprocessors | Timestamp It",description:"The complete list of third parties that process Timestamp It customer data, what they handle, and where.",canonical:`${te}/subprocessors`,indexable:!0},"/accessibility":{routeKey:"/accessibility",title:"Accessibility Statement | Timestamp It",description:"Timestamp It's WCAG 2.1 Level AA conformance target, accessibility measures, known limitations, and how to report a barrier.",canonical:`${te}/accessibility`,indexable:!0},"/terms":{routeKey:"/terms",title:"Terms of Service | Timestamp It",description:"The license agreement governing use of Timestamp It, including content ownership, acceptable use, and subscriptions.",canonical:`${te}/terms`,indexable:!0},"/delete-account":{routeKey:"/delete-account",title:"Delete Your Account and Data | Timestamp It",description:"Request deletion of your Timestamp It account and all associated data. No app install or sign-in required.",canonical:`${te}/delete-account`,indexable:!0},"/contact":{routeKey:"/contact",breadcrumbName:"Contact",title:"Contact Timestamp It | Questions, Team Pricing, Support",description:"Get in touch about Timestamp It â general questions, team pricing, bug reports, or press. A real person reads every message.",canonical:`${te}/contact`,indexable:!0},"/download":{routeKey:"/download",breadcrumbName:"Download",title:"Download Timestamp It | iPhone and Android",description:"Download Timestamp It on iPhone and Android to add timestamps and location stamps to your photos.",canonical:`${te}/download`,indexable:!0},"/timestamp-photo":{routeKey:"/timestamp-photo",breadcrumbName:"Timestamp a photo",title:"Timestamp Photo Online Free | Add Date and Metadata to Images",description:"Free online timestamp photo tool. Upload an image, stamp capture metadata onto your photo, and download instantly.",canonical:`${te}/timestamp-photo`,indexable:!0,jsonLd:r4},"/photo-metadata-tool":{routeKey:"/photo-metadata-tool",breadcrumbName:"Photo metadata viewer",title:"Photo Metadata Viewer Online | Read EXIF Data Free",description:"Free photo metadata viewer. Upload an image to inspect EXIF f
502ields like timestamp, GPS, camera model, dimensions, and more.",canonical:`${te}/photo-metadata-tool`,indexable:!0,jsonLd:t4},"/add-gps-to-photos":{routeKey:"/add-gps-to-photos",breadcrumbName:"Add GPS to photos",title:"Add GPS Coordinates to Photos Online | Free Geotag Tool",description:"Add a GPS location to your photos for free. Search an address, use your location or click the map, and download photos with the coordinates in their EXIF data. Nothing is uploaded.",canonical:`${te}/add-gps-to-photos`,indexable:!0,jsonLd:e4},"/photo-report":{routeKey:"/photo-report",breadcrumbName:"Photo report maker",title:"Photo Report Maker | Free PDF Photo Report Online",description:"Create a PDF photo report for free. Add up to 10 photos with their date, GPS location and notes, fill in the project and client, and download a report ready to send.",canonical:`${te}/photo-report`,indexable:!0,jsonLd:ZM},"/before-after-photo":{routeKey:"/before-after-photo",breadcrumbName:"Before & after photo maker",title:"Before & After Photo Maker Online | Free Side-by-Side Tool",description:"Free Before & After photo maker. Upload two images, stamp each with date and location, and download a labeled side-by-side comparison.",canonical:`${te}/before-after-photo`,indexable:!0,jsonLd:[{"@context":"https://schema.org","@type":"WebApplication",name:"Before & After Photo Maker",applicationCategory:"MultimediaApplication",operatingSystem:"Any",url:`${te}/before-after-photo`,description:"Free online tool to create a stamped Before & After side-by-side image from two photos.",offers:{"@type":"Offer",price:"0",priceCurrency:"USD"}}]},"/gigstamper":{routeKey:"/gigstamper",breadcrumbName:"GigStamper",title:"GigStamper | Timestamped Proof of Work for Gig Workers",description:"GigStamper is our app for gig workers on iPhone and Android: one-tap photos stamped with GPS and an accurate timestamp, so deliveries, rides, and tasks can be proven when a claim comes in.",canonical:`${te}/gigstamper`,indexable:!0,jsonLd:n4},"/verify":{routeKey:"/verify",breadcrumbName:"Verify a photo",title:"Verify a Timestamped Photo | Timestamp It",description:"Check whether a photo or video still matches the SHA-256 fingerprint Timestamp It recorded for it. The file is hashed in your browser and never uploaded.",canonical:`${te}/verify`,indexable:!0},"/v/:code":{routeKey:"/v/:code",title:"Verification Record | Timestamp It",description:"See when this file's fingerprint was witnessed, and confirm your copy matches it.",canonical:`${te}/verify`,indexable:!1},"/invite/:code":{routeKey:"/invite/:code",title:"Project Invite | Timestamp It",description:"Join a shared project in Timestamp It.",canonical:`${te}/invite`,indexable:!1},"/team-invite/:code":{routeKey:"/team-invite/:code",title:"Youâre invited to join a team | Timestamp It",description:"Accept your invite to join the team on Timestamp It and start sharing photos stamped with the time, date, and location they were taken.",canonical:`${te}/team-invite`,indexable:!1,ogImage:`${te}/images/og-team-invite.png`,ogImageAlt:"Timestamp It team invite"},"/support":{routeKey:"/support",title:"Chat with us · Timestamp It",description:"Ask Timestamp It support a question. We usually reply within a day.",canonical:`${te}/support`,indexable:!1},"/login-callback":{routeKey:"/login-callback",title:"Signing you in⦠· Timestamp It",description:"Continue sign-in in the Timestamp It app.",canonical:`${te}/login-callback`,indexable:!1},...Object.fromEntries(Lp.map(XM)),...Object.fromEntries(Hp.map(KM)),"/blog":{routeKey:"/blog",title:"Guides | Timestamp It",description:"How timestamps, metadata, and photo evidence actually behave â including where they fall short. Practical guides for documenting work with photos.",canonical:`${te}/blog`,indexable:!0,breadcrumbName:"Guides"},...Object.fromEntries(ld.map(YM))},Bj=["/","/pricing","/how-it-works","/privacy-policy","/trust","/security","/subprocessors","/accessibility","/terms","/delete-account","/contact","/download","/timestamp-photo","/photo-metadata-tool","/add-gps-to-photos","/photo-report","/before-after-photo","/gigstamper","/ver
502ify",...Lp.map(e=>`/compare/${e.slug}`),...Hp.map(e=>`/for/${e.slug}`),"/blog",...ld.map(e=>`/blog/${e.slug}`)],Oj=Bj.filter(e=>{var t;return(t=un[e])==null?void 0:t.indexable}),o4=new Set(["/","/pricing","/how-it-works","/download","/contact","/delete-account","/gigstamper","/timestamp-photo","/photo-metadata-tool","/add-gps-to-photos","/photo-report","/before-after-photo","/compare/best-companycam-alternative","/compare/best-timemark-alternative","/compare/best-google-drive-alternative","/compare/best-timestamp-camera-alternative","/compare/best-marki-alternative","/for/construction","/for/real-estate","/for/property-management","/for/private-investigation","/trust","/verify"]);function cd(e){return e.indexable?o4.has(sa(e))?Pj:["en"]:["en"]}function Fj(e,t){if(t==="en")return!0;const n=e.split(/[?#]/)[0]||"/",r=un[n];return r?cd(r).includes(t):!1}const a4=[[/^\/compare\//,"Comparison"],[/^\/for\//,"Industry"],[/^\/blog\/.+/,"Guide"],[/^\/blog$/,"Guides"],[/^\/(timestamp-photo|photo-metadata-tool|add-gps-to-photos|photo-report|before-after-photo)$/,"Free tool"],[/^\/verify$/,"Verification"],[/^\/pricing$/,"Pricing"],[/^\/gigstamper$/,"Companion app"],[/^\/how-it-works$/,"Help"],[/^\/download$/,"Download"]];function Lj(e){return e==="/"?"home":e.replace(/^\//,"").replace(/\//g,"-")}function s4(e){return`${te}/images/og/${Lj(e)}.png`}const i4=Oj.map(e=>{var a;const t=un[e],n=(t==null?void 0:t.breadcrumbName)??((t==null?void 0:t.title)??"").replace(/ \| Timestamp It$/,"").replace(/^Timestamp It \| /,""),r=((a=a4.find(([s])=>s.test(e)))==null?void 0:a[1])??"";return{path:e,slug:Lj(e),eyebrow:r.toLowerCase()===n.toLowerCase()?"":r,title:n,footer:`timestampitapp.com${e==="/"?"":e}`}}),l4=new Map(i4.map(e=>[e.path,e]));Bj.flatMap(e=>{const t=un[e];return t?cd(t).map(n=>({route:e,locale:n})):[{route:e,locale:"en"}]});Oj.flatMap(e=>{const t=un[e];if(!t)return[];const n=cd(t),r=n.length>1?[...n.map(a=>({hreflang:a,href:`${te}${or(e,a)}`})),{hreflang:"x-default",href:`${te}${e}`}]:[];return n.map(a=>({route:e,locale:a,loc:`${te}${or(e,a)}`,alternates:r}))});function c4({pathname:e,routeKey:t}){if(t&&un[t])return un[t];if(un[e])return un[e];for(const n of Object.values(un))if(n.routeKey.includes(":")&&d4(n.routeKey,e))return n;return un["/"]}function d4(e,t){const n=e.split("/").filter(Boolean),r=t.split("/").filter(Boolean);return n.length!==r.length?!1:n.every((a,s)=>a.startsWith(":")||a===r[s])}function Hj(e,t,n="en"){return n==="en"?e.canonical:`${te}${or(sa(e),n)}`}function sa(e){return e.routeKey.startsWith("/")?e.routeKey:`/${e.routeKey}`}function Yi(e,t,n){return t==="en"?e:(n==null?void 0:n[e])??e}function u4(e){if(!e.indexable)return[];const t=sa(e),n=cd(e);if(n.length<2)return[];const r=n.map(a=>`<link data-seo-managed="true" rel="alternate" hreflang="${a}" href="${Nt(`${te}${or(t,a)}`)}">`);return r.push(`<link data-seo-managed="true" rel="alternate" hreflang="x-default" href="${Nt(`${te}${t}`)}">`),r}function Nt(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}const h4={en:"en_US",es:"es_ES",fr:"fr_FR",hi:"hi_IN",id:"id_ID",th:"th_TH"};function m4(e,t,n="en",r){const a=Hj(e,t,n),s=e.indexable?"index,follow":"noindex,nofollow",i=Yi(e.title,n,r),l=Yi(e.description,n,r),c=e.indexable?l4.get(sa(e)):void 0,d=e.ogImage??(c?s4(sa(e)):`${te}/images/image01.jpg`),u=e.ogImageAlt?Yi(e.ogImageAlt,n,r):!e.ogImage&&c?c.title:i,m=w=>Yi(w,n,r),p=[];e.jsonLd&&p.push(...Array.isArray(e.jsonLd)?e.jsonLd:[e.jsonLd]),e.indexable&&e.breadcrumbName&&p.push(VM(e.breadcrumbName,or(sa(e),n)));const f=p.length?`<script type="application/ld+json" data-seo-managed="true">${JSON.stringify(Qh(p,m))}<\/script>`:"";return[`<title data-seo-managed="true">${Nt(i)}</title>`,`<meta data-seo-managed="true" name="description" content="${Nt(l)}">`,`<link data-seo-managed="true" rel="canonical" href="${Nt(a)}">`,...u4(e),`<meta data-seo-managed="true" name="robots" content="${s}">`,`<meta data-seo-managed="true" property="og:title" content="${Nt(i)}">`,`<meta data-seo-managed="true" property="og:description" content="${Nt(l)}">`,'<meta data-seo-managed="true" property="og:type" content="website">',`<meta data-seo-managed="true" property="og:url" content="${Nt(a)}">`,`<meta data-seo-managed="true" property="og:image" content="${Nt(d)}">`,`<meta data-seo-managed="true" property="og:image:width" content="${e.ogImageWidth??WM}">`,`<meta data-seo-managed="true" property="og:image:height" content="${e.ogImageHeight??qM}">`,`<meta data-seo-managed="true" property="og:image:alt" content="${Nt(u)}">`,'<meta data-seo-managed="true" property="og:site_name" content="Timestamp It">',`<meta data-seo-managed="true" property="og:locale" content="${h4[n]}">`,'<meta data-seo-managed="true" name="twitter:card" content="summary_large_image">',`<meta data-seo-managed="true" name="twitter:title" content="${Nt(i)}">`,`<meta data-seo-managed="true" name="twitter:description" content="${Nt(l)}">`,`<meta data-seo-managed="true" name="twitter:image" content="${Nt(d)}">`,`<meta data-seo-managed="true" name="twitter:image:alt" content="${Nt(u)}">`,f].join(` 503`)}function qe(){const{locale:e}=ir();return h.useCallback(t=>Fj(t,e)?or(t,e):t,[e])}const p4="https://app.timestampitapp.com";function zn(e,{path:t="",content:n}={}
503){const r=new URLSearchParams({utm_source:"marketing",utm_medium:e});return n&&r.set("utm_content",n),`${p4}${t}?${r}`}function Ze(){const[e,t]=h.useState(!1),[n,r]=h.useState(!1),a=re(),s=qe();return o.jsxs("header",{className:"fixed top-0 left-0 right-0 z-50 bg-background/75 backdrop-blur-xl border-b border-border/60",children:[o.jsxs("div",{className:"container flex items-center justify-between h-16",children:[o.jsxs("a",{href:s("/"),className:"flex items-center gap-3",children:[o.jsx("img",{src:D1,srcSet:td,sizes:"40px",alt:"Timestamp It",className:"w-10 h-10 rounded-xl"}),o.jsx("span",{className:"font-bold text-lg hidden sm:block",children:"Timestamp It"})]}),o.jsxs("nav",{className:"hidden md:flex items-center gap-8",children:[o.jsx("a",{href:s("/pricing"),className:"text-muted-foreground hover:text-foreground transition-colors",children:a("Pricing")}),o.jsx("a",{href:s("/how-it-works"),className:"text-muted-foreground hover:text-foreground transition-colors",children:a("Help")}),o.jsx("a",{href:s("/#features"),className:"text-muted-foreground hover:text-foreground transition-colors",children:a("Features")}),o.jsx("a",{href:s("/#cloud"),className:"text-muted-foreground hover:text-foreground transition-colors",children:a("Cloud")}),o.jsxs("div",{className:"relative group",children:[o.jsxs("button",{type:"button",className:"text-muted-foreground hover:text-foreground transition-colors inline-flex items-center gap-1","aria-haspopup":"menu","aria-label":a("Tools menu"),children:[a("Tools"),o.jsx("span",{className:"text-xs",children:"â¾"})]}),o.jsx("div",{className:"absolute top-full left-0 pt-2 opacity-0 pointer-events-none group-hover:opacity-100 group-hover:pointer-events-auto group-focus-within:opacity-100 group-focus-within:pointer-events-auto transition",children:o.jsxs("div",{className:"w-56 rounded-xl border border-border bg-background/95 backdrop-blur-xl p-2 shadow-xl",children:[o.jsx("a",{href:s("/timestamp-photo"),className:"block rounded-lg px-3 py-2 text-sm text-muted-foreground hover:bg-secondary hover:text-foreground transition-colors",children:a("Timestamp Photo Tool")}),o.jsx("a",{href:s("/photo-metadata-tool"),className:"block rounded-lg px-3 py-2 text-sm text-muted-foreground hover:bg-secondary hover:text-foreground transition-colors",children:a("Photo Metadata Tool")}),o.jsx("a",{href:s("/add-gps-to-photos"),className:"block rounded-lg px-3 py-2 text-sm text-muted-foreground hover:bg-secondary hover:text-foreground transition-colors",children:a("Add GPS to Photos")}),o.jsx("a",{href:s("/photo-report"),className:"block rounded-lg px-3 py-2 text-sm text-muted-foreground hover:bg-secondary hover:text-foreground transition-colors",children:a("Photo Report Maker")}),o.jsx("a",{href:s("/before-after-photo"),className:"block rounded-lg px-3 py-2 text-sm text-muted-foreground hover:bg-secondary hover:text-foreground transition-colors",children:a("Before & After Maker")}),o.jsx("a",{href:s("/verify"),className:"block rounded-lg px-3 py-2 text-sm text-muted-foreground hover:bg-secondary hover:text-foreground transition-colors",children:a("Verify a Photo")}),o.jsx("div",{className:"my-2 border-t border-border/60"}),o.jsx("a",{href:s("/gigstamper"),className:"block rounded-lg px-3 py-2 text-sm text-muted-foreground hover:bg-secondary hover:text-foreground transition-colors",children:a("GigStamper for Gig Workers")})]})})]})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(Gh,{className:"hidden md:flex h-9 w-auto gap-1.5 border-none bg-transparent px-2 text-sm text-muted-foreground shadow-none hover:text-foreground focus:ring-0"}),o.jsx(ne,{variant:"outline",size:"sm",asChild:!0,children:o.jsx("a",{href:zn("header"),target:"_blank",rel:"noopener","data-umami-event":"cta-click","data-umami-event-location":"header",children:a("Web App")})}),o.jsx(ne,{variant:"hero",size:"sm",asChild:!0,children:o.jsx("a",{href:s("/download"),"data-umami-event":"cta-click","data-umami-event-location":"header","data-umami-event-target":"download",children:a("Download")})}),o.jsx("button",{type:"button",className:"md:hidden ml-1 p-2 text-foreground
503/70 hover:text-foreground transition-colors",onClick:()=>t(!e),"aria-label":a("Toggle menu"),children:e?o.jsx(Bt,{className:"w-5 h-5"}):o.jsx(DI,{className:"w-5 h-5"})})]})]}),e&&o.jsxs("nav",{className:"md:hidden border-t border-border/60 bg-background/95 backdrop-blur-xl",children:[o.jsxs("div",{className:"container flex flex-col py-4 gap-1",children:[o.jsx("a",{href:s("/pricing"),className:"px-3 py-2.5 rounded-lg text-muted-foreground hover:bg-secondary hover:text-foreground transition-colors",onClick:()=>t(!1),children:a("Pricing")}),o.jsx("a",{href:s("/how-it-works"),className:"px-3 py-2.5 rounded-lg text-muted-foreground hover:bg-secondary hover:text-foreground transition-colors",onClick:()=>t(!1),children:a("Help")}),o.jsx("a",{href:s("/#features"),className:"px-3 py-2.5 rounded-lg text-muted-foreground hover:bg-secondary hover:text-foreground transition-colors",onClick:()=>t(!1),children:a("Features")}),o.jsx("a",{href:s("/#cloud"),className:"px-3 py-2.5 rounded-lg text-muted-foreground hover:bg-secondary hover:text-foreground transition-colors",onClick:()=>t(!1),children:a("Cloud")}),o.jsxs("button",{type:"button",className:"px-3 py-2.5 rounded-lg text-left text-muted-foreground hover:bg-secondary hover:text-foreground transition-colors flex items-center justify-between",onClick:()=>r(!n),children:[a("Tools"),o.jsx(gn,{className:`w-4 h-4 transition-transform ${n?"rotate-180":""}`})]}),n&&o.jsxs("div",{className:"pl-4 flex flex-col gap-1",children:[o.jsx("a",{href:s("/timestamp-photo"),className:"px-3 py-2 rounded-lg text-sm text-muted-foreground hover:bg-secondary hover:text-foreground transition-colors",onClick:()=>t(!1),children:a("Timestamp Photo Tool")}),o.jsx("a",{href:s("/photo-metadata-tool"),className:"px-3 py-2 rounded-lg text-sm text-muted-foreground hover:bg-secondary hover:text-foreground transition-colors",onClick:()=>t(!1),children:a("Photo Metadata Tool")}),o.jsx("a",{href:s("/add-gps-to-photos"),className:"px-3 py-2 rounded-lg text-sm text-muted-foreground hover:bg-secondary hover:text-foreground transition-colors",onClick:()=>t(!1),children:a("Add GPS to Photos")}),o.jsx("a",{href:s("/photo-report"),className:"px-3 py-2 rounded-lg text-sm text-muted-foreground hover:bg-secondary hover:text-foreground transition-colors",onClick:()=>t(!1),children:a("Photo Report Maker")}),o.jsx("a",{href:s("/before-after-photo"),className:"px-3 py-2 rounded-lg text-sm text-muted-foreground hover:bg-secondary hover:text-foreground transition-colors",onClick:()=>t(!1),children:a("Before & After Maker")}),o.jsx("a",{href:s("/verify"),className:"px-3 py-2 rounded-lg text-sm text-muted-foreground hover:bg-secondary hover:text-foreground transition-colors",onClick:()=>t(!1),children:a("Verify a Photo")}),o.jsx("a",{href:s("/gigstamper"),className:"px-3 py-2 rounded-lg text-sm text-muted-foreground hover:bg-secondary hover:text-foreground transition-colors",onClick:()=>t(!1),children:a("GigStamper for Gig Workers")})]})]}),o.jsx("div",{className:"mt-3 pt-3 border-t border-border/60",children:o.jsx(Gh,{className:"w-full justify-start gap-2 text-muted-foreground"})})]})]})}const Wh="/assets/app-store-badge-CqQ6o6j7.webp",Uj="/assets/google-play-badge-BatBgdFW.webp";function gi(){return typeof navigator>"u"?"":navigator.userAgent||navigator.vendor||""}function qh(e=gi()){return/iPad|iPhone|iPod/i.test(e)?!0:typeof navigator<"u"&&navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1}function zj(e=gi()){return/Android/i.test(e)}function $j(e=gi()){return/Instagram|Barcelona/i.test(e)}function Gj(e=gi()){return/FBAN|FBAV|FB_IAB|Messenger/i.test(e)}function ac(e=gi()){return $j(e)||Gj(e)}function Qj(e){if(typeof window>"u"||!ac())return!1;if(zj()){const t=e.replace(/^https?:\/\//,"");return window.location.href=`intent://${t}#Intent;scheme=https;end`,!0}return qh()&&$j()?(window.location.href=`instagram://extbrowser/?url=${encodeURIComponent(e)}`,!0):qh()&&Gj()?(window.open(`x-safari-${e}`,"_blank"),!0):!1}function Wj(e,t=1800){if(typeof window>"u")return()=>{};let n=!1;const r=()=>{n=!0},a=()=>{document.visibilityState==="hidden"&&r()};document.addEventListener("visibilitychange",a),window.addEventListener("pagehide",r),window.addEventListener("blur",r);const s=()=>{clearTimeout(i),document.removeEventListener("visibilitychange",a),window.removeEventListener("pagehide",r),window.removeEventListener("blur",r)},i=setTimeout(()=>{s(),n||e()},t);return s}const Vh=h.forwardRef(function({href:t,onClick:n,children:r,...a}
503,s){const i=re(),[l,c]=h.useState(!1),[d,u]=h.useState(!1),[m,p]=h.useState(!1),f=h.useRef(null);h.useEffect(()=>()=>{var v;return(v=f.current)==null?void 0:v.call(f)},[]);const w=h.useCallback(()=>{var v;(v=f.current)==null||v.call(f),Qj(t)?f.current=Wj(()=>c(!0)):c(!0)},[t]),y=async()=>{try{await navigator.clipboard.writeText(t),u(!0)}catch{p(!0)}};return o.jsxs(o.Fragment,{children:[o.jsx("a",{ref:s,href:t,onClick:v=>{n==null||n(v),ac()&&(v.preventDefault(),w())},...a,children:r}),l&&typeof document<"u"&&qr.createPortal(o.jsxs("div",{className:"fixed inset-0 z-[100] flex items-end justify-center p-4 sm:items-center",role:"dialog","aria-modal":"true","aria-label":i("Open in your browser"),children:[o.jsx("div",{className:"absolute inset-0 bg-black/50 backdrop-blur-sm",onClick:()=>c(!1)}),o.jsxs("div",{className:"relative w-full max-w-sm rounded-3xl border border-border bg-background p-8 text-center shadow-2xl",children:[o.jsx("button",{onClick:()=>c(!1),"aria-label":i("Close"),className:"absolute right-4 top-4 flex h-8 w-8 items-center justify-center rounded-full text-muted-foreground transition-colors hover:text-foreground",children:"â"}),o.jsx("h2",{className:"mb-3 text-2xl font-bold tracking-tight",children:i("Almost there")}),o.jsx("p",{className:"mb-6 text-sm leading-relaxed text-muted-foreground",children:i("This in-app browser can't open the app store. Let's hop over to your browser instead.")}),o.jsx("button",{onClick:w,className:"mb-4 w-full rounded-full bg-primary px-6 py-3.5 text-sm font-semibold text-primary-foreground transition-colors hover:bg-primary/90",children:i("Open in my browser")}),o.jsx("p",{className:"mb-4 text-xs leading-relaxed text-muted-foreground",children:i("Not working? Tap the â¢â¢â¢ menu in the corner and choose Open in browser.")}),o.jsx("button",{onClick:y,className:"text-xs font-semibold text-muted-foreground underline underline-offset-4 transition-colors hover:text-foreground",children:i(d?"Link copied":"Copy link")}),m&&o.jsx("p",{className:"mt-3 select-all break-all text-xs text-muted-foreground",children:t})]})]}),document.body)]})}),f4="https://apps.apple.com/us/app/timestamp-it-photo-stamper/id327756085",g4="https://play.google.com/store/apps/details?id=com.shabzco.timestampit_android",y4=250/84,x4=236/70;function Hn({location:e,height:t=56,stacked:n=!1,onClick:r,priority:a=!1,className:s=""}){const i=re(),l=n?"flex flex-col gap-3 items-center":"flex flex-col sm:flex-row gap-4 justify-center items-center",c=t,d="inline-flex items-center transition-transform duration-300 hover:scale-[1.02] active:scale-[0.98]";return o.jsxs("div",{className:`${l} ${s}`,children:[o.jsx(Vh,{href:f4,target:"_blank",rel:"noopener noreferrer",className:d,style:{height:c},"data-umami-event":"download-click","data-umami-event-platform":"ios","data-umami-event-location":e,"aria-label":i("Download on the App Store"),onClick:r,children:o.jsx("img",{src:Wh,alt:i("Download on the App Store"),width:Math.round(c*y4),height:c,className:"h-full w-auto",decoding:"async",...a?{fetchpriority:"high"}:{loading:"lazy"}})}),o.jsx(Vh,{href:g4,target:"_blank",rel:"noopener noreferrer",className:d,style:{height:c},"data-umami-event":"download-click","data-umami-event-platform":"android","data-umami-event-location":e,"aria-label":i("Get it on Google Play"),onClick:r,children:o.jsx("img",{src:Uj,alt:i("Get it on Google Play"),width:Math.round(c*x4),height:c,className:"h-full w-auto",loading:"lazy",decoding:"async"})})]})}const v4="/assets/app-light-DqNfGMTQ.webp",b4="/assets/app-dark-DD6d4EVR.webp",w4="/assets/dashboard-light-CDkdwzT5.webp",j4="/assets/dashboard-dark-DgpqcecP.webp",N4="/assets/dashboard-light-1iOaoa2v.webp 640w, /assets/dashboard-light-EOr9i5pt.webp 960w, /assets/dashboard-light-cQZI7B3f.webp 1280w, /assets/dashboard-light-DnSGa0GM.webp 1800w",A4="/assets/dashboard-dark-CeJmqn5E.webp 640w, /assets/dashboard-dark-DyOHcUxa.webp 960w, /assets/dashboard-dark-DGwDCmMt.webp 1280w, /assets/dashboard-dark-DHdIcgSO.webp 1800w",E4="/assets/app-light-1F4K3xpz.webp 288w, /assets/app-light-B49a9Soo.webp 432w, /assets/app-light-B0GRSC-B.webp 700w",S4="/assets/app-dark-Be8uoCSb.webp 288w, /assets/app-dark-BIJLkHQE.webp 432w, /assets/app-dark-Ddpovc5z.webp 700w";let _y=!1;function I4(){const[e]=h.useState(()=>!_y);return h.useEffect(()=>{_y=!0},[]),e}const By="(min-width: 960px) 896px, 100vw",Oy="(min-width: 1024px) 288px, (min-width: 768px) 240px, (min-width: 640px) 192px, 144px";function k4(){const e=re(),t=I4();return o.jsxs("section",{className:"home-hero relative overflow-hidden pt-28 pb-16 lg:pt-36 lg:pb-24",children:[o.jsx("div",{className:"absolute inset-0 hero-gradient pointer-events-none"}),o.jsxs("div",{className:"container relative z-10",children:[o.jsxs("div",{className:`mx-auto max-w-4xl text-center ${t?"":"animate-fade-up"}`,children:[o.jsx("h1",{className:"home-hero-title",children:e("Stamp every photo. Sync every job.")}),o.jsx("p",{className:"mt-5 mx-auto max-w-2xl text-base text-foreground
503/75 md:text-lg",children:e("Timestamp It is the timestamp camera that adds clean, readable time, date, and location stamps to photos in seconds, so teams keep project records clear and defensible.")}),o.jsx(Hn,{location:"hero",height:44,priority:!0,className:"mt-7"})]}),o.jsxs("div",{className:`relative mx-auto mt-24 w-full max-w-4xl lg:mt-32 ${t?"":"animate-fade-up-delayed"}`,children:[o.jsxs("div",{className:"relative aspect-[16/10] w-full overflow-hidden rounded-2xl border border-border/60 bg-card shadow-2xl",children:[o.jsx("img",{src:w4,srcSet:N4,sizes:By,alt:e("Timestamp It web dashboard"),className:"block h-full w-full object-cover object-top dark:hidden",decoding:"async",fetchpriority:"high"}),o.jsx("img",{src:j4,srcSet:A4,sizes:By,alt:"","aria-hidden":!0,className:"hidden h-full w-full object-cover object-top dark:block",decoding:"async"})]}),o.jsx("div",{className:"absolute -bottom-6 right-4 w-36 rotate-3 sm:-bottom-8 sm:right-8 sm:w-48 md:right-12 md:w-60 lg:-bottom-12 lg:right-16 lg:w-72",children:o.jsxs("div",{className:"overflow-hidden rounded-[1.25rem] border-[4px] border-slate-900 bg-slate-900 shadow-2xl dark:border-slate-700 dark:bg-slate-700 sm:rounded-[1.75rem] sm:border-[6px] lg:rounded-[2.25rem] lg:border-[8px]",children:[o.jsx("img",{src:v4,srcSet:E4,sizes:Oy,width:700,height:1518,alt:e("Timestamp It mobile app projects view"),className:"block h-auto w-full dark:hidden",decoding:"async",fetchpriority:"high"}),o.jsx("img",{src:b4,srcSet:S4,sizes:Oy,width:700,height:1518,alt:"","aria-hidden":!0,className:"hidden h-auto w-full dark:block",decoding:"async"})]})})]})]})]})}function C4(){const e=re();return o.jsx("section",{"aria-label":e("Why teams trust Timestamp It"),className:"border-y border-border/60 bg-muted/30",children:o.jsxs("div",{className:"container py-12 md:py-16",children:[o.jsx("p",{className:"text-center text-xs font-semibold uppercase tracking-[0.24em] text-muted-foreground md:text-sm",children:e("The date & time stamp app trusted by 700K+ field pros worldwide")}),o.jsxs("div",{className:"mt-8 flex flex-col items-center justify-center gap-10 md:mt-10 sm:flex-row sm:gap-16 md:gap-24",children:[o.jsxs("div",{className:"flex flex-col items-center gap-2 text-center",children:[o.jsx("div",{className:"flex","aria-hidden":!0,children:[...Array(5)].map((t,n)=>o.jsx(Hr,{className:"h-5 w-5 fill-primary text-primary"},n))}),o.jsx("div",{className:"text-2xl font-bold tracking-tight",children:`${Ga} / 5`}),o.jsx("div",{className:"text-xs text-muted-foreground",children:e("5,300+ App Store & Google Play reviews")})]}),o.jsxs("div",{className:"flex flex-col items-center gap-2 text-center",children:[o.jsx("div",{className:"text-3xl font-bold tracking-tight md:text-4xl",children:"700K+"}),o.jsx("div",{className:"text-xs text-muted-foreground",children:e("Field pros and teams stamping photos")})]})]})]})})}const T4="https://apps.apple.com/account/subscriptions",P4="https://play.google.com/store/account/subscriptions",R4="https://app.timestampitapp.com/account",qj=e=>e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,""),Nl=e=>qj(e),ms=(e,t)=>`${Nl(e)}-${qj(t)}`,D4={"stamping-photos-customising-the-stamp":"stamping-photos-customizing-the-stamp","account-settings-managing-or-cancelling-your-subscription":"account-settings-managing-or-canceling-your-subscription"},M4=e=>D4[e]??e,ia=[{heading:"Stamping Photos",items:[{icon:Dc,title:"How do I stamp a photo?",body:"Open the Photos tab and tap the camera button to take a new photo, or tap any photo already in the grid to stamp one you took earlier. Each photo is automatically overlaid with the date, time, location, and any other details you've configured in Settings â Edit your Timestamp. The flow is the same on iPhone, iPad, and Android."},{icon:LI,title:"Customizing the stamp",body:"Go to Settings â Edit your Timestamp to change the font, text color, date & time format, caption, and position of the stamp. Your changes apply to every photo you stamp from that point on."},{icon:RI,title:"Enable location permissions for photo stamps",body:`Location stamps depend on location access in both Timestamp It and your device's Camera app. 504 505For Timestamp It on iPhone: open Settings â Privacy & Security â Location Services â Timestamp It, then choose While Using the App and turn on Precise Location. 506 507For Camera on iPhone: open Settings â Privacy & Security â Location Services â Camera, then choose While Using the App and turn on Precise Location. 508 509If you're using Android, open Settings â Apps â Timestamp It â Permissions â Location and allow access, then do the same for your Camera app. After updating permissions, fully close and reopen the app before taking or stamping photos.`},{icon:kI,title:"Stamping multiple photos at once",body:"In the Photos tab, tap an unstamped photo to select it, then tap each additional photo you want to include â there's no press-and-hold step, every tap adds or removes a photo. Tap the stamp button to apply your overlay to all of them in one go. A single batch holds up to 250 photos; stamp anything beyond that as a second batch."},{icon:qw,title:"Deleting originals after stamping",body:"Enable 'Delete originals after stamping' in Settings â Preferences to have the app prompt you to remove the un-stamped original each time you stamp a photo. You'll always be asked to confirm before anything is deleted. Nothing is removed automatically."}]},{heading:"Projects",items:[{icon:EI,title:"What is a project?",body:"A project groups related stamped photos and videos together, for example a job site inspection, a construction progress log, or an event. Every stamped photo belongs to a project so you can find it later."},{icon:fI,title:"Creating a project",body:"Open the Projects tab and tap the + button. Enter a project name and, if you're signed in, optionally assign it to a team. Tap Create to save. You can also create a project on the fly while stamping a photo."},{icon:Rg,title:"Local vs. team projects",body:"Local projects are stored only on your device and aren't visible to anyone else. Team projects are synced to the cloud and shared with every member of the team, which works well when multiple people are adding photos."},{icon:HI,title:"Sharing a project link",body:"Open a project, then tap Manage Project in the banner or tap the project name in the navigation bar. Toggle Share Link on to generate a public URL that lets anyone view the project in read-only mode in a browser. Set the project to Private to restrict access to project members only."}]},{heading:"Teams",items:[{icon:lp,title:"Creating a team",body:"Tap the + button in the Projects tab, then choose a team from the Team picker or tap 'Create Teamâ¦'. Enter a team name, optionally add members by email r
509ight away, and tap Create. You become the team Owner."},{icon:ii,title:"Team roles & permissions",body:`Owner â Full control: invite & remove members, manage all projects, rename or delete the team. 510 511Editor â Can invite members and create or edit team projects, but cannot delete the team. 512 513Viewer â Can view all team projects and photos, but cannot add, edit, or delete anything.`},{icon:OI,title:"Managing your team",body:"In the Projects list, find your team's section header. Tap the Manage button on the right side of the header. Owners see 'Manage', other members see 'View'. From there you can rename the team, invite new members, see pending invites, remove members, share an invite link or QR code, and leave or delete the team."},{icon:TI,title:"Leaving or deleting a team",body:"In Team Management, scroll to the bottom and tap Leave Team or Delete Team if you're the Owner. Leaving removes your access to all team projects. Deleting permanently removes the team for everyone. Team projects become unassigned but your stamped photos are not deleted."}]},{heading:"Inviting People",items:[{icon:sp,title:"Inviting by email",body:"In Team Management tap Invite member â Enter Email and type the person's email address. If they already have an account they're added straight away. Otherwise they receive an email containing an 8-character invite code valid for 7 days."},{icon:GI,title:"Inviting from Contacts",body:"Tap Invite member â Choose from Contacts to pick someone directly from your address book. If the contact has multiple email addresses, you'll be asked which one to use. The app sends them an invite email automatically."},{icon:Mc,title:"Sharing an invite link",body:"In Team Management tap Share Invite Link. This creates a reusable link you can send via any messaging app, email, or AirDrop. Anyone who opens the link and is signed in is added to the team immediately as an Editor."},{icon:Pg,title:"Showing a QR code",body:`On iPhone and iPad, open Team Management and tap Show QR Code. Hold the screen up so nearby colleagues can scan it with their phone's camera and join the team without typing anything. 514 515Displaying a QR code is coming soon to Android. Until then, Android owners and editors can add people from Team Management by email or from Contacts, and the invite email carries an 8-character code the new member can enter on any device.`}]},{heading:"Joining a Team",items:[{icon:PI,title:"Accepting an email invite",body:"Open your invite email and tap the link. The app opens and adds you to the team automatically. You can also copy the 8-character code from the email, go to Settings â Account â Join Team, paste the code, and tap Join Team."},{icon:Pg,title:"Scanning a QR code",body:`Ask a team Owner or Editor to show the team's QR code from Team Management on an iPhone or iPad. Scan it with your phone's camera and the invite opens in the app, confirming your membership right away. 516 517Scanning works from an Android phone as well as an iPhone â only the displaying side needs to be on iOS for now. If nobody nearby can show a code, ask to be invited by email and use the 8-character code instead.`},{icon:Rg,title:"Opening a share link",body:"If someone sends you an invite link, tap it in Messages, email, or any browser. The app opens, or prompts you to install it, and adds you to the team once you're signed in."}]},{heading:"Sync & Cloud",items:[{icon:xI,title:"How syncing works",body:"Team projects sync automatically in the background. When you add photos to a team project they upload to the cloud, and your teammates see them the next time their app refreshes. A cloud icon on the project card shows the sync status."},{icon:VI,title:"WiFi-only sync",body:"Enable Sync on WiFi only in Settings â Preferences to avoid using cellular data for uploads. While active, photo uploads are paused until you connect to WiFi."},{icon:yI,title:"Unsynced projects",body:"If you created projects before signing in, they appear as local projects. Open the project, tap Manage Project, and pick a team from the Team picker â that starts syncing it to the cloud and makes it visible to your teammates."}]},{heading:"Account & Settings",items:[{icon:gI,title:"Creating an account",body:"Go to Settings â Sign In or Create Account. On iPhone and iPad you can sign in with Apple, Google, or a magic link sent to your email; on Android, with Google or a magic link. An account is free and required to create teams and sync projects across devices."},{icon:jI,title:"Timestamp It Pro",body:"On every platform, Pro unlocks all fonts, unlimited stamping, cloud backup, and team collaboration. On iPhone and iPad it also adds StampCam and PDF, Excel, and ZIP export, which are coming to Android. Go to Settings â Upgrade to Timestamp It Pro to see the current subscription options."},{icon:bI,title:"Managing or canceling your subscription",body:`Pro is billed by wherever you subscribed â the App Store, Google Play, or our website â so that's where you manage it. 518 519Subscribed on iPhone or iPad: open the iOS Settings app, tap your name at the top, then Subscriptions, then Timestamp It. 520 521Subscribed on Android: open the Google Play Store app, tap your profile icon, then Payments & subscriptions â Subscriptions, then Timestamp It. 522 523Subscribed on the web: sign in at app.timestampitapp.com, open your account, and choose Manage subscription â it opens the secure Stripe customer portal. 524 525Wherever you subscribed, you can view your renewal date, change your plan, or cancel. Canceling stops future renewals and you keep Pro access until the end of your current billing period.`,actions:[{url:T4,title:"Manage on the App Store"},{url:P4,title:"Manage on Google Play"},{url:R4,title:"Manage on the web"}]}]}],_4=[{question:"How do I stamp a photo?",section:"Stamping Photos",title:"How do I stamp a photo?"},{question:"How do I change the stamp's font, color, or position?",section:"Stamping Photos",title:"Customizing the stamp"},{question:"Why isn't the location showing on my photos?",section:"Stamping Photos",title:"Enable location permissions for photo stamps"},{question:"How many photos can I stamp at once?",section:"Stamping Photos",title:"Stamping multiple photos at once"},{question:"What do I get with Timestamp It Pro?",section:"Account & Settings",title:"Timestamp It Pro"},{question:"How do I cancel my subscription?",section:"Account & Settings",title:"Managing or canceling your subscription"}],B4=_4.map(({question:e,section:t,title:n})=>{const r=ia.find(s=>s.heading===t),a=r==null?void 0:r.items.find(s=>s.title===n);if(!r||!a)throw new Error(`Featured question missing: ${t} / ${n}`);return{question:e,section:r.heading,item:a}}),Vj=(e,t)=>
525({"@type":"Question",name:t(e.title),acceptedAnswer:{"@type":"Answer",text:t(e.body).replace(/\n+/g," ")}}),O4=e=>({"@context":"https://schema.org","@type":"FAQPage",mainEntity:ia.flatMap(t=>t.items.map(n=>Vj(n,e)))}),F4=[{section:"Stamping Photos",title:"How do I stamp a photo?"},{section:"Stamping Photos",title:"Customizing the stamp"},{section:"Stamping Photos",title:"Enable location permissions for photo stamps"},{section:"Stamping Photos",title:"Stamping multiple photos at once"},{section:"Projects",title:"What is a project?"},{section:"Projects",title:"Sharing a project link"},{section:"Teams",title:"Creating a team"},{section:"Sync & Cloud",title:"How syncing works"},{section:"Account & Settings",title:"Creating an account"},{section:"Account & Settings",title:"Timestamp It Pro"}],Xj=F4.map(({section:e,title:t})=>{const n=ia.find(a=>a.heading===e),r=n==null?void 0:n.items.find(a=>a.title===t);if(!n||!r)throw new Error(`Home FAQ item missing: ${e} / ${t}`);return{section:n.heading,item:r}}),L4=e=>({"@context":"https://schema.org","@type":"FAQPage",mainEntity:Xj.map(({item:t})=>Vj(t,e))});function H4(){const e=re(),t=qe(),n=h.useMemo(()=>L4(e),[e]);return o.jsxs("section",{className:"section-shell relative",children:[o.jsxs("div",{className:"container",children:[o.jsxs("div",{className:"mx-auto max-w-3xl text-center mb-10",children:[o.jsx("span",{className:"section-eyebrow",children:e("Common questions")}),o.jsx("h2",{className:"section-title",children:e("How it works, in a few quick answers")}),o.jsx("p",{className:"section-subtitle mt-4",children:e("Straight answers about stamping photos so you can prove when a job was done and show where it took place, pulled from the same help we ship inside the app.")})]}),o.jsx("div",{className:"mx-auto max-w-3xl panel rounded-3xl p-4 md:p-6",children:Xj.map(({section:r,item:a},s)=>{const i=a.icon,l=ms(r,a.title);return o.jsxs("details",{id:l,className:`group border-border/60 ${s>0?"border-t":""}`,children:[o.jsxs("summary",{className:"flex cursor-pointer list-none items-start gap-4 py-5 text-left",children:[o.jsx("span",{className:"mt-0.5 flex h-11 w-11 shrink-0 items-center justify-center rounded-2xl border border-primary/20 bg-primary/10 text-primary",children:o.jsx(i,{className:"h-5 w-5"})}),o.jsx("span",{className:"flex-1 pt-1 text-base font-semibold leading-6 md:text-lg",children:e(a.title)}),o.jsx(gn,{className:"mt-2 h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200 group-open:rotate-180"})]}),o.jsx("div",{className:"pl-[3.75rem] pb-5",children:o.jsx("p",{className:"max-w-3xl whitespace-pre-line text-sm leading-7 text-muted-foreground md:text-[15px]",children:e(a.body)})})]},l)})}),o.jsx("div",{className:"mt-8 flex justify-center",children:o.jsx(ne,{variant:"outline",size:"lg",asChild:!0,children:o.jsxs("a",{href:t("/how-it-works"),className:"gap-2",children:[e("See the full help guide"),o.jsx(_a,{className:"w-4 h-4"})]})})})]}),o.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(n)}})]})}const Yj="/assets/carousel4-CXeoY8B6.jpg",Kj="/assets/edit-stamp-dark-D4MNDKfQ.webp",Jj="/assets/share-project-light-erI7rT1D.webp",Zj="/assets/share-project-dark-BpHwaZ_m.webp",e2="/assets/ready-share-light-DuXb3BSi.webp",t2="/assets/ready-share-dark-chvwXr6-.webp",U4="/assets/carousel4-C5W-uMFT.webp 320w, /assets/carousel4-zFrql5su.webp 480w, /assets/carousel4-C-N5Ha2Z.webp 750w",z4="/assets/camera-B1RDIJe1.webp 320w, /assets/camera-CudUNzrk.webp 480w, /assets/camera-Bz1nGlHz.webp 800w",$4="/assets/edit-stamp-light-BlWDDoC8.webp 320w, /assets/edit-stamp-light-DlAIW9of.webp 480w, /assets/edit-stamp-light-Bl0iIQht.webp 800w",G4="/assets/edit-stamp-dark-pZIBWQQR.webp 320w, /assets/edit-stamp-dark-B3B-Oyd0.webp 480w, /assets/edit-stamp-dark-CM-H_92s.webp 800w",Q4="/assets/share-project-light-BtkmLYUV.webp 320w, /assets/share-project-light-CRF-drys.webp 480w, /assets/share-project-light-DP77smbi.webp 800w",W4="/assets/share-project-dark-BTZ20CmK.webp 320w, /assets/share-project-dark-DsyH4v5B.webp 480w, /assets/share-project-dark-DIKtDrvu.webp 800w",q4="/assets/ready-share-light-b6LbvwVH.webp 320w, /assets/ready-share-light-nhXeFpPh.webp 480w, /assets/ready-share-light-Dn8addal.webp 800w",V4="/assets/ready-share-dark-B6c6hwhs.webp 320w, /assets/ready-share-dark-Cs_n6rUo.webp 480w, /assets/ready-share-dark-BoToOMqu.webp 800w",sc={[Yj]:U4,[Up]:z4,[zp]:$4,[Kj]:G4,[Jj]:Q4,[Zj]:W4,[e2]:q4,[t2]:V4},ic="(min-width: 768px) 272px, 244px",X4=[{eyebrow:"Stamp",title:"Add timestamps and GPS to any photo, in one tap",
525image:Up,imageAlt:"Capture photos with the in-app camera",secondaryImage:zp,secondaryImageDark:Kj,secondaryImageAlt:"Customize your timestamp",phoneFrame:!0,items:[{icon:$I,title:"One-Tap Stamping",description:"Add timestamps and dates to your photos instantly with a single tap."},{icon:Ww,title:"Full Customization",description:"Choose fonts, colors, positions, and date formats that match your style."},{icon:Aa,title:"Location Stamps",description:"Add GPS coordinates or location names to geo-tag your photos."}]},{eyebrow:"Organize",title:"Document jobs in batches and stay in sync",image:Yj,imageAlt:"Organize stamped photos into projects",phoneFrame:!0,items:[{icon:Dc,title:"Batch Processing",description:"Stamp multiple photos at once. Perfect for documenting projects efficiently."},{icon:Gw,title:"Cloud Sync",description:"Keep projects synced across all your devices with optional, encrypted cloud backup."}]},{eyebrow:"Share",title:"Hand off photos in a way teams can verify",image:Jj,imageDark:Zj,imageAlt:"Share project with teammates and clients",secondaryImage:e2,secondaryImageDark:t2,secondaryImageAlt:"Export and share stamped photos as PDF or zip",items:[{icon:lp,title:"Team Collaboration",description:"Share projects with teammates using invite links and collaborate in real time."},{icon:Mc,title:"Client-Ready Share Links",description:"Send clients a single link to a clean, view-only gallery of stamped photos."},{icon:yh,title:"Export as PDF or Zip",description:"Bundle stamped photos into a polished PDF report or a zip archive in one tap."}]}];function Y4({slides:e,intervalMs:t=4500}){const[n,r]=h.useState(0);return h.useEffect(()=>{if(e.length<2)return;const a=window.setInterval(()=>{r(s=>(s+1)%e.length)},t);return()=>window.clearInterval(a)},[e.length,t]),o.jsx("div",{className:"w-full max-w-[16rem] md:max-w-[18rem]",children:o.jsx("div",{className:"relative aspect-[9/19.5] overflow-hidden rounded-[1.75rem] border-[6px] border-slate-900 bg-slate-900 shadow-2xl dark:border-slate-700 dark:bg-slate-700 md:rounded-[2.25rem] md:border-[8px]",children:e.map((a,s)=>o.jsxs("div",{className:`absolute inset-0 transition-opacity duration-700 ease-out ${s===n?"opacity-100":"opacity-0"}`,"aria-hidden":s!==n,children:[o.jsx("img",{src:a.light,srcSet:sc[a.light],sizes:ic,alt:s===n?a.alt:"",className:`${a.dark?"block dark:hidden":""} h-full w-full object-cover object-top`,loading:"lazy",decoding:"async"}),a.dark&&o.jsx("img",{src:a.dark,srcSet:sc[a.dark],sizes:ic,alt:"","aria-hidden":!0,className:"hidden h-full w-full object-cover object-top dark:block",loading:"lazy",decoding:"async"})]},a.light))})})}function K4(){const e=re(),t=qe();return o.jsx("section",{id:"features",className:"section-shell relative !pb-6",children:o.jsxs("div",{className:"container",children:[o.jsxs("div",{className:"mb-16 text-center",children:[o.jsx("span",{className:"section-eyebrow",children:e("Features")}),o.jsx("h2",{className:"section-title",children:e("Everything you need to document your work")}),o.jsx("p",{className:"section-subtitle",children:e("Trusted by construction workers, real estate agents, investigators, property managers, and professionals worldwide.")})]}),o.jsx("div",{className:"space-y-20 md:space-y-28",children:X4.map((n,r)=>{const a=r%2===1;return o.jsxs("article",{className:"grid items-center gap-10 md:gap-16 lg:grid-cols-2",children:[o.jsxs("div",{className:a?"lg:order-2":"",children:[o.jsx("span",{className:"section-eyebrow",children:e(n.eyebrow)}),o.jsx("h3",{className:"mt-3 text-3xl font-semibold tracking-tight md:text-4xl",children:e(n.title)}),o.jsx("ul",{className:"mt-6 space-y-5",children:n.items.map(s=>o.jsxs("li",{className:"flex gap-4",children:[o.jsx("span",{className:"mt-1 flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-primary/30 bg-primary/10 text-primary",children:o.jsx(s.icon,{className:"h-5 w-5"})}),o.jsxs("div",{children:[o.jsx("h4",{className:"text-base font-semibold md:text-lg",children:e(s.title)}),o.jsx("p",{className:"mt-1 leading-relaxed text-foreground/70",children:e(s.description)})]})]},s.title))})]}),o.jsx("div",{className:`flex justify-center ${a?"lg:order-1":""}`,children:n.secondaryImage?o.jsx(Y4,{slides:[{light:n.image,dark:n.imageDark,alt:e(n.imageAlt)},{light:n.secondaryImage,dark:n.secondaryImageDark,alt:e(n.secondaryImageAlt??n.imageAlt)}]}):n.phoneFrame?o.jsx("div",{className:"w-full max-w-[16rem] md:max-w-[18rem]",children:o.jsxs("div",{className:"relative aspect-[9/19.5] overflow-hidden rounded-[1.75rem] border-[6px] border-slate-900 bg-slate-900 shadow-2xl dark:border-slate-700 dark:bg-slate-700 md:rounded-[2.25rem] md:border-[8px]",children:[o.jsx("img",{src:n.image,srcSet:sc[n.image],sizes:ic,alt:e(n.imageAlt),className:`${n.imageDark?"block dark:hidden":""} h-full w-full object-cover object-top`,loading:"lazy",decoding:"async"}),n.imageDark&&o.jsx("img",{src:n.imageDark,srcSet:sc[n.imageDark],sizes:ic,alt:"","aria-hidden":!0,
525className:"hidden h-full w-full object-cover object-top dark:block",loading:"lazy",decoding:"async"})]})}):o.jsx("div",{className:"panel w-full max-w-xs rounded-3xl p-4 md:max-w-sm md:p-5",children:o.jsx("div",{className:"aspect-[9/16] overflow-hidden rounded-2xl bg-card",children:o.jsx("img",{src:n.image,alt:e(n.imageAlt),className:"h-full w-full object-contain",loading:"lazy",decoding:"async"})})})})]},n.title)})}),o.jsxs("div",{className:"mt-20 mx-auto max-w-2xl rounded-2xl border border-primary/20 bg-primary/5 p-6 md:p-8 text-center",children:[o.jsx("h3",{className:"text-xl md:text-2xl font-semibold mb-2",children:e("Get your team on Timestamp It")}),o.jsx("p",{className:"text-foreground/70 mb-6",children:e("Roll out photo documentation across your crew in minutes â no training required.")}),o.jsx(ne,{variant:"hero",size:"lg",asChild:!0,children:o.jsxs("a",{href:t("/pricing"),className:"gap-2",children:[e("Onboard your team"),o.jsx(_a,{className:"w-4 h-4"})]})})]})]})})}const J4=[{icon:Uw,href:"/for/construction",title:"Construction & Contractors",description:"Document project progress with accurate timestamps so every milestone is defensible.",bullets:["Job site progress photos","Inspections and punchlists","Before & after comparisons"]},{icon:ip,href:"/for/private-investigation",title:"Private Investigators",description:"Create time-stamped evidence that holds up, with locations and captions for context.",bullets:["Time-stamped evidence","Location and caption support","Court-ready records"]},{icon:Dc,href:"/for/real-estate",title:"Real Estate Agents",description:"Document property conditions, showings, and listing photos with professional timestamps.",bullets:["Property condition reports","Listing photo verification","Showing documentation"]},{icon:Qw,href:"/for/property-management",title:"Property Managers",description:"Track unit conditions, maintenance, and move-in/move-out inspections with verifiable timestamps.",bullets:["Move-in & move-out inspections","Maintenance tracking","Tenant condition reports"]}];function Z4(){const e=re(),t=qe();return o.jsx("section",{className:"section-shell relative",children:o.jsxs("div",{className:"container",children:[o.jsxs("div",{className:"mb-16 text-center",children:[o.jsx("span",{className:"section-eyebrow",children:e("Who it's for")}),o.jsx("h2",{className:"section-title",children:e("Built for people who document real-world work")}),o.jsx("p",{className:"section-subtitle",children:e("Join thousands of users who trust Timestamp It for their photo documentation needs.")})]}),o.jsx("div",{className:"grid grid-cols-1 gap-6 md:grid-cols-2",children:J4.map(n=>o.jsxs("article",{className:"panel rounded-3xl p-7 md:p-8",children:[o.jsx("div",{className:"mb-5 flex h-12 w-12 items-center justify-center rounded-xl border border-primary/30 bg-primary/10 text-primary",children:o.jsx(n.icon,{className:"h-6 w-6"})}),o.jsx("h3",{className:"mb-3 text-2xl font-semibold",children:e(n.title)}),o.jsx("p",{className:"mb-5 text-foreground/70",children:e(n.description)}),o.jsx("ul",{className:"space-y-2",children:n.bullets.map(r=>o.jsxs("li",{className:"flex items-start gap-2 text-sm text-foreground/75",children:[o.jsx(tr,{className:"mt-0.5 h-4 w-4 shrink-0 text-primary","aria-hidden":!0}),o.jsx("span",{children:e(r)})]},r))}),o.jsxs("a",{href:t(n.href),className:"group mt-6 inline-flex items-center gap-1.5 text-sm font-semibold text-primary hover:underline",children:[e("See how it works for {audience}",{audience:e(n.title)}),o.jsx(_a,{className:"h-4 w-4 transition-transform group-hover:translate-x-0.5"})]})]},n.title))})]})})}const e_=[{quote:"This App works just fine for me. Have used it once a week for 3 years. One issue I had was resolved right away by Customer Service.",author:"Outfall dude",rating:5},{quote:"I rarely buy apps but I use this all the time with my real estate business. Does exactly what I need and nothing more. Super simple!",author:"Moji Broker",rating:5},{quote:"Downloaded in seconds. Asked which photos in my roll to add stamp to selected photos while preserving originals. Free. So what about ads who cares. Thank y
525ou!!",author:"Body777",rating:5}];function n2(){const e=re();return o.jsx("section",{className:"section-shell relative",children:o.jsxs("div",{className:"container",children:[o.jsxs("div",{className:"mb-16 text-center",children:[o.jsx("span",{className:"section-eyebrow",children:e("Reviews")}),o.jsx("h2",{className:"section-title",children:e("Loved by thousands of users")}),o.jsxs("div",{className:"flex items-center justify-center gap-2 mt-4",children:[o.jsx("div",{className:"flex",children:[...Array(5)].map((t,n)=>o.jsx(Hr,{className:"w-6 h-6 fill-primary text-primary"},n))}),o.jsx("span",{className:"text-2xl font-bold",children:Ga}),o.jsx("span",{className:"text-muted-foreground",children:e("from 5.3K+ ratings")})]})]}),o.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:e_.map((t,n)=>o.jsxs("div",{className:`home-feature-card rounded-3xl p-6 flex flex-col ${n===1?"md:-translate-y-6":""}`,children:[o.jsx("div",{className:"flex mb-4",children:[...Array(t.rating)].map((r,a)=>o.jsx(Hr,{className:"w-5 h-5 fill-primary text-primary"},a))}),o.jsxs("blockquote",{className:"text-foreground/90 text-lg mb-4 flex-1 italic",children:['"',t.quote,'"']}),o.jsxs("cite",{className:"text-muted-foreground not-italic font-medium",children:["â ",t.author]})]},n))})]})})}const t_="/assets/app-icon-UNK7pjYn.webp";function n_(){const e=re();return o.jsxs("section",{className:"section-shell relative overflow-hidden",children:[o.jsx("div",{className:"absolute inset-0 hero-gradient pointer-events-none"}),o.jsx("div",{className:"container relative z-10",children:o.jsxs("div",{className:"home-cta-shell mx-auto max-w-4xl text-center",children:[o.jsx("img",{src:t_,srcSet:td,sizes:"80px",alt:"Timestamp It",className:"w-20 h-20 rounded-2xl mx-auto mb-6 shadow-lg"}),o.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-4",children:e("Start capturing proof in seconds")}),o.jsx("p",{className:"mx-auto mb-8 max-w-2xl text-lg text-foreground/75",children:e("Join over 700,000 users. Download Timestamp It and never wonder when a photo was taken again.")}),o.jsx(Hn,{location:"home-cta",height:64})]})})]})}const r_=[{label:"vs CompanyCam",href:"/compare/best-companycam-alternative"},{label:"vs Timemark",href:"/compare/best-timemark-alternative"},{label:"vs Google Drive",href:"/compare/best-google-drive-alternative"},{label:"vs Timestamp Camera",href:"/compare/best-timestamp-camera-alternative"},{label:"vs Marki",href:"/compare/best-marki-alternative"}],o_=[{label:"Construction",href:"/for/construction"},{label:"Real Estate",href:"/for/real-estate"},{label:"Property Management",href:"/for/property-management"},{label:"Private Investigation",href:"/for/private-investigation"}],a_=[{label:"Pricing",href:"/pricing"},{label:"Guides",href:"/blog"},{label:"Help",href:"/how-it-works"},{label:"Verify a Photo",href:"/verify"},{label:"Contact",href:"/contact"},{label:"Threads",href:"https://threads.net/@shabzco",external:!0}],s_=[{label:"Trust Center",href:"/trust"},{label:"Privacy Policy",href:"/privacy-policy"},{label:"Terms",href:"/terms"},{label:"Accessibility",href:"/accessibility"},{label:"Delete Account",href:"/delete-account"}];function et(){const e=re(),t=qe(),n={target:"_blank",rel:"noopener noreferrer"};return o.jsx("footer",{className:"py-12 border-t border-border",children:o.jsxs("div",{className:"container",children:[o.jsxs("div",{className:"mb-8 flex flex-wrap items-center justify-center gap-x-5 gap-y-2 text-xs uppercase tracking-[0.18em] text-muted-foreground/80",children:[o.jsx("span",{className:"text-primary/80",children:e("Compare")}),r_.map(r=>o.jsx("a",{href:t(r.href),className:"hover:text-foreground transition-colors",children:e(r.label)},r.href))]}),o.jsxs("div",{className:"mb-8 flex flex-wrap items-center justify-center gap-x-5 gap-y-2 text-xs uppercase tracking-[0.18em] text-muted-foreground/80",children:[o.jsx("span",{className:"text-primary/80",children:e("Built for")}),o_.map(r=>o.jsx("a",{href:t(r.href),className:"hover:text-foreground transition-colors",children:e(r.label)},r.href))]}),o.jsxs("div",{className:"flex flex-col md:flex-row items-center justify-between gap-6",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("img",{src:D1,srcSet:td,sizes:"40px",alt:"Timestamp It",className:"w-10 h-10 rounded-xl"}),o.jsxs("div",{children:[o.jsx("span",{className:"font-bold",children:"Timestamp It"}),o.jsx("p",{className:"text-sm text-muted-foreground",children:e("Photo Stamper")})]})]}),o.jsx("nav",{className:"flex flex-wrap justify-center items-center gap-x-6 gap-y-3 text-sm text-muted-foreground",children:a_.map(r=>o.jsx("a",{href:t(r.href),...r.external?n:{},className:"hover:text-foreground transition-colors",children:e(r.label)},r.href))})]}),o.jsxs("div",{className:"mt-8 pt-6 border-t border-border/60 flex flex-col-reverse md:flex-row items-center justify-between gap-4",children:[o.jsxs("div",{className:"flex flex-col sm:flex-row items-center gap-4",children:[o.jsxs("p",{className:"text-sm text-muted-foreground",children:["© ",new Date().getFullYear()," ShabzCo, LLC"]}),o.jsx(Gh,{className:"h-9 w-auto gap-1.5 text-sm text-muted-foreground"})]}),o.jsx("nav",{className:"flex flex-wrap justify-center items-center gap-x-5 gap-y-2 text-sm text-muted-foreground
525/80",children:s_.map(r=>o.jsx("a",{href:t(r.href),className:"hover:text-foreground transition-colors",children:e(r.label)},r.href))})]})]})})}function i_(e){const n=new DOMParser().parseFromString(`<head>${e}</head>`,"text/html"),r=document.head;r.querySelectorAll("[data-seo-managed='true']").forEach(a=>{a.remove()});for(const a of Array.from(n.head.children)){const s=a.cloneNode(!0);s.setAttribute("data-seo-managed","true"),r.appendChild(s)}}function Ve({routeKey:e}){const t=za(),{locale:n}=ir(),{messages:r}=Zc();return h.useEffect(()=>{const a=c4({pathname:t.pathname,routeKey:e}),s=Hj(a,t.pathname,n),i={...a,canonical:s};i_(m4(i,t.pathname,n,r))},[t.pathname,e,n,r]),null}const l_=()=>o.jsxs("div",{className:"home-page min-h-screen bg-background",children:[o.jsx(Ve,{routeKey:"/"}),o.jsx(Ze,{}),o.jsxs("main",{className:"relative overflow-hidden",children:[o.jsx(k4,{}),o.jsx(C4,{}),o.jsx(K4,{}),o.jsx(Z4,{}),o.jsx("section",{id:"reviews",children:o.jsx(n2,{})}),o.jsx(H4,{}),o.jsx(n_,{})]}),o.jsx(et,{})]}),c_=()=>{const e=za(),t=re(),n=qe();return h.useEffect(()=>{console.error("404 Error: User attempted to access non-existent route:",e.pathname)},[e.pathname]),o.jsx("div",{className:"flex min-h-screen items-center justify-center bg-background",children:o.jsxs("div",{className:"text-center",children:[o.jsx("h1",{className:"mb-4 text-4xl font-bold",children:"404"}),o.jsx("p",{className:"mb-4 text-xl text-muted-foreground",children:t("Oops! Page not found")}),o.jsx("a",{href:n("/"),className:"text-primary underline hover:text-primary/90",children:t("Return to Home")})]})})},r2="com.shabzco.timestampit_android",o2=`https://play.google.com/store/apps/details?id=${r2}`,d_="https://apps.apple.com/us/app/timestamp-it-photo-stamper/id327756085",u_=`(function(){ 526 var search = window.location.search || ''; 527 var androidIntent = 528 'intent://login-callback' + search + 529 '#Intent;scheme=timestampit;package=${r2};' + 530 'S.browser_fallback_url=' + encodeURIComponent('${o2}') + 531 ';end'; 532 var customScheme = 'timestampit://login-callback' + search; 533 var isAndroid = /Android/i.test(navigator.userAgent); 534 var target = isAndroid ? androidIntent : customScheme; 535 var open = document.getElementById('open-in-app'); 536 if (open) open.setAttribute('href', target); 537 window.location.replace(target); 538})();`,h_=()=>{const e=re();return o.jsxs("div",{className:"min-h-screen flex items-center justify-center bg-background px-4",children:[o.jsx(Ve,{routeKey:"/login-callback"}),o.jsxs("div",{className:"max-w-md text-center space-y-6",children:[o.jsx("h1",{className:"text-3xl font-semibold tracking-tight",children:e("Opening Timestamp Itâ¦")}),o.jsx("p",{className:"text-muted-foreground",children:e("If the app doesn't open automatically, tap the button below.")}),o.jsx("p",{children:o.jsx("a",{id:"open-in-app",href:"#",suppressHydrationWarning:!0,className:"inline-flex items-center justify-center rounded-full px-5 py-3 text-sm font-medium bg-primary text-primary-foreground hover:bg-primary/90 transition",children:e("Open in app")})}),o.jsxs("p",{className:"text-xs text-muted-foreground",children:[e("Don't have Timestamp It yet?")," ",o.jsx("a",{href:d_,className:"underline hover:text-foreground",children:e("Download on the App Store")})," ",e("or")," ",o.jsx("a",{href:o2,className:"underline hover:text-foreground",children:e("Get it on Google Play")}),"."]})]}),o.jsx("script",{dangerouslySetInnerHTML:{__html:u_}})]})};function ce(e,t){var n;(n=window.umami)==null||n.track(e,t)}let Es=null,Fy=!1;function m_(){if(!Es)try{const e=window.AudioContext??window.webkitAudioContext;e&&(Es=new e)}catch{Es=null}}function a2(){if(Fy||typeof window>"u")return;Fy=!0;const e=["pointerdown","pointerup","touchend","keydown","click"],t=()=>{m_();const n=Es;if(!n)return;const r=()=>{n.state==="running"&&e.forEach(a=>window.removeEventListener(a,t))};n.state==="running"?r():n.resume().then(r).catch(()=>{})};e.forEach(n=>window.addEventListener(n,t,{passive:!0}))}function s2(){i2([{freq:880,at:0},{freq:1318.5,at:.11}],.15)}function p_(){i2([{freq:1046.5,at:0}],.12)}function i2(e,t){const n=Es;if(!(!n||n.state!=="running"))try{const r=n.currentTime+.01;for(const{freq:a,at:s}of e){const i=n.createOscillator(),l=n.createGain();i.type="sine",i.frequency.value=a,l.gain.setValueAtTime(0,r+s),l.gain.linearRampToValueAtTime(t,r+s+.015),l.gain.exponentialRampToValueAtTime(1e-4,r+s+.28),i.connect(l).connect(n.destination),i.start(r+s),i.stop(r+s+.3)}}catch{}}const f_="/assets/app-icon-DGP6LpMc.webp",l2="https://api.timestampitapp.com/messaging",g_="TKnRRXiYSBT19fGXphuModFbTEg1",y_=f_,Xh="tsi.supportChatId",c2="tsi.supportEmail",Ly="abcdefghijklmnopqrstuvwxyz0123456789",d2=/^web_[a-z0-9]{24}$/;function u2(e){try{return localStorage.getItem(e)}catch{return null}}function $p(e,t){try{localStorage.setItem(e,t)}catch{}}let Fo=null;function x_(){const e=new Uint8Array(24);crypto.getRandomValues(e);let t="web_";for(const n of e)t+=Ly[n%Ly.length];return t}function h2(e){const t=u2(Xh);return t&&d2.test(t)?t:Fo||(e?(Fo=x_(),$p(Xh,Fo),Fo):null)}async function v_(e){const t=await Xs("resume.php",{token:e}),n=t==null?void 0:t.sender_id;if(!n||!d2.test(n))throw new Error("This link has expired or is not val
538id.");return $p(Xh,n),Fo=n,t!=null&&t.email&&m2(t.email),(t==null?void 0:t.email)??null}function Hy(){return u2(c2)}function m2(e){$p(c2,e.trim())}function b_(e){return/^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/.test(e.trim())}async function Xs(e,t){const n=await fetch(`${l2}/${e}?${new URLSearchParams(t)}`,{credentials:"omit"});if(!n.ok)throw new Error(`Support is unavailable (${n.status})`);const r=await n.text();return r?JSON.parse(r):null}async function Gp(e,t){const n=await fetch(`${l2}/${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t),credentials:"omit"});if(n.status===429)throw new Error("Too many messages. Please try again later.");if(!n.ok)throw new Error(`Support is unavailable (${n.status})`);const r=await n.text();return r?JSON.parse(r):null}async function w_(e,t){var a;const n=h2(!0);await Xs("user/get.php",{user_id:n});const r=await Xs("thread/get.php",{user_id:n});if(!(r!=null&&r.id))throw new Error("Could not open a support thread");return Gp("support_context/add.php",{debug_context:{firebase_sender_id:n,platform:"web",source:"marketing_site",signed_in:!1,page:window.location.pathname,email:e,locale:t,preferred_language:((a=navigator.languages)==null?void 0:a[0])??navigator.language,time_zone:Intl.DateTimeFormat().resolvedOptions().timeZone,user_agent:navigator.userAgent,client_sent_at:new Date().toISOString()}}).catch(()=>{}),{senderId:n,threadId:String(r.id)}}async function Uy(e,t){return await Xs("message/get.php",{thread_id:e,message_id:t??""})??[]}async function j_(e,t,n){const r=await Gp("message/add.php",{thread_id:e,sender_id:t,text:n});return r&&r.id?r:null}async function zy(e,t){await Gp("thread/mark_read.php",{thread_id:e,reader_id:t}).catch(()=>{})}async function N_(e){const t=await Xs("thread/has_unread.php",{user_id:e});return!!(t!=null&&t.has_unread)}function A_(e){const t=/^(\d{4})-(\d{2})-(\d{2})[ T](\d{2}):(\d{2}):(\d{2})/.exec(e);if(!t)return new Date(e);const[,n,r,a,s,i,l]=t.map(Number),c=Date.UTC(n,r-1,a,s,i,l),d=new Intl.DateTimeFormat("en-US",{timeZone:"America/Chicago",hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}).formatToParts(new Date(c)),u=p=>{var f;return Number((f=d.find(w=>w.type===p))==null?void 0:f.value)},m=Date.UTC(u("year"),u("month")-1,u("day"),u("hour"),u("minute"),u("second"));return new Date(c+(c-m))}function E_(e){const t=e.trim();if(!/^https?:\/\/\S+$/i.test(t))return null;const n=t.split(/[?#]/)[0].toLowerCase();return/\.(jpe?g|png|gif|webp)$/.test(n)?t:null}const S_=5e3,I_=6e4;function $y(e){const t=document.documentElement.style;e>0?t.setProperty("--support-lift",`${Math.ceil(e)}px`):t.removeProperty("--support-lift")}const Yh="tsi:open-support";function dd(e){window.dispatchEvent(new CustomEvent(Yh,{detail:e}))}const k_=[{path:/^\/(?:[a-z]{2}\/)?pricing\/?$/,from:"pricing-teaser",text:"Questions about Pro or teams? Ask us."},{path:/^\/(?:[a-z]{2}\/)?how-it-works\/?$/,from:"help-teaser",text:"Can't find what you're looking for? Ask us."}],C_=5e3,Gy=e=>`tsi.supportTeaserDismissed.${e}`;function T_(){const e=re(),[t,n]=h.useState(!1),[r,a]=h.useState(!1),[s,i]=h.useState(void 0),[l,c]=h.useState(null),[d,u]=h.useState(null),m=h.useRef(null);h.useEffect(()=>{n(!0),a2()},[]),h.useEffect(()=>{d!==null&&(d&&m.current===!1&&s2(),m.current=d)},[d]),h.useEffect(()=>{if(d)return document.title=`(1) ${document.title}`,()=>{document.title=document.title.replace(/^\(1\) /,"")}},[d]),h.useEffect(()=>{if(!t||r)return;const w=h2(!1);if(!w)return;let y=!0;const v=()=>{document.visibilityState==="visible"&&N_(w).then(g=>y&&u(g)).catch(()=>{})};v();const x=setInterval(v,I_);return document.addEventListener("visibilitychange",v),()=>{y=!1,clearInterval(x),document.removeEventListener("visibilitychange",v)}},[t,r]),h.useEffect(()=>{if(!r)return;const w=y=>{y.key==="Escape"&&a(!1)};return window.addEventListener("keydown",w),()=>window.removeEventListener("keydown",w)},[r]),h.useEffect(()=>{const w=y=>{const{prefill:v,from:x}=y.detail??{from:"unknown"};ce("support-bubble-open",{from:x}),i(v),c(null),a(!0)};return window.addEventListener(Yh,w),()=>window.removeEventListener(Yh,w)},[]),h.useEffect(()=>{if(!t)return;const w=k_.find(v=>v.path.test(window.location.pathname));if(!w)return;try{if(localStorage.getItem(Gy(w.from)))return}catch{return}const y=setTimeout(()=>{c(w),p_(),ce("support-teaser-shown",{from:w.from})},C_);return()=>clearTimeout(y)},[t]);const p=()=>
538{if(l)try{localStorage.setItem(Gy(l.from),"1")}catch{}c(null)},f=t&&/\/support\/?$/.test(window.location.pathname);return!t||f?null:o.jsxs(o.Fragment,{children:[r&&o.jsx(f2,{onClose:()=>{a(!1),i(void 0)},onRead:()=>u(!1),initialDraft:s}),l&&!r&&o.jsxs("div",{className:"fixed bottom-[calc(var(--support-lift,0px)_+_4.75rem)] right-4 z-40 flex max-w-[16rem] items-start gap-2 rounded-2xl border border-border bg-background p-3 text-sm shadow-lg sm:bottom-[calc(var(--support-lift,0px)_+_6rem)] sm:right-6",children:[o.jsx("button",{type:"button",className:"text-left",onClick:()=>{ce("support-bubble-open",{from:l.from}),p(),a(!0)},children:e(l.text)}),o.jsx("button",{type:"button",onClick:p,"aria-label":e("Close"),className:"-m-1 rounded-md p-1 text-muted-foreground hover:bg-secondary",children:o.jsx(Bt,{className:"h-4 w-4"})})]}),o.jsxs("button",{type:"button",onClick:()=>{r||ce("support-bubble-open",{unread:d?1:0,from:"bubble"}),l&&p(),a(w=>!w)},"aria-label":e(r?"Close":"Chat with us"),title:e("Chat with us"),className:`fixed bottom-[calc(var(--support-lift,0px)_+_1rem)] right-4 z-40 h-12 w-12 items-center sm:bottom-[calc(var(--support-lift,0px)_+_1.5rem)] sm:right-6 sm:h-14 sm:w-14 justify-center rounded-full bg-primary text-primary-foreground shadow-lg transition-transform hover:scale-105 ${r?"hidden sm:flex":"flex"}`,children:[r?o.jsx(Bt,{className:"h-6 w-6 sm:h-7 sm:w-7"}):o.jsx(MI,{className:"h-6 w-6 sm:h-7 sm:w-7"}),d&&!r&&o.jsx("span",{className:"absolute right-0 top-0 h-3 w-3 rounded-full bg-red-500 ring-2 ring-background"})]})]})}function P_(){const e=()=>window.visualViewport?{height:window.visualViewport.height,top:window.visualViewport.offsetTop}:null,[t,n]=h.useState(e);return h.useEffect(()=>{const r=window.visualViewport;if(!r)return;let a=0;const s=()=>{cancelAnimationFrame(a),a=requestAnimationFrame(()=>n(e()))};return r.addEventListener("resize",s),r.addEventListener("scroll",s),()=>{cancelAnimationFrame(a),r.removeEventListener("resize",s),r.removeEventListener("scroll",s)}},[]),t}const p2=()=>window.matchMedia("(max-width: 639px)").matches;function R_(){h.useEffect(()=>{if(!p2())return;const e=window.scrollY,t=document.body.style,n={position:t.position,top:t.top,left:t.left,right:t.right,width:t.width,overflow:t.overflow};return Object.assign(t,{position:"fixed",top:`-${e}px`,left:"0",right:"0",width:"100%",overflow:"hidden"}),()=>{Object.assign(t,n),window.scrollTo({top:e,behavior:"instant"})}},[])}const D_=()=>{var e;return(e=window.matchMedia)==null?void 0:e.call(window,"(pointer: coarse)").matches};function f2({onClose:e,onRead:t,variant:n="panel",initialDraft:r}){const a=re(),{locale:s}=ir(),i=P_();R_();const[l,c]=h.useState(()=>Hy()),[d]=h.useState(()=>n==="page"?new URLSearchParams(window.location.search).get("t"):null),[u,m]=h.useState(!!d),[p,f]=h.useState(""),[w,y]=h.useState(null),[v,x]=h.useState(null),[g,b]=h.useState(null),[j,N]=h.useState(null),[A,E]=h.useState(r??""),[S,D]=h.useState(!1),[R,$]=h.useState(null),k=h.useRef(null),O=h.useRef(null),_=h.useRef(null);h.useEffect(()=>a2(),[]),h.useEffect(()=>{if(!d)return;let I=!0;return v_(d).then(B=>{I&&(ce("support-resumed-from-email"),c(B??Hy()))}).catch(B=>{I&&$(B instanceof Error?B.message:a("This link has expired or is not valid."))}).finally(()=>{if(!I)return;const B=new URL(window.location.href);B.searchParams.delete("t"),window.history.replaceState(null,"",B.toString()),m(!1)}),()=>{I=!1}},[d]),h.useEffect(()=>{if(!l||u)return;let I=!0;return(async()=>{try{const B=await w_(l,s),z=await Uy(B.threadId);if(!I)return;x(B.senderId),b(B.threadId),N(z),_.current=z.length?z[z.length-1].id:null,z.length&&(zy(B.threadId,B.senderId),t==null||t())}catch(B){I&&$(B instanceof Error?B.message:a("Support is unavailable right now."))}})(),()=>{I=!1}},[l,u]),h.useEffect(()=>{if(!g||!v)return;let I=!0;const z=setInterval(async()=>{if(document.visibilityState==="visible")try{const G=await Uy(g,_.current);if(!I||G.length===0)return;_.current=G[G.length-1].id,N(J=>{const Z=new Set((J??[]).map(xe=>xe.id));return[...J??[],...G.filter(xe=>!Z.has(xe.id))]}),G.some(J=>J.senderId!==v)&&(s2(),zy(g,v),t==null||t())}catch{}},S_);return()=>{I=!1,clearInterval(z)}},[g,v]),h.useEffect(()=>{const I=k.current;I&&(I.scrollTop=I.scrollHeight)},[j==null?void 0:j.length,i==null?void 0:i.height]),h.useEffect(()=>{const I=O.current;I&&(I.style.height="auto",I.style.height=`${I.scrollHeight}px`)},[A]);const W=h.useMemo(()=>j?j.length>0?j:[{id:"welcome",threadId:g??"",createdAt:"",senderId:g_,text:a("Hi! Ask us anything about Timestamp It, and we'll reply by email if you've left the page."),isRead:"1"}]:null,[j,g,a]),U=()=>{const I=p.trim();if(!b_(I)){y(a("Enter a valid email address."));return}m2(I),c(I),ce("support-email-given")},V=async()=>{const I=A.trim();if(!(!I||!g||!v||S)){D(!0),$(null);try{const B=await j_(g,v,I);B&&(_.current=B.id,N(z=>(z??[]).some(G=>G.id===B.id)?z:[...z??[],B])),E(""),ce("support-message-sent")}catch(B){$(B instanceof Error?B.message:a("Your message could not be sent. Please try again."))}finally{D(!1)}}},T=$r();return o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"fixed inset-0 z-50 bg-background sm:hidden","aria-hidden":"true"}),o.jsxs("div",{role:"dialog","aria-label":a("Chat with us"),style:i?{"--vvh":`${i.height}px`,"--vvt":`${i.top}px`}:void 0,className:`fixed inset-x-0 top-[var(--vvt,0px)] z-50 flex h-[var(--vvh,100dvh)] flex-col overflow-hidden bg-background text-foreground ${n==="page"?"sm:static sm:h-[70vh] sm:min-h-[460px] sm:rou
538nded-2xl sm:border sm:border-border sm:shadow-sm":"sm:inset-auto sm:bottom-[calc(var(--support-lift,0px)_+_6rem)] sm:right-6 sm:top-auto sm:h-[min(600px,calc(100vh-8rem))] sm:w-96 sm:rounded-2xl sm:border sm:border-border sm:shadow-2xl"}`,children:[o.jsxs("div",{className:"flex items-center gap-3 border-b border-border px-4 py-3",children:[o.jsx("img",{src:y_,alt:"",className:"h-9 w-9 rounded-full object-cover"}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("div",{className:"text-sm font-semibold",children:a("Timestamp It support")}),o.jsx("div",{className:"text-xs text-muted-foreground",children:a("We usually reply within a day.")})]}),e&&o.jsx("button",{type:"button",onClick:e,className:"rounded-lg p-1.5 text-muted-foreground hover:bg-secondary","aria-label":a("Close"),children:o.jsx(Bt,{className:"h-5 w-5"})})]}),u?o.jsxs("div",{className:"flex flex-1 items-center justify-center gap-2 text-sm text-muted-foreground",children:[o.jsx(Bn,{className:"h-4 w-4 animate-spin"}),a("Loadingâ¦")]}):l?o.jsxs(o.Fragment,{children:[o.jsx("div",{ref:k,className:"min-h-0 flex-1 space-y-3 overflow-y-auto overscroll-contain px-4 py-4",children:W===null?R?null:o.jsxs("div",{className:"flex h-full items-center justify-center gap-2 text-sm text-muted-foreground",children:[o.jsx(Bn,{className:"h-4 w-4 animate-spin"}),a("Loadingâ¦")]}):W.map(I=>{const B=I.senderId===v,z=E_(I.text),G=I.createdAt?A_(I.createdAt):null;return o.jsx("div",{className:`flex ${B?"justify-end":"justify-start"}`,children:o.jsxs("div",{className:`flex min-w-0 max-w-[85%] flex-col ${B?"items-end":"items-start"}`,children:[z?o.jsx("a",{href:z,target:"_blank",rel:"noreferrer",children:o.jsx("img",{src:z,alt:"",loading:"lazy",className:"max-h-64 max-w-full rounded-2xl object-cover"})}):o.jsx("div",{className:`whitespace-pre-wrap break-words rounded-2xl px-3.5 py-2 text-sm ${B?"bg-primary text-primary-foreground":"bg-secondary text-foreground"}`,children:I.text}),G&&o.jsx("div",{className:"mt-1 px-1 text-[11px] text-muted-foreground",children:G.toLocaleString(T,{dateStyle:"medium",timeStyle:"short"})})]})},I.id)})}),R&&o.jsx("div",{className:"border-t border-border px-4 py-2 text-xs text-red-600",children:R}),o.jsxs("form",{onSubmit:I=>{I.preventDefault(),V()},className:"flex items-end gap-2 border-t border-border p-2 sm:p-3",children:[o.jsx("textarea",{ref:O,value:A,onChange:I=>E(I.target.value),onKeyDown:I=>{I.key==="Enter"&&!I.shiftKey&&!D_()&&(I.preventDefault(),V())},rows:1,disabled:!g,placeholder:a("Write a messageâ¦"),className:"max-h-32 min-h-[2.5rem] flex-1 resize-none rounded-xl border border-border bg-background px-3 py-2 text-base outline-none focus:border-primary focus:ring-2 focus:ring-primary/20 disabled:opacity-60 sm:text-sm"}),o.jsx("button",{type:"submit",disabled:!A.trim()||!g||S,className:"inline-flex items-center justify-center rounded-xl bg-primary p-2.5 text-primary-foreground hover:opacity-90 disabled:opacity-50","aria-label":a("Send"),children:S?o.jsx(Bn,{className:"h-5 w-5 animate-spin"}):o.jsx(FI,{className:"h-5 w-5"})})]})]}):o.jsxs("form",{onSubmit:I=>{I.preventDefault(),U()},className:"flex flex-1 flex-col justify-center gap-3 px-5 py-6",children:[o.jsx("div",{className:"text-base font-semibold",children:a("Questions? We're here to help.")}),o.jsx("p",{className:"text-sm text-muted-foreground",children:a("Leave your email so we can reply, even after you close this page.")}),o.jsx("input",{type:"email",inputMode:"email",autoComplete:"email",autoFocus:!p2(),value:p,onChange:I=>{f(I.target.value),y(null)},placeholder:"[email protected]",className:"rounded-xl border border-border bg-background px-3 py-2.5 text-base outline-none focus:border-primary focus:ring-2 focus:ring-primary/20 sm:text-sm"}),(w??R)&&o.jsx("div",{className:"text-xs text-red-600",children:w??R}),o.jsx("button",{type:"submit",className:"rounded-xl bg-primary px-4 py-2.5 text-sm font-semibold text-primary-foreground hover:opacity-90",children:a("Start chat")})]})]})]})}const M_=()=>{const e=re(),[t,n]=h.useState(!1);return h.useEffect(()=>n(!0),[]),o.jsxs("div",{className:"min-h-screen bg-background",children:[o.jsx(Ve,{routeKey:"/support"}),o.jsx(Ze,{}),o.jsxs("main",{className:"mx-auto max-w-2xl px-4 pb-16 pt-28",children:[o.jsx("h1",{className:"mb-2 text-3xl font-semibold tracking-tight",children:e("Chat with us")}),o.jsx("p",{className:"mb-6 text-muted-foreground",children:e("We usually reply within a day.")}),t&&o.jsx(f2,{variant:"page"})]}),o.jsx(et,{})]})},__="modulepreload",B_=function(e){return"/"+e},Qy={}
538,We=function(t,n,r){let a=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=(i==null?void 0:i.nonce)||(i==null?void 0:i.getAttribute("nonce"));a=Promise.allSettled(n.map(c=>{if(c=B_(c),c in Qy)return;Qy[c]=!0;const d=c.endsWith(".css"),u=d?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${u}`))return;const m=document.createElement("link");if(m.rel=d?"stylesheet":__,d||(m.as="script"),m.crossOrigin="",m.href=c,l&&m.setAttribute("nonce",l),document.head.appendChild(m),d)return new Promise((p,f)=>{m.addEventListener("load",p),m.addEventListener("error",()=>f(new Error(`Unable to preload CSS for ${c}`)))})}))}function s(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return a.then(i=>{for(const l of i||[])l.status==="rejected"&&s(l.reason);return t().catch(s)})},O_=[20,0],F_=2,L_=15;function H_({point:e,onPick:t}){const n=re(),r=h.useRef(null),a=h.useRef(null),s=h.useRef(null),i=h.useRef(null),l=h.useRef(t);l.current=t;const[c,d]=h.useState(!1);return h.useEffect(()=>{let u=!1;return(async()=>{const m=(await We(async()=>{const{default:f}=await import("./leaflet-src-Doh-HLcm.js").then(w=>
538w.l);return{default:f}},[])).default;if(await We(()=>Promise.resolve({}),__vite__mapDeps([0])),u||!r.current||a.current)return;i.current=m;const p=m.map(r.current,{worldCopyJump:!0}).setView(O_,F_);m.tileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png",{maxZoom:19,attribution:'© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>'}).addTo(p),p.on("click",f=>l.current({latitude:f.latlng.lat,longitude:f.latlng.lng})),a.current=p,d(!0)})(),()=>{var m;u=!0,(m=a.current)==null||m.remove(),a.current=null,s.current=null}},[]),h.useEffect(()=>{var f;const u=a.current,m=i.current;if(!c||!u||!m)return;if(!e){(f=s.current)==null||f.remove(),s.current=null;return}const p=[e.latitude,e.longitude];if(s.current)s.current.setLatLng(p);else{const w=m.divIcon({className:"",html:'<div style="width:22px;height:22px;border-radius:9999px;background:hsl(168 85% 32%);border:3px solid #fff;box-shadow:0 1px 6px rgba(0,0,0,.35)"></div>',iconSize:[22,22],iconAnchor:[11,11]}),y=m.marker(p,{icon:w,draggable:!0,keyboard:!1}).addTo(u);y.on("dragend",()=>{const v=y.getLatLng();l.current({latitude:v.lat,longitude:v.lng})}),s.current=y}u.setView(p,u.getZoom()<10?L_:u.getZoom())},[e,c]),o.jsx("div",{ref:r,role:"application","aria-label":n("Map. Click to place the location pin."),className:"h-72 w-full overflow-hidden rounded-2xl border border-border/60 bg-secondary/40 sm:h-96 lg:h-[26rem]"})}const U_=500,z_=5;async function Qp(e){const t=Array.from(e.items??[]).map(s=>{var i;return s.kind==="file"?(i=s.webkitGetAsEntry)==null?void 0:i.call(s):null}).filter(s=>!!s),n=Array.from(e.files??[]);if(!t.some(s=>s.isDirectory))return{files:n,hadFolder:!1};const r=[],a=async(s,i)=>{if(r.length>=U_||s.name.startsWith("."))return;if(s.isFile){try{r.push(await new Promise((c,d)=>s.file(c,d)))}catch{}return}if(!s.isDirectory||i>=z_)return;const l=s.createReader();for(;;){let c;try{c=await new Promise((d,u)=>l.readEntries(d,u))}catch{return}if(c.length===0)return;for(const d of c)await a(d,i+1)}};for(const s of t)await a(s,0);return r.sort((s,i)=>s.name.localeCompare(i.name,void 0,{numeric:!0})),{files:r,hadFolder:!0}}var ud="Dialog",[g2]=sr(ud),[$_,vn]=g2(ud),y2=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:a,onOpenChange:s,modal:i=!0}=e,l=h.useRef(null),c=h.useRef(null),[d,u]=Lr({prop:r,defaultProp:a??!1,onChange:s,caller:ud});return o.jsx($_,{scope:t,triggerRef:l,contentRef:c,contentId:Br(),titleId:Br(),descriptionId:Br(),open:d,onOpenChange:u,onOpenToggle:h.useCallback(()=>u(m=>!m),[u]),modal:i,children:n})};y2.displayName=ud;var x2="DialogTrigger",G_=h.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=vn(x2,n),s=Ae(t,a.triggerRef);return o.jsx(de.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":Vp(a.open),...r,ref:s,onClick:oe(e.onClick,a.onOpenToggle)})});G_.displayName=x2;var Wp="DialogPortal",[Q_,v2]=g2(Wp,{forceMount:void 0}),b2=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:a}=e,s=vn(Wp,t);return o.jsx(Q_,{scope:t,forceMount:n,children:h.Children.map(r,i=>o.jsx(Co,{present:n||s.open,children:o.jsx(Tc,{asChild:!0,container:a,children:i})}))})};b2.displayName=Wp;var lc="DialogOverlay",w2=h.forwardRef((e,t)=>{const n=v2(lc,e.__scopeDialog),{forceMount:r=n.forceMount,...a}=e,s=vn(lc,e.__scopeDialog);return s.modal?o.jsx(Co,{present:r||s.open,children:o.jsx(q_,{...a,ref:t})}):null});w2.displayName=lc;var W_=Na("DialogOverlay.RemoveScroll"),q_=h.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=vn(lc,n);return o.jsx(Pp,{as:W_,allowPinchZoom:!0,shards:[a.contentRef],children:o.jsx(de.div,{"data-state":Vp(a.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),So="DialogContent",j2=h.forwardRef((e,t)=>{const n=v2(So,e.__scopeDialog),{forceMount:r=n.forceMount,...a}=e,s=vn(So,e.__scopeDialog);return o.jsx(Co,{present:r||s.open,children:s.modal?o.jsx(V_,{...a,ref:t}):o.jsx(X_,{...a,ref:t})})});j2.displayName=So;var V_=h.forwardRef((e,t)=>{const n=vn(So,e.__scopeDialog),r=h.useRef(null),a=Ae(t,n.contentRef,r);return h.useEffect(()=>{const s=r.current;if(s)return L1(s)},[]),o.jsx(N2,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:oe(e.onCloseAutoFocus,s=>{var i;s.preventDefault(),(i=n.triggerRef.current)==null||i.focus()}),onPointerDownOutside:oe(e.onPointerDownOutside,s=>{const i=s.detail.originalEvent,l=i.button===0&&i.ctrlKey===!0;(i.button===2||l)&&s.preventDefault()}),onFocusOutside:oe(e.onFocusOutside,s=>s.preventDefault())})}),X_=h.forwardRef((e,t)=>
vendor: 3,660 bytes, lines 538-542
538{const n=vn(So,e.__scopeDialog),r=h.useRef(!1),a=h.useRef(!1);return o.jsx(N2,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{var i,l;(i=e.onCloseAutoFocus)==null||i.call(e,s),s.defaultPrevented||(r.current||(l=n.triggerRef.current)==null||l.focus(),s.preventDefault()),r.current=!1,a.current=!1},onInteractOutside:s=>{var c,d;(c=e.onInteractOutside)==null||c.call(e,s),s.defaultPrevented||(r.current=!0,s.detail.originalEvent.type==="pointerdown"&&(a.current=!0));const i=s.target;((d=n.triggerRef.current)==null?void 0:d.contains(i))&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&a.current&&s.preventDefault()}})}),N2=h.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:a,onCloseAutoFocus:s,...i}=e,l=vn(So,n),c=h.useRef(null),d=Ae(t,c);return _1(),o.jsxs(o.Fragment,{children:[o.jsx(Tp,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:a,onUnmountAutoFocus:s,children:o.jsx(oi,{role:"dialog",id:l.contentId,"aria-describedby":l.descriptionId,"aria-labelledby":l.titleId,"data-state":Vp(l.open),...i,ref:d,onDismiss:()=>l.onOpenChange(!1)})}),o.jsxs(o.Fragment,{children:[o.jsx(Y_,{titleId:l.titleId}),o.jsx(J_,{contentRef:c,descriptionId:l.descriptionId})]})]})}),qp="DialogTitle",A2=h.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=vn(qp,n);return o.jsx(de.h2,{id:a.titleId,...r,ref:t})});A2.displayName=qp;var E2="DialogDescription",S2=h.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=vn(E2,n);return o.jsx(de.p,{id:a.descriptionId,...r,ref:t})});S2.displayName=E2;var I2="DialogClose",k2=h.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=vn(I2,n);return o.jsx(de.button,{type:"button",...r,ref:t,onClick:oe(e.onClick,()=>a.onOpenChange(!1))})});k2.displayName=I2;function Vp(e){return e?"open":"closed"}var C2="DialogTitleWarning",[YL,T2]=fS(C2,{contentName:So,titleName:qp,docsSlug:"dialog"}),Y_=({titleId:e})=>{const t=T2(C2),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users. 539 540If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component. 541 542For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return h.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},K_="DialogDescriptionWarning",J_=({contentRef:e,descriptionId:t})=>{const r=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${T2(K_).contentName}}.`;return h.useEffect(()=>{var s;const a=(s=e.current)==null?void 0:s.getAttribute("aria-describedby");t&&a&&(document.getElementById(t)||console.warn(r))},[r,e,t]),null},Z_=y2,eB=b2,P2=w2,R2=j2,D2=A2,M2=S2,tB=k2;const Ys=Z_,nB=eB,_2=h.forwardRef(({className:e,...t},n)=>o.jsx(P2,{ref:n,className:ke("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t}));_2.displayName=P2.displayName;const ka=h.forwardRef(({className:e,children:t,...n},r)=>o.jsxs(nB,{children:[o.jsx(_2,{}),o.jsxs(R2,{ref:r,className:ke("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...n,children:[t,o.jsxs(tB,{className:"absolute right-4 top-4 roun
542ded-sm opacity-70 ring-offset-background transition-opacity data-[state=open]:bg-accent data-[state=open]:text-muted-foreground hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none",children:[o.jsx(Bt,{className:"h-4 w-4"}),o.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));ka.displayName=R2.displayName;const Ca=({className:e,...t})=>o.jsx("div",{className:ke("flex flex-col space-y-1.5 text-center sm:text-left",e),...t});Ca.displayName="DialogHeader";const Ta=h.forwardRef(({className:e,...t},n)=>o.jsx(D2,{ref:n,className:ke("text-lg font-semibold leading-none tracking-tight",e),...t}));Ta.displayName=D2.displayName;const Pa=h.forwardRef(({className:e,...t},n)=>o.jsx(M2,{ref:n,className:ke("text-sm text-muted-foreground",e),...t}));Pa.displayName=M2.displayName;const rB=/^video\//i,oB=/\.(mp4|mov|m4v|webm|avi|3gp|mkv)$/i;function aB(e){return rB.test(e.type)||oB.test(e.name)}function Xp(e){const t=[],n=[];for(const r of e)(aB(r)?t:n).push(r);return{videos:t,rest:n}}function Yp({count:e,tool:t,onClose:n}){const r=re(),a=qe();return o.jsx(Ys,{open:e>0,onOpenChange:s=>!s&&n(),children:o.jsxs(ka,{className:"w-[calc(100%-2rem)] max-w-md rounded-2xl",children:[o.jsxs(Ca,{children:[o.jsx("span",{className:"mx-auto mb-2 flex h-11 w-11 items-center justify-center rounded-full bg-primary/10 sm:mx-0",children:o.jsx(WI,{className:"h-5 w-5 text-primary","aria-hidden":!0})}),o.jsx(Ta,{className:"text-xl font-bold",children:e===1?r("Stamping videos is part of Pro"):r("Your {count} videos need Pro",{count:e})}),o.jsx(Pa,{className:"text-sm leading-6",children:r("Pro burns the date, time and location into every frame of your videos, right in your browser, and keeps them in a project with your photos.")})]}),o.jsx("ul",{className:"space-y-2 text-sm",children:["MP4 and MOV videos from any phone","Up to 10 minutes per video on the web","One subscription for iPhone, Android and the web"].map(s=>o.jsxs("li",{className:"flex items-start gap-2",children:[o.jsx(tr,{className:"mt-0.5 h-4 w-4 shrink-0 text-primary","aria-hidden":!0}),r(s)]},s))}),o.jsx(ne,{variant:"hero",size:"lg",className:"mt-2 w-full",asChild:!0,children:o.jsx("a",{href:zn("video-upsell",{path:"/upgrade",content:t}),target:"_blank",rel:"noopener","data-umami-event":"webapp-click","data-umami-event-source":"video-upsell","data-umami-event-tool":t,onClick:n,children:r("Get Pro")})}),o.jsx("a",{href:a("/pricing"),"data-umami-event":"cta-click","data-umami-event-location":"video-upsell",className:"mx-auto text-sm text-muted-foreground underline-offset-4 hover:text-foreground hover:underline",children:r("See plans and pricing")})]})})}const Wy=.92;function sB(e){return e.type==="image/jpeg"||/\.(jpe?g)$/i.test(e.name)}function Kp(e){return/heic|heif/i.test(e.type)||/\.(heic|heif)$/i.test(e.name)}async function iB(e){try{const n=await(await We(async()=>{const{default:r}=await import("./full.esm-BuX-V2CP.js");return{default:r}},[])).default.gps(e);if(n&&Number.isFinite(n.latitude)&&Number.isFinite(n.longitude))return{latitude:n.latitude,longitude:n.longitude}}catch{}return null}function qy(e){const t=Math.abs(e),n=Math.floor(t),r=(t-n)*60,a=Math.floor(r),s=Math.round((r-a)*60*1e4);return[[n,1],[a,1],[s,1e4]]}function Vy(e,t){const n=e.GPSIFD;return{[n.GPSVersionID]:[2,3,0,0],[n.GPSLatitudeRef]:t.latitude>=0?"N":"S",[n.GPSLatitude]:qy(t.latitude),[n.GPSLongitudeRef]:t.longitude>=0?"E":"W",[n.GPSLongitude]:qy(t.longitude),[n.GPSMapDatum]:"WGS-84"}}function Xy(e){return new Promise((t,n)=>{const r=new FileReader;r.onload=()=>t(r.result),r.onerror=()=>n(r.error??new Error("Could not read the file")),r.readAsDataURL(e)})}async function Yy(e){return(await fetch(e)).blob()}async function lB(e){var i;let t=e;if(Kp(e)){const{heicTo:l}=await We(async()=>{const{heicTo:c}=await import("./heic-to-DIRPI3VF.js");return{heicTo:c}},[]);t=await l({blob:e,type:"image/jpeg",quality:Wy})}const n=await createImageBitmap(t),r=document.createElement("canvas");r.width=n.width,r.height=n.height;const a=r.getContext("2d");if(!a)throw new Error("Canvas is not supported in this browser.");a.fillStyle="#ffffff",a.fillRect(0,0,r.width,r.height),a.drawImage(n,
5420,0),(i=n.close)==null||i.call(n);const s=await new Promise(l=>r.toBlob(l,"image/jpeg",Wy));if(!s)throw new Error("Could not convert the photo.");return s}async function cB(e,t){const n={},r={};try{const s=await(await We(async()=>{const{default:c}=await import("./full.esm-BuX-V2CP.js");return{default:c}},[])).default.parse(t,["DateTimeOriginal","CreateDate","Make","Model"]),i=c=>c instanceof Date&&!Number.isNaN(c.getTime())?`${c.getFullYear()}:${String(c.getMonth()+1).padStart(2,"0")}:${String(c.getDate()).padStart(2,"0")} ${String(c.getHours()).padStart(2,"0")}:${String(c.getMinutes()).padStart(2,"0")}:${String(c.getSeconds()).padStart(2,"0")}`:null,l=i(s==null?void 0:s.DateTimeOriginal)??i(s==null?void 0:s.CreateDate);l&&(r[e.ExifIFD.DateTimeOriginal]=l,n[e.ImageIFD.DateTime]=l),typeof(s==null?void 0:s.Make)=="string"&&(n[e.ImageIFD.Make]=s.Make),typeof(s==null?void 0:s.Model)=="string"&&(n[e.ImageIFD.Model]=s.Model)}catch{}return{zeroth:n,exif:r}}function dB(e){return`${e.replace(/\.[^.]+$/,"")}.jpg`}async function uB(e,t){const n=(await We(async()=>{const{default:c}=await import("./piexif-Bf9Zj5JG.js").then(d=>d.p);return{default:c}},[])).default;if(sB(e)){const c=await Xy(e);let d={};try{d=n.load(c)}catch{d={}}const u=[p=>p,p=>{const f={...p.Exif??{}};return delete f[n.ExifIFD.MakerNote],{...p,Exif:f}},p=>({...p,"1st":{},thumbnail:null}),p=>({"0th":p["0th"]??{},Exif:{}})];let m=d;for(const p of u){m=p(m);try{const f=n.dump({...m,GPS:Vy(n,t)});return{blob:await Yy(n.insert(f,c)),fileName:e.name,converted:!1}}catch{}}throw new Error("Could not write a location into this photo.")}const r=await lB(e),{zeroth:a,exif:s}=await cB(n,e),i=n.dump({"0th":a,Exif:s,GPS:Vy(n,t)});return{blob:await Yy(n.insert(i,await Xy(r))),fileName:dB(e.name),converted:!0}}const Ky=3,Jy=25*1024*1024,hB=zn("add-gps-tool"),Nn="add-gps";function mB(e){return e.type.startsWith("image/")||Kp(e)||/\.(jpe?g|png|webp|gif|bmp|tiff?)$/i.test(e.name)}function Ki(e,t){return!!e&&!!t&&Math.abs(e.latitude-t.latitude)<1e-7&&Math.abs(e.longitude-t.longitude)<1e-7}const Ji=e=>e.toFixed(6),pB=()=>{const e=re(),t=qe(),{locale:n}=ir(),[r,a]=h.useState([]),[s,i]=h.useState([]),[l,c]=h.useState(!1),[d,u]=h.useState(0);function m(P){const{videos:H,rest:ee}=Xp(P);return H.length&&(u(H.length),ce("tool-video-dropped",{tool:Nn,videos:H.length})),ee}const[p,f]=h.useState(null),[w,y]=h.useState(null),[v,x]=h.useState(null),[g,b]=h.useState(""),[j,N]=h.useState(""),[A,E]=h.useState(""),[S,D]=h.useState(null),[R,$]=h.useState(!1),[k,O]=h.useState(!1),[_,W]=h.useState(null),[U,V]=h.useState(!1),T=h.useRef([]);h.useEffect(()=>(ce("tool-open",{tool:Nn}),()=>T.current.forEach(P=>URL.revokeObjectURL(P))),[]);const I=P=>(T.current.push(P),P),B=Ky-r.length,z=r.filter(P=>P.result&&Ki(P.result.point,w)),G=!!w&&r.some(P=>{var H;return!P.error&&!Ki(((H=P.result)==null?void 0:H.point)??null,w)});function J(P,H,ee=null){y(P),x(ee),b(Ji(P.latitude)),N(Ji(P.longitude)),W(null),ce("gps-location-set",{tool:Nn,method:H})}async function Z(P){P.preventDefault();const H=A.trim();if(!(!H||R)){$(!0),W(null);try{const ee=new URLSearchParams({q:H,format:"jsonv2",limit:"5","accept-language":n}),ve=await fetch(`https://nominatim.openstreetmap.org/search?${ee}`);if(!ve.ok)throw new Error(String(ve.status));const Pe=(await ve.json()).map(tt=>({label:tt.display_name,point:{latitude:Number(tt.lat),longitude:Number(tt.lon)}})).filter(tt=>Number.isFinite(tt.point.latitude)&&Number.isFinite(tt.point.longitude));D(Pe),Pe.length===1&&(J(Pe[0].point,"search",Pe[0].label),D(null)),ce("gps-search",{tool:Nn,results:Pe.length})}catch{W(e("Search is unavailable right now. Try again, or click the map."))}finally{$(!1)}}}function xe(){if(!navigator.geolocation){W(e("This browser can't share your location."));return}O(!0),W(null),navigator.geolocation.getCurrentPosition(P=>{O(!1),J({latitude:P.coords.latitude,longitude:P.coords.longitude},"device",e("Your current location"))},()=>{O(!1),W(e("We couldn't get your location. Check the browser's permission, or search instead."))},{enableHighAccuracy:!0,timeout:15e3})}function Ce(P,H){b(P),N(H);const ee=Number(P),ve=Number(H);P.trim()!==""&&H.trim()!==""&&Number.isFinite(ee)&&Number.isFinite(ve)&&Math.abs(ee)<=90&&Math.abs(ve)<=180&&(y({latitude:ee,longitude:ve}),x(null),W(null))}async function Q(P){const H=Kp(P)?null:I(URL.createObjectURL(P));return{id:`${P.name}-${P.size}-${Math.random().toString(36).slice(2,8)}`,file:P,name:P.name,previewUrl:H,existing:await iB(P),result:null,error:null}}async function ge(P){const H=m(P),ee=H.filter(mB),ve=ee.filter(ft=>ft.size>Jy),Te=ee.filter(ft=>ft.size<=Jy),Pe=H.length-ee.length;if(f(ve.length?e("{count, plural, one {# photo is larger than 25MB and was left out.} other {# photos are larger than 25MB and were left out.}}",{count:ve.length}):Pe>0?e("{count, plural, one {Skipped # file that isn't a photo.} other {Skipped # files that aren't photos.}}",{count:Pe}):null),!Te.length)return;const tt=B>
5420?Te.slice(0,B):[],wn=Te.slice(tt.length);if(wn.length&&(i(ft=>[...ft,...wn]),c(!0),ce("tool-limit-hit",{tool:Nn,queued:wn.length})),tt.length){const ft=await Promise.all(tt.map(Q));a(xd=>[...xd,...ft])}}async function Se(P){const{files:H}=await Qp(P);H.length&&await ge(H)}async function me(P){if(a(H=>H.filter(ee=>ee.id!==P)),s.length>0){const[H,...ee]=s;i(ee),c(ee.length>0);const ve=await Q(H);a(Te=>[...Te,ve])}else c(!1)}function ue(){a([]),i([]),c(!1),f(null)}async function pe(){var ee;if(!w||U)return;V(!0);const P=w;let H=0;for(const ve of r)if(!Ki(((ee=ve.result)==null?void 0:ee.point)??null,P))try{const Te=await uB(ve.file,P),Pe=I(URL.createObjectURL(Te.blob));H+=1,a(tt=>tt.map(wn=>wn.id===ve.id?{...wn,error:null,result:{url:Pe,fileName:Te.fileName,converted:Te.converted,point:P}}:wn))}catch{a(Te=>Te.map(Pe=>Pe.id===ve.id?{...Pe,error:e("We couldn't add a location to this photo.")}:Pe))}V(!1),H>0&&ce("tool-used",{tool:Nn,photos:H})}function C(){z.forEach((P,H)=>{window.setTimeout(()=>{const ee=document.createElement("a");ee.href=P.result.url,ee.download=P.result.fileName,ee.target="_blank",ee.rel="noopener",document.body.appendChild(ee),ee.click(),ee.remove()},H*350)}),ce("tool-download-all",{tool:Nn,photos:z.length})}const q="panel hover:translate-y-0 hover:shadow-lg rounded-3xl p-5 md:p-6";return o.jsxs("div",{className:"min-h-screen bg-background",children:[o.jsx(Ve,{routeKey:"/add-gps-to-photos"}),o.jsx(Ze,{}),o.jsxs("main",{children:[o.jsx("section",{className:"relative pt-32 pb-8",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"max-w-4xl mx-auto text-center",children:[o.jsx("span",{className:"section-eyebrow",children:e("Free Tool")}),o.jsx("h1",{className:"text-4xl md:text-5xl font-bold tracking-tight mt-4 mb-5",children:e("Add GPS Coordinates to Photos Online")}),o.jsx("p",{className:"section-subtitle",children:e("Geotag your photos with a location. Search an address, use where you are, or click the map, then download your photos with the GPS written into their EXIF data.")}),o.jsx("p",{className:"mt-6 text-sm text-muted-foreground",children:e("Nothing is uploaded. Everything runs in your browser.")})]})})}),o.jsx("section",{className:"pb-12",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"max-w-6xl mx-auto grid gap-6 lg:grid-cols-2 lg:items-start",children:[o.jsxs("div",{className:"flex flex-col gap-6",children:[o.jsxs("div",{className:q,onDrop:P=>{P.preventDefault(),Se(P.dataTransfer)},onDragOver:P=>P.preventDefault(),children:[o.jsx("input",{id:"gps-upload",type:"file",accept:"image/*,.heic,.heif,video/*,.mov,.mp4",multiple:!0,className:"hidden",onChange:P=>{const H=Array.from(P.target.files??[]);P.target.value="",H.length&&ge(H)}}),o.jsxs("div",{className:"mb-4 flex items-center justify-between gap-4",children:[o.jsx("h2",{className:"text-lg font-semibold",children:e("1. Add photos")}),r.length>0&&o.jsx("span",{className:"text-sm text-muted-foreground",children:e("{used} of {max} photos used",{used:r.length,max:Ky})})]}),r.length>0&&o.jsx("ul",{className:"mb-4 space-y-3",children:r.map(P=>{const H=P.result&&Ki(P.result.point,w)?P.result:null;return o.jsxs("li",{className:"flex items-center gap-3 rounded-xl border border-border/60 p-2.5",children:[P.previewUrl?o.jsx("img",{src:P.previewUrl,alt:"",className:"h-14 w-14 shrink-0 rounded-lg object-cover"}):o.jsx("span",{className:"flex h-14 w-14 shrink-0 items-center justify-center rounded-lg bg-secondary",children:o.jsx(si,{className:"h-5 w-5 text-muted-foreground","aria-hidden":!0})}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("div",{className:"truncate text-sm font-medium",children:P.name}),o.jsx("div",{className:"truncate text-xs text-muted-foreground",children:P.error?P.error:H?H.converted?e("Location added. Saved as JPEG."):e("Location added"):P.existing?e("Has a location: {lat}, {lng}",{lat:Ji(P.existing.latitude),lng:Ji(P.existing.longitude)}):e("No location yet")})]}),H&&o.jsxs("a",{href:H.url,download:H.fileName,target:"_blank",rel:"noopener","data-umami-event":"tool-download","data-umami-event-tool":Nn,className:"inline-flex shrink-0 items-center gap-1 text-sm font-medium text-primary hover:underline",children:[o.jsx(Yl,{className:"h-4 w-4","aria-hidden":!0}),e("Download")]}),o.jsx("button",{type:"button",onClick:()=>void me(P.id),"aria-label":e("Remove"),className:"shrink-0 text-muted-foreground hover:text-foreground",children:o.jsx(Bt,{className:"h-4 w-4","aria-hidden":!0})})]},P.id)})}),(B>0||r.length===0)&&o.jsxs("label",{htmlFor:"gps-upload",className:`flex cursor-pointer flex-col items-center justify-center rounded-xl border-2 border-dashed border-border/70 p-6 text-center transition-colors hover:border-primary/50 hover:bg-secondary/20 ${r.length===0?"min-h-48":"min-h-24"}`,children:[o.jsx("span",{className:"mb-2 flex h-11 w-11 items-center justify-center rounded-full bg-secondary",children:o.jsx(Kl,{className:"h-5 w-5 text-muted-foreground","aria-hidden":!0})}),o.jsx("span",{className:"font-semibold",children:r.length===0?e("Add your photos"):e("Add another photo")}),r.length===0&&o.jsx("span",{className:"mt-1 text-sm text-muted-foreground",children:e("Drop photos or a folder here, or click to browse. JPG keeps its original qual
542ity; other formats are saved as JPEG.")})]}),p&&o.jsx("p",{className:"mt-3 text-sm text-muted-foreground",children:p}),s.length>0&&o.jsx("p",{className:"mt-3 text-sm text-muted-foreground",children:e("{count, plural, one {# photo is held and will be added next.} other {# photos are held and will be added next.}}",{count:s.length})}),l&&o.jsxs("div",{className:"mt-4 rounded-2xl border border-primary/30 bg-primary/5 p-5",children:[o.jsx("h3",{className:"font-semibold mb-1",children:e("That's 3 photos, the free limit for one batch")}),o.jsx("p",{className:"text-sm leading-6 text-muted-foreground mb-3",children:e("The rest are waiting. Download these, remove them, and the next ones move up. A free account stamps and organizes your photos with their location in one place.")}),o.jsxs("div",{className:"flex flex-wrap gap-3",children:[o.jsx(ne,{variant:"hero",size:"sm",asChild:!0,children:o.jsx("a",{href:hB,target:"_blank",rel:"noopener","data-umami-event":"webapp-click","data-umami-event-source":"add-gps-limit",children:e("Start free")})}),o.jsx("button",{type:"button",onClick:()=>dd({from:"add-gps-limit",prefill:e("I need to add GPS to more than 3 photos. What are my options?")}),className:"text-sm text-muted-foreground underline-offset-4 hover:text-foreground hover:underline",children:e("Not sure which plan fits? Ask us, we reply within a day.")})]})]})]}),o.jsxs("div",{className:q,children:[o.jsxs("div",{className:"mb-4 flex flex-wrap items-center justify-between gap-x-4 gap-y-2",children:[o.jsx("h2",{className:"whitespace-nowrap text-lg font-semibold",children:e("2. Choose a location")}),o.jsxs("button",{type:"button",onClick:xe,disabled:k,className:"inline-flex items-center gap-1.5 whitespace-nowrap text-sm font-medium text-primary hover:underline disabled:opacity-60",children:[k?o.jsx(Bn,{className:"h-4 w-4 animate-spin","aria-hidden":!0}):o.jsx(wI,{className:"h-4 w-4","aria-hidden":!0}),e("Use my location")]})]}),o.jsxs("form",{onSubmit:Z,className:"flex gap-2",children:[o.jsx("input",{type:"search",value:A,onChange:P=>E(P.target.value),placeholder:e("Search an address or place"),"aria-label":e("Search an address or place"),className:"min-w-0 flex-1 rounded-xl border border-border bg-background px-3 py-2.5 text-base sm:text-sm"}),o.jsx(ne,{type:"submit",variant:"hero",disabled:R||!A.trim(),"aria-label":e("Search"),children:R?o.jsx(Bn,{className:"h-4 w-4 animate-spin","aria-hidden":!0}):o.jsx(ip,{className:"h-4 w-4","aria-hidden":!0})})]}),S&&S.length>1&&o.jsx("ul",{className:"mt-2 divide-y divide-border/60 overflow-hidden rounded-xl border border-border/60",children:S.map(P=>o.jsx("li",{children:o.jsxs("button",{type:"button",onClick:()=>{J(P.point,"search",P.label),D(null)},className:"flex w-full items-start gap-2 px-3 py-2.5 text-left text-sm hover:bg-secondary",children:[o.jsx(Aa,{className:"mt-0.5 h-4 w-4 shrink-0 text-muted-foreground","aria-hidden":!0}),o.jsx("span",{className:"line-clamp-2",children:P.label})]})},`${P.point.latitude},${P.point.longitude}`))}),S&&S.length===0&&o.jsx("p",{className:"mt-2 text-sm text-muted-foreground",children:e("No places found. Try a fuller address.")}),o.jsxs("div",{className:"mt-4 grid grid-cols-2 gap-3",children:[o.jsxs("label",{className:"text-sm font-medium",children:[e("Latitude"),o.jsx("input",{inputMode:"decimal",value:g,onChange:P=>Ce(P.target.value,j),onBlur:()=>w&&ce("gps-location-set",{tool:Nn,method:"typed"}),placeholder:"37.779300",className:"mt-1.5 w-full rounded-xl border border-border bg-background px-3 py-2.5 text-base font-normal sm:text-sm"})]}),o.jsxs("label",{className:"text-sm font-medium",children:[e("Longitude"),o.jsx("input",{inputMode:"decimal",value:j,onChange:P=>Ce(g,P.target.value),placeholder:"-122.419300",className:"mt-1.5 w-full rounded-xl border border-border bg-background px-3 py-2.5 text-base font-normal sm:text-sm"})]})]}),v&&o.jsx("p",{className:"mt-3 line-clamp-2 text-sm text-muted-foreground",children:v}),_&&o.jsx("p",{className:"mt-3 text-sm text-destructive",children:_})]})]}),o.jsxs("div",{className:"flex flex-col gap-6 lg:sticky lg:top-24",children:[o.jsxs("div",{className:q,children:[o.jsxs("div",{className:"mb-4 flex items-center justify-between gap-4",children:[o.jsx("h2",{className:"text-lg font-semibold",children:e("Location preview")}),w&&o.jsxs("a",{href:`https://www.google.com/maps?q=${w.latitude},${w.longitude}`,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 text-sm font-medium text-primary hover:underline",children:[e("Open in Maps"),o.jsx($w,{className:"h-3.5 w-3.5","aria-hidden":!0})]})]}),o.jsx(H_,{point:w,onPick:P=>J(P,"map")}),o.jsx("p",{className:"mt-2 text-xs text-muted-foreground",children:e("Click the map or drag the pin to fine tune the spot.")})]}),o.jsxs("div",{className:q,children:[o.jsx("h2",{className:"text-lg font-semibold mb-3",children:e("3. Save your photos")}),o.jsx("p",{className:"mb-4 text-sm text-muted-foreground",children:r.length?e(w?G?"Ready to write this location into your photos.":"Your photos have the location. Download them all here, or one at a time from the list.":"Choose a location for your photos."):e("Add photos and choose a location to get started.")}),o.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row",children:[o.jsxs(ne,{variant:"hero",className:"flex-1",disabled:!w||!r.length||U||!G,onClick:()=>void pe(),children:[U?o.jsx(Bn,{className:"h-4 w-4 animate-spin","aria-hidden":!0}):o.jsx(Aa,{className:"h-4 w-4","aria-hidden":!0}),e("{count, plural, one {Add location to # photo} other {Add location to # photos}}",{count:Math.max(r.length,1)})]}),o.jsxs(ne,{variant:"outline",className:"flex-1",disabled:!z.length,onClick:C,children:[o.jsx(Yl,{className:"h-4 w-4","aria-hidden":!0}),z.length>1?e("Download all {count}",{count:z.length}):e("Download")]})]}),(r.length>0||s.length>0)&&o.jsx("button",{type:"button",onClick:ue,className:"mt-3 text-sm text-muted-foreground hover:text-foreground",children:e("Clear all")})]})]})]})})}),o.jsx("section",{className:"pb-16",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"mx-auto max-w-3xl",children:[o.jsx("span",{className:"section-eyebrow",children:e("How
542it works")}),o.jsx("h2",{className:"section-title",children:e("Geotag a photo in three steps")}),o.jsxs("ol",{className:"mt-6 space-y-3 text-muted-foreground",children:[o.jsx("li",{children:e("1. Add up to 3 photos. JPG, PNG, WebP and iPhone HEIC all work.")}),o.jsx("li",{children:e("2. Choose the location: search an address, use your current location, type coordinates, or click the map.")}),o.jsx("li",{children:e("3. Add the location and download. The GPS latitude and longitude are written into each photo's EXIF, alongside everything that was already there.")})]})]})})}),o.jsx("section",{className:"pb-16",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"mx-auto max-w-3xl",children:[o.jsxs("div",{className:"text-center mb-8",children:[o.jsx("span",{className:"section-eyebrow",children:e("FAQ")}),o.jsx("h2",{className:"section-title",children:e("Adding GPS to photos, answered")})]}),o.jsx("div",{className:"panel rounded-3xl p-4 md:p-6",children:fB.map((P,H)=>o.jsxs("details",{className:`group border-border/60 ${H>0?"border-t":""}`,children:[o.jsxs("summary",{className:"flex cursor-pointer list-none items-start gap-4 py-5 text-left",children:[o.jsx("span",{className:"flex-1 pt-0.5 text-base font-semibold leading-6 md:text-lg",children:e(P.question)}),o.jsx(gn,{className:"mt-1 h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200 group-open:rotate-180"})]}),o.jsx("div",{className:"pb-5",children:o.jsx("p",{className:"text-sm leading-7 text-muted-foreground md:text-[15px]",children:e(P.answer)})})]},P.question))})]})})}),o.jsx("section",{className:"pb-20",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"mx-auto max-w-4xl",children:[o.jsxs("div",{className:"text-center mb-8",children:[o.jsx("span",{className:"section-eyebrow",children:e("More photo tools")}),o.jsx("h2",{className:"section-title",children:e("Related free tools")})]}),o.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[o.jsxs("a",{href:t("/timestamp-photo"),className:"panel rounded-2xl p-6 transition-colors hover:border-primary/40",children:[o.jsx("h3",{className:"font-semibold text-lg mb-2",children:e("Timestamp Photo Tool")}),o.jsx("p",{className:"text-sm text-muted-foreground",children:e("Stamp the date, time and coordinates onto the photo itself, so anyone can see them without reading the metadata.")})]}),o.jsxs("a",{href:t("/photo-metadata-tool"),className:"panel rounded-2xl p-6 transition-colors hover:border-primary/40",children:[o.jsx("h3",{className:"font-semibold text-lg mb-2",children:e("Photo Metadata Viewer")}),o.jsx("p",{className:"text-sm text-muted-foreground",children:e("Check that the location landed: inspect every EXIF field in a photo, GPS included, without uploading it.")})]})]})]})})})]}),o.jsx(Yp,{count:d,tool:Nn,onClose:()=>u(0)}),o.jsx(et,{})]})},fB=[{question:"Are my photos uploaded anywhere?",answer:"No. The location is written into your photos in your browser, and nothing is sent to a server. Only an address search goes online, to find the coordinates for what you typed."},{question:"Does this change anything else in my photo?",answer:"A JPG keeps its original image and all of its existing metadata, such as the date taken and the camera. Only the GPS fields are added or replaced. PNG, WebP and HEIC photos are saved as a high quality JPG, keeping the date taken and camera model."},{question:"What if my photo already has a location?",answer:"The tool shows the location it already has. Adding a new one replaces only the GPS coordinates and leaves the rest of the metadata as it was."},{question:"Will apps see the new location?",answer:"Yes. The coordinates are standard EXIF GPS tags, which Apple Photos, Google Photos, Windows, Lightroom and most map apps read. Some sites, including many social networks, strip metadata when you upload, so the location will not survive there."},{question:"Can I stamp the location onto the photo instead?",answer:"Yes. The free Timestamp Photo Tool writes the date, time and coordinates onto the image itself, where anyone can read them, even after a site str
542ips the metadata."}],gB="/assets/app-icon-BIvqbGfe.jpg",Zy=612,cc=792,Pn=36,so=576,Kh=44,yB=742,ex=20,tx=2,B2=180,xB=16,Jh=Pn+B2+xB,ns=so-Jh,dc=11,vB=15,bB=10,uc=13.1,wB=4,O2=[18,22,28],nx=[90,100,115],rx=[80,92,108],F2=[50,120,220],ox=[88,98,110],jB=[220,224,229],NB=1600,AB=.82;function EB(...e){return e.some(t=>/[^\u0000-Éâ-â¯â¬â¢]/.test(t))}function SB(e){return/heic|heif/i.test(e.type)||/\.(heic|heif)$/i.test(e.name)}async function IB(e){var t;try{let n=e;if(SB(e)){const{heicTo:l}=await We(async()=>{const{heicTo:c}=await import("./heic-to-DIRPI3VF.js");return{heicTo:c}},[]);n=await l({blob:e,type:"image/jpeg",quality:.9})}const r=await createImageBitmap(n),a=Math.min(1,NB/Math.max(r.width,r.height)),s=document.createElement("canvas");s.width=Math.max(1,Math.round(r.width*a)),s.height=Math.max(1,Math.round(r.height*a));const i=s.getContext("2d");return i?(i.fillStyle="#ffffff",i.fillRect(0,0,s.width,s.height),i.drawImage(r,0,0,s.width,s.height),(t=r.close)==null||t.call(r),s):null}catch{return null}}async function kB(){var e;try{const t=await createImageBitmap(await(await fetch(gB)).blob()),n=document.createElement("canvas");return n.width=64,n.height=64,(e=n.getContext("2d"))==null||e.drawImage(t,0,0,64,64),n.toDataURL("image/png")}catch{return null}}function CB(e,t){return e.toLocaleString(t,{year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}function TB(e){if(/^\d{4}-\d{2}-\d{2}$/.test(e.date)){const[t,n,r]=e.date.split("-").map(Number);return new Date(t,n-1,r)}return new Date}async function PB({details:e,photos:t,t:n,intlLocale:r,onProgress:a}){const{jsPDF:s}=await We(async()=>{const{jsPDF:p}=await import("./jspdf.es.min-C0-jjfhl.js").then(f=>f.j);return{jsPDF:p}},[]),i=new s({unit:"pt",format:[Zy,cc],compress:!0});i.setLineHeightFactor(uc/dc),i.setProperties({title:e.title.trim()||n("Photo Report"),subject:e.project.trim(),creator:"Timestamp It"});const l=await kB();let c=0,d=0,u=Kh,m=0;a==null||a(0,t.length);for(let p=0;p<t.length;p++){const f=p%tx;f===0&&(d>0&&i.addPage([Zy,cc]),d++,u=d===1?RB(i,e,n,r):Kh,m=(yB-u-ex)/tx,MB(i,d,l));const w=await IB(t[p].file);w||c++,DB(i,{photo:t[p],canvas:w,rowY:u+f*(m+ex),slotH:m,t:n,intlLocale:r}),a==null||a(p+1,t.length)}return{blob:i.output("blob"),pageCount:i.getNumberOfPages(),imageFailures:c}}function RB(e,t,n,r){const a=Kh;e.setFont("helvetica","bold"),e.setFontSize(28),e.setTextColor(...O2);const[s]=e.splitTextToSize(t.title.trim()||n("Photo Report"),330);e.text(s??"",Pn,a,{baseline:"top"}),e.setFontSize(12);const i=TB(t).toLocaleDateString(r,{year:"numeric",month:"long",day:"numeric"});e.text(i,so,a,{align:"right",baseline:"top"});let l=a+e.getTextDimensions(i).h+3;e.setFont("helvetica","normal"),e.setTextColor(...nx);for(const m of[t.project.trim(),t.client.trim()].filter(Boolean)){const[p]=e.splitTextToSize(m,200);e.text(p??"",so,l,{align:"right",baseline:"top"}),l+=e.getTextDimensions(m).h+3}const c=Math.max(a+48,l+6);e.setFillColor(...F2),e.rect(Pn,c,so-Pn,2,"F");let d=c+2;const u=t.notes.trim();if(u){e.setFont("helvetica","normal"),e.setFontSize(dc),e.setTextColor(...nx);const m=e.splitTextToSize(u,so-Pn).slice(0,wB);e.text(m,Pn,d+8,{baseline:"top"}),d+=8+m.length*uc}return d+16}function DB(e,{photo:t,canvas:n,rowY:r,slotH:a,t:s,intlLocale:i}){const l=r+a;if(n){const u=n.width/n.height,m=u>ns/a,p=m?ns:a*u,f=m?ns/u:a;e.addImage(n.toDataURL("image/jpeg",AB),"JPEG",Jh+ns-p,r,p,f,void 0,"FAST")}else e.setFont("helvetica","normal"),e.setFontSize(dc),e.setTextColor(...rx),e.text(s("This photo could not be loaded."),Jh+ns,r,{align:"right",baseline:"top"});const c=[];t.takenAt&&c.push([s("Taken"),CB(t.takenAt,i)]),t.latitude!=null&&t.longitude!=null&&c.push([s("Coordinates"),`${t.latitude.toFixed(6)}, ${t.longitude.toFixed(6)}`]),t.note.trim()&&c.push([s("Note"),t.note.trim()]);let d=r;for(const[u,m]of c){if(d+13>l)break;e.setFont("helvetica","bold"),e.setFontSize(dc),e.setTextColor(...O2),e.text(u,Pn,d,{baseline:"top"}),d+=vB;const p=Math.floor((l-d)/uc);if(p<=0)break;e.setFont("helvetica","normal"),e.setTextColor(...rx);const f=e.splitTextToSize(m,B2).slice(0,p);e.text(f,Pn,d,{baseline:"top"}),d+=f.length*uc+bB}}
542function MB(e,t,n){const r=cc-44,a=cc-30;e.setDrawColor(...jB),e.setLineWidth(.5),e.line(Pn,r,so,r),n&&e.addImage(n,"PNG",Pn,a-1,14,14),e.setFont("helvetica","normal"),e.setFontSize(10),e.setTextColor(...ox);const s="By: ";e.text(s,55,a,{baseline:"top"});const i=55+e.getTextDimensions(s).w;e.setTextColor(...F2);const l="timestampitapp.com";e.text(l,i,a,{baseline:"top"}),e.link(i,a,e.getTextDimensions(l).w,14,{url:"https://timestampitapp.com/?utm_source=photo_report&utm_medium=pdf_footer"}),e.setTextColor(...ox),e.text(String(t),so,a,{align:"right",baseline:"top"})}function _B(e){return`${e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"")||"photo_report"}.pdf`}const Zi=10,BB=25*1024*1024,OB=zn("photo-report-tool"),rs="photo-report";function FB(e){return e.type.startsWith("image/")||/\.(jpe?g|png|webp|heic|heif|gif|bmp)$/i.test(e.name)}function LB(e){return/heic|heif/i.test(e.type)||/\.(heic|heif)$/i.test(e.name)}async function HB(e){try{const t=(await We(async()=>{const{default:s}=await import("./full.esm-BuX-V2CP.js");return{default:s}},[])).default,[n,r]=await Promise.all([t.parse(e,["DateTimeOriginal","CreateDate"]).catch(()=>null),t.gps(e).catch(()=>null)]),a=(n==null?void 0:n.DateTimeOriginal)??(n==null?void 0:n.CreateDate);return{takenAt:a instanceof Date&&!Number.isNaN(a.getTime())?a:null,latitude:r&&Number.isFinite(r.latitude)?r.latitude:null,longitude:r&&Number.isFinite(r.longitude)?r.longitude:null}}catch{return{takenAt:null,latitude:null,longitude:null}}}const UB=()=>{const e=new Date;return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`},zB=(e,t)=>t?e.replace(/\{(\w+)\}/g,(n,r)=>r in t?String(t[r]):n):e,$B=()=>{const e=re(),t=qe(),{locale:n}=ir(),[r,a]=h.useState({title:"",project:"",client:"",date:"",notes:""}),[s,i]=h.useState([]),[l,c]=h.useState(!1),[d,u]=h.useState(0);function m(k){const{videos:O,rest:_}=Xp(k);return O.length&&(u(O.length),ce("tool-video-dropped",{tool:rs,videos:O.length})),_}const[p,f]=h.useState(null),[w,y]=h.useState(null),[v,x]=h.useState(null),g=h.useRef([]);h.useEffect(()=>(ce("tool-open",{tool:rs}),a(k=>k.date?k:{...k,date:UB()}),()=>g.current.forEach(k=>URL.revokeObjectURL(k))),[]);const b=k=>a(O=>({...O,...k}));async function j(k){x(null);const O=m(k),_=O.filter(FB),W=_.filter(z=>z.size<=BB),U=Zi-s.length,V=W.slice(0,Math.max(0,U)),T=O.length-_.length,I=_.length-W.length;f(I?e("{count, plural, one {# photo is larger than 25MB and was left out.} other {# photos are larger than 25MB and were left out.}}",{count:I}):T?e("{count, plural, one {Skipped # file that isn't a photo.} other {Skipped # files that aren't photos.}}",{count:T}):null),W.length>V.length&&(c(!0),ce("tool-limit-hit",{tool:rs,over:W.length-V.length}));const B=await Promise.all(V.map(async z=>{const G=LB(z)?null:URL.createObjectURL(z);return G&&g.current.push(G),{id:`${z.name}-${z.size}-${Math.random().toString(36).slice(2,8)}`,file:z,previewUrl:G,note:"",...await HB(z)}}));i(z=>{const G=[...z,...B];return z.length>0?G:[...G].sort((J,Z)=>J.takenAt&&Z.takenAt?J.takenAt.getTime()-Z.takenAt.getTime():J.takenAt?-1:Z.takenAt?1:0)})}function N(k,O){i(_=>_.map(W=>W.id===k?{...W,...O}:W))}function A(k,O){i(_=>{const W=[..._],[U]=W.splice(k,1);return W.splice(k+O,0,U),W})}function E(k){i(O=>O.filter(_=>_.id!==k)),c(!1)}const S=EB(r.title,r.project,r.client,r.notes,...s.map(k=>k.note));async function D(){if(!(!s.length||w)){x(null),y({done:0,total:s.length});try{const k=n==="th"||n==="hi"?zB:e,{blob:O,pageCount:_}=await PB({details:r,photos:s,t:k,intlLocale:n==="th"||n==="hi"?"en-US":$r(),onProgress:(V,T)=>y({done:V,total:T})}),W=URL.createObjectURL(O);g.current.push(W);const U=document.createElement("a");U.href=W,U.download=_B(r.title),U.target="_blank",U.rel="noopener",document.body.appendChild(U),U.click(),U.remove(),ce("tool-used",{tool:rs,photos:s.length,pages:_})}catch{x(e("We couldn't create the PDF. Try again, or with fewer photos."))}finally{y(null)}}}const R="mt-1.5 w-full rounded-xl border border-border bg-background px-3 py-2.5 text-base sm:text-sm",$="panel hover:translate-y-0 hover:shadow-lg rounded-3xl p-5 md:p-6";return o.jsxs("div",{className:"min-h-screen bg-background",children:[o.jsx(Ve,{routeKey:"/photo-report"}),o.jsx(Ze,{}),o.jsxs("main",{children:[o.jsx("section",{className:"relative pt-32 pb-8",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"max-w-4xl mx-auto text-center",children:[o.jsx("span",{className:"section-eyebrow",children:e("Free Tool")}),o.jsx("h1",{className:"text-4xl md:text-5xl font-bold tracking-tight mt-4 mb-5",children:e("Photo Report Maker")}),o.jsx("p",{className:"section-subtitle",children:e("Turn up to 10 photos into a clean PDF report, with the date and location of each photo and your notes beside it. Ready to send to a client.")}),o.jsx("p",{className:"mt-6 text-sm text-muted-foreground",children:e("Nothing is uploaded. Everything runs in your browser.")})]})})}),o.jsx("section",{className:"pb-12",children:o.jsxs("div",{className:"container",children:[o.jsx("input",{id:"report-upload",type:"file",accept:"image/*,.heic,.heif,video/*,.mov,.mp4",multiple:!0,className:"hidden",onChange:k=>{const O=Array.from(k.target.files??[]);k.target.value="",O.length&&j(O)}}),o.jsxs("div",{className:"max-w-6xl mx-auto grid gap-6 lg:grid-cols-[22rem_1fr] lg:items-start",children:[o.jsxs("aside",{className:`${$} lg:sticky lg:top-24`,children:[o.jsx("h2",{className:"text-lg font-semibold",children:e("Create your report")}),o.jsx("p",{className:"mt-1 mb-4 text-sm text-muted-foreground",children:e("Add the report details and your photos, then download the PDF.")}),o.jsxs("label",{className:"block text-sm font-medium",children:[e("Report title"),o.jsx("input",{value:r.title,onChange:k=>b({title:k.target.value}),placeholder:e("Photo Report"),maxLength:80,className:R})]}),o.jsxs("label",{className:"mt-3 block text-sm font-medium",children:[e("Project"),o.jsx("input",{value:r.project,onChange:k=>b({project:k.target.value}),placeholder:e("Project name or site"),maxLength:80,className:R})]}),o.jsxs("label",{className:"mt-3 block text-sm font-medium",children:[e("Client"),o.jsx("input",{value:r.client,onChange:k=>b({client:k.target.value}),placeholder:e("Client or company"),maxLength:80,className:R})]}),o.jsxs("label",{className:"mt-3 block text-sm font-medium",children:[e("Report date"),o.jsx("input",{type:"date",value:r.date,onChange:k=>b({date:k.target.value}),className:R})]}),o.jsxs("label",{className:"mt-3 block text-sm font-medium",children:[e("Notes"),o.jsx("textarea",{value:r.notes,onChange:k=>
542b({notes:k.target.value}),placeholder:e("Work completed, issue found, or next step"),rows:3,maxLength:400,className:`${R} resize-y`})]}),o.jsxs("div",{className:"mt-5 flex flex-col gap-3",children:[o.jsx(ne,{variant:"outline",asChild:!w,disabled:!!w||s.length>=Zi,children:o.jsxs("label",{htmlFor:"report-upload",className:"cursor-pointer",children:[o.jsx(II,{className:"h-4 w-4","aria-hidden":!0}),e("Add photos")]})}),o.jsxs(ne,{variant:"hero",disabled:!s.length||!!w,onClick:()=>void D(),children:[w?o.jsx(Bn,{className:"h-4 w-4 animate-spin","aria-hidden":!0}):o.jsx(yh,{className:"h-4 w-4","aria-hidden":!0}),w?e("Creating PDF {done} of {total}",{done:w.done,total:w.total}):e("Download PDF report")]}),o.jsx("p",{className:"text-center text-xs text-muted-foreground",children:e("{used} of {max} photos",{used:s.length,max:Zi})})]}),S&&o.jsx("p",{className:"mt-3 text-xs text-amber-700",children:e("The PDF can only show Latin letters for now. Text in other scripts will not display correctly.")}),v&&o.jsx("p",{className:"mt-3 text-sm text-destructive",children:v})]}),o.jsxs("div",{className:$,onDrop:k=>{k.preventDefault(),Qp(k.dataTransfer).then(({files:O})=>O.length&&j(O))},onDragOver:k=>k.preventDefault(),children:[o.jsx("h2",{className:"text-lg font-semibold",children:e("Report photos")}),o.jsx("p",{className:"mt-1 mb-4 text-sm text-muted-foreground",children:s.length?e("They appear in the report in this order, two to a page."):e("Add photos to start your report")}),s.length>0&&o.jsx("ol",{className:"mb-4 space-y-3",children:s.map((k,O)=>o.jsxs("li",{className:"flex gap-3 rounded-2xl border border-border/60 p-3",children:[k.previewUrl?o.jsx("img",{src:k.previewUrl,alt:"",className:"h-24 w-24 shrink-0 rounded-xl object-cover sm:h-28 sm:w-28"}):o.jsx("span",{className:"flex h-24 w-24 shrink-0 items-center justify-center rounded-xl bg-secondary sm:h-28 sm:w-28",children:o.jsx(si,{className:"h-6 w-6 text-muted-foreground","aria-hidden":!0})}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsxs("div",{className:"flex items-start justify-between gap-2",children:[o.jsxs("div",{className:"min-w-0",children:[o.jsx("div",{className:"truncate text-sm font-medium",children:k.file.name}),o.jsxs("div",{className:"text-xs text-muted-foreground",children:[k.takenAt?k.takenAt.toLocaleString($r(),{dateStyle:"medium",timeStyle:"short"}):e("No date in this photo"),k.latitude!=null&&k.longitude!=null?` · ${k.latitude.toFixed(5)}, ${k.longitude.toFixed(5)}`:""]})]}),o.jsxs("div",{className:"flex shrink-0 items-center gap-1 text-muted-foreground",children:[o.jsx("button",{type:"button",disabled:O===0,onClick:()=>A(O,-1),"aria-label":e("Move up"),className:"rounded-md p-1 hover:bg-secondary hover:text-foreground disabled:opacity-30",children:o.jsx(uI,{className:"h-4 w-4","aria-hidden":!0})}),o.jsx("button",{type:"button",disabled:O===s.length-1,onClick:()=>A(O,1),"aria-label":e("Move down"),className:"rounded-md p-1 hover:bg-secondary hover:text-foreground disabled:opacity-30",children:o.jsx(cI,{className:"h-4 w-4","aria-hidden":!0})}),o.jsx("button",{type:"button",onClick:()=>E(k.id),"aria-label":e("Remove"),className:"rounded-md p-1 hover:bg-secondary hover:text-foreground",children:o.jsx(Bt,{className:"h-4 w-4","aria-hidden":!0})})]})]}),o.jsx("textarea",{value:k.note,onChange:_=>N(k.id,{note:_.target.value}),placeholder:e("Note for this photo (optional)"),rows:2,maxLength:300,className:"mt-2 w-full resize-y rounded-lg border border-border bg-background px-2.5 py-1.5 text-base sm:text-sm"})]})]},k.id))}),s.length<Zi&&o.jsxs("label",{htmlFor:"report-upload",className:`flex cursor-pointer flex-col items-center justify-center rounded-2xl border-2 border-dashed border-border/70 p-6 text-center transition-colors hover:border-primary/50 hover:bg-secondary/20 ${s.length?"min-h-28":"min-h-72"}`,children:[o.jsx("span",{className:"mb-3 flex h-12 w-12 items-center justify-center rounded-full bg-secondary",children:o.jsx(Kl,{className:"h-6 w-6 text-muted-foreground","aria-hidden":!0})}),o.jsx("span",{className:"font-semibold",children:s.length?e("Add more photos"):e("Upload photos to create a PDF report")}),!s.length&&o.jsx("span",{className:"mt-1 text-sm text-muted-foreground",children:e("Drop photos or a folder here, or click to browse. JPG, PNG, WebP and iPhone HEIC.")}
542)]}),p&&o.jsx("p",{className:"mt-3 text-sm text-muted-foreground",children:p}),s.length>0&&o.jsxs(ne,{variant:"hero",className:"mt-4 w-full lg:hidden",disabled:!!w,onClick:()=>void D(),children:[w?o.jsx(Bn,{className:"h-4 w-4 animate-spin","aria-hidden":!0}):o.jsx(yh,{className:"h-4 w-4","aria-hidden":!0}),w?e("Creating PDF {done} of {total}",{done:w.done,total:w.total}):e("Download PDF report")]}),l&&o.jsxs("div",{className:"mt-4 rounded-2xl border border-primary/30 bg-primary/5 p-5",children:[o.jsx("h3",{className:"font-semibold mb-1",children:e("That's 10 photos, the most for a free report")}),o.jsx("p",{className:"text-sm leading-6 text-muted-foreground mb-3",children:e("Timestamp It Pro builds reports from whole projects, with every photo stamped and organized by day, straight from the app or the web.")}),o.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[o.jsx(ne,{variant:"hero",size:"sm",asChild:!0,children:o.jsx("a",{href:t("/pricing"),"data-umami-event":"cta-click","data-umami-event-location":"photo-report-limit",children:e("See Pro pricing")})}),o.jsx(ne,{variant:"outline",size:"sm",asChild:!0,children:o.jsx("a",{href:OB,target:"_blank",rel:"noopener","data-umami-event":"webapp-click","data-umami-event-source":"photo-report-limit",children:e("Start free")})}),o.jsx("button",{type:"button",onClick:()=>dd({from:"photo-report-limit",prefill:e("I need a report with more than 10 photos. What are my options?")}),className:"text-sm text-muted-foreground underline-offset-4 hover:text-foreground hover:underline",children:e("Not sure which plan fits? Ask us, we reply within a day.")})]})]})]})]})]})}),o.jsx("section",{className:"pb-16",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"mx-auto max-w-3xl",children:[o.jsx("span",{className:"section-eyebrow",children:e("How it works")}),o.jsx("h2",{className:"section-title",children:e("A photo report in three steps")}),o.jsxs("ol",{className:"mt-6 space-y-3 text-muted-foreground",children:[o.jsx("li",{children:e("1. Add up to 10 photos. The date and location they were taken are read from each photo.")}),o.jsx("li",{children:e("2. Fill in the report title, project, client and notes, and add a note to any photo.")}),o.jsx("li",{children:e("3. Download the PDF: two photos to a page, each with its date, coordinates and note beside it.")})]})]})})}),o.jsx("section",{className:"pb-16",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"mx-auto max-w-3xl",children:[o.jsxs("div",{className:"text-center mb-8",children:[o.jsx("span",{className:"section-eyebrow",children:e("FAQ")}),o.jsx("h2",{className:"section-title",children:e("Photo reports, answered")})]}),o.jsx("div",{className:"panel rounded-3xl p-4 md:p-6",children:GB.map((k,O)=>o.jsxs("details",{className:`group border-border/60 ${O>0?"border-t":""}`,children:[o.jsxs("summary",{className:"flex cursor-pointer list-none items-start gap-4 py-5 text-left",children:[o.jsx("span",{className:"flex-1 pt-0.5 text-base font-semibold leading-6 md:text-lg",children:e(k.question)}),o.jsx(gn,{className:"mt-1 h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200 group-open:rotate-180"})]}),o.jsx("div",{className:"pb-5",children:o.jsx("p",{className:"text-sm leading-7 text-muted-foreground md:text-[15px]",children:e(k.answer)})})]},k.question))})]})})}),o.jsx("section",{className:"pb-20",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"mx-auto max-w-4xl",children:[o.jsxs("div",{className:"text-center mb-8",children:[o.jsx("span",{className:"section-eyebrow",children:e("More photo tools")}),o.jsx("h2",{className:"section-title",children:e("Related free tools")})]}),o.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[o.jsxs("a",{href:t("/timestamp-photo"),className:"panel rounded-2xl p-6 transition-colors hover:border-primary/40",children:[o.jsx("h3",{className:"font-semibold text-lg mb-2",children:e("Timestamp Photo Tool")}),o.jsx("p",{className:"text-sm text-muted-foreground",children:e("Stamp the date, time and coordinates onto the photo itself, so anyone can see them without reading the metadata.")})]}),o.jsxs("a",{href:t("/add-gps-to-photos"),className:"panel roun
542ded-2xl p-6 transition-colors hover:border-primary/40",children:[o.jsx("h3",{className:"font-semibold text-lg mb-2",children:e("Add GPS to Photos")}),o.jsx("p",{className:"text-sm text-muted-foreground",children:e("Photos missing a location? Add GPS coordinates to them first, and the report shows where each was taken.")})]})]})]})})})]}),o.jsx(Yp,{count:d,tool:rs,onClose:()=>u(0)}),o.jsx(et,{})]})},GB=[{question:"Are my photos uploaded anywhere?",answer:"No. The report is put together in your browser, and your photos never leave your device. Close the tab and they are gone."},{question:"Where do the date and location come from?",answer:"From each photo's EXIF data, written by the camera or phone when it was taken. Photos that have been through some apps or messaging services lose it, and then the report shows only your note."},{question:"Is there a limit?",answer:"Free reports hold up to 10 photos, which is enough for a quick update or a small job. Timestamp It Pro makes reports from whole projects, stamped and organized by day."},{question:"Can I change the order of the photos?",answer:"Yes. Photos start in the order they were taken, and the arrows
542next to each one move it up or down. The report follows the order on screen."}],QB=()=>{const e=qe();return o.jsxs("div",{className:"min-h-screen bg-background",children:[o.jsx(Ve,{routeKey:"/privacy-policy"}),o.jsx(Ze,{}),o.jsx("main",{className:"container py-12 md:py-20",children:o.jsxs("div",{className:"max-w-4xl mx-auto prose prose-slate dark:prose-invert",children:[o.jsx("h1",{className:"text-4xl font-bold mb-8",children:"Privacy Policy"}),o.jsxs("p",{className:"text-muted-foreground mb-8",children:[o.jsx("strong",{children:"Effective Date:"})," July 2026"]}),o.jsx("p",{className:"text-muted-foreground mb-8",children:'Timestamp It ("we," "us," or "our") operates the Timestamp It mobile application (the "App"). Timestamp It is operated by a company incorporated in the United States. This Privacy Policy explains what information we collect, where it is stored, who processes it on our behalf, and what rights you have over it.'}),o.jsx("hr",{className:"my-8"}),o.jsxs("section",{className:"mb-8",children:[o.jsx("h2",{className:"text-2xl font-semibold mb-4",children:"1. Information We Collect"}),o.jsx("h3",{className:"text-xl font-semibold mb-3",children:"1.1 Information You Provide"}),o.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:[o.jsxs("li",{children:[o.jsx("strong",{children:"Account Information:"})," Your email address and display name when you create an account."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Project & Metadata Information:"})," Project names, captions, notes, tags, custom stamp fields, and other text you add within the App."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Team & Collaboration Data:"})," Team names, member roles, and the email addresses of people you invite to a project or team."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Communications:"})," Information you provide when you contact us for support, reply to one of our emails, or respond to an in-app survey."]})]}),o.jsx("h3",{className:"text-xl font-semibold mb-3",children:"1.2 Photos, Videos, and Media Content"}),o.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:[o.jsxs("li",{children:[o.jsx("strong",{children:"Captured Media:"})," Photos and videos you take using the App, including timestamps, location stamps, weather, map snapshots, markup, and related metadata."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Imported Media:"})," Media you choose to import from your device's photo library."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Voice & Text Notes:"})," Audio memos or written notes you attach to a photo."]})]}),o.jsx("h3",{className:"text-xl font-semibold mb-3",children:"1.3 Cloud Uploads & Sync Data"}),o.jsx("p",{className:"text-muted-foreground mb-3",children:"When cloud sync is enabled:"}),o.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:[o.jsx("li",{children:"Your selected photos, videos, and associated metadata are uploaded to our cloud infrastructure."}),o.jsx("li",{children:"Sync-related information such as project identifiers, device identifiers, and sync status may be stored to keep your data consistent across devices."}),o.jsx("li",{children:"If you collaborate with others, limited information (such as email addresses or display names) is used to manage access."})]}),o.jsx("h3",{className:"text-xl font-semibold mb-3",children:"1.4 Automatically Collected Information"}),o.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:[o.jsxs("li",{children:[o.jsx("strong",{children:"Device Information:"})," Device model, operating system version, app version, and unique device identifiers."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Push Notification Tokens:"})," A token issued by your device's operating system so we can deliver notifications you have enabled."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Usage & Diagnostic Data:"})," App interactions, feature usage, stamping activity, and error and crash reports. These events are recorded in our own database (see Section 7)."]})]}),o.jsx("h3",{className:"text-xl font-semibold mb-3",children:"1.5 Website Visitors"}),o.jsx("p",{className:"text-muted-foreground mb-4",children:"This section applies to our website, not the App:"}),o.jsx("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:o.jsxs("li",{children:[o.jsx("strong",{children:"Website Analytics:"})," We use a privacy-focused analytics tool to count page views and referrers. It does not use cookies and does not track you across other websites. This tool is not present in the App."]})}),o.jsx("h3",{className:"text-xl font-semibold mb-3",children:"1.6 Location Information"}),o.jsx("p",{className:"text-muted-foreground mb-4",children:"If you enable location features, we may collect precise or approximate location data to embed location stamps, addresses, coordinates, weather, or maps into your photos. Location access is optional and can be disabled in device settings."}),o.jsx("h3",{className:"text-xl font-semibold mb-3",children:"1.7 Subscription Information"}),o.jsxs("p",{className:"text-muted-foreground mb-4",children:["Purchases are processed by the Apple App Store or Google Play. ",o.jsx("strong",{children:"We never receive or store your payment card details."})," We receive and store subscription status events (such as whether a subscription is active, renewed, or expired) so the App can unlock the features you paid for."]})]}),o.jsx("hr",{className:"my-8"}),o.jsxs("section",{className:"mb-8",children:[o.jsx("h2",{className:"text-2xl font-semibold mb-4",children:"2. How We Use Your Information"}),o.jsx("p",{className:"text-muted-foreground mb-4",children:"We use your information to:"}),o.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:[o.jsx("li",{children:"Provide, operate, and maintain the App."}),o.jsx("li",{children:"Capture, display, and timestamp photos and videos."}
542),o.jsx("li",{children:"Upload, store, and sync your content across devices when cloud features are enabled."}),o.jsx("li",{children:"Enable collaboration, teams, and sharing features you choose to use."}),o.jsx("li",{children:"Deliver notifications and transactional emails you have enabled or requested."}),o.jsx("li",{children:"Improve performance, reliability, and user experience."}),o.jsx("li",{children:"Comply with legal obligations and enforce our terms."})]}),o.jsx("p",{className:"text-muted-foreground mb-4",children:o.jsx("strong",{children:"We do not sell your personal information, and we do not use your photos, videos, or notes for advertising."})})]}),o.jsx("hr",{className:"my-8"}),o.jsxs("section",{className:"mb-8",children:[o.jsx("h2",{className:"text-2xl font-semibold mb-4",children:"3. Where Your Data Is Stored"}),o.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:[o.jsxs("li",{children:["Our application database, authentication, and backend functions run on ",o.jsxs("strong",{children:["Supabase infrastructure hosted in the United States (AWS US East, Ohio â ",o.jsx("code",{children:"us-east-2"}),")"]}),"."]}),o.jsxs("li",{children:["Your photos and videos are stored on ",o.jsx("strong",{children:"Backblaze B2 cloud object storage in the United States (US West â Sacramento and Phoenix)"}),"."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Both providers store your data exclusively in the United States."})," We do not operate database or storage replicas outside the country."]}),o.jsx("li",{children:"Data in transit is protected with TLS. Data at rest is encrypted by our infrastructure provider."})]})]}),o.jsx("hr",{className:"my-8"}),o.jsxs("section",{className:"mb-8",children:[o.jsx("h2",{className:"text-2xl font-semibold mb-4",children:"4. Service Providers & Subprocessors"}),o.jsx("p",{className:"text-muted-foreground mb-4",children:"We use a small number of third-party providers to operate the App. Each is bound by its own contractual confidentiality and security obligations. We do not sell data to any of them."}),o.jsx("div",{className:"overflow-x-auto mb-4",children:o.jsxs("table",{className:"w-full text-sm text-left text-muted-foreground",children:[o.jsx("thead",{children:o.jsxs("tr",{className:"border-b",children:[o.jsx("th",{className:"py-2 pr-4 font-semibold text-foreground",children:"Provider"}),o.jsx("th",{className:"py-2 pr-4 font-semibold text-foreground",children:"Purpose"}),o.jsx("th",{className:"py-2 font-semibold text-foreground",children:"Data Involved"})]})}),o.jsxs("tbody",{children:[o.jsxs("tr",{className:"border-b",children:[o.jsx("td",{className:"py-2 pr-4",children:"Supabase (AWS, US)"}),o.jsx("td",{className:"py-2 pr-4",children:"Database, authentication, file storage, backend functions"}),o.jsx("td",{className:"py-2",children:"All account, project, media, and usage data"})]}),o.jsxs("tr",{className:"border-b",children:[o.jsx("td",{className:"py-2 pr-4",children:"Resend"}),o.jsx("td",{className:"py-2 pr-4",children:"Transactional and product email delivery"}),o.jsx("td",{className:"py-2",children:"Email address, display name, email delivery and open events"})]}),o.jsxs("tr",{className:"border-b",children:[o.jsx("td",{className:"py-2 pr-4",children:"RevenueCat"}),o.jsx("td",{className:"py-2 pr-4",children:"Subscription status management"}),o.jsx("td",{className:"py-2",children:"Account identifier and subscription events (no card details)"})]}),o.jsxs("tr",{className:"border-b",children:[o.jsx("td",{className:"py-2 pr-4",children:"Apple / Google"}),o.jsx("td",{className:"py-2 pr-4",children:"App distribution, in-app purchases, push notification delivery"}),o.jsx("td",{className:"py-2",children:"Purchase records and push notification tokens"})]})]})]})}),o.jsx("p",{className:"text-muted-foreground mb-4",children:"We may also disclose information where required by law or court order, or in connection with a merger, acquisition, or sale of assets."})]}),o.jsx("hr",{className:"my-8"}),o.jsxs("section",{className:"mb-8",children:[o.jsx("h2",{className:"text-2xl font-semibold mb-4",children:"5. Emails We Send"}),o.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:[o.jsxs("li",{children:[o.jsx("strong",{children:"Transactional emails"})," â account activation, project and team invitations, collaborator notifications, and access requests. These are triggered by you or by someone you work with."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Product emails"})," â onboarding guidance and occasional re-engagement messages if you signed up but stopped using the App."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Opt-out."})," Every non-transactional email identifies the address it was sent to and tells you how to opt out. You may also email us at any time to be removed. We honor opt-out requests for all non-transactional mail."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Delivery data."})," Our email provider records delivery, open, and click events so we can tell whether messages arrived. If you reply to one of our emails, we store your reply so we can respond to it."]}),o.jsx("li",{children:"We do not sell, rent, or share your email address with third parties for their own marketing."})]})]}),o.jsx("hr",{className:"my-8"}),o.jsxs("section",{className:"mb-8",children:[o.jsx("h2",{className:"text-2xl font-semibold mb-4",children:"6. Cloud Storage & Sync"}),o.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:[o.jsxs("li",{children:["Cloud uploads are ",o.jsx("strong",{children:"optional"})," and only occur when you enable cloud sync."]}),o.jsx("li",{children:"Content stored in the cloud is used solely to provide backup, syncing, and collaboration features."}),o.jsx("li",{children:"You may disable cloud sync at any time. Depending on your settings, locally stored content may remain on your device while cloud copies are retained or deleted according to your actions."})]})]}),o.jsx("hr",{className:"my-8"}),o.jsxs("section",{className:"mb-8",children:[o.jsx("h2",{className:"text-2xl font-semibold mb-4",children:"7. Data Security & Access Controls"}),o.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:[o.jsxs("li",{children:[o.jsx("strong",{children:"Encryption."})," All connections use TLS. Stored data is encrypted at rest by our infrastru
542cture provider."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Row-level isolation."})," Every table in our database enforces row-level security, so a signed-in account can only reach its own records and records explicitly shared with it."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Authentication."})," Access to your account requires a valid authenticated session. Backend functions verify that session before returning any data."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Staff access."})," We do not browse your media. In limited cases â such as a support request you have made, or investigating a fault â an authorized administrator may access an account. Every such access is recorded in an audit log."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Analytics stay in-house."})," Usage and diagnostic events are written to our own database rather than sold or shared for advertising purposes."]}),o.jsx("li",{children:"No method of storage or transmission is 100% secure, and we cannot guarantee absolute security."})]}),o.jsxs("p",{className:"text-muted-foreground mb-4",children:["To report a suspected security vulnerability, email ",o.jsx("a",{href:"mailto:[email protected]",className:"text-primary hover:underline",children:"[email protected]"}),"."]})]}),o.jsx("hr",{className:"my-8"}),o.jsxs("section",{className:"mb-8",children:[o.jsx("h2",{className:"text-2xl font-semibold mb-4",children:"8. Data Retention & Deletion"}),o.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:[o.jsx("li",{children:"We retain your information for as long as your account is active, or as needed to provide the App."}),o.jsxs("li",{children:["You may delete individual photos, projects, or your entire account from within the App, or request deletion at"," ",o.jsx("a",{href:e("/delete-account"),className:"text-primary hover:underline",children:"timestampitapp.com/delete-account"})," ","without needing the App installed."]}),o.jsx("li",{children:"Deleting your account removes your personal data and media from our active systems. Residual copies may persist in encrypted infrastructure backups for a limited period before being overwritten on the ordinary backup rotation."}),o.jsx("li",{children:"We may retain limited records where required for legal, tax, or fraud-prevention purposes."})]})]}),o.jsx("hr",{className:"my-8"}),o.jsxs("section",{className:"mb-8",children:[o.jsx("h2",{className:"text-2xl font-semibold mb-4",children:"9. Your Rights & Choices"}),o.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:[o.jsxs("li",{children:[o.jsx("strong",{children:"Permissions:"})," You can manage camera, microphone, photo library, location, and notification permissions in your device settings."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Cloud Sync:"})," You can enable or disable cloud uploads at any time."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Access, Correction & Deletion:"})," You may request a copy of your personal data, ask us to correct it, or ask us to delete it."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Email:"})," You may opt out of non-transactional email at any time."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Residents of California, the EEA, and the UK"})," may have additional rights, including the right to know what personal information we hold, the right to deletion, the right to data portability, and the right to object to certain processing. We do not sell or share personal information as those terms are defined under the CCPA/CPRA."]})]}),o.jsxs("p",{className:"text-muted-foreground mb-4",children:["To exercise any of these rights, contact us at ",o.jsx("a",{href:"mailto:[email protected]",className:"text-primary hover:underline",children:"[email protected]"}),". We will respond within the timeframe required by applicable law."]})]}),o.jsx("hr",{className:"my-8"}),o.jsxs("section",{className:"mb-8",children:[o.jsx("h2",{className:"text-2xl font-semibold mb-4",children:"10. Children's Privacy"}),o.jsx("p",{className:"text-muted-foreground mb-4",children:"Timestamp It is not directed to children under the age of 13. We do not knowingly collect personal information from children. If you believe a child has provided us with personal information, contact us and we will delete it."})]}),o.jsx("hr",{className:"my-8"}),o.jsxs("section",{className:"mb-8",children:[o.jsx("h2",{className:"text-2xl font-semibold mb-4",children:"11. Changes to This Policy"}),o.jsx("p",{className:"text-muted-foreground mb-4",children:"We may update this Privacy Policy from time to time. Changes will be posted in the App or on our website with an updated effective date. Material changes will be communicated to account holders by email."})]}),o.jsx("hr",{className:"my-8"}),o.jsxs("section",{className:"mb-8",children:[o.jsx("h2",{className:"text-2xl font-semibold mb-4",children:"12. Contact Us"}),o.jsx("p",{className:"text-muted-foreground mb-4",children:"If you have questions or concerns about this Privacy Policy or our data practices, please contact us at:"}),o.jsxs("p",{className:"text-muted-foreground mb-4",children:[o.jsx("strong",{children:"Email:"})," ",o.jsx("a",{href:"mailto:[email protected]",className:"text-primary hover:underline",children:"[email protected]"})]})]}),o.jsx("hr",{className:"my-8"}),o.jsx("p",{className:"text-muted-foreground",children:"By using Timestamp It, you agree to this Privacy Policy."})]})}),o.jsx(et,{})]})},Dn=h.forwardRef(({className:e,type:t,...n},r)=>o.jsx("input",{type:t,className:ke("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:r,...n}));Dn.displayName="Input";const hd=h.forwardRef(({className:e,...t},n)=>o.jsx("textarea",{className:ke("flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm r
542ing-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",e),ref:n,...t}));hd.displayName="Textarea";const WB=[{icon:lp,title:"Shared Projects",description:"Create project workspaces your team can collaborate in instead of passing files around one-by-one."},{icon:Mc,title:"Invite Links & Codes",description:"Onboard teammates quickly with invite links and backup invite codes for reliable join flows."},{icon:Gw,title:"Cloud Sync Across Devices",description:"Keep project content and sync state consistent when team members are working on different devices."},{icon:ii,title:"Encrypted Cloud Transfers",description:"Cloud uploads use encrypted connections, with controls designed to protect work data in transit."},{icon:zI,title:"Optional Cloud Controls",description:"Cloud features are opt-in and can be managed by your team depending on policy and workflow needs."},{icon:Uw,title:"Built For Field Teams",description:"Useful for construction, inspections, real estate, and operations teams that need clean photo records."}],os={name:"",email:"",company:"",teamSize:"",message:"Hi Timestamp It team, we're interested in team pricing. Please share available plans and next steps."},qB=zn("pricing"),VB=zn("pricing",{path:"/upgrade"}),XB=[{name:"Free",price:"$0",cadence:"/month",annualPrice:null,description:"For individuals getting started with timestamped photo documentation.",features:["Unlimited stamped photos, 3 at a time","Auto date, time, and GPS on every photo","Organize photos into projects","Cloud sync across your devices","Community-level support"],note:null,cta:"Start Free",href:qB,external:!0,featured:!1},{name:"Pro",price:"$8.99",cadence:"/month",annualPrice:"$69.00/year",description:"For professionals who want the full personal workflow from the app.",features:["Stamp unlimited photos at once","Stamp faster with StampCam","Customize your experience with Custom Fonts","Client-ready PDF reports and ZIP exports","Get dedicated support","Receive future updates and improvements"],note:"7-day free trial. Web-only price â cheaper than in the app, and one subscription unlocks Pro everywhere: iPhone, iPad, Android, and web.",cta:"Get Pro",href:VB,external:!0,featured:!0},{name:"Team",price:"Custom",cadence:"pricing",annualPrice:null,description:"For organizations that need cloud collaboration and admin-friendly rollout.",features:["Sync unlimited projects across all devices","Collaborate with your team in real-time","Share projects via web links","Access from iPhone, iPad, and web","Automatic cloud backups","Real-time project updates across devices","Discounted pricing based on total users"],note:null,cta:"Inquire for Team Pricing",href:"#pricing-inquiry-form",external:!1,featured:!1}],YB="https://cltzdogxniqntvuxnhdv.supabase.co/functions/v1/team-pricing-inquiry",KB=()=>{const e=re(),[t,n]=h.useState(!1),[r,a]=h.useState(""),[s,i]=h.useState(""),l=async c=>{c.preventDefault();const d=c.currentTarget,u=new FormData(d);a(""),i(""),n(!0),ce("teams-inquiry-submit");try{const m=await fetch(YB,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:u.get("name"),email:u.get("email"),company:u.get("company"),teamSize:u.get("teamSize"),message:u.get("message"),website:u.get("website")})}),p=await m.json().catch(()=>({}));if(!m.ok){i(p.error??e("Something went wrong. Please email [email protected]."));return}d.reset(),a(e("Inquiry sent. Our team will follow up with team pricing options."))}catch{i(e("Could not reach the server. Please email [email protected]."))}finally{n(!1)}};return o.jsxs("div",{className:"min-h-screen bg-background",children:[o.jsx(Ve,{routeKey:"/pricing"}),o.jsx(Ze,{}),o.jsxs("main",{children:[o.jsx("section",{className:"relative pt-32 pb-12",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"max-w-3xl mx-auto text-center",children:[o.jsx("span",{className:"section-eyebrow",children:e("Pricing")}),o.jsx("h1",{className:"text-4xl md:text-5xl lg:text-6xl font-bold tracking-tight mt-4 mb-6",children:e("Simple plans for individuals and team
542s")}),o.jsx("p",{className:"section-subtitle",children:e("Start free, go Pro for the full personal workflow, or roll Timestamp It out to your whole crew with discounted team pricing.")})]})})}),o.jsx("section",{id:"pricing-inquiry",className:"section-shell bg-secondary/25",children:o.jsxs("div",{className:"container",children:[o.jsxs("div",{className:"max-w-6xl mx-auto mb-8",children:[o.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:XB.map(c=>o.jsxs("article",{className:`flex flex-col rounded-2xl p-6 ${c.featured?"panel border-primary/40 shadow-2xl":"panel"}`,children:[o.jsxs("div",{className:"mb-5",children:[o.jsx("h3",{className:"text-2xl font-semibold",children:e(c.name)}),o.jsx("p",{className:"text-muted-foreground mt-1 text-sm",children:e(c.description)})]}),o.jsxs("div",{className:"mb-5",children:[o.jsxs("p",{className:"text-4xl font-bold",children:[c.price," ",o.jsx("span",{className:"text-base font-medium text-muted-foreground",children:e(c.cadence)})]}),c.annualPrice?o.jsx("p",{className:"text-sm text-primary font-medium mt-1",children:c.annualPrice?e(c.annualPrice):null}):null]}),o.jsx("ul",{className:"space-y-2 mb-6",children:c.features.map(d=>o.jsxs("li",{className:"flex items-start gap-2 text-sm text-muted-foreground",children:[o.jsx(tr,{className:"w-4 h-4 text-primary mt-0.5 shrink-0"}),o.jsx("span",{children:e(d)})]},d))}),c.note?o.jsx("p",{className:"text-xs text-muted-foreground mb-6 -mt-3",children:e(c.note)}):null,o.jsx(ne,{variant:c.featured?"hero":"outline",className:"w-full mt-auto",asChild:!0,children:o.jsx("a",{href:c.href,...c.external?{target:"_blank",rel:"noopener"}:{},"data-umami-event":"cta-click","data-umami-event-location":"pricing","data-umami-event-target":c.name.toLowerCase(),children:e(c.cta)})})]},c.name))}),o.jsx("p",{className:"text-sm text-muted-foreground text-center max-w-3xl mx-auto mt-6",children:e("Team pricing is discounted based on total users. Larger deployments get better per-user rates.")})]}),o.jsxs("div",{id:"pricing-inquiry-form",className:"max-w-3xl mx-auto panel rounded-3xl p-7 md:p-10",children:[o.jsxs("div",{className:"text-center mb-8",children:[o.jsx("span",{className:"section-eyebrow",children:e("Volume Discounts")}),o.jsx("h2",{className:"section-title mb-3",children:e("Inquire About Team Pricing")}),o.jsx("p",{className:"text-muted-foreground",children:e("Share your expected user count and rollout timeline. Weâll send discounted team pricing based on team size.")})]}),o.jsxs("form",{className:"space-y-4",onSubmit:l,children:[o.jsx("input",{type:"text",name:"website",tabIndex:-1,autoComplete:"off","aria-hidden":"true",className:"hidden"}),o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[o.jsx(Dn,{name:"name",placeholder:e("Full name"),defaultValue:os.name,required:!0}),o.jsx(Dn,{name:"email",type:"email",placeholder:e("Work email"),defaultValue:os.email,required:!0})]}),o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[o.jsx(Dn,{name:"company",placeholder:e("Company"),defaultValue:os.company,required:!0}),o.jsx(Dn,{name:"teamSize",placeholder:e("Team size (e.g. 10-25)"),defaultValue:os.teamSize,required:!0})]}),o.jsx(hd,{name:"message",rows:5,defaultValue:os.message}),r?o.jsx("p",{className:"text-sm text-primary",children:r}):null,s?o.jsx("p",{className:"text-sm text-destructive",children:s}):null,o.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 sm:items-center sm:justify-between",children:[o.jsxs("p",{className:"text-sm text-muted-foreground",children:[e("Prefer email directly:")," ",o.jsx("a",{href:"mailto:[email protected]",className:"text-primary hover:underline",children:"[email protected]"})]}),o.jsxs(ne,{type:"submit",variant:"hero",className:"gap-2",disabled:t,children:[o.jsx(sp,{className:"w-4 h-4"}),e(t?"Sending...":"Send Inquiry")]})]})]})]})]})}),o.jsx("section",{className:"section-shell pt-0",children:o.jsxs("div",{className:"container",children:[o.jsxs("div",{className:"max-w-3xl mx-auto text-center mb-10",children:[o.jsx("span",{className:"section-eyebrow",children:e("Teams")}),o.jsx("h2",{className:"section-title mb-3",children:e("What a team plan gets you")})]}),o.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:WB.map(c=>
542o.jsxs("article",{className:"panel rounded-2xl p-6",children:[o.jsx("div",{className:"w-12 h-12 rounded-xl bg-primary/12 border border-primary/20 flex items-center justify-center mb-4",children:o.jsx(c.icon,{className:"w-6 h-6 text-primary"})}),o.jsx("h3",{className:"text-xl font-semibold mb-2",children:e(c.title)}),o.jsx("p",{className:"text-muted-foreground leading-6",children:e(c.description)})]},c.title))})]})})]}),o.jsx(et,{})]})},L2="data:image/svg+xml,%3csvg%20role='img'%20aria-label='QR%20code%20linking%20to%20timestampitapp.com/download'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2045%2045'%20shape-rendering='crispEdges'%3e%3cpath%20stroke='%230b0f19'%20d='M4%204.5h7m1%200h1m1%200h1m1%200h6m1%200h2m1%200h1m7%200h7M4%205.5h1m5%200h1m4%200h2m7%200h3m1%200h1m1%200h1m1%200h1m1%200h1m5%200h1M4%206.5h1m1%200h3m1%200h1m1%200h10m1%200h3m3%200h1m1%200h2m1%200h1m1%200h3m1%200h1M4%207.5h1m1%200h3m1%200h1m3%200h5m2%200h2m2%200h3m1%200h3m2%200h1m1%200h3m1%200h1M4%208.5h1m1%200h3m1%200h1m3%200h1m3%200h2m2%200h1m2%200h2m2%200h1m4%200h1m1%200h3m1%200h1M4%209.5h1m5%200h1m1%200h1m6%200h1m1%200h2m1%200h1m3%200h1m1%200h1m1%200h1m1%200h1m5%200h1M4%2010.5h7m1%200h1m1%200h1m1%200h1m1%200h1m1%200h1m1%200h1m1%200h1m1%200h1m1%200h1m1%200h1m1%200h1m1%200h7M15%2011.5h7m1%200h2m1%200h2m2%200h1M4%2012.5h1m1%200h1m3%200h2m5%200h3m1%200h1m2%200h1m2%200h2m2%200h2m2%200h1m2%200h1m1%200h1M4%2013.5h1m4%200h1m1%200h2m3%200h1m1%200h1m5%200h2m1%200h2m2%200h5m3%200h2M4%2014.5h2m1%200h6m2%200h1m2%200h2m1%200h1m2%200h2m1%200h6m1%200h1m1%200h1m3%200h1M4%2015.5h2m1%200h1m3%200h1m4%200h2m5%200h2m1%200h1m1%200h1m3%200h1m2%200h1m1%200h1M9%2016.5h3m5%200h1m1%200h2m1%200h1m1%200h1m1%200h1m1%200h1m2%200h2m1%200h1m2%200h1m2%200h1M4%2017.5h5m2%200h5m1%200h4m1%200h3m2%200h3m1%200h2m1%200h2m1%200h1m2%200h1M5%2018.5h1m4%200h1m1%200h1m2%200h1m3%200h1m1%200h5m1%200h3m1%200h2m1%200h1m2%200h2m1%200h1M4%2019.5h2m7%200h1m3%200h3m2%200h1m1%200h1m2%200h2m1%200h1m1%200h1m2%200h3m2%200h1M4%2020.5h4m1%200h3m1%200h3m2%200h5m1%200h1m1%200h1m1%200h1m1%200h3m1%200h1m4%200h2M5%2021.5h5m2%200h2m2%200h1m1%200h1m1%200h3m2%200h1m1%200h6m1%200h2m1%200h1m1%200h2M5%2022.5h7m2%200h1m1%200h1m1%200h1m1%200h1m2%200h1m3%200h5m1%200h1m1%200h1m2%200h1m1%200h1M4%2023.5h1m4%200h1m2%200h2m2%200h2m1%200h2m1%200h1m1%200h1m1%200h3m1%200h1m1%200h2m1%200h1M4%2024.5h2m1%200h1m2%200h1m3%200h1m3%200h1m4%200h2m3%200h1m2%200h1m2%200h2m3%200h1M6%2025.5h1m1%200h2m2%200h1m2%200h1m1%200h1m1%200h7m1%200h1m1%200h4m1%200h1m4%200h2M4%2026.5h4m2%200h1m1%200h2m4%200h2m3%200h3m1%200h3m1%200h1m5%200h2m1%200h1M6%2027.5h4m1%200h2m3%200h1m1%200h4m1%200h2m1%200h1m3%200h2m1%200h1m1%200h3m1%200h1M6%2028.5h5m1%200h4m2%200h1m2%200h1m2%200h1m2%200h2m2%200h2m1%200h2m4%200h1M5%2029.5h1m2%200h1m4%200h6m4%200h2m1%200h3m2%200h3m3%200h2m1%200h1M4%2030.5h3m1%200h3m2%200h1m1%200h5m1%200h1m1%200h1m1%200h1m1%200h1m1%200h1m1%200h1m3%200h1m2%200h1m1%200h1M13%2031.5h1m3%200h2m3%200h3m2%200h2m3%200h2m3%200h1m2%200h1M4%2032.5h2m2%200h1m1%200h2m1%200h1m2%200h4m3%200h2m2%200h1m4%200h5m2%200h1M12%2033.5h3m1%200h3m1%200h1m1%200h3m2%200h2m2%200h2m3%200h1m2%200h2M4%2034.5h7m1%200h2m5%200h1m1%200h3m1%200h5m2%200h1m1%200h1m1%200h1m3%200h1M4%2035.5h1m5%200h1m6%200h1m2%200h1m1%200h3m6%200h2m3%200h1m2%200h2M4%2036.5h1m1%200h3m1%200h1m3%200h1m2%200h1m2%200h5m2%200h1m3%200h6M4%2037.5h1m1%200h3m1%200h1m2%200h3m1%200h2m1%200h1m1%200h4m1%200h2m2%200h1m1%200h1m2%200h1M4%2038.5h1m1%200h3m1%200h1m1%200h2m2%200h2m2%200h2m1%200h1m3%200h1m1%200h2m1%200h2m1%200h2m1%200h1m1%200h1M4%2039.5h1m5%200h1m2%200h1m2%200h1m1%200h3m5%200h3m1%200h1m1%200h3m1%200h2M4%2040.5h7m1%200h1m2%200h2m1%200h1m1%200h1m2%200h1m8%200h1m2%200h1m4%200h1'/%3e%3c/svg%3e",ax="https://apps.apple.com/us/app/timestamp-it-photo-stamper/id327756085",sx="https://play.google.com/store/apps/details?id=com.shabzco.timestampit_android";function JB(){const e=navigator.userAgent||navigator.vendor,t=/android/i.test(e),n=/iPad|iPhone|iPod/.test(e)||navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1;return t?"android":n?"ios":"web"}const ZB=()=>{const e=re(),[t,n]=h.useState("web"),[r,a]=h.useState(!1),[s,i]=h.useState(!1),l=h.useMemo(()=>t==="ios"?ax:t==="android"?sx:null,[t]);return h.useEffect(()=>{const c=JB();if(n(c),c==="web")return;const d=c==="ios"?ax:sx,u=new URLSearchParams(window.location.search).get("src")??"direct";if(ce("download-redirect",{platform:c,source:u,inApp:ac()?"yes":"no"}
542),ac()){if(Qj(d))return a(!0),Wj(()=>i(!0));i(!0);return}a(!0),window.location.href=d},[]),o.jsxs("div",{className:"min-h-screen bg-background",children:[o.jsx(Ve,{routeKey:"/download"}),o.jsx(Ze,{}),o.jsxs("main",{children:[o.jsx("section",{className:`relative pt-32 ${t==="web"?"pb-6":"pb-20"}`,children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"max-w-3xl mx-auto text-center",children:[o.jsx("span",{className:"section-eyebrow",children:e("Download")}),o.jsx("h1",{className:"text-4xl md:text-5xl lg:text-6xl font-bold tracking-tight mt-4 mb-6",children:e("Get Timestamp It")}),t==="web"&&o.jsxs(o.Fragment,{children:[o.jsx("p",{className:"section-subtitle mb-10",children:e("Your first stamped photo takes about 20 seconds.")}),o.jsxs("div",{className:"flex flex-col items-center justify-center gap-10 sm:flex-row sm:items-center sm:gap-14",children:[o.jsxs("div",{className:"flex flex-col items-center gap-3",children:[o.jsx("div",{className:"rounded-2xl border border-border bg-white p-4 shadow-sm",children:o.jsx("img",{src:L2,alt:e("QR code to install Timestamp It on your phone"),className:"h-40 w-40",width:160,height:160})}),o.jsx("p",{className:"text-sm font-medium text-muted-foreground",children:e("Scan to install on your phone")})]}),o.jsx("div",{className:"hidden h-32 w-px bg-border sm:block","aria-hidden":!0}),o.jsxs("div",{className:"flex flex-col items-center gap-3",children:[o.jsx(Hn,{location:"download-page",height:56,stacked:!0}),o.jsx("p",{className:"text-sm text-muted-foreground",children:e("Or open the store directly")})]})]})]}),t!=="web"&&o.jsxs(o.Fragment,{children:[o.jsx("p",{className:"section-subtitle mb-8",children:e(s?"Tap below to get the app.":r?"Redirecting you to the correct app store...":"Preparing your download...")}),l&&o.jsx(ne,{variant:"hero",size:"lg",asChild:!0,children:o.jsx(Vh,{href:l,target:"_blank",rel:"noopener noreferrer",onClick:()=>ce("download-click",{platform:t,source:"download-page-fallback"}),children:e(s?"Get Timestamp It":"Tap if you are not redirected")})})]})]})})}),t==="web"&&o.jsx(n2,{})]}),o.jsx(et,{})]})};function ix({source:e,compact:t=!1,onNavigate:n,className:r=""}){const a=re(),[s,i]=h.useState(null);h.useEffect(()=>{i(qh()||zj())},[]);const l=o.jsxs("div",{className:t?"":"flex-1",children:[o.jsx(ne,{variant:s?"outline":"hero",size:"lg",className:t?"w-full":"",asChild:!0,children:o.jsx("a",{href:zn("app-handoff",{content:e}),target:"_blank",rel:"noopener","data-umami-event":"webapp-click","data-umami-event-source":e,onClick:n,children:a("Get a link to share")})}),o.jsx("p",{className:"mt-3 text-sm leading-6 text-muted-foreground",children:a("Free account. Keep your stamped photos in a project and send one link to a client. Nothing for them to install.")})]});return o.jsxs("div",{className:r,children:[s===!1&&o.jsxs("div",{className:t?"flex flex-col items-center gap-5":"flex flex-col items-center gap-6 sm:flex-row sm:items-start",children:[o.jsxs("div",{className:"flex flex-col items-center gap-2",children:[o.jsx("div",{className:"rounded-2xl border border-border bg-white p-3 shadow-sm",children:o.jsx("img",{src:L2,alt:a("QR code to install Timestamp It on your phone"),className:t?"h-28 w-28":"h-32 w-32",width:128,height:128,loading:"lazy",decoding:"async"})}),o.jsx("p",{className:"text-xs font-medium text-muted-foreground",children:a("Scan to install on your phone")})]}),o.jsx("div",{className:"hidden w-px self-stretch bg-border sm:block","aria-hidden":!0}),l]}),s===!0&&o.jsxs("div",{className:"flex flex-col gap-5",children:[o.jsx(Hn,{location:e,height:48,stacked:t,onClick:n}),l]})]})}const zt={timestamp_position:"bottom_left",font_size:18,font_name:"Helvetica",text_color:"#FFFFFFFF",opacity:1,padding:8,date_format:"MMM d, y, h:mm a",preferred_location_format:"city_state"},eO=["EEEE","EEE","MMMM","MMM","MM","M","yyyy","yy","y","dd","d","HH","H","hh","h","mm","ss","a","z"];function eo(e){return e<10?`0${e}`:String(e)}function Oo(e,t,n,r,a){var i;return((i=new Intl.DateTimeFormat(t,{...r,timeZone:n}).formatToParts(e).find(l=>l.type===a))==null?void 0:i.value)??""}function tO(e,t,n,r){switch(e){case"EEEE":return Oo(t,n,r,{weekday:"long"},"weekday");case"EEE":return Oo(t,n,r,{weekday:"short"},"weekday");case"MMMM":return Oo(t,n,r,{month:"long"},"month");case"MMM":return Oo(t,n,r,{month:"short"},"month");case"MM":return eo(t.getMonth()+1);case"M":return String(t.getMonth()+1);case"yyyy":return String(t.getFullYear());case"yy":return eo(t.getFullYear()%100);case"y":return String(t.getFullYear());case"dd":return eo(t.getDate());case"d":return String(t.getDate());case"HH":return eo(t.getHours());case"H":return String(t.getHours());case"hh":return eo(t.getHours()%12||12);case"h":return String(t.getHours()%12||12);case"mm":return eo(t.getMinutes());case"ss":return eo(t.getSeconds());case"a":return Oo(t,n,r,{hour:"numeric",hour12:!0},"dayPeriod");case"z":return Oo(t,n,r,{timeZoneName:"short",hour:"numeric"},"timeZoneName");default:return e}}function nO(e,t=zt.date_format,n="en-US",r){let a="",s=0;for(;s<t.length;){const i=t[s];if(i==="'"){if(t[s+1]==="'"){a+="'",s+=2;continue}const c=t.indexOf("'",s+1);if(c===-1){a+=t.slice(s+1);break}a+=t.slice(s+1,c),s=c+1;continue}const l=eO.find(c=>t.startsWith(c,s));if(l){a+=tO(l,e,n,r),s+=l.length;continue}a+=i,s+=1}return a}function rO(e,t=1){const n=(e??zt.text_color).replace("#",""),r=c=>parseInt(n.slice(c,c+2),16),a=r(0),s=r(2),i=r(4),l=n.length>=8?r(6)/255:1;return[a,s,i].some(Number.isNaN)?`rgba(255,255,255,${t})`:`rgba(${a},${s},${i},${l*t})`}function oO(e,t){return`${e.toFixed(5)}, ${t.toFixed(5)}`}function aO(e,t){var i;const n=e.preferred_location_format??zt.preferred_location_format,a=Number.isFinite(t.latitude)&&Number.isFinite(t.longitude)?oO(t.latitude,t.longitude):null;if(n==="none")return e.always_include_coordinates?a:null;if(n==="coordinate")return a;const s=((i=t.locationName)==null?void 0:i.trim())||null;return s?e.always_include_coordinates&&a?`${s} (${a})`:s:a}function sO(e,t){var i,l,c;const n=((i=e.label)==null?void 0:i.trim())??"",r=e.scope==="global"?e.value:(l=t.customRowValues)==null?void 0:l[e.id],a=e.scope==="global"?(c=t.customRowValues)==null?void 0:c[e.id]:e.value,s=(r==null?void 0:r.trim())||(a==null?void 0:a.trim())||"";return s?n?`${n}: ${s}`:s:e.scope==="global"&&n?n:null}function iO(e,t){var s,i;const n=[],r=(s=t.caption??e.caption)==null?void 0:s.trim();r&&n.push(r);for(const l of e.custom_rows??[]){const c=sO(l,t);c&&n.push(c)}const a=aO(e,t);return a&&n.push(a),e.show_weather&&((i=t.weather)!=null&&i.trim())&&n.push(t.weather.trim()),e.is_date_hidden||n.push(nO(t.date,e.date_format??zt.date_format,t.locale??"en-US",t.timeZone)),n}const lO=375;function lx(e,t){return Math.min(e,t)/lO}const cO=11,cx=6,dO=1.35;function uO(e,t){e.shadowColor="rgba(0,0,0,0.72)",e.shadowBlur=Math.round(t*.35),e.shadowOffsetY=Math.round(t*.06)}function hO(e){e.shadowColor="transparent",e.shadowBlur=0,e.shadowOffsetY=0}function Zh(e){return e.startsWith("top")}function H2(e){return e.endsWith("center")?"center":e.endsWith("right")?"right":"left"}function U2(e,t,n,r={},a){const s=iO(r,a);if(s.length===0){if(a.logo){const v=lx(t,n),x=Math.max(cx,Math.round((r.padding??zt.padding)*v)),g=r.timestamp_position??zt.timestamp_position,b=Zh(g)?x:n-x;dx(e,a.logo,r,v,x,t,n,g,{top:b,bottom:b})}return}const i=lx(t,n),l=Math.max(cO,Math.round((r.font_size??zt.font_size)*i)),c=Math.max(cx,Math.round((r.padding??zt.padding)*i)),d=Math.round(l*dO),u=r.timestamp_position??zt.timestamp_position,m=H2(u),p=r.font_name??zt.font_name;e.font=`${l}px ${p}, system-ui, -apple-system, "Helvetica Neue", Helvetica, Arial, sans-serif`,e.textBaseline="alphabetic",e.textAlign=m,e.fillStyle=rO(r.text_color,r.opacity??zt.opacity);
542const f=m==="left"?c:m==="right"?t-c:Math.round(t/2),w=d*s.length,y=Zh(u)?c+l:n-c-w+l;if(uO(e,l),s.forEach((v,x)=>{e.fillText(v,f,y+d*x)}),hO(e),a.logo){const v=y-l;dx(e,a.logo,r,i,c,t,n,u,{top:v,bottom:v+w})}}const mO=50,pO=6,fO=.18;function dx(e,t,n,r,a,s,i,l,c){if(!t.width||!t.height)return;const u=(n.logo_size&&n.logo_size>0?n.logo_size:mO)*r,m=Math.min(u/t.width,u/t.height),p=Math.max(1,Math.round(t.width*m)),f=Math.max(1,Math.round(t.height*m)),w=H2(l),y=Zh(l);let v,x;if(n.logo_above_stamp){const b=pO*r;x=y?c.bottom+b:c.top-f-b,v=w==="left"?a:w==="right"?s-a-p:Math.round(s/2-p/2)}else x=y?i-a-f:a,v=w==="right"?a:s-a-p;const g=n.logo_opacity&&n.logo_opacity>0?n.logo_opacity:1;if(e.save(),e.globalAlpha=Math.min(1,g),n.logo_rounded_corners){const b=Math.min(p,f)*fO;e.beginPath(),e.moveTo(v+b,x),e.arcTo(v+p,x,v+p,x+f,b),e.arcTo(v+p,x+f,v,x+f,b),e.arcTo(v,x+f,v,x,b),e.arcTo(v,x,v+p,x,b),e.closePath(),e.clip()}e.drawImage(t.image,v,x,p,f),e.restore()}const gO=[{value:"MMM d, y, h:mm a",label:"Mar 7, 2026, 2:05 PM"},{value:"MMM d, y h:mm:ss a",label:"Mar 7, 2026 2:05:09 PM"},{value:"MMM d, y",label:"Mar 7, 2026"},{value:"MMMM d, y",label:"March 7, 2026"},{value:"EEEE, MMMM d, y, h:mm:ss a",label:"Saturday, March 7, 2026, 2:05:09 PM"},{value:"yyyy-MM-dd HH:mm",label:"2026-03-07 14:05"},{value:"dd MMM yyyy HH:mm",label:"07 Mar 2026 14:05"},{value:"dd/MM/y HH:mm",label:"07/03/2026 14:05"},{value:"M/d/yy h:mm a",label:"3/7/26 2:05 PM"}],yO=zn("stamp-options"),xO={logo:{icon:si,title:"Put your logo on every photo",body:"Upload your logo once and every photo you stamp carries it, sized and placed the way you choose."},place:{icon:Aa,title:"Stamp the place, not just coordinates",body:"Show the street address, city or place name instead of raw GPS numbers, looked up for you automatically."},style:{icon:Ww,title:"Make the stamp your own",body:"Choose where the stamp sits, its font, size and color, so it suits your photos and your brand."}};function vO({feature:e,onClose:t}){const n=re(),r=e?xO[e]:null,a=(r==null?void 0:r.icon)??si;return o.jsx(Ys,{open:e!==null,onOpenChange:s=>!s&&t(),children:o.jsx(ka,{className:"w-[calc(100%-2rem)] max-w-md rounded-2xl",children:r&&o.jsxs(o.Fragment,{children:[o.jsxs(Ca,{children:[o.jsx("span",{className:"mx-auto mb-2 flex h-11 w-11 items-center justify-center rounded-full bg-primary/10 sm:mx-0",children:o.jsx(a,{className:"h-5 w-5 text-primary","aria-hidden":!0})}),o.jsx(Ta,{className:"text-xl font-bold",children:n(r.title)}),o.jsx(Pa,{className:"text-sm leading-6",children:n(r.body)})]}),o.jsx("ul",{className:"space-y-2 text-sm",children:["Your stamp settings saved for every photo","Keep every stamped photo in a project","Send one link instead of a folder of downloads"].map(s=>o.jsxs("li",{className:"flex items-start gap-2",children:[o.jsx(tr,{className:"mt-0.5 h-4 w-4 shrink-0 text-primary","aria-hidden":!0}),n(s)]},s))}),o.jsx(ne,{variant:"hero",size:"lg",className:"mt-2 w-full",asChild:!0,children:o.jsx("a",{href:yO,target:"_blank",rel:"noopener","data-umami-event":"webapp-click","data-umami-event-source":"timestamp-photo-locked-options","data-umami-event-feature":e??"",onClick:t,children:n("Unlock with a free account")})}),o.jsx("button",{type:"button",onClick:()=>{t(),setTimeout(()=>dd({from:"locked-options",prefill:n("I'd like to use more stamp options. Which plan do I need?")}))},className:"mx-auto text-sm text-muted-foreground underline-offset-4 hover:text-foreground hover:underline",children:n("Not sure which plan fits? Ask us, we reply within a day.")})]})})})}const pu=new Map;async function bO(e,t){const n=`${e.latitude.toFixed(4)},${e.longitude.toFixed(4)},${t}`;if(pu.has(n))return pu.get(n)??null;let r=null;try{const a=new URLSearchParams({lat:String(e.latitude),lon:String(e.longitude),format:"jsonv2",zoom:"17","accept-language":t}),s=await fetch(`https://nominatim.openstreetmap.org/reverse?${a}`);if(s.ok){const i=await s.json(),l=i.address??{},c=l.road??l.pedestrian??l.neighbourhood??l.suburb??i.name??null,d=l.city??l.town??l.village??l.municipality??l.county??l.state??null;r=[c,d].filter((u,m,p)=>u&&p.indexOf(u)===m).join(", ")||null}}catch{r=null}return pu.set(n,r),r}function wO({point:e,coordinates:t,onOpen:n}){const r=re(),{locale:a}
542=ir(),[s,i]=h.useState(void 0),l=h.useRef(!1);h.useEffect(()=>{if(!e){i(null);return}i(void 0);let u=!1;return bO(e,a).then(m=>!u&&i(m)),()=>{u=!0}},[e==null?void 0:e.latitude,e==null?void 0:e.longitude,a]);const c=s?"place":"logo";h.useEffect(()=>{l.current||s===void 0||(l.current=!0,ce("stamp-nudge-shown",{tool:"timestamp-photo",kind:c}))},[c,s]);const d=[{feature:"logo",label:r("Logo")},{feature:"place",label:r("Place name")},{feature:"style",label:r("Font and color")}];return o.jsxs("div",{className:"mt-4 rounded-2xl border border-primary/25 bg-primary/5 p-4",children:[o.jsxs("button",{type:"button",onClick:()=>n(c),className:"group flex w-full items-start gap-3 text-left",children:[o.jsx("span",{className:"mt-0.5 flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-primary/10",children:c==="place"?o.jsx(Aa,{className:"h-4 w-4 text-primary","aria-hidden":!0}):o.jsx(si,{className:"h-4 w-4 text-primary","aria-hidden":!0})}),o.jsxs("span",{className:"min-w-0 flex-1 text-sm leading-6",children:[c==="place"?o.jsx(o.Fragment,{children:t?r("Stamp {place} instead of {coordinates}",{place:`â${s}â`,coordinates:t}):r("Stamp {place} on these photos",{place:`â${s}â`})}):r("Put your logo on these photos"),o.jsxs("span",{className:"ml-1 inline-flex items-center gap-1 font-semibold text-primary group-hover:underline",children:[r("Free account"),o.jsx(_a,{className:"h-3.5 w-3.5","aria-hidden":!0})]})]})]}),o.jsx("div",{className:"mt-3 flex flex-wrap gap-2 pl-11",children:d.map(u=>o.jsxs("button",{type:"button",onClick:()=>n(u.feature),className:"inline-flex items-center gap-1.5 rounded-full border border-border/70 bg-background px-3 py-1 text-xs font-medium text-muted-foreground hover:border-primary/40 hover:text-foreground",children:[o.jsx(ap,{className:"h-3 w-3","aria-hidden":!0}),u.label]},u.feature))})]})}var md="Switch",[jO]=sr(md),[NO,AO]=jO(md),z2=h.forwardRef((e,t)=>{const{__scopeSwitch:n,name:r,checked:a,defaultChecked:s,required:i,disabled:l,value:c="on",onCheckedChange:d,form:u,...m}=e,[p,f]=h.useState(null),w=Ae(t,b=>f(b)),y=h.useRef(!1),v=p?u||!!p.closest("form"):!0,[x,g]=Lr({prop:a,defaultProp:s??!1,onChange:d,caller:md});return o.jsxs(NO,{scope:n,checked:x,disabled:l,children:[o.jsx(de.button,{type:"button",role:"switch","aria-checked":x,"aria-required":i,"data-state":W2(x),"data-disabled":l?"":void 0,disabled:l,value:c,...m,ref:w,onClick:oe(e.onClick,b=>{g(j=>!j),v&&(y.current=b.isPropagationStopped(),y.current||b.stopPropagation())})}),v&&o.jsx(Q2,{control:p,bubbles:!y.current,name:r,value:c,checked:x,required:i,disabled:l,form:u,style:{transform:"translateX(-100%)"}})]})});z2.displayName=md;var $2="SwitchThumb",G2=h.forwardRef((e,t)=>{const{__scopeSwitch:n,...r}=e,a=AO($2,n);return o.jsx(de.span,{"data-state":W2(a.checked),"data-disabled":a.disabled?"":void 0,...r,ref:t})});G2.displayName=$2;var EO="SwitchBubbleInput",Q2=h.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:r=!0,...a},s)=>{const i=h.useRef(null),l=Ae(i,s),c=O1(n),d=g0(t);return h.useEffect(()=>{const u=i.current;if(!u)return;const m=window.HTMLInputElement.prototype,f=Object.getOwnPropertyDescriptor(m,"checked").set;if(c!==n&&f){const w=new Event("click",{bubbles:r});f.call(u,n),u.dispatchEvent(w)}},[c,n,r]),o.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:n,...a,tabIndex:-1,ref:l,style:{...a.style,...d,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});Q2.displayName=EO;function W2(e){return e?"checked":"unchecked"}var q2=z2,SO=G2;const em=h.forwardRef(({className:e,...t},n)=>o.jsx(q2,{className:ke("peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50",e),...t,ref:n,children:o.jsx(SO,{className:ke("pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0")})}
542));em.displayName=q2.displayName;const IO={preferred_location_format:"coordinate",date_format:zt.date_format,is_date_hidden:!1},kO=zn("timestamp-photo-tool"),CO=60,TO=25*1024*1024,V2="timestamp-photo-app-offer-shown-v2",PO=7*24*60*60*1e3;function RO(){try{const e=localStorage.getItem(V2);if(!e)return!0;const t=Number(e);return!Number.isFinite(t)||t<1e12?!0:Date.now()-t>PO}catch{return!0}}function DO(){try{localStorage.setItem(V2,String(Date.now()))}catch{}}const as=3;function ux(e){return`${e.replace(/\.[^.]+$/,"")||"photo"}-timestamped.jpg`}function MO(e){return new Intl.DateTimeFormat($r(),{year:"numeric",month:"short",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:Fp()}).format(e)}function X2(e,t){return`${e.toFixed(5)}, ${t.toFixed(5)}`}function el(e,t){let n=null;if(typeof e=="number")n=e;else if(Array.isArray(e)&&e.length>=3){const[r,a,s]=e;typeof r=="number"&&typeof a=="number"&&typeof s=="number"&&(n=Math.abs(r)+a/60+s/3600,r<0&&(n*=-1))}else if(typeof e=="string"){const r=Number(e);Number.isNaN(r)||(n=r)}if(n===null)return null;if(typeof t=="string"){const r=t.toUpperCase();r==="S"||r==="W"?n=-Math.abs(n):(r==="N"||r==="E")&&(n=Math.abs(n))}return n}function _O(e){return e.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/[_-]/g," ").replace(/\s+/g," ").trim().replace(/^./,t=>t.toUpperCase())}function Y2(e){if(e==null)return null;if(e instanceof Date)return MO(e);if(typeof e=="number"||typeof e=="boolean")return String(e);if(typeof e=="string"){const t=e.trim();return t.length?t:null}return Array.isArray(e)&&e.map(n=>Y2(n)).filter(Boolean).join(", ")||null}function K2(e){if(!e)return null;if(e instanceof Date)return Number.isNaN(e.getTime())?null:e;if(typeof e=="number"){const t=new Date(e);return Number.isNaN(t.getTime())?null:t}if(typeof e=="string"){const t=e.trim();if(!t)return null;const n=t.replace(/^(\d{4}):(\d{2}):(\d{2})\s/,"$1-$2-$3T"),r=new Date(n);if(!Number.isNaN(r.getTime()))return r}return null}function BO(e){const t=new DataView(e);if(t.getUint16(0)!==65496)return null;let n=2;for(;n<t.byteLength;){const r=t.getUint16(n);if(n+=2,r===65498||r===65497)break;const a=t.getUint16(n);if(a<2)return null;if(r===65505){const s=n+2,i="Exif\0\0";let l=!0;for(let g=0;g<i.length;g+=1)if(t.getUint8(s+g)!==i.charCodeAt(g)){l=!1;break}if(!l)return null;const c=s+6,u=String.fromCharCode(t.getUint8(c),t.getUint8(c+1))==="II",m=g=>t.getUint16(g,u),p=g=>t.getUint32(g,u);if(m(c+2)!==42)return null;const f=p(c+4),w=c+f,y=m(w);let v=0;for(let g=0;g<y;g+=1){const b=w+2+g*12;if(m(b)===34665){v=c+p(b+8);break}}if(!v)return null;const x=m(v);for(let g=0;g<x;g+=1){const b=v+2+g*12,j=m(b);if(j!==36867&&j!==306)continue;const N=p(b+4),A=p(b+8);if(N<=1)continue;const E=c+A;let S="";for(let $=0;$<N-1;$+=1)S+=String.fromCharCode(t.getUint8(E+$));const D=S.replace(/^(\d{4}):(\d{2}):(\d{2})/,"$1-$2-$3"),R=new Date(D);if(!Number.isNaN(R.getTime()))return R}}n+=a}return null}function OO(e){return new Promise((t,n)=>{const r=URL.createObjectURL(e),a=new Image;a.onload=()=>{URL.revokeObjectURL(r),t(a)},a.onerror=()=>{URL.revokeObjectURL(r),n(new Error("Unable to load image."))},a.src=r})}function Jp(e){const t=(e.type||"").toLowerCase(),n=e.name.toLowerCase();return t.includes("heic")||t.includes("heif")||n.endsWith(".heic")||n.endsWith(".heif")}function FO(e){const t=e.name.toLowerCase();return t.endsWith(".jpg")||t.endsWith(".jpeg")||t.endsWith(".png")||t.endsWith(".webp")||t.endsWith(".gif")||t.endsWith(".bmp")||t.endsWith(".heic")||t.endsWith(".heif")}function hx(e){return(e.type||"").toLowerCase().startsWith("image/")||Jp(e)||FO(e)}async function tm(e){if(typeof createImageBitmap=="function")try{const t=await createImageBitmap(e);return{drawable:t,width:t.width,height:t.height,cleanup:()=>t.close()}}catch{}try{const t=await OO(e);return{drawable:t,width:t.naturalWidth,height:t.naturalHeight}}catch{throw new Error("UNSUPPORTED_IMAGE_DECODE")}}async function LO(e){try{const n=await(await We(()=>import("./full.esm-BuX-V2CP.js"),[])).parse(e,{pick:["DateTimeOriginal","CreateDate","ModifyDate"]}),r=(n==null?void 0:n.DateTimeOriginal)??(n==null?void 0:n.CreateDate)??(n==null?void 0:n.ModifyDate);return r?K2(r):null}catch{return null}}async function HO(e){try{const t=await We(()=>import("./full.esm-BuX-V2CP.js"),[]),n=await t.gps(e).catch(()=>null),r=await t.parse(e);if(!r)return{takenAt:null,locationText:null,latitude:null,longitude:null,details:[]};const a=r.DateTimeOriginal??r.CreateDate??r.ModifyDate??r.DateTimeDigitized??r.DateTime,s=K2(a),i=el(r.latitude)??el(r.GPSLatitude,r.GPSLatitudeRef)??(n==null?void 0:n.latitude)??null,l=el(r.longitude)??el(r.GPSLongitude,r.GPSLongitudeRef)??(n==null?void 0:n.longitude)??null,c=i!==null&&l!==null?X2(i,l):null,d=Object.entries(r).map(([u,m])=>{const p=Y2(m);return p?{label:_O(u),value:p}:null}).filter(u=>!!u);return{takenAt:s,locationText:c,latitude:i,longitude:l,details:d}}catch{return{takenAt:null,locationText:null,latitude:null,longitude:null,details:[]}}}function UO(e){return e.replace(/\.[^.]+$/,"")+".jpg"}async function zO(e){const n=await(await We(()=>
542import("./heic-to-DIRPI3VF.js"),[])).heicTo({blob:e,type:"image/jpeg",quality:.92}),r=n instanceof Blob?n:null;if(!(r instanceof Blob))throw new Error("HEIC_CONVERSION_FAILED");return new File([r],UO(e.name),{type:"image/jpeg",lastModified:e.lastModified})}async function $O(e,t){var d,u;const n=new Date(e.lastModified),r=e.name,a=await HO(e);if(Jp(e)){t==null||t({percent:10,label:"Reading HEIC metadata..."});const m=a.takenAt??await LO(e);t==null||t({percent:45,label:"Converting HEIC to JPG..."});const p=await zO(e);t==null||t({percent:80,label:"Preparing converted preview..."});const f=await tm(p),w={takenAt:m??n,width:f.width,height:f.height,fileName:r,locationText:a.locationText,latitude:a.latitude,longitude:a.longitude,details:[{label:"File Name",value:r},{label:"Width",value:String(f.width)},{label:"Height",value:String(f.height)},...a.details]};return(d=f.cleanup)==null||d.call(f),{workingFile:p,metadata:w,conversionNotice:"HEIC converted to JPG for preview, stamping, and download."}}t==null||t({percent:20,label:"Reading image metadata..."});const s=await e.arrayBuffer();t==null||t({percent:65,label:"Preparing image preview..."});const i=await tm(e),l=BO(s),c={takenAt:a.takenAt??l??n,width:i.width,height:i.height,fileName:r,locationText:a.locationText,latitude:a.latitude,longitude:a.longitude,details:[{label:"File Name",value:r},{label:"Width",value:String(i.width)},{label:"Height",value:String(i.height)},...a.details]};return(u=i.cleanup)==null||u.call(i),{workingFile:e,metadata:c,conversionNotice:null}}async function mx(e,t,n){var l,c;const r=await tm(e),a=document.createElement("canvas");a.width=r.width,a.height=r.height;const s=a.getContext("2d");if(!s)throw(l=r.cleanup)==null||l.call(r),new Error("Canvas is not supported in this browser.");s.drawImage(r.drawable,0,0),(c=r.cleanup)==null||c.call(r),U2(s,a.width,a.height,n,{date:t.takenAt,latitude:t.latitude,longitude:t.longitude,locale:$r()});const i=await new Promise((d,u)=>{a.toBlob(m=>{if(m){d(m);return}u(new Error("Unable to generate stamped image."))},"image/jpeg",.92)});return URL.createObjectURL(i)}const tl={x:0,y:.057,width:.53,height:.943},GO=530,QO=707,WO={date:new Date(2026,7,3,14,40),latitude:30.2672,longitude:-97.7431};function qO({settings:e}){const t=re(),n=h.useRef(null),[r,a]=h.useState(null);return h.useEffect(()=>{const s=new Image;s.onload=()=>a(s),s.src=Dj},[]),h.useEffect(()=>{const s=n.current,i=s==null?void 0:s.getContext("2d");if(!s||!i||!r)return;const l=Math.round(r.naturalWidth*tl.x),c=Math.round(r.naturalHeight*tl.y),d=Math.round(r.naturalWidth*tl.width),u=Math.round(r.naturalHeight*tl.height);s.width=d,s.height=u,i.drawImage(r,l,c,d,u,0,0,d,u),U2(i,s.width,s.height,e,{...WO,locale:$r()})},[r,e]),o.jsx("canvas",{ref:n,width:GO,height:QO,role:"img","aria-label":t("Example of a stamped photo"),className:"mx-auto block h-auto max-h-[60vh] w-auto max-w-full rounded-xl bg-secondary/40"})}function px({label:e,children:t}){return o.jsxs("div",{className:"flex items-center justify-between gap-4 py-2.5",children:[o.jsx("span",{className:"text-sm font-medium",children:e}),t]})}const VO=()=>{const e=re(),t=qe(),[n,r]=h.useState([]),[a,s]=h.useState(IO),[i,l]=
542h.useState(null),[c,d]=h.useState(!1),u=h.useRef(a);u.current=a;const m=h.useRef([]);m.current=n;const[p,f]=h.useState([]),[w,y]=h.useState(null),[v,x]=h.useState([]),[g,b]=h.useState(null),[j,N]=h.useState(!1),[A,E]=h.useState(0);function S(C){const{videos:q,rest:P}=Xp(C);return q.length&&(E(q.length),ce("tool-video-dropped",{tool:"timestamp-photo",videos:q.length})),P}const[D,R]=h.useState(!1),$=h.useRef(null),k=h.useRef(!1);h.useEffect(()=>()=>{$.current!==null&&window.clearTimeout($.current)},[]),h.useEffect(()=>{function C(){document.visibilityState==="visible"&&ue()}return document.addEventListener("visibilitychange",C),window.addEventListener("pageshow",C),()=>{document.removeEventListener("visibilitychange",C),window.removeEventListener("pageshow",C)}},[]);const O=h.useRef([]),_=n.filter(C=>C.stampedUrl),W=_.length>0,U=w!==null,V=as-n.length;h.useEffect(()=>{ce("tool-open",{tool:"timestamp-photo"})},[]),h.useEffect(()=>()=>{O.current.forEach(C=>URL.revokeObjectURL(C)),O.current=[]},[]),h.useEffect(()=>{const C=m.current;if(C.length===0)return;let q=!1;const P=window.setTimeout(async()=>{for(const H of C){if(q)return;let ee;try{ee=B(await mx(H.sourceFile,H.metadata,a))}catch{continue}if(q){URL.revokeObjectURL(ee);return}const ve=H.stampedUrl;r(Te=>Te.map(Pe=>Pe.id===H.id?{...Pe,stampedUrl:ee}:Pe)),ve&&window.setTimeout(()=>{URL.revokeObjectURL(ve),O.current=O.current.filter(Te=>Te!==ve)},6e4)}},200);return()=>{q=!0,window.clearTimeout(P)}},[a]);function T(C,q){s(P=>({...P,...C})),ce("tool-setting-changed",{tool:"timestamp-photo",setting:q})}function I(C,q="panel"){l(C),ce("locked-options-open",{tool:"timestamp-photo",row:C,from:q})}function B(C){return O.current.push(C),C}function z(C){C.stampedUrl&&(URL.revokeObjectURL(C.stampedUrl),O.current=O.current.filter(q=>q!==C.stampedUrl))}function G(C){const q=n.find(P=>P.id===C);if(q&&z(q),r(P=>P.filter(H=>H.id!==C)),x([]),q&&p.length>0&&!U){const[P,...H]=p;f(H),N(H.length>0),ce("tool-queue-advanced",{tool:"timestamp-photo",waiting:H.length}),Se([P])}else N(!1)}function J(){if(n.forEach(z),r([]),N(!1),x([]),p.length>0){const C=p.slice(0,as);f(p.slice(as)),Se(C)}}function Z(){n.forEach(z),r([]),f([]),N(!1),x([])}function xe(C){f(q=>q.filter((P,H)=>H!==C))}async function Ce(C,q){if(!hx(C))return{slot:null,error:`${C.name}: ${e("not a supported image file.")}`};if(C.size>TO)return{slot:null,error:`${C.name}: ${e("larger than the 25MB limit.")}`};let P;try{P=await $O(C,q)}catch(H){if(Jp(C)){const ee=H instanceof Error&&H.message?` (${H.message})`:"";return{slot:null,error:`${C.name}: ${e("we couldn't convert that HEIC file in this browser")}${ee}.`}}return{slot:null,error:`${C.name}: ${e("we couldn't read that image.")}`}}q({percent:100,label:e("Stamping photo...")});try{const H=B(await mx(P.workingFile,P.metadata,u.current));return{slot:{id:`${C.name}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,sourceFile:P.workingFile,fileName:P.metadata.fileName,stampedUrl:H,metadata:P.metadata,conversionNotice:P.conversionNotice},error:null}}catch{return{slot:null,error:`${C.name}: ${e("stamping failed. Try another photo.")}`}}}async function Q(C){if(!C.length||U)return;const q=S(C);if(!q.length)return;x([]);const P=V>0?q.slice(0,V):[],H=q.slice(P.length);H.length>0&&(f(ee=>[...ee,...H]),N(!0),ce("tool-limit-hit",{tool:"timestamp-photo",queued:H.length})),P.length>0&&await Se(P)}async function ge(C){if(U)return;const q=await Qp(C),P=q.hadFolder,H=S(q.files);if(!P){b(null),H.length&&Q(H);return}const ee=H.filter(hx),ve=H.length-ee.length;ce("tool-folder-dropped",{tool:"timestamp-photo",files:H.length,photos:ee.length}),b(ee.length===0?e("That folder has no photos in it."):ve>0?e("{count, plural, one {Skipped # file that isn't a photo.} other {Skipped # files that aren't photos.}}",{count:ve}):null),ee.length&&Q(ee)}async function Se(C){const q=[];for(let H=0;H<C.length;H+=1){const ee=C[H];y({percent:8,label:e("Reading selected photo..."),current:H+1,total:C.length});const{slot:ve,error:Te}=await Ce(ee,Pe=>{y({percent:Pe.percent,label:Pe.label,current:H+1,total:C.length})});ve&&r(Pe=>[...Pe,ve]),Te&&q.push(Te)}y(null),x(q);const P=C.length-q.length;P>0&&ce("tool-used",{tool:"timestamp-photo",photos:P})}
542function me(C=900){RO()&&(k.current=!0,$.current!==null&&window.clearTimeout($.current),$.current=window.setTimeout(()=>{$.current=null,ue()},C))}function ue(){k.current&&(k.current=!1,DO(),R(!0))}function pe(){_.forEach((C,q)=>{window.setTimeout(()=>{const P=document.createElement("a");P.href=C.stampedUrl,P.download=ux(C.fileName),P.target="_blank",P.rel="noopener",document.body.appendChild(P),P.click(),P.remove()},q*350)}),ce("tool-download-all",{tool:"timestamp-photo",photos:_.length}),me(_.length*350+900)}return o.jsxs("div",{className:"min-h-screen bg-background",children:[o.jsx(Ys,{open:D,onOpenChange:R,children:o.jsxs(ka,{className:"max-w-md rounded-2xl p-8",children:[o.jsxs(Ca,{children:[o.jsx("span",{className:"section-eyebrow mb-3",children:e("Send it on")}),o.jsx(Ta,{className:"text-2xl font-bold leading-snug",children:e("Need to send these to someone?")}),o.jsx(Pa,{className:"mt-2 text-base leading-7",children:e("Your stamped photos are on this device only. A free account keeps them in a project and gives you one link to send, with nothing for the other person to install.")})]}),o.jsx(ix,{source:"timestamp-photo-overlay",compact:!0,className:"mt-4",onNavigate:()=>R(!1)}),o.jsx("button",{type:"button",className:"mt-4 text-sm text-muted-foreground hover:text-foreground transition-colors",onClick:()=>R(!1),children:e("No thanks, continue on the web")})]})}),o.jsx(Ys,{open:c,onOpenChange:d,children:o.jsxs(ka,{className:"w-[calc(100%-2rem)] max-w-md rounded-2xl",children:[o.jsxs(Ca,{children:[o.jsx(Ta,{children:e("Example stamped photo")}),o.jsx(Pa,{children:e("This is what your settings stamp onto a photo. Yours get their own date and location.")})]}),o.jsx(qO,{settings:a})]})}),o.jsx(Ve,{routeKey:"/timestamp-photo"}),o.jsx(Ze,{}),o.jsxs("main",{children:[o.jsx("section",{className:"relative pt-32 pb-8",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"max-w-4xl mx-auto text-center",children:[o.jsx("span",{className:"section-eyebrow",children:e("Free Tool")}),o.jsx("h1",{className:"text-4xl md:text-5xl font-bold tracking-tight mt-4 mb-5",children:e("Timestamp a Photo Online")}),o.jsx("p",{className:"section-subtitle",children:e("Drag and drop up to 3 photos, extract their metadata, and stamp the details onto your images. Download your stamped photos in one click.")}),o.jsxs("div",{className:"mt-6 flex flex-wrap items-center justify-center gap-x-4 gap-y-2 text-sm text-muted-foreground",children:[o.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[o.jsx("span",{className:"flex","aria-hidden":!0,children:[...Array(5)].map((C,q)=>o.jsx(Hr,{className:"h-4 w-4 fill-primary text-primary"},q))}),o.jsx("span",{className:"font-semibold text-foreground",children:Ga}),o.jsx("span",{children:e("on App Store & Google Play")})]}),o.jsx("span",{"aria-hidden":!0,className:"hidden h-1 w-1 rounded-full bg-border sm:inline-block"}),o.jsx("span",{children:e("Nothing is uploaded. Stamping runs in your browser.")})]})]})})}),o.jsx("section",{className:"pb-12",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"max-w-6xl mx-auto grid gap-6 lg:grid-cols-[20rem_1fr] lg:items-start",children:[o.jsxs("aside",{className:"panel hover:translate-y-0 hover:shadow-lg order-2 lg:order-1 rounded-3xl p-5 md:p-6 lg:sticky lg:top-24",children:[o.jsx("h2",{className:"text-lg font-semibold mb-4",children:e("Stamp settings")}),o.jsx("label",{className:"block text-sm font-medium",htmlFor:"stamp-caption",children:e("Caption")}),o.jsx("input",{id:"stamp-caption",type:"text",value:a.caption??"",maxLength:CO,placeholder:e("Optional line above the date"),onChange:C=>s(q=>({...q,caption:C.target.value})),onBlur:C=>{C.target.value.trim()&&ce("tool-setting-changed",{tool:"timestamp-photo",setting:"caption"})},className:"mt-1.5 mb-2 w-full rounded-lg border border-border bg-background px-3 py-2 text-base sm:text-sm"}),o.jsx("div",{className:"my-2 border-t border-border/60"}),o.jsx(px,{label:e("Timestamp"),children:o.jsx(em,{checked:!a.is_date_hidden,onCheckedChange:C=>T({is_date_hidden:!C},"timestamp"),"aria-label":e("Timestamp")})}),o.jsxs("div",{className:"ml-1 border-l-2 border-border/60 pl-4 pb-2",children:[o.jsx("label",{className:"block text-xs text-muted-foreground mb-1.5",htmlFor:"stamp-date-format",children:e("Date and time format")}),o.jsx("select",{id:"stamp-date-format",value:a.date_format,disabled:a.is_date_hidden,onChange:C=>T({date_format:C.target.value},"date_format"),className:"w-full rounded-lg border border-border bg-background px-3 py-2 text-sm disabled:opacity-50",children:gO.map(C=>o.jsx("option",{value:C.value,children:C.label},C.value))})]}),o.jsx("div",{className:"my-2 border-t border-border/60"}),o.jsx(px,{label:e("Coordinates"),children:o.jsx(em,{checked:a.preferred_location_format==="coordinate",onCheckedChange:C=>T({preferred_location_format:C?"coordinate":"none"},"coordinates"),"aria-label":e("Coordinates")})}),o.jsx("div",{className:"my-2 border-t border-border/60"}),o.jsx("p",{className:"pt-1 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:e("With a free account")}
542),[{key:"logo",label:e("Logo")},{key:"place",label:e("Place name")},{key:"style",label:e("Position, font and color")}].map(C=>o.jsxs("button",{type:"button",onClick:()=>I(C.key),className:"flex w-full items-center justify-between gap-4 py-2.5 text-left text-sm text-muted-foreground hover:text-foreground",children:[C.label,o.jsx(ap,{className:"h-4 w-4","aria-hidden":!0})]},C.key)),o.jsxs("a",{href:zn("stamp-options",{content:"unlock-all"}),target:"_blank",rel:"noopener","data-umami-event":"webapp-click","data-umami-event-source":"timestamp-photo-unlock-all",className:"inline-flex items-center gap-1 pt-1 text-sm font-semibold text-primary underline-offset-4 hover:underline",children:[e("Unlock all with a free account"),o.jsx(_a,{className:"h-4 w-4","aria-hidden":!0})]}),o.jsxs("div",{className:"mt-3 border-t border-border/60 pt-4",children:[o.jsx("p",{className:"text-sm text-muted-foreground mb-3",children:e("{used} of {max} photos used",{used:n.length,max:as})}),o.jsxs(ne,{variant:"hero",className:"w-full",disabled:!W,onClick:pe,children:[o.jsx(Yl,{className:"h-4 w-4","aria-hidden":!0}),_.length>1?e("Download all {count}",{count:_.length}):e("Download")]}),(n.length>0||p.length>0)&&o.jsxs("div",{className:"mt-3 flex flex-wrap justify-center gap-x-4 gap-y-1 text-sm",children:[n.length>0&&p.length>0&&o.jsx("button",{type:"button",onClick:J,className:"text-primary hover:underline",children:e("{count, plural, one {Stamp next photo} other {Stamp next # photos}}",{count:Math.min(p.length,as)})}),o.jsx("button",{type:"button",onClick:Z,className:"text-muted-foreground hover:text-foreground",children:e("Clear all")})]})]}),o.jsx(vO,{feature:i,onClose:()=>l(null)}),o.jsx(Yp,{count:A,tool:"timestamp-photo",onClose:()=>E(0)})]}),o.jsxs("div",{onDrop:C=>{C.preventDefault(),ge(C.dataTransfer)},onDragOver:C=>C.preventDefault(),className:"panel hover:translate-y-0 hover:shadow-lg order-1 lg:order-2 rounded-3xl p-5 md:p-6",children:[o.jsx("input",{id:"upload-photo",type:"file",accept:"image/*,video/*,.mov,.mp4",multiple:!0,className:"hidden",disabled:U,onChange:C=>{const q=Array.from(C.target.files??[]);b(null),q.length&&Q(q),C.target.value=""}}),o.jsxs("div",{className:"mb-4 flex items-center justify-between gap-4",children:[o.jsx("h2",{className:"text-lg font-semibold",children:e("Preview")}),o.jsx(ne,{variant:"outline",size:"sm",asChild:!U,disabled:U,children:U?o.jsx("span",{children:e("Add photos")}):o.jsxs("label",{htmlFor:"upload-photo",className:"cursor-pointer",children:[o.jsx(Kl,{className:"h-4 w-4","aria-hidden":!0}),e("Add photos")]})})]}),o.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[n.map(C=>o.jsxs("div",{className:"flex flex-col",children:[C.stampedUrl&&o.jsx("img",{src:C.stampedUrl,alt:e("Stamped photo preview"),className:"block max-h-80 w-full rounded-xl border border-border/60 object-contain bg-secondary/30"}),o.jsxs("div",{className:"mt-2 flex items-center justify-between gap-3",children:[o.jsx("span",{className:"truncate text-xs text-muted-foreground",children:C.fileName}),o.jsxs("div",{className:"flex shrink-0 items-center gap-3 text-sm",children:[C.stampedUrl&&o.jsxs("a",{href:C.stampedUrl,download:ux(C.fileName),target:"_blank",rel:"noopener","data-umami-event":"tool-download","data-umami-event-tool":"timestamp-photo",onClick:()=>me(),className:"inline-flex items-center gap-1 font-medium text-primary hover:underline",children:[o.jsx(Yl,{className:"h-4 w-4","aria-hidden":!0}),e("Download")]}),o.jsx("button",{type:"button",onClick:()=>G(C.id),"aria-label":e("Remove"),className:"text-muted-foreground hover:text-foreground",children:o.jsx(Bt,{className:"h-4 w-4","aria-hidden":!0})})]})]})]},C.id)),(V>0||n.length===0)&&o.jsxs("label",{htmlFor:"upload-photo",className:`flex flex-col items-center justify-center rounded-xl border-2 border-dashed border-border/70 p-6 text-center transition-colors hover:border-primary/50 hover:bg-secondary/20 ${U?"pointer-events-none opacity-60":"cursor-pointer"} ${n.length===0?"min-h-72 sm:col-span-2":"min-h-48"}`,children:[o.jsx("span",{className:"mb-3 flex h-12 w-12 items-center justify-center rounded-full bg-secondary",children:o.jsx(Kl,{className:"h-6 w-6 text-muted-foreground","aria-hidden":!0})}),o.jsx("span",{className:"font-semibold",children:n.length===0?e("Add your photos"):e("Add another photo")}),o.jsx("span",{className:"mt-1 text-sm text-muted-foreground",children:e("Drop photos here or click to browse")}),o.jsx("span",{className:"mt-3 text-xs text-muted-foreground",children:e("JPG, PNG, HEIC (if browser-supported), up to 25MB each.")}),n.length===0&&o.jsx("button",{type:"button",onClick:C=>{C.preventDefault(),C.stopPropagation(),d(!0),ce("tool-example-open",{tool:"timestamp-photo"})},className:"mt-4 text-sm font-medium text-primary underline-offset-4 hover:underline",children:e("See an example")})]})]}),n.some(C=>C.stampedUrl)&&(()=>{const C=n.find(P=>P.metadata.latitude!==null&&P.metadata.longitude!==null),q=C?{latitude:C.metadata.latitude,longitude:C.metadata.longitude}:null;return o.jsx(wO,{point:q,coordinates:q&&a.preferred_location_format==="coordinate"?X2(q.latitude,q.longitude):null,onOpen:P=>I(P,"result")})})(),g&&o.jsx("p",{className:"text-sm text-muted-foreground mt-4",children:g}),v.map(C=>o.jsx("p",{className:"text-sm text-destructive mt-4",children:C},C)),n.map(C=>C.conversionNotice?o.jsxs("p",{className:"text-sm text-primary mt-4 text-center",children:[C.fileName,": ",C.conversionNotice]},C.id):null),w&&o.jsxs("div",{className:"mt-4 rounded-xl border border-border/60 bg-background/70 p-4",children:[o.jsxs("div",{className:"flex items-center justify-between text-sm mb-2",children:[o.jsx("span",{className:"text-muted-foreground",children:w.total>1?`${w.label} ${e("({current} of {total})",{current:w.current,total:w.total})}`:w.label}),o.jsxs("span",{className:"font-medium",children:[w.percent,"%"]})]}),o.jsx("div",{className:"h-2 w-full rounded-full bg-secondary overflow-hidden",children:o.jsx("div",{className:"h-2 bg-primary transition-all duration-300",style:{width:`${w.percent}%`}})})]}),j&&o.jsxs("div",{className:"mt-6 rounded-2xl border border-primary/30 bg-primary/5 p-6",children:[o.jsx("h3",{className:"text-lg font-semibold mb-2",children:e("That's 3 photos, the free limit for one batch")}),o.jsx("p",{className:"text-sm leading-7 text-muted-foreground mb-4",children:e("The rest are held below, nothing was lost. Download these, then stamp the next batch. A free account keeps the whole set in one project and gives you a single link to send instead of a folder of downloads.")}),o.jsxs("div",{className:"flex flex-col sm:flex-row gap-3",children:[o.jsx(ne,{variant:"hero",asChild:!0,children:o.jsx("a",{href:kO,target:"_blank",rel:"noopener","data-umami-event":"webapp-click","data-umami-event-source":"timestamp-photo-limit",children:e("Start free")})}),o.jsx(ne,{variant:"outline",asChild:!0,children:o.jsx("a",{href:t("/pricing"),children:e("See Pro pricing")})})]}),o.jsx("button",{type:"button",onClick:()=>dd({from:"photo-limit",prefill:e("I'm hitting the 3 photo limit. What are my options?")}),className:"mt-4 text-sm text-muted-foreground underline-offset-4 hover:text-foreground hover:underline",children:e("Not sure which plan fits? Ask us, we reply within a day.")})]}),p.length>0&&o.jsxs("div",{className:"mt-6 rounded-2xl border border-border/60 bg-secondary/15 p-5",children:[o.jsx("h3",{className:"font-semibold mb-1",children:e("Waiting to stamp")}),o.jsx("p",{className:"text-sm text-muted-foreground mb-3",children:e("{count, plural, one {# photo is held and will stamp next.} other {# photos are held and will stamp next.}}",{count:p.length})}),o.jsx("ul",{className:"space-y-1.5",children:p.slice(0,6).map((C,q)=>o.jsxs("li",{className:"flex items-center justify-between gap-4 text-sm",children:[o.jsx("span",{className:"truncate text-muted-foreground",children:C.name}),o.jsxs("button",{type:"button",onClick:()=>xe(q),className:"inline-flex items-center gap-1 text-muted-foreground hover:text-foreground transition-colors shrink-0",children:[o.jsx(Bt,{className:"h-4 w-4","aria-hidden":!0}),e("Remove")]})]},`${C.name}-${C.lastModified}-${q}`))}),p.length>6&&o.jsx("p",{className:"mt-2 text-sm text-muted-foreground",children:e("and {count} more",{count:p.length-6})})]})]})]})})}),W?o.jsx("section",{className:"pb-16",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"max-w-5xl mx-auto panel roun
542ded-3xl p-7 md:p-10",children:[o.jsx("span",{className:"section-eyebrow",children:e("Send it on")}),o.jsx("h2",{className:"text-3xl md:text-4xl font-bold mt-4 mb-4",children:e("These photos are only on your device")}),o.jsx("p",{className:"text-muted-foreground text-lg mb-8 max-w-3xl",children:e("This tool never uploads anything, which is why there is nothing here to link to. A free account keeps your stamped photos in a project and gives you one link to send a client, an adjuster, or an inspector. They open it in a browser with nothing to install.")}),o.jsx(ix,{source:"timestamp-photo"})]})})}):o.jsx("section",{className:"pb-16",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"max-w-5xl mx-auto text-center",children:[o.jsx("p",{className:"text-muted-foreground mb-5",children:e("Prefer to stamp on your phone, straight from the camera?")}),o.jsx(Hn,{location:"timestamp-photo-below-tool",height:44})]})})}),o.jsx("section",{className:"pb-16",children:o.jsx("div",{className:"container",children:o.jsx("div",{className:"max-w-5xl mx-auto",children:o.jsxs("div",{className:"panel rounded-2xl p-6 md:p-8",children:[o.jsx("h2",{className:"text-2xl font-semibold mb-4",children:e("How It Works")}),o.jsxs("div",{className:"grid gap-3 text-muted-foreground",children:[o.jsx("p",{children:e("1. Upload up to 3 photos.")}),o.jsx("p",{children:e("2. We read EXIF and auto-stamp location/d
542ate on each.")}),o.jsx("p",{children:e("3. Download them stamped, one by one or all at once.")})]})]})})})}),o.jsx("section",{className:"pb-16",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"mx-auto max-w-3xl",children:[o.jsx("span",{className:"section-eyebrow",children:e("Photo timestamping, explained")}),o.jsx("h2",{className:"section-title",children:e("What is photo timestamping?")}),o.jsxs("div",{className:"mt-4 space-y-4 text-muted-foreground leading-relaxed",children:[o.jsx("p",{children:e("Photo timestamping is the act of writing the date, time, and location a photo was taken directly onto the image â so the proof of when and where lives in the visible pixels, not just the EXIF metadata.")}),o.jsx("p",{children:e("Most cameras and phones already record this information in EXIF, but EXIF is invisible to anyone not inspecting the file properties, and most messaging and social platforms strip it on share. Stamping the values onto the image solves both problems: the timestamp is readable at a glance, and it survives any download, screenshot, or repost.")}),o.jsx("p",{children:e("Field professionals â contractors, real estate agents, insurance adjusters, private investigators, and process servers â rely on photo timestamps as defensible evidence that work was done on a specific date or that a condition existed at a specific moment. This online tool reads the photo's EXIF and writes the values onto the image entirely in your browser, with no upload required.")})]})]})})}),o.jsx("section",{className:"pb-16",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"mx-auto max-w-4xl",children:[o.jsxs("div",{className:"text-center mb-10",children:[o.jsx("span",{className:"section-eyebrow",children:e("Stamp contents")}),o.jsx("h2",{className:"section-title",children:e("What gets stamped on your photo")}),o.jsx("p",{className:"section-subtitle mt-3",children:e("Two lines, baked into the bottom-left of the image in legible white text sized to your photo's resolution.")})]}),o.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[o.jsxs("div",{className:"panel rounded-2xl p-6",children:[o.jsx("h3",{className:"font-semibold text-lg mb-3",children:e("Date and time taken")}),o.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:e("Pulled from the photo's EXIF DateTimeOriginal field, with file modified time as a fallback. Formatted in 12- or 24-hour clock and locale-aware date order based on your browser settings.")})]}),o.jsxs("div",{className:"panel rounded-2xl p-6",children:[o.jsx("h3",{className:"font-semibold text-lg mb-3",children:e("GPS location")}),o.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:e("Latitude and longitude pulled from the photo's EXIF GPS tags. If GPS data is missing â for example on screenshots or photos shared through apps that strip EXIF â the location line is omitted and only the date/time stamp is written.")})]})]})]})})}),o.jsx("section",{className:"pb-16",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"mx-auto max-w-5xl",children:[o.jsxs("div",{className:"text-center mb-10",children:[o.jsx("span",{className:"section-eyebrow",children:e("Use cases")}),o.jsx("h2",{className:"section-title",children:e("When timestamping photos matters")}),o.jsx("p",{className:"section-subtitle mt-3",children:e("Anywhere proving the moment a photo was taken is part of the job.")})]}),o.jsxs("div",{className:"grid gap-4 md:grid-cols-2 lg:grid-cols-3",children:[o.jsxs("div",{className:"panel rounded-2xl p-6",children:[o.jsx("h3",{className:"font-semibold text-lg mb-2",children:e("Construction documentation")}),o.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:e("Daily progress photos with embedded date and location for owner reports, change orders, and dispute resolution. Survives the trip from job site to PDF report.")})]}),o.jsxs("div",{className:"panel rounded-2xl p-6",children:[o.jsx("h3",{className:"font-semibold text-lg mb-2",children:e("Real estate listings")}),o.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:e("Show that listing photos are current, prove staging dates for MLS or HUD compliance, and document property condition before and after showings.")})]}
542),o.jsxs("div",{className:"panel rounded-2xl p-6",children:[o.jsx("h3",{className:"font-semibold text-lg mb-2",children:e("Insurance claims")}),o.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:e("Document property damage with timestamped photos that hold up under adjuster review and in claim disputes. Date and GPS embedded, not stripped on share.")})]}),o.jsxs("div",{className:"panel rounded-2xl p-6",children:[o.jsx("h3",{className:"font-semibold text-lg mb-2",children:e("Private investigation & process serving")}),o.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:e("Establish chain of custody by stamping date, time, and GPS onto every evidence photo. Defensible at a glance, no metadata-tooling required to read.")})]}),o.jsxs("div",{className:"panel rounded-2xl p-6",children:[o.jsx("h3",{className:"font-semibold text-lg mb-2",children:e("Property management")}),o.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:e("Move-in and move-out condition photos with embedded date so security-deposit disputes start with timestamped proof rather than memory.")})]}),o.jsxs("div",{className:"panel rounded-2xl p-6",children:[o.jsx("h3",{className:"font-semibold text-lg mb-2",children:e("Field inspections")}),o.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:e('Code enforcement, pest control, environmental surveys, utility audits â anywhere the question "when did you see this?" is part of the deliverable.')})]})]})]})})}),o.jsx("section",{className:"pb-16",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"mx-auto max-w-3xl",children:[o.jsxs("div",{className:"text-center mb-8",children:[o.jsx("span",{className:"section-eyebrow",children:e("Common questions")}),o.jsx("h2",{className:"section-title",children:e("Photo timestamp FAQ")})]}),o.jsx("div",{className:"panel rounded-3xl p-4 md:p-6",children:XO.map((C,q)=>o.jsxs("details",{className:`group border-border/60 ${q>0?"border-t":""}`,children:[o.jsxs("summary",{className:"flex cursor-pointer list-none items-start gap-4 py-5 text-left",children:[o.jsx("span",{className:"flex-1 pt-0.5 text-base font-semibold leading-6 md:text-lg",children:e(C.question)}),o.jsx(gn,{className:"mt-1 h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200 group-open:rotate-180"})]}),o.jsx("div",{className:"pb-5",children:o.jsx("p",{className:"text-sm leading-7 text-muted-foreground md:text-[15px]",children:e(C.answer)})})]},C.question))})]})})}),o.jsx("section",{className:"pb-20",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"mx-auto max-w-4xl",children:[o.jsxs("div",{className:"text-center mb-8",children:[o.jsx("span",{className:"section-eyebrow",children:e("More photo tools")}),o.jsx("h2",{className:"section-title",children:e("Related free tools")})]}),o.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[o.jsxs("a",{href:t("/photo-metadata-tool"),className:"panel rounded-2xl p-6 transition-colors hover:border-primary/40",children:[o.jsx("h3",{className:"font-semibold text-lg mb-2",children:e("Photo Metadata Viewer")}),o.jsx("p",{className:"text-sm text-muted-foreground",children:e("Inspect every EXIF, IPTC, and XMP field in a photo â capture date, GPS, camera, lens, exposure â without uploading the file.")})]}),o.jsxs("a",{href:t("/before-after-photo"),className:"panel rounded-2xl p-6 transition-colors hover:border-primary/40",children:[o.jsx("h3",{className:"font-semibold text-lg mb-2",children:e("Before & After Photo Maker")}),o.jsx("p",{className:"text-sm text-muted-foreground",children:e("Combine two stamped photos into a labeled side-by-side comparison. Ideal for renovation, landscaping, and inspection reports.")})]})]})]})})})]}),o.jsx(et,{})]})},XO=[{question:"Does this tool keep my photos?",answer:"No. Stamping runs entirely in your browser using JavaScript and HTML5 canvas â your photo is never uploaded to a server, never logged, and never stored. Closing the tab is enough to remove the file from memory."},{question:"What date does it stamp on the photo?",answer:"The capture date pulled from the photo's EXIF DateTimeOriginal field. If no EXIF date is present (for example on screenshots or images that have been re-saved), the tool falls back to the file's modified time. The exact date and source is shown to you before you download."},{question:"Will the timestamp survive screenshots, downloads, and shares?",answer:"Yes. Because the date and location are baked into the visible pixels, they survive every transformation that preserves the image â screenshots, downloads, re-uploads, social shares, even AirDrop. EXIF-based timestamps, by contrast, are stripped by most messaging and social apps."},{question:"What if my photo doesn't have GPS data?",answer:"The location line is simply omitted, and the stamp shows just the date and time. Photos taken with Location Services off, screenshots, and images shared through apps that strip EXIF won't have GPS in their metadata, so there is nothing to stamp."},{question:"Where on the photo does the timestamp appear?",answer:"Bottom-left corner, in legible white text sized proportionally to the image (so it stays readable on both phone-camera shots and DSLR resolution). The web tool uses a fixed style; the mobile app supports custom positions, fonts, colors, and logos."},{question:"Does my original photo get changed?",answer:"No. The stamped photo is generated as a new JPEG you can download. Your original file is untouched. If you want to keep both, save the download with a different name."},{question:"Can I batch-stamp multiple photos at once?",answer:"Yes, up to three at a time. Drop three photos on the tool and it stamps all of them, with a download for each and a Download All button. Three is the same batch size the free plan carries everywhere else. For bigger batches, a free account keeps stamped photos organized in projects, and Pro in the Timestamp It app stamps unlimited photos at once."}],YO=25*1024*1024;function KO(e){return new Intl.DateTimeFormat($r(),{year:"numeric",month:"short",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:Fp()}).format(e)}function JO(e){return e.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/[_-]/g," ").replace(/\s+/g," ").trim().replace(/^./,t=>t.toUpperCase())}function J2(e){if(e==null)return null;if(e instanceof Date)return KO(e);if(typeof e=="number"||typeof e=="boolean")return String(e);if(typeof e=="string"){const t=e.trim();return t.length?t:null}if(Array.isArray(e))return e.map(n=>
542J2(n)).filter(Boolean).join(", ")||null;if(typeof e=="object")try{return JSON.stringify(e)}catch{return null}return null}function ZO(e){const t=["B","KB","MB","GB"];let n=e,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r+=1;return`${n.toFixed(r===0?0:2)} ${t[r]}`}function Zp(e){const t=(e.type||"").toLowerCase(),n=e.name.toLowerCase();return t.includes("heic")||t.includes("heif")||n.endsWith(".heic")||n.endsWith(".heif")}function eF(e){const t=e.name.toLowerCase();return t.endsWith(".jpg")||t.endsWith(".jpeg")||t.endsWith(".png")||t.endsWith(".webp")||t.endsWith(".gif")||t.endsWith(".bmp")||t.endsWith(".heic")||t.endsWith(".heif")}function tF(e){return(e.type||"").toLowerCase().startsWith("image/")||Zp(e)||eF(e)}function nF(e){return new Promise((t,n)=>{const r=URL.createObjectURL(e),a=new Image;a.onload=()=>{URL.revokeObjectURL(r),t(a)},a.onerror=()=>{URL.revokeObjectURL(r),n(new Error("Unable to load image."))},a.src=r})}async function rF(e){if(typeof createImageBitmap=="function")try{const n=await createImageBitmap(e);return{drawable:n,width:n.width,height:n.height,cleanup:()=>n.close()}}catch{}const t=await nF(e);return{drawable:t,width:t.naturalWidth,height:t.naturalHeight}}function oF(e){return e.replace(/\.[^.]+$/,"")+".jpg"}async function aF(e){const n=await(await We(()=>import("./heic-to-DIRPI3VF.js"),[])).heicTo({blob:e,type:"image/jpeg",quality:.92}),r=n instanceof Blob?n:null;if(!(r instanceof Blob))throw new Error("HEIC_CONVERSION_FAILED");return new File([r],oF(e.name),{type:"image/jpeg",lastModified:e.lastModified})}async function sF(e){try{const n=await(await We(()=>import("./full.esm-BuX-V2CP.js"),[])).parse(e);return n?Object.entries(n).map(([r,a])=>{const s=J2(a);return s?{key:r,label:JO(r),value:s}:null}).filter(r=>!!r):[]}catch{return[]}}async function iF(e,t){var c;t==null||t({percent:15,label:"Reading metadata..."});const n=await sF(e);let r=e,a=null;Zp(e)&&(t==null||t({percent:45,label:"Converting HEIC for preview..."}),r=await aF(e),a="HEIC converted to JPG for browser preview. Metadata is extracted from the original file."),t==null||t({percent:75,label:"Preparing preview..."});const s=await rF(r);(c=s.cleanup)==null||c.call(s);const l=[...[{key:"_fileName",label:"File Name",value:e.name},{key:"_fileType",label:"File Type",value:e.type||"unknown"},{key:"_fileSize",label:"File Size",value:ZO(e.size)},{key:"_width",label:"Image Width",value:String(s.width)},{key:"_height",label:"Image Height",value:String(s.height)}],...n];return{previewFile:r,rows:l,conversionNotice:a}}const lF=()=>{const e=re(),t=qe(),[n,r]=h.useState(null);h.useEffect(()=>{ce("tool-open",{tool:"photo-metadata"})},[]);const[a,s]=h.useState([]),[i,l]=h.useState(!1),[c,d]=h.useState(0),[u,m]=h.useState(""),[p,f]=h.useState(null),[w,y]=h.useState(null);h.useEffect(()=>()=>{n&&URL.revokeObjectURL(n)},[n]);async function v(x){if(f(null),y(null),s([]),!tF(x)){f(e("Please upload a valid image file."));return}if(x.size>YO){f(e("Please upload an image smaller than 25MB."));return}try{l(!0),d(5),m(e("Reading selected photo..."));const g=await iF(x,b=>{d(b.percent),m(b.label)});n&&URL.revokeObjectURL(n),r(URL.createObjectURL(g.previewFile)),s(g.rows),y(g.conversionNotice),ce("tool-used",{tool:"photo-metadata"}),d(100),m(e("Ready"))}catch(g){if(Zp(x)){const b=g instanceof Error&&g.message?` (${g.message})`:"";f(`${e("We couldn't process that HEIC file in this browser")}${b}. Try another HEIC, or convert to JPG first.`)}else f(e("We couldn't read metadata from that image. Try a different file."))}finally{setTimeout(()=>{l(!1),d(0),m("")},250)}}return o.jsxs("div",{className:"min-h-screen bg-background",children:[o.jsx(Ve,{routeKey:"/photo-metadata-tool"}),o.jsx(Ze,{}),o.jsxs("main",{children:[o.jsx("section",{className:"relative pt-32 pb-14",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"max-w-4xl mx-auto text-center",children:[o.jsx("span",{className:"section-eyebrow",children:e("Free Tool")}),o.jsx("h1",{className:"text-4xl md:text-5xl font-bold tracking-tight mt-4 mb-5",children:e("Photo Metadata Viewer")}),o.jsx("p",{className:"section-subtitle",children:e("Upload a photo to inspect EXIF and file metadata in a clean table. Great for checking timestamp, GPS, camera, and image properties.")})]})})}),o.jsx("section",{className:"pb-12",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"max-w-6xl mx-auto panel roun
542ded-3xl p-6 md:p-8",children:[o.jsxs("div",{onDrop:x=>{var b;x.preventDefault();const g=(b=x.dataTransfer.files)==null?void 0:b[0];g&&v(g)},onDragOver:x=>x.preventDefault(),className:"rounded-2xl border border-dashed border-border/70 bg-secondary/20 p-8 text-center",children:[o.jsx("p",{className:"font-semibold text-lg mb-2",children:e("Drag and drop your photo here")}),o.jsx("p",{className:"text-muted-foreground mb-4",children:e("JPG, PNG, HEIC (if browser-supported), up to 25MB.")}),o.jsx("input",{id:"upload-metadata-photo",type:"file",accept:"image/*",className:"hidden",onChange:x=>{var b;const g=(b=x.target.files)==null?void 0:b[0];g&&v(g)}}),o.jsx(ne,{variant:"outline",asChild:!0,children:o.jsx("label",{htmlFor:"upload-metadata-photo",className:"cursor-pointer",children:e("Choose Photo")})})]}),p&&o.jsx("p",{className:"text-sm text-destructive mt-4 text-center",children:p}),w&&o.jsx("p",{className:"text-sm text-primary mt-4 text-center",children:w}),i&&o.jsxs("div",{className:"mt-4 rounded-xl border border-border/60 bg-background/70 p-4",children:[o.jsxs("div",{className:"flex items-center justify-between text-sm mb-2",children:[o.jsx("span",{className:"text-muted-foreground",children:u}),o.jsxs("span",{className:"font-medium",children:[c,"%"]})]}),o.jsx("div",{className:"h-2 w-full rounded-full bg-secondary overflow-hidden",children:o.jsx("div",{className:"h-2 bg-primary transition-all duration-300",style:{width:`${c}%`}})})]}),n&&o.jsxs("div",{className:"mt-6",children:[o.jsx("h2",{className:"font-semibold mb-3",children:e("Image Preview")}),o.jsx("img",{src:n,alt:e("Uploaded image preview"),className:"w-full max-h-[420px] object-contain rounded-xl border border-border/60 bg-secondary/10"})]}),a.length>0&&o.jsxs("div",{className:"mt-6 rounded-xl border border-border/60 overflow-hidden",children:[o.jsx("div",{className:"px-4 py-3 border-b border-border/60 bg-secondary/20",children:o.jsx("h2",{className:"font-semibold",children:e("Metadata Table")})}),o.jsx("div",{className:"overflow-x-auto",children:o.jsxs("table",{className:"w-full text-sm",children:[o.jsx("thead",{children:o.jsxs("tr",{className:"bg-secondary/10 text-left",children:[o.jsx("th",{className:"px-4 py-3 font-semibold",children:e("Field")}),o.jsx("th",{className:"px-4 py-3 font-semibold",children:e("Value")})]})}),o.jsx("tbody",{children:a.map((x,g)=>o.jsxs("tr",{className:"border-t border-border/50",children:[o.jsx("td",{className:"px-4 py-2 text-foreground/90",children:x.label}),o.jsx("td",{className:"px-4 py-2 text-muted-foreground break-all",children:x.value})]},`${x.key}-${g}`))})]})})]}),a.length>0&&o.jsxs("section",{className:"mt-6 panel rounded-2xl p-6 md:p-8",children:[o.jsx("span",{className:"section-eyebrow",children:e("Do It Faster In-App")}),o.jsx("h2",{className:"text-2xl md:text-3xl font-bold mt-3 mb-3",children:e("Need more than metadata lookup?")}),o.jsx("p",{className:"text-muted-foreground mb-5 max-w-3xl",children:e("Timestamp It helps you go beyond metadata inspection with fast photo stamping, project organization, batch processing, and team sharing workflows.")}),o.jsx(Hn,{location:"photo-metadata",height:56,className:"sm:justify-start"})]})]})})}),o.jsx("section",{className:"pb-16",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"mx-auto max-w-3xl",children:[o.jsx("span",{className:"section-eyebrow",children:e("Photo metadata, explained")}),o.jsx("h2",{className:"section-title",children:e("What is photo metadata?")}),o.jsxs("div",{className:"mt-4 space-y-4 text-muted-foreground leading-relaxed",children:[o.jsx("p",{children:e("Photo metadata is the hidden information cameras and phones embed in every image they create. It records when and where a photo was captured, which device and lens took it, and how the camera was configured at the moment of capture â all stored inside the file itself.")}),o.jsx("p",{children:e("The most common standard is EXIF (Exchangeable Image File Format), which carries capture date and time, GPS coordinates, camera make and model, lens, exposure settings, ISO, and dozens of other technical fields. Many photos also carry IPTC and XMP metadata for captions, copyright, ratings, and editing history.")}),o.jsx("p",{children:e("Photographers, journalists, private investigators, insurance adjusters, and field documentation teams use photo metadata to verify when and where a photo was taken â useful for copyright proof, legal evidence, insurance claims, and construction progress reports. This online viewer reads the same standardized fields that desktop tools like Lightroom or ExifTool surface, but without uploading your photo anyw
542here.")})]})]})})}),o.jsx("section",{className:"pb-16",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"mx-auto max-w-4xl",children:[o.jsxs("div",{className:"text-center mb-10",children:[o.jsx("span",{className:"section-eyebrow",children:e("EXIF & file fields")}),o.jsx("h2",{className:"section-title",children:e("Which fields the viewer reads")}),o.jsx("p",{className:"section-subtitle mt-3",children:e("Every standard EXIF tag your camera writes, plus the file-level details the browser exposes.")})]}),o.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[o.jsxs("div",{className:"panel rounded-2xl p-6",children:[o.jsx("h3",{className:"font-semibold text-lg mb-3",children:e("Capture")}),o.jsxs("ul",{className:"space-y-2 text-sm text-muted-foreground",children:[o.jsx("li",{children:e("Date and time taken (DateTimeOriginal)")}),o.jsx("li",{children:e("Time zone offset")}),o.jsx("li",{children:e("GPS latitude, longitude, and altitude")}),o.jsx("li",{children:e("GPS direction and speed (when recorded)")})]})]}),o.jsxs("div",{className:"panel rounded-2xl p-6",children:[o.jsx("h3",{className:"font-semibold text-lg mb-3",children:e("Camera & lens")}),o.jsxs("ul",{className:"space-y-2 text-sm text-muted-foreground",children:[o.jsx("li",{children:e("Camera make and model")}),o.jsx("li",{children:e("Lens make and model")}),o.jsx("li",{children:e("Focal length and 35mm equivalent")}),o.jsx("li",{children:e("Capture software / firmware")})]})]}),o.jsxs("div",{className:"panel rounded-2xl p-6",children:[o.jsx("h3",{className:"font-semibold text-lg mb-3",children:e("Exposure")}),o.jsxs("ul",{className:"space-y-2 text-sm text-muted-foreground",children:[o.jsx("li",{children:e("Shutter speed")}),o.jsx("li",{children:e("Aperture (f-stop)")}),o.jsx("li",{children:e("ISO sensitivity")}),o.jsx("li",{children:e("White balance and metering mode")}),o.jsx("li",{children:e("Flash status and exposure compensation")})]})]}),o.jsxs("div",{className:"panel rounded-2xl p-6",children:[o.jsx("h3",{className:"font-semibold text-lg mb-3",children:e("Image & file")}),o.jsxs("ul",{className:"space-y-2 text-sm text-muted-foreground",children:[o.jsx("li",{children:e("Width and height in pixels")}),o.jsx("li",{children:e("Orientation")}),o.jsx("li",{children:e("Color space and bit depth")}),o.jsx("li",{children:e("File size and MIME type")}),o.jsx("li",{children:e("Embedded copyright, artist, and description tags")})]})]})]})]})})}),o.jsx("section",{className:"pb-16",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"mx-auto max-w-3xl",children:[o.jsxs("div",{className:"text-center mb-8",children:[o.jsx("span",{className:"section-eyebrow",children:e("Common questions")}),o.jsx("h2",{className:"section-title",children:e("Photo metadata FAQ")})]}),o.jsx("div",{className:"panel rounded-3xl p-4 md:p-6",children:cF.map((x,g)=>o.jsxs("details",{className:`group border-border/60 ${g>0?"border-t":""}`,children:[o.jsxs("summary",{className:"flex cursor-pointer list-none items-start gap-4 py-5 text-left",children:[o.jsx("span",{className:"flex-1 pt-0.5 text-base font-semibold leading-6 md:text-lg",children:e(x.question)}),o.jsx(gn,{className:"mt-1 h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200 group-open:rotate-180"})]}),o.jsx("div",{className:"pb-5",children:o.jsx("p",{className:"text-sm leading-7 text-muted-foreground md:text-[15px]",children:e(x.answer)})})]},x.question))})]})})}),o.jsx("section",{className:"pb-20",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"mx-auto max-w-4xl",children:[o.jsxs("div",{className:"text-center mb-8",children:[o.jsx("span",{className:"section-eyebrow",children:e("More photo tools")}),o.jsx("h2",{className:"section-title",children:e("Related free tools")})]}),o.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[o.jsxs("a",{href:t("/timestamp-photo"),className:"panel rounded-2xl p-6 transition-colors hover:border-primary/40",children:[o.jsx("h3",{className:"font-semibold text-lg mb-2",children:e("Timestamp Photo Tool")}),o.jsx("p",{className:"text-sm text-muted-foreground",children:e("Stamp the capture date, time, and GPS location onto y
542our photo, then download the stamped image. Free, browser-only, no upload.")})]}),o.jsxs("a",{href:t("/before-after-photo"),className:"panel rounded-2xl p-6 transition-colors hover:border-primary/40",children:[o.jsx("h3",{className:"font-semibold text-lg mb-2",children:e("Before & After Photo Maker")}),o.jsx("p",{className:"text-sm text-muted-foreground",children:e("Combine two photos into a labeled side-by-side comparison with date and location stamps. Great for renovation, landscaping, and inspection reports.")})]})]})]})})})]}),o.jsx(et,{})]})},cF=[{question:"What is EXIF data?",answer:"EXIF (Exchangeable Image File Format) is the structured metadata cameras and phones embed in every photo: capture date and time, GPS coordinates, camera and lens model, exposure settings, ISO, white balance, image dimensions, orientation, and software signatures. This viewer reads those fields directly from the file."},{question:"Does this tool keep my photos?",answer:"No. Metadata extraction runs entirely in your browser using JavaScript â your photo is never uploaded to a server, never logged, and never stored. As soon as you close the tab, the file and its metadata are gone."},{question:"Why doesn't my screenshot have any EXIF data?",answer:"Screenshots and images downloaded from social platforms typically have most EXIF stripped or never had it. iOS, Instagram, Facebook, WhatsApp, and many messaging apps remove EXIF on share to protect user privacy. The viewer will still show file-level metadata (size, type, dimensions) even when EXIF is empty."},{question:"Why is GPS missing on photos taken with my iPhone or Android?",answer:"GPS only embeds when the Camera app has Location Services permission at the moment of capture. If the permission was off, never granted, or the photo was taken in airplane mode without a GPS lock, the location field will be missing. Re-enabling Location Services only affects future photos."},{question:"Does this support HEIC files?",answer:"HEIC support depends on your browser. Safari decodes HEIC natively; Chrome and Firefox typically need a fallback decoder. The viewer will attempt to convert HEIC to JPEG client-side so you can preview the file. If your browser cannot decode the file, you'll see a notice and the file-level metadata will still display."},{question:"Can I edit or remove metadata with this tool?",answer:"No, this is a read-only metadata viewer. To stamp the capture date, time, and GPS location onto the photo itself for documentation, use the Timestamp Photo tool â it runs in the same browser with the same privacy model."},{question:"Is this the same metadata Lightroom or Google Photos shows?",answer:"Yes. All these tools read the same standardized EXIF, IPTC, and XMP metadata blocks. The fields you see here are the raw values pulled directly from the file; consumer apps may rename, group, or hide some of them in their UI."}],dF=25*1024*1024,fx="before-after-photo-app-overlay-seen";function gx(e){return new Intl.DateTimeFormat($r(),{year:"numeric",month:"short",day:"2-digit",hour:"2-digit",minute:"2-digit",hour12:Fp()}).format(e)}function uF(e,t){return`${e.toFixed(5)}, ${t.toFixed(5)}`}function nl(e,t){let n=null;if(typeof e=="number")n=e;else if(Array.isArray(e)&&e.length>=3){const[r,a,s]=e;typeof r=="number"&&typeof a=="number"&&typeof s=="number"&&(n=Math.abs(r)+a/60+s/3600,r<0&&(n*=-1))}else if(typeof e=="string"){const r=Number(e);Number.isNaN(r)||(n=r)}if(n===null)return null;if(typeof t=="string"){const r=t.toUpperCase();r==="S"||r==="W"?n=-Math.abs(n):(r==="N"||r==="E")&&(n=Math.abs(n))}return n}function hF(e){if(!e)return null;if(e instanceof Date)return Number.isNaN(e.getTime())?null:e;if(typeof e=="number"){const t=new Date(e);return Number.isNaN(t.getTime())?null:t}if(typeof e=="string"){const t=e.trim();if(!t)return null;const n=t.replace(/^(\d{4}):(\d{2}):(\d{2})\s/,"$1-$2-$3T"),r=new Date(n);if(!Number.isNaN(r.getTime()))return r}return null}function mF(e){return new Promise((t,n)=>{const r=URL.createObjectURL(e),a=new Image;a.onload=()=>{URL.revokeObjectURL(r),t(a)},a.onerror=()=>{URL.revokeObjectURL(r),n(new Error("Unable to load image."))},a.src=r})}function ef(e){const t=(e.type||"").toLowerCase(),n=e.name.toLowerCase();return t.includes("heic")||t.includes("heif")||n.endsWith(".heic")||n.endsWith(".heif")}function pF(e){const t=e.name.toLowerCase();return t.endsWith(".jpg")||t.endsWith(".jpeg")||t.endsWith(".png")||t.endsWith(".webp")||t.endsWith(".gif")||t.endsWith(".bmp")||t.endsWith(".heic")||t.endsWith(".heif")}function fF(e){return(e.type||"").toLowerCase().startsWith("image/")||ef(e)||pF(e)}async function hc(e){if(typeof createImageBitmap=="function")try{const n=await createImageBitmap(e);return{drawable:n,width:n.width,height:n.height,cleanup:()=>n.close()}}catch{}const t=await mF(e);
542return{drawable:t,width:t.naturalWidth,height:t.naturalHeight}}async function gF(e){try{const t=await We(()=>import("./full.esm-BuX-V2CP.js"),[]),n=await t.gps(e).catch(()=>null),r=await t.parse(e).catch(()=>null),a=(r==null?void 0:r.DateTimeOriginal)??(r==null?void 0:r.CreateDate)??(r==null?void 0:r.ModifyDate)??(r==null?void 0:r.DateTimeDigitized)??(r==null?void 0:r.DateTime),s=hF(a),i=nl(r==null?void 0:r.latitude)??nl(r==null?void 0:r.GPSLatitude,r==null?void 0:r.GPSLatitudeRef)??(n==null?void 0:n.latitude)??null,l=nl(r==null?void 0:r.longitude)??nl(r==null?void 0:r.GPSLongitude,r==null?void 0:r.GPSLongitudeRef)??(n==null?void 0:n.longitude)??null,c=i!==null&&l!==null?uF(i,l):null;return{takenAt:s,locationText:c}}catch{return{takenAt:null,locationText:null}}}function yF(e){return e.replace(/\.[^.]+$/,"")+".jpg"}async function xF(e){const n=await(await We(()=>import("./heic-to-DIRPI3VF.js"),[])).heicTo({blob:e,type:"image/jpeg",quality:.92}),r=n instanceof Blob?n:null;if(!(r instanceof Blob))throw new Error("HEIC_CONVERSION_FAILED");return new File([r],yF(e.name),{type:"image/jpeg",lastModified:e.lastModified})}async function vF(e){var i,l;const t=new Date(e.lastModified),n=e.name,r=await gF(e);if(ef(e)){const c=await xF(e),d=await hc(c),u={takenAt:r.takenAt??t,width:d.width,height:d.height,fileName:n,locationText:r.locationText};return(i=d.cleanup)==null||i.call(d),{workingFile:c,metadata:u,conversionNotice:"HEIC converted to JPG for preview, stamping, and download."}}const a=await hc(e),s={takenAt:r.takenAt??t,width:a.width,height:a.height,fileName:n,locationText:r.locationText};return(l=a.cleanup)==null||l.call(a),{workingFile:e,metadata:s,conversionNotice:null}}function yx(e,t,n,r,a){e.font=`700 ${a}px ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial`,e.textBaseline="middle",e.textAlign="center";const s=e.measureText(t),i=Math.round(a*.9),l=Math.round(a*.45),c=s.width+i*2,d=a+l*2,u=n-c/2,m=r,p=Math.round(d*.45);e.fillStyle="rgba(0, 0, 0, 0.78)",e.beginPath(),e.moveTo(u+p,m),e.lineTo(u+c-p,m),e.quadraticCurveTo(u+c,m,u+c,m+p),e.lineTo(u+c,m+d-p),e.quadraticCurveTo(u+c,m+d,u+c-p,m+d),e.lineTo(u+p,m+d),e.quadraticCurveTo(u,m+d,u,m+d-p),e.lineTo(u,m+p),e.quadraticCurveTo(u,m,u+p,m),e.closePath(),e.fill(),e.fillStyle="#ffffff",e.fillText(t,n,m+d/2)}function xx(e,t,n,r,a){e.font=`600 ${a}px ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial`,e.textBaseline="alphabetic",e.textAlign="left";const s=Math.round(a*1.3);e.shadowColor="rgba(0, 0, 0, 0.85)",e.shadowBlur=Math.max(2,Math.round(a*.25)),e.shadowOffsetX=0,e.shadowOffsetY=1,e.fillStyle="#ffffff",t.forEach((i,l)=>{const c=r-s*(t.length-1-l);e.fillText(i,n,c)}),e.shadowColor="transparent",e.shadowBlur=0,e.shadowOffsetY=0}async function bF(e,t){var b,j,N,A;const n=await hc(e.workingFile),r=await hc(t.workingFile),a=Math.max(n.height,r.height),s=a/n.height,i=a/r.height,l=Math.round(n.width*s),c=Math.round(r.width*i),d=l+c,u=document.createElement("canvas");u.width=d,u.height=a;const m=u.getContext("2d");if(!m)throw(b=n.cleanup)==null||b.call(n),(j=r.cleanup)==null||j.call(r),new Error("Canvas is not supported in this browser.");m.drawImage(n.drawable,0,0,l,a),m.drawImage(r.drawable,l,0,c,a),(N=n.cleanup)==null||N.call(n),(A=r.cleanup)==null||A.call(r);const p=Math.max(28,Math.round(a*.04)),f=Math.round(a*.025);yx(m,"BEFORE",l/2,f,p),yx(m,"AFTER",l+c/2,f,p);const w=Math.max(20,Math.round(a*.028)),y=Math.max(14,Math.round(a*.022)),v=[gx(e.metadata.takenAt)];e.metadata.locationText&&v.unshift(e.metadata.locationText);const x=[gx(t.metadata.takenAt)];t.metadata.locationText&&x.unshift(t.metadata.locationText),xx(m,v,y,a-y,w),xx(m,x,l+y,a-y,w);const g=await new Promise((E,S)=>{u.toBlob(D=>{D?E(D):S(new Error("Unable to generate combined image."))},"image/jpeg",.92)});return URL.createObjectURL(g)}const wF=()=>{const e=re(),[t,n]=h.useState(null),[r,a]=h.useState(null),[s,i]=h.useState(null),[l,c]=h.useState(!1),[d,u]=h.useState(null),[m,p]=h.useState(null),[f,w]=h.useState(!1);h.useEffect(()=>{ce("tool-open",{tool:"before-after-photo"})},[]);const y=h.useRef(t),v=h.useRef(r),x=h.useRef(s);h.useEffect(()=>{y.current=t,v.current=r,x.current=s},[t,r,s]),h.useEffect(()=>()=>{var S,D;(S=y.current)!=null&&S.previewUrl&&URL.revokeObjectURL(y.current.previewUrl),(D=v.current)!=null&&D.previewUrl&&URL.revokeObjectURL(v.current.previewUrl),x.current&&URL.revokeObjectURL(x.current)},[]);const g=!!(t&&r);h.useEffect(()=>{let S=!1;if(!t||!r){s&&(URL.revokeObjectURL(s),i(null));return}return c(!0),u(null),bF(t.prepared,r.prepared).then(D=>
542{if(S){URL.revokeObjectURL(D);return}i(R=>(R&&URL.revokeObjectURL(R),D)),ce("tool-used",{tool:"before-after-photo"}),localStorage.getItem(fx)||(w(!0),localStorage.setItem(fx,"1"))}).catch(()=>{S||u(e("We couldn't combine those photos. Try different images."))}).finally(()=>{S||c(!1)}),()=>{S=!0}},[t,r]);async function b(S,D){if(u(null),p(null),!fF(D)){u(e("Please upload a valid image file."));return}if(D.size>dF){u(e("Please upload an image smaller than 25MB."));return}try{const R=await vF(D),$=URL.createObjectURL(R.workingFile),k={prepared:R,previewUrl:$};S==="before"?n(O=>(O!=null&&O.previewUrl&&URL.revokeObjectURL(O.previewUrl),k)):a(O=>(O!=null&&O.previewUrl&&URL.revokeObjectURL(O.previewUrl),k)),R.conversionNotice&&p(R.conversionNotice)}catch(R){if(ef(D)){const $=R instanceof Error&&R.message?` (${R.message})`:"";u(`${e("We couldn't convert that HEIC file in this browser")}${$}. Try another HEIC, or convert to JPG first.`);return}u(e("We couldn't read that image. Try a different photo."))}}function j(S){S==="before"?(t!=null&&t.previewUrl&&URL.revokeObjectURL(t.previewUrl),n(null)):(r!=null&&r.previewUrl&&URL.revokeObjectURL(r.previewUrl),a(null))}function N(){n(S=>(a(()=>S),r))}const A=!t&&!r,E=h.useMemo(()=>s?`before-after-${new Date().toISOString().replace(/[:.]/g,"-")}.jpg`:"before-after.jpg",[s]);return o.jsxs("div",{className:"min-h-screen bg-background",children:[o.jsx(Ys,{open:f,onOpenChange:w,children:o.jsxs(ka,{className:"max-w-md rounded-2xl p-8",children:[o.jsxs(Ca,{children:[o.jsx("span",{className:"section-eyebrow mb-3",children:e("Get the App")}),o.jsx(Ta,{className:"text-2xl font-bold leading-snug",children:e("Make Before & After photos in one tap")}),o.jsx(Pa,{className:"mt-2 text-base leading-7",children:e("The Timestamp It app captures Before and After right from the camera, organizes them by project, and builds the side-by-side stamp automatically.")})]}),o.jsxs("div",{className:"mt-2 flex flex-col gap-3",children:[o.jsx(Hn,{location:"before-after-overlay",height:56,stacked:!0,onClick:()=>w(!1)}),o.jsx("button",{type:"button",className:"mt-1 text-sm text-muted-foreground hover:text-foreground transition-colors",onClick:()=>w(!1),children:e("No thanks, continue on the web")})]})]})}),o.jsx(Ve,{routeKey:"/before-after-photo"}),o.jsx(Ze,{}),o.jsxs("main",{children:[o.jsx("section",{className:"relative pt-32 pb-14",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"max-w-4xl mx-auto text-center",children:[o.jsx("span",{className:"section-eyebrow",children:e("Free Tool")}),o.jsx("h1",{className:"text-4xl md:text-5xl font-bold tracking-tight mt-4 mb-5",children:e("Before & After Photo Maker")}),o.jsx("p",{className:"section-subtitle",children:e("Upload a Before and After photo. We stamp each with its date and location, then combine them into one labeled side-by-side image you can download.")})]})})}),o.jsx("section",{className:"pb-12",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"max-w-5xl mx-auto panel rounded-3xl p-6 md:p-8",children:[o.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[o.jsx(vx,{slot:"before",label:e("BEFORE"),state:t,onSelect:S=>void b("before",S),onClear:()=>j("before")}),o.jsx(vx,{slot:"after",label:e("AFTER"),state:r,onSelect:S=>void b("after",S),onClear:()=>j("after")})]}),o.jsxs("div",{className:"mt-4 flex flex-wrap items-center justify-center gap-3",children:[o.jsxs(ne,{type:"button",variant:"outline",onClick:N,disabled:A,children:[o.jsx(dI,{className:"w-4 h-4 mr-2"}),e("Swap")]}),o.jsx("p",{className:"text-xs text-muted-foreground",children:e("JPG, PNG, HEIC (if browser-supported), up to 25MB each.")})]}),d&&o.jsx("p",{className:"text-sm text-destructive mt-4 text-center",children:d}),m&&o.jsx("p",{className:"text-sm text-primary mt-4 text-center",children:m}),l&&o.jsx("p",{className:"text-sm text-muted-foreground mt-4 text-center",children:e("Building your Before & After image...")}),g&&o.jsxs("div",{className:"mt-6",children:[o.jsx("h3",{className:"font-semibold mb-2",children:e("Combined Output")}),s?o.jsx("img",{src:s,alt:e("Combined before and after preview"),className:"w-full rounded-xl border border-border/60"}):o.jsx("div",{className:"min-h-[220px] rounded-xl border border-dashed border-border/60 bg-secondary/15 flex items-center justify-center text-muted-foreground text-sm p-4 text-center",children:e(l?"Combining in progress...":"Waiting to combine.")})]}),o.jsx("div",{className:"mt-6 flex flex-wrap gap-3",children:s&&o.jsx(ne,{variant:"outline",asChild:!0,children:o.jsx("a",{href:s,download:E,"data-umami-event":"tool-download","data-umami-event-tool":"before-after-photo",children:e("Download Before & After Image")})})})]})})}),s&&o.jsx("section",{className:"pb-16",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"max-w-5xl mx-auto panel roun
542ded-3xl p-7 md:p-10",children:[o.jsx("span",{className:"section-eyebrow",children:e("Do It Faster In-App")}),o.jsx("h2",{className:"text-3xl md:text-4xl font-bold mt-4 mb-4",children:e("Capture Before & After photos in the field")}),o.jsx("p",{className:"text-muted-foreground text-lg mb-6 max-w-3xl",children:e("The Timestamp It app has a dedicated Before & After mode that captures both photos right from the camera, keeps them grouped by project, and instantly produces a stamped side-by-side image to share.")}),o.jsx(Hn,{location:"before-after-photo",height:56,className:"sm:justify-start"})]})})}),o.jsx("section",{className:"pb-16",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"max-w-5xl mx-auto space-y-6",children:[o.jsxs("div",{className:"panel rounded-2xl p-6 md:p-8",children:[o.jsx("h2",{className:"text-2xl font-semibold mb-4",children:e("How It Works")}),o.jsxs("div",{className:"grid gap-3 text-muted-foreground",children:[o.jsx("p",{children:e("1. Upload a Before photo and an After photo.")}),o.jsx("p",{children:e("2. We read EXIF and stamp each side with its date and location.")}),o.jsx("p",{children:e("3. Download the combined Before & After image.")})]})]}),o.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[o.jsxs("div",{className:"panel rounded-2xl p-6",children:[o.jsx("h3",{className:"text-lg font-semibold mb-2",children:e("Are my photos uploaded anywhere?")}),o.jsx("p",{className:"text-sm text-muted-foreground",children:e("No. Combining and stamping happen entirely in your browser.")})]}),o.jsxs("div",{className:"panel rounded-2xl p-6",children:[o.jsx("h3",{className:"text-lg font-semibold mb-2",children:e("What if a photo has no GPS or date?")}),o.jsx("p",{className:"text-sm text-muted-foreground",children:e("If EXIF is missing, we fall back to file modified time and skip the location line.")})]})]})]})})})]}),o.jsx(et,{})]})};function vx({slot:e,label:t,state:n,onSelect:r,onClear:a}){const s=re(),i=`before-after-upload-${e}`,l=e==="before"?"bg-blue-500/90 text-white":"bg-amber-500/90 text-white";return o.jsxs("div",{onDrop:c=>{var u;c.preventDefault();const d=(u=c.dataTransfer.files)==null?void 0:u[0];d&&r(d)},onDragOver:c=>c.preventDefault(),className:"relative rounded-2xl border border-dashed border-border/70 bg-secondary/20 p-4 text-center min-h-[260px] flex flex-col",children:[o.jsxs("div",{className:"flex items-center justify-between mb-3",children:[o.jsx("span",{className:`inline-flex items-center rounded-full px-3 py-1 text-xs font-bold tracking-wide ${l}`,children:t}),n&&o.jsx("button",{type:"button",onClick:a,"aria-label":s("Remove photo"),className:"text-muted-foreground hover:text-foreground transition-colors",children:o.jsx(Bt,{className:"w-4 h-4"})})]}),n?o.jsx("div",{className:"flex-1 flex items-center justify-center",children:o.jsx("img",{src:n.previewUrl,alt:t,className:"max-h-72 w-auto rounded-lg border border-border/60"})}):o.jsxs("div",{className:"flex-1 flex flex-col items-center justify-center gap-2",children:[o.jsx("p",{className:"font-semibold",children:s(e==="before"?"Drop your Before photo here":"Drop your After photo here")}),o.jsx("p",{className:"text-sm text-muted-foreground",children:s("or choose a file from your device")})]}),o.jsx("input",{id:i,type:"file",accept:"image/*",className:"hidden",onChange:c=>{var u;const d=(u=c.target.files)==null?void 0:u[0];d&&r(d),c.target.value=""}}),o.jsx("div",{className:"mt-3",children:o.jsx(ne,{variant:"outline",asChild:!0,children:o.jsx("label",{htmlFor:i,className:"cursor-pointer",children:s(n?"Replace Photo":"Choose Photo")})})})]})}var pd="Collapsible",[jF,Z2]=sr(pd),[NF,tf]=jF(pd),eN=h.forwardRef((e,t)=>{const{__scopeCollapsible:n,open:r,defaultOpen:a,disabled:s,onOpenChange:i,...l}=e,[c,d]=Lr({prop:r,defaultProp:a??!1,onChange:i,caller:pd});return o.jsx(NF,{scope:n,disabled:s,contentId:Br(),open:c,onOpenToggle:h.useCallback(()=>d(u=>!u),[d]),children:o.jsx(de.div,{"data-state":rf(c),"data-disabled":s?"":void 0,...l,ref:t})})});eN.displayName=pd;var tN="CollapsibleTrigger",nN=h.forwardRef((e,t)=>{const{__scopeCollapsible:n,...r}=e,a=tf(tN,n);return o.jsx(de.button,{type:"button","aria-controls":a.contentId,"aria-expanded":a.open||!1,"data-state":rf(a.open),"data-disabled":a.disabled?"":void 0,disabled:a.disabled,...r,ref:t,onClick:oe(e.onClick,a.onOpenToggle)})});nN.displayName=tN;var nf="CollapsibleContent",rN=h.forwardRef((e,t)=>
542{const{forceMount:n,...r}=e,a=tf(nf,e.__scopeCollapsible);return o.jsx(Co,{present:n||a.open,children:({present:s})=>o.jsx(AF,{...r,ref:t,present:s})})});rN.displayName=nf;var AF=h.forwardRef((e,t)=>{const{__scopeCollapsible:n,present:r,children:a,...s}=e,i=tf(nf,n),[l,c]=h.useState(r),d=h.useRef(null),u=Ae(t,d),m=h.useRef(0),p=m.current,f=h.useRef(0),w=f.current,y=i.open||l,v=h.useRef(y),x=h.useRef(void 0);return h.useEffect(()=>{const g=requestAnimationFrame(()=>v.current=!1);return()=>cancelAnimationFrame(g)},[]),ot(()=>{const g=d.current;if(g){x.current=x.current||{transitionDuration:g.style.transitionDuration,animationName:g.style.animationName},g.style.transitionDuration="0s",g.style.animationName="none";const b=g.getBoundingClientRect();m.current=b.height,f.current=b.width,v.current||(g.style.transitionDuration=x.current.transitionDuration,g.style.animationName=x.current.animationName),c(r)}},[i.open,r]),o.jsx(de.div,{"data-state":rf(i.open),"data-disabled":i.disabled?"":void 0,id:i.contentId,hidden:!y,...s,ref:u,style:{"--radix-collapsible-content-height":p?`${p}px`:void 0,"--radix-collapsible-content-width":w?`${w}px`:void 0,...e.style},children:y&&a})});function rf(e){return e?"open":"closed"}var EF=eN,SF=nN,IF=rN,bn="Accordion",kF=["Home","End","ArrowDown","ArrowUp","ArrowLeft","ArrowRight"],[of,CF,TF]=tp(bn),[fd]=sr(bn,[TF,Z2]),af=Z2(),oN=F.forwardRef((e,t)=>{const{type:n,...r}=e,a=r,s=r;return o.jsx(of.Provider,{scope:e.__scopeAccordion,children:n==="multiple"?o.jsx(MF,{...s,ref:t}):o.jsx(DF,{...a,ref:t})})});oN.displayName=bn;var[aN,PF]=fd(bn),[sN,RF]=fd(bn,{collapsible:!1}),DF=F.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:a=()=>{},collapsible:s=!1,...i}=e,[l,c]=Lr({prop:n,defaultProp:r??"",onChange:a,caller:bn});return o.jsx(aN,{scope:e.__scopeAccordion,value:F.useMemo(()=>l?[l]:[],[l]),onItemOpen:c,onItemClose:F.useCallback(()=>s&&c(""),[s,c]),children:o.jsx(sN,{scope:e.__scopeAccordion,collapsible:s,children:o.jsx(iN,{...i,ref:t})})})}),MF=F.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:a=()=>{},...s}=e,[i,l]=Lr({prop:n,defaultProp:r??[],onChange:a,caller:bn}),c=F.useCallback(u=>l((m=[])=>[...m,u]),[l]),d=F.useCallback(u=>l((m=[])=>m.filter(p=>p!==u)),[l]);return o.jsx(aN,{scope:e.__scopeAccordion,value:i,onItemOpen:c,onItemClose:d,children:o.jsx(sN,{scope:e.__scopeAccordion,collapsible:!0,children:o.jsx(iN,{...s,ref:t})})})}),[_F,gd]=fd(bn),iN=F.forwardRef((e,t)=>{const{__scopeAccordion:n,disabled:r,dir:a,orientation:s="vertical",...i}=e,l=F.useRef(null),c=Ae(l,t),d=CF(n),m=M1(a)==="ltr",p=oe(e.onKeyDown,f=>{var S;if(!kF.includes(f.key))return;const w=f.target,y=d().filter(D=>{var R;return!((R=D.ref.current)!=null&&R.disabled)}),v=y.findIndex(D=>D.ref.current===w),x=y.length;if(v===-1)return;f.preventDefault();let g=v;const b=0,j=x-1,N=()=>{g=v+1,g>j&&(g=b)},A=()=>{g=v-1,g<b&&(g=j)};switch(f.key){case"Home":g=b;break;case"End":g=j;break;case"ArrowRight":s==="horizontal"&&(m?N():A());break;case"ArrowDown":s==="vertical"&&N();break;case"ArrowLeft":s==="horizontal"&&(m?A():N());break;case"ArrowUp":s==="vertical"&&A();break}const E=g%x;(S=y[E].ref.current)==null||S.focus()});return o.jsx(_F,{scope:n,disabled:r,direction:a,orientation:s,children:o.jsx(of.Slot,{scope:n,children:o.jsx(de.div,{...i,"data-orientation":s,ref:c,onKeyDown:r?void 0:p})})})}),mc="AccordionItem",[BF,sf]=fd(mc),lN=F.forwardRef((e,t)=>{const{__scopeAccordion:n,value:r,...a}=e,s=gd(mc,n),i=PF(mc,n),l=af(n),c=Br(),d=r&&i.value.includes(r)||!1,u=s.disabled||e.disabled;return o.jsx(BF,{scope:n,open:d,disabled:u,triggerId:c,children:o.jsx(EF,{"data-orientation":s.orientation,"data-state":pN(d),...l,...a,ref:t,disabled:u,open:d,onOpenChange:m=>{m?i.onItemOpen(r):i.onItemClose(r)}})})});lN.displayName=mc;var cN="AccordionHeader",dN=F.forwardRef((e,t)=>{const{__scopeAccordion:n,...r}=e,a=gd(bn,n),s=sf(cN,n);return o.jsx(de.h3,{"data-orientation":a.orientation,"data-state":pN(s.open),"data-disabled":s.disabled?"":void 0,...r,ref:t})});dN.displayName=cN;var nm="AccordionTrigger",uN=F.forwardRef((e,t)=>{const{__scopeAccordion:n,...r}=e,a=gd(bn,n),s=sf(nm,n),i=RF(nm,n),l=af(n);return o.jsx(of.ItemSlot,{scope:n,children:o.jsx(SF,{"aria-disabled":s.open&&!i.collapsible||void 0,"data-orientation":a.orientation,id:s.triggerId,...l,...r,ref:t})})});uN.displayName=nm;var hN="AccordionContent",mN=F.forwardRef((e,t)=>
542{const{__scopeAccordion:n,...r}=e,a=gd(bn,n),s=sf(hN,n),i=af(n);return o.jsx(IF,{role:"region","aria-labelledby":s.triggerId,"data-orientation":a.orientation,...i,...r,ref:t,style:{"--radix-accordion-content-height":"var(--radix-collapsible-content-height)","--radix-accordion-content-width":"var(--radix-collapsible-content-width)",...e.style}})});mN.displayName=hN;function pN(e){return e?"open":"closed"}var OF=oN,FF=lN,LF=dN,fN=uN,gN=mN;const yd=OF,yi=h.forwardRef(({className:e,...t},n)=>o.jsx(FF,{ref:n,className:ke("border-b",e),...t}));yi.displayName="AccordionItem";const xi=h.forwardRef(({className:e,children:t,...n},r)=>o.jsx(LF,{className:"flex",children:o.jsxs(fN,{ref:r,className:ke("flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",e),...n,children:[t,o.jsx(gn,{className:"h-4 w-4 shrink-0 transition-transform duration-200"})]})}));xi.displayName=fN.displayName;const vi=h.forwardRef(({className:e,children:t,...n},r)=>o.jsx(gN,{ref:r,className:"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",...n,children:o.jsx("div",{className:ke("pb-4 pt-0",e),children:t})}));vi.displayName=gN.displayName;const fu="/assets/gigstamper-icon-3BK8d_i0.jpg",HF="/assets/gigstamper-app-Cd1x3Aiw.webp",bx="https://apps.apple.com/us/app/gigstamper-by-timestamp-it/id6757725201",UF="https://play.google.com/store/apps/details?id=com.shabzco.gigstamper",zF="https://gigstamper.com",wx=250/84,$F=236/70,GF=[{icon:Aa,title:"GPS location stamp",body:"Exact coordinates are embedded on every photo, so there is no argument about where the job was completed."},{icon:zw,title:"Accurate timestamps",body:"Date and time are synced with official servers rather than the phone clock, so the record holds up later."},{icon:vI,title:"Cloud backup",body:"Photos back up and sync automatically, so a lost or replaced phone does not take the proof with it."},{icon:qI,title:"Works offline",body:"Parking garages, basements, rural routes. Stamp offline and everything syncs once you have signal again."},{icon:ii,title:"Private by default",body:"Uploads are encrypted in transit, and the photos stay yours. No ads and no resale of your activity."},{icon:YI,title:"One-tap capture",body:"Open, tap, done. Built for people who are being timed and cannot stop to fill out a form."}],QF=[{icon:hI,label:"Rideshare",body:"Document pickups and drop-offs"},{icon:QI,label:"Food delivery",body:"Prove delivery completion"},{icon:BI,label:"Package delivery",body:"Track every handoff"},{icon:XI,label:"Home services",body:"Before and after proof"},{icon:UI,label:"Grocery shopping",body:"Document substitutions"},{icon:Qw,label:"Property inspection",body:"Timestamped reports"}],WF=[{title:"Open and snap",body:"Launch GigStamper and photograph the completed drop-off, job site, or finished work."},{title:"Auto-stamp",body:"GPS coordinates and the timestamp are burned into the image itself, visible right on the photo."},{title:"Save and sync",body:"The photo is stored on the device and backed up to the cloud, so you can pull it up whenever it is questioned."}],qF=()=>{const e=re(),t=qe();return o.jsxs("div",{className:"min-h-screen bg-background",children:[o.jsx(Ve,{routeKey:"/gigstamper"}),o.jsx(Ze,{}),o.jsxs("main",{children:[o.jsxs("section",{className:"relative overflow-hidden pt-32 pb-16 lg:pb-24",children:[o.jsx("div",{className:"absolute inset-0 hero-gradient pointer-events-none"}),o.jsx("div",{className:"container relative z-10",children:o.jsxs("div",{className:"grid items-center gap-12 lg:grid-cols-2",children:[o.jsxs("div",{children:[o.jsx("span",{className:"section-eyebrow",children:e("Companion app")}),o.jsx("h1",{className:"mt-4 text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl",children:e("GigStamper")}),o.jsx("p",{className:"mt-5 text-lg leading-relaxed text-foreground/75",children:e("GigStamper is our app for gig workers. It is the same timestamp-and-location stamping idea behind Timestamp It, stripped down to one job: capturing proof that a delivery, ride, or task actually happened, fast enough to use mid-shift.")}),o.jsxs("div",{className:"mt-8 flex flex-wrap items-center gap-4",children:[o.jsx("a",{href:bx,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center transition-transform duration-300 hover:scale-[1.02] active:scale-[0.98]",style:{height:56},"data-umami-event":"download-click","data-umami-event-platform":"ios","data-umami-event-location":"gigstamper-hero","data-umami-event-target":"gigstamper","aria-label":e("Download on the App Store"),children:o.jsx("img",{src:Wh,alt:e("Download on the App Store"),width:Math.round(56*wx),height:56,className:"h-full w-auto",decoding:"async",fetchpriority:"high"})}),o.jsx("a",{href:UF,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center transition-transform duration-300 hover:scale-[1.02] active:scale-[0.98]",style:{height:56},"data-umami-event":"download-click","data-umami-event-platform":"android","data-umami-event-location":"gigstamper-hero","data-umami-event-target":"gigstamper","aria-label":e("Get it on Google Play"),children:o.jsx("img",{src:Uj,alt:e("Get it on Google Play"),width:Math.round(56*$F),height:56,className:"h-full w-auto",decoding:"async"})}),o.jsx(ne,{variant:"outline",size:"lg",asChild:!0,children:o.jsxs("a",{href:zF,target:"_blank",rel:"noopener noreferrer",children:[e("Visit gigstamper.com"),o.jsx($w,{className:"ml-2 h-4 w-4"})]})})]}),o.jsx("p",{className:"mt-4 text-sm text-muted-foreground",children:e("Free to download on iPhone and Android.")})]}),o.jsx("div",{className:"flex justify-center lg:justify-end",children:o.jsxs("div",{className:"relative",children:[o.jsx("div",{className:"w-56 overflow-hidden rounded-[1.75rem] border-[6px] border-slate-900 bg-slate-900 shadow-2xl dark:border-slate-700 dark:bg-slate-700 sm:w-64 md:rounded-[2.25rem] md:border-[8px]",children:o.jsx("img",{src:HF,alt:e("GigStamper capturing a delivery photo with the address, coordinates, and time stamped on it"),className:"h-auto w-full",decoding:"async"})}
542),o.jsx("img",{src:fu,alt:"","aria-hidden":!0,className:"absolute -bottom-5 -left-5 h-20 w-20 rounded-2xl border border-border/60 shadow-lg"})]})})]})})]}),o.jsx("section",{className:"border-y border-border/60 bg-muted/30",children:o.jsx("div",{className:"container py-16 md:py-20",children:o.jsxs("div",{className:"mx-auto max-w-3xl text-center",children:[o.jsx("span",{className:"section-eyebrow",children:e("Why it exists")}),o.jsx("h2",{className:"section-title",children:e('"The customer says I never delivered."')}),o.jsx("p",{className:"section-subtitle",children:e("Gig work runs on other people's records. A false claim, a missing-item report, or a disputed drop-off lands on the worker, and a plain photo rarely settles it because it carries no proof of when or where it was taken. GigStamper puts that evidence into the picture at the moment of capture.")})]})})}),o.jsx("section",{className:"section-shell",children:o.jsxs("div",{className:"container",children:[o.jsxs("div",{className:"mx-auto mb-14 max-w-2xl text-center",children:[o.jsx("span",{className:"section-eyebrow",children:e("What's inside")}),o.jsx("h2",{className:"section-title",children:e("Built for one-handed use")}),o.jsx("p",{className:"section-subtitle",children:e("Everything is tuned for speed, because the photo has to happen between one stop and the next.")})]}),o.jsx("div",{className:"grid gap-6 sm:grid-cols-2 lg:grid-cols-3",children:GF.map(n=>o.jsxs("article",{className:"panel rounded-2xl p-6",children:[o.jsx("div",{className:"mb-4 inline-flex h-12 w-12 items-center justify-center rounded-xl border border-primary/30 bg-primary/10 text-primary",children:o.jsx(n.icon,{className:"h-6 w-6"})}),o.jsx("h3",{className:"mb-2 text-lg font-semibold",children:e(n.title)}),o.jsx("p",{className:"text-muted-foreground",children:e(n.body)})]},n.title))})]})}),o.jsx("section",{className:"section-shell pt-0",children:o.jsxs("div",{className:"container",children:[o.jsxs("div",{className:"mx-auto mb-14 max-w-2xl text-center",children:[o.jsx("span",{className:"section-eyebrow",children:e("Who it's for")}),o.jsx("h2",{className:"section-title",children:e("Every kind of gig")})]}),o.jsx("div",{className:"grid gap-6 sm:grid-cols-2 lg:grid-cols-3",children:QF.map(n=>
542o.jsxs("article",{className:"panel flex items-start gap-4 rounded-2xl p-6",children:[o.jsx("div",{className:"inline-flex h-11 w-11 shrink-0 items-center justify-center rounded-xl border border-primary/30 bg-primary/10 text-primary",children:o.jsx(n.icon,{className:"h-5 w-5"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold",children:e(n.label)}),o.jsx("p",{className:"text-sm text-muted-foreground",children:e(n.body)})]})]},n.label))})]})}),o.jsx("section",{className:"section-shell pt-0",children:o.jsxs("div",{className:"container",children:[o.jsxs("div",{className:"mx-auto mb-14 max-w-2xl text-center",children:[o.jsx("span",{className:"section-eyebrow",children:e("How it works")}),o.jsx("h2",{className:"section-title",children:e("Three taps, start to proof")})]}),o.jsx("div",{className:"grid gap-6 md:grid-cols-3",children:WF.map((n,r)=>o.jsxs("article",{className:"panel rounded-2xl p-8 text-center",children:[o.jsx("div",{className:"mx-auto mb-5 inline-flex h-14 w-14 items-center justify-center rounded-full bg-primary text-xl font-bold text-primary-foreground shadow-lg",children:r+1}),o.jsx("h3",{className:"mb-2 text-lg font-semibold",children:e(n.title)}),o.jsx("p",{className:"text-muted-foreground",children:e(n.body)})]},n.title))})]})}),o.jsx("section",{className:"section-shell pt-0",children:o.jsxs("div",{className:"container",children:[o.jsxs("div",{className:"mx-auto mb-14 max-w-2xl text-center",children:[o.jsx("span",{className:"section-eyebrow",children:e("Which one do I want?")}),o.jsx("h2",{className:"section-title",children:e("GigStamper or Timestamp It")}),o.jsx("p",{className:"section-subtitle",children:e("Both stamp the time, date, and location onto a photo. They differ in what happens to the photo afterwards.")})]}),o.jsxs("div",{className:"mx-auto grid max-w-4xl gap-6 md:grid-cols-2",children:[o.jsxs("article",{className:"panel rounded-2xl p-8",children:[o.jsxs("div",{className:"mb-4 flex items-center gap-3",children:[o.jsx("img",{src:fu,alt:"","aria-hidden":!0,className:"h-11 w-11 rounded-xl"}),o.jsx("h3",{className:"text-xl font-semibold",children:e("GigStamper")})]}),o.jsx("p",{className:"mb-4 text-muted-foreground",children:e("For one person protecting their own record. Capture is the whole workflow: snap the proof, keep it backed up, pull it up if a claim comes in.")}),o.jsx("p",{className:"text-sm text-muted-foreground",children:e("Best for drivers, shoppers, couriers, and solo taskers.")})]}),o.jsxs("article",{className:"panel rounded-2xl p-8",children:[o.jsxs("div",{className:"mb-4 flex items-center gap-3",children:[o.jsx("div",{className:"inline-flex h-11 w-11 items-center justify-center rounded-xl border border-primary/30 bg-primary/10 text-primary",children:o.jsx(Dc,{className:"h-5 w-5"})}),o.jsx("h3",{className:"text-xl font-semibold",children:e("Timestamp It")})]}),o.jsx("p",{className:"mb-4 text-muted-foreground",children:e("For work that has to be handed to someone else. Photos group into projects you can batch-stamp, share by link, hand to a client as a PDF, and collaborate on with a team.")}),o.jsx("p",{className:"text-sm text-muted-foreground",children:e("Best for crews, inspectors, contractors, and property teams.")})]})]}),o.jsx("div",{className:"mt-10 text-center",children:o.jsx(ne,{variant:"outline",asChild:!0,children:o.jsx("a",{href:t("/download"),children:e("Get Timestamp It instead")})})})]})}),o.jsx("section",{className:"section-shell pt-0",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"mx-auto max-w-3xl",children:[o.jsxs("div",{className:"text-center",children:[o.jsx("span",{className:"section-eyebrow",children:e("FAQ")}),o.jsx("h2",{className:"section-title",children:e("Frequently asked")})]}),o.jsx("div",{className:"panel mt-10 rounded-3xl p-4 md:p-6",children:o.jsx(yd,{type:"single",collapsible:!0,children:Mj.map((n,r)=>o.jsxs(yi,{value:`faq-${r}`,className:"border-border/60 last:border-b-0",children:[o.jsx(xi,{className:"text-left text-base font-semibold md:text-lg",children:e(n.q)}),o.jsx(vi,{className:"text-sm leading-7 text-muted-foreground md:text-[15px]",children:e(n.a)})]},n.q))})})]})})}),o.jsxs("section",{className:"section-shell relative overflow-hidden pt-0",children:[o.jsx("div",{className:"absolute inset-0 hero-gradient pointer-events-none"}),o.jsx("div",{className:"container relative z-10",children:o.jsxs("div",{className:"home-cta-shell mx-auto max-w-3xl text-center",children:[o.jsx("img",{src:fu,alt:"GigStamper",className:"mx-auto mb-6 h-20 w-20 rounded-2xl shadow-lg"}),o.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:e("Start documenting your shifts")}),o.jsx("p",{className:"mx-auto mb-8 max-w-xl text-lg text-foreground
542/75",children:e("Free to download, no account required, and it works without a signal.")}),o.jsx("div",{className:"flex justify-center",children:o.jsx("a",{href:bx,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center transition-transform duration-300 hover:scale-[1.02] active:scale-[0.98]",style:{height:64},"data-umami-event":"download-click","data-umami-event-platform":"ios","data-umami-event-location":"gigstamper-cta","data-umami-event-target":"gigstamper","aria-label":e("Download on the App Store"),children:o.jsx("img",{src:Wh,alt:e("Download on the App Store"),width:Math.round(64*wx),height:64,className:"h-full w-auto",loading:"lazy",decoding:"async"})})})]})})]})]}),o.jsx(et,{})]})},jx=e=>e.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g,""),Nx=e=>{const t=document.getElementById(e);return t instanceof HTMLDetailsElement&&(t.open=!0),t},VF=()=>{const e=re(),{toast:t}=dw(),[n,r]=h.useState(""),[a,s]=h.useState(null),i=h.useMemo(()=>O4(e),[e]),l=h.useMemo(()=>ia.reduce((w,y)=>w+y.items.length,0),[]),c=h.useMemo(()=>{const w=jx(n.trim());return ia.map(y=>({section:y,items:w?y.items.filter(v=>jx(`${e(y.heading)} ${e(v.title)} ${e(v.body)}`).includes(w)):y.items})).filter(y=>y.items.length>0)},[n,e]),d=c.reduce((w,y)=>w+y.items.length,0),u=n.trim().length>0,m=c.flatMap(w=>w.items.map(y=>ms(w.section.heading,y.title))).join("|"),p=c.map(w=>Nl(w.section.heading)).join("|"),f=async w=>{if(typeof window>"u")return;const y=`${window.location.origin}${window.location.pathname}#${w}`;try{await navigator.clipboard.writeText(y),window.history.replaceState(null,"",`#${w}`),t({title:e("Link copied"),description:e("The help item link is ready to paste.")})}catch{t({title:e("Couldn't copy link"),description:e("Copying to the clipboard isn't available in this browser."),variant:"destructive"})}};return h.useEffect(()=>{const w=()=>{const y=M4(window.location.hash.slice(1));if(!y||!ia.some(g=>g.items.some(b=>ms(g.heading,b.title)===y)))return;const x=Nx(y);x&&window.requestAnimationFrame(()=>{x.scrollIntoView({behavior:"smooth",block:"start"})})};return w(),window.addEventListener("hashchange",w),()=>window.removeEventListener("hashchange",w)},[]),h.useEffect(()=>{!u||!m||m.split("|").forEach(Nx)},[u,m]),h.useEffect(()=>{const w=(p?p.split("|"):[]).map(v=>document.getElementById(v)).filter(v=>v!==null);if(w.length===0){s(null);return}const y=new IntersectionObserver(v=>{const x=v.filter(g=>g.isIntersecting).sort((g,b)=>g.boundingClientRect.top-b.boundingClientRect.top);x[0]&&s(x[0].target.id)},{rootMargin:"-120px 0px -55% 0px",threshold:0});return w.forEach(v=>y.observe(v)),()=>y.disconnect()},[p]),o.jsxs("div",{className:"min-h-screen bg-background",children:[o.jsx(Ve,{routeKey:"/how-it-works"}),o.jsx(Ze,{}),o.jsxs("main",{children:[o.jsxs("section",{className:"relative overflow-hidden pt-32 pb-10",children:[o.jsx("div",{className:"absolute inset-x-0 top-0 -z-10 h-full bg-[radial-gradient(circle_at_top,hsl(var(--primary)/0.14),transparent_55%)]"}),o.jsx("div",{className:"container",children:o.jsxs("div",{className:"mx-auto max-w-3xl text-center",children:[o.jsx("span",{className:"section-eyebrow",children:e("Help")}),o.jsx("h1",{className:"mt-4 text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl",children:e("How Timestamp It works")}),o.jsx("p",{className:"section-subtitle mt-6",children:e("Help for both the iPhone and Android apps, organized for the web so people can quickly find answers about stamping, projects, teams, invites, sync, and subscriptions.")}),o.jsxs("div",{className:"mx-auto mt-8 max-w-xl",children:[o.jsx("label",{htmlFor:"help-search",className:"sr-only",children:e("Search")}),o.jsxs("div",{className:"relative",children:[o.jsx(ip,{className:"pointer-events-none absolute left-4 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),o.jsx("input",{id:"help-search",type:"search",value:n,onChange:w=>r(w.target.value),placeholder:e("Search help topics"),autoComplete:"off",className:"h-12 w-full rounded-full border border-border/60 bg-background/80 pl-11 pr-11 text-sm outline-none transition-colors placeholder:text-muted-foreground focus:border-primary/40 [&::-webkit-search-cancel-button]:hidden"}),u?o.jsx("button",{type:"button",onClick:()=>r(""),"aria-label":e("Clear search"),className:"absolute right-3 top-1/2 flex h-7 w-7 -translate-y-1/2 items-center justify-center rounded-full text-muted-foreground transition-colors hover:bg-secondary hover:text-foreground",children:o.jsx(Bt,{className:"h-4 w-4"})}):null]}),o.jsx("p",{className:"mt-3 text-xs text-muted-foreground","aria-live":"polite",children:u?e("{count, plural, one {# matching topic} other {# matching topics}}",{count:d}):e("{count, plural, one {# topic} other {# topics}}",{count:l})})]}),c.length>0?o.jsx("nav",{"aria-label":e("On this page"),className:"mt-6 flex flex-wrap justify-center gap-2",children:c.map(({section:w})=>{const y=Nl(w.heading),v=a===y;return o.jsx("a",{href:`#${y}`,className:`rounded-full border px-3 py-1 text-xs font-medium transition-colors ${v?"border-primary/40 bg-primary/10 text-primary":"border-border/60 text-muted-foreground hover:border-primary/30 hover:text-foreground"}`,children:e(w.heading)},w.heading)})}):null]})})]}),o.jsx("section",{className:"section-shell pt-4",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"mx-auto max-w-3xl space-y-6",children:[u?null:o.jsxs("section",{className:"panel roun
542ded-3xl border-primary/20 p-6 md:p-8",children:[o.jsx("h2",{className:"mb-4 border-b border-border/60 pb-4 text-xl font-semibold tracking-tight md:text-2xl",children:e("Common questions")}),B4.map(({question:w,section:y,item:v},x)=>{var j;const g=v.icon,b=ms(y,v.title);return o.jsxs("details",{id:`faq-${b}`,className:`group/item border-border/60 ${x>0?"border-t":""}`,children:[o.jsxs("summary",{className:"flex cursor-pointer list-none items-center gap-3 py-4 text-left [&::-webkit-details-marker]:hidden",children:[o.jsx("span",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-xl border border-primary/20 bg-primary/10 text-primary",children:o.jsx(g,{className:"h-4 w-4"})}),o.jsx("span",{className:"flex-1 pr-4 text-base font-medium leading-6",children:e(w)}),o.jsx(gn,{className:"h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200 group-open/item:rotate-180"})]}),o.jsxs("div",{className:"space-y-4 pb-5 pl-12",children:[o.jsx("p",{className:"whitespace-pre-line text-sm leading-7 text-muted-foreground",children:e(v.body)}),(j=v.actions)!=null&&j.length?o.jsx("div",{className:"flex flex-wrap gap-3",children:v.actions.map(N=>o.jsx(ne,{variant:"outline",size:"sm",asChild:!0,children:o.jsx("a",{href:N.url,target:"_blank",rel:"noopener noreferrer","data-umami-event":"help-action-click","data-umami-event-action":N.title,children:e(N.title)})},N.url))}):null]})]},b)})]}),c.length===0?o.jsxs("div",{className:"panel rounded-3xl p-8 text-center",children:[o.jsx("p",{className:"text-base font-semibold",children:e("No topics match your search.")}),o.jsx("p",{className:"mt-2 text-sm text-muted-foreground",children:e("Try a different word, or clear the search to browse every section.")}),o.jsx(ne,{variant:"outline",className:"mt-6",onClick:()=>r(""),children:e("Clear search")})]}):null,c.map(({section:w,items:y})=>o.jsxs("section",{id:Nl(w.heading),className:"panel scroll-mt-28 rounded-3xl p-6 md:p-8",children:[o.jsx("h2",{className:"mb-4 border-b border-border/60 pb-4 text-xl font-semibold tracking-tight md:text-2xl",children:e(w.heading)}),y.map((v,x)=>{var j;const g=v.icon,b=ms(w.heading,v.title);return o.jsxs("details",{id:b,className:`group/item relative scroll-mt-28 border-border/60 ${x>0?"border-t":""}`,children:[o.jsxs("summary",{className:"flex cursor-pointer list-none items-center gap-3 py-4 text-left [&::-webkit-details-marker]:hidden",children:[o.jsx("span",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-xl border border-primary/20 bg-primary/10 text-primary",children:o.jsx(g,{className:"h-4 w-4"})}),o.jsx("span",{className:"flex-1 pr-10 text-base font-medium leading-6",children:e(v.title)}),o.jsx(gn,{className:"h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200 group-open/item:rotate-180"})]}),o.jsx("button",{type:"button",onClick:()=>f(b),"aria-label":e("Copy link to this topic"),className:"absolute right-7 top-4 flex h-8 w-8 items-center justify-center rounded-full text-muted-foreground opacity-0 transition-opacity hover:bg-primary/10 hover:text-primary focus-visible:opacity-100 group-hover/item:opacity-100",children:o.jsx(Mc,{className:"h-4 w-4"})}),o.jsxs("div",{className:"space-y-4 pb-5 pl-12",children:[o.jsx("p",{className:"whitespace-pre-line text-sm leading-7 text-muted-foreground",children:e(v.body)}),(j=v.actions)!=null&&j.length?o.jsx("div",{className:"flex flex-wrap gap-3",children:v.actions.map(N=>o.jsx(ne,{variant:"outline",size:"sm",asChild:!0,children:o.jsx("a",{href:N.url,target:"_blank",rel:"noopener noreferrer","data-umami-event":"help-action-click","data-umami-event-action":N.title,children:e(N.title)})},N.url))}):null]})]},b)})]},w.heading))]})})})]}),o.jsx(et,{}),o.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(i)}})]})};function rl({value:e,positive:t}){const n=re();return typeof e=="boolean"?e?o.jsx(tr,{className:`h-5 w-5 ${t?"text-primary":"text-muted-foreground"}`}):o.jsx(_I,{className:"h-5 w-5 text-muted-foreground/60"}):o.jsx("span",{className:`text-sm leading-6 ${t?"font-semibold text-foreground":"text-muted-foreground"}`,children:n(e)})}const XF=({routeKey:e})=>{const t=re(),n=qe(),a=pi().slug??"",s=kM[a];if(!s)return o.jsx(Cp,{to:"/",replace:!0});const i=e??`/compare/${s.slug}`,l=s.testimonials??[],c=l.length===1?"max-w-xl":l.length===2?"max-w-4xl sm:grid-cols-2":"max-w-6xl lg:grid-cols-3";return o.jsxs("div",{className:"min-h-screen bg-background",children:[o.jsx(Ve,{routeKey:i}
542),o.jsx(Ze,{}),o.jsxs("main",{children:[o.jsxs("section",{className:"relative overflow-hidden pt-32 pb-16",children:[o.jsx("div",{className:"absolute inset-x-0 top-0 -z-10 h-full bg-[radial-gradient(circle_at_top,hsl(var(--primary)/0.14),transparent_55%)]"}),o.jsxs("div",{className:"container",children:[o.jsxs("div",{className:"mx-auto max-w-4xl text-center",children:[o.jsx("span",{className:"section-eyebrow",children:t(s.hero.eyebrow)}),o.jsx("h1",{className:"mt-4 text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl",children:t(s.hero.h1)}),o.jsx("p",{className:"section-subtitle mt-6",children:t(s.hero.intro)}),o.jsxs("div",{className:"mt-8 flex flex-wrap items-center justify-center gap-3",children:[o.jsx(ne,{variant:"hero",size:"lg",asChild:!0,children:o.jsx("a",{href:n("/download"),"data-umami-event":"cta-click","data-umami-event-location":`compare-${s.slug}-hero`,"data-umami-event-target":"download",children:t("Start for free")})}),o.jsx(ne,{variant:"outline",size:"lg",asChild:!0,children:o.jsx("a",{href:"#comparison",children:t("See the comparison")})})]}),o.jsxs("div",{className:"mt-8 flex flex-wrap items-center justify-center gap-x-6 gap-y-3 text-sm text-muted-foreground",children:[o.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[o.jsx(Hr,{className:"h-4 w-4 fill-yellow-400 text-yellow-400"}),o.jsx("strong",{className:"text-foreground",children:`${Ga}/5`})," ",t("on the App Store")]}),o.jsx("span",{children:t("Trusted by 700K+ field pros")}),o.jsx("span",{children:t("iPhone, Android & web")})]}),o.jsx(Hn,{location:`compare-${s.slug}-hero`,height:48,className:"mt-8"})]}),s.competitorContextLine&&o.jsx("p",{className:"mx-auto mt-10 max-w-3xl text-center text-sm text-muted-foreground/80",children:t(s.competitorContextLine)})]})]}),o.jsx("section",{className:"section-shell",children:o.jsxs("div",{className:"container",children:[o.jsxs("div",{className:"mx-auto max-w-3xl text-center",children:[o.jsx("span",{className:"section-eyebrow",children:t("Why Timestamp It")}),o.jsx("h2",{className:"section-title",children:t("Built for field crews â not retrofitted from generic software")})]}),o.jsx("div",{className:"mx-auto mt-12 grid max-w-6xl gap-5 sm:grid-cols-2 lg:grid-cols-4",children:s.whyBlocks.map(d=>o.jsxs("div",{className:"panel rounded-3xl p-6",children:[o.jsx("h3",{className:"text-lg font-semibold tracking-tight",children:t(d.title)}),o.jsx("p",{className:"mt-3 text-sm leading-6 text-muted-foreground",children:t(d.body)})]},d.title))})]})}),o.jsx("section",{className:"section-shell pt-0",children:o.jsxs("div",{className:"container",children:[o.jsxs("div",{className:"mx-auto max-w-3xl text-center",children:[o.jsx("span",{className:"section-eyebrow",children:t("Get started")}),o.jsx("h2",{className:"section-title",children:t("Super easy to get started")})]}),o.jsx("div",{className:"mx-auto mt-12 grid max-w-6xl gap-5 lg:grid-cols-3",children:s.steps.map(d=>o.jsxs("div",{className:"panel rounded-3xl p-7",children:[o.jsx("span",{className:"text-sm font-mono font-semibold text-primary",children:d.label}),o.jsx("h3",{className:"mt-3 text-xl font-semibold tracking-tight",children:t(d.title)}),o.jsx("p",{className:"mt-3 text-sm leading-6 text-muted-foreground",children:t(d.body)})]},d.label))})]})}),s.pricingRows&&s.pricingHeadline&&s.pricingSubheadline&&o.jsx("section",{id:"pricing",className:"section-shell pt-0",children:o.jsxs("div",{className:"container",children:[o.jsxs("div",{className:"mx-auto max-w-3xl text-center",children:[o.jsx("span",{className:"section-eyebrow",children:t("Pricing")}),o.jsx("h2",{className:"section-title",children:t(s.pricingHeadline)}),o.jsx("p",{className:"section-subtitle",children:t(s.pricingSubheadline)})]}),o.jsxs("div",{className:"mx-auto mt-12 max-w-4xl overflow-hidden rounded-3xl panel",children:[o.jsxs("div",{className:"grid grid-cols-3 border-b border-border/60 bg-secondary/40 px-6 py-4 text-sm font-semibold uppercase tracking-[0.16em] text-muted-foreground",children:[o.jsx("span",{children:t("Feature")}),o.jsx("span",{className:"text-center text-primary",children:"Timestamp It"}),o.jsx("span",{className:"text-center",children:s.competitorName})]}),s.pricingRows.map((d,u)=>o.jsxs("div",{className:`grid grid-cols-3 items-center px-6 py-4 ${u%2===0?"bg-background/40":""}`,children:[o.jsx("span",{className:"text-sm font-medium text-foreground",children:t(d.label)}),o.jsx("div",{className:"flex justify-center text-center",children:o.jsx(rl,{value:d.us,positive:!0})}),o.jsx("div",{className:"flex justify-center text-center",children:o.jsx(rl,{value:d.them,positive:!1})})]},d.label))]})]})}),o.jsx("section",{className:"section-shell pt-0",children:o.jsx("div",{className:"container",children:o.jsx("div",{className:"mx-auto max-w-6xl space-y-10",children:s.deepDive.map((d,u)=>
542o.jsxs("div",{className:`panel rounded-3xl p-8 md:p-10 grid gap-8 lg:grid-cols-[1.1fr_1fr] ${u%2===1?"lg:[&>:first-child]:order-2":""}`,children:[o.jsxs("div",{children:[o.jsx("span",{className:"section-eyebrow",children:t("Feature")}),o.jsx("h3",{className:"mt-3 text-2xl font-semibold tracking-tight md:text-3xl",children:t(d.title)}),o.jsx("p",{className:"mt-4 text-base leading-7 text-muted-foreground",children:t(d.body)}),o.jsx(ne,{variant:"hero",size:"lg",className:"mt-6",asChild:!0,children:o.jsx("a",{href:n("/download"),"data-umami-event":"cta-click","data-umami-event-location":`compare-${s.slug}-deepdive`,children:t("Get started free")})})]}),o.jsx("ul",{className:"space-y-3",children:d.bullets.map(m=>o.jsxs("li",{className:"flex items-start gap-3",children:[o.jsx("span",{className:"mt-0.5 flex h-6 w-6 shrink-0 items-center justify-center rounded-full bg-primary/10 text-primary",children:o.jsx(tr,{className:"h-3.5 w-3.5"})}),o.jsx("span",{className:"text-sm leading-6 text-foreground/90",children:t(m)})]},m))})]},d.title))})})}),o.jsx("section",{className:"section-shell pt-0",children:o.jsxs("div",{className:"container",children:[o.jsxs("div",{className:"mx-auto max-w-3xl text-center",children:[o.jsx("span",{className:"section-eyebrow",children:t("Who switches")}),o.jsx("h2",{className:"section-title",children:t("Why crews switch from {competitor}",{competitor:s.competitorName})})]}),o.jsx("div",{className:"mx-auto mt-12 grid max-w-6xl gap-5 lg:grid-cols-3",children:s.useCases.map(d=>o.jsxs("div",{className:"panel rounded-3xl p-7",children:[o.jsx("h3",{className:"text-lg font-semibold tracking-tight",children:t(d.title)}),o.jsx("p",{className:"mt-3 text-sm leading-6 text-muted-foreground",children:t(d.body)})]},d.title))})]})}),o.jsx("section",{id:"comparison",className:"section-shell pt-0",children:o.jsxs("div",{className:"container",children:[o.jsxs("div",{className:"mx-auto max-w-3xl text-center",children:[o.jsx("span",{className:"section-eyebrow",children:t("Comparison")}),o.jsx("h2",{className:"section-title",children:t(s.matrix.headline)})]}),o.jsxs("div",{className:"mx-auto mt-12 max-w-5xl overflow-hidden rounded-3xl panel",children:[o.jsxs("div",{className:"grid grid-cols-3 border-b border-border/60 bg-secondary/40 px-6 py-4 text-sm font-semibold uppercase tracking-[0.16em] text-muted-foreground",children:[o.jsx("span",{children:t("Feature")}),o.jsx("span",{className:"text-center text-primary",children:"Timestamp It"}),o.jsx("span",{className:"text-center",children:s.competitorName})]}),s.matrix.sections.map(d=>o.jsxs("div",{children:[o.jsx("div",{className:"border-y border-border/60 bg-secondary/20 px-6 py-3 text-xs font-semibold uppercase tracking-[0.18em] text-primary",children:t(d.heading)}),d.rows.map((u,m)=>o.jsxs("div",{className:`grid grid-cols-3 items-center px-6 py-4 ${m%2===0?"bg-background/40":""}`,children:[o.jsx("span",{className:"text-sm font-medium text-foreground",children:t(u.label)}),o.jsx("div",{className:"flex justify-center text-center",children:o.jsx(rl,{value:u.us,positive:!0})}),o.jsx("div",{className:"flex justify-center text-center",children:o.jsx(rl,{value:u.them,positive:!1})})]},u.label))]},d.heading))]})]})}),l.length>0&&o.jsx("section",{className:"section-shell pt-0",children:o.jsxs("div",{className:"container",children:[o.jsxs("div",{className:"mx-auto max-w-3xl text-center",children:[o.jsx("span",{className:"section-eyebrow",children:t("Reviews")}),o.jsx("h2",{className:"section-title",children:t("See why crews love Timestamp It")})]}),o.jsx("div",{className:`mx-auto mt-12 grid gap-5 ${c}`,children:l.map(d=>o.jsxs("div",{className:"panel rounded-3xl p-7",children:[o.jsx("div",{className:"flex gap-0.5 text-yellow-400",children:Array.from({length:5}).map((u,m)=>o.jsx(Hr,{className:"h-4 w-4 fill-current"},m))}),o.jsx("h3",{className:"mt-4 text-lg font-semibold leading-snug tracking-tight",children:t(d.headline)}),o.jsxs("p",{className:"mt-3 text-sm leading-6 text-muted-foreground",children:['"',t(d.quote),'"']}),o.jsx("p",{className:"mt-5 text-sm font-semibold text-foreground",children:d.author}),o.jsx("p",{className:"text-xs text-muted-foreground",children:t(d.role)})]},d.headline))})]})}),o.jsx("section",{className:"section-shell pt-0",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"mx-auto max-w-3xl",children:[o.jsxs("div",{className:"text-center",children:[o.jsx("span",{className:"section-eyebrow",children:t("FAQ")}),o.jsx("h2",{className:"section-title",children:t("Timestamp It vs {competitor}: frequently asked",{competitor:s.competitorName})})]}),o.jsx("div",{className:"panel mt-10 rounded-3xl p-4 md:p-6",children:o.jsx(yd,{type:"single",collapsible:!0,children:s.faqs.map((d,u)=>o.jsxs(yi,{value:`faq-${u}`,className:"border-border/60 last:border-b-0",children:[o.jsx(xi,{className:"text-left text-base font-semibold md:text-lg",children:t(d.q)}),o.jsx(vi,{className:"text-sm leading-7 text-muted-foreground md:text-[15px]",children:t(d.a)})]},d.q))})})]})})}),o.jsx("section",{className:"section-shell pt-0",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"mx-auto max-w-4xl rounded-3xl bg-gradient-to-br from-primary/15 via-primary/5 to-transparent p-10 text-center md:p-14",children:[o.jsx("h2",{className:"text-3xl font-bold tracking-tight md:text-4xl",children:t(s.closingCta.title)}),o.jsx("p",{className:"mt-4 text-base leading-7 text-muted-foreground md:text-lg",children:t(s.closingCta.body)}),o.jsxs("div",{className:"mt-8 flex flex-wrap items-center justify-center gap-3",children:[o.jsx(ne,{variant:"hero",size:"lg",asChild:!0,children:o.jsx("a",{href:n("/download"),"data-umami-event":"cta-click","data-umami-event-location":`compare-${s.slug}-footer`,children:t("Start for free")})}),o.jsx(ne,{variant:"outline",size:"lg",asChild:!0,children:o.jsx("a",{href:n("/pricing#pricing-inquiry"),children:t("Talk to us about teams")})})]})]})})})]}),o.jsx(et,{})]})},YF=({routeKey:e})=>{const t=re(),n=qe(),a=pi().slug??"",s=DM[a];if(!s)return o.jsx(Cp,{to:"/",replace:!0});const i=e??`/for/${s.slug}`,l=`industry-${s.slug}`,c=s.testimonials??[],d=c.length===1?"max-w-xl":c.length===2?"max-w-4xl sm:grid-cols-2":"max-w-6xl lg:grid-cols-3";return o.jsxs("div",{className:"min-h-screen bg-background",children:[o.jsx(Ve,{routeKey:i}
542),o.jsx(Ze,{}),o.jsxs("main",{children:[o.jsxs("section",{className:"relative overflow-hidden pt-32 pb-16",children:[o.jsx("div",{className:"absolute inset-x-0 top-0 -z-10 h-full bg-[radial-gradient(circle_at_top,hsl(var(--primary)/0.14),transparent_55%)]"}),o.jsx("div",{className:"container",children:o.jsxs("div",{className:"mx-auto max-w-4xl text-center",children:[o.jsx("span",{className:"section-eyebrow",children:t(s.hero.eyebrow)}),o.jsx("h1",{className:"mt-4 text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl",children:t(s.hero.h1)}),o.jsx("p",{className:"section-subtitle mt-6",children:t(s.hero.intro)}),o.jsxs("div",{className:"mt-8 flex flex-wrap items-center justify-center gap-3",children:[o.jsx(ne,{variant:"hero",size:"lg",asChild:!0,children:o.jsx("a",{href:n("/download"),"data-umami-event":"cta-click","data-umami-event-location":`${l}-hero`,"data-umami-event-target":"download",children:t("Start for free")})}),o.jsx(ne,{variant:"outline",size:"lg",asChild:!0,children:o.jsx("a",{href:"#checklist",children:t("See the checklist")})})]}),o.jsxs("div",{className:"mt-8 flex flex-wrap items-center justify-center gap-x-6 gap-y-3 text-sm text-muted-foreground",children:[o.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[o.jsx(Hr,{className:"h-4 w-4 fill-yellow-400 text-yellow-400"}),o.jsx("strong",{className:"text-foreground",children:`${Ga}/5`})," ",t("on the App Store")]}),o.jsx("span",{children:t("Trusted by 700K+ field pros")}),o.jsx("span",{children:t("iPhone, Android & web")})]}),o.jsx(Hn,{location:`${l}-hero`,height:48,className:"mt-8"})]})})]}),o.jsx("section",{className:"section-shell",children:o.jsxs("div",{className:"container",children:[o.jsxs("div",{className:"mx-auto max-w-3xl text-center",children:[o.jsx("span",{className:"section-eyebrow",children:t("The problem")}),o.jsx("h2",{className:"section-title",children:t("What goes wrong without a photo record")})]}),o.jsx("div",{className:"mx-auto mt-12 grid max-w-6xl gap-5 sm:grid-cols-2 lg:grid-cols-4",children:s.painPoints.map(u=>o.jsxs("div",{className:"panel rounded-3xl p-6",children:[o.jsx("h3",{className:"text-lg font-semibold tracking-tight",children:t(u.title)}),o.jsx("p",{className:"mt-3 text-sm leading-6 text-muted-foreground",children:t(u.body)})]},u.title))})]})}),o.jsx("section",{className:"section-shell pt-0",children:o.jsxs("div",{className:"container",children:[o.jsxs("div",{className:"mx-auto max-w-3xl text-center",children:[o.jsx("span",{className:"section-eyebrow",children:t("The workflow")}),o.jsx("h2",{className:"section-title",children:t("Three steps, start to handoff")})]}),o.jsx("div",{className:"mx-auto mt-12 grid max-w-6xl gap-5 lg:grid-cols-3",children:s.steps.map(u=>o.jsxs("div",{className:"panel rounded-3xl p-7",children:[o.jsx("span",{className:"text-sm font-mono font-semibold text-primary",children:u.label}),o.jsx("h3",{className:"mt-3 text-xl font-semibold tracking-tight",children:t(u.title)}),o.jsx("p",{className:"mt-3 text-sm leading-6 text-muted-foreground",children:t(u.body)})]},u.label))})]})}),o.jsx("section",{className:"section-shell pt-0",children:o.jsx("div",{className:"container",children:o.jsx("div",{className:"mx-auto max-w-6xl space-y-10",children:s.deepDive.map((u,m)=>o.jsxs("div",{className:`panel rounded-3xl p-8 md:p-10 grid gap-8 lg:grid-cols-[1.1fr_1fr] ${m%2===1?"lg:[&>:first-child]:order-2":""}`,children:[o.jsxs("div",{children:[o.jsx("span",{className:"section-eyebrow",children:t("Feature")}),o.jsx("h3",{className:"mt-3 text-2xl font-semibold tracking-tight md:text-3xl",children:t(u.title)}),o.jsx("p",{className:"mt-4 text-base leading-7 text-muted-foreground",children:t(u.body)}),o.jsx(ne,{variant:"hero",size:"lg",className:"mt-6",asChild:!0,children:o.jsx("a",{href:n("/download"),"data-umami-event":"cta-click","data-umami-event-location":`${l}-deepdive`,children:t("Get started free")})})]}),o.jsx("ul",{className:"space-y-3",children:u.bullets.map(p=>o.jsxs("li",{className:"flex items-start gap-3",children:[o.jsx("span",{className:"mt-0.5 flex h-6 w-6 shrink-0 items-center justify-center rounded-full bg-primary/10 text-primary",children:o.jsx(tr,{className:"h-3.5 w-3.5"})}
542),o.jsx("span",{className:"text-sm leading-6 text-foreground/90",children:t(p)})]},p))})]},u.title))})})}),o.jsx("section",{id:"checklist",className:"section-shell pt-0",children:o.jsxs("div",{className:"container",children:[o.jsxs("div",{className:"mx-auto max-w-3xl text-center",children:[o.jsx("span",{className:"section-eyebrow",children:t("Checklist")}),o.jsx("h2",{className:"section-title",children:t(s.checklist.headline)}),o.jsx("p",{className:"section-subtitle",children:t(s.checklist.intro)})]}),o.jsx("div",{className:"mx-auto mt-12 grid max-w-6xl gap-5 lg:grid-cols-3",children:s.checklist.groups.map(u=>o.jsxs("div",{className:"panel rounded-3xl p-7",children:[o.jsx("h3",{className:"text-xs font-semibold uppercase tracking-[0.18em] text-primary",children:t(u.heading)}),o.jsx("ul",{className:"mt-5 space-y-3",children:u.items.map(m=>o.jsxs("li",{className:"flex items-start gap-3",children:[o.jsx("span",{className:"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded-md border border-primary/30 bg-primary/5 text-primary",children:o.jsx(tr,{className:"h-3 w-3"})}),o.jsx("span",{className:"text-sm leading-6 text-foreground/85",children:t(m)})]},m))})]},u.heading))})]})}),c.length>0&&o.jsx("section",{className:"section-shell pt-0",children:o.jsxs("div",{className:"container",children:[o.jsxs("div",{className:"mx-auto max-w-3xl text-center",children:[o.jsx("span",{className:"section-eyebrow",children:t("Reviews")}),o.jsx("h2",{className:"section-title",children:t("See why crews love Timestamp It")})]}),o.jsx("div",{className:`mx-auto mt-12 grid gap-5 ${d}`,children:c.map(u=>o.jsxs("div",{className:"panel rounded-3xl p-7",children:[o.jsx("div",{className:"flex gap-0.5 text-yellow-400",children:Array.from({length:5}).map((m,p)=>o.jsx(Hr,{className:"h-4 w-4 fill-current"},p))}),o.jsx("h3",{className:"mt-4 text-lg font-semibold leading-snug tracking-tight",children:t(u.headline)}),o.jsxs("p",{className:"mt-3 text-sm leading-6 text-muted-foreground",children:['"',t(u.quote),'"']}),o.jsx("p",{className:"mt-5 text-sm font-semibold text-foreground",children:u.author}),o.jsx("p",{className:"text-xs text-muted-foreground",children:t(u.role)})]},u.headline))})]})}),o.jsx("section",{className:"section-shell pt-0",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"mx-auto max-w-3xl",children:[o.jsxs("div",{className:"text-center",children:[o.jsx("span",{className:"section-eyebrow",children:t("FAQ")}),o.jsx("h2",{className:"section-title",children:t("Frequently asked")})]}),o.jsx("div",{className:"panel mt-10 rounded-3xl p-4 md:p-6",children:o.jsx(yd,{type:"single",collapsible:!0,children:s.faqs.map((u,m)=>o.jsxs(yi,{value:`faq-${m}`,className:"border-border/60 last:border-b-0",children:[o.jsx(xi,{className:"text-left text-base font-semibold md:text-lg",children:t(u.q)}),o.jsx(vi,{className:"text-sm leading-7 text-muted-foreground md:text-[15px]",children:t(u.a)})]},u.q))})})]})})}),o.jsx("section",{className:"section-shell pt-0",children:o.jsxs("div",{className:"container",children:[o.jsxs("div",{className:"mx-auto max-w-3xl text-center",children:[o.jsx("span",{className:"section-eyebrow",children:t("Keep reading")}),o.jsx("h2",{className:"section-title",children:t("Related pages and free tools")})]}),o.jsx("div",{className:"mx-auto mt-12 grid max-w-6xl gap-5 lg:grid-cols-3",children:s.relatedLinks.map(u=>o.jsxs("a",{href:n(u.href),className:"panel group rounded-3xl p-7 transition-colors hover:border-primary/40",children:[o.jsxs("h3",{className:"flex items-center gap-2 text-lg font-semibold tracking-tight",children:[t(u.label),o.jsx(_a,{className:"h-4 w-4 shrink-0 text-primary transition-transform group-hover:translate-x-0.5"})]}),o.jsx("p",{className:"mt-3 text-sm leading-6 text-muted-foreground",children:t(u.blurb)})]},u.href))})]})}),o.jsx("section",{className:"section-shell pt-0",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"mx-auto max-w-4xl rounded-3xl bg-gradient-to-br from-primary/15 via-primary/5 to-transparent p-10 text-center md:p-14",children:[o.jsx("h2",{className:"text-3xl font-bold tracking-tight md:text-4xl",children:t(s.closingCta.title)}),o.jsx("p",{className:"mt-4 text-base leading-7 text-muted-foreground md:text-lg",children:t(s.closingCta.body)}),o.jsxs("div",{className:"mt-8 flex flex-wrap items-center justify-center gap-3",children:[o.jsx(ne,{variant:"hero",size:"lg",asChild:!0,children:o.jsx("a",{href:n("/download"),"data-umami-event":"cta-click","data-umami-event-location":`${l}-footer`,children:t("Start for free")})}),o.jsx(ne,{variant:"outline",size:"lg",asChild:!0,children:o.jsx("a",{href:n("/pricing#pricing-inquiry"),children:t("Talk to us about teams")})})]})]})})})]}),o.jsx(et,{})]})}
542,KF={narrow:"max-w-xs",medium:"max-w-md",wide:""};function gu({image:e,className:t,size:n}){const r=re();return o.jsxs("figure",{className:t,children:[o.jsx("div",{className:"panel overflow-hidden rounded-3xl p-3",children:o.jsx("img",{src:e.src,alt:r(e.alt),className:`mx-auto h-auto w-full rounded-2xl ${KF[n??e.size??"narrow"]}`,loading:"lazy",decoding:"async"})}),e.caption&&o.jsx("figcaption",{className:"mt-3 text-center text-sm text-muted-foreground",children:r(e.caption)})]})}const JF=({routeKey:e})=>{var l,c;const t=re(),n=qe(),r=pi(),a=UM[r.slug??""];if(!a)return o.jsx(Cp,{to:"/",replace:!0});const i=new Date(`${a.publishedAt}T00:00:00Z`).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric",timeZone:"UTC"});return o.jsxs("div",{className:"min-h-screen bg-background",children:[o.jsx(Ve,{routeKey:e??`/blog/${a.slug}`}),o.jsx(Ze,{}),o.jsx("main",{children:o.jsxs("article",{children:[o.jsxs("section",{className:"relative overflow-hidden pt-32 pb-10",children:[o.jsx("div",{className:"absolute inset-x-0 top-0 -z-10 h-full bg-[radial-gradient(circle_at_top,hsl(var(--primary)/0.12),transparent_55%)]"}),o.jsx("div",{className:"container",children:o.jsxs("div",{className:"mx-auto max-w-3xl",children:[o.jsx("span",{className:"section-eyebrow",children:t("Guide")}),o.jsx("h1",{className:"mt-4 text-4xl font-bold tracking-tight md:text-5xl",children:t(a.title)}),o.jsx("p",{className:"mt-6 text-lg leading-8 text-muted-foreground",children:t(a.intro)}),o.jsxs("p",{className:"mt-6 text-sm text-muted-foreground/80",children:[o.jsx("time",{dateTime:a.publishedAt,children:i})," · ",t("{minutes} min read",{minutes:a.readingMinutes})]}),a.heroImage&&o.jsx(gu,{image:a.heroImage,className:"mt-10"})]})})]}),o.jsx("section",{className:"section-shell pt-0",children:o.jsx("div",{className:"container",children:o.jsx("div",{className:"mx-auto max-w-3xl space-y-14",children:a.sections.map(d=>o.jsxs("div",{children:[o.jsx("h2",{className:"text-2xl font-semibold tracking-tight md:text-3xl",children:t(d.heading)}),d.body.map(u=>o.jsx("p",{className:"mt-5 text-base leading-7 text-foreground/80",children:t(u)},u)),d.steps&&o.jsx("ol",{className:"mt-6 space-y-3",children:d.steps.map((u,m)=>o.jsxs("li",{className:"flex items-start gap-3",children:[o.jsx("span",{className:"mt-0.5 flex h-6 w-6 shrink-0 items-center justify-center rounded-full bg-primary/10 text-xs font-semibold text-primary",children:m+1}),o.jsx("span",{className:"text-base leading-7 text-foreground/80",children:t(u)})]},u))}),d.image&&o.jsx(gu,{image:d.image,className:"mt-8"}),d.images&&d.images.length>0&&o.jsx("div",{className:"mt-8 grid gap-5 sm:grid-cols-2",children:d.images.map(u=>o.jsx(gu,{image:u,size:"wide"},u.src))})]},d.heading))})})}),a.faqs&&a.faqs.length>0&&o.jsx("section",{className:"section-shell pt-0",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"mx-auto max-w-3xl",children:[o.jsx("h2",{className:"text-2xl font-semibold tracking-tight md:text-3xl",children:t("Frequently asked")}),o.jsx("div",{className:"panel mt-8 rounded-3xl p-4 md:p-6",children:o.jsx(yd,{type:"single",collapsible:!0,children:a.faqs.map((d,u)=>o.jsxs(yi,{value:`faq-${u}`,className:"border-border/60 last:border-b-0",children:[o.jsx(xi,{className:"text-left text-base font-semibold md:text-lg",children:t(d.q)}),o.jsx(vi,{className:"text-sm leading-7 text-muted-foreground md:text-[15px]",children:t(d.a)})]},d.q))})})]})})}),o.jsx("section",{className:"section-shell pt-0",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"mx-auto max-w-3xl rounded-3xl bg-gradient-to-br from-primary/15 via-primary/5 to-transparent p-10 text-center md:p-12",children:[o.jsx("h2",{className:"text-2xl font-bold tracking-tight md:text-3xl",children:t(a.cta.title)}),o.jsx("p",{className:"mt-4 text-base leading-7 text-muted-foreground",children:t(a.cta.body)}),o.jsxs("div",{className:"mt-8 flex flex-wrap items-center justify-center gap-3",children:[o.jsx(ne,{variant:"hero",size:"lg",asChild:!0,children:o.jsx("a",{href:n("/download"),"data-umami-event":"cta-click","data-umami-event-location":`blog-${a.slug}`,"data-umami-event-target":"download",children:t("Start for free")})}),o.jsx(ne,{variant:"outline",size:"lg",asChild:!0,children:o.jsx("a",{href:n(((l=a.cta.secondary)==null?void 0:l.href)??"/photo-metadata-tool"),children:t(((c=a.cta.secondary)==null?void 0:c.label)??"Check a photo's metadata")})})]})]})})})]})}),o.jsx(et,{})]})},ZF=()=>{const e=re(),t=qe(),n=[...ld].sort((r,a)=>a.publishedAt.localeCompare(r.publishedAt));return o.jsxs("div",{className:"min-h-screen bg-background",children:[o.jsx(Ve,{routeKey:"/blog"}),o.jsx(Ze,{}),o.jsxs("main",{children:[o.jsxs("section",{className:"relative overflow-hidden pt-32 pb-12",children:[o.jsx("div",{className:"absolute inset-x-0 top-0 -z-10 h-full bg-[radial-gradient(circle_at_top,hsl(var(--primary)/0.12),transparent_55%)]"}),o.jsx("div",{className:"container",children:o.jsxs("div",{className:"mx-auto max-w-3xl text-center",children:[o.jsx("span",{className:"section-eyebrow",children:e("Guides")}),o.jsx("h1",{className:"mt-4 text-4xl font-bold tracking-tight md:text-5xl",children:e("Photo documentation, explained")}),o.jsx("p",{className:"section-subtitle mt-6",children:e("How timestamps, metadata, and photo evidence actually behave â including where they fall short.")})]})})]}),o.jsx("section",{className:"section-shell pt-0",children:o.jsx("div",{className:"container",children:o.jsx("div",{className:"mx-auto grid max-w-5xl gap-5 md:grid-cols-2",children:n.map(r=>{const a=new Date(`${r.publishedAt}T00:00:00Z`);return o.jsxs("a",{href:t(`/blog/${r.slug}`),className:"panel group flex flex-col overflow-hidden rounded-3xl transition-colors hover:border-primary/40",children:[r.heroImage&&o.jsx("img",{src:r.heroImage.src,alt:"",className:"h-44 w-full object-cover",loading:"lazy",decoding:"async"}),o.jsxs("div",{className:"flex flex-1 flex-col p-7",children:[o.jsx("h2",{className:"text-xl font-semibold leading-snug tracking-tight group-hover:text-primary",children:e(r.title)}),o.jsx("p",{className:"mt-3 flex-1 text-sm leading-6 text-muted-foreground",children:e(r.description)}
542),o.jsxs("p",{className:"mt-5 text-xs text-muted-foreground/80",children:[o.jsx("time",{dateTime:r.publishedAt,children:a.toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric",timeZone:"UTC"})})," · ",e("{minutes} min read",{minutes:r.readingMinutes})]})]})]},r.slug)})})})})]}),o.jsx(et,{})]})};function Qa({routeKey:e,title:t,intro:n,effectiveDate:r,children:a}){return o.jsxs("div",{className:"min-h-screen bg-background",children:[o.jsx(Ve,{routeKey:e}),o.jsx(Ze,{}),o.jsx("main",{className:"container py-12 md:py-20",children:o.jsxs("div",{className:"max-w-4xl mx-auto prose prose-slate dark:prose-invert",children:[o.jsx("h1",{className:"text-4xl font-bold mb-8",children:t}),r&&o.jsxs("p",{className:"text-muted-foreground mb-8",children:[o.jsx("strong",{children:"Effective Date:"})," ",r]}),n&&o.jsx("div",{className:"text-muted-foreground mb-8",children:n}),a]})}),o.jsx(et,{})]})}function ie({heading:e,children:t}){return o.jsxs(o.Fragment,{children:[o.jsx("hr",{className:"my-8"}),o.jsxs("section",{className:"mb-8",children:[o.jsx("h2",{className:"text-2xl font-semibold mb-4",children:e}),t]})]})}const eL=[{title:"Your photos belong to you",body:"You own everything you capture. We claim no rights over your photos, videos, or project records, and we never use them for advertising or to train AI models."},{title:"Your projects are private by default",body:"A project is visible only to you until you invite someone. Access is enforced at the database level, not just in the app, so one account cannot reach another account's records."},{title:"Your data stays in the United States",body:"Photos, videos, and project data are stored entirely within the United States. We do not operate storage outside the country."},{title:"Encrypted in transit and at rest",body:"Everything moving between your phone and our servers is encrypted, and everything stored on our side is encrypted too."},{title:"You can take your records with you",body:"Export a project to PDF or spreadsheet whenever you want, and delete individual photos, whole projects, or your entire account on your own terms."},{title:"We do not sell your data",body:"No ads, no data brokers, no analytics vendors reselling your activity. We make money from subscriptions, which keeps the incentives simple."}],tL=[{href:"/security",title:"Security",body:"How the service is hosted, encrypted, and access-controlled."},{href:"/privacy-policy",title:"Privacy Policy",body:"What we collect, why, and the rights you have over it."},{href:"/subprocessors",title:"Subprocessors",body:"Every third party that touches customer data, and what they handle."},{href:"/terms",title:"Terms of Service",body:"The agreement governing use of Timestamp It."},{href:"/accessibility",title:"Accessibility",body:"Our conformance target, known gaps, and how to report a barrier."}],nL=()=>{const e=re();return o.jsxs(Qa,{routeKey:"/trust",title:e("Trust Center"),intro:o.jsx("p",{children:e("Timestamp It holds photo records that crews, inspectors, and agents rely on months or years after the fact â proof a job was done, damage that existed before work started, a condition documented on a specific date. That only works if the records are safe, private, and still there when you need them. Here is how we handle that.")}),children:[o.jsx("div",{className:"grid gap-4 sm:grid-cols-2 not-prose mb-4",children:eL.map(t=>o.jsxs("div",{className:"rounded-lg border p-5",children:[o.jsx("h3",{className:"font-semibold mb-1",children:e(t.title)}),o.jsx("p",{className:"text-sm text-muted-foreground",children:e(t.body)})]},t.title))}),o.jsxs(ie,{heading:e("Records that hold up"),children:[o.jsx("p",{className:"text-muted-foreground mb-4",children:e("The point of a timestamped photo is that it means something later. A few things worth knowing about how far that goes:")}),o.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:[o.jsx("li",{children:e("Timestamps, GPS coordinates, addresses, and weather are captured from your device and third-party data sources at the moment you take the photo, and burned into the image.")}),o.jsx("li",{children:e("Stamped photos sync to your account so a lost or replaced phone does not take the record with it.")}),o.jsx("li",{children:e("We are a documentation tool, not a forensic certification service. We do not warrant that a stamp is tamper-proof or admissible as evidence in a legal proceeding â if your use depends on that, evaluate it against your own requirements first.")})]})]}),o.jsx(ie,{heading:e("What Timestamp It is not built for"),children:o.jsx("p",{className:"text-muted-foreground mb-4",children:e("Timestamp It is built for field documentation â construction progress, inspections, property condition, service calls, and similar work. It is not designed or offered for storing regulated records such as protected health information or criminal justice information, and we do not recommend using it that way. If your organization handles that kind of data, talk to us before you deploy it.")})}),o.jsxs(ie,{heading:e("For security and procurement reviewers"),children:[o.jsx("p",{className:"text-muted-foreground mb-4",children:e("The pages below cover infrastru
542cture, subprocessors, and contract terms in detail. They are published in English only, because they are the operative legal text and a translation of it would not be.")}),o.jsx("div",{className:"grid gap-4 sm:grid-cols-2 not-prose mb-6",children:tL.map(t=>o.jsxs("a",{href:t.href,className:"block rounded-lg border p-5 transition-colors hover:border-primary hover:bg-muted/40",children:[o.jsx("h3",{className:"font-semibold mb-1",children:t.title}),o.jsx("p",{className:"text-sm text-muted-foreground",children:e(t.body)})]},t.href))}),o.jsx("p",{className:"text-muted-foreground mb-4",children:e("If you are working through a vendor security questionnaire, a procurement form, or a specific compliance requirement, we will answer it directly rather than make you guess from a web page.")}),o.jsxs("p",{className:"text-muted-foreground mb-4",children:[e("Email us at")," ",o.jsx("a",{href:"mailto:[email protected]",className:"text-primary hover:underline",children:"[email protected]"})]})]})]})},rL=()=>{const e=qe();return o.jsxs(Qa,{routeKey:"/security",title:"Security",effectiveDate:"July 2026",intro:o.jsxs("p",{children:["How Timestamp It is built, hosted, and protected. This page is maintained for customers and security reviewers. To report a suspected vulnerability, email"," ",o.jsx("a",{href:"mailto:[email protected]",className:"text-primary hover:underline",children:"[email protected]"}),"."]}),children:[o.jsx(ie,{heading:"1. Infrastructure & Hosting",children:o.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:[o.jsx("li",{children:"Timestamp It is delivered as a hosted service (SaaS). Nothing is installed on customer systems, and the product does not require any connection to a customer's internal network."}),o.jsxs("li",{children:["Our database, authentication, and backend functions run on ",o.jsx("strong",{children:"Supabase"}),", hosted on Amazon Web Services in ",o.jsx("strong",{children:"US East (Ohio), us-east-2"}),"."]}),o.jsxs("li",{children:["Photos and videos are stored on ",o.jsx("strong",{children:"Backblaze B2"})," object storage in"," ",o.jsx("strong",{children:"US West (Sacramento and Phoenix)"}),"."]}),o.jsx("li",{children:"Both are United States regions. There are no database or storage replicas outside the country."}),o.jsx("li",{children:"The application database is PostgreSQL. Physical and environmental security of the underlying data centers is inherited from AWS."})]})}),o.jsx(ie,{heading:"2. Encryption",children:o.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:[o.jsxs("li",{children:[o.jsx("strong",{children:"In transit:"})," All client-to-server and server-to-server traffic uses TLS. The app does not transmit customer content over unencrypted channels."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"At rest:"})," Databases, file storage, and backups are encrypted at rest by our infrastructure provider."]})]})}),o.jsx(ie,{heading:"3. Access Control & Tenant Isolation",children:o.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:[o.jsxs("li",{children:[o.jsx("strong",{children:"Row-level security is enabled on every table"})," in our production database. Authorization is enforced by the database itself, not only in application code, so an authenticated session can reach only its own rows and rows explicitly shared with it."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Authenticated backend functions."})," Backend functions that return or modify customer data verify a valid session token before doing any work."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Collaboration is explicit."})," Access to a project or team is granted only through an invitation or share link created by a user who already has access."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Administrative access is limited and logged."})," We do not browse customer media. In narrow cases â a support request from the account holder, or investigation of a fault â an authorized administrator may access an account. Every such access is written to an immutable audit log."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Secrets management."})," API keys and service credentials are held as server-side environment secrets and are never shipped in the mobile client."]})]})}),o.jsx(ie,{heading:"4. Patching & Vulnerability Management",children:o.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:[o.jsxs("li",{children:[o.jsx("strong",{children:"Platform patching."})," The database engine, runtime, and underlying operating systems are patched by our infrastru
542cture provider as part of their managed service."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Application dependencies."})," Reviewed and updated on a quarterly basis."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Critical vulnerabilities."})," Security fixes affecting customer data are prioritized ahead of feature work and released as soon as they are validated."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Mobile releases."})," Client updates are distributed through the Apple App Store and Google Play and are subject to each store's review timeline."]})]})}),o.jsx(ie,{heading:"5. Reporting a Vulnerability",children:o.jsxs("p",{className:"text-muted-foreground mb-4",children:["We welcome reports from security researchers and customers. Email"," ",o.jsx("a",{href:"mailto:[email protected]",className:"text-primary hover:underline",children:"[email protected]"})," ","with enough detail to reproduce the issue. We will acknowledge your report and keep you informed as we investigate. Please do not publicly disclose an issue before we have had a reasonable opportunity to fix it, and please do not access, modify, or delete data belonging to other users while testing."]})}),o.jsx(ie,{heading:"6. Incident Response",children:o.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:[o.jsx("li",{children:"On becoming aware of a security incident affecting customer data, we investigate to determine scope and impact, contain the issue, and remediate."}),o.jsx("li",{children:"We notify affected account holders by email without undue delay, and in any case within 72 hours of confirming a breach, along with what we know about what was affected and what we are doing about it."}),o.jsx("li",{children:"Where a contract or applicable law imposes a shorter or more specific notification requirement, we follow that requirement."})]})}),o.jsxs(ie,{heading:"7. Compliance Posture",children:[o.jsx("p",{className:"text-muted-foreground mb-4",children:"Timestamp It is built and operated by a small team. We would rather state our position precisely than imply more than we hold:"}),o.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:[o.jsxs("li",{children:[o.jsx("strong",{children:"Privacy law."})," We align with GDPR and CCPA/CPRA practice â we support access, correction, deletion, and portability requests, and we do not sell or share personal information as those laws define it."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Certifications."})," We do not currently hold our own ISO 27001 or SOC 2 report. Our infrastructure provider maintains SOC 2 for the platform we run on, but we make no conformance claim of our own."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Cardholder data."})," Out of scope entirely â purchases run through the Apple App Store and Google Play, and we never receive card data."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Regulated records."})," The product is not designed or offered for protected health information, criminal justice information, or similar regulated categories."]})]}),o.jsxs("p",{className:"text-muted-foreground mb-4",children:["If your organization has a specific framework requirement or a vendor security questionnaire to work through, email"," ",o.jsx("a",{href:"mailto:[email protected]",className:"text-primary hover:underline",children:"[email protected]"})," ","and we will answer it directly, including where the answer is no."]})]}),o.jsx(ie,{heading:"8. Data Residency & Transfer",children:o.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:[o.jsxs("li",{children:[o.jsx("strong",{children:"Stored in the US:"})," Yes. Application data in AWS us-east-2, media on Backblaze B2 US West."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Processed in the US:"})," Yes."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Transmitted outside the US:"})," Not in the ordinary course. Content is served to the device that requests it, so a user who travels abroad will receive their own data at their location."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"At end of contract:"})," You may export your projects at any time, and you may delete individual media, projects, or your entire account. On deletion, data is removed from active systems;
542 residual copies in encrypted infrastructure backups age out on the ordinary backup rotation. See the"," ",o.jsx("a",{href:e("/privacy-policy"),className:"text-primary hover:underline",children:"Privacy Policy"}),"."]})]})}),o.jsx(ie,{heading:"9. Subprocessors",children:o.jsxs("p",{className:"text-muted-foreground mb-4",children:["We use a small, deliberately short list of third-party providers. Each one, what it handles, and where it operates is published at"," ",o.jsx("a",{href:e("/subprocessors"),className:"text-primary hover:underline",children:"/subprocessors"}),"."]})}),o.jsx("section",{id:"availability",className:"scroll-mt-24",children:o.jsxs(ie,{heading:"10. Availability, Backups & Support",children:[o.jsx("p",{className:"text-muted-foreground mb-4",children:"The commitments below are what we hold ourselves to. Where something is a target rather than a contractual guarantee, we say so, because a promise we cannot enforce upstream is not worth much to you."}),o.jsx("div",{className:"overflow-x-auto mb-6",children:o.jsxs("table",{className:"w-full text-sm text-left text-muted-foreground",children:[o.jsx("thead",{children:o.jsxs("tr",{className:"border-b",children:[o.jsx("th",{className:"py-2 pr-4 font-semibold text-foreground",children:"Commitment"}),o.jsx("th",{className:"py-2 font-semibold text-foreground",children:"What we hold to"})]})}),o.jsxs("tbody",{children:[o.jsxs("tr",{className:"border-b",children:[o.jsx("td",{className:"py-2 pr-4",children:"Support response"}),o.jsxs("td",{className:"py-2",children:["Within ",o.jsx("strong",{children:"2 business days"}),", Monday to Friday, on every plan including the free tier"]})]}),o.jsxs("tr",{className:"border-b",children:[o.jsx("td",{className:"py-2 pr-4",children:"Security incident notice"}),o.jsxs("td",{className:"py-2",children:["Affected account holders emailed ",o.jsx("strong",{children:"within 72 hours"})," of confirming a breach"]})]}),o.jsxs("tr",{className:"border-b",children:[o.jsx("td",{className:"py-2 pr-4",children:"Service incident notice"}),o.jsx("td",{className:"py-2",children:"Affected customers emailed during any outage that materially affects access to their data"})]}),o.jsxs("tr",{className:"border-b",children:[o.jsx("td",{className:"py-2 pr-4",children:"Subprocessor changes"}),o.jsxs("td",{className:"py-2",children:[o.jsx("strong",{children:"30 days advance notice"})," before a new subprocessor begins processing customer data"]})]}),o.jsxs("tr",{className:"border-b",children:[o.jsx("td",{className:"py-2 pr-4",children:"Critical security patches"}),o.jsx("td",{className:"py-2",children:"Prioritized ahead of feature work and released as soon as validated"})]}),o.jsxs("tr",{className:"border-b",children:[o.jsx("td",{className:"py-2 pr-4",children:"Account deletion"}),o.jsxs("td",{className:"py-2",children:["Acknowledged within 5 business days, completed"," ",o.jsx("strong",{children:"within 30 days"})," of verification"]})]}),o.jsxs("tr",{className:"border-b",children:[o.jsx("td",{className:"py-2 pr-4",children:"Data export"}),o.jsx("td",{className:"py-2",children:"Available at any time from within the app, without contacting us"})]}),o.jsxs("tr",{className:"border-b",children:[o.jsx("td",{className:"py-2 pr-4",children:"Availability"}),o.jsxs("td",{className:"py-2",children:[o.jsx("strong",{children:"99.9% monthly target"})," â a target, not a contractual guarantee. See below."]})]})]})]})}),o.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:[o.jsxs("li",{children:[o.jsx("strong",{children:"Why availability is a target."})," We run on managed cloud infrastructure with provider-level redundancy, and we aim for 99.9% monthly availability. We deliberately do not sell that as a contractual guarantee, because our own infrastructure plans do not carry an uptime SLA we could claim against â promising you credits for an outage we have no recourse on would be theater. Team and enterprise customers who need contractual availability terms should raise it during procurement, and we will tell you honestly what we can underwrite."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Backups."})," The production database is backed up automatically on a daily schedule with a seven-day retention window. Worst-case data loss in a restore scenario is therefore up to 24 hours."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Support."})," Included at no additional cost on every plan. Reach us at"," ",o.jsx("a",{href:"mailto:[email protected]",className:"text-primary hover:underline",children:"[email protected]"}),". We are a small team, so the two-business-day figure above is a commitment we can keep rather than an aspiration â most messages are answered the same day."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Feature releases."})," New features ship roughly every two weeks and are delivered through the Apple App Store and Google Play, subject to each store's review timeline."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Implementation."})," No implementation project is required â users download the app and sign in. We assist teams with onboarding on request."]})]})]})}),o.jsx(ie,{heading:"11. Compatibility",children:o.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:[o.jsxs("li",{children:[o.jsx("strong",{children:"iOS:"})," iOS 16.0 and later, on iPhone and iPad."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Android:"})," Android 7.0 (API level 24) and later."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Web:"})," Our website supports current versions of Chrome, Safari, Edge, and Firefox on desktop and mobile."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Windows 11 / Windows Server 2022 / 2025:"})," Not applicable. Timestamp It is a mobile application with a web companion site; no Windows client or server component is installed."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Sign-in methods:"})," Sign in with Apple, Sign in with Google, email, or"," ",o.jsx("strong",{children:"Microsoft Entra ID"}),". Entra ID lets organizations that run Microsoft 365 use their existing directory accounts, so there are no separate credentials to provision or revoke."]})]})})]})},oL=[{name:"Supabase",purpose:"Application database, authentication, and backend functions.",data:"Account records, project and team data, captions, notes, and usage events.",location:"United States â AWS US East (Ohio), us-east-2"},{name:"Backblaze B2",purpose:"Cloud object storage for the photos and videos you capture or import.",data:"Stamped photos, videos, and thumbnails uploaded from your account.",location:"United States â US West (Sacramento and Phoenix)"},{name:"Resend",purpose:"Delivery of transactional email (account activation, project and team invitations, collaborator notifications) and product email.",data:"Recipient email address, display name, message contents, and delivery/open/click events.",location:"United States"},{name:"RevenueCat",purpose:"Subscription entitlement management â tracking whether a subscription is active â and hosted checkout for subscriptions purchased on our website.",data:"Account identifier and subscription lifecycle events. No payment card data.",location:"United States"},{name:"Stripe",purpose:"Payment processing for subscriptions purchased on our website.",data:"Billing name and email, payment card details (collected and held by Stripe, never by us), and transaction records.",location:"United States (global infrastru
542cture)"},{name:"Umami",purpose:"Privacy-focused website analytics â page views and referrers on timestampitapp.com. Not used inside the app.",data:"Aggregate page view data. No cookies and no cross-site tracking.",location:"United States"},{name:"Apple",purpose:"iOS app distribution, in-app purchase processing, and push notification delivery (APNs).",data:"Purchase records and push notification tokens.",location:"United States (global infrastructure)"},{name:"Google",purpose:"Android app distribution, in-app purchase processing, and push notification delivery (FCM).",data:"Purchase records and push notification tokens.",location:"United States (global infrastructure)"}],aL=()=>o.jsxs(Qa,{routeKey:"/subprocessors",title:"Subprocessors",effectiveDate:"July 2026",intro:o.jsxs("p",{children:["A subprocessor is a third party that processes customer data on our behalf. This is the complete list for Timestamp It. Each provider is bound by its own contractual confidentiality and security obligations, and"," ",o.jsx("strong",{children:"we do not sell customer data to any of them."})]}),children:[o.jsxs(ie,{heading:"Current subprocessors",children:[o.jsx("div",{className:"overflow-x-auto mb-4",children:o.jsxs("table",{className:"w-full text-sm text-left text-muted-foreground",children:[o.jsx("thead",{children:o.jsxs("tr",{className:"border-b",children:[o.jsx("th",{className:"py-2 pr-4 font-semibold text-foreground align-top",children:"Provider"}),o.jsx("th",{className:"py-2 pr-4 font-semibold text-foreground align-top",children:"Purpose"}),o.jsx("th",{className:"py-2 pr-4 font-semibold text-foreground align-top",children:"Data Involved"}),o.jsx("th",{className:"py-2 font-semibold text-foreground align-top",children:"Processing Location"})]})}),o.jsx("tbody",{children:oL.map(e=>o.jsxs("tr",{className:"border-b align-top",children:[o.jsx("td",{className:"py-3 pr-4 font-medium text-foreground whitespace-nowrap",children:e.name}),o.jsx("td",{className:"py-3 pr-4",children:e.purpose}),o.jsx("td",{className:"py-3 pr-4",children:e.data}),o.jsx("td",{className:"py-3",children:e.location})]},e.name))})]})}),o.jsx("p",{className:"text-muted-foreground mb-4",children:"Processing locations were last verified against each provider's published subprocessor list and data processing addendum in July 2026."})]}),o.jsxs(ie,{heading:"What we do not use",children:[o.jsxs("p",{className:"text-muted-foreground mb-4",children:["Reviewers usually want to know what is ",o.jsx("em",{children:"absent"})," as much as what is present:"]}),o.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:[o.jsxs("li",{children:[o.jsx("strong",{children:"No advertising networks or ad SDKs."})," We do not run ads and do not share data with advertising platforms."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"No data brokers."})," We do not sell, rent, or trade customer data."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"No AI provider in our own stack."})," We do not send your photos, videos, notes, or project data to any AI model, and no customer data is used to train models. Note that our email and subscription providers do list AI vendors among their own subprocessors for their internal operations â we mention it because it is public on their subprocessor pages, not because your content is routed there."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"No third-party form or survey services."})," Contact and pricing inquiries submitted on this site are handled by our own backend and delivered by our email provider. They do not pass through an external form relay."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"No offshore data storage."})," Every provider above processes customer data in the United States. We operate no storage or database replicas outside the country."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"In-app usage analytics stay in-house."})," What you do inside the app â projects, captures, feature usage â is recorded in our own database, not sent to a third-party analytics vendor. Our marketing website uses a privacy-focused analytics tool for page views, listed above; it is not present in the app and never sees your photos or project data."]})]})]}),o.jsx(ie,{heading:"Changes to this list",children:o.jsxs("p",{className:"text-muted-foreground mb-4",children:["We give ",o.jsx("strong",{children:"30 days advance notice"})," before a new subprocessor begins processing customer data. This page is updated at the same time, and account holders are notified by email. If you object to a change, contact us at"," ",o.jsx("a",{href:"mailto:[email protected]",className:"text-primary hover:underline",children:"[email protected]"})," ","before it takes effect."]})})]}),sL=()=>o.jsxs(Qa,{routeKey:"/accessibility",title:"Accessibility Statement",effectiveDate:"July 2026",intro:o.jsx("p",{children:"ShabzCo, LLC is committed to making Timestamp It usable by as many people as possible, including people who rely on assistive technology."}),children:[o.jsxs(ie,{heading:"1. Conformance Target",children:[o.jsxs("p",{className:"text-muted-foreground mb-4",children:["Our target is ",o.jsx("strong",{children:"WCAG 2.1 Level AA"}),"."]}),o.jsxs("p",{className:"text-muted-foreground mb-4",children:["To be accurate about where we stand: we have"," ",o.jsx("strong",{children:"not yet completed a formal third-party accessibility audit"}),", and we do not currently publish a VPAT. We therefore describe our status as"," ",o.jsx("strong",{children:"partially conformant"})," â meaning parts of the product meet the standard but we have not verified every success criterion across every screen. We would rather state that plainly than claim a conformance level we have not tested."]}),o.jsx("p",{className:"text-muted-foreground mb-4",children:"If your organization requires a completed VPAT or an audited conformance report, contact us before purchase and we will tell you honestly what we can provide and on what timeline."})]}),o.jsx(ie,{heading:"2. Measures We Take",children:o.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:[o.jsxs("li",{children:[o.jsx("strong",{children:"Platform accessibility APIs."})," The mobile app is built with standard iOS and Android UI components, so it inherits system-level support for VoiceOver, TalkBack, Dynamic Type, and system text sizing."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Semantic markup on the web."})," Our website uses semantic HTML landmarks and headings, and interactive components are built on an accessible component library that supports keyboard navigation and focus management."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Light and dark themes."})," Both themes are maintained, and the site respects the operating system's theme preference."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Keyboard navigation."})," Website functionality is reachable by keyboard, with visible focus indicators."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Text alternatives."})," Meaningful images carry alternative text."]})]})}),o.jsxs(ie,{heading:"3. Known Limitations",children:[o.jsx("p",{className:"text-muted-foreground mb-4",children:"We are aware of the following areas where the experience may fall short of our target. Listing them is deliberate â a statement with no known limitations usually means no one has looked."}),o.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:[o.jsxs("li",{children:[o.jsx("strong",{children:"Photo capture and stamp preview"})," are inherently visual. Composing a stamp on a live camera preview is difficult to convey non-visually, and we have not yet built an equivalent non-visual workflow."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Captured photo content"})," cannot carry automatic text alternatives â alternative text for a user's own photo would have to be authored by the user."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"No formal audit has been performed"}),", so undiscovered issues are likely."]})]})]}),o.jsxs(ie,{heading:"4. Feedback",children:[o.jsx("p",{className:"text-muted-foreground mb-4",children:"If you encounter an accessibility barrier in Timestamp It, please tell us. Reports from people who actually hit the problem are the most useful input we get."}),o.jsxs("p",{className:"text-muted-foreground mb-4",children:[o.jsx("strong",{children:"Email:"})," ",o.jsx("a",{href:"mailto:[email protected]",className:"text-primary hover:underline",children:"[email protected]"})]}),o.jsx("p",{className:"text-muted-foreground mb-4",children:"Please include the screen or page, the assistive technology and version you were using, and what you expected to happen. We aim to acknowledge accessibility reports within five business days and will tell you what we intend to do about the issue."})]}),o.jsx(ie,{heading:"5. Assessment Approach",children:o.jsx("p",{className:"text-muted-foreground mb-4",children:"This statement is based on our own internal review of the product. It was last reviewed in July 2026. We update it as we make improvements or learn about new issues."})})]}),iL=()=>{const e=qe();return o.jsxs(Qa,{routeKey:"/terms",title:"Terms of Service",effectiveDate:"July 2026",intro:o.jsxs("p",{children:['These Terms of Service (the "Terms") are a legal agreement between you and'," ",o.jsx("strong",{children:"ShabzCo, LLC"}),' ("ShabzCo," "we," "us," or "our") governing your use of the Timestamp It mobile application and website (together, the "Service"). By creating an account or using the Service, you agree to these Terms. If you do not agree, do not use the Service.']}),children:[o.jsxs(ie,{heading:"1. License",children:[o.jsx("p",{className:"text-muted-foreground mb-4",children:"Subject to these Terms, we grant you a limited, non-exclusive, non-transferable, revocable license to install and use the Service on devices you own or c
542ontrol, for your personal or internal business purposes."}),o.jsx("p",{className:"text-muted-foreground mb-4",children:"You may not:"}),o.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:[o.jsx("li",{children:"Copy, modify, or create derivative works of the Service."}),o.jsx("li",{children:"Reverse engineer, decompile, or disassemble the Service, except to the extent applicable law expressly permits it."}),o.jsx("li",{children:"Rent, lease, sell, sublicense, or otherwise transfer your rights to the Service."}),o.jsx("li",{children:"Remove or obscure any proprietary notices."})]})]}),o.jsxs(ie,{heading:"2. Your Content and Ownership",children:[o.jsxs("p",{className:"text-muted-foreground mb-4",children:[o.jsx("strong",{children:"You own your content."})," Photos, videos, notes, captions, and project data you create or upload remain yours. We claim no ownership over them."]}),o.jsx("p",{className:"text-muted-foreground mb-4",children:"You grant us a limited license to host, store, transmit, display, and back up your content solely for the purpose of operating the Service for you â for example, syncing a photo between your devices or showing it to a collaborator you invited. This license exists only to run the Service and ends when you delete the content or your account, subject to routine backup rotation."}),o.jsx("p",{className:"text-muted-foreground mb-4",children:o.jsx("strong",{children:"We do not use your content to train AI models, and we do not use it for advertising."})}),o.jsx("p",{className:"text-muted-foreground mb-4",children:"You are responsible for your content, including having the rights necessary to capture and upload it and complying with any law that applies to it."})]}),o.jsx(ie,{heading:"3. Accounts",children:o.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:[o.jsx("li",{children:"You must provide accurate information when creating an account."}),o.jsx("li",{children:"You are responsible for activity that occurs under your account and for keeping your credentials secure."}),o.jsx("li",{children:"You must be at least 13 years old to use the Service. The Service is not directed to children under 13."}),o.jsx("li",{children:"If you create a team or invite collaborators, you are responsible for who you grant access to and for what they do with that access."})]})}),o.jsxs(ie,{heading:"4. Acceptable Use",children:[o.jsx("p",{className:"text-muted-foreground mb-4",children:"You agree not to use the Service to:"}),o.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:[o.jsx("li",{children:"Violate any law or infringe anyone's rights."}),o.jsx("li",{children:"Capture or upload content of a person in a place or manner where they have a reasonable expectation of privacy, without their consent."}),o.jsx("li",{children:"Upload malware or attempt to compromise the Service or other users' accounts."}),o.jsx("li",{children:"Circumvent usage limits, access controls, or authentication, or access data that is not yours."}),o.jsxs("li",{children:["Store regulated data the Service is not designed for, including Protected Health Information and Criminal Justice Information. See our"," ",o.jsx("a",{href:e("/trust"),className:"text-primary hover:underline",children:"Trust Center"}),"."]}),o.jsx("li",{children:"Resell or provide the Service to third parties as a standalone commercial offering."})]}),o.jsx("p",{className:"text-muted-foreground mb-4",children:"We may suspend or terminate accounts that violate this section."})]}),o.jsx(ie,{heading:"5. Timestamps and Accuracy",children:o.jsx("p",{className:"text-muted-foreground mb-4",children:"The Service records timestamps, location data, weather, and similar metadata using information supplied by your device and third-party data sources. While we work to make these accurate, we do not warrant that any timestamp, location, or other metadata is accurate, complete, tamper-proof, or admissible as evidence in any legal or regulatory proceeding. You are responsible for determining whether the Service is suitable for your intended use."})}),o.jsx(ie,{heading:"6. Subscriptions and Billing",children:o.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:[o.jsx("li",{children:"The Service offers free and paid tiers. Paid subscriptions are purchased through the Apple App Store, Google Play, or on our website. Store purchases are processed by Apple or Google; website purchases are processed by our payment providers, Stripe and RevenueCat. ShabzCo does not store your payment card details."}),o.jsx("li",{children:"Subscriptions renew automatically until canceled. You manage and cancel App Store and Google Play subscriptions through your store account settings, and website subscriptions from your account at app.timestampitapp.com, which opens the secure Stripe customer portal. Canceling stops future renewals; you keep access until the end of the current billing period."}),o.jsxs("li",{children:[o.jsx("strong",{children:"Refunds for store purchases are handled by the platform"})," you purchased through, under their policies. We cannot issue refunds for store purchases directly. For subscriptions purchased on our website, contact"," ",o.jsx("a",{href:"mailto:[email protected]",className:"text-primary hover:underline",children:"[email protected]"})," ","and we will review refund requests under applicable law."]}),o.jsx("li",{children:"We may change pricing for future billing periods. We will give notice before a change takes effect for an existing subscription."})]})}),o.jsx(ie,{heading:"7. Service Changes and Availability",children:o.jsxs("p",{className:"text-muted-foreground mb-4",children:["We may add, change, or discontinue features. We aim to keep the Service available but do not guarantee uninterrupted or error-free operation. Maintenance, third-party outages, and app store review timelines can all affect availability. See our"," ",o.jsx("a",{href:e("/security#availability"),className:"text-primary hover:underline",children:"availability and support information"}),"."]})}),o.jsx(ie,{heading:"8. Termination",children:o.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:[o.jsx("li",{children:"You may stop using the Service and delete your account at any time."}),o.jsx("li",{children:"We may suspend or terminate your access if you materially breach these Terms, or if required by law."}),o.jsxs("li",{children:[o.jsx("strong",{children:"On termination,"})," you may export your content before deleting your account. After account deleti
542on, your data is removed from active systems as described in the"," ",o.jsx("a",{href:e("/privacy-policy"),className:"text-primary hover:underline",children:"Privacy Policy"}),"."]}),o.jsx("li",{children:"Sections that by their nature should survive termination â including ownership, disclaimers, limitation of liability, and governing law â will survive."})]})}),o.jsxs(ie,{heading:"9. Disclaimers",children:[o.jsx("p",{className:"text-muted-foreground mb-4",children:'THE SERVICE IS PROVIDED "AS IS" AND "AS AVAILABLE," WITHOUT WARRANTIES OF ANY KIND, WHETHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT. WE DO NOT WARRANT THAT THE SERVICE WILL BE UNINTERRUPTED, SECURE, OR ERROR-FREE, OR THAT DATA WILL NOT BE LOST.'}),o.jsx("p",{className:"text-muted-foreground mb-4",children:"Some jurisdictions do not allow the exclusion of certain warranties, so some of the above may not apply to you."})]}),o.jsxs(ie,{heading:"10. Limitation of Liability",children:[o.jsx("p",{className:"text-muted-foreground mb-4",children:"TO THE MAXIMUM EXTENT PERMITTED BY LAW, SHABZCO WILL NOT BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, OR PUNITIVE DAMAGES, OR FOR ANY LOSS OF PROFITS, REVENUE, DATA, OR GOODWILL, ARISING OUT OF OR RELATING TO YOUR USE OF THE SERVICE."}),o.jsx("p",{className:"text-muted-foreground mb-4",children:"OUR TOTAL AGGREGATE LIABILITY ARISING OUT OF OR RELATING TO THESE TERMS OR THE SERVICE WILL NOT EXCEED THE GREATER OF (A) THE AMOUNT YOU PAID US IN THE TWELVE MONTHS PRECEDING THE EVENT GIVING RISE TO THE CLAIM, OR (B) ONE HUNDRED U.S. DOLLARS ($100.00)."}),o.jsx("p",{className:"text-muted-foreground mb-4",children:"Some jurisdictions do not allow these limitations, so they may not apply to you."})]}),o.jsx(ie,{heading:"11. Indemnification",children:o.jsx("p",{className:"text-muted-foreground mb-4",children:"You agree to indemnify and hold harmless ShabzCo, LLC and its officers, members, and agents from any claim, demand, loss, or expense (including reasonable attorneys' fees) arising out of your content, your use of the Service, or your violation of these Terms or applicable law."})}),o.jsx(ie,{heading:"12. Apple and Google Provisions",children:o.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:[o.jsx("li",{children:"These Terms are between you and ShabzCo, LLC only â not with Apple or Google."}),o.jsx("li",{children:"Apple and Google have no obligation to provide maintenance or support for the Service."}),o.jsx("li",{children:"Apple and Google are third-party beneficiaries of these Terms and may enforce them against you."}),o.jsx("li",{children:"You represent that you are not located in a country subject to a U.S. Government embargo and are not on any U.S. Government restricted-party list."})]})}),o.jsxs(ie,{heading:"13. Governing Law and Disputes",children:[o.jsx("p",{className:"text-muted-foreground mb-4",children:"These Terms are governed by the laws of the State of California, without regard to its conflict-of-laws rules. Any dispute will be brought exclusively in the state or federal courts located in Contra Costa County, California, and you consent to personal jurisdiction there."}),o.jsx("p",{className:"text-muted-foreground mb-4",children:"If you are a U.S. federal, state, or local government entity, provisions that conflict with applicable law governing your procurement do not apply to the extent of the conflict."})]}),o.jsx(ie,{heading:"14. General",children:o.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:[o.jsxs("li",{children:[o.jsx("strong",{children:"Entire agreement."}
542)," These Terms and the Privacy Policy are the entire agreement between you and us regarding the Service."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Severability."})," If any provision is unenforceable, the rest remains in effect."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"No waiver."})," Our failure to enforce a provision is not a waiver of it."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Assignment."})," You may not assign these Terms without our consent. We may assign them in connection with a merger, acquisition, or sale of assets."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Changes."})," We may update these Terms. Material changes will be posted here with an updated effective date and, where appropriate, communicated to account holders by email. Continued use after changes take effect constitutes acceptance."]})]})}),o.jsxs(ie,{heading:"15. Contact",children:[o.jsxs("p",{className:"text-muted-foreground mb-4",children:["ShabzCo, LLC â"," ",o.jsx("a",{href:"mailto:[email protected]",className:"text-primary hover:underline",children:"[email protected]"})]}),o.jsxs("p",{className:"text-muted-foreground mb-4",children:["1077 Walnut Ave",o.jsx("br",{}
542),"Walnut Creek, CA 94598",o.jsx("br",{}),"United States"]})]})]})},lL="https://cltzdogxniqntvuxnhdv.supabase.co/functions/v1/account-deletion-request",cL=()=>{const e=re(),t=qe(),[n,r]=h.useState(!1),[a,s]=h.useState(""),[i,l]=h.useState(""),c=async d=>{d.preventDefault();const u=d.currentTarget,m=new FormData(u);s(""),l(""),r(!0);try{const p=await fetch(lL,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:m.get("email"),reason:m.get("reason"),website:m.get("website")})}),f=await p.json().catch(()=>({}));if(!p.ok){l(f.error??e("Something went wrong. Please email [email protected]."));return}u.reset(),s(e("Request received. We will email you to confirm before anything is deleted."))}catch{l(e("Could not reach the server. Please email [email protected]."))}finally{r(!1)}};return o.jsxs(Qa,{routeKey:"/delete-account",title:"Delete Your Account and Data",intro:o.jsx("p",{children:"You can ask us to delete your Timestamp It account and everything stored with it. You do not need the app installed, and you do not need to sign in to make the request."}),children:[o.jsxs(ie,{heading:"Request deletion",children:[o.jsx("p",{className:"text-muted-foreground mb-6",children:"Enter the email address on your account. We will email you to confirm before anything is deleted."}),o.jsxs("form",{className:"space-y-4 not-prose",onSubmit:c,children:[o.jsx("input",{type:"text",name:"website",tabIndex:-1,autoComplete:"off","aria-hidden":"true",className:"hidden"}),o.jsxs("div",{children:[o.jsx("label",{htmlFor:"delete-email",className:"block text-sm font-medium mb-2",children:e("Email address on your account")}),o.jsx(Dn,{id:"delete-email",name:"email",type:"email",placeholder:e("[email protected]"),required:!0})]}),o.jsxs("div",{children:[o.jsx("label",{htmlFor:"delete-reason",className:"block text-sm font-medium mb-2",children:e("Anything you want to tell us? (optional)")}),o.jsx(hd,{id:"delete-reason",name:"reason",rows:4,placeholder:e("Optional â this does not affect your request.")})]}),a?o.jsx("p",{className:"text-sm text-primary",children:a}):null,i?o.jsx("p",{className:"text-sm text-destructive",children:i}):null,o.jsxs(ne,{type:"submit",variant:"destructive",className:"gap-2",disabled:n,children:[o.jsx(qw,{className:"w-4 h-4"}),e(n?"Sending...":"Request Account Deletion")]})]})]}),o.jsxs(ie,{heading:"What gets deleted",children:[o.jsx("p",{className:"text-muted-foreground mb-4",children:"When we action your request, we remove:"}),o.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:[o.jsxs("li",{children:[o.jsx("strong",{children:"Your account and sign-in identities"})," â including any linked Apple, Google, Microsoft, or email logins."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Your profile"})," â name, email address, and account settings."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Your photos and videos"})," â every stamped image and video stored in your account, deleted from cloud storage."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Your projects and their contents"})," â project records, captions, notes, voice memos, custom stamp fields, and capture sessions."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Teams and collaboration data"})," â team memberships, collaborator entries, and any pending invitations you created."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Notifications and device data"})," â push notification tokens and notification history."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Activity and usage records"})," â the events tied to your account."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Email records"})," â your address is removed from our mailing records so you stop receiving mail from us."]})]}),o.jsx("p",{className:"text-muted-foreground mb-4",children:"Deletion means deletion. We do not deactivate, freeze, or pause the account instead."})]}),o.jsxs(ie,{heading:"What is kept, and for how long",children:[o.jsx("p",{className:"text-muted-foreground mb-4",children:"We would rather be precise about this than imply your data evaporates instantly:"}),o.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:[o.jsxs("li",{children:[o.jsx("strong",{children:"Encrypted backups â up to 7 days."})," Our database is backed up daily on a rolling seven-day window. Your records are removed from live systems immediately, and age out of backups as that rotation completes. We do not restore deleted accounts from backups."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Shared project content."})," If you uploaded photos into a project owned by someone else, those photos belong to that project and stay with its owner. We delete the content in projects you own."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Limited legal and financial records."})," Where law requires it â tax, accounting, or fraud prevention â we may keep minimal transaction records. These do not include your photos or project content."]}),o.jsxs("li",{children:[o.jsx("strong",{children:"Subscription records held by Apple, Google, or Stripe."})," App store purchases are processed by Apple or Google, and website purchases by Stripe. Deleting your Timestamp It account does not cancel an active subscription â cancel store subscriptions in your Ap
542p Store or Google Play settings, and website subscriptions via Manage subscription in the web app (the Stripe customer portal), or you may continue to be billed."]})]})]}),o.jsx(ie,{heading:"How long it takes",children:o.jsxs("ul",{className:"list-disc pl-6 text-muted-foreground mb-4 space-y-2",children:[o.jsx("li",{children:"We acknowledge your request within five business days."}),o.jsx("li",{children:"Once we have confirmed the request came from you, we complete the deletion within 30 days, and usually much sooner."}),o.jsx("li",{children:"We email you when it is done."})]})}),o.jsxs(ie,{heading:"Before you delete",children:[o.jsx("p",{className:"text-muted-foreground mb-4",children:"Deletion is permanent and cannot be undone. If your photos are records you may need later â job documentation, inspection evidence, before-and-after proof â export them first. You can export a project to PDF or spreadsheet from within the app."}),o.jsx("p",{className:"text-muted-foreground mb-4",children:'If you only want to stop receiving email from us, you do not need to delete your account. Reply "unsubscribe" to any message, or email us and we will remove you.'})]}),o.jsx(ie,{heading:"Questions",children:o.jsxs("p",{className:"text-muted-foreground mb-4",children:["Email"," ",o.jsx("a",{href:"mailto:[email protected]",className:"text-primary hover:underline",children:"[email protected]"})," ","if you would rather request deletion by email, or if you have questions about what happens to your data. See also our"," ",o.jsx("a",{href:t("/privacy-policy"),className:"text-primary hover:underline",children:"Privacy Policy"})," ","and"," ",o.jsx("a",{href:t("/trust"),className:"text-primary hover:underline",children:"Trust Center"}),"."]})})]})},dL="https://cltzdogxniqntvuxnhdv.supabase.co/functions/v1/team-pricing-inquiry",uL=[{value:"general",label:"General question"},{value:"team-pricing",label:"Team pricing"},{value:"bug",label:"Something is broken"},{value:"press",label:"Press or partnership"}],hL=()=>{const e=re(),t=qe(),[n,r]=h.useState("general"),[a,s]=h.useState(!1),[i,l]=h.useState(""),[c,d]=h.useState(""),u=n==="team-pricing",m=async p=>{p.preventDefault();const f=p.currentTarget,w=new FormData(f);l(""),d(""),s(!0);try{const y=await fetch(dL,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({topic:n,name:w.get("name"),email:w.get("email"),company:w.get("company"),teamSize:w.get("teamSize"),message:w.get("message"),website:w.get("website")})}),v=await y.json().catch(()=>({}));if(!y.ok){d(v.error??e("Something went wrong. Please email [email protected]."));return}f.reset(),r("general"),l(e("Message sent. We usually reply the same day."))}catch{d(e("Could not reach the server. Please email [email protected]."))}finally{s(!1)}};return o.jsxs("div",{className:"min-h-screen bg-background",children:[o.jsx(Ve,{routeKey:"/contact"}),o.jsx(Ze,{}),o.jsx("main",{className:"container py-12 md:py-20",children:o.jsxs("div",{className:"max-w-2xl mx-auto",children:[o.jsxs("div",{className:"text-center mb-10",children:[o.jsx("span",{className:"section-eyebrow",children:e("Contact")}),o.jsx("h1",{className:"text-4xl md:text-5xl font-bold tracking-tight mt-4 mb-4",children:e("Get in touch")}),o.jsx("p",{className:"text-muted-foreground",children:e("Questions about the app, team pricing, or something not working â send it here and a real person will read it.")})]}),o.jsxs("form",{className:"space-y-4",onSubmit:m,children:[o.jsx("input",{type:"text",name:"website",tabIndex:-1,autoComplete:"off","aria-hidden":"true",className:"hidden"}),o.jsxs("div",{children:[o.jsx("label",{htmlFor:"contact-topic",className:"block text-sm font-medium mb-2",children:e("What is this about?")}),o.jsxs(Ij,{value:n,onValueChange:r,children:[o.jsx(Dp,{id:"contact-topic",children:o.jsx(pM,{})}),o.jsx(Mp,{children:uL.map(p=>o.jsx(_p,{value:p.value,children:e(p.label)},p.value))})]})]}),o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[o.jsxs("div",{children:[o.jsx("label",{htmlFor:"contact-name",className:"block text-sm font-medium mb-2",children:e("Your name")}
542),o.jsx(Dn,{id:"contact-name",name:"name",required:!0})]}),o.jsxs("div",{children:[o.jsx("label",{htmlFor:"contact-email",className:"block text-sm font-medium mb-2",children:e("Email")}),o.jsx(Dn,{id:"contact-email",name:"email",type:"email",required:!0})]})]}),u&&o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[o.jsxs("div",{children:[o.jsx("label",{htmlFor:"contact-company",className:"block text-sm font-medium mb-2",children:e("Company")}),o.jsx(Dn,{id:"contact-company",name:"company",required:u})]}),o.jsxs("div",{children:[o.jsx("label",{htmlFor:"contact-team-size",className:"block text-sm font-medium mb-2",children:e("Team size")}),o.jsx(Dn,{id:"contact-team-size",name:"teamSize",placeholder:e("e.g. 10-25"),required:u})]})]}),o.jsxs("div",{children:[o.jsx("label",{htmlFor:"contact-message",className:"block text-sm font-medium mb-2",children:e(u?"Anything else? (optional)":"How can we help?")}),o.jsx(hd,{id:"contact-message",name:"message",rows:6,required:!u})]}),i?o.jsx("p",{className:"text-sm text-primary",children:i}):null,c?o.jsx("p",{className:"text-sm text-destructive",children:c}):null,o.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 sm:items-center sm:justify-between",children:[o.jsxs("p",{className:"text-sm text-muted-foreground",children:[e("Prefer your own email client?")," ",o.jsx("a",{href:"mailto:[email protected]",className:"text-primary hover:underline",children:"[email protected]"})]}),o.jsxs(ne,{type:"submit",variant:"hero",className:"gap-2",disabled:a,children:[o.jsx(sp,{className:"w-4 h-4"}),e(a?"Sending...":"Send Message")]})]})]}),o.jsxs("div",{className:"mt-12 pt-8 border-t text-sm text-muted-foreground space-y-2",children:[o.jsx("p",{children:e("Looking for something specific?")}),o.jsxs("ul",{className:"list-disc pl-6 space-y-1",children:[o.jsx("li",{children:o.jsx("a",{href:t("/pricing#pricing-inquiry"),className:"text-primary hover:underline",children:e("Team pricing and volume discounts")})}),o.jsx("li",{children:o.jsx("a",{href:t("/how-it-works"),className:"text-primary hover:underline",children:e("How Timestamp It works")})}),o.jsx("li",{children:o.jsx("a",{href:t("/delete-account"),className:"text-primary hover:underline",children:e("Delete your account and data")})}),o.jsx("li",{children:o.jsx("a",{href:t("/trust"),className:"text-primary hover:underline",children:e("Security, privacy, and procurement questions")})})]})]})]})}),o.jsx(et,{})]})},mL="/assets/app-icon-DC6B8agH.webp",Ax="https://app.timestampitapp.com",Ex=({kind:e="team"})=>{const{code:t}=pi(),n=re(),a=t?`${Ax}/${e==="team"?"team-invite":"invite"}/${encodeURIComponent(t)}`:Ax;return h.useEffect(()=>{window.location.replace(a)},[a]),o.jsxs("div",{className:"min-h-screen bg-background px-4 py-16",children:[o.jsx(Ve,{routeKey:e==="team"?"/team-invite/:code":"/invite/:code"}),o.jsxs("div",{className:"max-w-md mx-auto text-center",children:[o.jsx("img",{src:mL,srcSet:td,sizes:"48px",alt:"Timestamp It",className:"w-12 h-12 rounded-xl mx-auto mb-6"}),o.jsx("h1",{className:"text-2xl font-bold mb-3",children:n("Opening your inviteâ¦")}),o.jsx("p",{className:"text-muted-foreground mb-6",children:n("Taking you to Timestamp It to accept your team invite.")}),o.jsx("a",{href:a,className:"inline-flex items-center justify-center rounded-full px-8 py-4 text-base font-semibold bg-primary text-primary-foreground transition hover:bg-primary/90",children:n("Continue to your invite")})]})]})};/*! 543 * hash-wasm (https://www.npmjs.com/package/hash-wasm) 544 * (c) Dani Biro 545 * @license MIT 546 */function Al(e,t,n,r){function a(s){return s instanceof n?s:new n(function(i){i(s)})}return new(n||(n=Promise))(function(s,i){function l(u){try{d(r.next(u))}catch(m){i(m)}}function c(u){try{d(r.throw(u))}catch(m){i(m)}}function d(u){u.done?s(u.value):a(u.value).then(l,c)}d((r=r.apply(e,[])).next())})}class ze{constructor(){this.mutex=Promise.resolve()}lock(){let t=()=>{};return this.mutex=this.mutex.then(()=>new Promise(t)),new Promise(n=>{t=n})}dispatch(t){return Al(this,void 0,void 0,function*(){const n=yield this.lock();try{return yield Promise.resolve(t())}finally{n()}})}}var yu;function pL(){return typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global}const rm=pL(),xu=(yu=rm.Buffer)!==null&&yu!==void 0?yu:null,fL=rm.TextEncoder?new rm.TextEncoder:null;function yN(e,t){return(e&15)+(e>>6|e>>3&8)<<4|(t&15)+(t>>6|t>>3&8)}function gL(e,t){const n=t.length>>1;for(let r=0;r<n;r++){const a=r<<1;e[r]=yN(t.charCodeAt(a),t.charCodeAt(a+1))}}function yL(e,t){if(e.length!==t.length*2)return!1;for(let n=0;n<t.length;n++){const r=n<<1;if(t[n]!==yN(e.charCodeAt(r),e.charCodeAt(r+1)))return!1}return!0}const Sx=87,Ix=48;function kx(e,t,n){let r=0;for(let a=0;a<n;a++){let s=t[a]>>>4;e[r++]=s>9?s+Sx:s+Ix,s=t[a]&15,e[r++]=s>9?s+Sx:s+Ix}return String.fromCharCode.apply(null,e)}const Cx=xu!==null?e=>{if(typeof e=="string"){const t=xu.from(e,"utf8");return new Uint8Array(t.buffer,t.byteOffset,t.length)}if(xu.isBuffer(e))return new Uint8Array(e.buffer,e.byteOffset,e.length);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Invalid data type!")}:e=>{if(typeof e=="string")return fL.encode(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Invalid data type!")},Tx="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
vendor: 3,029 bytes, line 546
546+/",ps=new Uint8Array(256);for(let e=0;e<Tx.length;e++)ps[Tx.charCodeAt(e)]=e;function xL(e){let t=Math.floor(e.length*.75);const n=e.length;return e[n-1]==="="&&(t-=1,e[n-2]==="="&&(t-=1)),t}function vL(e){const t=xL(e),n=e.length,r=new Uint8Array(t);let a=0;for(let s=0;s<n;s+=4){const i=ps[e.charCodeAt(s)],l=ps[e.charCodeAt(s+1)],c=ps[e.charCodeAt(s+2)],d=ps[e.charCodeAt(s+3)];r[a]=i<<2|l>>4,a+=1,r[a]=(l&15)<<4|c>>2,a+=1,r[a]=(c&3)<<6|d&63,a+=1}return r}const ol=16*1024,ss=4,bL=new ze,vu=new Map;function wL(e,t){return Al(this,void 0,void 0,function*(){let n=null,r=null,a=!1;if(typeof WebAssembly>"u")throw new Error("WebAssembly is not supported in this environment!");const s=(A,E=0)=>{r.set(A,E)},i=()=>r,l=()=>n.exports,c=A=>{n.exports.Hash_SetMemorySize(A);const E=n.exports.Hash_GetBuffer(),S=n.exports.memory.buffer;r=new Uint8Array(S,E,A)},d=()=>new DataView(n.exports.memory.buffer).getUint32(n.exports.STATE_SIZE,!0),u=bL.dispatch(()=>Al(this,void 0,void 0,function*(){if(!vu.has(e.name)){const E=vL(e.data),S=WebAssembly.compile(E);vu.set(e.name,S)}const A=yield vu.get(e.name);n=yield WebAssembly.instantiate(A,{})})),m=()=>Al(this,void 0,void 0,function*(){n||(yield u);const A=n.exports.Hash_GetBuffer(),E=n.exports.memory.buffer;r=new Uint8Array(E,A,ol)}),p=(A=null)=>{a=!0,n.exports.Hash_Init(A)},f=A=>{let E=0;for(;E<A.length;){const S=A.subarray(E,E+ol);E+=S.length,r.set(S),n.exports.Hash_Update(S.length)}},w=A=>{if(!a)throw new Error("update() called before init()");const E=Cx(A);f(E)},y=new Uint8Array(t*2),v=(A,E=null)=>{if(!a)throw new Error("digest() called before init()");return a=!1,n.exports.Hash_Final(E),A==="binary"?r.slice(0,t):kx(y,r,t)},x=()=>{if(!a)throw new Error("save() can only be called after init() and before digest()");const A=n.exports.Hash_GetState(),E=d(),S=n.exports.memory.buffer,D=new Uint8Array(S,A,E),R=new Uint8Array(ss+E);return gL(R,e.hash),R.set(D,ss),R},g=A=>{if(!(A instanceof Uint8Array))throw new Error("load() expects an Uint8Array generated by save()");const E=n.exports.Hash_GetState(),S=d(),D=ss+S,R=n.exports.memory.buffer;if(A.length!==D)throw new Error(`Bad state length (expected ${D} bytes, got ${A.length})`);if(!yL(e.hash,A.subarray(0,ss)))throw new Error("This state was written by an incompatible hash implementation");const $=A.subarray(ss);new Uint8Array(R,E,S).set($),a=!0},b=A=>typeof A=="string"?A.length<ol/4:A.byteLength<ol;let j=b;switch(e.name){case"argon2":case"scrypt":j=()=>!0;break;case"blake2b":case"blake2s":j=(A,E)=>E<=512&&b(A);break;case"blake3":j=(A,E)=>E===0&&b(A);break;case"xxhash64":case"xxhash3":case"xxhash128":case"crc64":j=()=>!1;break}const N=(A,E=null,S=null)=>{if(!j(A,E))return p(E),w(A),v("hex",S);const D=Cx(A);return r.set(D),n.exports.Hash_Calculate(D.length,E,S),kx(y,r,t)};return yield m(),{getMemory:i,writeMemory:s,getExports:l,setMemorySize:c,init:p,update:w,digest:v,save:x,load:g,calculate:N,hashLength:t}})}new ze;new ze;new ze;new ze;new ze;new ze;new ze;new ze;new ze;new ze;new ze;var jL="sha256",NL=
vendor: 12,923 bytes, line 546
546"AGFzbQEAAAABEQRgAAF/YAF/AGAAAGACf38AAwgHAAEBAQIAAwUEAQECAgYOAn8BQfCJBQt/AEGACAsHcAgGbWVtb3J5AgAOSGFzaF9HZXRCdWZmZXIAAAlIYXNoX0luaXQAAQtIYXNoX1VwZGF0ZQACCkhhc2hfRmluYWwABA1IYXNoX0dldFN0YXRlAAUOSGFzaF9DYWxjdWxhdGUABgpTVEFURV9TSVpFAwEKnEoHBQBBgAkLnQEAQQBCADcDwIkBQQBBHEEgIABB4AFGIgAbNgLoiQFBAEKnn+anxvST/b5/Qquzj/yRo7Pw2wAgABs3A+CJAUEAQrGWgP6fooWs6ABC/6S5iMWR2oKbfyAAGzcD2IkBQQBCl7rDg5Onlod3QvLmu+Ojp/2npX8gABs3A9CJAUEAQti9loj8oLW+NkLnzKfQ1tDrs7t/IAAbNwPIiQEL7wICAX4Gf0EAQQApA8CJASIBIACtfDcDwIkBAkACQAJAIAGnQT9xIgINAEGACSEDDAELAkBBwAAgAmsiBCAAIAQgAEkbIgNFDQAgA0EDcSEFIAJBgIkBaiEGQQAhAgJAIANBBEkNACADQfwAcSEHQQAhAgNAIAYgAmoiAyACQYAJai0AADoAACADQQFqIAJBgQlqLQAAOgAAIANBAmogAkGCCWotAAA6AAAgA0EDaiACQYMJai0AADoAACAHIAJBBGoiAkcNAAsLIAVFDQADQCAGIAJqIAJBgAlqLQAAOgAAIAJBAWohAiAFQX9qIgUNAAsLIAAgBEkNAUGAiQEQAyAAIARrIQAgBEGACWohAwsCQCAAQcAASQ0AA0AgAxADIANBwABqIQMgAEFAaiIAQT9LDQALCyAARQ0AQQAhAkEAIQUDQCACQYCJAWogAyACai0AADoAACACQQFqIQIgACAFQQFqIgVB/wFxSw0ACwsLoz4BRX9BACAAKAI8IgFBGHQgAUGA/gNxQQh0ciABQQh2QYD+A3EgAUEYdnJyIgFBGXcgAUEOd3MgAUEDdnMgACgCOCICQRh0IAJBgP4DcUEIdHIgAkEIdkGA/gNxIAJBGHZyciICaiAAKAIgIgNBGHQgA0GA/gNxQQh0ciADQQh2QYD+A3EgA0EYdnJyIgRBGXcgBEEOd3MgBEEDdnMgACgCHCIDQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZyciIFaiAAKAIEIgNBGHQgA0GA/gNxQQh0ciADQQh2QYD+A3EgA0EYdnJyIgZBGXcgBkEOd3MgBkEDdnMgACgCACIDQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZyciIHaiAAKAIkIgNBGHQgA0GA/gNxQQh0ciADQQh2QYD+A3EgA0EYdnJyIghqIAJBD3cgAkENd3MgAkEKdnNqIgNqIAAoAhgiCUEYdCAJQYD+A3FBCHRyIAlBCHZBgP4DcSAJQRh2cnIiCkEZdyAKQQ53cyAKQQN2cyAAKAIUIglBGHQgCUGA/gNxQQh0ciAJQQh2QYD+A3EgCUEYdnJyIgtqIAJqIAAoAhAiCUEYdCAJQYD+A3FBCHRyIAlBCHZBgP4DcSAJQRh2cnIiDEEZdyAMQQ53cyAMQQN2cyAAKAIMIglBGHQgCUGA/gNxQQh0ciAJQQh2QYD+A3EgCUEYdnJyIg1qIAAoAjAiCUEYdCAJQYD+A3FBCHRyIAlBCHZBgP4DcSAJQRh2cnIiDmogACgCCCIJQRh0IAlBgP4DcUEIdHIgCUEIdkGA/gNxIAlBGHZyciIPQRl3IA9BDndzIA9BA3ZzIAZqIAAoAigiCUEYdCAJQYD+A3FBCHRyIAlBCHZBgP4DcSAJQRh2cnIiEGogAUEPdyABQQ13cyABQQp2c2oiCUEPdyAJQQ13cyAJQQp2c2oiEUEPdyARQQ13cyARQQp2c2oiEkEPdyASQQ13cyASQQp2c2oiE2ogACgCNCIUQRh0IBRBgP4DcUEIdHIgFEEIdkGA/gNxIBRBGHZyciIVQRl3IBVBDndzIBVBA3ZzIA5qIBJqIAAoAiwiAEEYdCAAQYD+A3FBCHRyIABBCHZBgP4DcSAAQRh2cnIiFkEZdyAWQQ53cyAWQQN2cyAQaiARaiAIQRl3IAhBDndzIAhBA3ZzIARqIAlqIAVBGXcgBUEOd3MgBUEDdnMgCmogAWogC0EZdyALQQ53cyALQQN2cyAMaiAVaiANQRl3IA1BDndzIA1BA3ZzIA9qIBZqIANBD3cgA0ENd3MgA0EKdnNqIhRBD3cgFEENd3MgFEEKdnNqIhdBD3cgF0ENd3MgF0EKdnNqIhhBD3cgGEENd3MgGEEKdnNqIhlBD3cgGUENd3MgGUEKdnNqIhpBD3cgGkENd3MgGkEKdnNqIhtBD3cgG0ENd3MgG0EKdnNqIhxBGXcgHEEOd3MgHEEDdnMgAkEZdyACQQ53cyACQQN2cyAVaiAYaiAOQRl3IA5BDndzIA5BA3ZzIBZqIBdqIBBBGXcgEEEOd3MgEEEDdnMgCGogFGogE0EPdyATQQ13cyATQQp2c2oiHUEPdyAdQQ13cyAdQQp2c2oiHkEPdyAeQQ13cyAeQQp2c2oiH2ogE0EZdyATQQ53cyATQQN2cyAYaiADQRl3IANBDndzIANBA3ZzIAFqIBlqIB9BD3cgH0ENd3MgH0EKdnNqIiBqIBJBGXcgEkEOd3MgEkEDdnMgF2ogH2ogEUEZdyARQQ53cyARQQN2cyAUaiAeaiAJQRl3IAlBDndzIAlBA3ZzIANqIB1qIBxBD3cgHEENd3MgHEEKdnNqIiFBD3cgIUENd3MgIUEKdnNqIiJBD3cgIkENd3MgIkEKdnNqIiNBD3cgI0ENd3MgI0EKdnNqIiRqIBtBGXcgG0EOd3MgG0EDdnMgHmogI2ogGkEZdyAaQQ53cyAaQQN2cyAdaiAiaiAZQRl3IBlBDndzIBlBA3ZzIBNqICFqIBhBGXcgGEEOd3MgGEEDdnMgEmogHGogF0EZdyAXQQ53cyAXQQN2cyARaiAbaiAUQRl3IBRBDndzIBRBA3ZzIAlqIBpqICBBD3cgIEENd3MgIEEKdnNqIiVBD3cgJUENd3MgJUEKdnNqIiZBD3cgJkENd3MgJkEKdnNqIidBD3cgJ0ENd3MgJ0EKdnNqIihBD3cgKEENd3MgKEEKdnNqIilBD3cgKUENd3MgKUEKdnNqIipBD3cgKkENd3MgKkEKdnNqIitBGXcgK0EOd3MgK0EDdnMgH0EZdyAfQQ53cyAfQQN2cyAbaiAnaiAeQRl3IB5BDndzIB5BA3ZzIBpqICZqIB1BGXcgHUEOd3MgHUEDdnMgGWogJWogJEEPdyAkQQ13cyAkQQp2c2oiLEEPdyAsQQ13cyAsQQp2c2oiLUEPdyAtQQ13cyAtQQp2c2oiLmogJEEZdyAkQQ53cyAkQQN2cyAnaiAgQRl3ICBBDndzICBBA3ZzIBxqIChqIC5BD3cgLkENd3MgLkEKdnNqIi9qICNBGXcgI0EOd3MgI0EDdnMgJmogLmogIkEZdyAiQQ53cyAiQQN2cyAlaiAtaiAhQRl3ICFBDndzICFBA3ZzICBqICxqICtBD3cgK0ENd3MgK0EKdnNqIjBBD3cgMEENd3MgMEEKdnNqIjFBD3cgMUENd3MgMUEKdnNqIjJBD3cgMkENd3MgMkEKdnNqIjNqICpBGXcgKkEOd3MgKkEDdnMgLWogMmogKUEZdyApQQ53cyApQQN2cyAsaiAxaiAoQRl3IChBDndzIChBA3ZzICRqIDBqICdBGXcgJ0EOd3MgJ0EDdnMgI2ogK2ogJkEZdyAmQQ53cyAmQQN2cyAiaiAqaiAlQRl3ICVBDndzICVBA3ZzICFqIClqIC9BD3cgL0ENd3MgL0EKdnNqIjRBD3cgNEENd3MgNEEKdnNqIjVBD3cgNUENd3MgNUEKdnNqIjZBD3cgNkENd3MgNkEKdnNqIjdBD3cgN0ENd3MgN0EKdnNqIjhBD3cgOEENd3MgOEEKdnNqIjlBD3cgOUENd3MgOUEKdnNqIjogOCA0IC4gLCAhIBsgGSADIA4gBEEAKALYiQEiO0EadyA7QRV3cyA7QQd3c0EAKALkiQEiPGpBACgC4IkBIj1BACgC3IkBIj5zIDtxID1zaiAHakGY36iUBGoiB0EAKALUiQEiP2oiACAMaiA7IA1qID4gD2ogPSAGaiAAID4gO3NxID5zaiAAQRp3IABBFXdzIABBB3dzakGRid2JB2oiQEEAKALQiQEiQWoiDCAAIDtzcSA7c2ogDEEadyAMQRV3cyAMQQd3c2pBz/eDrntqIkJBACgCzIkBIkNqIg0gDCAAc3EgAHNqIA1BGncgDUEVd3MgDUEHd3NqQaW3181+aiJEQQAoAsiJASIAaiIPIA0gDHNxIAxzaiAPQRp3IA9BFXdzIA9BB3dzakHbhNvKA2oiRSBBIEMgAHNxIEMgAHFzIABBHncgAEETd3MgAEEKd3NqIAdqIgZqIgdqIAUgD2ogCiANaiALIAxqIAcgDyANc3EgDXNqIAdBGncgB0EVd3MgB0EHd3NqQfGjxM8FaiIKIAYgAHMgQ3EgBiAAcXMgBkEedyAGQRN3cyAGQQp3c2ogQGoiDGoiBCAHIA9zcSAPc2ogBEEadyAEQRV3cyAEQQd3c2pBpIX+kXlqIgsgDCAGcyAAcSAMIAZxcyAMQR53IAxBE3dzIAxBCndzaiBCaiINaiIPIAQgB3NxIAdzaiAPQRp3IA9BFXdzIA9BB3dzakHVvfHYemoiQCANIAxzIAZxIA0gDHFzIA1BHncgDUETd3MgDUEKd3NqIERqIgZqIgcgDyAEc3EgBHNqIAdBGncgB0EVd3MgB0EHd3NqQZjVnsB9aiJCIAYgDXMgDHEgBiANcXMgBkEedyAGQRN3cyAGQQp3c2ogRWoiDGoiBWogFiAHaiAQIA9qIAggBGogBSAHIA9zcSAPc2ogBUEadyAFQRV3cyAFQQd3c2pBgbaNlAFqIgggDCAGcyANcSAMIAZxcyAMQR53IAxBE3dzIAxBCndzaiAKaiINaiIPIAUgB3NxIAdzaiAPQRp3IA9BFXdzIA9BB3dzakG+i8ahAmoiDiANIAxzIAZxIA0gDHFzIA1BHncgDUETd3MgDUEKd3NqIAtqIgZqIgcgDyAFc3EgBXNqIAdBGncgB0EVd3MgB0EHd3NqQcP7sagFaiIQIAYgDXMgDHEgBiANcXMgBkEedyAGQRN3cyAGQQp3c2ogQGoiDGoiBCAHIA9zcSAPc2ogBEEadyAEQRV3cyAEQQd3c2pB9Lr5lQdqIhYgDCAGcyANcSAMIAZxcyAMQR53IAxBE3dzIAxBCndzaiBCaiINaiIFaiABIARqIAIgB2ogFSAPaiAFIAQgB3NxIAdzaiAFQRp3IAVBFXdzIAVBB3dzakH+4/qGeGoiByANIAxzIAZxIA0gDHFzIA1BHncgDUETd3MgDUEKd3NqIAhqIgFqIgYgBSAEc3EgBHNqIAZBGncgBkEVd3MgBkEHd3NqQaeN8N55aiIEIAEgDXMgDHEgASANcXMgAUEedyABQRN3cyABQQp3c2ogDmoiAmoiDCAGIAVzcSAFc2ogDEEadyAMQRV3cyAMQQd3c2pB9OLvjHxqIgUgAiABcyANcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiAQaiIDaiINIAwgBnNxIAZzaiANQRp3IA1BFXdzIA1BB3dzakHB0+2kfmoiCCADIAJzIAFxIAMgAnFzIANBHncgA0ETd3MgA0EKd3NqIBZqIgFqIg8gF2ogESANaiAUIAxqIAkgBmogDyANIAxzcSAMc2ogD0EadyAPQRV3cyAPQQd3c2pBho/5/X5qIgYgASADcyACcSABIANxcyABQR53IAFBE3dzIAFBCndzaiAHaiICaiIJIA8gDXNxIA1zaiAJQRp3IAlBFXdzIAlBB3dzakHGu4b+AGoiDCACIAFzIANxIAIgAXFzIAJBHncgAkETd3MgAkEKd3NqIARqIgNqIhEgCSAPc3EgD3NqIBFBGncgEUEVd3MgEUEHd3NqQczDsqACaiINIAMgAnMgAXEgAyACcXMgA0EedyADQRN3cyADQQp3c2ogBWoiAWoiFCARIAlzcSAJc2ogFEEadyAUQRV3cyAUQQd3c2pB79ik7wJqIg8gASADcyACcSABIANxcyABQR53IAFBE3dzIAFBCndzaiAIaiICaiIXaiATIBRqIBggEWogEiAJaiAXIBQgEXNxIBFzaiAXQRp3IBdBFXdzIBdBB3dzakGqidLTBGoiGCACIAFzIANxIAIgAXFzIAJBHncgAkETd3MgAkEKd3NqIAZqIgNqIgkgFyAUc3EgFHNqIAlBGncgCUEVd3MgCUEHd3NqQdzTwuUFaiIUIAMgAnMgAXEgAyACcXMgA0EedyADQRN3cyADQQp3c2ogDGoiAWoiESAJIBdzcSAXc2ogEUEadyARQRV3cyARQQd3c2pB2pHmtwdqIhcgASADcyACcSABIANxcyABQR53IAFBE3dzIAFBCndzaiANaiICaiISIBEgCXNxIAlzaiASQRp3IBJBFXdzIBJBB3dzakHSovnBeWoiGSACIAFzIANxIAIgAXFzIAJBHncgAkETd3MgAkEKd3NqIA9qIgNqIhNqIB4gEmogGiARaiAdIAlqIBMgEiARc3EgEXNqIBNBGncgE0EVd3MgE0EHd3NqQe2Mx8F6aiIaIAMgAnMgAXEgAyACcXMgA0EedyADQRN3cyADQQp3c2ogGGoiAWoiCSATIBJzcSASc2ogCUEadyAJQRV3cyAJQQd3c2pByM+MgHtqIhggASADcyACcSABIANxcyABQR53IAFBE3dzIAFBCndzaiAUaiICaiIRIAkgE3NxIBNzaiARQRp3IBFBFXdzIBFBB3dzakHH/+X6e2oiFCACIAFzIANxIAIgAXFzIAJBHncgAkETd3MgAkEKd3NqIBdqIgNqIhIgESAJc3EgCXNqIBJBGncgEkEVd3MgEkEHd3NqQfOXgLd8aiIXIAMgAnMgAXEgAyACcXMgA0EedyADQRN3cyADQQp3c2ogGWoiAWoiE2ogICASaiAcIBFqIB8gCWogEyASIBFzcSARc2ogE0EadyATQRV3cyATQQd3c2pBx6KerX1qIhkgASADcyACcSABIANxcyABQR53IAFBE3dzIAFBCndzaiAaaiICaiIJIBMgEnNxIBJzaiAJQRp3IAlBFXdzIAlBB3dzakHRxqk2aiIaIAIgAXMgA3EgAiABcXMgAkEedyACQRN3cyACQQp3c2ogGGoiA2oiESAJIBNzcSATc2ogEUEadyARQRV3cyARQQd3c2pB59KkoQFqIhggAyACcyABcSADIAJxcyADQR53IANBE3dzIANBCndzaiAUaiIBaiISIBEgCXNxIAlzaiASQRp3IBJBFXdzIBJBB3dzakGFldy9AmoiFCABIANzIAJxIAEgA3FzIAFBHncgAUETd3MgAUEKd3NqIBdqIgJqIhMgI2ogJiASaiAiIBFqICUgCWogEyASIBFzcSARc2ogE0EadyATQRV3cyATQQd3c2pBuMLs8AJqIhcgAiABcyADcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiAZaiIDaiIJIBMgEnNxIBJzaiAJQRp3IAlBFXdzIAlBB3dzakH827HpBGoiGSADIAJzIAFxIAMgAnFzIANBHncgA0ETd3MgA0EKd3NqIBpqIgFqIhEgCSATc3EgE3NqIBFBGncgEUEVd3MgEUEHd3NqQZOa4JkFaiIaIAEgA3MgAnEgASADcXMgAUEedyABQRN3cyABQQp3c2ogGGoiAmoiEiARIAlzcSAJc2ogEkEadyASQRV3cyASQQd3c2pB1OapqAZqIhggAiABcyADcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiAUaiIDaiITaiAoIBJqICQgEWogJyAJaiATIBIgEXNxIBFzaiATQRp3IBNBFXdzIBNBB3dzakG7laizB2oiFCADIAJzIAFxIAMgAnFzIANBHncgA0ETd3MgA0EKd3NqIBdqIgFqIgkgEyASc3EgEnNqIAlBGncgCUEVd3MgCUEHd3NqQa6Si454aiIXIAEgA3MgAnEgASADcXMgAUEedyABQRN3cyABQQp3c2ogGWoiAmoiESAJIBNzcSATc2ogEUEadyARQRV3cyARQQd3c2pBhdnIk3lqIhkgAiABcyADcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiAaaiIDaiISIBEgCXNxIAlzaiASQRp3IBJBFXdzIBJBB3dzakGh0f+VemoiGiADIAJzIAFxIAMgAnFzIANBHncgA0ETd3MgA0EKd3NqIBhqIgFqIhNqICogEmogLSARaiApIAlqIBMgEiARc3EgEXNqIBNBGncgE0EVd3MgE0EHd3NqQcvM6cB6aiIYIAEgA3MgAnEgASADcXMgAUEedyABQRN3cyABQQp3c2ogFGoiAmoiCSATIBJzcSASc2ogCUEadyAJQRV3cyAJQQd3c2pB8JauknxqIhQgAiABcyADcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiAXaiIDaiIRIAkgE3NxIBNzaiARQRp3IBFBFXdzIBFBB3dzakGjo7G7fGoiFyADIAJzIAFxIAMgAnFzIANBHncgA0ETd3MgA0EKd3NqIBlqIgFqIhIgESAJc3EgCXNqIBJBGncgEkEVd3MgEkEHd3NqQZnQy4x9aiIZIAEgA3MgAnEgASADcXMgAUEedyABQRN3cyABQQp3c2ogGmoiAmoiE2ogMCASaiAvIBFqICsgCWogEyASIBFzcSARc2ogE0EadyATQRV3cyATQQd3c2pBpIzktH1qIhogAiABcyADcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiAYaiIDaiIJIBMgEnNxIBJzaiAJQRp3IAlBFXdzIAlBB3dzakGF67igf2oiGCADIAJzIAFxIAMgAnFzIANBHncgA0ETd3MgA0EKd3NqIBRqIgFqIhEgCSATc3EgE3NqIBFBGncgEUEVd3MgEUEHd3NqQfDAqoMBaiIUIAEgA3MgAnEgASADcXMgAUEedyABQRN3cyABQQp3c2ogF2oiAmoiEiARIAlzcSAJc2ogEkEadyASQRV3cyASQQd3c2pBloKTzQFqIhcgAiABcyADcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiAZaiIDaiITIDZqIDIgEmogNSARaiAxIAlqIBMgEiARc3EgEXNqIBNBGncgE0EVd3MgE0EHd3NqQYjY3fEBaiIZIAMgAnMgAXEgAyACcXMgA0EedyADQRN3cyADQQp3c2ogGmoiAWoiCSATIBJzcSASc2ogCUEadyAJQRV3cyAJQQd3c2pBzO6hugJqIhogASADcyACcSABIANxcyABQR53IAFBE3dzIAFBCndzaiAYaiICaiIRIAkgE3NxIBNzaiARQRp3IBFBFXdzIBFBB3dzakG1+cKlA2oiGCACIAFzIANxIAIgAXFzIAJBHncgAkETd3MgAkEKd3NqIBRqIgNqIhIgESAJc3EgCXNqIBJBGncgEkEVd3MgEkEHd3NqQbOZ8MgDaiIUIAMgAnMgAXEgAyACcXMgA0EedyADQRN3cyADQQp3c2ogF2oiAWoiE2ogLEEZdyAsQQ53cyAsQQN2cyAoaiA0aiAzQQ93IDNBDXdzIDNBCnZzaiIXIBJqIDcgEWogMyAJaiATIBIgEXNxIBFzaiATQRp3IBNBFXdzIBNBB3dzakHK1OL2BGoiGyABIANzIAJxIAEgA3FzIAFBHncgAUETd3MgAUEKd3NqIBlqIgJqIgkgEyASc3EgEnNqIAlBGncgCUEVd3MgCUEHd3NqQc+U89wFaiIZIAIgAXMgA3EgAiABcXMgAkEedyACQRN3cyACQQp3c2ogGmoiA2oiESAJIBNzcSATc2ogEUEadyARQRV3cyARQQd3c2pB89+5wQZqIhogAyACcyABcSADIAJxcyADQR53IANBE3dzIANBCndzaiAYaiIBaiISIBEgCXNxIAlzaiASQRp3IBJBFXdzIBJBB3dzakHuhb6kB2oiHCABIANzIAJxIAEgA3FzIAFBHncgAUETd3MgAUEKd3NqIBRqIgJqIhNqIC5BGXcgLkEOd3MgLkEDdnMgKmogNmogLUEZdyAtQQ53cyAtQQN2cyApaiA1aiAXQQ93IBdBDXdzIBdBCnZzaiIUQQ93IBRBDXdzIBRBCnZzaiIYIBJqIDkgEWogFCAJaiATIBIgEXNxIBFzaiATQRp3IBNBFXdzIBNBB3dzakHvxpXFB2oiCSACIAFzIANxIAIgAXFzIAJBHncgAkETd3MgAkEKd3NqIBtqIgNqIhEgEyASc3EgEnNqIBFBGncgEUEVd3MgEUEHd3NqQZTwoaZ4aiIbIAMgAnMgAXEgAyACcXMgA0EedyADQRN3cyADQQp3c2ogGWoiAWoiEiARIBNzcSATc2ogEkEadyASQRV3cyASQQd3c2pBiISc5nhqIhkgASADcyACcSABIANxcyABQR53IAFBE3dzIAFBCndzaiAaaiICaiITIBIgEXNxIBFzaiATQRp3IBNBFXdzIBNBB3dzakH6//uFeWoiGiACIAFzIANxIAIgAXFzIAJBHncgAkETd3MgAkEKd3NqIBxqIgNqIhQgPGo2AuSJAUEAID8gAyACcyABcSADIAJxcyADQR53IANBE3dzIANBCndzaiAJaiIBIANzIAJxIAEgA3FzIAFBHncgAUETd3MgAUEKd3NqIBtqIgIgAXMgA3EgAiABcXMgAkEedyACQRN3cyACQQp3c2ogGWoiAyACcyABcSADIAJxcyADQR53IANBE3dzIANBCndzaiAaaiIJajYC1IkBQQAgPSAvQRl3IC9BDndzIC9BA3ZzICtqIDdqIBhBD3cgGEENd3MgGEEKdnNqIhggEWogFCATIBJzcSASc2ogFEEadyAUQRV3cyAUQQd3c2pB69nBonpqIhkgAWoiEWo2AuCJAUEAIEEgCSADcyACcSAJIANxcyAJQR53IAlBE3dzIAlBCndzaiAZaiIBajYC0IkBQQAgPiAwQRl3IDBBDndzIDBBA3ZzIC9qIBdqIDpBD3cgOkENd3MgOkEKdnNqIBJqIBEgFCATc3EgE3NqIBFBGncgEUEVd3MgEUEHd3NqQffH5vd7aiIXIAJqIhJqNgLciQFBACBDIAEgCXMgA3EgASAJcXMgAUEedyABQRN3cyABQQp3c2ogF2oiAmo2AsyJAUEAIDsgNEEZdyA0QQ53cyA0QQN2cyAwaiA4aiAYQQ93IBhBDXdzIBhBCnZzaiATaiASIBEgFHNxIBRzaiASQRp3IBJBFXdzIBJBB3dzakHy8cWzfGoiESADamo2AtiJAUEAIAAgAiABcyAJcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiARamo2AsiJAQuyBgIEfwF+QQAoAsCJASIAQQJ2QQ9xIgFBAnRBgIkBaiICIAIoAgBBfyAAQQN0IgB0QX9zcUGAASAAdHM2AgACQAJAAkAgAUEOSQ0AAkAgAUEORw0AQQBBADYCvIkBC0GAiQEQA0EAIQIMAQsgAUENRg0BIAFBAWohAgsgAiEDAkBBBiACa0EHcSIARQ0AIAIgAGohAyACQQJ0QYCJAWohAQNAIAFBADYCACABQQRqIQEgAEF/aiIADQALCyACQXlqQQdJDQAgA0ECdCEBA0AgAUGYiQFqQgA3AgAgAUGQiQFqQgA3AgAgAUGIiQFqQgA3AgAgAUGAiQFqQgA3AgAgAUEgaiIBQThHDQALC0EAIQFBAEEAKQPAiQEiBKciAEEbdCAAQQt0QYCA/AdxciAAQQV2QYD+A3EgAEEDdEEYdnJyNgK8iQFBACAEQh2IpyIAQRh0IABBgP4DcUEIdHIgAEEIdkGA/gNxIABBGHZycjYCuIkBQYCJARADQQBBACgC5IkBIgBBGHQgAEGA/gNxQQh0ciAAQQh2QYD+A3EgAEEYdnJyNgLkiQFBAEEAKALgiQEiAEEYdCAAQYD+A3FBCHRyIABBCHZBgP4DcSAAQRh2cnI2AuCJAUEAQQAoAtyJASIAQRh0IABBgP4DcUEIdHIgAEEIdkGA/gNxIABBGHZycjYC3IkBQQBBACgC2IkBIgBBGHQgAEGA/gNxQQh0ciAAQQh2QYD+A3EgAEEYdnJyNgLYiQFBAEEAKALUiQEiAEEYdCAAQYD+A3FBCHRyIABBCHZBgP4DcSAAQRh2cnI2AtSJAUEAQQAoAtCJASIAQRh0IABBgP4DcUEIdHIgAEEIdkGA/gNxIABBGHZycjYC0IkBQQBBACgCzIkBIgBBGHQgAEGA/gNxQQh0ciAAQQh2QYD+A3EgAEEYdnJyNgLMiQFBAEEAKALIiQEiAEEYdCAAQYD+A3FBCHRyIABBCHZBgP4DcSAAQRh2cnI2AsiJAQJAQQAoAuiJASICRQ0AQQAhAANAIAFBgAlqIAFByIkBai0AADoAACABQQFqIQEgAiAAQQFqIgBB/wFxSw0ACwsLBgBBgIkBC6MBAEEAQgA3A8CJAUEAQRxBICABQeABRiIBGzYC6IkBQQBCp5/mp8b0k/2+f0Krs4/8kaOz8NsAIAEbNwPgiQFBAEKxloD+n6KFrOgAQv+kuYjFkdqCm38gARs3A9iJAUEAQpe6w4OTp5aHd0Ly5rvjo6f9p6V/IAEbNwPQiQFBAELYvZaI/KC1vjZC58yn0NbQ67O7fyABGzcDyIkBIAAQAhAECwsLAQBBgAgLBHAAAAA=",
vendor: 333 bytes, line 546
546AL="8c18dd94",EL={name:jL,data:NL,hash:AL};new ze;new ze;function SL(){return wL(EL,32).then(e=>{e.init(256);const t={init:()=>(e.init(256),t),update:n=>(e.update(n),t),digest:n=>e.digest(n),save:()=>e.save(),load:n=>(e.load(n),t),blockSize:64,digestSize:32};return t})}new ze;new ze;new ze;new ze;new ze;new ze;new ze;new ze;new ze;
546const IL="https://cltzdogxniqntvuxnhdv.supabase.co",Px="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImNsdHpkb2d4bmlxbnR2dXhuaGR2Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3NjM0MjU4OTIsImV4cCI6MjA3OTAwMTg5Mn0.7DLvgOT0Vn0oMTGMJrpXRNUzukT70L4-4UgL2Eara6U",kL=/^[0-9a-f]{64}$/,CL=/^[0-9a-z]{8,64}$/;async function xN(e,t){const n=await fetch(`${IL}/rest/v1/rpc/${e}`,{method:"POST",headers:{apikey:Px,Authorization:`Bearer ${Px}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok)throw new Error(`Verification lookup failed (${n.status})`);const r=await n.json();return(Array.isArray(r)?r:[r]).filter(Boolean)}async function vN(e){const t=e.trim().toLowerCase();return kL.test(t)?xN("verify_asset_hash",{hash:t}):[]}async function Rx(e){const t=e.trim().toLowerCase();return CL.test(t)?(await xN("get_anchor_by_code",{code:t}))[0]??null:null}async function Dx(e,t=10){const n=[],r=new Set([e.sha256]);let a=e.previous_sha256;for(;a&&n.length<t&&!r.has(a);){r.add(a);const i=(await vN(a)).find(l=>l.sha256===a);if(!i)break;n.push(i),a=i.previous_sha256}return n}const Mx=/timestampitapp\.com\/v\/([0-9a-z]{8,64})/i;async function TL(e){try{const t=await e.slice(0,262144).arrayBuffer(),n=new TextDecoder("latin1").decode(t),r=n.match(Mx);if(r)return r[1].toLowerCase();const s=n.replace(/\u0000/g,"").match(Mx);return s?s[1].toLowerCase():null}catch{return null}}async function PL(e,t){const n=await SL();n.init();const r=8*1024*1024;let a=0;for(;a<e.size;){const i=await e.slice(a,Math.min(a+r,e.size)).arrayBuffer();n.update(new Uint8Array(i)),a+=r,t==null||t(Math.min(a/e.size,1))}return t==null||t(1),n.digest("hex")}const _x={capture:{label:"Verified capture",meaning:"The stamped date came from the device clock at the moment of capture.",tone:"verified"},exif_import:{label:"Device-reported date",meaning:"The stamped date came from the photo's own capture metadata.",tone:"neutral"},manual:{label:"User-entered date",meaning:"The date shown on the stamp was entered by hand.",tone:"neutral"},legacy:{label:"Source not recorded",meaning:"How the stamped date was set is not recorded for this file.",tone:"neutral"}};function Bx(e){return _x[e??"legacy"]??_x.legacy}function Ox(e){return e.existed_since?{at:e.existed_since,kind:"storage",label:"Unmodified on Timestamp It's servers since"}:{at:e.anchored_at,kind:"anchor",label:"Fingerprint anchored"}}function is(e){return e?new Date(e).toLocaleString(void 0,{dateStyle:"medium",timeStyle:"short"}):"â"}function RL(e){return`${e.slice(0,12)}â¦${e.slice(-8)}`}function bN(e){return`https://timestampitapp.com/v/${e}`}const Fx=({mode:e="verify"})=>{const{code:t}=pi(),n=re(),[r,a]=h.useState({state:"idle"}),[s,i]=h.useState(null),[l,c]=h.useState([]),[d,u]=h.useState(e==="code"?"loading":"ready");h.useEffect(()=>{if(e!=="code"||!t)return;let f=!0;return(async()=>{try{const w=await Rx(t);if(!f)return;if(!w){u("missing");return}i(w),u("ready"),ce("verify-link-opened",{source:w.time_source});const y=await Dx(w);f&&c(y)}catch{f&&u("missing")}})(),()=>{f=!1}},[e,t]);const m=h.useCallback(async f=>{try{a({state:"hashing",progress:0,fileName:f.name});const w=await PL(f,x=>a({state:"hashing",progress:Math.round(x*100),fileName:f.name}));a({state:"looking-up",fileName:f.name});const y=await vN(w);if(y.length===0){const x=await TL(f),g=x?await Rx(x):null;ce("verify-no-match",{pointer:g?"resolved":"none"}),a({state:"no-match",fileName:f.name,hash:w,claimed:g});return}const v=[];for(const x of y)v.push({anchor:x,chain:await Dx(x)});ce("verify-match",{source:y[0].time_source}),a({state:"matched",fileName:f.name,hash:w,matches:v})}catch(w){a({state:"error",message:w instanceof Error?w.message:"Something went wrong while checking that file."})}},[]),p=r.state==="hashing"||r.state==="looking-up";return o.jsxs("div",{className:"verify-page min-h-screen bg-background",children:[o.jsx(Ve,{routeKey:e==="code"?"/v/:code":"/verify"}),o.jsx(Ze,{}),o.jsxs("main",{children:[o.jsx("section",{className:"relative pt-32 pb-10",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"max-w-3xl mx-auto text-center",children:[o.jsx("span",{className:"section-eyebrow",children:n("Verification")}),o.jsx("h1",{className:"text-4xl md:text-5xl font-bold tracking-tight mt-4 mb-5",children:n(e==="code"?"Verify this file":"Check a timestamped file")}),o.jsx("p",{className:"section-subtitle",children:n("Every file stamped with Timestamp It gets a SHA-256 fingerprint recorded on our servers. Drop the file here to see whether it matches, and when that fingerprint was witnessed.")})]})})}),o.jsx("section",{className:"pb-20",children:o.jsx("div",{className:"container",children:o.jsxs("div",{className:"max-w-3xl mx-auto
546space-y-6",children:[e==="code"&&o.jsx(OL,{state:d,anchor:s,chain:l}),(e==="verify"||d==="ready")&&o.jsxs("div",{className:"panel rounded-3xl p-6 md:p-8",children:[o.jsx(DL,{busy:p,onFile:m,prompt:n(e==="code"?"Have the file? Confirm it matches this record.":"Drag and drop the file here")}),o.jsx(ML,{}),r.state==="hashing"&&o.jsx(Lx,{label:n("Fingerprinting {fileName}",{fileName:r.fileName}),percent:r.progress}),r.state==="looking-up"&&o.jsx(Lx,{label:n("Looking up the fingerprint"),percent:100}),r.state==="error"&&o.jsx("p",{className:"text-sm text-destructive mt-4 text-center",children:n(r.message)})]}),r.state==="matched"&&o.jsx(_L,{hash:r.hash,fileName:r.fileName,matches:r.matches,expectedHash:(s==null?void 0:s.sha256)??null}),r.state==="no-match"&&o.jsx(BL,{hash:r.hash,fileName:r.fileName,claimed:r.claimed})]})})})]}),o.jsx(et,{})]})};function DL({busy:e,onFile:t,prompt:n}){const r=re();return o.jsxs("div",{onDrop:a=>{var i;a.preventDefault();const s=(i=a.dataTransfer.files)==null?void 0:i[0];s&&!e&&t(s)},onDragOver:a=>a.preventDefault(),className:"rounded-2xl border border-dashed border-border/70 bg-secondary/20 p-8 text-center",children:[o.jsx("p",{className:"font-semibold text-lg mb-2",children:n}),o.jsx("p",{className:"text-muted-foreground mb-4",children:r("Photos and videos of any size. Nothing is uploaded.")}),o.jsx("input",{id:"verify-file",type:"file",className:"hidden",disabled:e,onChange:a=>{var i;const s=(i=a.target.files)==null?void 0:i[0];s&&t(s),a.target.value=""}}),o.jsx(ne,{variant:"outline",asChild:!0,disabled:e,children:o.jsx("label",{htmlFor:"verify-file",className:"cursor-pointer",children:r(e?"Workingâ¦":"Choose file")})})]})}function ML(){const e=re();return o.jsxs("p",{className:"mt-4 flex items-start justify-center gap-2 text-sm text-muted-foreground",children:[o.jsx(ap,{className:"h-4 w-4 mt-0.5 shrink-0"}),o.jsx("span",{children:e("Your file stays on your device. The fingerprint is calculated in your browser, and only those 64 characters are sent to us.")})]})}function Lx({label:e,percent:t}){return o.jsxs("div",{className:"mt-5",children:[o.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground mb-2",children:[o.jsx(Bn,{className:"h-4 w-4 animate-spin"}),e,t<100?` · ${t}%`:""]}),o.jsx("div",{className:"h-1.5 w-full overflow-hidden rounded-full bg-secondary",children:o.jsx("div",{className:"h-full bg-primary transition-all",style:{width:`${t}%`}})})]})}function _L({hash:e,fileName:t,matches:n,expectedHash:r}){const a=re(),s=r!=null&&r!==e;return o.jsxs("div",{className:"space-y-6",children:[o.jsx("div",{className:"panel rounded-3xl p-6 md:p-8",children:o.jsxs("div",{className:"flex items-start gap-3",children:[o.jsx(pI,{className:"h-6 w-6 shrink-0 text-emerald-500"}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("h2",{className:"text-xl font-bold",children:a("This exact file was fingerprinted by Timestamp It")}),o.jsx("p",{className:"text-muted-foreground mt-1 break-words",children:a("{fileName} has not changed by a single byte since it was fingerprinted.",{fileName:t})}),s&&o.jsx("p",{className:"mt-2 text-sm text-amber-600 dark:text-amber-400",children:a("Note: this is a different file from the one this link refers to. It has its own record, shown below.")}),o.jsxs("p",{className:"mt-3 font-mono text-xs text-muted-foreground break-all",children:["SHA-256 ",e]})]})]})}),n.map(({anchor:i,chain:l})=>o.jsx(wN,{anchor:i,chain:l},i.id))]})}function BL({hash:e,fileName:t,claimed:n}){const r=re();return o.jsx("div",{className:"panel rounded-3xl p-6 md:p-8",children:o.jsxs("div",{className:"flex items-start gap-3",children:[o.jsx(NI,{className:"h-6 w-6 shrink-0 text-muted-foreground"}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("h2",{className:"text-xl font-bold",children:r(n?"Not verified":"No fingerprint matches this file")}),n&&o.jsxs("div",{className:"mt-3 rounded-2xl border border-border/70 bg-secondary/30 p-4",children:[o.jsx("p",{className:"text-sm",children:r("These bytes do not match any fingerprint, but the file carries a pointer to a Timestamp It record. Any file can carry any pointer, so this proves nothing on its own.")}
546),o.jsx("p",{className:"text-sm text-muted-foreground mt-3",children:r("If the pointer is genuine, the anchored original is the one below. Download it, drop it here, and you will get a real answer.")}),o.jsxs("div",{className:"mt-3 flex flex-wrap items-center gap-3",children:[o.jsx(ne,{asChild:!0,size:"sm",children:o.jsx("a",{href:bN(n.id),target:"_blank",rel:"noreferrer",children:r("View the record it points to")})}),o.jsx("span",{className:"font-mono text-xs text-muted-foreground",children:n.id})]})]}),o.jsx("p",{className:"text-muted-foreground mt-1",children:r(n?"Re-compression is the usual cause: messaging apps and some transfers re-encode images, which changes every byte while leaving the metadata intact.":"Messaging apps re-compress photos and videos when they send them, and re-compression changes the bytes, so the copy that arrives is not the file that was fingerprinted. That accounts for most no-matches.")}),o.jsxs("div",{className:"mt-4 rounded-2xl bg-secondary/30 p-4",children:[o.jsx("p",{className:"text-sm font-semibold mb-2",children:r("To get the exact file:")}),o.jsxs("ul",{className:"text-sm text-muted-foreground space-y-1.5 list-disc pl-5",children:[o.jsx("li",{children:r("Ask the sender to AirDrop it, or attach it to an email, which keeps the original bytes.")}),o.jsx("li",{children:r("On WhatsApp, ask them to send it as a document rather than as a photo.")}),o.jsx("li",{children:r("Ask for the Timestamp It project share link instead, where the originals live.")}),o.jsx("li",{children:r("If the file was edited or exported anywhere along the way, the edited copy will never match. The original still can.")})]})]}),o.jsxs("p",{className:"mt-4 font-mono text-xs text-muted-foreground break-all",children:[t," · SHA-256 ",e]})]})]})})}function OL({state:e,anchor:t,chain:n}){const r=re();return e==="loading"?o.jsxs("div",{className:"panel rounded-3xl p-8 flex items-center justify-center gap-2 text-muted-foreground",children:[o.jsx(Bn,{className:"h-4 w-4 animate-spin"}),r("Loading recordâ¦")]}):e==="missing"||!t?o.jsxs("div",{className:"panel rounded-3xl p-6 md:p-8",children:[o.jsx("h2",{className:"text-xl font-bold",children:r("No record for this link")}),o.jsx("p",{className:"text-muted-foreground mt-1",children:r("The code may be mistyped. You can still check a file directly below.")})]}):o.jsx(wN,{anchor:t,chain:n,showFingerprint:!0})}function wN({anchor:e,chain:t,showFingerprint:n=!1}){const r=re(),a=Bx(e.time_source),s=Ox(e);return o.jsxs("div",{className:"panel rounded-3xl p-6 md:p-8",children:[o.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[o.jsx(FL,{tier:a}),o.jsx("span",{className:"font-mono text-xs text-muted-foreground",children:bN(e.id)})]}),o.jsx("p",{className:"text-sm text-muted-foreground mt-3",children:r(a.meaning)}),e.matched_original&&o.jsx("p",{className:"mt-3 rounded-xl bg-secondary/40 p-3 text-sm",children:r("You have the unstamped original of a photo that was later stamped. Both versions are covered by this record.")}),o.jsxs("div",{className:"mt-6 space-y-4",children:[e.original_date&&e.original_date!==e.stamped_at&&o.jsx(bu,{icon:o.jsx(zw,{className:"h-4 w-4"}),label:r("Device-reported capture date"),value:is(e.original_date),note:r("Read from the file's own metadata. A claim by the device, not something we witnessed.")}),o.jsx(bu,{icon:o.jsx(CI,{className:"h-4 w-4"}),label:r("Date shown on the stamp"),value:is(e.stamped_at),note:r(a.meaning)}),o.jsx(bu,{icon:o.jsx(ii,{className:"h-4 w-4 text-emerald-500"}),label:r(s.label),value:is(s.at),note:s.kind==="storage"?r("Witnessed by us. The file has been in our storage unchanged since this time."):r("Witnessed by us. The fingerprint reached our servers at this time and cannot be backdated."),emphasis:!0})]}),n&&o.jsxs("p",{className:"mt-6 font-mono text-xs text-muted-foreground break-all",children:["SHA-256 ",e.sha256]}),t.length>0&&o.jsxs("div",{className:"mt-6 border-t border-border/60 pt-5",children:[o.jsxs("h3",{className:"text-sm font-semibold flex items-center gap-2",children:[o.jsx(AI,{className:"h-4 w-4"}),r("Edit history")]}),o.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:r("This file was stamped more than once. Each earlier version has its own fingerprint on re
546cord.")}),o.jsx("ol",{className:"mt-3 space-y-2",children:t.map(i=>o.jsxs("li",{className:"rounded-xl bg-secondary/30 p-3 text-sm",children:[o.jsx("span",{className:"font-medium",children:r(Bx(i.time_source).label)}),o.jsxs("span",{className:"text-muted-foreground",children:[" · ",r("stamped {date}",{date:is(i.stamped_at)})," · ",r("anchored {date}",{date:is(Ox(i).at)})]}),o.jsx("div",{className:"font-mono text-xs text-muted-foreground mt-1",children:RL(i.sha256)})]},i.id))})]})]})}function FL({tier:e}){const t=re(),n=e.tone==="verified"?"bg-emerald-500/15 text-emerald-700 ring-emerald-500/30 dark:text-emerald-300":"bg-secondary text-foreground ring-border";return o.jsxs("span",{className:`inline-flex items-center gap-1.5 rounded-full px-3 py-1 text-sm font-semibold ring-1 ${n}`,children:[e.tone==="verified"&&o.jsx(ii,{className:"h-4 w-4"}),t(e.label)]})}function bu({icon:e,label:t,value:n,note:r,emphasis:a=!1}){return o.jsxs("div",{className:`rounded-2xl p-4 ${a?"bg-emerald-500/10":"bg-secondary/30"}`,children:[o.jsxs("div",{className:"flex items-center gap-2 text-sm font-semibold",children:[e,t]}),o.jsx("div",{className:"mt-1 text-base font-medium",children:n}),o.jsx("div",{className:"mt-1 text-sm text-muted-foreground",children:r})]})}function LL(){return o.jsxs($R,{children:[o.jsx(je,{path:"/",element:o.jsx(l_,{})}),o.jsx(je,{path:"/login-callback",element:o.jsx(h_,{})}),o.jsx(je,{path:"/support",element:o.jsx(M_,{})}),o.jsx(je,{path:"/privacy-policy",element:o.jsx(QB,{})}),o.jsx(je,{path:"/trust",element:o.jsx(nL,{})}),o.jsx(je,{path:"/security",element:o.jsx(rL,{})}),o.jsx(je,{path:"/subprocessors",element:o.jsx(aL,{})}),o.jsx(je,{path:"/accessibility",element:o.jsx(sL,{})}),o.jsx(je,{path:"/terms",element:o.jsx(iL,{})}),o.jsx(je,{path:"/delete-account",element:o.jsx(cL,{})}),o.jsx(je,{path:"/contact",element:o.jsx(hL,{})}),o.jsx(je,{path:"/download",element:o.jsx(ZB,{})}),o.jsx(je,{path:"/pricing",element:o.jsx(KB,{})}),o.jsx(je,{path:"/how-it-works",element:o.jsx(VF,{})}),o.jsx(je,{path:"/timestamp-photo",element:o.jsx(VO,{})}),o.jsx(je,{path:"/photo-metadata-tool",element:o.jsx(lF,{})}),o.jsx(je,{path:"/add-gps-to-photos",element:o.jsx(pB,{})}),o.jsx(je,{path:"/photo-report",element:o.jsx($B,{})}),o.jsx(je,{path:"/before-after-photo",element:o.jsx(wF,{})}),o.jsx(je,{path:"/gigstamper",element:o.jsx(qF,{})}),o.jsx(je,{path:"/compare/:slug",element:o.jsx(XF,{})}),o.jsx(je,{path:"/for/:slug",element:o.jsx(YF,{})}),o.jsx(je,{path:"/blog",element:o.jsx(ZF,{})}),o.jsx(je,{path:"/blog/:slug",element:o.jsx(JF,{})}),o.jsx(je,{path:"/verify",element:o.jsx(Fx,{})}),o.jsx(je,{path:"/v/:code",element:o.jsx(Fx,{mode:"code"})}),o.jsx(je,{path:"/invite/:code",element:o.jsx(Ex,{kind:"project"})}),o.jsx(je,{path:"/team-invite/:code",element:o.jsx(Ex,{})}),o.jsx(je,{path:"*",element:o.jsx(c_,{})})]})}const HL={en:{prompt:"This page is also available in English.",accept:"View in English",dismiss:"Dismiss"},es:{prompt:"Esta página también está disponible en español.",accept:"Ver en español",dismiss:"Descartar"},fr:{prompt:"Cette page est aussi disponible en français.",accept:"Voir en français",dismiss:"Fermer"},hi:{prompt:"यह पà¥à¤ हिनà¥à¤¦à¥ मà¥à¤ à¤à¥ à¤à¤ªà¤²à¤¬à¥à¤§ हà¥à¥¤",accept:"हिनà¥à¤¦à¥ मà¥à¤ दà¥à¤à¥à¤",dismiss:"बà¤à¤¦ à¤à¤°à¥à¤"},id:{prompt:"Halaman ini juga tersedia dalam Bahasa Indonesia.",accept:"Lihat dalam Bahasa Indonesia",dismiss:"Tutup"},th:{prompt:"หà¸à¹à¸²à¸à¸µà¹à¸¡à¸µà¸ าษาà¹à¸à¸¢à¸à¹à¸§à¸¢",accept:"à¸à¸¹à¹à¸à¹à¸à¸ าษาà¹à¸à¸¢",dismiss:"à¸à¸´à¸"}};function UL(){const{locale:e}=ir(),t=za(),[n,r]=h.useState(null);h.useEffect(()=>{const l=vM();l!==e&&bM()!==e&&Fj(t.pathname,l)&&r(l)},[e,t.pathname]);const a=h.useRef(null);if(h.useEffect(()=>{const l=a.current;if(!n||!l)return;const c=12,d=new ResizeObserver(()=>$y(l.getBoundingClientRect().height+c));return d.observe(l),()=>{d.disconnect(),$y(0)}},[n]),!n)return null;const s=HL[n],i=()=>{oc(e),r(null)};return o.jsx("div",{ref:a,role:"region","aria-label":s.prompt,lang:n,className:"fixed inset-x-3 bottom-3 z-50 mx-auto max-w-xl sm:inset-x-4 sm:bottom-4",children:o.jsxs("div",{className:"panel flex flex-col gap-3 rounded-2xl p-4 shadow-lg sm:flex-row sm:items-center sm:justify-between sm:gap-4",children:[o.jsx("p",{className:"text-sm leading-6 text-foreground
546/90",children:s.prompt}),o.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[o.jsx(ne,{variant:"hero",size:"sm",asChild:!0,children:o.jsx("a",{href:or(t.pathname,n),onClick:()=>oc(n),"data-umami-event":"locale-suggestion-accept","data-umami-event-target":n,children:s.accept})}),o.jsx("button",{type:"button",onClick:i,"aria-label":s.dismiss,className:"rounded-lg p-2 text-muted-foreground transition-colors hover:bg-secondary/60 hover:text-foreground",children:o.jsx(Bt,{className:"h-4 w-4","aria-hidden":!0})})]})]})})}const zL=new fP,$L=({messages:e})=>{const{locale:t}=ir();return h.useEffect(()=>{document.documentElement.lang=t},[t]),o.jsx(K3,{locale:t,messages:e,children:o.jsxs(QT,{children:[o.jsx(Rk,{}),o.jsx(sC,{}),o.jsxs(WR,{basename:yM(t),children:[o.jsx(LL,{}),o.jsx(UL,{}),o.jsx(T_,{})]})]})})},GL=({messages:e,locale:t})=>o.jsx(aS,{attribute:"class",defaultTheme:"light",forcedTheme:"light",enableSystem:!1,disableTransitionOnChange:!0,children:o.jsx(yP,{client:zL,children:o.jsx(jM,{initialLocale:t,children:o.jsx($L,{messages:e})})})});function QL(e){switch(e){case"es":return We(()=>import("./es-BXyorBEa.js"),[]).then(t=>t.default);case"fr":return We(()=>import("./fr-DbFMd2vd.js"),[]).then(t=>t.default);case"hi":return We(()=>import("./hi-DlvyUeLV.js"),[]).then(t=>t.default);case"id":return We(()=>import("./id-DNkAG7pY.js"),[]).then(t=>t.default);case"th":return We(()=>import("./th-FKg_is6x.js"),[]).then(t=>t.default);default:return Promise.resolve({})}}const Hx=wM();if(Hx)window.location.replace(Hx);else{const e=id();QL(e).then(t=>{cw(document.getElementById("root")).render(o.jsx(GL,{locale:e,messages:t}))})}export{We as _,qL as c,Xx as g};
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.