PageSourceSearch

https://como.ai/assets/index-cc5pRBZ6.js

js como.ai collected 2026-10-05 14:23:49 UTC 937,884 bytes, 359 lines download raw bytes

vendor: 18,160 bytes, lines 1-33
1(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))n(r);new MutationObserver(r=>{for(const o of r)if(o.type==="childList")for(const s of o.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&n(s)}).observe(document,{childList:!0,subtree:!0});function a(r){const o={};return r.integrity&&(o.integrity=r.integrity),r.referrerPolicy&&(o.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?o.credentials="include":r.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function n(r){if(r.ep)return;r.ep=!0;const o=a(r);fetch(r.href,o)}})();var Pd={exports:{}},jr={},Td={exports:{}},B={};/**
2 * @license React
3 * react.production.min.js
4 *
5 * Copyright (c) Facebook, Inc. and its affiliates.
6 *
7 * This source code is licensed under the MIT license found in the
8 * LICENSE file in the root directory of this source tree.
9 */var an=Symbol.for("react.element"),Cp=Symbol.for("react.portal"),Np=Symbol.for("react.fragment"),Pp=Symbol.for("react.strict_mode"),Tp=Symbol.for("react.profiler"),Lp=Symbol.for("react.provider"),Ep=Symbol.for("react.context"),Dp=Symbol.for("react.forward_ref"),qp=Symbol.for("react.suspense"),Mp=Symbol.for("react.memo"),Rp=Symbol.for("react.lazy"),Ul=Symbol.iterator;function Fp(e){return e===null||typeof e!="object"?null:(e=Ul&&e[Ul]||e["@@iterator"],typeof e=="function"?e:null)}var Ld={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Ed=Object.assign,Dd={};function ni(e,t,a){this.props=e,this.context=t,this.refs=Dd,this.updater=a||Ld}ni.prototype.isReactComponent={};ni.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")};ni.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function qd(){}qd.prototype=ni.prototype;function Ls(e,t,a){this.props=e,this.context=t,this.refs=Dd,this.updater=a||Ld}var Es=Ls.prototype=new qd;Es.constructor=Ls;Ed(Es,ni.prototype);Es.isPureReactComponent=!0;var Gl=Array.isArray,Md=Object.prototype.hasOwnProperty,Ds={current:null},Rd={key:!0,ref:!0,__self:!0,__source:!0};function Fd(e,t,a){var n,r={},o=null,s=null;if(t!=null)for(n in t.ref!==void 0&&(s=t.ref),t.key!==void 0&&(o=""+t.key),t)Md.call(t,n)&&!Rd.hasOwnProperty(n)&&(r[n]=t[n]);var l=arguments.length-2;if(l===1)r.children=a;else if(1<l){for(var c=Array(l),d=0;d<l;d++)c[d]=arguments[d+2];r.children=c}if(e&&e.defaultProps)for(n in l=e.defaultProps,l)r[n]===void 0&&(r[n]=l[n]);return{$$typeof:an,type:e,key:o,ref:s,props:r,_owner:Ds.current}}function zp(e,t){return{$$typeof:an,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function qs(e){return typeof e=="object"&&e!==null&&e.$$typeof===an}function Bp(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(a){return t[a]})}var Wl=/\/+/g;function Kr(e,t){return typeof e=="object"&&e!==null&&e.key!=null?Bp(""+e.key):t.toString(36)}function Rn(e,t,a,n,r){var o=typeof e;(o==="undefined"||o==="boolean")&&(e=null);var s=!1;if(e===null)s=!0;else switch(o){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case an:case Cp:s=!0}}if(s)return s=e,r=r(s),e=n===""?"."+Kr(s,0):n,Gl(r)?(a="",e!=null&&(a=e.replace(Wl,"$&/")+"/"),Rn(r,t,a,"",function(d){return d})):r!=null&&(qs(r)&&(r=zp(r,a+(!r.key||s&&s.key===r.key?"":(""+r.key).replace(Wl,"$&/")+"/")+e)),t.push(r)),1;if(s=0,n=n===""?".":n+":",Gl(e))for(var l=0;l<e.length;l++){o=e[l];var c=n+Kr(o,l);s+=Rn(o,t,a,c,r)}else if(c=Fp(e),typeof c=="function")for(e=c.call(e),l=0;!(o=e.next()).done;)o=o.value,c=n+Kr(o,l++),s+=Rn(o,t,a,c,r);else if(o==="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 s}function gn(e,t,a){if(e==null)return e;var n=[],r=0;return Rn(e,n,"","",function(o){return t.call(a,o,r++)}),n}function Up(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(a){(e._status===0||e._status===-1)&&(e._status=1,e._result=a)},function(a){(e._status===0||e._status===-1)&&(e._status=2,e._result=a)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var Ie={current:null},Fn={transition:null},Gp={ReactCurrentDispatcher:Ie,ReactCurrentBatchConfig:Fn,ReactCurrentOwner:Ds};function zd(){throw Error("act(...) is not supported in production builds of React.")}B.Children={map:gn,forEach:function(e,t,a){gn(e,function(){t.apply(this,arguments)},a)},count:function(e){var t=0;return gn(e,function(){t++}),t},toArray:function(e){return gn(e,function(t){return t})||[]},only:function(e){if(!qs(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};B.Component=ni;B.Fragment=Np;B.Profiler=Tp;B.PureComponent=Ls;B.StrictMode=Pp;B.Suspense=qp;B.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Gp;B.act=zd;B.cloneElement=function(e,t,a){if(e==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var n=Ed({},e.props),r=e.key,o=e.ref,s=e._owner;if(t!=null){if(t.ref!==void 0&&(o=t.ref,s=Ds.current),t.key!==void 0&&(r=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(c in t)Md.call(t,c)&&!Rd.hasOwnProperty(c)&&(n[c]=t[c]===void 0&&l!==void 0?l[c]:t[c])}var c=arguments.length-2;if(c===1)n.children=a;else if(1<c){l=Array(c);for(var d=0;d<c;d++)l[d]=arguments[d+2];n.children=l}return{$$typeof:an,type:e.type,key:r,ref:o,props:n,_owner:s}};B.createContext=function(e){return e={$$typeof:Ep,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:Lp,_context:e},e.Consumer=e};B.createElement=Fd;B.createFactory=function(e){var t=Fd.bind(null,e);return t.type=e,t};B.createRef=function(){return{current:null}};B.forwardRef=function(e){return{$$typeof:Dp,render:e}};B.isValidElement=qs;B.lazy=function(e){return{$$typeof:Rp,_payload:{_status:-1,_result:e},_init:Up}};B.memo=function(e,t){return{$$typeof:Mp,type:e,compare:t===void 0?null:t}};B.startTransition=function(e){var t=Fn.transition;Fn.transition={};try{e()}finally{Fn.transition=t}};B.unstable_act=zd;B.useCallback=function(e,t){return Ie.current.useCallback(e,t)};B.useContext=function(e){return Ie.current.useContext(e)};B.useDebugValue=function(){};B.useDeferredValue=function(e){return Ie.current.useDeferredValue(e)};B.useEffect=function(e,t){return Ie.current.useEffect(e,t)};B.useId=function(){return Ie.current.useId()};B.useImperativeHandle=function(e,t,a){return Ie.current.useImperativeHandle(e,t,a)};B.useInsertionEffect=function(e,t){return Ie.current.useInsertionEffect(e,t)};B.useLayoutEffect=function(e,t){return Ie.current.useLayoutEffect(e,t)};B.useMemo=function(e,t){return Ie.current.useMemo(e,t)};B.useReducer=function(e,t,a){return Ie.current.useReducer(e,t,a)};B.useRef=function(e){return Ie.current.useRef(e)};B.useState=function(e){return Ie.current.useState(e)};B.useSyncExternalStore=function(e,t,a){return Ie.current.useSyncExternalStore(e,t,a)};B.useTransition=function(){return Ie.current.useTransition()};B.version="18.3.1";Td.exports=B;var v=Td.exports;/**
10 * @license React
11 * react-jsx-runtime.production.min.js
12 *
13 * Copyright (c) Facebook, Inc. and its affiliates.
14 *
15 * This source code is licensed under the MIT license found in the
16 * LICENSE file in the root directory of this source tree.
17 */var Wp=v,Op=Symbol.for("react.element"),$p=Symbol.for("react.fragment"),_p=Object.prototype.hasOwnProperty,Vp=Wp.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Hp={key:!0,ref:!0,__self:!0,__source:!0};function Bd(e,t,a){var n,r={},o=null,s=null;a!==void 0&&(o=""+a),t.key!==void 0&&(o=""+t.key),t.ref!==void 0&&(s=t.ref);for(n in t)_p.call(t,n)&&!Hp.hasOwnProperty(n)&&(r[n]=t[n]);if(e&&e.defaultProps)for(n in t=e.defaultProps,t)r[n]===void 0&&(r[n]=t[n]);return{$$typeof:Op,type:e,key:o,ref:s,props:r,_owner:Vp.current}}jr.Fragment=$p;jr.jsx=Bd;jr.jsxs=Bd;Pd.exports=jr;var i=Pd.exports,Ud={exports:{}},Be={},Gd={exports:{}},Wd={};/**
18 * @license React
19 * scheduler.production.min.js
20 *
21 * Copyright (c) Facebook, Inc. and its affiliates.
22 *
23 * This source code is licensed under the MIT license found in the
24 * LICENSE file in the root directory of this source tree.
25 */(function(e){function t(N,q){var F=N.length;N.push(q);e:for(;0<F;){var G=F-1>>>1,H=N[G];if(0<r(H,q))N[G]=q,N[F]=H,F=G;else break e}}function a(N){return N.length===0?null:N[0]}function n(N){if(N.length===0)return null;var q=N[0],F=N.pop();if(F!==q){N[0]=F;e:for(var G=0,H=N.length,nt=H>>>1;G<nt;){var rt=2*(G+1)-1,Ia=N[rt],na=rt+1,pn=N[na];if(0>r(Ia,F))na<H&&0>r(pn,Ia)?(N[G]=pn,N[na]=F,G=na):(N[G]=Ia,N[rt]=F,G=rt);else if(na<H&&0>r(pn,F))N[G]=pn,N[na]=F,G=na;else break e}}return q}function r(N,q){var F=N.sortIndex-q.sortIndex;return F!==0?F:N.id-q.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var s=Date,l=s.now();e.unstable_now=function(){return s.now()-l}}var c=[],d=[],m=1,u=null,p=3,y=!1,b=!1,w=!1,A=typeof setTimeout=="function"?setTimeout:null,f=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 h(N){for(var q=a(d);q!==null;){if(q.callback===null)n(d);else if(q.startTime<=N)n(d),q.sortIndex=q.expirationTime,t(c,q);else break;q=a(d)}}function x(N){if(w=!1,h(N),!b)if(a(c)!==null)b=!0,Z(k);else{var q=a(d);q!==null&&le(x,q.startTime-N)}}function k(N,q){b=!1,w&&(w=!1,f(P),P=-1),y=!0;var F=p;try{for(h(q),u=a(c);u!==null&&(!(u.expirationTime>q)||N&&!ue());){var G=u.callback;if(typeof G=="function"){u.callback=null,p=u.priorityLevel;var H=G(u.expirationTime<=q);q=e.unstable_now(),typeof H=="function"?u.callback=H:u===a(c)&&n(c),h(q)}else n(c);u=a(c)}if(u!==null)var nt=!0;else{var rt=a(d);rt!==null&&le(x,rt.startTime-q),nt=!1}return nt}finally{u=null,p=F,y=!1}}var C=!1,S=null,P=-1,R=5,L=-1;function ue(){return!(e.unstable_now()-L<R)}function U(){if(S!==null){var N=e.unstable_now();L=N;var q=!0;try{q=S(!0,N)}finally{q?M():(C=!1,S=null)}}else C=!1}var M;if(typeof g=="function")M=function(){g(U)};else if(typeof MessageChannel<"u"){var z=new MessageChannel,$=z.port2;z.port1.onmessage=U,M=function(){$.postMessage(null)}}else M=function(){A(U,0)};function Z(N){S=N,C||(C=!0,M())}function le(N,q){P=A(function(){N(e.unstable_now())},q)}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(N){N.callback=null},e.unstable_continueExecution=function(){b||y||(b=!0,Z(k))},e.unstable_forceFrameRate=function(N){0>N||125<N?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):R=0<N?Math.floor(1e3/N):5},e.unstable_getCurrentPriorityLevel=function(){return p},e.unstable_getFirstCallbackNode=function(){return a(c)},e.unstable_next=function(N){switch(p){case 1:case 2:case 3:var q=3;break;default:q=p}var F=p;p=q;try{return N()}finally{p=F}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(N,q){switch(N){case 1:case 2:case 3:case 4:case 5:break;default:N=3}var F=p;p=N;try{return q()}finally{p=F}},e.unstable_scheduleCallback=function(N,q,F){var G=e.unstable_now();switch(typeof F=="object"&&F!==null?(F=F.delay,F=typeof F=="number"&&0<F?G+F:G):F=G,N){case 1:var H=-1;break;case 2:H=250;break;case 5:H=1073741823;break;case 4:H=1e4;break;default:H=5e3}return H=F+H,N={id:m++,callback:q,priorityLevel:N,startTime:F,expirationTime:H,sortIndex:-1},F>G?(N.sortIndex=F,t(d,N),a(c)===null&&N===a(d)&&(w?(f(P),P=-1):w=!0,le(x,F-G))):(N.sortIndex=H,t(c,N),b||y||(b=!0,Z(k))),N},e.unstable_shouldYield=ue,e.unstable_wrapCallback=function(N){var q=p;return function(){var F=p;p=q;try{return N.apply(this,arguments)}finally{p=F}}}})(Wd);Gd.exports=Wd;var Yp=Gd.exports;/**
26 * @license React
27 * react-dom.production.min.js
28 *
29 * Copyright (c) Facebook, Inc. and its affiliates.
30 *
31 * This source code is licensed under the MIT license found in the
32 * LICENSE file in the root directory of this source tree.
33 */var Kp=v,ze=Yp;function I(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,a=1;a<arguments.length;a++)t+="&args[]="+encodeURIComponent(arguments[a]);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 Od=new Set,Ri={};function ka(e,t){Ya(e,t),Ya(e+"Capture",t)}function Ya(e,t){for(Ri[e]=t,e=0;e<t.length;e++)Od.add(t[e])}var Tt=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Po=Object.prototype.hasOwnProperty,Jp=/^[: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]*$/,Ol={},$l={};function Qp(e){return Po.call($l,e)?!0:Po.call(Ol,e)?!1:Jp.test(e)?$l[e]=!0:(Ol[e]=!0,!1)}function Zp(e,t,a,n){if(a!==null&&a.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return n?!1:a!==null?!a.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Xp(e,t,a,n){if(t===null||typeof t>"u"||Zp(e,t,a,n))return!0;if(n)return!1;if(a!==null)switch(a.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 je(e,t,a,n,r,o,s){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=n,this.attributeNamespace=r,this.mustUseProperty=a,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=s}var he={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){he[e]=new je(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];he[t]=new je(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){he[e]=new je(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){he[e]=new je(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){he[e]=new je(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){he[e]=new je(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){he[e]=new je(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){he[e]=new je(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){he[e]=new je(e,5,!1,e.toLowerCase(),null,!1,!1)});var Ms=/[\-:]([a-z])/g;function Rs(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(Ms,Rs);he[t]=new je(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(Ms,Rs);he[t]=new je(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(Ms,Rs);he[t]=new je(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){he[e]=new je(e,1,!1,e.toLowerCase(),null,!1,!1)});he.xlinkHref=new je("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){he[e]=new je(e,1,!1,e.toLowerCase(),null,!0,!0)});function Fs(e,t,a,n){var r=he.hasOwnProperty(t)?he[t]:null;(r!==null?r.type!==0:n||!(2<t.length)||t[0]!=="o"&&t[0]!=="O"||t[1]!=="n"&&t[1]!=="N")&&(Xp(t,a,r,n)&&(a=null),n||r===null?Qp(t)&&(a===null?e.removeAttribute(t):e.setAttribute(t,""+a)):r.mustUseProperty?e[r.propertyName]=a===null?r.type===3?!1:"":a:(t=r.attributeName,n=r.attributeNamespace,a===null?e.removeAttribute(t):(r=r.type,a=r===3||r===4&&a===!0?"":""+a,n?e.setAttributeNS(n,t,a):e.setAttribute(t,a))))}
vendor: 4,239 bytes, lines 33-37
33var Mt=Kp.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,fn=Symbol.for("react.element"),Pa=Symbol.for("react.portal"),Ta=Symbol.for("react.fragment"),zs=Symbol.for("react.strict_mode"),To=Symbol.for("react.profiler"),$d=Symbol.for("react.provider"),_d=Symbol.for("react.context"),Bs=Symbol.for("react.forward_ref"),Lo=Symbol.for("react.suspense"),Eo=Symbol.for("react.suspense_list"),Us=Symbol.for("react.memo"),Ft=Symbol.for("react.lazy"),Vd=Symbol.for("react.offscreen"),_l=Symbol.iterator;function di(e){return e===null||typeof e!="object"?null:(e=_l&&e[_l]||e["@@iterator"],typeof e=="function"?e:null)}var ie=Object.assign,Jr;function xi(e){if(Jr===void 0)try{throw Error()}catch(a){var t=a.stack.trim().match(/\n( *(at )?)/);Jr=t&&t[1]||""}return`
34`+Jr+e}var Qr=!1;function Zr(e,t){if(!e||Qr)return"";Qr=!0;var a=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 n=d}Reflect.construct(e,[],t)}else{try{t.call()}catch(d){n=d}e.call(t.prototype)}else{try{throw Error()}catch(d){n=d}e()}}catch(d){if(d&&n&&typeof d.stack=="string"){for(var r=d.stack.split(`
35`),o=n.stack.split(`
36`),s=r.length-1,l=o.length-1;1<=s&&0<=l&&r[s]!==o[l];)l--;for(;1<=s&&0<=l;s--,l--)if(r[s]!==o[l]){if(s!==1||l!==1)do if(s--,l--,0>l||r[s]!==o[l]){var c=`
37`+r[s].replace(" at new "," at ");return e.displayName&&c.includes("<anonymous>")&&(c=c.replace("<anonymous>",e.displayName)),c}while(1<=s&&0<=l);break}}}finally{Qr=!1,Error.prepareStackTrace=a}return(e=e?e.displayName||e.name:"")?xi(e):""}function eg(e){switch(e.tag){case 5:return xi(e.type);case 16:return xi("Lazy");case 13:return xi("Suspense");case 19:return xi("SuspenseList");case 0:case 2:case 15:return e=Zr(e.type,!1),e;case 11:return e=Zr(e.type.render,!1),e;case 1:return e=Zr(e.type,!0),e;default:return""}}function Do(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 Ta:return"Fragment";case Pa:return"Portal";case To:return"Profiler";case zs:return"StrictMode";case Lo:return"Suspense";case Eo:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case _d:return(e.displayName||"Context")+".Consumer";case $d:return(e._context.displayName||"Context")+".Provider";case Bs:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Us:return t=e.displayName||null,t!==null?t:Do(e.type)||"Memo";case Ft:t=e._payload,e=e._init;try{return Do(e(t))}catch{}}return null}function tg(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 Do(t);case 8:return t===zs?"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 Qt(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Hd(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function ag(e){var t=Hd(e)?"checked":"value",a=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),n=""+e[t];if(!e.hasOwnProperty(t)&&typeof a<"u"&&typeof a.get=="function"&&typeof a.set=="function"){var r=a.get,o=a.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return r.call(this)},set:function(s){n=""+s,o.call(this,s)}}),Object.defineProperty(e,t,{enumerable:a.enumerable}),{getValue:function(){return n},setValue:function(s){n=""+s},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}
vendor: 15,132 bytes, line 37
37function hn(e){e._valueTracker||(e._valueTracker=ag(e))}function Yd(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var a=t.getValue(),n="";return e&&(n=Hd(e)?e.checked?"true":"false":e.value),e=n,e!==a?(t.setValue(e),!0):!1}function Jn(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 qo(e,t){var a=t.checked;return ie({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:a??e._wrapperState.initialChecked})}function Vl(e,t){var a=t.defaultValue==null?"":t.defaultValue,n=t.checked!=null?t.checked:t.defaultChecked;a=Qt(t.value!=null?t.value:a),e._wrapperState={initialChecked:n,initialValue:a,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Kd(e,t){t=t.checked,t!=null&&Fs(e,"checked",t,!1)}function Mo(e,t){Kd(e,t);var a=Qt(t.value),n=t.type;if(a!=null)n==="number"?(a===0&&e.value===""||e.value!=a)&&(e.value=""+a):e.value!==""+a&&(e.value=""+a);else if(n==="submit"||n==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Ro(e,t.type,a):t.hasOwnProperty("defaultValue")&&Ro(e,t.type,Qt(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Hl(e,t,a){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var n=t.type;if(!(n!=="submit"&&n!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,a||t===e.value||(e.value=t),e.defaultValue=t}a=e.name,a!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,a!==""&&(e.name=a)}function Ro(e,t,a){(t!=="number"||Jn(e.ownerDocument)!==e)&&(a==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+a&&(e.defaultValue=""+a))}var ki=Array.isArray;function Ga(e,t,a,n){if(e=e.options,t){t={};for(var r=0;r<a.length;r++)t["$"+a[r]]=!0;for(a=0;a<e.length;a++)r=t.hasOwnProperty("$"+e[a].value),e[a].selected!==r&&(e[a].selected=r),r&&n&&(e[a].defaultSelected=!0)}else{for(a=""+Qt(a),t=null,r=0;r<e.length;r++){if(e[r].value===a){e[r].selected=!0,n&&(e[r].defaultSelected=!0);return}t!==null||e[r].disabled||(t=e[r])}t!==null&&(t.selected=!0)}}function Fo(e,t){if(t.dangerouslySetInnerHTML!=null)throw Error(I(91));return ie({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function Yl(e,t){var a=t.value;if(a==null){if(a=t.children,t=t.defaultValue,a!=null){if(t!=null)throw Error(I(92));if(ki(a)){if(1<a.length)throw Error(I(93));a=a[0]}t=a}t==null&&(t=""),a=t}e._wrapperState={initialValue:Qt(a)}}function Jd(e,t){var a=Qt(t.value),n=Qt(t.defaultValue);a!=null&&(a=""+a,a!==e.value&&(e.value=a),t.defaultValue==null&&e.defaultValue!==a&&(e.defaultValue=a)),n!=null&&(e.defaultValue=""+n)}function Kl(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}function Qd(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 zo(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?Qd(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var yn,Zd=function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(t,a,n,r){MSApp.execUnsafeLocalFunction(function(){return e(t,a,n,r)})}:e}(function(e,t){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=t;else{for(yn=yn||document.createElement("div"),yn.innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=yn.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Fi(e,t){if(t){var a=e.firstChild;if(a&&a===e.lastChild&&a.nodeType===3){a.nodeValue=t;return}}e.textContent=t}var ji={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},ig=["Webkit","ms","Moz","O"];Object.keys(ji).forEach(function(e){ig.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ji[t]=ji[e]})});function Xd(e,t,a){return t==null||typeof t=="boolean"||t===""?"":a||typeof t!="number"||t===0||ji.hasOwnProperty(e)&&ji[e]?(""+t).trim():t+"px"}function eu(e,t){e=e.style;for(var a in t)if(t.hasOwnProperty(a)){var n=a.indexOf("--")===0,r=Xd(a,t[a],n);a==="float"&&(a="cssFloat"),n?e.setProperty(a,r):e[a]=r}}var ng=ie({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 Bo(e,t){if(t){if(ng[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(I(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(I(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(I(61))}if(t.style!=null&&typeof t.style!="object")throw Error(I(62))}}function Uo(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 Go=null;function Gs(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Wo=null,Wa=null,Oa=null;function Jl(e){if(e=on(e)){if(typeof Wo!="function")throw Error(I(280));var t=e.stateNode;t&&(t=Tr(t),Wo(e.stateNode,e.type,t))}}function tu(e){Wa?Oa?Oa.push(e):Oa=[e]:Wa=e}function au(){if(Wa){var e=Wa,t=Oa;if(Oa=Wa=null,Jl(e),t)for(e=0;e<t.length;e++)Jl(t[e])}}function iu(e,t){return e(t)}function nu(){}var Xr=!1;function ru(e,t,a){if(Xr)return e(t,a);Xr=!0;try{return iu(e,t,a)}finally{Xr=!1,(Wa!==null||Oa!==null)&&(nu(),au())}}function zi(e,t){var a=e.stateNode;if(a===null)return null;var n=Tr(a);if(n===null)return null;a=n[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":(n=!n.disabled)||(e=e.type,n=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!n;break e;default:e=!1}if(e)return null;if(a&&typeof a!="function")throw Error(I(231,t,typeof a));return a}var Oo=!1;if(Tt)try{var ui={};Object.defineProperty(ui,"passive",{get:function(){Oo=!0}}),window.addEventListener("test",ui,ui),window.removeEventListener("test",ui,ui)}catch{Oo=!1}function rg(e,t,a,n,r,o,s,l,c){var d=Array.prototype.slice.call(arguments,3);try{t.apply(a,d)}catch(m){this.onError(m)}}var Si=!1,Qn=null,Zn=!1,$o=null,og={onError:function(e){Si=!0,Qn=e}};function sg(e,t,a,n,r,o,s,l,c){Si=!1,Qn=null,rg.apply(og,arguments)}function lg(e,t,a,n,r,o,s,l,c){if(sg.apply(this,arguments),Si){if(Si){var d=Qn;Si=!1,Qn=null}else throw Error(I(198));Zn||(Zn=!0,$o=d)}}function Aa(e){var t=e,a=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(a=t.return),e=t.return;while(e)}return t.tag===3?a:null}function ou(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 Ql(e){if(Aa(e)!==e)throw Error(I(188))}function cg(e){var t=e.alternate;if(!t){if(t=Aa(e),t===null)throw Error(I(188));return t!==e?null:e}for(var a=e,n=t;;){var r=a.return;if(r===null)break;var o=r.alternate;if(o===null){if(n=r.return,n!==null){a=n;continue}break}if(r.child===o.child){for(o=r.child;o;){if(o===a)return Ql(r),e;if(o===n)return Ql(r),t;o=o.sibling}throw Error(I(188))}if(a.return!==n.return)a=r,n=o;else{for(var s=!1,l=r.child;l;){if(l===a){s=!0,a=r,n=o;break}if(l===n){s=!0,n=r,a=o;break}l=l.sibling}if(!s){for(l=o.child;l;){if(l===a){s=!0,a=o,n=r;break}if(l===n){s=!0,n=o,a=r;break}l=l.sibling}if(!s)throw Error(I(189))}}if(a.alternate!==n)throw Error(I(190))}if(a.tag!==3)throw Error(I(188));return a.stateNode.current===a?e:t}function su(e){return e=cg(e),e!==null?lu(e):null}function lu(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var t=lu(e);if(t!==null)return t;e=e.sibling}return null}var cu=ze.unstable_scheduleCallback,Zl=ze.unstable_cancelCallback,dg=ze.unstable_shouldYield,ug=ze.unstable_requestPaint,re=ze.unstable_now,mg=ze.unstable_getCurrentPriorityLevel,Ws=ze.unstable_ImmediatePriority,du=ze.unstable_UserBlockingPriority,Xn=ze.unstable_NormalPriority,pg=ze.unstable_LowPriority,uu=ze.unstable_IdlePriority,Sr=null,pt=null;function gg(e){if(pt&&typeof pt.onCommitFiberRoot=="function")try{pt.onCommitFiberRoot(Sr,e,void 0,(e.current.flags&128)===128)}catch{}}var Xe=Math.clz32?Math.clz32:yg,fg=Math.log,hg=Math.LN2;function yg(e){return e>>>=0,e===0?32:31-(fg(e)/hg|0)|0}var wn=64,bn=4194304;function Ai(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 er(e,t){var a=e.pendingLanes;if(a===0)return 0;var n=0,r=e.suspendedLanes,o=e.pingedLanes,s=a&268435455;if(s!==0){var l=s&~r;l!==0?n=Ai(l):(o&=s,o!==0&&(n=Ai(o)))}else s=a&~r,s!==0?n=Ai(s):o!==0&&(n=Ai(o));if(n===0)return 0;if(t!==0&&t!==n&&!(t&r)&&(r=n&-n,o=t&-t,r>=o||r===16&&(o&4194240)!==0))return t;if(n&4&&(n|=a&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=n;0<t;)a=31-Xe(t),r=1<<a,n|=e[a],t&=~r;return n}function wg(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 bg(e,t){for(var a=e.suspendedLanes,n=e.pingedLanes,r=e.expirationTimes,o=e.pendingLanes;0<o;){var s=31-Xe(o),l=1<<s,c=r[s];c===-1?(!(l&a)||l&n)&&(r[s]=wg(l,t)):c<=t&&(e.expiredLanes|=l),o&=~l}}function _o(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function mu(){var e=wn;return wn<<=1,!(wn&4194240)&&(wn=64),e}function eo(e){for(var t=[],a=0;31>a;a++)t.push(e);return t}function nn(e,t,a){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Xe(t),e[t]=a}function vg(e,t){var a=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 n=e.eventTimes;for(e=e.expirationTimes;0<a;){var r=31-Xe(a),o=1<<r;t[r]=0,n[r]=-1,e[r]=-1,a&=~o}}function Os(e,t){var a=e.entangledLanes|=t;for(e=e.entanglements;a;){var n=31-Xe(a),r=1<<n;r&t|e[n]&t&&(e[n]|=t),a&=~r}}var _=0;function pu(e){return e&=-e,1<e?4<e?e&268435455?16:536870912:4:1}var gu,$s,fu,hu,yu,Vo=!1,vn=[],Ot=null,$t=null,_t=null,Bi=new Map,Ui=new Map,Bt=[],xg="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 Xl(e,t){switch(e){case"focusin":case"focusout":Ot=null;break;case"dragenter":case"dragleave":$t=null;break;case"mouseover":case"mouseout":_t=null;break;case"pointerover":case"pointerout":Bi.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Ui.delete(t.pointerId)}}function mi(e,t,a,n,r,o){return e===null||e.nativeEvent!==o?(e={blockedOn:t,domEventName:a,eventSystemFlags:n,nativeEvent:o,targetContainers:[r]},t!==null&&(t=on(t),t!==null&&$s(t)),e):(e.eventSystemFlags|=n,t=e.targetContainers,r!==null&&t.indexOf(r)===-1&&t.push(r),e)}function kg(e,t,a,n,r){switch(t){case"focusin":return Ot=mi(Ot,e,t,a,n,r),!0;case"dragenter":return $t=mi($t,e,t,a,n,r),!0;case"mouseover":return _t=mi(_t,e,t,a,n,r),!0;case"pointerover":var o=r.pointerId;return Bi.set(o,mi(Bi.get(o)||null,e,t,a,n,r)),!0;case"gotpointercapture":return o=r.pointerId,Ui.set(o,mi(Ui.get(o)||null,e,t,a,n,r)),!0}return!1}function wu(e){var t=da(e.target);if(t!==null){var a=Aa(t);if(a!==null){if(t=a.tag,t===13){if(t=ou(a),t!==null){e.blockedOn=t,yu(e.priority,function(){fu(a)});return}}else if(t===3&&a.stateNode.current.memoizedState.isDehydrated){e.blockedOn=a.tag===3?a.stateNode.containerInfo:null;return}}}e.blockedOn=null}function zn(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var a=Ho(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(a===null){a=e.nativeEvent;var n=new a.constructor(a.type,a);Go=n,a.target.dispatchEvent(n),Go=null}else return t=on(a),t!==null&&$s(t),e.blockedOn=a,!1;t.shift()}return!0}function ec(e,t,a){zn(e)&&a.delete(t)}function Ag(){Vo=!1,Ot!==null&&zn(Ot)&&(Ot=null),$t!==null&&zn($t)&&($t=null),_t!==null&&zn(_t)&&(_t=null),Bi.forEach(ec),Ui.forEach(ec)}function pi(e,t){e.blockedOn===t&&(e.blockedOn=null,Vo||(Vo=!0,ze.unstable_scheduleCallback(ze.unstable_NormalPriority,Ag)))}function Gi(e){function t(r){return pi(r,e)}if(0<vn.length){pi(vn[0],e);for(var a=1;a<vn.length;a++){var n=vn[a];n.blockedOn===e&&(n.blockedOn=null)}}for(Ot!==null&&pi(Ot,e),$t!==null&&pi($t,e),_t!==null&&pi(_t,e),Bi.forEach(t),Ui.forEach(t),a=0;a<Bt.length;a++)n=Bt[a],n.blockedOn===e&&(n.blockedOn=null);for(;0<Bt.length&&(a=Bt[0],a.blockedOn===null);)wu(a),a.blockedOn===null&&Bt.shift()}var $a=Mt.ReactCurrentBatchConfig,tr=!0;function Ig(e,t,a,n){var r=_,o=$a.transition;$a.transition=null;try{_=1,_s(e,t,a,n)}finally{_=r,$a.transition=o}}function jg(e,t,a,n){var r=_,o=$a.transition;$a.transition=null;try{_=4,_s(e,t,a,n)}finally{_=r,$a.transition=o}}function _s(e,t,a,n){if(tr){var r=Ho(e,t,a,n);if(r===null)uo(e,t,n,ar,a),Xl(e,n);else if(kg(r,e,t,a,n))n.stopPropagation();else if(Xl(e,n),t&4&&-1<xg.indexOf(e)){for(;r!==null;){var o=on(r);if(o!==null&&gu(o),o=Ho(e,t,a,n),o===null&&uo(e,t,n,ar,a),o===r)break;r=o}r!==null&&n.stopPropagation()}else uo(e,t,n,null,a)}}var ar=null;function Ho(e,t,a,n){if(ar=null,e=Gs(n),e=da(e),e!==null)if(t=Aa(e),t===null)e=null;else if(a=t.tag,a===13){if(e=ou(t),e!==null)return e;e=null}else if(a===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return ar=e,null}
vendor: 4,373 bytes, line 37
37function bu(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(mg()){case Ws:return 1;case du:return 4;case Xn:case pg:return 16;case uu:return 536870912;default:return 16}default:return 16}}var Gt=null,Vs=null,Bn=null;function vu(){if(Bn)return Bn;var e,t=Vs,a=t.length,n,r="value"in Gt?Gt.value:Gt.textContent,o=r.length;for(e=0;e<a&&t[e]===r[e];e++);var s=a-e;for(n=1;n<=s&&t[a-n]===r[o-n];n++);return Bn=r.slice(e,1<n?1-n:void 0)}function Un(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 xn(){return!0}function tc(){return!1}function Ue(e){function t(a,n,r,o,s){this._reactName=a,this._targetInst=r,this.type=n,this.nativeEvent=o,this.target=s,this.currentTarget=null;for(var l in e)e.hasOwnProperty(l)&&(a=e[l],this[l]=a?a(o):o[l]);return this.isDefaultPrevented=(o.defaultPrevented!=null?o.defaultPrevented:o.returnValue===!1)?xn:tc,this.isPropagationStopped=tc,this}return ie(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():typeof a.returnValue!="unknown"&&(a.returnValue=!1),this.isDefaultPrevented=xn)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():typeof a.cancelBubble!="unknown"&&(a.cancelBubble=!0),this.isPropagationStopped=xn)},persist:function(){},isPersistent:xn}),t}var ri={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Hs=Ue(ri),rn=ie({},ri,{view:0,detail:0}),Sg=Ue(rn),to,ao,gi,Cr=ie({},rn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Ys,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!==gi&&(gi&&e.type==="mousemove"?(to=e.screenX-gi.screenX,ao=e.screenY-gi.screenY):ao=to=0,gi=e),to)},movementY:function(e){return"movementY"in e?e.movementY:ao}}),ac=Ue(Cr),Cg=ie({},Cr,{dataTransfer:0}),Ng=Ue(Cg),Pg=ie({},rn,{relatedTarget:0}),io=Ue(Pg),Tg=ie({},ri,{animationName:0,elapsedTime:0,pseudoElement:0}),Lg=Ue(Tg),Eg=ie({},ri,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Dg=Ue(Eg),qg=ie({},ri,{data:0}),ic=Ue(qg),Mg={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Rg={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"},Fg={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function zg(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Fg[e])?!!t[e]:!1}function Ys(){return zg}var Bg=ie({},rn,{key:function(e){if(e.key){var t=Mg[e.key]||e.key;if(t!=="Unidentified")return t}
vendor: 4,750 bytes, line 37
37return e.type==="keypress"?(e=Un(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?Rg[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Ys,charCode:function(e){return e.type==="keypress"?Un(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?Un(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),Ug=Ue(Bg),Gg=ie({},Cr,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),nc=Ue(Gg),Wg=ie({},rn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Ys}),Og=Ue(Wg),$g=ie({},ri,{propertyName:0,elapsedTime:0,pseudoElement:0}),_g=Ue($g),Vg=ie({},Cr,{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}),Hg=Ue(Vg),Yg=[9,13,27,32],Ks=Tt&&"CompositionEvent"in window,Ci=null;Tt&&"documentMode"in document&&(Ci=document.documentMode);var Kg=Tt&&"TextEvent"in window&&!Ci,xu=Tt&&(!Ks||Ci&&8<Ci&&11>=Ci),rc=" ",oc=!1;function ku(e,t){switch(e){case"keyup":return Yg.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Au(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var La=!1;function Jg(e,t){switch(e){case"compositionend":return Au(t);case"keypress":return t.which!==32?null:(oc=!0,rc);case"textInput":return e=t.data,e===rc&&oc?null:e;default:return null}}function Qg(e,t){if(La)return e==="compositionend"||!Ks&&ku(e,t)?(e=vu(),Bn=Vs=Gt=null,La=!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 xu&&t.locale!=="ko"?null:t.data;default:return null}}var Zg={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 sc(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!Zg[e.type]:t==="textarea"}function Iu(e,t,a,n){tu(n),t=ir(t,"onChange"),0<t.length&&(a=new Hs("onChange","change",null,a,n),e.push({event:a,listeners:t}))}var Ni=null,Wi=null;function Xg(e){Mu(e,0)}function Nr(e){var t=qa(e);if(Yd(t))return e}function ef(e,t){if(e==="change")return t}var ju=!1;if(Tt){var no;if(Tt){var ro="oninput"in document;if(!ro){var lc=document.createElement("div");lc.setAttribute("oninput","return;"),ro=typeof lc.oninput=="function"}no=ro}else no=!1;ju=no&&(!document.documentMode||9<document.documentMode)}function cc(){Ni&&(Ni.detachEvent("onpropertychange",Su),Wi=Ni=null)}function Su(e){if(e.propertyName==="value"&&Nr(Wi)){var t=[];Iu(t,Wi,e,Gs(e)),ru(Xg,t)}}function tf(e,t,a){e==="focusin"?(cc(),Ni=t,Wi=a,Ni.attachEvent("onpropertychange",Su)):e==="focusout"&&cc()}function af(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return Nr(Wi)}function nf(e,t){if(e==="click")return Nr(t)}function rf(e,t){if(e==="input"||e==="change")return Nr(t)}function of(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var tt=typeof Object.is=="function"?Object.is:of;function Oi(e,t){if(tt(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var a=Object.keys(e),n=Object.keys(t);if(a.length!==n.length)return!1;for(n=0;n<a.length;n++){var r=a[n];if(!Po.call(t,r)||!tt(e[r],t[r]))return!1}return!0}function dc(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function uc(e,t){var a=dc(e);e=0;for(var n;a;){if(a.nodeType===3){if(n=e+a.textContent.length,e<=t&&n>=t)return{node:a,offset:t-e};e=n}e:{for(;a;){if(a.nextSibling){a=a.nextSibling;break e}a=a.parentNode}a=void 0}a=dc(a)}}function Cu(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Cu(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Nu(){for(var e=window,t=Jn();t instanceof e.HTMLIFrameElement;){try{var a=typeof t.contentWindow.location.href=="string"}catch{a=!1}if(a)e=t.contentWindow;else break;t=Jn(e.document)}return t}function Js(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 sf(e){var t=Nu(),a=e.focusedElem,n=e.selectionRange;if(t!==a&&a&&a.ownerDocument&&Cu(a.ownerDocument.documentElement,a)){if(n!==null&&Js(a)
vendor: 5,778 bytes, line 37
37){if(t=n.start,e=n.end,e===void 0&&(e=t),"selectionStart"in a)a.selectionStart=t,a.selectionEnd=Math.min(e,a.value.length);else if(e=(t=a.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var r=a.textContent.length,o=Math.min(n.start,r);n=n.end===void 0?o:Math.min(n.end,r),!e.extend&&o>n&&(r=n,n=o,o=r),r=uc(a,o);var s=uc(a,n);r&&s&&(e.rangeCount!==1||e.anchorNode!==r.node||e.anchorOffset!==r.offset||e.focusNode!==s.node||e.focusOffset!==s.offset)&&(t=t.createRange(),t.setStart(r.node,r.offset),e.removeAllRanges(),o>n?(e.addRange(t),e.extend(s.node,s.offset)):(t.setEnd(s.node,s.offset),e.addRange(t)))}}for(t=[],e=a;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof a.focus=="function"&&a.focus(),a=0;a<t.length;a++)e=t[a],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var lf=Tt&&"documentMode"in document&&11>=document.documentMode,Ea=null,Yo=null,Pi=null,Ko=!1;function mc(e,t,a){var n=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;Ko||Ea==null||Ea!==Jn(n)||(n=Ea,"selectionStart"in n&&Js(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),Pi&&Oi(Pi,n)||(Pi=n,n=ir(Yo,"onSelect"),0<n.length&&(t=new Hs("onSelect","select",null,t,a),e.push({event:t,listeners:n}),t.target=Ea)))}function kn(e,t){var a={};return a[e.toLowerCase()]=t.toLowerCase(),a["Webkit"+e]="webkit"+t,a["Moz"+e]="moz"+t,a}var Da={animationend:kn("Animation","AnimationEnd"),animationiteration:kn("Animation","AnimationIteration"),animationstart:kn("Animation","AnimationStart"),transitionend:kn("Transition","TransitionEnd")},oo={},Pu={};Tt&&(Pu=document.createElement("div").style,"AnimationEvent"in window||(delete Da.animationend.animation,delete Da.animationiteration.animation,delete Da.animationstart.animation),"TransitionEvent"in window||delete Da.transitionend.transition);function Pr(e){if(oo[e])return oo[e];if(!Da[e])return e;var t=Da[e],a;for(a in t)if(t.hasOwnProperty(a)&&a in Pu)return oo[e]=t[a];return e}var Tu=Pr("animationend"),Lu=Pr("animationiteration"),Eu=Pr("animationstart"),Du=Pr("transitionend"),qu=new Map,pc="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 ta(e,t){qu.set(e,t),ka(t,[e])}for(var so=0;so<pc.length;so++){var lo=pc[so],cf=lo.toLowerCase(),df=lo[0].toUpperCase()+lo.slice(1);ta(cf,"on"+df)}ta(Tu,"onAnimationEnd");ta(Lu,"onAnimationIteration");ta(Eu,"onAnimationStart");ta("dblclick","onDoubleClick");ta("focusin","onFocus");ta("focusout","onBlur");ta(Du,"onTransitionEnd");Ya("onMouseEnter",["mouseout","mouseover"]);Ya("onMouseLeave",["mouseout","mouseover"]);Ya("onPointerEnter",["pointerout","pointerover"]);Ya("onPointerLeave",["pointerout","pointerover"]);ka("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));ka("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));ka("onBeforeInput",["compositionend","keypress","textInput","paste"]);ka("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));ka("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));ka("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Ii="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(" "),uf=new Set("cancel close invalid load scroll toggle".split(" ").concat(Ii));function gc(e,t,a){var n=e.type||"unknown-event";e.currentTarget=a,lg(n,t,void 0,e),e.currentTarget=null}function Mu(e,t){t=(t&4)!==0;for(var a=0;a<e.length;a++){var n=e[a],r=n.event;n=n.listeners;e:{var o=void 0;if(t)for(var s=n.length-1;0<=s;s--){var l=n[s],c=l.instance,d=l.currentTarget;if(l=l.listener,c!==o&&r.isPropagationStopped())break e;gc(r,l,d),o=c}else for(s=0;s<n.length;s++){if(l=n[s],c=l.instance,d=l.currentTarget,l=l.listener,c!==o&&r.isPropagationStopped())break e;gc(r,l,d),o=c}}}if(Zn)throw e=$o,Zn=!1,$o=null,e}function K(e,t){var a=t[es];a===void 0&&(a=t[es]=new Set);var n=e+"__bubble";a.has(n)||(Ru(t,e,2,!1),a.add(n))}function co(e,t,a){var n=0;t&&(n|=4),Ru(a,e,n,t)}var An="_reactListening"+Math.random().toString(36).slice(2);function $i(e){if(!e[An]){e[An]=!0,Od.forEach(function(a){a!=="selectionchange"&&(uf.has(a)||co(a,!1,e),co(a,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[An]||(t[An]=!0,co("selectionchange",!1,t))}}function Ru(e,t,a,n){switch(bu(t)){case 1:var r=Ig;break;case 4:r=jg;break;default:r=_s}a=r.bind(null,t,a,e),r=void 0,!Oo||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(r=!0),n?r!==void 0?e.addEventListener(t,a,{capture:!0,passive:r}):e.addEventListener(t,a,!0):r!==void 0?e.addEventListener(t,a,{passive:r}):e.addEventListener(t,a,!1)}function uo(e,t,a,n,r){var o=n;if(!(t&1)&&!(t&2)&&n!==null)e:for(;;){if(n===null)return;var s=n.tag;if(s===3||s===4){var l=n.stateNode.containerInfo;
vendor: 8,882 bytes, lines 37-38
37if(l===r||l.nodeType===8&&l.parentNode===r)break;if(s===4)for(s=n.return;s!==null;){var c=s.tag;if((c===3||c===4)&&(c=s.stateNode.containerInfo,c===r||c.nodeType===8&&c.parentNode===r))return;s=s.return}for(;l!==null;){if(s=da(l),s===null)return;if(c=s.tag,c===5||c===6){n=o=s;continue e}l=l.parentNode}}n=n.return}ru(function(){var d=o,m=Gs(a),u=[];e:{var p=qu.get(e);if(p!==void 0){var y=Hs,b=e;switch(e){case"keypress":if(Un(a)===0)break e;case"keydown":case"keyup":y=Ug;break;case"focusin":b="focus",y=io;break;case"focusout":b="blur",y=io;break;case"beforeblur":case"afterblur":y=io;break;case"click":if(a.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":y=ac;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":y=Ng;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":y=Og;break;case Tu:case Lu:case Eu:y=Lg;break;case Du:y=_g;break;case"scroll":y=Sg;break;case"wheel":y=Hg;break;case"copy":case"cut":case"paste":y=Dg;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":y=nc}var w=(t&4)!==0,A=!w&&e==="scroll",f=w?p!==null?p+"Capture":null:p;w=[];for(var g=d,h;g!==null;){h=g;var x=h.stateNode;if(h.tag===5&&x!==null&&(h=x,f!==null&&(x=zi(g,f),x!=null&&w.push(_i(g,x,h)))),A)break;g=g.return}0<w.length&&(p=new y(p,b,null,a,m),u.push({event:p,listeners:w}))}}if(!(t&7)){e:{if(p=e==="mouseover"||e==="pointerover",y=e==="mouseout"||e==="pointerout",p&&a!==Go&&(b=a.relatedTarget||a.fromElement)&&(da(b)||b[Lt]))break e;if((y||p)&&(p=m.window===m?m:(p=m.ownerDocument)?p.defaultView||p.parentWindow:window,y?(b=a.relatedTarget||a.toElement,y=d,b=b?da(b):null,b!==null&&(A=Aa(b),b!==A||b.tag!==5&&b.tag!==6)&&(b=null)):(y=null,b=d),y!==b)){if(w=ac,x="onMouseLeave",f="onMouseEnter",g="mouse",(e==="pointerout"||e==="pointerover")&&(w=nc,x="onPointerLeave",f="onPointerEnter",g="pointer"),A=y==null?p:qa(y),h=b==null?p:qa(b),p=new w(x,g+"leave",y,a,m),p.target=A,p.relatedTarget=h,x=null,da(m)===d&&(w=new w(f,g+"enter",b,a,m),w.target=h,w.relatedTarget=A,x=w),A=x,y&&b)t:{for(w=y,f=b,g=0,h=w;h;h=ja(h))g++;for(h=0,x=f;x;x=ja(x))h++;for(;0<g-h;)w=ja(w),g--;for(;0<h-g;)f=ja(f),h--;for(;g--;){if(w===f||f!==null&&w===f.alternate)break t;w=ja(w),f=ja(f)}w=null}else w=null;y!==null&&fc(u,p,y,w,!1),b!==null&&A!==null&&fc(u,A,b,w,!0)}}e:{if(p=d?qa(d):window,y=p.nodeName&&p.nodeName.toLowerCase(),y==="select"||y==="input"&&p.type==="file")var k=ef;else if(sc(p))if(ju)k=rf;else{k=af;var C=tf}else(y=p.nodeName)&&y.toLowerCase()==="input"&&(p.type==="checkbox"||p.type==="radio")&&(k=nf);if(k&&(k=k(e,d))){Iu(u,k,a,m);break e}C&&C(e,p,d),e==="focusout"&&(C=p._wrapperState)&&C.controlled&&p.type==="number"&&Ro(p,"number",p.value)}switch(C=d?qa(d):window,e){case"focusin":(sc(C)||C.contentEditable==="true")&&(Ea=C,Yo=d,Pi=null);break;case"focusout":Pi=Yo=Ea=null;break;case"mousedown":Ko=!0;break;case"contextmenu":case"mouseup":case"dragend":Ko=!1,mc(u,a,m);break;case"selectionchange":if(lf)break;case"keydown":case"keyup":mc(u,a,m)}var S;if(Ks)e:{switch(e){case"compositionstart":var P="onCompositionStart";break e;case"compositionend":P="onCompositionEnd";break e;case"compositionupdate":P="onCompositionUpdate";break e}P=void 0}else La?ku(e,a)&&(P="onCompositionEnd"):e==="keydown"&&a.keyCode===229&&(P="onCompositionStart");P&&(xu&&a.locale!=="ko"&&(La||P!=="onCompositionStart"?P==="onCompositionEnd"&&La&&(S=vu()):(Gt=m,Vs="value"in Gt?Gt.value:Gt.textContent,La=!0)),C=ir(d,P),0<C.length&&(P=new ic(P,e,null,a,m),u.push({event:P,listeners:C}),S?P.data=S:(S=Au(a),S!==null&&(P.data=S)))),(S=Kg?Jg(e,a):Qg(e,a))&&(d=ir(d,"onBeforeInput"),0<d.length&&(m=new ic("onBeforeInput","beforeinput",null,a,m),u.push({event:m,listeners:d}),m.data=S))}Mu(u,t)})}function _i(e,t,a){return{instance:e,listener:t,currentTarget:a}}function ir(e,t){for(var a=t+"Capture",n=[];e!==null;){var r=e,o=r.stateNode;r.tag===5&&o!==null&&(r=o,o=zi(e,a),o!=null&&n.unshift(_i(e,o,r)),o=zi(e,t),o!=null&&n.push(_i(e,o,r))),e=e.return}return n}function ja(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function fc(e,t,a,n,r){for(var o=t._reactName,s=[];a!==null&&a!==n;){var l=a,c=l.alternate,d=l.stateNode;if(c!==null&&c===n)break;l.tag===5&&d!==null&&(l=d,r?(c=zi(a,o),c!=null&&s.unshift(_i(a,c,l))):r||(c=zi(a,o),c!=null&&s.push(_i(a,c,l)))),a=a.return}s.length!==0&&e.push({event:t,listeners:s})}var mf=/\r\n?/g,pf=/\u0000|\uFFFD/g;function hc(e){return(typeof e=="string"?e:""+e).replace(mf,`
38`).replace(pf,"")}function In(e,t,a){if(t=hc(t),hc(e)!==t&&a)throw Error(I(425))}function nr(){}var Jo=null,Qo=null;function Zo(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 Xo=typeof setTimeout=="function"?setTimeout:void 0,gf=typeof clearTimeout=="function"?clearTimeout:void 0,yc=typeof Promise=="function"?Promise:void 0,ff=typeof queueMicrotask=="function"?queueMicrotask:typeof yc<"u"?function(e){return yc.resolve(null).then(e).catch(hf)}:Xo;function hf(e){setTimeout(function(){throw e})}function mo(e,t){var a=t,n=0;do{var r=a.nextSibling;if(e.removeChild(a),r&&r.nodeType===8)if(a=r.data,a==="/$"){if(n===0){e.removeChild(r),Gi(t);return}n--}else a!=="$"&&a!=="$?"&&a!=="$!"||n++;a=r}while(a);Gi(t)}function Vt(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 wc(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var a=e.data;if(a==="$"||a==="$!"||a==="$?"){if(t===0)return e;t--}else a==="/$"&&t++}e=e.previousSibling}return null}var oi=Math.random().toString(36).slice(2),ut="__reactFiber$"+oi,Vi="__reactProps$"+oi,Lt="__reactContainer$"+oi,es="__reactEvents$"+oi,yf="__reactListeners$"+oi,wf="__reactHandles$"+oi;function da(e){var t=e[ut];if(t)return t;for(var a=e.parentNode;a;){if(t=a[Lt]||a[ut]){if(a=t.alternate,t.child!==null||a!==null&&a.child!==null)for(e=wc(e);e!==null;){if(a=e[ut])return a;e=wc(e)}return t}e=a,a=e.parentNode}return null}function on(e){return e=e[ut]||e[Lt],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function qa(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(I(33))}function Tr(e){return e[Vi]||null}var ts=[],Ma=-1;function aa(e){return{current:e}}function J(e){0>Ma||(e.current=ts[Ma],ts[Ma]=null,Ma--)}function Y(e,t){Ma++,ts[Ma]=e.current,e.current=t}var Zt={},ve=aa(Zt),Pe=aa(!1),fa=Zt;function Ka(e,t){var a=e.type.contextTypes;if(!a)return Zt;var n=e.stateNode;if(n&&n.__reactInternalMemoizedUnmaskedChildContext===t)return n.__reactInternalMemoizedMaskedChildContext;var r={},o;for(o in a)r[o]=t[o];return n&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=r),r}function Te(e){return e=e.childContextTypes,e!=null}function rr(){J(Pe),J(ve)}function bc(e,t,a){if(ve.current!==Zt)throw Error(I(168));Y(ve,t),Y(Pe,a)}function Fu(e,t,a){var n=e.stateNode;if(t=t.childContextTypes,typeof n.getChildContext!="function")return a;n=n.getChildContext();for(var r in n)if(!(r in t))throw Error(I(108,tg(e)||"Unknown",r));return ie({},a,n)}function or(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Zt,fa=ve.current,Y(ve,e),Y(Pe,Pe.current),!0}function vc(e,t,a){var n=e.stateNode;if(!n)throw Error(I(169));a?(e=Fu(e,t,fa),n.__reactInternalMemoizedMergedChildContext=e,J(Pe),J(ve),Y(ve,e)):J(Pe),Y(Pe,a)}var jt=null,Lr=!1,po=!1;function zu(e){jt===null?jt=[e]:jt.push(e)}function bf(e){Lr=!0,zu(e)}function ia(){if(!po&&jt!==null){po=!0;var e=0,t=_;try{var a=jt;for(_=1;e<a.length;e++){var n=a[e];do n=n(!0);while(n!==null)}jt=null,Lr=!1}catch(r){throw jt!==null&&(jt=jt.slice(e+1)),cu(Ws,ia),r}finally{_=t,po=!1}}return null}var Ra=[],Fa=0,sr=null,lr=0,Ge=[],We=0,ha=null,St=1,Ct="";function sa(e,t){Ra[Fa++]=lr,Ra[Fa++]=sr,sr=e,lr=t}function Bu(e,t,a){Ge[We++]=St,Ge[We++]=Ct,Ge[We++]=ha,ha=e;var n=St;e=Ct;var r=32-Xe(n)-1;n&=~(1<<r),a+=1;var o=32-Xe(t)+r;if(30<o){var s=r-r%5;o=(n&(1<<s)-1).toString(32),n>>=s,r-=s,St=1<<32-Xe(t)+r|a<<r|n,Ct=o+e}else St=1<<o|a<<r|n,Ct=e}function Qs(e){e.return!==null&&(sa(e,1),Bu(e,1,0))}function Zs(e){for(;e===sr;)sr=Ra[--Fa],Ra[Fa]=null,lr=Ra[--Fa],Ra[Fa]=null;for(;e===ha;)ha=Ge[--We],Ge[We]=null,Ct=Ge[--We],Ge[We]=null,St=Ge[--We],Ge[We]=null}var Fe=null,Re=null,X=!1,Ze=null;function Uu(e,t){var a=Oe(5,null,null,0);a.elementType="DELETED",a.stateNode=t,a.return=e,t=e.deletions,t===null?(e.deletions=[a],e.flags|=16):t.push(a)}function xc(e,t){switch(e.tag){case 5:var a=e.type;
vendor: 1,205 bytes, line 38
38return t=t.nodeType!==1||a.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,Fe=e,Re=Vt(t.firstChild),!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,Fe=e,Re=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(a=ha!==null?{id:St,overflow:Ct}:null,e.memoizedState={dehydrated:t,treeContext:a,retryLane:1073741824},a=Oe(18,null,null,0),a.stateNode=t,a.return=e,e.child=a,Fe=e,Re=null,!0):!1;default:return!1}}function as(e){return(e.mode&1)!==0&&(e.flags&128)===0}function is(e){if(X){var t=Re;if(t){var a=t;if(!xc(e,t)){if(as(e))throw Error(I(418));t=Vt(a.nextSibling);var n=Fe;t&&xc(e,t)?Uu(n,a):(e.flags=e.flags&-4097|2,X=!1,Fe=e)}}else{if(as(e))throw Error(I(418));e.flags=e.flags&-4097|2,X=!1,Fe=e}}}function kc(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;Fe=e}function jn(e){if(e!==Fe)return!1;if(!X)return kc(e),X=!0,!1;var t;if((t=e.tag!==3)&&!(t=e.tag!==5)&&(t=e.type,t=t!=="head"&&t!=="body"&&!Zo(e.type,e.memoizedProps)),t&&(t=Re)){if(as(e))throw Gu(),Error(I(418));for(;t;)Uu(e,t),t=Vt(t.nextSibling)}if(kc(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(I(317)
vendor: 10,618 bytes, line 38
38);e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var a=e.data;if(a==="/$"){if(t===0){Re=Vt(e.nextSibling);break e}t--}else a!=="$"&&a!=="$!"&&a!=="$?"||t++}e=e.nextSibling}Re=null}}else Re=Fe?Vt(e.stateNode.nextSibling):null;return!0}function Gu(){for(var e=Re;e;)e=Vt(e.nextSibling)}function Ja(){Re=Fe=null,X=!1}function Xs(e){Ze===null?Ze=[e]:Ze.push(e)}var vf=Mt.ReactCurrentBatchConfig;function fi(e,t,a){if(e=a.ref,e!==null&&typeof e!="function"&&typeof e!="object"){if(a._owner){if(a=a._owner,a){if(a.tag!==1)throw Error(I(309));var n=a.stateNode}if(!n)throw Error(I(147,e));var r=n,o=""+e;return t!==null&&t.ref!==null&&typeof t.ref=="function"&&t.ref._stringRef===o?t.ref:(t=function(s){var l=r.refs;s===null?delete l[o]:l[o]=s},t._stringRef=o,t)}if(typeof e!="string")throw Error(I(284));if(!a._owner)throw Error(I(290,e))}return e}function Sn(e,t){throw e=Object.prototype.toString.call(t),Error(I(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function Ac(e){var t=e._init;return t(e._payload)}function Wu(e){function t(f,g){if(e){var h=f.deletions;h===null?(f.deletions=[g],f.flags|=16):h.push(g)}}function a(f,g){if(!e)return null;for(;g!==null;)t(f,g),g=g.sibling;return null}function n(f,g){for(f=new Map;g!==null;)g.key!==null?f.set(g.key,g):f.set(g.index,g),g=g.sibling;return f}function r(f,g){return f=Jt(f,g),f.index=0,f.sibling=null,f}function o(f,g,h){return f.index=h,e?(h=f.alternate,h!==null?(h=h.index,h<g?(f.flags|=2,g):h):(f.flags|=2,g)):(f.flags|=1048576,g)}function s(f){return e&&f.alternate===null&&(f.flags|=2),f}function l(f,g,h,x){return g===null||g.tag!==6?(g=vo(h,f.mode,x),g.return=f,g):(g=r(g,h),g.return=f,g)}function c(f,g,h,x){var k=h.type;return k===Ta?m(f,g,h.props.children,x,h.key):g!==null&&(g.elementType===k||typeof k=="object"&&k!==null&&k.$$typeof===Ft&&Ac(k)===g.type)?(x=r(g,h.props),x.ref=fi(f,g,h),x.return=f,x):(x=Hn(h.type,h.key,h.props,null,f.mode,x),x.ref=fi(f,g,h),x.return=f,x)}function d(f,g,h,x){return g===null||g.tag!==4||g.stateNode.containerInfo!==h.containerInfo||g.stateNode.implementation!==h.implementation?(g=xo(h,f.mode,x),g.return=f,g):(g=r(g,h.children||[]),g.return=f,g)}function m(f,g,h,x,k){return g===null||g.tag!==7?(g=ga(h,f.mode,x,k),g.return=f,g):(g=r(g,h),g.return=f,g)}function u(f,g,h){if(typeof g=="string"&&g!==""||typeof g=="number")return g=vo(""+g,f.mode,h),g.return=f,g;if(typeof g=="object"&&g!==null){switch(g.$$typeof){case fn:return h=Hn(g.type,g.key,g.props,null,f.mode,h),h.ref=fi(f,null,g),h.return=f,h;case Pa:return g=xo(g,f.mode,h),g.return=f,g;case Ft:var x=g._init;return u(f,x(g._payload),h)}if(ki(g)||di(g))return g=ga(g,f.mode,h,null),g.return=f,g;Sn(f,g)}return null}function p(f,g,h,x){var k=g!==null?g.key:null;if(typeof h=="string"&&h!==""||typeof h=="number")return k!==null?null:l(f,g,""+h,x);if(typeof h=="object"&&h!==null){switch(h.$$typeof){case fn:return h.key===k?c(f,g,h,x):null;case Pa:return h.key===k?d(f,g,h,x):null;case Ft:return k=h._init,p(f,g,k(h._payload),x)}if(ki(h)||di(h))return k!==null?null:m(f,g,h,x,null);Sn(f,h)}return null}function y(f,g,h,x,k){if(typeof x=="string"&&x!==""||typeof x=="number")return f=f.get(h)||null,l(g,f,""+x,k);if(typeof x=="object"&&x!==null){switch(x.$$typeof){case fn:return f=f.get(x.key===null?h:x.key)||null,c(g,f,x,k);case Pa:return f=f.get(x.key===null?h:x.key)||null,d(g,f,x,k);case Ft:var C=x._init;return y(f,g,h,C(x._payload),k)}if(ki(x)||di(x))return f=f.get(h)||null,m(g,f,x,k,null);Sn(g,x)}return null}function b(f,g,h,x){for(var k=null,C=null,S=g,P=g=0,R=null;S!==null&&P<h.length;P++){S.index>P?(R=S,S=null):R=S.sibling;var L=p(f,S,h[P],x);if(L===null){S===null&&(S=R);break}e&&S&&L.alternate===null&&t(f,S),g=o(L,g,P),C===null?k=L:C.sibling=L,C=L,S=R}if(P===h.length)return a(f,S),X&&sa(f,P),k;if(S===null){for(;P<h.length;P++)S=u(f,h[P],x),S!==null&&(g=o(S,g,P),C===null?k=S:C.sibling=S,C=S);return X&&sa(f,P),k}for(S=n(f,S);P<h.length;P++)R=y(S,f,P,h[P],x),R!==null&&(e&&R.alternate!==null&&S.delete(R.key===null?P:R.key),g=o(R,g,P),C===null?k=R:C.sibling=R,C=R);return e&&S.forEach(function(ue){return t(f,ue)}),X&&sa(f,P),k}function w(f,g,h,x){var k=di(h);if(typeof k!="function")throw Error(I(150));if(h=k.call(h),h==null)throw Error(I(151));for(var C=k=null,S=g,P=g=0,R=null,L=h.next();S!==null&&!L.done;P++,L=h.next()){S.index>P?(R=S,S=null):R=S.sibling;var ue=p(f,S,L.value,x);if(ue===null){S===null&&(S=R);break}e&&S&&ue.alternate===null&&t(f,S),g=o(ue,g,P),C===null?k=ue:C.sibling=ue,C=ue,S=R}if(L.done)return a(f,S),X&&sa(f,P),k;if(S===null){for(;!L.done;P++,L=h.next())L=u(f,L.value,x),L!==null&&(g=o(L,g,P),C===null?k=L:C.sibling=L,C=L);return X&&sa(f,P),k}for(S=n(f,S);!L.done;P++,L=h.next())L=y(S,f,P,L.value,x),L!==null&&(e&&L.alternate!==null&&S.delete(L.key===null?P:L.key),g=o(L,g,P),C===null?k=L:C.sibling=L,C=L);return e&&S.forEach(function(U){return t(f,U)}),X&&sa(f,P),k}function A(f,g,h,x){if(typeof h=="object"&&h!==null&&h.type===Ta&&h.key===null&&(h=h.props.children),typeof h=="object"&&h!==null){switch(h.$$typeof){case fn:e:{for(var k=h.key,C=g;C!==null;){if(C.key===k){if(k=h.type,k===Ta){if(C.tag===7){a(f,C.sibling),g=r(C,h.props.children),g.return=f,f=g;break e}}else if(C.elementType===k||typeof k=="object"&&k!==null&&k.$$typeof===Ft&&Ac(k)===C.type){a(f,C.sibling),g=r(C,h.props),g.ref=fi(f,C,h),g.return=f,f=g;break e}a(f,C);break}else t(f,C);C=C.sibling}h.type===Ta?(g=ga(h.props.children,f.mode,x,h.key),g.return=f,f=g):(x=Hn(h.type,h.key,h.props,null,f.mode,x),x.ref=fi(f,g,h),x.return=f,f=x)}return s(f);case Pa:e:{for(C=h.key;g!==null;){if(g.key===C)if(g.tag===4&&g.stateNode.containerInfo===h.containerInfo&&g.stateNode.implementation===h.implementation){a(f,g.sibling),g=r(g,h.children||[]),g.return=f,f=g;break e}else{a(f,g);break}else t(f,g);g=g.sibling}g=xo(h,f.mode,x),g.return=f,f=g}return s(f);case Ft:return C=h._init,A(f,g,C(h._payload),x)}if(ki(h))return b(f,g,h,x);if(di(h))return w(f,g,h,x);Sn(f,h)}return typeof h=="string"&&h!==""||typeof h=="number"?(h=""+h,g!==null&&g.tag===6?(a(f,g.sibling),g=r(g,h),g.return=f,f=g):(a(f,g),g=vo(h,f.mode,x),g.return=f,f=g),s(f)):a(f,g)}return A}var Qa=Wu(!0),Ou=Wu(!1),cr=aa(null),dr=null,za=null,el=null;function tl(){el=za=dr=null}function al(e){var t=cr.current;J(cr),e._currentValue=t}function ns(e,t,a){for(;e!==null;){var n=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,n!==null&&(n.childLanes|=t)):n!==null&&(n.childLanes&t)!==t&&(n.childLanes|=t),e===a)break;e=e.return}}function _a(e,t){dr=e,el=za=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Ne=!0),e.firstContext=null)}function _e(e){var t=e._currentValue;if(el!==e)if(e={context:e,memoizedValue:t,next:null},za===null){if(dr===null)throw Error(I(308));za=e,dr.dependencies={lanes:0,firstContext:e}}else za=za.next=e;return t}var ua=null;function il(e){ua===null?ua=[e]:ua.push(e)}function $u(e,t,a,n){var r=t.interleaved;return r===null?(a.next=a,il(t)):(a.next=r.next,r.next=a),t.interleaved=a,Et(e,n)}function Et(e,t){e.lanes|=t;var a=e.alternate;for(a!==null&&(a.lanes|=t),a=e,e=e.return;e!==null;)e.childLanes|=t,a=e.alternate,a!==null&&(a.childLanes|=t),a=e,e=e.return;return a.tag===3?a.stateNode:null}var zt=!1;function nl(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function _u(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 Nt(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Ht(e,t,a){var n=e.updateQueue;if(n===null)return null;if(n=n.shared,W&2){var r=n.pending;return r===null?t.next=t:(t.next=r.next,r.next=t),n.pending=t,Et(e,a)}return r=n.interleaved,r===null?(t.next=t,il(n)):(t.next=r.next,r.next=t),n.interleaved=t,Et(e,a)}function Gn(e,t,a){if(t=t.updateQueue,t!==null&&(t=t.shared,(a&4194240)!==0)){var n=t.lanes;n&=e.pendingLanes,a|=n,t.lanes=a,Os(e,a)}}function Ic(e,t){var a=e.updateQueue,n=e.alternate;if(n!==null&&(n=n.updateQueue,a===n)){var r=null,o=null;if(a=a.firstBaseUpdate,a!==null){do{var s={eventTime:a.eventTime,lane:a.lane,tag:a.tag,payload:a.payload,callback:a.callback,next:null};o===null?r=o=s:o=o.next=s,a=a.next}while(a!==null);o===null?r=o=t:o=o.next=t}else r=o=t;a={baseState:n.baseState,firstBaseUpdate:r,lastBaseUpdate:o,shared:n.shared,effects:n.effects},e.updateQueue=a;return}e=a.lastBaseUpdate,e===null?a.firstBaseUpdate=t:e.next=t,a.lastBaseUpdate=t}function ur(e,t,a,n){var r=e.updateQueue;zt=!1;var o=r.firstBaseUpdate,s=r.lastBaseUpdate,l=r.shared.pending;if(l!==null){r.shared.pending=null;var c=l,d=c.next;c.next=null,s===null?o=d:s.next=d,s=c;var m=e.alternate;m!==null&&(m=m.updateQueue,l=m.lastBaseUpdate,l!==s&&(l===null?m.firstBaseUpdate=d:l.next=d,m.lastBaseUpdate=c))}if(o!==null){var u=r.baseState;s=0,m=d=c=null,l=o;do{var p=l.lane,y=l.eventTime;if((n&p)===p){m!==null&&(m=m.next={eventTime:y,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var b=e,w=l;switch(p=t,y=a,w.tag){case 1:if(b=w.payload,typeof b=="function"){u=b.call(y,u,p);break e}u=b;break e;case 3:b.flags=b.flags&-65537|128;case 0:if(b=w.payload,p=typeof b=="function"?b.call(y,u,p):b,p==null)break e;u=ie({},u,p);break e;case 2:zt=!0}}l.callback!==null&&l.lane!==0&&(e.flags|=64,p=r.effects,p===null?r.effects=[l]:p.push(l))}else y={eventTime:y,lane:p,tag:l.tag,payload:l.payload,callback:l.callback,next:null},m===null?(d=m=y,c=u):m=m.next=y,s|=p;if(l=l.next,l===null){if(l=r.shared.pending,l===null)break;p=l,l=p.next,p.next=null,r.lastBaseUpdate=p,r.shared.pending=null}}while(!0);if(m===null&&(c=u),r.baseState=c,r.firstBaseUpdate=d,r.lastBaseUpdate=m,t=r.shared.interleaved,t!==null){r=t;do s|=r.lane,r=r.next;while(r!==t)}else o===null&&(r.shared.lanes=0);wa|=s,e.lanes=s,e.memoizedState=u}}function jc(e,t,a){if(e=t.effects,t.effects=null,e!==null)for(t=0;t<e.length;t++){var n=e[t],r=n.callback;if(r!==null){if(n.callback=null,n=a,typeof r!="function")throw Error(I(191,r));r.call(n)}}}var sn={},gt=aa(sn),Hi=aa(sn),Yi=aa(sn);function ma(e){if(e===sn)throw Error(I(174));return e}function rl(e,t){switch(Y(Yi,t),Y(Hi,e),Y(gt,sn),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:zo(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=zo(t,e)}J(gt),Y(gt,t)}function Za(){J(gt),J(Hi),J(Yi)}function Vu(e){ma(Yi.current);var t=ma(gt.current),a=zo(t,e.type);t!==a&&(Y(Hi,e),Y(gt,a))}function ol(e){Hi.current===e&&(J(gt),J(Hi))}
vendor: 7,346 bytes, line 38
38var ee=aa(0);function mr(e){for(var t=e;t!==null;){if(t.tag===13){var a=t.memoizedState;if(a!==null&&(a=a.dehydrated,a===null||a.data==="$?"||a.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 go=[];function sl(){for(var e=0;e<go.length;e++)go[e]._workInProgressVersionPrimary=null;go.length=0}var Wn=Mt.ReactCurrentDispatcher,fo=Mt.ReactCurrentBatchConfig,ya=0,te=null,ce=null,me=null,pr=!1,Ti=!1,Ki=0,xf=0;function ye(){throw Error(I(321))}function ll(e,t){if(t===null)return!1;for(var a=0;a<t.length&&a<e.length;a++)if(!tt(e[a],t[a]))return!1;return!0}function cl(e,t,a,n,r,o){if(ya=o,te=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Wn.current=e===null||e.memoizedState===null?jf:Sf,e=a(n,r),Ti){o=0;do{if(Ti=!1,Ki=0,25<=o)throw Error(I(301));o+=1,me=ce=null,t.updateQueue=null,Wn.current=Cf,e=a(n,r)}while(Ti)}if(Wn.current=gr,t=ce!==null&&ce.next!==null,ya=0,me=ce=te=null,pr=!1,t)throw Error(I(300));return e}function dl(){var e=Ki!==0;return Ki=0,e}function st(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return me===null?te.memoizedState=me=e:me=me.next=e,me}function Ve(){if(ce===null){var e=te.alternate;e=e!==null?e.memoizedState:null}else e=ce.next;var t=me===null?te.memoizedState:me.next;if(t!==null)me=t,ce=e;else{if(e===null)throw Error(I(310));ce=e,e={memoizedState:ce.memoizedState,baseState:ce.baseState,baseQueue:ce.baseQueue,queue:ce.queue,next:null},me===null?te.memoizedState=me=e:me=me.next=e}return me}function Ji(e,t){return typeof t=="function"?t(e):t}function ho(e){var t=Ve(),a=t.queue;if(a===null)throw Error(I(311));a.lastRenderedReducer=e;var n=ce,r=n.baseQueue,o=a.pending;if(o!==null){if(r!==null){var s=r.next;r.next=o.next,o.next=s}n.baseQueue=r=o,a.pending=null}if(r!==null){o=r.next,n=n.baseState;var l=s=null,c=null,d=o;do{var m=d.lane;if((ya&m)===m)c!==null&&(c=c.next={lane:0,action:d.action,hasEagerState:d.hasEagerState,eagerState:d.eagerState,next:null}),n=d.hasEagerState?d.eagerState:e(n,d.action);else{var u={lane:m,action:d.action,hasEagerState:d.hasEagerState,eagerState:d.eagerState,next:null};c===null?(l=c=u,s=n):c=c.next=u,te.lanes|=m,wa|=m}d=d.next}while(d!==null&&d!==o);c===null?s=n:c.next=l,tt(n,t.memoizedState)||(Ne=!0),t.memoizedState=n,t.baseState=s,t.baseQueue=c,a.lastRenderedState=n}if(e=a.interleaved,e!==null){r=e;do o=r.lane,te.lanes|=o,wa|=o,r=r.next;while(r!==e)}else r===null&&(a.lanes=0);return[t.memoizedState,a.dispatch]}function yo(e){var t=Ve(),a=t.queue;if(a===null)throw Error(I(311));a.lastRenderedReducer=e;var n=a.dispatch,r=a.pending,o=t.memoizedState;if(r!==null){a.pending=null;var s=r=r.next;do o=e(o,s.action),s=s.next;while(s!==r);tt(o,t.memoizedState)||(Ne=!0),t.memoizedState=o,t.baseQueue===null&&(t.baseState=o),a.lastRenderedState=o}return[o,n]}function Hu(){}function Yu(e,t){var a=te,n=Ve(),r=t(),o=!tt(n.memoizedState,r);if(o&&(n.memoizedState=r,Ne=!0),n=n.queue,ul(Qu.bind(null,a,n,e),[e]),n.getSnapshot!==t||o||me!==null&&me.memoizedState.tag&1){if(a.flags|=2048,Qi(9,Ju.bind(null,a,n,r,t),void 0,null),pe===null)throw Error(I(349));ya&30||Ku(a,t,r)}return r}function Ku(e,t,a){e.flags|=16384,e={getSnapshot:t,value:a},t=te.updateQueue,t===null?(t={lastEffect:null,stores:null},te.updateQueue=t,t.stores=[e]):(a=t.stores,a===null?t.stores=[e]:a.push(e))}function Ju(e,t,a,n){t.value=a,t.getSnapshot=n,Zu(t)&&Xu(e)}function Qu(e,t,a){return a(function(){Zu(t)&&Xu(e)})}function Zu(e){var t=e.getSnapshot;e=e.value;try{var a=t();return!tt(e,a)}catch{return!0}}function Xu(e){var t=Et(e,1);t!==null&&et(t,e,1,-1)}function Sc(e){var t=st();return typeof e=="function"&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Ji,lastRenderedState:e},t.queue=e,e=e.dispatch=If.bind(null,te,e),[t.memoizedState,e]}function Qi(e,t,a,n){return e={tag:e,create:t,destroy:a,deps:n,next:null},t=te.updateQueue,t===null?(t={lastEffect:null,stores:null},te.updateQueue=t,t.lastEffect=e.next=e):(a=t.lastEffect,a===null?t.lastEffect=e.next=e:(n=a.next,a.next=e,e.next=n,t.lastEffect=e)),e}function em(){return Ve().memoizedState}function On(e,t,a,n){var r=st();te.flags|=e,r.memoizedState=Qi(1|t,a,void 0,n===void 0?null:n)}function Er(e,t,a,n){var r=Ve();n=n===void 0?null:n;var o=void 0;if(ce!==null){var s=ce.memoizedState;if(o=s.destroy,n!==null&&ll(n,s.deps)){r.memoizedState=Qi(t,a,o,n);return}}te.flags|=e,r.memoizedState=Qi(1|t,a,o,n)}function Cc(e,t){return On(8390656,8,e,t)}function ul(e,t){return Er(2048,8,e,t)}function tm(e,t){return Er(4,2,e,t)}function am(e,t){return Er(4,4,e,t)}function im(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 nm(e,t,a){return a=a!=null?a.concat([e]):null,Er(4,4,im.bind(null,t,e),a)}function ml(){}function rm(e,t){var a=Ve();t=t===void 0?null:t;var n=a.memoizedState;return n!==null&&t!==null&&ll(t,n[1])?n[0]:(a.memoizedState=[e,t],e)}function om(e,t){var a=Ve();t=t===void 0?null:t;var n=a.memoizedState;return n!==null&&t!==null&&ll(t,n[1])?n[0]:(e=e(),a.memoizedState=[e,t],e)}function sm(e,t,a){return ya&21?(tt(a,t)||(a=mu(),te.lanes|=a,wa|=a,e.baseState=!0),t):(e.baseState&&(e.baseState=!1,Ne=!0),e.memoizedState=a)}function kf(e,t){var a=_;_=a!==0&&4>a?a:4,e(!0);var n=fo.transition;fo.transition={};try{e(!1),t()}finally{_=a,fo.transition=n}}function lm(){return Ve().memoizedState}function Af(e,t,a){var n=Kt(e);if(a={lane:n,action:a,hasEagerState:!1,eagerState:null,next:null},cm(e))dm(t,a);else if(a=$u(e,t,a,n),a!==null){var r=Ae();et(a,e,n,r),um(a,t,n)}}function If(e,t,a){var n=Kt(e),r={lane:n,action:a,hasEagerState:!1,eagerState:null,next:null};if(cm(e))dm(t,r);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var s=t.lastRenderedState,l=o(s,a);if(r.hasEagerState=!0,r.eagerState=l,tt(l,s)){var c=t.interleaved;c===null?(r.next=r,il(t)):(r.next=c.next,c.next=r),t.interleaved=r;return}}catch{}finally{}a=$u(e,t,r,n),a!==null&&(r=Ae(),et(a,e,n,r),um(a,t,n))}}function cm(e){var t=e.alternate;return e===te||t!==null&&t===te}function dm(e,t){Ti=pr=!0;var a=e.pending;a===null?t.next=t:(t.next=a.next,a.next=t),e.pending=t}function um(e,t,a){if(a&4194240){var n=t.lanes;n&=e.pendingLanes,a|=n,t.lanes=a,Os(e,a)}}var gr={readContext:_e,useCallback:ye,useContext:ye,useEffect:ye,useImperativeHandle:ye,useInsertionEffect:ye,useLayoutEffect:ye,useMemo:ye,useReducer:ye,useRef:ye,useState:ye,useDebugValue:ye,useDeferredValue:ye,useTransition:ye,useMutableSource:ye,useSyncExternalStore:ye,useId:ye,unstable_isNewReconciler:!1},jf={readContext:_e,useCallback:function(e,t){return st().memoizedState=[e,t===void 0?null:t],e},useContext:_e,useEffect:Cc,useImperativeHandle:function(e,t,a){return a=a!=null?a.concat([e]):null,On(4194308,4,im.bind(null,t,e),a)},useLayoutEffect:function(e,t){return On(4194308,4,e,t)},useInsertionEffect:function(e,t){return On(4,2,e,t)},useMemo:function(e,t){var a=st();return t=t===void 0?null:t,e=e(),a.memoizedState=[e,t],e},useReducer:function(e,t,a){var n=st();
vendor: 7,641 bytes, lines 38-40
38return t=a!==void 0?a(t):t,n.memoizedState=n.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},n.queue=e,e=e.dispatch=Af.bind(null,te,e),[n.memoizedState,e]},useRef:function(e){var t=st();return e={current:e},t.memoizedState=e},useState:Sc,useDebugValue:ml,useDeferredValue:function(e){return st().memoizedState=e},useTransition:function(){var e=Sc(!1),t=e[0];return e=kf.bind(null,e[1]),st().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,a){var n=te,r=st();if(X){if(a===void 0)throw Error(I(407));a=a()}else{if(a=t(),pe===null)throw Error(I(349));ya&30||Ku(n,t,a)}r.memoizedState=a;var o={value:a,getSnapshot:t};return r.queue=o,Cc(Qu.bind(null,n,o,e),[e]),n.flags|=2048,Qi(9,Ju.bind(null,n,o,a,t),void 0,null),a},useId:function(){var e=st(),t=pe.identifierPrefix;if(X){var a=Ct,n=St;a=(n&~(1<<32-Xe(n)-1)).toString(32)+a,t=":"+t+"R"+a,a=Ki++,0<a&&(t+="H"+a.toString(32)),t+=":"}else a=xf++,t=":"+t+"r"+a.toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},Sf={readContext:_e,useCallback:rm,useContext:_e,useEffect:ul,useImperativeHandle:nm,useInsertionEffect:tm,useLayoutEffect:am,useMemo:om,useReducer:ho,useRef:em,useState:function(){return ho(Ji)},useDebugValue:ml,useDeferredValue:function(e){var t=Ve();return sm(t,ce.memoizedState,e)},useTransition:function(){var e=ho(Ji)[0],t=Ve().memoizedState;return[e,t]},useMutableSource:Hu,useSyncExternalStore:Yu,useId:lm,unstable_isNewReconciler:!1},Cf={readContext:_e,useCallback:rm,useContext:_e,useEffect:ul,useImperativeHandle:nm,useInsertionEffect:tm,useLayoutEffect:am,useMemo:om,useReducer:yo,useRef:em,useState:function(){return yo(Ji)},useDebugValue:ml,useDeferredValue:function(e){var t=Ve();return ce===null?t.memoizedState=e:sm(t,ce.memoizedState,e)},useTransition:function(){var e=yo(Ji)[0],t=Ve().memoizedState;return[e,t]},useMutableSource:Hu,useSyncExternalStore:Yu,useId:lm,unstable_isNewReconciler:!1};function Je(e,t){if(e&&e.defaultProps){t=ie({},t),e=e.defaultProps;for(var a in e)t[a]===void 0&&(t[a]=e[a]);return t}return t}function rs(e,t,a,n){t=e.memoizedState,a=a(n,t),a=a==null?t:ie({},t,a),e.memoizedState=a,e.lanes===0&&(e.updateQueue.baseState=a)}var Dr={isMounted:function(e){return(e=e._reactInternals)?Aa(e)===e:!1},enqueueSetState:function(e,t,a){e=e._reactInternals;var n=Ae(),r=Kt(e),o=Nt(n,r);o.payload=t,a!=null&&(o.callback=a),t=Ht(e,o,r),t!==null&&(et(t,e,r,n),Gn(t,e,r))},enqueueReplaceState:function(e,t,a){e=e._reactInternals;var n=Ae(),r=Kt(e),o=Nt(n,r);o.tag=1,o.payload=t,a!=null&&(o.callback=a),t=Ht(e,o,r),t!==null&&(et(t,e,r,n),Gn(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var a=Ae(),n=Kt(e),r=Nt(a,n);r.tag=2,t!=null&&(r.callback=t),t=Ht(e,r,n),t!==null&&(et(t,e,n,a),Gn(t,e,n))}};function Nc(e,t,a,n,r,o,s){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(n,o,s):t.prototype&&t.prototype.isPureReactComponent?!Oi(a,n)||!Oi(r,o):!0}function mm(e,t,a){var n=!1,r=Zt,o=t.contextType;return typeof o=="object"&&o!==null?o=_e(o):(r=Te(t)?fa:ve.current,n=t.contextTypes,o=(n=n!=null)?Ka(e,r):Zt),t=new t(a,o),e.memoizedState=t.state!==null&&t.state!==void 0?t.state:null,t.updater=Dr,e.stateNode=t,t._reactInternals=e,n&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=r,e.__reactInternalMemoizedMaskedChildContext=o),t}function Pc(e,t,a,n){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(a,n),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(a,n),t.state!==e&&Dr.enqueueReplaceState(t,t.state,null)}function os(e,t,a,n){var r=e.stateNode;r.props=a,r.state=e.memoizedState,r.refs={},nl(e);var o=t.contextType;typeof o=="object"&&o!==null?r.context=_e(o):(o=Te(t)?fa:ve.current,r.context=Ka(e,o)),r.state=e.memoizedState,o=t.getDerivedStateFromProps,typeof o=="function"&&(rs(e,t,o,a),r.state=e.memoizedState),typeof t.getDerivedStateFromProps=="function"||typeof r.getSnapshotBeforeUpdate=="function"||typeof r.UNSAFE_componentWillMount!="function"&&typeof r.componentWillMount!="function"||(t=r.state,typeof r.componentWillMount=="function"&&r.componentWillMount(),typeof r.UNSAFE_componentWillMount=="function"&&r.UNSAFE_componentWillMount(),t!==r.state&&Dr.enqueueReplaceState(r,r.state,null),ur(e,a,r,n),r.state=e.memoizedState),typeof r.componentDidMount=="function"&&(e.flags|=4194308)}function Xa(e,t){try{var a="",n=t;do a+=eg(n),n=n.return;while(n);var r=a}catch(o){r=`
39Error generating stack: `+o.message+`
40`+o.stack}return{value:e,source:t,stack:r,digest:null}}function wo(e,t,a){return{value:e,source:null,stack:a??null,digest:t??null}}function ss(e,t){try{console.error(t.value)}catch(a){setTimeout(function(){throw a})}}var Nf=typeof WeakMap=="function"?WeakMap:Map;function pm(e,t,a){a=Nt(-1,a),a.tag=3,a.payload={element:null};var n=t.value;return a.callback=function(){hr||(hr=!0,ys=n),ss(e,t)},a}function gm(e,t,a){a=Nt(-1,a),a.tag=3;var n=e.type.getDerivedStateFromError;if(typeof n=="function"){var r=t.value;a.payload=function(){return n(r)},a.callback=function(){ss(e,t)}}var o=e.stateNode;return o!==null&&typeof o.componentDidCatch=="function"&&(a.callback=function(){ss(e,t),typeof n!="function"&&(Yt===null?Yt=new Set([this]):Yt.add(this));var s=t.stack;this.componentDidCatch(t.value,{componentStack:s!==null?s:""})}),a}function Tc(e,t,a){var n=e.pingCache;if(n===null){n=e.pingCache=new Nf;var r=new Set;n.set(t,r)}else r=n.get(t),r===void 0&&(r=new Set,n.set(t,r));r.has(a)||(r.add(a),e=Wf.bind(null,e,t,a),t.then(e,e))}function Lc(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 Ec(e,t,a,n,r){return e.mode&1?(e.flags|=65536,e.lanes=r,e):(e===t?e.flags|=65536:(e.flags|=128,a.flags|=131072,a.flags&=-52805,a.tag===1&&(a.alternate===null?a.tag=17:(t=Nt(-1,1),t.tag=2,Ht(a,t,1))),a.lanes|=1),e)}var Pf=Mt.ReactCurrentOwner,Ne=!1;function xe(e,t,a,n){t.child=e===null?Ou(t,null,a,n):Qa(t,e.child,a,n)}function Dc(e,t,a,n,r){a=a.render;var o=t.ref;return _a(t,r),n=cl(e,t,a,n,o,r),a=dl(),e!==null&&!Ne?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~r,Dt(e,t,r)):(X&&a&&Qs(t),t.flags|=1,xe(e,t,n,r),t.child)}function qc(e,t,a,n,r){if(e===null){var o=a.type;return typeof o=="function"&&!vl(o)&&o.defaultProps===void 0&&a.compare===null&&a.defaultProps===void 0?(t.tag=15,t.type=o,fm(e,t,o,n,r)):(e=Hn(a.type,null,n,t,t.mode,r),e.ref=t.ref,e.return=t,t.child=e)}if(o=e.child,!(e.lanes&r)){var s=o.memoizedProps;if(a=a.compare,a=a!==null?a:Oi,a(s,n)&&e.ref===t.ref)return Dt(e,t,r)}return t.flags|=1,e=Jt(o,n),e.ref=t.ref,e.return=t,t.child=e}function fm(e,t,a,n,r){if(e!==null){var o=e.memoizedProps;if(Oi(o,n)&&e.ref===t.ref)if(Ne=!1,t.pendingProps=n=o,(e.lanes&r)!==0)e.flags&131072&&(Ne=!0);else return t.lanes=e.lanes,Dt(e,t,r)}return ls(e,t,a,n,r)}function hm(e,t,a){var n=t.pendingProps,r=n.children,o=e!==null?e.memoizedState:null;if(n.mode==="hidden")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},Y(Ua,qe),qe|=a;else{if(!(a&1073741824))return e=o!==null?o.baseLanes|a:a,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,Y(Ua,qe),qe|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},n=o!==null?o.baseLanes:a,Y(Ua,qe),qe|=n}else o!==null?(n=o.baseLanes|a,t.memoizedState=null):n=a,Y(Ua,qe),qe|=n;return xe(e,t,r,a),t.child}function ym(e,t){var a=t.ref;(e===null&&a!==null||e!==null&&e.ref!==a)&&(t.flags|=512,t.flags|=2097152)}
vendor: 6,243 bytes, line 40
40function ls(e,t,a,n,r){var o=Te(a)?fa:ve.current;return o=Ka(t,o),_a(t,r),a=cl(e,t,a,n,o,r),n=dl(),e!==null&&!Ne?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~r,Dt(e,t,r)):(X&&n&&Qs(t),t.flags|=1,xe(e,t,a,r),t.child)}function Mc(e,t,a,n,r){if(Te(a)){var o=!0;or(t)}else o=!1;if(_a(t,r),t.stateNode===null)$n(e,t),mm(t,a,n),os(t,a,n,r),n=!0;else if(e===null){var s=t.stateNode,l=t.memoizedProps;s.props=l;var c=s.context,d=a.contextType;typeof d=="object"&&d!==null?d=_e(d):(d=Te(a)?fa:ve.current,d=Ka(t,d));var m=a.getDerivedStateFromProps,u=typeof m=="function"||typeof s.getSnapshotBeforeUpdate=="function";u||typeof s.UNSAFE_componentWillReceiveProps!="function"&&typeof s.componentWillReceiveProps!="function"||(l!==n||c!==d)&&Pc(t,s,n,d),zt=!1;var p=t.memoizedState;s.state=p,ur(t,n,s,r),c=t.memoizedState,l!==n||p!==c||Pe.current||zt?(typeof m=="function"&&(rs(t,a,m,n),c=t.memoizedState),(l=zt||Nc(t,a,l,n,p,c,d))?(u||typeof s.UNSAFE_componentWillMount!="function"&&typeof s.componentWillMount!="function"||(typeof s.componentWillMount=="function"&&s.componentWillMount(),typeof s.UNSAFE_componentWillMount=="function"&&s.UNSAFE_componentWillMount()),typeof s.componentDidMount=="function"&&(t.flags|=4194308)):(typeof s.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=n,t.memoizedState=c),s.props=n,s.state=c,s.context=d,n=l):(typeof s.componentDidMount=="function"&&(t.flags|=4194308),n=!1)}else{s=t.stateNode,_u(e,t),l=t.memoizedProps,d=t.type===t.elementType?l:Je(t.type,l),s.props=d,u=t.pendingProps,p=s.context,c=a.contextType,typeof c=="object"&&c!==null?c=_e(c):(c=Te(a)?fa:ve.current,c=Ka(t,c));var y=a.getDerivedStateFromProps;(m=typeof y=="function"||typeof s.getSnapshotBeforeUpdate=="function")||typeof s.UNSAFE_componentWillReceiveProps!="function"&&typeof s.componentWillReceiveProps!="function"||(l!==u||p!==c)&&Pc(t,s,n,c),zt=!1,p=t.memoizedState,s.state=p,ur(t,n,s,r);var b=t.memoizedState;l!==u||p!==b||Pe.current||zt?(typeof y=="function"&&(rs(t,a,y,n),b=t.memoizedState),(d=zt||Nc(t,a,d,n,p,b,c)||!1)?(m||typeof s.UNSAFE_componentWillUpdate!="function"&&typeof s.componentWillUpdate!="function"||(typeof s.componentWillUpdate=="function"&&s.componentWillUpdate(n,b,c),typeof s.UNSAFE_componentWillUpdate=="function"&&s.UNSAFE_componentWillUpdate(n,b,c)),typeof s.componentDidUpdate=="function"&&(t.flags|=4),typeof s.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof s.componentDidUpdate!="function"||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),typeof s.getSnapshotBeforeUpdate!="function"||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),t.memoizedProps=n,t.memoizedState=b),s.props=n,s.state=b,s.context=c,n=d):(typeof s.componentDidUpdate!="function"||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),typeof s.getSnapshotBeforeUpdate!="function"||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),n=!1)}return cs(e,t,a,n,o,r)}function cs(e,t,a,n,r,o){ym(e,t);var s=(t.flags&128)!==0;if(!n&&!s)return r&&vc(t,a,!1),Dt(e,t,o);n=t.stateNode,Pf.current=t;var l=s&&typeof a.getDerivedStateFromError!="function"?null:n.render();return t.flags|=1,e!==null&&s?(t.child=Qa(t,e.child,null,o),t.child=Qa(t,null,l,o)):xe(e,t,l,o),t.memoizedState=n.state,r&&vc(t,a,!0),t.child}function wm(e){var t=e.stateNode;t.pendingContext?bc(e,t.pendingContext,t.pendingContext!==t.context):t.context&&bc(e,t.context,!1),rl(e,t.containerInfo)}function Rc(e,t,a,n,r){return Ja(),Xs(r),t.flags|=256,xe(e,t,a,n),t.child}var ds={dehydrated:null,treeContext:null,retryLane:0};function us(e){return{baseLanes:e,cachePool:null,transitions:null}}function bm(e,t,a){var n=t.pendingProps,r=ee.current,o=!1,s=(t.flags&128)!==0,l;if((l=s)||(l=e!==null&&e.memoizedState===null?!1:(r&2)!==0),l?(o=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(r|=1),Y(ee,r&1),e===null)return is(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):(s=n.children,e=n.fallback,o?(n=t.mode,o=t.child,s={mode:"hidden",children:s},!(n&1)&&o!==null?(o.childLanes=0,o.pendingProps=s):o=Rr(s,n,0,null),e=ga(e,n,a,null),o.return=t,e.return=t,o.sibling=e,t.child=o,t.child.memoizedState=us(a),t.memoizedState=ds,e):pl(t,s));if(r=e.memoizedState,r!==null&&(l=r.dehydrated,l!==null))return Tf(e,t,s,n,l,r,a);if(o){o=n.fallback,s=t.mode,r=e.child,l=r.sibling;var c={mode:"hidden",children:n.children};return!(s&1)&&t.child!==r?(n=t.child,n.childLanes=0,n.pendingProps=c,t.deletions=null):(n=Jt(r,c),n.subtreeFlags=r.subtreeFlags&14680064),l!==null?o=Jt(l,o):(o=ga(o,s,a,null),o.flags|=2),o.return=t,n.return=t,n.sibling=o,t.child=n,n=o,o=t.child,s=e.child.memoizedState,s=s===null?us(a):{baseLanes:s.baseLanes|a,cachePool:null,transitions:s.transitions},o.memoizedState=s,o.childLanes=e.childLanes&~a,t.memoizedState=ds,n}return o=e.child,e=o.sibling,n=Jt(o,{mode:"visible",children:n.children}),!(t.mode&1)&&(n.lanes=a),n.return=t,n.sibling=null,e!==null&&(a=t.deletions,a===null?(t.deletions=[e],t.flags|=16):a.push(e)),t.child=n,t.memoizedState=null,n}function pl(e,t){return t=Rr({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function Cn(e,t,a,n){return n!==null&&Xs(n),Qa(t,e.child,null,a),e=pl(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Tf(e,t,a,n,r,o,s){if(a)return t.flags&256?(t.flags&=-257,n=wo(Error(I(422))),Cn(e,t,s,n)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(o=n.fallback,r=t.mode,n=Rr({mode:"visible",children:n.children},r,0,null),o=ga(o,r,s,null),o.flags|=2,n.return=t,o.return=t,n.sibling=o,t.child=n,t.mode&1&&Qa(t,e.child,null,s),t.child.memoizedState=us(s),t.memoizedState=ds,o);if(!(t.mode&1))return Cn(e,t,s,null);if(r.data==="$!"){if(n=r.nextSibling&&r.nextSibling.dataset,n)var l=n.dgst;return n=l,o=Error(I(419)),n=wo(o,n,void 0),Cn(e,t,s,n)}if(l=(s&e.childLanes)!==0,Ne||l){if(n=pe,n!==null){switch(s&-s){case 4:r=2;break;case 16:r=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:r=32;break;case 536870912:r=268435456;break;default:r=0}
vendor: 6,554 bytes, line 40
40r=r&(n.suspendedLanes|s)?0:r,r!==0&&r!==o.retryLane&&(o.retryLane=r,Et(e,r),et(n,e,r,-1))}return bl(),n=wo(Error(I(421))),Cn(e,t,s,n)}return r.data==="$?"?(t.flags|=128,t.child=e.child,t=Of.bind(null,e),r._reactRetry=t,null):(e=o.treeContext,Re=Vt(r.nextSibling),Fe=t,X=!0,Ze=null,e!==null&&(Ge[We++]=St,Ge[We++]=Ct,Ge[We++]=ha,St=e.id,Ct=e.overflow,ha=t),t=pl(t,n.children),t.flags|=4096,t)}function Fc(e,t,a){e.lanes|=t;var n=e.alternate;n!==null&&(n.lanes|=t),ns(e.return,t,a)}function bo(e,t,a,n,r){var o=e.memoizedState;o===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:n,tail:a,tailMode:r}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=n,o.tail=a,o.tailMode=r)}function vm(e,t,a){var n=t.pendingProps,r=n.revealOrder,o=n.tail;if(xe(e,t,n.children,a),n=ee.current,n&2)n=n&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&&Fc(e,a,t);else if(e.tag===19)Fc(e,a,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}n&=1}if(Y(ee,n),!(t.mode&1))t.memoizedState=null;else switch(r){case"forwards":for(a=t.child,r=null;a!==null;)e=a.alternate,e!==null&&mr(e)===null&&(r=a),a=a.sibling;a=r,a===null?(r=t.child,t.child=null):(r=a.sibling,a.sibling=null),bo(t,!1,r,a,o);break;case"backwards":for(a=null,r=t.child,t.child=null;r!==null;){if(e=r.alternate,e!==null&&mr(e)===null){t.child=r;break}e=r.sibling,r.sibling=a,a=r,r=e}bo(t,!0,a,null,o);break;case"together":bo(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function $n(e,t){!(t.mode&1)&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Dt(e,t,a){if(e!==null&&(t.dependencies=e.dependencies),wa|=t.lanes,!(a&t.childLanes))return null;if(e!==null&&t.child!==e.child)throw Error(I(153));if(t.child!==null){for(e=t.child,a=Jt(e,e.pendingProps),t.child=a,a.return=t;e.sibling!==null;)e=e.sibling,a=a.sibling=Jt(e,e.pendingProps),a.return=t;a.sibling=null}return t.child}function Lf(e,t,a){switch(t.tag){case 3:wm(t),Ja();break;case 5:Vu(t);break;case 1:Te(t.type)&&or(t);break;case 4:rl(t,t.stateNode.containerInfo);break;case 10:var n=t.type._context,r=t.memoizedProps.value;Y(cr,n._currentValue),n._currentValue=r;break;case 13:if(n=t.memoizedState,n!==null)return n.dehydrated!==null?(Y(ee,ee.current&1),t.flags|=128,null):a&t.child.childLanes?bm(e,t,a):(Y(ee,ee.current&1),e=Dt(e,t,a),e!==null?e.sibling:null);Y(ee,ee.current&1);break;case 19:if(n=(a&t.childLanes)!==0,e.flags&128){if(n)return vm(e,t,a);t.flags|=128}if(r=t.memoizedState,r!==null&&(r.rendering=null,r.tail=null,r.lastEffect=null),Y(ee,ee.current),n)break;return null;case 22:case 23:return t.lanes=0,hm(e,t,a)}return Dt(e,t,a)}var xm,ms,km,Am;xm=function(e,t){for(var a=t.child;a!==null;){if(a.tag===5||a.tag===6)e.appendChild(a.stateNode);else if(a.tag!==4&&a.child!==null){a.child.return=a,a=a.child;continue}if(a===t)break;for(;a.sibling===null;){if(a.return===null||a.return===t)return;a=a.return}a.sibling.return=a.return,a=a.sibling}};ms=function(){};km=function(e,t,a,n){var r=e.memoizedProps;if(r!==n){e=t.stateNode,ma(gt.current);var o=null;switch(a){case"input":r=qo(e,r),n=qo(e,n),o=[];break;case"select":r=ie({},r,{value:void 0}),n=ie({},n,{value:void 0}),o=[];break;case"textarea":r=Fo(e,r),n=Fo(e,n),o=[];break;default:typeof r.onClick!="function"&&typeof n.onClick=="function"&&(e.onclick=nr)}Bo(a,n);var s;a=null;for(d in r)if(!n.hasOwnProperty(d)&&r.hasOwnProperty(d)&&r[d]!=null)if(d==="style"){var l=r[d];for(s in l)l.hasOwnProperty(s)&&(a||(a={}),a[s]="")}else d!=="dangerouslySetInnerHTML"&&d!=="children"&&d!=="suppressContentEditableWarning"&&d!=="suppressHydrationWarning"&&d!=="autoFocus"&&(Ri.hasOwnProperty(d)?o||(o=[]):(o=o||[]).push(d,null));for(d in n){var c=n[d];if(l=r!=null?r[d]:void 0,n.hasOwnProperty(d)&&c!==l&&(c!=null||l!=null))if(d==="style")if(l){for(s in l)!l.hasOwnProperty(s)||c&&c.hasOwnProperty(s)||(a||(a={}),a[s]="");for(s in c)c.hasOwnProperty(s)&&l[s]!==c[s]&&(a||(a={}),a[s]=c[s])}else a||(o||(o=[]),o.push(d,a)),a=c;else d==="dangerouslySetInnerHTML"?(c=c?c.__html:void 0,l=l?l.__html:void 0,c!=null&&l!==c&&(o=o||[]).push(d,c)):d==="children"?typeof c!="string"&&typeof c!="number"||(o=o||[]).push(d,""+c):d!=="suppressContentEditableWarning"&&d!=="suppressHydrationWarning"&&(Ri.hasOwnProperty(d)?(c!=null&&d==="onScroll"&&K("scroll",e),o||l===c||(o=[])):(o=o||[]).push(d,c))}a&&(o=o||[]).push("style",a);var d=o;(t.updateQueue=d)&&(t.flags|=4)}};Am=function(e,t,a,n){a!==n&&(t.flags|=4)};function hi(e,t){if(!X)switch(e.tailMode){case"hidden":t=e.tail;for(var a=null;t!==null;)t.alternate!==null&&(a=t),t=t.sibling;a===null?e.tail=null:a.sibling=null;break;case"collapsed":a=e.tail;for(var n=null;a!==null;)a.alternate!==null&&(n=a),a=a.sibling;n===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:n.sibling=null}}function we(e){var t=e.alternate!==null&&e.alternate.child===e.child,a=0,n=0;if(t)for(var r=e.child;r!==null;)a|=r.lanes|r.childLanes,n|=r.subtreeFlags&14680064,n|=r.flags&14680064,r.return=e,r=r.sibling;else for(r=e.child;r!==null;)a|=r.lanes|r.childLanes,n|=r.subtreeFlags,n|=r.flags,r.return=e,r=r.sibling;return e.subtreeFlags|=n,e.childLanes=a,t}function Ef(e,t,a){var n=t.pendingProps;switch(Zs(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return we(t),null;case 1:return Te(t.type)&&rr(),we(t),null;case 3:return n=t.stateNode,Za(),J(Pe),J(ve),sl(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(jn(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Ze!==null&&(vs(Ze),Ze=null))),ms(e,t),we(t),null;case 5:ol(t);var r=ma(Yi.current);if(a=t.type,e!==null&&t.stateNode!=null)km(e,t,a,n,r),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!n){if(t.stateNode===null)throw Error(I(166));return we(t),null}if(e=ma(gt.current),jn(t)){n=t.stateNode,a=t.type;var o=t.memoizedProps;switch(n[ut]=t,n[Vi]=o,e=(t.mode&1)!==0,a){case"dialog":K("cancel",n),K("close",n);break;case"iframe":case"object":case"embed":K("load",n);break;case"video":case"audio":for(r=0;r<Ii.length;r++)K(Ii[r],n);break;case"source":K("error",n);break;case"img":case"image":case"link":K("error",n),K("load",n);break;case"details":K("toggle",n);break;case"input":Vl(n,o),K("invalid",n);break;case"select":n._wrapperState={wasMultiple:!!o.multiple},K("invalid",n);break;
vendor: 1,575 bytes, line 40
40case"textarea":Yl(n,o),K("invalid",n)}Bo(a,o),r=null;for(var s in o)if(o.hasOwnProperty(s)){var l=o[s];s==="children"?typeof l=="string"?n.textContent!==l&&(o.suppressHydrationWarning!==!0&&In(n.textContent,l,e),r=["children",l]):typeof l=="number"&&n.textContent!==""+l&&(o.suppressHydrationWarning!==!0&&In(n.textContent,l,e),r=["children",""+l]):Ri.hasOwnProperty(s)&&l!=null&&s==="onScroll"&&K("scroll",n)}switch(a){case"input":hn(n),Hl(n,o,!0);break;case"textarea":hn(n),Kl(n);break;case"select":case"option":break;default:typeof o.onClick=="function"&&(n.onclick=nr)}n=r,t.updateQueue=n,n!==null&&(t.flags|=4)}else{s=r.nodeType===9?r:r.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=Qd(a)),e==="http://www.w3.org/1999/xhtml"?a==="script"?(e=s.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):typeof n.is=="string"?e=s.createElement(a,{is:n.is}):(e=s.createElement(a),a==="select"&&(s=e,n.multiple?s.multiple=!0:n.size&&(s.size=n.size))):e=s.createElementNS(e,a),e[ut]=t,e[Vi]=n,xm(e,t,!1,!1),t.stateNode=e;e:{switch(s=Uo(a,n),a){case"dialog":K("cancel",e),K("close",e),r=n;break;case"iframe":case"object":case"embed":K("load",e),r=n;break;case"video":case"audio":for(r=0;r<Ii.length;r++)K(Ii[r],e);r=n;break;case"source":K("error",e),r=n;break;case"img":case"image":case"link":K("error",e),K("load",e),r=n;break;case"details":K("toggle",e),r=n;break;case"input":Vl(e,n),r=qo(e,n),K("invalid",e);break;case"option":r=n;break;case"select":e._wrapperState={wasMultiple:!!n.multiple},r=ie({},n,{value:void 0}),K("invalid",e);break;
vendor: 17,734 bytes, line 40
40case"textarea":Yl(e,n),r=Fo(e,n),K("invalid",e);break;default:r=n}Bo(a,r),l=r;for(o in l)if(l.hasOwnProperty(o)){var c=l[o];o==="style"?eu(e,c):o==="dangerouslySetInnerHTML"?(c=c?c.__html:void 0,c!=null&&Zd(e,c)):o==="children"?typeof c=="string"?(a!=="textarea"||c!=="")&&Fi(e,c):typeof c=="number"&&Fi(e,""+c):o!=="suppressContentEditableWarning"&&o!=="suppressHydrationWarning"&&o!=="autoFocus"&&(Ri.hasOwnProperty(o)?c!=null&&o==="onScroll"&&K("scroll",e):c!=null&&Fs(e,o,c,s))}switch(a){case"input":hn(e),Hl(e,n,!1);break;case"textarea":hn(e),Kl(e);break;case"option":n.value!=null&&e.setAttribute("value",""+Qt(n.value));break;case"select":e.multiple=!!n.multiple,o=n.value,o!=null?Ga(e,!!n.multiple,o,!1):n.defaultValue!=null&&Ga(e,!!n.multiple,n.defaultValue,!0);break;default:typeof r.onClick=="function"&&(e.onclick=nr)}switch(a){case"button":case"input":case"select":case"textarea":n=!!n.autoFocus;break e;case"img":n=!0;break e;default:n=!1}}n&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return we(t),null;case 6:if(e&&t.stateNode!=null)Am(e,t,e.memoizedProps,n);else{if(typeof n!="string"&&t.stateNode===null)throw Error(I(166));if(a=ma(Yi.current),ma(gt.current),jn(t)){if(n=t.stateNode,a=t.memoizedProps,n[ut]=t,(o=n.nodeValue!==a)&&(e=Fe,e!==null))switch(e.tag){case 3:In(n.nodeValue,a,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&In(n.nodeValue,a,(e.mode&1)!==0)}o&&(t.flags|=4)}else n=(a.nodeType===9?a:a.ownerDocument).createTextNode(n),n[ut]=t,t.stateNode=n}return we(t),null;case 13:if(J(ee),n=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(X&&Re!==null&&t.mode&1&&!(t.flags&128))Gu(),Ja(),t.flags|=98560,o=!1;else if(o=jn(t),n!==null&&n.dehydrated!==null){if(e===null){if(!o)throw Error(I(318));if(o=t.memoizedState,o=o!==null?o.dehydrated:null,!o)throw Error(I(317));o[ut]=t}else Ja(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;we(t),o=!1}else Ze!==null&&(vs(Ze),Ze=null),o=!0;if(!o)return t.flags&65536?t:null}return t.flags&128?(t.lanes=a,t):(n=n!==null,n!==(e!==null&&e.memoizedState!==null)&&n&&(t.child.flags|=8192,t.mode&1&&(e===null||ee.current&1?de===0&&(de=3):bl())),t.updateQueue!==null&&(t.flags|=4),we(t),null);case 4:return Za(),ms(e,t),e===null&&$i(t.stateNode.containerInfo),we(t),null;case 10:return al(t.type._context),we(t),null;case 17:return Te(t.type)&&rr(),we(t),null;case 19:if(J(ee),o=t.memoizedState,o===null)return we(t),null;if(n=(t.flags&128)!==0,s=o.rendering,s===null)if(n)hi(o,!1);else{if(de!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(s=mr(e),s!==null){for(t.flags|=128,hi(o,!1),n=s.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),t.subtreeFlags=0,n=a,a=t.child;a!==null;)o=a,e=n,o.flags&=14680066,s=o.alternate,s===null?(o.childLanes=0,o.lanes=e,o.child=null,o.subtreeFlags=0,o.memoizedProps=null,o.memoizedState=null,o.updateQueue=null,o.dependencies=null,o.stateNode=null):(o.childLanes=s.childLanes,o.lanes=s.lanes,o.child=s.child,o.subtreeFlags=0,o.deletions=null,o.memoizedProps=s.memoizedProps,o.memoizedState=s.memoizedState,o.updateQueue=s.updateQueue,o.type=s.type,e=s.dependencies,o.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),a=a.sibling;return Y(ee,ee.current&1|2),t.child}e=e.sibling}o.tail!==null&&re()>ei&&(t.flags|=128,n=!0,hi(o,!1),t.lanes=4194304)}else{if(!n)if(e=mr(s),e!==null){if(t.flags|=128,n=!0,a=e.updateQueue,a!==null&&(t.updateQueue=a,t.flags|=4),hi(o,!0),o.tail===null&&o.tailMode==="hidden"&&!s.alternate&&!X)return we(t),null}else 2*re()-o.renderingStartTime>ei&&a!==1073741824&&(t.flags|=128,n=!0,hi(o,!1),t.lanes=4194304);o.isBackwards?(s.sibling=t.child,t.child=s):(a=o.last,a!==null?a.sibling=s:t.child=s,o.last=s)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=re(),t.sibling=null,a=ee.current,Y(ee,n?a&1|2:a&1),t):(we(t),null);case 22:case 23:return wl(),n=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==n&&(t.flags|=8192),n&&t.mode&1?qe&1073741824&&(we(t),t.subtreeFlags&6&&(t.flags|=8192)):we(t),null;case 24:return null;case 25:return null}throw Error(I(156,t.tag))}function Df(e,t){switch(Zs(t),t.tag){case 1:return Te(t.type)&&rr(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Za(),J(Pe),J(ve),sl(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return ol(t),null;case 13:if(J(ee),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(I(340));Ja()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return J(ee),null;case 4:return Za(),null;case 10:return al(t.type._context),null;case 22:case 23:return wl(),null;case 24:return null;default:return null}}var Nn=!1,be=!1,qf=typeof WeakSet=="function"?WeakSet:Set,T=null;function Ba(e,t){var a=e.ref;if(a!==null)if(typeof a=="function")try{a(null)}catch(n){ne(e,t,n)}else a.current=null}function ps(e,t,a){try{a()}catch(n){ne(e,t,n)}}var zc=!1;function Mf(e,t){if(Jo=tr,e=Nu(),Js(e)){if("selectionStart"in e)var a={start:e.selectionStart,end:e.selectionEnd};else e:{a=(a=e.ownerDocument)&&a.defaultView||window;var n=a.getSelection&&a.getSelection();if(n&&n.rangeCount!==0){a=n.anchorNode;var r=n.anchorOffset,o=n.focusNode;n=n.focusOffset;try{a.nodeType,o.nodeType}catch{a=null;break e}var s=0,l=-1,c=-1,d=0,m=0,u=e,p=null;t:for(;;){for(var y;u!==a||r!==0&&u.nodeType!==3||(l=s+r),u!==o||n!==0&&u.nodeType!==3||(c=s+n),u.nodeType===3&&(s+=u.nodeValue.length),(y=u.firstChild)!==null;)p=u,u=y;for(;;){if(u===e)break t;if(p===a&&++d===r&&(l=s),p===o&&++m===n&&(c=s),(y=u.nextSibling)!==null)break;u=p,p=u.parentNode}u=y}a=l===-1||c===-1?null:{start:l,end:c}}else a=null}a=a||{start:0,end:0}}else a=null;for(Qo={focusedElem:e,selectionRange:a},tr=!1,T=t;T!==null;)if(t=T,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,T=e;else for(;T!==null;){t=T;try{var b=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(b!==null){var w=b.memoizedProps,A=b.memoizedState,f=t.stateNode,g=f.getSnapshotBeforeUpdate(t.elementType===t.type?w:Je(t.type,w),A);f.__reactInternalSnapshotBeforeUpdate=g}break;case 3:var h=t.stateNode.containerInfo;h.nodeType===1?h.textContent="":h.nodeType===9&&h.documentElement&&h.removeChild(h.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(I(163))}}catch(x){ne(t,t.return,x)}if(e=t.sibling,e!==null){e.return=t.return,T=e;break}T=t.return}return b=zc,zc=!1,b}function Li(e,t,a){var n=t.updateQueue;if(n=n!==null?n.lastEffect:null,n!==null){var r=n=n.next;do{if((r.tag&e)===e){var o=r.destroy;r.destroy=void 0,o!==void 0&&ps(t,a,o)}r=r.next}while(r!==n)}}function qr(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var a=t=t.next;do{if((a.tag&e)===e){var n=a.create;a.destroy=n()}a=a.next}while(a!==t)}}function gs(e){var t=e.ref;if(t!==null){var a=e.stateNode;switch(e.tag){case 5:e=a;break;default:e=a}typeof t=="function"?t(e):t.current=e}}function Im(e){var t=e.alternate;t!==null&&(e.alternate=null,Im(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[ut],delete t[Vi],delete t[es],delete t[yf],delete t[wf])),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 jm(e){return e.tag===5||e.tag===3||e.tag===4}function Bc(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||jm(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 fs(e,t,a){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?a.nodeType===8?a.parentNode.insertBefore(e,t):a.insertBefore(e,t):(a.nodeType===8?(t=a.parentNode,t.insertBefore(e,a)):(t=a,t.appendChild(e)),a=a._reactRootContainer,a!=null||t.onclick!==null||(t.onclick=nr));else if(n!==4&&(e=e.child,e!==null))for(fs(e,t,a),e=e.sibling;e!==null;)fs(e,t,a),e=e.sibling}function hs(e,t,a){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?a.insertBefore(e,t):a.appendChild(e);else if(n!==4&&(e=e.child,e!==null))for(hs(e,t,a),e=e.sibling;e!==null;)hs(e,t,a),e=e.sibling}var ge=null,Qe=!1;function Rt(e,t,a){for(a=a.child;a!==null;)Sm(e,t,a),a=a.sibling}function Sm(e,t,a){if(pt&&typeof pt.onCommitFiberUnmount=="function")try{pt.onCommitFiberUnmount(Sr,a)}catch{}switch(a.tag){case 5:be||Ba(a,t);case 6:var n=ge,r=Qe;ge=null,Rt(e,t,a),ge=n,Qe=r,ge!==null&&(Qe?(e=ge,a=a.stateNode,e.nodeType===8?e.parentNode.removeChild(a):e.removeChild(a)):ge.removeChild(a.stateNode));break;case 18:ge!==null&&(Qe?(e=ge,a=a.stateNode,e.nodeType===8?mo(e.parentNode,a):e.nodeType===1&&mo(e,a),Gi(e)):mo(ge,a.stateNode));break;case 4:n=ge,r=Qe,ge=a.stateNode.containerInfo,Qe=!0,Rt(e,t,a),ge=n,Qe=r;break;case 0:case 11:case 14:case 15:if(!be&&(n=a.updateQueue,n!==null&&(n=n.lastEffect,n!==null))){r=n=n.next;do{var o=r,s=o.destroy;o=o.tag,s!==void 0&&(o&2||o&4)&&ps(a,t,s),r=r.next}while(r!==n)}Rt(e,t,a);break;case 1:if(!be&&(Ba(a,t),n=a.stateNode,typeof n.componentWillUnmount=="function"))try{n.props=a.memoizedProps,n.state=a.memoizedState,n.componentWillUnmount()}catch(l){ne(a,t,l)}Rt(e,t,a);break;case 21:Rt(e,t,a);break;case 22:a.mode&1?(be=(n=be)||a.memoizedState!==null,Rt(e,t,a),be=n):Rt(e,t,a);break;default:Rt(e,t,a)}}function Uc(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var a=e.stateNode;a===null&&(a=e.stateNode=new qf),t.forEach(function(n){var r=$f.bind(null,e,n);a.has(n)||(a.add(n),n.then(r,r))})}}function Ke(e,t){var a=t.deletions;if(a!==null)for(var n=0;n<a.length;n++){var r=a[n];try{var o=e,s=t,l=s;e:for(;l!==null;){switch(l.tag){case 5:ge=l.stateNode,Qe=!1;break e;case 3:ge=l.stateNode.containerInfo,Qe=!0;break e;case 4:ge=l.stateNode.containerInfo,Qe=!0;break e}l=l.return}if(ge===null)throw Error(I(160));Sm(o,s,r),ge=null,Qe=!1;var c=r.alternate;c!==null&&(c.return=null),r.return=null}catch(d){ne(r,t,d)}}if(t.subtreeFlags&12854)for(t=t.child;t!==null;)Cm(t,e),t=t.sibling}function Cm(e,t){var a=e.alternate,n=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(Ke(t,e),ot(e),n&4){try{Li(3,e,e.return),qr(3,e)}catch(w){ne(e,e.return,w)}try{Li(5,e,e.return)}catch(w){ne(e,e.return,w)}}break;case 1:Ke(t,e),ot(e),n&512&&a!==null&&Ba(a,a.return);break;case 5:if(Ke(t,e),ot(e),n&512&&a!==null&&Ba(a,a.return),e.flags&32){var r=e.stateNode;try{Fi(r,"")}catch(w){ne(e,e.return,w)}}if(n&4&&(r=e.stateNode,r!=null)){var o=e.memoizedProps,s=a!==null?a.memoizedProps:o,l=e.type,c=e.updateQueue;if(e.updateQueue=null,c!==null)try{l==="input"&&o.type==="radio"&&o.name!=null&&Kd(r,o),Uo(l,s);var d=Uo(l,o);for(s=0;s<c.length;s+=2){var m=c[s],u=c[s+1];m==="style"?eu(r,u):m==="dangerouslySetInnerHTML"?Zd(r,u):m==="children"?Fi(r,u):Fs(r,m,u,d)}switch(l){case"input":Mo(r,o);break;case"textarea":Jd(r,o);break;case"select":var p=r._wrapperState.wasMultiple;r._wrapperState.wasMultiple=!!o.multiple;var y=o.value;y!=null?Ga(r,!!o.multiple,y,!1):p!==!!o.multiple&&(o.defaultValue!=null?Ga(r,!!o.multiple,o.defaultValue,!0):Ga(r,!!o.multiple,o.multiple?[]:"",!1))}r[Vi]=o}catch(w){ne(e,e.return,w)}}break;case 6:if(Ke(t,e),ot(e),n&4){if(e.stateNode===null)throw Error(I(162));r=e.stateNode,o=e.memoizedProps;try{r.nodeValue=o}catch(w){ne(e,e.return,w)}}break;case 3:if(Ke(t,e),ot(e),n&4&&a!==null&&a.memoizedState.isDehydrated)try{Gi(t.containerInfo)}catch(w){ne(e,e.return,w)}break;case 4:Ke(t,e),ot(e);break;case 13:Ke(t,e),ot(e),r=e.child,r.flags&8192&&(o=r.memoizedState!==null,r.stateNode.isHidden=o,!o||r.alternate!==null&&r.alternate.memoizedState!==null||(hl=re())),n&4&&Uc(e);break;case 22:if(m=a!==null&&a.memoizedState!==null,e.mode&1?(be=(d=be)||m,Ke(t,e),be=d):Ke(t,e),ot(e),n&8192){if(d=e.memoizedState!==null,(e.stateNode.isHidden=d)&&!m&&e.mode&1)for(T=e,m=e.child;m!==null;){for(u=T=m;T!==null;){switch(p=T,y=p.child,p.tag){case 0:case 11:case 14:case 15:Li(4,p,p.return);break;case 1:Ba(p,p.return);var b=p.stateNode;if(typeof b.componentWillUnmount=="function"){n=p,a=p.return;try{t=n,b.props=t.memoizedProps,b.state=t.memoizedState,b.componentWillUnmount()}catch(w){ne(n,a,w)}}break;case 5:Ba(p,p.return);break;case 22:if(p.memoizedState!==null){Wc(u);continue}}y!==null?(y.return=p,T=y):Wc(u)}m=m.sibling}e:for(m=null,u=e;;){if(u.tag===5){if(m===null){m=u;try{r=u.stateNode,d?(o=r.style,typeof o.setProperty=="function"?o.setProperty("display","none","important"):o.display="none"):(l=u.stateNode,c=u.memoizedProps.style,s=c!=null&&c.hasOwnProperty("display")?c.display:null,l.style.display=Xd("display",s))}catch(w){ne(e,e.return,w)}}}else if(u.tag===6){if(m===null)try{u.stateNode.nodeValue=d?"":u.memoizedProps}catch(w){ne(e,e.return,w)}}else if((u.tag!==22&&u.tag!==23||u.memoizedState===null||u===e)&&u.child!==null){u.child.return=u,u=u.child;continue}if(u===e)break e;for(;u.sibling===null;){if(u.return===null||u.return===e)break e;m===u&&(m=null),u=u.return}m===u&&(m=null),u.sibling.return=u.return,u=u.sibling}}break;case 19:Ke(t,e),ot(e),n&4&&Uc(e);break;case 21:break;default:Ke(t,e),ot(e)}}function ot(e){var t=e.flags;if(t&2){try{e:{for(var a=e.return;a!==null;){if(jm(a)){var n=a;break e}a=a.return}throw Error(I(160))}switch(n.tag){case 5:var r=n.stateNode;n.flags&32&&(Fi(r,""),n.flags&=-33);var o=Bc(e);hs(e,o,r);break;case 3:case 4:var s=n.stateNode.containerInfo,l=Bc(e);fs(e,l,s);break;default:throw Error(I(161))}}catch(c){ne(e,e.return,c)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function Rf(e,t,a){T=e,Nm(e)}function Nm(e,t,a){for(var n=(e.mode&1)!==0;T!==null;){var r=T,o=r.child;if(r.tag===22&&n){var s=r.memoizedState!==null||Nn;if(!s){var l=r.alternate,c=l!==null&&l.memoizedState!==null||be;l=Nn;var d=be;if(Nn=s,(be=c)&&!d)for(T=r;T!==null;)s=T,c=s.child,s.tag===22&&s.memoizedState!==null?Oc(r):c!==null?(c.return=s,T=c):Oc(r);for(;o!==null;)T=o,Nm(o),o=o.sibling;T=r,Nn=l,be=d}Gc(e)}else r.subtreeFlags&8772&&o!==null?(o.return=r,T=o):Gc(e)}}function Gc(e){for(;T!==null;){var t=T;if(t.flags&8772){var a=t.alternate;try{if(t.flags&8772)switch(t.tag){case 0:case 11:case 15:be||qr(5,t);break;case 1:var n=t.stateNode;if(t.flags&4&&!be)if(a===null)n.componentDidMount();else{var r=t.elementType===t.type?a.memoizedProps:Je(t.type,a.memoizedProps);n.componentDidUpdate(r,a.memoizedState,n.__reactInternalSnapshotBeforeUpdate)}var o=t.updateQueue;o!==null&&jc(t,o,n);break;case 3:var s=t.updateQueue;if(s!==null){if(a=null,t.child!==null)switch(t.child.tag){case 5:a=t.child.stateNode;break;case 1:a=t.child.stateNode}jc(t,s,a)}break;case 5:var l=t.stateNode;if(a===null&&t.flags&4){a=l;var c=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":c.autoFocus&&a.focus();break;case"img":c.src&&(a.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 m=d.memoizedState;if(m!==null){var u=m.dehydrated;u!==null&&Gi(u)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(I(163))}be||t.flags&512&&gs(t)}catch(p){ne(t,t.return,p)}}if(t===e){T=null;break}if(a=t.sibling,a!==null){a.return=t.return,T=a;break}T=t.return}}function Wc(e){for(;T!==null;){var t=T;if(t===e){T=null;break}var a=t.sibling;if(a!==null){a.return=t.return,T=a;break}T=t.return}}function Oc(e){for(;T!==null;){var t=T;try{switch(t.tag){case 0:case 11:case 15:var a=t.return;try{qr(4,t)}catch(c){ne(t,a,c)}break;case 1:var n=t.stateNode;if(typeof n.componentDidMount=="function"){var r=t.return;try{n.componentDidMount()}catch(c){ne(t,r,c)}}var o=t.return;try{gs(t)}catch(c){ne(t,o,c)}break;case 5:var s=t.return;try{gs(t)}catch(c){ne(t,s,c)}}}catch(c){ne(t,t.return,c)}if(t===e){T=null;break}var l=t.sibling;if(l!==null){l.return=t.return,T=l;break}T=t.return}}var Ff=Math.ceil,fr=Mt.ReactCurrentDispatcher,gl=Mt.ReactCurrentOwner,$e=Mt.ReactCurrentBatchConfig,W=0,pe=null,oe=null,fe=0,qe=0,Ua=aa(0),de=0,Zi=null,wa=0,Mr=0,fl=0,Ei=null,Ce=null,hl=0,ei=1/0,It=null,hr=!1,ys=null,Yt=null,Pn=!1,Wt=null,yr=0,Di=0,ws=null,_n=-1,Vn=0;function Ae(){return W&6?re():_n!==-1?_n:_n=re()}function Kt(e){return e.mode&1?W&2&&fe!==0?fe&-fe:vf.transition!==null?(Vn===0&&(Vn=mu()),Vn):(e=_,e!==0||(e=window.event,e=e===void 0?16:bu(e.type)),e):1}function et(e,t,a,n){if(50<Di)throw Di=0,ws=null,Error(I(185));nn(e,a,n),(!(W&2)||e!==pe)&&(e===pe&&(!(W&2)&&(Mr|=a),de===4&&Ut(e,fe)),Le(e,n),a===1&&W===0&&!(t.mode&1)&&(ei=re()+500,Lr&&ia()))}function Le(e,t){var a=e.callbackNode;bg(e,t);var n=er(e,e===pe?fe:0);if(n===0)a!==null&&Zl(a),e.callbackNode=null,e.callbackPriority=0;else if(t=n&-n,e.callbackPriority!==t){if(a!=null&&Zl(a),t===1)e.tag===0?bf($c.bind(null,e)):zu($c.bind(null,e)),ff(function(){!(W&6)&&ia()}),a=null;else{switch(pu(n)){case 1:a=Ws;break;case 4:a=du;break;case 16:a=Xn;break;case 536870912:a=uu;break;default:a=Xn}a=Rm(a,Pm.bind(null,e))}e.callbackPriority=t,e.callbackNode=a}}function Pm(e,t){if(_n=-1,Vn=0,W&6)throw Error(I(327));var a=e.callbackNode;if(Va()&&e.callbackNode!==a)return null;var n=er(e,e===pe?fe:0);if(n===0)return null;if(n&30||n&e.expiredLanes||t)t=wr(e,n);else{t=n;var r=W;W|=2;var o=Lm();(pe!==e||fe!==t)&&(It=null,ei=re()+500,pa(e,t));do try{Uf();break}catch(l){Tm(e,l)}while(!0);tl(),fr.current=o,W=r,oe!==null?t=0:(pe=null,fe=0,t=de)}if(t!==0){if(t===2&&(r=_o(e),r!==0&&(n=r,t=bs(e,r))),t===1)throw a=Zi,pa(e,0),Ut(e,n),Le(e,re()),a;if(t===6)Ut(e,n);else{if(r=e.current.alternate,!(n&30)&&!zf(r)&&(t=wr(e,n),t===2&&(o=_o(e),o!==0&&(n=o,t=bs(e,o))),t===1))throw a=Zi,pa(e,0),Ut(e,n),Le(e,re()),a;switch(e.finishedWork=r,e.finishedLanes=n,t){case 0:case 1:throw Error(I(345));case 2:la(e,Ce,It);break;case 3:if(Ut(e,n),(n&130023424)===n&&(t=hl+500-re(),10<t)){if(er(e,0)!==0)break;
vendor: 2,629 bytes, line 40
40if(r=e.suspendedLanes,(r&n)!==n){Ae(),e.pingedLanes|=e.suspendedLanes&r;break}e.timeoutHandle=Xo(la.bind(null,e,Ce,It),t);break}la(e,Ce,It);break;case 4:if(Ut(e,n),(n&4194240)===n)break;for(t=e.eventTimes,r=-1;0<n;){var s=31-Xe(n);o=1<<s,s=t[s],s>r&&(r=s),n&=~o}if(n=r,n=re()-n,n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Ff(n/1960))-n,10<n){e.timeoutHandle=Xo(la.bind(null,e,Ce,It),n);break}la(e,Ce,It);break;case 5:la(e,Ce,It);break;default:throw Error(I(329))}}}return Le(e,re()),e.callbackNode===a?Pm.bind(null,e):null}function bs(e,t){var a=Ei;return e.current.memoizedState.isDehydrated&&(pa(e,t).flags|=256),e=wr(e,t),e!==2&&(t=Ce,Ce=a,t!==null&&vs(t)),e}function vs(e){Ce===null?Ce=e:Ce.push.apply(Ce,e)}function zf(e){for(var t=e;;){if(t.flags&16384){var a=t.updateQueue;if(a!==null&&(a=a.stores,a!==null))for(var n=0;n<a.length;n++){var r=a[n],o=r.getSnapshot;r=r.value;try{if(!tt(o(),r))return!1}catch{return!1}}}if(a=t.child,t.subtreeFlags&16384&&a!==null)a.return=t,t=a;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 Ut(e,t){for(t&=~fl,t&=~Mr,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var a=31-Xe(t),n=1<<a;e[a]=-1,t&=~n}}function $c(e){if(W&6)throw Error(I(327));Va();var t=er(e,0);if(!(t&1))return Le(e,re()),null;var a=wr(e,t);if(e.tag!==0&&a===2){var n=_o(e);n!==0&&(t=n,a=bs(e,n))}if(a===1)throw a=Zi,pa(e,0),Ut(e,t),Le(e,re()),a;if(a===6)throw Error(I(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,la(e,Ce,It),Le(e,re()),null}function yl(e,t){var a=W;W|=1;try{return e(t)}finally{W=a,W===0&&(ei=re()+500,Lr&&ia())}}function ba(e){Wt!==null&&Wt.tag===0&&!(W&6)&&Va();var t=W;W|=1;var a=$e.transition,n=_;try{if($e.transition=null,_=1,e)return e()}finally{_=n,$e.transition=a,W=t,!(W&6)&&ia()}}function wl(){qe=Ua.current,J(Ua)}function pa(e,t){e.finishedWork=null,e.finishedLanes=0;var a=e.timeoutHandle;if(a!==-1&&(e.timeoutHandle=-1,gf(a)),oe!==null)for(a=oe.return;a!==null;){var n=a;switch(Zs(n),n.tag){case 1:n=n.type.childContextTypes,n!=null&&rr();break;case 3:Za(),J(Pe),J(ve),sl();break;case 5:ol(n);break;case 4:Za();break;case 13:J(ee);break;case 19:J(ee);break;case 10:al(n.type._context);break;case 22:case 23:wl()}a=a.return}if(pe=e,oe=e=Jt(e.current,null),fe=qe=t,de=0,Zi=null,fl=Mr=wa=0,Ce=Ei=null,ua!==null){for(t=0;t<ua.length;t++)if(a=ua[t],n=a.interleaved,n!==null){a.interleaved=null;var r=n.next,o=a.pending;if(o!==null){var s=o.next;o.next=r,n.next=s}a.pending=n}ua=null}return e}function Tm(e,t){do{var a=oe;
vendor: 6,853 bytes, line 40
40try{if(tl(),Wn.current=gr,pr){for(var n=te.memoizedState;n!==null;){var r=n.queue;r!==null&&(r.pending=null),n=n.next}pr=!1}if(ya=0,me=ce=te=null,Ti=!1,Ki=0,gl.current=null,a===null||a.return===null){de=1,Zi=t,oe=null;break}e:{var o=e,s=a.return,l=a,c=t;if(t=fe,l.flags|=32768,c!==null&&typeof c=="object"&&typeof c.then=="function"){var d=c,m=l,u=m.tag;if(!(m.mode&1)&&(u===0||u===11||u===15)){var p=m.alternate;p?(m.updateQueue=p.updateQueue,m.memoizedState=p.memoizedState,m.lanes=p.lanes):(m.updateQueue=null,m.memoizedState=null)}var y=Lc(s);if(y!==null){y.flags&=-257,Ec(y,s,l,o,t),y.mode&1&&Tc(o,d,t),t=y,c=d;var b=t.updateQueue;if(b===null){var w=new Set;w.add(c),t.updateQueue=w}else b.add(c);break e}else{if(!(t&1)){Tc(o,d,t),bl();break e}c=Error(I(426))}}else if(X&&l.mode&1){var A=Lc(s);if(A!==null){!(A.flags&65536)&&(A.flags|=256),Ec(A,s,l,o,t),Xs(Xa(c,l));break e}}o=c=Xa(c,l),de!==4&&(de=2),Ei===null?Ei=[o]:Ei.push(o),o=s;do{switch(o.tag){case 3:o.flags|=65536,t&=-t,o.lanes|=t;var f=pm(o,c,t);Ic(o,f);break e;case 1:l=c;var g=o.type,h=o.stateNode;if(!(o.flags&128)&&(typeof g.getDerivedStateFromError=="function"||h!==null&&typeof h.componentDidCatch=="function"&&(Yt===null||!Yt.has(h)))){o.flags|=65536,t&=-t,o.lanes|=t;var x=gm(o,l,t);Ic(o,x);break e}}o=o.return}while(o!==null)}Dm(a)}catch(k){t=k,oe===a&&a!==null&&(oe=a=a.return);continue}break}while(!0)}function Lm(){var e=fr.current;return fr.current=gr,e===null?gr:e}function bl(){(de===0||de===3||de===2)&&(de=4),pe===null||!(wa&268435455)&&!(Mr&268435455)||Ut(pe,fe)}function wr(e,t){var a=W;W|=2;var n=Lm();(pe!==e||fe!==t)&&(It=null,pa(e,t));do try{Bf();break}catch(r){Tm(e,r)}while(!0);if(tl(),W=a,fr.current=n,oe!==null)throw Error(I(261));return pe=null,fe=0,de}function Bf(){for(;oe!==null;)Em(oe)}function Uf(){for(;oe!==null&&!dg();)Em(oe)}function Em(e){var t=Mm(e.alternate,e,qe);e.memoizedProps=e.pendingProps,t===null?Dm(e):oe=t,gl.current=null}function Dm(e){var t=e;do{var a=t.alternate;if(e=t.return,t.flags&32768){if(a=Df(a,t),a!==null){a.flags&=32767,oe=a;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{de=6,oe=null;return}}else if(a=Ef(a,t,qe),a!==null){oe=a;return}if(t=t.sibling,t!==null){oe=t;return}oe=t=e}while(t!==null);de===0&&(de=5)}function la(e,t,a){var n=_,r=$e.transition;try{$e.transition=null,_=1,Gf(e,t,a,n)}finally{$e.transition=r,_=n}return null}function Gf(e,t,a,n){do Va();while(Wt!==null);if(W&6)throw Error(I(327));a=e.finishedWork;var r=e.finishedLanes;if(a===null)return null;if(e.finishedWork=null,e.finishedLanes=0,a===e.current)throw Error(I(177));e.callbackNode=null,e.callbackPriority=0;var o=a.lanes|a.childLanes;if(vg(e,o),e===pe&&(oe=pe=null,fe=0),!(a.subtreeFlags&2064)&&!(a.flags&2064)||Pn||(Pn=!0,Rm(Xn,function(){return Va(),null})),o=(a.flags&15990)!==0,a.subtreeFlags&15990||o){o=$e.transition,$e.transition=null;var s=_;_=1;var l=W;W|=4,gl.current=null,Mf(e,a),Cm(a,e),sf(Qo),tr=!!Jo,Qo=Jo=null,e.current=a,Rf(a),ug(),W=l,_=s,$e.transition=o}else e.current=a;if(Pn&&(Pn=!1,Wt=e,yr=r),o=e.pendingLanes,o===0&&(Yt=null),gg(a.stateNode),Le(e,re()),t!==null)for(n=e.onRecoverableError,a=0;a<t.length;a++)r=t[a],n(r.value,{componentStack:r.stack,digest:r.digest});if(hr)throw hr=!1,e=ys,ys=null,e;return yr&1&&e.tag!==0&&Va(),o=e.pendingLanes,o&1?e===ws?Di++:(Di=0,ws=e):Di=0,ia(),null}function Va(){if(Wt!==null){var e=pu(yr),t=$e.transition,a=_;try{if($e.transition=null,_=16>e?16:e,Wt===null)var n=!1;else{if(e=Wt,Wt=null,yr=0,W&6)throw Error(I(331));var r=W;for(W|=4,T=e.current;T!==null;){var o=T,s=o.child;if(T.flags&16){var l=o.deletions;if(l!==null){for(var c=0;c<l.length;c++){var d=l[c];for(T=d;T!==null;){var m=T;switch(m.tag){case 0:case 11:case 15:Li(8,m,o)}var u=m.child;if(u!==null)u.return=m,T=u;else for(;T!==null;){m=T;var p=m.sibling,y=m.return;if(Im(m),m===d){T=null;break}if(p!==null){p.return=y,T=p;break}T=y}}}var b=o.alternate;if(b!==null){var w=b.child;if(w!==null){b.child=null;do{var A=w.sibling;w.sibling=null,w=A}while(w!==null)}}T=o}}if(o.subtreeFlags&2064&&s!==null)s.return=o,T=s;else e:for(;T!==null;){if(o=T,o.flags&2048)switch(o.tag){case 0:case 11:case 15:Li(9,o,o.return)}var f=o.sibling;if(f!==null){f.return=o.return,T=f;break e}T=o.return}}var g=e.current;for(T=g;T!==null;){s=T;var h=s.child;if(s.subtreeFlags&2064&&h!==null)h.return=s,T=h;else e:for(s=g;T!==null;){if(l=T,l.flags&2048)try{switch(l.tag){case 0:case 11:case 15:qr(9,l)}}catch(k){ne(l,l.return,k)}if(l===s){T=null;break e}var x=l.sibling;if(x!==null){x.return=l.return,T=x;break e}T=l.return}}if(W=r,ia(),pt&&typeof pt.onPostCommitFiberRoot=="function")try{pt.onPostCommitFiberRoot(Sr,e)}catch{}n=!0}return n}finally{_=a,$e.transition=t}}return!1}function _c(e,t,a){t=Xa(a,t),t=pm(e,t,1),e=Ht(e,t,1),t=Ae(),e!==null&&(nn(e,1,t),Le(e,t))}function ne(e,t,a){if(e.tag===3)_c(e,e,a);else for(;t!==null;){if(t.tag===3){_c(t,e,a);break}else if(t.tag===1){var n=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof n.componentDidCatch=="function"&&(Yt===null||!Yt.has(n))){e=Xa(a,e),e=gm(t,e,1),t=Ht(t,e,1),e=Ae(),t!==null&&(nn(t,1,e),Le(t,e));break}}t=t.return}}function Wf(e,t,a){var n=e.pingCache;n!==null&&n.delete(t),t=Ae(),e.pingedLanes|=e.suspendedLanes&a,pe===e&&(fe&a)===a&&(de===4||de===3&&(fe&130023424)===fe&&500>re()-hl?pa(e,0):fl|=a),Le(e,t)}function qm(e,t){t===0&&(e.mode&1?(t=bn,bn<<=1,!(bn&130023424)&&(bn=4194304)):t=1);var a=Ae();e=Et(e,t),e!==null&&(nn(e,t,a),Le(e,a))}function Of(e){var t=e.memoizedState,a=0;t!==null&&(a=t.retryLane),qm(e,a)}function $f(e,t){var a=0;switch(e.tag){case 13:var n=e.stateNode,r=e.memoizedState;r!==null&&(a=r.retryLane);break;case 19:n=e.stateNode;break;default:throw Error(I(314))}n!==null&&n.delete(t),qm(e,a)}var Mm;Mm=function(e,t,a){if(e!==null)if(e.memoizedProps!==t.pendingProps||Pe.current)Ne=!0;else{if(!(e.lanes&a)&&!(t.flags&128))return Ne=!1,Lf(e,t,a);Ne=!!(e.flags&131072)}else Ne=!1,X&&t.flags&1048576&&Bu(t,lr,t.index);switch(t.lanes=0,t.tag){case 2:var n=t.type;$n(e,t),e=t.pendingProps;var r=Ka(t,ve.current);_a(t,a),r=cl(null,t,n,e,r,a);var o=dl();return t.flags|=1,typeof r=="object"&&r!==null&&typeof r.render=="function"&&r.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Te(n)?(o=!0,or(t)):o=!1,t.memoizedState=r.state!==null&&r.state!==void 0?r.state:null,nl(t),r.updater=Dr,t.stateNode=r,r._reactInternals=t,os(t,n,e,a),t=cs(null,t,n,!0,o,a)):(t.tag=0,X&&o&&Qs(t),xe(null,t,r,a),t=t.child),t;case 16:n=t.elementType;e:{switch($n(e,t),e=t.pendingProps,r=n._init,n=r(n._payload),t.type=n,r=t.tag=Vf(n),e=Je(n,e),r){case 0:t=ls(null,t,n,e,a);break e;case 1:t=Mc(null,t,n,e,a);break e;case 11:t=Dc(null,t,n,e,a);break e;case 14:t=qc(null,t,n,Je(n.type,e),a);break e}throw Error(I(306,n,""))}return t;case 0:return n=t.type,r=t.pendingProps,r=t.elementType===n?r:Je(n,r),ls(e,t,n,r,a);
vendor: 5,904 bytes, line 40
40case 1:return n=t.type,r=t.pendingProps,r=t.elementType===n?r:Je(n,r),Mc(e,t,n,r,a);case 3:e:{if(wm(t),e===null)throw Error(I(387));n=t.pendingProps,o=t.memoizedState,r=o.element,_u(e,t),ur(t,n,null,a);var s=t.memoizedState;if(n=s.element,o.isDehydrated)if(o={element:n,isDehydrated:!1,cache:s.cache,pendingSuspenseBoundaries:s.pendingSuspenseBoundaries,transitions:s.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){r=Xa(Error(I(423)),t),t=Rc(e,t,n,a,r);break e}else if(n!==r){r=Xa(Error(I(424)),t),t=Rc(e,t,n,a,r);break e}else for(Re=Vt(t.stateNode.containerInfo.firstChild),Fe=t,X=!0,Ze=null,a=Ou(t,null,n,a),t.child=a;a;)a.flags=a.flags&-3|4096,a=a.sibling;else{if(Ja(),n===r){t=Dt(e,t,a);break e}xe(e,t,n,a)}t=t.child}return t;case 5:return Vu(t),e===null&&is(t),n=t.type,r=t.pendingProps,o=e!==null?e.memoizedProps:null,s=r.children,Zo(n,r)?s=null:o!==null&&Zo(n,o)&&(t.flags|=32),ym(e,t),xe(e,t,s,a),t.child;case 6:return e===null&&is(t),null;case 13:return bm(e,t,a);case 4:return rl(t,t.stateNode.containerInfo),n=t.pendingProps,e===null?t.child=Qa(t,null,n,a):xe(e,t,n,a),t.child;case 11:return n=t.type,r=t.pendingProps,r=t.elementType===n?r:Je(n,r),Dc(e,t,n,r,a);case 7:return xe(e,t,t.pendingProps,a),t.child;case 8:return xe(e,t,t.pendingProps.children,a),t.child;case 12:return xe(e,t,t.pendingProps.children,a),t.child;case 10:e:{if(n=t.type._context,r=t.pendingProps,o=t.memoizedProps,s=r.value,Y(cr,n._currentValue),n._currentValue=s,o!==null)if(tt(o.value,s)){if(o.children===r.children&&!Pe.current){t=Dt(e,t,a);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var l=o.dependencies;if(l!==null){s=o.child;for(var c=l.firstContext;c!==null;){if(c.context===n){if(o.tag===1){c=Nt(-1,a&-a),c.tag=2;var d=o.updateQueue;if(d!==null){d=d.shared;var m=d.pending;m===null?c.next=c:(c.next=m.next,m.next=c),d.pending=c}}o.lanes|=a,c=o.alternate,c!==null&&(c.lanes|=a),ns(o.return,a,t),l.lanes|=a;break}c=c.next}}else if(o.tag===10)s=o.type===t.type?null:o.child;else if(o.tag===18){if(s=o.return,s===null)throw Error(I(341));s.lanes|=a,l=s.alternate,l!==null&&(l.lanes|=a),ns(s,a,t),s=o.sibling}else s=o.child;if(s!==null)s.return=o;else for(s=o;s!==null;){if(s===t){s=null;break}if(o=s.sibling,o!==null){o.return=s.return,s=o;break}s=s.return}o=s}xe(e,t,r.children,a),t=t.child}return t;case 9:return r=t.type,n=t.pendingProps.children,_a(t,a),r=_e(r),n=n(r),t.flags|=1,xe(e,t,n,a),t.child;case 14:return n=t.type,r=Je(n,t.pendingProps),r=Je(n.type,r),qc(e,t,n,r,a);case 15:return fm(e,t,t.type,t.pendingProps,a);case 17:return n=t.type,r=t.pendingProps,r=t.elementType===n?r:Je(n,r),$n(e,t),t.tag=1,Te(n)?(e=!0,or(t)):e=!1,_a(t,a),mm(t,n,r),os(t,n,r,a),cs(null,t,n,!0,e,a);case 19:return vm(e,t,a);case 22:return hm(e,t,a)}throw Error(I(156,t.tag))};function Rm(e,t){return cu(e,t)}function _f(e,t,a,n){this.tag=e,this.key=a,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=n,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Oe(e,t,a,n){return new _f(e,t,a,n)}function vl(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Vf(e){if(typeof e=="function")return vl(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Bs)return 11;if(e===Us)return 14}return 2}function Jt(e,t){var a=e.alternate;return a===null?(a=Oe(e.tag,t,e.key,e.mode),a.elementType=e.elementType,a.type=e.type,a.stateNode=e.stateNode,a.alternate=e,e.alternate=a):(a.pendingProps=t,a.type=e.type,a.flags=0,a.subtreeFlags=0,a.deletions=null),a.flags=e.flags&14680064,a.childLanes=e.childLanes,a.lanes=e.lanes,a.child=e.child,a.memoizedProps=e.memoizedProps,a.memoizedState=e.memoizedState,a.updateQueue=e.updateQueue,t=e.dependencies,a.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},a.sibling=e.sibling,a.index=e.index,a.ref=e.ref,a}function Hn(e,t,a,n,r,o){var s=2;if(n=e,typeof e=="function")vl(e)&&(s=1);else if(typeof e=="string")s=5;else e:switch(e){case Ta:return ga(a.children,r,o,t);case zs:s=8,r|=8;break;case To:return e=Oe(12,a,t,r|2),e.elementType=To,e.lanes=o,e;case Lo:return e=Oe(13,a,t,r),e.elementType=Lo,e.lanes=o,e;case Eo:return e=Oe(19,a,t,r),e.elementType=Eo,e.lanes=o,e;case Vd:return Rr(a,r,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case $d:s=10;break e;case _d:s=9;break e;case Bs:s=11;break e;case Us:s=14;break e;case Ft:s=16,n=null;break e}throw Error(I(130,e==null?e:typeof e,""))}return t=Oe(s,a,t,r),t.elementType=e,t.type=n,t.lanes=o,t}function ga(e,t,a,n){return e=Oe(7,e,n,t),e.lanes=a,e}function Rr(e,t,a,n){return e=Oe(22,e,n,t),e.elementType=Vd,e.lanes=a,e.stateNode={isHidden:!1},e}function vo(e,t,a){return e=Oe(6,e,null,t),e.lanes=a,e}function xo(e,t,a){return t=Oe(4,e.children!==null?e.children:[],e.key,t),t.lanes=a,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Hf(e,t,a,n,r){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=eo(0),this.expirationTimes=eo(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=eo(0),this.identifierPrefix=n,this.onRecoverableError=r,this.mutableSourceEagerHydrationData=null}function xl(e,t,a,n,r,o,s,l,c){return e=new Hf(e,t,a,l,c),t===1?(t=1,o===!0&&(t|=8)):t=0,o=Oe(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:n,isDehydrated:a,cache:null,transitions:null,pendingSuspenseBoundaries:null},nl(o),e}function Yf(e,t,a){var n=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;
vendor: 4,586 bytes, line 40
40return{$$typeof:Pa,key:n==null?null:""+n,children:e,containerInfo:t,implementation:a}}function Fm(e){if(!e)return Zt;e=e._reactInternals;e:{if(Aa(e)!==e||e.tag!==1)throw Error(I(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Te(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(t!==null);throw Error(I(171))}if(e.tag===1){var a=e.type;if(Te(a))return Fu(e,a,t)}return t}function zm(e,t,a,n,r,o,s,l,c){return e=xl(a,n,!0,e,r,o,s,l,c),e.context=Fm(null),a=e.current,n=Ae(),r=Kt(a),o=Nt(n,r),o.callback=t??null,Ht(a,o,r),e.current.lanes=r,nn(e,r,n),Le(e,n),e}function Fr(e,t,a,n){var r=t.current,o=Ae(),s=Kt(r);return a=Fm(a),t.context===null?t.context=a:t.pendingContext=a,t=Nt(o,s),t.payload={element:e},n=n===void 0?null:n,n!==null&&(t.callback=n),e=Ht(r,t,s),e!==null&&(et(e,r,s,o),Gn(e,r,s)),s}function br(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 Vc(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var a=e.retryLane;e.retryLane=a!==0&&a<t?a:t}}function kl(e,t){Vc(e,t),(e=e.alternate)&&Vc(e,t)}function Kf(){return null}var Bm=typeof reportError=="function"?reportError:function(e){console.error(e)};function Al(e){this._internalRoot=e}zr.prototype.render=Al.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(I(409));Fr(e,t,null,null)};zr.prototype.unmount=Al.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;ba(function(){Fr(null,e,null,null)}),t[Lt]=null}};function zr(e){this._internalRoot=e}zr.prototype.unstable_scheduleHydration=function(e){if(e){var t=hu();e={blockedOn:null,target:e,priority:t};for(var a=0;a<Bt.length&&t!==0&&t<Bt[a].priority;a++);Bt.splice(a,0,e),a===0&&wu(e)}};function Il(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function Br(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function Hc(){}function Jf(e,t,a,n,r){if(r){if(typeof n=="function"){var o=n;n=function(){var d=br(s);o.call(d)}}var s=zm(t,n,e,0,null,!1,!1,"",Hc);return e._reactRootContainer=s,e[Lt]=s.current,$i(e.nodeType===8?e.parentNode:e),ba(),s}for(;r=e.lastChild;)e.removeChild(r);if(typeof n=="function"){var l=n;n=function(){var d=br(c);l.call(d)}}var c=xl(e,0,!1,null,null,!1,!1,"",Hc);return e._reactRootContainer=c,e[Lt]=c.current,$i(e.nodeType===8?e.parentNode:e),ba(function(){Fr(t,c,a,n)}),c}function Ur(e,t,a,n,r){var o=a._reactRootContainer;if(o){var s=o;if(typeof r=="function"){var l=r;r=function(){var c=br(s);l.call(c)}}Fr(t,s,e,r)}else s=Jf(a,t,e,r,n);return br(s)}gu=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var a=Ai(t.pendingLanes);a!==0&&(Os(t,a|1),Le(t,re()),!(W&6)&&(ei=re()+500,ia()))}break;case 13:ba(function(){var n=Et(e,1);if(n!==null){var r=Ae();et(n,e,1,r)}}),kl(e,1)}};$s=function(e){if(e.tag===13){var t=Et(e,134217728);if(t!==null){var a=Ae();et(t,e,134217728,a)}kl(e,134217728)}};fu=function(e){if(e.tag===13){var t=Kt(e),a=Et(e,t);if(a!==null){var n=Ae();et(a,e,t,n)}kl(e,t)}};hu=function(){return _};yu=function(e,t){var a=_;try{return _=e,t()}finally{_=a}};Wo=function(e,t,a){switch(t){case"input":if(Mo(e,a),t=a.name,a.type==="radio"&&t!=null){for(a=e;a.parentNode;)a=a.parentNode;for(a=a.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<a.length;t++){var n=a[t];if(n!==e&&n.form===e.form){var r=Tr(n);if(!r)throw Error(I(90));Yd(n),Mo(n,r)}}}break;case"textarea":Jd(e,a);break;case"select":t=a.value,t!=null&&Ga(e,!!a.multiple,t,!1)}};iu=yl;nu=ba;var Qf={usingClientEntryPoint:!1,Events:[on,qa,Tr,tu,au,yl]},yi={findFiberByHostInstance:da,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},Zf={bundleType:yi.bundleType,version:yi.version,rendererPackageName:yi.rendererPackageName,rendererConfig:yi.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:Mt.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=su(e),e===null?null:e.stateNode},findFiberByHostInstance:yi.findFiberByHostInstance||Kf,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};
40if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Tn=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Tn.isDisabled&&Tn.supportsFiber)try{Sr=Tn.inject(Zf),pt=Tn}catch{}}Be.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Qf;Be.createPortal=function(e,t){var a=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!Il(t))throw Error(I(200));return Yf(e,t,null,a)};Be.createRoot=function(e,t){if(!Il(e))throw Error(I(299));var a=!1,n="",r=Bm;return t!=null&&(t.unstable_strictMode===!0&&(a=!0),t.identifierPrefix!==void 0&&(n=t.identifierPrefix),t.onRecoverableError!==void 0&&(r=t.onRecoverableError)),t=xl(e,1,!1,null,null,a,!1,n,r),e[Lt]=t.current,$i(e.nodeType===8?e.parentNode:e),new Al(t)};Be.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(I(188)):(e=Object.keys(e).join(","),Error(I(268,e)));return e=su(t),e=e===null?null:e.stateNode,e};Be.flushSync=function(e){return ba(e)};Be.hydrate=function(e,t,a){if(!Br(t))throw Error(I(200));return Ur(null,e,t,!0,a)};Be.hydrateRoot=function(e,t,a){if(!Il(e))throw Error(I(405));var n=a!=null&&a.hydratedSources||null,r=!1,o="",s=Bm;if(a!=null&&(a.unstable_strictMode===!0&&(r=!0),a.identifierPrefix!==void 0&&(o=a.identifierPrefix),a.onRecoverableError!==void 0&&(s=a.onRecoverableError)),t=zm(t,null,e,1,a??null,r,!1,o,s),e[Lt]=t.current,$i(e),n)for(e=0;e<n.length;e++)a=n[e],r=a._getVersion,r=r(a._source),t.mutableSourceEagerHydrationData==null?t.mutableSourceEagerHydrationData=[a,r]:t.mutableSourceEagerHydrationData.push(a,r);return new zr(t)};Be.render=function(e,t,a){if(!Br(t))throw Error(I(200));return Ur(null,e,t,!1,a)};Be.unmountComponentAtNode=function(e){if(!Br(e))throw Error(I(40));return e._reactRootContainer?(ba(function(){Ur(null,null,e,!1,function(){e._reactRootContainer=null,e[Lt]=null})}),!0):!1};Be.unstable_batchedUpdates=yl;Be.unstable_renderSubtreeIntoContainer=function(e,t,a,n){if(!Br(a))throw Error(I(200));if(e==null||e._reactInternals===void 0)throw Error(I(38));return Ur(e,t,a,!1,n)};Be.version="18.3.1-next-f1338f8080-20240426";function Um(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Um)}catch(e){console.error(e)}}Um(),Ud.exports=Be;var Xf=Ud.exports,Gm,Yc=Xf;Gm=Yc.createRoot,Yc.hydrateRoot;/**
41 * react-router v7.14.0
42 *
43 * Copyright (c) Remix Software Inc.
44 *
45 * This source code is licensed under the MIT license found in the
46 * LICENSE.md file in the root directory of this source tree.
47 *
48 * @license MIT
49 */var Kc="popstate";function Jc(e){return typeof e=="object"&&e!=null&&"pathname"in e&&"search"in e&&"hash"in e&&"state"in e&&"key"in e}function eh(e={}){function t(n,r){var d;let o=(d=r.state)==null?void 0:d.masked,{pathname:s,search:l,hash:c}=o||n.location;return xs("",{pathname:s,search:l,hash:c},r.state&&r.state.usr||null,r.state&&r.state.key||"default",o?{pathname:n.location.pathname,search:n.location.search,hash:n.location.hash}:void 0)}function a(n,r){return typeof r=="string"?r:Xi(r)}return ah(t,a,null,e)}function ae(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function at(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function th(){return Math.random().toString(36).substring(2,10)}function Qc(e,t){return{usr:e.state,key:e.key,idx:t,masked:e.unstable_mask?{pathname:e.pathname,search:e.search,hash:e.hash}:void 0}}function xs(e,t,a=null,n,r){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?si(t):t,state:a,key:t&&t.key||n||th(),unstable_mask:r}}function Xi({pathname:e="/",search:t="",hash:a=""}){return t&&t!=="?"&&(e+=t.charAt(0)==="?"?t:"?"+t),a&&a!=="#"&&(e+=a.charAt(0)==="#"?a:"#"+a),e}function si(e){let t={};if(e){let a=e.indexOf("#");a>=0&&(t.hash=e.substring(a),e=e.substring(0,a));let n=e.indexOf("?");n>=0&&(t.search=e.substring(n),e=e.substring(0,n)),e&&(t.pathname=e)}return t}function ah(e,t,a,n={}){let{window:r=document.defaultView,v5Compat:o=!1}=n,s=r.history,l="POP",c=null,d=m();d==null&&(d=0,s.replaceState({...s.state,idx:d},""));function m(){return(s.state||{idx:null}).idx}function u(){l="POP";let A=m(),f=A==null?null:A-d;d=A,c&&c({action:l,location:w.location,delta:f})}function p(A,f){l="PUSH";let g=Jc(A)?A:xs(w.location,A,f);d=m()+1;let h=Qc(g,d),x=w.createHref(g.unstable_mask||g);try{s.pushState(h,"",x)}catch(k){if(k instanceof DOMException&&k.name==="DataCloneError")throw k;r.location.assign(x)}o&&c&&c({action:l,location:w.location,delta:1})}function y(A,f){l="REPLACE";let g=Jc(A)?A:xs(w.location,A,f);d=m();let h=Qc(g,d),x=w.createHref(g.unstable_mask||g);s.replaceState(h,"",x),o&&c&&c({action:l,location:w.location,delta:0})}function b(A){return ih(A)}let w={get action(){return l},get location(){return e(r,s)},listen(A){if(c)throw new Error("A history only accepts one active listener");return r.addEventListener(Kc,u),c=A,()=>{r.removeEventListener(Kc,u),c=null}},createHref(A){return t(r,A)},createURL:b,encodeLocation(A){let f=b(A);return{pathname:f.pathname,search:f.search,hash:f.hash}},push:p,replace:y,go(A){return s.go(A)}};return w}function ih(e,t=!1){let a="http://localhost";
49typeof window<"u"&&(a=window.location.origin!=="null"?window.location.origin:window.location.href),ae(a,"No window.location.(origin|href) available to create URL");let n=typeof e=="string"?e:Xi(e);return n=n.replace(/ $/,"%20"),!t&&n.startsWith("//")&&(n=a+n),new URL(n,a)}function Wm(e,t,a="/"){return nh(e,t,a,!1)}function nh(e,t,a,n){let r=typeof t=="string"?si(t):t,o=qt(r.pathname||"/",a);if(o==null)return null;let s=Om(e);rh(s);let l=null;for(let c=0;l==null&&c<s.length;++c){let d=hh(o);l=gh(s[c],d,n)}return l}function Om(e,t=[],a=[],n="",r=!1){let o=(s,l,c=r,d)=>{let m={relativePath:d===void 0?s.path||"":d,caseSensitive:s.caseSensitive===!0,childrenIndex:l,route:s};if(m.relativePath.startsWith("/")){if(!m.relativePath.startsWith(n)&&c)return;ae(m.relativePath.startsWith(n),`Absolute route path "${m.relativePath}" nested under path "${n}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),m.relativePath=m.relativePath.slice(n.length)}let u=ft([n,m.relativePath]),p=a.concat(m);s.children&&s.children.length>0&&(ae(s.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${u}".`),Om(s.children,t,p,u,c)),!(s.path==null&&!s.index)&&t.push({path:u,score:mh(u,s.index),routesMeta:p})};return e.forEach((s,l)=>{var c;if(s.path===""||!((c=s.path)!=null&&c.includes("?")))o(s,l);else for(let d of $m(s.path))o(s,l,!0,d)}),t}function $m(e){let t=e.split("/");if(t.length===0)return[];let[a,...n]=t,r=a.endsWith("?"),o=a.replace(/\?$/,"");if(n.length===0)return r?[o,""]:[o];let s=$m(n.join("/")),l=[];return l.push(...s.map(c=>c===""?o:[o,c].join("/"))),r&&l.push(...s),l.map(c=>e.startsWith("/")&&c===""?"/":c)}function rh(e){e.sort((t,a)=>t.score!==a.score?a.score-t.score:ph(t.routesMeta.map(n=>n.childrenIndex),a.routesMeta.map(n=>n.childrenIndex)))}var oh=/^:[\w-]+$/,sh=3,lh=2,ch=1,dh=10,uh=-2,Zc=e=>e==="*";function mh(e,t){let a=e.split("/"),n=a.length;return a.some(Zc)&&(n+=uh),t&&(n+=lh),a.filter(r=>!Zc(r)).reduce((r,o)=>r+(oh.test(o)?sh:o===""?ch:dh),n)}function ph(e,t){return e.length===t.length&&e.slice(0,-1).every((n,r)=>n===t[r])?e[e.length-1]-t[t.length-1]:0}function gh(e,t,a=!1){let{routesMeta:n}=e,r={},o="/",s=[];for(let l=0;l<n.length;++l){let c=n[l],d=l===n.length-1,m=o==="/"?t:t.slice(o.length)||"/",u=vr({path:c.relativePath,caseSensitive:c.caseSensitive,end:d},m),p=c.route;if(!u&&d&&a&&!n[n.length-1].route.index&&(u=vr({path:c.relativePath,caseSensitive:c.caseSensitive,end:!1},m)),!u)return null;
49Object.assign(r,u.params),s.push({params:r,pathname:ft([o,u.pathname]),pathnameBase:vh(ft([o,u.pathnameBase])),route:p}),u.pathnameBase!=="/"&&(o=ft([o,u.pathnameBase]))}return s}function vr(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[a,n]=fh(e.path,e.caseSensitive,e.end),r=t.match(a);if(!r)return null;let o=r[0],s=o.replace(/(.)\/+$/,"$1"),l=r.slice(1);return{params:n.reduce((d,{paramName:m,isOptional:u},p)=>{if(m==="*"){let b=l[p]||"";s=o.slice(0,o.length-b.length).replace(/(.)\/+$/,"$1")}const y=l[p];return u&&!y?d[m]=void 0:d[m]=(y||"").replace(/%2F/g,"/"),d},{}),pathname:o,pathnameBase:s,pattern:e}}function fh(e,t=!1,a=!0){at(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 n=[],r="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(s,l,c,d,m)=>{if(n.push({paramName:l,isOptional:c!=null}),c){let u=m.charAt(d+s.length);return u&&u!=="/"?"/([^\\/]*)":"(?:/([^\\/]*))?"}return"/([^\\/]+)"}).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(n.push({paramName:"*"}),r+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):a?r+="\\/*$":e!==""&&e!=="/"&&(r+="(?:(?=\\/|$))"),[new RegExp(r,t?void 0:"i"),n]}function hh(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return at(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function qt(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let a=t.endsWith("/")?t.length-1:t.length,n=e.charAt(a);return n&&n!=="/"?null:e.slice(a)||"/"}var yh=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;function wh(e,t="/"){let{pathname:a,search:n="",hash:r=""}=typeof e=="string"?si(e):e,o;return a?(a=a.replace(/\/\/+/g,"/"),a.startsWith("/")?o=Xc(a.substring(1),"/"):o=Xc(a,t)):o=t,{pathname:o,search:xh(n),hash:kh(r)}}function Xc(e,t){let a=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(r=>{r===".."?a.length>1&&a.pop():r!=="."&&a.push(r)}),a.length>1?a.join("/"):"/"}function ko(e,t,a,n){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(n)}].  Please separate it out to the \`to.${a}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function bh(e){return e.filter((t,a)=>a===0||t.route.path&&t.route.path.length>0)}function _m(e){let t=bh(e);return t.map((a,n)=>n===t.length-1?a.pathname:a.pathnameBase)}function jl(e,t,a,n=!1){let r;typeof e=="string"?r=si(e):(r={...e},ae(!r.pathname||!r.pathname.includes("?"),ko("?","pathname","search",r)),ae(!r.pathname||!r.pathname.includes("#"),ko("#","pathname","hash",r)),ae(!r.search||!r.search.includes("#"),ko("#","search","hash",r)));let o=e===""||r.pathname==="",s=o?"/":r.pathname,l;if(s==null)l=a;else{let u=t.length-1;if(!n&&s.startsWith("..")){let p=s.split("/");for(;p[0]==="..";)p.shift(),u-=1;r.pathname=p.join("/")}l=u>=0?t[u]:"/"}let c=wh(r,l),d=s&&s!=="/"&&s.endsWith("/"),m=(o||s===".")&&a.endsWith("/");return!c.pathname.endsWith("/")&&(d||m)&&(c.pathname+="/"),c}var ft=e=>e.join("/").replace(/\/\/+/g,"/"),vh=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),xh=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,kh=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e,Ah=class{constructor(e,t,a,n=!1){this.status=e,this.statusText=t||"",this.internal=n,a instanceof Error?(this.data=a.toString(),this.error=a):this.data=a}};function Ih(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}function jh(e){return e.map(t=>t.route.path).filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}var Vm=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Hm(e,t){let a=e;if(typeof a!="string"||!yh.test(a))return{absoluteURL:void 0,isExternal:!1,to:a};let n=a,r=!1;if(Vm)try{let o=new URL(window.location.href),s=a.startsWith("//")?new URL(o.protocol+a):new URL(a),l=qt(s.pathname,t);s.origin===o.origin&&l!=null?a=l+s.search+s.hash:r=!0}catch{at(!1,`<Link to="${a}">
49 contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:n,isExternal:r,to:a}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var Ym=["POST","PUT","PATCH","DELETE"];new Set(Ym);var Sh=["GET",...Ym];new Set(Sh);var li=v.createContext(null);li.displayName="DataRouter";var Gr=v.createContext(null);Gr.displayName="DataRouterState";var Km=v.createContext(!1);function Ch(){return v.useContext(Km)}var Jm=v.createContext({isTransitioning:!1});Jm.displayName="ViewTransition";var Nh=v.createContext(new Map);Nh.displayName="Fetchers";var Ph=v.createContext(null);Ph.displayName="Await";var Ye=v.createContext(null);Ye.displayName="Navigation";var ln=v.createContext(null);ln.displayName="Location";var it=v.createContext({outlet:null,matches:[],isDataRoute:!1});it.displayName="Route";var Sl=v.createContext(null);Sl.displayName="RouteError";var Qm="REACT_ROUTER_ERROR",Th="REDIRECT",Lh="ROUTE_ERROR_RESPONSE";function Eh(e){if(e.startsWith(`${Qm}:${Th}:{`))try{let t=JSON.parse(e.slice(28));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.location=="string"&&typeof t.reloadDocument=="boolean"&&typeof t.replace=="boolean")return t}catch{}}function Dh(e){if(e.startsWith(`${Qm}:${Lh}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string")return new Ah(t.status,t.statusText,t.data)}catch{}}function qh(e,{relative:t}={}){ae(cn(),"useHref() may be used only in the context of a <Router> component.");let{basename:a,navigator:n}=v.useContext(Ye),{hash:r,pathname:o,search:s}=dn(e,{relative:t}),l=o;return a!=="/"&&(l=o==="/"?a:ft([a,o])),n.createHref({pathname:l,search:s,hash:r})}function cn(){return v.useContext(ln)!=null}function De(){return ae(cn(),"useLocation() may be used only in the context of a <Router> component."),v.useContext(ln).location}var Zm="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function Xm(e){v.useContext(Ye).static||v.useLayoutEffect(e)}function Wr(){let{isDataRoute:e}=v.useContext(it);return e?Kh():Mh()}function Mh(){ae(cn(),"useNavigate() may be used only in the context of a <Router> component.");let e=v.useContext(li),{basename:t,navigator:a}=v.useContext(Ye),{matches:n}=v.useContext(it),{pathname:r}=De(),o=JSON.stringify(_m(n)),s=v.useRef(!1);return Xm(()=>{s.current=!0}),v.useCallback((c,d={})=>{if(at(s.current,Zm),!s.current)return;if(typeof c=="number"){a.go(c);return}let m=jl(c,JSON.parse(o),r,d.relative==="path");e==null&&t!=="/"&&(m.pathname=m.pathname==="/"?t:ft([t,m.pathname])),(d.replace?a.replace:a.push)(m,d.state,d)},[t,a,o,r,e])}var Rh=v.createContext(null);function Fh(e){let t=v.useContext(it).outlet;return v.useMemo(()=>t&&v.createElement(Rh.Provider,{value:e},t),[t,e])}function ci(){let{matches:e}=v.useContext(it),t=e[e.length-1];return t?t.params:{}}function dn(e,{relative:t}={}){let{matches:a}=v.useContext(it),{pathname:n}=De(),r=JSON.stringify(_m(a));return v.useMemo(()=>jl(e,JSON.parse(r),n,t==="path"),[e,r,n,t])}function zh(e,t){return ep(e,t)}function ep(e,t,a){var A;ae(cn(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:n}=v.useContext(Ye),{matches:r}=v.useContext(it),o=r[r.length-1],s=o?o.params:{},l=o?o.pathname:"/",c=o?o.pathnameBase:"/",d=o&&o.route;{let f=d&&d.path||"";ap(l,!d||f.endsWith("*")||f.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${l}" (under <Route path="${f}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
50
51Please change the parent <Route path="${f}"> to <Route path="${f==="/"?"*":`${f}/*`}">.`)}let m=De(),u;if(t){let f=typeof t=="string"?si(t):t;ae(c==="/"||((A=f.pathname)==null?void 0:A.startsWith(c)),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${c}" but pathname "${f.pathname}" was given in the \`location\` prop.`),u=f}else u=m;let p=u.pathname||"/",y=p;if(c!=="/"){let f=c.replace(/^\//,"").split("/");y="/"+p.replace(/^\//,"").split("/").slice(f.length).join("/")}let b=Wm(e,{pathname:y});at(d||b!=null,`No routes matched location "${u.pathname}${u.search}${u.hash}" `),at(b==null||b[b.length-1].route.element!==void 0||b[b.length-1].route.Component!==void 0||b[b.length-1].route.lazy!==void 0,`Matched leaf route at location "${u.pathname}${u.search}${u.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let w=Oh(b&&b.map(f=>Object.assign({},f,{params:Object.assign({},s,f.params),pathname:ft([c,n.encodeLocation?n.encodeLocation(f.pathname.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:f.pathname]),pathnameBase:f.pathnameBase==="/"?c:ft([c,n.encodeLocation?n.encodeLocation(f.pathnameBase.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:f.pathnameBase])})),r,a);return t&&w?v.createElement(ln.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",unstable_mask:void 0,...u},navigationType:"POP"}},w):w}function Bh(){let e=Yh(),t=Ih(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),a=e instanceof Error?e.stack:null,n="rgba(200,200,200, 0.5)",r={padding:"0.5rem",backgroundColor:n},o={padding:"2px 4px",backgroundColor:n},s=null;return console.error("Error handled by React Router default ErrorBoundary:",e),s=v.createElement(v.Fragment,null,v.createElement("p",null,"💿 Hey developer 👋"),v.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",v.createElement("code",{style:o},"ErrorBoundary")," or"," ",v.createElement("code",{style:o},"errorElement")," prop on your route.")),v.createElement(v.Fragment,null,v.createElement("h2",null,"Unexpected Application 
51Error!"),v.createElement("h3",{style:{fontStyle:"italic"}},t),a?v.createElement("pre",{style:r},a):null,s)}var Uh=v.createElement(Bh,null),tp=class extends v.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error("React Router caught the following error during render",e)}render(){let e=this.state.error;if(this.context&&typeof e=="object"&&e&&"digest"in e&&typeof e.digest=="string"){const a=Dh(e.digest);a&&(e=a)}let t=e!==void 0?v.createElement(it.Provider,{value:this.props.routeContext},v.createElement(Sl.Provider,{value:e,children:this.props.component})):this.props.children;return this.context?v.createElement(Gh,{error:e},t):t}};tp.contextType=Km;var Ao=new WeakMap;function Gh({children:e,error:t}){let{basename:a}=v.useContext(Ye);if(typeof t=="object"&&t&&"digest"in t&&typeof t.digest=="string"){let n=Eh(t.digest);if(n){let r=Ao.get(t);if(r)throw r;let o=Hm(n.location,a);if(Vm&&!Ao.get(t))if(o.isExternal||n.reloadDocument)window.location.href=o.absoluteURL||o.to;else{const s=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(o.to,{replace:n.replace}));throw Ao.set(t,s),s}return v.createElement("meta",{httpEquiv:"refresh",content:`0;url=${o.absoluteURL||o.to}`})}}return e}function Wh({routeContext:e,match:t,children:a}){let n=v.useContext(li);return n&&n.static&&n.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(n.staticContext._deepestRenderedBoundaryId=t.route.id),v.createElement(it.Provider,{value:e},a)}function Oh(e,t=[],a){let n=a==null?void 0:a.state;if(e==null){if(!n)return null;if(n.errors)e=n.matches;else if(t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let r=e,o=n==null?void 0:n.errors;if(o!=null){let m=r.findIndex(u=>u.route.id&&(o==null?void 0:o[u.route.id])!==void 0);ae(m>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(o).join(",")}`),r=r.slice(0,Math.min(r.length,m+1))}let s=!1,l=-1;if(a&&n){s=n.renderFallback;for(let m=0;m<r.length;m++){let u=r[m];if((u.route.HydrateFallback||u.route.hydrateFallbackElement)&&(l=m),u.route.id){let{loaderData:p,errors:y}=n,b=u.route.loader&&!p.hasOwnProperty(u.route.id)&&(!y||y[u.route.id]===void 0);if(u.route.lazy||b){a.isStatic&&(s=!0),l>=0?r=r.slice(0,l+1):r=[r[0]];break}}}}let c=a==null?void 0:a.onError,d=n&&c?(m,u)=>{var p,y;c(m,{location:n.location,params:((y=(p=n.matches)==null?void 0:p[0])==null?void 0:y.params)??{},unstable_pattern:jh(n.matches),errorInfo:u})}:void 0;return r.reduceRight((m,u,p)=>{let y,b=!1,w=null,A=null;n&&(y=o&&u.route.id?o[u.route.id]:void 0,w=u.route.errorElement||Uh,s&&(l<0&&p===0?(ap("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),b=!0,A=null):l===p&&(b=!0,A=u.route.hydrateFallbackElement||null)));let f=t.concat(r.slice(0,p+1)),g=()=>{let h;return y?h=w:b?h=A:u.route.Component?h=v.createElement(u.route.Component,null):u.route.element?h=u.route.element:h=m,v.createElement(Wh,{match:u,routeContext:{outlet:m,matches:f,isDataRoute:n!=null},children:h})};return n&&(u.route.ErrorBoundary||u.route.errorElement||p===0)?v.createElement(tp,{location:n.location,revalidation:n.revalidation,component:w,error:y,children:g(),routeContext:{outlet:null,matches:f,isDataRoute:!0},onError:d}):g()},null)}function Cl(e){return`${e} must be used within a data router.  See https://reactrouter.com/en/main/routers/picking-a-router.`}function $h(e){let t=v.useContext(li);return ae(t,Cl(e)),t}function _h(e){let t=v.useContext(Gr);return ae(t,Cl(e)),t}function Vh(e){let t=v.useContext(it);return ae(t,Cl(e)),t}function Nl(e){let t=Vh(e),a=t.matches[t.matches.length-1];return ae(a.route.id,`${e} can only be used on routes that contain a unique "id"`),a.route.id}function Hh(){return Nl("useRouteId")}function Yh(){var n;let e=v.useContext(Sl),t=_h("useRouteError"),a=Nl("useRouteError");return e!==void 0?e:(n=t.errors)==null?void 0:n[a]}function Kh(){let{router:e}=$h("useNavigate"),t=Nl("useNavigate"),a=v.useRef(!1);return Xm(()=>{a.current=!0}),v.useCallback(async(r,o={})=>{at(a.current,Zm),a.current&&(typeof r=="number"?await e.navigate(r):await e.navigate(r,{fromRouteId:t,...o}))},[e,t])}var ed={};function ap(e,t,a){!t&&!ed[e]&&(ed[e]=!0,at(!1,a))}v.memo(Jh);function Jh({routes:e,future:t,state:a,isStatic:n,onError:r}){return ep(e,void 0,{state:a,isStatic:n,onError:r,future:t})}function Qh(e){return Fh(e.context)}function V(e){ae(!1,"A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.")}function Zh({basename:e="/",children:t=null,location:a,navigationType:n="POP",navigator:r,static:o=!1,unstable_useTransitions:s}){ae(!cn(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let l=e.replace(/^\/*/,"/"),c=v.useMemo(()=>({basename:l,navigator:r,static:o,unstable_useTransitions:s,future:{}}),[l,r,o,s]);
51typeof a=="string"&&(a=si(a));let{pathname:d="/",search:m="",hash:u="",state:p=null,key:y="default",unstable_mask:b}=a,w=v.useMemo(()=>{let A=qt(d,l);return A==null?null:{location:{pathname:A,search:m,hash:u,state:p,key:y,unstable_mask:b},navigationType:n}},[l,d,m,u,p,y,n,b]);return at(w!=null,`<Router basename="${l}"> is not able to match the URL "${d}${m}${u}" because it does not start with the basename, so the <Router> won't render anything.`),w==null?null:v.createElement(Ye.Provider,{value:c},v.createElement(ln.Provider,{children:t,value:w}))}function Xh({children:e,location:t}){return zh(ks(e),t)}function ks(e,t=[]){let a=[];return v.Children.forEach(e,(n,r)=>{if(!v.isValidElement(n))return;let o=[...t,r];if(n.type===v.Fragment){a.push.apply(a,ks(n.props.children,o));return}ae(n.type===V,`[${typeof n.type=="string"?n.type:n.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),ae(!n.props.index||!n.props.children,"An index route cannot have child routes.");let s={id:n.props.id||o.join("-"),caseSensitive:n.props.caseSensitive,element:n.props.element,Component:n.props.Component,index:n.props.index,path:n.props.path,middleware:n.props.middleware,loader:n.props.loader,action:n.props.action,hydrateFallbackElement:n.props.hydrateFallbackElement,HydrateFallback:n.props.HydrateFallback,errorElement:n.props.errorElement,ErrorBoundary:n.props.ErrorBoundary,hasErrorBoundary:n.props.hasErrorBoundary===!0||n.props.ErrorBoundary!=null||n.props.errorElement!=null,shouldRevalidate:n.props.shouldRevalidate,handle:n.props.handle,lazy:n.props.lazy};n.props.children&&(s.children=ks(n.props.children,o)),a.push(s)}),a}var Yn="get",Kn="application/x-www-form-urlencoded";function Or(e){return typeof HTMLElement<"u"&&e instanceof HTMLElement}function ey(e){return Or(e)&&e.tagName.toLowerCase()==="button"}function ty(e){return Or(e)&&e.tagName.toLowerCase()==="form"}function ay(e){return Or(e)&&e.tagName.toLowerCase()==="input"}function iy(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function ny(e,t){return e.button===0&&(!t||t==="_self")&&!iy(e)}function As(e=""){return new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,a)=>{let n=e[a];return t.concat(Array.isArray(n)?n.map(r=>[a,r]):[[a,n]])},[]))}function ry(e,t){let a=As(e);return t&&t.forEach((n,r)=>{a.has(r)||t.getAll(r).forEach(o=>{a.append(r,o)})}),a}var Ln=null;function oy(){if(Ln===null)try{new FormData(document.createElement("form"),0),Ln=!1}catch{Ln=!0}return Ln}var sy=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function Io(e){return e!=null&&!sy.has(e)?(at(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${Kn}"`),null):e}function ly(e,t){let a,n,r,o,s;if(ty(e)){let l=e.getAttribute("action");n=l?qt(l,t):null,a=e.getAttribute("method")||Yn,r=Io(e.getAttribute("enctype"))||Kn,o=new FormData(e)}else if(ey(e)||ay(e)&&(e.type==="submit"||e.type==="image")){let l=e.form;if(l==null)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let c=e.getAttribute("formaction")||l.getAttribute("action");if(n=c?qt(c,t):null,a=e.getAttribute("formmethod")||l.getAttribute("method")||Yn,r=Io(e.getAttribute("formenctype"))||Io(l.getAttribute("enctype"))||Kn,o=new FormData(l,e),!oy()){let{name:d,type:m,value:u}=e;if(m==="image"){let p=d?`${d}.`:"";o.append(`${p}x`,"0"),o.append(`${p}y`,"0")}else d&&o.append(d,u)}}else{if(Or(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');a=Yn,n=null,r=Kn,s=e}return o&&r==="text/plain"&&(s=o,o=void 0),{action:n,method:a.toLowerCase(),encType:r,formData:o,body:s}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function Pl(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function ip(e,t,a,n){let r=typeof e=="string"?new URL(e,typeof window>"u"?"server://singlefetch/":window.location.origin):e;return a?r.pathname.endsWith("/")?r.pathname=`${r.pathname}_.${n}`:r.pathname=`${r.pathname}.${n}`:r.pathname==="/"?r.pathname=`_root.${n}`:t&&qt(r.pathname,t)==="/"?r.pathname=`${t.replace(/\/$/,"")}/_root.${n}`:r.pathname=`${r.pathname.replace(/\/$/,"")}.${n}`,r}async function cy(e,t){if(e.id in t)return t[e.id];try{let a=await import(e.module);return t[e.id]=a,a}catch(a){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(a),window.__reactRouterContext&&window.__reactRouterContext.
51isSpaMode,window.location.reload(),new Promise(()=>{})}}function dy(e){return e==null?!1:e.href==null?e.rel==="preload"&&typeof e.imageSrcSet=="string"&&typeof e.imageSizes=="string":typeof e.rel=="string"&&typeof e.href=="string"}async function uy(e,t,a){let n=await Promise.all(e.map(async r=>{let o=t.routes[r.route.id];if(o){let s=await cy(o,a);return s.links?s.links():[]}return[]}));return fy(n.flat(1).filter(dy).filter(r=>r.rel==="stylesheet"||r.rel==="preload").map(r=>r.rel==="stylesheet"?{...r,rel:"prefetch",as:"style"}:{...r,rel:"prefetch"}))}function td(e,t,a,n,r,o){let s=(c,d)=>a[d]?c.route.id!==a[d].route.id:!0,l=(c,d)=>{var m;return a[d].pathname!==c.pathname||((m=a[d].route.path)==null?void 0:m.endsWith("*"))&&a[d].params["*"]!==c.params["*"]};return o==="assets"?t.filter((c,d)=>s(c,d)||l(c,d)):o==="data"?t.filter((c,d)=>{var u;let m=n.routes[c.route.id];if(!m||!m.hasLoader)return!1;if(s(c,d)||l(c,d))return!0;if(c.route.shouldRevalidate){let p=c.route.shouldRevalidate({currentUrl:new URL(r.pathname+r.search+r.hash,window.origin),currentParams:((u=a[0])==null?void 0:u.params)||{},nextUrl:new URL(e,window.origin),nextParams:c.params,defaultShouldRevalidate:!0});if(typeof p=="boolean")return p}return!0}):[]}function my(e,t,{includeHydrateFallback:a}={}){return py(e.map(n=>{let r=t.routes[n.route.id];if(!r)return[];let o=[r.module];return r.clientActionModule&&(o=o.concat(r.clientActionModule)),r.clientLoaderModule&&(o=o.concat(r.clientLoaderModule)),a&&r.hydrateFallbackModule&&(o=o.concat(r.hydrateFallbackModule)),r.imports&&(o=o.concat(r.imports)),o}).flat(1))}function py(e){return[...new Set(e)]}function gy(e){let t={},a=Object.keys(e).sort();for(let n of a)t[n]=e[n];return t}function fy(e,t){let a=new Set;return new Set(t),e.reduce((n,r)=>{let o=JSON.stringify(gy(r));return a.has(o)||(a.add(o),n.push({key:o,link:r})),n},[])}function Tl(){let e=v.useContext(li);return Pl(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function hy(){let e=v.useContext(Gr);return Pl(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}var Ll=v.createContext(void 0);Ll.displayName="FrameworkContext";function El(){let e=v.useContext(Ll);return Pl(e,"You must render this element inside a <HydratedRouter> element"),e}function yy(e,t){let a=v.useContext(Ll),[n,r]=v.useState(!1),[o,s]=v.useState(!1),{onFocus:l,onBlur:c,onMouseEnter:d,onMouseLeave:m,onTouchStart:u}=t,p=v.useRef(null);v.useEffect(()=>{if(e==="render"&&s(!0),e==="viewport"){let w=f=>{f.forEach(g=>{s(g.isIntersecting)})},A=new IntersectionObserver(w,{threshold:.5});return p.current&&A.observe(p.current),()=>{A.disconnect()}}},[e]),v.useEffect(()=>{if(n){let w=setTimeout(()=>{s(!0)},100);return()=>{clearTimeout(w)}}},[n]);let y=()=>{r(!0)},b=()=>{r(!1),s(!1)};return a?e!=="intent"?[o,p,{}]:[o,p,{onFocus:wi(l,y),onBlur:wi(c,b),onMouseEnter:wi(d,y),onMouseLeave:wi(m,b),onTouchStart:wi(u,y)}]:[!1,p,{}]}function wi(e,t){return a=>{e&&e(a),a.defaultPrevented||t(a)}}function wy({page:e,...t}){let a=Ch(),{router:n}=Tl(),r=v.useMemo(()=>Wm(n.routes,e,n.basename),[n.routes,e,n.basename]);return r?a?v.createElement(vy,{page:e,matches:r,...t}):v.createElement(xy,{page:e,matches:r,...t}):null}function by(e){let{manifest:t,routeModules:a}=El(),[n,r]=v.useState([]);return v.useEffect(()=>{let o=!1;return uy(e,t,a).then(s=>{o||r(s)}),()=>{o=!0}},[e,t,a]),n}function vy({page:e,matches:t,...a}){let n=De(),{future:r}=El(),{basename:o}=Tl(),s=v.useMemo(()=>{if(e===n.pathname+n.search+n.hash)return[];let l=ip(e,o,r.unstable_trailingSlashAwareDataRequests,"rsc"),c=!1,d=[];for(let m of t)typeof m.route.shouldRevalidate=="function"?c=!0:d.push(m.route.id);return c&&d.length>0&&l.searchParams.set("_routes",d.join(",")),[l.pathname+l.search]},[o,r.unstable_trailingSlashAwareDataRequests,e,n,t]);return v.createElement(v.Fragment,null,s.map(l=>v.createElement("link",{key:l,rel:"prefetch",as:"fetch",href:l,...a})))}function xy({page:e,matches:t,...a}){let n=De(),{future:r,manifest:o,routeModules:s}=El(),{basename:l}=Tl(),{loaderData:c,matches:d}=hy(),m=v.useMemo(()=>td(e,t,d,o,n,"data"),[e,t,d,o,n]),u=v.useMemo(()=>td(e,t,d,o,n,"assets"),[e,t,d,o,n]),p=v.useMemo(()=>
51{if(e===n.pathname+n.search+n.hash)return[];let w=new Set,A=!1;if(t.forEach(g=>{var x;let h=o.routes[g.route.id];!h||!h.hasLoader||(!m.some(k=>k.route.id===g.route.id)&&g.route.id in c&&((x=s[g.route.id])!=null&&x.shouldRevalidate)||h.hasClientLoader?A=!0:w.add(g.route.id))}),w.size===0)return[];let f=ip(e,l,r.unstable_trailingSlashAwareDataRequests,"data");return A&&w.size>0&&f.searchParams.set("_routes",t.filter(g=>w.has(g.route.id)).map(g=>g.route.id).join(",")),[f.pathname+f.search]},[l,r.unstable_trailingSlashAwareDataRequests,c,n,o,m,t,e,s]),y=v.useMemo(()=>my(u,o),[u,o]),b=by(u);return v.createElement(v.Fragment,null,p.map(w=>v.createElement("link",{key:w,rel:"prefetch",as:"fetch",href:w,...a})),y.map(w=>v.createElement("link",{key:w,rel:"modulepreload",href:w,...a})),b.map(({key:w,link:A})=>v.createElement("link",{key:w,nonce:a.nonce,...A,crossOrigin:A.crossOrigin??a.crossOrigin})))}function ky(...e){return t=>{e.forEach(a=>{typeof a=="function"?a(t):a!=null&&(a.current=t)})}}var Ay=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{Ay&&(window.__reactRouterVersion="7.14.0")}catch{}function Iy({basename:e,children:t,unstable_useTransitions:a,window:n}){let r=v.useRef();r.current==null&&(r.current=eh({window:n,v5Compat:!0}));let o=r.current,[s,l]=v.useState({action:o.action,location:o.location}),c=v.useCallback(d=>{a===!1?l(d):v.startTransition(()=>l(d))},[a]);return v.useLayoutEffect(()=>o.listen(c),[o,c]),v.createElement(Zh,{basename:e,children:t,location:s.location,navigationType:s.action,navigator:o,unstable_useTransitions:a})}var np=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,j=v.forwardRef(function({onClick:t,discover:a="render",prefetch:n="none",relative:r,reloadDocument:o,replace:s,unstable_mask:l,state:c,target:d,to:m,preventScrollReset:u,viewTransition:p,unstable_defaultShouldRevalidate:y,...b},w){let{basename:A,navigator:f,unstable_useTransitions:g}=v.useContext(Ye),h=typeof m=="string"&&np.test(m),x=Hm(m,A);m=x.to;let k=qh(m,{relative:r}),C=De(),S=null;if(l){let $=jl(l,[],C.unstable_mask?C.unstable_mask.pathname:"/",!0);A!=="/"&&($.pathname=$.pathname==="/"?A:ft([A,$.pathname])),S=f.createHref($)}let[P,R,L]=yy(n,b),ue=Ny(m,{replace:s,unstable_mask:l,state:c,target:d,preventScrollReset:u,relative:r,viewTransition:p,unstable_defaultShouldRevalidate:y,unstable_useTransitions:g});function U($){t&&t($),$.defaultPrevented||ue($)}let M=!(x.isExternal||o),z=v.createElement("a",{...b,...L,href:(M?S:void 0)||x.absoluteURL||k,onClick:M?U:t,ref:ky(w,R),target:d,"data-discover":!h&&a==="render"?"true":void 0});return P&&!h?v.createElement(v.Fragment,null,z,v.createElement(wy,{page:k})):z});j.displayName="Link";var jy=v.forwardRef(function({"aria-current":t="page",caseSensitive:a=!1,className:n="",end:r=!1,style:o,to:s,viewTransition:l,children:c,...d},m){let u=dn(s,{relative:d.relative}),p=De(),y=v.useContext(Gr),{navigator:b,basename:w}=v.useContext(Ye),A=y!=null&&qy(u)&&l===!0,f=b.encodeLocation?b.encodeLocation(u).pathname:u.pathname,g=p.pathname,h=y&&y.navigation&&y.navigation.location?y.navigation.location.pathname:null;a||(g=g.toLowerCase(),h=h?h.toLowerCase():null,f=f.toLowerCase()),h&&w&&(h=qt(h,w)||h);const x=f!=="/"&&f.endsWith("/")?f.length-1:f.length;let k=g===f||!r&&g.startsWith(f)&&g.charAt(x)==="/",C=h!=null&&(h===f||!r&&h.startsWith(f)&&h.charAt(f.length)==="/"),S={isActive:k,isPending:C,isTransitioning:A},P=k?t:void 0,R;typeof n=="function"?R=n(S):R=[n,k?"active":null,C?"pending":null,A?"transitioning":null].filter(Boolean).join(" ");let L=typeof o=="function"?o(S):o;return v.createElement(j,{...d,"aria-current":P,className:R,ref:m,style:L,to:s,viewTransition:l},typeof c=="function"?c(S):c)});jy.displayName="NavLink";var Sy=v.forwardRef(({discover:e="render",fetcherKey:t,navigate:a,reloadDocument:n,replace:r,state:o,method:s=Yn,action:l,onSubmit:c,relative:d,preventScrollReset:m,viewTransition:u,unstable_defaultShouldRevalidate:p,...y},b)=>{let{unstable_useTransitions:w}=v.useContext(Ye),A=Ey(),f=Dy(l,{relative:d}),g=s.toLowerCase()==="get"?"get":"post",h=typeof l=="string"&&np.test(l),x=k=>{if(c&&c(k),k.defaultPrevented)return;k.preventDefault();let C=k.nativeEvent.submitter,S=(C==null?void 0:C.getAttribute("formmethod"))||s,P=()=>A(C||k.currentTarget,{fetcherKey:t,method:S,navigate:a,replace:r,state:o,relative:d,preventScrollReset:m,viewTransition:u,unstable_defaultShouldRevalidate:p});
51w&&a!==!1?v.startTransition(()=>P()):P()};return v.createElement("form",{ref:b,method:g,action:f,onSubmit:n?c:x,...y,"data-discover":!h&&e==="render"?"true":void 0})});Sy.displayName="Form";function Cy(e){return`${e} must be used within a data router.  See https://reactrouter.com/en/main/routers/picking-a-router.`}function rp(e){let t=v.useContext(li);return ae(t,Cy(e)),t}function Ny(e,{target:t,replace:a,unstable_mask:n,state:r,preventScrollReset:o,relative:s,viewTransition:l,unstable_defaultShouldRevalidate:c,unstable_useTransitions:d}={}){let m=Wr(),u=De(),p=dn(e,{relative:s});return v.useCallback(y=>{if(ny(y,t)){y.preventDefault();let b=a!==void 0?a:Xi(u)===Xi(p),w=()=>m(e,{replace:b,unstable_mask:n,state:r,preventScrollReset:o,relative:s,viewTransition:l,unstable_defaultShouldRevalidate:c});d?v.startTransition(()=>w()):w()}},[u,m,p,a,n,r,t,e,o,s,l,c,d])}function Py(e){at(typeof URLSearchParams<"u","You cannot use the `useSearchParams` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.");let t=v.useRef(As(e)),a=v.useRef(!1),n=De(),r=v.useMemo(()=>ry(n.search,a.current?null:t.current),[n.search]),o=Wr(),s=v.useCallback((l,c)=>{const d=As(typeof l=="function"?l(new URLSearchParams(r)):l);a.current=!0,o("?"+d,c)},[o,r]);return[r,s]}var Ty=0,Ly=()=>`__${String(++Ty)}__`;function Ey(){let{router:e}=rp("useSubmit"),{basename:t}=v.useContext(Ye),a=Hh(),n=e.fetch,r=e.navigate;return v.useCallback(async(o,s={})=>{let{action:l,method:c,encType:d,formData:m,body:u}=ly(o,t);if(s.navigate===!1){let p=s.fetcherKey||Ly();await n(p,a,s.action||l,{unstable_defaultShouldRevalidate:s.unstable_defaultShouldRevalidate,preventScrollReset:s.preventScrollReset,formData:m,body:u,formMethod:s.method||c,formEncType:s.encType||d,flushSync:s.flushSync})}else await r(s.action||l,{unstable_defaultShouldRevalidate:s.unstable_defaultShouldRevalidate,preventScrollReset:s.preventScrollReset,formData:m,body:u,formMethod:s.method||c,formEncType:s.encType||d,replace:s.replace,state:s.state,fromRouteId:a,flushSync:s.flushSync,viewTransition:s.viewTransition})},[n,r,t,a])}function Dy(e,{relative:t}={}){let{basename:a}=v.useContext(Ye),n=v.useContext(it);ae(n,"useFormAction must be used inside a RouteContext");let[r]=n.matches.slice(-1),o={...dn(e||".",{relative:t})},s=De();if(e==null){o.search=s.search;let l=new URLSearchParams(o.search),c=l.getAll("index");if(c.some(m=>m==="")){l.delete("index"),c.filter(u=>u).forEach(u=>l.append("index",u));let m=l.toString();o.search=m?`?${m}`:""}}return(!e||e===".")&&r.route.index&&(o.search=o.search?o.search.replace(/^\?/,"?index&"):"?index"),a!=="/"&&(o.pathname=o.pathname==="/"?a:ft([a,o.pathname])),Xi(o)}function qy(e,{relative:t}={}){let a=v.useContext(Jm);ae(a!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`.  Did you accidentally import `RouterProvider` from `react-router`?");let{basename:n}=rp("useViewTransitionState"),r=dn(e,{relative:t});if(!a.isTransitioning)return!1;let o=qt(a.currentLocation.pathname,n)||a.currentLocation.pathname,s=qt(a.nextLocation.pathname,n)||a.nextLocation.pathname;return vr(r.pathname,s)!=null||vr(r.pathname,o)!=null}/**
52 * @license lucide-react v0.344.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 */var My={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"};/**
57 * @license lucide-react v0.344.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 Ry=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase().trim(),E=(e,t)=>{const a=v.forwardRef(({color:n="currentColor",size:r=24,strokeWidth:o=2,absoluteStrokeWidth:s,className:l="",children:c,...d},m)=>v.createElement("svg",{ref:m,...My,width:r,height:r,stroke:n,strokeWidth:s?Number(o)*24/Number(r):o,className:["lucide",`lucide-${Ry(e)}`,l].join(" "),...d},[...t.map(([u,p])=>
61v.createElement(u,p)),...Array.isArray(c)?c:[c]]));return a.displayName=`${e}`,a};/**
62 * @license lucide-react v0.344.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 Fy=E("AlertCircle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);/**
67 * @license lucide-react v0.344.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 op=E("AlertTriangle",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z",key:"c3ski4"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/**
72 * @license lucide-react v0.344.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 zy=E("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/**
77 * @license lucide-react v0.344.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 Me=E("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/**
82 * @license lucide-react v0.344.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 sp=E("Award",[["circle",{cx:"12",cy:"8",r:"6",key:"1vp47v"}],["path",{d:"M15.477 12.89 17 22l-5-3-5 3 1.523-9.11",key:"em7aur"}]]);/**
87 * @license lucide-react v0.344.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 lp=E("BarChart2",[["line",{x1:"18",x2:"18",y1:"20",y2:"10",key:"1xfpm4"}],["line",{x1:"12",x2:"12",y1:"20",y2:"4",key:"be30l9"}],["line",{x1:"6",x2:"6",y1:"20",y2:"14",key:"1r4le6"}]]);/**
92 * @license lucide-react v0.344.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 By=E("BarChart",[["line",{x1:"12",x2:"12",y1:"20",y2:"10",key:"1vz5eb"}],["line",{x1:"18",x2:"18",y1:"20",y2:"4",key:"cun8e5"}
96],["line",{x1:"6",x2:"6",y1:"20",y2:"16",key:"hq0ia6"}]]);/**
97 * @license lucide-react v0.344.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 cp=E("BookOpen",[["path",{d:"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z",key:"vv98re"}],["path",{d:"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z",key:"1cyq3y"}]]);/**
102 * @license lucide-react v0.344.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 Uy=E("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);/**
107 * @license lucide-react v0.344.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 Gy=E("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"}],["path",{d:"M10 14h4",key:"kelpxr"}],["path",{d:"M10 18h4",key:"1ulq68"}]]);/**
112 * @license lucide-react v0.344.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 en=E("Calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);/**
117 * @license lucide-react v0.344.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 O=E("CheckCircle",[["path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14",key:"g774vq"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);/**
122 * @license lucide-react v0.344.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 ti=E("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/**
127 * @license lucide-react v0.344.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 ca=E("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/**
132 * @license lucide-react v0.344.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 $r=E("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);/**
137 * @license lucide-react v0.344.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 Dl=E("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/**
142 * @license lucide-react v0.344.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 Wy=E("Code",[["polyline",{points:"16 18 22 12 16 6",key:"z7tu5w"}],["polyline",{points:"8 6 2 12 8 18",key:"1eg1df"}]]);/**
147 * @license lucide-react v0.344.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 ad=E("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.344.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 Oy=E("DollarSign",[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]]);/**
157 * @license lucide-react v0.344.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 ke=E("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"}]]);/**
162 * @license lucide-react v0.344.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 $y=E("Eye",[["path",{d:"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z",key:"rwhkz3"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/**
167 * @license lucide-react v0.344.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 _y=E("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);/**
172 * @license lucide-react v0.344.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 yt=E("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"}]]);/**
177 * @license lucide-react v0.344.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 Vy=E("Headphones",[["path",{d:"M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3",key:"1xhozi"}]]);/**
182 * @license lucide-react v0.344.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 Hy=E("Home",[["path",{d:"m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"y5dka4"}],["polyline",{points:"9 22 9 12 15 12 15 22",key:"e2us08"}]]);/**
187 * @license lucide-react v0.344.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 Yy=E("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"}]]);/**
192 * @license lucide-react v0.344.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 Ky=E("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);/**
197 * @license lucide-react v0.344.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 Jy=E("Languages",[["path",{d:"m5 8 6 6",key:"1wu5hv"}],["path",{d:"m4 14 6-6 2-3",key:"1k1g8d"}],["path",{d:"M2 5h12",key:"or177f"}],["path",{d:"M7 2h1",key:"1t2jsx"}],["path",{d:"m22 22-5-10-5 10",key:"don7ne"}],["path",{d:"M14 18h6",key:"1m8k6r"}]]);/**
202 * @license lucide-react v0.344.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 Pt=E("Layers",[["path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z",key:"8b97xw"}],["path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65",key:"dd6zsq"}],["path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65",key:"ep9fru"}]]);/**
207 * @license lucide-react v0.344.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 Qy=E("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"}]]);/**
212 * @license lucide-react v0.344.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 Zy=E("Linkedin",[["path",{d:"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z",key:"c2jq9f"}],["rect",{width:"4",height:"12",x:"2",y:"9",key:"mk3on5"}],["circle",{cx:"4",cy:"4",r:"2",key:"bt5ra8"}]]);/**
217 * @license lucide-react v0.344.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 _r=E("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"}]]);/**
222 * @license lucide-react v0.344.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 Xy=E("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"}]]);/**
227 * @license lucide-react v0.344.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 ew=E("MessageCircle",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}]]);/**
232 * @license lucide-react v0.344.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 tw=E("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]);/**
237 * @license lucide-react v0.344.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 aw=E("Mic",[["path",{d:"M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z",key:"131961"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2",key:"1vc78b"}],["line",{x1:"12",x2:"12",y1:"19",y2:"22",key:"x3vr5v"}]]);/**
242 * @license lucide-react v0.344.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 iw=E("Music",[["path",{d:"M9 18V5l12-2v13",key:"1jmyc2"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["circle",{cx:"18",cy:"16",r:"3",key:"1hluhg"}]]);/**
247 * @license lucide-react v0.344.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 id=E("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"}]]);/**
252 * @license lucide-react v0.344.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 nw=E("Presentation",[["path",{d:"M2 3h20",key:"91anmk"}],["path",{d:"M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3",key:"2k9sn8"}],["path",{d:"m7 21 5-5 5 5",key:"bip4we"}]]);/**
257 * @license lucide-react v0.344.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 Is=E("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);/**
262 * @license lucide-react v0.344.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 xr=E("Rocket",[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3
266kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]]);/**
267 * @license lucide-react v0.344.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 ai=E("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/**
272 * @license lucide-react v0.344.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 dp=E("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/**
277 * @license lucide-react v0.344.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 ht=E("Shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]]);/**
282 * @license lucide-react v0.344.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 rw=E("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"}]]);/**
287 * @license lucide-react v0.344.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 ow=E("Smartphone",[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]]);/**
292 * @license lucide-react v0.344.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 ql=E("Star",[["polygon",{points:"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2",key:"8f66p6"}]]);/**
297 * @license lucide-react v0.344.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 sw=E("Tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);/**
302 * @license lucide-react v0.344.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 Ml=E("Target",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]);/**
307 * @license lucide-react v0.344.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 Rl=E("TrendingUp",[["polyline",{points:"22 7 13.5 15.5 8.5 10.5 2 17",key:"126l90"}],["polyline",{points:"16 7 22 7 22 13",key:"kwv8wd"}]]);/**
312 * @license lucide-react v0.344.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 nd=E("Trophy",[["path",{d:"M6 9H4.5a2.5 2.5 0 0 1 0-5H6",key:"17hqa7"}],["path",{d:"M18 9h1.5a2.5 2.5 0 0 0 0-5H18",key:"lmptdp"}],["path",{d:"M4 22h16",key:"57wxv0"}
vendor: 43,317 bytes, lines 316-351
316],["path",{d:"M10 14.66V17c0 .55-.47.98-.97 1.21C7.85 18.75 7 20.24 7 22",key:"1nw9bq"}],["path",{d:"M14 14.66V17c0 .55.47.98.97 1.21C16.15 18.75 17 20.24 17 22",key:"1np0yb"}],["path",{d:"M18 2H6v7a6 6 0 0 0 12 0V2Z",key:"u46fv3"}]]);/**
317 * @license lucide-react v0.344.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 lw=E("Twitter",[["path",{d:"M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z",key:"pff0z6"}]]);/**
322 * @license lucide-react v0.344.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 wt=E("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"}]]);/**
327 * @license lucide-react v0.344.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 cw=E("Video",[["path",{d:"m22 8-6 4 6 4V8Z",key:"50v9me"}],["rect",{width:"14",height:"12",x:"2",y:"6",rx:"2",ry:"2",key:"1rqjg6"}]]);/**
332 * @license lucide-react v0.344.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 dw=E("Workflow",[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]]);/**
337 * @license lucide-react v0.344.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 Vr=E("XCircle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);/**
342 * @license lucide-react v0.344.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 rd=E("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);/**
347 * @license lucide-react v0.344.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 Ee=E("Zap",[["polygon",{points:"13 2 3 14 12 14 11 22 21 10 12 10 13 2",key:"45s27k"}]]),D=e=>typeof e=="string",bi=()=>{let e,t;const a=new Promise((n,r)=>{e=n,t=r});return a.resolve=e,a.reject=t,a},od=e=>e==null?"":String(e),uw=(e,t,a)=>{e.forEach(n=>{t[n]&&(a[n]=t[n])})},mw=/###/g,sd=e=>e&&e.includes("###")?e.replace(mw,"."):e,ld=e=>!e||D(e),qi=(e,t,a)=>{const n=D(t)?t.split("."):t;let r=0;for(;r<n.length-1;){if(ld(e))return{};const o=sd(n[r]);!e[o]&&a&&(e[o]=new a),Object.prototype.hasOwnProperty.call(e,o)?e=e[o]:e={},++r}return ld(e)?{}:{obj:e,k:sd(n[r])}},cd=(e,t,a)=>{const{obj:n,k:r}=qi(e,t,Object);if(n!==void 0||t.length===1){n[r]=a;return}let o=t[t.length-1],s=t.slice(0,t.length-1),l=qi(e,s,Object);for(;l.obj===void 0&&s.length;)o=`${s[s.length-1]}.${o}`,s=s.slice(0,s.length-1),l=qi(e,s,Object),l!=null&&l.obj&&typeof l.obj[`${l.k}.${o}`]<"u"&&(l.obj=void 0);l.obj[`${l.k}.${o}`]=a},pw=(e,t,a,n)=>{const{obj:r,k:o}=qi(e,t,Object);r[o]=r[o]||[],r[o].push(a)},kr=(e,t)=>{const{obj:a,k:n}=qi(e,t);if(a&&Object.prototype.hasOwnProperty.call(a,n))return a[n]},gw=(e,t,a)=>{const n=kr(e,a);return n!==void 0?n:kr(t,a)},up=(e,t,a)=>{for(const n in t)n!=="__proto__"&&n!=="constructor"&&(n in e?D(e[n])||e[n]instanceof String||D(t[n])||t[n]instanceof String?a&&(e[n]=t[n]):up(e[n],t[n],a):e[n]=t[n]);return e},vt=e=>e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),fw={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"},hw=e=>D(e)?e.replace(/[&<>"'\/]/g,t=>fw[t]):e;class yw{constructor(t){this.capacity=t,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(t){const a=this.regExpMap.get(t);if(a!==void 0)return a;const n=new RegExp(t);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(t,n),this.regExpQueue.push(t),n}}const ww=[" ",",","?","!",";"],bw=new yw(20),vw=(e,t,a)=>{t=t||"",a=a||"";const n=ww.filter(s=>!t.includes(s)&&!a.includes(s));if(n.length===0)return!0;const r=bw.getRegExp(`(${n.map(s=>s==="?"?"\\?":s).join("|")})`);let o=!r.test(e);if(!o){const s=e.indexOf(a);s>0&&!r.test(e.substring(0,s))&&(o=!0)}return o},js=(e,t,a=".")=>{if(!e)return;if(e[t])return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0;const n=t.split(a);let r=e;for(let o=0;o<n.length;){if(!r||typeof r!="object")return;let s,l="";for(let c=o;c<n.length;++c)if(c!==o&&(l+=a),l+=n[c],s=r[l],s!==void 0){if(["string","number","boolean"].includes(typeof s)&&c<n.length-1)continue;o+=c-o+1;break}r=s}return r},tn=e=>e==null?void 0:e.replace(/_/g,"-"),xw={type:"logger",log(e){this.output("log",e)},warn(e){this.output("warn",e)},error(e){this.output("error",e)},output(e,t){var a,n;(n=(a=console==null?void 0:console[e])==null?void 0:a.apply)==null||n.call(a,console,t)}};class Ar{constructor(t,a={}){this.init(t,a)}init(t,a={}){this.prefix=a.prefix||"i18next:",this.logger=t||xw,this.options=a,this.debug=a.debug}log(...t){return this.forward(t,"log","",!0)}warn(...t){return this.forward(t,"warn","",!0)}error(...t){return this.forward(t,"error","")}deprecate(...t){return this.forward(t,"warn","WARNING DEPRECATED: ",!0)}forward(t,a,n,r){return r&&!this.debug?null:(t=t.map(o=>D(o)?o.replace(/[\r\n\x00-\x1F\x7F]/g," "):o),D(t[0])&&(t[0]=`${n}${this.prefix} ${t[0]}`),this.logger[a](t))}create(t){return new Ar(this.logger,{prefix:`${this.prefix}:${t}:`,...this.options})}clone(t){return t=t||this.options,t.prefix=t.prefix||this.prefix,new Ar(this.logger,t)}}var mt=new Ar;class Hr{constructor(){this.observers={}}on(t,a){return t.split(" ").forEach(n=>{this.observers[n]||(this.observers[n]=new Map);const r=this.observers[n].get(a)||0;this.observers[n].set(a,r+1)}),this}off(t,a){if(this.observers[t]){if(!a){delete this.observers[t];return}this.observers[t].delete(a)}}once(t,a){const n=(...r)=>{a(...r),this.off(t,n)};return this.on(t,n),this}emit(t,...a){this.observers[t]&&Array.from(this.observers[t].entries()).forEach(([r,o])=>{for(let s=0;s<o;s++)r(...a)}),this.observers["*"]&&Array.from(this.observers["*"].entries()).forEach(([r,o])=>{for(let s=0;s<o;s++)r(t,...a)})}}class dd extends Hr{constructor(t,a={ns:["translation"],defaultNS:"translation"}){super(),this.data=t||{},this.options=a,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(t){this.options.ns.includes(t)||this.options.ns.push(t)}removeNamespaces(t){const a=this.options.ns.indexOf(t);a>-1&&this.options.ns.splice(a,1)}getResource(t,a,n,r={}){var d,m;const o=r.keySeparator!==void 0?r.keySeparator:this.options.keySeparator,s=r.ignoreJSONStructure!==void 0?r.ignoreJSONStructure:this.options.ignoreJSONStructure;let l;t.includes(".")?l=t.split("."):(l=[t,a],n&&(Array.isArray(n)?l.push(...n):D(n)&&o?l.push(...n.split(o)):l.push(n)));const c=kr(this.data,l);return!c&&!a&&!n&&t.includes(".")&&(t=l[0],a=l[1],n=l.slice(2).join(".")),c||!s||!D(n)?c:js((m=(d=this.data)==null?void 0:d[t])==null?void 0:m[a],n,o)}addResource(t,a,n,r,o={silent:!1}){const s=o.keySeparator!==void 0?o.keySeparator:this.options.keySeparator;let l=[t,a];n&&(l=l.concat(s?n.split(s):n)),t.includes(".")&&(l=t.split("."),r=a,a=l[1]),this.addNamespaces(a),cd(this.data,l,r),o.silent||this.emit("added",t,a,n,r)}addResources(t,a,n,r={silent:!1}){for(const o in n)(D(n[o])||Array.isArray(n[o]))&&this.addResource(t,a,o,n[o],{silent:!0});r.silent||this.emit("added",t,a,n)}addResourceBundle(t,a,n,r,o,s={silent:!1,skipCopy:!1}){let l=[t,a];t.includes(".")&&(l=t.split("."),r=n,n=a,a=l[1]),this.addNamespaces(a);let c=kr(this.data,l)||{};s.skipCopy||(n=JSON.parse(JSON.stringify(n))),r?up(c,n,o):c={...c,...n},cd(this.data,l,c),s.silent||this.emit("added",t,a,n)}removeResourceBundle(t,a){this.hasResourceBundle(t,a)&&delete this.data[t][a],this.removeNamespaces(a),this.emit("removed",t,a)}hasResourceBundle(t,a){return this.getResource(t,a)!==void 0}getResourceBundle(t,a){return a||(a=this.options.defaultNS),this.getResource(t,a)}getDataByLanguage(t){return this.data[t]}hasLanguageSomeTranslations(t){const a=this.getDataByLanguage(t);return!!(a&&Object.keys(a)||[]).find(r=>a[r]&&Object.keys(a[r]).length>0)}toJSON(){return this.data}}var mp={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,t,a,n,r){return e.forEach(o=>{var s;t=((s=this.processors[o])==null?void 0:s.process(t,a,n,r))??t}),t}};const pp=Symbol("i18next/PATH_KEY");function kw(){const e=[],t=Object.create(null);let a;return t.get=(n,r)=>{var o;return(o=a==null?void 0:a.revoke)==null||o.call(a),r===pp?e:(e.push(r),a=Proxy.revocable(n,t),a.proxy)},Proxy.revocable(Object.create(null),t).proxy}function Ha(e,t){const{[pp]:a}=e(kw()),n=(t==null?void 0:t.keySeparator)??".",r=(t==null?void 0:t.nsSeparator)??":";if(a.length>1&&r){const o=t==null?void 0:t.ns,s=Array.isArray(o)?o:null;if(s&&s.length>1&&s.slice(1).includes(a[0]))return`${a[0]}${r}${a.slice(1).join(n)}`}return a.join(n)}const jo=e=>!D(e)&&typeof e!="boolean"&&typeof e!="number";class Ir extends Hr{constructor(t,a={}){super(),uw(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],t,this),this.options=a,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=mt.create("translator"),this.checkedLoadedFor={}}changeLanguage(t){t&&(this.language=t)}exists(t,a={interpolation:{}}){const n={...a};if(t==null)return!1;const r=this.resolve(t,n);if((r==null?void 0:r.res)===void 0)return!1;const o=jo(r.res);return!(n.returnObjects===!1&&o)}extractFromKey(t,a){let n=a.nsSeparator!==void 0?a.nsSeparator:this.options.nsSeparator;n===void 0&&(n=":");const r=a.keySeparator!==void 0?a.keySeparator:this.options.keySeparator;let o=a.ns||this.options.defaultNS||[];const s=n&&t.includes(n),l=!this.options.userDefinedKeySeparator&&!a.keySeparator&&!this.options.userDefinedNsSeparator&&!a.nsSeparator&&!vw(t,n,r);if(s&&!l){const c=t.match(this.interpolator.nestingRegexp);if(c&&c.length>0)return{key:t,namespaces:D(o)?[o]:o};const d=t.split(n);(n!==r||n===r&&this.options.ns.includes(d[0]))&&(o=d.shift()),t=d.join(r)}return{key:t,namespaces:D(o)?[o]:o}}translate(t,a,n){let r=typeof a=="object"?{...a}:a;if(typeof r!="object"&&this.options.overloadTranslationOptionHandler&&(r=this.options.overloadTranslationOptionHandler(arguments)),typeof r=="object"&&(r={...r}),r||(r={}),t==null)return"";typeof t=="function"&&(t=Ha(t,{...this.options,...r})),Array.isArray(t)||(t=[String(t)]),t=t.map(M=>typeof M=="function"?Ha(M,{...this.options,...r}):String(M));const o=r.returnDetails!==void 0?r.returnDetails:this.options.returnDetails,s=r.keySeparator!==void 0?r.keySeparator:this.options.keySeparator,{key:l,namespaces:c}=this.extractFromKey(t[t.length-1],r),d=c[c.length-1];let m=r.nsSeparator!==void 0?r.nsSeparator:this.options.nsSeparator;m===void 0&&(m=":");const u=r.lng||this.language,p=r.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if((u==null?void 0:u.toLowerCase())==="cimode")return p?o?{res:`${d}${m}${l}`,usedKey:l,exactUsedKey:l,usedLng:u,usedNS:d,usedParams:this.getUsedParamsDetails(r)}:`${d}${m}${l}`:o?{res:l,usedKey:l,exactUsedKey:l,usedLng:u,usedNS:d,usedParams:this.getUsedParamsDetails(r)}:l;const y=this.resolve(t,r);let b=y==null?void 0:y.res;const w=(y==null?void 0:y.usedKey)||l,A=(y==null?void 0:y.exactUsedKey)||l,f=["[object Number]","[object Function]","[object RegExp]"],g=r.joinArrays!==void 0?r.joinArrays:this.options.joinArrays,h=!this.i18nFormat||this.i18nFormat.handleAsObject,x=r.count!==void 0&&!D(r.count),k=Ir.hasDefaultValue(r),C=x?this.pluralResolver.getSuffix(u,r.count,r):"",S=r.ordinal&&x?this.pluralResolver.getSuffix(u,r.count,{ordinal:!1}):"",P=x&&!r.ordinal&&r.count===0,R=P&&r[`defaultValue${this.options.pluralSeparator}zero`]||r[`defaultValue${C}`]||r[`defaultValue${S}`]||r.defaultValue;let L=b;h&&!b&&k&&(L=R);const ue=jo(L),U=Object.prototype.toString.apply(L);if(h&&L&&ue&&!f.includes(U)&&!(D(g)&&Array.isArray(L))){if(!r.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const M=this.options.returnedObjectHandler?this.options.returnedObjectHandler(w,L,{...r,ns:c}):`key '${l} (${this.language})' returned an object instead of string.`;return o?(y.res=M,y.usedParams=this.getUsedParamsDetails(r),y):M}if(s){const M=Array.isArray(L),z=M?[]:{},$=M?A:w;for(const Z in L)if(Object.prototype.hasOwnProperty.call(L,Z)){const le=`${$}${s}${Z}`;k&&!b?z[Z]=this.translate(le,{...r,defaultValue:jo(R)?R[Z]:void 0,joinArrays:!1,ns:c}):z[Z]=this.translate(le,{...r,joinArrays:!1,ns:c}),z[Z]===le&&(z[Z]=L[Z])}b=z}}else if(h&&D(g)&&Array.isArray(b))b=b.join(g),b&&(b=this.extendTranslation(b,t,r,n));else{let M=!1,z=!1;!this.isValidLookup(b)&&k&&(M=!0,b=R),this.isValidLookup(b)||(z=!0,b=l);const Z=(r.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&z?void 0:b,le=k&&R!==b&&this.options.updateMissing;if(z||M||le){if(this.logger.log(le?"updateKey":"missingKey",u,d,x&&!le?`${l}${this.pluralResolver.getSuffix(u,r.count,r)}`:l,le?R:b),s){const G=this.resolve(l,{...r,keySeparator:!1});G&&G.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let N=[];const q=this.languageUtils.getFallbackCodes(this.options.fallbackLng,r.lng||this.language);if(this.options.saveMissingTo==="fallback"&&q&&q[0])for(let G=0;G<q.length;G++)N.push(q[G]);else this.options.saveMissingTo==="all"?N=this.languageUtils.toResolveHierarchy(r.lng||this.language):N.push(r.lng||this.language);const F=(G,H,nt)=>{var Ia;const rt=k&&nt!==b?nt:Z;this.options.missingKeyHandler?this.options.missingKeyHandler(G,d,H,rt,le,r):(Ia=this.backendConnector)!=null&&Ia.saveMissing&&this.backendConnector.saveMissing(G,d,H,rt,le,r),this.emit("missingKey",G,d,H,b)};this.options.saveMissing&&(this.options.saveMissingPlurals&&x?N.forEach(G=>{const H=this.pluralResolver.getSuffixes(G,r);P&&r[`defaultValue${this.options.pluralSeparator}zero`]&&!H.includes(`${this.options.pluralSeparator}zero`)&&H.push(`${this.options.pluralSeparator}zero`),H.forEach(nt=>{F([G],l+nt,r[`defaultValue${nt}`]||R)})}):F(N,l,R))}b=this.extendTranslation(b,t,r,y,n),z&&b===l&&this.options.appendNamespaceToMissingKey&&(b=`${d}${m}${l}`),(z||M)&&this.options.parseMissingKeyHandler&&(b=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${d}${m}${l}`:l,M?b:void 0,r))}return o?(y.res=b,y.usedParams=this.getUsedParamsDetails(r),y):b}extendTranslation(t,a,n,r,o){var c,d;if((c=this.i18nFormat)!=null&&c.parse)t=this.i18nFormat.parse(t,{...this.options.interpolation.defaultVariables,...n},n.lng||this.language||r.usedLng,r.usedNS,r.usedKey,{resolved:r});else if(!n.skipInterpolation){n.interpolation&&this.interpolator.init({...n,interpolation:{...this.options.interpolation,...n.interpolation}});const m=D(t)&&(((d=n==null?void 0:n.interpolation)==null?void 0:d.skipOnVariables)!==void 0?n.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let u;if(m){const y=t.match(this.interpolator.nestingRegexp);u=y&&y.length}let p=n.replace&&!D(n.replace)?n.replace:n;if(this.options.interpolation.defaultVariables&&(p={...this.options.interpolation.defaultVariables,...p}),t=this.interpolator.interpolate(t,p,n.lng||this.language||r.usedLng,n),m){const y=t.match(this.interpolator.nestingRegexp),b=y&&y.length;u<b&&(n.nest=!1)}!n.lng&&r&&r.res&&(n.lng=this.language||r.usedLng),n.nest!==!1&&(t=this.interpolator.nest(t,(...y)=>(o==null?void 0:o[0])===y[0]&&!n.context?(this.logger.warn(`It seems you are nesting recursively key: ${y[0]} in key: ${a[0]}`),null):this.translate(...y,a),n)),n.interpolation&&this.interpolator.reset()}const s=n.postProcess||this.options.postProcess,l=D(s)?[s]:s;return t!=null&&(l!=null&&l.length)&&n.applyPostProcessor!==!1&&(t=mp.handle(l,t,a,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...r,usedParams:this.getUsedParamsDetails(n)},...n}:n,this)),t}resolve(t,a={}){let n,r,o,s,l;return D(t)&&(t=[t]),Array.isArray(t)&&(t=t.map(c=>typeof c=="function"?Ha(c,{...this.options,...a}):c)),t.forEach(c=>{if(this.isValidLookup(n))return;const d=this.extractFromKey(c,a),m=d.key;r=m;let u=d.namespaces;this.options.fallbackNS&&(u=u.concat(this.options.fallbackNS));const p=a.count!==void 0&&!D(a.count),y=p&&!a.ordinal&&a.count===0,b=a.context!==void 0&&(D(a.context)||typeof a.context=="number")&&a.context!=="",w=a.lngs?a.lngs:this.languageUtils.toResolveHierarchy(a.lng||this.language,a.fallbackLng);u.forEach(A=>{var f,g;this.isValidLookup(n)||(l=A,!this.checkedLoadedFor[`${w[0]}-${A}`]&&((f=this.utils)!=null&&f.hasLoadedNamespace)&&!((g=this.utils)!=null&&g.hasLoadedNamespace(l))&&(this.checkedLoadedFor[`${w[0]}-${A}`]=!0,this.logger.warn(`key "${r}" for languages "${w.join(", ")}" won't get resolved as namespace "${l}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),w.forEach(h=>{var C;if(this.isValidLookup(n))return;s=h;const x=[m];if((C=this.i18nFormat)!=null&&C.addLookupKeys)this.i18nFormat.addLookupKeys(x,m,h,A,a);else{let S;p&&(S=this.pluralResolver.getSuffix(h,a.count,a));const P=`${this.options.pluralSeparator}zero`,R=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(p&&(a.ordinal&&S.startsWith(R)&&x.push(m+S.replace(R,this.options.pluralSeparator)),x.push(m+S),y&&x.push(m+P)),b){const L=`${m}${this.options.contextSeparator||"_"}${a.context}`;x.push(L),p&&(a.ordinal&&S.startsWith(R)&&x.push(L+S.replace(R,this.options.pluralSeparator)),x.push(L+S),y&&x.push(L+P))}}let k;for(;k=x.pop();)this.isValidLookup(n)||(o=k,n=this.getResource(h,A,k,a))}))})}),{res:n,usedKey:r,exactUsedKey:o,usedLng:s,usedNS:l}}isValidLookup(t){return t!==void 0&&!(!this.options.returnNull&&t===null)&&!(!this.options.returnEmptyString&&t==="")}getResource(t,a,n,r={}){var o;return(o=this.i18nFormat)!=null&&o.getResource?this.i18nFormat.getResource(t,a,n,r):this.resourceStore.getResource(t,a,n,r)}getUsedParamsDetails(t={}){const a=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],n=t.replace&&!D(t.replace);let r=n?t.replace:t;if(n&&typeof t.count<"u"&&(r.count=t.count),this.options.interpolation.defaultVariables&&(r={...this.options.interpolation.defaultVariables,...r}),!n){r={...r};for(const o of a)delete r[o]}return r}static hasDefaultValue(t){const a="defaultValue";for(const n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&n.startsWith(a)&&t[n]!==void 0)return!0;return!1}}class ud{constructor(t){this.options=t,this.supportedLngs=this.options.supportedLngs||!1,this.logger=mt.create("languageUtils")}getScriptPartFromCode(t){if(t=tn(t),!t||!t.includes("-"))return null;const a=t.split("-");return a.length===2||(a.pop(),a[a.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(a.join("-"))}getLanguagePartFromCode(t){if(t=tn(t),!t||!t.includes("-"))return t;const a=t.split("-");return this.formatLanguageCode(a[0])}formatLanguageCode(t){if(D(t)&&t.includes("-")){let a;try{a=Intl.getCanonicalLocales(t)[0]}catch{}return a&&this.options.lowerCaseLng&&(a=a.toLowerCase()),a||(this.options.lowerCaseLng?t.toLowerCase():t)}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t}isSupportedCode(t){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(t=this.getLanguagePartFromCode(t)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.includes(t)}getBestMatchFromCodes(t){if(!t)return null;let a;return t.forEach(n=>{if(a)return;const r=this.formatLanguageCode(n);(!this.options.supportedLngs||this.isSupportedCode(r))&&(a=r)}),!a&&this.options.supportedLngs&&t.forEach(n=>{if(a)return;const r=this.getScriptPartFromCode(n);if(this.isSupportedCode(r))return a=r;const o=this.getLanguagePartFromCode(n);if(this.isSupportedCode(o))return a=o;a=this.options.supportedLngs.find(s=>s===o?!0:!s.includes("-")&&!o.includes("-")?!1:!!(s.includes("-")&&!o.includes("-")&&s.slice(0,s.indexOf("-"))===o||s.startsWith(o)&&o.length>1))}),a||(a=this.getFallbackCodes(this.options.fallbackLng)[0]),a}getFallbackCodes(t,a){if(!t)return[];if(typeof t=="function"&&(t=t(a)),D(t)&&(t=[t]),Array.isArray(t))return t;if(!a)return t.default||[];let n=t[a];return n||(n=t[this.getScriptPartFromCode(a)]),n||(n=t[this.formatLanguageCode(a)]),n||(n=t[this.getLanguagePartFromCode(a)]),n||(n=t.default),n||[]}toResolveHierarchy(t,a){const n=this.getFallbackCodes((a===!1?[]:a)||this.options.fallbackLng||[],t),r=[],o=s=>{s&&(this.isSupportedCode(s)?r.push(s):this.logger.warn(`rejecting language code not found in supportedLngs: ${s}`))};return D(t)&&(t.includes("-")||t.includes("_"))?(this.options.load!=="languageOnly"&&o(this.formatLanguageCode(t)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&o(this.getScriptPartFromCode(t)),this.options.load!=="currentOnly"&&o(this.getLanguagePartFromCode(t))):D(t)&&o(this.formatLanguageCode(t)),n.forEach(s=>{r.includes(s)||o(this.formatLanguageCode(s))}),r}}const md={zero:0,one:1,two:2,few:3,many:4,other:5},pd={select:e=>e===1?"one":"other",resolvedOptions:()=>({pluralCategories:["one","other"]})};class Aw{constructor(t,a={}){this.languageUtils=t,this.options=a,this.logger=mt.create("pluralResolver"),this.pluralRulesCache={}}clearCache(){this.pluralRulesCache={}}getRule(t,a={}){const n=tn(t==="dev"?"en":t),r=a.ordinal?"ordinal":"cardinal",o=JSON.stringify({cleanedCode:n,type:r});if(o in this.pluralRulesCache)return this.pluralRulesCache[o];let s;try{s=new Intl.PluralRules(n,{type:r})}catch{if(typeof Intl>"u")return this.logger.error("No Intl support, please use an Intl polyfill!"),pd;if(!t.match(/-|_/))return pd;const c=this.languageUtils.getLanguagePartFromCode(t);s=this.getRule(c,a)}return this.pluralRulesCache[o]=s,s}needsPlural(t,a={}){let n=this.getRule(t,a);return n||(n=this.getRule("dev",a)),(n==null?void 0:n.resolvedOptions().pluralCategories.length)>1}getPluralFormsOfKey(t,a,n={}){return this.getSuffixes(t,n).map(r=>`${a}${r}`)}getSuffixes(t,a={}){let n=this.getRule(t,a);return n||(n=this.getRule("dev",a)),n?n.resolvedOptions().pluralCategories.sort((r,o)=>md[r]-md[o]).map(r=>`${this.options.prepend}${a.ordinal?`ordinal${this.options.prepend}`:""}${r}`):[]}getSuffix(t,a,n={}){const r=this.getRule(t,n);return r?`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:""}${r.select(a)}`:(this.logger.warn(`no plural rule found for: ${t}`),this.getSuffix("dev",a,n))}}const gd=(e,t,a,n=".",r=!0)=>{let o=gw(e,t,a);return!o&&r&&D(a)&&(o=js(e,a,n),o===void 0&&(o=js(t,a,n))),o},So=e=>e.replace(/\$/g,"$$$$");class fd{constructor(t={}){var a;this.logger=mt.create("interpolator"),this.options=t,this.format=((a=t==null?void 0:t.interpolation)==null?void 0:a.format)||(n=>n),this.init(t)}init(t={}){t.interpolation||(t.interpolation={escapeValue:!0});const{escape:a,escapeValue:n,useRawValueToEscape:r,prefix:o,prefixEscaped:s,suffix:l,suffixEscaped:c,formatSeparator:d,unescapeSuffix:m,unescapePrefix:u,nestingPrefix:p,nestingPrefixEscaped:y,nestingSuffix:b,nestingSuffixEscaped:w,nestingOptionsSeparator:A,maxReplaces:f,alwaysFormat:g}=t.interpolation;this.escape=a!==void 0?a:hw,this.escapeValue=n!==void 0?n:!0,this.useRawValueToEscape=r!==void 0?r:!1,this.prefix=o?vt(o):s||"{{",this.suffix=l?vt(l):c||"}}",this.formatSeparator=d||",",this.unescapePrefix=m?"":u?vt(u):"-",this.unescapeSuffix=this.unescapePrefix?"":m?vt(m):"",this.nestingPrefix=p?vt(p):y||vt("$t("),this.nestingSuffix=b?vt(b):w||vt(")"),this.nestingOptionsSeparator=A||",",this.maxReplaces=f||1e3,this.alwaysFormat=g!==void 0?g:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const t=(a,n)=>(a==null?void 0:a.source)===n?(a.lastIndex=0,a):new RegExp(n,"g");this.regexp=t(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=t(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=t(this.nestingRegexp,`${this.nestingPrefix}((?:[^()"']+|"[^"]*"|'[^']*'|\\((?:[^()]|"[^"]*"|'[^']*')*\\))*?)${this.nestingSuffix}`)}interpolate(t,a,n,r){var y;let o,s,l;const c=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},d=b=>{if(!b.includes(this.formatSeparator)){const g=gd(a,c,b,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(g,void 0,n,{...r,...a,interpolationkey:b}):g}const w=b.split(this.formatSeparator),A=w.shift().trim(),f=w.join(this.formatSeparator).trim();return this.format(gd(a,c,A,this.options.keySeparator,this.options.ignoreJSONStructure),f,n,{...r,...a,interpolationkey:A})};this.resetRegExp(),!this.escapeValue&&typeof t=="string"&&/\$t\([^)]*\{[^}]*\{\{/.test(t)&&this.logger.warn("nesting options string contains interpolated variables with escapeValue: false — if any of those values are attacker-controlled they can inject additional nesting options (e.g. redirect lng/ns). Sanitise untrusted input before passing it to t(), or keep escapeValue: true.");const m=(r==null?void 0:r.missingInterpolationHandler)||this.options.missingInterpolationHandler,u=((y=r==null?void 0:r.interpolation)==null?void 0:y.skipOnVariables)!==void 0?r.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:b=>So(b)},{regex:this.regexp,safeValue:b=>this.escapeValue?So(this.escape(b)):So(b)}].forEach(b=>{for(l=0;o=b.regex.exec(t);){const w=o[1].trim();if(s=d(w),s===void 0)if(typeof m=="function"){const f=m(t,o,r);s=D(f)?f:""}else if(r&&Object.prototype.hasOwnProperty.call(r,w))s="";else if(u){s=o[0];continue}else this.logger.warn(`missed to pass in variable ${w} for interpolating ${t}`),s="";else!D(s)&&!this.useRawValueToEscape&&(s=od(s));const A=b.safeValue(s);if(t=t.replace(o[0],A),u?(b.regex.lastIndex+=s.length,b.regex.lastIndex-=o[0].length):b.regex.lastIndex=0,l++,l>=this.maxReplaces)break}}),t}nest(t,a,n={}){let r,o,s;const l=(c,d)=>{const m=this.nestingOptionsSeparator;if(!c.includes(m))return c;const u=c.split(new RegExp(`${vt(m)}[ ]*{`));let p=`{${u[1]}`;c=u[0],p=this.interpolate(p,s);const y=p.match(/'/g),b=p.match(/"/g);(((y==null?void 0:y.length)??0)%2===0&&!b||((b==null?void 0:b.length)??0)%2!==0)&&(p=p.replace(/'/g,'"'));try{s=JSON.parse(p),d&&(s={...d,...s})}catch(w){return this.logger.warn(`failed parsing options string in nesting for key ${c}`,w),`${c}${m}${p}`}return s.defaultValue&&s.defaultValue.includes(this.prefix)&&delete s.defaultValue,c};for(;r=this.nestingRegexp.exec(t);){let c=[];s={...n},s=s.replace&&!D(s.replace)?s.replace:s,s.applyPostProcessor=!1,delete s.defaultValue;const d=/{.*}/.test(r[1])?r[1].lastIndexOf("}")+1:r[1].indexOf(this.formatSeparator);if(d!==-1&&(c=r[1].slice(d).split(this.formatSeparator).map(m=>m.trim()).filter(Boolean),r[1]=r[1].slice(0,d)),o=a(l.call(this,r[1].trim(),s),s),o&&r[0]===t&&!D(o))return o;D(o)||(o=od(o)),o||(this.logger.warn(`missed to resolve ${r[1]} for nesting ${t}`),o=""),c.length&&(o=c.reduce((m,u)=>this.format(m,u,n.lng,{...n,interpolationkey:r[1].trim()}),o.trim())),t=t.replace(r[0],o),this.regexp.lastIndex=0}return t}}const Iw=e=>{let t=e.toLowerCase().trim();const a={};if(e.includes("(")){const n=e.split("(");t=n[0].toLowerCase().trim();const r=n[1].slice(0,-1);t==="currency"&&!r.includes(":")?a.currency||(a.currency=r.trim()):t==="relativetime"&&!r.includes(":")?a.range||(a.range=r.trim()):r.split(";").forEach(s=>{if(s){const[l,...c]=s.split(":"),d=c.join(":").trim().replace(/^'+|'+$/g,""),m=l.trim();a[m]||(a[m]=d),d==="false"&&(a[m]=!1),d==="true"&&(a[m]=!0),isNaN(d)||(a[m]=parseInt(d,10))}})}return{formatName:t,formatOptions:a}},hd=e=>{const t={};return(a,n,r)=>{let o=r;r&&r.interpolationkey&&r.formatParams&&r.formatParams[r.interpolationkey]&&r[r.interpolationkey]&&(o={...o,[r.interpolationkey]:void 0});const s=n+JSON.stringify(o);let l=t[s];return l||(l=e(tn(n),r),t[s]=l),l(a)}},jw=e=>(t,a,n)=>e(tn(a),n)(t);class Sw{constructor(t={}){this.logger=mt.create("formatter"),this.options=t,this.init(t)}init(t,a={interpolation:{}}){this.formatSeparator=a.interpolation.formatSeparator||",";const n=a.cacheInBuiltFormats?hd:jw;this.formats={number:n((r,o)=>{const s=new Intl.NumberFormat(r,{...o});return l=>s.format(l)}),currency:n((r,o)=>{const s=new Intl.NumberFormat(r,{...o,style:"currency"});return l=>s.format(l)}),datetime:n((r,o)=>{const s=new Intl.DateTimeFormat(r,{...o});return l=>s.format(l)}),relativetime:n((r,o)=>{const s=new Intl.RelativeTimeFormat(r,{...o});return l=>s.format(l,o.range||"day")}),list:n((r,o)=>{const s=new Intl.ListFormat(r,{...o});return l=>s.format(l)})}}add(t,a){this.formats[t.toLowerCase().trim()]=a}addCached(t,a){this.formats[t.toLowerCase().trim()]=hd(a)}format(t,a,n,r={}){if(!a||t==null)return t;const o=a.split(this.formatSeparator);if(o.length>1&&o[0].indexOf("(")>1&&!o[0].includes(")")&&o.find(l=>l.includes(")"))){const l=o.findIndex(c=>c.includes(")"));o[0]=[o[0],...o.splice(1,l)].join(this.formatSeparator)}return o.reduce((l,c)=>{var u;const{formatName:d,formatOptions:m}=Iw(c);if(this.formats[d]){let p=l;try{const y=((u=r==null?void 0:r.formatParams)==null?void 0:u[r.interpolationkey])||{},b=y.locale||y.lng||r.locale||r.lng||n;p=this.formats[d](l,b,{...m,...r,...y})}catch(y){this.logger.warn(y)}return p}else this.logger.warn(`there was no format function for ${d}`);return l},t)}}const Cw=(e,t)=>{e.pending[t]!==void 0&&(delete e.pending[t],e.pendingCount--)};class Nw extends Hr{constructor(t,a,n,r={}){var o,s;super(),this.backend=t,this.store=a,this.services=n,this.languageUtils=n.languageUtils,this.options=r,this.logger=mt.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=r.maxParallelReads||10,this.readingCalls=0,this.maxRetries=r.maxRetries>=0?r.maxRetries:5,this.retryTimeout=r.retryTimeout>=1?r.retryTimeout:350,this.state={},this.queue=[],(s=(o=this.backend)==null?void 0:o.init)==null||s.call(o,n,r.backend,r)}queueLoad(t,a,n,r){const o={},s={},l={},c={};return t.forEach(d=>{let m=!0;a.forEach(u=>{const p=`${d}|${u}`;!n.reload&&this.store.hasResourceBundle(d,u)?this.state[p]=2:this.state[p]<0||(this.state[p]===1?s[p]===void 0&&(s[p]=!0):(this.state[p]=1,m=!1,s[p]===void 0&&(s[p]=!0),o[p]===void 0&&(o[p]=!0),c[u]===void 0&&(c[u]=!0)))}),m||(l[d]=!0)}),(Object.keys(o).length||Object.keys(s).length)&&this.queue.push({pending:s,pendingCount:Object.keys(s).length,loaded:{},errors:[],callback:r}),{toLoad:Object.keys(o),pending:Object.keys(s),toLoadLanguages:Object.keys(l),toLoadNamespaces:Object.keys(c)}}loaded(t,a,n){const r=t.split("|"),o=r[0],s=r[1];a&&this.emit("failedLoading",o,s,a),!a&&n&&this.store.addResourceBundle(o,s,n,void 0,void 0,{skipCopy:!0}),this.state[t]=a?-1:2,a&&n&&(this.state[t]=0);const l={};this.queue.forEach(c=>{pw(c.loaded,[o],s),Cw(c,t),a&&c.errors.push(a),c.pendingCount===0&&!c.done&&(Object.keys(c.loaded).forEach(d=>{l[d]||(l[d]={});const m=c.loaded[d];m.length&&m.forEach(u=>{l[d][u]===void 0&&(l[d][u]=!0)})}),c.done=!0,c.errors.length?c.callback(c.errors):c.callback())}),this.emit("loaded",l),this.queue=this.queue.filter(c=>!c.done)}read(t,a,n,r=0,o=this.retryTimeout,s){if(!t.length)return s(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:t,ns:a,fcName:n,tried:r,wait:o,callback:s});return}this.readingCalls++;const l=(d,m)=>{if(this.readingCalls--,this.waitingReads.length>0){const u=this.waitingReads.shift();this.read(u.lng,u.ns,u.fcName,u.tried,u.wait,u.callback)}if(d&&m&&r<this.maxRetries){setTimeout(()=>{this.read(t,a,n,r+1,o*2,s)},o);return}s(d,m)},c=this.backend[n].bind(this.backend);if(c.length===2){try{const d=c(t,a);d&&typeof d.then=="function"?d.then(m=>l(null,m)).catch(l):l(null,d)}catch(d){l(d)}return}return c(t,a,l)}prepareLoading(t,a,n={},r){if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),r&&r();D(t)&&(t=this.languageUtils.toResolveHierarchy(t)),D(a)&&(a=[a]);const o=this.queueLoad(t,a,n,r);if(!o.toLoad.length)return o.pending.length||r(),null;o.toLoad.forEach(s=>{this.loadOne(s)})}load(t,a,n){this.prepareLoading(t,a,{},n)}reload(t,a,n){this.prepareLoading(t,a,{reload:!0},n)}loadOne(t,a=""){const n=t.split("|"),r=n[0],o=n[1];this.read(r,o,"read",void 0,void 0,(s,l)=>{s&&this.logger.warn(`${a}loading namespace ${o} for language ${r} failed`,s),!s&&l&&this.logger.log(`${a}loaded namespace ${o} for language ${r}`,l),this.loaded(t,s,l)})}saveMissing(t,a,n,r,o,s={},l=()=>{}){var c,d,m,u,p;if((d=(c=this.services)==null?void 0:c.utils)!=null&&d.hasLoadedNamespace&&!((u=(m=this.services)==null?void 0:m.utils)!=null&&u.hasLoadedNamespace(a))){this.logger.warn(`did not save key "${n}" as the namespace "${a}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(n==null||n==="")){if((p=this.backend)!=null&&p.create){const y={...s,isUpdate:o},b=this.backend.create.bind(this.backend);if(b.length<6)try{let w;b.length===5?w=b(t,a,n,r,y):w=b(t,a,n,r),w&&typeof w.then=="function"?w.then(A=>l(null,A)).catch(l):l(null,w)}catch(w){l(w)}else b(t,a,n,r,l,y)}!t||!t[0]||this.store.addResource(t[0],a,n,r)}}}const Co=()=>({debug:!1,initAsync:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:e=>{let t={};if(typeof e[1]=="object"&&(t=e[1]),D(e[1])&&(t.defaultValue=e[1]),D(e[2])&&(t.tDescription=e[2]),typeof e[2]=="object"||typeof e[3]=="object"){const a=e[3]||e[2];Object.keys(a).forEach(n=>{t[n]=a[n]})}return t},interpolation:{escapeValue:!0,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0},cacheInBuiltFormats:!0}),yd=e=>(D(e.ns)&&(e.ns=[e.ns]),D(e.fallbackLng)&&(e.fallbackLng=[e.fallbackLng]),D(e.fallbackNS)&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs&&!e.supportedLngs.includes("cimode")&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e),En=()=>{},Pw=e=>{Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach(a=>{typeof e[a]=="function"&&(e[a]=e[a].bind(e))})};class Mi extends Hr{constructor(t={},a){if(super(),this.options=yd(t),this.services={},this.logger=mt,this.modules={external:[]},Pw(this),a&&!this.isInitialized&&!t.isClone){if(!this.options.initAsync)return this.init(t,a),this;setTimeout(()=>{this.init(t,a)},0)}}init(t={},a){this.isInitializing=!0,typeof t=="function"&&(a=t,t={}),t.defaultNS==null&&t.ns&&(D(t.ns)?t.defaultNS=t.ns:t.ns.includes("translation")||(t.defaultNS=t.ns[0]));const n=Co();this.options={...n,...this.options,...yd(t)},this.options.interpolation={...n.interpolation,...this.options.interpolation},t.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=t.keySeparator),t.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=t.nsSeparator),typeof this.options.overloadTranslationOptionHandler!="function"&&(this.options.overloadTranslationOptionHandler=n.overloadTranslationOptionHandler);const r=d=>d?typeof d=="function"?new d:d:null;if(!this.options.isClone){this.modules.logger?mt.init(r(this.modules.logger),this.options):mt.init(null,this.options);let d;this.modules.formatter?d=this.modules.formatter:d=Sw;const m=new ud(this.options);this.store=new dd(this.options.resources,this.options);const u=this.services;u.logger=mt,u.resourceStore=this.store,u.languageUtils=m,u.pluralResolver=new Aw(m,{prepend:this.options.pluralSeparator}),d&&(u.formatter=r(d),u.formatter.init&&u.formatter.init(u,this.options),this.options.interpolation.format=u.formatter.format.bind(u.formatter)),u.interpolator=new fd(this.options),u.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},u.backendConnector=new Nw(r(this.modules.backend),u.resourceStore,u,this.options),u.backendConnector.on("*",(p,...y)=>{this.emit(p,...y)}),this.modules.languageDetector&&(u.languageDetector=r(this.modules.languageDetector),u.languageDetector.init&&u.languageDetector.init(u,this.options.detection,this.options)),this.modules.i18nFormat&&(u.i18nFormat=r(this.modules.i18nFormat),u.i18nFormat.init&&u.i18nFormat.init(this)),this.translator=new Ir(this.services,this.options),this.translator.on("*",(p,...y)=>{this.emit(p,...y)}),this.modules.external.forEach(p=>{p.init&&p.init(this)})}if(this.format=this.options.interpolation.format,a||(a=En),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const d=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);d.length>0&&d[0]!=="dev"&&(this.options.lng=d[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(d=>{this[d]=(...m)=>this.store[d](...m)}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(d=>{this[d]=(...m)=>(this.store[d](...m),this)});const l=bi(),c=()=>{const d=(m,u)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),l.resolve(u),a(m,u)};if((this.languages||this.isLanguageChangingTo)&&!this.isInitialized)return d(null,this.t.bind(this));this.changeLanguage(this.options.lng,d)};return this.options.resources||!this.options.initAsync?c():setTimeout(c,0),l}loadResources(t,a=En){var o,s;let n=a;const r=D(t)?t:this.language;if(typeof t=="function"&&(n=t),!this.options.resources||this.options.partialBundledLanguages){if((r==null?void 0:r.toLowerCase())==="cimode"&&(!this.options.preload||this.options.preload.length===0))return n();const l=[],c=d=>{if(!d||d==="cimode")return;this.services.languageUtils.toResolveHierarchy(d).forEach(u=>{u!=="cimode"&&(l.includes(u)||l.push(u))})};r?c(r):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(m=>c(m)),(s=(o=this.options.preload)==null?void 0:o.forEach)==null||s.call(o,d=>c(d)),this.services.backendConnector.load(l,this.options.ns,d=>{!d&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),n(d)})}else n(null)}reloadResources(t,a,n){const r=bi();return typeof t=="function"&&(n=t,t=void 0),typeof a=="function"&&(n=a,a=void 0),t||(t=this.languages),a||(a=this.options.ns),n||(n=En),this.services.backendConnector.reload(t,a,o=>{r.resolve(),n(o)}),r}use(t){if(!t)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!t.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return t.type==="backend"&&(this.modules.backend=t),(t.type==="logger"||t.log&&t.warn&&t.error)&&(this.modules.logger=t),t.type==="languageDetector"&&(this.modules.languageDetector=t),t.type==="i18nFormat"&&(this.modules.i18nFormat=t),t.type==="postProcessor"&&mp.addPostProcessor(t),t.type==="formatter"&&(this.modules.formatter=t),t.type==="3rdParty"&&this.modules.external.push(t),this}setResolvedLanguage(t){if(!(!t||!this.languages)&&!["cimode","dev"].includes(t)){for(let a=0;a<this.languages.length;a++){const n=this.languages[a];if(!["cimode","dev"].includes(n)&&this.store.hasLanguageSomeTranslations(n)){this.resolvedLanguage=n;break}}!this.resolvedLanguage&&!this.languages.includes(t)&&this.store.hasLanguageSomeTranslations(t)&&(this.resolvedLanguage=t,this.languages.unshift(t))}}changeLanguage(t,a){this.isLanguageChangingTo=t;const n=bi();this.emit("languageChanging",t);const r=l=>{this.language=l,this.languages=this.services.languageUtils.toResolveHierarchy(l),this.resolvedLanguage=void 0,this.setResolvedLanguage(l)},o=(l,c)=>{c?this.isLanguageChangingTo===t&&(r(c),this.translator.changeLanguage(c),this.isLanguageChangingTo=void 0,this.emit("languageChanged",c),this.logger.log("languageChanged",c)):this.isLanguageChangingTo=void 0,n.resolve((...d)=>this.t(...d)),a&&a(l,(...d)=>this.t(...d))},s=l=>{var m,u;!t&&!l&&this.services.languageDetector&&(l=[]);const c=D(l)?l:l&&l[0],d=this.store.hasLanguageSomeTranslations(c)?c:this.services.languageUtils.getBestMatchFromCodes(D(l)?[l]:l);d&&(this.language||r(d),this.translator.language||this.translator.changeLanguage(d),(u=(m=this.services.languageDetector)==null?void 0:m.cacheUserLanguage)==null||u.call(m,d)),this.loadResources(d,p=>{o(p,d)})};return!t&&this.services.languageDetector&&!this.services.languageDetector.async?s(this.services.languageDetector.detect()):!t&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(s):this.services.languageDetector.detect(s):s(t),n}getFixedT(t,a,n){const r=(o,s,...l)=>{let c;typeof s!="object"?c=this.options.overloadTranslationOptionHandler([o,s].concat(l)):c={...s},c.lng=c.lng||r.lng,c.lngs=c.lngs||r.lngs,c.ns=c.ns||r.ns,c.keyPrefix!==""&&(c.keyPrefix=c.keyPrefix||n||r.keyPrefix);const d={...this.options,...c};typeof c.keyPrefix=="function"&&(c.keyPrefix=Ha(c.keyPrefix,d));const m=this.options.keySeparator||".";let u;return c.keyPrefix&&Array.isArray(o)?u=o.map(p=>(typeof p=="function"&&(p=Ha(p,d)),`${c.keyPrefix}${m}${p}`)):(typeof o=="function"&&(o=Ha(o,d)),u=c.keyPrefix?`${c.keyPrefix}${m}${o}`:o),this.t(u,c)};return D(t)?r.lng=t:r.lngs=t,r.ns=a,r.keyPrefix=n,r}t(...t){var a;return(a=this.translator)==null?void 0:a.translate(...t)}exists(...t){var a;return(a=this.translator)==null?void 0:a.exists(...t)}setDefaultNamespace(t){this.options.defaultNS=t}hasLoadedNamespace(t,a={}){if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;
351if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const n=a.lng||this.resolvedLanguage||this.languages[0],r=this.options?this.options.fallbackLng:!1,o=this.languages[this.languages.length-1];if(n.toLowerCase()==="cimode")return!0;const s=(l,c)=>{const d=this.services.backendConnector.state[`${l}|${c}`];return d===-1||d===0||d===2};if(a.precheck){const l=a.precheck(this,s);if(l!==void 0)return l}return!!(this.hasResourceBundle(n,t)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||s(n,t)&&(!r||s(o,t)))}loadNamespaces(t,a){const n=bi();return this.options.ns?(D(t)&&(t=[t]),t.forEach(r=>{this.options.ns.includes(r)||this.options.ns.push(r)}),this.loadResources(r=>{n.resolve(),a&&a(r)}),n):(a&&a(),Promise.resolve())}loadLanguages(t,a){const n=bi();D(t)&&(t=[t]);const r=this.options.preload||[],o=t.filter(s=>!r.includes(s)&&this.services.languageUtils.isSupportedCode(s));return o.length?(this.options.preload=r.concat(o),this.loadResources(s=>{n.resolve(),a&&a(s)}),n):(a&&a(),Promise.resolve())}dir(t){var r,o;if(t||(t=this.resolvedLanguage||(((r=this.languages)==null?void 0:r.length)>0?this.languages[0]:this.language)),!t)return"rtl";try{const s=new Intl.Locale(t);if(s&&s.getTextInfo){const l=s.getTextInfo();if(l&&l.direction)return l.direction}}catch{}const a=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],n=((o=this.services)==null?void 0:o.languageUtils)||new ud(Co());return t.toLowerCase().indexOf("-latn")>1?"ltr":a.includes(n.getLanguagePartFromCode(t))||t.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(t={},a){const n=new Mi(t,a);return n.createInstance=Mi.createInstance,n}cloneInstance(t={},a=En){const n=t.forkResourceStore;n&&delete t.forkResourceStore;const r={...this.options,...t,isClone:!0},o=new Mi(r);if((t.debug!==void 0||t.prefix!==void 0)&&(o.logger=o.logger.clone(t)),["store","services","language"].forEach(l=>{o[l]=this[l]}),o.services={...this.services},o.services.utils={hasLoadedNamespace:o.hasLoadedNamespace.bind(o)},n){const l=Object.keys(this.store.data).reduce((c,d)=>(c[d]={...this.store.data[d]},c[d]=Object.keys(c[d]).reduce((m,u)=>(m[u]={...c[d][u]},m),c[d]),c),{});o.store=new dd(l,r),o.services.resourceStore=o.store}if(t.interpolation){const c={...Co().interpolation,...this.options.interpolation,...t.interpolation},d={...r,interpolation:c};o.services.interpolator=new fd(d)}return o.translator=new Ir(o.services,r),o.translator.on("*",(l,...c)=>{o.emit(l,...c)}),o.init(r,a),o.translator.options=r,o.translator.backendConnector.services.utils={hasLoadedNamespace:o.hasLoadedNamespace.bind(o)},o}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const Se=Mi.createInstance();Se.createInstance;Se.dir;Se.init;Se.loadResources;Se.reloadResources;Se.use;Se.changeLanguage;Se.getFixedT;Se.t;Se.exists;Se.setDefaultNamespace;Se.hasLoadedNamespace;Se.loadNamespaces;Se.loadLanguages;const Tw=(e,t,a,n)=>{var o,s,l,c;const r=[a,{code:t,...n||{}}];if((s=(o=e==null?void 0:e.services)==null?void 0:o.logger)!=null&&s.forward)return e.services.logger.forward(r,"warn","react-i18next::",!0);va(r[0])&&(r[0]=`react-i18next:: ${r[0]}`),(c=(l=e==null?void 0:e.services)==null?void 0:l.logger)!=null&&c.warn?e.services.logger.warn(...r):console!=null&&console.warn&&console.warn(...r)},wd={},Ss=(e,t,a,n)=>{va(a)&&wd[a]||(va(a)&&(wd[a]=new Date),Tw(e,t,a,n))},gp=(e,t)=>()=>{if(e.isInitialized)t();else{const a=()=>{setTimeout(()=>{e.off("initialized",a)},0),t()};e.on("initialized",a)}},Cs=(e,t,a)=>{e.loadNamespaces(t,gp(e,a))},bd=(e,t,a,n)=>{if(va(a)&&(a=[a]),e.options.preload&&e.options.preload.indexOf(t)>-1)return Cs(e,a,n);a.forEach(r=>{e.options.ns.indexOf(r)<0&&e.options.ns.push(r)}),e.loadLanguages(t,gp(e,n))},Lw=(e,t,a={})=>
351!t.languages||!t.languages.length?(Ss(t,"NO_LANGUAGES","i18n.languages were undefined or empty",{languages:t.languages}),!0):t.hasLoadedNamespace(e,{lng:a.lng,precheck:(n,r)=>{if(a.bindI18n&&a.bindI18n.indexOf("languageChanging")>-1&&n.services.backendConnector.backend&&n.isLanguageChangingTo&&!r(n.isLanguageChangingTo,e))return!1}}),va=e=>typeof e=="string",Ew=e=>typeof e=="object"&&e!==null,Dw=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,qw={"&amp;":"&","&#38;":"&","&lt;":"<","&#60;":"<","&gt;":">","&#62;":">","&apos;":"'","&#39;":"'","&quot;":'"',"&#34;":'"',"&nbsp;":" ","&#160;":" ","&copy;":"©","&#169;":"©","&reg;":"®","&#174;":"®","&hellip;":"…","&#8230;":"…","&#x2F;":"/","&#47;":"/"},Mw=e=>qw[e],Rw=e=>e.replace(Dw,Mw);let Ns={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:Rw,transDefaultProps:void 0};const Fw=(e={})=>{Ns={...Ns,...e}},zw=()=>Ns;let fp;const Bw=e=>{fp=e},Uw=()=>fp,Gw={type:"3rdParty",init(e){Fw(e.options.react),Bw(e)}},Ww=v.createContext();class Ow{constructor(){this.usedNamespaces={}}addUsedNamespaces(t){t.forEach(a=>{this.usedNamespaces[a]||(this.usedNamespaces[a]=!0)})}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}}var hp={exports:{}},yp={};/**
352 * @license React
353 * use-sync-external-store-shim.production.js
354 *
355 * Copyright (c) Meta Platforms, Inc. and affiliates.
356 *
357 * This source code is licensed under the MIT license found in the
358 * LICENSE file in the root directory of this source tree.
359 */var ii=v;function $w(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var _w=typeof Object.is=="function"?Object.is:$w,Vw=ii.useState,Hw=ii.useEffect,Yw=ii.useLayoutEffect,Kw=ii.useDebugValue;function Jw(e,t){var a=t(),n=Vw({inst:{value:a,getSnapshot:t}}),r=n[0].inst,o=n[1];return Yw(function(){r.value=a,r.getSnapshot=t,No(r)&&o({inst:r})},[e,a,t]),Hw(function(){return No(r)&&o({inst:r}),e(function(){No(r)&&o({inst:r})})},[e]),Kw(a),a}function No(e){var t=e.getSnapshot;e=e.value;try{var a=t();return!_w(e,a)}catch{return!0}}function Qw(e,t){return t()}var Zw=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?Qw:Jw;yp.useSyncExternalStore=ii.useSyncExternalStore!==void 0?ii.useSyncExternalStore:Zw;hp.exports=yp;var Xw=hp.exports;const eb=(e,t)=>{if(va(t))return t;if(Ew(t)&&va(t.defaultValue))return t.defaultValue;if(typeof e=="function")return"";if(Array.isArray(e)){const a=e[e.length-1];return typeof a=="function"?"":a}return e},tb={t:eb,ready:!1},ab=()=>()=>{},Fl=(e,t={})=>{var R,L,ue;const{i18n:a}=t,{i18n:n,defaultNS:r}=v.useContext(Ww)||{},o=a||n||Uw();o&&!o.reportNamespaces&&(o.reportNamespaces=new Ow),o||Ss(o,"NO_I18NEXT_INSTANCE","useTranslation: You will need to pass in an i18next instance by using initReactI18next");const s=v.useMemo(()=>{var U;return{...zw(),...(U=o==null?void 0:o.options)==null?void 0:U.react,...t}},[o,t]),{useSuspense:l,keyPrefix:c}=s,d=r||((R=o==null?void 0:o.options)==null?void 0:R.defaultNS),m=va(d)?[d]:d||["translation"],u=v.useMemo(()=>m,m);(ue=(L=o==null?void 0:o.reportNamespaces)==null?void 0:L.addUsedNamespaces)==null||ue.call(L,u);const p=v.useRef(0),y=v.useCallback(U=>{if(!o)return ab;const{bindI18n:M,bindI18nStore:z}=s,$=()=>{p.current+=1,U()};return M&&o.on(M,$),z&&o.store.on(z,$),()=>{M&&M.split(" ").forEach(Z=>o.off(Z,$)),z&&z.split(" ").forEach(Z=>o.store.off(Z,$))}},[o,s]),b=v.useRef(),w=v.useCallback(()=>{if(!o)return tb;const U=!!(o.isInitialized||o.initializedStoreOnce)&&u.every(N=>Lw(N,o,s)),M=t.lng||o.language,z=p.current,$=b.current;if($&&$.ready===U&&$.lng===M&&$.keyPrefix===c&&$.revision===z)return $;const le={t:o.getFixedT(M,s.nsMode==="fallback"?u:u[0],c),ready:U,lng:M,keyPrefix:c,revision:z};return b.current=le,le},[o,u,c,s,t.lng]),[A,f]=v.useState(0),{t:g,ready:h}=Xw.useSyncExternalStore(y,w,w);v.useEffect(()=>{if(o&&!h&&!l){const U=()=>f(M=>M+1);t.lng?bd(o,t.lng,u,U):Cs(o,u,U)}},[o,t.lng,u,h,l,A]);const x=o||{},k=v.useRef(null),C=v.useRef(),S=U=>
359{const M=Object.getOwnPropertyDescriptors(U);M.__original&&delete M.__original;const z=Object.create(Object.getPrototypeOf(U),M);if(!Object.prototype.hasOwnProperty.call(z,"__original"))try{Object.defineProperty(z,"__original",{value:U,writable:!1,enumerable:!1,configurable:!1})}catch{}return z},P=v.useMemo(()=>{const U=x,M=U==null?void 0:U.language;let z=U;U&&(k.current&&k.current.__original===U?C.current!==M?(z=S(U),k.current=z,C.current=M):z=k.current:(z=S(U),k.current=z,C.current=M));const $=!h&&!l?(...le)=>(Ss(o,"USE_T_BEFORE_READY","useTranslation: t was called before ready. When using useSuspense: false, make sure to check the ready flag before using t."),g(...le)):g,Z=[$,z,h];return Z.t=$,Z.i18n=z,Z.ready=h,Z},[g,x,h,x.resolvedLanguage,x.language,x.languages]);if(o&&l&&!h)throw new Promise(U=>{const M=()=>U();t.lng?bd(o,t.lng,u,M):Cs(o,u,M)});return P},{slice:ib,forEach:nb}=[];function rb(e){return nb.call(ib.call(arguments,1),t=>{if(t)for(const a in t)e[a]===void 0&&(e[a]=t[a])}),e}function ob(e){return typeof e!="string"?!1:[/<\s
vendor: 6,567 bytes, line 359
359*script.*?>/i,/<\s*\/\s*script\s*>/i,/<\s*img.*?on\w+\s*=/i,/<\s*\w+\s*on\w+\s*=.*?>/i,/javascript\s*:/i,/vbscript\s*:/i,/expression\s*\(/i,/eval\s*\(/i,/alert\s*\(/i,/document\.cookie/i,/document\.write\s*\(/i,/window\.location/i,/innerHTML/i].some(a=>a.test(e))}const vd=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,sb=function(e,t){const n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{path:"/"},r=encodeURIComponent(t);let o=`${e}=${r}`;if(n.maxAge>0){const s=n.maxAge-0;if(Number.isNaN(s))throw new Error("maxAge should be a Number");o+=`; Max-Age=${Math.floor(s)}`}if(n.domain){if(!vd.test(n.domain))throw new TypeError("option domain is invalid");o+=`; Domain=${n.domain}`}if(n.path){if(!vd.test(n.path))throw new TypeError("option path is invalid");o+=`; Path=${n.path}`}if(n.expires){if(typeof n.expires.toUTCString!="function")throw new TypeError("option expires is invalid");o+=`; Expires=${n.expires.toUTCString()}`}if(n.httpOnly&&(o+="; HttpOnly"),n.secure&&(o+="; Secure"),n.sameSite)switch(typeof n.sameSite=="string"?n.sameSite.toLowerCase():n.sameSite){case!0:o+="; SameSite=Strict";break;case"lax":o+="; SameSite=Lax";break;case"strict":o+="; SameSite=Strict";break;case"none":o+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}return n.partitioned&&(o+="; Partitioned"),o},xd={create(e,t,a,n){let r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{path:"/",sameSite:"strict"};a&&(r.expires=new Date,r.expires.setTime(r.expires.getTime()+a*60*1e3)),n&&(r.domain=n),document.cookie=sb(e,t,r)},read(e){const t=`${e}=`,a=document.cookie.split(";");for(let n=0;n<a.length;n++){let r=a[n];for(;r.charAt(0)===" ";)r=r.substring(1,r.length);if(r.indexOf(t)===0)return r.substring(t.length,r.length)}return null},remove(e,t){this.create(e,"",-1,t)}};var lb={name:"cookie",lookup(e){let{lookupCookie:t}=e;if(t&&typeof document<"u")return xd.read(t)||void 0},cacheUserLanguage(e,t){let{lookupCookie:a,cookieMinutes:n,cookieDomain:r,cookieOptions:o}=t;a&&typeof document<"u"&&xd.create(a,e,n,r,o)}},cb={name:"querystring",lookup(e){var n;let{lookupQuerystring:t}=e,a;if(typeof window<"u"){let{search:r}=window.location;!window.location.search&&((n=window.location.hash)==null?void 0:n.indexOf("?"))>-1&&(r=window.location.hash.substring(window.location.hash.indexOf("?")));const s=r.substring(1).split("&");for(let l=0;l<s.length;l++){const c=s[l].indexOf("=");c>0&&s[l].substring(0,c)===t&&(a=s[l].substring(c+1))}}return a}},db={name:"hash",lookup(e){var r;let{lookupHash:t,lookupFromHashIndex:a}=e,n;if(typeof window<"u"){const{hash:o}=window.location;if(o&&o.length>2){const s=o.substring(1);if(t){const l=s.split("&");for(let c=0;c<l.length;c++){const d=l[c].indexOf("=");d>0&&l[c].substring(0,d)===t&&(n=l[c].substring(d+1))}}if(n)return n;if(!n&&a>-1){const l=o.match(/\/([a-zA-Z-]*)/g);return Array.isArray(l)?(r=l[typeof a=="number"?a:0])==null?void 0:r.replace("/",""):void 0}}}return n}};let Sa=null;const kd=()=>{if(Sa!==null)return Sa;try{if(Sa=typeof window<"u"&&window.localStorage!==null,!Sa)return!1;const e="i18next.translate.boo";window.localStorage.setItem(e,"foo"),window.localStorage.removeItem(e)}catch{Sa=!1}return Sa};var ub={name:"localStorage",lookup(e){let{lookupLocalStorage:t}=e;if(t&&kd())return window.localStorage.getItem(t)||void 0},cacheUserLanguage(e,t){let{lookupLocalStorage:a}=t;a&&kd()&&window.localStorage.setItem(a,e)}};let Ca=null;const Ad=()=>{if(Ca!==null)return Ca;try{if(Ca=typeof window<"u"&&window.sessionStorage!==null,!Ca)return!1;const e="i18next.translate.boo";window.sessionStorage.setItem(e,"foo"),window.sessionStorage.removeItem(e)}catch{Ca=!1}return Ca};var mb={name:"sessionStorage",lookup(e){let{lookupSessionStorage:t}=e;if(t&&Ad())return window.sessionStorage.getItem(t)||void 0},cacheUserLanguage(e,t){let{lookupSessionStorage:a}=t;a&&Ad()&&window.sessionStorage.setItem(a,e)}},pb={name:"navigator",lookup(e){const t=[];if(typeof navigator<"u"){const{languages:a,userLanguage:n,language:r}=navigator;if(a)for(let o=0;o<a.length;o++)t.push(a[o]);n&&t.push(n),r&&t.push(r)}return t.length>0?t:void 0}},gb={name:"htmlTag",lookup(e){let{htmlTag:t}=e,a;const n=t||(typeof document<"u"?document.documentElement:null);return n&&typeof n.getAttribute=="function"&&(a=n.getAttribute("lang")),a}},fb={name:"path",lookup(e){var r;let{lookupFromPathIndex:t}=e;if(typeof window>"u")return;const a=window.location.pathname.match(/\/([a-zA-Z-]*)/g);return Array.isArray(a)?(r=a[typeof t=="number"?t:0])==null?void 0:r.replace("/",""):void 0}},hb={name:"subdomain",lookup(e){var r,o;let{lookupFromSubdomainIndex:t}=e;const a=typeof t=="number"?t+1:1,n=typeof window<"u"&&((o=(r=window.location)==null?void 0:r.hostname)==null?void 0:o.match(/^(\w{2,5})\.(([a-z0-9-]{1,63}\.[a-z]{2,6})|localhost)/i));if(n)return n[a]}};let wp=!1;try{document.cookie,wp=!0}catch{}const bp=["querystring","cookie","localStorage","sessionStorage","navigator","htmlTag"];wp||bp.splice(1,1);const yb=()=>({order:bp,lookupQuerystring:"lng",lookupCookie:"i18next",lookupLocalStorage:"i18nextLng",lookupSessionStorage:"i18nextLng",caches:["localStorage"],excludeCacheFor:["cimode"],convertDetectedLanguage:e=>e});class vp{constructor(t){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.type="languageDetector",this.detectors={},this.init(t,a)}init(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{languageUtils:{}},a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.services=t,this.options=rb(a,this.options||{},yb()),typeof this.options.convertDetectedLanguage=="string"&&this.options.convertDetectedLanguage.indexOf("15897")>-1&&(this.options.convertDetectedLanguage=r=>r.replace("-","_")),this.options.lookupFromUrlIndex&&(this.options.lookupFromPathIndex=this.options.lookupFromUrlIndex),this.i18nOptions=n,this.addDetector(lb),this.addDetector(cb),this.addDetector(ub),this.addDetector(mb),this.addDetector(pb),this.addDetector(gb),this.addDetector(fb),this.addDetector(hb),this.addDetector(db)}addDetector(t){return this.detectors[t.name]=t,this}detect(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.options.order,a=[];return t.forEach(n=>{if(this.detectors[n]){let r=this.detectors[n].lookup(this.options);r&&typeof r=="string"&&(r=[r]),r&&(a=a.concat(r))}}),a=a.filter(n=>n!=null&&!ob(n)).map(n=>this.options.convertDetectedLanguage(n)),this.services&&this.services.languageUtils&&this.services.languageUtils.getBestMatchFromCodes?a:a.length>0?a[0]:null}
359cacheUserLanguage(t){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.options.caches;a&&(this.options.excludeCacheFor&&this.options.excludeCacheFor.indexOf(t)>-1||a.forEach(n=>{this.detectors[n]&&this.detectors[n].cacheUserLanguage(t,this.options)}))}}vp.type="languageDetector";const wb={categories:"Categories",directory:"Directory",compare:"Compare",blog:"Blog",submitTool:"Submit a Tool",searchPlaceholder:"Search tools...",allCategories:"View all categories →",navCategories:{"ai-app-builders":"AI App Builders","ai-website-builders":"AI Website Builders","ai-chatbots":"AI Chatbots","ai-writing":"AI Writing","ai-coding":"AI Coding","ai-image-generation":"AI Image Gen","ai-video-generation":"AI Video","ai-audio-voice":"AI Audio"}},bb={tagline:"Independent editorial directory and comparison site for AI tools. We help you discover, compare, and choose the right AI tools for your needs.",directory:"Directory",compareExplore:"Compare & Explore",company:"Company",legal:"Legal",copyright:"© {{year}} Como AI (como.ai) · All rights reserved.",affiliateLabel:"Affiliate Disclosure:",affiliateText:"This site may contain affiliate and referral links. If you click through and make a purchase, we may earn a commission at no extra cost to you. This does not affect our editorial independence or reviews.",learnMore:"Learn more",links:{allCategories:"All Categories",aiAppBuilders:"AI App Builders",aiChatbots:"AI Chatbots",aiWebsiteBuilders:"AI Website Builders",aiCodingTools:"AI Coding Tools",aiImageGeneration:"AI Image Generation",allComparisons:"All Comparisons",emergentVsLovable:"Emergent vs Lovable",chatgptVsClaude:"ChatGPT vs Claude",cursorVsCopilot:"Cursor vs Copilot",webflowVsFramer:"Webflow vs Framer",chatgptAlternatives:"ChatGPT Alternatives",about:"About",blog:"Blog",contact:"Contact",submitTool:"Submit a Tool",claimListing:"Claim Listing",advertise:"Advertise",partnerProgram:"Partner Program",privacyPolicy:"Privacy Policy",termsOfService:"Terms of Service",affiliateDisclosure:"Affiliate Disclosure",editorialPolicy:"Editorial Policy",reviewMethodology:"Review Methodology"}},vb={badge:"como.ai — Independently reviewed AI tools directory",h1:"Find & Compare the Best",h1Highlight:"AI Tools",h1Suffix:"on Como AI",description:"Como AI is your independent editorial guide to the AI tools landscape. Honest reviews, side-by-side comparisons, and curated lists across every category — no hype, no fake ratings.",searchPlaceholder:"Search AI tools, categories, or use cases...",searchButton:"Search Tools",quickLinks:[{label:"ChatGPT vs Claude",to:"/compare/chatgpt-vs-claude"},{label:"AI App Builders",to:"/categories/ai-app-builders"},{label:"Cursor vs Copilot",to:"/compare/cursor-vs-github-copilot"},{label:"Emergent Review",to:"/tools/emergent"},{label:"Best AI Writing Tools",to:"/best-for/writers"}],browseByCategory:"Browse by Category",browseByCategoryDesc:"Explore AI tools organized by use case",allCategories:"All categories",trendingTools:"Trending AI Tools",trendingToolsDesc:"Most searched and discussed right now",viewAll:"View all",editorsPicks:"Editor's Picks",editorsPicksDesc:"Independently reviewed and recommended by our editorial team",latestComparisons:"Latest Comparisons",latestComparisonsDesc:"Side-by-side analysis of competing AI tools",allComparisons:"All comparisons",readComparison:"Read comparison",bestByUseCase:"Best AI Tools By Use Case",bestByUseCaseDesc:"Curated lists tailored to specific roles and workflows",latestBlog:"Latest from the Blog",latestBlogDesc:"In-depth guides, reviews, and comparisons",allPosts:"All posts",forTeams:"For AI Tool Teams & Founders",forTeamsDesc:"Is your AI tool listed here? Claim your listing to update your profile, add pricing details, respond to reviews, and get verified as the official representative.",claimListing:"Claim your listing",submitTool:"Submit a new tool",advertising:"Advertising & partnerships",partnerProgram:"Partner program",howWeReview:"How We Review Tools",howWeReviewDesc:"Every tool in our directory is reviewed by our editorial team based on a consistent methodology. We evaluate features, usability, pricing, documentation, and real-world performance.",editorialIndependence:"Editorial independence — not influenced by commercial relationships",regularUpdates:"Regular updates to keep information current",noFakeRatings:"No fake ratings, reviews, or social proof",clearDisclosure:"Clear disclosure of affiliate and referral relationships",readEditorialPolicy:"Read our editorial policy",whyComoAI:"Why Como AI?",whyComoAIDesc:"We built Como AI because choosing the right AI tool is hard. Here is what makes us different.",featureEditorialFirst:"Editorial
359-First",featureEditorialFirstDesc:"Every page is written by humans who have tested the tools, not generated by AI.",featureTransparent:"Transparent",featureTransparentDesc:"We clearly disclose affiliate relationships and never let commercial deals affect editorial ratings.",featureUpdated:"Regularly Updated",featureUpdatedDesc:"AI tools change fast. We update our reviews when tools ship major changes.",featureComprehensive:"Comprehensive",featureComprehensiveDesc:"From indie tools to enterprise platforms — we cover the full spectrum of the AI tools market.",useCases:{developers:"Best AI Tools for Developers",marketers:"Best AI Tools for Marketers",founders:"Best AI Tools for Founders",students:"Best AI Tools for Students",agencies:"Best AI Tools for Agencies",writers:"Best AI Tools for Writers",free:"Best Free AI Tools",appBuilders:"Best AI App Builders"}},xb={header:wb,footer:bb,home:vb},kb={categories:"Categorías",directory:"Directorio",compare:"Comparar",blog:"Blog",submitTool:"Enviar herramienta",searchPlaceholder:"Buscar herramientas...",allCategories:"Ver todas las categorías →",navCategories:{"ai-app-builders":"Constructores de apps IA","ai-website-builders":"Constructores de webs IA","ai-chatbots":"Chatbots IA","ai-writing":"Escritura IA","ai-coding":"Programación IA","ai-image-generation":"Generación de imágenes IA","ai-video-generation":"Video IA","ai-audio-voice":"Audio IA"}},Ab={tagline:"Directorio editorial independiente y sitio de comparación de herramientas de IA. Te ayudamos a descubrir, comparar y elegir las herramientas de IA adecuadas para tus necesidades.",directory:"Directorio",compareExplore:"Comparar y explorar",company:"Empresa",legal:"Legal",copyright:"© {{year}} Como AI (como.ai) · Todos los derechos reservados.",affiliateLabel:"Divulgación de afiliados:",affiliateText:"Este sitio puede contener enlaces de afiliados y referencias. Si haces clic y realizas una compra, podemos ganar una comisión sin coste adicional para ti. Esto no afecta nuestra independencia editorial ni nuestras reseñas.",learnMore:"Más información",links:{allCategories:"Todas las categorías",aiAppBuilders:"Constructores de apps IA",aiChatbots:"Chatbots IA",aiWebsiteBuilders:"Constructores de webs IA",aiCodingTools:"Herramientas de programación IA",aiImageGeneration:"Generación de imágenes IA",allComparisons:"Todas las comparaciones",emergentVsLovable:"Emergent vs Lovable",chatgptVsClaude:"ChatGPT vs Claude",cursorVsCopilot:"Cursor vs Copilot",webflowVsFramer:"Webflow vs Framer",chatgptAlternatives:"Alternativas a ChatGPT",about:"Acerca de",blog:"Blog",contact:"Contacto",submitTool:"Enviar herramienta",claimListing:"Reclamar ficha",advertise:"Publicidad",partnerProgram:"Programa de socios",privacyPolicy:"Política de privacidad",termsOfService:"Términos de servicio",affiliateDisclosure:"Divulgación de afiliados",editorialPolicy:"Política editorial",reviewMethodology:"Metodología de reseñas"}},Ib={badge:"como.ai — Directorio de herramientas de IA revisado de forma independiente",h1:"Encuentra y compara las mejores",h1Highlight:"Herramientas de IA",h1Suffix:"en Como AI",description:"Como AI es tu guía editorial independiente del ecosistema de herramientas de IA. Reseñas honestas, comparaciones lado a lado y listas curadas en cada categoría — sin exageraciones, sin valoraciones falsas.",searchPlaceholder:"Buscar herramientas de IA, categorías o casos de uso...",searchButton:"Buscar herramientas",quickLinks:[{label:"ChatGPT vs Claude",to:"/compare/chatgpt-vs-claude"},{label:"Constructores de apps IA",to:"/categories/ai-app-builders"},{label:"Cursor vs Copilot",to:"/compare/cursor-vs-github-copilot"},{label:"Reseña de Emergent",to:"/tools/emergent"},{label:"Mejores herramientas de escritura IA",to:"/best-for/writers"}],browseByCategory:"Explorar por categoría",browseByCategoryDesc:"Explora herramientas de IA organizadas por caso de uso",allCategories:"Todas las categorías",trendingTools:"Herramientas de IA en tendencia",trendingToolsDesc:"Las más buscadas y comentadas ahora mismo",viewAll:"Ver todo",editorsPicks:"Selección del editor",editorsPicksDesc:"Revisadas y recomendadas de forma independiente por nuestro equipo editorial",latestComparisons:"Últimas comparaciones",latestComparisonsDesc:"Análisis lado a lado de herramientas de IA competidoras",allComparisons:"Todas las comparaciones",readComparison:"Leer comparación",bestByUseCase:"Las mejores herramientas de IA por caso de uso",bestByUseCaseDesc:"Listas curadas adaptadas a roles y flujos de trabajo específicos",latestBlog:"Lo último del blog",latestBlogDesc:"Guías detalladas, reseñas y comparaciones",allPosts:"Todos los artículos",forTeams:"Para equipos y fundadores de herramientas IA",forTeamsDesc:"¿Tu herramienta de IA está listada aquí? Reclama tu ficha para actualizar tu perfil, añadir precios, responder a reseñas y verificarte como representante oficial.",claimListing:"Reclamar tu ficha",submitTool:"Enviar una nueva herramienta",advertising:"Publicidad y asociaciones",partnerProgram:"Programa de socios",howWeReview:"Cómo revisamos las herramientas",howWeReviewDesc:"Cada herramienta de nuestro directorio es revisada por nuestro equipo editorial con una metodología consistente. Evaluamos funcionalidades, usabilidad, precios, documentación y rendimiento real.",editorialIndependence:"Independencia editorial — sin influencia de relaciones comerciales",regularUpdates:"Actualizaciones periódicas para mantener la información al día",noFakeRatings:"Sin valoraciones, reseñas o pruebas sociales falsas",clearDisclosure:"Divulgación clara de relaciones de afiliados y referencias",readEditorialPolicy:"Leer nuestra política editorial",whyComoAI:"¿Por qué Como AI?",whyComoAIDesc:"Creamos Como AI porque elegir la herramienta de IA adecuada es difícil. Esto es lo que nos hace diferentes.",featureEditorialFirst:"Editorial primero",featureEditorialFirstDesc:"Cada página es escrita por personas que han probado las herramientas, no generada por IA.",featureTransparent:"Trans
359parente",featureTransparentDesc:"Divulgamos claramente las relaciones de afiliados y nunca dejamos que los acuerdos comerciales afecten las valoraciones editoriales.",featureUpdated:"Actualizado regularmente",featureUpdatedDesc:"Las herramientas de IA cambian rápido. Actualizamos nuestras reseñas cuando las herramientas lanzan cambios importantes.",featureComprehensive:"Completo",featureComprehensiveDesc:"Desde herramientas independientes hasta plataformas empresariales — cubrimos todo el espectro del mercado de herramientas de IA.",useCases:{developers:"Mejores herramientas de IA para desarrolladores",marketers:"Mejores herramientas de IA para marketers",founders:"Mejores herramientas de IA para fundadores",students:"Mejores herramientas de IA para estudiantes",agencies:"Mejores herramientas de IA para agencias",writers:"Mejores herramientas de IA para escritores",free:"Mejores herramientas de IA gratuitas",appBuilders:"Mejores constructores de apps IA"}},jb={header:kb,footer:Ab,home:Ib},Sb={categories:"Categorias",directory:"Diretório",compare:"Comparar",blog:"Blog",submitTool:"Enviar ferramenta",searchPlaceholder:"Buscar ferramentas...",allCategories:"Ver todas as categorias →",navCategories:{"ai-app-builders":"Criadores de apps com IA","ai-website-builders":"Criadores de sites com IA","ai-chatbots":"Chatbots de IA","ai-writing":"Escrita com IA","ai-coding":"Programação com IA","ai-image-generation":"Geração de imagens com IA","ai-video-generation":"Vídeo com IA","ai-audio-voice":"Áudio com IA"}},Cb={tagline:"Diretório editorial independente e site de comparação de ferramentas de IA. Ajudamos você a descobrir, comparar e escolher as ferramentas de IA certas para suas necessidades.",directory:"Diretório",compareExplore:"Comparar e explorar",company:"Empresa",legal:"Legal",copyright:"© {{year}} Como AI (como.ai) · Todos os direitos reservados.",affiliateLabel:"Divulgação de afiliados:",affiliateText:"Este site pode conter links de afiliados e referência. Se você clicar e fizer uma compra, podemos ganhar uma comissão sem custo adicional para você. Isso não afeta nossa independência editorial nem nossas avaliações.",learnMore:"Saiba mais",links:{allCategories:"Todas as categorias",aiAppBuilders:"Criadores de apps com IA",aiChatbots:"Chatbots de IA",aiWebsiteBuilders:"Criadores de sites com IA",aiCodingTools:"Ferramentas de programação com IA",aiImageGeneration:"Geração de imagens com IA",allComparisons:"Todas as comparações",emergentVsLovable:"Emergent vs Lovable",chatgptVsClaude:"ChatGPT vs Claude",cursorVsCopilot:"Cursor vs Copilot",webflowVsFramer:"Webflow vs Framer",chatgptAlternatives:"Alternativas ao ChatGPT",about:"Sobre",blog:"Blog",contact:"Contato",submitTool:"Enviar ferramenta",claimListing:"Reivindicar listagem",advertise:"Publicidade",partnerProgram:"Programa de parceiros",privacyPolicy:"Política de privacidade",termsOfService:"Termos de serviço",affiliateDisclosure:"Divulgação de afiliados",editorialPolicy:"Política editorial",reviewMethodology:"Metodologia de avaliações"}},Nb={badge:"como.ai — Diretório de ferramentas de IA revisado de forma independente",h1:"Encontre e compare as melhores",h1Highlight:"Ferramentas de IA",h1Suffix:"no Como AI",description:"Como AI é o seu guia editorial independente do ecossistema de ferramentas de IA. Avaliações honestas, comparações lado a lado e listas curadas em cada categoria — sem exageros, sem avaliações falsas.",searchPlaceholder:"Buscar ferramentas de IA, categorias ou casos de uso...",searchButton:"Buscar ferramentas",quickLinks:[{label:"ChatGPT vs Claude",to:"/compare/chatgpt-vs-claude"},{label:"Criadores de apps IA",to:"/categories/ai-app-builders"},{label:"Cursor vs Copilot",to:"/compare/cursor-vs-github-copilot"},{label:"Avaliação do Emergent",to:"/tools/emergent"},{label:"Melhores ferramentas de escrita IA",to:"/best-for/writers"}],browseByCategory:"Explorar por categoria",browseByCategoryDesc:"Explore ferramentas de IA organizadas por caso de uso",allCategories:"Todas as categorias",trendingTools:"Ferramentas de IA em alta",trendingToolsDesc:"As mais buscadas e c
359omentadas agora",viewAll:"Ver tudo",editorsPicks:"Escolhas do editor",editorsPicksDesc:"Avaliadas e recomendadas de forma independente pela nossa equipe editorial",latestComparisons:"Últimas comparações",latestComparisonsDesc:"Análise lado a lado de ferramentas de IA concorrentes",allComparisons:"Todas as comparações",readComparison:"Ler comparação",bestByUseCase:"Melhores ferramentas de IA por caso de uso",bestByUseCaseDesc:"Listas curadas adaptadas a funções e fluxos de trabalho específicos",latestBlog:"Últimas do blog",latestBlogDesc:"Guias aprofundados, avaliações e comparações",allPosts:"Todos os artigos",forTeams:"Para equipes e fundadores de ferramentas de IA",forTeamsDesc:"Sua ferramenta de IA está listada aqui? Reivindique sua listagem para atualizar seu perfil, adicionar detalhes de preços, responder a avaliações e se verificar como representante oficial.",claimListing:"Reivindicar sua listagem",submitTool:"Enviar uma nova ferramenta",advertising:"Publicidade e parcerias",partnerProgram:"Programa de parceiros",howWeReview:"Como avaliamos as ferramentas",howWeReviewDesc:"Cada ferramenta no nosso diretório é avaliada pela nossa equipe editorial com base em uma metodologia consistente. Avaliamos recursos, usabilidade, preços, documentação e desempenho no mundo real.",editorialIndependence:"Independência editorial — sem influência de relações comerciais",regularUpdates:"Atualizações regulares para manter as informações atualizadas",noFakeRatings:"Sem avaliações, resenhas ou provas sociais falsas",clearDisclosure:"Divulgação clara de relações de afiliados e referências",readEditorialPolicy:"Ler nossa política editorial",whyComoAI:"Por que Como AI?",whyComoAIDesc:"Criamos o Como AI porque escolher a ferramenta de IA certa é difícil. Veja o que nos diferencia.",featureEditorialFirst:"Editorial em primeiro lugar",featureEditorialFirstDesc:"Cada página é escrita por pessoas que testaram as ferramentas, não gerada por IA.",featureTransparent:"Transparente",featureTransparentDesc:"Divulgamos claramente as relações de afiliados e nunca deixamos que acordos comerciais afetem as avaliações editoriais.",featureUpdated:"Atualizado regularmente",featureUpdatedDesc:"As ferramentas de IA mudam rapidamente. Atualizamos nossas avaliações quando as ferramentas lançam mudanças importantes.",featureComprehensive:"Abrangente",featureComprehensiveDesc:"De ferramentas independentes a plataformas empresariais — cobrimos todo o espectro do mercado de ferramentas de IA.",useCases:{developers:"Melhores ferramentas de IA para desenvolvedores",marketers:"Melhores ferramentas de IA para profissionais de marketing",founders:"Melhores ferramentas de IA para fundadores",students:"Melhores ferramentas de IA para estudantes",agencies:"Melhores ferramentas de IA para agências",writers:"Melhores ferramentas de IA para escritores",free:"Melhores ferramentas de IA gratuitas",appBuilders:"Melhores criadores de apps com IA"}},Pb={header:Sb,footer:Cb,home:Nb};Se.use(vp).use(Gw).init({resources:{en:{translation:xb},es:{translation:jb},"pt-BR":{translation:Pb}},fallbackLng:"en",supportedLngs:["en","es","pt-BR"],detection:{order:["localStorage","navigator"],caches:["localStorage"]},interpolation:{escapeValue:!1}});const vi=[{code:"en",label:"English"},{code:"es",label:"Español"},{code:"pt-BR",label:"Português (BR)"}],Id=["ai-app-builders","ai-website-builders","ai-chatbots","ai-writing","ai-coding","ai-image-generation","ai-video-generation","ai-audio-voice"];function Tb(){const[e,t]=v.useState(!1),[a,n]=v.useState(!1),[r,o]=v.useState(!1),[s,l]=v.useState(!1),[c,d]=v.useState(""),m=Wr(),{t:u,i18n:p}=Fl(),y=w=>{w.preventDefault(),c.trim()&&(m(`/search?q=${encodeURIComponent(c.trim())}`),n(!1),d(""))},b=vi.find(w=>w.code===p.language)??vi.find(w=>w.code===p.language.split("-")[0])??vi[0];return i.jsxs("header",{className:"sticky top-0 z-50 bg-white border-b border-gray-200",children:[i.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:i.jsxs("div",{className:"flex items-center justify-between h-16",children:[i.jsxs(j,{to:"/",className:"flex items-center gap-2 flex-shrink-0",children:[i.jsx("div",{className:"w-8 h-8 bg-blue-600 rounded-lg flex items-center justify-center",children:i.jsx(Ee,{className:"w-5 h-5 text-white"})}),i.jsxs("span",{className:"font-bold text-gray-900 text-lg leading-tight",children:["Como ",i.jsx("span",{className:"text-blue-600",children:"AI"})]})]}),i.jsxs("nav",{className:"hidden lg:flex items-center gap-1",children:[i.jsxs("div",{className:"relative",children:[i.jsxs("button",{onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),className:"flex items-center gap-1 px-3 py-2 text-sm text-gray-600 hover:text-gray-900 rounded-md hover:bg-gray-50",children:[u("header.categories")," ",i.jsx(ti,{className:"w-4 h-4"})]}),r&&i.jsxs("div",{onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),className:"absolute top-full left-0 bg-white border border-gray-200 rounded-xl shadow-lg p-4 w-72 grid grid-cols-2 gap-1 z-50",children:[Id.map(w=>i.jsx(j,{to:`/categories/${w}`,className:"px-3 py-2 text-sm text-gray-700 hover:text-blue-600 hover:bg-blue-50 rounded-lg",onClick:()=>
359o(!1),children:u(`header.navCategories.${w}`)},w)),i.jsx(j,{to:"/categories",className:"col-span-2 px-3 py-2 text-sm text-blue-600 font-medium hover:bg-blue-50 rounded-lg mt-1 border-t border-gray-100 pt-3",onClick:()=>o(!1),children:u("header.allCategories")})]})]}),i.jsx(j,{to:"/categories",className:"px-3 py-2 text-sm text-gray-600 hover:text-gray-900 rounded-md hover:bg-gray-50",children:u("header.directory")}),i.jsx(j,{to:"/comparisons",className:"px-3 py-2 text-sm text-gray-600 hover:text-gray-900 rounded-md hover:bg-gray-50",children:u("header.compare")}),i.jsx(j,{to:"/blog",className:"px-3 py-2 text-sm text-gray-600 hover:text-gray-900 rounded-md hover:bg-gray-50",children:u("header.blog")})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[a?i.jsxs("form",{onSubmit:y,className:"hidden sm:flex items-center",children:[i.jsx("input",{autoFocus:!0,type:"text",value:c,onChange:w=>d(w.target.value),placeholder:u("header.searchPlaceholder"),className:"w-48 md:w-64 px-3 py-1.5 text-sm border border-gray-300 rounded-lg focus:outline-none focus:border-blue-500"}),i.jsx("button",{type:"button",onClick:()=>n(!1),className:"ml-1 p-1.5 text-gray-500 hover:text-gray-700",children:i.jsx(rd,{className:"w-4 h-4"})})]}):i.jsx("button",{onClick:()=>n(!0),className:"p-2 text-gray-500 hover:text-gray-700 rounded-lg hover:bg-gray-100",children:i.jsx(ai,{className:"w-5 h-5"})}),i.jsxs("div",{className:"relative hidden sm:block",children:[i.jsxs("button",{onClick:()=>l(w=>!w),onBlur:()=>setTimeout(()=>l(!1),150),className:"flex items-center gap-1.5 px-2.5 py-1.5 text-sm text-gray-500 hover:text-gray-700 rounded-lg hover:bg-gray-100 border border-gray-200",children:[i.jsx(yt,{className:"w-4 h-4"}),i.jsx("span",{className:"font-medium",children:b.code==="pt-BR"?"PT":b.code.toUpperCase()}),i.jsx(ti,{className:"w-3 h-3"})]}),s&&i.jsx("div",{className:"absolute top-full right-0 mt-1 bg-white border border-gray-200 rounded-xl shadow-lg py-1 z-50 min-w-[160px]",children:vi.map(w=>i.jsx("button",{onMouseDown:()=>{p.changeLanguage(w.code),l(!1)},className:`w-full text-left px-4 py-2 text-sm transition-colors ${p.language===w.code||p.language.startsWith(w.code)?"text-blue-600 bg-blue-50 font-medium":"text-gray-700 hover:bg-gray-50"}`,children:w.label},w.code))})]}),i.jsx(j,{to:"/submit-a-tool",className:"hidden sm:inline-flex items-center px-4 py-2 text-sm font-medium text-white bg-blue-600 rounded-lg hover:bg-blue-700 transition-colors",children:u("header.submitTool")}),i.jsx("button",{className:"lg:hidden p-2 text-gray-500 hover:text-gray-700 rounded-lg hover:bg-gray-100",onClick:()=>t(!e),children:e?i.jsx(rd,{className:"w-5 h-5"}):i.jsx(Xy,{className:"w-5 h-5"})})]})]})}),e&&i.jsxs("div",{className:"lg:hidden bg-white border-t border-gray-200 px-4 py-4 space-y-1",children:[i.jsxs("form",{onSubmit:y,className:"flex gap-2 mb-3",children:[i.jsx("input",{type:"text",value:c,onChange:w=>d(w.target.value),placeholder:u("header.searchPlaceholder"),className:"flex-1 px-3 py-2 text-sm border border-gray-300 rounded-lg focus:outline-none focus:border-blue-500"}),i.jsx("button",{type:"submit",className:"px-3 py-2 bg-blue-600 text-white rounded-lg",children:i.jsx(ai,{className:"w-4 h-4"})})]}),[{to:"/categories",label:u("header.directory")},{to:"/comparisons",label:u("header.compare")},{to:"/blog",label:u("header.blog")},{to:"/submit-a-tool",label:u("header.submitTool")}].map(w=>i.jsx(j,{to:w.to,className:"block px-3 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded-lg",onClick:()=>t(!1),children:w.label},w.to)),i.jsxs("div",{className:"pt-2 border-t border-gray-100",children:[i.jsxs("p",{className:"px-3 text-xs font-semibold text-gray-400 uppercase tracking-wide mb-2 flex items-center gap-1",children:[i.jsx(yt,{className:"w-3 h-3"})," Language"]}),i.jsx("div",{className:"flex gap-2 px-3",children:vi.map(w=>i.jsx("button",{onClick:()=>{p.changeLanguage(w.code),t(!1)},className:`px-3 py-1.5 text-xs rounded-lg border transition-colors ${p.language===w.code||p.language.startsWith(w.code)?"border-blue-500 bg-blue-50 text-blue-600 font-semibold":"border-gray-200 text-gray-600 hover:border-gray-300"}`,children:w.label},w.code))})]}),i.jsxs("div",{className:"pt-2 border-t border-gray-100",children:[i.jsx("p",{className:"px-3 text-xs font-semibold text-gray-400 uppercase tracking-wide mb-1",children:u("header.categories")}),Id.map(w=>i.jsx(j,{to:`/categories/${w}`,className:"block px-3 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded-lg",onClick:()=>
359t(!1),children:u(`header.navCategories.${w}`)},w))]})]})]})}const Dn={directory:[{key:"allCategories",to:"/categories"},{key:"aiAppBuilders",to:"/categories/ai-app-builders"},{key:"aiChatbots",to:"/categories/ai-chatbots"},{key:"aiWebsiteBuilders",to:"/categories/ai-website-builders"},{key:"aiCodingTools",to:"/categories/ai-coding"},{key:"aiImageGeneration",to:"/categories/ai-image-generation"}],compare:[{key:"allComparisons",to:"/comparisons"},{key:"emergentVsLovable",to:"/compare/emergent-vs-lovable"},{key:"chatgptVsClaude",to:"/compare/chatgpt-vs-claude"},{key:"cursorVsCopilot",to:"/compare/cursor-vs-github-copilot"},{key:"webflowVsFramer",to:"/compare/webflow-vs-framer"},{key:"chatgptAlternatives",to:"/alternatives/chatgpt"}],company:[{key:"about",to:"/about"},{key:"blog",to:"/blog"},{key:"contact",to:"/contact"},{key:"submitTool",to:"/submit-a-tool"},{key:"claimListing",to:"/claim-listing"},{key:"advertise",to:"/advertise"},{key:"partnerProgram",to:"/partners"}],legal:[{key:"privacyPolicy",to:"/privacy-policy"},{key:"termsOfService",to:"/terms-of-service"},{key:"affiliateDisclosure",to:"/affiliate-disclosure"},{key:"editorialPolicy",to:"/editorial-policy"},{key:"reviewMethodology",to:"/review-methodology"}]};
359function Lb(){const{t:e}=Fl();return i.jsx("footer",{className:"bg-gray-950 text-gray-400 mt-20",children:i.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-16",children:[i.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-5 gap-8",children:[i.jsxs("div",{className:"lg:col-span-1",children:[i.jsxs(j,{to:"/",className:"flex items-center gap-2 mb-4",children:[i.jsx("div",{className:"w-8 h-8 bg-blue-600 rounded-lg flex items-center justify-center",children:i.jsx(Ee,{className:"w-5 h-5 text-white"})}),i.jsxs("span",{className:"font-bold text-white text-lg",children:["Como ",i.jsx("span",{className:"text-blue-400",children:"AI"})]})]}),i.jsx("p",{className:"text-sm text-gray-500 mb-4 leading-relaxed",children:e("footer.tagline")}),i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx("a",{href:"https://twitter.com",target:"_blank",rel:"noopener noreferrer",className:"p-2 text-gray-600 hover:text-gray-400 transition-colors",children:i.jsx(lw,{className:"w-4 h-4"})}),i.jsx("a",{href:"https://linkedin.com",target:"_blank",rel:"noopener noreferrer",className:"p-2 text-gray-600 hover:text-gray-400 transition-colors",children:i.jsx(Zy,{className:"w-4 h-4"})}),i.jsx("a",{href:"mailto:[email protected]",className:"p-2 text-gray-600 hover:text-gray-400 transition-colors",children:i.jsx(_r,{className:"w-4 h-4"})})]})]}),i.jsxs("div",{children:[i.jsx("h3",{className:"text-white text-sm font-semibold mb-4",children:e("footer.directory")}),i.jsx("ul",{className:"space-y-2",children:Dn.directory.map(t=>i.jsx("li",{children:i.jsx(j,{to:t.to,className:"text-sm hover:text-gray-300 transition-colors",children:e(`footer.links.${t.key}`)})},t.to))})]}),i.jsxs("div",{children:[i.jsx("h3",{className:"text-white text-sm font-semibold mb-4",children:e("footer.compareExplore")}),i.jsx("ul",{className:"space-y-2",children:Dn.compare.map(t=>i.jsx("li",{children:i.jsx(j,{to:t.to,className:"text-sm hover:text-gray-300 transition-colors",children:e(`footer.links.${t.key}`)})},t.to))})]}),i.jsxs("div",{children:[i.jsx("h3",{className:"text-white text-sm font-semibold mb-4",children:e("footer.company")}),i.jsx("ul",{className:"space-y-2",children:Dn.company.map(t=>i.jsx("li",{children:i.jsx(j,{to:t.to,className:"text-sm hover:text-gray-300 transition-colors",children:e(`footer.links.${t.key}`)})},t.to))})]}),i.jsxs("div",{children:[i.jsx("h3",{className:"text-white text-sm font-semibold mb-4",children:e("footer.legal")}),i.jsx("ul",{className:"space-y-2",children:Dn.legal.map(t=>i.jsx("li",{children:i.jsx(j,{to:t.to,className:"text-sm hover:text-gray-300 transition-colors",children:e(`footer.links.${t.key}`)})},t.to))})]})]}),i.jsx("div",{className:"mt-12 pt-8 border-t border-gray-800",children:i.jsxs("div",{className:"flex flex-col md:flex-row justify-between items-start md:items-center gap-4",children:[i.jsx("p",{className:"text-xs text-gray-600",children:e("footer.copyright",{year:new Date().getFullYear()})}),i.jsxs("p",{className:"text-xs text-gray-600 max-w-lg",children:[i.jsx("strong",{className:"text-gray-500",children:e("footer.affiliateLabel")})," ",e("footer.affiliateText")," ",i.jsx(j,{to:"/affiliate-disclosure",className:"text-blue-500 hover:underline",children:e("footer.learnMore")})]})]})})]})})}function Eb({children:e}){return i.jsxs("div",{className:"min-h-screen flex flex-col bg-white",children:[i.jsx(Tb,{}),i.jsx("main",{className:"flex-1",children:e}),i.jsx(Lb,{})]})}function Q({title:e,description:t,canonical:a,ogImage:n,type:r="website",noIndex:o}){const s=e.includes("Como AI")?e:`${e} | Como AI`,l="https://como.ai",c=a?`${l}${a}`:l,d=n||`${l}/og-default.jpg`;return v.useEffect(()=>{document.title=s;const m=(p,y,b="name")=>{let w=document.querySelector(`meta[${b}="${p}"]`);w||(w=document.createElement("meta"),w.setAttribute(b,p),document.head.appendChild(w)),w.setAttribute("content",y)};m("description",t),o&&(m("robots","noindex, follow"),m("google","noads")),m("og:title",s,"property"),m("og:description",t,"property"),m("og:url",c,"property"),m("og:type",r,"property"),m("og:image",d,"property"),m("og:site_name","Como AI","property"),m("twitter:card","summary_large_image"),m("twitter:title",s),m("twitter:description",t),m("twitter:image",d);let u=document.querySelector('link[rel="canonical"]');u||(u=document.createElement("link"),u.setAttribute("rel","canonical"),document.head.appendChild(u)),u.setAttribute("href",c)},[s,t,c,d,r,o]),null}function Db({type:e,status:t}){return e==="affiliate"&&t==="active"?i.jsx("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs bg-amber-50 text-amber-700 border border-amber-200",children:"Affiliate"}):e==="referral"&&t==="active"?i.jsx("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs bg-blue-50 text-blue-700 border border-blue-200",children:"Referral"}):null}function qb({model:e}){const t={free:"bg-green-50 text-green-700",freemium:"bg-blue-50 text-blue-700",paid:"bg-gray-100 text-gray-700",enterprise:"bg-purple-50 text-purple-700",custom:"bg-gray-100 text-gray-700"};return i.jsx("span",{className:`inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium capitalize ${t[e]||"bg-gray-100 text-gray-700"}`,children:e})}function bt({tool:e,size:t="md",showCategory:a=!0}){const n=t==="sm",r=t==="lg";return i.jsxs("div",{className:`group bg-white border border-gray-200 rounded-xl hover:border-blue-300 hover:shadow-md transition-all duration-200 ${n?"p-4":"p-5"}`,children:[i.jsxs("div",{className:"flex items-start justify-between gap-3",children:[i.jsxs("div",{className:"flex items-start gap-3 min-w-0",children:[i.jsx("div",{className:`${n?"w-9 h-9 text-sm":"w-11 h-11"} ${e.logoColor||"bg-blue-600"} rounded-xl flex items-center justify-center text-white font-bold flex-shrink-0`,children:e.logoLetter||e.name[0]}),i.jsxs("div",{className:"min-w-0",children:[i.jsx(j,{to:`/tools/${e.slug}`,className:"block",children:i.jsx("h3",{className:`font-semibold text-gray-900 group-hover:text-blue-600 transition-colors truncate ${n?"text-sm":"text-base"}`,children:e.name})}),e.rating&&i.jsxs("div",{className:"flex items-center gap-1 mt-0.5",children:[i.jsx(ql,{className:"w-3 h-3 text-amber-400 fill-amber-400"}),i.jsx("span",{className:"text-xs text-gray-500",children:e.rating})]})]})]}),i.jsx("div",{className:"flex items-center gap-1 flex-shrink-0",children:e.editorPick&&i.jsx("span",{className:"hidden sm:inline-flex items-center px-1.5 py-0.5 rounded text-xs bg-blue-600 text-white font-medium",children:"Editor's Pick"})})]}),i.jsx("p",{className:`mt-3 text-gray-600 leading-relaxed line-clamp-2 ${n?"text-xs":"text-sm"}
359`,children:e.shortDescription}),!n&&i.jsxs("div",{className:"flex items-center gap-2 mt-3 flex-wrap",children:[i.jsx(qb,{model:e.pricingModel}),i.jsx(Db,{type:e.monetizationType,status:e.monetizationStatus}),a&&e.categories[0]&&i.jsxs(j,{to:`/categories/${e.categories[0]}`,className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-xs bg-gray-100 text-gray-600 hover:bg-gray-200",children:[i.jsx(sw,{className:"w-3 h-3"}),e.categories[0].replace("ai-","AI ").replace(/-/g," ")]})]}),r&&i.jsxs("div",{className:"mt-4 flex gap-2",children:[i.jsx(j,{to:`/tools/${e.slug}`,className:"flex-1 text-center py-2 text-sm font-medium text-blue-600 border border-blue-200 rounded-lg hover:bg-blue-50 transition-colors",children:"View Details"}),i.jsxs("a",{href:e.trackingUrl||e.officialUrl,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1 px-3 py-2 text-sm font-medium text-white bg-blue-600 rounded-lg hover:bg-blue-700 transition-colors",children:["Visit ",i.jsx(ke,{className:"w-3.5 h-3.5"})]})]}),!r&&i.jsx("div",{className:"mt-4",children:i.jsx(j,{to:`/tools/${e.slug}`,className:"block text-center w-full py-2 text-sm font-medium text-gray-700 border border-gray-200 rounded-lg hover:bg-gray-50 hover:text-blue-600 hover:border-blue-200 transition-colors",children:"View Details →"})})]})}const Mb={MessageCircle:ew,Code:Wy,Globe:yt,Smartphone:ow,Image:Yy,Video:cw,Mic:aw,Music:iw,Zap:Ee,Search:ai,Palette:id,TrendingUp:Rl,Target:Ml,HeadphonesIcon:Vy,Workflow:dw,BookOpen:cp,BarChart:By,Layers:Pt,Languages:Jy,FileText:_y,Presentation:nw,Bot:Uy,PenTool:id},jd={blue:"bg-blue-50 text-blue-600 border-blue-100",green:"bg-green-50 text-green-600 border-green-100",gray:"bg-gray-100 text-gray-700 border-gray-200",cyan:"bg-cyan-50 text-cyan-600 border-cyan-100",orange:"bg-orange-50 text-orange-600 border-orange-100",pink:"bg-pink-50 text-pink-600 border-pink-100",red:"bg-red-50 text-red-600 border-red-100",teal:"bg-teal-50 text-teal-600 border-teal-100",violet:"bg-violet-50 text-violet-600 border-violet-100",yellow:"bg-yellow-50 text-yellow-600 border-yellow-100",amber:"bg-amber-50 text-amber-600 border-amber-100",rose:"bg-rose-50 text-rose-600 border-rose-100",emerald:"bg-emerald-50 text-emerald-600 border-emerald-100",slate:"bg-slate-100 text-slate-600 border-slate-200"};function xp({category:e,toolCount:t}){const a=Mb[e.icon]||Ee,n=jd[e.color]||jd.blue;return i.jsxs(j,{to:`/categories/${e.slug}`,className:"group block p-5 bg-white border border-gray-200 rounded-xl hover:border-blue-300 hover:shadow-md transition-all duration-200",children:[i.jsxs("div",{className:"flex items-center justify-between mb-3",children:[i.jsx("div",{className:`w-10 h-10 rounded-xl border flex items-center justify-center ${n}`,children:i.jsx(a,{className:"w-5 h-5"})}),i.jsx(Me,{className:"w-4 h-4 text-gray-300 group-hover:text-blue-500 group-hover:translate-x-0.5 transition-all"})]}),i.jsx("h3",{className:"font-semibold text-gray-900 group-hover:text-blue-600 transition-colors mb-1",children:e.name}),i.jsx("p",{className:"text-sm text-gray-500 line-clamp-2",children:e.description}),t!==void 0&&i.jsxs("p",{className:"text-xs text-gray-400 mt-2",children:[t," tool",t!==1?"s":""]})]})}function Ps({post:e}){return i.jsxs("article",{className:"group bg-white border border-gray-200 rounded-xl p-5 hover:border-blue-300 hover:shadow-md transition-all duration-200",children:[i.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[i.jsx("span",{className:"px-2 py-0.5 text-xs bg-blue-50 text-blue-700 rounded-full capitalize font-medium",children:e.category.replace("ai-","AI ").replace(/-/g," ")}),i.jsxs("span",{className:"flex items-center gap-1 text-xs text-gray-400",children:[i.jsx(Dl,{className:"w-3 h-3"}),e.readingTime," min read"]})]}),i.jsx(j,{to:`/blog/${e.slug}`,children:i.jsx("h3",{className:"font-semibold text-gray-900 group-hover:text-blue-600 transition-colors mb-2 line-clamp-2",children:e.title})}),i.jsx("p",{className:"text-sm text-gray-500 line-clamp-2 mb-4",children:e.excerpt}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("span",{className:"text-xs text-gray-400",children:new Date(e.publishedAt).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}),i.jsxs(j,{to:`/blog/${e.slug}`,className:"flex items-center gap-1 text-sm text-blue-600 hover:gap-2 transition-all font-medium",children:["Read ",i.jsx(Me,{className:"w-4 h-4"})]})]})]})}function Yr({variant:e="section"}){const[t,a]=v.useState(""),[n,r]=v.useState(!1),o=s=>{s.preventDefault(),t&&r(!0)};return e==="inline"?i.jsxs("div",{className:"bg-blue-50 border border-blue-100 rounded-xl p-5",children:[i.jsx("h3",{className:"font-semibold text-gray-900 mb-1",children:"Stay updated"}),i.jsx("p",{className:"text-sm text-gray-600 mb-3",children:"New tools, comparisons, and reviews in your inbox."}),n?i.jsxs("div",{className:"flex items-center gap-2 text-green-700",children:[i.jsx(O,{className:"w-4 h-4"}),i.jsx("span",{className:"text-sm",children:"Thanks! You'll hear from us soon."})]}):i.jsxs("form",{onSubmit:o,className:"flex gap-2",children:[i.jsx("input",{type:"email",value:t,onChange:s=>a(s.target.value),placeholder:"[email protected]",required:!0,className:"flex-1 px-3 py-2 text-sm border border-gray-300 rounded-lg focus:outline-none focus:border-blue-500"}),i.jsx("button",{type:"submit",className:"px-3 py-2 text-sm font-medium text-white bg-blue-600 rounded-lg hover:bg-blue-700",children:"Subscribe"})]})]}):i.jsxs("section",{className:"bg-gradient-to-br from-blue-600 to-blue-700 rounded-2xl p-8 md:p-12 text-center text-white",children:[i.jsx("div",{className:"w-12 h-12 bg-white/20 rounded-xl flex items-center justify-center mx-auto mb-4",children:i.jsx(_r,{className:"w-6 h-6"})}),i.jsx("h2",{className:"text-2xl md:text-3xl font-bold mb-3",children:"Stay ahead of AI tools"}),i.jsx("p",{className:"text-blue-100 text-base mb-6 max-w-md mx-auto",children:"Get our weekly roundup of new AI tools, in-depth comparisons, and editorial reviews. No spam. Unsubscribe anytime."}),n?i.jsxs("div",{className:"flex items-center justify-center gap-2 bg-white/20 rounded-xl p-4 max-w-sm mx-auto",children:[i.jsx(O,{className:"w-5 h-5"}),i.jsx("span",{className:"font-medium",children:"Thanks! We'll be in touch."})]}):i.jsxs("form",{onSubmit:o,className:"flex flex-col sm:flex-row gap-3 max-w-md mx-auto",children:[i.jsx("input",{type:"email",value:t,onChange:s=>a(s.target.value),placeholder:"Enter your email",required:!0,className:"flex-1 px-4 py-3 text-gray-900 bg-white rounded-xl border-0 focus:outline-none focus:ring-2 focus:ring-blue-300"}),i.jsx("button",{type:"submit",className:"px-6 py-3 font-semibold text-blue-600 bg-white rounded-xl hover:bg-blue-50 transition-colors whitespace-nowrap",children:"Subscribe Free"})]}),i.jsx("p",{className:"text-blue-200 text-xs mt-4",children:"No spam. Unsubscribe at any time."})]})}function xa(e){return null}const Rb=[{id:"emergent",name:"Emergent",slug:"emergent",tagline:"Build full-stack apps from a conversation",shortDe
359scription:"Emergent is an AI-native app builder that lets you create, deploy, and iterate on full-stack web applications through a conversational interface — no prior coding experience required.",fullDescription:"Emergent takes a distinctly conversational approach to software development. Rather than presenting a visual canvas or requiring knowledge of frameworks, it guides users through building functional applications by responding to natural language descriptions of what they want to create. The platform handles everything from database schema design to frontend components and deployment, abstracting away the technical complexity that typically limits app development to professional engineers.",whatItDoes:"Emergent generates and deploys complete web applications from natural language prompts. Users describe the app they want — its features, user flows, data models, and design preferences — and Emergent produces a working application. It supports iteration: users can continue refining and extending the app through conversation, with the AI making targeted code changes rather than regenerating the entire codebase.",bestFor:"Founders, product managers, and non-technical entrepreneurs who need to build and ship web applications without hiring a development team or learning to code.",useCases:["Building MVPs and prototypes for startup ideas","Creating internal tools for small teams","Developing SaaS applications for niche markets","Rapidly validating product ideas before investing in full development","Building portfolio projects without a development background"],features:["Conversational app generation from natural language prompts","Full-stack output including frontend, backend, and database","Iterative refinement through continued conversation","Automatic deployment to live URLs","Support for authentication, payments, and common app patterns"],pros:["Extremely low barrier to entry — no coding knowledge required","Produces genuinely deployable applications, not just prototypes","Fast iteration cycle through conversational refinement"],cons:["Highly complex or custom enterprise applications may require traditional development","Less granular control over architecture compared to coding directly","Output quality depends on the clarity and specificity of your prompts"],pricingSummary:"Emergent offers a free tier for getting started. Paid plans with higher usage limits and priority generation are available — see the official website for current pricing.",pricingModel:"freemium",platform:["web"],audience:["founders","non-technical","marketers","product-managers"],categories:["ai-app-builders","ai-coding","ai-no-code"],tags:["app-builder","no-code","full-stack","deployment","mvp"],officialUrl:"https://emergent.sh",trackingUrl:"https://get.emergent.sh/c0xm9geoavml",monetizationType:"affiliate",monetizationStatus:"active",affiliateAvailable:!0,referralAvailable:!1,partnerProgramUrl:"https://partners.emergent.sh",disclosureNote:"This page may contain affiliate links. If you sign up through our link, we may earn a commission at no extra cost to you.",claimListingUrl:"/claim-listing?tool=emergent",alternatives:["lovable","bolt","replit"],relatedTools:["cursor","github-copilot","framer"],comparisonSlugs:["emergent-vs-lovable","emergent-vs-bolt"],faq:[{question:"Do I need coding experience to use Emergent?",answer:"No. Emergent is designed specifically for users without coding experience. You describe what you want in plain English, and Emergent handles the technical implementation. Some familiarity with app concepts (user authentication, databases, etc.) helps you describe your vision more precisely, but it is not required."},{question:"What kind of apps can Emergent build?",answer:"Emergent can build a wide range of web applications including SaaS tools, marketplaces, internal dashboards, directory sites, booking platforms, and more. The platform handles common patterns like user authentication, data storage, and API integrations."},{question:"Is Emergent suitable for production use?",answer:"Emergent is designed to produce production-ready applications, not just demos. Many users have launched real products using Emergent. That said, for high-scale, enterprise-grade applications with very specific performance or compliance requirements, custom development may be necessary alongside or instead of Emergent."},{question:"How does Emergent compare to Lovable and Bolt?",answer:"Emergent, Lovable, and Bolt all target the AI app builder market. Emergent emphasizes a conversational, guided experience. Lovable focuses on visual iteration and design feedback. Bolt integrates with the StackBlitz environment. Each has different strengths depending on your workflow and project type."}],editorialVerdict:"Emergent is one of the most compelling AI app builders for non-technical founders and builders. Its conversational interface reduces the intimidation factor significantly, and its ability to produce genuinely deployable applications — rather than just demo-quality prototypes — sets it apart. Worth evaluating if you are looking to validate or launch a web app idea without a development team.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-15",logoLetter:"E",logoColor:"bg-blue-600",featured:!0,trending:!0,editorPick:!0,rating:4.5},{id:"lovable",name:"Lovable",slug:"lovable",tagline:"Ship beautiful apps from ideas, fast",shortDe
359scription:"Lovable is an AI-powered app development platform that lets users build, iterate, and deploy web applications through natural language — with a strong focus on visual quality and UI.",fullDescription:"Lovable differentiates itself in the AI app builder market through its emphasis on visual output quality and design polish. Users describe what they want to build, and Lovable generates React applications with modern, clean UIs. The platform is particularly popular with founders and designers who want apps that look professionally built, not just functionally correct.",whatItDoes:"Lovable generates functional React web applications from natural language prompts, with visual editing capabilities that let users refine the design and functionality iteratively. It handles frontend development, integrates with Supabase for backend functionality, and provides deployment capabilities for live apps.",bestFor:"Designers, founders, and product teams who want to move from idea to working web app quickly while maintaining high visual standards.",useCases:["Building startup MVPs with design-quality UIs","Creating web applications for early customer validation","Rapid prototyping for product teams","Building SaaS tools without a frontend development team","Generating portfolio-worthy side projects quickly"],features:["Natural language to React application generation","Visual editing and live preview","Supabase backend integration for auth and data","GitHub integration for code ownership","One-click deployment"],pros:["High visual quality output — apps look professionally designed","Strong React and modern frontend stack","Code is exportable, so you own and can extend your project"],cons:["More complex backend requirements may need additional setup","Prompt quality significantly affects output consistency","Learning curve for users unfamiliar with web app concepts"],pricingSummary:"Lovable offers a free tier with limited credits. Paid plans unlock more generation credits and features. See the official site for current pricing details.",pricingModel:"freemium",platform:["web"],audience:["founders","designers","product-managers","developers"],categories:["ai-app-builders","ai-coding","ai-no-code"],tags:["app-builder","react","ui","mvp","saas"],officialUrl:"https://lovable.dev",trackingUrl:null,monetizationType:"affiliate",monetizationStatus:"pending",affiliateAvailable:!0,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=lovable",alternatives:["emergent","bolt","replit"],relatedTools:["cursor","github-copilot","framer"],comparisonSlugs:["emergent-vs-lovable","lovable-vs-bolt"],faq:[{question:"What framework does Lovable use?",answer:"Lovable generates React applications using modern tooling including Vite, TypeScript, and Tailwind CSS. The output is a real codebase that you can export and continue developing with standard tools."},{question:"Can Lovable handle databases and auth?",answer:"Yes. Lovable integrates with Supabase for database storage and user authentication. You can set up full user-authenticated apps with persistent data through Lovable's interface."},{question:"Is Lovable better than Bolt?",answer:"Lovable and Bolt target similar use cases but with different strengths. Lovable tends to produce higher visual quality and focuses on React with Supabase. Bolt is built on StackBlitz and may appeal more to users comfortable with a more code-like environment. Trying both is the best way to find your preference."},{question:"Can I export my Lovable project?",answer:"Yes. Lovable allows GitHub integration so you can export and own your code, continuing development outside the platform if needed."}],editorialVerdict:"Lovable is a strong AI app builder with a clear focus on design quality. If you care about how your app looks as much as what it does, Lovable's polished output is a key differentiator. It is a solid choice for founders building their first SaaS or product teams prototyping quickly.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-20",logoLetter:"L",logoColor:"bg-rose-500",featured:!0,trending:!0,editorPick:!1,rating:4.4},{id:"bolt",name:"Bolt",slug:"bolt",tagline:"Full-stack web apps from prompt to production",shortDe
359scription:"Bolt by StackBlitz is an AI web development environment that generates, runs, and deploys full-stack applications directly in your browser from natural language descriptions.",fullDescription:"Bolt combines AI code generation with StackBlitz's browser-based development environment to create a uniquely powerful platform for rapid web application development. Unlike tools that only generate code, Bolt runs the generated application in real time within the browser, so users can see and interact with their app as it is being built. This live environment makes debugging and iteration significantly faster.",whatItDoes:"Bolt accepts natural language prompts describing a web application and generates a complete, runnable application directly in the browser. The platform can install npm packages, run commands, and modify the filesystem — all within a WebContainers-based environment. Apps can be deployed to live URLs with minimal configuration.",bestFor:"Developers and technically-oriented non-developers who want a fast, interactive development environment with real-time code execution.",useCases:["Rapid prototyping of web applications","Building hackathon projects quickly","Creating full-stack demos for investors or clients","Learning web development with AI assistance","Generating boilerplate for new projects"],features:["Browser-based WebContainers environment with real-time execution","Natural language to full-stack application generation","NPM package installation and command execution in browser","Live preview and interactive debugging","One-click deployment to Netlify and other platforms"],pros:["Real-time code execution in browser — no local setup required","Strong full-stack capabilities including Node.js backend","Good error handling and debugging assistance"],cons:["Browser-based environment has some performance and resource limitations","Complex state management or large applications can hit limits","Less visual design focus compared to Lovable"],pricingSummary:"Bolt offers a free tier with token-based usage. Paid plans provide more tokens and features. Check the official site for current pricing.",pricingModel:"freemium",platform:["web"],audience:["developers","founders","students"],categories:["ai-app-builders","ai-coding"],tags:["app-builder","full-stack","browser-ide","webcontainers"],officialUrl:"https://bolt.new",trackingUrl:null,monetizationType:"referral",monetizationStatus:"active",affiliateAvailable:!1,referralAvailable:!0,partnerProgramUrl:null,disclosureNote:"This page may contain referral links.",claimListingUrl:"/claim-listing?tool=bolt",alternatives:["emergent","lovable","replit"],relatedTools:["cursor","replit","github-copilot"],comparisonSlugs:["lovable-vs-bolt","bolt-vs-replit"],faq:[{question:"What makes Bolt different from other AI app builders?",answer:"Bolt's key differentiator is its browser-based WebContainers environment that runs actual Node.js code in the browser. This means the generated application runs in real time during creation, making it feel more like a real development environment than a code generator."},{question:"Does Bolt require coding knowledge?",answer:"Bolt is accessible to non-developers for simple applications, but its real-time coding environment and feedback require more technical understanding than more abstracted tools like Emergent or Durable. Users with some programming familiarity will get more from Bolt."},{question:"How does Bolt compare to Replit?",answer:"Both Bolt and Replit are browser-based development environments with AI capabilities. Bolt focuses specifically on the AI-first, prompt-to-application workflow, while Replit has a broader mission as a full online IDE with education, collaboration, and deployment features."},{question:"Can Bolt build backend applications?",answer:"Yes. Because Bolt runs Node.js in the browser via WebContainers, it can generate and run full-stack applications including Express backends, API routes, and server-side logic — all without requiring a local development environment."}],editorialVerdict:"Bolt is an impressive technical achievement — the ability to run full-stack Node.js applications in the browser is genuinely useful. It occupies a useful middle ground between pure no-code app generators and traditional IDEs. Best suited for users who appreciate seeing their application run live during development.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-18",logoLetter:"B",logoColor:"bg-yellow-500",featured:!0,trending:!0,editorPick:!1,rating:4.3},{id:"replit",name:"Replit",slug:"replit",tagline:"Code, build, and deploy in your browser with AI",shortDe
359scription:"Replit is a browser-based development platform with powerful AI coding features that lets users write, run, and deploy code in over 50 languages without any local setup.",fullDescription:"Replit has evolved from an online coding environment popular with students into a full-featured AI-powered development platform used by professional developers, educators, and builders worldwide. Its Replit AI features provide code generation, explanation, and debugging assistance, while the platform handles hosting, collaboration, and deployment. The introduction of Replit Agent, which can build applications autonomously from prompts, extends its appeal to non-technical users.",whatItDoes:"Replit provides a complete online development environment with built-in AI assistance. Replit Agent can generate full applications from natural language prompts. Traditional coding in the Replit IDE benefits from AI autocomplete, code explanation, and debugging help. All projects are hosted and accessible via shareable URLs.",bestFor:"Developers who want a no-setup coding environment, students learning to code, and teams who need collaborative development with AI assistance.",useCases:["Learning programming with AI-guided assistance","Building and deploying side projects without local setup","Collaborative software development across teams","Rapid prototyping using Replit Agent","Teaching programming in education settings"],features:["Browser-based IDE supporting 50+ programming languages","Replit Agent for autonomous application generation","Built-in hosting and deployment for all projects","Real-time multiplayer collaboration","AI code completion, explanation, and debugging"],pros:["Zero local setup — fully functional development environment in browser","Broad language support and strong community","Well-established platform with strong education and community ecosystem"],cons:["Free tier has performance limitations for larger projects","Agent capabilities are still maturing compared to specialized AI builders","Some developers prefer the control of a local IDE"],pricingSummary:"Replit offers a free tier with limitations. Replit Core (paid) unlocks more compute, private Repls, and expanded AI features. Pricing available on the official site.",pricingModel:"freemium",platform:["web"],audience:["developers","students","educators","founders"],categories:["ai-coding","ai-app-builders","ai-no-code"],tags:["ide","browser-coding","education","deployment","collaboration"],officialUrl:"https://replit.com",trackingUrl:null,monetizationType:"referral",monetizationStatus:"active",affiliateAvailable:!1,referralAvailable:!0,partnerProgramUrl:null,disclosureNote:"This page may contain referral links.",claimListingUrl:"/claim-listing?tool=replit",alternatives:["bolt","cursor","github-copilot"],relatedTools:["bolt","emergent","cursor"],comparisonSlugs:["bolt-vs-replit","cursor-vs-github-copilot"],faq:[{question:"Is Replit free to use?",answer:"Replit has a free tier that gives access to most features with some resource limitations. The paid Replit Core plan provides more compute power, private projects, and expanded AI capabilities. Many users find the free tier sufficient for personal projects and learning."},{question:"What is Replit Agent?",answer:"Replit Agent is an AI feature that can build web applications from natural language prompts, similar to tools like Bolt and Lovable. It handles code generation, package installation, and configuration to produce a working application."},{question:"Is Replit good for learning to code?",answer:"Replit is excellent for beginners. Its browser-based environment eliminates setup friction, it supports interactive tutorials and community projects, and its AI features can explain code and help debug errors — making it a strong choice for anyone learning programming."},{question:"Can Replit host production applications?",answer:"Replit Deployments allow you to host production applications with custom domains, persistent storage, and managed infrastructure. Many developers use Replit for deployed projects. Performance and scaling for high-traffic applications may require evaluation against your specific needs."}],editorialVerdict:"Replit is a mature, well-rounded platform that serves developers, students, and AI builders alike. Its community, language breadth, and strong execution environment give it an edge for users who want more than just an AI generator. For pure AI app building, more specialized tools may produce faster results, but Replit's overall ecosystem is compelling.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-10",logoLetter:"R",logoColor:"bg-orange-500",featured:!1,trending:!0,editorPick:!1,rating:4.3},{id:"framer",name:"Framer",slug:"framer",tagline:"Design and publish websites without writing code",shortDe
359scription:"Framer is a design-forward website builder that combines visual design tools with AI-powered content and layout generation to help designers and founders create polished websites quickly.",fullDescription:"Framer has established itself as the tool of choice for designers who want the design power of a professional tool with the simplicity of a website builder. Its AI features accelerate the process of creating site content, generating imagery, and producing initial layouts — while the core drag-and-drop canvas gives designers full creative control. The result is a platform that sits comfortably between Figma for design exploration and Webflow for production websites.",whatItDoes:"Framer provides a visual website design canvas with React-based component rendering, AI text generation, AI-assisted layout creation, and built-in publishing infrastructure. Users design directly in a live canvas and publish to Framer's hosting with a single click. AI features can generate copy, create images, and suggest layout variations.",bestFor:"Designers, design-conscious founders, and marketing teams who want full creative control with accelerated production through AI.",useCases:["Building portfolio and personal websites","Creating marketing sites for startups and SaaS products","Designing landing pages and campaign sites","Prototyping interactive website experiences","Building content-marketing driven websites"],features:["Visual drag-and-drop design canvas with React components","AI text and image generation built into the editor","CMS for content management and blog publishing","Responsive design with breakpoint controls","Built-in hosting with custom domain support"],pros:["Design quality output is among the best of any website builder","Strong for designers transitioning from Figma","Excellent animation and interaction capabilities"],cons:["Steeper learning curve than no-code-first builders like Durable","Less suited for complex e-commerce or database-driven applications","Can require custom code for advanced functionality"],pricingSummary:"Framer offers a free plan for personal projects. Paid plans start for custom domains and remove Framer branding. Team and site-specific plans available. See official site for current pricing.",pricingModel:"freemium",platform:["web"],audience:["designers","founders","marketers"],categories:["ai-website-builders","ai-design"],tags:["website-builder","design","landing-page","portfolio","react"],officialUrl:"https://framer.com",trackingUrl:null,monetizationType:"affiliate",monetizationStatus:"pending",affiliateAvailable:!0,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=framer",alternatives:["webflow","durable","10web"],relatedTools:["webflow","lovable","gamma"],comparisonSlugs:["webflow-vs-framer","framer-vs-durable"],faq:[{question:"Is Framer better than Webflow?",answer:"Framer and Webflow serve different strengths. Framer excels for designers who want high aesthetic quality, animations, and a Figma-like workflow. Webflow is stronger for complex CMS-driven sites, enterprise features, and developers who want fine-grained control. Many designers prefer Framer for marketing sites; Webflow for more structured content sites."},{question:"Do I need design experience to use Framer?",answer:"Framer is more design-oriented than typical website builders. Users with design experience will get the most from its canvas and component system. That said, Framer's templates and AI features make it accessible to motivated beginners who are willing to learn."},{question:"Can Framer handle a blog or CMS?",answer:"Yes. Framer has a built-in CMS for managing structured content including blog posts, case studies, and dynamic pages. It is not as fully featured as a dedicated headless CMS but is sufficient for most marketing site needs."},{question:"Is Framer hosted?",answer:"Yes. Framer is a fully hosted platform — it manages all hosting infrastructure. Custom domains are supported on paid plans. This is both a convenience and a limitation for users who want more infrastru
359cture control."}],editorialVerdict:"Framer is the top choice for designers who want their website to look exactly as intended without writing code. Its combination of design power, AI assistance, and easy publishing makes it a natural evolution from Figma for anyone building marketing sites and portfolios. For design-first teams, it is genuinely excellent.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-12",logoLetter:"F",logoColor:"bg-blue-500",featured:!0,trending:!1,editorPick:!0,rating:4.5},{id:"webflow",name:"Webflow",slug:"webflow",tagline:"Build powerful websites without code",shortDescription:"Webflow is a professional website builder and CMS that gives designers and developers precise visual control over HTML, CSS, and JavaScript without writing code.",fullDescription:"Webflow occupies a unique space in the website building market: it provides near-developer-level control over web design and functionality through a visual interface, making it the platform of choice for professional designers and agencies who need custom websites without the overhead of full custom development. AI features in Webflow now include copy generation, layout suggestions, and SEO optimization assistance.",whatItDoes:"Webflow enables visual website design by letting users directly manipulate the underlying HTML and CSS structure through a visual interface. Its CMS allows content modeling for complex content-driven sites. E-commerce capabilities support online stores. AI features assist with content creation and optimization.",bestFor:"Professional designers, web agencies, and businesses that need full creative control over complex, content-rich websites.",useCases:["Agency websites and client projects","SaaS marketing sites with complex layouts","Content-driven sites with custom CMS models","E-commerce stores with custom design requirements","Portfolio sites requiring precise design execution"],features:["Visual CSS and HTML editor for precise design control","Powerful CMS for structured content and dynamic pages","E-commerce functionality with custom checkout","Advanced interactions and animations","Hosting with global CDN and SSL"],pros:["Unmatched design control among no-code builders","Strong CMS for content-rich sites","Active ecosystem of templates, resources, and community"],cons:["Steep learning curve — takes time to master","More expensive than simpler website builders","Can be over-engineered for simple brochure sites"],pricingSummary:"Webflow offers a free tier for staging. Paid plans start for publishing to custom domains. CMS plans for content-heavy sites and e-commerce plans are available. Enterprise pricing is custom.",pricingModel:"freemium",platform:["web"],audience:["designers","developers","agencies"],categories:["ai-website-builders","ai-design"],tags:["website-builder","cms","e-commerce","professional","design"],officialUrl:"https://webflow.com",trackingUrl:null,monetizationType:"affiliate",monetizationStatus:"pending",affiliateAvailable:!0,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=webflow",alternatives:["framer","durable","10web"],relatedTools:["framer","durable","10web"],comparisonSlugs:["webflow-vs-framer","durable-vs-10web"],faq:[{question:"Is Webflow good for SEO?",answer:"Webflow is among the best website builders for SEO. It generates clean semantic HTML, provides full control over meta tags and canonical URLs, produces fast-loading pages, and enables proper heading hierarchy — all critical for search optimization."},{question:"Who is Webflow for?",answer:"Webflow is best suited for professional designers, agencies, and technical marketers who need full design control and are willing to invest time learning the platform. It is not the right tool for users who want the fastest possible setup without design expertise."},{question:"How long does it take to learn Webflow?",answer:"Webflow has a significant learning curve. Most users spend several weeks learning the fundamentals to build simple sites effectively. Mastering the CMS, interactions, and e-commerce features takes months. Webflow University (free) is an excellent resource for getting up to speed."}
359,{question:"Does Webflow support custom code?",answer:"Yes. Webflow supports custom HTML, CSS, and JavaScript embeds, giving developers the ability to extend functionality beyond what the visual editor supports. This makes it genuinely powerful for developers working on complex requirements."}],editorialVerdict:"Webflow remains the gold standard for design-focused no-code website development. It requires investment to learn, but for designers and agencies who commit to it, the results are consistently professional and the CMS capabilities are genuinely powerful. Worth the learning curve for those who build websites seriously.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-08",logoLetter:"W",logoColor:"bg-blue-600",featured:!0,trending:!1,editorPick:!0,rating:4.6},{id:"durable",name:"Durable",slug:"durable",tagline:"The fastest AI website builder for small businesses",shortDescription:"Durable generates a complete business website in seconds from just a business type and location — making it the fastest and most accessible website builder for small business owners.",fullDescription:"Durable is purpose-built for small business owners who need a professional web presence quickly without design or technical skills. It takes a radically simple approach: provide your business type and location, and Durable generates a complete website with copy, imagery, and design in under 30 seconds. AI tools for generating new content, creating blog posts, and optimizing for search are built directly into the platform.",whatItDoes:"Durable generates complete business websites from minimal input using AI. Users provide their business category and location, and Durable produces a site complete with AI-written copy, AI-generated images, and a professional layout. The built-in AI can then help update content, generate blog posts, and manage basic business information.",bestFor:"Small business owners, local businesses, and service providers who need a professional website quickly with minimal setup effort.",useCases:["Local business websites for restaurants, salons, contractors, etc.","Professional service websites for consultants and freelancers","Rapid website creation for newly launched businesses","Replacing outdated websites without a web designer","Getting an online presence before investing in custom development"],features:["30-second AI website generation from business type","AI copywriting and content updating","AI image generation for site visuals","Built-in contact forms and lead capture","Simple SEO and Google Business integration"],pros:["Fastest setup of any website builder — truly launch in minutes","No design or writing skills required","Focused specifically on small business needs"],cons:["Limited design customization compared to Framer or Webflow","Less suitable for complex or content-heavy sites","Template-driven output may feel less unique for larger brands"],pricingSummary:"Durable offers a free trial. Paid plans provide custom domains, unlimited AI generations, and additional business features. Check the official site for current pricing.",pricingModel:"freemium",platform:["web"],audience:["small-business","founders","non-technical"],categories:["ai-website-builders"],tags:["website-builder","small-business","quick-setup","local-business"],officialUrl:"https://durable.co",trackingUrl:null,monetizationType:"affiliate",monetizationStatus:"pending",affiliateAvailable:!0,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=durable",alternatives:["10web","webflow","framer"],relatedTools:["10web","webflow","framer"],comparisonSlugs:["durable-vs-10web","webflow-vs-framer"],faq:[{question:"How fast can Durable build a website?",answer:"Durable can generate a complete business website in under 30 seconds from a business type and location input. This makes it one of the fastest website creation experiences available — though customizing the generated content takes additional time."},{question:"Is Durable suitable for e-commerce?",answer:"Durable is primarily designed for service-based businesses and portfolios rather than e-commerce. For online stores with product catalogs and checkout functionality, platforms like Shopify, Wix, or Webflow are better suited."},{question:"Can I use my own domain with Durable?",answer:"Yes. Custom domains are supported on Durable's paid plans. Free plans use a Durable subdomain."},{question:"How does Durable compare to Wix?",answer:"Durable is simpler and faster to set up than Wix, with AI-first content generation. Wix offers more design flexibility, a larger app marketplace, and more advanced features. Durable suits businesses that need speed; Wix suits those who want more control."}],editorialVerdict:"Durable delivers on its core promise: get a professional business website live extremely quickly. For small business owners who have been putting off getting online, Durable removes virtually every barrier. Design options are limited compared to more powerful builders, but for its target audience, the speed and simplicity are genuinely valuable.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-05",logoLetter:"D",logoColor:"bg-teal-500",featured:!1,trending:!0,editorPick:!1,rating:4.1}
359,{id:"10web",name:"10Web",slug:"10web",tagline:"AI-powered WordPress website building and hosting",shortDescription:"10Web is an AI-powered website builder and WordPress hosting platform that generates complete WordPress websites from a description and provides automated site management.",fullDescription:"10Web brings AI-assisted website creation to the WordPress ecosystem — the platform powering over 40% of the web. Users can generate a complete WordPress site from a business description, with AI-written content and design, or use 10Web's builder with AI assistance to create custom sites. The platform also provides managed WordPress hosting with performance optimization, security, and automated maintenance.",whatItDoes:"10Web generates complete WordPress websites using AI, provides a visual page builder for customization, handles WordPress hosting with performance optimization, and automates common site management tasks. Its AI features assist with content creation, site migration, and ongoing optimization.",bestFor:"Businesses and agencies that need WordPress-based websites with AI-assisted creation and managed hosting, particularly those already invested in the WordPress ecosystem.",useCases:["Building WordPress business sites with AI assistance","Migrating existing websites to a faster WordPress host","Agency workflows for client website creation","E-commerce sites on WooCommerce with AI-built storefronts","Businesses requiring WordPress-specific plugins and integrations"],features:["AI website generation for WordPress","Visual page builder with AI assistant","Managed WordPress hosting with performance optimization","Automated site migration tool","Security monitoring and automatic backups"],pros:["Leverages the full WordPress plugin ecosystem","Comb
359ines AI generation with managed hosting in one platform","Good option for users already familiar with WordPress"],cons:["Complexity of WordPress still shows through in some workflows","More expensive than simpler all-in-one builders","Less design-forward than Framer or Webflow"],pricingSummary:"Pricing varies by hosting tier and number of websites. Plans start for single-site hosting and scale for agencies managing multiple sites. See the official site for current pricing.",pricingModel:"paid",platform:["web"],audience:["agencies","businesses","developers"],categories:["ai-website-builders"],tags:["wordpress","website-builder","hosting","cms","e-commerce"],officialUrl:"https://10web.io",trackingUrl:null,monetizationType:"affiliate",monetizationStatus:"pending",affiliateAvailable:!0,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=10web",alternatives:["durable","webflow","framer"],relatedTools:["durable","webflow","framer"],comparisonSlugs:["durable-vs-10web"],faq:[{question:"Is 10Web better than regular WordPress hosting?",answer:"10Web provides managed WordPress hosting with performance optimization (PageSpeed scores), security features, and AI-assisted site building that regular hosts don't offer. For users who want to build with WordPress and want good performance without manual optimization, 10Web offers significant advantages."},{question:"Can 10Web migrate my existing website?",answer:"Yes. 10Web offers an automated website migration tool that can transfer existing websites to 10Web's hosting infrastructure. This is useful for businesses moving from other hosts or builders to WordPress + 10Web."},{question:"Does 10Web support WooCommerce?",answer:"Yes. 10Web supports WooCommerce for e-commerce functionality, with AI assistance for setting up product pages and store layouts."},{question:"How does the 10Web AI website builder work?",answer:"10Web AI asks for your business description and generates a complete WordPress website with AI-written content, images, and a professional layout. You then customize the output using their visual builder."}],editorialVerdict:"10Web is the strongest option for businesses that specifically need WordPress with AI assistance and managed hosting. It is not the flashiest or most design-forward builder, but it delivers genuinely good WordPress sites with hosting performance that exceeds typical shared hosting. Best for WordPress-committed users.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-06",logoLetter:"10",logoColor:"bg-blue-500",featured:!1,trending:!1,editorPick:!1,rating:4.1},{id:"cursor",name:"Cursor",slug:"cursor",tagline:"The AI-first code editor for professional developers",shortDescription:"Cursor is an AI-native code editor built on VS Code that provides deep codebase understanding, multi-file editing, and intelligent code generation for professional development workflows.",fullDescription:"Cursor has quickly become one of the most popular tools among professional developers seeking to integrate AI deeply into their workflow. Built as a fork of VS Code, it feels immediately familiar while adding powerful AI capabilities including codebase-aware chat, multi-file edits from natural language commands, and automatic code generation that understands full project context rather than just the current file.",whatItDoes:"Cursor provides AI-assisted code editing within a full VS Code-compatible development environment. Its AI capabilities include inline code suggestions, a chat interface that can understand and modify your entire codebase, automatic multi-file edits from natural language instructions, and intelligent code generation with access to documentation and web search.",bestFor:"Professional developers who want AI deeply integrated into their primary coding workflow without switching to a web-based environment.",useCases:["Daily coding work with AI acceleration for professional developers","Refactoring large codebases with AI assistance","Onboarding to unfamiliar codebases with AI explanation","Implementing features across multiple files with single instructions","Code review and debugging with AI context awareness"],features:["AI chat with full codebase context and multi-file awareness","AI-powered inline code completion and generation","Natural language multi-file editing commands","VS Code compatibility — supports existing extensions","Web search integration for up-to-date API documentation"],pros:["Deep codebase context makes suggestions far more relevant than generic completers","Familiar VS Code interface minimizes learning curve","Strong for complex, multi-file refactoring tasks"],cons:["Monthly subscription cost on top of existing development tooling","AI responses can occasionally be overconfident or incorrect","Some features require sharing code with external AI services"],pricingSummary:"Cursor offers a free tier with limited AI requests. Pro plan at approximately $20/month for professional developers. Business plans available for teams. See official site for current pricing.",pricingModel:"freemium",platform:["desktop","web"],audience:["developers"],categories:["ai-coding"],tags:["ide","code-editor","developer-tools","vs-code","ai-coding"],officialUrl:"https://cursor.sh",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=cursor",alternatives:["github-copilot","replit"],relatedTools:["github-copilot","bolt","replit"],comparisonSlugs:["curs
359or-vs-github-copilot"],faq:[{question:"Is Cursor better than GitHub Copilot?",answer:"Cursor and GitHub Copilot serve similar needs but with different approaches. Cursor provides a full IDE with deep codebase context and chat capabilities. GitHub Copilot is primarily a plugin for your existing IDE with strong inline completion. Cursor is generally preferred for its superior multi-file context and chat; Copilot wins for users who prefer to stay in their existing editor."},{question:"Is Cursor based on VS Code?",answer:"Yes. Cursor is built on VS Code (a fork), so it supports VS Code themes, extensions, and keybindings. Users comfortable with VS Code can switch to Cursor without a learning curve."},{question:"Is Cursor suitable for all programming languages?",answer:"Cursor supports all programming languages that VS Code supports, which is virtually every mainstream language. AI capabilities work best for popular languages where more training data exists, such as Python, JavaScript, TypeScript, and Rust."},{question:"Does Cursor require sending my code to external servers?",answer:"Cursor's AI features send code context to AI model providers (including OpenAI and Anthropic). Users with sensitive code should review Cursor's privacy policy and consider their enterprise privacy options. Cursor offers privacy mode for users who need additional protection."}],editorialVerdict:"Cursor is the most compelling AI code editor for professional developers who want AI deeply integrated into complex, real-world codebases. Its multi-file context awareness and codebase chat make it genuinely more useful than standalone AI chat for coding tasks. Highly recommended for developers serious about AI-assisted coding.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-22",logoLetter:"C",logoColor:"bg-gray-700",featured:!0,trending:!0,editorPick:!0,rating:4.7},{id:"github-copilot",name:"GitHub Copilot",slug:"github-copilot",tagline:"AI pair programmer for your existing development workflow",shortDescription:"GitHub Copilot is an AI coding assistant developed by GitHub and OpenAI that provides real-time code suggestions and completions in your preferred IDE.",fullDescription:"GitHub Copilot pioneered the AI coding assistant category when it launched in 2021 and remains one of the most widely adopted developer tools. It integrates with virtually every major IDE including VS Code, JetBrains, Neovim, and others, providing AI-powered inline suggestions trained on billions of lines of public code. Recent versions have expanded from code completion to include multi-file editing, chat interfaces, and workspace-level context.",whatItDoes:"GitHub Copilot provides AI-powered code suggestions as you type, a chat interface for asking coding questions, and the ability to generate functions, tests, and documentation from natural language comments. It integrates with GitHub repositories for pull request summaries, code review assistance, and vulnerability detection.",bestFor:"Professional developers who want AI coding assistance integrated into their existing IDE without switching tools.",useCases:["Inline code completion for everyday development tasks","Generating boilerplate code and common patterns","Writing unit tests with AI assistance","Code explanation and documentation generation","Pull request summaries and code review assistance"],features:["Real-time AI code suggestions in any supported IDE","Natural language chat for coding questions","GitHub integration for PR summaries and security scanning","Support for VS Code, JetBrains, Neovim, and more","Multi-file editing via Copilot Edits"],pros:["Works in virtually any major IDE without switching tools","Strongest IDE ecosystem support of any AI coding assistant","Deep GitHub integration for repository-aware features"],cons:["Less strong codebase context than Cursor for large projects","Suggestions are sometimes overly generic or incorrect","Monthly cost may not be justified for light users"],pricingSummary:"GitHub Copilot Individual starts at $10/month or $100/year. Business plan at $19/user/month. Enterprise plan with additional features at $39/user/month. Free tier available with limited features.",pricingModel:"freemium",platform:["desktop","web"],audience:["developers"],categories:["ai-coding"],tags:["ide-plugin","code-completion","developer-tools","github"],officialUrl:"https://github.com/features/copilot",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=github-copilot",alternatives:["curs
359or","replit"],relatedTools:["cursor","bolt","replit"],comparisonSlugs:["cursor-vs-github-copilot"],faq:[{question:"Does GitHub Copilot work in JetBrains IDEs?",answer:"Yes. GitHub Copilot has plugins for IntelliJ IDEA, PyCharm, WebStorm, GoLand, and other JetBrains IDEs, making it versatile across different development environments."},{question:"Is GitHub Copilot code safe to use commercially?",answer:"GitHub Copilot is licensed for commercial use on paid plans. GitHub offers a Copilot for Business plan with additional IP indemnification. Users should review GitHub's terms of service and their own organization's policies regarding AI-generated code."},{question:"How does GitHub Copilot compare to ChatGPT for coding?",answer:"GitHub Copilot is optimized for inline coding workflows — suggestions appear as you type in your IDE. ChatGPT is better for conversational exploration, explaining concepts, and working through problems iteratively. Professional developers often use both."},{question:"Is there a free version of GitHub Copilot?",answer:"GitHub offers a free tier of Copilot with limited monthly completions and chat interactions for individual developers. Students and contributors to verified open source projects may qualify for free access."}],editorialVerdict:"GitHub Copilot remains the most widely-used AI coding tool for good reason — it works in any IDE, has strong training data, and integrates with the GitHub ecosystem. For developers already using GitHub, it is the obvious first AI coding tool to try. Power users may find Cursor's deeper codebase context more valuable for complex projects.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-14",logoLetter:"G",logoColor:"bg-gray-900",featured:!0,trending:!1,editorPick:!1,rating:4.5}],Fb=[{id:"chatgpt",name:"ChatGPT",slug:"chatgpt",tagline:"The world's most widely used AI assistant",shortDescription:"ChatGPT is OpenAI's flagship AI chatbot — a general-purpose AI assistant capable of writing, coding, analysis, math, research, and much more across virtually every domain.",fullDescription:"ChatGPT launched in November 2022 and quickly became the fastest-growing consumer application in history. Built on OpenAI's GPT models, it can engage in nuanced conversation across virtually any topic, generate and explain code, draft documents, analyze data, create images, and browse the web. ChatGPT Plus subscribers get access to GPT-4 and the full suite of capabilities, while the free tier provides access to GPT-3.5 and limited GPT-4.",whatItDoes:"ChatGPT engages in conversational AI interactions for a vast range of tasks: writing and editing, coding assistance, research and analysis, math and reasoning, language translation, brainstorming, and more. Advanced features include image generation (DALL-E), web browsing, Python code execution, and custom GPTs.",bestFor:"Anyone looking for a versatile AI assistant for day-to-day tasks, knowledge work, content creation, and problem solving.",useCases:["Writing and editing documents, emails, and content","Coding help, debugging, and code explanation","Research and information synthesis","Brainstorming and creative ideation","Data analysis using Code Interpreter"],features:["Advanced language understanding and generation across any domain","DALL-E image generation integrated into chat","Web browsing for current information","Code Interpreter for Python execution and data analysis","Custom GPTs for specialized use cases"],pros:["Most capable general-purpose AI assistant available","Enormous ecosystem of integrations and custom GPTs","Accessible and easy to use for complete beginners"],cons:["Can hallucinate — generates confident but incorrect information","Best models require a paid subscription","Context window limitations for very long documents"],pricingSummary:"ChatGPT Free provides access to GPT-4o mini. ChatGPT Plus at $20/month unlocks GPT-4o and advanced features. Team and Enterprise plans available.",pricingModel:"freemium",platform:["web","mobile","api"],audience:["everyone"],categories:["ai-chatbots","ai-writing","ai-research"],tags:["chatbot","llm","gpt-4","general-purpose","openai"],officialUrl:"https://chat.openai.com",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=chatgpt",alternatives:["claude","gemini","perplexity","poe"],relatedTools:["claude","gemini","perplexity"],comparisonSlugs:["chatgpt-vs-claude"],faq:[{question:"Is ChatGPT free to use?",answer:"ChatGPT offers a free tier with access to GPT-4o mini. The paid Plus plan at $20/month unlocks GPT-4o, DALL-E image generation, web browsing, and the Code Interpreter. Most casual users find the free tier sufficient."},{question:"Is ChatGPT the best AI chatbot?",answer:'ChatGPT is the most widely used and arguably the most versatile AI chatbot, but "best" depends on your needs. Claude is often preferred for long documents and nuanced writing. Gemini integrates better with Google services. Perplexity is better for cited research.'},{question:"Can ChatGPT access the internet?",answer:"ChatGPT Plus subscribers can enable web browsing to access current information. The free tier does not include web browsing by default, though ChatGPT's training data has a knowledge cutoff date."},{question:"Is it safe to share private information with ChatGPT?",answer:"OpenAI's default settings may use conversations to improve the model. You can opt out of this in settings. For sensitive business or personal information, review OpenAI's privacy policy and consider using the Enterprise plan with enhanced privacy guarantees."}],editorialVerdict:"ChatGPT is the benchmark AI assistant against which all others are measured. Its capabilities are vast, its improvements continuous, and its ecosystem unmatched. For most users, it is the best starting point for exploring AI tools and remains the most capable all-around option. Every knowledge worker should be comfortable using it.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-04-01",logoLetter:"C",logoColor:"bg-green-600",featured:!0,trending:!1,editorPick:!0,rating:4.8}
359,{id:"claude",name:"Claude",slug:"claude",tagline:"Thoughtful, thorough, and safe AI from Anthropic",shortDescription:"Claude is Anthropic's AI assistant, known for its thoughtful responses, strong writing quality, long context window, and emphasis on safety — a top choice for complex reasoning and long documents.",fullDescription:"Claude is built by Anthropic, an AI safety company founded by former OpenAI researchers. Its design philosophy emphasizes helpfulness, harmlessness, and honesty. Claude is particularly well-regarded for its writing quality, nuanced reasoning, and its ability to handle extremely long documents through its 200K token context window. Claude 3.5 Sonnet and Claude 3 Opus are widely considered to be among the most capable AI models available.",whatItDoes:"Claude engages in sophisticated conversation, writing, coding, analysis, and reasoning tasks. Its large context window is particularly useful for analyzing long documents, books, and codebases. Claude is also known for being direct and honest about uncertainty, and for producing particularly well-structured, readable long-form content.",bestFor:"Writers, researchers, and professionals who need high-quality, nuanced content and document analysis with a focus on accuracy and safety.",useCases:["Analyzing and summarizing long documents and reports","High-quality long-form writing and editing","Complex reasoning and decision analysis","Code review and explanation for large codebases","Research synthesis with careful, nuanced output"],features:["200K token context window for extremely long documents","Strong writing quality and nuanced reasoning","Safety-focused design with reduced hallucination tendency","File upload and document analysis capabilities","API access for developers building applications"],pros:["Best-in-class long document analysis capabilities","High-quality prose and nuanced writing output","More reliable refusals and better uncertainty communication"],cons:["Can be more conservative than desired in some creative contexts","Less broad tool ecosystem than ChatGPT","Image generation not natively included"],pricingSummary:"Claude offers a free tier with usage limits. Claude Pro at $20/month provides higher usage limits and priority access. API pricing available for developers.",pricingModel:"freemium",platform:["web","mobile","api"],audience:["writers","researchers","developers","professionals"],categories:["ai-chatbots","ai-writing","ai-research","ai-coding"],tags:["chatbot","llm","anthropic","writing","long-context"],officialUrl:"https://claude.ai",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=claude",alternatives:["chatgpt","gemini","perplexity"],relatedTools:["chatgpt","gemini","perplexity"],comparisonSlugs:["chatgpt-vs-claude"],faq:[{question:"How is Claude different from ChatGPT?",answer:"Claude and ChatGPT are both highly capable AI assistants, but they have distinct strengths. Claude excels at long document analysis (200K context), writing quality, and nuanced reasoning. ChatGPT has a broader toolset including DALL-E image generation and a larger plugin ecosystem. Many professionals use both."},{question:"What is Claude's context window?",answer:"Claude 3 models support up to 200,000 tokens — roughly 150,000 words — in a single context window. This is significantly larger than many competitors and makes Claude ideal for analyzing entire books, large codebases, or lengthy business documents in a single session."},{question:"Is Claude safe to use for sensitive business content?",answer:"Anthropic offers Claude for Enterprise with enhanced privacy guarantees including data not being used for training. For sensitive business use, the Enterprise plan with appropriate data processing agreements is recommended."},{question:"Which Claude model should I use?",answer:"Claude 3.5 Sonnet offers the best balance of capability and speed for most tasks. Claude 3 Opus is the most powerful for complex analysis but slower. Claude 3 Haiku is the fastest and most economical, suitable for lighter tasks and high-volume API use."}],editorialVerdict:"Claude is our top recommendation for writing-heavy tasks and document analysis. Anthropic's safety-first approach produces an AI that is more honest about its limitations and produces more reliable, thoughtful output. For researchers, writers, and professionals dealing with complex documents, Claude is arguably the best AI assistant available.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-04-01",logoLetter:"C",logoColor:"bg-
359amber-600",featured:!0,trending:!0,editorPick:!0,rating:4.8},{id:"gemini",name:"Gemini",slug:"gemini",tagline:"Google's AI assistant with deep Google ecosystem integration",shortDescription:"Gemini is Google's AI assistant, offering multimodal capabilities, deep integration with Google Workspace, and grounded web search — making it the top choice for Google users.",fullDescription:"Gemini represents Google's most capable AI model family, available through the Gemini web interface and embedded throughout Google's products. Its integration with Google Search, Gmail, Docs, Drive, and other Workspace applications makes it uniquely powerful for users already in the Google ecosystem. Gemini 1.5 Pro offers a massive 1 million token context window and strong multimodal understanding.",whatItDoes:"Gemini assists with research, writing, coding, analysis, and creative tasks. Its Google Search integration allows it to access current information with citations. Gemini Advanced (in Workspace) can analyze files from Google Drive and assist with tasks across Gmail, Docs, Sheets, and Slides.",bestFor:"Google Workspace users who want AI assistance integrated directly into their existing productivity tools.",useCases:["Research with grounded web search and citations","Writing and editing in Google Docs with AI assistance","Analyzing and summarizing emails in Gmail","Data analysis in Google Sheets with AI","Multimodal tasks combining text, images, and video"],features:["Deep Google Workspace integration across Gmail, Docs, Sheets","Grounded web search with citations and current information","1 million token context window in Gemini 1.5 Pro","Multimodal understanding of text, images, audio, and video","Google One AI Premium subscription option"],pros:["Best integration with Google Workspace and Drive","Real-time web access with reliable source citation","Extremely large context window for massive document sets"],cons:["Writing quality sometimes lags behind Claude for nuanced content","Ecosystem advantage mainly benefits Google Workspace users","Less extensive custom app/plugin ecosystem than ChatGPT"],pricingSummary:"Gemini offers a free tier. Gemini Advanced is available with Google One AI Premium at $19.99/month, which also includes Google Drive storage.",pricingModel:"freemium",platform:["web","mobile","api"],audience:["students","professionals","researchers"],categories:["ai-chatbots","ai-research","ai-productivity"],tags:["chatbot","google","workspace","multimodal","research"],officialUrl:"https://gemini.google.com",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=gemini",alternatives:["chatgpt","claude","perplexity"],relatedTools:["chatgpt","claude","perplexity"],comparisonSlugs:["chatgpt-vs-claude"],faq:[{question:"Is Gemini available in Google Workspace?",answer:"Yes. Gemini is integrated across Google Workspace products including Gmail, Docs, Sheets, Slides, and Drive. Workspace users can access AI features within these tools through Google Workspace plans that include Gemini."},{question:"How does Gemini compare to ChatGPT?",answer:"Gemini's main advantage over ChatGPT is its Google ecosystem integration and real-time web access. ChatGPT has a larger custom GPT ecosystem and stronger overall tool breadth. For Google users, Gemini's built-in integration makes it highly practical."},{question:"What is Gemini 1.5 Pro?",answer:"Gemini 1.5 Pro is Google's most capable model, featuring a 1 million token context window — the largest available in a commercial AI product. This allows it to analyze extremely large documents, entire codebase
359s, or hours of video simultaneously."},{question:"Is Gemini good for coding?",answer:"Gemini is capable at coding tasks, particularly for Python and web technologies. It performs well on coding benchmarks and benefits from Google's training on high-quality code datasets. However, for dedicated coding assistance, Cursor and GitHub Copilot offer more workflow-optimized experiences."}],editorialVerdict:"Gemini is the clear choice for heavy Google Workspace users — its integration makes it the most practical AI assistant if you live in Gmail, Docs, and Drive. For users not deeply embedded in Google's ecosystem, ChatGPT and Claude may offer more compelling experiences. Gemini's raw capabilities are world-class and continuing to improve.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-28",logoLetter:"G",logoColor:"bg-blue-500",featured:!0,trending:!1,editorPick:!1,rating:4.6},{id:"perplexity",name:"Perplexity",slug:"perplexity",tagline:"AI-powered search that cites its sources",shortDescription:"Perplexity is an AI-powered answer engine that provides direct, sourced answers to questions by combining LLM reasoning with real-time web search.",fullDescription:"Perplexity has carved out a compelling position in the AI assistant market by focusing on research quality and transparency. Unlike general-purpose chatbots, Perplexity is designed as a research tool: every answer it provides is sourced from current web content, with citations displayed alongside the response. This makes it significantly more reliable for factual research than general chatbots prone to hallucination.",whatItDoes:"Perplexity searches the web in real time, analyzes multiple sources, and produces a concise answer with inline citations. Users can follow up with additional questions to dive deeper. Pro users get access to more powerful models, image generation, and file analysis capabilities.",bestFor:"Researchers, students, and professionals who need reliable, sourced answers to factual questions and want to efficiently gather current information.",useCases:["Research on current events and recent developments","Fact-checking claims with source verification","Market research and competitive intelligence","Academic research with citation tracking","Product research and comparison with current data"],features:["Real-time web search with inline source citations","Follow-up question threading for deep research","Pro Search with expanded source analysis","File upload and document analysis on Pro plan","Access to multiple AI models on Pro plan"],pros:["Significantly more reliable for factual accuracy than chatbots without search","Citation transparency makes it easy to verify information","Fast and focused research workflow"],cons:["Less suitable for creative tasks or long-form writing generation","Source quality depends on what is available on the web","Less flexible for open-ended conversation than ChatGPT or Claude"],pricingSummary:"Perplexity offers a free tier with limited Pro searches. Perplexity Pro at $20/month provides unlimited Pro searches, file uploads, and access to premium models.",pricingModel:"freemium",platform:["web","mobile","api"],audience:["researchers","students","professionals"],categories:["ai-research","ai-chatbots"],tags:["search","research","citations","fact-checking","web-search"],officialUrl:"https://perplexity.ai",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=perplexity",alternatives:["chatgpt","claude","gemini"],relatedTools:["chatgpt","claude","notebooklm"],comparisonSlugs:[],faq:[{question:"Is Perplexity better than Google for research?",answer:"Perplexity excels for specific, targeted research questions where you want a direct answer with citations. Google is better for broad discovery and has a larger index. Many researchers use both — Perplexity for direct answers, Google for broader exploration."},{question:"How accurate is Perplexity?",answer:"Perplexity is generally more reliable than AI chatbots without web search because it grounds answers in current web sources. That said, source qual
359ity varies, and Perplexity can still make errors. Reviewing cited sources for critical information is always advisable."},{question:"Does Perplexity replace traditional search?",answer:"For many users, Perplexity is replacing a significant portion of their Google searches, particularly for research questions. For tasks like finding specific websites, navigational searches, or browsing large numbers of results, traditional search still has advantages."},{question:"What models does Perplexity use?",answer:"Perplexity uses a combination of in-house models and supports access to GPT-4, Claude, and other models on Pro plans. The specific models available may change — see the official Perplexity site for current model availability."}],editorialVerdict:"Perplexity is our top recommendation for anyone doing regular research. Its citation-backed answers are a meaningful improvement in reliability over general-purpose chatbots, and its speed makes it a practical replacement for many Google searches. The Pro plan is well worth the cost for heavy researchers.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-30",logoLetter:"P",logoColor:"bg-teal-600",featured:!0,trending:!0,editorPick:!0,rating:4.7},{id:"poe",name:"Poe",slug:"poe",tagline:"Access every major AI model in one place",shortDescription:"Poe by Quora is a multi-model AI platform that gives users access to ChatGPT, Claude, Gemini, Llama, and other AI models through a single unified interface.",fullDescription:"Poe takes a unique approach to the AI assistant market by aggregating multiple AI models under one subscription. Rather than requiring separate accounts and subscriptions for ChatGPT, Claude, and Gemini, Poe lets users switch between them seamlessly and compare outputs. It also supports custom bot creation, making it popular with developers and AI enthusiasts.",whatItDoes:"Poe provides access to a wide range of AI models including GPT-4, Claude, Gemini, Llama, and others through a single interface. Users can chat with any model, create custom AI bots using prompts, and compare different model outputs for the same query.",bestFor:"Users who want to experiment with multiple AI models, compare outputs, and access several premium AI assistants through a single subscription.",useCases:["Comparing different AI models for the same task","Accessing multiple premium AIs with one subscription","Creating custom AI bots with personalized system prompts","Testing which AI model performs best for specific use cases","Casual multi-model exploration and learning"],features:["Access to 20+ AI models including GPT-4, Claude, and Gemini","Side-by-side model comparison","Custom bot creation with system prompts","Bot sharing and community bot library","Mobile app for iOS and Android"],pros:["Best multi-model access value — one subscription for many models","Easy model switching for comparison","Good mobile experience"],cons:["Usage limits per model may frustrate heavy users","Less integrated features than first-party apps","Custom bot capabilities are limited compared to first-party APIs"],pricingSummary:"Poe offers a free tier with limited usage. Poe Pro provides expanded access to premium models. See the official site for current pricing.",pricingModel:"freemium",platform:["web","mobile"],audience:["everyone","developers","ai-enthusiasts"],categories:["ai-chatbots"],tags:["multi-model","aggregator","chatbot","comparison"],officialUrl:"https://poe.com",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=poe",alternatives:["chatgpt","claude","gemini"],relatedTools:["chatgpt","claude","perplexity"],comparisonSlugs:[],faq:[{question:"Is Poe worth paying for?",answer:"Poe is worth considering if you regularly use multiple premium AI models. A single Poe subscription can be more cost-effective than separate ChatGPT Plus and Claude Pro subscriptions if you want access to both."},{question:"Which models are available on Poe?",answer:"Poe provides access to a wide range of models including GPT-4, GPT-4o, Claude 3, Gemini, Llama, Mixtral, and many others. The exact model list changes regularly as new models are added."},{question:"Can I create my own AI on Poe?",answer:"Yes. Poe allows users to create custom AI bots by writing system prompts that define the bot's behavior and persona. These bots can be shared publicly on the Poe platform."},{question:"Is Poe good for casual users?",answer:"Yes. Poe's free tier gives casual users access to a variety of AI models without commitment. The clean interface makes it easy to try different AIs and find which w
359orks best for your needs."}],editorialVerdict:"Poe is an excellent choice for users who want to explore multiple AI models without managing several separate subscriptions. Its model breadth and comparison capabilities are genuinely useful. For users who primarily use one AI heavily, a first-party subscription may offer better value.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-02-20",logoLetter:"P",logoColor:"bg-purple-600",featured:!1,trending:!1,editorPick:!1,rating:4.2}],zb=[{id:"midjourney",name:"Midjourney",slug:"midjourney",tagline:"Create stunning AI art and imagery",shortDescription:"Midjourney is an AI image generation platform renowned for producing the highest aesthetic quality images — popular with artists, designers, and creative professionals worldwide.",fullDescription:"Midjourney has become synonymous with high-quality AI art generation. Its distinctive aesthetic — particularly strong for painterly, atmospheric, and stylized imagery — has made it the preferred tool for creative professionals, concept artists, and visual content creators. Initially Discord-based, Midjourney has expanded to a web interface making it more accessible.",whatItDoes:"Midjourney generates images from text prompts using its proprietary AI model. Users craft prompts describing subjects, styles, lighting, and composition, and Midjourney produces four variations. Images can be upscaled, varied, and refined through iterative prompting. Advanced users develop sophisticated prompting techniques to achieve precise results.",bestFor:"Artists, designers, and creative professionals who prioritize aesthetic quality and are willing to invest time in prompt crafting.",useCases:["Concept art and visual development for creative projects","Marketing and advertising visual content","Editorial illustration and publication imagery","Architecture and interior design visualization","AI art creation for personal and commercial projects"],features:["High aesthetic quality image generation","Style and aspect ratio controls","Image variation and upscaling","Style tuning and personalization features","Web interface and Discord access"],pros:["Consistently highest aesthetic quality output among AI image generators","Active community with extensive prompting resources","Continuous model improvements through regular updates"],cons:["Pricing requires subscription — no meaningful free tier","Less precise at following exact instructions versus aesthetic quality","Prompt crafting takes time to master for optimal results"],pricingSummary:"Midjourney requires a paid subscription. Basic plan starts at approximately $10/month. Standard and Pro plans offer more generations. See official site for current pricing.",pricingModel:"paid",platform:["web"],audience:["designers","artists","marketers","creators"],categories:["ai-image-generation","ai-design"],tags:["image-generation","ai-art","text-to-image","creative"],officialUrl:"https://midjourney.com",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=midjourney",alternatives:["leonardo-ai","dall-e","stable-diffusion"],relatedTools:["leonardo-ai","runway"],comparisonSlugs:["midjourney-vs-leonardo-ai"],faq:[{question:"Is Midjourney the best AI image generator?",answer:"Midjourney is widely considered to produce the highest aesthetic quality images, particularly for artistic styles. Leonardo AI is strong for consistency and character generation. DALL-E 3 is better at following precise instructions. The best choice depends on your specific use case."},{question:"How do I use Midjourney?",answer:"Midjourney is accessed through its web interface at midjourney.com or via Discord. You write a text prompt describing the image you want, and the AI generates four variations. Subscriptions are required for image generation."},{question:"Can I use Midjourney images commercially?",answer:"Paid subscribers can use Midjourney-generated images for commercial purposes. The specific terms depend on your subscription plan. Free trial images are not licensed for c
359ommercial use. Always review current terms of service."},{question:"How do I get better results from Midjourney?",answer:'Better Midjourney results come from more detailed and specific prompts. Include subject, style (e.g., "oil painting," "photorealistic"), lighting, mood, and composition details. Using artist references and aspect ratio parameters significantly improves output quality.'}],editorialVerdict:"Midjourney remains the gold standard for AI image generation quality. If you prioritize aesthetic impact over precise instruction-following, it is the tool to use. Its community and continuous model development keep it ahead of competitors. The subscription cost is easily justified for professional creative work.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-15",logoLetter:"M",logoColor:"bg-indigo-600",featured:!0,trending:!1,editorPick:!0,rating:4.7},{id:"leonardo-ai",name:"Leonardo AI",slug:"leonardo-ai",tagline:"Consistent AI image generation for creative teams",shortDescription:"Leonardo AI is an AI image generation platform focused on consistency, character creation, and workflow tools for games, entertainment, and professional creative production.",fullDescription:"Leonardo AI has established itself as a strong alternative to Midjourney, particularly for users who need character consistency across multiple images, fine-tuned model training, and production-focused workflows. Its model training features allow users to create custom AI models on their own image datasets, enabling highly consistent stylistic output — a capability especially valuable in game development and branded visual content.",whatItDoes:"Leonardo AI generates images from text and image prompts, supports custom model training on user-provided datasets, provides consistency tools for character generation, and includes additional features like AI canvas, motion generation, and prompt enhancers.",bestFor:"Game developers, content creators, and design teams who need consistent visual style and character generation across large sets of images.",useCases:["Game asset generation and concept art","Character design with cross-image consistency","Custom model training for branded visual styles","Marketing and product imagery","Storyboarding and visual development"],features:["Text-to-image generation with multiple fine-tuned models","Custom model training on user datasets","Character consistency tools","AI canvas for image editing and compositing","Real-time generation and motion features"],pros:["Strong character consistency across multiple images","Custom model training is a significant advantage for teams","More generous free tier than Midjourney"],cons:["Peak aesthetic quality still slightly below Midjourney for artistic styles","Custom model training requires time and good dataset curation","Interface can feel complex for new users"],pricingSummary:"Leonardo AI offers a free tier with daily token allowance. Paid plans provide more tokens and features. See official site for current pricing.",pricingModel:"freemium",platform:["web"],audience:["game-developers","designers","artists","creators"],categories:["ai-image-generation","ai-design"],tags:["image-generation","ai-art","game-dev","consistency","custom-models"],officialUrl:"https://leonardo.ai",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=leonardo-ai",alternatives:["midjourney","runway"],relatedTools:["midjourney","runway"],comparisonSlugs:["midjourney-vs-leonardo-ai"],faq:[{question:"Is Leonardo AI free?",answer:"Leonardo AI offers a free tier with a daily token allowance, which is sufficient for casual experimentation. Paid plans provide significantly more tokens and access to premium features like real-time generation and faster processing."},{question:"How does Leonardo AI differ from Midjourney?",answer:"Leonardo AI focuses more on consistency, custom model training, and production workflows. Midjourney generally produces higher peak ae
359sthetic quality for artistic styles. Leonardo's free tier and consistency tools make it particularly popular for game developers."},{question:"Can I train my own models in Leonardo AI?",answer:"Yes. Leonardo AI allows users to train custom models on their own image datasets. This is a powerful feature for teams that need a consistent visual style or character design language across their content."},{question:"What is the best Leonardo AI model to use?",answer:"Leonardo offers several models optimized for different styles — photorealism, illustration, concept art, etc. Experimenting with Phoenix, Kino XL, and other featured models is the best way to find the right fit for your specific style requirements."}],editorialVerdict:"Leonardo AI is a strong Midjourney alternative with meaningful differentiators — particularly its custom model training and consistency tools. For game developers and teams with ongoing branded content needs, it may actually be the superior choice. Worth using alongside or instead of Midjourney depending on your workflow.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-10",logoLetter:"L",logoColor:"bg-amber-600",featured:!0,trending:!0,editorPick:!1,rating:4.5},{id:"runway",name:"Runway",slug:"runway",tagline:"Advanced AI video generation and editing",shortDescription:"Runway is a leading AI video generation platform that enables creators and filmmakers to generate, edit, and enhance video content using a suite of powerful AI tools.",fullDescription:"Runway has become the go-to AI video platform for creative professionals. Its Gen-2 and Gen-3 models can generate compelling video clips from text or image prompts, while its suite of AI editing tools covers background removal, motion tracking, color correction, and more. Runway is used by independent creators, advertising agencies, and major entertainment studios.",whatItDoes:"Runway generates video from text prompts, image prompts, and existing video using its Gen-3 Alpha model. It also provides a wide range of AI editing tools including rotoscoping, background removal, motion graphics generation, depth estimation, and video style transfer.",bestFor:"Video creators, filmmakers, and advertising professionals who want to extend their creative capabilities with AI generation and editing.",useCases:["Short video clip generation for social and advertising content","Visual effects and post-production enhancement","Rapid concept visualization for film and video projects","Background removal and compositing","AI-powered video editing and style transfer"],features:["Text-to-vi
359deo and image-to-video generation","Gen-3 Alpha model for high-quality video output","AI video editing tools (remove background, motion tracking, etc.)","Style transfer and video transformation","Multi-motion control for precise video generation"],pros:["Industry-leading AI video quality from Gen-3","Comprehensive suite of AI editing tools alongside generation","Used and trusted by professional filmmakers and studios"],cons:["Premium pricing reflects professional positioning","Video generation has length and consistency limitations","Requires creative prompt crafting for best results"],pricingSummary:"Runway offers a free trial with limited credits. Standard and Pro plans for ongoing use. See the official site for current pricing.",pricingModel:"freemium",platform:["web"],audience:["creators","filmmakers","marketers","advertisers"],categories:["ai-video-generation"],tags:["video-generation","text-to-video","video-editing","ai-vfx"],officialUrl:"https://runwayml.com",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=runway",alternatives:["synthesia","heygen","veed"],relatedTools:["synthesia","heygen","leonardo-ai"],comparisonSlugs:["runway-vs-synthesia"],faq:[{question:"What can Runway create?",answer:"Runway can generate video clips from text prompts, animate still images, apply visual effects, remove backgrounds, transfer artistic styles to existing footage, and perform a wide range of AI-powered video editing tasks."},{question:"How long can Runway generate videos?",answer:"Runway Gen-3 currently generates clips of up to about 10 seconds per generation. Longer sequences are created by generating multiple clips and editing them together."},{question:"Is Runway suitable for non-professionals?",answer:"Runway has made its interface increasingly accessible, but getting consistently good results still requires understanding its tools and some prompting skill. It is more of a professional tool than a consumer one, though motivated creators can get excellent results."},{question:"How does Runway compare to Sora?",answer:"Sora (OpenAI) and Runway Gen-3 represent the current state of the art in AI video generation. Both produce impressive results. Sora generated significant attention for its quality and coherence, while Runway provides a more complete production workflow. Availability and access differ between the platforms."}],editorialVerdict:"Runway is the most complete AI video production platform available. For video professionals looking to integrate AI into their workflows, it offers the strongest combination of generation quality and post-production tools. The pricing reflects its professional market positioning but is justified for commercial use.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-08",logoLetter:"R",logoColor:"bg-slate-700",featured:!0,trending:!0,editorPick:!0,rating:4.6},{id:"synthesia",name:"Synthesia",slug:"synthesia",tagline:"Create professional AI presenter videos in minutes",shortDe
359scription:"Synthesia is an AI video generation platform that creates professional presenter-style videos using realistic AI avatars — ideal for training, product demos, and corporate communications.",fullDescription:"Synthesia has defined the AI video avatar category. Its platform lets users type a script, select an AI avatar, and generate a professional presenter-style video in minutes — without cameras, studios, or actors. Over 200 AI presenters are available across multiple ethnicities, ages, and styles, and users can also create custom AI avatars from their own video footage.",whatItDoes:"Synthesia generates presenter-style videos from text scripts and AI avatar selections. Users write their script, choose an avatar and background template, add media elements, and render a finished video. Videos support 130+ languages for multilingual content production.",bestFor:"L&D teams, corporate trainers, and marketing teams who need scalable, professional video content without production costs.",useCases:["Employee training and onboarding videos","Product demonstration and tutorial videos","Multilingual corporate communications","Marketing explainer videos","Customer education and support content"],features:["200+ AI video avatars in multiple styles and languages","130+ language support with natural AI voiceovers","Custom avatar creation from your own footage","Screen recording and media integration","Video template library for quick production"],pros:["Most scalable solution for high-volume professional video production","Excellent multilingual support for global organizations","Strong enterprise features and compliance controls"],cons:["AI avatars, while improving, can still appear artificial in close-up","Limited creative video production compared to full-service tools","Higher cost than simple video editing tools"],pricingSummary:"Synthesia pricing varies by plan and video minutes per month. Starter plans available; Enterprise pricing on request. See official site for current rates.",pricingModel:"paid",platform:["web"],audience:["enterprises","l-and-d","marketers","teams"],categories:["ai-video-generation"],tags:["ai-avatar","presenter-video","training-video","corporate","multilingual"],officialUrl:"https://synthesia.io",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=synthesia",alternatives:["heygen","runway","veed"],relatedTools:["heygen","runway","elevenlabs"],comparisonSlugs:["runway-vs-synthesia"],faq:[{question:"What is Synthesia used for?",answer:"Synthesia is primarily used for creating professional presenter-style videos with AI avatars — training videos, product demos, internal communications, and marketing content. Its multilingual support makes it particularly valuable for global organizations."},{question:"How realistic are Synthesia's AI avatars?",answer:"Synthesia's AI avatars are among the most realistic available and continue improving. For most corporate and training video use cases, the quality is sufficient and often indistinguishable from low-budget real productions. Close-up shots still show subtle AI artifacts that attentive viewers may notice."},{question:"Can I create my own avatar in Synthesia?",answer:"Yes. Synthesia allows users to create custom AI avatars from a short video recording of themselves. This creates a personalized AI presenter that looks and sounds like you, useful for creators and executives who want a scalable personal brand presence."},{question:"How does Synthesia compare to HeyGen?",answer:"Both Synthesia and HeyGen offer AI avatar video generation. Synthesia has stronger enterprise features and compliance controls. HeyGen is often preferred for personal avatar quality and video translation capabilities. Both are worth evaluating for corporate video use cases."}],editorialVerdict:"Synthesia is the market leader for enterprise AI video production. If your organization needs to produce professional, scalable video content without traditional production costs, Synthesia delivers excellent results. Its multilingual capabilities and enterprise controls make it particularly compelling for global teams.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-12",logoLetter:"S",logoColor:"bg-blue-600",featured:!1,trending:!1,editorPick:!1,rating:4.5},{id:"elevenlabs",name:"ElevenLabs",slug:"elevenlabs",tagline:"The most realistic AI voice synthesis platform",shortDe
359scription:"ElevenLabs is an AI voice generation platform offering the most realistic text-to-speech and voice cloning capabilities available, used by creators, publishers, and enterprises worldwide.",fullDescription:"ElevenLabs has set the standard for AI voice synthesis quality. Its voices are often indistinguishable from human recordings in controlled listening tests, and its voice cloning capabilities allow users to create a digital version of any voice from a short audio sample. Used by audiobook publishers, content creators, game developers, and enterprise teams for scalable voice content production.",whatItDoes:"ElevenLabs converts text to speech using highly realistic AI voices, clones voices from audio samples, and provides a full suite of voice generation tools including dubbing, voice changing, and audio isolation. An API allows developers to integrate voice synthesis into applications.",bestFor:"Content creators, publishers, and developers who need high-quality, realistic voice synthesis for audiobooks, podcasts, videos, games, and applications.",useCases:["Audiobook narration and publishing","Podcast and video voiceover production","Multilingual video dubbing","Game character voice generation","Voice AI integration for applications via API"],features:["Ultra-realistic text-to-speech with emotion and style control","Voice cloning from short audio samples","Voice dubbing and translation","29+ supported languages","API for developer integration"],pros:["Best-in-class voice realism — often passes human listening tests","Fast generation even for long-form content","Strong API and developer ecosystem"],cons:["Voice cloning raises ethical concerns if misused","Usage costs scale with content volume for high-production users","Cloned voices still have subtle artifacts in extended, highly emotional content"],pricingSummary:"ElevenLabs offers a free tier with limited monthly characters. Starter, Creator, and Pro plans scale up character limits. Enterprise plans available. See official site for current pricing.",pricingModel:"freemium",platform:["web","api"],audience:["creators","publishers","developers","game-developers"],categories:["ai-audio-voice"],tags:["text-to-speech","voice-cloning","tts","audiobook","voice-ai"],officialUrl:"https://elevenlabs.io",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=elevenlabs",alternatives:["murf-ai","play-ht"],relatedTools:["synthesia","heygen","descript"],comparisonSlugs:[],faq:[{question:"How realistic is ElevenLabs TTS?",answer:"ElevenLabs produces the most realistic AI text-to-speech available commercially. In many cases, listeners cannot distinguish its output from professional human voice recordings. The quality is sufficient for audiobooks, commercial voiceovers, and professional media production."},{question:"Is voice cloning legal?",answer:"Cloning your own voice for personal or commercial use is generally legal. Cloning another person's voice without their explicit consent raises significant legal and ethical concerns and may violate laws in many jurisdictions. ElevenLabs requires consent confirmation for voice cloning."},{question:"What is the free tier limit?",answer:"ElevenLabs free tier provides approximately 10,000 characters per month, which is roughly 7-10 minutes of audio. This is sufficient for testing and light personal use. Paid plans provide significantly more capacity."},{question:"Can ElevenLabs dub videos into other languages?",answer:"Yes. ElevenLabs offers a video dubbing feature that translates and re-voices video content into other languages while preserving the original speaker's voice characteristics. This is valuable for content creators producing multilingual versions of their videos."}],editorialVerdict:"ElevenLabs is the clear leader in AI voice synthesis quality. For anyone who needs realistic voices for audio or video production, it is the first tool to evaluate. The combination of quality, voice cloning, multilingual support, and a strong API makes it the professional standard in this category.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-18",logoLetter:"E",logoColor:"bg-slate-800",featured:!0,trending:!0,editorPick:!0,rating:4.8},{id:"suno",name:"Suno",slug:"suno",tagline:"Generate full songs with AI in seconds",shortDe
359scription:"Suno is an AI music generation platform that creates complete songs — including lyrics, melody, instrumentation, and vocals — from simple text prompts.",fullDescription:"Suno has quickly become the most accessible and capable AI music generation platform for full-song creation. Unlike tools that produce instrumental tracks, Suno generates complete songs with lyrics, melodies, and AI vocals from a short text prompt describing genre, mood, and theme. Its output quality has surprised many musicians and content creators with its coherence and listenability.",whatItDoes:"Suno generates complete songs from text prompts. Users describe the style, genre, mood, and theme they want, and Suno produces one or two songs in that style — complete with AI-generated lyrics, instrumentation, and vocal performance. Custom lyrics mode allows users to input their own words.",bestFor:"Content creators, marketers, game developers, and music enthusiasts who need original music without hiring composers or buying stock licenses.",useCases:["Background music for YouTube videos and social content","Original songs for personal creative projects","Jingles and branded audio for marketing","Game music generation for indie developers","Music exploration and creative inspiration for songwriters"],features:["Full-song generation including vocals, lyrics, and instrumentation","Wide genre and style support","Custom lyrics mode for user-written words","Multiple song variations per prompt","Commercial licensing on paid plans"],pros:["Easiest way to get a complete song from a simple description","Impressive vocal and musical coherence","Regular quality improvements from model updates"],cons:["Limited control over specific musical elements","Lyrics can occasionally be generic or awkward","Commercial licensing costs more than the basic tier"],pricingSummary:"Suno offers a free tier with limited daily song generations. Pro and Premier plans provide more credits and commercial licensing. See official site for current pricing.",pricingModel:"freemium",platform:["web"],audience:["creators","marketers","game-developers","musicians"],categories:["ai-music"],tags:["music-generation","ai-music","song-creation","vocals","lyrics"],officialUrl:"https://suno.ai",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=suno",alternatives:["udio","mubert"],relatedTools:["elevenlabs","runway"],comparisonSlugs:[],faq:[{question:"Is Suno music royalty-free?",answer:"Suno songs generated on paid plans are licensed for commercial use. Free tier generations are for non-commercial personal use only. Always check current licensing terms on the Suno website for your specific use case."},{question:"How good is Suno's music quality?",answer:"Suno produces surprisingly listenable music across a wide range of genres. For background music, social content, and casual creative use, the quality is impressive. Professional music production will still benefit from human composers and musicians for high-end commercial work."},{question:"Can I use my own lyrics with Suno?",answer:"Yes. Suno has a custom lyrics mode where you input the words you want sung, and the AI creates music and vocals around your text. This gives significantly more creative control over the lyrical content."},{question:"What genres can Suno generate?",answer:"Suno supports an extremely wide range of genres including pop, rock, hip-hop, jazz, classical, EDM, folk, country, metal, and many more. Genre blending is also possible by describing the specific combination you want."}],editorialVerdict:"Suno is genuinely impressive for AI music generation. Its ability to produce complete, listenable songs from simple text prompts makes it valuable for content creators, indie developers, and anyone who needs original music without a production budget. The free tier is worth trying immediately.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-02-28",logoLetter:"S",logoColor:"bg-green-600",featured:!1,trending:!0,editorPick:!1,rating:4.5},{id:"heygen",name:"HeyGen",slug:"heygen",tagline:"Personalized AI avatar videos and video translation",shortDe
359scription:"HeyGen is an AI video generation platform specializing in personalized AI avatar videos and video translation — popular for creator content, sales videos, and multilingual marketing.",fullDescription:"HeyGen has grown rapidly by focusing on personal avatar quality and video translation capabilities. Its AI avatars are among the most realistic available, and its video translation feature — which can dub existing videos into multiple languages while preserving the original speaker's voice and lip-syncing to the new language — has found strong product-market fit with content creators and marketing teams.",whatItDoes:"HeyGen generates presenter-style videos using AI avatars, creates personalized talking head videos, and translates existing video content into 40+ languages with accurate lip-sync. Users can create a custom avatar from a short selfie video for a personalized AI presence.",bestFor:"Content creators, sales teams, and marketing professionals who need personalized, multilingual video content at scale.",useCases:["Personalized sales outreach videos","YouTube and social media content in multiple languages","Product demo videos with AI presenter","Corporate training in multiple languages","Influencer-style content for marketing campaigns"],features:["Realistic AI avatars with natural movements","Video translation with lip-sync in 40+ languages","Custom avatar creation from 2 minutes of footage","Personalized video generation at scale","Template library for rapid video creation"],pros:["Best video translation quality with accurate lip-sync","Strong personal avatar customization","Excellent for multilingual content creation"],cons:["Less enterprise-focused than Synthesia","Avatar quality for non-custom avatars varies","Video translation for technical content needs review"],pricingSummary:"HeyGen offers a free trial. Paid plans start at approximately $29/month. Creator and Enterprise plans available. See official site for current pricing.",pricingModel:"freemium",platform:["web"],audience:["creators","marketers","sales-teams"],categories:["ai-video-generation"],tags:["ai-avatar","video-translation","talking-head","multilingual"],officialUrl:"https://heygen.com",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=heygen",alternatives:["synthesia","runway","veed"],relatedTools:["synthesia","runway","elevenlabs"],comparisonSlugs:["runway-vs-synthesia"],faq:[{question:"What makes HeyGen different from Synthesia?",answer:"HeyGen is particularly strong for video translation with lip-sync and personal avatar quality. Synthesia has better enterprise controls, compliance features, and a larger avatar library. For creators and small teams, HeyGen often wins on value; for enterprise L&D, Synthesia is typically preferred."},{question:"How does HeyGen's video translation work?",answer:"HeyGen's video translation feature takes an existing video, transcribes and translates the speech, generates new AI audio in the target language using the original speaker's voice, and re-syncs the lip movements to match the new audio — creating a convincing multilingual version."},{question:"Can I create a custom avatar in HeyGen?",answer:"Yes. HeyGen allows users to create a custom AI avatar from about 2 minutes of high-quality video footage. This creates a digital twin that can deliver scripts in your likeness and voice without additional filming."},{question:"Is HeyGen suitable for YouTube creators?",answer:"Yes. Many YouTube creators use HeyGen to produce content in multiple languages to reach wider audiences, create consistent video thumbnails with their likeness, and generate content at a faster pace than traditional filming allows."}],editorialVerdict:"HeyGen is a strong choice for creators and marketers who prioritize video translation and personalization. Its lip-sync video translation is genuinely impressive and opens real opportunities for creators to expand their reach into new language markets. A compelling product with clear differentiation from Synthesia.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-05",logoLetter:"H",logoColor:"bg-rose-600",featured:!1,trending:!0,editorPick:!1,rating:4.4}
359,{id:"veed",name:"VEED",slug:"veed",tagline:"Online video editing made simple with AI",shortDescription:"VEED is an online video editing platform with strong AI features including automatic subtitles, transcription, translation, and AI-powered video cleanup — ideal for content creators and marketing teams.",fullDescription:"VEED has built a strong user base among content creators and marketing teams by making professional video editing accessible online without software downloads. Its AI features are focused on practical creator needs: auto-subtitles, background removal, noise cleanup, and transcription. VEED strikes a balance between ease of use and a comprehensive feature set.",whatItDoes:"VEED provides browser-based video editing with AI-powered features including automatic subtitle generation, background removal, noise reduction, video transcription, and translation. It also includes screen recording, AI avatar videos, and video compression tools.",bestFor:"Content creators, social media managers, and marketing teams who need fast, accessible video editing with AI assistance.",useCases:["Adding auto-subtitles to social media videos","Quick video editing without software installation","Repurposing long-form content into clips","Adding captions for accessibility compliance","Simple video production for marketing content"],features:["Automatic subtitle and caption generation","Browser-based video editing — no download required","Background removal and AI noise cleanup","Video translation and transcription","Screen recording with webcam overlay"],pros:["Fast and accessible — no software needed","Auto-subtitle quality is excellent","Good balance of features for casual and semi-professional creators"],cons:["Less powerful for complex video production than desktop editors","Free tier has significant watermark and export limitations","Not designed for long-form professional film editing"],pricingSummary:"VEED offers a free tier with watermarks and limited export. Paid plans remove watermarks and unlock full features. See official site for current pricing.",pricingModel:"freemium",platform:["web"],audience:["creators","marketers","social-media-managers"],categories:["ai-video-generation"],tags:["video-editing","subtitles","captions","social-media","content-creation"],officialUrl:"https://veed.io",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=veed",alternatives:["descript","heygen","synthesia"],relatedTools:["descript","heygen","runway"],comparisonSlugs:[],faq:[{question:"Is VEED suitable for professional video editing?",answer:"VEED is well-suited for social media content, marketing videos, and quick edits that need subtitles or basic cleanup. For professional film editing, color grading, or complex multi-track production, traditional desktop editors like Adobe Premiere are more appropriate."},{question:"How accurate are VEED's auto-subtitles?",answer:"VEED's auto-subtitle accuracy is generally good for clear speech in major languages, typically achieving 90%+ accuracy. Accuracy decreases with heavy accents, technical terminology, or poor audio quality. Manual review and correction is still recommended for important content."},{question:"Does VEED work in a browser without downloads?",answer:"Yes. VEED is fully browser-based with no software download required. It works on any modern browser and is compatible with Mac, Windows, and Chromebook systems."},{question:"How does VEED compare to Descript?",answer:"VEED and Descript both target content creators but with different approaches. VEED is more focused on quick video editing with AI features. Descript takes a unique script-based approach where editing the transcript edits the video — making it powerful for podcast and interview content."}],editorialVerdict:"VEED is an excellent tool for content creators who need fast, accessible video editing with quality AI subtitles and basic cleanup features. It removes significant friction from social media video production. For more complex editing needs, Descript or traditional video editors may be more appropriate.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-02-25",logoLetter:"V",logoColor:"bg-blue-500",featured:!1,trending:!1,editorPick:!1,rating:4.2},{id:"descript",name:"Descript",slug:"descript",tagline:"Edit audio and video like a document",shortDe
359scription:"Descript is an AI-powered audio and video editor that lets users edit recordings by editing the transcript — making podcast and interview editing dramatically faster.",fullDescription:"Descript pioneered the concept of transcript-based media editing. By transcribing audio and video content, it lets users edit the media by editing text — delete a sentence from the transcript and the audio or video is cut automatically. Combined with AI features like filler word removal, overdubbing, and background noise elimination, Descript has become a favorite among podcasters, video creators, and corporate communicators.",whatItDoes:"Descript transcribes audio and video recordings, displays the content as an editable document, and allows editing by modifying text. AI features include automatic filler word detection and removal, overdub voice synthesis for corrections, studio sound noise reduction, and AI eye contact correction for video.",bestFor:"Podcasters, video interviewers, and content creators who spend significant time editing spoken audio and video content.",useCases:["Podcast editing and production","Interview video editing and cleanup","Corporate training and webinar recording editing","Audio cleanup and noise removal","Creating video clips from long recordings"],features:["Transcript-based audio and video editing","AI filler word detection and automatic removal","Overdub voice synthesis for corrections","Studio sound noise reduction","Video screen recording and screen capture"],pros:["Unique and highly effective transcript-based editing workflow","Filler word removal is a massive time-saver","Strong for podcast production workflows"],cons:["Transcription errors can cause editing issues","Less intuitive for traditional timeline-based video editing","Overdub voice quality depends on training data quality"],pricingSummary:"Descript offers a free tier with limited hours. Paid plans unlock more features and media hours. Creator and Business plans available. See official site for current pricing.",pricingModel:"freemium",platform:["desktop","web"],audience:["podcasters","creators","journalists","marketers"],categories:["ai-audio-voice","ai-video-generation"],tags:["podcast-editing","transcript-editing","audio-editing","video-editing"],officialUrl:"https://descript.com",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=descript",alternatives:["veed","heygen","otter-ai"],relatedTools:["veed","elevenlabs","heygen"],comparisonSlugs:[],faq:[{question:"What is Descript best used for?",answer:"Descript is best used for editing spoken content — podcasts, interviews, webinar recordings, and video content with significant dialogue. Its transcript-based editing approach is uniquely efficient for this type of content."},{question:"How does Descript's filler word removal work?",answer:'Descript automatically identifies filler words like "um," "uh," "like," and "you know" in transcripts and offers to remove them in bulk. Users can review and selectively remove fillers, saving significant manual editing time.'},{question:"Can Descript correct my voice with AI?",answer:"Descript's Overdub feature creates an AI voice model trained on your speech, which can then synthesize new words in your voice. This is useful for correcting small errors without re-recording, though the quality depends on the amount of training audio provided."},{question:"Does Descript work on Mac and Windows?",answer:"Yes. Descript has desktop apps for both Mac and Windows, as well as a browser-based version. The desktop apps offer better performance for larger projects."}],editorialVerdict:"Descript is genuinely transformative for anyone who edits podcast or interview content. The transcript-based workflow is significantly faster than traditional timeline editing for spoken content. If you produce audio or video with substantial dialogue, Descript should be among the first tools you evaluate.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-02-22",logoLetter:"D",logoColor:"bg-green-700",featured:!1,trending:!1,editorPick:!1,rating:4.5}],Bb=[{id:"notion-ai",name:"Notion AI",slug:"notion-ai",tagline:"AI built into your Notion workspace",shortDe
359scription:"Notion AI brings AI writing, summarization, and Q&A capabilities directly into the Notion workspace — making it a powerful productivity upgrade for Notion users.",fullDescription:"Notion AI extends the popular productivity platform with embedded AI capabilities that work contextually within your documents, databases, and workspace. Rather than switching to a separate AI tool, Notion users get AI assistance directly where their work lives — writing new content, summarizing existing pages, answering questions about workspace content, and automating repetitive note-taking tasks.",whatItDoes:"Notion AI can write new content within Notion documents, summarize long pages, translate text, extract action items from meeting notes, answer questions about workspace content, autofill database properties, and create structured content from rough outlines.",bestFor:"Existing Notion users who want AI augmentation within their existing workflow rather than a separate AI tool.",useCases:["Summarizing long meeting notes or documents","Drafting content directly in Notion documents","Extracting action items from meeting transcripts","Answering questions about workspace content","Autofilling database properties with AI"],features:["In-context AI writing and editing within Notion documents","AI summarization of pages and database entries","Workspace Q&A for answering questions about your content","Action item extraction from meeting notes","Database property autofill with AI"],pros:["Seamlessly integrated — no context switching required","Works with your actual workspace data for relevant responses","Broad coverage of Notion use cases"],cons:["Only valuable if you already use Notion","Additional cost on top of existing Notion subscription","Less powerful than standalone AI tools for complex creative tasks"],pricingSummary:"Notion AI is available as an add-on to Notion plans. Pricing per member per month. See the official Notion site for current pricing.",pricingModel:"paid",platform:["web","desktop","mobile"],audience:["knowledge-workers","teams","founders","students"],categories:["ai-productivity","ai-writing","ai-note-taking"],tags:["notion","productivity","writing","note-taking","workspace"],officialUrl:"https://notion.so/product/ai",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=notion-ai",alternatives:["notebooklm","claude","chatgpt"],relatedTools:["notebooklm","jasper","copy-ai"],comparisonSlugs:[],faq:[{question:"Is Notion AI worth the extra cost?",answer:"Notion AI adds meaningful value for heavy Notion users — the in-context summaries, Q&A, and action item extraction are genuinely useful. If you use Notion daily for work, the productivity gains likely justify the additional cost. Light Notion users may find standalone AI tools more cost-effective."},{question:"Can Notion AI search my entire workspace?",answer:"Notion AI can answer questions about content in your workspace, but its context is limited to what you surface to it. It works best when you are in or referencing specific pages. Workspace-wide Q&A capabilities are improving but have limitations compared to a dedicated document AI like NotebookLM."}
359,{question:"How does Notion AI compare to using ChatGPT separately?",answer:"Notion AI is more convenient for in-workspace tasks because it does not require copy-pasting content between tools. ChatGPT is more powerful and flexible for complex writing and reasoning tasks outside Notion. Many users benefit from using both."},{question:"Does Notion AI support multiple languages?",answer:"Yes. Notion AI can write and translate content in multiple languages, making it useful for international teams who maintain multilingual documentation."}],editorialVerdict:"Notion AI is a solid investment for organizations already committed to Notion as their primary workspace. Its embedded nature is its biggest advantage — AI assistance without workflow disruption is genuinely valuable. If you are not a Notion user, there are better standalone AI writing tools available.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-01",logoLetter:"N",logoColor:"bg-gray-900",featured:!0,trending:!1,editorPick:!1,rating:4.4},{id:"jasper",name:"Jasper",slug:"jasper",tagline:"AI writing platform for marketing teams",shortDescription:"Jasper is an enterprise AI writing platform designed for marketing teams — offering brand voice training, multi-channel content templates, and team collaboration for scalable content production.",fullDescription:"Jasper has positioned itself as the enterprise-grade AI writing platform for marketing organizations. Unlike general-purpose AI chatbots, Jasper offers brand voice controls that allow teams to train the AI on their tone and style, team collaboration features, and an extensive library of marketing-specific templates. It integrates with Surfer SEO for content optimization and supports multi-channel content workflows.",whatItDoes:"Jasper generates marketing content including blog posts, ad copy, emails, social media posts, and long-form articles using AI. Teams can define brand voice guidelines that shape all AI-generated output. SEO optimization through Surfer SEO integration, content briefs, and a campaign manager support full content workflows.",bestFor:"Marketing teams and content departments that produce high volumes of on-brand content and need AI assistance with consistent voice and quality.",useCases:["Blog post and long-form content generation","Ad copy and marketing campaign content","Email marketing sequences and newsletters","Social media content across platforms","Product descriptions and e-commerce copy"],features:["Brand voice training for consistent AI output","Marketing-specific template library (50+ templates)","Surfer SEO integration for content optimization","Team collaboration and content workflow","Multi-channel content generation from single briefs"],pros:["Best brand voice consistency controls of any AI writing tool","Comprehensive template library for marketing use cases","Strong enterprise features for team management"],cons:["Higher price point than alternatives — primarily justified for teams","Individual users may find ChatGPT or Claude more flexible","Requires upfront effort to set up brand voice guidelines effectively"],pricingSummary:"Jasper pricing starts at approximately $49/month for individuals. Team plans at higher price points. Enterprise pricing on request. See official site for current plans.",pricingModel:"paid",platform:["web"],audience:["marketers","agencies","enterprises","teams"],categories:["ai-writing","ai-marketing","ai-seo"],tags:["ai-writing","marketing","copywriting","brand-voice","enterprise"],officialUrl:"https://jasper.ai",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=jasper",alternatives:["copy-ai","notion-ai","chatgpt"],relatedTools:["copy-ai","notion-ai","gamma"],comparisonSlugs:[],faq:[{question:"Is Jasper better than ChatGPT for marketing?",answer:"Jasper's main advantage over ChatGPT for marketing teams is its brand voice controls and marketing-specific templates. For individual users or small teams, ChatGPT's flexibility and lower cost often win. For larger marketing organizations with brand consistency needs, Jasper's specialized features justify the price."},{question:"Does Jasper support long-form content?",answer:"Yes. Jasper's document editor supports long-form content including blog posts, whitepapers, and reports. The Boss Mode feature allows users to give Jasper commands that generate multiple paragraphs in sequence."},{question:"What is Jasper's brand voice feature?",answer:"Jasper's brand voice feature allows teams to input examples of their existing content, style guidelines, and tone preferences. Jasper analyzes these to create a brand profile that shapes all future AI-generated content, ensuring consistency with the organization's established voice."},{question:"Does Jasper help with SEO?",answer:"Jasper integrates with Surfer SEO, a popular SEO content optimization tool. This integration allows users to generate content that is optimized for specific keywords directly within the Jasper workflow."}],editorialVerdict:"Jasper is the leading AI writing platform for marketing teams that prioritize brand consistency and high-volume content production. Its enterprise features and Surfer SEO integration make it genuinely more suitable for professional marketing teams than general-purpose AI tools. Individuals will find the price steep relative to alternatives.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-02-20",logoLetter:"J",logoColor:"bg-orange-600",featured:!1,trending:!1,editorPick:!1,rating:4.3},{id:"copy-ai",name:"Copy.ai",slug:"copy-ai",tagline:"AI for go-to-market teams and growth workflows",shortDe
359scription:"Copy.ai is an AI-powered platform for go-to-market teams, offering content generation, workflows, and automation tools to accelerate sales and marketing activities.",fullDescription:"Copy.ai has evolved from a simple copywriting tool to a comprehensive go-to-market AI platform. It offers a wide range of AI-powered workflows designed specifically for sales, marketing, and revenue teams — from cold email generation to blog post creation, landing page copy, and social media content. Its Workflow feature enables teams to build repeatable AI-powered content production processes.",whatItDoes:"Copy.ai generates marketing and sales copy using AI templates and custom workflows. It covers blog content, social media posts, ad copy, email sequences, product descriptions, and more. The Workflow feature allows teams to create automated multi-step content production pipelines.",bestFor:"Go-to-market teams, sales teams, and marketing professionals who need high-volume content generation with structured workflows.",useCases:["Sales email and outreach copy at scale","Blog post and content marketing production","Ad copy for multiple platforms and audiences","Social media content calendars","Landing page and product copy"],features:["Extensive library of marketing and sales copy templates","AI Workflow builder for automated content pipelines","Brand voice and tone configuration","Bulk content generation","Integrations with popular marketing tools"],pros:["Strong template library for go-to-market use cases","Workflow automation is a genuine differentiator for teams","More affordable than Jasper for similar capabilities"],cons:["Raw output quality for complex content sometimes needs more refinement","Interface can feel busy compared to simpler alternatives","Some workflow features require technical understanding"],pricingSummary:"Copy.ai offers a free trial. Starter and Pro plans for individuals. Team plans for organizations. See official site for current pricing.",pricingModel:"freemium",platform:["web"],audience:["marketers","sales-teams","founders"],categories:["ai-writing","ai-marketing"],tags:["copywriting","marketing","sales","go-to-market","automation"],officialUrl:"https://copy.ai",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=copy-ai",alternatives:["jasper","notion-ai","chatgpt"],relatedTools:["jasper","notion-ai"],comparisonSlugs:[],faq:[{question:"Is Copy.ai good for beginners?",answer:"Yes. Copy.ai is accessible for beginners with its template-driven approach. You select a template, fill in brief inputs, and generate copy. The interface is user-friendly and the template library covers most common marketing needs."},{question:"How does Copy.ai compare to Jasper?",answer:"Copy.ai is generally more affordable than Jasper and has shifted focus toward go-to-market workflows. Jasper has stronger brand voice controls and enterprise features. For startups and small teams, Copy.ai is often a better value; for larger marketing organizations, Jasper's enterprise features may be worth the premium."},{question:"Does Copy.ai have a free plan?",answer:"Copy.ai has a free trial that provides limited access to its features. Paid plans are required for ongoing use. Check the official site for current free tier availability."},{question:"Can Copy.ai write long-form blog posts?",answer:"Yes. Copy.ai includes long-form content generation for blog posts, with workflow support for creating content briefs and full articles. The quality of long-form output benefits from detailed input briefs."}],editorialVerdict:"Copy.ai is a solid AI writing platform for go-to-market teams, with a competitive template library and useful workflow automation features. It occupies a good value position below Jasper for teams that do not need the most enterprise-grade features. Worth evaluating for marketing and sales teams looking for AI writing assistance.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-02-18",logoLetter:"C",logoColor:"bg-blue-500",featured:!1,trending:!1,editorPick:!1,rating:4.2},{id:"gamma",name:"Gamma",slug:"gamma",tagline:"Beautiful presentations generated by AI in seconds",shortDe
359scription:"Gamma is an AI presentation tool that generates polished, visually impressive slide decks from outlines or prompts — dramatically reducing the time needed to create professional presentations.",fullDescription:"Gamma has quickly become one of the most popular tools for creating presentations without spending hours on design. Users input an outline or prompt, and Gamma generates a complete, visually polished presentation with modern layouts, suggested images, and professionally formatted content. Its AI can also import and convert existing content, and the output is web-native, making it shareable without file attachments.",whatItDoes:"Gamma generates complete presentations from text outlines, prompts, or imported documents. It handles layout, design, typography, and image selection automatically. The resulting presentations are web-based, responsive, and shareable via link. Users can edit generated slides and customize the design.",bestFor:"Professionals, students, and anyone who needs to create polished presentations quickly without spending significant time on design.",useCases:["Startup pitch decks and investor presentations","Product and feature launch presentations","Business proposals and client presentations","Educational and classroom presentations","Internal team updates and company briefings"],features:["AI presentation generation from prompts or outlines","Web-native format with responsive design","AI image and icon selection","Import and convert from documents and PDFs","Analytics on presentation engagement"],pros:["Fastest creation of polished presentations — often under 2 minutes","Modern, attractive design aesthetic","Web-native sharing without file attachments"],cons:["Less customization control than PowerPoint or Google Slides","Design choices may not match all brand requirements","Complex data visualization limited compared to dedicated chart tools"],pricingSummary:"Gamma offers a free tier with limited AI generations. Paid plans for unlimited AI usage and team features. See official site for current pricing.",pricingModel:"freemium",platform:["web"],audience:["professionals","students","founders","marketers"],categories:["ai-presentation-tools","ai-design"],tags:["presentations","slides","pitch-deck","ai-design"],officialUrl:"https://gamma.app",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=gamma",alternatives:["beautiful-ai","canva"],relatedTools:["beautiful-ai","notion-ai","framer"],comparisonSlugs:[],faq:[{question:"Is Gamma better than PowerPoint?",answer:"Gamma is faster than PowerPoint for creating first-draft presentations, and its AI-generated designs often look more modern. PowerPoint offers more fine-grained control, broader template ecosystems, and better integration with Microsoft Office workflows. Gamma is better for speed; PowerPoint for precision."},{question:"Can I export Gamma presentations to PowerPoint?",answer:"Gamma supports exporting to PDF and PowerPoint format, allowing you to take AI-generated presentations into traditional presentation tools for further editing if needed."},{question:"How does Gamma compare to Beautiful.ai?",answer:"Both Gamma and Beautiful.ai use AI for presentation design. Gamma is faster for generating complete presentations from prompts. Beautiful.ai focuses on smart adaptive layouts that automatically adjust as you add content. Gamma is better for speed; Beautiful.ai for more controlled template-based creation."},{question:"Is Gamma suitable for investor pitches?",answer:"Gamma can produce a strong first draft for a pitch deck very quickly. Most founders then customize the content, narrative flow, and branding before using it for actual investor meetings. The AI handles the design; you handle the story."}],editorialVerdict:"Gamma is a genuinely impressive tool for anyone who dreads the time investment of presentation design. For getting a polished first draft out in minutes, nothing beats it. The design quality is consistently modern and professional. Recommended for anyone who regularly creates presentations and values their time.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-03",logoLetter:"G",logoColor:"bg-violet-600",featured:!0,trending:!0,editorPick:!0,rating:4.6},{id:"beautiful-ai",name:"Beautiful.ai",slug:"beautiful-ai",tagline:"Smart presentation software that designs itself",shortDe
359scription:"Beautiful.ai is a presentation platform with AI-powered smart slides that automatically adjust layout and design as you add content — keeping presentations polished without manual formatting.",fullDescription:"Beautiful.ai takes a different approach to AI in presentations than tools like Gamma. Rather than generating entire presentations from prompts, it focuses on smart templates that adapt intelligently to your content. As you add text, images, or data, slides automatically reformat to maintain visual balance. This makes it particularly useful for teams that need consistent, professional-looking presentations without spending time on design.",whatItDoes:"Beautiful.ai provides a presentation editor with AI-powered smart slides that automatically maintain visual balance and consistency as content is added or removed. Team template libraries, brand controls, and collaboration features make it suited for professional team use.",bestFor:"Business teams and companies that need consistent, professional presentations across their organization with minimal design effort.",useCases:["Team and company-wide presentation templates","Sales decks and client presentations","Board reports and executive presentations","Marketing and product presentations","Recurring business updates and reports"],features:["AI-powered smart layouts that adapt automatically","Team template library with brand controls","Real-time collaboration","PowerPoint import and export","Presentation analytics"],pros:["Consistent, professional output across team presentations","Smart layouts eliminate manual design formatting","Strong team and brand management features"],cons:["Less AI generation capability than Gamma — still requires manual content input","Template library smaller than traditional PowerPoint","Requires onboarding for teams to use effectively"],pricingSummary:"Beautiful.ai pricing starts at approximately $12/month for individuals. Team plans for multiple users. See official site for current pricing.",pricingModel:"paid",platform:["web"],audience:["businesses","teams","marketers","sales-teams"],categories:["ai-presentation-tools","ai-design"],tags:["presentations","slides","business","templates","collaboration"],officialUrl:"https://beautiful.ai",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=beautiful-ai",alternatives:["gamma","canva"],relatedTools:["gamma","notion-ai"],comparisonSlugs:[],faq:[{question:"What makes Beautiful.ai different from Google Slides?",answer:"Beautiful.ai's smart layout technology automatically maintains visual balance as you edit — a capability Google Slides does not have. The result is professional-looking presentations without manual formatting. Google Slides offers broader integration with Google Workspace and better real-time collaboration."},{question:"Is Beautiful.ai good for large teams?",answer:"Yes. Beautiful.ai has strong team features including shared template libraries, brand controls, and presentation access management. These features make it practical for ensuring presentation consistency across large sales and marketing organizations."},{question:"Can I import PowerPoint files into Beautiful.ai?",answer:"Beautiful.ai supports PowerPoint import with reasonable fidelity. Complex PowerPoint files may lose some formatting during import, but the basic structure and content typically transfer well."},{question:"How does Beautiful.ai compare to Canva?",answer:"Canva is a broader design tool while Beautiful.ai specializes in presentations. Canva has a significantly larger design asset library and is better for social media and marketing graphic design. Beautiful.ai is more focused and polished specifically for business presentations."}],editorialVerdict:"Beautiful.ai is well-suited for business teams that want consistently professional presentations without investing heavily in design skills or time. Its smart layout technology is a genuine productivity aid. For teams that create presentations frequently, the quality-to-effort ratio is excellent.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-02-15",logoLetter:"B",logoColor:"bg-blue-600",featured:!1,trending:!1,editorPick:!1,rating:4.3},{id:"notebooklm",name:"NotebookLM",slug:"notebooklm",tagline:"Your AI research and note-taking assistant b
359y Google",shortDescription:"NotebookLM is Google's AI-powered research assistant that lets you upload documents and ask questions about your sources — ideal for students, researchers, and knowledge workers.",fullDescription:"NotebookLM is Google's AI-powered document analysis and research tool. Unlike general-purpose AI chatbots that draw on training data, NotebookLM grounds its responses entirely in documents and sources that you upload. This source-grounded approach produces significantly more reliable answers for document-specific research and dramatically reduces hallucination risk for document analysis tasks.",whatItDoes:"NotebookLM accepts uploaded documents (PDFs, text, Google Docs, YouTube links, audio), analyzes their content, and answers questions about them with inline source citations. It can generate summaries, study guides, FAQs, briefing documents, and audio overviews from source materials.",bestFor:"Students, researchers, and knowledge workers who need to extract insights from large sets of documents and research materials.",useCases:["Research paper and academic literature analysis","Study guide and flashcard creation from course materials","Document summarization for business research","Podcast and audio overview generation from notes","Competitive research and market analysis"],features:["Upload multiple document types including PDF, text, and audio","Source-grounded Q&A with inline citations","Study guide, FAQ, and briefing generation","Audio Overview feature for podcast-style summaries","Free with Google account — no subscription required"],pros:["Source-grounded answers dramatically reduce hallucination for document analysis","Free to use with a Google account","Audio Overview is a genuinely innovative feature for passive review"],cons:["Limited to uploaded sources — cannot browse the web or use general knowledge","Source limit per notebook constrains very large research projects","Less suited for creative writing or broad open-ended tasks"],pricingSummary:"NotebookLM is currently free to use with a Google account. Additional premium features may be available through Google One. See official site for current availability.",pricingModel:"free",platform:["web"],audience:["students","researchers","professionals","analysts"],categories:["ai-research","ai-note-taking"],tags:["research","document-analysis","note-taking","google","citations"],officialUrl:"https://notebooklm.google.com",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=notebooklm",alternatives:["perplexity","claude","chatgpt"],relatedTools:["perplexity","claude","notion-ai"],comparisonSlugs:[],faq:[{question:"Is NotebookLM free?",answer:"Yes. NotebookLM is currently free to use with a Google account. This makes it an exceptional value — particularly given its capabilities for document analysis and research."},{question:"What types of files can I upload to NotebookLM?",answer:"NotebookLM accepts PDFs, text files, Google Docs, Google Slides, YouTube video URLs, and audio files. This broad file support makes it practical for most research workflows."},{question:"What is the Audio Overview feature?",answer:"Audio Overview is a unique NotebookLM feature that generates a podcast-style conversation between two AI hosts discussing the key themes and insights from your uploaded sources. It is useful for passive review of research material during commutes or exercise."},{question:"How many documents can I upload to NotebookLM?",answer:"NotebookLM supports up to 50 sources per notebook with a total limit of approximately 25 million words across sources. This is sufficient for most research projects, though very large literature reviews may require multiple notebooks."}],editorialVerdict:"NotebookLM is one of the most useful free AI tools available. For anyone doing serious document-based research, its source-grounded approach and citation transparency make it significantly more reliable than general-purpose chatbots for document analysis. The Audio Overview feature is genuinely innovative. Strongly recommended.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-04-01",logoLetter:"N",logoColor:"bg-blue-700",featured:!0,trending:!0,editorPick:!0,rating:4.7}],Ub=[{id:"grok",name:"Grok",slug:"grok",tagline:"xAI's real-time AI with no-holds-barred answers",shortDe
359scription:"Grok is xAI's AI assistant, built with direct access to real-time X (Twitter) data and a reputation for being more willing to engage with edgy or controversial topics than other mainstream chatbots.",fullDescription:"Grok is developed by xAI, Elon Musk's AI company, and is deeply integrated with the X platform. Its defining advantage is real-time access to X's data firehose — meaning it can surface current conversations, breaking news, and trending information before most other models. Grok is also notable for its less restricted response style, engaging with humor, controversy, and political topics that other AI assistants often refuse.",whatItDoes:"Grok answers questions, writes content, analyses current events from X data, generates images with Aurora, and engages in open-ended conversation. Its real-time information access makes it particularly useful for tracking fast-moving news, social discourse, and trending topics.",bestFor:"X/Twitter power users and those who want real-time social media intelligence alongside AI reasoning.",useCases:["Tracking real-time news and social sentiment on X","Open-ended conversation on sensitive or edgy topics","Research on current events with fresh data","AI image generation with the Aurora model","Opinion and analysis from a less filtered AI perspective"],features:["Real-time access to X (Twitter) data and posts","Aurora image generation model","Less restricted response policy than most mainstream AI","Available directly within X Premium","Long context window for extended conversations"],pros:["Real-time X data access is a unique and valuable differentiator","Engaging, direct communication style","Included with X Premium subscription"],cons:["Less reliable for precise factual research than citation-focused tools","Deeply tied to the X ecosystem and its dynamics","Image generation quality is competitive but not best-in-class"],pricingSummary:"Grok is available to X Premium subscribers starting at $8/month. Enhanced Grok features are available on X Premium+ plans.",pricingModel:"paid",platform:["web","mobile"],audience:["everyone","journalists","researchers"],categories:["ai-chatbots"],tags:["chatbot","xai","real-time","twitter","x","elon-musk"],officialUrl:"https://x.ai/grok",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=grok",alternatives:["chatgpt","claude","gemini","perplexity"],relatedTools:["chatgpt","perplexity"],comparisonSlugs:[],faq:[{question:"What makes Grok different from ChatGPT?",answer:"Grok's primary differentiator is real-time access to X (Twitter) data, allowing it to discuss current events with up-to-the-minute information. Grok is also known for a more open response policy on controversial topics. ChatGPT has a larger feature set including DALL-E, web browsing, and a much broader plugin ecosystem."},{question:"Do I need X Premium to use Grok?",answer:"Yes, Grok is available as a feature within X Premium and X Premium+ subscriptions. There is no standalone free tier separate from the X Premium subscription."},{question:"Is Grok good for research?",answer:"Grok is particularly strong for research involving social media discourse, trending topics, and real-time news. For academic research requiring source citations, Perplexity is a more appropriate choice."}],editorialVerdict:"Grok's real-time X integration is genuinely compelling for anyone who needs to stay on top of fast-moving social conversations and news. Its directness is refreshing in a landscape where AI assistants are often overly cautious. However, for general-purpose AI tasks, ChatGPT and Claude still offer more complete and reliable experiences.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-04-01",logoLetter:"G",logoColor:"bg-gray-900",featured:!1,trending:!0,editorPick:!1,rating:4.2},{id:"mistral",name:"Mistral Le Chat",slug:"mistral",tagline:"Europe's leading AI assistant with enterprise focus",shortDescription:"Le Chat is Mistral AI's consumer-facing chatbot, built on its industry-leading open-weight models. Known for speed, European data privacy compliance, and strong coding and reasoning capabilities.",fullDescription:"Mistral AI is a Paris-based AI company that has rapidly become one of the most respected AI labs globally, particularly for its open-weight model releases. Le Chat is Mistral's consumer and enterprise chatbot interface, powered by models like Mistral Large. It is notable for its strong coding performance, European data compliance, and enterprise-grade API access. For businesses and developers in 
359Europe, Mistral is often the preferred option over US-based providers.",whatItDoes:"Le Chat provides AI chat, writing, coding, analysis, and reasoning capabilities through a clean web interface. Mistral's models are also widely used through the API for building AI-powered applications, particularly by European developers and enterprises.",bestFor:"European businesses and developers who need a capable AI assistant with GDPR-compliant infrastructure and strong coding capabilities.",useCases:["Coding assistance and technical problem solving","Content generation and editing","Enterprise AI with European data residency","API integration for AI-powered apps","Research and analysis tasks"],features:["Built on Mistral Large and other top open-weight models","Strong coding and reasoning capabilities","European data processing for GDPR compliance","Fast response generation","API access for developers and enterprises"],pros:["Best-in-class option for European data compliance","Strong coding performance rivaling top US models","Open-weight models available for self-hosting"],cons:["Smaller ecosystem than OpenAI or Anthropic","Less widespread consumer recognition","Web search integration less developed than some competitors"],pricingSummary:"Le Chat offers a free tier. Pro plans start at around $14.99/month. API pricing available for developers.",pricingModel:"freemium",platform:["web","api"],audience:["developers","enterprises","professionals"],categories:["ai-chatbots","ai-coding"],tags:["chatbot","mistral","european-ai","open-source","gdpr"],officialUrl:"https://mistral.ai",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=mistral",alternatives:["chatgpt","claude","gemini"],relatedTools:["chatgpt","claude"],comparisonSlugs:[],faq:[{question:"Is Mistral GDPR compliant?",answer:"Yes. Mistral AI is a French company and processes data within European infrastructure, making it well-suited for businesses with GDPR obligations. Enterprise agreements with specific data processing terms are available."},{question:"How does Mistral compare to GPT-4?",answer:"Mistral Large is competitive with GPT-4 on many benchmarks, particularly for coding and reasoning. In independent evaluations, it frequently matches GPT-4 performance at lower cost, making it an attractive option for high-volume API use."}],editorialVerdict:"Mistral is the standout choice for European teams needing data residency compliance without sacrificing AI capability. Its models are genuinely competitive with the top US offerings, and the open-weight releases make it uniquely flexible for self-hosting scenarios.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-25",logoLetter:"M",logoColor:"bg-orange-500",featured:!1,trending:!0,editorPick:!1,rating:4.4},{id:"v0",name:"v0 by Vercel",slug:"v0",tagline:"Generate production-ready UI from text prompts",shortDescription:"v0 is Vercel's AI-powered UI generation tool that produces clean, production-ready React and Tailwind code from natural language descriptions — bridging the gap between design idea and working UI.",fullDescription:"v0 is designed to eliminate the blank-canvas problem for UI development. Developers and designers describe what they want in plain English, and v0 returns functional React components built with Tailwind CSS and shadcn/ui — components ready to copy directly into a Next.js or React project. v0 understands modern design systems and generates accessible, responsive code that follows current best practices.",whatItDoes:"v0 takes natural language descriptions and produces fully functional React/Tailwind UI components. Users can iterate through chat refinement, attach screenshots for style matching, and export production-ready code. It is deeply integrated with Vercel's deployment platform for immediate preview and deploy.",bestFor:"Frontend developers who want to rapidly prototype and generate production UI components without starting from scratch.",useCases:["Generating React UI components from plain English descriptions","Rapid prototyping of dashboards, landing pages, and forms","Iterating on UI designs through conversation","Convert
359ing design screenshots into working code","Bootstrapping new Next.js projects with complete UI"],features:["Text-to-UI React and Tailwind code generation","shadcn/ui component library integration","Iterative refinement through chat","Screenshot-to-code understanding","One-click deploy to Vercel"],pros:["Code quality is remarkably clean and production-ready","Deep integration with Next.js and Vercel ecosystem","Significantly faster UI development for React developers"],cons:["Optimized for Next.js/React — less useful for other stacks","Complex interactions and state management still require manual coding","Limited to UI generation — not a full app builder"],pricingSummary:"v0 offers a free tier with limited monthly generations. Premium plans provide more generations and features.",pricingModel:"freemium",platform:["web"],audience:["developers","designers"],categories:["ai-coding","ai-app-builders"],tags:["ui-generation","react","tailwind","vercel","code-generation","frontend"],officialUrl:"https://v0.dev",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=v0",alternatives:["emergent","lovable","bolt","cursor"],relatedTools:["cursor","github-copilot","bolt"],comparisonSlugs:[],faq:[{question:"What framework does v0 generate code for?",answer:"v0 primarily generates React components using Tailwind CSS and shadcn/ui. It is optimized for Next.js projects and integrates directly with Vercel deployment, though the generated components work in any React application."},{question:"Is v0 the same as a no-code builder?",answer:"No. v0 generates actual React code that you own and can modify — it is not a no-code tool. It is a code generation assistant for frontend developers who want to accelerate UI creation while maintaining full control over the codebase."},{question:"How does v0 compare to Bolt or Lovable?",answer:"v0 focuses specifically on UI component generation with exceptionally clean code quality. Bolt and Lovable are more complete app builders that generate full-stack applications. v0 is the better choice when you want production-quality UI components, while Bolt or Lovable are better for rapid full-app prototyping."}],editorialVerdict:"v0 is one of the most impressive code generation tools available for frontend developers. The quality of its React/Tailwind output is consistently better than other AI tools for UI work, and its iterative chat refinement makes achieving exactly the right design genuinely fast. An essential tool for any React developer's workflow.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-04-02",logoLetter:"v",logoColor:"bg-black",featured:!0,trending:!0,editorPick:!0,rating:4.7},{id:"windsurf",name:"Windsurf",slug:"windsurf",tagline:"The agentic AI IDE that codes alongside you",shortDescription:"Windsurf (by Codeium) is an AI-first code editor and IDE that takes an agentic approach to coding assistance — not just completing your co
359de, but actively proposing multi-file changes, running commands, and navigating your codebase.",fullDescription:"Windsurf is built by Codeium, one of the leading AI coding companies, and positions itself as a direct Cursor competitor. Its standout feature is the Cascade agent, which can plan and execute multi-step coding tasks across files, run terminal commands, and apply sweeping changes — all within a VS Code-compatible interface. Windsurf is designed for developers who want an AI that acts as an autonomous coding collaborator rather than a passive autocomplete.",whatItDoes:"Windsurf provides AI code completion, inline edits, and its flagship Cascade agent that can independently navigate codebases, write code across multiple files, execute commands, and fix issues end-to-end. It supports all major languages and integrates with existing project structures.",bestFor:"Developers who want a fully agentic AI coding environment that handles complete features and bug fixes with minimal manual prompting.",useCases:["Autonomous multi-file feature implementation","Bug diagnosis and fixes across complex codebases","AI-driven code refactoring and modernization","Terminal command execution via AI agent","Full project code generation from specifications"],features:["Cascade agentic AI for multi-file autonomous coding","VS Code-compatible interface and extension support","Real-time codebase awareness and navigation","Terminal integration for command execution","Support for all major programming languages"],pros:["Cascade agent is one of the most capable autonomous coding agents","VS Code compatibility means a familiar environment","Strong free tier relative to competitors"],cons:["Agentic changes can sometimes be too aggressive or hard to control","Slightly less polished UI than Cursor in some areas","API credit consumption can be high for complex tasks"],pricingSummary:"Windsurf offers a free tier with monthly AI credits. Pro plan at $15/month provides expanded credits and priority access to premium models.",pricingModel:"freemium",platform:["desktop"],audience:["developers"],categories:["ai-coding"],tags:["ide","code-editor","agentic-ai","codeium","coding-assistant"],officialUrl:"https://codeium.com/windsurf",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=windsurf",alternatives:["curs
359or","github-copilot","replit"],relatedTools:["cursor","github-copilot"],comparisonSlugs:[],faq:[{question:"How is Windsurf different from Cursor?",answer:"Both Windsurf and Cursor are AI-first code editors that compete directly with each other. Windsurf's Cascade agent is particularly strong for autonomous multi-step tasks. Cursor is often preferred for its overall polish and Composer feature. Many developers try both and prefer one based on workflow fit."},{question:"Does Windsurf work with my existing VS Code extensions?",answer:"Yes. Windsurf is built on VS Code and supports most VS Code extensions, themes, and settings. Migration from VS Code is generally seamless."}],editorialVerdict:"Windsurf's Cascade agent represents one of the most ambitious implementations of agentic coding AI, and it largely delivers. For developers comfortable with AI-driven coding, Windsurf's ability to tackle complete features autonomously is a genuine productivity multiplier. Highly recommended alongside Cursor as a top AI coding tool.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-04-03",logoLetter:"W",logoColor:"bg-cyan-600",featured:!1,trending:!0,editorPick:!1,rating:4.5},{id:"tabnine",name:"Tabnine",slug:"tabnine",tagline:"Privacy-first AI code completion for enterprise teams",shortDescription:"Tabnine is an AI code completion tool focused on privacy, security, and enterprise needs — offering private deployment options and team-specific code training that competitors don't match.",fullDescription:"Tabnine has been in the AI coding space longer than most competitors and has built a strong reputation with enterprise development teams who need code completion without sending proprietary code to external servers. Its key differentiator is the ability to deploy privately on-premises or in a private cloud, train models on internal codebases, and guarantee that code never leaves the organization's infrastructure.",whatItDoes:"Tabnine provides AI-powered code completion, generation, and chat directly inside IDEs including VS Code, JetBrains, Neovim, and others. Enterprise customers can train custom models on their private codebase for domain-specific suggestions that reflect their team's patterns and conventions.",bestFor:"Enterprise development teams with strict data security requirements who cannot send proprietary code to external AI providers.",useCases:["Secure AI code completion for regulated industries","On-premise deployment for maximum data control","Team-trained models that reflect company coding standards","IDE-native AI coding without switching tools","Multi-language support across large development organizations"],features:["Private deployment option — code never leaves your infrastructure","Custom model training on proprietary codebases","Support for 30+ programming languages","Integrates with VS Code, JetBrains, Vim, Eclipse, and more","SOC 2 Type II certified for enterprise compliance"],pros:["Best-in-class enterprise security and private deployment","Can be trained on your own codebase for highly relevant suggestions","Widest IDE compatibility of any AI coding tool"],cons:["Completion quality may be below Cursor or GitHub Copilot for general use","Private deployment setup requires infrastructure investment","Consumer-facing experience less polished than competitors"],pricingSummary:"Tabnine offers a free tier for individuals. Pro plan at $12/user/month. Enterprise plans with private deployment available on request.",pricingModel:"freemium",platform:["desktop","web"],audience:["developers","enterprises"],categories:["ai-coding"],tags:["code-completion","enterprise","privacy","on-premise","ide"],officialUrl:"https://tabnine.com",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=tabnine",alternatives:["github-copilot","cursor","windsurf"],relatedTools:["github-copilot","cursor"],comparisonSlugs:[],faq:[{question:"Does Tabnine send my code to external servers?",answer:"By default, the SaaS version of Tabnine sends code snippets for completion. Enterprise customers can choose fully private on-premise or private cloud deployment where no code leaves their infrastru
359cture."},{question:"How does Tabnine compare to GitHub Copilot?",answer:"GitHub Copilot generally has stronger completion quality for open-source languages and patterns. Tabnine wins for enterprise use cases requiring private deployment, compliance, and custom model training on proprietary code."}],editorialVerdict:"Tabnine is the clear leader for enterprise teams where data security and private deployment are non-negotiable. If your team cannot send code to external servers, Tabnine is the most capable option available. For individual developers without strict security needs, GitHub Copilot or Cursor typically offer stronger experiences.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-20",logoLetter:"T",logoColor:"bg-blue-700",featured:!1,trending:!1,editorPick:!1,rating:4.1},{id:"adobe-firefly",name:"Adobe Firefly",slug:"adobe-firefly",tagline:"Commercially safe AI image generation from Adobe",shortDescription:"Adobe Firefly is Adobe's AI image and content generation platform, designed for commercial use with training data that is licensed and rights-cleared — a critical advantage for professional creative work.",fullDescription:"Adobe Firefly is built into Adobe Creative Cloud and available as a standalone web tool. Its core differentiator is commercial safety: unlike Midjourney or Stable Diffusion, Firefly is trained exclusively on licensed content from Adobe Stock, openly licensed works, and public domain material. This means images generated by Firefly are safe to use commercially without IP risk. Firefly's Generative Fill feature in Photoshop has been especially transformative for professional photo editing.",whatItDoes:"Adobe Firefly generates images from text prompts, fills and extends images with AI (Generative Fill), generates vector graphics, creates text effects, and produces design variations. Deeply integrated into Photoshop, Illustrator, and Premiere Pro for inline creative assistance.",bestFor:"Professional designers, marketers, and agencies who need commercially safe AI-generated visuals inside their existing Adobe Creative Cloud workflow.",useCases:["Generating stock-free images for commercial projects","Photoshop Generative Fill for photo editing and compositing","Creating design variations and mockups quickly","Generating vector assets in Illustrator","Video B-roll and transition generation in Premiere Pro"],features:["Commercially safe — trained on licensed and public domain content","Generative Fill in Photoshop for seamless content expansion","Text-to-vector generation in Illustrator","Deep Creative 
359Cloud integration","Content credentials for AI attribution transparency"],pros:["Commercially safe for professional and agency use","Best-in-class integration with Photoshop and Illustrator","Adobe Stock training data produces high-quality, professional-looking outputs"],cons:["Image generation style can be more conservative than Midjourney","Requires Adobe subscription for full access","Less flexible for highly stylized or experimental creative work"],pricingSummary:"Adobe Firefly is available on the web with a free tier including monthly generative credits. Included in Creative Cloud plans. Additional generative credits can be purchased.",pricingModel:"freemium",platform:["web","desktop"],audience:["designers","marketers","agencies","professionals"],categories:["ai-image-generation","ai-design"],tags:["image-generation","adobe","creative-cloud","commercial-safe","generative-fill"],officialUrl:"https://firefly.adobe.com",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=adobe-firefly",alternatives:["midjourney","leonardo-ai","ideogram"],relatedTools:["midjourney","canva-ai"],comparisonSlugs:[],faq:[{question:"Is Adobe Firefly safe for commercial use?",answer:"Yes. Adobe Firefly is specifically trained to be commercially safe, using only Adobe Stock licensed content, openly licensed content, and public domain material. Adobe indemnifies enterprise customers against IP claims from Firefly-generated content."},{question:"Does Firefly work without a Creative Cloud subscription?",answer:"Yes. Adobe Firefly is available as a standalone web app at firefly.adobe.com with a free tier that includes monthly generative credits. A full Creative Cloud subscription unlocks Firefly's integration inside Photoshop, Illustrator, and Premiere."}],editorialVerdict:"Adobe Firefly is the safest choice for professionals who need AI-generated images for commercial projects. Its Generative Fill in Photoshop is arguably the most impactful AI feature released for professional photo editors. If commercial IP safety matters to your work, Firefly is the clear choice over Midjourney or Stable Diffusion.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-04-01",logoLetter:"F",logoColor:"bg-red-600",featured:!0,trending:!0,editorPick:!0,rating:4.6},{id:"canva-ai",name:"Canva AI",slug:"canva-ai",tagline:"Design anything with AI — no design skills required",shortDescription:"Canva AI (Magic Studio) brings a full suite of AI-powered design tools to the world's most popular graphic design platform — text-to-image, background removal, AI writing, video generation, and more, all in one workspace.",fullDescription:"Canva has integrated AI deeply across its platform under the Magic Studio brand. Magic Media generates images and video from text. Magic Write assists with copywriting. Magic Eraser removes objects from photos. Backgroun
359d Remover has become one of the most-used tools on the platform. Canva AI tools are accessible to Canva's 170+ million users and require no design background to use effectively.",whatItDoes:"Canva AI generates images and video from text, writes and rewrites copy, removes and replaces backgrounds, expands images, translates designs, and even generates full presentation decks from a text prompt. All within Canva's drag-and-drop design environment.",bestFor:"Non-designers, small businesses, marketers, and social media creators who need to produce professional visual content quickly.",useCases:["Creating social media graphics and posts with AI assistance","Generating images for presentations and marketing materials","Removing backgrounds from product photos","Writing and polishing marketing copy inside the design canvas","Generating complete presentation decks from a brief"],features:["Magic Media: text-to-image and text-to-video generation","Magic Write: AI copywriting inside the design canvas","Magic Eraser and Background Remover","Magic Design: AI-powered template generation from prompts","Dream Lab: advanced image generation with style control"],pros:["Enormous template library with AI tools built in — no workflow change needed","Accessible to complete non-designers","Most AI features available on free tier or affordable Pro plan"],cons:["AI image quality is behind dedicated generators like Midjourney","Pro features required for full AI feature access","Less suitable for highly specialized or professional design work"],pricingSummary:"Canva AI features are available on the free plan with monthly credit limits. Canva Pro at $14.99/month provides expanded AI credits. Teams and Enterprise plans available.",pricingModel:"freemium",platform:["web","mobile","desktop"],audience:["everyone","marketers","small-businesses","content-creators"],categories:["ai-image-generation","ai-design","ai-marketing"],tags:["design","canva","image-generation","no-code","marketing","social-media"],officialUrl:"https://canva.com/ai-image-generator",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=canva-ai",alternatives:["adobe-firefly","midjourney","ideogram"],relatedTools:["adobe-firefly","gamma"],comparisonSlugs:[],faq:[{question:"Is Canva AI free to use?",answer:"Yes. Canva offers a free plan with limited monthly AI credits for Magic Media and other AI features. Canva Pro at $14.99/month provides significantly more credits and additional AI capabilities."},{question:"How does Canva AI compare to Midjourney?",answer:"Midjourney produces significantly better image quality for artistic and photorealistic work. Canva AI wins for practical, workflow-integrated design — you can generate an image and immediately add it to a presentation or social post, which Midjourney cannot do."}],editorialVerdict:"Canva AI is the most practical AI design tool for non-designers. Its AI features are deeply embedded into an already-excellent design platform, and the breadth of AI capabilities — image, video, copy, presentations — is unmatched in one product. For professional art direction, Midjourney or Firefly are stronger, but for everyday visual content creation, Canva is hard to beat.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-04-02",logoLetter:"C",logoColor:"bg-blue-500",featured:!0,trending:!1,editorPick:!1,rating:4.5},{id:"ideogram",name:"Ideogram",slug:"ideogram",tagline:"AI image generation that actually handles text correctly",shortDe
359scription:"Ideogram is an AI image generator that stands out by reliably rendering legible, stylistically coherent text within images — a capability most other AI image tools struggle with significantly.",fullDescription:"Ideogram was founded by former Google Brain researchers and has quickly earned a reputation as the best AI image generator for designs that include text — logos, posters, book covers, social graphics, and other assets where typography is central. Its v2 and v3 models significantly improved realism and style range, making it competitive with Midjourney and DALL-E for broader image generation tasks while maintaining its text advantage.",whatItDoes:"Ideogram generates images from text prompts with particular strength in typography rendering, graphic design styles, and poster/logo aesthetics. Users can specify aspect ratios, styles, and use the 'Magic Prompt' feature to automatically enhance prompts.",bestFor:"Graphic designers, marketers, and content creators who frequently need AI-generated images that include readable text elements.",useCases:["Generating posters, thumbnails, and banners with text","Logo concept generation","Social media graphics with quotes or captions integrated","Book and album cover design concepts","Product mockups with typographic elements"],features:["Industry-leading text rendering accuracy in AI images","Multiple artistic style options (Realistic, Design, Anime, etc.)","Magic Prompt for automatic prompt enhancement","Remix and variation generation","Canvas editor for post-generation editing"],pros:["Best-in-class text rendering in generated images","Strong graphic design and poster aesthetic outputs","Free tier is generous for casual use"],cons:["Photorealistic portrait quality still lags behind Midjourney v6","Fewer community features than Midjourney","Style range is narrower than some competitors"],pricingSummary:"Ideogram offers a free tier with limited daily generations. Basic plan at $7/month and Plus plan at $16/month for higher-volume use.",pricingModel:"freemium",platform:["web"],audience:["designers","marketers","content-creators"],categories:["ai-image-generation","ai-design"],tags:["image-generation","text-in-images","typography","poster","logo","graphic-design"],officialUrl:"https://ideogram.ai",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=ideogram",alternatives:["midjourney","adobe-firefly","canva-ai"],relatedTools:["midjourney","leonardo-ai"],comparisonSlugs:[],faq:[{question:"Why is Ideogram better at text than other AI tools?",answer:"Most AI image generators are diffusion models that treat text as shapes rather than semantically meaningful content, leading to garbled or incorrect letters. Ideogram's architecture and training data were specifically optimized for accurate text rendering, which is why it consistently outperforms competitors on this dimension."},{question:"Can I use Ideogram for commercial projects?",answer:"Yes. Ideogram grants commercial use rights for images generated under paid plans. Free tier generations are for personal, non-commercial use. Review the current terms for specific commercial rights details."}],editorialVerdict:"Ideogram fills a genuine gap in the AI image generation market. If your work regularly involves images with text — marketing graphics, posters, thumbnails — Ideogram is the clear tool of choice. Its broader image generation capabilities have also improved to the point where it is a solid alternative to Midjourney for many design use cases.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-04-01",logoLetter:"I",logoColor:"bg-rose-600",featured:!1,trending:!0,editorPick:!0,rating:4.5},{id:"pika",name:"Pika",slug:"pika",tagline:"Turn ideas into video with AI",shortDescription:"Pika is an AI video generation platform that lets users create short, stylized video clips from text or image prompts — one of the most accessible entry points into AI video creation.",fullDescription:"Pika Labs has emerged as one of the most user-friendly AI video generation tools, making video creation accessible to people without video production experience. Pika 1.5 introduced significant quality improvements and new features like Pikaffects (special physics and transformation effects), sound effects generation, and more granular control over motion and camera movement.",whatItDoes:"Pika generates short video clips from text prompts or reference images. Users can control camera movement, aspect ratio, motion intensity, and duration. Pikaffects enable specific visual transformations like melting, exploding, or morphing objects.",bestFor:"Content creators, social media managers, and marketers who want to quickly generate engaging short-form AI video content.",useCases:["Creating short promotional video clips from product images","Generating B-roll footage for content creation","Social media video content with stylized effects","Animated product demonstrations","Music video and creative short-form content"],features:["Text-to-vi
359deo and image-to-video generation","Pikaffects for physics and transformation animations","Camera motion control (pan, zoom, rotate)","Sound effects and ambient audio generation","Multiple aspect ratio support (16:9, 9:16, 1:1)"],pros:["Very accessible and easy to use for beginners","Pikaffects produce unique, eye-catching visual content","Good quality for social media short clips"],cons:["Limited to short clips — not for long-form video production","Less precise control than professional tools like Runway","Video quality behind Runway or Kling for cinematic work"],pricingSummary:"Pika offers a free tier with limited monthly credits. Basic plan at $8/month, Standard at $28/month for higher usage.",pricingModel:"freemium",platform:["web"],audience:["content-creators","marketers","social-media-managers"],categories:["ai-video-generation"],tags:["video-generation","text-to-video","short-form","social-media","animation"],officialUrl:"https://pika.art",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=pika",alternatives:["runway","luma-dream-machine","heygen"],relatedTools:["runway","synthesia"],comparisonSlugs:[],faq:[{question:"How long can Pika videos be?",answer:"Pika generates clips up to 10–15 seconds in length. For longer video production, tools like Runway Gen-3 or Kling are better suited."},{question:"How does Pika compare to Runway?",answer:"Pika is easier to use and more accessible for beginners, with its Pikaffects being a unique feature. Runway Gen-3 produces higher-quality, more cinematic video with finer control, making it the preferred choice for professional film and commercial production."}],editorialVerdict:"Pika is a standout entry point for AI video creation — genuinely easy to use, with some unique effects that produce content difficult to replicate elsewhere. For social media content creators who want eye-catching short clips without a production background, Pika delivers excellent value.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-28",logoLetter:"P",logoColor:"bg-violet-600",featured:!1,trending:!0,editorPick:!1,rating:4.3},{id:"luma-dream-machine",name:"Luma Dream Machine",slug:"luma-dream-machine",tagline:"Photorealistic AI video from text or image",shortDescription:"Luma Dream Machine generates high-quality, physically realistic video clips from text and image prompts, known for smooth motion, accurate physics, and impressive cinematic quality.",fullDescription:"Luma AI's Dream Machine model focuses on physical realism and smooth motion in AI video generation. Its outputs are often praised for natural-looking movement that many AI video tools struggle to reproduce — objects interact with their environment plausibly, camera movements feel cinematic, and subject motion flows naturally. Dream Machine supports both text-to-video and image-to-video workflows.",whatItDoes:"Dream Machine generates 5–10 second video clips from text prompts or reference images. Its core strength is physically plausible motion and cinematic camera work. Users can control camera movement, specify shot types, and iterate on generations.",bestFor:"Filmmakers, visual artists, and creative professionals who need physically realistic, high-quality AI video for commercial or artistic projects.",useCases:["Generating cinematic B-roll footage","Visualizing scenes and shot ideas for film pre-production","Product video with realistic lighting and physics","Creative video art and experimental filmmaking","Social media content requiring high visual quality"],features:["Physically realistic motion and environment interaction","Text-to-video and image-to-video generation","Cinematic camera movement control","High resolution output options","Fast generation speeds for iteration"],pros:["Best physical realism and motion quality among AI video generators","Natural-looking results that often fool viewers","Good generation speed relative to quality"],cons:["Less control over fine-grained visual elements than Runway","
359Limited clip length","Free tier is quite limited"],pricingSummary:"Luma Dream Machine offers a free tier with limited monthly generations. Plus plan at $29.99/month for expanded access.",pricingModel:"freemium",platform:["web","api"],audience:["filmmakers","designers","content-creators"],categories:["ai-video-generation"],tags:["video-generation","text-to-video","realistic","cinematic","physics"],officialUrl:"https://lumalabs.ai/dream-machine",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=luma-dream-machine",alternatives:["runway","pika","synthesia"],relatedTools:["runway","pika"],comparisonSlugs:[],faq:[{question:"How is Luma Dream Machine different from Runway?",answer:"Luma Dream Machine is particularly strong for physically realistic scenes with natural motion. Runway Gen-3 offers more production-grade control and is preferred for commercial video work requiring precise framing and editing. Dream Machine is often faster and produces excellent results with less prompt engineering."},{question:"Can Luma Dream Machine generate long videos?",answer:"Currently Dream Machine generates clips of 5–10 seconds. For longer videos, clips can be chained together with editing software. This limitation is common across current AI video generation tools."}],editorialVerdict:"Luma Dream Machine produces some of the most physically convincing AI video available. If realism and natural motion are priorities, Dream Machine frequently outperforms competitors. It is our top recommendation alongside Runway for high-quality AI video generation.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-04-02",logoLetter:"L",logoColor:"bg-indigo-600",featured:!1,trending:!0,editorPick:!0,rating:4.6},{id:"murf-ai",name:"Murf AI",slug:"murf-ai",tagline:"Professional AI voiceovers in minutes",shortDe
359scription:"Murf AI is a text-to-speech platform with studio-quality AI voices, used by marketers, educators, and content creators to produce professional voiceovers without recording equipment or voice talent.",fullDescription:"Murf offers over 120 AI voices across 20+ languages, with a focus on voice quality that matches professional voice-over talent. Its integrated studio lets users add voiceovers directly to video, slides, or audio files. Murf is widely used for explainer videos, e-learning courses, podcast intros, product demos, and social media content where recording a real voice is impractical.",whatItDoes:"Murf converts text to natural-sounding speech using AI voice models. Users can choose from a library of voices, adjust pace and pitch, and sync audio with video or image slides in the integrated studio. Multiple voices can be combined in one project for multi-character content.",bestFor:"Content creators, e-learning developers, marketers, and businesses that regularly produce video or audio content and need high-quality narration without recording equipment.",useCases:["E-learning course narration and explainer videos","YouTube video voiceovers","Product demo and promotional video narration","Podcast introduction and ad narration","Localization into multiple languages"],features:["120+ AI voices in 20+ languages","Integrated video-voiceover sync studio","Voice cloning option for custom voice creation","Pitch, pace, and emphasis controls","Team collaboration features"],pros:["Voice quality among the best in the text-to-speech category","Integrated video studio eliminates need for separate editing tools","Excellent multilingual coverage for localization"],cons:["AI voice quality for complex emotional inflection still has limits","Free tier is very restricted","Less suitable for ultra-realistic voice cloning compared to ElevenLabs"],pricingSummary:"Murf offers a limited free plan. Creator plan at $29/month for individuals. Team plans with collaboration features available from $39/month.",pricingModel:"freemium",platform:["web"],audience:["content-creators","marketers","educators"],categories:["ai-audio-voice"],tags:["text-to-speech","voiceover","tts","narration","e-learning"],officialUrl:"https://murf.ai",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=murf-ai",alternatives:["elevenlabs","heygen","synthesia"],relatedTools:["elevenlabs","descript"],comparisonSlugs:[],faq:[{question:"How does Murf compare to ElevenLabs?",answer:"ElevenLabs excels at ultra-realistic voice cloning and emotional expressiveness for demanding use cases. Murf is better positioned as a professional workflow tool with its integrated video studio, wider language support, and team features. For straightforward voiceover production, Murf offers a more complete platform."},{question:"Can Murf clone my voice?",answer:"Yes. Murf offers voice cloning as part of its Enterprise plan, allowing you to create a custom AI voice model from your own recordings. This feature is subject to usage policies designed to prevent misuse."}],editorialVerdict:"Murf is our top recommendation for professionals who need a complete voiceover production platform — not just a voice generation API. Its integrated studio, team features, and voice quality make it the most practical option for regular video and e-learning content production.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-22",logoLetter:"M",logoColor:"bg-green-600",featured:!1,trending:!1,editorPick:!0,rating:4.4},{id:"opus-clip",name:"Opus Clip",slug:"opus-clip",tagline:"Turn long videos into viral short clips automatically",shortDescription:"Opus Clip uses AI to automatically identify the best moments in long-form video and repurpose them into punchy, engaging short clips optimized for TikTok, Reels, and Shorts.",fullDescription:"Opus Clip solves one of the most time-consuming tasks in modern content creation: clipping long YouTube videos, podcasts, or webinars into engaging short-form content. Its AI analyzes engagement, identifies high-value moments, adds captions automatically, and reframes vertical video — turning a one-hour video into 10–15 social-ready clips in minutes.",whatItDoes:"Opus Clip ingests a long-form video URL or upload, analyzes its content for the highest-engagement moments, and produces multiple short clips with AI-generated captions, animated text, and speaker reframing. Clips include a viral potential score to help prioritize posting.",bestFor:"Content creators, podcasters, and marketers who produce long-form video content and want to efficie
359ntly distribute it across short-form platforms.",useCases:["Clipping YouTube videos into TikTok and Reels content","Podcast repurposing into social media clips","Webinar and event highlights generation","Interview clipping for LinkedIn and Instagram","Course content repurposing into promotional clips"],features:["AI-powered highlight detection and clip selection","Automatic caption generation and animation","Speaker reframing for vertical video format","Viral potential scoring for each clip","Direct scheduling to TikTok, YouTube, and Instagram"],pros:["Dramatically reduces time spent on video repurposing","Caption quality and animation are polished","Viral potential score is genuinely useful for prioritization"],cons:["AI clip selection is not always optimal for nuanced content","Per-minute pricing can add up for high-volume producers","Less control over fine-tuned clip editing than manual tools"],pricingSummary:"Opus Clip offers a free plan with limited monthly minutes. Starter plan at $15/month. Pro plan at $29/month with expanded minutes and features.",pricingModel:"freemium",platform:["web"],audience:["content-creators","podcasters","marketers"],categories:["ai-video-generation"],tags:["video-repurposing","short-form","tiktok","reels","shorts","clipping"],officialUrl:"https://opus.pro",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=opus-clip",alternatives:["veed","descript","runway"],relatedTools:["veed","descript"],comparisonSlugs:[],faq:[{question:"What types of videos work best with Opus Clip?",answer:"Opus Clip works best with content that has clear speech — interviews, podcasts, webinars, talking-head videos, and lectures. Videos with clear value moments and quotable statements tend to produce the best clips."},{question:"Does Opus Clip add captions automatically?",answer:"Yes. Opus Clip automatically generates and animates captions for every clip. Caption styles can be customized in terms of font, color, and animation."}],editorialVerdict:"Opus Clip is the best tool available for video repurposing automation. For content creators who produce regular long-form content, it can save hours per week while producing clips that perform well on short-form platforms. The viral potential scoring feature is a thoughtful addition that helps creators prioritize their posting calendar.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-04-03",logoLetter:"O",logoColor:"bg-pink-600",featured:!1,trending:!0,editorPick:!0,rating:4.5},{id:"grammarly",name:"Grammarly",slug:"grammarly",tagline:"AI writing assistance trusted by 40 million people",shortDescription:"Grammarly is the world's leading AI writing assistant — checking grammar, style, tone, and clarity in real time across browsers, desktop apps, and thousands of integrations.",fullDescription:"Grammarly has evolved from a grammar checker into a comprehensive AI writing platform. GrammarlyGO, its generative AI feature, can draft emails, rewrite paragraphs, adjust tone, and suggest entire responses. Its real-time editing capabilities work across Gmail, Docs, Microsoft Office, Slack, and virtually every website through its browser extension — making it one of the most ubiquitous AI writing tools in daily professional use.",whatItDoes:"Grammarly reviews writing in real time for grammar, punctuation, style, tone, and clarity. Its generative AI layer can draft text from prompts, rewrite content in different tones, improve clarity, shorten or expand text, and suggest context-appropriate responses in email and messaging apps.",bestFor:"Professionals, students, and anyone who writes regularly in English and wants continuous AI assistance to improve quality and catch errors without switching tools.",useCases:["Real-time grammar and style correction across all writing","Email drafting and response suggestion in Gmail and Outlook","Tone adjustment for professional communications","Academic writing assistance for students","Content editing and clarity improvement"],features:["Real-time grammar, punctuation, and style checking","GrammarlyGO generative AI for drafting and rewriting","Tone detector and adjustment suggestions","Browser extension supporting Gmail, Docs, LinkedIn, and more","Microsoft Office integration (Word, Outlook)"],pros:["Works everywhere — browser, desktop, and mobile","Real-time feedback is genuinely useful for catching errors","Tone suggestions help non-native speakers communicate professionally"],cons:["Style suggestions can sometimes be overly prescriptive","Generative AI features are less powerful than dedicated writing tools","Free tier has limited access to advanced suggestions"],pricingSummary:"Grammarly free includes basic grammar and spelling checks. Grammarly Pro at $30/month (or less annually) includes advanced suggestions and GrammarlyGO. Business plans available.",pricingModel:"freemium",platform:["web","desktop","mobile"],audience:["everyone","students","professionals","writers"],categories:["ai-writing","ai-productivity"],tags:["writing","grammar","editing","email","productivity"],officialUrl:"https://grammarly.com",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=grammarly",alternatives:["jasper","copy-ai","writesonic"],relatedTools:["jasper","notion-ai"],comparisonSlugs:[],faq:[{question:"Is Grammarly worth paying for?",answer:"Grammarly Free is genuinely useful for basic grammar and spelling. Grammarly Pro's tone suggestions, advanced style checks, and GrammarlyGO features provide meaningful value for professionals who write daily. The annual plan brings the cost down significantly."},{question:"Does Grammarly work in Google Docs?",answer:"Yes. Grammarly's browser extension integrates with Google Docs, Gmail, Google Slides, and virtually every other web-based writing interface. It also has a 
359native Microsoft Office add-in for Word and Outlook."}],editorialVerdict:"Grammarly is a must-have tool for anyone writing professionally in English. Its ubiquity — working across browsers, apps, and devices — makes it the most practical writing assistant available. GrammarlyGO makes the paid tier increasingly compelling, though the free version alone is one of the most useful free AI tools on the market.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-04-01",logoLetter:"G",logoColor:"bg-green-700",featured:!0,trending:!1,editorPick:!0,rating:4.6},{id:"writesonic",name:"Writesonic",slug:"writesonic",tagline:"AI writing and SEO content at scale",shortDescription:"Writesonic is an AI writing platform with a strong SEO focus — generating blog posts, product descriptions, landing pages, and ad copy with built-in SEO optimization and a free AI chatbot called Chatsonic.",fullDescription:"Writesonic targets marketers and content teams who produce high volumes of SEO-optimized content. Its Chatsonic chatbot adds real-time web search to AI responses (a differentiator from early ChatGPT). The AI Article Writer produces long-form, SEO-structured blog posts with automatic interlinking, heading optimization, and competitor analysis. Writesonic integrates with Surfer SEO for enhanced optimization workflows.",whatItDoes:"Writesonic generates long-form blog posts, product descriptions, ad copy, social media posts, email sequences, and landing pages. Its Article Writer can produce complete 2,000+ word posts from a title or keyword. Chatsonic handles conversational AI tasks with web search access.",bestFor:"Content marketers, SEO teams, and small businesses that produce large volumes of web content and need AI assistance to scale production.",useCases:["Bulk blog post generation for SEO content strategies","Product description writing for e-commerce stores","Ad copy generation for Facebook, Google, and LinkedIn","Landing page copywriting","Email marketing copy at scale"],features:["AI Article Writer for long-form SEO blog posts","Chatsonic: ChatGPT alternative with real-time web search","Surfer SEO integration for content optimization scoring","100+ AI writing templates for different content types","Bulk content generation with CSV input"],pros:["Strong SEO-focused content generation capabilities","Bulk generation saves significant time for content teams","Chatsonic with web search is a practical ChatGPT alternative"],cons:["AI-generated content often needs editing for brand voice consistency","Quality varies — longer content requires more review","Interface can feel cluttered with many features"],pricingSummary:"Writesonic offers a free plan with limited credits. Individual plan from $16/month. Team and enterprise plans available with more words and users.",pricingModel:"freemium",platform:["web"],audience:["marketers","content-creators","small-businesses"],categories:["ai-writing","ai-marketing","ai-seo"],tags:["writing","seo","content-marketing","blog","copywriting","ai-article"],officialUrl:"https://writesonic.com",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=writesonic",alternatives:["jasper","copy-ai","grammarly"],relatedTools:["jasper","copy-ai"],comparisonSlugs:[],faq:[{question:"How does Writesonic compare to Jasper?",answer:"Both are enterprise-oriented AI writing platforms. Writesonic tends to be more affordable and has stronger built-in SEO features. Jasper has a longer track record and is often preferred by larger marketing teams for its brand voice features and integrations."},{question:"What is Chatsonic?",answer:"Chatsonic is Writesonic's AI chatbot, similar to ChatGPT but with real-time web search capability. It can access current information and generate responses with sources, making it useful for research alongside writing tasks."}],editorialVerdict:"Writesonic delivers strong value for SEO-focused content teams who need to produce blog posts and marketing copy at scale. Its Article Writer and Surfer SEO integration are genuinely useful for content marketing workflows. As with all AI writing tools, a human editor remains essential for brand voice and quality control.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-25",logoLetter:"W",logoColor:"bg-blue-600",featured:!1,trending:!1,editorPick:!1,rating:4.2},{id:"otter-ai",name:"Otter.ai",slug:"otter-ai",tagline:"AI meeting notes and transcription in real time",shortDe
359scription:"Otter.ai automatically transcribes and summarizes meetings in real time, integrating directly with Zoom, Google Meet, and Microsoft Teams to turn spoken conversations into searchable, shareable notes.",fullDescription:"Otter.ai is the leading AI meeting transcription tool, used by millions of professionals to capture meeting notes without manual effort. Its AI Otter Meeting Agent can automatically join scheduled meetings, take notes in real time, generate summaries, identify action items, and send notes to participants after the meeting. Integration with calendar apps, Slack, Notion, and Salesforce makes it a practical addition to professional workflows.",whatItDoes:"Otter joins meetings automatically (Zoom, Meet, Teams), transcribes audio in real time with speaker identification, generates meeting summaries and action items, answers questions about past meetings, and distributes notes to participants. Offline recordings can also be uploaded for transcription.",bestFor:"Professionals, teams, and managers who attend frequent meetings and want automated notes and action items without distraction or manual effort.",useCases:["Automated Zoom, Meet, and Teams meeting transcription","Real-time note capture with speaker identification","Meeting summary and action item generation","Interview transcription for journalists and researchers","Lecture and event transcription for students"],features:["Automatic meeting bot joins and transcribes calls","Real-time live transcription with speaker labels","AI-generated meeting summaries and action items","Integration with Zoom, Meet, Teams, Slack, and Notion","Searchable transcript archive for all past meetings"],pros:["One of the most reliable and accurate AI transcription tools","Fully automated — joins and transcribes without any manual steps","Meeting search and recall is genuinely transformative for knowledge workers"],cons:["Transcription accuracy can drop with strong accents or poor audio","Some participants find meeting bots intrusive","Free tier is limited to 300 monthly transcription minutes"],pricingSummary:"Otter.ai Basic is free with 300 minutes/month. Pro at $16.99/month for more minutes and features. Business plans with team features available.",pricingModel:"freemium",platform:["web","mobile","desktop"],audience:["professionals","teams","students","journalists"],categories:["ai-productivity","ai-note-taking"],tags:["transcription","meeting-notes","zoom","google-meet","teams","productivity"],officialUrl:"https://otter.ai",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=otter-ai",alternatives:["notebooklm","notion-ai"],relatedTools:["notebooklm"],comparisonSlugs:[],faq:[{question:"Does Otter.ai join meetings automatically?",answer:"Yes. Otter's AI Meeting Agent can be connected to your calendar and will automatically join scheduled Zoom, Google Meet, and Microsoft Teams calls, transcribe them in real time, and send notes to participants afterward."},{question:"How accurate is Otter.ai transcription?",answer:"Otter.ai achieves high accuracy for clear audio with standard accents, typically 90%+ word accuracy. Performance decreases with strong accents, background noise, or poor microphone quality. All transcripts can be edited manually."}],editorialVerdict:"Otter.ai is the most mature and reliable AI meeting transcription tool on the market. For teams that meet frequently, automated meeting notes with action items is one of the highest-ROI AI tools available. The free tier alone is sufficient for casual use, while the Pro plan is well justified for knowledge workers.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-04-01",logoLetter:"O",logoColor:"bg-blue-700",featured:!1,trending:!1,editorPick:!0,rating:4.5},{id:"zapier-ai",name:"Zapier AI",slug:"zapier-ai",tagline:"Automate thousands of apps with AI",shortDescription:"Zapier is the world's leading automation platform, and its AI features — including natural language Zap creation, AI actions, and chatbots — make it the most accessible way to automate repetitive workflows.",fullDescription:"Zapier connects 7,000+ apps through no-code automation workflows called Zaps. Its AI features include natural language Zap creation (describe the automation you want and Zapier builds it), AI-powered actions within automations, and Zapier Chatbots for building custom AI assistants with tools integration. For non-technical users and businesses, Zapier AI removes the complexity from workflow automation.",whatItDoes:"Zapier connects apps and automates workflows between them. AI features enable natural language automation creation, AI steps within workflows (GPT integration, summarization, classification), AI-powered chatbots, and intelligent data transformation.",bestFor:"Businesses and individuals who want to automate repetitive tasks across multiple software tools without writing code.",useCases:["Automating CRM data entry from emails and forms","Syncing data between apps like Slack, Gmail, and Google Sheets","AI-powered lead enrichment and routing workflows","Automated reporting and notification workflows","Building AI chatbots with access to business data"],features:["7,000+ app integrations","Natural language Zap creation via AI","AI actions in workflows (OpenAI, Claude integration)","Zapier Chatbots for custom AI assistants","Multi-step Zaps with conditional logic"],pros:["Widest app integration library — 7,000+ supported tools","Natural language AI makes automation creation genuinely accessible","Proven, mature platform with strong reliability"],cons:["Per-task pricing can become expensive for high-volume workflows","Complex workflows require significant time to build and debug","Less powerful than custom code for complex data transformations"],pricingSummary:"Zapier offers a free plan with limited tasks/month. Starter at $29.99/month. Professional at $73.50/month. Team and Company plans available.",pricingModel:"freemium",platform:["web"],audience:["businesses","marketers","operations","everyone"],categories:["ai-automation","ai-productivity"],tags:["automation","workflow","no-code","integration","zapier","productivity"],officialUrl:"https://zapier.com",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=zapier-ai",alternatives:["notion-ai"],relatedTools:["notion-ai"],comparisonSlugs:[],faq:[{question:"What is a Zap?",answer:"A Zap is Zapier's term for an automated workflow. Each Zap consists of a trigger (an event in one app) and one or more actions (things that happen in other apps as a result). For example, a Zap might trigger when a new Gmail email arrives and automatically add data from it to a Google Sheet."},{question:"Does Zapier require coding?",answer:"No. Zapier is designed for non-technical users and requires no coding. Its AI-powered setup can build automations from plain English descriptions, and all logic is configured through a visual interface."}],editorialVerdict:"Zapier is the essential tool for anyone looking to automate repetitive work across multiple software applications. Its AI features make it more accessible than ever, and its 7,000+ integrations mean it connects almost any business app in use today. For teams serious about operational efficiency, Zapier is one of the highest-ROI tools available.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-04-01",logoLetter:"Z",logoColor:"bg-orange-600",featured:!1,trending:!1,editorPick:!0,rating:4.5},{id:"jasper",name:"Jasper",slug:"jasper",tagline:"AI content platform for marketing teams",shortDe
359scription:"Jasper is an enterprise AI writing platform built for marketing teams — offering brand voice controls, content templates, campaign workflows, and integrations with major marketing tools.",fullDescription:"Jasper is one of the most established AI writing platforms, purpose-built for marketing teams that need to produce high-quality content at scale while maintaining brand consistency. Its Brand Voice feature learns your tone and style so generated content sounds authentically yours. Jasper integrates with Surfer SEO for optimization, supports 30+ languages, and provides templates for virtually every marketing content type. Its document editor and campaign workflow tools make it a practical choice for content operations teams.",whatItDoes:"Jasper generates marketing copy, blog posts, email sequences, ad copy, social media content, and long-form documents. Brand Voice ensures output matches your company style. Jasper Art generates images from prompts. Campaign workflows help teams produce content across multiple formats from a single brief.",bestFor:"Marketing teams and content agencies that need consistent, on-brand content at scale with enterprise-grade workflows and integrations.",useCases:["Blog post and long-form content creation","Ad copy for Facebook, Google, and LinkedIn campaigns","Email marketing sequence generation","Social media content at scale","Landing page and product copy production"],features:["Brand Voice for consistent on-brand output","Campaign workflow for multi-format content production","Surfer SEO integration for optimized content","50+ content templates for every marketing format","Jasper Art for AI image generation within the platform"],pros:["Brand Voice controls are best-in-class for content consistency","Enterprise-grade team workflows and permissions","Surfer SEO integration is a significant advantage for content teams"],cons:["More expensive than some alternatives","Output still requires human editing for quality control","Interface can be complex for solo users"],pricingSummary:"Jasper plans start at $49/month for individuals. Teams plan at $125/month. Business plans available on request with custom pricing.",pricingModel:"paid",platform:["web"],audience:["marketers","agencies","content-teams"],categories:["ai-writing","ai-marketing","ai-seo"],tags:["writing","content-marketing","brand-voice","copywriting","marketing","seo"],officialUrl:"https://jasper.ai",trackingUrl:null,monetizationType:"affiliate",monetizationStatus:"pending",affiliateAvailable:!0,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=jasper",alternatives:["copy-ai","writesonic","grammarly"],relatedTools:["copy-ai","writesonic","grammarly"],comparisonSlugs:[],faq:[{question:"What is Jasper Brand Voice?",answer:"Jasper Brand Voice lets you train the AI on your company's tone, style, and vocabulary so all generated content sounds authentically like your brand. You can create multiple voices for different brands, product lines, or target audiences."},{question:"Does Jasper integrate with SEO tools?",answer:"Yes. Jasper has a native integration with Surfer SEO that scores your content against SEO best practices as you write, helping you optimize for target keywords and on-page factors simultaneously."},{question:"How does Jasper compare to Copy.ai?",answer:"Jasper is positioned more toward marketing teams and enterprises with stronger brand controls and workflow features. Copy.ai has expanded into sales automation and is more accessible at lower price points. Jasper tends to win for content-heavy operations; Copy.ai for go-to-market teams."},{question:"Is Jasper worth the cost?",answer:"For marketing teams producing significant content volumes, Jasper's time savings and brand voice controls justify the cost. For individual bloggers or very light users, more affordable alternatives like Writesonic may offer better value."}],editorialVerdict:"Jasper is the leading enterprise AI writing platform for a reason — its Brand Voice, campaign workflows, and Surfer SEO integration are genuinely more sophisticated than competitors. The cost is higher, but for marketing teams producing at scale, it is well justified.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-04-01",logoLetter:"J",logoColor:"bg-rose-500",featured:!0,trending:!1,editorPick:!0,rating:4.5},{id:"copy-ai",name:"Copy.ai",slug:"copy-ai",tagline:"AI for go-to-market teams and sales workflows",shortDe
359scription:"Copy.ai has evolved from an AI copywriting tool into a GTM (go-to-market) AI platform — helping sales and marketing teams automate prospecting, personalize outreach, and generate content across the entire funnel.",fullDescription:"Copy.ai started as a simple AI copywriting tool and has grown into a GTM AI platform used by sales and marketing teams at companies like Salesforce and HubSpot. Its GTM AI workflows automate sequences across prospecting, pipeline management, and content creation. The platform includes hundreds of templates, integrates with CRM systems, and provides tools for personalizing outreach at scale — going well beyond basic text generation.",whatItDoes:"Copy.ai generates marketing copy, blog posts, email sequences, social media content, and sales outreach. GTM AI workflows automate multi-step go-to-market processes. Sales teams use it for personalized cold email and LinkedIn message generation. Marketing teams use it for content scaling.",bestFor:"Sales and marketing teams who want to automate go-to-market workflows and produce personalized content at scale across multiple channels.",useCases:["Personalized cold email and sales outreach generation","Marketing copy and campaign content production","Product description writing for e-commerce","Social media content at scale","GTM workflow automation for sales teams"],features:["GTM AI workflows for sales and marketing automation","100+ templates for every content type","Brand voice configuration","CRM and marketing tool integrations","Infobase for storing brand and product knowledge"],pros:["Strong sales use cases that go beyond simple writing","Competitive pricing for the capabilities offered","GTM AI workflows are a meaningful differentiator"],cons:["Interface has undergone multiple redesigns, can feel inconsistent","Advanced workflow features have a learning curve","Output quality for long-form content varies"],pricingSummary:"Copy.ai offers a free plan with limited credits. Starter at $49/month. Advanced plan at $249/month for GTM workflows. Enterprise pricing available.",pricingModel:"freemium",platform:["web"],audience:["marketers","sales-teams","content-creators"],categories:["ai-writing","ai-marketing","ai-sales"],tags:["copywriting","gtm","sales","content-marketing","email","ai-writing"],officialUrl:"https://copy.ai",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=copy-ai",alternatives:["jasper","writesonic","grammarly"],relatedTools:["jasper","writesonic"],comparisonSlugs:[],faq:[{question:"Is Copy.ai only for copywriting?",answer:"No. Copy.ai has expanded significantly beyond copywriting into a full GTM AI platform. It includes workflow automation, CRM integrations, and sales outreach tools alongside its original content generation features."},{question:"How does Copy.ai handle brand voice?",answer:"Copy.ai's Infobase stores information about your brand, products, and audience. You can feed it brand guidelines, product details, and example copy, and it incorporates this context into generated content to maintain consistency."},{question:"Is there a free version of Copy.ai?",answer:"Yes. Copy.ai has a free plan with limited monthly credits that is sufficient for casual users. The paid plans unlock more credits, GTM workflows, and advanced features."}],editorialVerdict:"Copy.ai's evolution into a GTM AI platform makes it a compelling choice for sales and marketing teams who want more than basic writing. Its workflow capabilities and CRM integrations go well beyond competitors. For pure AI writing, Jasper may offer more polish, but for GTM teams, Copy.ai is worth evaluating.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-28",logoLetter:"C",logoColor:"bg-blue-500",featured:!1,trending:!1,editorPick:!1,rating:4.3},{id:"notion-ai",name:"Notion AI",slug:"notion-ai",tagline:"AI built into your workspace — write, summarize, organize",shortDescription:"Notion AI brings generative AI directly into Notion's all-in-one workspace — helping users draft content, summarize pages, generate action items, answer questions across their notes, and more.",fullDescription:"Notion AI is the AI layer embedded throughout Notion's workspace platform, used by millions of teams and individuals worldwide. Rather than being a standalone tool, it works within your existing notes, databases, and documents — making it uniquely practical. You can ask questions about your notes, generate content from outlines, summarize meeting notes, and translate content without leaving your workspace. Notion AI also introduces AI-powered search across your entire workspace.",whatItDoes:"Notion AI drafts new content, summarizes existing pages, generates action items from meeting notes, answers questions across your workspace, fixes grammar and tone, translates text, explains code, and creates structured databases from freeform input — all within the Notion interface.",bestFor:"Teams and individuals who already use Notion as their primary knowledge management or productivity workspace and want AI embedded in their existing workflow.",useCases:["Meeting note summarization and action item extraction","Draft writing within documents and databases","Workspace search and Q&A across all your notes","Content translation for multilingual teams","Brainstorming and outline generation in documents"],features:["AI Q&A across your entire Notion workspace","Inline content generation and summarization","Meeting notes to action items conversion","Grammar, tone, and translation assistance","AI database and template generation"],pros:["Works within your existing workflow — no new tool to learn","Workspace Q&A across all your notes is uniquely powerful","Affordable as an add-on to existing Notion plans"],cons:["Only useful if you already use Notion","Generative quality for long-form content is below dedicated writing tools","AI features are an add-on cost on top of Notion subscription"],pricingSummary:"Notion AI costs $10/member/month as an add-on to any Notion plan. Included in some Notion Plus annual plans.",pricingModel:"paid",platform:["web","desktop","mobile"],audience:["professionals","teams","students","writers"],categories:["ai-productivity","ai-writing","ai-note-taking"],tags:["notion","productivity","writing","note-taking","workspace","knowledge-management"],officialUrl:"https://notion.so/product/ai",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=notion-ai",alternatives:["notebooklm","otter-ai","grammarly"],relatedTools:["notebooklm","otter-ai","grammarly"],comparisonSlugs:[],faq:[{question:"Does Notion AI require a separate subscription?",answer:"Yes. Notion AI is an add-on at $10/member/month on top of your existing Notion plan. Some annual plans include limited Notion AI credits."},{question:"Can Notion AI search across all my notes?",answer:"Yes. Notion AI's Q&A feature can search and answer questions across your entire workspace — including databases, pages, and documents — making it particularly powerful for teams with large amounts of institutional knowledge stored in Notion."}
359,{question:"Is Notion AI better than using ChatGPT for writing?",answer:"Notion AI wins because it works within your existing content — it knows your documents and can reference them. ChatGPT is generally more powerful for standalone writing tasks. If you use Notion heavily, Notion AI's contextual integration is more practical than switching between tools."}],editorialVerdict:"Notion AI is one of the most practical AI tools available because it works where your information already lives. The workspace Q&A feature alone justifies the cost for heavy Notion users. For teams with significant institutional knowledge in Notion, it is genuinely transformative.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-04-01",logoLetter:"N",logoColor:"bg-gray-900",featured:!0,trending:!0,editorPick:!0,rating:4.6},{id:"notebooklm",name:"NotebookLM",slug:"notebooklm",tagline:"Upload your sources. Ask anything about them.",shortDescription:"NotebookLM by Google is an AI research assistant that lets you upload documents, PDFs, websites, and videos, then ask detailed questions and generate summaries, study guides, and even audio podcasts from your sources.",fullDescription:"NotebookLM is Google's AI research and note-taking tool, designed for deep work with source documents. Unlike chatbots that draw from general training data, NotebookLM grounds all responses strictly in the sources you upload — dramatically reducing hallucination risk for research tasks. Its Audio Overview feature generates a realistic podcast-style discussion of your uploaded material, making it uniquely useful for absorbing complex research. Students, researchers, and knowledge workers use it to digest large document sets quickly.",whatItDoes:"NotebookLM ingests uploaded documents, PDFs, Google Docs, YouTube videos, and web URLs. It answers questions strictly based on your sources, generates summaries, creates study guides, produces quiz questions, and generates an Audio Overview — a conversational podcast of your material between two AI voices.",bestFor:"Students, researchers, journalists, and knowledge workers who need to extract insights from large volumes of documents without hallucinated information.",useCases:["Research paper and literature review anal
359ysis","Study guide and quiz creation from course materials","Document summarization and key point extraction","Podcast-style audio briefings from research material","Business report and RFP analysis"],features:["Source-grounded responses — AI only uses your uploaded material","Audio Overview for podcast-style content from sources","Supports PDFs, Google Docs, YouTube, and web URLs","Study guide, briefing doc, and FAQ generation","Multiple notebooks for organizing different projects"],pros:["Significantly lower hallucination risk — strictly source-grounded","Audio Overview is unique and genuinely useful for on-the-go learning","Free with a Google account — exceptional value"],cons:["Cannot access information outside uploaded sources","Source limit per notebook (currently 50 sources)","Less useful for general-purpose AI tasks"],pricingSummary:"NotebookLM is free with a Google account. NotebookLM Plus is available through Google One AI Premium and Workspace.",pricingModel:"freemium",platform:["web"],audience:["students","researchers","professionals","journalists"],categories:["ai-research","ai-note-taking","ai-productivity"],tags:["research","documents","note-taking","google","rag","study","pdf"],officialUrl:"https://notebooklm.google.com",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=notebooklm",alternatives:["perplexity","notion-ai","otter-ai"],relatedTools:["perplexity","notion-ai"],comparisonSlugs:[],faq:[{question:"Is NotebookLM free to use?",answer:"Yes. NotebookLM is free with a Google account and includes generous usage limits for most users. NotebookLM Plus with higher limits and additional features is available through Google One AI Premium."},{question:"What types of sources can I upload to NotebookLM?",answer:"NotebookLM supports Google Docs, Google Slides, PDFs, text files, web URLs, YouTube video links, and audio files. The notebook accepts up to 50 sources and up to 500,000 words per source."},{question:"How is NotebookLM different from ChatGPT for research?",answer:"The critical difference is grounding. NotebookLM only answers from your uploaded sources, making it far more reliable for research tasks where accuracy matters. ChatGPT draws from its training data which may be outdated and can hallucinate. For analyzing your own documents, NotebookLM is significantly more trustworthy."},{question:"What is the Audio Overview feature?",answer:"Audio Overview generates a conversational podcast between two AI voices discussing your uploaded material. It creates a surprisingly natural dialogue that summarizes key points, debates ideas, and provides an accessible way to absorb complex research while commuting or exercising."}],editorialVerdict:"NotebookLM is one of the most genuinely useful AI tools released in recent years. Its source-grounded approach addresses the hallucination problem that plagues research use cases, and the Audio Overview feature is uniquely innovative. Free and excellent — every student and researcher should be using it.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-04-02",logoLetter:"N",logoColor:"bg-blue-600",featured:!0,trending:!0,editorPick:!0,rating:4.8},{id:"elevenlabs",name:"ElevenLabs",slug:"elevenlabs",tagline:"The most realistic AI voice synthesis available",shortDescription:"ElevenLabs produces the most realistic AI text-to-speech and voice cloning available — used by publishers, creators, game developers, and enterprises for professional voiceover production.",fullDescription:"ElevenLabs has established itself as the clear leader in AI voice synthesis quality. Its Multilingual v2 model produces speech that is frequently indistinguishable from human voice actors, with natural intonation, emotion, and pacing. Voice cloning from short audio samples enables users to create custom AI voices. Its Voice Library provides access to hundreds of AI voice personas. ElevenLabs is used across audiobook production, game development, content creation, and enterprise customer service.",whatItDoes:"ElevenLabs converts text to speech using AI voice models with exceptional realism. It supports voice cloning from recordings, a large voice library, real-time voice conversion, dubbing for video content, and an API for building voice-enabled applications.",bestFor:"Content creators, publishers, game developers, and enterprises that need professional-quality AI voiceover or voice cloning capabilities.",useCases:["Audiobook and long-form content narration","Podcast and video voiceover production","Game character voice creation","Multilingual content localization and dubbing","Customer service and IVR voice systems"],features:["Ultra-realistic text-to-speech with emotional range","Voice cloning from as little as 1 minute of audio","Multilingual support including real-time dubbing","Voice Library with hundreds of royalty-free AI voices","Developer API for real-time voice applications"],pros:["Unmatched voice realism — the industry standard for quality","Voice cloning capability is best-in-class","Multilingual support is comprehensive and high quality"],cons:["Most powerful features require paid plans","Voice cloning usage is subject to strict ethical policies","Per-character pricing can be expensive at high volumes"],pricingSummary:"ElevenLabs Free includes 10,000 characters/month. Starter at $5/month. Creator at $22/month. Pro at $99/month. Scale plans for high-volume use.",pricingModel:"freemium",platform:["web","api"],audience:["content-creators","developers","publishers","enterprises"],categories:["ai-audio-voice"],tags:["text-to-speech","voice-cloning","tts","audio","narration","dubbing"],officialUrl:"https://elevenlabs.io",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=elevenlabs",alternatives:["murf-ai","heygen","synthesia"],relatedTools:["murf-ai","descript"],comparisonSlugs:[],faq:[{question:"How realistic is ElevenLabs voice output?",answer:"ElevenLabs produces the most realistic AI voices currently available commercially. In blind tests, listeners frequently cannot distinguish ElevenLabs output from human voice actors, particularly for narration and neutral speech. Emotional extremes and very conversational speech still have subtle tells."},{question:"Can ElevenLabs clone my voice?",answer:"Yes. ElevenLabs Voice Cloning is available on paid plans. Instant Voice Cloning works from a short sample (under 1 minute). Professional Voice Cloning uses more audio for higher fidelity. Usage is subject to policies requiring you to have rights to clone the voice."},{question:"Does ElevenLabs support languages other than English?",answer:"Yes. ElevenLabs Multilingual v2 supports 29+ languages with high quality. It also offers real-time dubbing that translates and re-voices video content into target languages while maintaining the original speaker's vocal characteristics."},{question:"What is the ElevenLabs API used for?",answer:"The ElevenLabs API enables developers to build voice into applications — chatbots, virtual assistants, IVR systems, e-learning platforms, and games. It supports real-time streaming for low-latency voice applications."}],editorialVerdict:"ElevenLabs is the definitive tool for any use case where voice quality matters. Whether you are producing audiobooks, building voice-enabled applications, or localizing video content, ElevenLabs produces results that are consistently superior to alternatives. The free tier is generous enough to evaluate properly before committing.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-04-03",logoLetter:"E",logoColor:"bg-yellow-500",featured:!0,trending:!0,editorPick:!0,rating:4.8},{id:"midjourney",name:"Midjourney",slug:"midjourney",tagline:"The gold standard for AI image aesthetics",shortDe
359scription:"Midjourney produces the most aesthetically sophisticated AI-generated images available — used by professional designers, concept artists, and creative directors for its unmatched visual quality.",fullDescription:"Midjourney has consistently set the benchmark for AI image generation quality since its launch. Operated through Discord (and increasingly through its own web interface), it generates images from text prompts with a visual quality and artistic sensibility that has made it the preferred tool of professional designers, illustrators, and creative directors. Midjourney v6 and v6.1 introduced photorealistic quality alongside the artistic styles the platform is known for, and Niji mode specializes in anime and illustration.",whatItDoes:"Midjourney generates images from text prompts using its proprietary diffusion model. Users can vary, upscale, and remix results. Parameters control aspect ratio, style, chaos, and detail level. The web interface adds image editing, inpainting, and personalization features.",bestFor:"Professional designers, concept artists, creative directors, and anyone who needs the highest quality AI-generated visuals for commercial or artistic work.",useCases:["Concept art and visual development for games and film","Marketing and editorial image generation","Product visualization and mockup creation","Book cover and album art creation","Brand identity and visual exploration"],features:["Best-in-class image quality and aesthetic sensibility","Multiple model versions and Niji mode for anime","Precise parameter control for style and composition","Web editor with inpainting and personalization","Style reference and character consistency features"],pros:["Consistently the highest visual quality of any AI image generator","Unique aesthetic sensibility that is difficult to replicate","Strong community and model iteration pace"],cons:["No free plan — subscription required","Discord-based generation has a learning curve for new users","Less reliable for text rendering in images (vs. Ideogram)"],pricingSummary:"Midjourney Basic at $10/month (200 generations). Standard at $30/month (unlimited relaxed). Pro at $60/month. Mega at $120/month.",pricingModel:"paid",platform:["web"],audience:["designers","artists","marketers","creatives"],categories:["ai-image-generation","ai-design"],tags:["image-generation","art","design","creative","concept-art","photorealistic"],officialUrl:"https://midjourney.com",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=midjourney",alternatives:["adobe-firefly","leonardo-ai","ideogram","canva-ai"],relatedTools:["adobe-firefly","ideogram","leonardo-ai"],comparisonSlugs:[],faq:[{question:"Does Midjourney have a free trial?",answer:"Midjourney removed its free trial in 2023. You need a paid subscription to generate images. The Basic plan at $10/month is the lowest entry point."},{question:"Is Midjourney better than DALL-E?",answer:"For artistic and editorial image quality, Midjourney consistently outperforms DALL-E 3. DALL-E 3 (integrated into ChatGPT) is stronger for precise instruction following and text rendering. Midjourney is the professional standard for visual aesthetics."},{question:"Can I use Midjourney images commercially?",answer:"Paid subscribers can use Midjourney images commercially. There are some restrictions for Pro plan subscribers around competitive usage. Enterprise plans include full commercial rights. Review the current terms of service for your specific subscription tier."},{question:"What is Midjourney Niji mode?",answer:"Niji mode is Midjourney's model variant optimized for anime and illustration styles, developed in collaboration with Spellbrush. It produces anime-aesthetic images with better character proportions and stylistic consistency than the standard model."}],editorialVerdict:"Midjourney remains the gold standard for AI image generation quality. If visual output quality is the primary consideration, nothing consistently matches Midjourney's aesthetic results. The subscription cost is justified for any professional who regularly needs high-quality AI-generated visuals.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-04-03",logoLetter:"M",logoColor:"bg-gray-800",featured:!0,trending:!0,editorPick:!0,rating:4.8},{id:"leonardo-ai",name:"Leonardo AI",slug:"leonardo-ai",tagline:"AI image generation built for consistency and control",shortDe
359scription:"Leonardo AI is an AI image generation platform with strong character consistency, fine-tuned model training, and production-focused features — popular with game developers, concept artists, and brands.",fullDescription:"Leonardo AI has built a strong following among game developers, concept artists, and brands who need consistent characters and assets across multiple generations — a capability many AI image tools lack. Its fine-tuned model training lets users train custom models on reference images to maintain style and character consistency across an entire project. The platform includes Canvas Editor for post-generation editing, and its Universal Upscaler significantly improves output resolution.",whatItDoes:"Leonardo AI generates images from text prompts, trains custom fine-tuned models on reference images for consistent output, provides a canvas editor for post-generation editing, and offers video generation through its Motion feature. Users can generate with community models or train their own.",bestFor:"Game developers, concept artists, and brands that need character consistency, custom style training, and production-ready assets across large projects.",useCases:["Game asset and character concept generation","Brand visual asset creation with consistent style","Product mockup and visualization","Concept art and storyboard generation","Marketing image production at scale"],features:["Custom model fine-tuning on reference images","Character and style consistency across generations","Canvas editor for inpainting and image editing","Universal Upscaler for high-resolution output","Motion feature for AI video from images"],pros:["Best character and style consistency of any consumer AI image tool","Custom model training gives creative control not available in competitors","Strong free tier with daily generation credits"],cons:["Fine-tuning requires more setup than simpler tools","Model quality varies — some community models underperform","Interface can be complex for new users"],pricingSummary:"Leonardo AI offers a free tier with 150 daily tokens. Apprentice at $12/month, Artisan at $30/month, Maestro at $60/month.",pricingModel:"freemium",platform:["web"],audience:["designers","game-developers","artists","marketers"],categories:["ai-image-generation","ai-design"],tags:["image-generation","game-art","character-design","fine-tuning","consistency"],officialUrl:"https://leonardo.ai",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=leonardo-ai",alternatives:["midjourney","adobe-firefly","ideogram"],relatedTools:["midjourney","ideogram"],comparisonSlugs:[],faq:[{question:"What makes Leonardo AI different from Midjourney?",answer:"Leonardo AI's biggest advantage is character and style consistency through custom model fine-tuning. Midjourney produces generally higher aesthetic quality from text prompts, but Leonardo is superior when you need the same character or style to appear reliably across many generations."},{question:"Is Leonardo AI good for game development?",answer:"Leonardo AI is particularly popular for game development because of its asset consistency, fine-tuning capabilities, and the range of community models trained on game art styles. Many indie game studios use it for concept art and asset production."},{question:"How does the Leonardo AI free plan work?",answer:"Leonardo AI provides 150 free tokens daily (reset every 24 hours). Most standard image generations cost 5–25 tokens depending on resolution and model. This gives casual users a meaningful number of free generations daily."}],editorialVerdict:"Leonardo AI fills a specific but important gap in the AI image generation market — style and character consistency. For game developers, brands, and creators who need visual coherence across many images, Leonardo is the strongest option. Its custom fine-tuning capabilities are genuinely powerful and accessible to non-technical users.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-04-02",logoLetter:"L",logoColor:"bg-
359amber-600",featured:!1,trending:!0,editorPick:!1,rating:4.5},{id:"runway",name:"Runway",slug:"runway",tagline:"Professional AI video generation for creatives",shortDescription:"Runway is the leading professional AI video creation platform — used by filmmakers, studios, and creative agencies for text-to-video, video editing, and visual effects generation.",fullDescription:"Runway has become the go-to AI video platform for serious creative professionals. Gen-3 Alpha is its flagship video generation model, producing cinematic quality footage from text prompts. Beyond generation, Runway offers a comprehensive suite of AI video tools including background removal, inpainting, motion tracking, and generative fill for video — making it a production-ready creative environment rather than just a generation toy.",whatItDoes:"Runway generates video from text and image prompts using Gen-3 Alpha, provides AI video editing tools (background removal, inpainting, motion tracking), supports image-to-video and video-to-video generation, and offers a timeline editor for producing polished video content.",bestFor:"Professional filmmakers, creative agencies, motion designers, and visual effects artists who need AI video capabilities integrated into serious production workflows.",useCases:["Cinematic B-roll and scene generation for film","Commercial and marketing video production","Visual effects and compositing for video","Music video and creative experimental content","Storyboard animatic creation for pre-production"],features:["Gen-3 Alpha for high-quality text-to-video generation","AI video editing — background removal, inpainting, tracking","Image-to-video and video-to-video transformation","Generative Fill for video editing","Camera motion and cinematic control parameters"],pros:["Professional-grade video quality suitable for commercial work","Most comprehensive AI video editing suite available","Regular model updates maintaining quality leadership"],cons:["Expensive for high-volume generation","Prompt engineering required for best results","Maximum clip length still limited compared to traditional video"],pricingSummary:"Runway Basic free with 125 credits. Standard at $15/month. Pro at $35/month. Unlimited at $95/month.",pricingModel:"freemium",platform:["web"],audience:["filmmakers","designers","agencies","content-creators"],categories:["ai-video-generation","ai-design"],tags:["video-generation","text-to-video","film","vfx","cinematic","professional"],officialUrl:"https://runwayml.com",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=runway",alternatives:["pika","luma-dream-machine","synthesia"],relatedTools:["luma-dream-machine","pika","heygen"],comparisonSlugs:[],faq:[{question:"Is Runway good for professional film production?",answer:"Yes. Runway is used on professional film and TV productions for VFX shots, background generation, and creative visualization. Gen-3 Alpha is the model of choice for filmmakers who need AI video that holds up to professional scrutiny."},{question:"How long can Runway videos be?",answer:"Runway Gen-3 Alpha generates clips up to 10 seconds per generation. For longer content, clips can be extended or edited together in a video editor. This is a limitation of current AI video technology across most platforms."},{question:"Does Runway have a free plan?",answer:"Yes. Runway offers 125 free credits on the Basic plan, enough to generate several video clips to evaluate quality. Credits expire after a set period."}],editorialVerdict:"Runway is the professional's choice for AI video creation. Its Gen-3 Alpha model consistently produces the most cinematic and controllable video of any AI tool, and its editing suite makes it a genuine production platform rather than just a generation toy. For serious creative work, Runway is in a class of its own.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-04-03",logoLetter:"R",logoColor:"bg-gray-900",featured:!0,trending:!0,editorPick:!0,rating:4.7},{id:"synthesia",name:"Synthesia",slug:"synthesia",tagline:"AI video with lifelike avatars — no filming required",shortDe
359scription:"Synthesia generates professional presenter-style videos using AI avatars from a text script — no camera, studio, or actors needed. Used by enterprises for training, onboarding, and product demo videos.",fullDescription:"Synthesia is the leading AI video creation platform for enterprise communications. Its platform allows users to create professional talking-head videos using one of 230+ AI avatars, or a custom avatar created from a short video recording. You write a script, choose an avatar and voice, and Synthesia generates a polished, professional video in minutes. Supporting 140+ languages, it is widely used for corporate training, HR communications, product demos, and onboarding content.",whatItDoes:"Synthesia creates presenter-style videos from text scripts using AI avatars. Users select from pre-built avatars or create a custom avatar, choose a voice from the library, write their script, and generate a video. Built-in templates, background options, and media can be added to produce polished content.",bestFor:"Enterprises, L&D teams, HR departments, and marketing teams that regularly produce training, onboarding, internal communications, or product demo videos.",useCases:["Employee training and onboarding video production","Product demo and explainer video creation","Internal communications and announcements","Multilingual content localization at scale","Sales enablement videos for remote teams"],features:["230+ AI avatars including custom avatar creation","140+ language and accent support","Built-in video editor with templates and media library","Screen recording integration for software demos","Team collaboration and version control"],pros:["No filming or studio required — produce professional video from script alone","Exceptional multilingual support for global organizations","Custom avatar creation allows brand-consistent presenters"],cons:["AI avatars, while realistic, are still recognizable as AI by most viewers","Emotional range of avatars is limited","Pricing is significant for small teams"],pricingSummary:"Synthesia Starter at $29/month for 10 videos/month. Creator at $89/month for 30 videos. Enterprise pricing with custom avatar and more available on request.",pricingModel:"paid",platform:["web"],audience:["enterprises","marketers","educators","hr-teams"],categories:["ai-video-generation"],tags:["video","avatar","training","corporate","presenter","multilingual","e-learning"],officialUrl:"https://synthesia.io",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=synthesia",alternatives:["heygen","runway","murf-ai"],relatedTools:["heygen","murf-ai","runway"],comparisonSlugs:[],faq:[{question:"Can I create a custom avatar on Synthesia?",answer:"Yes. Synthesia allows you to create a personal AI avatar by recording a short video of yourself following their guided process. The resulting avatar accurately mimics your appearance and lip-sync when reading scripts."},{question:"How many languages does Synthesia support?",answer:"Synthesia supports 140+ languages and accents, making it the strongest option for organizations that need to produce video content for global audiences."},{question:"Is Synthesia used by large companies?",answer:"Yes. Synthesia is used by companies including Heineken, BSH, Zoom, and many Fortune 500 organizations for HR training, product demos, and internal communications. Its enterprise tier includes SSO, custom branding, and dedicated support."}],editorialVerdict:"Synthesia is the clear enterprise leader for AI video with avatars. For organizations that regularly need training, onboarding, or communications video in multiple languages, Synthesia dramatically reduces production time and cost. The avatar quality continues to improve with each model update.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-04-01",logoLetter:"S",logoColor:"bg-violet-600",featured:!0,trending:!0,editorPick:!1,rating:4.5},{id:"heygen",name:"HeyGen",slug:"heygen",tagline:"AI video translation and avatar creation at scale",shortDe
359scription:"HeyGen creates professional AI avatar videos and translates existing videos into 40+ languages with voice and lip-sync matching — used by marketers and creators for global video content production.",fullDescription:"HeyGen has rapidly grown as a leading AI video platform, particularly for its Video Translation feature which can convert any video into 40+ languages with synchronized lip movements — an unprecedented capability for global content distribution. Its avatar video creation competes directly with Synthesia, while its focus on creator and marketing workflows makes it more accessible for smaller teams. HeyGen's Streaming Avatar enables real-time interactive avatars for applications.",whatItDoes:"HeyGen creates presenter-style videos from scripts using AI avatars, translates existing videos into 40+ languages with lip-sync matching, enables real-time interactive streaming avatars, and provides photo avatar generation. A web-based video editor ties it together.",bestFor:"Content creators, marketers, and businesses that need to localize video content across multiple languages or produce regular AI avatar video without significant production investment.",useCases:["Video translation for global content distribution","Product demo and marketing video production","Personalized video outreach at scale","Multilingual YouTube and social media content","Real-time interactive avatar applications"],features:["Video Translation — 40+ languages with lip-sync matching","100+ AI avatars with customization options","Real-time Streaming Avatar for interactive applications","Personalized video generation from CSV data","Custom AI avatar creation from video recording"],pros:["Video Translation with lip-sync is unique in the market","More accessible pricing than Synthesia for small teams","Streaming Avatar enables interactive real-time applications"],cons:["Avatar quality, while good, is slightly below Synthesia for professional close-ups","Translation accuracy can vary by language pair","Free tier is very limited for evaluation"],pricingSummary:"HeyGen offers a limited free plan. Creator at $29/month. Team at $89/month. Enterprise pricing available.",pricingModel:"freemium",platform:["web","api"],audience:["content-creators","marketers","enterprises"],categories:["ai-video-generation","ai-audio-voice"],tags:["video","avatar","translation","lip-sync","multilingual","personalization"],officialUrl:"https://heygen.com",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=heygen",alternatives:["synthesia","runway","murf-ai"],relatedTools:["synthesia","murf-ai","elevenlabs"],comparisonSlugs:[],faq:[{question:"What is HeyGen Video Translation?",answer:"HeyGen Video Translation is a feature that takes an existing video in any language and creates versions in 40+ target languages — with the speaker's voice translated and their lip movements re-synthesized to match the new language. It is one of the most remarkable AI video capabilities available."},{question:"Is HeyGen better than Synthesia?",answer:"HeyGen and Synthesia compete closely. Synthesia is stronger for enterprise workflows, custom avatar quality, and multilingual corporate use cases. HeyGen is stronger for video translation, real-time streaming avatars, and creator workflows. Many organizations evaluate both."}],editorialVerdict:"HeyGen's Video Translation feature is genuinely groundbreaking — producing multilingual video with synchronized lip movements that would have been impossible without extensive post-production a year ago. For content creators and marketers expanding into global markets, HeyGen is an essential evaluation.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-04-02",logoLetter:"H",logoColor:"bg-teal-600",featured:!1,trending:!0,editorPick:!0,rating:4.6},{id:"veed",name:"VEED",slug:"veed",tagline:"Online video editor with AI superpowers",shortDescription:"VEED is an online video editor with powerful AI features — automatic subtitles, AI avatars, background removal, voice cloning, translation, and more — designed for c
359ontent creators and marketing teams.",fullDescription:"VEED has grown from a simple online video editor into a comprehensive AI video production platform. Its Auto Subtitle feature is among the most accurate available, and the platform's breadth now includes AI avatars, voice cloning, background removal, eye contact correction, teleprompter integration, and video translation. It is particularly popular with social media creators, YouTube producers, and marketing teams who need an accessible, full-featured video workflow without professional software.",whatItDoes:"VEED edits video online with AI assistance — automatically generates and burns subtitles, removes backgrounds, creates AI avatar presenters, clones voices, translates content, corrects eye contact from teleprompter recording, and repurposes videos for different formats and platforms.",bestFor:"Content creators, YouTubers, and marketing teams that want a complete AI-powered online video editing solution without installing professional software.",useCases:["YouTube video editing with auto-subtitles","Social media video production and repurposing","AI avatar corporate communications video","Product demo screen recording with voiceover","Interview and podcast video editing"],features:["Auto Subtitles with high accuracy across 100+ languages","AI Avatars from script for presenter videos","Background Remover and Eye Contact Correction","Video Translation with voice and subtitles","Screen recorder with webcam overlay"],pros:["Most complete AI feature set of any browser-based video editor","Auto Subtitle quality is among the best available","No software download required — works entirely in browser"],cons:["Browser-based processing can be slower for long videos","Advanced editing features are less powerful than desktop software","Pricing adds up for heavy users"],pricingSummary:"VEED Free includes limited exports with watermark. Basic at $18/month. Pro at $30/month. Business at $59/month.",pricingModel:"freemium",platform:["web"],audience:["content-creators","marketers","youtubers"],categories:["ai-video-generation"],tags:["video-editing","subtitles","caption","online-editor","social-media","youtube"],officialUrl:"https://veed.io",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=veed",alternatives:["descript","opus-clip","runway"],relatedTools:["descript","opus-clip"],comparisonSlugs:[],faq:[{question:"How good is VEED auto subtitle accuracy?",answer:"VEED auto subtitles consistently rank among the most accurate available, typically achieving 95%+ accuracy on clear audio in supported languages. Manual editing of generated subtitles is always available for corrections."},{question:"Does VEED work on all devices?",answer:"VEED is a browser-based application that works on any modern device with a web browser. No installation is required. Performance is best on desktop with a stable internet connection for processing video."}],editorialVerdict:"VEED has become the most practical choice for content creators who want a full-featured AI video editor without installing software. Its Auto Subtitle feature alone justifies a subscription for creators producing regular video content, and the expanding AI feature set makes it increasingly compelling.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-04-01",logoLetter:"V",logoColor:"bg-blue-600",featured:!1,trending:!1,editorPick:!1,rating:4.4},{id:"descript",name:"Descript",slug:"descript",tagline:"Edit audio and video by editing the transcript",shortDescription:"Descript lets you edit podcasts, videos, and screen recordings by editing the transcript — a fundamentally different approach that makes audio and video editing as easy as editing a document.",fullDescription:"Descript invented a new paradigm for audio and video editing: transcribe the content first, then edit by modifying the text. Deleting a word from the transcript deletes it from the audio. Rearranging paragraphs rearranges the audio. Overdub creates an AI clone of your voice so you can fix mistakes by typing. Underlord AI can remove filler words, generate show notes, write titles, and edit through natural language instructions. Widely used by podcasters, YouTubers, online educators, and L&D teams.",whatItDoes:"Descript transcribes audio and video, then lets you edit by modifying the transcript. Underlord AI removes filler words, edits audio, generates show notes, writes titles, creates clips, and fixes mistakes through voice cloning. Screen recording, remote recording, and publishing integrations complete the workflow.",bestFor:"Podcasters, video creators, and content teams who produce regular audio or video content and want to edit through a transcript-based workflow.",useCases:["Podcast recording and editing with transcript-based workflow","YouTube video editing with automatic transcript","Filler word removal and audio cleanup","Show notes and chapter generation","Online course and screen recording production"],features:["Transcript-based audio and video editing","Overdub AI voice cloning for error correction","Underlord AI for filler word removal and content generation","Screen recorder with webcam and remote recording","Automatic chapter and show notes generation"],pros:["Transcript-based editing is dramatically faster than traditional waveform editing","Filler word removal is genuinely impressive and saves hours","Complete podcast workflow in one tool"],cons:["Learning curve for users used to traditional audio tools","Overdub voice cloning requires training data collection","Cloud-based processing can lag on slow connections"],pricingSummary:"Descript Free with 1 hour transcription/month. Creator at $24/month. Business at $40/month/user.",pricingModel:"freemium",platform:["web","desktop"],audience:["podcasters","content-creators","educators"],categories:["ai-audio-voice","ai-video-generation"],tags:["podcast","audio-editing","video-editing","transcription","filler-words","screen-recording"],officialUrl:"https://descript.com",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=descript",alternatives:["otter-ai","veed","opus-clip"],relatedTools:["otter-ai","veed","murf-ai"],comparisonSlugs:[],faq:[{question:"Is Descript suitable for complete beginners?",answer:"Descript is more approachable than professional audio tools like Adobe Audition or Logic Pro, but it has its own learning curve. The transcript-based editing concept takes some adjustment. Their tutorial library is comprehensive and most users are comfortable within a few sessions."},{question:"What is Overdub in Descript?",answer:"Overdub is Descript's voice cloning feature that creates an AI model of your voice. Once trained, you can type new text and generate audio in your voice — useful for fixing mistakes or adding content without re-recording."}],editorialVerdict:"Descript is the most innovative audio and video editing tool for creators. The transcript-based editing workflow is genuinely faster than traditional approaches for spoken content, and Underlord AI's filler word removal alone saves significant time. An essential tool for anyone producing regular audio or video content.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-04-02",logoLetter:"D",logoColor:"bg-gray-700",featured:!1,trending:!0,editorPick:!0,rating:4.6},{id:"deepl",name:"DeepL",slug:"deepl",tagline:"The world's most accurate AI translator",shortDe
359scription:"DeepL is the leading AI translation service, consistently rated as the most accurate translation tool available — supporting 33+ languages with natural, nuanced output that reads like a native speaker.",fullDescription:"DeepL has earned its reputation as the most accurate AI translation tool through consistent performance in blind translation quality tests against Google Translate, Microsoft Translator, and others. Its neural translation models produce output that sounds natural rather than literal — preserving idioms, context, and tone in ways that other tools frequently miss. DeepL supports document translation, a desktop app for quick translation across any application, and an API for building translation into software products. DeepL Write extends the platform with an AI writing assistant for native language improvement.",whatItDoes:"DeepL translates text and documents (Word, PowerPoint, PDF) across 33+ languages with industry-leading accuracy. The DeepL desktop app translates clipboard content across any application. DeepL Write helps users improve writing in German, English, and other supported languages. An API enables translation integration in software.",bestFor:"Businesses, professionals, and developers who need the most accurate translation available for communications, documents, and customer-facing content.",useCases:["Professional document translation (contracts, reports, technical docs)","Multilingual business communications and emails","Website and marketing content localization","Software and product localization","Academic research translation and reading"],features:["Best-in-class translation accuracy across 33+ languages","Document translation for Word, PowerPoint, and PDF","Desktop app for system-wide translation via clipboard","DeepL Write for AI-assisted language improvement","API for developer and enterprise integration"],pros:["Consistently rated most accurate translation — especially for European languages","Natural, nuanced output that reads like native writing","Document translation preserves original formatting"],cons:["Language support (33+) is narrower than Google Translate (100+)","Less strong for Asian language pairs versus European ones","Free tier has character limits that can be restrictive"],pricingSummary:"DeepL Free with 500,000 character/month limit. Starter at $8.74/month. Advanced at $28.74/month. Ultimate at $57.49/month. API pricing separate.",pricingModel:"freemium",platform:["web","desktop","api"],audience:["professionals","businesses","developers","academics"],categories:["ai-translation","ai-productivity"],tags:["translation","language","localization","document-translation","api"],officialUrl:"https://deepl.com",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=deepl",alternatives:["chatgpt","claude","gemini"],relatedTools:["grammarly","notion-ai"],comparisonSlugs:[],faq:[{question:"Is DeepL more accurate than Google Translate?",answer:"In multiple independent evaluations and blind tests, DeepL consistently outperforms Google Translate for quality and naturalness, particularly for European language pairs. The difference is most pronounced for languages like German, French, Spanish, Italian, and Portuguese."},{question:"Can DeepL translate entire documents?",answer:"Yes. DeepL Pro supports document translation for Word (.docx), PowerPoint (.pptx), and PDF files, preserving the original formatting. Free users can translate up to 3 documents per month."},{question:"What is DeepL Write?",answer:"DeepL Write is an AI writing assistant that helps non-native speakers improve their writing in English, German, French, Spanish, and other supported languages. It suggests improvements for grammar, word choice, and style while preserving your intended meaning."},{question:"Does DeepL have an API?",answer:"Yes. DeepL offers a translation API for developers and enterprises that enables integration into applications, CMS platforms, customer support tools, and other software. Pricing is based on characters translated."}],editorialVerdict:"DeepL is the clear choice when translation quality matters. Its natural, nuanced output consistently outperforms other automated translation tools for professional use. For businesses communicating across European languages in particular, DeepL is the standard.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-04-01",logoLetter:"D",logoColor:"bg-blue-700",featured:!1,trending:!1,editorPick:!0,rating:4.7},{id:"suno",name:"Suno",slug:"suno",tagline:"Generate complete songs with AI in seconds",shortDe
359scription:"Suno generates complete, radio-quality songs — including lyrics, vocals, melody, and production — from a text description in seconds. The most capable AI music generation tool available.",fullDescription:"Suno has achieved something that seemed science fiction a few years ago: generating complete, fully produced songs with human-quality vocals, natural instrumentation, and coherent lyrics from a simple text prompt. Suno v4 produces music across virtually every genre, from pop and hip-hop to classical and jazz, with a quality that regularly fools listeners who assume it is professionally produced music. It has been widely adopted by content creators, marketers, and music experimenters who need original music quickly without licensing fees.",whatItDoes:"Suno generates complete songs from text descriptions — you describe the style, mood, topic, or provide specific lyrics, and Suno produces a finished track with vocals, instrumentation, and production in about 30 seconds. Users can extend songs, regenerate sections, remix tracks, and download the audio.",bestFor:"Content creators, marketers, game developers, and music enthusiasts who need original music quickly without recording equipment, musical training, or licensing fees.",useCases:["Background music for YouTube and social media content","Original soundtrack creation for video games and apps","Marketing and ad jingle production","Personalized songs for social occasions","Music exploration and creative experimentation"],features:["Complete song generation with vocals and production from text","Genre control covering virtually every style","Custom lyrics mode for specific text-to-song","Song extension and cover song creation","Commercial licensing available on paid plans"],pros:["Output quality is remarkably close to professionally produced music","Extremely fast — complete songs in under 60 seconds","Genre versatility is unmatched by any competitor"],cons:["Vocal AI can still have subtle tells in complex passages","Limited control over fine musical details and arrangement","Free tier is restricted and outputs have usage limitations"],pricingSummary:"Suno Free with 50 daily credits (10 songs). Pro at $10/month for 500 monthly credits. Premier at $30/month for 2,000 credits with commercial license.",pricingModel:"freemium",platform:["web"],audience:["content-creators","marketers","developers","everyone"],categories:["ai-music","ai-audio-voice"],tags:["music-generation","ai-music","song","vocals","lyrics","soundtrack"],officialUrl:"https://suno.com",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=suno",alternatives:["murf-ai","elevenlabs"],relatedTools:["elevenlabs","murf-ai"],comparisonSlugs:[],faq:[{question:"Can Suno generate songs in any genre?",answer:"Yes. Suno covers virtually every mainstream genre including pop, rock, hip-hop, R&B, country, jazz, classical, electronic, folk, and more, as well as most niche and experimental styles. Simply describe the genre and mood in your prompt."},{question:"Are Suno songs royalty-free?",answer:"Songs generated on paid plans are available for commercial use under Suno's commercial license. Free tier songs are for personal, non-commercial use. The Premier plan includes a full commercial license for unrestricted business use."},{question:"Can I provide my own lyrics to Suno?",answer:"Yes. Suno's custom lyrics mode lets you provide specific lyrics that the AI will set to music. You can also provide a style description, key, tempo, and other parameters to guide the musical arrangement."},{question:"How does Suno compare to Udio?",answer:"Both Suno and Udio are leading AI music generation tools with similar capabilities. Suno tends to produce more consistent, polished output across genres. Udio is often praised for specific acoustic and complex arrangement styles. Both are worth trying to find your preference."}],editorialVerdict:"Suno is one of the most impressive AI capabilities to emerge in recent years. The ability to generate radio-quality songs with vocals from a text description — in under a minute, for free — is genuinely remarkable. For content creators who need original music, Suno has eliminated the licensing problem entirely.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-04-03",logoLetter:"S",logoColor:"bg-green-600",featured:!0,trending:!0,editorPick:!0,rating:4.7},{id:"stable-diffusion",name:"Stable Diffusion",slug:"stable-diffusion",tagline:"The open-source AI image model that runs anywhere",shortDe
359scription:"Stable Diffusion is the most widely used open-source AI image generation model, runnable locally on your own hardware, customizable with thousands of community models, and available through multiple commercial platforms.",fullDescription:"Developed by Stability AI, Stable Diffusion democratized AI image generation by releasing its weights openly. This has spawned an enormous ecosystem of community models, extensions (LoRAs, ControlNet), and commercial services. Platforms like DreamStudio (Stability's official product) and Automatic1111 provide interfaces for running it. The open nature means unmatched customization — thousands of fine-tuned models exist for every style imaginable.",whatItDoes:"Stable Diffusion generates images from text prompts and supports image-to-image transformation, inpainting, outpainting, and depth-conditioned generation. Through ControlNet, users can guide image generation using edge maps, poses, and depth information. Community fine-tuned models allow generation in specific art styles, characters, or concepts.",bestFor:"Technical users, artists, and developers who want maximum control and customization over AI image generation, including the ability to run locally without usage limits or cost.",useCases:["Unlimited local image generation without per-image fees","Fine-tuned model training for specific styles or characters","ControlNet-guided generation for precise composition control","Inpainting and outpainting for image editing","Building custom AI image generation pipelines and tools"],features:["Open-source weights available for local deployment","Thousands of community fine-tuned models on Civitai","ControlNet for pose, edge, and depth-guided generation","Automatic1111 and ComfyUI interfaces for advanced workflows","API access via Stability AI and third-party providers"],pros:["No usage limits when run locally on your own hardware","Deepest customization of any AI image tool","Massive community ecosystem of models and extensions"],cons:["Requires technical knowledge for local setup","Hardware requirements can be significant for fast generation","Community platforms have more NSFW content than moderated tools"],pricingSummary:"Free when self-hosted. DreamStudio (official cloud) uses credit-based pricing. Many third-party platforms offer free tiers.",pricingModel:"free",platform:["desktop","web","api"],audience:["developers","artists","technical-users"],categories:["ai-image-generation"],tags:["open-source","local-ai","image-generation","diffusion","community-models"],officialUrl:"https://stability.ai",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=stable-diffusion",alternatives:["midjourney","adobe-firefly","ideogram","canva-ai"],relatedTools:["midjourney","leonardo-ai"],comparisonSlugs:[],faq:[{question:"Can Stable Diffusion run on my laptop?",answer:"Stable Diffusion can run on consumer hardware with a dedicated GPU. Nvidia GPUs with 8GB+ VRAM work well for standard resolutions. Newer SDXL models benefit from 12GB+. Without a dedicated GPU, generation is significantly slower via CPU."},{question:"What is the difference between Stable Diffusion and Midjourney?",answer:"Midjourney is a closed commercial product known for exceptional aesthetic quality and ease of use. Stable Diffusion is open-source, offering unlimited customization and local deployment at the cost of higher technical complexity. Many professional users use both for different tasks."}],editorialVerdict:"Stable Diffusion remains the most powerful and flexible AI image generation option available. For technical users and developers, nothing matches its customizability, local deployment, and the breadth of its community ecosystem. For non-technical users who want beautiful images quickly, Midjourney remains the easier path.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-15",logoLetter:"S",logoColor:"bg-yellow-600",featured:!1,trending:!1,editorPick:!1,rating:4.4}],Gb=[{id:"dalle-3",name:"DALL-E 3",slug:"dalle-3",tagline:"OpenAI's most precise AI image generator",shortDe
359scription:"DALL-E 3 is OpenAI's latest text-to-image model, built into ChatGPT and the API, capable of generating highly detailed, prompt-accurate images across virtually any style.",fullDescription:"DALL-E 3 represents a significant leap over its predecessors in prompt adherence — where earlier models would often ignore details or misinterpret instructions, DALL-E 3 follows complex, nuanced prompts with impressive accuracy. It is integrated directly into ChatGPT, making it accessible to millions of users without any additional setup. The model supports a wide range of artistic styles, from photorealism to illustration, watercolor, and abstract art. For developers, it is accessible via the OpenAI API.",whatItDoes:"DALL-E 3 generates high-quality images from text descriptions. Users can specify subject matter, artistic style, composition, lighting, and mood. It handles complex multi-element scenes and is notably better than earlier models at rendering text within images.",bestFor:"Content creators, marketers, and designers who need quick, high-quality visuals from text prompts without design software experience.",useCases:["Creating custom illustrations for blog posts and articles","Generating social media visuals and marketing assets","Concept art and visual ideation for creative projects","Producing product mockup backgrounds and lifestyle imagery","Generating unique icons and brand visuals"],features:["High prompt-adherence with complex multi-element scenes","Wide range of artistic styles and rendering modes","Text rendering within images","Direct integration with ChatGPT","OpenAI API access for developers"],pros:["Best-in-class prompt accuracy among major image generators","Accessible through ChatGPT with no extra setup","Consistent, production-ready output quality"],cons:["Cannot edit or modify existing images (inpainting is limited)","More conservative content policy than some competitors","No standalone app — requires ChatGPT or API access"],pricingSummary:"Available in ChatGPT Free (limited), ChatGPT Plus at $20/month, and via OpenAI API with pay-per-image pricing.",pricingModel:"freemium",platform:["web","api"],audience:["creators","marketers","designers","developers"],categories:["ai-image-generation"],tags:["image-generation","text-to-image","openai","dall-e","art"],officialUrl:"https://openai.com/dall-e-3",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=dalle-3",alternatives:["midjourney","stable-diffusion","ideogram","adobe-firefly"],relatedTools:["chatgpt","midjourney","leonardo-ai"],comparisonSlugs:[],faq:[{question:"Is DALL-E 3 free to use?",answer:"DALL-E 3 is available in limited quantity on the free ChatGPT tier. ChatGPT Plus subscribers get significantly more image generations per day. It is also available via the OpenAI API with pay-per-image pricing."},{question:"How is DALL-E 3 different from Midjourney?",answer:'DALL-E 3 excels at following complex, detailed prompts accurately. Midjourney is often preferred for highly stylized, aesthetic outputs. DALL-E 3 is easier to access (through ChatGPT), while Midjourney typically produces more "artistic" results. Both are competitive at photorealism.'}],editorialVerdict:"DALL-E 3 is the most accessible high-quality image generator available, built directly into ChatGPT. Its prompt adherence is best-in-class. For users who already have ChatGPT Plus, it is the easiest and most capable image generation option without switching tools.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-04-01",logoLetter:"D",logoColor:"bg-green-700",featured:!1,trending:!1,editorPick:!0,rating:4.6},{id:"stable-diffusion",name:"Stable Diffusion",slug:"stable-diffusion",tagline:"The open-source foundation of AI image generation",shortDescription:"Stable Diffusion is the world's most widely used open-source text-to-image AI model, powering thousands of apps, custom workflows, and local deployments with full user control.",fullDescription:"Released by Stability AI in 2022, Stable Diffusion democratized AI image generation by making a powerful model openly available for anyone to run, modify, and build on. Unlike closed models, Stable Diffusion can be run locally on consumer hardware, fine-tuned on custom datasets, and extended through community-developed models (LoRAs, embeddings, checkpoints) available on platforms like Civitai. The ecosystem around Stable Diffusion — particularly ComfyUI and Automatic1111 — is enormous and continuously evolving.",whatItDoes:"Stable Diffusion generates images from text prompts (txt2img), transforms existing images (img2img), inpaints selected areas, and supports advanced workflows through community tools. Users can fine-tune models for specific styles, characters, or subjects.",bestFor:"Power users, developers, and creatives who want maximum control and customization over their AI image generation workflow.",useCases:["Running fully local, private image generation without API costs","Fine-tuning models on specific characters or art styles","Building custom image generation pipelines and tools","Generating NSFW content where permitted locally","Research and experimentation with generative AI"],features:["Fully open-source and locally runnable","Massive ecosystem of community models and LoRAs on Civitai","Advanced workflows through ComfyUI and Automatic1111","img2img, inpainting, outpainting, and upscaling","No content restrictions when run locally"],pros:["Free to run locally — no per-image API costs","Maximum customization and control","Vast community ecosystem with thousands of models"],cons:["Requires technical knowledge to set up and optimize","Hardware requirements (GPU) for best local performance","Less beginner-friendly than cloud-based tools"],pricingSummary:"Free and open-source to run locally. Cloud-hosted options available through DreamStudio and other platforms starting from credit-based pricing.",pricingModel:"free",platform:["desktop","api","web"],audience:["developers","power-users","researchers","artists"],categories:["ai-image-generation"],tags:["image-generation","open-source","local","stable-diffusion","comfyui"],officialUrl:"https://stability.ai",trackingUrl:null,monetizationType:"none",monetizationStatus:"unavailable",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=stable-diffusion",alternatives:["midjourney","dalle-3","leonardo-ai","ideogram"],relatedTools:["midjourney","leonardo-ai","adobe-firefly"],comparisonSlugs:[],faq:[{question:"Do I need a powerful GPU to run Stable Diffusion?",answer:"A modern NVIDIA GPU with at least 6GB VRAM is recommended for c
359omfortable local use. Some optimized versions can run on 4GB VRAM or even CPU (slowly). Cloud-hosted options like DreamStudio remove the hardware requirement entirely."},{question:"What is the difference between Stable Diffusion and Midjourney?",answer:"Midjourney is a closed, cloud-based service that produces highly polished aesthetic results with minimal setup. Stable Diffusion is open-source, locally runnable, and endlessly customizable, but requires more technical effort to operate effectively."}],editorialVerdict:"Stable Diffusion is the foundation of the AI image generation ecosystem. For technically capable users who want complete control, zero ongoing costs, and maximum customization, it remains the best option. Beginners are better served by Midjourney or DALL-E 3 for faster, higher-quality results with less effort.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-20",logoLetter:"S",logoColor:"bg-orange-600",featured:!1,trending:!1,editorPick:!1,rating:4.4},{id:"gemini-advanced",name:"Gemini Advanced",slug:"gemini-advanced",tagline:"Google's most capable AI assistant with deep workspace integration",shortDescription:"Gemini Advanced is Google's premium AI tier powered by Gemini Ultra, offering superior reasoning, deep Google Workspace integration, and access to Google's latest AI research.",fullDescription:"Gemini Advanced brings Google's most powerful model — Gemini Ultra — to consumers via Google One Premium. It integrates seamlessly with Gmail, Docs, Drive, and the broader Google ecosystem, making it a compelling option for professionals already embedded in Google's tools. Beyond the integration advantages, Gemini Advanced handles complex, multi-step reasoning tasks, lengthy document analysis, and advanced coding with impressive proficiency. Its multimodal capabilities allow it to analyze images, charts, and documents natively.",whatItDoes:"Gemini Advanced assists with deep research, complex analysis, extended document processing, coding, and integrates with Google Workspace apps to help draft emails, summarize documents, and analyze spreadsheets. It also supports real-time information via Google Search grounding.",bestFor:"Google Workspace power users who want AI assistance tightly integrated with Gmail, Docs, Drive, and other Google services.",useCases:["Drafting and summarizing emails directly in Gmail","Analyzing and querying Google Sheets data","Deep research with Google Search grounding","Extended document analysis from Google Drive","Complex multi-step reasoning and planning tasks"],features:["Gemini Ultra model for superior reasoning","Native Google Workspace integration (Gmail, Docs, Sheets, Drive)","Multimodal input: text, images, PDFs, audio","Real-time Google Search grounding","1M+ token context window in experimental mode"],pros:["Deepest Google Workspace integration of any AI tool","Excellent for users already in the Google ecosystem","One of the longest context windows available"],cons:["Requires Google One subscription for Advanced tier","Less strong for creative writing vs Claude or GPT-4","Integration quality varies across Google apps"],pricingSummary:"Gemini Advanced is included with Google One AI Premium at $19.99/month, which also includes 2TB storage and other Google One benefits.",pricingModel:"paid",platform:["web","mobile"],audience:["professionals","students","everyone"],categories:["ai-chatbots","ai-productivity","ai-writing"],tags:["chatbot","google","gemini","workspace","multimodal","llm"],officialUrl:"https://gemini.google.com/advanced",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=gemini-advanced",alternatives:["chatgpt","claude","copilot"],relatedTools:["gemini","notebooklm","chatgpt"],comparisonSlugs:[],faq:[{question:"Is Gemini Advanced worth paying for?",answer:"If you are a heavy Google Workspace user, Gemini Advanced offers genuine productivity gains through its Gmail, Docs, and Drive integration. For users outside the Google ecosystem, ChatGPT Plus or Claude Pro may offer better value."},{question:"How does Gemini Advanced compare to ChatGPT Plus?",answer:"Both are premium AI tiers at a similar price. Gemini Advanced excels at Google Worksp
359ace integration and has a longer context window. ChatGPT Plus has a more mature ecosystem, better image generation via DALL-E 3, and generally stronger creative writing."}],editorialVerdict:"Gemini Advanced is the strongest choice for professionals deeply embedded in the Google Workspace ecosystem. Its integration with Gmail, Docs, and Drive is genuinely useful and saves real time. For users outside Google's orbit, ChatGPT Plus remains the more versatile option.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-04-01",logoLetter:"G",logoColor:"bg-blue-500",featured:!1,trending:!0,editorPick:!1,rating:4.5},{id:"copilot-microsoft",name:"Microsoft Copilot",slug:"microsoft-copilot",tagline:"Microsoft's AI assistant powered by GPT-4 and Bing",shortDescription:"Microsoft Copilot is a free AI assistant built on GPT-4 with real-time web search, image generation, and deep integration with Microsoft 365 and Windows.",fullDescription:"Microsoft Copilot (formerly Bing Chat) brings GPT-4 class capabilities to a free, widely accessible product embedded across Windows, Edge, Bing, and Microsoft 365. It is one of the few AI assistants that offers GPT-4 level performance for free. Copilot includes real-time web search, DALL-E 3 image generation, document summarization, and — for Microsoft 365 subscribers — deep integration with Word, Excel, PowerPoint, and Outlook. The enterprise version, Microsoft 365 Copilot, is an increasingly important productivity tool in large organizations.",whatItDoes:"Microsoft Copilot answers questions with real-time web search, generates images via DALL-E 3, drafts and edits documents, summarizes web pages and PDFs, and integrates with Microsoft 365 apps for document creation, spreadsheet analysis, and email management.",bestFor:"Microsoft 365 users, Windows users, and anyone who wants GPT-4 class AI with web search for free.",useCases:["Free GPT-4 access with current web information","Generating images with DALL-E 3 at no cost","Summarizing websites and documents in Edge browser","Drafting emails and documents in Outlook and Word","Excel data analysis and formula generation"],features:["GPT-4 powered with real-time Bing web search","DALL-E 3 image generation (free tier)","Microsoft 365 integration (Word, Excel, PowerPoint, Outlook)","Built into Windows 11, Edge, and Bing","Enterprise version: Microsoft 365 Copilot"],pros:["Free access to GPT-4 class AI with web search","Best Microsoft 365 integration in any AI tool","DALL-E 3 image generation included free"],cons:["Microsoft 365 Copilot requires expensive enterprise licensing","Can feel less polished than dedicated AI apps","Creative writing and nuanced tasks lag behind Claude and GPT-4o"],pricingSummary:"Copilot is free for consumers. Microsoft 365 Copilot for businesses is $30/user/month on top of existing M365 subscriptions.",pricingModel:"freemium",platform:["web","desktop","mobile"],audience:["everyone","enterprise","students"],categories:["ai-chatbots","ai-productivity","ai-writing"],tags:["chatbot","microsoft","gpt-4","bing","office","free"],officialUrl:"https://copilot.microsoft.com",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=microsoft-copilot",alternatives:["chatgpt","claude","gemini"],relatedTools:["chatgpt","github-copilot","notion-ai"],comparisonSlugs:[],faq:[{question:"Is Microsoft Copilot the same as GitHub Copilot?",answer:"No. Microsoft Copilot is a general-purpose AI assistant for consumers and Microsoft 365 users. GitHub Copilot is a code-specific AI assistant for developers, integrated into VS Code and other IDEs. Both use GPT-4 but serve very different purposes."},{question:"Is Microsoft Copilot really free?",answer:"Yes, the consumer version of Microsoft Copilot is free with no usage limits for basic chat. It includes GPT-4 access and DALL-E 3 image generation (with a daily limit). The enterprise Microsoft 365 Copilot product costs extra."}],editorialVerdict:"Microsoft Copilot is remarkable value — GPT-4 with real-time search and DALL-E 3 images, all for free. For Microsoft 365 users, the document integration adds genuine productivity value. The consumer product is the best free AI assistant available today.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-04-01",logoLetter:"C",logoColor:"bg-blue-600",featured:!1,trending:!1,editorPick:!1,rating:4.3},{id:"llama",name:"Meta Llama",slug:"meta-llama",tagline:"Meta's open-source LLM powering a generation of AI products",shortDe
359scription:"Meta Llama is a family of open-source large language models from Meta AI that can be downloaded, fine-tuned, and deployed freely — the backbone of the open-source LLM ecosystem.",fullDescription:"Meta's Llama models (Llama 2, Llama 3, and beyond) have become the dominant open-source foundation for AI development. Unlike proprietary models, Llama weights are freely downloadable and can be run locally, fine-tuned on custom data, and integrated into commercial products. Llama 3 70B and 405B models compete with proprietary frontier models on many benchmarks. The ecosystem of Llama-based products — including Ollama, LM Studio, and Groq — makes running capable AI locally more accessible than ever.",whatItDoes:"Meta Llama is a base model that developers use to build applications, run locally, fine-tune for specific domains, and integrate via APIs. Consumer interfaces include Meta AI (built into WhatsApp, Instagram, and Facebook) and third-party tools like Ollama and LM Studio.",bestFor:"Developers, researchers, and technically capable users who want to run powerful LLMs locally or build AI products without API costs.",useCases:["Running a capable LLM locally with complete privacy","Fine-tuning on proprietary data without sharing with cloud providers","Building AI-powered products without per-token API costs","Research and experimentation with foundation models","Deploying AI in air-gapped or sensitive environments"],features:["Fully open-source model weights","Range of sizes: 7B, 13B, 70B, 405B parameters","Available through Meta AI consumer interface","Compatible with Ollama, LM Studio, Groq, and many tools","Commercial use license for Llama 3"],pros:["Free to download, run, and build on","Complete data privacy when run locally","Massive ecosystem and community"],cons:["Requires technical setup for local use","Hardware requirements for larger models","Consumer interface (Meta AI) less polished than ChatGPT"],pricingSummary:"Free to download and use. Meta AI consumer interface is free. Cloud inference via Groq, Together AI, and others varies by provider.",pricingModel:"free",platform:["desktop","api","web"],audience:["developers","researchers","power-users"],categories:["ai-chatbots","ai-coding"],tags:["open-source","llm","meta","local","llama3","ollama"],officialUrl:"https://llama.meta.com",trackingUrl:null,monetizationType:"none",monetizationStatus:"unavailable",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=meta-llama",alternatives:["mistral","chatgpt","claude","grok"],relatedTools:["mistral","perplexity","chatgpt"],comparisonSlugs:[],faq:[{question:"Can I use Llama for commercial projects?",answer:"Yes, Llama 3 includes a commercial use license for most use cases. Companies with over 700 million monthly active users must obtain a separate license from Meta. Read the full license at the official Meta Llama page."},{question:"How do I run Llama locally?",answer:"The easiest way is with Ollama (command-line) or LM Studio (GUI). Both tools handle model downloading and running. You need a reasonably modern computer — a GPU significantly speeds up inference but is not strictly required for smaller 7B models."}],editorialVerdict:"Meta Llama is the most important open-source AI model family available. For developers and technically capable users, it offers a free, private, and customizable alternative to proprietary APIs. The Llama 3 70B model in particular is competitive with many paid frontier models for most tasks.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-20",logoLetter:"L",logoColor:"bg-blue-700",featured:!1,trending:!0,editorPick:!1,rating:4.5},{id:"anthropic-claude-3-5",name:"Claude 3.5 Sonnet",slug:"claude-3-5-sonnet",tagline:"Anthropic's fastest frontier model with superior coding and analysis",shortDescription:"Claude 3.5 Sonnet is Anthropic's flagship model — combining frontier-level intelligence with impressive speed and the best coding and document analysis in its class.",fullDescription:"Claude 3.5 Sonnet represents Anthropic's sharpest balance between capability and speed. It outperforms Claude 3 Opus on most benchmarks while being significantly faster and cheaper, establishing it as Anthropic's recommended model for most use cases. Its coding abilities are among the best of any model — particularly for complex refactoring, bug-finding, and reasoning about large codebase
359s. The model features a 200K token context window, making it excellent for analyzing long documents, contracts, and code repositories.",whatItDoes:"Claude 3.5 Sonnet handles complex reasoning, coding tasks, document analysis, writing, research synthesis, and nuanced instruction-following. Its Artifacts feature lets users create runnable code, documents, and interactive components directly in the chat interface.",bestFor:"Developers, researchers, and power users who need the highest-capability AI for coding, analysis, and complex reasoning tasks.",useCases:["Complex software development and code refactoring","Analyzing long contracts, research papers, and codebases","Reasoning through multi-step problems and business decisions","Creating interactive Artifacts (code, SVGs, HTML components)","High-stakes writing requiring nuance and precision"],features:["200K token context window","Artifacts: create and iterate runnable code and documents","Best-in-class coding performance","Computer use capability (beta)","Available via API and Claude.ai"],pros:["Best coding performance of any available model","Exceptionally good at following complex instructions","Very strong at nuanced, long-form writing and analysis"],cons:["No image generation","Knowledge cutoff may lag behind GPT-4o for recent events","Claude Pro required for full access at $20/month"],pricingSummary:"Available free on Claude.ai with usage limits. Claude Pro at $20/month for higher limits and priority access. API pricing by token.",pricingModel:"freemium",platform:["web","api"],audience:["developers","researchers","writers","analysts"],categories:["ai-chatbots","ai-coding","ai-writing"],tags:["chatbot","anthropic","claude","coding","llm","analysis"],officialUrl:"https://claude.ai",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=claude-3-5-sonnet",alternatives:["chatgpt","gemini","grok"],relatedTools:["claude","chatgpt","perplexity"],comparisonSlugs:["chatgpt-vs-claude"],faq:[{question:"Is Claude 3.5 Sonnet better than GPT-4o?",answer:"Claude 3.5 Sonnet consistently outperforms GPT-4o on coding benchmarks and many reasoning tasks. For creative writing, many users prefer Claude for its more natural prose style. GPT-4o has an edge in multimodal tasks, DALL-E integration, and ecosystem breadth."},{question:"What are Claude Artifacts?",answer:"Artifacts is a feature in Claude.ai that lets you create self-contained pieces of content — runnable code, React components, HTML pages, SVGs, markdown documents — that appear in a side panel and can be previewed, iterated, and downloaded."}],editorialVerdict:"Claude 3.5 Sonnet is the best model for serious coding and analytical work. Its instruction-following, long-context capabilities, and coding performance are the best available. For developers and researchers, it often outperforms GPT-4o for the most demanding tasks. An essential tool in any AI power user's stack.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-04-10",logoLetter:"C",logoColor:"bg-orange-500",featured:!0,trending:!0,editorPick:!0,rating:4.8},{id:"loom-ai",name:"Loom AI",slug:"loom-ai",tagline:"Record, transcribe, and summarize video messages with AI",shortDescription:"Loom AI enhances Loom's async video messaging platform with automatic transcription, AI summaries, action items, chapters, and document generation from any video recording.",fullDescription:"Loom is the leading async video messaging platform for teams, and its AI layer dramatically increases the value of recorded content. With Loom AI, every video is automatically transcribed, summarized into key points, and analyzed for action items. It can generate full written documents from video content — turning a spoken walkthrough into a structured written guide. For remote teams, Loom AI reduces the need to rewatch videos and enables search across video content at scale.",whatItDoes:"Loom AI automatically transcribes videos, generates summaries and action items, creates chapters for easy navigation, drafts follow-up documents from video content, and enables team
359s to search across all recorded video content.",bestFor:"Remote teams and asynchronous workers who record instructional videos, meeting recaps, and product walkthroughs and need to extract and share the key information efficiently.",useCases:["Auto-generating meeting summaries and action items from recorded calls","Turning product demo videos into written documentation","Making video content searchable across a team's library","Reducing video rewatch time with AI-generated chapters","Drafting follow-up emails and docs from video content"],features:["Automatic video transcription","AI-generated summaries and action items","Smart video chapters","Document generation from video content","Full-text search across video library"],pros:["Seamlessly integrated into an already-excellent video platform","Huge time saver for teams with large video libraries","Document generation from video is uniquely useful"],cons:["AI features require Loom Business plan","Transcription accuracy varies with accents and audio quality","Not a standalone AI tool — requires L
359oom subscription"],pricingSummary:"Loom Starter is free with basic video recording. AI features require Loom Business at $12.50/user/month.",pricingModel:"freemium",platform:["web","desktop","mobile"],audience:["teams","remote-workers","managers","educators"],categories:["ai-productivity","ai-video-generation"],tags:["video","async","transcription","summary","remote-work","meetings"],officialUrl:"https://www.loom.com",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=loom-ai",alternatives:["otter-ai","descript","veed"],relatedTools:["otter-ai","descript","notion-ai"],comparisonSlugs:[],faq:[{question:"Is Loom AI free?",answer:"Basic Loom recording is free. AI features (summaries, action items, document generation) require the Loom Business plan at $12.50/user/month."}],editorialVerdict:"Loom AI is a natural and very useful extension of the Loom platform. For remote teams already using Loom, the AI layer dramatically increases the value of their video library. The ability to generate written documents from video content is a standout feature not found in most competitors.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-15",logoLetter:"L",logoColor:"bg-violet-600",featured:!1,trending:!1,editorPick:!1,rating:4.2},{id:"fireflies-ai",name:"Fireflies.ai",slug:"fireflies-ai",tagline:"AI meeting notetaker that records, transcribes, and summarizes calls",shortDe
359scription:"Fireflies.ai is an AI-powered meeting assistant that automatically joins your calls, records and transcribes them, generates summaries and action items, and syncs to your CRM and project tools.",fullDescription:"Fireflies.ai is purpose-built for meeting intelligence. It integrates with Zoom, Google Meet, Teams, and virtually every major video conferencing platform to automatically capture and process meeting content. Beyond transcription and summary, Fireflies offers AI-powered search across all meetings, speaker analytics, sentiment analysis, and smart filters to identify action items, questions, and topics. CRM integrations with Salesforce, HubSpot, and others make it particularly powerful for sales teams.",whatItDoes:"Fireflies.ai joins meetings as a bot, records and transcribes in real-time, generates structured summaries with action items, enables search across meeting history, and pushes data to CRMs and project management tools.",bestFor:"Sales teams, managers, and remote teams who want to capture, search, and act on meeting content without manual note-taking.",useCases:["Automatically logging sales calls to CRM with summaries","Tracking action items across all team meetings","Onboarding new team members with meeting history access","Coaching sales reps with call recording and analytics","Compliance and record-keeping for regulated industries"],features:["Auto-joins Zoom, Meet, Teams calls as a bot","Real-time transcription with speaker identification","AI summaries, action items, and smart search","CRM sync: Salesforce, HubSpot, and more","Speaker analytics and sentiment analysis"],pros:["Works across all major video conferencing platforms","Strong CRM integration for sales teams","Excellent search across meeting history"],cons:["Bot joining calls can feel intrusive to participants","Advanced features require paid plans","Transcription accuracy can vary with audio quality"],pricingSummary:"Free plan with limited transcription minutes. Pro at $10/seat/month, Business at $19/seat/month for full features.",pricingModel:"freemium",platform:["web"],audience:["teams","sales","managers","enterprise"],categories:["ai-productivity"],tags:["meetings","transcription","notetaker","crm","sales","summary"],officialUrl:"https://fireflies.ai",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=fireflies-ai",alternatives:["otter-ai","loom-ai","notion-ai"],relatedTools:["otter-ai","zapier-ai","notion-ai"],comparisonSlugs:[],faq:[{question:"Does Fireflies.ai work with Zoom?",answer:"Yes, Fireflies.ai integrates natively with Zoom, Google Meet, Microsoft Teams, Webex, and most other major video conferencing platforms. It joins as a bot participant."}],editorialVerdict:"Fireflies.ai is one of the best purpose-built meeting intelligence tools available. Its breadth of integrations, CRM sync, and powerful search across meeting history make it particularly valuable for sales teams and organizations with high meeting volume.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-10",logoLetter:"F",logoColor:"bg-purple-600",featured:!1,trending:!1,editorPick:!1,rating:4.3},{id:"surfer-seo",name:"Surfer SEO",slug:"surfer-seo",tagline:"AI-powered SEO content optimization for better rankings",shortDescription:"Surfer SEO is an AI-driven content optimization platform that analyzes SERPs, provides data-driven content guidelines, and helps writers create pages that rank higher in search results.",fullDescription:"Surfer SEO takes a data-driven approach to content optimization. By analyzing the top-ranking pages for any keyword, it identifies the structural patterns, word counts, heading usage, semantic keywords, and content depth that correlate with high search rankings. Writers use Surfer's Content Editor in real-time to score and optimize their content as they write. The platform also includes AI writing capabilities, an audit tool for existing pages, and keyword research features — making it a comprehensive on-page SEO suite.",whatItDoes:"Surfer SEO analyzes SERPs for target keywords, provides optimized content briefs and outlines, scores content in real-time as you write, audits existing pages for SEO gaps, and includes AI writing features for rapid content creation.",bestFor:"SEO writers, content marketers, and agencies who need to consistently produce content optimized to rank for specific keywords.",useCases:["Creating data-driven content briefs for writers","Real-time content scoring while writing to hit target metrics","Auditing existing content pages for SEO improvement opportunities","Keyword research and content gap analysis","Scaling SEO content production with AI writing assistance"],features:["Real-time Content Editor with SERP-based scoring","AI-powered content outlines and briefs","Page Audit for existing content optimization","Keyword Research with SERP analyzer","Google Docs and WordPress 
359integration"],pros:["Best-in-class real-time content scoring based on actual SERP data","Significant time savings for SEO content workflows","Clear, actionable recommendations for writers"],cons:["Can lead to over-optimization if taken too literally","Relatively expensive for individuals and small teams","AI-generated content requires heavy editing to be useful"],pricingSummary:"Essential plan starts at $89/month. Scale plan at $129/month. Enterprise pricing available for agencies.",pricingModel:"paid",platform:["web"],audience:["marketers","writers","agencies","seo-professionals"],categories:["ai-writing","ai-productivity"],tags:["seo","content-optimization","writing","marketing","serp"],officialUrl:"https://surferseo.com",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=surfer-seo",alternatives:["jasper","writesonic","copy-ai"],relatedTools:["jasper","writesonic","grammarly"],comparisonSlugs:[],faq:[{question:"Does Surfer SEO guarantee better rankings?",answer:"No tool can guarantee rankings. Surfer SEO improves your content alignment with the patterns that correlate with ranking pages, which tends to improve ranking probability. Other factors — domain authority, backlinks, and technical SEO — also influence rankings significantly."}],editorialVerdict:"Surfer SEO is the market-leading content optimization platform for SEO professionals. Its real-time scoring and SERP-based recommendations meaningfully improve the ranking potential of written content. Worth the price for any team producing more than a few SEO articles per month.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-10",logoLetter:"S",logoColor:"bg-emerald-600",featured:!1,trending:!1,editorPick:!1,rating:4.4},{id:"make-ai",name:"Make (Integromat)",slug:"make",tagline:"Visual automation platform with powerful AI integrations",shortDescription:"Make is a visual workflow automation platform that connects hundreds of apps and services, with robust AI integrations that let you build intelligent automation pipelines without code.",fullDescription:"Make (formerly Integromat) is a powerful visual automation platform that competes directly with Zapier but offers more flexibility for complex workflows. Its visual canvas approach lets users build multi-step automation scenarios with branching logic, error handling, and data transformation. Make has embraced AI heavily — with native integrations for OpenAI, Anthropic, Hugging Face, and other AI providers — making it possible to build sophisticated AI automation pipelines that process data, generate content, analyze sentiment, and route decisions based on AI outputs.",whatItDoes:"Make connects apps and services in visual automation workflows. Users can build scenarios that trigger on events, process data through multiple steps, integrate AI for intelligent decision-making and content generation, and automate complex multi-app business processes.",bestFor:"Teams and power users who need complex, multi-step automation workflows that go beyond what simpler tools like Zapier can handle, especially those incorporating AI decision-making.",useCases:["Building AI-powered content pipelines (research → write → post)","Automating customer support with AI response generation","Creating data enrichment workflows with AI classification","Connecting CRMs to AI tools for lead scoring and qualification","Building complex multi-step business process automation"],features:["Visual scenario builder with advanced logic","1,500+ app integrations","Native OpenAI, Claude, and Hugging Face integrations","Advanced data transformation and routing","Webhooks, API calls, and custom functions"],pros:["More powerful and flexible than Zapier for complex workflows","Excellent value — more operations for lower price","Strong AI integration capabilities"],cons:["Steeper learning curve than simpler automation tools","Complex scenarios can be difficult to debug","Documentation and support can be inconsistent"],pricingSummary:"Free plan with 1,000 operations/month. Core plan at $9/month, Pro at $16/month, Teams at $29/month.",pricingModel:"freemium",platform:["web"],audience:["developers","marketers","operations","agencies"],categories:["ai-productivity"],tags:["automation","workflow","no-code","integration","zapier-alternative"],officialUrl:"https://make.com",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=make",alternatives:["zapier-ai","n8n"],relatedTools:["zapier-ai","notion-ai"],comparisonSlugs:[],faq:[{question:"Is Make better than Zapier?",answer:"Make is more powerful and flexible for complex workflows, while Zapier is simpler and easier for basic automations. Make offers better value per operation at similar price points. For teams with complex, multi-step automation needs and AI integrations, Make is generally the stronger choice."}],editorialVerdict:"Make is the most powerful general-purpose automation platform for teams willing to invest the time to learn it. Its visual scenario builder and robust AI integrations make it ideal for building sophisticated AI-powered workflows. Better value than Zapier at equivalent complexity.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-15",logoLetter:"M",logoColor:"bg-purple-700",featured:!1,trending:!1,editorPick:!1,rating:4.4},{id:"airtable-ai",name:"Airtable AI",slug:"airtable-ai",tagline:"AI-powered database and workflow platform for modern teams",shortDe
359scription:"Airtable AI brings AI-powered data enrichment, content generation, and workflow automation directly into the world's most popular flexible database platform.",fullDescription:"Airtable is the spreadsheet-database hybrid that millions of teams use to manage projects, assets, campaigns, and data. Airtable AI extends this with native AI fields that can summarize rows of data, categorize text, extract structured information, generate content, and translate records — all within the familiar Airtable interface. Combined with Airtable's automation system, teams can build sophisticated AI-augmented workflows that process data at scale without leaving the platform.",whatItDoes:"Airtable AI adds AI-powered fields to any table — letting users generate text, summarize content, categorize data, extract key information, and enrich records with AI. Automations can trigger AI processing on new records or on schedule.",bestFor:"Teams that already use Airtable for project management or data organization and want to add AI capabilities without switching tools.",useCases:["Auto-categorizing and tagging content libraries","Generating first drafts of content from brief structured data","Summarizing long text fields in records","Extracting structured data from unstructured text","Enriching CRM and sales pipeline records with AI"],features:["AI fields: generate, summarize, classify, extract, translate","AI in Automations for batch processing","Custom AI prompts with record data as context","Works with existing Airtable tables and data","Available across all Airtable plan tiers"],pros:["No-context-switch AI — works inside existing Airtable workflows","Powerful for batch processing large datasets","Easy to configure, no coding required"],cons:["AI features have usage credits tied to plan tier","Less capable than dedicated AI tools for complex generation","Requires Airtable subscription to access"],pricingSummary:"Airtable plans start at $20/seat/month (Plus). AI features are available on Team ($45/seat/month) and Business plans.",pricingModel:"paid",platform:["web","mobile"],audience:["teams","operations","marketers","project-managers"],categories:["ai-productivity"],tags:["database","productivity","automation","no-code","data"],officialUrl:"https://airtable.com",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=airtable-ai",alternatives:["notion-ai","zapier-ai","make-ai"],relatedTools:["notion-ai","zapier-ai"],comparisonSlugs:[],faq:[{question:"What AI features does Airtable offer?",answer:"Airtable AI includes AI fields that can generate text, summarize content, categorize records, extract structured data, and translate text. These can be combined with Airtable Automations to process records in bulk automatically."}],editorialVerdict:"Airtable AI is a genuinely useful addition to an already powerful platform. For teams with large data sets in Airtable, the ability to batch-process records with AI — categorizing, summarizing, enriching — saves significant manual effort. Best suited to existing Airtable users rather than those adopting the platform specifically for AI.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-10",logoLetter:"A",logoColor:"bg-yellow-500",featured:!1,trending:!1,editorPick:!1,rating:4.2},{id:"linear-ai",name:"Linear",slug:"linear",tagline:"The issue tracker for high-performance engineering teams",shortDescription:"Linear is the fast, keyboard-first issue tracker used by top engineering teams, with AI features for automatic issue triage, summary generation, and sprint planning assistance.",fullDescription:"Linear has become the issue tracker of choice for many of the world's best engineering teams, replacing Jira with a dramatically faster and more elegant experience. Its AI capabilities include automatic issue categorization, duplicate detection, effort estimation, and AI-generated summaries of lengthy issue threads. Linear's AI also assists with sprint planning and provides insights on team velocity and bottlenecks. The tool's emphasis on speed — keyboard shortcuts, instant search, lightning-fast UI — makes it the anti-Jira for teams that value developer experience.",whatItDoes:"Linear manages engineering projects through issues, cycles (sprints), projects, and roadmaps. AI features automate triage, generate summaries, detect duplicates, assist with planning, and surface insights about team performance and project health.",bestFor:"Software engineering teams that want a fast, beautiful alternative to Jira with AI-powered automation for issue management.",useCases:["Managing software development sprints and backlogs","AI-powered triage and prioritization of incoming issues","Detecting and merging duplicate issue reports","Generating weekly engineering summaries for stakeholders","Tracking engineering velocity and identifying bottlenecks"],features:["AI issue triage and auto-categorization","Duplicate issue detection","AI-generated issue and project summaries","Sprint planning assistance","Lightning-fast 
359keyboard-first interface"],pros:["Dramatically faster and more pleasant than Jira","Beloved by engineering teams for its design and UX","AI features reduce manual triage and admin burden"],cons:["Less feature-complete than Jira for complex enterprise workflows","AI features are supplementary, not transformative","Pricing adds up for larger teams"],pricingSummary:"Free for up to 250 issues. Standard at $8/user/month, Plus at $14/user/month.",pricingModel:"freemium",platform:["web","desktop","mobile"],audience:["developers","engineering-teams","startups"],categories:["ai-productivity"],tags:["project-management","engineering","issue-tracking","productivity","jira-alternative"],officialUrl:"https://linear.app",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=linear",alternatives:["notion-ai"],relatedTools:["notion-ai","github-copilot"],comparisonSlugs:[],faq:[{question:"Is Linear better than Jira?",answer:"Linear is significantly faster and more pleasant to use than Jira. It's beloved by many engineering teams for precisely this reason. However, Jira has more features and integrations for complex enterprise workflows. For startups and growing engineering teams, Linear is almost universally preferred over Jira."}],editorialVerdict:"Linear is the best issue tracker for engineering teams that value speed and developer experience. Its AI features are genuinely useful additions rather than bolted-on marketing. If your team is on Jira and dreads using it, Linear is worth evaluating seriously.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-01",logoLetter:"L",logoColor:"bg-gray-800",featured:!1,trending:!1,editorPick:!0,rating:4.7},{id:"kling-ai",name:"Kling AI",slug:"kling-ai",tagline:"High-quality AI video generation from text and images",shortDescription:"Kling AI is a Chinese AI video generation model from Kuaishou that produces high-quality, realistic video clips from text prompts and images, competing directly with Sora and Runway.",fullDescription:"Kling AI burst onto the global AI video scene with impressive quality that rivals the best Western models. Developed by Kuaishou, it supports both text-to-video and image-to-video generation, producing smooth, physically plausible motion with impressive fidelity. Kling has become particularly popular for generating realistic human motion, facial expressions, and complex scene compositions. It offers longer video durations (up to 2 minutes) than many competitors and is available through an accessible web interface.",whatItDoes:"Kling AI generates video clips from text descriptions or seed images. It produces up to 2-minute videos, supports camera motion control, and offers both standard and professional quality tiers for different use cases.",bestFor:"Video content creators, marketers, and filmmakers who want high-quality AI video generation with realistic motion and long clip support.",useCases:["Generating realistic short films and video ads from text prompts","Animating still images into video","Creating social media video content at scale","Prototyping video ad concepts before production","Generating b-roll and stock video replacements"],features:["Text-to-vi
359deo and image-to-video generation","Up to 2-minute video clips","Camera motion control","Realistic human motion and facial expressions","High and standard quality generation tiers"],pros:["Among the best video quality available, rivaling Sora","Longer video generation than most competitors","Accessible web interface without technical setup"],cons:["Generation can be slow at peak times","Credit-based pricing adds up for heavy use","Less community and ecosystem than Runway"],pricingSummary:"Free tier with limited credits. Paid plans from approximately $8/month for more generation credits.",pricingModel:"freemium",platform:["web"],audience:["creators","marketers","filmmakers","designers"],categories:["ai-video-generation"],tags:["video-generation","text-to-video","image-to-video","kuaishou","sora-alternative"],officialUrl:"https://klingai.com",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=kling-ai",alternatives:["runway","pika","luma-dream-machine"],relatedTools:["runway","pika","luma-dream-machine"],comparisonSlugs:[],faq:[{question:"How does Kling AI compare to Sora?",answer:"Kling AI produces video quality that rivals OpenAI's Sora, which remains in limited access. Kling is publicly accessible and supports longer video clips (up to 2 minutes vs Sora's typical 1-minute demos). Both are among the best available AI video generators."}],editorialVerdict:"Kling AI produces some of the most impressive AI video available today. Its realistic motion, long clip support, and accessible interface make it a top choice for video creators. The fact that it rivals or exceeds OpenAI's Sora in quality while being widely available makes it an important tool to know.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-20",logoLetter:"K",logoColor:"bg-black",featured:!1,trending:!0,editorPick:!1,rating:4.5},{id:"perplexity-pro",name:"Perplexity Pro",slug:"perplexity-pro",tagline:"AI search with cited answers and access to frontier models",shortDe
359scription:"Perplexity Pro upgrades the already-excellent Perplexity AI with access to GPT-4o, Claude, and other frontier models for AI-powered search, offering cited, real-time answers with model flexibility.",fullDescription:"Perplexity Pro extends the base Perplexity product with access to multiple frontier models (GPT-4o, Claude 3.5, and others), higher usage limits, file analysis, image generation, and the ability to create AI-powered search spaces for specific knowledge domains. For users who want the best of both worlds — real-time web search with frontier model reasoning — Perplexity Pro is a compelling alternative to paying separately for ChatGPT Plus and Claude Pro.",whatItDoes:"Perplexity Pro provides AI-powered answers with live web citations, lets users choose between frontier models (GPT-4o, Claude, etc.), supports file and image uploads for analysis, generates images, and allows creation of Spaces for domain-specific research.",bestFor:"Researchers, journalists, and knowledge workers who want AI answers grounded in current, cited sources rather than static training data.",useCases:["Research with cited, up-to-date sources on any topic","Comparing answers from different frontier models","Analyzing uploaded documents and PDFs with AI","Creating research Spaces for ongoing topics","Replacing multiple AI subscriptions with one"],features:["Access to GPT-4o, Claude 3.5, and other frontier models","Cited answers with live web search","File and image upload for analysis","AI image generation","Perplexity Spaces for domain-specific research"],pros:["Best AI search with reliable, cited real-time sources","Access to multiple frontier models in one subscription","Excellent value vs paying for multiple AI subscriptions"],cons:["Not ideal for long-form generation or coding","Citations sometimes miss primary sources","Model access may lag behind latest releases"],pricingSummary:"Perplexity is free with limited Pro queries. Perplexity Pro at $20/month unlocks full frontier model access and higher limits.",pricingModel:"freemium",platform:["web","mobile"],audience:["researchers","journalists","students","professionals"],categories:["ai-chatbots","ai-research"],tags:["search","research","citations","llm","perplexity","web-search"],officialUrl:"https://perplexity.ai",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=perplexity-pro",alternatives:["chatgpt","claude","gemini","you-com"],relatedTools:["perplexity","chatgpt","notebooklm"],comparisonSlugs:[],faq:[{question:"Is Perplexity Pro worth it vs ChatGPT Plus?",answer:"Perplexity Pro is better for research requiring current, cited information. ChatGPT Plus is stronger for creative tasks, coding, and DALL-E image generation. At $20/month each, many power users find both valuable. Perplexity Pro's access to multiple models (including Claude and GPT-4o) makes it particularly good value."}],editorialVerdict:"Perplexity Pro is the best product for AI-powered research with cited sources. Its multi-model access at $20/month is compelling value. For users who prioritize current, referenced information over creative generation, it is the strongest choice available.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-04-01",logoLetter:"P",logoColor:"bg-teal-600",featured:!1,trending:!0,editorPick:!0,rating:4.7},{id:"devin-ai",name:"Devin",slug:"devin",tagline:"The first AI software engineer that can code end-to-end",shortDescription:"Devin by Cognition is the first AI software engineer capable of autonomously completing complex, multi-step coding tasks — from writing code to running tests, debugging, and deploying.",fullDescription:"Devin represents a qualitative leap in AI coding tools. Unlike AI code assistants (Copilot, Cursor) that help developers write code, Devin is designed to function as an autonomous software engineer — given a task, it can spin up its own environment, write code, run tests, hit errors, debug them, and complete the task independently. It maintains its own shell, browser, and editor. While still imperfect and best suited to well-defined, scoped tasks, Devin signals the direction of AI software development.",whatItDoes:"Devin takes a software engineering task in natural language, plans an approach, writes code, runs it, debugs errors, iterates, and completes the task autonomously. It can browse documentation, set up development environments, and push code to repositories.",bestFor:"Engineering teams that want to delegate well-defined, scoped coding tasks to an AI agent that can work autonomously without constant supervision.",useCases:["Completing isolated, well-scoped development tasks autonomously","Writing and running tests for existing codebase
359s","Migrating code between frameworks or languages","Fixing well-defined bugs with clear reproduction steps","Building small utilities and scripts from specifications"],features:["Autonomous coding with its own shell, browser, and editor","Multi-step task completion without human intervention","Ability to browse documentation and external resources","GitHub integration for code review and PRs","Task progress visibility through the Devin UI"],pros:["Truly autonomous — completes tasks without step-by-step guidance","Can handle multi-hour, multi-step development tasks","Represents the frontier of AI-assisted software development"],cons:["Very expensive — not suitable for all teams at current pricing","Success rate on complex, ambiguous tasks is still limited","Requires very clear task specifications to perform well"],pricingSummary:"Devin is available to teams via Cognition. Pricing is usage-based — contact Cognition for current pricing.",pricingModel:"paid",platform:["web"],audience:["developers","engineering-teams","startups"],categories:["ai-coding","ai-app-builders"],tags:["coding","autonomous","ai-engineer","agents","software-development"],officialUrl:"https://cognition.ai",trackingUrl:null,monetizationType:"unknown",monetizationStatus:"unknown",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=devin",alternatives:["curs
359or","github-copilot","windsurf"],relatedTools:["cursor","github-copilot","replit"],comparisonSlugs:[],faq:[{question:"Can Devin replace software engineers?",answer:"Not currently, and probably not soon. Devin is excellent at completing well-defined, scoped tasks autonomously, but struggles with ambiguous requirements, novel architectures, and tasks requiring deep domain knowledge. It is better thought of as an autonomous junior developer that handles well-defined work, freeing senior engineers for higher-level problems."}],editorialVerdict:"Devin is the most compelling demonstration of where AI software development is heading. For teams with well-defined, scoped tasks and the budget to use it, it delivers genuine value. Its limitations are real, but its capabilities are a significant step beyond what any other AI coding tool offers today.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-15",logoLetter:"D",logoColor:"bg-slate-700",featured:!1,trending:!0,editorPick:!0,rating:4.4},{id:"flux-ai",name:"FLUX.1",slug:"flux-1",tagline:"Black Forest Labs' state-of-the-art open image model",shortDescription:"FLUX.1 is a family of high-quality text-to-image models from Black Forest Labs that produce photorealistic and artistic imagery, available in open, fast, and ultra-quality variants.",fullDescription:"FLUX.1 from Black Forest Labs quickly became one of the most talked-about image generation models of 2024. Created by former members of the Stable Diffusion team, FLUX.1 offers several variants: FLUX.1 [schnell] (fast, open), FLUX.1 [dev] (high-quality, open for non-commercial use), and FLUX.1 [pro] (maximum quality, commercial via API). The models excel at photorealism, prompt adherence, and handling text within images — an area where many models struggle. FLUX.1 is increasingly integrated into third-party platforms like Replicate, fal.ai, and ComfyUI.",whatItDoes:"FLUX.1 generates high-quality images from text prompts across photorealistic, artistic, and illustrative styles. Different model variants offer different tradeoffs between generation speed, quality, and licensing.",bestFor:"Developers and power users who want state-of-the-art image generation quality, particularly for photorealistic outputs and precise prompt adherence.",useCases:["Generating photorealistic product and lifestyle imagery","Creating high-quality illustrations and artistic outputs","Generating images with text elements (logos, signs, captions)","Building image generation applications via API","Fine-tuning for specific brand styles or characters"],features:["Three model variants: schnell (fast), dev (quality), pro (max)","State-of-the-art photorealism and prompt accuracy","Strong text rendering in images","Open weights for [schnell] and [dev] variants","Available via API on Replicate, fal.ai, and others"],pros:["Top-tier image quality matching or exceeding Midjourney and DALL-E 3","Open weights for non-commercial use","Excellent at rendering text within images"],cons:["Commercial use requires the paid Pro API","Less consumer-friendly interface than Midjourney","Still building ecosystem compared to Stable Diffusion"],pricingSummary:"FLUX.1 [schnell] is open-source free. FLUX.1 [dev] is free for non-commercial use. FLUX.1 [pro] is pay-per-image via API partners.",pricingModel:"freemium",platform:["api","web"],audience:["developers","designers","creators","researchers"],categories:["ai-image-generation"],tags:["image-generation","text-to-image","open-source","flux","black-forest-labs"],officialUrl:"https://blackforestlabs.ai",trackingUrl:null,monetizationType:"none",monetizationStatus:"unavailable",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=flux-1",alternatives:["midjourney","dalle-3","stable-diffusion","ideogram"],relatedTools:["midjourney","stable-diffusion","leonardo-ai"],comparisonSlugs:[],faq:[{question:"Is FLUX.1 better than Stable Diffusion?",answer:"FLUX.1 produces superior image quality to most Stable Diffusion checkpoints out of the box, particularly for photorealism and prompt accuracy. Many power users now use FLUX.1 within ComfyUI as their primary model. For maximum customization with community LoRAs and fine-tunes, Stable Diffusion's larger ecosystem may still be preferable."}],editorialVerdict:"FLUX.1 is the new benchmark for open-weight image generation quality. Its photorealism, prompt adherence, and text rendering are best-in-class. Developers building image generation tools should evaluate FLUX.1 [pro] seriously. Artists and power users should run FLUX.1 [dev] locally via ComfyUI.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-20",logoLetter:"F",logoColor:"bg-red-700",featured:!1,trending:!0,editorPick:!0,rating:4.7},{id:"n8n",name:"n8n",slug:"n8n",tagline:"Open-source workflow automation with powerful AI integrations",shortDe
359scription:"n8n is an open-source, self-hostable workflow automation platform with 400+ integrations and native AI agent capabilities, making it the leading choice for technical teams building AI workflows.",fullDescription:"n8n (pronounced 'n-eight-n') is the open-source answer to Zapier and Make, designed for technical teams who want maximum control, self-hosting options, and advanced AI integration. Unlike SaaS automation tools, n8n can be run on your own infrastructure with no per-operation pricing. Its AI capabilities are particularly strong — with native LangChain integration, AI Agent nodes, vector store connections, and first-class support for building AI-powered automation pipelines. The combination of self-hosting, open-source code, and advanced AI features makes n8n the preferred choice for security-conscious teams and developers building sophisticated AI workflows.",whatItDoes:"n8n connects apps and services in visual workflows, supports complex branching logic and data transformation, and includes native AI agent capabilities for building intelligent automation. It can be self-hosted for complete data control or used as a cloud service.",bestFor:"Technical teams and developers who want the most powerful automation platform with AI agent capabilities, self-hosting options, and no per-operation pricing.",useCases:["Building AI agents that can perform multi-step tasks autonomously","Self-hosted automation for sensitive data that cannot leave your infrastructure","Complex AI workflows involving multiple LLM calls and data processing","Connecting internal tools and databases with AI reasoning","Replacing expensive SaaS automation tools for high-volume workflows"],features:["400+ app integrations","Native LangChain and AI Agent nodes","Vector store integrations for RAG workflows","Self-hostable on any infrastructure","Open-source code — inspect, modify, and extend"],pros:["Self-hostable with no per-operation costs after infrastructure","Most powerful AI agent capabilities of any automation tool","Open-source — full code transparency and extensibility"],cons:["Requires technical knowledge to self-host and maintain","Smaller ecosystem and community than Zapier","Cloud version pricing can be comparable to alternatives"],pricingSummary:"Free to self-host. Cloud plans from $20/month. Enterprise self-hosted plans available.",pricingModel:"freemium",platform:["web","desktop"],audience:["developers","technical-teams","enterprises"],categories:["ai-productivity"],tags:["automation","open-source","self-hosted","ai-agents","workflow","langchain"],officialUrl:"https://n8n.io",trackingUrl:null,monetizationType:"none",monetizationStatus:"unavailable",affiliateAvailable:!1,referralAvailable:!1,partnerProgramUrl:null,disclosureNote:null,claimListingUrl:"/claim-listing?tool=n8n",alternatives:["zapier-ai","make-ai"],relatedTools:["zapier-ai","make-ai"],comparisonSlugs:[],faq:[{question:"Is n8n better than Zapier for AI workflows?",answer:"n8n has significantly more advanced AI capabilities than Zapier, including native AI Agent nodes, LangChain integration, and vector store support. For technical teams building sophisticated AI pipelines, n8n is the stronger tool. Zapier is easier for non-technical users but lacks n8n's depth for AI use cases."}],editorialVerdict:"n8n is the best automation platform for technical teams who need advanced AI agent capabilities and self-hosting options. Its open-source nature, strong AI integrations, and self-hosting flexibility make it a compelling choice for organizations that need full control over their automation infrastructure.",editorialStatus:"reviewed",sponsoredStatus:!1,lastReviewed:"2026-03-15",logoLetter:"n",logoColor:"bg-red-600",featured:!1,trending:!0,editorPick:!1,rating:4.6}],He=[...Rb,...Fb,...zb,...Bb,...Ub,...Gb],Xt=e=>He.find(t=>t.slug===e),kp=e=>He.filter(t=>t.categories.includes(e)),Wb=()=>He.filter(e=>e.trending),Ob=()=>He.filter(e=>e.editorPick),Ap=e=>{let t=[...He];if(e.search){const a=e.search.toLowerCase();t=t.filter(n=>n.name.toLowerCase().includes(a)||n.shortDescription.toLowerCase().includes(a)||n.tags.some(r=>r.includes(a)))}return e.category&&(t=t.filter(a=>a.categories.includes(e.category))),e.pricing&&(t=t.filter(a=>a.pricingModel===e.pricing)),e.platform&&(t=t.filter(a=>a.platform.includes(e.platform))),t},ea=[{id:"ai-chatbots",name:"AI Chatbots",slug:"ai-chatbots",description:"Conversational AI assistants for tasks, research, and productivity.",longDescription:"AI chatbots have moved far beyond simple Q&A bots. Modern AI chatbots like ChatGPT, Claude, and Gemini can write code, summarize documents, draft emails, analyze data, and engage in nuanced reasoning across virtually every domain. This category covers the full spectrum of large language model-powered chat interfaces, from general-purpose assistants to specialized tools built on top of foundation models.",icon:"MessageCircle",color:"blue",faq:[{question:"What is an AI chatbot?",answer:"An AI chatbot is a software application that uses large language models (LLMs) to understand and generate human-like text in conversational form. Unlike rule-based bots, modern AI chatbots can handle open-ended questions, write content, analyze data, and assist with complex reasoning tasks."},{question:"Which AI chatbot is best for beginners?",answer:"ChatGPT is widely regarded as the most accessible AI chatbot for beginners, thanks to its intuitive interface and broad capability set. Claude is also highly praised for its safety and clear explanations. Both offer free tiers suitable for getting started."},{question:"Are AI chatbots free to use?",answer:"Most leading AI chatbots offer a free tier with usage limits. ChatGPT, Claude, Gemini, and Perplexity all have free plans. Paid plans unlock faster models, higher usage limits, and advanced features like file uploads, image generation, or API access."},{question:"Can AI chatbots replace human experts?",answer:"AI chatbots are powerful tools but should not replace human experts for high-stakes decisions in areas like legal, medical, or financial advice. They are best used to accelerate research, brainstorm ideas, draft content, or handle routine informational queries."}],relatedCategories:["ai-writing","ai-research","ai-productivity"],seoTitle:"Best AI Chatbots 2026 — Compare Top AI Chat Tools",seoDescription:"Compare the best AI chatbots including ChatGPT, Claude, Gemini, and Perplexity. Find the right AI assistant for your needs with our editorial reviews."},{id:"ai-writing",name:"AI Writing",slug:"ai-writing",description:"AI tools for content creation, copywriting, and long-form writing.",longDescription:"AI writing tools help individuals and team
359s produce high-quality content faster — from blog posts and marketing copy to emails, ad scripts, and entire books. This category includes purpose-built AI writing platforms like Jasper and Copy.ai, as well as general-purpose LLMs used for writing workflows. Editorial quality, template variety, brand voice controls, and SEO optimization features distinguish the top tools in this category.",icon:"PenTool",color:"green",faq:[{question:"What are AI writing tools?",answer:"AI writing tools use large language models to help users generate, edit, or improve written content. They range from full-featured platforms like Jasper that include brand voice training and team collaboration, to simpler tools for quick copy generation."},{question:"Do AI writing tools produce plagiarism-free content?",answer:"AI writing tools generate original text rather than copying from existing sources. However, output quality varies and all AI-generated content should be reviewed and edited before publishing. Running content through a plagiarism checker is still a recommended best practice."},{question:"Which AI writing tool is best for SEO?",answer:"Several AI writing tools include built-in SEO features. Jasper integrates with Surfer SEO, while others like Copy.ai offer SEO-focused templates. However, the best approach combines an AI writing tool with a dedicated SEO platform for keyword research and optimization."},{question:"Can I use AI writing tools for long-form content?",answer:"Yes. Most leading AI writing tools support long-form content through document editors, brand voice settings, and multi-section generation. Jasper, Notion AI, and similar platforms are commonly used for blog posts, whitepapers, and reports."}],relatedCategories:["ai-seo","ai-marketing","ai-productivity"],seoTitle:"Best AI Writing Tools 2026 — Compare AI Content Generators",seoDescription:"Discover the best AI writing tools for bloggers, marketers, and content teams. Compare Jasper, Copy.ai, Notion AI, and more with honest editorial reviews."},{id:"ai-coding",name:"AI Coding Tools",slug:"ai-coding",description:"AI-powered tools for writing, reviewing, and debugging code.",longDescription:"AI coding tools have dramatically accelerated software development workflows. From inline code completion in your IDE to autonomous agents that can build entire apps from a natural language prompt, this category covers the full range. Tools like GitHub Copilot and Cursor integrate directly into developer environments, while Replit, Bolt, and Emergent offer web-based environments where non-developers can also build software without deep coding knowledge.",icon:"Code",color:"gray",faq:[{question:"What is an AI coding tool?",answer:"An AI coding tool uses LLMs trained on large codebases to assist with writing, completing, reviewing, or debugging code. They range from IDE plugins like GitHub Copilot to full AI-native development environments like Cursor and Replit."},{question:"Is GitHub Copilot worth it?",answer:"GitHub Copilot is widely used by professional developers and offers strong code completion across most popular languages. At $10/month for individuals, it pays for itself quickly if it saves even a few hours per month. There is also a free tier with limited usage."},{question:"Can non-developers use AI coding tools?",answer:"Yes. Tools like Replit, Bolt, and Emergent are designed to let users with little or no coding experience build software using natural language prompts. These are particularly popular with founders, designers, and marketers who want to prototype ideas quickly."},{question:"What is the best AI coding tool for professional developers?",answer:"Cursor is highly regarded among professional developers for its deep IDE integration and multi-file context awareness. GitHub Copilot remains the most widely adopted. The best choice depends on your language preferences, workflow, and budget."}],relatedCategories:["ai-app-builders","ai-website-builders","ai-automation"],seoTitle:"Best AI Coding Tools 2026 — Compare AI Development Assistants",seoDescription:"Compare the best AI coding tools including GitHub Copilot, Cursor, Replit, and Bolt. Find the right AI development assistant for your workflow."},{id:"ai-website-builders",name:"AI Website Builders",slug:"ai-website-builders",description:"Build websites with AI assistance — no-code and design-forward.",longDescription:"AI website builders combine the power of modern design tools with AI generation to let anyone create professional websites in minutes. From Framer and Webflow for designers and developers to Durable and 10Web for businesses that need a site fast, this category covers the full spectrum from design-first to AI-first website creation platforms.",icon:"Globe",color:"cyan",faq:[{question:"What is an AI website builder?",answer:"An AI website builder uses artificial intelligence to help generate website layouts, copy, images, and functionality — often from a simple text prompt or business description. They range from design-forward platforms like Framer to quick-launch tools like Durable."},{question:"Can I build a professional website with AI tools?",answer:"Yes. Tools like Framer, Webflow, and 10Web can produce professional-grade websites. Framer and Webflow offer advanced customization for designers and developers, while Durable and 10Web are better suited for business owners who want something up quickly."},{question:"Which AI website builder is best for beginners?",answer:"Durable is among the most beginner-friendly — it can generate a full business website in seconds from just a business type and name. 10Web and Webflow also offer user-friendly options with different levels of design control."},{question:"Do AI website builders support SEO?",answer:"Most leading AI website builders include basic SEO features such as meta tag editing, sitemap generation, and clean URL structures. Webflow is particularly strong for SEO. For advanced SEO, you may still want to supplement with dedicated SEO tools."}],relatedCategories:["ai-app-builders","ai-design","ai-seo"],seoTitle:"Best AI Website Builders 2026 — Compare Framer, Webflow, Durable & More",seoDescription:"Compare the best AI website builders including Framer, Webflow, Durable, and 10Web. Find the right AI website builder for your project and budget."},{id:"ai-app-builders",name:"AI App Builders",slug:"ai-app-builders",description:"Build web and mobile apps using AI — from prompt to deployed app.",longDescription:"AI app builders have democratized software development. Tools like Emergent, Lovable, Bolt, and Replit let founders, designers, and product teams build functional web applications using natural language prompts — often without writing a single line of code manually. This category covers the growing class of AI-native development platforms that target non-developers and rapid prototypers.",icon:"Smartphone",color:"orange",faq:[{question:"What is an AI app builder?",answer:"An AI app builder is a platform that uses AI, typically powered by LLMs, to generate functional web or mobile applications from natural language descriptions. Users describe what they want to build, and the AI generates the code, design, and sometimes deploys it automatically."},{question:"Can I build a production app with AI app builders?",answer:"Several AI app builders can produce production-ready applications. Emergent, Lovable, and Bolt are designed for real deployable apps rather than just demos. However, complex, enterprise-scale applications still typically require traditional development alongside AI tooling."},{question:"Which AI app builder is best for non-technical founders?",answer:"Emergent and Lovable are both highly regarded for non-technical users. Emergent offers a conversational interface that guides you through building, while Lovable emphasizes visual feedback and rapid iteration. Both are worth evaluating based on your specific project."},{question:"Are AI app builders cost-effective?",answer:"Compared to hiring a development team, AI app builders offer significant cost savings for early-stage prototypes and MVPs. Pricing varies widely from free tiers to monthly subscriptions in the $20–$200 range, depending on usage and features."}],relatedCategories:["ai-coding","ai-website-builders","ai-no-code"],seoTitle:"Best AI App Builders 2026 — Compare Emergent, Lovable, Bolt & Replit",seoDescription:"Compare the best AI app builders including Emergent, Lovable, Bolt, and Replit. Build apps without coding using AI — find the right platform for your project."},{id:"ai-image-generation",name:"AI Image Generation",slug:"ai-image-generation",description:"Create images, artwork, and visuals from text prompts using AI.",longDescription:"AI image generation tools have transformed visual content creation across design, marketing, gaming, and entertainment. From photorealistic renders to stylized artwork, tools like Midjourney and Leonardo AI offer powerful text-to-image generation. This category also covers AI tools for image editing, background removal, upscaling, and style transfer.",icon:"Image",color:"pink",faq:[{question:"What is AI image generation?",answer:"AI image generation uses diffusion models or GANs to create visual content from text descriptions (prompts). You describe what you want to see, and the AI produces one or more images matching that description."},{question:"Which AI image generator produces the best results?",answer:"Midjourney is widely regarded as producing the highest aesthetic quality images, especially for artistic and editorial styles. Leonardo AI is popular for consistency and character generation. The best tool depends on your specific use case."},{question:"Can I use AI-generated images commercially?",answer:"Licensing terms vary by platform. Midjourney, Leonardo AI, and most mainstream tools allow commercial use on paid plans. Always review the specific terms of service before using AI-generated images in commercial contexts."},{question:"Are AI image generators replacing designers?",answer:"AI image generators are powerful tools that assist designers but have not replaced human creative direction. They excel at ideation, rapid concept generation, and producing reference imagery, but human judgment and design expertise remain critical for professional work."}],relatedCategories:["ai-design","ai-video-generation","ai-marketing"],seoTitle:"Best AI Image Generators 2026 — Compare Midjourney, Leonardo AI & More",seoDescription:"Compare the best AI image generation tools including Midjourney and Leonardo AI. Generate stunning images from text with our guide to top AI image generators."},{id:"ai-video-generation",name:"AI Video Generation",slug:"ai-video-generation",description:"Create and edit videos with AI — from text to video and beyond.",longDescription:"AI video generation covers a broad range of tools: those that create videos from text prompts, platforms that turn scripts into presenter-led videos, tools that edit footage using AI commands, and services that add AI-generated voiceovers or avatars. Runway, Synthesia, HeyGen, VEED, and Descript represent different segments of this rapidly evolving market.",icon:"Video",color:"red",faq:[{question:"What is AI video generation?",answer:"AI video generation refers to using artificial intelligence to create, edit, or enhance video content. This includes text-to-vi
359deo models, AI avatar presenters, automated video editing, voiceover generation, and tools that transform scripts into fully produced video content."},{question:"Which AI video tool is best for business presentations?",answer:"Synthesia and HeyGen are leading choices for AI presenter-style videos with digital avatars — popular for training videos, product demos, and corporate communications. Both support multiple languages and custom avatar options."},{question:"Can AI generate full videos from text?",answer:"Yes, tools like Runway and Sora (from OpenAI) can generate short video clips from text prompts. Video quality and coherence continue to improve rapidly. For longer, structured content, AI scriptwriting combined with tools like Synthesia is the current best practice."},{question:"Are AI video tools suitable for marketing teams?",answer:"Absolutely. VEED and Descript are popular with marketing teams for their ease of use in editing, captioning, and repurposing video content. HeyGen and Synthesia work well for multilingual video production at scale."}],relatedCategories:["ai-audio-voice","ai-marketing","ai-design"],seoTitle:"Best AI Video Generation Tools 2026 — Compare Runway, Synthesia & More",seoDescription:"Compare the best AI video generation tools including Runway, Synthesia, HeyGen, and VEED. Create professional videos with AI assistance."},{id:"ai-audio-voice",name:"AI Audio & Voice",slug:"ai-audio-voice",description:"AI tools for voice synthesis, cloning, audio editing, and text-to-speech.",longDescription:"AI audio and voice tools have made high-quality voice synthesis, cloning, and real-time voice conversion accessible to creators and businesses alike. ElevenLabs leads this category for text-to-speech and voice cloning, while other tools address podcast editing, noise removal, audio enhancement, and voice-over production.",icon:"Mic",color:"teal",faq:[{question:"What can AI audio tools do?",answer:"AI audio tools can generate realistic speech from text (TTS), clone voices from a short audio sample, remove background noise, separate audio stems, enhance recording quality, and automate podcast editing tasks like removing filler words."},{question:"Which AI voice tool is most realistic?",answer:"ElevenLabs is widely recognized as the leading tool for realistic AI voice synthesis. Its text-to-speech output is often indistinguishable from human recordings, and its voice cloning capabilities are among the most advanced commercially available."},{question:"Is voice cloning legal?",answer:"Voice cloning legality depends on jurisdiction and how the cloned voice is used. Cloning your own voice for personal or commercial use is generally acceptable. Cloning another person's voice without consent raises significant legal and ethical issues. Always review applicable laws and platform terms of service."},{question:"Can AI audio tools help with podcast production?",answer:"Yes. Tools like Descript offer AI-powered editing for podcasts, including automatic transcription, filler word removal, and script-based audio editing. ElevenLabs can generate voiceover audio for intro/outro segments or create AI-hosted content."}],relatedCategories:["ai-music","ai-video-generation","ai-productivity"],seoTitle:"Best AI Audio & Voice Tools 2026 — Compare ElevenLabs & More",seoDescription:"Compare the best AI audio and voice tools including ElevenLabs. Generate realistic voices, clone audio, and produce professional sound with AI."},{id:"ai-music",name:"AI Music",slug:"ai-music",description:"Generate original music and audio compositions using AI.",longDescription:"AI music generation tools allow creators to produce original tracks, background scores, and full compositions from text descriptions or simple parameters — without requiring musical training. Suno is among the most capable tools for full-song generation including lyrics and vocals. This category is growing rapidly with applications in content creation, game development, advertising, and independent music production.",icon:"Music",color:"violet",faq:[{question:"What is AI music generation?",answer:"AI music generation uses machine learning models trained on large datasets of audio to produce original musical compositions from text prompts or simple inputs. Some tools generate instrumental tracks, while others like Suno can produce full songs with lyrics and vocals."},{question:"Can AI music generators create royalty-free music?",answer:"Most commercial AI music platforms include licensing that allows you to use generated tracks royalty-free for personal or commercial projects, provided you are on a paid plan. Always review the specific licensing terms for your use case."},{question:"How good is AI-generated music?",answer:"Quality varies significantly by tool and use case. For background music, content creator soundtracks, and demo purposes, AI music is often indistinguishable from stock music. For commercial releases, AI music generation is increasingly used as a starting point that human producers refine."},{question:"Is AI music generation replacing composers?",answer:"AI music generation is creating new opportunities for content creators who previously could not afford original music, while also providing inspiration tools for professional composers. Like other AI creative tools, it augments rather than replaces professional musicianship in high-end contexts."}],relatedCategories:["ai-audio-voice","ai-video-generation"],seoTitle:"Best AI Music Generation Tools 2026 — Compare Suno & More",seoDescription:"Discover the best AI music generation tools. Create original songs, background music, and audio compositions with AI — compare top tools with our editorial guide."},{id:"ai-productivity",name:"AI Productivity",slug:"ai-productivity",description:"AI tools to automate tasks, organize workflows, and boost output.",longDescription:"AI productivity tools integrate into your existing workflows to automate repetitive tasks, surface key information, and help you accomplish more in less t
359ime. This broad category includes AI note-taking, meeting summarization, task management, email drafting, scheduling assistants, and general-purpose AI assistants embedded in popular productivity platforms like Notion.",icon:"Zap",color:"yellow",faq:[{question:"What are AI productivity tools?",answer:"AI productivity tools use artificial intelligence to help individuals and teams work more efficiently. They include note-taking assistants, meeting summarizers, AI-powered search within documents, email drafting tools, and intelligent scheduling systems."},{question:"Is Notion AI worth paying for?",answer:"Notion AI adds significant value if you already use Notion as your primary workspace. It can draft content, summarize pages, answer questions about your documents, and generate action items from meeting notes — all within the tools you are already using."},{question:"What is the best AI tool for meeting notes?",answer:"NotebookLM from Google is excellent for organizing and querying research materials and documents. Dedicated meeting tools like Otter.ai and Fireflies.ai specialize in real-time transcription and meeting summarization. The best choice depends on whether you need real-time or post-meeting workflows."},{question:"Can AI productivity tools integrate with existing tools?",answer:"Yes. Most leading AI productivity tools offer integrations with popular platforms like Google Workspace, Microsoft 365, Slack, Notion, Salesforce, and more. Integration depth varies by platform."}],relatedCategories:["ai-note-taking","ai-automation","ai-chatbots"],seoTitle:"Best AI Productivity Tools 2026 — Compare Top AI Workflow Assistants",seoDescription:"Compare the best AI productivity tools to automate tasks and boost your output. Find the right AI productivity assistant for individuals and teams."},{id:"ai-research",name:"AI Research",slug:"ai-research",description:"AI tools for research, document analysis, and knowledge management.",longDescription:"AI research tools help users synthesize information, analyze documents, and explore complex topics faster than traditional methods. From Perplexity's AI-powered search to NotebookLM's document analysis capabilities, this category covers tools that fundamentally change how people gather, process, and retain information.",icon:"Search",color:"blue",faq:[{question:"What is an AI research tool?",answer:"AI research tools use LLMs and retrieval-augmented generation (RAG) to help users find, analyze, and synthesize information from the web or uploaded documents. They go beyond traditional search by providing direct answers with cited sources and enabling follow-up questions."},{question:"Is Perplexity better than Google for research?",answer:"Perplexity excels at providing direct, sourced answers to specific questions and enabling conversational follow-up. For discovering new topics broadly, Google still has advantages. For targeted research questions with citation needs, Perplexity and similar AI search tools are often faster and more efficient."},{question:"Can AI tools analyze entire documents and books?",answer:"Yes. NotebookLM from Google is particularly strong at ingesting large documents, PDFs, websites, and research papers, then enabling you to ask detailed questions about the content. Claude also supports very long context windows suitable for analyzing lengthy documents."},{question:"Are AI research tools reliable?",answer:"AI research tools can hallucinate — generating confident but incorrect information. Always verify critical facts from primary sources. Tools that provide citations, like Perplexity, help mitigate this risk by showing their sources, but source quality still needs to be checked."}],relatedCategories:["ai-chatbots","ai-productivity","ai-note-taking"],seoTitle:"Best AI Research Tools 2026 — Compare Perplexity, NotebookLM & More",seoDescription:"Compare the best AI research tools including Perplexity and NotebookLM. Accelerate your research with AI-powered search, document analysis, and knowledge management."},{id:"ai-design",name:"AI Design",slug:"ai-design",description:"AI tools for graphic design, UI design, and creative workflows.",longDescription:"AI design tools are reshaping how designers work — from generating UI components and brand identities to producing marketing assets and presentation visuals. This category spans AI features within established design platforms, standalone AI design generators, and specialized tools for specific design tasks.",icon:"Palette",color:"rose",faq:[{question:"How is AI changing graphic design?",answer:"AI is transforming graphic design by automating repetitive tasks, generating design variations rapidly, enabling text-to-image creation for ideation, and providing intelligent layout suggestions. Designers increasingly use AI to accelerate workflows rather than replace design judgment."},{question:"What AI tools do UX designers use?",answer:"UX designers commonly use Figma with AI plugins, Framer for AI-assisted web design, Galileo AI for UI generation, and Midjourney or Leonardo AI for generating reference visual
359s. Framer's AI features are particularly relevant for designers building interactive prototypes."},{question:"Can AI generate logos and brand identities?",answer:"Several AI tools can generate logo concepts and brand materials. However, professional brand identity work still benefits significantly from human strategic input. AI-generated logos are useful for rapid prototyping and early-stage startups seeking cost-effective options."},{question:"Which AI design tool is best for presentations?",answer:"Gamma and Beautiful.ai both use AI to generate polished presentation designs from outlines or prompts. Gamma is particularly popular for its speed and modern aesthetic, while Beautiful.ai focuses on smart templates that adapt to your content automatically."}],relatedCategories:["ai-image-generation","ai-presentation-tools","ai-website-builders"],seoTitle:"Best AI Design Tools 2026 — Compare Top AI Creative Software",seoDescription:"Compare the best AI design tools for graphic design, UI design, and creative workflows. Find the right AI design platform for your projects."},{id:"ai-marketing",name:"AI Marketing",slug:"ai-marketing",description:"AI tools for campaigns, copywriting, ad creation, and marketing automation.",longDescription:"AI marketing tools help teams move faster, produce more content, and optimize campaigns with less manual effort. From AI-generated ad copy and email sequences to audience segmentation and performance prediction, this category covers the growing stack of AI capabilities available to modern marketing teams.",icon:"TrendingUp",color:"emerald",faq:[{question:"What AI tools are best for marketing teams?",answer:"Top AI marketing tools include Jasper and Copy.ai for content generation, HeyGen for video marketing, and general-purpose LLMs for strategy and brainstorming. The right stack depends on your channels, team size, and content volume needs."},{question:"Can AI write better ad copy than humans?",answer:"AI can generate high volumes of ad copy variations quickly, which is valuable for A/B testing. However, the best-performing ads typically combine AI-generated drafts with human creative refinement. AI excels at producing options; humans excel at judgment."},{question:"How do AI marketing tools help with email campaigns?",answer:"AI marketing tools can write subject lines, email body copy, personalization tokens, and follow-up sequences. Some platforms integrate with email service providers to enable AI-driven send-time optimization and content personalization at scale."},{question:"Are AI marketing tools suitable for small businesses?",answer:"Yes. Many AI marketing tools offer affordable plans suitable for small businesses and solopreneurs. Copy.ai, Jasper, and Notion AI all offer accessible pricing. For businesses with limited budgets, using a general-purpose AI chatbot like ChatGPT is also an effective starting point."}],relatedCategories:["ai-writing","ai-seo","ai-automation"],seoTitle:"Best AI Marketing Tools 2026 — Compare AI Campaign and Content Tools",seoDescription:"Compare the best AI marketing tools for campaigns, copywriting, and automation. Find the right AI marketing platform for your team."},{id:"ai-seo",name:"AI SEO",slug:"ai-seo",description:"AI tools to improve search rankings, automate SEO, and scale content.",longDescription:"AI SEO tools combine the power of LLMs with traditional SEO capabilities to help businesses rank higher and create optimized content at scale. From keyword research to on-page optimization, content briefs, and link building insights, this category covers the expanding set of AI-powered capabilities available to SEO practitioners.",icon:"Search",color:"blue",faq:[{question:"How do AI tools help with SEO?",answer:"AI SEO tools help with keyword research, content brief creation, on-page optimization, competitor analysis, internal linking suggestions, and content generation. They automate time-consuming manual tasks while scaling content production."},{question:"Can AI content rank on Google?",answer:"Google has stated that it evaluates content based on quality and helpfulness, regardless of whether it was written by a human or AI. Well-researched, useful AI-generated content with human editorial oversight can and does rank effectively. Thin, low-quality AI content is likely to be penalized."},{question:"What is the best AI SEO tool?",answer:"The best AI SEO tool depends on your workflow. Surfer SEO is strong for on-page optimization. Semrush and Ahrefs now include AI features for content and keyword research. For pure content generation, Jasper's Surfer SEO integration is popular among SEO practitioners."},{question:"Is AI changing SEO best practices?",answer:"Significantly. The rise of AI search (including Google's AI Overviews, Perplexity, and ChatGPT search) is changing how users discover content. SEO best practices are evolving to account for answer engine optimization, entity-based SEO, and structured data becoming more important."}],relatedCategories:["ai-writing","ai-marketing","ai-research"],seoTitle:"Best AI SEO Tools 2026 — Compare AI-Powered SEO Platforms",seoDescription:"Compare the best AI SEO tools to boost rankings, automate optimization, and scale content. Find the right AI SEO platform for your strategy."},{id:"ai-automation",name:"AI Automation",slug:"ai-automation",description:"Automate workflows and business processes with AI agents and integrations.",longDescription:"AI automation tools combine traditional workflow automation with LLM-powered intelligence to handle tasks that require judgment, not just rule-following. From AI agents that browse the web and take actions, to intelligent workflow builders that connect apps using natural language, this category represents one of the fastest-growing segments of the AI tools market.",icon:"Workflow",color:"slate",faq:[{question:"What is AI automation?",answer:"AI automation combines workflow automation (connecting apps and triggering actions) with AI capabilities (processing natural language, making decisions, generating content) to handle complex multi-step tasks without manual intervention."},{question:"How is AI automation different from traditional automation?",answer:"Traditional automation follows explicit rules and structured data. AI automation can handle unstructured inputs, make contextual decisions, process natural language, and adapt to variability — tasks that would require extensive manual rule-writing in traditional systems."},{question:"Which AI automation tools are most popular?",answer:"Zapier, Make (formerly Integromat), and n8n have all added significant AI capabilities. Dedicated AI agent platforms like AutoGPT, CrewAI, and various custom agent frameworks are also popular for more complex autonomous task execution."},{question:"Do I need coding experience to use AI automation tools?",answer:"Most consumer-facing AI automation tools like Zapier and Make are designed for non-technical users. More powerful agent frameworks typically require some technical knowledge. No-code AI automation continues to improve, making it increasingly accessible."}],relatedCategories:["ai-agents","ai-no-code","ai-productivity"],seoTitle:"Best AI Automation Tools 2026 — Compare AI Workflow and Agent Platforms",seoDescription:"Compare the best AI automation tools to streamline workflows and business processes. Find the right AI automation platform for your needs."},{id:"ai-note-taking",name:"AI Note Taking",slug:"ai-note-taking",description:"Capture, organize, and retrieve information faster with AI note-taking tools.",longDescription:"AI note-taking tools go beyond simple text capture to help you organize ideas, automatically summarize content, connect related notes, and surface relevant information when you need it. NotebookLM and Notion AI are leaders in this space, each taking a different approach to AI-assisted knowledge management.",icon:"BookOpen",color:"amber",faq:[{question:"What are the best AI note-taking apps?",answer:"NotebookLM from Google is particularly strong for research and document analysis. Notion AI integrates AI into a full productivity workspace. Obsidian with AI plugins is popular for personal knowledge management. The best choice depends on how you work and what you need from your notes."},{question:"Can AI organize my notes automatically?",answer:"Yes. Several AI note-taking tools can automatically categorize notes, suggest tags, identify connections between notes, and create summaries. The level of automation varies by platform."}
359,{question:"Is NotebookLM good for students?",answer:"NotebookLM is excellent for students. It can ingest lecture notes, research papers, and textbooks, then answer questions about the content, generate study guides, and create practice questions — making it a powerful AI study companion."},{question:"How does Notion AI help with note-taking?",answer:"Notion AI can summarize long pages, generate action items from meeting notes, draft new content, answer questions about your workspace, and translate content — all within your existing Notion workflow."}],relatedCategories:["ai-productivity","ai-research","ai-writing"],seoTitle:"Best AI Note Taking Apps 2026 — Compare AI Knowledge Management Tools",seoDescription:"Compare the best AI note-taking apps including NotebookLM and Notion AI. Capture, organize, and retrieve knowledge faster with AI assistance."},{id:"ai-presentation-tools",name:"AI Presentation Tools",slug:"ai-presentation-tools",description:"Create polished presentations and slide decks with AI assistance.",longDescription:"AI presentation tools reduce the time and effort required to create visually compelling slide decks. Gamma can generate a full presentation from a prompt in under a minute, while Beautiful.ai uses AI-powered smart layouts that adjust automatically as you add content. This category also includes AI features within PowerPoint, Google Slides, and design platforms like Canva.",icon:"Presentation",color:"orange",faq:[{question:"What is the best AI presentation tool?",answer:"Gamma is widely praised for its speed and modern aesthetic — it can generate a full slide deck from an outline in seconds. Beautiful.ai is a strong choice for teams that want consistent, professional templates with AI-adaptive layouts."},{question:"Can AI create presentations from documents or text?",answer:"Yes. Both Gamma and Beautiful.ai can generate presentations from text prompts or outlines. Some tools can also import existing documents or paste in notes to create a first-draft slide deck automatically."},{question:"Do AI presentation tools replace PowerPoint?",answer:"AI presentation tools are alternatives to traditional PowerPoint workflows, particularly for users who want faster creation with less design effort. However, PowerPoint's deep integration with Microsoft Office and its flexibility still make it the standard in many enterprise environments."},{question:"Are AI presentation tools suitable for business pitches?",answer:"Yes, with caveats. AI-generated presentations provide an excellent starting point for pitch decks. Most founders and sales professionals then customize the content, narrative, and branding before using them in high-stakes presentations."}],relatedCategories:["ai-design","ai-writing","ai-marketing"],seoTitle:"Best AI Presentation Tools 2026 — Compare Gamma, Beautiful.ai & More",seoDescription:"Compare the best AI presentation tools including Gamma and Beautiful.ai. Create polished slide decks in minutes with AI assistance."},{id:"ai-agents",name:"AI Agents",slug:"ai-agents",description:"Autonomous AI agents that can plan, reason, and complete multi-step tasks.",longDescription:"AI agents represent the next frontier of AI applications — systems that can autonomously plan, reason, use tools, and complete complex multi-step tasks without constant human input. From coding agents that can build entire features to research agents that browse the web and compile reports, this rapidly evolving category is transforming what AI can do.",icon:"Bot",color:"blue",faq:[{question:"What is an AI agent?",answer:"An AI agent is an AI system that can autonomously perform multi-step tasks by planning, using tools (web search, code execution, file management), and adapting based on results — without requiring step-by-step human instruction."},{question:"How are AI agents different from AI chatbots?",answer:"AI chatbots respond to single queries in a turn-by-turn conversation. AI agents can execute long sequences of actions autonomously, maintain context across many steps, use external tools, and work toward complex goals with minimal human oversight."},{question:"Are AI agents reliable enough for production use?",answer:"Reliability varies significantly by task and platform. For well-defined, bounded tasks, AI agents can perform reliably. For open-ended or high-stakes tasks, human oversight is still important. The reliability of AI agents is improving rapidly."},{question:"Which companies are leading in AI agents?",answer:"OpenAI, Anthropic, and Google are building agent capabilities into their core platforms. Emergent, Devin, and various open-source frameworks like AutoGPT and CrewAI represent the specialized agent market."}],relatedCategories:["ai-automation","ai-coding","ai-chatbots"],seoTitle:"Best AI Agents 2026 — Compare Autonomous AI Agent Platforms",seoDescription:"Compare the best AI agents for autonomous task completion. Discover AI agent platforms that can research, code, and automate complex workflows."},{id:"ai-no-code",name:"AI No-Code Tools",slug:"ai-no-code",description:"Build apps, automations, and workflows without writing code using AI.",longDescription:"AI no-code tools empower non-developers to build sophisticated software, automations, and data workflows using visual interfaces and natural language. This category covers the intersection of the no-code movement with AI capabilities — platforms that let anyone build using prompts, drag-and-drop, and smart templates.",icon:"Layers",color:"green",faq:[{question:"What are AI no-code tools?",answer:"AI no-code tools let non-developers create software, automations, and applications using visual interfaces, natural language prompts, and pre-built components — without requiring programming knowledge."},{question:"What can I build with AI no-code tools?",answer:"With AI no-code tools you can build web applications, internal tools, automated workflows, AI chatbots, data dashboards, landing pages, and mobile apps. The complexity of what is possible varies by platform."},{question:"Are no-code AI tools scalable for business use?",answer:"Many AI no-code tools are production-grade and used by businesses at scale. However, complex, high-performance, or deeply customized applications may eventually outgrow no-code platforms and require traditional development."},{question:"What is the difference between AI app builders and no-code tools?",answer:"The distinction is blurring. AI app builders like Emergent and Lovable generate code under the hood using AI, making them essentially no-code for the end user. Traditional no-code tools like Bubble use visual interfaces without AI generation, though many are now adding AI features."}],relatedCategories:["ai-app-builders","ai-automation","ai-website-builders"],seoTitle:"Best AI No-Code Tools 2026 — Build Apps Without Coding Using AI",seoDescription:"Compare the best AI no-code tools to build apps, automations, and workflows without writing code. Find the right AI no-code platform for your project."},{id:"ai-sales",name:"AI Sales",slug:"ai-sales",description:"AI tools to optimize sales processes, outreach, and pipeline management.",longDescription:"AI sales tools help sales teams work smarter by automating prospecting, personalizing outreach, predicting deal outcomes, and coaching reps. From AI-powered CRM features to standalone outreach generators, this category covers the growing set of AI capabilities transforming B2B and B2C sales.",icon:"Target",color:"blue",faq:[{question:"How does AI help sales teams?",answer:"AI helps sales teams by automating prospect research, personalizing outreach at scale, summarizing call recordings, scoring leads based on conversion likelihood, and providing real-time coaching during customer conversations."},{question:"What AI tools are most popular in sales?",answer:"Gong and Chorus.ai are leaders for conversation intelligence. Outreach and Salesloft have strong AI features for sequencing. Clay and Apollo are popular for AI-powered prospecting and data enrichment."},{question:"Can AI write personalized sales emails?",answer:"Yes. AI can draft highly personalized sales emails using prospect research data. Tools like Lavender, Copy.ai, and Jasper all include sales email templates and personalization capabilities."},{question:"Is AI replacing salespeople?",answer:"AI is automating the most repetitive parts of sales — prospecting, data entry, follow-up scheduling — while amplifying the human skills that drive deals: relationship building, trust, and strategic problem-solving. The salespeople using AI effectively are outperforming those who are not."}],relatedCategories:["ai-marketing","ai-automation","ai-productivity"],seoTitle:"Best AI Sales Tools 2026 — Compare AI-Powered Sales Platforms",seoDescription:"Compare the best AI sales tools for prospecting, outreach, and pipeline management. Find the right AI sales platform to boost your team's performance."},{id:"ai-customer-support",name:"AI Customer Support",slug:"ai-customer-support",description:"AI tools to automate, scale, and improve customer support operations.",longDescription:"AI customer support tools enable businesses to resolve more customer inquiries faster, with greater consistency and lower cost. Modern AI support tools go beyond simple FAQ chatbots to handle complex queries, integrate with help desk platforms, and hand off seamlessly to human agents when needed.",icon:"HeadphonesIcon",color:"cyan",faq:[{question:"What are AI customer support tools?",answer:"AI customer support tools use LLMs and automation to handle customer inquiries via chat, email, and voice. They include AI chatbots, automated ticket routing, intelligent agent assist tools, and platforms that integrate with existing help desk software."},{question:"Can AI handle all customer support?",answer:"AI can handle a significant portion of customer support — particularly common, repetitive queries. For complex, sensitive, or high-value customer situations, human agents remain essential. The best AI support implementations use AI for resolution where possible and seamless escalation when needed."},{question:"Which AI customer support platform is most popular?",answer:"Intercom, Zendesk AI, and Freshdesk Freddy are among the most widely deployed. Standalone AI chat solutions like Tidio and Crisp are popular with smaller businesses. The market is evolving rapidly with new AI-native support platforms launching regularly."},{question:"How do AI support tools integrate with existing systems?",answer:"Most leading AI customer support platforms integrate with popular CRMs (Salesforce, HubSpot), help desks (Zendesk, Freshdesk), and communication channels (Slack, email, WhatsApp). Integration depth and reliability vary by vend
359or."}],relatedCategories:["ai-automation","ai-chatbots","ai-sales"],seoTitle:"Best AI Customer Support Tools 2026 — Compare AI Help Desk Platforms",seoDescription:"Compare the best AI customer support tools to automate and scale your support operations. Find the right AI support platform for your business."},{id:"ai-data-analysis",name:"AI Data Analysis",slug:"ai-data-analysis",description:"AI tools to analyze data, generate insights, and create visualizations.",longDescription:"AI data analysis tools make it possible for non-technical users to extract insights from data using natural language queries, while giving data professionals powerful new tools for automated analysis, visualization, and reporting. This category covers the growing set of AI capabilities available to analysts, data scientists, and business intelligence teams.",icon:"BarChart",color:"blue",faq:[{question:"What are AI data analysis tools?",answer:"AI data analysis tools use LLMs and machine learning to help users explore datasets, generate visualizations, identify patterns, and extract business insights — often through natural language interfaces that eliminate the need for coding or SQL knowledge."},{question:"Can AI tools replace data analysts?",answer:"AI tools are automating many routine data analysis tasks, but the interpretive and strategic judgment that skilled data analysts provide remains highly valuable. AI augments data analysis capabilities significantly but does not replace domain expertise and business context."},{question:"What is the best AI tool for spreadsheet analysis?",answer:"Several tools enable AI analysis of spreadsheet data, including ChatGPT Code Interpreter, Google's Gemini integration with Sheets, and dedicated tools like Julius AI. Each has different strengths in terms of depth of analysis and ease of use."},{question:"Can non-technical users use AI data analysis tools?",answer:"Increasingly yes. Natural language interfaces to data are making it possible for business users to ask questions of their data in plain English and receive charts, summaries, and insights without any coding or SQL knowledge."}],relatedCategories:["ai-research","ai-productivity","ai-automation"],seoTitle:"Best AI Data Analysis Tools 2026 — Compare AI Analytics Platforms",seoDescription:"Compare the best AI data analysis tools to gain insights from your data. Find the right AI analytics platform for your team."},{id:"ai-translation",name:"AI Translation",slug:"ai-translation",description:"AI-powered translation for documents, websites, and real-time communication.",longDescription:"AI translation has reached a level of quality that rivals or exceeds human translators for many language pairs and contexts. From document translation and website localization to real-time conversation translation, AI translation tools are enabling global communication at unprecedented scale and speed.",icon:"Languages",color:"blue",faq:[{question:"How accurate is AI translation?",answer:"AI translation quality has improved dramatically and often reaches or exceeds human-level accuracy for major language pairs and common contexts. For specialized or technical content, human review is still recommended. Lesser-resourced language pairs may have lower accuracy."},{question:"What is the best AI translation tool?",answer:"DeepL is consistently rated as the highest quality AI translation tool, particularly for European languages. Google Translate offers the broadest language coverage. ChatGPT and Claude can also translate effectively and are useful for context-sensitive or nuanced translation tasks."},{question:"Can AI translate entire documents and websites?",answer:"Yes. Most AI translation platforms support document translation (PDF, Word, PowerPoint) and many offer website translation plugins or APIs. DeepL, Google Translate, and various CMS-integrated translation tools all support this use case."},{question:"Is AI translation suitable for legal or medical documents?",answer:"For high-stakes legal or medical documents, AI translation should be reviewed by a qualified human translator. AI translation provides an excellent draft that significantly reduces the time needed for expert review."}],relatedCategories:["ai-writing","ai-productivity","ai-marketing"],seoTitle:"Best AI Translation Tools 2026 — Compare AI Language Translation Platforms",seoDescription:"Compare the best AI translation tools for documents, websites, and real-time communication. Find the most accurate AI translation platform for your needs."},{id:"ai-resume-tools",name:"AI Resume Tools",slug:"ai-resume-tools",description:"Create, optimize, and tailor resumes with AI assistance.",longDescription:"AI resume tools help job seekers create compelling, ATS-optimized resumes faster. From AI-generated bullet points to keyword optimization against specific job descriptions, these tools give candidates a significant advantage in competitive application processes.",icon:"FileText",color:"slate",faq:[{question:"Can AI write my resume?",answer:"AI can generate strong first drafts of resume sections based on your experience and the target role. The best results come from providing clear inputs about your background and letting the AI draft and optimize content, which you then review and personalize."},{question:"Do AI resume tools help with ATS optimization?",answer:"Many AI resume tools specifically analyze job descriptions and optimize your resume to include relevant keywords for applicant tracking systems (ATS). This can significantly improve your chances of passing automated screening."},{question:"Are AI-generated resumes detectable?",answer:"While AI detection tools exist, a well-written and personalized AI-assisted resume is very difficult to distinguish from a human-written one. The key is to use AI as a drafting aid and then thoroughly personalize the content with your specific voice and details."},{question:"Which AI resume tool is best?",answer:"Rezi, Kickresume, and Resume.io all offer strong AI resume writing features. General-purpose tools like ChatGPT and Claude are also effective for resume writing when given detailed prompts about your experience and target role."}],relatedCategories:["ai-writing","ai-productivity"],seoTitle:"Best AI Resume Tools 2026 — Compare AI-Powered Resume Builders",seoDescription:"Compare the best AI resume tools to create and optimize your resume. Find the right AI resume builder for your job search."}],un=[{id:"emergent-vs-lovable",slug:"emergent-vs-lovable",toolA:"emergent",toolB:"lovable",title:"Emergent vs Lovable: Which AI App Builder is Right for You?",intro:"Emergent and Lovable are two of the most talked-about AI app builders in 2026. Both promise to let non-developers build and ship real web applications — but they take meaningfully different approaches. This comparison breaks down where each shines and which is the better fit for different types of builders.",verdict:"Emergent is the stronger choice for non-technical founders who want a guided, conversational experience with minimal assumptions about technical knowledge. Lovable wins for users who prioritize design quality and want React-based code they can own and extend. If you are cho
359osing one to try first, Emergent's conversational approach is more accessible; Lovable is better if visual polish is your top priority.",bestForA:"Non-technical founders, product managers, and entrepreneurs who want an approachable, guided experience with minimal technical requirements.",bestForB:"Designers and technically-minded founders who want high visual quality output and React code they can export and continue developing.",features:[{name:"Ease of use for beginners",toolA:"Very beginner-friendly — conversational interface",toolB:"Accessible but requires some technical familiarity",winner:"a"},{name:"Design quality",toolA:"Good, functional designs",toolB:"High visual quality — design-forward output",winner:"b"},{name:"Code ownership",toolA:"Platform-managed output",toolB:"GitHub export — full code ownership",winner:"b"},{name:"Backend capabilities",toolA:"Full-stack including backend and database",toolB:"Supabase integration for auth and data",winner:"tie"},{name:"Iteration speed",toolA:"Fast conversational iteration",toolB:"Fast visual iteration with live preview",winner:"tie"},{name:"Deployment",toolA:"Automatic live deployment",toolB:"One-click deployment",winner:"tie"},{name:"Free tier availability",toolA:"Free tier available",toolB:"Free tier with limited credits",winner:"tie"}],faq:[{question:"Is Emergent or Lovable better for a first-time builder?",answer:"Emergent's conversational, guided approach is generally more accessible for first-time builders. Lovable is slightly more technically oriented but still accessible for motivated non-developers."},{question:"Which produces better-looking apps?",answer:"Lovable consistently produces higher visual quality output. Its React-based architecture and design-forward approach means the apps look more professionally designed by default."},{question:"Can I move my app from one platform to the other?",answer:"Both platforms use standard web technologies. Lovable provides direct GitHub export. Emergent's code can also be accessed. Moving between platforms is possible but requires technical knowledge to implement."},{question:"Which is cheaper?",answer:"Both offer free tiers. Paid plan pricing is comparable in the market. Check current pricing on each platform's official website for accurate comparison."}],lastUpdated:"2026-03-20"},{id:"lovable-vs-bolt",slug:"lovable-vs-bolt",toolA:"lovable",toolB:"bolt",title:"Lovable vs Bolt: Comparing AI App Builders in 2026",intro:"Lovable and Bolt are two leading AI app builders with different strengths. Lovable focuses on design quality and React applications with Supabase backend. Bolt, built on StackBlitz, offers a live browser-based development environment that executes code in real time. Here is how they compare.",verdict:"Lovable is the better choice if design quality and visual polish are priorities. Bolt is the better choice for technically-minded users who want a real development environment with live code execution. Both are excellent platforms — the right choice depends on whether you value design output or development environment authenticity.",bestForA:"Founders and designers who prioritize visual quality and want exportable React code with Supabase backend integration.",bestForB:"Developers and technical founders who want a real development environment in the browser with full-stack code execution.",features:[{name:"Design quality",toolA:"High — design-forward React output",toolB:"Good — functional and clean",winner:"a"},{name:"Live code execution",toolA:"Preview-based",toolB:"Real Node.js execution in browser",winner:"b"},{name:"Backend support",toolA:"Supabase integration",toolB:"Full Node.js backend in browser",winner:"tie"},{name:"Code export",toolA:"GitHub export",toolB:"Download or GitHub sync",winner:"tie"},{name:"Framework",toolA:"React + Vite + Tailwind",toolB:"Multiple frameworks supported",winner:"b"},{name:"Ease of use",toolA:"Clean, approachable interface",toolB:"More developer-like environment",winner:"a"},{name:"Deployment",toolA:"Built-in deployment",toolB:"Netlify and other platform support",winner:"tie"}],faq:[{question:"Which is better for React development?",answer:"Both use React, but Lovable produces more visually polished React output. Bolt supports multiple frameworks alongside React and offers a true development environment for iterating on React code."},{question:"Does Bolt require coding knowledge?",answer:"Bolt is more accessible to non-developers than traditional IDEs but still feels more like a development environment than Lovable. Users with some technical background will get more from Bolt."},{question:"Which has a better free tier?",answer:"Both have free tiers with token-based usage. Check current pricing on each platform's official website as plans change frequently."},{question:"Can Bolt handle databases?",answer:"Bolt can generate full-stack applications including backend logic and database integration. Lovable specifically integrates with Supabase for structured backend development."}],lastUpdated:"2026-03-18"},{id:"bolt-vs-replit",slug:"bolt-vs-replit",toolA:"bolt",toolB:"replit",title:"Bolt vs Replit: AI Development Environments Compared",intro:"Bolt (by StackBlitz) and Replit are both browser-based development environments with strong AI coding c
359apabilities. They overlap in many ways but serve different primary use cases. Here is a detailed comparison.",verdict:"Bolt is the better choice for users who specifically want an AI-first, prompt-to-application workflow with WebContainers' unique in-browser execution. Replit wins for broader use cases — education, collaboration, multi-language support, and community. If building apps quickly from prompts is your primary goal, Bolt is more focused; if you want a complete online development platform, Replit offers more.",bestForA:"Developers and builders who want fast AI-generated full-stack web applications with live browser execution.",bestForB:"Students, educators, and developers who want a full online IDE with broad language support, collaboration, and community features.",features:[{name:"AI app generation",toolA:"Core focus — strong prompt-to-app",toolB:"Replit Agent — improving but secondary feature",winner:"a"},{name:"Language support",toolA:"Web-focused (JS/TS/Node.js primary)",toolB:"50+ programming languages",winner:"b"},{name:"Collaboration",toolA:"Limited",toolB:"Real-time multiplayer collaboration",winner:"b"},{name:"Education use cases",toolA:"Not a primary focus",toolB:"Excellent — widely used in education",winner:"b"},{name:"Deployment",toolA:"Netlify and platform integrations",toolB:"Replit Deployments built-in",winner:"tie"},{name:"Community",toolA:"Growing",toolB:"Large, established community",winner:"b"},{name:"Free tier",toolA:"Limited token allowance",toolB:"More generous free access",winner:"b"}],faq:[{question:"Is Bolt or Replit better for learning to code?",answer:"Replit is significantly better for learning. Its educational features, community, and broad language support make it the standard recommendation for learning programming. Bolt is focused on production app building, not education."},{question:"Which is better for hackathons?",answer:"Both work well for hackathons. Bolt's AI-first generation is faster for getting a working prototype. Replit's collaboration features are better for team hackathon work."},{question:"Can Bolt do everything Replit can?",answer:"No. Replit is a broader platform with language diversity, collaboration, community, and education features that Bolt does not offer. Bolt is more focused on AI web app generation."},{question:"Are both platforms free to start?",answer:"Yes, both offer free tiers. Replit's free tier is generally more generous. Both require paid plans for serious ongoing use."}],lastUpdated:"2026-03-15"},{id:"durable-vs-10web",slug:"durable-vs-10web",toolA:"durable",toolB:"10web",title:"Durable vs 10Web: AI Website Builders for Business",intro:"Durable and 10Web both target business owners who want AI-powered website creation, but they take different approaches. Durable is designed for maximum simplicity and speed — generating complete websites in under 30 seconds. 10Web provides AI generation on top of the full WordPress ecosystem.",verdict:"Durable is the right choice for small business owners who want the fastest possible website with minimal effort — particularly those who do not need the WordPress plugin ecosystem. 10Web is better for businesses that specifically need WordPress's extensibility, established themes, WooCommerce e-commerce, or existing WordPress integrations.",bestForA:"Local businesses, service providers, and small business owners who need an online presence quickly with minimal technical involvement.",bestForB:"Businesses that specifically need WordPress for its plugin ecosystem, WooCommerce e-commerce, or existing WordPress infrastructure.",features:[{name:"Setup speed",toolA:"Under 30 seconds — fastest available",toolB:"Fast but slower than Durable",winner:"a"},{name:"Technical complexity",toolA:"Very simple — minimal decisions required",toolB:"Moderate — WordPress concepts involved",winner:"a"},{name:"Customization",toolA:"Limited design customization",toolB:"Full WordPress customization options",winner:"b"},{name:"E-commerce",toolA:"Basic e-commerce features",toolB:"Full WooCommerce integration",winner:"b"},{name:"Plugin ecosystem",toolA:"Proprietary — limited third-party integrations",toolB:"Full WordPress plugin library (60,000+)",winner:"b"},{name:"Performance",toolA:"Good built-in performance",toolB:"Excellent — PageSpeed optimization built in",winner:"b"},{name:"Pricing",toolA:"Simple, accessible pricing",toolB:"Higher — includes managed hosting",winner:"a"}],faq:[{question:"Which is better for a restaurant website?",answer:"Durable is faster to set up for a basic restaurant website. If the restaurant needs online ordering through WooCommerce or specific restaurant plugins, 10Web's WordPress foundation is more appropriate."},{question:"Can I switch from Durable to 10Web later?",answer:"Migrating between platforms requires manual work as the underlying technologies differ. Starting with the right platform for your long-term needs is advisable."},{question:"Does 10Web handle WordPress updates automatically?",answer:"Yes. 10Web handles WordPress core, theme, and plugin updates as part of its managed hosting service, reducing the maintenance burden compared to self-managed WordPress."},{question:"Is Durable good for SEO?",answer:"Durable includes basic SEO features. For businesses that prioritize SEO deeply, WordPress (via 10Web with Yoast SEO or similar plugins) generally offers more SEO control and optimization options."}],lastUpdated:"2026-03-10"},{id:"webflow-vs-framer",slug:"webflow-vs-framer",toolA:"webflow",toolB:"framer",title:"Webflow vs Framer: Which Website Builder Wins in 2026?",intro:"Webflow and Framer are the two most popular professional website builders that target designers. Both avoid the template-restriction limitations of simpler builders while remaining accessible without custom code. The choice between them significantly impacts your workflow and output quality.",verdict:"Webflow is the better choice for complex, content-driven websites with sophisticated CMS requirements and fine-grained design control. Framer wins for designers coming from Figma who prioritize animation quality, a design-centric workflow, and speed of production. For most marketing sites and portfolios, Framer is faster and more pleasant to use; for complex CMS-driven sites and e-commerce, Webflow is more capable.",bestForA:"Professional designers and agencies building complex, content-driven sites with custom CMS models, advanced interactions, and e-commerce needs.",bestForB:"Designers coming from Figma who want a design-centric workflow, beautiful animations, and fast production of marketing sites and portfolios.",features:[{name:"CMS capabilities",toolA:"Excellent — sophisticated content modeling",toolB:"Good — covers most marketing site needs",winner:"a"},{name:"Animation and interactions",toolA:"Powerful — extensive interaction options",toolB:"Excellent — Framer Motion integration",winner:"tie"},{name:"Design workflow",toolA:"CSS-based — powerful but complex",toolB:"Figma-like — intuitive for designers",winner:"b"},{name:"E-commerce",toolA:"Full e-commerce with custom checkout",toolB:"Basic — limited e-commerce support",winner:"a"},{name:"Learning curve",toolA:"Steep — weeks to master",toolB:"Moderate — faster to productive use",winner:"b"},{name:"AI features",toolA:"AI copy and optimization tools",toolB:"AI content and layout generation",winner:"tie"},{name:"Pricing",toolA:"More expensive at team scale",toolB:"More accessible for individuals",winner:"b"}],faq:[{question:"Should a designer choose Webflow or Framer?",answer:"Designers coming from Figma typically find Framer's workflow more intuitive and enjoyable. Webflow's CSS-based approach requires understanding web layout concepts more deeply. Both produce excellent results — try both with free tiers to assess which w
359orkflow feels natural."},{question:"Which is better for a SaaS marketing site?",answer:"Both are excellent for SaaS marketing sites. Framer is faster to produce high-quality results. Webflow offers more long-term flexibility for complex sites with many content types. For a typical SaaS homepage and blog, Framer is likely the faster choice."},{question:"Can Webflow export clean code?",answer:"Webflow does not export fully clean code for self-hosting — it is a hosted platform. Developers who need to self-host often use Webflow for design and then replicate the build in a traditional stack."},{question:"Is Framer suitable for SEO?",answer:"Framer has improved its SEO capabilities significantly. It generates clean HTML, supports meta tag customization, and enables sitemap generation. For most marketing sites, Framer's SEO capabilities are sufficient."}],lastUpdated:"2026-03-14"},{id:"chatgpt-vs-claude",slug:"chatgpt-vs-claude",toolA:"chatgpt",toolB:"claude",title:"ChatGPT vs Claude: Which AI Assistant is Better in 2026?",intro:"ChatGPT and Claude are the two most widely used AI assistants, built by the two most prominent AI companies — OpenAI and Anthropic. Both are powerful, versatile, and continually improving. But they have distinct personalities, strengths, and best use cases. Here is a comprehensive comparison.",verdict:"ChatGPT wins for breadth of tools and ecosystem — it is the better all-rounder with image generation, code interpreter, web browsing, and the largest custom GPT library. Claude wins for writing quality, document analysis, and safety — it is the better choice for users who prioritize nuanced, high-quality text and reliable, transparent responses. Many users benefit from using both.",bestForA:"General users, developers, and organizations who want the most versatile AI assistant with the broadest set of tools and integrations.",bestForB:"Writers, researchers, and professionals who prioritize writing quality, long-document analysis, and an AI that communicates uncertainty honestly.",features:[{name:"Writing quality",toolA:"Excellent",toolB:"Best-in-class — nuanced and natural",winner:"b"},{name:"Context window",toolA:"128K tokens (GPT-4)",toolB:"200K tokens (Claude 3)",winner:"b"},{name:"Tool ecosystem",toolA:"Extensive — image gen, code, browsing, GPTs",toolB:"Growing — improving capabilities",winner:"a"},{name:"Image generation",toolA:"DALL-E integrated",toolB:"Not natively included",winner:"a"},{name:"Web browsing",toolA:"Yes — on paid plans",toolB:"Yes — improving capability",winner:"tie"},{name:"Coding assistance",toolA:"Excellent — strong code gen and debugging",toolB:"Excellent — strong codebase context",winner:"tie"},{name:"Reliability/accuracy",toolA:"Very good",toolB:"Slightly more conservative and reliable",winner:"b"},{name:"Pricing",toolA:"$20/month Pro",toolB:"$20/month Pro",winner:"tie"}],faq:[{question:"Is Claude better than ChatGPT?",answer:'For writing quality and document analysis, many users prefer Claude. For breadth of tools and ecosystem, ChatGPT wins. "Better" depends entirely on your use case — both are world-class AI assistants.'},{question:"Should I pay for ChatGPT Plus or Claude Pro?",answer:"If budget allows, both are worth it for professional use. If choosing one, consider: ChatGPT Plus for image generation, code interpreter, and broader tools; Claude Pro for writing-heavy work and long document analysis."},{question:"Which is better for coding?",answer:"Both are excellent for coding. ChatGPT's code interpreter is particularly useful for data analysis and running code. Claude's long context window makes it better for understanding and modifying large codebases. For day-to-day coding assistance, the difference is small."},{question:"Can I use both ChatGPT and Claude?",answer:"Yes. Many professionals use both, switching between them based on task requirements. Some use Claude for writing and document analysis, and ChatGPT for image generation and coding tasks. The free tiers of both allow experimentation without cost."}],lastUpdated:"2026-04-01"},{id:"midjourney-vs-leonardo-ai",slug:"midjourney-vs-leonardo-ai",toolA:"midjourney",toolB:"leonardo-ai",title:"Midjourney vs Leonardo AI: Best AI Image Generator in 2026",intro:"Midjourney and Leonardo AI are two of the most capable AI image generators available, each with distinct strengths. Midjourney is known for its aesthetic quality and artistic style; Leonardo AI for its consistency, custom model training, and production workflow features.",verdict:"Midjourney is the better choice for pure aesthetic quality — if you want the most visually impressive images, Midjourney is generally the standard. Leonardo AI is the better choice for production workflows requiring character consistency, custom brand styles, and a more generous free tier. For game development and enterprise creative production, Leonardo's custom model training is a major advantage.",bestForA:"Artists, designers, and creatives who prioritize peak ae
359sthetic quality and artistic imagery.",bestForB:"Game developers, creative teams, and production workflows requiring character consistency and custom model training.",features:[{name:"Peak aesthetic quality",toolA:"Industry-leading artistic quality",toolB:"Excellent but slightly below Midjourney for art",winner:"a"},{name:"Character consistency",toolA:"Limited — varies by iteration",toolB:"Strong — dedicated consistency tools",winner:"b"},{name:"Custom model training",toolA:"Not available to users",toolB:"Yes — train on your own datasets",winner:"b"},{name:"Free tier",toolA:"Minimal — subscription required",toolB:"Daily token allowance on free tier",winner:"b"},{name:"Prompt control",toolA:"Aesthetic-first — less literal",toolB:"Better instruction following",winner:"b"},{name:"Community resources",toolA:"Extensive prompt libraries",toolB:"Active community platform",winner:"tie"},{name:"Style range",toolA:"Excellent across all styles",toolB:"Excellent — especially photorealistic",winner:"tie"}],faq:[{question:"Which produces more realistic photos?",answer:"Both can produce highly photorealistic images. Leonardo AI's Phoenix model and photorealistic presets are competitive with Midjourney for photorealism. Midjourney's --style raw mode is popular for photographic results."},{question:"Is Leonardo AI completely free?",answer:"Leonardo AI has a genuinely useful free tier with daily token regeneration. Paid plans provide significantly more tokens and features. It is possible to do meaningful work on the free tier."},{question:"Which should I use for game asset creation?",answer:"Leonardo AI is generally the better choice for game development. Its consistency tools, custom model training for maintaining character design across many images, and production workflow features are specifically valuable for game asset pipelines."},{question:"Can I use these images commercially?",answer:"Commercial use depends on your subscription plan for both tools. Midjourney requires a paid plan for commercial use. Leonardo AI also requires a paid plan for commercial licensing. Always check current terms of service."}],lastUpdated:"2026-03-15"},{id:"cursor-vs-github-copilot",slug:"cursor-vs-github-copilot",toolA:"cursor",toolB:"github-copilot",title:"Cursor vs GitHub Copilot: Best AI Coding Tool in 2026",intro:"Cursor and GitHub Copilot are the two most popular AI coding assistants for professional developers. Both use similar underlying AI models but take fundamentally different approaches. Cursor is a full IDE replacement; GitHub Copilot is a plugin for your existing editor.",verdict:"Cursor is the better choice for developers who want the deepest AI integration and are willing to switch their primary IDE. Its multi-file context awareness and codebase chat are genuinely more powerful for complex projects. GitHub Copilot is the better choice for developers who want to stay in their existing editor (especially JetBrains IDEs) and want solid AI completion without disrupting their workflow.",bestForA:"Professional developers who want maximum AI coding c
359apability and are comfortable making Cursor their primary IDE.",bestForB:"Developers who prefer to stay in their existing IDE (especially JetBrains or non-VS Code editors) and want quality AI code completion.",features:[{name:"Codebase context awareness",toolA:"Excellent — full project context in chat",toolB:"Good — improving with workspace features",winner:"a"},{name:"IDE compatibility",toolA:"Standalone IDE (VS Code-based)",toolB:"Plugin for VS Code, JetBrains, Neovim, etc.",winner:"b"},{name:"Multi-file editing",toolA:"Excellent — natural language multi-file edits",toolB:"Good — Copilot Edits feature",winner:"a"},{name:"Inline suggestions",toolA:"Excellent",toolB:"Excellent — very competitive",winner:"tie"},{name:"GitHub integration",toolA:"Limited",toolB:"Deep — PR summaries, security scanning",winner:"b"},{name:"Model choice",toolA:"Multiple model options",toolB:"Limited model selection",winner:"a"},{name:"Pricing",toolA:"~$20/month",toolB:"$10/month individual",winner:"b"}],faq:[{question:"Should I switch from VS Code + Copilot to Cursor?",answer:"If you use VS Code and want better AI assistance for complex codebases, Cursor is worth trying — the transition is nearly seamless since it is VS Code-based. Many developers who switch to Cursor find the codebase chat and multi-file editing capabilities compelling enough to stay."},{question:"Does Cursor work with my VS Code extensions?",answer:"Yes. Cursor supports VS Code extensions, so your existing plugin setup carries over. This is a significant reason the transition from VS Code to Cursor is painless."},{question:"Is GitHub Copilot better for JetBrains users?",answer:"For JetBrains IDE users, GitHub Copilot is the practical choice — Cursor does not provide a JetBrains version. GitHub Copilot's JetBrains plugin is mature and performs well."},{question:"Can I use Cursor and GitHub Copilot together?",answer:"Technically possible but not common — they serve the same function and running both simultaneously creates redundancy. Most developers choose one as their primary AI coding assistant."}],lastUpdated:"2026-03-22"},{id:"runway-vs-synthesia",slug:"runway-vs-synthesia",toolA:"runway",toolB:"synthesia",title:"Runway vs Synthesia: Which AI Video Tool is Best?",intro:"Runway and Synthesia represent two very different approaches to AI video — Runway is a generative video and editing platform for creative professionals, while Synthesia specializes in AI presenter videos for business and training content. This comparison helps you choose the right tool for your video needs.",verdict:"These tools are complementary rather than direct competitors. Choose Runway for creative video production, VFX, and text-to-video generation. Choose Synthesia for scalable business communications, training videos, and multilingual presenter content. Many organizations could benefit from both.",bestForA:"Creative professionals, filmmakers, and advertisers who need AI video generation and advanced visual editing capabilities.",bestForB:"L&D teams, corporate communicators, and marketing teams who need scalable, professional presenter-style videos in multiple languages.",features:[{name:"Text-to-video generation",toolA:"Excellent — Gen-3 model",toolB:"Not applicable — avatar-based",winner:"a"},{name:"AI avatars",toolA:"Not the primary feature",toolB:"Core feature — 200+ avatars",winner:"b"},{name:"Multilingual support",toolA:"Limited",toolB:"Excellent — 130+ languages",winner:"b"},{name:"Creative video editing",toolA:"Comprehensive AI editing tools",toolB:"Basic template editing",winner:"a"},{name:"Enterprise controls",toolA:"Basic",toolB:"Comprehensive — compliance and governance",winner:"b"},{name:"Production workflow",toolA:"Professional creative workflow",toolB:"Business content workflow",winner:"tie"},{name:"Content scale",toolA:"Creative but slower at volume",toolB:"Designed for high-volume production",winner:"b"}],faq:[{question:"Can Runway create presenter videos like Synthesia?",answer:"Runway is not designed for presenter-style avatar videos. It is better for generative visual content. For AI avatar presenter videos, Synthesia or HeyGen are the appropriate tools."},{question:"Which is more expensive?",answer:"Both are premium-priced tools. Ru
359nway pricing reflects its creative professional positioning. Synthesia pricing is based on video minutes and users. Both require evaluation against specific usage needs."},{question:"Can Synthesia create the type of videos Runway makes?",answer:"No. Synthesia focuses exclusively on presenter-style avatar videos. It cannot generate the creative, generative video content that Runway produces."},{question:"Which is better for YouTube content?",answer:"For creative, visually engaging YouTube content, Runway's generation and editing capabilities are more relevant. For channel content featuring a consistent host or AI presenter, HeyGen is actually a more direct Synthesia alternative for creator use cases."}],lastUpdated:"2026-03-12"}],$b=e=>un.find(t=>t.slug===e),zl=[{id:"best-ai-website-builders-2026",slug:"best-ai-website-builders-2026",title:"Best AI Website Builders in 2026",excerpt:"AI website builders have transformed how businesses and individuals create their online presence. This guide covers the best options across different needs and skill levels.",content:"",category:"ai-website-builders",tags:["website-builders","ai-tools","no-code","framer","webflow"],author:"AI Tools Compare Editorial Team",publishedAt:"2026-03-01",updatedAt:"2026-04-01",readingTime:12,featured:!0,relatedTools:["framer","webflow","durable","10web"],relatedPosts:["best-ai-app-builders-non-technical","framer-vs-webflow"],seoTitle:"Best AI Website Builders 2026 — Compared & Reviewed",seoDescription:"Discover the best AI website builders of 2026. We compare Framer, Webflow, Durable, 10Web, and more with honest editorial analysis."},{id:"best-ai-app-builders-non-technical",slug:"best-ai-app-builders-non-technical",title:"Best AI App Builders for Non-Technical Founders in 2026",excerpt:"You do not need to know how to code to build a real web application anymore. These AI app builders make it possible for non-technical founders to ship their first product.",content:"",category:"ai-app-builders",tags:["app-builders","non-technical","founders","no-code","emergent","lovable"],author:"AI Tools Compare Editorial Team",publishedAt:"2026-03-05",updatedAt:"2026-04-01",readingTime:10,featured:!0,relatedTools:["emergent","lovable","bolt","replit"],relatedPosts:["best-ai-website-builders-2026","emergent-review"],seoTitle:"Best AI App Builders for Non-Technical Founders 2026",seoDescription:"Build your first app without coding. We review the best AI app builders for non-technical founders including Emergent, Lovable, and Bolt."},{id:"emergent-review",slug:"emergent-review",title:"Emergent Review 2026: The AI App Builder for Non-Developers",excerpt:"Emergent promises to let anyone build and deploy a full-stack web application through conversation. We put it through its paces to find out if it delivers.",content:"",category:"ai-app-builders",tags:["emergent","review","app-builder","no-code","founders"],author:"AI Tools Compare Editorial Team",publishedAt:"2026-03-15",updatedAt:"2026-03-15",readingTime:8,featured:!0,relatedTools:["emergent","lovable","bolt"],relatedPosts:["lovable-review","best-ai-app-builders-non-technical"],seoTitle:"Emergent Review 2026 — AI App Builder Tested & Rated",seoDescription:"Our in-depth Emergent review covers features, pricing, use cases, pros and cons. Find out if Emergent is the right AI app builder for your project."},{id:"lovable-review",slug:"lovable-review",title:"Lovable Review 2026: Polished AI App Building for Founders",excerpt:"Lovable focuses on design quality in a crowded AI app builder market. This review examines whether its higher visual standards translate to real advantages for non-technical builders.",content:"",category:"ai-app-builders",tags:["lovable","review","app-builder","react","design"],author:"AI Tools Compare Editorial Team",publishedAt:"2026-03-20",updatedAt:"2026-03-20",readingTime:8,featured:!1,relatedTools:["lovable","emergent","bolt"],relatedPosts:["emergent-review","best-ai-app-builders-non-technical"],seoTitle:"Lovable Review 2026 — AI App Builder Tested & Rated",seoDescription:"Our detailed Lovable review covers its design quality, React output, Supabase integration, pricing, and how it compares to Emergent and Bolt."},{id:"framer-vs-webflow",slug:"framer-vs-webflow",title:"Framer vs Webflow: Which Should You Use in 2026?",excerpt:"Framer and Webflow are the leading professional website builders for designers. Both offer powerful capabilities — but they excel in different scenarios. Here is how to choose.",content:"",category:"ai-website-builders",tags:["framer","webflow","comparison","website-builder","design"],author:"AI Tools Compare Editorial Team",publishedAt:"2026-03-14",updatedAt:"2026-03-14",readingTime:10,featured:!0,relatedTools:["framer","webflow"],relatedPosts:["best-ai-website-builders-2026","durable-vs-10web"],seoTitle:"Framer vs Webflow 2026 — Which Website Builder Wins?",seoDescription:"Framer vs Webflow: an honest comparison for designers choosing between the two leading professional website builders in 2026."},{id:"durable-vs-10web",slug:"durable-vs-10web",title:"Durable vs 10Web: Best AI Website Builder for Small Business?",excerpt:"Small business owners comparing AI website builders often land on Durable or 10Web. Both use AI to generate websites quickly — but they serve very different needs.",content:"",category:"ai-website-builders",tags:["durable","10web","comparison","small-business","website-builder"],author:"AI Tools Compare Editorial Team",publishedAt:"2026-03-10",updatedAt:"2026-03-10",readingTime:8,featured:!1,relatedTools:["durable","10web","webflow","framer"],relatedPosts:["best-ai-website-builders-2026","framer-vs-webflow"],seoTitle:"Durable vs 10Web 2026 — Which AI Website Builder for Small Business?",seoDescription:"Compare Durable and 10Web for small business websites. Our editorial guide helps you choose the right AI website builder for your needs."},{id:"best-ai-builders-affiliate-sites",slug:"best-ai-builders-affiliate-sites",title:"Best AI Builders for Affiliate Sites in 2026",excerpt:"Affiliate marketers have specific needs: fast builds, SEO-optimized structures, content management, and scalable page generation. These AI tools are best suited for the job.",content:"",category:"ai-website-builders",tags:["affiliate","website-builder","seo","marketing","no-code"],author:"AI Tools Compare Editorial Team",publishedAt:"2026-03-08",updatedAt:"2026-03-08",readingTime:9,featured:!1,relatedTools:["webflow","framer","10web"],relatedPosts:["best-ai-website-builders-2026","best-ai-tools-seo"],seoTitle:"Best AI Builders for Affiliate Sites 2026 — Reviewed",seoDescription:"Build affiliate sites faster with AI. We review the best AI website builders and tools for affiliate marketers in 2026."},{id:"best-ai-tools-seo",slug:"best-ai-tools-seo",title:"Best AI Tools for SEO Content Workflows in 2026",excerpt:"AI has fundamentally changed how SEO teams create and optimize content. This guide covers the tools that are actually making a difference in search rankings.",content:"",category:"ai-seo",tags:["seo","content","ai-writing","marketing","jasper"],author:"AI Tools Compare Editorial Team",publishedAt:"2026-02-25",updatedAt:"2026-04-01",readingTime:11,featured:!0,relatedTools:["jasper","copy-ai","chatgpt","perplexity"],relatedPosts:["best-chatgpt-alternatives","best-ai-builders-affiliate-sites"],seoTitle:"Best AI Tools for SEO Content Workflows 202
3596",seoDescription:"Discover the best AI tools for SEO content workflows. From keyword research to content generation, we cover what actually works in 2026."},{id:"best-chatgpt-alternatives",slug:"best-chatgpt-alternatives",title:"Best ChatGPT Alternatives in 2026 — Compared & Ranked",excerpt:"ChatGPT is the most well-known AI assistant, but it is not always the best choice for every task. These are the most capable alternatives and when to use them.",content:"",category:"ai-chatbots",tags:["chatgpt","alternatives","claude","gemini","perplexity"],author:"AI Tools Compare Editorial Team",publishedAt:"2026-03-28",updatedAt:"2026-04-01",readingTime:10,featured:!0,relatedTools:["chatgpt","claude","gemini","perplexity","poe"],relatedPosts:["chatgpt-vs-claude","best-ai-tools-seo"],seoTitle:"Best ChatGPT Alternatives 2026 — Claude, Gemini & More Compared",seoDescription:"Discover the best ChatGPT alternatives for 2026. We compare Claude, Gemini, Perplexity, and more to help you find the right AI assistant."},{id:"how-to-choose-ai-website-builder",slug:"how-to-choose-ai-website-builder",title:"How to Choose an AI Website Builder: The Complete Guide",excerpt:"With dozens of AI website builders to choose from, the decision can feel overwhelming. This guide provides a practical framework for choosing the right tool for your specific needs.",content:"",category:"ai-website-builders",tags:["website-builder","guide","comparison","ai-tools"],author:"AI Tools Compare Editorial Team",publishedAt:"2026-02-20",updatedAt:"2026-04-01",readingTime:13,featured:!1,relatedTools:["framer","webflow","durable","10web","emergent"],relatedPosts:["best-ai-website-builders-2026","framer-vs-webflow"],seoTitle:"How to Choose an AI Website Builder — Complete 2026 Guide",seoDescription:"A practical guide to choosing the right AI website builder for your needs. Compare features, pricing, and use cases to make the right decision."}],Sd=e=>zl.find(t=>t.slug===e),Ip=()=>zl.filter(e=>e.featured),_b={"@context":"https://schema.org","@type":"Organization",name:"Como AI",alternateName:"como.ai",url:"https://como.ai",logo:"https://como.ai/logo.png",description:"Como AI is an independent editorial directory and comparison site for AI tools. Discover, compare, and review the best AI software across every category.",sameAs:["https://twitter.com/aitoolscompare"]},Vb={"@context":"https://schema.org","@type":"WebSite",name:"Como AI",url:"https://como.ai",potentialAction:{"@type":"SearchAction",target:"https://como.ai/search?q={search_term_string}","query-input":"required name=search_term_string"}},Hb=["ai-app-builders","ai-website-builders","ai-chatbots","ai-coding","ai-writing","ai-image-generation","ai-video-generation","ai-productivity"],Yb=[{key:"developers",to:"/best-for/developers"},{key:"marketers",to:"/best-for/marketers"},{key:"founders",to:"/best-for/founders"},{key:"students",to:"/best-for/students"},{key:"agencies",to:"/best-for/agencies"},{key:"writers",to:"/best-for/writers"},{key:"free",to:"/best-for/free"},{key:"appBuilders",to:"/categories/ai-app-builders"}];function Kb(){const[e,t]=v.useState(""),a=Wr(),{t:n}=Fl(),r=Wb().slice(0,8),o=Ob().slice(0,4),s=Ip().slice(0,4),l=ea.filter(d=>Hb.includes(d.slug)),c=d=>{d.preventDefault(),e.trim()&&a(`/search?q=${encodeURIComponent(e.trim())}`)};return i.jsxs(i.Fragment,{children:[i.jsx(Q,{title:"Como AI — Discover, Compare & Review the Best AI Tools",description:"Como AI is an independent editorial directory of 1000+ AI tools. Compare features, pricing, and reviews for AI chatbots, coding tools, image generators, and more. Find the right AI tool for your needs.",canonical:"/"}),i.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(_b)}}),i.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(Vb)}}),i.jsx("div",{className:"bg-gradient-to-b from-gray-50 to-white",children:i.jsxs("section",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 pt-16 pb-12 text-center",children:[i.jsxs("div",{className:"inline-flex items-center gap-2 px-3 py-1.5 bg-blue-50 text-blue-700 rounded-full text-sm font-medium mb-6 border border-blue-100",children:[i.jsx(Rl,{className:"w-4 h-4"}),n("home.badge")]}),i.jsxs("h1",{className:"text-4xl md:text-5xl lg:text-6xl font-bold text-gray-900 mb-5 leading-tight",children:[n("home.h1"),i.jsx("br",{}),i.jsx("span",{className:"text-blue-600",children:n("home.h1Highlight")})," ",n("home.h1Suffix")]}),i.jsx("p",{className:"text-lg md:text-xl text-gray-600 max-w-2xl mx-auto mb-8 leading-relaxed",children:n("home.description")}),i.jsxs("form",{onSubmit:c,className:"flex flex-col sm:flex-row gap-3 max-w-2xl mx-auto mb-8",children:[i.jsxs("div",{className:"relative flex-1",children:[i.jsx(ai,{className:"absolute left-4 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-400"}
359),i.jsx("input",{type:"text",value:e,onChange:d=>t(d.target.value),placeholder:n("home.searchPlaceholder"),className:"w-full pl-12 pr-4 py-3.5 text-gray-900 bg-white border border-gray-300 rounded-xl text-base focus:outline-none focus:border-blue-500 focus:ring-2 focus:ring-blue-100"})]}),i.jsx("button",{type:"submit",className:"px-8 py-3.5 text-white font-semibold bg-blue-600 rounded-xl hover:bg-blue-700 transition-colors whitespace-nowrap",children:n("home.searchButton")})]}),i.jsx("div",{className:"flex flex-wrap justify-center gap-2 text-sm",children:n("home.quickLinks",{returnObjects:!0}).map(d=>i.jsx(j,{to:d.to,className:"px-3 py-1.5 text-gray-600 bg-white border border-gray-200 rounded-full hover:border-blue-300 hover:text-blue-600 transition-colors",children:d.label},d.to))})]})}),i.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12 space-y-16",children:[i.jsxs("section",{children:[i.jsxs("div",{className:"flex items-center justify-between mb-6",children:[i.jsxs("div",{children:[i.jsx("h2",{className:"text-2xl font-bold text-gray-900",children:n("home.browseByCategory")}),i.jsx("p",{className:"text-gray-500 mt-1",children:n("home.browseByCategoryDesc")})]}),i.jsxs(j,{to:"/categories",className:"flex items-center gap-1 text-sm text-blue-600 hover:underline font-medium",children:[n("home.allCategories")," ",i.jsx(Me,{className:"w-4 h-4"})]})]}),i.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-4",children:l.map(d=>i.jsx(xp,{category:d},d.slug))})]}),i.jsx(xa,{slot:"leaderboard",className:"rounded-xl overflow-hidden"}),i.jsxs("section",{children:[i.jsxs("div",{className:"flex items-center justify-between mb-6",children:[i.jsxs("div",{children:[i.jsx("h2",{className:"text-2xl font-bold text-gray-900",children:n("home.trendingTools")}),i.jsx("p",{className:"text-gray-500 mt-1",children:n("home.trendingToolsDesc")})]}),i.jsxs(j,{to:"/categories",className:"flex items-center gap-1 text-sm text-blue-600 hover:underline font-medium",children:[n("home.viewAll")," ",i.jsx(Me,{className:"w-4 h-4"})]})]}),i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4",children:r.map(d=>i.jsx(bt,{tool:d},d.id))})]}),i.jsxs("section",{children:[i.jsx("div",{className:"flex items-center justify-between mb-6",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[i.jsx(ql,{className:"w-5 h-5 text-amber-500 fill-amber-500"}),i.jsx("h2",{className:"text-2xl font-bold text-gray-900",children:n("home.editorsPicks")})]}),i.jsx("p",{className:"text-gray-500",children:n("home.editorsPicksDesc")})]})}),i.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4",children:o.map(d=>i.jsx(bt,{tool:d,size:"lg"},d.id))})]}),i.jsx(xa,{slot:"leaderboard",className:"rounded-xl overflow-hidden"}),i.jsxs("section",{className:"bg-gray-50 rounded-2xl p-8",children:[i.jsxs("div",{className:"flex items-center justify-between mb-6",children:[i.jsxs("div",{children:[i.jsx("h2",{className:"text-2xl font-bold text-gray-900",children:n("home.latestComparisons")}),i.jsx("p",{className:"text-gray-500 mt-1",children:n("home.latestComparisonsDesc")})]}),i.jsxs(j,{to:"/comparisons",className:"flex items-center gap-1 text-sm text-blue-600 hover:underline font-medium",children:[n("home.allComparisons")," ",i.jsx(Me,{className:"w-4 h-4"})]})]}),i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4",children:un.slice(0,6).map(d=>i.jsxs(j,{to:`/compare/${d.slug}`,className:"group bg-white p-5 rounded-xl border border-gray-200 hover:border-blue-300 hover:shadow-md transition-all",children:[i.jsx("div",{className:"flex items-center gap-2 mb-3",children:i.jsx("span",{className:"px-2 py-0.5 text-xs bg-gray-100 text-gray-600 rounded font-medium",children:"vs"})}),i.jsx("h3",{className:"font-semibold text-gray-900 group-hover:text-blue-600 transition-colors mb-2 leading-snug",children:d.title}),i.jsxs("p",{className:"text-xs text-gray-500 line-clamp-2",children:[d.intro.slice(0,100),"..."]}),i.jsxs("span",{className:"flex items-center gap-1 text-xs text-blue-600 mt-3 font-medium",children:[n("home.readComparison")," ",i.jsx(ca,{className:"w-3.5 h-3.5"})]})]},d.slug))})]}),i.jsxs("section",{children:[i.jsx("div",{className:"flex items-center justify-between mb-6",children:i.jsxs("div",{children:[i.jsx("h2",{className:"text-2xl font-bold text-gray-900",children:n("home.bestByUseCase")}),i.jsx("p",{className:"text-gray-500 mt-1",children:n("home.bestByUseCaseDesc")})]})}),i.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-3",children:Yb.map(d=>i.jsxs(j,{to:d.to,className:"group flex items-center justify-between p-4 bg-white border border-gray-200 rounded-xl hover:border-blue-300 hover:shadow-sm transition-all text-sm font-medium text-gray-700 hover:text-blue-600",children:[n(`home.useCases.${d.key}`),i.jsx(ca,{className:"w-4 h-4 text-gray-300 group-hover:text-blue-400"})]},d.to))})]}),i.jsxs("section",{children:[i.jsxs("div",{className:"flex items-center justify-between mb-6",children:[i.jsxs("div",{children:[i.jsx("h2",{className:"text-2xl font-bold text-gray-900",children:n("home.latestBlog")}),i.jsx("p",{className:"text-gray-500 mt-1",children:n("home.latestBlogDesc")})]}),i.jsxs(j,{to:"/blog",className:"flex items-center gap-1 text-sm text-blue-600 hover:underline font-medium",children:[n("home.allPosts")," ",i.jsx(Me,{className:"w-4 h-4"})]})]}),i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4",children:s.map(d=>i.jsx(Ps,{post:d},d.id))})]}),i.jsxs("section",{className:"grid grid-cols-1 lg:grid-cols-2 gap-8",children:[i.jsxs("div",{className:"bg-gradient-to-br from-gray-900 to-gray-800 rounded-2xl p-8 text-white",children:[i.jsx("div",{className:"w-10 h-10 bg-white/10 rounded-xl flex items-center justify-center mb-4",children:i.jsx(ad,{
359className:"w-5 h-5"})}),i.jsx("h2",{className:"text-xl font-bold mb-3",children:n("home.forTeams")}),i.jsx("p",{className:"text-gray-300 text-sm leading-relaxed mb-6",children:n("home.forTeamsDesc")}),i.jsxs("div",{className:"space-y-3",children:[i.jsxs(j,{to:"/claim-listing",className:"flex items-center justify-between p-3 bg-white/10 hover:bg-white/20 rounded-lg transition-colors text-sm",children:[i.jsx("span",{children:n("home.claimListing")}),i.jsx(ca,{className:"w-4 h-4"})]}),i.jsxs(j,{to:"/submit-a-tool",className:"flex items-center justify-between p-3 bg-white/10 hover:bg-white/20 rounded-lg transition-colors text-sm",children:[i.jsx("span",{children:n("home.submitTool")}),i.jsx(ca,{className:"w-4 h-4"})]}),i.jsxs(j,{to:"/advertise",className:"flex items-center justify-between p-3 bg-white/10 hover:bg-white/20 rounded-lg transition-colors text-sm",children:[i.jsx("span",{children:n("home.advertising")}),i.jsx(ca,{className:"w-4 h-4"})]}),i.jsxs(j,{to:"/partners",className:"flex items-center justify-between p-3 bg-white/10 hover:bg-white/20 rounded-lg transition-colors text-sm",children:[i.jsx("span",{children:n("home.partnerProgram")}),i.jsx(ca,{className:"w-4 h-4"})]})]})]}),i.jsxs("div",{className:"bg-blue-50 border border-blue-100 rounded-2xl p-8",children:[i.jsx("div",{className:"w-10 h-10 bg-blue-600 rounded-xl flex items-center justify-center mb-4",children:i.jsx(ht,{className:"w-5 h-5 text-white"})}),i.jsx("h2",{className:"text-xl font-bold text-gray-900 mb-3",children:n("home.howWeReview")}),i.jsx("p",{className:"text-gray-600 text-sm leading-relaxed mb-4",children:n("home.howWeReviewDesc")}),i.jsx("div",{className:"space-y-3",children:[{icon:ht,key:"editorialIndependence"},{icon:Is,key:"regularUpdates"},{icon:sp,key:"noFakeRatings"},{icon:wt,key:"clearDisclosure"}].map(({icon:d,key:m})=>i.jsxs("div",{className:"flex items-start gap-3 text-sm",children:[i.jsx(d,{className:"w-4 h-4 text-blue-600 mt-0.5 flex-shrink-0"}),i.jsx("span",{className:"text-gray-700",children:n(`home.${m}`)})]},m))}),i.jsxs(j,{to:"/editorial-policy",className:"inline-flex items-center gap-1 text-sm text-blue-600 hover:underline font-medium mt-4",children:[n("home.readEditorialPolicy")," ",i.jsx(Me,{className:"w-4 h-4"})]})]})]}),i.jsxs("section",{className:"bg-gray-50 rounded-2xl p-8",children:[i.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-2 text-center",children:n("home.whyComoAI")}),i.jsx("p",{className:"text-gray-500 text-center mb-8 max-w-xl mx-auto",children:n("home.whyComoAIDesc")}),i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-6",children:[{icon:ad,titleKey:"featureEditorialFirst",descKey:"featureEditorialFirstDesc"},{icon:ht,titleKey:"featureTransparent",descKey:"featureTransparentDesc"},{icon:Is,titleKey:"featureUpdated",descKey:"featureUpdatedDesc"},{icon:Pt,titleKey:"featureComprehensive",descKey:"featureComprehensiveDesc"}].map(({icon:d,titleKey:m,descKey:u})=>i.jsxs("div",{className:"text-center",children:[i.jsx("div",{className:"w-12 h-12 bg-white border border-gray-200 rounded-xl flex items-center justify-center mx-auto mb-3 shadow-sm",children:i.jsx(d,{className:"w-5 h-5 text-blue-600"})}),i.jsx("h3",{className:"font-semibold text-gray-900 mb-1",children:n(`home.${m}`)}),i.jsx("p",{className:"text-sm text-gray-500",children:n(`home.${u}`)})]},m))})]}),i.jsx(Yr,{})]})]})}function se({crumbs:e}){const t=[{label:"Home",to:"/"},...e],a={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:t.map((n,r)=>({"@type":"ListItem",position:r+1,name:n.label,...n.to?{item:`https://como.ai${n.to}`}:{}}))};return i.jsxs(i.Fragment,{children:[i.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(a)}}),i.jsx("nav",{"aria-label":"Breadcrumb",className:"flex items-center gap-1 text-sm text-gray-500 flex-wrap",children:t.map((n,r)=>i.jsxs("span",{className:"flex items-center gap-1",children:[r>0&&i.jsx(ca,{className:"w-4 h-4 text-gray-300 flex-shrink-0"}),r===0&&i.jsx(Hy,{className:"w-3.5 h-3.5 flex-shrink-0"}),n.to&&r<t.length-1?i.jsx(j,{to:n.to,className:"hover:text-blue-600 hover:underline",children:n.label}):i.jsx("span",{className:"text-gray-700 font-medium",children:n.label})]},r))})]})}function Jb(){const e={"@context":"https://schema.org","@type":"ItemList",name:"AI Tools Categories",itemListElement:ea.map((t,a)=>({"@type":"ListItem",position:a+1,name:t.name,url:`https://como.ai/categories/${t.slug}`}))};return i.jsxs(i.Fragment,{children:[i.jsx(Q,{title:"All AI Tool Categories — Browse the Full AI Tools Directory",description:"Browse all AI tool categories including AI chatbots, writing tools, coding assistants, image generators, and more. Find the best AI tools for every use case.",canonical:"/categories"}),i.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(e)}}),i.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[i.jsx(se,{crumbs:[{label:"Categories"}]}),i.jsxs("div",{className:"mt-6 mb-10",children:[i.jsx("h1",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-3",children:"AI Tools by Category"}),i.jsx("p",{className:"text-lg text-gray-600 max-w-2xl",children:"Explore our curated directory of AI tools organized by use case. Each category contains independently reviewed tools with editorial comparisons and recommendations."})]}),i.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-4",children:ea.map(t=>{const a=kp(t.slug).length;return i.jsx(xp,{category:t,toolCount:a},t.slug)})})]})]})}function mn({faqs:e,title:t="Frequently Asked Questions"}){const[a,n]=v.useState(null),r={"@context":"https://schema.org","@type":"FAQPage",mainEntity:e.map(o=>
359({"@type":"Question",name:o.question,acceptedAnswer:{"@type":"Answer",text:o.answer}}))};return i.jsxs("section",{children:[i.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(r)}}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mb-6",children:t}),i.jsx("div",{className:"space-y-3",children:e.map((o,s)=>i.jsxs("div",{className:"border border-gray-200 rounded-xl overflow-hidden",children:[i.jsxs("button",{onClick:()=>n(a===s?null:s),className:"w-full text-left px-5 py-4 flex items-center justify-between gap-4 hover:bg-gray-50 transition-colors",children:[i.jsx("span",{className:"font-medium text-gray-900 text-sm md:text-base",children:o.question}),a===s?i.jsx($r,{className:"w-5 h-5 text-gray-400 flex-shrink-0"}):i.jsx(ti,{className:"w-5 h-5 text-gray-400 flex-shrink-0"})]}),a===s&&i.jsx("div",{className:"px-5 pb-4",children:i.jsx("p",{className:"text-gray-600 text-sm leading-relaxed",children:o.answer})})]},s))})]})}function jp({filters:e,onChange:t,showSearch:a=!0,showCategory:n=!0,showPricing:r=!0,showPlatform:o=!1,showSort:s=!0}){const l=(c,d)=>{t({...e,[c]:d||void 0})};return i.jsx("div",{className:"bg-white border border-gray-200 rounded-xl p-4",children:i.jsxs("div",{className:"flex flex-wrap gap-3 items-center",children:[a&&i.jsxs("div",{className:"relative flex-1 min-w-[200px]",children:[i.jsx(ai,{className:"w-4 h-4 text-gray-400 absolute left-3 top-1/2 -translate-y-1/2"}),i.jsx("input",{type:"text",value:e.search||"",onChange:c=>l("search",c.target.value),placeholder:"Search tools...",className:"w-full pl-9 pr-3 py-2 text-sm border border-gray-200 rounded-lg focus:outline-none focus:border-blue-400"})]}),n&&i.jsxs("select",{value:e.category||"",onChange:c=>l("category",c.target.value),className:"px-3 py-2 text-sm border border-gray-200 rounded-lg focus:outline-none focus:border-blue-400 bg-white",children:[i.jsx("option",{value:"",children:"All Categories"}),ea.map(c=>i.jsx("option",{value:c.slug,children:c.name},c.slug))]}),r&&i.jsxs("select",{value:e.pricing||"",onChange:c=>l("pricing",c.target.value),className:"px-3 py-2 text-sm border border-gray-200 rounded-lg focus:outline-none focus:border-blue-400 bg-white",children:[i.jsx("option",{value:"",children:"Any Pricing"}),i.jsx("option",{value:"free",children:"Free"}),i.jsx("option",{value:"freemium",children:"Freemium"}),i.jsx("option",{value:"paid",children:"Paid"}),i.jsx("option",{value:"enterprise",children:"Enterprise"})]}),o&&i.jsxs("select",{value:e.platform||"",onChange:c=>l("platform",c.target.value),className:"px-3 py-2 text-sm border border-gray-200 rounded-lg focus:outline-none focus:border-blue-400 bg-white",children:[i.jsx("option",{value:"",children:"Any Platform"}),i.jsx("option",{value:"web",children:"Web"}),i.jsx("option",{value:"desktop",children:"Desktop"}),i.jsx("option",{value:"mobile",children:"Mobile"}),i.jsx("option",{value:"api",children:"API"})]}),s&&i.jsxs("select",{value:e.sortBy||"",onChange:c=>l("sortBy",c.target.value),className:"px-3 py-2 text-sm border border-gray-200 rounded-lg focus:outline-none focus:border-blue-400 bg-white",children:[i.jsx("option",{value:"",children:"Sort: Default"}),i.jsx("option",{value:"popular",children:"Most Popular"}),i.jsx("option",{value:"editor-pick",children:"Editor's Picks"}),i.jsx("option",{value:"name",children:"Name A-Z"})]}),(e.category||e.pricing||e.platform||e.search)&&i.jsxs("button",{onClick:()=>t({}),className:"flex items-center gap-1 px-3 py-2 text-sm text-gray-500 hover:text-gray-700 border border-gray-200 rounded-lg hover:bg-gray-50",children:[i.jsx(rw,{className:"w-3.5 h-3.5"}),"Clear"]})]})})}function Qb(){const{slug:e}=ci(),[t,a]=v.useState({}),n=ea.find(c=>c.slug===e);if(!n)return i.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-16 text-center",children:[i.jsx("h1",{className:"text-2xl font-bold text-gray-900 mb-4",children:"Category Not Found"}),i.jsx(j,{to:"/categories",className:"text-blue-600 hover:underline",children:"Browse all categories"})]});const r=kp(n.slug),o=t.search||t.pricing||t.platform?Ap({...t,category:n.slug}):r.sort((c,d)=>c.editorPick&&!d.editorPick?-1:!c.editorPick&&d.editorPick?1:c.trending&&!d.trending?-1:!c.trending&&d.trending?1:0),s=n.relatedCategories.map(c=>ea.find(d=>
359d.slug===c)).filter(Boolean),l={"@context":"https://schema.org","@type":"ItemList",name:n.seoTitle,description:n.seoDescription,itemListElement:r.map((c,d)=>({"@type":"ListItem",position:d+1,name:c.name,url:`https://como.ai/tools/${c.slug}`}))};return i.jsxs(i.Fragment,{children:[i.jsx(Q,{title:n.seoTitle,description:n.seoDescription,canonical:`/categories/${n.slug}`}),i.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(l)}}),i.jsx("div",{className:"bg-gray-50 border-b border-gray-200",children:i.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[i.jsx(se,{crumbs:[{label:"Categories",to:"/categories"},{label:n.name}]}),i.jsxs("div",{className:"mt-4",children:[i.jsxs("h1",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-3",children:["Best ",n.name," Tools"]}),i.jsx("p",{className:"text-lg text-gray-600 max-w-2xl leading-relaxed",children:n.description}),i.jsxs("p",{className:"text-sm text-gray-500 mt-2",children:[r.length," tool",r.length!==1?"s":""," reviewed · Sorted by editorial recommendation"]})]})]})}),i.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:i.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-4 gap-8",children:[i.jsxs("div",{className:"lg:col-span-3",children:[i.jsx("div",{className:"mb-4 p-5 bg-blue-50 border border-blue-100 rounded-xl",children:i.jsx("p",{className:"text-sm text-gray-700 leading-relaxed",children:n.longDescription})}),i.jsx("div",{className:"mb-6",children:i.jsx(jp,{filters:t,onChange:a,showCategory:!1,showPlatform:!0})}),o.length===0?i.jsxs("div",{className:"text-center py-12 text-gray-500",children:["No tools match your filters. ",i.jsx("button",{onClick:()=>a({}),className:"text-blue-600 hover:underline",children:"Clear filters"})]}):i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:o.map(c=>i.jsx(bt,{tool:c,showCategory:!1},c.id))}),i.jsx("div",{className:"mt-12",children:i.jsx(mn,{faqs:n.faq})})]}),i.jsxs("aside",{className:"space-y-6",children:[i.jsx(xa,{slot:"rectangle"}),i.jsxs("div",{className:"bg-white border border-gray-200 rounded-xl p-5",children:[i.jsx("h3",{className:"font-semibold text-gray-900 mb-4",children:"Editorial Selection"}),i.jsx("p",{className:"text-sm text-gray-500 mb-3",children:"Tools are selected based on our editorial review process. We evaluate:"}),i.jsx("ul",{className:"text-sm text-gray-600 space-y-2",children:["Feature quality and depth","Value for price","Ease of use","Documentation and support","User sentiment"].map(c=>i.jsxs("li",{className:"flex items-start gap-2",children:[i.jsx("span",{className:"w-1.5 h-1.5 bg-blue-400 rounded-full mt-2 flex-shrink-0"}),c]},c))}),i.jsx(j,{to:"/review-methodology",className:"text-xs text-blue-600 hover:underline mt-3 block",children:"Read our review methodology →"})]}),s.length>0&&i.jsxs("div",{className:"bg-white border border-gray-200 rounded-xl p-5",children:[i.jsx("h3",{className:"font-semibold text-gray-900 mb-3",children:"Related Categories"}),i.jsx("div",{className:"space-y-2",children:s.map(c=>c&&i.jsxs(j,{to:`/categories/${c.slug}`,className:"flex items-center justify-between p-2 rounded-lg hover:bg-gray-50 text-sm text-gray-700 hover:text-blue-600",children:[c.name,i.jsx("span",{className:"text-gray-300",children:"›"})]},c.slug))})]}),i.jsxs("div",{className:"bg-gray-50 border border-gray-200 rounded-xl p-5",children:[i.jsx("h3",{className:"font-semibold text-gray-900 mb-2",children:"Submit a Tool"}),i.jsx("p",{className:"text-sm text-gray-500 mb-3",children:"Is your AI tool missing from this list?"}),i.jsx(j,{to:"/submit-a-tool",className:"block text-center w-full py-2 text-sm font-medium text-blue-600 border border-blue-200 rounded-lg hover:bg-blue-50",children:"Submit for Review"})]})]})]})})]})}function Zb({tool:e}){const t={free:"text-green-600",freemium:"text-blue-600",paid:"text-gray-700",enterprise:"text-purple-600",custom:"text-gray-700"};return i.jsxs("div",{className:"bg-gray-50 border border-gray-200 rounded-xl p-5 space-y-4 sticky top-24",children:[i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx("div",{className:`w-12 h-12 ${e.logoColor||"bg-blue-600"} rounded-xl flex items-center justify-center text-white font-bold text-lg`,children:e.logoLetter||e.name[0]}),i.jsxs("div",{children:[i.jsx("h3",{className:"font-semibold text-gray-900",children:e.name}),i.jsx("p",{className:"text-xs text-gray-500",children:e.tagline})]})]}),i.jsxs("div",{className:"space-y-3 text-sm",children:[i.jsxs("div",{className:"flex justify-between",children:[i.jsx("span",{className:"text-gray-500",children:"Category"}),e.categories[0]&&i.jsx(j,{to:`/categories/${e.categories[0]}`,className:"text-blue-600 hover:underline text-right max-w-[60%]",children:e.categories[0].replace("ai-","AI ").replace(/-/g," ")})]}),i.jsxs("div",{className:"flex justify-between",children:[i.jsx("span",{className:"text-gray-500",children:"Pricing"}),i.jsx("span",{className:`font-medium capitalize ${t[e.pricingModel]||"text-gray-700"}`,children:e.pricingModel})]}),i.jsxs("div",{className:"flex justify-between",children:[i.jsx("span",{className:"text-gray-500",children:"Platform"}),i.jsx("span",{className:"text-gray-700 capitalize",children:e.platform.join(", ")})]}),i.jsxs("div",{className:"flex justify-between",children:[i.jsx("span",{className:"text-gray-500",children:"Best For"}),i.jsx("span",{className:"text-gray-700 text-right max-w-[60%]",children:e.audience.slice(0,2).join(", ")})]}),i.jsxs("div",{className:"flex justify-between",children:[i.jsx("span",{className:"text-gray-500",children:"Website"}),i.jsxs("a",{href:e.officialUrl,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:underline flex items-center gap-1",children:["Official site ",i.jsx(ke,{className:"w-3 h-3"})]})]}),i.jsxs("div",{className:"flex justify-between items-center",children:[i.jsx("span",{className:"text-gray-500",children:"Monetized"}),i.jsx("span",{className:"capitalize text-gray-700",children:e.monetizationType==="unknown"?"—":e.monetizationType})]}),i.jsxs("div",{className:"flex justify-between items-center",children:[i.jsx("span",{className:"text-gray-500",children:"Editorial status"}),i.jsxs("span",{className:"flex items-center gap-1 capitalize",children:[e.editorialStatus==="reviewed"?i.jsx(O,{className:"w-3.5 h-3.5 text-green-500"}):i.jsx(Fy,{className:"w-3.5 h-3.5 text-amber-500"}),i.jsx("span",{className:"text-gray-700",children:e.editorialStatus})]})]}),i.jsxs("div",{className:"flex justify-between items-center",children:[i.jsx("span",{className:"text-gray-500",children:"Last reviewed"}),i.jsxs("span",{className:"flex items-center gap-1 text-gray-700",children:[i.jsx(en,{className:"w-3.5 h-3.5 text-gray-400"}),new Date(e.lastReviewed).toLocaleDateString("en-US",{month:"short",year:"numeric"})]})]})]}),i.jsxs("div",{className:"pt-2 space-y-2",children:[i.jsxs("a",{href:e.trackingUrl||e.officialUrl,target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-center gap-2 w-full py-2.5 text-sm font-semibold text-white bg-blue-600 rounded-lg hover:bg-blue-700 transition-colors",children:["Visit ",e.name," ",i.jsx(ke,{className:"w-4 h-4"})]}),e.monetizationType!=="none"&&e.monetizationType!=="unknown"&&i.jsx("p",{className:"text-xs text-amber-700 text-center",children:e.monetizationType==="affiliate"?"Affiliate link":"Referral link"}),e.comparisonSlugs.length>0&&i.jsx(j,{to:`/compare/${e.comparisonSlugs[0]}`,className:"flex items-center justify-center w-full py-2 text-sm font-medium text-gray-700 border border-gray-200 rounded-lg hover:bg-gray-50 transition-colors",children:"Compare Alternatives"}),i.jsx(j,{to:`/claim-listing?tool=${e.slug}`,className:"flex items-center justify-center w-full py-2 text-xs text-gray-500 hover:text-gray-700 transition-colors",children:"Claim this listing"})]})]})}function Bl({type:e="general",customNote:t}){const a={affiliate:"This page contains affiliate links. If you sign up through our links, we may earn a commission at no extra cost to you. This does not affect our editorial ratings or recommendations.",referral:"This page contains referral links. If you sign up through our links, both you and we may receive a benefit. This does not affect our editorial ratings or recommendations.",general:"Some pages on this site contain affiliate or referral links. Our editorial reviews are independent and not influenced by commercial relationships."};return i.jsxs("div",{className:"flex gap-3 p-4 bg-amber-50 border border-amber-200 rounded-xl text-sm text-amber-800",children:[i.jsx(Ky,{className:"w-4 h-4 flex-shrink-0 mt-0.5 text-amber-600"}),i.jsxs("p",{children:[t||a[e]," ",i.jsx(j,{to:"/affiliate-disclosure",className:"font-medium underline hover:no-underline",children:"Read our full disclosure policy."})]})]})}function Xb(){const{slug:e}=ci(),t=e?Xt(e):void 0;if(!t)return i.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-16 text-center",children:[i.jsx("h1",{className:"text-2xl font-bold text-gray-900 mb-4",children:"Tool Not Found"}),i.jsx(j,{to:"/categories",className:"text-blue-600 hover:underline",children:"Browse all categories"})]});const a=ea.find(c=>c.slug===t.categories[0]),n=t.alternatives.map(c=>He.find(d=>
359d.slug===c)).filter(Boolean),r=t.relatedTools.map(c=>He.find(d=>d.slug===c)).filter(Boolean),o=un.filter(c=>c.toolA===t.slug||c.toolB===t.slug),s=t.monetizationType==="affiliate"||t.monetizationType==="referral",l={"@context":"https://schema.org","@type":"SoftwareApplication",name:t.name,description:t.shortDescription,url:t.officialUrl,applicationCategory:"WebApplication",operatingSystem:t.platform.join(", "),offers:{"@type":"Offer",price:t.pricingModel==="free"?"0":void 0,priceCurrency:"USD",description:t.pricingSummary},aggregateRating:t.rating?{"@type":"AggregateRating",ratingValue:t.rating,bestRating:5,worstRating:1,ratingCount:1}:void 0};return i.jsxs(i.Fragment,{children:[i.jsx(Q,{title:`${t.name} Review 2026 — Features, Pricing & Alternatives`,description:t.shortDescription,canonical:`/tools/${t.slug}`}),i.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(l)}}),i.jsx("div",{className:"bg-gray-50 border-b border-gray-200",children:i.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[i.jsx(se,{crumbs:[{label:"Categories",to:"/categories"},...a?[{label:a.name,to:`/categories/${a.slug}`}]:[],{label:t.name}]}),i.jsxs("div",{className:"flex items-start gap-4 mt-4",children:[i.jsx("div",{className:`w-14 h-14 md:w-16 md:h-16 ${t.logoColor||"bg-blue-600"} rounded-2xl flex items-center justify-center text-white font-bold text-2xl flex-shrink-0`,children:t.logoLetter||t.name[0]}),i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl md:text-3xl font-bold text-gray-900",children:t.name}),i.jsx("p",{className:"text-gray-500 text-base mt-1",children:t.tagline}),i.jsxs("div",{className:"flex flex-wrap items-center gap-3 mt-2 text-sm",children:[t.categories.slice(0,2).map(c=>{const d=ea.find(m=>m.slug===c);return d?i.jsx(j,{to:`/categories/${c}`,className:"text-blue-600 hover:underline",children:d.name},c):null}),i.jsx("span",{className:"text-gray-300",children:"·"}),i.jsxs("span",{className:"flex items-center gap-1 text-gray-500",children:[i.jsx(en,{className:"w-3.5 h-3.5"}),"Last reviewed ",new Date(t.lastReviewed).toLocaleDateString("en-US",{month:"long",year:"numeric"})]})]})]})]})]})}),i.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:i.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-8",children:[i.jsxs("div",{className:"lg:col-span-2 space-y-8",children:[s&&i.jsx(Bl,{type:t.monetizationType,customNote:t.disclosureNote||void 0}),i.jsxs("section",{children:[i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mb-3",children:"Overview"}),i.jsx("p",{className:"text-gray-700 leading-relaxed mb-4",children:t.fullDescription}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"p-4 bg-gray-50 rounded-xl border border-gray-100",children:[i.jsx("h3",{className:"font-semibold text-gray-800 mb-2 text-sm",children:"What it does"}),i.jsx("p",{className:"text-sm text-gray-600 leading-relaxed",children:t.whatItDoes})]}),i.jsxs("div",{className:"p-4 bg-blue-50 rounded-xl border border-blue-100",children:[i.jsx("h3",{className:"font-semibold text-gray-800 mb-2 text-sm",children:"Best for"}),i.jsx("p",{className:"text-sm text-gray-600 leading-relaxed",children:t.bestFor})]})]})]}),i.jsxs("section",{children:[i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mb-4",children:"Key Features"}),i.jsx("ul",{className:"space-y-3",children:t.features.map((c,d)=>i.jsxs("li",{className:"flex items-start gap-3",children:[i.jsx(O,{className:"w-5 h-5 text-green-500 mt-0.5 flex-shrink-0"}),i.jsx("span",{className:"text-gray-700 text-sm",children:c})]},d))})]}),i.jsxs("section",{children:[i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mb-4",children:"Main Use Cases"}),i.jsx("ul",{className:"space-y-2",children:t.useCases.map((c,d)=>i.jsxs("li",{className:"flex items-start gap-3",children:[i.jsx("span",{className:"w-5 h-5 flex items-center justify-center bg-blue-100 text-blue-600 rounded-full text-xs font-bold flex-shrink-0 mt-0.5",children:d+1}),i.jsx("span",{className:"text-gray-700 text-sm",children:c})]},d))})]}),i.jsxs("section",{children:[i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mb-4",children:"Pros & Cons"}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{children:[i.jsxs("h3",{className:"font-medium text-green-700 mb-3 flex items-center gap-2",children:[i.jsx(O,{className:"w-4 h-4"})," Pros"]}),i.jsx("ul",{className:"space-y-2",children:t.pros.map((c,d)=>i.jsxs("li",{className:"flex items-start gap-2 text-sm text-gray-700",children:[i.jsx("span",{className:"w-1.5 h-1.5 bg-green-500 rounded-full mt-2 flex-shrink-0"}),c]},d))})]}),i.jsxs("div",{children:[i.jsxs("h3",{className:"font-medium text-red-700 mb-3 flex items-center gap-2",children:[i.jsx(Vr,{className:"w-4 h-4"})," Cons"]}),i.jsx("ul",{className:"space-y-2",children:t.cons.map((c,d)=>i.jsxs("li",{className:"flex items-start gap-2 text-sm text-gray-700",children:[i.jsx("span",{className:"w-1.5 h-1.5 bg-red-400 rounded-full mt-2 flex-shrink-0"}),c]},d))})]})]})]}),i.jsxs("section",{children:[i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mb-3",children:"Pricing"}),i.jsxs("div",{className:"p-5 bg-gray-50 border border-gray-200 rounded-xl",children:[i.jsx("div",{className:"flex items-start gap-2 mb-2",children:i.jsx("span",{className:`px-2 py-0.5 text-xs font-medium rounded capitalize ${t.pricingModel==="free"?"bg-green-100 text-green-700":t.pricingModel==="freemium"?"bg-blue-100 text-blue-700":"bg-gray-200 text-gray-700"}`,children:t.pricingModel})}),i.jsx("p",{className:"text-gray-700 text-sm leading-relaxed",children:t.pricingSummary}),i.jsxs("a",{href:t.trackingUrl||t.officialUrl,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 mt-3 text-sm text-blue-600 hover:underline",children:["See current pricing on official site ",i.jsx(ke,{className:"w-3.5 h-3.5"})]}),s&&i.jsx("p",{className:"text-xs text-amber-700 mt-2",children:t.monetizationType==="affiliate"?"Affiliate link — we may earn a commission.":"Referral link"})]})]}),i.jsx(xa,{slot:"leaderboard",className:"rounded-xl overflow-hidden"}),i.jsxs("section",{className:"p-5 bg-amber-50 border border-amber-200 rounded-xl",children:[i.jsx("h2",{className:"text-lg font-semibold text-gray-900 mb-2",children:"Editorial Verdict"}),i.jsx("p",{className:"text-gray-700 text-sm leading-relaxed",children:t.editorialVerdict}),i.jsxs("div",{className:"flex items-center gap-2 mt-3 text-xs text-amber-700",children:[i.jsx(en,{className:"w-3.5 h-3.5"}),"Last reviewed: ",new Date(t.lastReviewed).toLocaleDateString("en-US",{month:"long",day:"numeric",year:"numeric"})]})]}),o.length>0&&i.jsxs("section",{children:[i.jsxs("h2",{className:"text-xl font-semibold text-gray-900 mb-4",children:["Compare ",t.name]}),i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:o.map(c=>i.jsxs(j,{to:`/compare/${c.slug}`,className:"group flex items-start justify-between p-4 border border-gray-200 rounded-xl hover:border-blue-300 hover:shadow-sm transition-all",children:[i.jsxs("div",{children:[i.jsx("p",{className:"font-medium text-gray-900 group-hover:text-blue-600 text-sm",children:c.title}),i.jsxs("p",{className:"text-xs text-gray-500 mt-1 line-clamp-1",children:[c.intro.slice(0,80),"..."]})]}),i.jsx(Me,{className:"w-4 h-4 text-gray-400 group-hover:text-blue-500 flex-shrink-0 mt-0.5 ml-2"})]},c.slug))})]}),n.length>0&&i.jsxs("section",{children:[i.jsxs("h2",{className:"text-xl font-semibold text-gray-900 mb-4",children:["Top ",t.name," Alternatives"]}),i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:n.slice(0,4).map(c=>c&&i.jsx(bt,{tool:c,size:"sm"},c.id))}),i.jsxs(j,{to:`/alternatives/${t.slug}`,className:"inline-flex items-center gap-1 mt-4 text-sm text-blue-600 hover:underline font-medium",children:["See all ",t.name," alternatives ",i.jsx(Me,{className:"w-4 h-4"})]})]}),i.jsx(mn,{faqs:t.faq,title:`${t.name} — Frequently Asked Questions`}),i.jsxs("div",{className:"flex flex-wrap gap-3 pt-4 border-t border-gray-200",children:[i.jsxs("a",{href:t.trackingUrl||t.officialUrl,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-2 px-6 py-3 text-sm font-semibold text-white bg-blue-600 rounded-xl hover:bg-blue-700",children:["Visit ",t.name," ",i.jsx(ke,{className:"w-4 h-4"})]}),t.alternatives[0]&&i.jsx(j,{to:`/alternatives/${t.slug}`,className:"flex items-center gap-2 px-5 py-3 text-sm font-medium text-gray-700 border border-gray-200 rounded-xl hover:bg-gray-50",children:"Compare Alternatives"}),i.jsx(j,{to:`/claim-listing?tool=${t.slug}`,className:"flex items-center gap-2 px-5 py-3 text-sm text-gray-500 border border-gray-200 rounded-xl hover:bg-gray-50",children:"Claim this listing"}
359),i.jsxs(j,{to:`/contact?subject=Report+outdated+info+for+${t.name}`,className:"flex items-center gap-1 px-4 py-3 text-sm text-gray-500 hover:text-gray-700",children:[i.jsx(op,{className:"w-4 h-4"})," Report outdated info"]})]})]}),i.jsxs("aside",{className:"space-y-6",children:[i.jsx(Zb,{tool:t}),i.jsx(xa,{slot:"rectangle"}),r.length>0&&i.jsxs("div",{className:"bg-white border border-gray-200 rounded-xl p-5",children:[i.jsx("h3",{className:"font-semibold text-gray-900 mb-4",children:"Related Tools"}),i.jsx("div",{className:"space-y-3",children:r.slice(0,4).map(c=>c&&i.jsxs(j,{to:`/tools/${c.slug}`,className:"flex items-center gap-3 group",children:[i.jsx("div",{className:`w-8 h-8 ${c.logoColor||"bg-blue-600"} rounded-lg flex items-center justify-center text-white font-bold text-xs flex-shrink-0`,children:c.logoLetter||c.name[0]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium text-gray-900 group-hover:text-blue-600",children:c.name}),i.jsx("p",{className:"text-xs text-gray-500 line-clamp-1",children:c.tagline})]})]},c.id))})]}),i.jsxs("div",{className:"bg-gray-50 border border-gray-200 rounded-xl p-4 text-sm",children:[i.jsx("p",{className:"font-medium text-gray-900 mb-1",children:"About this review"}),i.jsxs("p",{className:"text-gray-500 text-xs leading-relaxed",children:["This review was written by the Como AI editorial team based on hands-on testing and research. We do not accept payment for editorial coverage."," ",i.jsx(j,{to:"/review-methodology",className:"text-blue-600 hover:underline",children:"Read our methodology."})]})]})]})]})})]})}function ev(){return i.jsxs(i.Fragment,{children:[i.jsx(Q,{title:"AI Tool Comparisons — Side-by-Side Analysis of Top AI Tools",description:"Compare AI tools side-by-side. Read editorial comparisons of ChatGPT vs Claude, Cursor vs GitHub Copilot, Emergent vs Lovable, and more.",canonical:"/comparisons"}),i.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[i.jsx(se,{crumbs:[{label:"Comparisons"}]}),i.jsxs("div",{className:"mt-6 mb-10",children:[i.jsx("h1",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-3",children:"AI Tool Comparisons"}),i.jsx("p",{className:"text-lg text-gray-600 max-w-2xl",children:"Side-by-side editorial comparisons of competing AI tools. Find out which tool is right for your specific needs and use case."})]}),i.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-5",children:un.map(e=>{const t=Xt(e.toolA),a=Xt(e.toolB);return i.jsxs(j,{to:`/compare/${e.slug}`,className:"group p-5 bg-white border border-gray-200 rounded-xl hover:border-blue-300 hover:shadow-md transition-all",children:[i.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[t&&i.jsx("div",{className:`w-9 h-9 ${t.logoColor||"bg-blue-600"} rounded-lg flex items-center justify-center text-white font-bold text-sm`,children:t.logoLetter||t.name[0]}),i.jsx("span",{className:"text-sm font-medium text-gray-400",children:"vs"}),a&&i.jsx("div",{className:`w-9 h-9 ${a.logoColor||"bg-gray-600"} rounded-lg flex items-center justify-center text-white font-bold text-sm`,children:a.logoLetter||a.name[0]})]}),i.jsx("h2",{className:"font-semibold text-gray-900 group-hover:text-blue-600 transition-colors text-base mb-2 leading-snug",children:e.title}),i.jsxs("p",{className:"text-sm text-gray-500 line-clamp-2",children:[e.intro.slice(0,120),"..."]}),i.jsx("p",{className:"text-xs text-blue-600 mt-3 font-medium group-hover:gap-2 transition-all",children:"Read comparison →"})]},e.slug)})})]})]})}function tv({comparison:e}){const t=He.find(n=>n.slug===e.toolA),a=He.find(n=>n.slug===e.toolB);return!t||!a?null:i.jsx("div",{className:"overflow-x-auto",children:i.jsxs("table",{className:"w-full text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-gray-200",children:[i.jsx("th",{className:"text-left py-3 px-4 text-gray-500 font-medium w-1/3",children:"Feature"}),i.jsx("th",{className:"text-center py-3 px-4",children:i.jsxs("div",{className:"flex flex-col items-center gap-1",children:[i.jsx("div",{className:`w-8 h-8 ${t.logoColor||"bg-blue-600"} rounded-lg flex items-center justify-center text-white font-bold text-sm`,children:t.logoLetter||t.name[0]}),i.jsx("span",{className:"font-semibold text-gray-900",children:t.name})]})}),i.jsx("th",{className:"text-center py-3 px-4",children:i.jsxs("div",{className:"flex flex-col items-center gap-1",children:[i.jsx("div",{className:`w-8 h-8 ${a.logoColor||"bg-gray-600"} rounded-lg flex items-center justify-center text-white font-bold text-sm`,children:a.logoLetter||a.name[0]}),i.jsx("span",{className:"font-semibold text-gray-900",children:a.name})]})})]})}),i.jsx("tbody",{children:e.features.map((n,r)=>i.jsxs("tr",{className:`border-b border-gray-100 ${r%2===0?"bg-white":"bg-gray-50"}`,children:[i.jsx("td",{className:"py-3 px-4 font-medium text-gray-900",children:n.name}),i.jsx("td",{className:`py-3 px-4 text-center ${n.winner==="a"?"bg-green-50":""}`,children:i.jsxs("div",{className:"flex flex-col items-center gap-1",children:[n.winner==="a"&&i.jsx(nd,{className:"w-4 h-4 text-amber-500"}),i.jsx("span",{className:`text-xs md:text-sm ${n.winner==="a"?"text-green-700 font-medium":"text-gray-600"}`,children:n.toolA})]})}),i.jsx("td",{className:`py-3 px-4 text-center ${n.winner==="b"?"bg-green-50":""}`,children:i.jsxs("div",{className:"flex flex-col items-center gap-1",children:[n.winner==="b"&&i.jsx(nd,{className:"w-4 h-4 text-amber-500"}),i.jsx("span",{className:`text-xs md:text-sm ${n.winner==="b"?"text-green-700 font-medium":"text-gray-600"}`,children:n.toolB})]})})]},r))}),i.jsx("tfoot",{children:i.jsxs("tr",{className:"border-t-2 border-gray-200",children:[i.jsx("td",{className:"py-4 px-4 font-semibold text-gray-900",children:"Wins"}),i.jsx("td",{className:"py-4 px-4 text-center",children:i.jsxs("span",{className:"flex items-center justify-center gap-1 font-bold text-green-700",children:[i.jsx(O,{className:"w-4 h-4"}),e.features.filter(n=>n.winner==="a").length]})}),i.jsx("td",{className:"py-4 px-4 text-center",children:i.jsxs("span",{className:"flex items-center justify-center gap-1 font-bold text-green-700",children:[i.jsx(O,{className:"w-4 h-4"}),e.features.filter(n=>n.winner==="b").length]})})]})})]})})}function av(){const{slug:e}=ci(),t=e?$b(e):void 0;if(!t)return i.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-16 text-center",children:[i.jsx("h1",{className:"text-2xl font-bold text-gray-900 mb-4",children:"Comparison Not Found"}),i.jsx(j,{to:"/comparisons",className:"text-blue-600 hover:underline",children:"Browse all comparisons"})]});const a=Xt(t.toolA),n=Xt(t.toolB);if(!a||!n)return null;const r=a.monetizationType==="affiliate"||n.monetizationType==="affiliate"||a.monetizationType==="referral"||n.monetizationType==="referral",o=un.filter(l=>l.slug!==t.slug&&(l.toolA===t.toolA||l.toolB===t.toolB||l.toolA===t.toolB||l.toolB===t.toolA)).slice(0,3),s=He.filter(l=>l.categories.some(c=>a.categories.includes(c))&&l.slug!==a.slug&&l.slug!==n.slug).slice(0,4);return i.jsxs(i.Fragment,{children:[i.jsx(Q,{title:`${t.title} | Como AI`,description:`${t.intro.slice(0,155)}...`,canonical:`/compare/${t.slug}`}),i.jsx("div",{className:"bg-gray-50 border-b border-gray-200",children:i.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[i.jsx(se,{crumbs:[{label:"Comparisons",to:"/comparisons"},{label:`${a.name} vs ${n.name}`}]}),i.jsx("h1",{className:"text-2xl md:text-3xl font-bold text-gray-900 mt-4 mb-2",children:t.title}),i.jsxs("p",{className:"text-gray-500 text-sm flex items-center gap-2",children:[i.jsx(en,{className:"w-4 h-4"}),"Last updated ",new Date(t.lastUpdated).toLocaleDateString("en-US",{month:"long",year:"numeric"})]})]})}),i.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:i.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-4 gap-8",children:[i.jsxs("div",{className:"lg:col-span-3 space-y-8",children:[r&&i.jsx(Bl,{type:"affiliate"}),i.jsxs("section",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"p-5 bg-white border-2 border-blue-200 rounded-xl",children:[i.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[i.jsx("div",{className:`w-10 h-10 ${a.logoColor||"bg-blue-600"} rounded-xl flex items-center justify-center text-white font-bold`,children:a.logoLetter||a.name[0]}),i.jsxs("div",{children:[i.jsx("h2",{className:"font-bold text-gray-900",children:a.name}),i.jsx("p",{className:"text-xs text-gray-500",children:a.tagline})]})]}),i.jsx("p",{className:"text-sm text-gray-600 mb-3",children:t.bestForA}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(j,{to:`/tools/${a.slug}`,className:"text-xs text-blue-600 hover:underline",children:"View review"}),i.jsx("span",{className:"text-gray-300",children:"·"}),i.jsxs("a",{href:a.trackingUrl||a.officialUrl,target:"_blank",rel:"noopener noreferrer",className:"text-xs text-blue-600 hover:underline flex items-center gap-0.5",children:["Visit ",i.jsx(ke,{className:"w-3 h-3"})]})]})]}),i.jsxs("div",{className:"p-5 bg-white border-2 border-gray-200 rounded-xl",children:[i.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[i.jsx("div",{className:`w-10 h-10 ${n.logoColor||"bg-gray-600"} rounded-xl flex items-center justify-center text-white font-bold`,children:n.logoLetter||n.name[0]}),i.jsxs("div",{children:[i.jsx("h2",{className:"font-bold text-gray-900",children:n.name}),i.jsx("p",{className:"text-xs text-gray-500",children:n.tagline})]})]}),i.jsx("p",{className:"text-sm text-gray-600 mb-3",children:t.bestForB}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(j,{to:`/tools/${n.slug}`,className:"text-xs text-blue-600 hover:underline",children:"View review"}),i.jsx("span",{className:"text-gray-300",children:"·"}),i.jsxs("a",{href:n.trackingUrl||n.officialUrl,target:"_blank",rel:"noopener noreferrer",className:"text-xs text-blue-600 hover:underline flex items-center gap-0.5",children:["Visit ",i.jsx(ke,{className:"w-3 h-3"})]})]})]})]}),i.jsxs("section",{children:[i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mb-3",children:"Introduction"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:t.intro})]}),i.jsxs("section",{children:[i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mb-4",children:"Feature Comparison"}),i.jsx("div",{className:"border border-gray-200 rounded-xl overflow-hidden",children:i.jsx(tv,{comparison:t})})]}),i.jsxs("section",{className:"p-6 bg-amber-50 border border-amber-200 rounded-xl",children:[i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mb-3",children:"Editorial Verdict"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:t.verdict})]}),i.jsxs("section",{children:[i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mb-4",children:"Who Should Use Each Tool?"}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"p-4 bg-blue-50 border border-blue-100 rounded-xl",children:[i.jsxs("h3",{className:"font-semibold text-blue-900 mb-2",children:["Choose ",a.name," if..."]}),i.jsx("p",{className:"text-sm text-gray-700",children:t.bestForA})]}),i.jsxs("div",{className:"p-4 bg-gray-50 border border-gray-200 rounded-xl",children:[i.jsxs("h3",{className:"font-semibold text-gray-900 mb-2",children:["Choose ",n.name," if..."]}),i.jsx("p",{className:"text-sm text-gray-700",children:t.bestForB})]})]})]}),i.jsxs("section",{children:[i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mb-4",children:"Also Consider These Alternatives"}),i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:s.map(l=>i.jsx(bt,{tool:l,size:"sm"},l.id))})]}),i.jsx(mn,{faqs:t.faq,title:`${a.name} vs ${n.name} — Common Questions`}),i.jsxs("div",{className:"flex flex-wrap gap-3 pt-4 border-t border-gray-200",children:[i.jsxs("a",{href:a.trackingUrl||a.officialUrl,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-2 px-5 py-3 text-sm font-medium text-white bg-blue-600 rounded-xl hover:bg-blue-700",children:["Visit ",a.name," ",i.jsx(ke,{className:"w-4 h-4"})]}),i.jsxs("a",{href:n.trackingUrl||n.officialUrl,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-2 px-5 py-3 text-sm font-medium text-gray-700 border border-gray-200 rounded-xl hover:bg-gray-50",children:["Visit ",n.name," ",i.jsx(ke,{className:"w-4 h-4"})]})]})]}),i.jsx("aside",{className:"space-y-6",children:i.jsxs("div",{className:"bg-white border border-gray-200 rounded-xl p-5 sticky top-24",children:[i.jsx("h3",{className:"font-semibold text-gray-900 mb-4",children:"Qu
359ick Verdict"}),i.jsxs("div",{className:"space-y-3 text-sm",children:[i.jsxs("div",{className:"p-3 bg-blue-50 rounded-lg",children:[i.jsxs("p",{className:"font-medium text-blue-900",children:[a.name," wins for:"]}),i.jsx("p",{className:"text-gray-600 mt-1 text-xs",children:t.bestForA.slice(0,80)})]}),i.jsxs("div",{className:"p-3 bg-gray-50 rounded-lg",children:[i.jsxs("p",{className:"font-medium text-gray-900",children:[n.name," wins for:"]}),i.jsx("p",{className:"text-gray-600 mt-1 text-xs",children:t.bestForB.slice(0,80)})]})]}),o.length>0&&i.jsxs("div",{className:"mt-5",children:[i.jsx("h4",{className:"text-xs font-semibold text-gray-500 uppercase tracking-wide mb-3",children:"Related Comparisons"}),i.jsx("div",{className:"space-y-2",children:o.map(l=>i.jsxs(j,{to:`/compare/${l.slug}`,className:"flex items-center justify-between text-sm text-gray-700 hover:text-blue-600 p-2 rounded hover:bg-gray-50",children:[i.jsx("span",{className:"line-clamp-1",children:l.title.split(":")[0]}),i.jsx(Me,{className:"w-3.5 h-3.5 flex-shrink-0 ml-2"})]},l.slug))})]}),i.jsx(j,{to:"/comparisons",className:"block mt-4 text-center py-2 text-sm text-blue-600 border border-blue-200 rounded-lg hover:bg-blue-50",children:"All Comparisons"})]})})]})})]})}function iv(){const{slug:e}=ci(),t=e?Xt(e):void 0;if(!t)return i.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-16 text-center",children:[i.jsx("h1",{className:"text-2xl font-bold text-gray-900 mb-4",children:"Tool Not Found"}),i.jsx(j,{to:"/categories",className:"text-blue-600 hover:underline",children:"Browse all categories"})]});const a=t.alternatives.map(l=>He.find(c=>c.slug===l)).filter(Boolean),n=He.filter(l=>l.slug!==t.slug&&!t.alternatives.includes(l.slug)&&l.categories.some(c=>t.categories.includes(c))).slice(0,6),r=[...a,...n.slice(0,4-a.length)],o=t.monetizationType==="affiliate"||t.monetizationType==="referral",s=[{question:`What is the best alternative to ${t.name}?`,answer:`The best alternative depends on your specific needs. ${a[0]?`${a[0].name} is a strong option if you want ${a[0].bestFor.toLowerCase()}. `:""}We recommend reviewing the alternatives below and comparing features, pricing, and use cases before making a decision.`},{question:`Why would I look for a ${t.name} alternative?`,answer:`Users look for ${t.name} alternatives for various reasons: pricing considerations, specific feature requirements, platform compatibility, or simply wanting to evaluate competitive options. This page covers the most viable alternatives with honest editorial analysis.`},{question:`Are there free alternatives to ${t.name}?`,answer:`Some alternatives to ${t.name} offer free tiers or are completely free. Check the pricing model listed for each alternative below, and visit their official websites for current pricing details.`},{question:`How do these alternatives compare to ${t.name}?`,answer:`Each alternative has different strengths and weaknesses compared to ${t.name}. We recommend reading the full review for each tool and checking our comparison pages for detailed side-by-side analysis.`}];return i.jsxs(i.Fragment,{children:[i.jsx(Q,{title:`Best ${t.name} Alternatives in 2026 — Compared & Reviewed`,description:`Looking for ${t.name} alternatives? Compare the best alternatives to ${t.name} including features, pricing, and use cases to find the right fit.`,canonical:`/alternatives/${t.slug}`}),i.jsx("div",{className:"bg-gray-50 border-b border-gray-200",children:i.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[i.jsx(se,{crumbs:[{label:"Tools",to:"/categories"},{label:t.name,to:`/tools/${t.slug}`},{label:"Alternatives"}]}),i.jsxs("h1",{className:"text-2xl md:text-3xl font-bold text-gray-900 mt-4 mb-2",children:["Best ",t.name," Alternatives in 2026"]}),i.jsxs("p",{className:"text-gray-600 max-w-2xl",children:["If ",t.name," is not quite the right fit for your needs, here are the best alternatives — each with independent editorial reviews and honest comparisons."]})]})}),i.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8 space-y-8",children:[o&&i.jsx(Bl,{type:t.monetizationType}),i.jsxs("section",{children:[i.jsxs("div",{className:"p-5 bg-blue-50 border border-blue-100 rounded-xl mb-6",children:[i.jsxs("h2",{className:"font-semibold text-gray-900 mb-2",children:["Why look for ",t.name," alternatives?"]}),i.jsxs("p",{className:"text-sm text-gray-700 leading-relaxed",children:[t.shortDe
359scription," While ",t.name," is a strong option, ",t.cons[0].toLowerCase()," This guide covers the most compelling alternatives with honest editorial analysis to help you find the right tool for your specific needs."]})]}),i.jsxs("h2",{className:"text-xl font-semibold text-gray-900 mb-4",children:["Top Alternatives to ",t.name]}),i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4",children:r.map(l=>l&&i.jsx(bt,{tool:l,size:"lg"},l.id))})]}),n.length>0&&i.jsxs("section",{children:[i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mb-4",children:"More Tools in the Same Category"}),i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4",children:n.map(l=>i.jsx(bt,{tool:l},l.id))})]}),i.jsx(mn,{faqs:s,title:`${t.name} Alternatives — Common Questions`}),i.jsxs("div",{className:"flex gap-3",children:[i.jsxs(j,{to:`/tools/${t.slug}`,className:"px-5 py-3 text-sm font-medium text-blue-600 border border-blue-200 rounded-xl hover:bg-blue-50",children:["Back to ",t.name," Review"]}),t.comparisonSlugs[0]&&i.jsxs(j,{to:`/compare/${t.comparisonSlugs[0]}`,className:"px-5 py-3 text-sm font-medium text-gray-700 border border-gray-200 rounded-xl hover:bg-gray-50",children:["Compare ",t.name," Side by Side"]})]})]})]})}function nv(){const e=Ip(),t=zl;return i.jsxs(i.Fragment,{children:[i.jsx(Q,{title:"Blog — AI Tool Reviews, Comparisons & Guides | Como AI",description:"In-depth AI tool reviews, comparison guides, and practical advice for choosing the right AI software. Written by the Como AI editorial team.",canonical:"/blog"}),i.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[i.jsx(se,{crumbs:[{label:"Blog"}]}),i.jsxs("div",{className:"mt-6 mb-10",children:[i.jsx("h1",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-3",children:"AI Tools Blog"}),i.jsx("p",{className:"text-lg text-gray-600 max-w-2xl",children:"In-depth reviews, comparison guides, and editorial analysis of the AI tools market. Updated regularly by our independent editorial team."})]}),e.length>0&&i.jsxs("section",{className:"mb-12",children:[i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mb-5",children:"Featured Articles"}),i.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-5",children:e.slice(0,2).map(a=>i.jsx(Ps,{post:a},a.id))})]}),i.jsxs("section",{className:"mb-12",children:[i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mb-5",children:"All Articles"}),i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-5",children:t.map(a=>i.jsx(Ps,{post:a},a.id))})]}),i.jsx(Yr,{})]})]})}function rv(){const{slug:e}=ci(),t=e?Sd(e):void 0;if(!t)return i.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-16 text-center",children:[i.jsx("h1",{className:"text-2xl font-bold text-gray-900 mb-4",children:"Article Not Found"}),i.jsx(j,{to:"/blog",className:"text-blue-600 hover:underline",children:"Browse all articles"})]});const a=t.relatedTools.map(s=>Xt(s)).filter(Boolean),n=t.relatedPosts.map(s=>Sd(s)).filter(Boolean),r={"@context":"https://schema.org","@type":"Article",headline:t.title,description:t.excerpt,author:{"@type":"Organization",name:"Como AI"},publisher:{"@type":"Organization",name:"Como AI",url:"https://como.ai"},datePublished:t.publishedAt,dateModified:t.updatedAt,mainEntityOfPage:`https://como.ai/blog/${t.slug}`},o=()=>i.jsxs("div",{className:"prose prose-gray max-w-none prose-headings:font-bold prose-h2:text-xl prose-h3:text-lg prose-p:text-gray-700 prose-p:leading-relaxed prose-li:text-gray-700",children:[i.jsx("p",{className:"text-lg text-gray-700 leading-relaxed font-medium",children:t.excerpt}),i.jsx("h2",{children:"Overview"}),i.jsxs("p",{children:["The AI tools market is evolving rapidly, with new platforms launching and existing tools adding major capabilities every few months. This guide reflects the state of the market as of our last update in ",new Date(t.updatedAt).toLocaleDateString("en-US",{month:"long",year:"numeric"}),"."]}),a.length>0&&i.jsxs(i.Fragment,{children:[i.jsx("h2",{children:"Tools Covered in This Guide"}),i.jsxs("p",{children:["We evaluated ",a.length," tools for this guide, focusing on real-world use cases, pricing, ease of use, and overall value. Our editorial team has tested each tool hands-on."]})]}),i.jsx("h2",{children:"How We Evaluated Tools"}),i.jsx("p",{children:"Our editorial team follows a consistent review methodology across all tool categories. We evaluate each tool based on:"}),i.jsxs("ul",{children:[i.jsx("li",{children:"Core feature quality and depth relative to stated use cases"}),i.jsx("li",{children:"Ease of use and learning curve for the target audience"}),i.jsx("li",{children:"Pricing value relative to competitive alternatives"}),i.jsx("li",{children:"Quality of documentation and customer support"}),i.jsx("li",{children:"Platform stability and development trajectory"})]}),i.jsx("h2",{children:"Key Findings"}),i.jsx("p",{children:"After thorough evaluation, we found significant variation in capabilities across tools in this category. The best tools are not always the most marketed — several strong options are underrated 
359while some highly-promoted platforms have meaningful limitations worth considering."}),i.jsx("h2",{children:"Recommendations"}),i.jsx("p",{children:'The "best" tool in any category depends heavily on your specific use case, technical background, and budget. We have structured our recommendations to account for different user profiles and needs.'}),i.jsx("p",{children:"For detailed reviews of each tool mentioned, click through to the individual tool pages. For direct comparisons, see our comparison pages linked below."}),i.jsx("h2",{children:"Conclusion"}),i.jsx("p",{children:'The tools in this guide represent the current state of the art in their categories. Given the pace of development in the AI tools market, we update our recommendations regularly. Check the "last updated" date at the top of this article and bookmark it to revisit as the market evolves.'}),i.jsx("p",{children:"If you think we missed a tool or have information that would update our recommendations, use the contact form to reach our editorial team."})]});return i.jsxs(i.Fragment,{children:[i.jsx(Q,{title:t.seoTitle,description:t.seoDescription,canonical:`/blog/${t.slug}`,type:"article"}),i.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(r)}}),i.jsx("div",{className:"bg-gray-50 border-b border-gray-200",children:i.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[i.jsx(se,{crumbs:[{label:"Blog",to:"/blog"},{label:t.title}]}),i.jsxs("div",{className:"mt-4 max-w-3xl",children:[i.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[i.jsx("span",{className:"px-2 py-0.5 text-xs bg-blue-100 text-blue-700 rounded-full font-medium capitalize",children:t.category.replace("ai-","AI ").replace(/-/g," ")}),i.jsxs("span",{className:"flex items-center gap-1 text-xs text-gray-500",children:[i.jsx(Dl,{className:"w-3.5 h-3.5"})," ",t.readingTime," min read"]})]}),i.jsx("h1",{className:"text-2xl md:text-3xl font-bold text-gray-900 mb-3",children:t.title}),i.jsxs("div",{className:"flex items-center gap-4 text-sm text-gray-500",children:[i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx(en,{className:"w-4 h-4"}),"Published ",new Date(t.publishedAt).toLocaleDateString("en-US",{month:"long",day:"numeric",year:"numeric"})]}),t.updatedAt!==t.publishedAt&&i.jsxs("span",{children:["Updated ",new Date(t.updatedAt).toLocaleDateString("en-US",{month:"long",year:"numeric"})]}),i.jsx("span",{children:t.author})]})]})]})}),i.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:i.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-8",children:[i.jsxs("div",{className:"lg:col-span-2",children:[o(),i.jsx(xa,{slot:"leaderboard",className:"my-8 rounded-xl overflow-hidden"}),a.length>0&&i.jsxs("section",{className:"mt-10",children:[i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mb-4",children:"Tools Mentioned in This Guide"}),i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:a.map(s=>s&&i.jsx(bt,{tool:s},s.id))})]}),i.jsx("div",{className:"mt-10",children:i.jsx(Yr,{variant:"inline"})})]}),i.jsxs("aside",{className:"space-y-6",children:[i.jsx(xa,{slot:"rectangle"}),i.jsxs("div",{className:"bg-white border border-gray-200 rounded-xl p-5 sticky top-24",children:[i.jsx("h3",{className:"font-semibold text-gray-900 mb-3",children:"In This Guide"}),i.jsx("nav",{className:"space-y-1.5 text-sm",children:["Overview","Tools Covered","How We Evaluated","Key Findings","Recommendations","Conclusion"].map(s=>i.jsx("a",{href:"#",className:"block py-1 text-gray-600 hover:text-blue-600",children:s},s))}),n.length>0&&i.jsxs("div",{className:"mt-5 pt-5 border-t border-gray-100",children:[i.jsx("h4",{className:"text-xs font-semibold text-gray-500 uppercase tracking-wide mb-3",children:"Related Articles"}),i.jsx("div",{className:"space-y-3",children:n.map(s=>s&&i.jsxs(j,{to:`/blog/${s.slug}`,className:"flex items-start gap-2 text-sm text-gray-700 hover:text-blue-600",children:[i.jsx(Me,{className:"w-4 h-4 flex-shrink-0 mt-0.5"}),i.jsx("span",{className:"line-clamp-2",children:s.title})]},s.id))})]}),i.jsxs(j,{to:"/blog",className:"flex items-center gap-1 mt-4 text-sm text-blue-600 hover:underline",children:[i.jsx(zy,{className:"w-4 h-4"})," All articles"]})]})]})]})})]})}function ov(){const[e,t]=Py(),[a,n]=v.useState({search:e.get("q")||""});v.useEffect(()=>{const l=e.get("q");l&&n(c=>({...c,search:l}))},[e]);const r=l=>{n(l),l.search!==void 0&&t(l.search?{q:l.search}:{})},o=Ap(a),s=a.search||e.get("q")||"";return i.jsxs(i.Fragment,{children:[i.jsx(Q,{title:s?`Search results for "${s}" — Como AI`:"Search AI Tools — Como AI",description:s?`Find AI tools matching "${s}". Browse our editorial directory of AI tools with independent reviews and comparisons.`:"Search our AI tools directory. Find tools by name, category, features, or use case.",canonical:"/search",noIndex:!s}),i.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[i.jsxs("div",{className:"mb-6",children:[i.jsx("h1",{className:"text-2xl font-bold text-gray-900 mb-2",children:s?`Results for "${s}"`:"Search AI Tools"}),i.jsxs("p",{className:"text-gray-500 text-sm",children:[o.length," tool",o.length!==1?"s":""," found"]}
359)]}),i.jsx("div",{className:"mb-6",children:i.jsx(jp,{filters:a,onChange:r,showPlatform:!0})}),o.length===0?i.jsxs("div",{className:"text-center py-16",children:[i.jsx("div",{className:"w-14 h-14 bg-gray-100 rounded-full flex items-center justify-center mx-auto mb-4",children:i.jsx(ai,{className:"w-7 h-7 text-gray-400"})}),i.jsx("h2",{className:"text-lg font-semibold text-gray-900 mb-2",children:"No tools found"}),i.jsx("p",{className:"text-gray-500 mb-4",children:"Try different keywords or browse by category."}),i.jsx("button",{onClick:()=>r({}),className:"text-blue-600 hover:underline text-sm",children:"Clear all filters"})]}):i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4",children:o.map(l=>i.jsx(bt,{tool:l},l.id))})]})]})}const sv=[{id:"developers",slug:"developers",title:"Best AI Tools for Developers in 2026",description:"The essential AI toolkit for software developers — from IDE integrations to full-stack app builders.",audience:"Software developers and engineers",tools:["cursor","github-copilot","chatgpt","claude","bolt","replit"],intro:"AI tools have become essential in professional software development. The right combination can dramatically accelerate your coding workflow, help you understand unfamiliar codebases faster, generate tests, write documentation, and handle boilerplate — freeing you to focus on the work that requires genuine engineering judgment.",faq:[{question:"What is the best AI tool for professional developers?",answer:"Cursor is widely regarded as the most powerful AI coding tool for professional developers thanks to its deep codebase context. GitHub Copilot is the most widely adopted for IDE integration. ChatGPT and Claude are invaluable as general-purpose AI assistants for research, debugging, and documentation."},{question:"Should developers worry about AI replacing their jobs?",answer:"AI tools are dramatically increasing developer productivity, but software engineering requires problem-solving, architecture decisions, and domain understanding that AI currently cannot fully replicate. The developers most at risk are those who do not adopt AI tools — those who do are outcompeting those who do not."},{question:"Are AI-generated code and tests reliable?",answer:"AI-generated code requires review and testing before production use. The best approach treats AI as a pair programmer that drafts solutions for you to review and improve, not an autonomous agent. Code quality from modern tools is often surprisingly good but should always be verified."},{question:"Which AI tool is best for debugging?",answer:"Cursor and Claude are both excellent for debugging. Cursor's codebase context makes it particularly helpful for understanding complex bugs in large codebases. Claude's thoughtful reasoning is valuable for stepping through difficult logical problems."}]},{id:"marketers",slug:"marketers",title:"Best AI Tools for Marketers in 2026",description:"AI tools that help marketing teams create more content, run better campaigns, and achieve greater results with less effort.",audience:"Marketing professionals and teams",tools:["jasper","copy-ai","chatgpt","claude","gamma","midjourney"],intro:"Marketing is one of the fields most transformed by AI. From content generation to campaign ideation, audience research, ad copy testing, and visual asset creation, AI tools are enabling marketing teams to produce more — and often better — output in significantly less time. These are the tools that leading marketing teams are actually using.",faq:[{question:"Which AI tools are most useful for marketing teams?",answer:"Jasper and Copy.ai are purpose-built for marketing content production with brand voice controls. ChatGPT and Claude are excellent for strategy, ideation, and general content. Midjourney and Leonardo AI produce marketing visual assets. Gamma accelerates presentation creation."},{question:"Can AI tools replace a marketing team?",answer:"AI significantly accelerates marketing team output but does not replace the strategic thinking, market understanding, audience empathy, and creative direction that effective marketers provide. The best outcomes come from marketers who use AI as a force multiplier."},{question:"How do AI tools help with SEO content?",answer:"AI tools accelerate keyword research analysis, c
359ontent brief creation, first-draft generation, and optimization for specific search intents. Tools like Jasper integrate with SEO platforms like Surfer SEO directly. General-purpose AI assistants are also effective when given good briefs."},{question:"Are AI-generated marketing campaigns effective?",answer:"AI-generated marketing assets — copy, visuals, emails — can be highly effective when properly directed and refined by experienced marketers. The AI handles volume and variation; the marketer handles strategy and judgment. A/B testing AI-generated variants is a particularly powerful combination."}]},{id:"founders",slug:"founders",title:"Best AI Tools for Founders in 2026",description:"The AI toolkit for startup founders — from building your first product to marketing, fundraising, and operations.",audience:"Startup founders and entrepreneurs",tools:["emergent","lovable","chatgpt","claude","perplexity","gamma","notion-ai"],intro:"Founders today have access to AI capabilities that effectively give them a virtual team. The right AI tools can help a solo founder or small team move at the speed of a much larger company — building products, writing content, conducting research, creating presentations, and handling the endless operational tasks of running a startup.",faq:[{question:"What AI tools should every founder know?",answer:"ChatGPT or Claude for general research and writing, Emergent or Lovable for building products, Perplexity for research with citations, Gamma for pitch decks and presentations, and Notion AI for organizing information and notes."},{question:"Can AI build my startup's product?",answer:"For many web-based products, AI app builders like Emergent and Lovable can build functional MVPs that are suitable for early customer validation. Complex, high-scale products will still require engineering investment, but AI dramatically lowers the cost of validation."},{question:"How can AI help with fundraising?",answer:"AI tools help with investor research, pitch deck creation (Gamma), financial model explanation, investor update writing, and due diligence document preparation. Claude is particularly useful for crafting thoughtful investor narratives."},{question:"Which AI tool is best for competitive research?",answer:"Perplexity is excellent for quickly gathering competitive intelligence with cited sources. NotebookLM is powerful for analyzing uploaded competitor content. Claude and ChatGPT are useful for synthesis and strategic analysis once you have gathered the raw information."}]},{id:"students",slug:"students",title:"Best AI Tools for Students in 2026",description:"AI tools that help students learn more effectively, research more thoroughly, and produce better academic work.",audience:"Students at all levels",tools:["notebooklm","chatgpt","claude","perplexity","notion-ai"],intro:"Students have more AI assistance available today than any generation before them. From AI-powered research tools that help understand complex topics to writing assistants that improve essay quality, these tools can genuinely accelerate learning when used thoughtfully and ethically.",faq:[{question:"Is using AI tools cheating in school?",answer:"Policies vary by institution and assignment. The ethical use of AI for learning — to understand concepts, get feedback on drafts, or explore topics — is different from submitting AI-generated work as your own. Always follow your institution's academic integrity policies and focus on using AI as a learning tool rather than a shortcut."},{question:"Which AI tool is best for research papers?",answer:"NotebookLM is excellent for analyzing uploaded academic papers and generating study materials. Perplexity provides cited answers for factual research. Claude is highly effective for discussing complex topics and getting feedback on writing."},{question:"Can AI help with math and science?",answer:"Yes. ChatGPT and Claude can explain mathematical concepts, work through problems step by step, and help debug scientific analysis. Wolfram Alpha remains excellent for precise mathematical computation. Many students use AI tutoring as a supplement to traditional instruction."},{question:"Are there free AI tools for students?",answer:"Several excellent AI tools have generous free tiers suitable for students. NotebookLM is free. ChatGPT, Claude, Gemini, and Perplexity all have free tiers. Replit is free for learning to code. Most students can access substantial AI capabilities without paying."}]},{id:"agencies",slug:"agencies",title:"Best AI Tools for Agencies in 2026",description:"AI tools that help creative and digital agencies deliver more for clients, faster and more profitably.",audience:"Creative agencies, digital agencies, and consultants",tools:["webflow","framer","jasper","midjourney","synthesia","cursor"],intro:"Agencies that have integrated AI into their workflows are delivering faster, often at higher quality, while maintaining or improving margins. Whether you run a web design agency, content marketing firm, video production house, or software development shop, the right AI tools can transform your capacity.",faq:[{question:"How are agencies using AI tools in their workflows?",answer:"Agencies use AI across the full service delivery lifecycle: research and strategy (Claude, Perplexity), content production (Jasper, Copy.ai), design and visual assets (Midjourney, Framer), web development (Webflow, Cursor), video (Synthesia, Runway), and client presentations (Gamma)."},{question:"Does AI threaten agency business models?",answer:"AI creates both challenges and opportunities for agencies. It commoditizes some execution work while raising the ceiling for what skilled creative and strategic teams can produce. Agencies that adopt AI early are gaining competitive advantages through faster delivery and new service offerings."},{question:"Which AI tools are most important for web design agencies?",answer:"Webflow and Framer are essential for production. Cursor or GitHub Copilot for any development work. Midjourney for visual ideation and concept imagery. Claude or ChatGPT for copywriting and content strategy."},{question:"Can agencies use AI to take on more clients?",answer:"Yes. AI tools allow agencies to increase their output capacity without proportional headcount increases. Content agencies using AI writing tools, video agencies using Synthesia or HeyGen, and web agencies using AI-assisted Webflow or Framer are all seeing increased throughput."}]},{id:"writers",slug:"writers",title:"Best AI Tools for Writers in 2026",description:"AI tools that help writers research, draft, edit, and publish more effectively — without losing their voice.",audience:"Professional writers, bloggers, content creators, and authors",tools:["claude","chatgpt","jasper","notion-ai","perplexity"],intro:"AI tools have created new possibilities for professional writers — and genuine anxieties. The writers who are thriving with AI are those who use it as a productivity accelerator while maintaining their unique voice and perspective. From research to first drafts to editing, these are the tools that genuinely help.",faq:[{question:"Can AI tools write as well as professional writers?",answer:"AI tools produce serviceable to good first drafts across many content types, but they lack the lived experience, original insight, and unique voice that distinguish great writing. The best results come from skilled writers using AI to accelerate their workflow, not replace their judgment."},{question:"Which AI is best for long-form writing?",answer:"Claude is widely preferred for long-form content due to its writing quality and 200K context window. ChatGPT is also strong. Notion AI works well within Notion documents. The choice depends on your preferred workflow."},{question:"Will AI replace freelance writers?",answer:"AI is disrupting some categories of commodity content writing. However, writers who produce original research, have distinctive voices, cover complex specialized topics, or build genuine audience relationships are far less threatened. The market for excellent writing remains strong."},{question:"How can I use AI without losing my writing voice?",answer:"Use AI for outlines, research synthesis, and first-draft sections, then thoroughly rewrite in y
359our voice. Provide extensive examples of your existing writing to guide AI toward your style. Always treat AI output as material to work with, not final content to publish."}]}],lv=e=>sv.find(t=>t.slug===e);function cv(){const{slug:e}=ci(),t=e?lv(e):void 0;if(!t)return i.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-16 text-center",children:[i.jsx("h1",{className:"text-2xl font-bold text-gray-900 mb-4",children:"Page Not Found"}),i.jsx(j,{to:"/categories",className:"text-blue-600 hover:underline",children:"Browse all categories"})]});const a=t.tools.map(n=>Xt(n)).filter(Boolean);return i.jsxs(i.Fragment,{children:[i.jsx(Q,{title:`${t.title} | Como AI`,description:`${t.description} Our editorial team has reviewed and ranked the best options for ${t.audience.toLowerCase()}.`,canonical:`/best-for/${t.slug}`}),i.jsx("div",{className:"bg-gray-50 border-b border-gray-200",children:i.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6",children:[i.jsx(se,{crumbs:[{label:"Best For"},{label:t.audience}]}),i.jsx("h1",{className:"text-2xl md:text-3xl font-bold text-gray-900 mt-4 mb-2",children:t.title}),i.jsx("p",{className:"text-gray-600 max-w-2xl",children:t.description})]})}),i.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8 space-y-10",children:[i.jsxs("section",{children:[i.jsx("div",{className:"p-5 bg-blue-50 border border-blue-100 rounded-xl mb-6",children:i.jsx("p",{className:"text-gray-700 leading-relaxed",children:t.intro})}),i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-5",children:a.map(n=>n&&i.jsx(bt,{tool:n,size:"lg"},n.id))})]}),i.jsx(mn,{faqs:t.faq}),i.jsxs("div",{className:"bg-gray-50 rounded-xl p-6",children:[i.jsx("h2",{className:"text-lg font-semibold text-gray-900 mb-3",children:"Explore More"}),i.jsx("div",{className:"flex flex-wrap gap-3",children:["AI App Builders","AI Chatbots","AI Writing Tools","AI Coding Tools","AI Image Generation"].map(n=>i.jsx(j,{to:`/categories/${n.toLowerCase().replace(/\s+/g,"-").replace("ai-","ai-")}`,className:"px-3 py-2 text-sm bg-white border border-gray-200 rounded-lg hover:border-blue-300 hover:text-blue-600 text-gray-700 transition-colors",children:n},n))})]}),i.jsx(Yr,{variant:"inline"})]})]})}function dv(){const[e,t]=v.useState({name:"",email:"",subject:"",message:""}),[a,n]=v.useState(!1),r=o=>{o.preventDefault(),n(!0)};return i.jsxs(i.Fragment,{children:[i.jsx(Q,{title:"Contact — Como AI",description:"Contact the Como AI editorial team. Reach out for editorial inquiries, partnership opportunities, corrections, or general questions.",canonical:"/contact"}),i.jsxs("div",{className:"max-w-5xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[i.jsx(se,{crumbs:[{label:"Contact"}]}),i.jsxs("div",{className:"mt-6 mb-10",children:[i.jsx("h1",{className:"text-3xl font-bold text-gray-900 mb-3",children:"Contact Us"}),i.jsx("p",{className:"text-gray-600 max-w-2xl",children:"Reach out to our editorial team for inquiries, corrections, partnership opportunities, or general questions."})]}),i.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-8",children:[i.jsx("div",{className:"lg:col-span-2",children:a?i.jsxs("div",{className:"p-8 bg-green-50 border border-green-200 rounded-xl text-center",children:[i.jsx(O,{className:"w-12 h-12 text-green-500 mx-auto mb-3"}),i.jsx("h2",{className:"text-lg font-semibold text-gray-900 mb-2",children:"Message sent"}),i.jsx("p",{className:"text-gray-600 text-sm",children:"Thanks for reaching out. We will respond within 2–3 business days."})]}):i.jsxs("form",{onSubmit:r,className:"space-y-5",children:[i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Name"}),i.jsx("input",{type:"text",value:e.name,onChange:o=>t({...e,name:o.target.value}),required:!0,className:"w-full px-3 py-2.5 text-sm border border-gray-300 rounded-lg focus:outline-none focus:border-blue-500",placeholder:"Your name"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Email"}),i.jsx("input",{type:"email",value:e.email,onChange:o=>t({...e,email:o.target.value}),required:!0,className:"w-full px-3 py-2.5 text-sm border border-gray-300 rounded-lg focus:outline-none focus:border-blue-500",placeholder:"[email protected]"})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Subject"}),i.jsxs("select",{value:e.subject,onChange:o=>t({...e,subject:o.target.value}),required:!0,className:"w-full px-3 py-2.5 text-sm border border-gray-300 rounded-lg focus:outline-none focus:border-blue-500 bg-white",children:[i.jsx("option",{value:"",children:"Select a subject"}),i.jsx("option",{value:"editorial",children:"Editorial inquiry"}),i.jsx("option",{value:"correction",children:"Report outdated or incorrect info"}),i.jsx("option",{value:"partnership",children:"Partnership or advertising"}),i.jsx("option",{value:"claim",children:"Claim a listing"}),i.jsx("option",{value:"submit",children:"Submit a new tool"}),i.jsx("option",{value:"other",children:"Other"})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Message"}),i.jsx("textarea",{value:e.message,onChange:o=>t({...e,message:o.target.value}),required:!0,rows:5,className:"w-full px-3 py-2.5 text-sm border border-gray-300 rounded-lg focus:outline-none focus:border-blue-500 resize-none",placeholder:"Tell us what you need..."})]}),i.jsx("button",{type:"submit",className:"w-full sm:w-auto px-8 py-3 text-sm font-semibold text-white bg-blue-600 rounded-xl hover:bg-blue-700 transition-colors",children:"Send Message"})]})}),i.jsxs("aside",{className:"space-y-4",children:[[{icon:_r,title:"General inquiries",email:"[email protected]"},{icon:Gy,title:"Partnership & advertising",email:"[email protected]"},{icon:tw,title:"Editorial team",email:"[email protected]"},{icon:op,title:"Corrections & outdated info",email:"[email protected]"}].map(({icon:o,title:s,email:l})=>i.jsxs("div",{className:"p-4 bg-gray-50 border border-gray-200 rounded-xl",children:[i.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[i.jsx(o,{className:"w-4 h-4 text-blue-600"}),i.jsx("span",{className:"font-medium text-gray-900 text-sm",children:s})]}),i.jsx("a",{href:`mailto:${l}`,className:"text-blue-600 hover:underline text-sm",children:l})]},l)),i.jsxs("div",{className:"p-4 bg-blue-50 border border-blue-100 rounded-xl text-sm",children:[i.jsx("p",{className:"font-medium text-gray-900 mb-1",children:"Response time"}),i.jsx("p",{className:"text-gray-600 text-xs",children:"We typically respond within 2–3 business days. Partnership inquiries may take longer."})]})]})]})]})]})}function uv(){const[e,t]=v.useState({toolName:"",officialUrl:"",category:"",description:"",pricingModel:"",contactEmail:"",n
359otes:""}),[a,n]=v.useState(!1),r=o=>{o.preventDefault(),n(!0)};return i.jsxs(i.Fragment,{children:[i.jsx(Q,{title:"Submit a Tool — Como AI",description:"Submit your AI tool to be considered for review and listing in the Como AI directory.",canonical:"/submit-a-tool"}),i.jsxs("div",{className:"max-w-5xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[i.jsx(se,{crumbs:[{label:"Submit a Tool"}]}),i.jsxs("div",{className:"mt-6 mb-10",children:[i.jsx("h1",{className:"text-3xl font-bold text-gray-900 mb-3",children:"Submit a Tool for Review"}),i.jsx("p",{className:"text-gray-600 max-w-2xl",children:"If your AI tool is not listed in our directory, submit it for consideration. We review all submissions and prioritize tools based on market relevance and editorial interest."})]}),i.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-8",children:[i.jsx("div",{className:"lg:col-span-2",children:a?i.jsxs("div",{className:"p-8 bg-green-50 border border-green-200 rounded-xl text-center",children:[i.jsx(O,{className:"w-12 h-12 text-green-500 mx-auto mb-3"}),i.jsx("h2",{className:"text-lg font-semibold text-gray-900 mb-2",children:"Submission received"}),i.jsx("p",{className:"text-gray-600 text-sm max-w-sm mx-auto",children:"Thank you for submitting your tool. Our editorial team will review it and be in touch if we decide to proceed with coverage."})]}):i.jsxs("form",{onSubmit:r,className:"space-y-5",children:[i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Tool Name *"}),i.jsx("input",{type:"text",required:!0,value:e.toolName,onChange:o=>t({...e,toolName:o.target.value}),className:"w-full px-3 py-2.5 text-sm border border-gray-300 rounded-lg focus:outline-none focus:border-blue-500",placeholder:"e.g., YourTool AI"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Official URL *"}),i.jsx("input",{type:"url",required:!0,value:e.officialUrl,onChange:o=>t({...e,officialUrl:o.target.value}),className:"w-full px-3 py-2.5 text-sm border border-gray-300 rounded-lg focus:outline-none focus:border-blue-500",placeholder:"https://yourtool.ai"})]})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Primary Category *"}),i.jsxs("select",{required:!0,value:e.category,onChange:o=>t({...e,category:o.target.value}),className:"w-full px-3 py-2.5 text-sm border border-gray-300 rounded-lg focus:outline-none focus:border-blue-500 bg-white",children:[i.jsx("option",{value:"",children:"Select a category"}),i.jsx("option",{children:"AI Chatbots"}),i.jsx("option",{children:"AI Writing"}),i.jsx("option",{children:"AI Coding Tools"}),i.jsx("option",{children:"AI App Builders"}),i.jsx("option",{children:"AI Website Builders"}),i.jsx("option",{children:"AI Image Generation"}),i.jsx("option",{children:"AI Video Generation"}),i.jsx("option",{children:"AI Audio & Voice"}),i.jsx("option",{children:"AI Music"}),i.jsx("option",{children:"AI Productivity"}),i.jsx("option",{children:"AI Research"}),i.jsx("option",{children:"AI Design"}),i.jsx("option",{children:"AI Marketing"}),i.jsx("option",{children:"AI SEO"}),i.jsx("option",{children:"Other"})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Pricing Model *"}),i.jsxs("select",{required:!0,value:e.pricingModel,onChange:o=>t({...e,pricingModel:o.target.value}),className:"w-full px-3 py-2.5 text-sm border border-gray-300 rounded-lg focus:outline-none focus:border-blue-500 bg-white",children:[i.jsx("option",{value:"",children:"Select pricing model"}),i.jsx("option",{children:"Free"}),i.jsx("option",{children:"Freemium"}),i.jsx("option",{children:"Paid subscription"}),i.jsx("option",{children:"Enterprise / custom pricing"})]})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Tool Description *"}),i.jsx("textarea",{required:!0,rows:4,value:e.description,onChange:o=>t({...e,description:o.target.value}),className:"w-full px-3 py-2.5 text-sm border border-gray-300 rounded-lg focus:outline-none focus:border-blue-500 resize-none",placeholder:"Describe what your tool does, who it's for, and its key differentiators (2–4 sentences)..."})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Contact Email *"}),i.jsx("input",{type:"email",required:!0,value:e.contactEmail,onChange:o=>t({...e,contactEmail:o.target.value}),className:"w-full px-3 py-2.5 text-sm border border-gray-300 rounded-lg focus:outline-none focus:border-blue-500",placeholder:"[email protected]"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Additional Notes"}),i.jsx("textarea",{rows:3,value:e.notes,onChange:o=>t({...e,notes:o.target.value}),className:"w-full px-3 py-2.5 text-sm border border-gray-300 rounded-lg focus:outline-none focus:border-blue-500 resize-none",placeholder:"Anything else you'd like our editorial team to know?"})]}),i.jsx("div",{className:"p-4 bg-gray-50 rounded-xl text-xs text-gray-500 border border-gray-200",children:"Submission does not guarantee coverage. Our editorial team will evaluate all submissions independently. We do not accept payment for editorial reviews."}),i.jsx("button",{type:"submit",className:"px-8 py-3 text-sm font-semibold text-white bg-blue-600 rounded-xl hover:bg-blue-700 transition-colors",children:"Submit for Review"})]})}),i.jsxs("aside",{className:"space-y-4",children:[i.jsxs("div",{className:"bg-blue-50 border border-blue-100 rounded-xl p-5",children:[i.jsx("h3",{className:"font-semibold text-gray-900 mb-3",children:"Submission Process"}),i.jsx("div",{className:"space-y-3",children:[{icon:O,text:"Submit your tool details"},{icon:$y,text:"Our team reviews your submission"},{icon:Dl,text:"We may request access for testing"},{icon:Ee,text:"Tool listed within 2–4 weeks if selected"}].map(({icon:o,text:s},l)=>i.jsxs("div",{className:"flex items-start gap-2 text-sm text-gray-700",children:[i.jsx(o,{className:"w-4 h-4 text-blue-600 mt-0.5 flex-shrink-0"}),s]},l))})]}),i.jsxs("div",{className:"bg-white border border-gray-200 rounded-xl p-5",children:[i.jsx("h3",{className:"font-semibold text-gray-900 mb-2",children:"Claim an existing listing"}),i.jsx("p",{className:"text-sm text-gray-500 mb-3",children:"If your tool is already listed but you want to update it, claim it instead."}),i.jsx("a",{href:"/claim-listing",className:"block text-center py-2 text-sm text-blue-600 border border-blue-200 rounded-lg hover:bg-blue-50",children:"Claim Listing →"})]})]})]})]})]})}function mv(){const[e,t]=v.useState({toolName:"",toolUrl:"",name:"",email:"",role:"",message:""}),[a,n]=v.useState(!1),r=o=>{o.preventDefault(),n(!0)};return i.jsxs(i.Fragment,{children:[i.jsx(Q,{title:"Claim Your Tool Listing — Como AI",description:"Claim your AI tool's listing on Como AI to update information, add pricing details, and get verified as the official representative.",canonical:"/claim-listing"}),i.jsxs("div",{className:"max-w-5xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[i.jsx(se,{crumbs:[{label:"Claim Listing"}]}),i.jsxs("div",{className:"mt-6 mb-10",children:[i.jsx("h1",{className:"text-3xl font-bold text-gray-900 mb-3",children:"Claim Your Tool Listing"}),i.jsx("p",{className:"text-gray-600 max-w-2xl",children:"Are you the owner or official representative of an AI tool listed in our directory? Claim your listing to keep information accurate and connect with our editorial team."})]}),i.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-8",children:[i.jsx("div",{className:"lg:col-span-2",children:a?i.jsxs("div",{className:"p-8 bg-green-50 border border-green-200 rounded-xl text-center",children:[i.jsx(O,{className:"w-12 h-12 text-green-500 mx-auto mb-3"}),i.jsx("h2",{className:"text-lg font-semibold text-gray-900 mb-2",children:"Claim request received"}),i.jsx("p",{className:"text-gray-600 text-sm",children:"We will verify your request and follow up within 3–5 business days."})]}):i.jsxs("form",{onSubmit:r,className:"space-y-5",children:[i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Tool Name *"}),i.jsx("input",{type:"text",required:!0,value:e.toolName,onChange:o=>t({...e,toolName:o.target.value}),className:"w-full px-3 py-2.5 text-sm border border-gray-300 rounded-lg focus:outline-none focus:border-blue-500"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Tool Official URL *"}),i.jsx("input",{type:"url",required:!0,value:e.toolUrl,onChange:o=>t({...e,toolUrl:o.target.value}),className:"w-full px-3 py-2.5 text-sm border border-gray-300 rounded-lg focus:outline-none focus:border-blue-500",placeholder:"https://"})]})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Your Name *"}),i.jsx("input",{type:"text",required:!0,value:e.name,onChange:o=>t({...e,name:o.target.value}),className:"w-full px-3 py-2.5 text-sm border border-gray-300 rounded-lg focus:outline-none focus:border-blue-500"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Business Email *"}),i.jsx("input",{type:"email",required:!0,value:e.email,onChange:o=>t({...e,email:o.target.value}),className:"w-full px-3 py-2.5 text-sm border border-gray-300 rounded-lg focus:outline-none focus:border-blue-500",placeholder:"[email protected]"})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Your Role *"}),i.jsxs("select",{required:!0,value:e.role,onChange:o=>t({...e,role:o.target.value}),className:"w-full px-3 py-2.5 text-sm border border-gray-300 rounded-lg focus:outline-none focus:border-blue-500 bg-white",children:[i.jsx("option",{value:"",children:"Select your role"}),i.jsx("option",{children:"Founder / CEO"}),i.jsx("option",{children:"Marketing / Growth"}),i.jsx("option",{children:"Partnerships"}),i.jsx("option",{children:"PR / Communications"}),i.jsx("option",{children:"Other official representative"})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"What information needs updating?"}),i.jsx("textarea",{rows:4,value:e.message,onChange:o=>t({...e,message:o.target.value}),className:"w-full px-3 py-2.5 text-sm border border-gray-300 rounded-lg focus:outline-none focus:border-blue-500 resize-none",placeholder:"Describe any outdated information and what the correct details are..."})]}),i.jsx("button",{type:"submit",className:"px-8 py-3 text-sm font-semibold text-white bg-blue-600 rounded-xl hover:bg-blue-700 transition-colors",children:"Submit Claim Request"})]})}),i.jsxs("aside",{className:"space-y-4",children:[i.jsxs("div",{className:"bg-blue-50 border border-blue-100 rounded-xl p-5",children:[i.jsx("h3",{className:"font-semibold text-gray-900 mb-3",children:"Benefits of Claiming"}),i.jsx("div",{className:"space-y-3",children:[{icon:dp,text:"Verified listing badge"},{icon:Is,text:"Update pricing and feature information"},{icon:sp,text:"Highlight recent product updates"},{icon:O,text:"Direct editorial contact channel"}].map(({icon:o,text:s},l)=>i.jsxs("div",{className:"flex items-start gap-2 text-sm text-gray-700",children:[i.jsx(o,{className:"w-4 h-4 text-blue-600 mt-0.5 flex-shrink-0"}),s]},l))})]}),i.jsxs("div",{className:"bg-white border border-gray-200 rounded-xl p-5 text-sm",children:[i.jsx("p",{className:"font-medium text-gray-900 mb-1",children:"Partner Program"}),i.jsx("p",{className:"text-gray-500 text-xs mb-3",children:"Interested in an affiliate or referral partnership? Contact our partnerships team."}),i.jsx("a",{href:"/partners",className:"text-blue-600 hover:underline text-xs",children:"Learn about partnership options →"})]})]})]})]})]})}const pv=[{name:"Featured Listing",price:"From $149/mo",description:'Pin your tool at the top of relevant category pages and search results with a "Featured" badge.',features:["Top placement in 1–3 categories","Featured badge on listing","Priority in search results","Monthly performance report"]},{name:"Sponsored Review",price:"From $499",description:"Our editorial team writes an in-depth, clearly-labeled sponsored review of your tool published to our audience.",features:["Full editorial-style review",'"Sponsored" label clearly displayed',"SEO-optimized publish","Permanent page on site","Social promotion included"]},{name:"Category Sponsorship",price:"From $299/mo",description:"Become the exclusive sponsor of a category page and reach users actively evaluating tools in your market.",features:['Exclusive "Sponsored by" banner',"Logo on category page","Link to your tool website","Monthly impressions report"]},{name:"Newsletter Placement",price:"From $199/issue",description:"Reach our engaged subscriber base with a dedicated or inline mention in our curated AI tools newsletter.",features:["Dedicated or inline placement","Custom copy or we write it","Link tracking provided","Audience: AI enthusiasts & builders"]}],gv=[{label:"Monthly Visitors",value:"120K+"},{label:"Tools Listed",value:"200+"},{label:"Categories",value:"24"},{label:"Newsletter Subscribers",value:"8K+"}];function fv(){const[e,t]=v.useState({company:"",name:"",email:"",budget:"",interest:"",message:""}),[a,n]=v.useState(!1),r=o=>{o.preventDefault(),n(!0)};return i.jsxs(i.Fragment,{children:[i.jsx(Q,{title:"Advertise — Como AI",description:"Reach a highly targeted audience of developers, founders, and marketers evaluating AI tools on Como AI. Explore featured listings, sponsored reviews, and newsletter placements.",canonical:"/advertise"}),i.jsxs("div",{className:"max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[i.jsx(se,{crumbs:[{label:"Advertise"}]}),i.jsxs("div",{className:"mt-6 mb-10",children:[i.jsx("h1",{className:"text-3xl font-bold text-gray-900 mb-3",children:"Advertise on Como AI"}),i.jsx("p",{className:"text-gray-600 max-w-2xl",children:"Reach decision-makers actively evaluating AI tools. Our audience includes developers, founders, marketers, and business owners who are ready to adopt new technology."})]}),i.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-4 mb-12",children:gv.map(o=>i.jsxs("div",{className:"bg-blue-50 border border-blue-100 rounded-xl p-5 text-center",children:[i.jsx("div",{className:"text-2xl font-bold text-blue-700 mb-1",children:o.value}),i.jsx("div",{className:"text-sm text-gray-600",children:o.label})]},o.label))}),i.jsxs("div",{className:"mb-12",children:[i.jsx("h2",{className:"text-xl font-bold text-gray-900 mb-6",children:"Advertising Options"}),i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-6",children:pv.map(o=>i.jsxs("div",{className:"bg-white border border-gray-200 rounded-xl p-6",children:[i.jsxs("div",{className:"flex items-start justify-between mb-3",children:[i.jsx("h3",{className:"font-semibold text-gray-900 text-lg",children:o.name}),i.jsx("span",{className:"text-sm font-medium text-blue-600 bg-blue-50 px-2.5 py-1 rounded-lg",children:o.price})]}),i.jsx("p",{className:"text-sm text-gray-600 mb-4",children:o.description}),i.jsx("ul",{className:"space-y-1.5",children:o.features.map(s=>i.jsxs("li",{className:"flex items-center gap-2 text-sm text-gray-700",children:[i.jsx(O,{className:"w-3.5 h-3.5 text-green-500 flex-shrink-0"}),s]},s))})]},o.name))})]}
359),i.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-5 gap-10 mb-12",children:[i.jsxs("div",{className:"lg:col-span-3",children:[i.jsx("h2",{className:"text-xl font-bold text-gray-900 mb-2",children:"Request a Media Kit"}),i.jsx("p",{className:"text-sm text-gray-500 mb-6",children:"Tell us about your tool and goals and we'll send you our full media kit with detailed audience data and pricing."}),a?i.jsxs("div",{className:"p-8 bg-green-50 border border-green-200 rounded-xl text-center",children:[i.jsx(O,{className:"w-12 h-12 text-green-500 mx-auto mb-3"}),i.jsx("h3",{className:"text-lg font-semibold text-gray-900 mb-2",children:"Request received"}),i.jsx("p",{className:"text-gray-600 text-sm",children:"We'll send you our media kit and follow up within 1–2 business days."})]}):i.jsxs("form",{onSubmit:r,className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Company / Tool Name *"}),i.jsx("input",{type:"text",required:!0,value:e.company,onChange:o=>t({...e,company:o.target.value}),className:"w-full px-3 py-2.5 text-sm border border-gray-300 rounded-lg focus:outline-none focus:border-blue-500"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Your Name *"}),i.jsx("input",{type:"text",required:!0,value:e.name,onChange:o=>t({...e,name:o.target.value}),className:"w-full px-3 py-2.5 text-sm border border-gray-300 rounded-lg focus:outline-none focus:border-blue-500"})]})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Business Email *"}),i.jsx("input",{type:"email",required:!0,value:e.email,onChange:o=>t({...e,email:o.target.value}),className:"w-full px-3 py-2.5 text-sm border border-gray-300 rounded-lg focus:outline-none focus:border-blue-500"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Monthly Budget"}),i.jsxs("select",{value:e.budget,onChange:o=>t({...e,budget:o.target.value}),className:"w-full px-3 py-2.5 text-sm border border-gray-300 rounded-lg focus:outline-none focus:border-blue-500 bg-white",children:[i.jsx("option",{value:"",children:"Select range"}),i.jsx("option",{children:"Under $500"}),i.jsx("option",{children:"$500 – $1,000"}),i.jsx("option",{children:"$1,000 – $3,000"}),i.jsx("option",{children:"$3,000+"})]})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"What are you most interested in?"}),i.jsxs("select",{value:e.interest,onChange:o=>t({...e,interest:o.target.value}),className:"w-full px-3 py-2.5 text-sm border border-gray-300 rounded-lg focus:outline-none focus:border-blue-500 bg-white",children:[i.jsx("option",{value:"",children:"Select option"}),i.jsx("option",{children:"Featured Listing"}),i.jsx("option",{children:"Sponsored Review"}),i.jsx("option",{children:"Category Sponsorship"}),i.jsx("option",{children:"Newsletter Placement"}),i.jsx("option",{children:"Multiple / Custom Package"})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Anything else we should know?"}),i.jsx("textarea",{rows:3,value:e.message,onChange:o=>t({...e,message:o.target.value}),className:"w-full px-3 py-2.5 text-sm border border-gray-300 rounded-lg focus:outline-none focus:border-blue-500 resize-none",placeholder:"Target audience, goals, campaign timeline..."})]}),i.jsx("button",{type:"submit",className:"px-8 py-3 text-sm font-semibold text-white bg-blue-600 rounded-xl hover:bg-blue-700 transition-colors",children:"Request Media Kit"})]})]}),i.jsxs("aside",{className:"lg:col-span-2 space-y-4",children:[i.jsxs("div",{className:"bg-gray-50 border border-gray-200 rounded-xl p-5",children:[i.jsx("h3",{className:"font-semibold text-gray-900 mb-4",children:"Why Advertise With Us"}),i.jsx("div",{className:"space-y-4",children:[{icon:Ml,title:"High-intent audience",desc:"Visitors are actively evaluating and comparing tools, not just browsing."},{icon:wt,title:"Decision-maker reach",desc:"Founders, developers, and marketing leads who control purchasing decisions."},{icon:lp,title:"Clear performance data",desc:"Monthly reports with impressions, clicks, and estimated referrals."},{icon:Rl,title:"Growing platform",desc:"Consistent month-over-month traffic growth across all categories."}].map(({icon:o,title:s,desc:l})=>i.jsxs("div",{className:"flex gap-3",children:[i.jsx(o,{className:"w-4 h-4 text-blue-600 mt-0.5 flex-shrink-0"}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium text-gray-900",children:s}),i.jsx("p",{className:"text-xs text-gray-500 mt-0.5",children:l})]})]},s))})]}),i.jsxs("div",{className:"bg-white border border-gray-200 rounded-xl p-5 text-sm",children:[i.jsx("p",{className:"font-medium text-gray-900 mb-1",children:"Prefer to email us?"}),i.jsx("p",{className:"text-gray-500 text-xs mb-3",children:"Reach our partnerships team directly."}),i.jsxs("a",{href:"mailto:[email protected]",className:"flex items-center gap-1.5 text-blue-600 hover:underline text-sm font-medium",children:[i.jsx(_r,{className:"w-4 h-4"}),"[email protected]"]})]})]})]})]})]})}const hv=[{icon:Qy,name:"Affiliate Program",description:"Earn commission when your audience discovers AI tools through our directory and converts to a paying customer.",details:["Revenue share on referred conversions","Tracked via unique affiliate link","Monthly payouts via PayPal or bank transfer","Dedicated dashboard to track clicks and earnings"]},{icon:yt,name:"Referral Program",description:"Refer tool companies to our directory and earn a flat fee or revenue share when they become listing partners.",details:["Flat fee per successful referral","No sales experience required","Simple referral tracking link","Suitable for consultants, agencies, and creators"]},{icon:lp,name:"Content Partner",description:"Co-create editorial content, guides, or comparison resources that reach our audience of AI tool evaluators.",details:["Co-authored articles and guides","Mutual audience cross-promotion","Link attribution and bylines","Suitable for newsletters, creators, and media"]},{icon:Oy,name:"Tool Vendor Partner",description:"List your AI tool, maintain your listing, and gain access to referral analytics and editorial features.",details:["Verified vendor listing badge","Direct editorial contact channel","Update pricing and features in real time","Analytics on listing views and referral clicks"]}],yv=[{q:"How do I sign up for the affiliate program?",a:"Fill out the form below and our partnerships team will review your application within 3–5 business days. We work with publishers, newsletter operators, bloggers, and content creators."},{q:"What commission rates do you offer?",a:"Commission rates vary by tool and program. Rates typically range from 15–40% of the first payment or a flat fee per referral. Exact rates are confirmed in your partnership agreement."},{q:"How are referrals tracked?",a:"We use a cookie-based tracking system with a 30-day attribution window. You will receive a unique tracking link to share in your content, email, or social posts."},{q:"Do you work with small publishers or solo creators?",a:"Yes. We work with publishers of all sizes. What matters most is your audience's fit, not raw traffic volume."}];function wv(){const[e,t]=v.useState({name:"",email:"",website:"",audience:"",interest:"",message:""}),[a,n]=v.useState(!1),r=o=>{o.preventDefault(),n(!0)};return i.jsxs(i.Fragment,{children:[i.jsx(Q,{title:"Partner With Us — Como AI",description:"Join the Como AI partner program. Earn affiliate commissions, co-create content, or list your AI tool as a verified vendor partner.",canonical:"/partners"}),i.jsxs("div",{className:"max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[i.jsx(se,{crumbs:[{label:"Partners"}]}),i.jsxs("div",{className:"mt-6 mb-10",children:[i.jsx("h1",{className:"text-3xl font-bold text-gray-900 mb-3",children:"Partner With Como AI"}),i.jsx("p",{className:"text-gray-600 max-w-2xl",children:"We work with content creators, publishers, agencies, and AI tool vendors to grow together. Explore partnership types below and apply to get started."})]}),i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-6 mb-14",children:hv.map(({icon:o,name:s,description:l,details:c})=>i.jsxs("div",{className:"bg-white border border-gray-200 rounded-xl p-6",children:[i.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[i.jsx("div",{className:"w-9 h-9 bg-blue-50 rounded-lg flex items-center justify-center",children:i.jsx(o,{className:"w-5 h-5 text-blue-600"})}),i.jsx("h2",{className:"font-semibold text-gray-900",children:s})]}),i.jsx("p",{className:"text-sm text-gray-600 mb-4",children:l}),i.jsx("ul",{className:"space-y-1.5",children:c.map(d=>i.jsxs("li",{className:"flex items-center gap-2 text-sm text-gray-700",children:[i.jsx(O,{className:"w-3.5 h-3.5 text-green-500 flex-shrink-0"}),d]},d))})]},s))}
359),i.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-5 gap-10 mb-14",children:[i.jsxs("div",{className:"lg:col-span-3",children:[i.jsx("h2",{className:"text-xl font-bold text-gray-900 mb-2",children:"Apply to Partner"}),i.jsx("p",{className:"text-sm text-gray-500 mb-6",children:"Tell us about yourself and what kind of partnership you're interested in."}),a?i.jsxs("div",{className:"p-8 bg-green-50 border border-green-200 rounded-xl text-center",children:[i.jsx(O,{className:"w-12 h-12 text-green-500 mx-auto mb-3"}),i.jsx("h3",{className:"text-lg font-semibold text-gray-900 mb-2",children:"Application received"}),i.jsx("p",{className:"text-gray-600 text-sm",children:"We'll review your application and follow up within 3–5 business days."})]}):i.jsxs("form",{onSubmit:r,className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Your Name *"}),i.jsx("input",{type:"text",required:!0,value:e.name,onChange:o=>t({...e,name:o.target.value}),className:"w-full px-3 py-2.5 text-sm border border-gray-300 rounded-lg focus:outline-none focus:border-blue-500"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Email Address *"}),i.jsx("input",{type:"email",required:!0,value:e.email,onChange:o=>t({...e,email:o.target.value}),className:"w-full px-3 py-2.5 text-sm border border-gray-300 rounded-lg focus:outline-none focus:border-blue-500"})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Website / Publication URL"}),i.jsx("input",{type:"url",value:e.website,onChange:o=>t({...e,website:o.target.value}),className:"w-full px-3 py-2.5 text-sm border border-gray-300 rounded-lg focus:outline-none focus:border-blue-500",placeholder:"https://"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Describe your audience"}),i.jsx("input",{type:"text",value:e.audience,onChange:o=>t({...e,audience:o.target.value}),className:"w-full px-3 py-2.5 text-sm border border-gray-300 rounded-lg focus:outline-none focus:border-blue-500",placeholder:"e.g. 5,000 newsletter subscribers, developers & founders"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Partnership type *"}),i.jsxs("select",{required:!0,value:e.interest,onChange:o=>t({...e,interest:o.target.value}),className:"w-full px-3 py-2.5 text-sm border border-gray-300 rounded-lg focus:outline-none focus:border-blue-500 bg-white",children:[i.jsx("option",{value:"",children:"Select type"}),i.jsx("option",{children:"Affiliate Program"}),i.jsx("option",{children:"Referral Program"}),i.jsx("option",{children:"Content Partner"}),i.jsx("option",{children:"Tool Vendor Partner"}),i.jsx("option",{children:"Other / Not Sure"})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Anything else you'd like to share?"}),i.jsx("textarea",{rows:3,value:e.message,onChange:o=>t({...e,message:o.target.value}),className:"w-full px-3 py-2.5 text-sm border border-gray-300 rounded-lg focus:outline-none focus:border-blue-500 resize-none",placeholder:"Goals, timeline, or any other context..."})]}),i.jsx("button",{type:"submit",className:"px-8 py-3 text-sm font-semibold text-white bg-blue-600 rounded-xl hover:bg-blue-700 transition-colors",children:"Submit Application"})]})]}),i.jsxs("aside",{className:"lg:col-span-2",children:[i.jsxs("div",{className:"bg-gray-50 border border-gray-200 rounded-xl p-5 mb-4",children:[i.jsx("h3",{className:"font-semibold text-gray-900 mb-4",children:"Frequently Asked Questions"}),i.jsx("div",{className:"space-y-4",children:yv.map(({q:o,a:s})=>i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium text-gray-900 mb-1",children:o}),i.jsx("p",{className:"text-xs text-gray-500 leading-relaxed",children:s})]},o))})]}),i.jsxs("div",{className:"bg-white border border-gray-200 rounded-xl p-5 text-sm",children:[i.jsx("p",{className:"font-medium text-gray-900 mb-1",children:"Are you a tool owner?"}),i.jsx("p",{className:"text-gray-500 text-xs mb-3",children:"Claim your existing listing or submit a new tool for review."}),i.jsxs(j,{to:"/claim-listing",className:"flex items-center gap-1.5 text-blue-600 hover:underline text-sm font-medium",children:["Claim your listing ",i.jsx(Me,{className:"w-3.5 h-3.5"})]})]})]})]})]})]})}const bv=[{icon:dp,title:"Editorial Independence",desc:"Our rankings and reviews are based on independent research and editorial judgment, not on who pays us. Sponsored and affiliate content is always clearly labeled."},{icon:cp,title:"Original Research",desc:"Every review is written by our team after hands-on testing. We do not republish vend
359or marketing copy or rely solely on third-party aggregators."},{icon:wt,title:"Built for Real Users",desc:"We write for founders, developers, marketers, and creators who are actively evaluating tools — not for SEO bots or investors."},{icon:Ml,title:"Transparent Monetization",desc:"We earn revenue through affiliate commissions, referral fees, and sponsored placements. Every monetized relationship is disclosed clearly on every page."}];function vv(){return i.jsxs(i.Fragment,{children:[i.jsx(Q,{title:"About Como AI — como.ai AI Tools Directory",description:"Como AI (como.ai) is an independent editorial directory helping developers, founders, and marketers discover and compare the best AI tools. Learn about our mission and editorial standards.",canonical:"/about"}),i.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[i.jsx(se,{crumbs:[{label:"About"}]}),i.jsxs("div",{className:"mt-6 mb-10",children:[i.jsx("h1",{className:"text-3xl font-bold text-gray-900 mb-3",children:"About Como AI"}),i.jsx("p",{className:"text-lg text-gray-600 leading-relaxed",children:"Como AI (como.ai) is an independent editorial directory that helps developers, founders, marketers, and curious users discover, evaluate, and compare AI tools."})]}),i.jsxs("div",{className:"prose prose-gray max-w-none mb-12",children:[i.jsx("p",{className:"text-gray-700 leading-relaxed mb-4",children:"The AI tools landscape changes fast. New tools launch every week, pricing changes constantly, and it's genuinely hard to know which tool is the right one for your specific situation. We built Como AI to cut through the noise."}),i.jsx("p",{className:"text-gray-700 leading-relaxed mb-4",children:"Our team researches and tests tools across every major AI category — from website builders and coding assistants to image generators and writing tools. We publish original reviews, side-by-side comparisons, and curated category lists designed to help you make a faster, more confident decision."}),i.jsxs("p",{className:"text-gray-700 leading-relaxed",children:["Como AI is operated at ",i.jsx("strong",{children:"como.ai"}),". Our mission is to be the most trusted independent source for AI tool research on the web."]})]}),i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-6 mb-12",children:bv.map(({icon:e,title:t,desc:a})=>i.jsxs("div",{className:"bg-gray-50 border border-gray-200 rounded-xl p-5",children:[i.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[i.jsx("div",{className:"w-8 h-8 bg-blue-50 rounded-lg flex items-center justify-center",children:i.jsx(e,{className:"w-4 h-4 text-blue-600"})}),i.jsx("h2",{className:"font-semibold text-gray-900",children:t})]}),i.jsx("p",{className:"text-sm text-gray-600 leading-relaxed",children:a})]},t))}),i.jsxs("div",{className:"bg-blue-50 border border-blue-100 rounded-xl p-6 mb-12",children:[i.jsx("h2",{className:"font-semibold text-gray-900 mb-2",children:"Our Coverage"}),i.jsx("p",{className:"text-sm text-gray-700 leading-relaxed mb-4",children:"We currently index and review tools across 24 categories including AI website builders, AI app builders, AI coding tools, AI chatbots, AI image generation, AI video, AI writing, AI productivity, and more. Our directory contains 200+ tools and grows continuously."}),i.jsx("div",{className:"flex flex-wrap gap-3",children:[{label:"Browse Categories",to:"/categories"},{label:"Read Our Blog",to:"/blog"},{label:"Review Methodology",to:"/review-methodology"},{label:"Editorial Policy",to:"/editorial-policy"}].map(({label:e,to:t})=>i.jsx(j,{to:t,className:"px-3 py-1.5 text-sm bg-white border border-blue-200 rounded-lg text-blue-700 hover:border-blue-400 transition-colors",children:e},t))})]}),i.jsxs("div",{className:"border-t border-gray-200 pt-8",children:[i.jsx("h2",{className:"font-semibold text-gray-900 mb-3",children:"Get in Touch"}),i.jsx("p",{className:"text-sm text-gray-600 mb-4",children:"Have a question about a review, want to suggest a tool, or interested in working with us?"}),i.jsxs("div",{className:"flex flex-wrap gap-4 text-sm",children:[i.jsx(j,{to:"/contact",className:"text-blue-600 hover:underline font-medium",children:"Contact us"}),i.jsx(j,{to:"/submit-a-tool",className:"text-blue-600 hover:underline font-medium",children:"Submit a tool"}),i.jsx(j,{to:"/advertise",className:"text-blue-600 hover:underline font-medium",children:"Advertise"}),i.jsx(j,{to:"/partners",className:"text-blue-600 hover:underline font-medium",children:"Partner program"})]})]})]})]})}function xv(){return i.jsxs(i.Fragment,{children:[i.jsx(Q,{title:"Affiliate Disclosure — Como AI",description:"Our affiliate disclosure policy explains how we earn commissions on some tool recommendations and how this does not affect our editorial independence.",canonical:"/affiliate-disclosure"}),i.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[i.jsx(se,{crumbs:[{label:"Affiliate Disclosure"}]}),i.jsxs("div",{className:"mt-6 prose prose-gray max-w-none",children:[i.jsx("h1",{className:"text-3xl font-bold text-gray-900 mb-2",children:"Affiliate Disclosure"}),i.jsx("p",{className:"text-gray-500 text-sm mb-8",children:"Last updated: April 2026"}),i.jsxs("div",{className:"p-5 bg-amber-50 border border-amber-200 rounded-xl mb-8",children:[i.jsx("p",{className:"font-semibold text-amber-900 mb
359-1",children:"Summary"}),i.jsx("p",{className:"text-amber-800 text-sm",children:"Como AI (como.ai) participates in affiliate and referral programs. When you click on certain links and make a purchase or sign up, we may earn a commission at no extra cost to you. Our editorial recommendations are not influenced by these relationships."})]}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"What This Means"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:'Some of the links on Como AI are "affiliate links." This means that if you click on the link and purchase or sign up for a product or service, we receive a small commission. This commission is paid by the tool vendor and comes at no additional cost to you.'}),i.jsx("p",{className:"text-gray-700 leading-relaxed mt-3",children:"We also participate in referral programs, where both you and we may receive a benefit when you sign up through our referral link."}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"Our Commitment to Editorial Independence"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:"We only recommend tools that we believe provide genuine value. The existence of an affiliate relationship does not influence which tools we recommend, how we rate them, or what we write about them. Tools with active affiliate programs are reviewed to the same standards as tools with no commercial relationship."}),i.jsx("p",{className:"text-gray-700 leading-relaxed mt-3",children:"We do not accept payment for positive reviews. We do not artificially inflate ratings for tools with affiliate relationships. A tool may receive a negative or mixed review even if we have an active affiliate relationship with its vendor."}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"How We Label Affiliate and Referral Links"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:'On pages where affiliate or referral links are present, we display a visible disclosure notice near the relevant links. CTA buttons leading to affiliate URLs are labeled "Affiliate link" so you always know when you are clicking a tracked link.'}),i.jsx("p",{className:"text-gray-700 leading-relaxed mt-3",children:"Tool pages also display whether a tool has an affiliate or referral relationship in the Quick Facts box and editorial status fields."}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"Current Affiliate Relationships"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:"We currently have active affiliate relationships with the following tools (this list is updated as relationships are established or change):"}),i.jsxs("ul",{className:"mt-3 space-y-1 text-gray-700",children:[i.jsx("li",{children:"• Emergent — active affiliate program"}),i.jsx("li",{children:"• Lovable — affiliate relationship pending confirmation"}),i.jsx("li",{children:"• Framer — affiliate relationship pending confirmation"}),i.jsx("li",{children:"• Durable — affiliate relationship pending confirmation"}),i.jsx("li",{children:"• 10Web — affiliate relationship pending confirmation"}),i.jsx("li",{children:"• Webflow — affiliate relationship pending confirmation"})]}),i.jsx("p",{className:"text-gray-700 mt-3 text-sm italic",children:'Tools marked "referral" have referral programs where credits or discounts may be earned by both parties. Tools marked "unknown" do not yet have a confirmed commercial relationship.'}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"Questions"}),i.jsxs("p",{className:"text-gray-700 leading-relaxed",children:["If you have questions about our affiliate relationships or disclosure practices, please"," ",i.jsx(j,{to:"/contact",className:"text-blue-600 hover:underline",children:"contact us"}),". We are committed to full transparency."]}),i.jsxs("div",{className:"mt-8 flex gap-4 text-sm",children:[i.jsx(j,{to:"/editorial-policy",className:"text-blue-600 hover:underline",children:"Read our Editorial Policy →"}),i.jsx(j,{to:"/review-methodology",className:"text-blue-600 hover:underline",children:"Read our Review Methodology →"})]})]})]})]})}function kv(){return i.jsxs(i.Fragment,{children:[i.jsx(Q,{title:"Editorial Policy — Como AI",description:"Our editorial policy outlines how we select, review, and rate AI tools, and how we maintain independence from commercial relationships.",canonical:"/editorial-policy"}),i.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[i.jsx(se,{crumbs:[{label:"Editorial Policy"}]}),i.jsxs("div",{className:"mt-6 prose prose-gray max-w-none",children:[i.jsx("h1",{className:"text-3xl font-bold text-gray-900 mb-2",children:"Editorial Policy"}),i.jsx("p",{className:"text-gray-500 text-sm mb-8",children:"Last updated: April 2026"}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-6 mb-3",children:"Our Mission"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:"Como AI (como.ai) exists to help individuals and organizations make better decisions about AI software. We achieve this through independent editorial reviews, honest comparisons, and useful guides — written by humans who have tested the tools, not generated by AI."}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"Editorial Independence"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:"Our editorial team makes all decisions about which tools to cover, how to rate them, and what to write independently of our business relationships. No vend
359or, advertiser, or affiliate partner can pay for positive editorial coverage, influence our ratings, or request changes to our reviews."}),i.jsx("p",{className:"text-gray-700 leading-relaxed mt-3",children:"When we have commercial relationships with tools we review, we disclose them prominently on every relevant page. The existence of an affiliate or partner relationship does not influence editorial content."}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"Tool Selection"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:"We select tools for review based on market relevance, user demand, search interest, and editorial judgment. We aim to cover the tools that the people visiting our site are actually choosing between. Tool vendors can submit their tools for consideration through our Submit a Tool page, but submission does not guarantee coverage."}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"Content Standards"}),i.jsxs("ul",{className:"text-gray-700 space-y-2 mt-3",children:[i.jsx("li",{children:"• All tool descriptions are original editorial writing, not copied from vendor marketing."}),i.jsx("li",{children:"• Ratings reflect genuine assessment, not commercial relationships."}),i.jsx("li",{children:"• We do not publish fake reviews, fabricated user testimonials, or invented statistics."}),i.jsx("li",{children:"• We do not manufacture urgency, false scarcity, or misleading comparisons."}),i.jsx("li",{children:"• Pricing information is accurate at time of review and linked to official sources for current pricing."})]}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"Updates and Corrections"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:'The AI tools market evolves rapidly. We aim to update reviews when tools release major changes, modify pricing, or when our assessments change based on new information. Last reviewed dates are displayed on all tool pages. If you find outdated or incorrect information, please use the "Report outdated info" link on any tool page.'}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"Sponsored Content"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:"We may in the future accept sponsored placements (e.g., sponsored listings in category pages or sponsored newsletter mentions). Any sponsored content will be clearly labeled as such and will not appear as editorial reviews or ratings. Sponsored content will not affect editorial placement in reviews or comparison pages."}),i.jsxs("div",{className:"mt-8 flex gap-4 text-sm",children:[i.jsx(j,{to:"/affiliate-disclosure",className:"text-blue-600 hover:underline",children:"Affiliate Disclosure →"}),i.jsx(j,{to:"/review-methodology",className:"text-blue-600 hover:underline",children:"Review Methodology →"})]})]})]})]})}function Av(){return i.jsxs(i.Fragment,{children:[i.jsx(Q,{title:"Review Methodology — Como AI",description:"How we review and rate AI tools — our scoring criteria, testing process, and editorial standards explained.",canonical:"/review-methodology"}),i.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[i.jsx(se,{crumbs:[{label:"Review Methodology"}]}),i.jsxs("div",{className:"mt-6 prose prose-gray max-w-none",children:[i.jsx("h1",{className:"text-3xl font-bold text-gray-900 mb-2",children:"Review Methodology"}),i.jsx("p",{className:"text-gray-500 text-sm mb-8",children:"Last updated: April 2026"}),i.jsx("p",{className:"text-lg text-gray-700 leading-relaxed mb-6",children:"Every AI tool in our directory is reviewed using a consistent methodology. This page explains how we evaluate tools, what criteria we apply, and how we form our editorial verdicts."}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-6 mb-3",children:"1. Initial Research"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:"Before reviewing a tool, we research its positioning, intended use cases, target audience, and competitive landscape. We read available documentation, pricing pages, and public user feedback to establish context before hands-on testing."}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"2. Hands-On Testing"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:"We test each tool against the specific use cases it targets. For AI chatbots, we test conversational qual
359ity, reasoning, coding, and writing tasks. For AI app builders, we attempt to build real applications from scratch. For AI image generators, we test across diverse prompt types. Testing depth varies by tool category and complexity."}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"3. Evaluation Criteria"}),i.jsx("p",{className:"text-gray-700 mb-3",children:"We evaluate tools across six primary dimensions:"}),i.jsx("div",{className:"space-y-4",children:[{title:"Feature Quality",desc:"Does the tool do what it claims? How well does it perform its core functions compared to alternatives?"},{title:"Ease of Use",desc:"How accessible is the tool for its target audience? What is the learning curve? How clear is the onboarding?"},{title:"Value for Price",desc:"Is the pricing reasonable given the features and alternatives? Are there meaningful free tiers? Does the paid offering justify the cost?"},{title:"Reliability",desc:"How consistently does the tool perform? Are there known outages, accuracy issues, or stability concerns?"},{title:"Documentation and Support",desc:"Is the tool well-documented? Is support accessible and responsive? Are there learning resources?"},{title:"Development Trajectory",desc:"Is the tool actively maintained and improving? What is the development roadmap? Are there signs of abandonment or stagnation?"}].map(e=>i.jsxs("div",{className:"p-4 bg-gray-50 rounded-xl border border-gray-200",children:[i.jsx("h3",{className:"font-semibold text-gray-900 mb-1",children:e.title}),i.jsx("p",{className:"text-sm text-gray-600",children:e.desc})]},e.title))}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"4. Editorial Verdict"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:'Our editorial verdict is a qualitative assessment that synthesizes our testing and research. It explains who the tool is best for, notable strengths and limitations, and our overall recommendation. We avoid numeric scores in most reviews because the "best" score depends heavily on use case.'}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"5. Review Frequency"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:'We aim to re-review tools when they release major new features, change pricing significantly, or when market conditions shift. The "Last Reviewed" date on each tool page indicates when our most recent assessment was completed. We prioritize updating reviews for the most popular and frequently compared tools.'}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"6. Limitations"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:"No review process is perfect. Our assessments reflect the tool's capabilities at the time of review. AI tools change rapidly — what we observed may not reflect current capabilities. We are a small editorial team covering a large and fast-moving market. We always recommend visiting official tool websites and trying free tiers before making purchasing decisions."})]})]})]})}function Iv(){return i.jsxs(i.Fragment,{children:[i.jsx(Q,{title:"Privacy Policy — Como AI",description:"Como AI privacy policy. Learn how we collect, use, and protect your personal information.",canonical:"/privacy-policy"}),i.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[i.jsx(se,{crumbs:[{label:"Privacy Policy"}]}),i.jsxs("div",{className:"mt-6 prose prose-gray max-w-none",children:[i.jsx("h1",{className:"text-3xl font-bold text-gray-900 mb-2",children:"Privacy Policy"}),i.jsx("p",{className:"text-gray-500 text-sm mb-8",children:"Last updated: April 2026"}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-6 mb-3",children:"1. Information We Collect"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:"We collect information you provide directly, such as your email address when you sign up for our newsletter or submit a tool. We also collect technical data through standard web analytics, including pages visited, referral sources, device type, and browser information. We do not sell personal data."}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"2. How We Use Information"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:"We use collected information to: send newsletters you have opted into; respond to inquiries; improve site content and user experience; and understand aggregate traffic patterns. We do not use your information for targeted advertising to third parties."}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"3. Cookies"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:"We use cookies for analytics (to understand how users interact with our site) and to maintain session preferences. Analytics data is aggregated and anonymized. You can control cookie settings through your browser."}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"4. Advertising and Google AdSense"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:"We use Google AdSense to display advertisements on our site. Google AdSense is a third-party advertising service operated by Google LLC. Google may use cookies and web beacons to collect information about your visits to this and other websites in order to provide advertisements about goods and services that may interest you."}),i.jsxs("p",{className:"text-gray-700 leading-relaxed mt-3",children:["Google's use of advertising cookies enables it and its partners to serve ads to you based on your visit to our site and/or other sites on the Internet. You may opt out of personalized advertising by visiting"," ",i.jsx("a",{href:"https://www.google.com/settings/ads",target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:underline",children:"Google Ads Settings"}
359)," ","or the"," ",i.jsx("a",{href:"https://optout.networkadvertising.org/",target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:underline",children:"Network Advertising Initiative opt-out page"}),"."]}),i.jsxs("p",{className:"text-gray-700 leading-relaxed mt-3",children:["Third-party vendors, including Google, use cookies to serve ads based on a user's prior visits to our website or other websites. These advertising cookies allow Google and its partners to serve ads based on your visit to our site. For more information about how Google collects and processes data, visit"," ",i.jsx("a",{href:"https://policies.google.com/technologies/partner-sites",target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:underline",children:"Google's privacy and terms"}),"."]}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"5. Third-Party Links and Affiliate Disclosures"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:"Our site contains links to external websites including tool vendors. When you click these links, you are subject to those sites' privacy policies. We are not responsible for the privacy practices of third-party sites. Affiliate and referral links may include tracking parameters that allow vendors to attribute referrals."}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"6. Data Retention"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:"We retain newsletter subscriber information until you unsubscribe. Contact form submissions are retained for a reasonable period to manage correspondence. Analytics data is retained in aggregated form."}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"7. Your Rights"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:"Depending on your location, you may have rights to access, correct, or delete your personal information. To exercise these rights, contact us at [email protected]. Newsletter subscribers may unsubscribe at any time via the unsubscribe link in any email."}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"8. Children"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:"Our site is not directed at children under 13. We do not knowingly collect personal information from children."}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"9. Changes to This Policy"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:'We may update this privacy policy from time to time. The "last updated" date at the top of this page will reflect any changes. Continued use of our site after policy changes constitutes acceptance of the updated terms.'}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"10. Contact"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:"For privacy-related questions, contact us at [email protected] or through our contact page."})]})]})]})}function jv(){return i.jsxs(i.Fragment,{children:[i.jsx(Q,{title:"Terms of Service — Como AI",description:"Como AI terms of service governing use of como.ai and related services.",canonical:"/terms-of-service"}),i.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[i.jsx(se,{crumbs:[{label:"Terms of Service"}]}),i.jsxs("div",{className:"mt-6 prose prose-gray max-w-none",children:[i.jsx("h1",{className:"text-3xl font-bold text-gray-900 mb-2",children:"Terms of Service"}),i.jsx("p",{className:"text-gray-500 text-sm mb-8",children:"Last updated: April 2026"}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-6 mb-3",children:"1. Acceptance"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:"By accessing or using Como AI (como.ai), you agree to be bound by these terms. If you do not agree, please do not use our site."}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"2. Content"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:"All editorial content on Como AI is for informational purposes only. Tool reviews, ratings, comparisons, and recommendations are our editorial opinions. We make reasonable efforts to maintain accurate and up-to-date information, but we do not warrant the completeness or accuracy of any content."}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"3. No Professional Advice"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:"Content on this site is not professional, legal, financial, or technical advice. Making business decisions about softw
359are tools based solely on our reviews is done at your own discretion and risk. We recommend evaluating tools directly and consulting with relevant experts for important business decisions."}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"4. Affiliate Links"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:"Some links on our site are affiliate links. We earn commissions when you purchase through these links. This does not add to your cost. We disclose affiliate relationships in accordance with FTC guidelines. See our Affiliate Disclosure for full details."}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"5. Third-Party Sites"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:"We link to third-party websites including tool vendor sites. We are not responsible for the content, privacy practices, or terms of these external sites. Visiting third-party sites is at your own risk."}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"6. Intellectual Property"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:"All original editorial content, including reviews, comparisons, and guides, is the property of Como AI (como.ai). You may share and link to our content with attribution. Reproducing or republishing our editorial content in full without permission is prohibited."}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"7. Limitation of Liability"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:"To the maximum extent permitted by law, Como AI shall not be liable for any indirect, incidental, special, or consequential damages arising from your use of our site or reliance on our content."}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"8. Changes"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:"We may update these terms at any time. Continued use of the site after changes indicates acceptance of the updated terms."}),i.jsx("h2",{className:"text-xl font-semibold text-gray-900 mt-8 mb-3",children:"9. Contact"}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:"For questions about these terms, contact us at [email protected]."})]})]})]})}const Sv="https://get.emergent.sh/c0xm9geoavml",Cd={headlineVariant:0,ctaVariant:0,heroCopyLength:"medium",pricingPosition:"standard",showTrustStrip:!0},Cv=[{h1:"Build a Real App with AI — Without Writing a Single Line of Code",sub:"Emergent lets you describe your idea in plain English and turns it into a working, production-ready web or mobile app. Design, code, and deployment — all handled by AI."},{h1:"Turn Your App Idea into a Live Product Faster with Emergent",sub:"Skip the hiring process. Skip the learning curve. Emergent generates full-stack applications from a conversation and deploys them to a live URL."},{h1:"Describe Your App in Plain English. Emergent Builds and Deploys It.",sub:"Emergent is an AI app builder trusted by 3M+ users. It handles design, code, database, and hosting — so you can focus on your idea, not the infrastructure."}],Nv=["Start Free on Emergent","Build My App with Emergent","See Pricing & Start Building"],qn={pricing:{badge:"Free plan available",headline:"Start Free. Scale When You Need To.",sub:"Emergent has a $0/month free tier with 10 credits so you can validate your idea before spending anything. Paid plans start at $20/month."},"no-code":{badge:"No coding required",headline:"The AI App Builder Built for Non-Technical Builders",sub:"No frameworks. No deployments. No developers needed. Describe what you want and Emergent handles the rest."},agency:{badge:"For agencies & client work",headline:"Deliver Client Apps Faster with AI",sub:"Emergent helps agencies prototype, validate, and ship applications in a fraction of the usual time — without scaling up headcount."},founder:{badge:"For founders & MVPs",headline:"Launch Your MVP Before Your Competition Finds the Idea",sub:"Emergent is the fastest path from idea to working product. Build, iterate, and validate — without a dev team."}};function Pv(e){const t=e.toLowerCase();return t.includes("pricing")||t.includes("price")||t.includes("cost")||t.includes("plans")||t.includes("free")?qn.pricing:t.includes("no-code")||t.includes("nocode")||t.includes("app builder")||t.includes("vibe")?qn["no-code"]:t.includes("agency")||t.includes("client")||t.includes("software services")?qn.agency:t.includes("founder")||t.includes("startup")||t.includes("mvp")?qn.founder:null}function xt(e,t){const a=new URL(Sv);return Object.entries(e).forEach(([n,r])=>{r&&a.searchParams.set(n,r)}),t&&a.searchParams.set("ref_source",t),a.toString()}function Tv(e){const t=new URLSearchParams(e);return{utm_source:t.get("utm_source")||"",utm_medium:t.get("utm_medium")||"",utm_campaign:t.get("utm_campaign")||"",utm_term:t.get("utm_term")||"",utm_content:t.get("utm_content")||""}}function lt(e,t){typeof window.gtag=="function"&&window.gtag("event",e,t),typeof window.dataLayer<"u"&&window.dataLayer.push({event:e,...t})}function ra({text:e,href:t,size:a="md",eventName:n,className:r=""}){const o={sm:"px-5 py-2.5 text-sm",md:"px-6 py-3 text-base",lg:"px-8 py-4 text-lg"}[a];return i.jsxs("a",{href:t,target:"_blank",rel:"noopener noreferrer",onClick:()=>{lt(n),lt("outbound_affiliate_click",{cta_source:n})},className:`inline-flex items-center gap-2 font-semibold rounded-xl bg-blue-600 text-white hover:bg-blue-700 active:bg-blue-800 transition-colors shadow-sm ${o} ${r}`,children:[e,i.jsx(ke,{className:"w-4 h-4 flex-shrink-0"})]})}function Lv(){return i.jsxs("div",{className:"flex flex-wrap items-center gap-x-5 gap-y-2 text-sm text-gray-500",children:[i.jsxs("span",{className:"flex items-center gap-1.5",children:[i.jsx(wt,{className:"w-4 h-4 text-blue-500"})," 3M+ users worldwide"]}),i.jsxs("span",{className:"flex items-center gap-1.5",children:[i.jsx(O,{className:"w-4 h-4 text-green-500"})," Free plan available"]}),i.jsxs("span",{className:"flex items-center gap-1.5",children:[i.jsx(Ee,{className:"w-4 h-4 text-amber-500"})," Starts at $20/month"]}),i.jsxs("span",{className:"flex items-center gap-1.5",children:[i.jsx(ht,{className:"w-4 h-4 text-gray-400"})," SOC 2 Type II"]})]})}function Ev({question:e,answer:t}){const[a,n]=v.useState(!1);return i.jsxs("div",{className:"border border-gray-200 rounded-xl overflow-hidden",children:[i.jsxs("button",{onClick:()=>n(r=>!r),className:"w-full text-left flex items-center justify-between px-5 py-4 bg-white hover:bg-gray-50 transition-colors",children:[i.jsx("span",{className:"font-medium text-gray-900 text-sm pr-4",children:e}),a?i.jsx($r,{className:"w-4 h-4 text-gray-400 flex-shrink-0"}):i.jsx(ti,{className:"w-4 h-4 text-gray-400 flex-shrink-0"})]}),a&&i.jsx("div",{className:"px-5 pb-4 text-sm text-gray-600 leading-relaxed border-t border-gray-100 pt-3 bg-white",children:t})]})}function Dv(){const e=De(),t=Tv(e.search),a=Pv(e.search),n=Cv[Cd.headlineVariant],r=Nv[Cd.ctaVariant];xt(t);const o=v.useRef({milestone25:!1,milestone50:!1,milestone75:!1,milestone100:!1});v.useEffect(()=>{const l=setTimeout(()=>lt("time_on_page_30s"),3e4),c=setTimeout(()=>lt("time_on_page_60s"),6e4);function d(){const m=window.scrollY,u=document.body.scrollHeight-window.innerHeight,p=u>0?m/u*100:0,y=o.current;!y.milestone25&&p>=25&&(y.milestone25=!0,lt("scroll_25")),!y.milestone50&&p>=50&&(y.milestone50=!0,lt("scroll_50")),!y.milestone75&&p>=75&&(y.milestone75=!0,lt("scroll_75")),!y.milestone100&&p>=99&&(y.milestone100=!0,lt("scroll_100"))}return window.addEventListener("scroll",d,{passive:!0}),()=>{clearTimeout(l),clearTimeout(c),window.removeEventListener("scroll",d)}},[]);const s={"@context":"https://schema.org","@type":"FAQPage",mainEntity:[{"@type":"Question",name:"What is Emergent?",acceptedA
359nswer:{"@type":"Answer",text:"Emergent is an AI-powered app builder that lets you create full-stack web and mobile applications by describing what you want in plain English. It handles design, code, database, and deployment."}},{"@type":"Question",name:"Do I need coding experience?",acceptedAnswer:{"@type":"Answer",text:"No. Emergent is designed for non-technical users. You describe your app through conversation and the AI handles the implementation."}},{"@type":"Question",name:"Is there a free plan?",acceptedAnswer:{"@type":"Answer",text:"Yes. Emergent offers a free plan with 10 monthly credits at $0/month. Paid plans start at $20/month."}}]};return i.jsxs(i.Fragment,{children:[i.jsx(Q,{title:"Emergent Review for Builders: Pricing, Use Cases & Why to Start Free",description:"See what Emergent helps you build, who it fits best, and how the free and paid plans compare before you start. Full breakdown for founders, agencies, and non-technical builders.",canonical:"/tools/emergent",noIndex:!0}),i.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(s)}}),i.jsx("div",{className:"sticky top-0 z-40 bg-white border-b border-gray-100 shadow-sm",children:i.jsxs("div",{className:"max-w-5xl mx-auto px-4 sm:px-6 flex items-center justify-between h-14",children:[i.jsx("a",{href:"/",className:"text-sm font-semibold text-gray-800 hover:text-blue-600 transition-colors",children:"Como AI"}),i.jsx(ra,{text:"Start Free",href:xt(t,"nav"),size:"sm",eventName:"nav_cta_click"})]})}),a&&i.jsxs("div",{className:"bg-blue-600 text-white text-center py-2.5 px-4 text-sm font-medium",children:[a.badge," — ",a.headline]}),i.jsxs("main",{className:"max-w-5xl mx-auto px-4 sm:px-6",children:[i.jsxs("section",{className:"pt-12 pb-14 text-center",children:[i.jsxs("div",{className:"inline-flex items-center gap-2 bg-blue-50 text-blue-700 text-xs font-semibold px-3 py-1.5 rounded-full mb-6",children:[i.jsx("span",{className:"w-1.5 h-1.5 bg-blue-500 rounded-full"}),"AI App Builder — 3M+ users"]}),i.jsx("h1",{className:"text-3xl sm:text-4xl md:text-5xl font-bold text-gray-900 leading-tight mb-5 max-w-3xl mx-auto",children:a?a.headline:n.h1}),i.jsx("p",{className:"text-lg text-gray-600 leading-relaxed max-w-2xl mx-auto mb-8",children:a?a.sub:n.sub}),i.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-3 mb-6",children:[i.jsx(ra,{text:r,href:xt(t,"hero_primary"),size:"lg",eventName:"hero_cta_click"}),i.jsx(ra,{text:"See Pricing & Start Building",href:xt(t,"hero_secondary"),size:"lg",eventName:"hero_secondary_cta_click",className:"bg-white text-blue-600 border-2 border-blue-600 hover:bg-blue-50 shadow-none"})]}),i.jsx("div",{className:"flex justify-center mb-4",children:i.jsx(Lv,{})}),i.jsx("p",{className:"text-xs text-gray-400 max-w-md mx-auto",children:"Pricing and features may change; always verify on the official site before purchasing. This page contains affiliate links."})]}),i.jsxs("section",{className:"py-12 border-t border-gray-100",children:[i.jsxs("div",{className:"text-center mb-10",children:[i.jsx("h2",{className:"text-2xl sm:text-3xl font-bold text-gray-900 mb-3",children:"How Emergent Works"}),i.jsx("p",{className:"text-gray-500 text-base max-w-xl mx-auto",children:"Three steps from idea to live app"})]}),i.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:[{step:"01",icon:i.jsx(Ee,{className:"w-6 h-6 text-blue-600"}),title:"Describe Your Idea",body:"Type what you want to build in plain English — your features, user flows, and design preferences. No technical knowledge required."},{step:"02",icon:i.jsx(Pt,{className:"w-6 h-6 text-blue-600"}),title:"AI Builds Your App",body:"Emergent generates the frontend, backend, and database. You can continue refining through conversation — the AI makes targeted changes, not full rebuilds."},{step:"03",icon:i.jsx(yt,{className:"w-6 h-6 text-blue-600"}),title:"Launch and Iterate",body:"Your app is deployed to a live URL. Keep improving it through conversation. What used to take weeks can happen in hours."}].map(l=>i.jsxs("div",{className:"relative bg-white border border-gray-200 rounded-2xl p-6",children:[i.jsx("span",{className:"absolute top-4 right-4 text-xs font-bold text-gray-200 select-none",children:l.step}),i.jsx("div",{className:"w-10 h-10 bg-blue-50 rounded-xl flex items-center justify-center mb-4",children:l.icon}),i.jsx("h3",{className:"font-semibold text-gray-900 mb-2",children:l.title}),i.jsx("p",{className:"text-sm text-gray-600 leading-relaxed",children:l.body})]},l.step))})]}),i.jsxs("section",{className:"py-12 border-t border-gray-100",children:[i.jsxs("div",{className:"text-center mb-10",children:[i.jsx("h2",{className:"text-2xl sm:text-3xl font-bold text-gray-900 mb-3",children:"Why Builders Choose Emergent"}),i.jsx("p",{className:"text-gray-500 text-base",children:"The key capabilities that make it stand out"})]}),i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-5",children:[{icon:i.jsx(Ee,{className:"w-5 h-5 text-amber-500"}),title:"Build Through Conversation",body:"Describe what you want in plain English. No drag-and-drop, no complex editors — just natural language and an AI that builds."},{icon:i.jsx(xr,{className:"w-5 h-5 text-blue-500"}),title:"Production-Ready Output",body:"Emergent produces genuinely deployable applications, not just demos. Authentication, databases, and API integrations are included."},{icon:i.jsx(yt,{className:"w-5 h-5 text-green-500"}),title:"Web and Mobile App Support",body:"Build full-stack web apps and mobile-ready experiences without switching tools or hiring different specialists."},{icon:i.jsx(Pt,{className:"w-5 h-5 text-blue-500"}),title:"From Idea to Launch Fast",body:"Cut weeks of planning and development down to hours. Emergent is built for speed — validate before you invest heavily."},{icon:i.jsx(wt,{className:"w-5 h-5 text-rose-500"}),title:"Built for Non-Technical Teams",body:"No coding experience required. Product managers, founders, and operators can build and iterate without depending on engineers."},{icon:i.jsx(ht,{className:"w-5 h-5 text-gray-500"}),title:"Enterprise-Grade Trust",body:"SOC 2 Type II certified. 3M+ users worldwide. Emergent is built for serious use, not just experimentation."}].map(l=>i.jsxs("div",{className:"bg-white border border-gray-200 rounded-2xl p-5 hover:border-blue-200 hover:shadow-sm transition-all",children:[i.jsx("div",{className:"w-9 h-9 bg-gray-50 rounded-lg flex items-center justify-center mb-3",children:l.icon}),i.jsx("h3",{className:"font-semibold text-gray-900 mb-1.5 text-sm",children:l.title}),i.jsx("p",{className:"text-sm text-gray-600 leading-relaxed",children:l.body})]}
359,l.title))}),i.jsx("div",{className:"mt-8 text-center",children:i.jsx(ra,{text:r,href:xt(t,"benefits"),size:"md",eventName:"benefits_cta_click"})})]}),i.jsxs("section",{className:"py-12 border-t border-gray-100",children:[i.jsxs("div",{className:"text-center mb-10",children:[i.jsx("h2",{className:"text-2xl sm:text-3xl font-bold text-gray-900 mb-3",children:"Who Emergent Is For"}),i.jsx("p",{className:"text-gray-500 text-base",children:"Strong fit across several builder profiles"})]}),i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-5",children:[{icon:"🚀",label:"Founders & Startup Teams",who:"You have a product idea and want to move fast.",why:"Emergent lets you build and ship an MVP without a dev team, so you can validate before committing to hiring or fundraising.",outcome:"A working product live in days, not months."},{icon:"📋",label:"Product Managers",who:"You need to validate a feature or product hypothesis quickly.",why:"Skip waiting on engineering sprints. Emergent helps PMs build real prototypes to test with users before committing resources.",outcome:"Faster validation cycles and stronger stakeholder buy-in."},{icon:"🏢",label:"Agencies & Freelancers",who:"You deliver digital products for clients and want to work faster.",why:"Emergent accelerates the design-to-delivery cycle. Build client prototypes rapidly, reduce back-and-forth, and ship more projects per quarter.",outcome:"Better margins and faster client approvals."},{icon:"⚙️",label:"Non-Technical Operators",who:"You want to build an internal tool or customer-facing product without learning to code.",why:"Emergent removes the dependency on developers for internal tooling. Describe what you need and get a real working application.",outcome:"Operational efficiency without engineering overhead."}].map(l=>i.jsxs("div",{className:"bg-white border border-gray-200 rounded-2xl p-6",children:[i.jsx("div",{className:"text-2xl mb-3",children:l.icon}),i.jsx("h3",{className:"font-semibold text-gray-900 mb-1",children:l.label}),i.jsx("p",{className:"text-xs font-medium text-blue-600 mb-3 uppercase tracking-wide",children:l.who}),i.jsx("p",{className:"text-sm text-gray-600 leading-relaxed mb-3",children:l.why}),i.jsxs("div",{className:"flex items-start gap-2",children:[i.jsx(O,{className:"w-4 h-4 text-green-500 flex-shrink-0 mt-0.5"}),i.jsx("p",{className:"text-sm text-gray-700 font-medium",children:l.outcome})]})]},l.label))})]}),i.jsxs("section",{className:"py-12 border-t border-gray-100",id:"pricing",children:[i.jsxs("div",{className:"text-center mb-10",children:[i.jsx("h2",{className:"text-2xl sm:text-3xl font-bold text-gray-900 mb-3",children:"Emergent Pricing"}),i.jsx("p",{className:"text-gray-500 text-base",children:"Three plans — start free, scale when you need to"})]}),i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-5 mb-6",children:[{name:"Free",price:"$0",period:"/month",highlight:!1,badge:"",description:"Best for trying Emergent before committing.",items:["10 free monthly credits","Full-stack app generation","Live deployment included","No credit card required"]},{name:"Standard",price:"$20",period:"/month",highlight:!0,badge:"Most popular",description:"Best for first-time builders ready to build seriously.",items:["Higher usage limits","Priority generation","Full-stack output","Web & mobile support"]},{name:"Pro",price:"$200",period:"/month",highlight:!1,badge:"",description:"For serious creators, agencies, and brands.",items:["Maximum usage limits","Priority support","Advanced customization","Ideal for client work"]}].map(l=>i.jsxs("div",{className:`relative rounded-2xl p-6 border ${l.highlight?"border-blue-500 bg-blue-50 shadow-md":"border-gray-200 bg-white"}`,children:[l.badge&&i.jsx("span",{className:"absolute -top-3 left-1/2 -translate-x-1/2 bg-blue-600 text-white text-xs font-bold px-3 py-1 rounded-full whitespace-nowrap",children:l.badge}),i.jsx("h3",{className:"font-bold text-gray-900 text-lg mb-1",children:l.name}),i.jsxs("div",{className:"flex items-baseline gap-0.5 mb-2",children:[i.jsx("span",{className:"text-3xl font-bold text-gray-900",children:l.price}),i.jsx("span",{className:"text-gray-500 text-sm",children:l.period})]}),i.jsx("p",{className:"text-sm text-gray-600 mb-4",children:l.description}),i.jsx("ul",{className:"space-y-2 mb-2",children:l.items.map(c=>i.jsxs("li",{className:"flex items-center gap-2 text-sm text-gray-700",children:[i.jsx(O,{className:"w-4 h-4 text-green-500 flex-shrink-0"}),c]},c))})]},l.name))}),i.jsxs("div",{className:"text-center",children:[i.jsx(ra,{text:"Start Free on Emergent",href:xt(t,"pricing"),size:"md",eventName:"pricing_cta_click"}),i.jsx("p",{className:"text-xs text-gray-400 mt-3",children:"Features and pricing can change — confirm on Emergent before purchasing. Affiliate link: we may earn a commission at no cost to you."})]})]}),i.jsx("section",{className:"py-12 border-t border-gray-100",children:i.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-8 mb-10",children:[i.jsxs("div",{children:[i.jsx("h2",{className:"text-xl font-bold text-gray-900 mb-5",children:"Built on Real Foundations"}),i.jsx("ul",{className:"space-y-3",children:[["AI-assisted app creation","Design, code, and infrastru
359cture generated through natural language."],["Full-stack output","Frontend, backend, database, and hosting — all in one workflow."],["Production-ready","Emergent is designed for real apps, not throwaway prototypes."],["SOC 2 Type II","Enterprise-grade security certification."],["Free plan available","Try before you commit — 10 credits monthly at $0."],["3M+ users worldwide","A proven platform with a large active community."]].map(([l,c])=>i.jsxs("li",{className:"flex items-start gap-3",children:[i.jsx(O,{className:"w-5 h-5 text-green-500 flex-shrink-0 mt-0.5"}),i.jsxs("div",{children:[i.jsx("span",{className:"font-medium text-gray-900 text-sm",children:l}),i.jsxs("span",{className:"text-sm text-gray-500",children:[" — ",c]})]})]},l))})]}),i.jsxs("div",{children:[i.jsx("h2",{className:"text-xl font-bold text-gray-900 mb-5",children:"Common Concerns, Answered"}),i.jsx("div",{className:"space-y-4",children:[{q:"I'm not technical",a:"Emergent is explicitly designed for non-technical builders. You describe what you want, and the AI handles all the engineering."},{q:"I just need an MVP fast",a:"That's exactly the use case Emergent was built for. Founders use it to go from idea to live app in a fraction of the time."},{q:"I need something more serious than a toy builder",a:"Emergent produces production-ready applications with real authentication, databases, and deployments. SOC 2 Type II certified."},{q:"I want to test before paying",a:"Start on the free plan — 10 credits monthly at $0. No credit card required to get started."}].map(l=>i.jsxs("div",{className:"bg-gray-50 rounded-xl p-4",children:[i.jsxs("p",{className:"font-medium text-gray-900 text-sm mb-1 flex items-center gap-2",children:[i.jsx("span",{className:"text-gray-400",children:"Q:"})," ",l.q]}),i.jsx("p",{className:"text-sm text-gray-600 leading-relaxed pl-5",children:l.a})]},l.q))})]})]})}),i.jsxs("section",{className:"py-12 border-t border-gray-100",children:[i.jsxs("div",{className:"text-center mb-8",children:[i.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-2",children:"Is Emergent Right for You?"}),i.jsx("p",{className:"text-gray-500 text-sm",children:"An honest look at where it works well — and where it may not"})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-5",children:[i.jsxs("div",{className:"bg-green-50 border border-green-200 rounded-2xl p-6",children:[i.jsxs("h3",{className:"font-semibold text-green-800 mb-4 flex items-center gap-2",children:[i.jsx(O,{className:"w-5 h-5"})," Strong fit when"]}),i.jsx("ul",{className:"space-y-2.5",children:["You want to turn an idea into a real app quickly","You want AI assistance across design, code, and deployment","You want to start free and scale as you grow","You want a faster path than building everything manually","You want to validate before hiring a dev team","You want production-ready output, not just a demo"].map(l=>i.jsxs("li",{className:"flex items-start gap-2 text-sm text-green-800",children:[i.jsx("span",{className:"w-1.5 h-1.5 bg-green-500 rounded-full mt-1.5 flex-shrink-0"}),l]},l))})]}),i.jsxs("div",{className:"bg-gray-50 border border-gray-200 rounded-2xl p-6",children:[i.jsxs("h3",{className:"font-semibold text-gray-700 mb-4 flex items-center gap-2",children:[i.jsx(Vr,{className:"w-5 h-5 text-gray-400"})," May not be the best fit if"]}),i.jsx("ul",{className:"space-y-2.5",children:["You only want to browse tools without building anything","You need a highly custom enterprise procurement process first","You are not ready to test any AI builder yet","Your use case requires extremely niche custom infrastructure"].map(l=>i.jsxs("li",{className:"flex items-start gap-2 text-sm text-gray-600",children:[i.jsx("span",{className:"w-1.5 h-1.5 bg-gray-400 rounded-full mt-1.5 flex-shrink-0"}),l]},l))})]})]})]}),i.jsxs("section",{className:"py-12 border-t border-gray-100",children:[i.jsx("div",{className:"text-center mb-8",children:i.jsx("h2",{className:"text-2xl sm:text-3xl font-bold text-gray-900 mb-3",children:"Frequently Asked Questions"})}
359),i.jsx("div",{className:"max-w-2xl mx-auto space-y-3",children:[{question:"What is Emergent?",answer:"Emergent is an AI-native app builder that lets you create full-stack web and mobile applications by describing what you want in plain English. It handles design, code, database, and deployment."},{question:"Do I need coding experience?",answer:"No. Emergent is designed for non-technical users. You describe your app through conversation, and the AI handles all the implementation. Some familiarity with app concepts helps, but it is not required."},{question:"What can I build with it?",answer:"SaaS tools, marketplaces, internal dashboards, booking platforms, directory sites, customer portals, MVPs, and more. Emergent supports common app patterns including authentication, data storage, and API integrations."},{question:"Is there a free plan?",answer:"Yes. Emergent has a free plan with 10 monthly credits at $0/month. No credit card is required to start."},{question:"How does pricing work?",answer:"Free is $0/month with 10 credits. Standard is $20/month for regular builders. Pro is $200/month for high-volume creators and agencies. Always verify current pricing on the official Emergent site."},{question:"Who is Emergent best for?",answer:"Founders launching MVPs, product managers validating ideas, agencies wanting to deliver faster, and non-technical operators building internal tools or customer experiences."},{question:"Why use this page before visiting Emergent?",answer:"This page gives you an honest, independent breakdown of what Emergent does, who it fits, and how pricing works — so you arrive at the official site informed and ready to start."},{question:"Is Emergent suitable for agencies or founders?",answer:"Yes, both. Founders use it to launch MVPs faster without a dev team. Agencies use it to speed up client delivery cycles and prototype more efficiently."}].map(l=>i.jsx(Ev,{question:l.question,answer:l.answer},l.question))}),i.jsx("div",{className:"mt-8 text-center",children:i.jsx(ra,{text:r,href:xt(t,"faq"),size:"md",eventName:"faq_cta_click"})})]}),i.jsx("section",{className:"py-14 border-t border-gray-100 text-center",children:i.jsxs("div",{className:"max-w-xl mx-auto",children:[i.jsx("h2",{className:"text-2xl sm:text-3xl font-bold text-gray-900 mb-4",children:"Start building on Emergent today"}),i.jsx("p",{className:"text-gray-600 mb-8 text-base leading-relaxed",children:"Try the free plan or review pricing and see whether Emergent fits your workflow. No credit card required to start."}),i.jsx(ra,{text:"Start Free on Emergent",href:xt(t,"final"),size:"lg",eventName:"final_cta_click"}),i.jsx("p",{className:"text-xs text-gray-400 mt-4",children:"Pricing and features may change; always verify on the official site. Affiliate link — we may earn a commission at no cost to you."})]})}),i.jsx("div",{className:"pb-24 sm:pb-10 border-t border-gray-100 pt-6 text-center",children:i.jsxs("p",{className:"text-xs text-gray-400 max-w-lg mx-auto",children:["This is an independent review and affiliate pre-sell page, not affiliated with or endorsed by Emergent. We may receive a commission if you sign up through our link at no extra cost to you."," ",i.jsx("a",{href:"/affiliate-disclosure",className:"underline hover:text-gray-600",children:"Affiliate disclosure"})," · ",i.jsx("a",{href:"/tools/emergent",className:"underline hover:text-gray-600",children:"Full Emergent review"})]})})]}),i.jsx("div",{className:"fixed bottom-0 left-0 right-0 sm:hidden z-50 bg-white border-t border-gray-200 px-4 py-3 shadow-lg",children:i.jsxs("a",{href:xt(t,"sticky"),target:"_blank",rel:"noopener noreferrer",onClick:()=>{lt("sticky_cta_click"),lt("outbound_affiliate_click",{cta_source:"sticky"})},className:"w-full flex items-center justify-center gap-2 bg-blue-600 text-white font-semibold py-3 rounded-xl text-base hover:bg-blue-700 active:bg-blue-800 transition-colors",children:["Start Free on Emergent",i.jsx(ke,{className:"w-4 h-4"})]})})]})}const qv="https://get.emergent.sh/c0xm9geoavml",Ts="Start Free on Emergent";function Mv(e,t){const a=new URL(qv);return Object.entries(e).forEach(([n,r])=>{r&&a.searchParams.set(n,r)}),t&&a.searchParams.set("ref_source",t),a.toString()}function Rv(e){const t=new URLSearchParams(e);return{utm_source:t.get("utm_source")||"",utm_medium:t.get("utm_medium")||"",utm_campaign:t.get("utm_campaign")||"",utm_term:t.get("utm_term")||"",utm_content:t.get("utm_content")||""}}function ct(e,t){typeof window.gtag=="function"&&window.gtag("event",e,t),typeof window.dataLayer<"u"&&window.dataLayer.push({event:e,...t})}function Na({text:e=Ts,href:t,size:a="md",eventName:n,className:r=""}){const o={sm:"px-5 py-2.5 text-sm",md:"px-6 py-3 text-base",lg:"px-8 py-4 text-lg"}[a];return i.jsxs("a",{href:t,target:"_blank",rel:"noopener noreferrer",onClick:()=>{ct(n),ct("outbound_affiliate_click",{cta_source:n})},className:`inline-flex items-center gap-2 font-semibold rounded-xl bg-blue-600 text-white hover:bg-blue-700 active:bg-blue-800 transition-colors shadow-sm ${o} ${r}`,children:[e,i.jsx(ke,{className:"w-4 h-4 flex-shrink-0"})]})}function Fv(){return i.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-x-5 gap-y-2 text-sm text-gray-500",children:[i.jsxs("span",{className:"flex items-center gap-1.5",children:[i.jsx(wt,{className:"w-4 h-4 text-blue-500"}),"3M+ users worldwide"]}),i.jsxs("span",{className:"flex items-center gap-1.5",children:[i.jsx(O,{className:"w-4 h-4 text-green-500"}),"Free plan available"]}),i.jsxs("span",{className:"flex items-center gap-1.5",children:[i.jsx(Ee,{className:"w-4 h-4 text-amber-500"}),"From $20/month"]}),i.jsxs("span",{className:"flex items-center gap-1.5",children:[i.jsx(ht,{className:"w-4 h-4 text-gray-400"}),"SOC 2 Type II"]})]})}function zv({question:e,answer:t}){const[a,n]=v.useState(!1);return i.jsxs("div",{className:"border border-gray-200 rounded-xl overflow-hidden",children:[i.jsxs("button",{onClick:()=>n(r=>!r),className:"w-full text-left flex items-center justify-between px-5 py-4 bg-white hover:bg-gray-50 transition-colors",children:[i.jsx("span",{className:"font-medium text-gray-900 text-sm pr-4",children:e}),a?i.jsx($r,{className:"w-4 h-4 text-gray-400 flex-shrink-0"}):i.jsx(ti,{className:"w-4 h-4 text-gray-400 flex-shrink-0"})]}),a&&i.jsx("div",{className:"px-5 pb-4 pt-3 text-sm text-gray-600 leading-relaxed border-t border-gray-100 bg-white",children:t})]})}const Sp=[{question:"What is Emergent?",answer:"Emergent is an AI-powered a
359pp builder that lets you create full-stack web and mobile applications by describing what you want in plain English. It handles design, frontend code, backend logic, database, and deployment in a single workflow."},{question:"Do I need coding experience to use Emergent?",answer:"No. Emergent is designed for non-technical builders. You describe your app through conversation and the AI handles all the implementation. Some familiarity with app concepts is helpful but not required."},{question:"What can I build with Emergent?",answer:"SaaS tools, marketplaces, internal dashboards, booking platforms, directory sites, customer portals, and MVPs. Emergent supports common app patterns including authentication, data storage, and API integrations."},{question:"Is there a free plan?",answer:"Yes. Emergent has a free plan with 10 monthly credits at $0/month. No credit card is required to start building."},{question:"How does Emergent pricing work?",answer:"Free is $0/month with 10 credits. Standard is $20/month for regular builders. Pro is $200/month for high-volume creators and agencies. Always verify current pricing on the official Emergent site before purchasing."},{question:"Who is Emergent best for?",answer:"Founders launching MVPs, product managers validating ideas, agencies delivering client work faster, and non-technical operators building internal tools or customer-facing products without hiring developers."},{question:"Is Emergent suitable for agencies and client work?",answer:"Yes. Agencies use Emergent to accelerate the prototype-to-delivery cycle, reduce back-and-forth with clients, and ship more projects per quarter without scaling headcount."},{question:"Does Emergent produce production-ready apps?",answer:"Yes. Emergent is built for real applications, not throwaway demos. It generates full-stack output with authentication, databases, and deployment to a live URL included."}],Bv={"@context":"https://schema.org","@type":"FAQPage",mainEntity:Sp.map(e=>({"@type":"Question",name:e.question,acceptedAnswer:{"@type":"Answer",text:e.answer}}))};function Uv(){const e=De(),t=Rv(e.search),a=v.useRef({milestone25:!1,milestone50:!1,milestone75:!1,milestone100:!1});v.useEffect(()=>{const r=setTimeout(()=>ct("time_on_page_30s"),3e4),o=setTimeout(()=>ct("time_on_page_60s"),6e4);function s(){const l=document.body.scrollHeight-window.innerHeight,c=l>0?window.scrollY/l*100:0,d=a.current;!d.milestone25&&c>=25&&(d.milestone25=!0,ct("scroll_25")),!d.milestone50&&c>=50&&(d.milestone50=!0,ct("scroll_50")),!d.milestone75&&c>=75&&(d.milestone75=!0,ct("scroll_75")),!d.milestone100&&c>=99&&(d.milestone100=!0,ct("scroll_100"))}return window.addEventListener("scroll",s,{passive:!0}),()=>{clearTimeout(r),clearTimeout(o),window.removeEventListener("scroll",s)}},[]);const n=r=>Mv(t,r);return i.jsxs(i.Fragment,{children:[i.jsx(Q,{title:"Emergent Review 2026 — AI App Builder for Founders, Agencies & Non-Technical Builders",description:"Honest Emergent review: what it builds, who it fits, pricing breakdown (free to $200/mo), pros, limitations, and use cases. Start free with 10 credits — no credit card required.",canonical:"/tools/emergent"}),i.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(Bv)}}),i.jsx("div",{className:"sticky top-0 z-40 bg-white border-b border-gray-100 shadow-sm",children:i.jsxs("div",{className:"max-w-5xl mx-auto px-4 sm:px-6 flex items-center justify-between h-14",children:[i.jsx(j,{to:"/",className:"text-sm font-semibold text-gray-800 hover:text-blue-600 transition-colors",children:"Como AI"}),i.jsx(Na,{text:"Start Free",href:n("nav"),size:"sm",eventName:"nav_cta_click"})]})}),i.jsxs("main",{className:"max-w-5xl mx-auto px-4 sm:px-6",children:[i.jsxs("section",{className:"pt-12 pb-14 text-center",children:[i.jsxs("div",{className:"inline-flex items-center gap-2 bg-blue-50 text-blue-700 text-xs font-semibold px-3 py-1.5 rounded-full mb-6",children:[i.jsx("span",{className:"w-1.5 h-1.5 bg-blue-500 rounded-full"}),"AI App Builder — 3M+ users"]}),i.jsx("h1",{className:"text-3xl sm:text-4xl md:text-5xl font-bold text-gray-900 leading-tight mb-5 max-w-3xl mx-auto",children:"Build a Real App with AI — Without Writing a Single Line of Code"}),i.jsx("p",{className:"text-lg text-gray-600 leading-relaxed max-w-2xl mx-auto mb-8",children:"Emergent lets you describe your idea in plain English and turns it into a working, production-ready web or mobile app. Design, code, database, and deployment — all handled by AI."}),i.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-3 mb-7",children:[i.jsx(Na,{text:Ts,href:n("hero_primary"),size:"lg",eventName:"hero_cta_click"}),i.jsxs("a",{href:"#pricing",className:"inline-flex items-center gap-2 font-semibold rounded-xl bg-white text-blue-600 border-2 border-blue-600 hover:bg-blue-50 transition-colors shadow-none px-8 py-4 text-lg",children:["See Pricing ",i.jsx(Me,{className:"w-4 h-4"})]})]}),i.jsx(Fv,{}),i.jsx("p",{className:"text-xs text-gray-400 max-w-md mx-auto mt-5",children:"Pricing and features may change; verify on the official site before purchasing. This page contains affiliate links."})]}),i.jsx("section",{className:"py-8 border-t border-gray-100",children:i.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-4",children:[{label:"Starting price",value:"$0 / month",sub:"Free plan available"},{label:"Users",value:"3M+",sub:"Worldwide"},{label:"Security",value:"SOC 2 Type II",sub:"Enterprise-grade"},{label:"Output",value:"Full-stack",sub:"Web & mobile apps"}].map(r=>i.jsxs("div",{className:"bg-gray-50 border border-gray-200 rounded-xl p-4 text-center",children:[i.jsx("p",{className:"text-xs text-gray-400 mb-1",children:r.label}),i.jsx("p",{className:"font-bold text-gray-900 text-base leading-tight",children:r.value}),i.jsx("p",{className:"text-xs text-gray-500 mt-0.5",children:r.sub})]},r.label))})}),i.jsxs("section",{className:"py-12 border-t border-gray-100",children:[i.jsx("h2",{className:"text-2xl sm:text-3xl font-bold text-gray-900 mb-4",children:"What Is Emergent?"}),i.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-gray-600 leading-relaxed mb-4",children:"Emergent is an AI-native app builder that generates full-stack web and mobile applications from a conversation. You describe what you want to build in plain English — the features, flows, and design preferences — and Emergent produces the frontend, backend, database schema, and a live deployment."}),i.jsx("p",{className:"text-gray-600 leading-relaxed",children:"Unlike drag-and-drop builders that create static websites, Emergent produces genuinely functional applications with real authentication, data storage, and API integrations. It is built for people who want to ship something real, not just mock it up."})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"p-4 bg-gray-50 rounded-xl border border-gray-100",children:[i.jsx("p",{className:"text-xs font-semibold text-gray-400 uppercase tracking-wide mb-1",children:"What it does"}),i.jsx("p",{className:"text-sm text-gray-700 leading-relaxed",children:"Generates full-stack web and mobile apps from natural language descriptions — including frontend, backend, database, and deployment."})]}),i.jsxs("div",{className:"p-4 bg-blue-50 rounded-xl border border-blue-100",children:[i.jsx("p",{className:"text-xs font-semibold text-gray-400 uppercase tracking-wide mb-1",children:"Best for"}),i.jsx("p",{className:"text-sm text-gray-700 leading-relaxed",children:"Founders launching MVPs, agencies delivering client products faster, and n
359on-technical operators building internal tools without hiring developers."})]})]})]})]}),i.jsxs("section",{className:"py-12 border-t border-gray-100",children:[i.jsxs("div",{className:"text-center mb-10",children:[i.jsx("h2",{className:"text-2xl sm:text-3xl font-bold text-gray-900 mb-3",children:"How Emergent Works"}),i.jsx("p",{className:"text-gray-500 text-base max-w-xl mx-auto",children:"Three steps from idea to live app"})]}),i.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:[{step:"01",icon:i.jsx(Ee,{className:"w-6 h-6 text-blue-600"}),title:"Describe Your Idea",body:"Type what you want to build in plain English — your features, user flows, and design preferences. No technical knowledge required."},{step:"02",icon:i.jsx(Pt,{className:"w-6 h-6 text-blue-600"}),title:"AI Builds Your App",body:"Emergent generates the frontend, backend, and database. Continue refining through conversation — the AI makes targeted changes, not full rebuilds."},{step:"03",icon:i.jsx(yt,{className:"w-6 h-6 text-blue-600"}),title:"Launch and Iterate",body:"Your app is deployed to a live URL instantly. Keep improving through conversation. What used to take weeks now happens in hours."}].map(r=>i.jsxs("div",{className:"relative bg-white border border-gray-200 rounded-2xl p-6",children:[i.jsx("span",{className:"absolute top-4 right-4 text-xs font-bold text-gray-200 select-none",children:r.step}),i.jsx("div",{className:"w-10 h-10 bg-blue-50 rounded-xl flex items-center justify-center mb-4",children:r.icon}),i.jsx("h3",{className:"font-semibold text-gray-900 mb-2",children:r.title}),i.jsx("p",{className:"text-sm text-gray-600 leading-relaxed",children:r.body})]},r.step))})]}),i.jsxs("section",{className:"py-12 border-t border-gray-100",children:[i.jsxs("div",{className:"text-center mb-10",children:[i.jsx("h2",{className:"text-2xl sm:text-3xl font-bold text-gray-900 mb-3",children:"Why Builders Choose Emergent"}),i.jsx("p",{className:"text-gray-500 text-base",children:"Key capabilities that set it apart from other AI builders"})]}),i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-5",children:[{icon:i.jsx(Ee,{className:"w-5 h-5 text-amber-500"}),title:"Build Through Conversation",body:"No drag-and-drop, no complex editors — just natural language and an AI that builds exactly what you describe."},{icon:i.jsx(xr,{className:"w-5 h-5 text-blue-500"}),title:"Production-Ready Output",body:"Emergent produces genuinely deployable applications, not just demos. Auth, databases, and API integrations are included."},{icon:i.jsx(yt,{className:"w-5 h-5 text-green-500"}),title:"Web and Mobile Support",body:"Build full-stack web apps and mobile-ready experiences in one workflow without switching tools or hiring specialists."},{icon:i.jsx(Pt,{className:"w-5 h-5 text-blue-500"}),title:"From Idea to Launch Fast",body:"Cut weeks of planning and development down to hours. Validate your idea before committing major resources."},{icon:i.jsx(wt,{className:"w-5 h-5 text-rose-500"}),title:"No Coding Required",body:"Product managers, founders, and operators can build and iterate without depending on an engineering team."},{icon:i.jsx(ht,{className:"w-5 h-5 text-gray-500"}),title:"Enterprise-Grade Security",body:"SOC 2 Type II certified. Used by 3M+ builders worldwide. Built for serious use, not just experimentation."}].map(r=>i.jsxs("div",{className:"bg-white border border-gray-200 rounded-2xl p-5 hover:border-blue-200 hover:shadow-sm transition-all",children:[i.jsx("div",{className:"w-9 h-9 bg-gray-50 rounded-lg flex items-center justify-center mb-3",children:r.icon}),i.jsx("h3",{className:"font-semibold text-gray-900 mb-1.5 text-sm",children:r.title}),i.jsx("p",{className:"text-sm text-gray-600 leading-relaxed",children:r.body})]},r.title))}),i.jsxs("div",{className:"mt-8 text-center",children:[i.jsx(Na,{href:n("benefits"),size:"md",eventName:"benefits_cta_click"}),i.jsx("p",{className:"text-xs text-gray-400 mt-3",children:"No credit card required to start on the free plan."})]})]}),i.jsxs("section",{className:"py-12 border-t border-gray-100",children:[i.jsxs("div",{className:"text-center mb-8",children:[i.jsx("h2",{className:"text-2xl sm:text-3xl font-bold text-gray-900 mb-3",children:"What You Can Build with Emergent"}),i.jsx("p",{className:"text-gray-500 text-base",children:"Common app patterns Emergent handles well"})]}),i.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-3",children:["SaaS dashboards & tools","Marketplace & directory apps","Internal ops tools","Booking & scheduling platforms","Customer portals","MVP validation builds","Agency client projects","Authentication-gated apps","Data-driven web apps"].map(r=>i.jsxs("div",{className:"flex items-center gap-2 bg-gray-50 border border-gray-100 rounded-xl px-4 py-3",children:[i.jsx(O,{className:"w-4 h-4 text-green-500 flex-shrink-0"}),i.jsx("span",{className:"text-sm text-gray-700",children:r})]},r))})]}),i.jsxs("section",{className:"py-12 border-t border-gray-100",children:[i.jsxs("div",{className:"text-center mb-10",children:[i.jsx("h2",{className:"text-2xl sm:text-3xl font-bold text-gray-900 mb-3",children:"Who Emergent Is For"}),i.jsx("p",{className:"text-gray-500 text-base",children:"Strong fit across several builder profiles"})]}),i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-5",children:[{icon:i.jsx(xr,{className:"w-5 h-5 text-blue-600"}),label:"Founders & Startup Teams",who:"You have a product idea and want to move fast.",why:"Build and ship an MVP without a dev team. Validate your idea before committing to hiring or fundraising.",outcome:"A working product live in days, not months."},{icon:i.jsx(Pt,{className:"w-5 h-5 text-amber-500"}),label:"Product Managers",who:"You need to validate a feature or product hypothesis quickly.",why:"Skip waiting on engineering sprints. Build real prototypes to test with users before committing resources.",outcome:"Faster validation cycles and stronger stakeholder buy-in."},{icon:i.jsx(wt,{className:"w-5 h-5 text-rose-500"}),label:"Agencies & Freelancers",who:"You deliver digital products for clients and want to work faster.",why:"Accelerate the design-to-delivery cycle. Build client prototypes rapidly and ship more projects per quarter.",outcome:"Better margins and faster client approvals."},{icon:i.jsx(ht,{className:"w-5 h-5 text-green-600"}),label:"Non-Technical Operators",who:"You want to build an internal tool without learning to code.",why:"Remove the dependency on developers for internal tooling. Describe what you need and get a working application.",outcome:"Operational efficiency without engineering overhead."}].map(r=>i.jsxs("div",{className:"bg-white border border-gray-200 rounded-2xl p-6",children:[i.jsx("div",{className:"w-10 h-10 bg-gray-50 rounded-xl flex items-center justify-center mb-3",children:r.icon}),i.jsx("h3",{className:"font-semibold text-gray-900 mb-1",children:r.label}),i.jsx("p",{className:"text-xs font-medium text-blue-600 mb-3",children:r.who}),i.jsx("p",{className:"text-sm text-gray-600 leading-relaxed mb-3",children:r.why}),i.jsxs("div",{className:"flex items-start gap-2",children:[i.jsx(O,{className:"w-4 h-4 text-green-500 flex-shrink-0 mt-0.5"}),i.jsx("p",{className:"text-sm text-gray-700 font-medium",children:r.outcome})]})]},r.label))})]}),i.jsxs("section",{className:"py-12 border-t border-gray-100",id:"pricing",children:[i.jsxs("div",{className:"text-center mb-10",children:[i.jsx("h2",{className:"text-2xl sm:text-3xl font-bold text-gray-900 mb-3",children:"Emergent Pricing"}),i.jsx("p",{className:"text-gray-500 text-base",children:"Three plans — start free, scale when you need to"})]}),i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-5 mb-8",children:[{name:"Free",price:"$0",period:"/month",highlight:!1,badge:"",description:"Best for trying Emergent before committing.",items:["10 free monthly credits","Full-stack app generation","Live deployment included","No credit card required"]},{name:"Standard",price:"$20",period:"/month",highlight:!0,badge:"Most popular",description:"Best for first-time builders ready to build seriously.",items:["Higher usage limits","Priority generation","Full-stack output","Web & mobile support"]},{name:"Pro",price:"$200",period:"/month",highlight:!1,badge:"",description:"For serious creators, agencies, and power users.",items:["Maximum usage limits","Priority support","Advanced customization","Ideal for client work"]}].map(r=>i.jsxs("div",{className:`relative rounded-2xl p-6 border ${r.highlight?"border-blue-500 bg-blue-50 shadow-md":"border-gray-200 bg-white"}`,children:[r.badge&&i.jsx("span",{className:"absolute -top-3 left-1/2 -translate-x-1/2 bg-blue-600 text-white text-xs font-bold px-3 py-1 rounded-full whitespace-nowrap",children:r.badge}),i.jsx("h3",{className:"font-bold text-gray-900 text-lg mb-1",children:r.name}),i.jsxs("div",{className:"flex items-baseline gap-0.5 mb-2",children:[i.jsx("span",{className:"text-3xl font-bold text-gray-900",children:r.price}),i.jsx("span",{className:"text-gray-500 text-sm",children:r.period})]}),i.jsx("p",{className:"text-sm text-gray-600 mb-4",children:r.description}),i.jsx("ul",{className:"space-y-2",children:r.items.map(o=>i.jsxs("li",{className:"flex items-center gap-2 text-sm text-gray-700",children:[i.jsx(O,{className:"w-4 h-4 text-green-500 flex-shrink-0"}),o]},o))})]},r.name))}),i.jsxs("div",{className:"text-center",children:[i.jsx(Na,{href:n("pricing"),size:"md",eventName:"pricing_cta_click"}),i.jsxs("p",{className:"text-xs text-gray-400 mt-3",children:["Pricing and features can change — confirm on Emergent before purchasing."," ",i.jsx(j,{to:"/affiliate-disclosure",className:"underline hover:text-gray-600",children:"Affiliate disclosure."})]})]})]}),i.jsxs("section",{className:"py-12 border-t border-gray-100",children:[i.jsxs("div",{className:"text-center mb-8",children:[i.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-2",children:"Emergent — Pros & Limitations"}),i.jsx("p",{className:"text-gray-500 text-sm",children:"An honest look at where it works well and where it may not"})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-5",children:[i.jsxs("div",{className:"bg-green-50 border border-green-200 rounded-2xl p-6",children:[i.jsxs("h3",{className:"font-semibold text-green-800 mb-4 flex items-center gap-2",children:[i.jsx(O,{className:"w-5 h-5"})," Pros"]}),i.jsx("ul",{className:"space-y-2.5",children:["No coding knowledge required","Full-stack output including backend and database","Production-ready deployments to a live URL","Conversation-based iteration — no rebuilds from scratch","Free plan with 10 credits — no credit card needed","SOC 2 Type II security certification","Strong user base: 3M+ active builders","Handles auth, APIs, and data storage automatically"].map(r=>i.jsxs("li",{className:"flex items-start gap-2 text-sm text-green-800",children:[i.jsx("span",{className:"w-1.5 h-1.5 bg-green-500 rounded-full mt-1.5 flex-shrink-0"}),r]},r))})]}),i.jsxs("div",{className:"bg-gray-50 border border-gray-200 rounded-2xl p-6",children:[i.jsxs("h3",{className:"font-semibold text-gray-700 mb-4 flex items-center gap-2",children:[i.jsx(Vr,{className:"w-5 h-5 text-gray-400"})," Limitations"]}),i.jsx("ul",{className:"space-y-2.5",children:["Free plan is limited to 10 credits per month","Highly custom enterprise infrastru
359cture may need additional work","AI-generated code may need refinement for very complex logic","Not ideal if you only want to browse without building","Pro plan ($200/mo) is a significant jump from Standard ($20/mo)"].map(r=>i.jsxs("li",{className:"flex items-start gap-2 text-sm text-gray-600",children:[i.jsx("span",{className:"w-1.5 h-1.5 bg-gray-400 rounded-full mt-1.5 flex-shrink-0"}),r]},r))})]})]})]}),i.jsx("section",{className:"py-12 border-t border-gray-100",children:i.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-8",children:[i.jsxs("div",{children:[i.jsx("h2",{className:"text-xl font-bold text-gray-900 mb-5",children:"Built on Real Foundations"}),i.jsx("ul",{className:"space-y-3",children:[["AI-assisted app creation","Design, code, and infrastructure generated through natural language."],["Full-stack output","Frontend, backend, database, and hosting in one workflow."],["Production-ready","Designed for real apps, not throwaway prototypes."],["SOC 2 Type II","Enterprise-grade security certification."],["Free plan available","Try before you commit — 10 credits monthly at $0."],["3M+ users worldwide","A proven platform with a large active community."]].map(([r,o])=>i.jsxs("li",{className:"flex items-start gap-3",children:[i.jsx(O,{className:"w-5 h-5 text-green-500 flex-shrink-0 mt-0.5"}),i.jsxs("div",{children:[i.jsx("span",{className:"font-medium text-gray-900 text-sm",children:r}),i.jsxs("span",{className:"text-sm text-gray-500",children:[" — ",o]})]})]},r))})]}),i.jsxs("div",{children:[i.jsx("h2",{className:"text-xl font-bold text-gray-900 mb-5",children:"Common Concerns, Answered"}),i.jsx("div",{className:"space-y-3",children:[{q:"I'm not technical",a:"Emergent is explicitly designed for non-technical builders. You describe what you want, and the AI handles all the engineering."},{q:"I just need an MVP fast",a:"That's exactly the use case Emergent was built for. Founders use it to go from idea to live app in a fraction of the time."},{q:"I need more than a toy builder",a:"Emergent produces production-ready applications with real authentication, databases, and deployments. SOC 2 Type II certified."},{q:"I want to test before paying",a:"Start on the free plan — 10 credits monthly at $0. No credit card required to get started."}].map(r=>i.jsxs("div",{className:"bg-gray-50 rounded-xl p-4",children:[i.jsxs("p",{className:"font-medium text-gray-900 text-sm mb-1",children:[i.jsx("span",{className:"text-gray-400",children:"Q:"})," ",r.q]}),i.jsx("p",{className:"text-sm text-gray-600 leading-relaxed pl-5",children:r.a})]},r.q))})]})]})}),i.jsx("section",{className:"py-12 border-t border-gray-100",children:i.jsxs("div",{className:"bg-amber-50 border border-amber-200 rounded-2xl p-6 md:p-8",children:[i.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[i.jsx(ql,{className:"w-5 h-5 text-amber-500"}),i.jsx("h2",{className:"text-lg font-bold text-gray-900",children:"Editorial Verdict"})]}),i.jsx("p",{className:"text-gray-700 leading-relaxed mb-4",children:"Emergent is one of the most capable AI app builders available in 2026. It stands out for producing genuinely deployable full-stack applications — not just UI mockups — through natural language alone. The free plan with 10 credits makes it easy to test before committing, and the Standard plan at $20/month is accessible for individual builders."}),i.jsx("p",{className:"text-gray-700 leading-relaxed",children:"It is the strongest fit for founders who need to validate an MVP fast, agencies that want to speed up client delivery, and non-technical operators building internal tools. If you have an app idea and want the fastest path from description to a working product, Emergent is worth starting with."}),i.jsxs("div",{className:"mt-4 pt-4 border-t border-amber-200 flex items-center gap-2 text-xs text-amber-700",children:[i.jsx("span",{children:"Last reviewed: April 2026"}),i.jsx("span",{children:"·"}),i.jsx(j,{to:"/review-methodology",className:"underline hover:text-amber-900",children:"Editorial methodology"})]})]})}),i.jsxs("section",{className:"py-12 border-t border-gray-100",children:[i.jsx("div",{className:"text-center mb-8",children:i.jsx("h2",{className:"text-2xl sm:text-3xl font-bold text-gray-900 mb-3",children:"Frequently Asked Questions"})}
359),i.jsx("div",{className:"max-w-2xl mx-auto space-y-3",children:Sp.map(r=>i.jsx(zv,{question:r.question,answer:r.answer},r.question))}),i.jsx("div",{className:"mt-8 text-center",children:i.jsx(Na,{href:n("faq"),size:"md",eventName:"faq_cta_click"})})]}),i.jsx("section",{className:"py-14 border-t border-gray-100 text-center",children:i.jsxs("div",{className:"max-w-xl mx-auto",children:[i.jsx("h2",{className:"text-2xl sm:text-3xl font-bold text-gray-900 mb-4",children:"Start building on Emergent today"}),i.jsx("p",{className:"text-gray-600 mb-8 text-base leading-relaxed",children:"Try the free plan with 10 credits — no credit card required. See whether Emergent fits your workflow before committing to a paid plan."}),i.jsx(Na,{href:n("final"),size:"lg",eventName:"final_cta_click"}),i.jsxs("p",{className:"text-xs text-gray-400 mt-4",children:["Pricing and features may change; always verify on the official site."," ",i.jsx(j,{to:"/affiliate-disclosure",className:"underline hover:text-gray-600",children:"Affiliate disclosure"})," — ","we may earn a commission at no cost to you."]})]})}),i.jsxs("div",{className:"pb-24 sm:pb-10 border-t border-gray-100 pt-6",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-4 text-sm text-gray-500",children:[i.jsx(j,{to:"/compare/emergent-vs-lovable",className:"hover:text-blue-600 hover:underline transition-colors",children:"Emergent vs Lovable"}),i.jsx("span",{className:"text-gray-300",children:"·"}),i.jsx(j,{to:"/compare/emergent-vs-bolt",className:"hover:text-blue-600 hover:underline transition-colors",children:"Emergent vs Bolt"}),i.jsx("span",{className:"text-gray-300",children:"·"}),i.jsx(j,{to:"/categories/ai-app-builders",className:"hover:text-blue-600 hover:underline transition-colors",children:"All AI App Builders"}),i.jsx("span",{className:"text-gray-300",children:"·"}),i.jsx(j,{to:"/alternatives/emergent",className:"hover:text-blue-600 hover:underline transition-colors",children:"Emergent Alternatives"})]}),i.jsxs("p",{className:"text-xs text-gray-400 text-center mt-5 max-w-lg mx-auto",children:["This is an independent review page, not affiliated with or endorsed by Emergent."," ",i.jsx(j,{to:"/affiliate-disclosure",className:"underline hover:text-gray-600",children:"Affiliate disclosure"})]})]})]}),i.jsx("div",{className:"fixed bottom-0 left-0 right-0 sm:hidden z-50 bg-white border-t border-gray-200 px-4 py-3 shadow-lg",children:i.jsxs("a",{href:n("sticky"),target:"_blank",rel:"noopener noreferrer",onClick:()=>{ct("sticky_cta_click"),ct("outbound_affiliate_click",{cta_source:"sticky"})},className:"w-full flex items-center justify-center gap-2 bg-blue-600 text-white font-semibold py-3 rounded-xl text-base hover:bg-blue-700 active:bg-blue-800 transition-colors",children:[Ts,i.jsx(ke,{className:"w-4 h-4"})]})})]})}const kt="https://gamma.app",Nd={headlineVariant:0,ctaVariant:0,heroCopyLength:"medium",pricingPosition:"standard",showTrustStrip:!0},Gv=[{h1:"Create Beautiful Presentations in Seconds — with AI",sub:"Gamma turns your outline or idea into a polished, shareable presentation instantly. No design skills, no PowerPoint headaches — just describe what you need and let AI handle the rest."},{h1:"Stop Spending Hours on Slides. Let Gamma Build Them.",sub:"Gamma generates complete, professionally designed presentations from a single prompt. Share via link — no file attachments required."},{h1:"Your Presentation Is Ready in Under 2 Minutes — Thanks to AI",sub:"Gamma is the AI presentation tool used by millions of professionals, students, and founders. Describe your deck, and Gamma designs it — beautifully."}],Wv=["Create a Presentation Free","Build My Deck with Gamma","Try Gamma for Free"],Mn={pricing:{badge:"Free plan available",headline:"Start Free. No Credit Card Required.",sub:"Gamma has a free tier so you can create your first AI presentation before spending a dollar. Paid plans unlock unlimited AI generations."},"pitch-deck":{badge:"For founders & pitch decks",headline:"Your Investor Pitch Deck in Minutes, Not Days",sub:"Gamma generates investor-ready pitch decks from your idea. Founders use it to get a polished first draft fast — then customize the story."},student:{badge:"For students & educators",headline:"AI Presentations for School, Projects, and Research",sub:"Create polished slide decks for class, research presentations, and academic projects in a fraction of the time."},marketing:{badge:"For marketers & agencies",headline:"Client-Ready Decks Without the Design Time",sub:"Gamma helps marketing teams and agencies produce polished client presentations faster — so you spend time on strategy, not formatting."}};function Ov(e){const t=e.toLowerCase();return t.includes("pricing")||t.includes("price")||t.includes("cost")||t.includes("free")?Mn.pricing:t.includes("pitch")||t.includes("investor")||t.includes("startup")||t.includes("founder")?Mn["pitch-deck"]:t.includes("student")||t.includes("school")||t.includes("education")?Mn.student:t.includes("marketing")||t.includes("agency")||t.includes("client")?Mn.marketing:null}function At(e,t,a){const n=new URL(e);return Object.entries(t).forEach(([r,o])=>{o&&n.searchParams.set(r,o)}),a&&n.searchParams.set("ref_source",a),n.toString()}function $v(e){const t=new URLSearchParams(e);return{utm_source:t.get("utm_source")||"",utm_medium:t.get("utm_medium")||"",utm_campaign:t.get("utm_campaign")||"",utm_term:t.get("utm_term")||"",utm_content:t.get("utm_content")||""}}function dt(e,t){typeof window.gtag=="function"&&window.gtag("event",e,t),typeof window.dataLayer<"u"&&window.dataLayer.push({event:e,...t})}function oa({text:e,href:t,size:a="md",eventName:n,className:r=""}){const o={sm:"px-5 py-2.5 text-sm",md:"px-6 py-3 text-base",lg:"px-8 py-4 text-lg"}[a];return i.jsxs("a",{href:t,target:"_blank",rel:"noopener noreferrer",onClick:()=>{dt(n),dt("outbound_click",{cta_source:n})},className:`inline-flex items-center gap-2 font-semibold rounded-xl bg-blue-600 text-white hover:bg-blue-700 active:bg-blue-800 transition-colors shadow-sm ${o} ${r}`,children:[e,i.jsx(ke,{className:"w-4 h-4 flex-shrink-0"})]})}function _v(){return i.jsxs("div",{className:"flex flex-wrap items-center gap-x-5 gap-y-2 text-sm text-gray-500",children:[i.jsxs("span",{className:"flex items-center gap-1.5",children:[i.jsx(wt,{className:"w-4 h-4 text-blue-500"})," 10M+ users worldwide"]}),i.jsxs("span",{className:"flex items-center gap-1.5",children:[i.jsx(O,{className:"w-4 h-4 text-green-500"})," Free plan available"]}),i.jsxs("span",{className:"flex items-center gap-1.5",children:[i.jsx(Ee,{className:"w-4 h-4 text-amber-500"})," Ready in under 2 minutes"]}),i.jsxs("span",{className:"flex items-center gap-1.5",children:[i.jsx(ht,{className:"w-4 h-4 text-gray-400"})," No design skills needed"]})]})}function Vv({question:e,answer:t}){const[a,n]=v.useState(!1);return i.jsxs("div",{className:"border border-gray-200 rounded-xl overflow-hidden",children:[i.jsxs("button",{onClick:()=>n(r=>!r),className:"w-full text-left flex items-center justify-between px-5 py-4 bg-white hover:bg-gray-50 transition-colors",children:[i.jsx("span",{className:"font-medium text-gray-900 text-sm pr-4",children:e}),a?i.jsx($r,{className:"w-4 h-4 text-gray-400 flex-shrink-0"}):i.jsx(ti,{className:"w-4 h-4 text-gray-400 flex-shrink-0"})]}),a&&i.jsx("div",{className:"px-5 pb-4 text-sm text-gray-600 leading-relaxed border-t border-gray-100 pt-3 bg-white",children:t})]})}function Hv(){const e=De(),t=$v(e.search),a=Ov(e.search),n=Gv[Nd.headlineVariant],r=Wv[Nd.ctaVariant];At(kt,t);const o=v.useRef({milestone25:!1,milestone50:!1,milestone75:!1,milestone100:!1});v.useEffect(()=>{const l=setTimeout(()=>dt("time_on_page_30s"),3e4),c=setTimeout(()=>dt("time_on_page_60s"),6e4);function d(){const m=window.scrollY,u=document.body.scrollHeight-window.innerHeight,p=u>0?m/u*100:0,y=o.current;!y.milestone25&&p>=25&&(y.milestone25=!0,dt("scroll_25")),!y.milestone50&&p>=50&&(y.milestone50=!0,dt("scroll_50")),!y.milestone75&&p>=75&&(y.milestone75=!0,dt("scroll_75")),!y.milestone100&&p>=99&&(y.milestone100=!0,dt("scroll_100"))}return window.addEventListener("scroll",d,{passive:!0}),()=>{clearTimeout(l),clearTimeout(c),window.removeEventListener("scroll",d)}},[]);const s={"@context":"https://schema.org","@type":"FAQPage",mainEntity:[{"@type":"Question",name:"What is Gamma?",acceptedA
359nswer:{"@type":"Answer",text:"Gamma is an AI-powered presentation tool that generates polished, shareable slide decks from a text prompt or outline in seconds."}},{"@type":"Question",name:"Is Gamma free to use?",acceptedAnswer:{"@type":"Answer",text:"Yes. Gamma has a free plan with limited AI generations. Paid plans unlock unlimited AI usage and team features."}},{"@type":"Question",name:"Can I export Gamma presentations to PowerPoint?",acceptedAnswer:{"@type":"Answer",text:"Yes. Gamma supports exporting presentations to PDF and PowerPoint format."}}]};return i.jsxs(i.Fragment,{children:[i.jsx(Q,{title:"Gamma Review: AI Presentations in Seconds — Pricing, Use Cases & Free Plan",description:"See what Gamma can build for you, who it fits best, and how the free and paid plans compare. Full independent breakdown for founders, students, and marketing teams.",canonical:"/tools/gamma",noIndex:!0}),i.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(s)}}),i.jsx("div",{className:"sticky top-0 z-40 bg-white border-b border-gray-100 shadow-sm",children:i.jsxs("div",{className:"max-w-5xl mx-auto px-4 sm:px-6 flex items-center justify-between h-14",children:[i.jsx("a",{href:"/",className:"text-sm font-semibold text-gray-800 hover:text-blue-600 transition-colors",children:"Como AI"}),i.jsx(oa,{text:"Try Gamma Free",href:At(kt,t,"nav"),size:"sm",eventName:"nav_cta_click"})]})}),a&&i.jsxs("div",{className:"bg-blue-600 text-white text-center py-2.5 px-4 text-sm font-medium",children:[a.badge," — ",a.headline]}),i.jsxs("main",{className:"max-w-5xl mx-auto px-4 sm:px-6",children:[i.jsxs("section",{className:"pt-12 pb-14 text-center",children:[i.jsxs("div",{className:"inline-flex items-center gap-2 bg-blue-50 text-blue-700 text-xs font-semibold px-3 py-1.5 rounded-full mb-6",children:[i.jsx("span",{className:"w-1.5 h-1.5 bg-blue-500 rounded-full"}),"AI Presentation Tool — 10M+ users"]}),i.jsx("h1",{className:"text-3xl sm:text-4xl md:text-5xl font-bold text-gray-900 leading-tight mb-5 max-w-3xl mx-auto",children:a?a.headline:n.h1}),i.jsx("p",{className:"text-lg text-gray-600 leading-relaxed max-w-2xl mx-auto mb-8",children:a?a.sub:n.sub}),i.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-3 mb-6",children:[i.jsx(oa,{text:r,href:At(kt,t,"hero_primary"),size:"lg",eventName:"hero_cta_click"}),i.jsx(oa,{text:"See Pricing & Plans",href:At(kt+"/pricing",t,"hero_secondary"),size:"lg",eventName:"hero_secondary_cta_click",className:"bg-white text-blue-600 border-2 border-blue-600 hover:bg-blue-50 shadow-none"})]}),i.jsx("div",{className:"flex justify-center mb-4",children:i.jsx(_v,{})}),i.jsx("p",{className:"text-xs text-gray-400 max-w-md mx-auto",children:"Pricing and features may change; always verify on the official site before purchasing."})]}),i.jsxs("section",{className:"py-12 border-t border-gray-100",children:[i.jsxs("div",{className:"text-center mb-10",children:[i.jsx("h2",{className:"text-2xl sm:text-3xl font-bold text-gray-900 mb-3",children:"How Gamma Works"}),i.jsx("p",{className:"text-gray-500 text-base max-w-xl mx-auto",children:"Three steps from idea to shareable presentation"})]}),i.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:[{step:"01",icon:i.jsx(Ee,{className:"w-6 h-6 text-blue-600"}),title:"Describe Your Presentation",body:"Type a prompt, paste an outline, or import an existing document. Gamma understands plain English — no templates to fill out."},{step:"02",icon:i.jsx(Pt,{className:"w-6 h-6 text-blue-600"}),title:"AI Generates Your Deck",body:"Gamma creates a complete, visually polished presentation: layouts, typography, images, and structure — all handled automatically."},{step:"03",icon:i.jsx(yt,{className:"w-6 h-6 text-blue-600"}),title:"Share via Link or Export",body:"Your presentation lives on the web — share a link instantly. Or export to PDF or PowerPoint for traditional delivery."}].map(l=>i.jsxs("div",{className:"relative bg-white border border-gray-200 rounded-2xl p-6",children:[i.jsx("span",{className:"absolute top-4 right-4 text-xs font-bold text-gray-200 select-none",children:l.step}),i.jsx("div",{className:"w-10 h-10 bg-blue-50 rounded-xl flex items-center justify-center mb-4",children:l.icon}),i.jsx("h3",{className:"font-semibold text-gray-900 mb-2",children:l.title}),i.jsx("p",{className:"text-sm text-gray-600 leading-relaxed",children:l.body})]},l.step))})]}),i.jsxs("section",{className:"py-12 border-t border-gray-100",children:[i.jsxs("div",{className:"text-center mb-10",children:[i.jsx("h2",{className:"text-2xl sm:text-3xl font-bold text-gray-900 mb-3",children:"Why People Choose Gamma"}),i.jsx("p",{className:"text-gray-500 text-base",children:"The key capabilities that make it stand out"})]}),i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-5",children:[{icon:i.jsx(Ee,{className:"w-5 h-5 text-amber-500"}),title:"Ready in Under 2 Minutes",body:"From blank page to polished presentation in seconds. Gamma is the fastest way to turn an idea into something you can share."},{icon:i.jsx(xr,{className:"w-5 h-5 text-blue-500"}),title:"Modern, Professional Design",body:"Every Gamma presentation looks current and polished. No clip art, no generic templates — AI picks layouts and visuals that work."},{icon:i.jsx(yt,{className:"w-5 h-5 text-green-500"}),title:"Web-Native & Easy to Share",body:'Gamma presentations live on the web. Share a link — no file attachments, no version confusion, no "does this work on Mac?"'},{icon:i.jsx(Pt,{className:"w-5 h-5 text-blue-500"}),title:"Import From Anything",body:"Turn a document, PDF, or Google Doc into a presentation. Gamma reads your content and creates the deck for you."},{icon:i.jsx(wt,{className:"w-5 h-5 text-rose-500"}),title:"No Design Skills Required",body:"Gamma was built for people who hate slide design. If you can type, you can create a professional presentation."},{icon:i.jsx(ht,{className:"w-5 h-5 text-gray-500"}),title:"Trusted at Scale",body:"Used by 10M+ users including teams at leading companies, universities, and startups. Gamma is built for serious professional use."}].map(l=>i.jsxs("div",{className:"bg-white border border-gray-200 rounded-2xl p-5 hover:border-blue-200 hover:shadow-sm transition-all",children:[i.jsx("div",{className:"w-9 h-9 bg-gray-50 rounded-lg flex items-center justify-center mb-3",children:l.icon}),i.jsx("h3",{className:"font-semibold text-gray-900 mb-1.5 text-sm",children:l.title}),i.jsx("p",{className:"text-sm text-gray-600 leading-relaxed",children:l.body})]}
359,l.title))}),i.jsx("div",{className:"mt-8 text-center",children:i.jsx(oa,{text:r,href:At(kt,t,"benefits"),size:"md",eventName:"benefits_cta_click"})})]}),i.jsxs("section",{className:"py-12 border-t border-gray-100",children:[i.jsxs("div",{className:"text-center mb-10",children:[i.jsx("h2",{className:"text-2xl sm:text-3xl font-bold text-gray-900 mb-3",children:"Who Gamma Is For"}),i.jsx("p",{className:"text-gray-500 text-base",children:"Strong fit across many presentation use cases"})]}),i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-5",children:[{icon:"🚀",label:"Founders & Startup Teams",who:"You need a pitch deck or investor update — fast.",why:"Gamma generates a polished first draft so you can focus on your narrative and story, not slide formatting. Great for rapid iteration.",outcome:"A pitch-ready deck in minutes, not days."},{icon:"📋",label:"Marketing Teams & Agencies",who:"You create client-facing presentations regularly.",why:"Gamma dramatically speeds up the design phase. Create first drafts for client decks, campaign reviews, and strategy presentations faster than any other tool.",outcome:"More presentations, less design time."},{icon:"🎓",label:"Students & Educators",who:"You create presentations for class, projects, or lectures.",why:"Gamma turns research notes and outlines into structured presentations automatically. Students love it for project presentations; educators for course content.",outcome:"Better presentations with a fraction of the effort."},{icon:"💼",label:"Professionals & Consultants",who:"You create reports, proposals, and team briefings.",why:"Gamma transforms documents into visually engaging presentations — no more converting written reports to slides by hand.",outcome:"Shareable, professional presentations from existing content."}].map(l=>i.jsxs("div",{className:"bg-white border border-gray-200 rounded-2xl p-6",children:[i.jsx("div",{className:"text-2xl mb-3",children:l.icon}),i.jsx("h3",{className:"font-semibold text-gray-900 mb-1",children:l.label}),i.jsx("p",{className:"text-xs font-medium text-blue-600 mb-3 uppercase tracking-wide",children:l.who}),i.jsx("p",{className:"text-sm text-gray-600 leading-relaxed mb-3",children:l.why}),i.jsxs("div",{className:"flex items-start gap-2",children:[i.jsx(O,{className:"w-4 h-4 text-green-500 flex-shrink-0 mt-0.5"}),i.jsx("p",{className:"text-sm text-gray-700 font-medium",children:l.outcome})]})]},l.label))})]}),i.jsxs("section",{className:"py-12 border-t border-gray-100",id:"pricing",children:[i.jsxs("div",{className:"text-center mb-10",children:[i.jsx("h2",{className:"text-2xl sm:text-3xl font-bold text-gray-900 mb-3",children:"Gamma Pricing"}),i.jsx("p",{className:"text-gray-500 text-base",children:"Start free — upgrade when you need more AI generations"})]}),i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-5 mb-6",children:[{name:"Free",price:"$0",period:"/month",highlight:!1,badge:"",description:"Best for trying Gamma and occasional use.",items:["Limited AI generations included","Web-native presentations","PDF and PowerPoint export","No credit card required"]},{name:"Plus",price:"$10",period:"/month",highlight:!0,badge:"Most popular",description:"Best for professionals and regular creators.",items:["Unlimited AI generations","Custom fonts and colors","Remove Gamma branding","Priority support"]},{name:"Pro",price:"$20",period:"/month",highlight:!1,badge:"",description:"For teams and power users.",items:["Everything in Plus","Team collaboration features","Analytics on presentations","Advanced customization"]}].map(l=>i.jsxs("div",{className:`relative rounded-2xl p-6 border ${l.highlight?"border-blue-500 bg-blue-50 shadow-md":"border-gray-200 bg-white"}`,children:[l.badge&&i.jsx("span",{className:"absolute -top-3 left-1/2 -translate-x-1/2 bg-blue-600 text-white text-xs font-bold px-3 py-1 rounded-full whitespace-nowrap",children:l.badge}),i.jsx("h3",{className:"font-bold text-gray-900 text-lg mb-1",children:l.name}),i.jsxs("div",{className:"flex items-baseline gap-0.5 mb-2",children:[i.jsx("span",{className:"text-3xl font-bold text-gray-900",children:l.price}),i.jsx("span",{className:"text-gray-500 text-sm",children:l.period})]}),i.jsx("p",{className:"text-sm text-gray-600 mb-4",children:l.description}),i.jsx("ul",{className:"space-y-2 mb-2",children:l.items.map(c=>i.jsxs("li",{className:"flex items-center gap-2 text-sm text-gray-700",children:[i.jsx(O,{className:"w-4 h-4 text-green-500 flex-shrink-0"}),c]},c))})]},l.name))}),i.jsxs("div",{className:"text-center",children:[i.jsx(oa,{text:"Create a Presentation Free",href:At(kt,t,"pricing"),size:"md",eventName:"pricing_cta_click"}),i.jsx("p",{className:"text-xs text-gray-400 mt-3",children:"Features and pricing can change — confirm on Gamma before purchasing."})]})]}),i.jsx("section",{className:"py-12 border-t border-gray-100",children:i.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-8 mb-10",children:[i.jsxs("div",{children:[i.jsx("h2",{className:"text-xl font-bold text-gray-900 mb-5",children:"Built on Real Foundations"}),i.jsx("ul",{className:"space-y-3",children:[["AI presentation generation","Complete, designed decks from a single prompt or outline."],["Web-native format","Share via link — no attachments, no file format confusion."],["PDF & PowerPoint export","Take your deck anywhere with flexible export options."],["Import documents","Turn existing PDFs, Docs, or outlines into presentations."],["Free plan available","Try before you commit — no credit card required to start."],["10M+ users worldwide","A proven product with a large, active community."]].map(([l,c])=>i.jsxs("li",{className:"flex items-start gap-3",children:[i.jsx(O,{className:"w-5 h-5 text-green-500 flex-shrink-0 mt-0.5"}),i.jsxs("div",{children:[i.jsx("span",{className:"font-medium text-gray-900 text-sm",children:l}),i.jsxs("span",{className:"text-sm text-gray-500",children:[" — ",c]})]})]},l))})]}),i.jsxs("div",{children:[i.jsx("h2",{className:"text-xl font-bold text-gray-900 mb-5",children:"Common Concerns, Answered"}),i.jsx("div",{className:"space-y-4",children:[{q:"I need my presentation to match our brand",a:"Gamma supports custom colors, fonts, and branding on paid plans. For strict brand compliance, use Gamma to draft and then export to PowerPoint for final polish."},{q:"I need a pitch deck quickly",a:"That's exactly what Gamma is built for. Describe your startup, key metrics, and problem you solve — Gamma drafts the deck. Most founders iterate from there in under an hour."},{q:"I'm worried it will look generic",a:"Gamma's design output is consistently modern and professional — far from the generic PowerPoint template look. The AI selects layouts and visuals that suit your content."},{q:"I want to test it before paying",a:"Start on the free plan — no credit card required. Create your first presentation and see the quality before deciding on a paid plan."}].map(l=>i.jsxs("div",{className:"bg-gray-50 rounded-xl p-4",children:[i.jsxs("p",{className:"font-medium text-gray-900 text-sm mb-1 flex items-center gap-2",children:[i.jsx("span",{className:"text-gray-400",children:"Q:"})," ",l.q]}),i.jsx("p",{className:"text-sm text-gray-600 leading-relaxed pl-5",children:l.a})]},l.q))})]})]})}),i.jsxs("section",{className:"py-12 border-t border-gray-100",children:[i.jsxs("div",{className:"text-center mb-8",children:[i.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-2",children:"Is Gamma Right for You?"}),i.jsx("p",{className:"text-gray-500 text-sm",children:"An honest look at where it works well — and where it may not"})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-5",children:[i.jsxs("div",{className:"bg-green-50 border border-green-200 rounded-2xl p-6",children:[i.jsxs("h3",{className:"font-semibold text-green-800 mb-4 flex items-center gap-2",children:[i.jsx(O,{className:"w-5 h-5"})," Strong fit when"]}),i.jsx("ul",{className:"space-y-2.5",children:["You need a polished presentation fast","You dislike spending time on slide design and formatting","You want to turn a document or outline into a deck","You want web-native presentations shareable by link","You are a student, founder, or professional who creates decks regularly","You want to start free with no commitment"].map(l=>i.jsxs("li",{className:"flex items-start gap-2 text-sm text-green-800",children:[i.jsx("span",{className:"w-1.5 h-1.5 bg-green-500 rounded-full mt-1.5 flex-shrink-0"}),l]},l))})]}),i.jsxs("div",{className:"bg-gray-50 border border-gray-200 rounded-2xl p-6",children:[i.jsxs("h3",{className:"font-semibold text-gray-700 mb-4 flex items-center gap-2",children:[i.jsx(Vr,{className:"w-5 h-5 text-gray-400"})," May not be the best fit if"]}),i.jsx("ul",{className:"space-y-2.5",children:["You need pixel-perfect brand control on every element","You require complex data visualizations and custom charts","Your organization requires .pptx format as the primary deliverable","You need deep PowerPoint feature parity for animation-heavy decks"].map(l=>i.jsxs("li",{className:"flex items-start gap-2 text-sm text-gray-600",children:[i.jsx("span",{className:"w-1.5 h-1.5 bg-gray-400 rounded-full mt-1.5 flex-shrink-0"}),l]},l))})]})]})]}),i.jsxs("section",{className:"py-12 border-t border-gray-100",children:[i.jsx("div",{className:"text-center mb-8",children:i.jsx("h2",{className:"text-2xl sm:text-3xl font-bold text-gray-900 mb-3",children:"Frequently Asked Questions"})}
359),i.jsx("div",{className:"max-w-2xl mx-auto space-y-3",children:[{question:"What is Gamma?",answer:"Gamma is an AI-powered presentation tool that generates complete, visually polished slide decks from a text prompt, outline, or imported document. It handles layout, design, typography, and image selection automatically."},{question:"Is Gamma free to use?",answer:"Yes. Gamma has a free plan that includes a limited number of AI-generated presentations. No credit card is required to get started. Paid plans (Plus at ~$10/month, Pro at ~$20/month) unlock unlimited AI generations and additional features."},{question:"How long does it take to create a presentation?",answer:"Most presentations are generated in under 2 minutes from a prompt or outline. The more detail you provide, the more relevant and complete the output."},{question:"Can I export to PowerPoint?",answer:"Yes. Gamma supports exporting to PowerPoint (.pptx) and PDF formats, letting you take your AI-generated deck into traditional presentation workflows if needed."},{question:"Is Gamma good for pitch decks?",answer:"Gamma is excellent for generating a pitch deck first draft quickly. Most founders use it to get the structure and design in place, then customize the content and narrative. It won't replace your story — but it handles everything else."},{question:"How does Gamma compare to PowerPoint?",answer:"Gamma is dramatically faster for creating first drafts. PowerPoint offers far more fine-grained control over every element. The typical workflow: use Gamma for speed and design, export to PowerPoint if you need deep customization."},{question:"How does Gamma compare to Beautiful.ai?",answer:"Both are AI-assisted presentation tools. Gamma generates complete decks from prompts (better for speed). Beautiful.ai uses smart adaptive layouts that adjust as you add content (better for controlled template use). Gamma is faster for creation; Beautiful.ai for iterative editing."},{question:"Does Gamma support team collaboration?",answer:"Yes. Gamma Pro includes team collaboration features, allowing multiple users to work on presentations. Presentation analytics are also included to see who is viewing your decks."}].map(l=>i.jsx(Vv,{question:l.question,answer:l.answer},l.question))}),i.jsx("div",{className:"mt-8 text-center",children:i.jsx(oa,{text:r,href:At(kt,t,"faq"),size:"md",eventName:"faq_cta_click"})})]}),i.jsx("section",{className:"py-14 border-t border-gray-100 text-center",children:i.jsxs("div",{className:"max-w-xl mx-auto",children:[i.jsx("h2",{className:"text-2xl sm:text-3xl font-bold text-gray-900 mb-4",children:"Create your first AI presentation on Gamma today"}),i.jsx("p",{className:"text-gray-600 mb-8 text-base leading-relaxed",children:"Start on the free plan and see a polished presentation generated from your idea in under 2 minutes. No credit card required."}),i.jsx(oa,{text:"Create a Presentation Free",href:At(kt,t,"final"),size:"lg",eventName:"final_cta_click"}),i.jsx("p",{className:"text-xs text-gray-400 mt-4",children:"Pricing and features may change; always verify on the official site."})]})}),i.jsx("div",{className:"pb-24 sm:pb-10 border-t border-gray-100 pt-6 text-center",children:i.jsxs("p",{className:"text-xs text-gray-400 max-w-lg mx-auto",children:["This is an independent review page, not affiliated with or endorsed by Gamma."," ",i.jsx("a",{href:"/tools/gamma",className:"underline hover:text-gray-600",children:"Full Gamma review on Como AI"})]})})]}),i.jsx("div",{className:"fixed bottom-0 left-0 right-0 sm:hidden z-50 bg-white border-t border-gray-200 px-4 py-3 shadow-lg",children:i.jsxs("a",{href:At(kt,t,"sticky"),target:"_blank",rel:"noopener noreferrer",onClick:()=>{dt("sticky_cta_click"),dt("outbound_click",{cta_source:"sticky"})},className:"w-full flex items-center justify-center gap-2 bg-blue-600 text-white font-semibold py-3 rounded-xl text-base hover:bg-blue-700 active:bg-blue-800 transition-colors",children:["Try Gamma Free",i.jsx(ke,{className:"w-4 h-4"})]})})]})}function Yv(){const{pathname:e}=De();return v.useEffect(()=>{window.scrollTo(0,0)},[e]),null}function Kv(){return i.jsx(Eb,{children:i.jsx(Qh,{})})}function Jv(){return i.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-24 text-center",children:[i.jsx("h1",{className:"text-4xl font-bold text-gray-900 mb-4",children:"Page Not Found"}),i.jsx("p",{className:"text-gray-600 mb-8",children:"The page you're looking for doesn't exist or has been moved."}),i.jsx("a",{href:"/",className:"px-6 py-3 bg-blue-600 text-white rounded-xl font-semibold hover:bg-blue-700 transition-colors",children:"Back to Home"})]})}function Qv(){return i.jsxs(Iy,{children:[i.jsx(Yv,{}),i.jsxs(Xh,{children:[i.jsx(V,{path:"/go/emergent",element:i.jsx(Dv,{})}),i.jsx(V,{path:"/tools/emergent",element:i.jsx(Uv,{})}),i.jsx(V,{path:"/go/gamma",element:i.jsx(Hv,{})}),i.jsxs(V,{element:i.jsx(Kv,{}),children:[i.jsx(V,{path:"/",element:i.jsx(Kb,{})}),i.jsx(V,{path:"/categories",element:i.jsx(Jb,{})}),i.jsx(V,{path:"/categories/:slug",element:i.jsx(Qb,{})}),i.jsx(V,{path:"/tools/:slug",element:i.jsx(Xb,{})}),i.jsx(V,{path:"/comparisons",element:i.jsx(ev,{})}),i.jsx(V,{path:"/compare/:slug",element:i.jsx(av,{})}),i.jsx(V,{path:"/alternatives/:slug",element:i.jsx(iv,{})}),i.jsx(V,{path:"/blog",element:i.jsx(nv,{})}),i.jsx(V,{path:"/blog/:slug",element:i.jsx(rv,{})}),i.jsx(V,{path:"/search",element:i.jsx(ov,{})}),i.jsx(V,{path:"/best-for/:slug",element:i.jsx(cv,{})}),i.jsx(V,{path:"/about",element:i.jsx(vv,{})}),i.jsx(V,{path:"/contact",element:i.jsx(dv,{})}),i.jsx(V,{path:"/submit-a-tool",element:i.jsx(uv,{})}),i.jsx(V,{path:"/claim-listing",element:i.jsx(mv,{})}),i.jsx(V,{path:"/advertise",element:i.jsx(fv,{})}),i.jsx(V,{path:"/partners",element:i.jsx(wv,{})}),i.jsx(V,{path:"/affiliate-disclosure",element:i.jsx(xv,{})}),i.jsx(V,{path:"/editorial-policy",element:i.jsx(kv,{})}),i.jsx(V,{path:"/review-methodology",element:i.jsx(Av,{})}),i.jsx(V,{path:"/privacy-policy",element:i.jsx(Iv,{})}),i.jsx(V,{path:"/terms-of-service",element:i.jsx(jv,{})}),i.jsx(V,{path:"*",element:i.jsx(Jv,{})})]})]})]})}Gm(document.getElementById("root")).render(i.jsx(v.StrictMode,{children:i.jsx(Qv,{})}));

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.