PageSourceSearch

https://static.grammarly.com/assets/js/7722d41f32dcd2c91c20/signin.js

js grammarly.com collected 2026-09-24 06:43:09 UTC 72,726 bytes, 1 lines download raw bytes

1(window.__LOADABLE_LOADED_CHUNKS__=window.__LOADABLE_LOADED_CHUNKS__||[]).push([[185,4,13,211,212,238],{1133:function(e,t,n){"use strict";n.r(t);var a=n(0),r=n.n(a),i=n(120),o=n(119),c=n(438),s=n(16),l=n(11),u=n(2938),d=n(3003),m=n(37),f=n(136),g=n(3164),p=n(630),b=n(619),h=n(639),y=n(340),v=n(4621),O=n(659),E=n(4752),w=n(662),j=n(3393),_=n(667),C=n(3790),k=n.n(C);t.default=Object(c.c)(()=>{const e=Object(o.useIntl)(),t=Object(s.j)(),n=Object(s.c)(),c=Object(s.p)(),C=Object(m.c)(t.query),I=t.query[O.a],S=Object(O.b)(I)?I:void 0,x=Object(h.c)({browserService:n,userService:c,navigationService:t}),A=Object(_.a)(t.query).includes(m.a.Social.Type.Google),P=x&&!A;return Object(a.useEffect)(()=>{l.f.sharedUnifiedAppSigninPageShow(t.referrer,location.href,C.clientId)},[t.referrer,C]),Object(a.useEffect)(()=>{Object(v.e)(t)},[t]),r.a.createElement(u.b,null,r.a.createElement(i.Helmet,{title:e.formatMessage(E.a.signinPageTitle)},Object(g.a)({nav:t,routeId:"unifiedAppSignin"}),Object(p.b)(e.formatMessage(E.a.signinMetaDescription))),P&&r.a.createElement(h.a,{context:"signin"}),r.a.createElement(d.d,null),r.a.createElement(b.c,{className:k.a.mainContent},r.a.createElement(j.a,null,r.a.createElement(f.n,null,r.a.createElement(w.a,{supplementaryFlowType:Object(y.a)(t.query)?m.a.Props.SupplementaryFlowType.BuiltIn:m.a.Props.SupplementaryFlowType.Link,supplementaryFlowLink:t.createUrl({routeId:"unifiedAppSignup",query:{ignoreRedirect:"true",...t.query}}),titleHeadingHtmlTag:"h1",acrValues:S})))))},{autotrack:!1})},1134:function(e,t,n){"use strict";n.r(t),function(e){var a=n(0),r=n.n(a),i=n(120),o=n(119),c=n(623),s=n(438),l=n(210),u=n(50),d=n(13),m=n(16),f=n(11),g=n(14),p=n(71),b=n(2938),h=n(619),y=n(3003),v=n(37),O=n(622),E=n(625),w=n(136),j=n(15),_=n(56),C=n(96),k=n(281),I=n(4621),S=n(661),x=n(340),A=n(448),P=n(647),L=n(3393),T=n(640),N=n(4981),M=n(4820),F=n(4822),D=n(674),q=n(4823),U=n(4982),R=n(4985),B=n.n(R);n(3673);const{supportNewRequestUrl:H}=P.a;t.default=Object(s.c)(()=>{const t=Object(m.j)(),n=Object(m.b)(),{user:s}=Object(m.p)(),{countryCode:R}=Object(m.g)(),[W,G]=Object(a.useState)(!1),V=Object(m.k)(),Y=Object(m.c)(),z=Object(o.useIntl)(),$=Object(a.useMemo)(()=>Object(v.c)(t.query),[t.query]),[Z,J]=Object(a.useState)(!1),K=Object(a.useCallback)(e=>t.navigate({routeId:e,query:t.query},void 0,!0),[t]),X=Object(a.useCallback)(()=>{const e=Object(D.a)();e?K(e):Object(l.b)(t)},[t,K]),Q=Object(a.useCallback)(()=>{const e=Object(D.a)();e?K(e):Object(l.c)()},[K]),ee=Object(a.useCallback)(()=>{Q()},[Q]),{onLlamaAuthSuccess:te,onLlamaAuthFailure:ne,startAuthStatusListenerTimeout:ae}=Object(q.a)(),re=Object(a.useMemo)(()=>Object(F.a)($),[$]),ie=Object(a.useMemo)(()=>new N.a(t.pageId),[t.pageId]),oe=Object(a.useCallback)(async()=>{t.query.is_sso&&(await Object(k.h)(),Object(k.d)())},[]);Object(a.useEffect)(()=>{f.f.sharedUnifiedAppSigninConsentPageShow(t.referrer,location.href,$.clientId)},[t.referrer,$]),Object(a.useEffect)(()=>{oe()},[]),Object(a.useEffect)(()=>{if(Object(I.b)(t)){const{productsWithFirstFunnelPing:e,selfReportedRole:t}=s;$.clientId&&!e.includes($.clientId)&&(Object(C.e)({countryCode:R,userRole:t},s),j.c.getMetric(j.a.CoreMetricEvents.LlamaInstall).getCounter(j.a.ClientMetricActions.Success).setContext({osType:Object(j.e)(Y)}).increment(),s.setCustomFieldOptimistic(_.a.productsWithFirstFunnelPing,[...e,$.clientId]),n.authCustomFields.set(_.a.productsWithFirstFunnelPing,[...e,$.clientId]))}},[n.authCustomFields,Y,R,t,$.clientId,s]),Object(a.useEffect)(()=>{Object(I.e)(t)},[t]),Object(a.useEffect)(()=>{!async function(){const e=await Object(S.a)(V,Y),n=$.clientId===v.a.OAuth.ClientId.WindowsExtension&&"windowsExtension-webOnboarding"===t.query.utm_campaign&&e;G(n)}()},[Y,t.query.utm_campaign,$.clientId,V]);const ce=Object(a.useCallback)(()=>{if(!s.isNone)return s},[s]),se=Object(a.useCallback)(async()=>{Object(T.a)(t.query,"SIGNIN"),re&&ae(ee)},[t,re,ae,ee]),le=Object(a.useCallback)(async()=>{if(Object(v.f)($))try{const e=await Object(E.m)(n,$.clientId,$.codeChallenge,"SIGNIN");if(e)return window.location.replace(e),void(re&&ae(ee))}catch(t){Object(g.b)("Client side OAuth flow failed in Llama new onboarding",e,"oAuthConsent",t)}Q()},[n,re,$,ae,Q,ee]),ue=Object(a.useCallback)(async()=>
1{if(Object(v.f)($)){const{clientId:e,codeChallenge:a}=$;if(e===v.a.OAuth.ClientId.OfficeAddin&&Object(A.a)(t.query))return Object(A.b)();if(e===v.a.OAuth.ClientId.SafariExtension)return Object(x.b)(n,a)}if(re)return J(!0),Object(v.d)($)?await se():await le();X()},[$,t,re,n,se,le,X]),de=Object(a.useCallback)(async(n,a)=>{await f.f.sharedOAuthConsentUnifiedAuthFail(n.errCode,t.pageId,a,n.message),Object(g.b)(`OAuth consent error: ${a?`errId=[${a}] `:""}errMessage=[${Object(d.p)(n)}]`,e,"oAuthConsent")},[t]),me={config:P.a,params:$,tokensApi:n.tokens,logger:Object(p.b)("identity"),partnerAppsApi:n.apps,getCurrentUser:ce,onRedirectAfterConsent:ue,onError:de,supportNewRequestUrl:H,oAuthAppTracking:ie};return r.a.createElement(b.a,null,r.a.createElement(i.Helmet,null,Object(O.a)()),!re&&r.a.createElement(y.d,{disableLogoLink:!0,items:s.email?[{type:y.i.Dropdown,label:s.email,dropdownItems:[{waypoint:{routeId:"unifiedAppSignin",query:t.query},label:z.formatMessage({id:"auth.consent.login_different_account",defaultMessage:"Log in with a different account",description:"Dropdown menu option in the header to allow user to log in with a different account. Char limit: ~40."})}]}]:[]}),r.a.createElement(h.c,{className:Object(u.a)(B.a.main,re&&B.a.mainWithEditor)},r.a.createElement(L.a,null,W&&r.a.createElement(c.Typography.T3,{as:"h2",className:B.a.onboardingPageTitle},r.a.createElement(o.FormattedMessage,{id:"auth.consent.onboarding_title",defaultMessage:"Next, connect your account to use Grammarly everywhere you write.",description:"Onboarding title shown to Windows extension users during account connection process"})),re&&r.a.createElement(M.a,{onSuccess:te,onFailure:ne}),re?r.a.createElement(U.a,{...me,hasStartedOAuthFlow:Z}):r.a.createElement(w.e,me))))},{autotrack:!1})}.call(this,"/index.js")},1247:function(e,t,n){"use strict";n.r(t);var a=n(0),r=n.n(a),i=n(16),o=n(1133),c=n(120),s=n(28),l=n(438),u=n(2938),d=n(3149),m=n(3003),f=n(617),g=n(618),p=n(3393),b=n(4767),h=n(5720),y=n.n(h);const v=({sidebar:e,children:t})=>r.a.createElement("div",{className:y.a.container},t,e&&r.a.createElement("div",{className:y.a.parent},r.a.createElement("div",{className:y.a.sidebar},e)));var O=n(5182),E=n.n(O);const w=()=>r.a.createElement("div",{className:E.a.features},r.a.createElement(g.g,{color:"neutral0"},"NOTICE:"),r.a.createElement(f.e,{multiplier:2}),r.a.createElement(g.l,{color:"neutral0"},"Grammarly for Developers was discontinued on January 10, 2024 and all users can now only view previously created information."," ",r.a.createElement("a",{href:"https://developer.grammarly.com/sdk-deprecation",className:E.a.learnMore,style:{color:"#fff"}},"Learn more")));var j=Object(l.c)(()=>{const e=Object(i.d)(),t=Object(i.j)();return r.a.createElement(u.b,{className:E.a.developerPageSwoosh},r.a.createElement(c.Helmet,{title:"Login | Grammarly for Developers"}),r.a.createElement(m.d,{type:m.k.Developer}),r.a.createElement(p.a,{inset:!0},r.a.createElement(v,{sidebar:r.a.createElement(w,null)},r.a.createElement(s.WithBorder,null,r.a.createElement(d.b,{supplementaryFlowType:s.Auth.Props.SupplementaryFlowType.Link,supplementaryFlowLink:t.createUrl({routeId:"signup",query:t.query}),onRedirectAfterAuthSuccess:(t,n,a)=>Object(b.b)(e,t,n,a)})))))}),_=n(5721),C=n(623),k=n(11),I=n(3072),S=n(1134),x=n(5479),A=n.n(x);const P=()=>r.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"43",height:"104",fill:"none",className:A.a.arrow,"aria-hidden":"true"},r.a.createElement("path",{fill:"#027E6F",d:"M8.336 1.107a1.5 1.5 0 0 1 2.098-.313l10.85 8.033a1.5 1.5 0 0 1-1.784 2.411l-9.645-7.14-7.14 9.645a1.5 1.5 0 0 1-2.411-1.785zM41.181 102.93c-1.204.894-1.205.894-1.205.893l-.002-.002-.004-.006-.015-.021-.052-.071-.19-.268c-.163-.236-.4-.584-.703-1.051a79 79 0 0 1-2.548-4.243c-2.147-3.814-5.108-9.644-8.406-17.756C21.462 64.18 13.522 38.832 8.058 2.221l2.967-.442c5.43 36.389 13.31 61.505 19.81 77.496 3.251 7.995 6.157 13.71 8.241 17.414a76 76 0 0 0 2.45 4.08q.43.66.65.972l.163.23.038.052.008.011v.002-.001z"}));var L=n(66);const T=()=>{const e=Object(i.j)();return Object(a.useEffect)(()=>
1{k.f.sharedClickToRunExtensionShow(e.pageId)},[e.pageId]),r.a.createElement(u.a,null,r.a.createElement(m.d,null),r.a.createElement(I.a,{className:A.a.sectionContainer},r.a.createElement("div",{className:A.a.arrowContainer},r.a.createElement(P,null)),r.a.createElement(C.Typography.HS,{as:"h1"},"Grammarly needs access to get started"),r.a.createElement(C.Typography.TS,{as:"p",className:A.a.description},"Click on the Grammarly icon in the Safari toolbar and select ",r.a.createElement("b",null,"Always Allow on Every Website."))))},N=()=>{const[e,t]=Object(a.useState)(!1),n=(()=>{const[e,t]=Object(a.useState)(Object(L.d)());return Object(a.useEffect)(()=>{const e=Object(L.e)(()=>{t(!0)});return()=>{clearInterval(e)}},[]),e})();return Object(a.useEffect)(()=>{n&&t(!0)},[n]),e?r.a.createElement(S.default,null):r.a.createElement(T,null)};var M=n(672),F=n(340),D=n(425);t.default=()=>{const{query:e}=Object(i.j)(),{isAnonymous:t}=Object(i.p)().user,n=Object(M.a)(e.pageStyle);if(Object(F.a)(e))return t?r.a.createElement(o.default,null):r.a.createElement(N,null);switch(n){case D.a.developer:return r.a.createElement(j,null);default:return r.a.createElement(_.a,null)}}},2938:function(e,t,n){"use strict";n.d(t,"a",(function(){return _}));var a=n(0),r=n.n(a),i=n(3004),o=n(119),c=n(145),s=n(17),l=n(276),u=n(182),d=n(621),m=n(50),f=n(134),g=n(620);const p=()=>r.a.createElement("svg",{width:"24",height:"24",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink","aria-hidden":"true"},r.a.createElement("defs",null,r.a.createElement("path",{d:"M5.08 6L1.113 9.969a.65.65 0 1 0 .919.92L6 6.918l3.969 3.97a.65.65 0 1 0 .92-.92L6.918 6l3.97-3.969a.65.65 0 1 0-.92-.92L6 5.082 2.031 1.11a.65.65 0 0 0-.92.92L5.082 6z",id:"a"})),r.a.createElement("use",{fill:"#fff",xlinkHref:"#a",transform:"translate(6 6)"}));var b=n(2950),h=n.n(b),y=n(2951),v=n.n(y),O=n(3031),E=n.n(O);const w=({onClick:e,className:t})=>{const n=Object(o.useIntl)();return r.a.createElement("button",{type:"button",onClick:e,className:t,"aria-label":n.formatMessage({id:"notification.closeAriaLabel",defaultMessage:"Close",description:"Aria label for closing a notification."})},r.a.createElement(p,null))};class j extends u.a{componentDidMount(){this.setState({isClient:!0})}componentDidUpdate(){this.props.notificationStore.list.forEach(({id:e})=>{const t=this.notificationBlocks[e];this.notificationBlocksHeight[e]=t?t.clientHeight+10:0})}get notificationData(){const{notificationStore:e}=this.props,{list:t,height:n}=e.list.reduce(({height:e,list:t},n)=>({height:this.notificationBlocksHeight[n.id]?e+this.notificationBlocksHeight[n.id]:e+100,list:[...t,[e,n]]}),{height:0,list:[]}),a=this.state.isClient&&n>window.innerHeight;return{notificationList:t.map(([t,n])=>r.a.createElement("div",{key:n.id,ref:e=>this.notificationBlocks[n.id]=e,style:{top:t},className:E.a.notification,"data-qa":"txtNotification"+n.id},r.a.createElement(c.a,{src:n.status===d.b.SUCCESS?h.a:v.a,role:"presentation",className:E.a.notificationIcon}),r.a.createElement("div",{className:E.a.notificationText},n.message,n.supportLink&&r.a.createElement("span",null," ",r.a.createElement(o.FormattedMessage,{id:"notification.supportLink",defaultMessage:"Please try later or <link>contact us</link> if the issue persists.",description:"Fallback footer appended to error notifications (toasts) across funnel pages, offering a link to contact Grammarly support. '<link>...</link>' wraps the 'contact us' text that becomes the support link.",values:{link:e=>r.a.createElement(f.c,{href:Object(s.a)().support.urls.newRequest,target:"_blank"},e)}}))),r.a.createElement(w,{onClick:()=>e.popNotification(n.id),className:E.a.notificationClose}))),notificationScroll:a}}render(){const{popupStore:e,children:t,className:n,deprecatedStyle:a}=this.props,{notificationList:o,notificationScroll:c}=this.notificationData;return r.a.createElement(g.a,null,r.a.createElement("div",{className:Object(m.b)(a?E.a.pageDeprecatedStyle:E.a.page,n)},r.a.createElement("div",{className:Object(m.b)(E.a.notificationStack,c&&E.a.scroll)},r.a.createElement(i.TransitionGroup,null,(o||[]).map((e,t)=>r.a.createElement(i.CSSTransition,{key:t,classNames:{enter:E.a.notificationEnter,enterActive:E.a.notificationEnterActive,enterDone:E.a.notificationEnterActive,exit:E.a.notificationExit,exitActive:E.a.notificationExitActive,exitDone:E.a.notificationExitActive},timeout:500,in:Boolean(o)},e)))),e.popup,t))}constructor(...e){super(...e),this.notificationBlocks={},this.notificationBlocksHeight={},this.state={isClient:!1}}}const _=Object(l.a)("notificationStore","popupStore")(Object(l.c)(j));t.b=_},2939:function(e,t,n){"use strict";
1Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,t.unsafeStringify=o;var a,r=(a=n(2940))&&a.__esModule?a:{default:a};const i=[];for(let e=0;e<256;++e)i.push((e+256).toString(16).slice(1));function o(e,t=0){return i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]}var c=function(e,t=0){const n=o(e,t);if(!(0,r.default)(n))throw TypeError("Stringified UUID is invalid");return n};t.default=c},2940:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,r=(a=n(3063))&&a.__esModule?a:{default:a};var i=function(e){return"string"==typeof e&&r.default.test(e)};t.default=i},2950:function(e,t,n){e.exports=n.p+"files/8d2158d8bfe25164280490041b9d1cfd/notification_success.svg"},2951:function(e,t,n){e.exports=n.p+"files/fa91276c1423483a605ecf82c4fc2d3b/notification_failed.svg"},2983:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"NIL",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(t,"parse",{enumerable:!0,get:function(){return d.default}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(t,"v1",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(t,"v3",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(t,"v4",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(t,"v5",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(t,"validate",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(t,"version",{enumerable:!0,get:function(){return s.default}});var a=m(n(3062)),r=m(n(3064)),i=m(n(3066)),o=m(n(3068)),c=m(n(3070)),s=m(n(3071)),l=m(n(2940)),u=m(n(2939)),d=m(n(2987));function m(e){return e&&e.__esModule?e:{default:e}}},2985:function(e,t,n){"use strict";let a;Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){if(!a&&(a="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!a))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return a(r)};const r=new Uint8Array(16)},2986:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.URL=t.DNS=void 0,t.default=function(e,t,n){function a(e,a,o,c){var s;if("string"==typeof e&&(e=function(e){e=unescape(encodeURIComponent(e));const t=[];for(let n=0;n<e.length;++n)t.push(e.charCodeAt(n));return t}(e)),"string"==typeof a&&(a=(0,i.default)(a)),16!==(null===(s=a)||void 0===s?void 0:s.length))throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let l=new Uint8Array(16+e.length);if(l.set(a),l.set(e,a.length),l=n(l),l[6]=15&l[6]|t,l[8]=63&l[8]|128,o){c=c||0;for(let e=0;e<16;++e)o[c+e]=l[e];return o}return(0,r.unsafeStringify)(l)}try{a.name=e}catch(e){}return a.DNS=o,a.URL=c,a};var a,r=n(2939),i=(a=n(2987))&&a.__esModule?a:{default:a};const o="6ba7b810-9dad-11d1-80b4-00c04fd430c8";t.DNS=o;const c="6ba7b811-9dad-11d1-80b4-00c04fd430c8";t.URL=c},2987:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,r=(a=n(2940))&&a.__esModule?a:{default:a};var i=function(e){if(!(0,r.default)(e))throw TypeError("Invalid UUID");let t;const n=new Uint8Array(16);return n[0]=(t=parseInt(e.slice(0,8),16))>>>24,n[1]=t>>>16&255,n[2]=t>>>8&255,n[3]=255&t,n[4]=(t=parseInt(e.slice(9,13),16))>>>8,n[5]=255&t,n[6]=(t=parseInt(e.slice(14,18),16))>>>8,n[7]=255&t,n[8]=(t=parseInt(e.slice(19,23),16))>>>8,n[9]=255&t,n[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255,n[11]=t/4294967296&255,n[12]=t>>>24&255,n[13]=t>>>16&255,n[14]=t>>>8&255,n[15]=255&t,n};t.default=i},3003:function(e,t,n){"use strict";n.d(t,"k",(function(){return a})),n.d(t,"i",(function(){return r})),n.d(t,"j",(function(){return S})),n.d(t,"g",(function(){return x})),n.d(t,"l",(function(){return P})),n.d(t,"a",(function(){return L})),n.d(t,"f",(function(){return T})),n.d(t,"d",(function(){return te})),n.d(t,"b",(function(){return ne})),n.d(t,"c",(function(){return oe})),n.d(t,"e",(function(){return ce})),n.d(t,"h",(function(){return ye}));var a=function(e){return e.Default="Default",e.Business="Business",e.Edu="Edu",e.Developer="Developer",e}({}),r=function(e){return e.Link="Link",e.Dropdown="Dropdown",e.Custom="Custom",e}({}),i=n(0),o=n.n(i),c=n(120),s=n(145),l=n(50),u=n(163),d=n(3077),m=n(134),f=n(17),g=n(16),p=n(11),b=function(e){return e.GrammarlyLogo="Grammarly Logo",e.Login="Login",e.MyGrammarly="My Grammarly",e}({});const h=(e,{nextCmsPageId:t,nextHref:n,nextPageId:a},r)=>
1{p.f.sharedNavHeaderLinkClick(e,r,t,n,a)};var y=n(3078),v=n.n(y),O=n(3079),E=n.n(O),w=n(3080),j=n.n(w);const _={[a.Developer]:{href:Object(f.a)().urls.developer.home},[a.Edu]:{cmsPageId:"edu"},[a.Business]:{cmsPageId:"businessHome"},[a.Default]:{cmsPageId:"homepage"}},C=({type:e=a.Default,isPresentational:t})=>{const n=Object(g.j)(),{isMobile:r}=Object(g.c)(),{imgUrl:i,imgAlt:l,...u}=((e,t)=>{const n=_[e];return{imgUrl:t?E.a:v.a,imgAlt:"Grammarly Home",...n}})(e,r),d=u.cmsPageId?{nextCmsPageId:u.cmsPageId}:{nextPageId:u.routeId};return o.a.createElement(o.a.Fragment,null,o.a.createElement(c.Helmet,null,o.a.createElement("link",{rel:"preload",as:"image",href:i})),t?o.a.createElement(s.a,{alt:l,src:i}):o.a.createElement(m.c,{...u,onBeforeFollow:()=>h(n.pageId,{...d},b.GrammarlyLogo)},o.a.createElement(s.a,{alt:l,src:i})))},k=o.a.createElement("svg",{width:"18",height:"13",viewBox:"0 0 18 13",fill:"none"},o.a.createElement("path",{d:"M1 0C0.723858 0 0.5 0.223858 0.5 0.5C0.5 0.776142 0.723858 1 1 1V0ZM17 1C17.2761 1 17.5 0.776142 17.5 0.5C17.5 0.223858 17.2761 0 17 0V1ZM1 6C0.723858 6 0.5 6.22386 0.5 6.5C0.5 6.77614 0.723858 7 1 7V6ZM17 7C17.2761 7 17.5 6.77614 17.5 6.5C17.5 6.22386 17.2761 6 17 6V7ZM1 12C0.723858 12 0.5 12.2239 0.5 12.5C0.5 12.7761 0.723858 13 1 13V12ZM17 13C17.2761 13 17.5 12.7761 17.5 12.5C17.5 12.2239 17.2761 12 17 12V13ZM1 1H17V0H1V1ZM1 7H17V6H1V7ZM1 13H17V12H1V13Z",fill:u.a.neutral50})),I=e=>{const[t,n]=Object(i.useState)(!1);return o.a.createElement("nav",{className:Object(l.a)(j.a.mobileContainer,t&&j.a.active,e.className)},o.a.createElement("div",{className:j.a.mobileTop},o.a.createElement(C,{type:e.type,isPresentational:e.disableLogoLink}),o.a.createElement("button",{className:j.a.mobileOpenClose,onClick:()=>n(!t)},t?o.a.createElement(d.a,{color:"neutral50"}):k)),o.a.createElement("div",{className:j.a.mobileChildren},e.children))},S=e=>o.a.createElement(I,e),x=e=>{const{show:t,...n}=e;return o.a.createElement(I,{className:Object(l.a)(j.a.fixedBeforeShow,e.show&&j.a.fixedAfterShow),...n})},A=e=>o.a.createElement("nav",{className:Object(l.a)(j.a.container,e.className),"aria-label":"Primary"},o.a.createElement(C,{type:e.type,isPresentational:e.disableLogoLink}),e.children),P=e=>o.a.createElement("header",{className:j.a.container},o.a.createElement(C,{type:e.type,isPresentational:!0})),L=e=>o.a.createElement(A,e),T=e=>{const{show:t,...n}=e;return o.a.createElement(A,{className:Object(l.a)(j.a.fixedBeforeShow,e.show&&j.a.fixedAfterShow),...n})};var N=n(617),M=n(164),F=n(3073),D=n(37),q=n(3081),U=n.n(q);const{editor:R}=Object(f.a)().urls,B=o.a.createElement("svg",{width:"7",height:"5",viewBox:"0 0 7 5",fill:"none"},o.a.createElement("path",{d:"M1.92066 1L3.5 3.25621L5.07934 1H1.92066Z",stroke:u.a.neutral50,strokeWidth:"2"})),H=e=>{const[t,n]=Object(i.useState)(!1),a=Object(i.useRef)(null);return function(e,t){Object(i.useEffect)(()=>{function n(n){var a;(null===(a=e.current)||void 0===a?void 0:a.contains(n.target))||t()}return document.addEventListener("mousedown",n),()=>{document.removeEventListener("mousedown",n)}},[e])}(a,()=>n(!1)),o.a.createElement("li",{ref:a,className:U.a.dropdownItem},o.a.createElement("div",{className:U.a.dropdownItemLabel,onClick:()=>n(!t)},e.label,o.a.createElement(N.c,{multiplier:1}),B),o.a.createElement("ul",{className:Object(l.a)(U.a.dropdownItemList,t&&U.a.active)},e.dropdownItems.map((e,t)=>o.a.createElement("li",{key:t},o.a.createElement(m.c,e,e.label)))))},W=e=>{const{isMobile:t}=Object(g.c)();return t?o.a.createElement(o.a.Fragment,null,e.dropdownItems.map((e,t)=>o.a.createElement("li",{key:t},o.a.createElement(m.c,e,e.label)))):o.a.createElement(H,e)},G=({customCTA:e,customInstallCTA:t})=>e?o.a.createElement(o.a.Fragment,null,e):o.a.createElement(M.g,{...t,placement:M.b.Header,compact:!0}),V=e=>{const{trackClick:t,...n}=e;switch(n.type){case r.Link:return o.a.createElement("li",null,o.a.createElement(m.c,{...n,onBeforeFollow:async(e,a)=>{var r;await(null===(r=n.onBeforeFollow)||void 0===r?void 0:r.call(n,e,a)),await t(n.cmsWaypoint?{nextCmsPageId:n.cmsWaypoint.cmsPageId}:n.waypoint?{nextPageId:n.waypoint.routeId}:{nextHref:n.href},"string"==typeof n.label?n.label:void 0)}},n.label));case r.Dropdown:return o.a.createElement(W,n);case r.Custom:return o.a.createElement("li",null,n.itemComponent)}},Y=({loginTargetPage:e,trackClick:t})=>{const{query:n}=Object(g.j)(),a=Object(D.c)(n),r=Object(D.f)(a),i=e?{targetPage:e}:{},c=r?"unifiedAppSignin":"signin";return o.a.createElement(m.c,{onBeforeFollow:()=>t({nextPageId:c},b.Login),waypoint:r?{routeId:c,query:{...n,...i}}:{routeId:c,query:i}}
1,"Log in")},z=e=>{const{items:t=[],showLogin:n,showCTA:a,customCTA:r,customInstallCTA:i,vertical:c,loginTargetPage:s}=e,{isAnonymous:u}=Object(g.p)().user,d=Object(g.j)(),f=async(e,t)=>{await h(d.pageId,e,t)};return o.a.createElement("ul",{className:Object(l.a)(U.a.mainItemsList,c&&U.a.vertical)},t.map((e,t)=>o.a.createElement(V,{key:t,...e,trackClick:f})),n&&(u?o.a.createElement("li",null,o.a.createElement(Y,{loginTargetPage:s,trackClick:f})):o.a.createElement("li",null,o.a.createElement(m.c,{href:R,onBeforeFollow:()=>f({nextHref:R},b.MyGrammarly)},"My Grammarly"))),a&&o.a.createElement(G,{customCTA:r,customInstallCTA:i}))},$=e=>{const[t,n]=Object(i.useState)(!1);return Object(F.b)(e,()=>{n(!1)},(e,t)=>{n(t.boundingClientRect.bottom<0)},0),t},Z=e=>{const{type:t,disableLogoLink:n,className:a}=e;return o.a.createElement(L,{type:t,disableLogoLink:n,className:a},o.a.createElement(z,e))},J=e=>{const{isMobile:t}=Object(g.c)();return o.a.createElement(T,{type:e.type,disableLogoLink:e.disableLogoLink,show:!0},o.a.createElement(z,{...e,showLogin:e.showLogin&&(!t||!e.showCTAWhenFixed),showCTA:e.showCTAWhenFixed}))},K=e=>{const{isMobile:t}=Object(g.c)(),n=$(e.refScrollPassedThenFixed);return o.a.createElement(o.a.Fragment,null,o.a.createElement(T,{type:e.type,disableLogoLink:e.disableLogoLink,show:n},o.a.createElement(z,{...e,showLogin:e.showLogin&&(!t||!e.showCTAWhenFixed),showCTA:e.showCTAWhenFixed})),o.a.createElement(Z,e))},X=e=>o.a.createElement(S,{type:e.type,disableLogoLink:e.disableLogoLink},o.a.createElement(z,{...e,vertical:!0})),Q=e=>{const t=$(e.refScrollPassedThenFixed);return o.a.createElement(o.a.Fragment,null,o.a.createElement(x,{type:e.type,disableLogoLink:e.disableLogoLink,show:t},o.a.createElement(z,{...e,vertical:!0})),o.a.createElement(X,e))},ee=e=>o.a.createElement(x,{type:e.type,disableLogoLink:e.disableLogoLink,show:!0},o.a.createElement(z,{...e,vertical:!0})),te=e=>{var t;const{isMobile:n}=Object(g.c)(),{refScrollPassedThenFixed:a,alwaysFixed:r,...i}=e;return n&&(null===(t=e.items)||void 0===t?void 0:t.length)?a?o.a.createElement(Q,{refScrollPassedThenFixed:a,...i}):r?o.a.createElement(ee,i):o.a.createElement(X,i):a?o.a.createElement(K,{...i,refScrollPassedThenFixed:a}):r?o.a.createElement(J,i):o.a.createElement(Z,i)},ne=e=>o.a.createElement(te,{type:a.Business,loginTargetPage:"upgradeBusiness",...e});var ae=n(626),re=n(105);const ie=[{type:r.Link,label:"Pricing",waypoint:{routeId:"businessPricing"}},{type:r.Dropdown,label:"Solutions",dropdownItems:[{cmsWaypoint:{cmsPageId:"businessCX"},label:"Customer Support"},{cmsWaypoint:{cmsPageId:"businessHR"},label:"HR"},{cmsWaypoint:{cmsPageId:"businessMarketing"},label:"Marketing"},{cmsWaypoint:{cmsPageId:"businessSales"},label:"Sales"}]},{type:r.Link,label:"Learn",href:Object(f.a)().urls.businessBlog},{type:r.Link,label:"Security",cmsWaypoint:{cmsPageId:"businessSecurity"}}],oe=e=>{var t,n;const a=e.customCTAButtonProps?{...e.customCTAButtonProps,waypoint:e.customCTAButtonProps.waypoint?{...e.customCTAButtonProps.waypoint,query:{...null===(t=e.customCTAButtonProps.waypoint)||void 0===t?void 0:t.query,...Object(ae.c)(null===(n=e.customCTAButtonProps.waypoint)||void 0===n?void 0:n.query)}}:{}}:{text:"Get Grammarly Business",waypoint:{routeId:"upgradeBusinessTry",query:Object(ae.c)()}};return o.a.createElement(ne,{refScrollPassedThenFixed:e.refScrollPassedThenFixed,items:ie,showCTAWhenFixed:!0,showLogin:!0,customCTA:o.a.createElement(re.a,{...a,compact:!0})})},ce=e=>o.a.createElement(te,{type:a.Edu,...e});var se=n(119),le=n(241),ue=n(33),de=n(59),me=n(279),fe=n(3074);const ge=["utm_source","utm_medium","utm_campaign","utm_term","utm_content"],pe=e=>{const t={};return e&&Object.keys(e).forEach(n=>{"string"==typeof e[n]&&(e=>ge.includes(e))(n)&&(t[n]=e[n])}),t};n(3082);const be=Object(f.a)().domains.main,he=Object(f.a)().domains.sh,ye=e=>{var t;const n=Object(se.useIntl)(),a=Object(g.e)(),{isMobileTabletOrIPadOS13:r}=Object(g.c)(),{pageId:c,navigate:s,query:l}=Object(g.j)(),{isAnonymous:u}=Object(g.p)().user,{handleSigninNavigate:d}=Object(fe.b)(),m=Object(g.n)(),f=Object(i.useCallback)(e=>p.d.track({...e,pageId:c}),[c]),b=pe(l),h=Object(i.useCallback)(async e=>{const{hostname:t,pathname:n,search:a}=e.details.targetUrl,r=n.endsWith("/")?n.substring(0,n.length-1):n;if(t==="www."+be){const t=me.b.find(e=>e.path===r);t&&(e.preventNavigate(),"signin"===t.id?await d(a):s({routeId:t.id,query:Object(de.d)(a)}))}},[s,d]),y=e.loginTargetPage?`https://www.${be}${Object(ue.e)({routeId:"signin",query:{targetPage:e.loginTargetPage}})}`:void 0,v={baseDomain:be,shBaseDomain:he,customLoginUrl:y,gnarTrackFn:f,onNavigate:h,clientName:"funnel",ctas:e.ctas,isLoggedIn:!u,sticky:null===(t=e.sticky)||void 0===t||t,isMobileTablet:r,queryParams:{utmParam
1s:b},translatedSlugs:m},O=n.locale.startsWith("en")&&"requestDemo"===a.contactSalesCopyVariant?"Request a demo":void 0;return e.isNoNav?o.a.createElement(le.HeaderNoNav,v):o.a.createElement(le.HeaderGlobalNav,{isWhatsNewItemVisible:a.isWhatsNewHeaderItem_25Enabled,contactSalesLabel:O,...v})}},3029:function(e,t,n){"use strict";n.d(t,"b",(function(){return d})),n.d(t,"c",(function(){return m})),n.d(t,"a",(function(){return f}));var a=n(0),r=n.n(a),i=n(627),o=n(3149),c=n(208),s=n(136),l=n(16);const u=(e,t,n)=>({show:o,...l})=>{const u=Object(c.g)();return Object(a.useEffect)(()=>{const n=r.a.createElement(s.n,null,r.a.createElement(e,l));u.addPopup(i.b.signin,n,void 0,t)}),Object(a.useEffect)(()=>(o&&u.openPopup(i.b.signin,n),()=>{u.handleClose()}),[o,u]),null},d=e=>u(o.b,"Sign in to your account",e),m=e=>u(o.c,"Sign up for an account",e),f=(d(),m(),({signInComponent:e,signUpComponent:t})=>{var n;return"signup"===(null===(n=Object(l.j)().query)||void 0===n?void 0:n.showStep)?t:e})},3062:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,r=(a=n(2985))&&a.__esModule?a:{default:a},i=n(2939);let o,c,s=0,l=0;var u=function(e,t,n){let a=t&&n||0;const u=t||new Array(16);let d=(e=e||{}).node||o,m=void 0!==e.clockseq?e.clockseq:c;if(null==d||null==m){const t=e.random||(e.rng||r.default)();null==d&&(d=o=[1|t[0],t[1],t[2],t[3],t[4],t[5]]),null==m&&(m=c=16383&(t[6]<<8|t[7]))}let f=void 0!==e.msecs?e.msecs:Date.now(),g=void 0!==e.nsecs?e.nsecs:l+1;const p=f-s+(g-l)/1e4;if(p<0&&void 0===e.clockseq&&(m=m+1&16383),(p<0||f>s)&&void 0===e.nsecs&&(g=0),g>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");s=f,l=g,c=m,f+=122192928e5;const b=(1e4*(268435455&f)+g)%4294967296;u[a++]=b>>>24&255,u[a++]=b>>>16&255,u[a++]=b>>>8&255,u[a++]=255&b;const h=f/4294967296*1e4&268435455;u[a++]=h>>>8&255,u[a++]=255&h,u[a++]=h>>>24&15|16,u[a++]=h>>>16&255,u[a++]=m>>>8|128,u[a++]=255&m;for(let e=0;e<6;++e)u[a+e]=d[e];return t||(0,i.unsafeStringify)(u)};t.default=u},3063:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i},3064:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=i(n(2986)),r=i(n(3065));function i(e){return e&&e.__esModule?e:{default:e}}var o=(0,a.default)("v3",48,r.default);t.default=o},3065:function(e,t,n){"use strict";function a(e){return 14+(e+64>>>9<<4)+1}function r(e,t){const n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}function i(e,t,n,a,i,o){return r((c=r(r(t,e),r(a,o)))<<(s=i)|c>>>32-s,n);var c,s}function o(e,t,n,a,r,o,c){return i(t&n|~t&a,e,t,r,o,c)}function c(e,t,n,a,r,o,c){return i(t&a|n&~a,e,t,r,o,c)}function s(e,t,n,a,r,o,c){return i(t^n^a,e,t,r,o,c)}function l(e,t,n,a,r,o,c){return i(n^(t|~a),e,t,r,o,c)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var u=function(e){if("string"==typeof e){const t=unescape(encodeURIComponent(e));e=new Uint8Array(t.length);for(let n=0;n<t.length;++n)e[n]=t.charCodeAt(n)}return function(e){const t=[],n=32*e.length;for(let a=0;a<n;a+=8){const n=e[a>>5]>>>a%32&255,r=parseInt("0123456789abcdef".charAt(n>>>4&15)+"0123456789abcdef".charAt(15&n),16);t.push(r)}return t}(function(e,t){e[t>>5]|=128<<t%32,e[a(t)-1]=t;let n=1732584193,i=-271733879,u=-1732584194,d=271733878;for(let t=0;t<e.length;t+=16){const a=n,m=i,f=u,g=d;n=o(n,i,u,d,e[t],7,-680876936),d=o(d,n,i,u,e[t+1],12,-389564586),u=o(u,d,n,i,e[t+2],17,606105819),i=o(i,u,d,n,e[t+3],22,-1044525330),n=o(n,i,u,d,e[t+4],7,-176418897),d=o(d,n,i,u,e[t+5],12,1200080426),u=o(u,d,n,i,e[t+6],17,-1473231341),i=o(i,u,d,n,e[t+7],22,-45705983),n=o(n,i,u,d,e[t+8],7,1770035416),d=o(d,n,i,u,e[t+9],12,-1958414417),u=o(u,d,n,i,e[t+10],17,-42063),i=o(i,u,d,n,e[t+11],22,-1990404162),n=o(n,i,u,d,e[t+12],7,1804603682),d=o(d,n,i,u,e[t+13],12,-40341101),u=o(u,d,n,i,e[t+14],17,-1502002290),i=o(i,u,d,n,e[t+15],22,1236535329),n=c(n,i,u,d,e[t+1],5,-165796510),d=c(d,n,i,u,e[t+6],9,-1069501632),u=c(u,d,n,i,e[t+11],14,643717713),i=c(i,u,d,n,e[t],20,-373897302),n=c(n,i,u,d,e[t+5],5,-701558691),d=c(d,n,i,u,e[t+10],9,38016083),u=c(u,d,n,i,e[t+15],14,-660478335),i=c(i,u,d,n,e[t+4],20,-405537848),n=c(n,i,u,d,e[t+9],5,568446438),d=c(d,n,i,u,e[t+14],9,-1019803690),u=c(u,d,n,i,e[t+3],14,-187363961),i=c(i,u,d,n,e[t+8],20,1163531501),n=c(n,i,u,d,e[t+13],5,-1444681467),d=c(d,n,i,u,e[t+2],9,-51403784),u=c(u,d,n,i,e[t+7],14,1735328473),i=c(i,u,d,n,e[t+12],20,-1926607734),n=s(n,i,u,d,e[t+5],4,-378558),d=s(d,n,i,u,e[t+8],11,-2022574463),u=s(u,d,n,i,e[t+11],16,1839030562),i=s(i,u,d,n,e[t+14],23,-35309556),n=s(n,i,u,d,e[t+1
vendor: 3,470 bytes, line 1
1],4,-1530992060),d=s(d,n,i,u,e[t+4],11,1272893353),u=s(u,d,n,i,e[t+7],16,-155497632),i=s(i,u,d,n,e[t+10],23,-1094730640),n=s(n,i,u,d,e[t+13],4,681279174),d=s(d,n,i,u,e[t],11,-358537222),u=s(u,d,n,i,e[t+3],16,-722521979),i=s(i,u,d,n,e[t+6],23,76029189),n=s(n,i,u,d,e[t+9],4,-640364487),d=s(d,n,i,u,e[t+12],11,-421815835),u=s(u,d,n,i,e[t+15],16,530742520),i=s(i,u,d,n,e[t+2],23,-995338651),n=l(n,i,u,d,e[t],6,-198630844),d=l(d,n,i,u,e[t+7],10,1126891415),u=l(u,d,n,i,e[t+14],15,-1416354905),i=l(i,u,d,n,e[t+5],21,-57434055),n=l(n,i,u,d,e[t+12],6,1700485571),d=l(d,n,i,u,e[t+3],10,-1894986606),u=l(u,d,n,i,e[t+10],15,-1051523),i=l(i,u,d,n,e[t+1],21,-2054922799),n=l(n,i,u,d,e[t+8],6,1873313359),d=l(d,n,i,u,e[t+15],10,-30611744),u=l(u,d,n,i,e[t+6],15,-1560198380),i=l(i,u,d,n,e[t+13],21,1309151649),n=l(n,i,u,d,e[t+4],6,-145523070),d=l(d,n,i,u,e[t+11],10,-1120210379),u=l(u,d,n,i,e[t+2],15,718787259),i=l(i,u,d,n,e[t+9],21,-343485551),n=r(n,a),i=r(i,m),u=r(u,f),d=r(d,g)}return[n,i,u,d]}(function(e){if(0===e.length)return[];const t=8*e.length,n=new Uint32Array(a(t));for(let a=0;a<t;a+=8)n[a>>5]|=(255&e[a/8])<<a%32;return n}(e),8*e.length))};t.default=u},3066:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=o(n(3067)),r=o(n(2985)),i=n(2939);function o(e){return e&&e.__esModule?e:{default:e}}var c=function(e,t,n){if(a.default.randomUUID&&!t&&!e)return a.default.randomUUID();const o=(e=e||{}).random||(e.rng||r.default)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,t){n=n||0;for(let e=0;e<16;++e)t[n+e]=o[e];return t}return(0,i.unsafeStringify)(o)};t.default=c},3067:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};t.default=a},3068:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=i(n(2986)),r=i(n(3069));function i(e){return e&&e.__esModule?e:{default:e}}var o=(0,a.default)("v5",80,r.default);t.default=o},3069:function(e,t,n){"use strict";function a(e,t,n,a){switch(e){case 0:return t&n^~t&a;case 1:return t^n^a;case 2:return t&n^t&a^n&a;case 3:return t^n^a}}function r(e,t){return e<<t|e>>>32-t}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=function(e){const t=[1518500249,1859775393,2400959708,3395469782],n=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof e){const t=unescape(encodeURIComponent(e));e=[];for(let n=0;n<t.length;++n)e.push(t.charCodeAt(n))}else Array.isArray(e)||(e=Array.prototype.slice.call(e));e.push(128);const i=e.length/4+2,o=Math.ceil(i/16),c=new Array(o);for(let t=0;t<o;++t){const n=new Uint32Array(16);for(let a=0;a<16;++a)n[a]=e[64*t+4*a]<<24|e[64*t+4*a+1]<<16|e[64*t+4*a+2]<<8|e[64*t+4*a+3];c[t]=n}c[o-1][14]=8*(e.length-1)/Math.pow(2,32),c[o-1][14]=Math.floor(c[o-1][14]),c[o-1][15]=8*(e.length-1)&4294967295;for(let e=0;e<o;++e){const i=new Uint32Array(80);for(let t=0;t<16;++t)i[t]=c[e][t];for(let e=16;e<80;++e)i[e]=r(i[e-3]^i[e-8]^i[e-14]^i[e-16],1);let o=n[0],s=n[1],l=n[2],u=n[3],d=n[4];for(let e=0;e<80;++e){const n=Math.floor(e/20),c=r(o,5)+a(n,s,l,u)+d+t[n]+i[e]>>>0;d=u,u=l,l=r(s,30)>>>0,s=o,o=c}n[0]=n[0]+o>>>0,n[1]=n[1]+s>>>0,n[2]=n[2]+l>>>0,n[3]=n[3]+u>>>0,n[4]=n[4]+d>>>0}return[n[0]>>24&255,n[0]>>16&255,n[0]>>8&255,255&n[0],n[1]>>24&255,n[1]>>16&255,n[1]>>8&255,255&n[1],n[2]>>24&255,n[2]>>16&255,n[2]>>8&255,255&n[2],n[3]>
1>24&255,n[3]>>16&255,n[3]>>8&255,255&n[3],n[4]>>24&255,n[4]>>16&255,n[4]>>8&255,255&n[4]]};t.default=i},3070:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default="00000000-0000-0000-0000-000000000000"},3071:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,r=(a=n(2940))&&a.__esModule?a:{default:a};var i=function(e){if(!(0,r.default)(e))throw TypeError("Invalid UUID");return parseInt(e.slice(14,15),16)};t.default=i},3072:function(e,t,n){"use strict";n.d(t,"a",(function(){return l})),n.d(t,"b",(function(){return f}));var a=n(0),r=n.n(a),i=n(50),o=n(3163),c=n.n(o);const s=e=>r.a.createElement(r.a.Fragment,null,e.backgroundWrapper,r.a.createElement("div",{className:Object(i.a)(c.a.content,e.fluid&&c.a.fluid,e.contentClassName)},e.children||null)),l=({className:e,greyBackground:t,id:n,...a})=>r.a.createElement("section",{className:Object(i.a)(c.a.wrapper,e,t&&c.a.greyBackground),id:n},r.a.createElement(s,a));var u=n(16),d=n(11),m=n(3143);const f=({sectionId:e,className:t,greyBackground:n,visibilityTrackerProps:o,...l})=>{const{pageId:f}=Object(u.j)(),g={threshold:.5,onFirstEnterViewport:Object(a.useCallback)(()=>{e&&d.f.sharedPageContentEnteredViewport(f,e)},[f,e])},p=(null==o?void 0:o.onExitViewport)&&o.onEnterViewport?o:{...g,...o};return r.a.createElement(m.b,{className:Object(i.a)(c.a.wrapper,t,n&&c.a.greyBackground),...p},r.a.createElement(s,l))}},3073:function(e,t,n){"use strict";n.d(t,"b",(function(){return r})),n.d(t,"a",(function(){return i}));var a=n(0);const r=(e,t,n,r=1)=>{Object(a.useEffect)(()=>{const{current:a}=e;if(IntersectionObserver&&a){const e=new IntersectionObserver(([e],a)=>{n&&e.intersectionRatio<=0?n(a,e):t&&e.intersectionRatio>=r&&t(a,e)},{root:null,rootMargin:"0px",threshold:[0,r]});return e.observe(a),()=>{e.unobserve(a)}}},[e,t,n,r])},i=(e,t,n=1)=>{r(e,n=>{t();const{current:a}=e;a&&n.unobserve(a)},void 0,n)}},3074:function(e,t,n){"use strict";n.d(t,"a",(function(){return c})),n.d(t,"b",(function(){return s}));var a=n(0),r=n(16),i=n(59),o=n(71);const c="signin",s=()=>{const{navigate:e}=Object(r.j)(),{showAccountChooser:t}=Object(r.e)(),{auth:n}=Object(r.b)(),s=Object(a.useCallback)(async()=>{try{if(!t)return c;return(await n.getAuthenticationOptions()).accounts.length?"signinSelectAccount":c}catch(e){return Object(o.b)("identity").error("Error fetching authentication options",e),c}},[n,t]);return{handleSigninNavigate:Object(a.useCallback)(async t=>{const n=await s();e({routeId:n,query:Object(i.d)(t)})},[e,s])}}},3077:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var a=n(0),r=n.n(a),i=n(163);const o=e=>r.a.createElement("svg",{width:"13",height:"13",viewBox:"0 0 13 13",fill:"none"},r.a.createElement("path",{d:"M1 1L6.5 6.5M12 12L6.5 6.5M6.5 6.5L12 1M6.5 6.5L1 12",stroke:e.color?i.a[e.color]:"currentColor",strokeLinecap:"round"}))},3078:function(e,t,n){e.exports=n.p+"files/c27eeaa1ef6e610d52e543eb9bb3679b/grammarly_logo.svg"},3079:function(e,t,n){e.exports=n.p+"files/44c5cceacbcbb49d4e8e7c3bbb964d60/grammarly_logo_mobile.svg"},3080:function(e,t,n){e.exports={mobileOpenClose:"_2qOOY-mobileOpenClose",container:"_2rt5p-container",mobileContainer:"xK2sz-mobileContainer",fixedBeforeShow:"_1pnO2-fixedBeforeShow",fixedAfterShow:"_20Oh5-fixedAfterShow",mobileChildren:"d3o2s-mobileChildren",active:"_23Vef-active",mobileTop:"NfH4H-mobileTop"}},3081:function(e,t,n){e.exports={mainItemsList:"vS-8S-mainItemsList",dropdownItemList:"_2of3A-dropdownItemList",vertical:"_15fJx-vertical",dropdownItem:"YZyVe-dropdownItem",dropdownItemLabel:"_2KqN9-dropdownItemLabel",active:"_59H5C-active"}},3082:function(e,t,n){},3143:function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var a=n(0),r=n.n(a);class i extends r.a.Component{get firstViewportEntryObserver(){const{onFirstEnterViewport:e,threshold:t}=this.props,n=new IntersectionObserver(([t])=>{t.isIntersecting&&e&&(e(),n.unobserve(t.target))},{root:null,rootMargin:"0px",threshold:t||1});return n}get continuousViewportIntersectionObserver(){const{onExitViewport:e,onEnterViewport:t,threshold:n}=this.props;return new IntersectionObserver(([a])=>{1!==a.intersectionRatio&&e&&(!n||a.intersectionRatio<n)?e():t&&t()},{threshold:n||1})}async componentDidMount(){if(!("IntersectionObserver"in window))return;const{onFirstEnterViewport:e}=this.props;
1this.observer=e?this.firstViewportEntryObserver:this.continuousViewportIntersectionObserver,this.ref.current&&this.observer.observe(this.ref.current)}async componentWillUnmount(){this.observer&&this.ref.current&&this.observer.unobserve(this.ref.current)}render(){const{threshold:e,onFirstEnterViewport:t,onExitViewport:n,onEnterViewport:a,children:i,...o}=this.props;return r.a.createElement("section",{ref:this.ref,...o},i)}constructor(...e){super(...e),this.ref=r.a.createRef(),this.observer=null}}t.b=i},3149:function(e,t,n){"use strict";var a=n(278);n.d(t,"c",(function(){return a.d})),n.d(t,"b",(function(){return a.c}));var r=n(3029);n.d(t,"a",(function(){return r.a}))},3164:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var a=n(0),r=n.n(a),i=n(146);function o(e){const{href:t,routeId:n,waypoint:a,nav:o,key:c,...s}=e;return r.a.createElement("link",{rel:"canonical",href:t||Object(i.d)(o,a||{routeId:n}),...s,key:c||"canonical"})}},3381:function(e,t,n){"use strict";n.d(t,"d",(function(){return l})),n.d(t,"a",(function(){return d})),n.d(t,"c",(function(){return m})),n.d(t,"b",(function(){return g})),n.d(t,"e",(function(){return p}));var a=n(46),r=n(95),i=n(625),o=n(59);const c=[a.b.OAuth.ClientId.DesktopEditor,a.b.OAuth.ClientId.DesktopEditorOSX,a.b.OAuth.ClientId.DesktopEditorWindows,a.b.OAuth.ClientId.WindowsExtension,a.b.OAuth.ClientId.MacExtension],s=[a.b.OAuth.ClientId.WindowsExtension,a.b.OAuth.ClientId.MacExtension],l=e=>s.includes(e),u=["grammarly://oauth","grammarly.officeaddin://oauth","grammarly.windows-extension://oauth","grammarly.mac-extension://oauth","grammarly.macSensei://oauth","grammarly.extension://oauth","vscode://znck.grammarly/auth/callback","vscode-insiders://znck.grammarly/auth/callback"],d=async(e,t)=>{if((e=>Object(i.j)(e)&&c.some(t=>Object(o.a)(e,"client_id",t)))(e))try{const{clientId:n,codeChallenge:a}=Object(i.c)(e),o=await Object(i.m)(e.api,n,a);return t?Object(r.a)(o,t):o}catch(e){}},m=e=>{const t=e.nav.query.redirect_to,n=e.nav.query.client_id;if(t)try{return{redirectTo:atob(t),clientId:n}}catch(e){}return{clientId:n}},f=(e,t)=>e&&t?{redirect_to:btoa(e),client_id:t}:{},g=(e,t)=>({routeId:"unifiedAppSigninSuccess",query:f(e,t)}),p=e=>u.some(t=>e.startsWith(t))},3393:function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var a=n(0),r=n.n(a),i=n(50),o=n(3672),c=n.n(o);const s=({inset:e=!1,className:t,children:n})=>r.a.createElement("div",{className:Object(i.b)(c.a.container,e&&c.a.inset,t)},n)},3672:function(e,t,n){e.exports={container:"_2H35C-container",inset:"_3RZri-inset"}},3673:function(e,t,n){},3678:function(e,t,n){e.exports={inactive:"_3HfFt-inactive"}},3679:function(e,t,n){"use strict";n.d(t,"a",(function(){return g}));var a=n(0),r=n.n(a),i=n(623),o=n(243),c=n(50),s=n(2983);const l=({fill:e,strokeColor:t})=>{const n=Object(a.useRef)(Object(s.v4)()).current;return r.a.createElement("svg",{width:"32",height:"32",viewBox:"0 0 32 32",fill:null!=e?e:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true"},r.a.createElement("g",{clipPath:`url(#${n})`},r.a.createElement("circle",{cx:"16",cy:"16",r:"15",stroke:null!=t?t:"#565B6C",strokeWidth:"2"}),r.a.createElement("path",{d:"M21.7003 15.1601C22.31 15.5541 22.31 16.4459 21.7003 16.8399L14.234 21.6648C13.5686 22.0948 12.6913 21.6172 12.6913 20.825L12.6913 11.175C12.6913 10.3828 13.5686 9.90516 14.234 10.3352L21.7003 15.1601Z",fill:null!=t?t:"#565B6C"})),r.a.createElement("defs",null,r.a.createElement("clipPath",{id:n},r.a.createElement("rect",{width:"32",height:"32",fill:null!=t?t:"white"}))))},u=({fill:e,strokeColor:t})=>{const n=Object(a.useRef)(Object(s.v4)()).current;return r.a.createElement("svg",{width:"32",height:"32",viewBox:"0 0 32 32",fill:null!=e?e:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true"},r.a.createElement("g",{clipPath:`url(#${n})`},r.a.createElement("circle",{cx:"16",cy:"16",r:"15",stroke:null!=t?t:"#565B6C",strokeWidth:"2"}),r.a.createElement("rect",{x:"20",y:"10",width:"12",height:"2",rx:"1",transform:"rotate(90 20 10)",fill:null!=t?t:"#565B6C"}),r.a.createElement("rect",{x:"14",y:"10",width:"12",height:"2",rx:"1",transform:"rotate(90 14 10)",fill:null!=t?t:"#565B6C"})),r.a.createElement("defs",null,r.a.createElement("clipPath",{id:n},r.a.createElement("rect",{width:"32",height:"32",fill:null!=t?t:"white"}))))};var d=n(3678),m=n.n(d);const f=({state:e,backgroundColor:t,strokeColor:n})=>"playing"===e?r.a.createElement(u,{fill:t,strokeColor:n}):r.a.createElement(l,{fill:t,strokeColor:n}),g=({onClick:e,state:t,ariaLabel:n,backgroundColor:a,strokeColor:s,...l})=>(n=null!=n?n:(e=>{switch(e){case"playing":return"Pause";case"paused":return"Play";case"inactive":return"";default:Object(o.assertNever)(e)}}
1)(t),r.a.createElement(i.Button,{disabled:"inactive"===t,padding:"none",type:"button",onClick:e,"aria-label":n,className:Object(c.b)("inactive"===t&&m.a.inactive),...l},r.a.createElement(f,{state:t,backgroundColor:a,strokeColor:s})))},3779:function(e,t,n){"use strict";(function(e){n.d(t,"b",(function(){return d})),n.d(t,"a",(function(){return m})),n.d(t,"h",(function(){return f})),n.d(t,"c",(function(){return g})),n.d(t,"f",(function(){return p})),n.d(t,"d",(function(){return b})),n.d(t,"e",(function(){return h})),n.d(t,"g",(function(){return y}));var a=n(0),r=n.n(a),i=n(13),o=n(134),c=n(17),s=n(14),l=n(4622),u=n.n(l),d=function(e){return e.INSTITUTION_ALREADY_ASSIGNED="institution_already_assigned",e.INSTITUTION_IS_DISABLED="institution_is_disabled",e.INSTITUTION_IS_EXPIRED="institution_is_expired",e.INSTITUTION_NOT_FOUND="institution_not_found",e.INSTITUTION_USERS_NUMBER_UNDER_LIMIT="institution_users_number_under_limit",e.KEY_NOT_FOUND="key_not_found",e.ACCESS_CODE_NOT_FOUND="access_code_not_found",e.KEY_WAS_DEACTIVATED="key_was_deactivated",e.SOMETHING_WENT_WRONG="something_went_wrong",e.TOO_MANY_REQUESTS="too_many_requests",e.USER_ALREADY_PREMIUM="user_already_premium",e.USER_KEY_NOT_FOUND="user_key_not_found",e.USER_INVALID_DOMAIN="user_invalid_domain",e.USER_NOT_FOUND="user_not_found",e.INSTITUTION_SSO_IS_ACTIVE="institution_sso_is_active",e}({}),m=function(e){return e.attention="attention",e.success="success",e.error="error",e}({});const f=e=>{switch(Object(i.i)(e)){case"too_many_requests":return{type:"attention",title:"Too many attempts.",text:"Please try again later."};case"institution_not_found":return{type:"attention",title:"Team no longer exists.",text:r.a.createElement("span",null,"The team you are trying to join no longer exists.",r.a.createElement("br",null),"To improve your communication with Grammarly, get a free",r.a.createElement("br",null),"individual account.")};case"key_was_deactivated":return{type:"success",title:"Your invitation was revoked.",text:r.a.createElement("span",null,"Your admin has revoked your invitation.",r.a.createElement("br",null),"Please ask your admin to invite you back or get a free individual account.")};default:return{type:"error",title:"Your invitation link is invalid.",text:r.a.createElement("span",null,"Your invitation link is incorrect or it has expired.",r.a.createElement("br",null),"Please check your link or request a new invitation from your admin.",r.a.createElement("br",null),"You can also get a free individual account.")}}},g={header:"Looks like something went wrong",text:"Please contact support so we can fix your issue, or try again later."},p=(e,t)=>{const n=`Please contact the administration at ${t} to request an extended enterprise license, or proceed with your free personal Grammarly account.`;switch(Object(i.i)(e)){case"too_many_requests":return{header:"Too many attempts.",text:"Please try again later.",error:e};case"institution_not_found":return{header:"Team no longer exists.",text:r.a.createElement(r.a.Fragment,null,"The team you are trying to join no longer exists.",r.a.createElement("br",null),"To improve your communication with Grammarly, get a free",r.a.createElement("br",null),"individual account."),error:e};case"key_was_deactivated":return{header:"Your invitation was revoked.",text:r.a.createElement(r.a.Fragment,null,"Your admin has revoked your invitation.",r.a.createElement("br",null),"Please ask your admin to invite you back or get a free individual account."),error:e};case"institution_users_number_under_limit":return{header:`All allotted accounts are taken for ${t}.`,text:n,error:e};case"institution_is_expired":case"institution_is_disabled":return{header:"License no longer available.",text:n,error:e};case"institution_already_assigned":return{header:`Your account is already linked to ${t}.`,text:"Continue to the Grammarly editor to enjoy your existing account. If you believe this is a mistake, please let us know.",error:e};case"user_already_premium":return{header:"Your account is already Premium.",text:"Continue to the Grammarly editor to enjoy your existing account. If you believe this is a mistake, please let us know.",error:e};case"user_not_found":return{header:"We could not find an account associated with that activation link",text:"Please confirm that you used the correct link or contact the administration of your institution to request a new invitation. You may also choose to create an account as a regular user.",error:e};case"something_went_wrong":default:return{...g,error:e}}},b=(e,t,n,a,r,i)=>h(e,t,n,a,r,{name:i,validDomains:void 0}),h=(t,n,a,l,d,m)=>{const f=Object(c.a)().support.urls.newRequest,g=t=>{Object(s.b)("Error logging out user. Response from server: "+Object(i.p)(t),e,"logoutErrors")},p=()=>(null==m?void 0:m.name)||"your institution",b=`Please contact the administration at ${p()} to request an extended enterprise license, or proceed with your free personal Grammarly account.`,h="Continue with free account",y={header:"Oops, something went wrong.",text:r.a.createElement("div",null,"Please ",r.a.createElement(o.c,{href:f},"contact support")," so we can fix your issue, or try again later. For now you may choose to continue with a free account."),buttonOne:{text:h,onClick:()=>{t.nav.navigateCms("homepage")}}},v={header:"Hm, something went wrong.",text:r.a.createElement("div",null,"Please make sure to enable cookies in your browser settings. If that doesn't help,"," ",r.a.createElement(o.c,{href:f},"contact our friendly Support team")," for assistance."),buttonOne:{text:"Contact Support",onClick:()=>location.href=f}};switch(n){case"too_many_requests":return{header:"Too many invali
1d attempts.",text:"Please try again later.",buttonOne:{text:h,onClick:()=>{t.nav.navigateCms("homepage")}}};case"institution_users_number_under_limit":return{header:`All allotted accounts are taken for ${p()}.`,text:b,buttonOne:{text:h,onClick:()=>{t.nav.navigateCms("homepage")}}};case"institution_is_expired":case"institution_is_disabled":return{header:"License no longer available.",text:b,buttonOne:{text:h,onClick:()=>{t.nav.navigateCms("homepage")}}};case"institution_already_assigned":return{header:`Your account is already linked to ${p()}.`,text:r.a.createElement("div",null,"Continue to the Grammarly editor to enjoy your existing account. If you believe this is a mistake, please"," ",r.a.createElement(o.c,{href:f}," let us know "),"."),buttonOne:{text:"Go to Grammarly Editor",onClick:()=>{t.nav.navigateCms("homepage")}}};case"user_already_premium":return{header:"Your account is already Premium.",text:r.a.createElement("div",null,"Continue to the Grammarly editor to enjoy your existing account. If you believe this is a mistake, please"," ",r.a.createElement(o.c,{href:f}," let us know "),"."),buttonOne:{text:"Go to Grammarly Editor",onClick:()=>{t.nav.navigateCms("homepage")}}};case"user_invalid_domain":{var O,E;const e=null==m||null===(O=m.validDomains)||void 0===O?void 0:O.length,n=e?null==m||null===(E=m.validDomains)||void 0===E?void 0:E.join(", "):p(),i=e&&e>1?n+" domains":`a ${n} domain`;return{header:"Please use your organization's email.",text:r.a.createElement("div",null,"Your current email address is ",a,", but only email addresses with ",i," are eligible for this enterprise license. If you have an eligible email address, please use it to create a new account."),smallText:r.a.createElement("div",null,"Don't have an eligible email address?"," ",r.a.createElement(o.c,{className:u.a.tryFreeVersionLink,cmsPageId:"homepage"},"Try the free version of Grammarly.")),buttonOne:{text:"Create new account",onClick:()=>{l.logout().then(()=>t.nav.navigateCms({cmsPageId:"eduSignup"})).catch(g)}}}}case"key_not_found":return v;case"institution_invitation_required":return{header:"Accessing a Premium institution account requires an invitation from your institution admin.",text:"Please contact the administration of your institution to request an invite, or you may continue with a free account.",buttonOne:{text:h,onClick:()=>{t.nav.navigateCms("homepage")}}};case"mismatch_grauth_and_confirmation_key":return{header:"This confirmation link belongs to a different account",text:`You are currently logged in as ${a}. The confirmation link you are using is associated with a different account. Please log in with the correct account.`,buttonOne:{text:"Log out",onClick:()=>{l.logout().then(()=>t.nav.navigate({routeId:"eduSignin"})).catch(g)}}};case"mismatch_email_addresses":return{header:"You are logged in with a different account.",text:r.a.createElement("span",null,"This invitation is only valid for the email address ",r.a.createElement("b",null,d||"from your institution"," "),", but you are currently logged in as ",r.a.createElement("b",null," ",a," "),". Please switch accounts (you will be logged out of the current one and will have to sign up or log in to the new one) to join your organization."),buttonOne:{text:"Switch account",onClick:()=>{l.logout().then(()=>t.nav.navigate({routeId:"eduSignin",query:t.nav.waypoint.query})).catch(g)}}};case"user_not_found":return{header:"We could not find an account associated with that activation link.",text:"Please confirm that you used the correct link or contact the administration of your institution to request a new invitation. You may also choose to create an account as a regular user.",buttonOne:{text:"Create Account",onClick:()=>{l.logout().then(()=>t.nav.navigateCms({cmsPageId:"eduSignup"})).catch(g)}}};case"user_key_not_found":case"key_was_deactivated":const e="Your activation link has been deactivated by your institution admin.",i="Your activation link is incorrect or it has expired.";return{header:"key_was_deactivated"===n?e:i,text:"Please confirm that you used the correct link or contact the administration of your institution to request a new invitation. You may also choose to create an account as a regular user.",buttonOne:{text:"Create Account",onClick:()=>{l.logout().then(()=>t.nav.navigateCms({cmsPageId:"eduSignup"})).catch(g)}}};case"access_code_not_found":return{header:"Access code is no longer valid.",text:r.a.createElement("span",null,"Please contact the administration of your institution to request an invite. If your organization is using single sign-on, please sign in by launching Grammarly through your identity provider.",r.a.createElement("br",null),"You may also choose to continue with a free account."),buttonOne:{text:h,onClick:()=>{t.nav.navigateCms("homepage")}}};case"something_went_wrong":default:return y}};function y(e){var t;return[e.code,null!==(t=Object(i.i)(e))&&void 0!==t?t:"unknown api error"].filter(
1Boolean).join(" - ")}}).call(this,"/index.js")},3790:function(e,t,n){e.exports={pageSwoosh:"_1g1-A-pageSwoosh",mainContent:"_26mbB-mainContent",mainWithEditor:"_2Y9lB-mainWithEditor",proceed:"_31qaJ-proceed",page:"MTrkA-page",dark:"Fa6W0-dark",headerWrapper:"_1vk9o-headerWrapper",emailConfirmationContent:"_1CIa--emailConfirmationContent",link:"RoMNJ-link",loader:"_20Gi2-loader"}},4621:function(e,t,n){"use strict";n.d(t,"b",(function(){return l})),n.d(t,"e",(function(){return u})),n.d(t,"f",(function(){return d})),n.d(t,"d",(function(){return m})),n.d(t,"c",(function(){return f})),n.d(t,"a",(function(){return g}));var a=n(281),r=n(22),i=n(82),o=n(11),c=n(46);const s=async(e,t)=>{await Object(a.h)()?Object(a.f)(t):await o.f.sharedLlamaCallbackPageExtensionFailure(e.pageId)},l=e=>{const{client_id:t}=e.query;return t===c.b.OAuth.ClientId.WindowsExtension||t===c.b.OAuth.ClientId.MacExtension},u=async e=>{if(!l(e))return;d(e)&&(await o.f.sharedLlamaCallbackPageInstalledStepSaved(e.pageId),await m(e))},d=e=>{const{verify:t}=e.query,n=Object(r.c)(r.a.desktopIntegrationDownload);return!!t&&t.length>4&&n===t},m=async e=>{Object(r.f)(r.a.desktopIntegrationInstalled,"1",10*i.d),await s(e,a.a)},f=async e=>{Object(r.b)(r.a.desktopIntegrationInstalled),await s(e,a.b)},g=async e=>{await s(e,{action:"llama-redirect-url",redirectUrl:e.query.redirect_url})}},4622:function(e,t,n){e.exports={tryFreeVersionLink:"_1_28Y-tryFreeVersionLink"}},4671:function(e,t,n){"use strict";n.d(t,"a",(function(){return d}));var a=n(0),r=n.n(a),i=n(244),o=n.n(i),c=n(3679),s=n(4672),l=n.n(s);const u={default:{backgroundColor:"#FFF",strokeColor:void 0},green:{backgroundColor:"none",strokeColor:"#016A5E"}},d=({urlSrc:e,qa:t,placeholder:i,autoplay:s=!0,loop:d=!0,playbackSpeed:m=1,className:f,animationClassName:g,title:p,description:b,playPauseClassName:h,playPausePosition:y,playPauseButtonVariant:v})=>{const[O,E]=Object(a.useState)(!1),[w,j]=Object(a.useState)(s),[_,C]=Object(a.useState)(void 0);Object(a.useEffect)(()=>{n.e(250).then(n.t.bind(null,4942,7)).then(e=>{C(e.LottieReact)})},[]);const k=w?"Pause animation":"Play animation",I=O?w?"playing":"paused":"inactive",S=l.a[null!=y?y:"bottomLeft"],x={src:e,loop:d,autoplay:s,playbackSpeed:m,rendererSettings:{className:g,description:b,title:p},playing:w,onLoad:()=>{E(!0)}},{backgroundColor:A,strokeColor:P}=u[null!=v?v:"default"];return r.a.createElement("div",{className:o()(l.a.lottiePlayerContainer,f),"data-qa":t||"animation"},i,_&&r.a.createElement("div",{className:o()(O?l.a.showPausableLottie:l.a.hidePausableLottie,l.a.pausableLottie)},r.a.createElement(_,x),r.a.createElement("div",{className:o()(l.a.playPauseButtonWrapper,S,h)},r.a.createElement(c.a,{state:I,onClick:()=>j(e=>!e),ariaLabel:k,backgroundColor:A,strokeColor:P}))))}},4672:function(e,t,n){e.exports={lottiePlayerContainer:"_2wXKC-lottiePlayerContainer",showPausableLottie:"_3rDHz-showPausableLottie",hidePausableLottie:"_134jG-hidePausableLottie",pausableLottie:"_31gZv-pausableLottie",playPauseButtonWrapper:"RD-Hi-playPauseButtonWrapper",topRight:"_1kOAQ-topRight",topLeft:"_2Ievh-topLeft",bottomRight:"sjwPm-bottomRight",bottomLeft:"_3VnDU-bottomLeft"}},4727:function(e,t,n){"use strict";n.d(t,"b",(function(){return i})),n.d(t,"a",(function(){return o})),n.d(t,"c",(function(){return c}));var a=n(46);const r=(e,t)=>e.substr(0,t);function i(e,t){const n=(e=>e.trim())(t),i=(((e,t=25)=>{r(e,t)})(n),((e,t,n)=>({doc:{ops:[{insert:e}]},first_content:n}))(n,0,((e,t=250)=>r(e,t))(n))),o=a.c.DoxRequest.Create.textFull(i);return e.createDocument(o)}async function o(e,t){const n=a.c.DoxRequest.Create.textFull(t);return e.createDocument(n)}async function c(e,t){return e.searchDocument(new a.c.DoxRequest.Search(t))}},4752:function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var a=n(119);const r=Object(a.defineMessages)({signinPageTitle:{id:"auth.signin.page_title",defaultMessage:"Login | Grammarly",description:"Browser page title for the sign in page"},signinMetaDescription:{id:"auth.signin.meta_description",defaultMessage:"Log in to your Grammarly and start writing something amazing.",description:"Meta description for the sign in page"},signupPageTitle:{id:"auth.signup.page_title",defaultMessage:"Sign Up – Create a Free Account | Grammarly",description:"Browser page title for the sign up page"},signupMetaDescription:{id:"auth.signup.meta_description",defaultMessage:"Create a free Grammarly account and start eliminating writing mistakes in seconds. It's fast and free!",description:"Meta description for the sign up page"}})},4767:function(e,t,n){"use strict";(function(e){n.d(t,"a",(function(){return w})),n.d(t,"b",(function(){return j}));var a=n(22),r=n(284),i=n(14),o=n(13),c=n(37),s=n(4818),l=n(210),u=n(66),d=n(652),m=n(88),f=n(281),g=n(15),p=n(19),b=n(17),h=n(4768),y=n(344),v=n(4819),O=n(640);const E={es:"detector-de-ia",fr:"detecteur-ia",de:"ki-detektor",pt:"detector-de-ia",it:"rilevatore-ia"};async function w(e,t={}){return e.navigate({routeId:"personalize",query:{...e.query,...t,[d.a.AfterFirstQuestion]:"recommend",[d.a.SkipRecommend]:"true"}})}async function j(t,n,d,j,_){const{navigationService:C,browserService:k,apiService:I,experimentsService:S}=t,{targetPage:x,...A}=C.query,P=new m.a(C,I),L=Object(c.c)(A);if(Object(c.d)(L))return Object(p.d)(p.a.V4OAuthQueryParams,JSON.stringify(A)),Ob
1ject(O.a)(C.query,n.action);if(Object(u.f)(P)){if("SIGNUP"===n.action){if(!(k.isSafari||k.isFirefox))return w(C)}return await Object(f.e)()}if("checkBusinessEmail"===A.from&&C.navigate({routeId:"requestToJoin"}),"edu"===A.from&&!S.isEduAssignByDomainOnSignupDisabled){if(d.institutionId)return j();if(d.confirmed){const e=()=>{C.navigate({routeId:"businessMemberWelcome"})};return Object(h.b)(C.pageId,I,e,j)}const e=()=>{C.navigate({routeId:"eduCheckYourEmail"})};return Object(h.a)(C.pageId,I,e)}if("grammarCheck"===A.from&&"SIGNIN"===n.action){const e=await Object(s.a)(I.dox);if(e)return Object(l.g)(e.id)}if(Object(v.a)(x))return"_redirectService"===x?Object(r.b)(C,A).catch(t=>Object(i.b)("Error navigating by redirect after successful authentication "+Object(o.p)(t),e,"UnifiedAuth.OnAuthSuccessRedirect").then(()=>j(),()=>j())):Object(y.b)(x)?C.navigateCms(x):C.navigate({routeId:x,query:A});const T=Number(Object(a.c)(a.a.grammarlyDiscountValue));if(k.isMobileTabletOrIPadOS13&&T>0)return g.c.getMetric(g.a.GeneralClientMetricNames.Page).getCounter(g.a.ClientMetricActions.Success).setContext({redirectType:"mobileAuthUpgradeRedirect",authAction:n.action,discountValue:String(T),pageId:C.pageId}).increment(),C.navigate({routeId:"upgrade",query:A});if("true"===A.skipSurvey)return C.navigate({routeId:"productInstallRecommendation",query:A});const N=Object(p.b)(p.a.referrerPageSlug);if("SIGNIN"!==n.action||!(e=>{if(!e)return!1;const t=e.split("/").filter(Boolean);return 2===t.length&&E[t[0]]===t[1]})(N)){if(_){const e=C.pageId;if(!("signin"===e||"signup"===e))return Promise.resolve()}return"SIGNUP"===n.action?C.navigate({routeId:"personalize",query:{...A}}):j()}window.location.href=`https://www.${Object(b.a)().domains.main}/${N}`}}).call(this,"/")},4768:function(e,t,n){"use strict";(function(e){n.d(t,"b",(function(){return l})),n.d(t,"a",(function(){return u}));var a=n(17),r=n(11),i=n(281),o=n(3779),c=n(14),s=n(13);const l=async(t,n,l,u,d)=>{try{await n.institution.assignToInstitutionByDomain(),r.f.eduAssignMemberFormSuccess(t),Object(i.c)(),l()}catch(n){r.f.eduAssignMemberFormFail(t,void 0,Object(o.g)(n)),Object(c.b)("Error assigning to institution. Response from server: "+Object(s.p)(n),e,"eduInstitutionAssignError");const i=Object(s.h)(n),l=n.code>=400&&n.code<500,f=!Object.values(s.b).includes(i.error);switch(i.error){case o.b.INSTITUTION_SSO_IS_ACTIVE:m=function(e){return e.details.ssoId}(i),window.location.href=`${Object(a.a)().urls.ssoLogin}?ssoId=${m}`;break;default:l&&f?u():null==d||d(i)}}var m},u=async(t,n,a,i)=>{try{await n.auth.sendConfirmationEmail("edu"),a()}catch(n){r.f.eduConfirmationEmailSendFormFail(t,void 0,Object(s.f)(n)),null==i||i(),Object(c.b)("Error sending edu email confirmation. Response from server: "+Object(s.p)(n),e,"eduEmailConfirmationSendErrors")}}}).call(this,"/index.js")},4818:function(e,t,n){"use strict";(function(e){n.d(t,"a",(function(){return c}));var a=n(4727),r=n(65),i=n(13),o=n(14);const c=async t=>{const n=Object(r.b)(r.a.checkedText);if(n&&n.length>0)try{const e=await Object(a.b)(t,n);return Object(r.e)(r.a.checkedText),e}catch(t){Object(o.b)("Error trying to save text. Response from server: "+Object(i.p)(t),e,"saveCheckTextErrors")}}}).call(this,"/index.js")},4819:function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));const a=["report","singlePlanComparison","businessConfirm","upgradeBusiness","_redirectService","requestToJoin","aiDetector","aiHumanizer","paraphrasingTool","plagiarismChecker","grammarCheck","upgradePro","accountTypeSelection"];function r(e){return a.includes(e)}},4820:function(e,t,n){"use strict";(function(e){n.d(t,"a",(function(){return l}));var a=n(0),r=n.n(a),i=n(14),o=n(50),c=n(4821),s=n.n(c);const l=({className:t,onFailure:n,onSuccess:c})=>{const l=Object(a.useCallback)(t=>{const a=t.target.value.trim();a.toLowerCase().startsWith("success")?null==c||c():(e=>e.toLowerCase().startsWith("failure"))(a)?null==n||n():Object(i.b)("Llama Protocol Error: Unknown message from Llama",e,"llamaUnknownMessage")},[n,c]);return r.a.createElement("input",{type:"text",className:Object(o.a)(s.a.hiddenInput,t),onChange:l,"aria-label":"authentication-status"})}}).call(this,"/index.js")},4821:function(e,t,n){e.exports={hiddenInput:"_24cly-hiddenInput"}},4822:function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var a=n(3381);const r=e=>{const{clientId:t,postInstall:n}=e;return!!t&&Object(a.d)(t)&&!!n}},4823:function(e,t,n){"use strict";(function(e){n.d(t,"a",(function(){return u}));var a=n(0),r=n(11),i=n(113),o=n(17),c=n(16),s=n(14);const{aiEditorNewDocWithEligibility:l}=Object(o.a)().urls;function u(){const t=Object(a.useRef)(),n=Object(a.useRef)(0),o=Object(c.j)(),{pageId:u}=o,d=Object(a.useCallback)(()=>{t.current&&(clearTimeout(t.current),t.current=void 0)},[]),m=Object(a.useCallback)(async e=>{n.current=Date.now(),t.current=setTimeout(async()=>{await Object(i.d)(r.f.sharedPostLlamaInstallOAuthSessionSyncTimeout(u,15e3)),d(),null==e||e()},15e3)},[u,d]),f=Object(a.useCallback)(async()=>{const e=Date.now()-n.current;await Object(i.d)(r.f.sharedPostLlamaInstallSuccessMessageReceived(u,e)),d(),window.location.replace(l)},[u,d]),g=Object(a.useCallback)(()=>{Object(s.b)("Llama Post Install Message Error: received failure message from Llama when starting OAuth flow",e,"llamaSessionSyncError")},[]);return Object(a.useEffect)(()=>()=>{d()},[d]),{startAuthStatusListenerTimeout:m,onLlamaAuthSuccess:f,onLlamaAuthFailure:g}}}).call(this,"/index.js")},4980:function(e,t,n){e.exports=n.p+"files/12a3ca8d7e6c9fc3e4a41a1a0a313c1f/blurred_editor_light.webp"},4981:function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var a=n(11);
1class r{constructor(e){this.pageId=e,this.trackOAuthAppConsentButtonClick=(e,t)=>a.f.sharedOAuthAppConsentButtonClick(e,t,this.pageId),this.trackOAuthAppConsentLinkClick=(e,t)=>a.f.sharedOAuthAppConsentLinkClick(e,t,this.pageId)}}},4982:function(e,t,n){"use strict";n.d(t,"a",(function(){return p}));var a=n(0),r=n.n(a),i=n(119),o=n(144),c=n(4671),s=n(136),l=n(145),u=n(50),d=n(4983),m=n.n(d),f=n(4984),g=n.n(f);const p=e=>{const{hasStartedOAuthFlow:t,...n}=e;return r.a.createElement("div",{className:Object(u.a)(g.a.oauthConsentWithAgentsContainer,t&&g.a.loading)},r.a.createElement(r.a.Fragment,null,r.a.createElement(o.Flex,{direction:"column",align:"center",gap:2},r.a.createElement(o.Heading,{as:"h1",variant:"heading-large",color:"brand-default",align:"center",className:Object(u.a)(g.a.heading,g.a.initial,t&&g.a.oauthStarted)},r.a.createElement(i.FormattedMessage,{id:"auth.consent.agents.go_time",defaultMessage:"It's go time",description:"Exciting heading shown initially in the AI agents onboarding flow"})),r.a.createElement(o.Heading,{as:"h1",variant:"heading-large",color:"brand-default",align:"center",className:Object(u.a)(g.a.heading,g.a.agents,t&&g.a.oauthStarted)},r.a.createElement(i.FormattedMessage,{id:"auth.consent.agents.getting_ready",defaultMessage:"Getting your agents ready ...",description:"Loading heading shown while OAuth flow starts in AI agents onboarding"})),!t&&r.a.createElement(o.Text,{as:"p",variant:"text-small",weight:"normal",align:"center",color:"brand-default"},r.a.createElement(i.FormattedMessage,{id:"auth.consent.agents.explore_description",defaultMessage:"Explore your agents and unlock a new way to write.",description:"Descriptive text encouraging users to explore AI agents during onboarding"}))),r.a.createElement(c.a,{urlSrc:"https://cdn.lottielab.com/l/84qRgWjkNLAJoc.json",autoplay:!0,loop:!0,playPausePosition:"bottomRight",playPauseButtonVariant:"green",className:Object(u.a)(g.a.agentsAnimation,!t&&g.a.hidden),placeholder:r.a.createElement(l.a,{alt:"",src:m.a,className:g.a.agentsAnimationPlaceholder})}),!t&&r.a.createElement(s.e,{...n,variant:"simplified"})))}},4983:function(e,t,n){e.exports=n.p+"files/7abbec7d1a5cdb498eea3e824dff4d07/agents_animation_placeholder.webp"},4984:function(e,t,n){e.exports={oauthConsentWithAgentsContainer:"yEMlD-oauthConsentWithAgentsContainer",loading:"_3sQuL-loading",heading:"_223Jv-heading",initial:"Z1KWU-initial",oauthStarted:"_3w_U9-oauthStarted",fadeOut:"_1iLiL-fadeOut",agents:"_3W2B5-agents",fadeIn:"_1bGZS-fadeIn",agentsAnimation:"_3jiVY-agentsAnimation",hidden:"_3dRNm-hidden",agentsAnimationPlaceholder:"_3JLw1-agentsAnimationPlaceholder"}},4985:function(e,t,n){e.exports={onboardingPageTitle:"_3t42M-onboardingPageTitle",main:"_24Kxl-main",mainWithEditor:"w1Vm2-mainWithEditor"}},5182:function(e,t,n){e.exports={developerPageSwoosh:"_15Z7N-developerPageSwoosh",features:"_2H6iv-features",learnMore:"_1lbkH-learnMore"}},5479:function(e,t,n){e.exports={sectionContainer:"_FHze-sectionContainer",description:"_1Iisc-description",arrowContainer:"_10YmO-arrowContainer",arrow:"_3omT0-arrow"}},5720:function(e,t,n){e.exports={container:"_1jPYd-container",parent:"_1OPWh-parent",sidebar:"zfXzx-sidebar"}},5721:function(e,t,n){"use strict";(function(e){var a=n(0),r=n.n(a),i=n(120),o=n(119),c=n(144),s=n(438),l=n(11),u=n(14),d=n(2938),m=n(3149),f=n(619),g=n(278),p=n(37),b=n(136),h=n(3164),y=n(630),v=n(16),O=n(19),E=n(639),w=n(4767),j=n(672),_=n(3393),C=n(659),k=n(4752),I=n(4980),S=n.n(I),x=n(3790),A=n.n(x);t.a=Object(s.c)(()=>{const t=Object(o.useIntl)(),n=Object(v.d)(),{experimentsService:s,navigationService:I,browserService:x,userService:P,facadeService:L,onboardingService:T}=n,{query:N}=I,M="edu"===Object(j.a)(null==N?void 0:N.pageStyle),F=N[C.a],D=Object(C.b)(F)?F:void 0,q=L.get().loginHint,[U,R]=Object(a.useState)(Object(O.b)(O.a.loginHint,!0)||Object(O.b)(O.a.accountChooserLoginHint,!0)||q||void 0),B=!U&&"1"===N.extLoginHint,[H,W]=Object(a.useState)(B),[G,V]=Object(a.useState)(Object(O.b)(O.a.loginHintType,!0)||Object(O.b)(O.a.accountChooserLoginHintType,!0)||(q?p.a.LoginType.email:void 0)),Y=Object(E.c)({browserService:x,userService:P,navigationService:I}),z=Y&&s.isAutomaticSignInEnabled;Object(a.useEffect)(()=>{T.setTrafficInfoParamsFromUrl()},[T]),Object(a.useEffect)(()=>{const e=e=>{const{origin:t,data:n}=e;if(t===window.location.origin&&"loginHint"===n.name){var a,r;const e=null==n||null===(a=n.data)||void 0===a?void 0:a.email,t=null==n||null===(r=n.data)||void 0===r?void 0:r.loginType;"string"==typeof e&&"string"==typeof t&&(R(e),V(t))}};return window.addEventListener("message",e),()=>window.removeEventListener("message",e)},[]),Object(a.useEffect)(()=>{const t=setTimeout(()=>{Object(u.b)("Timeout occurred while waiting for an Extension message to trigger Account Chooser flow",e,"extensionMessageEventTimeout"),l.f.sharedMessageEventExtensionTimeout(4e3,I.pageId),W(!1)},4e3);return()=>clearTimeout(t)},[I.pageId]);const $=Object(a.useCallback)((e,t,a)=>Object(w.b)(n,e,t,a,z),[n,z]),Z=Object(a.useCallback)(e=>{e===p.a.Error.FormRenderErrorCode.UserIsAnonymous&&I.navigate({routeId:"signin"},void 0,void 0,!0)},[I]),J=Object(a.useCallback)((e,t)=>{Object(O.d)(O.a.loginHint,e),Object(O.d)(O.a.loginHintType,t)},[]);return r.a.createElement(d.b,null,r.a.createElement(i.Helmet,{title:t.formatMessage(k.a.signinPageTitle)},Object(h.a)({nav:I,routeId:"signin"}),Object(y.b)(t.formatMessage(k.a.signinMetaDescription)),Object(y.d)({href:S.a,as:"image"})),Y&&r.a.createElement(E.b,{onRedirectAfterAuthSuccess:$,context:"signin",autoSignIn:z}),r.a.createElement(f.c,{className:A.a.mainWithEditor}
1,r.a.createElement(_.a,null,r.a.createElement(b.n,null,H?r.a.createElement(c.Loader,{accessibilityLabel:t.formatMessage({id:"auth.signin.loading_account",defaultMessage:"Loading account info",description:"Accessibility label for loading spinner on sign in page."}),className:A.a.loader},r.a.createElement(c.Loader.Branded,{size:"medium"})):N.secureLogin?r.a.createElement(g.b,{onFormRenderError:Z}):r.a.createElement(m.b,{supplementaryFlowType:p.a.Props.SupplementaryFlowType.Link,supplementaryFlowLink:I.createUrl({routeId:"signup",query:N}),isIgnoreSignInSSO:"false"===N.ssoRedirect,onRedirectAfterAuthSuccess:$,acrValues:D,onCreateNewAccount:J,autoSubmitLoginHint:!q,loginHint:U,loginHintType:G,titleHeadingHtmlTag:"h1",isSocialSignInFirstExperimentEnabled:s.isSocialFirstSignin,...M?{customizationType:p.a.Props.CustomizationTypes.EDU}:{}})))))})}).call(this,"/index.js")}}]);

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.