1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1374],{30653:function(e,n,t){"use strict";var a=t(87462),i=t(84506),r=t(29439),o=t(45987),s=t(67294),l=(t(59864),t(86010)),c=t(66037),u=t(79895),d=t(14670),p=t(20032),h=t(22775),m=s.forwardRef((function(e,n){var t=e.children,d=e.classes,m=e.className,g=e.defaultExpanded,f=void 0!==g&&g,b=e.disabled,x=void 0!==b&&b,y=e.expanded,Z=e.onChange,v=e.square,k=void 0!==v&&v,E=e.TransitionComponent,B=void 0===E?c.Z:E,w=e.TransitionProps,G=(0,o.Z)(e,["children","classes","className","defaultExpanded","disabled","expanded","onChange","square","TransitionComponent","TransitionProps"]),S=(0,h.Z)({controlled:y,default:f,name:"ExpansionPanel",state:"expanded"}),N=(0,r.Z)(S,2),P=N[0],T=N[1],C=s.useCallback((function(e){T(!P),Z&&Z(e,!P)}),[P,Z,T]),D=s.Children.toArray(t),_=(0,i.Z)(D),I=_[0],R=_.slice(1),A=s.useMemo((function(){return{expanded:P,disabled:x,toggle:C}}),[P,x,C]);return s.createElement(u.Z,(0,a.Z)({className:(0,l.Z)(d.root,m,P&&d.expanded,x&&d.disabled,!k&&d.rounded),ref:n,square:k},G),s.createElement(p.Z.Provider,{value:A},I),s.createElement(B,(0,a.Z)({in:P,timeout:"auto"},w),s.createElement("div",{"aria-labelledby":I.props.id,id:I.props["aria-controls"],role:"region"},R)))}));n.Z=(0,d.Z)((function(e){var n={duration:e.transitions.duration.shortest};return{root:{position:"relative",transition:e.transitions.create(["margin"],n),"&:before":{position:"absolute",left:0,top:-1,right:0,height:1,content:'""',opacity:1,backgroundColor:e.palette.divider,transition:e.transitions.create(["opacity","background-color"],n)},"&:first-child":{"&:before":{display:"none"}},"&$expanded":{margin:"16px 0","&:first-child":{marginTop:0},"&:last-child":{marginBottom:0},"&:before":{opacity:0}
1},"&$expanded + &":{"&:before":{display:"none"}},"&$disabled":{backgroundColor:e.palette.action.disabledBackground}},rounded:{borderRadius:0,"&:first-child":{borderTopLeftRadius:e.shape.borderRadius,borderTopRightRadius:e.shape.borderRadius},"&:last-child":{borderBottomLeftRadius:e.shape.borderRadius,borderBottomRightRadius:e.shape.borderRadius,"@supports (-ms-ime-align: auto)":{borderBottomLeftRadius:0,borderBottomRightRadius:0}}},expanded:{},disabled:{}}}),{name:"MuiExpansionPanel"})(m)},20032:function(e,n,t){"use strict";var a=t(67294).createContext({});n.Z=a},74965:function(e,n,t){"use strict";var a=t(87462),i=t(45987),r=t(67294),o=t(86010),s=t(14670),l=r.forwardRef((function(e,n){var t=e.classes,s=e.className,l=(0,i.Z)(e,["classes","className"]);return r.createElement("div",(0,a.Z)({className:(0,o.Z)(t.root,s),ref:n},l))}));n.Z=(0,s.Z)((function(e){return{root:{display:"flex",padding:e.spacing(1,2,2)}}}),{name:"MuiExpansionPanelDetails"})(l)},68479:function(e,n,t){"use strict";var a=t(87462),i=t(45987),r=t(67294),o=t(86010),s=t(32467),l=t(17812),c=t(14670),u=t(20032),d=r.forwardRef((function(e,n){var t=e.children,c=e.classes,d=e.className,p=e.expandIcon,h=e.IconButtonProps,m=e.onBlur,g=e.onClick,f=e.onFocusVisible,b=(0,i.Z)(e,["children","classes","className","expandIcon","IconButtonProps","onBlur","onClick","onFocusVisible"]),x=r.useState(!1),y=x[0],Z=x[1],v=r.useContext(u.Z),k=v.disabled,E=void 0!==k&&k,B=v.expanded,w=v.toggle;return r.createElement(s.Z,(0,a.Z)({focusRipple:!1,disableRipple:!0,disabled:E,component:"div","aria-expanded":B,className:(0,o.Z)(c.root,d,E&&c.disabled,B&&c.expanded,y&&c.focused),onFocusVisible:function(e){Z(!0),f&&f(e)},onBlur:function(e){Z(!1),m&&m(e)},onClick:function(e){w&&w(e),g&&g(e)},ref:n},b),r.createElement("div",{className:(0,o.Z)(c.content,B&&c.expanded)},t),p&&r.createElement(l.Z,(0,a.Z)({className:(0,o.Z)(c.expandIcon,B&&c.expanded),edge:"end",component:"div",tabIndex:null,role:null,"aria-hidden":!0},h),p))}));n.Z=(0,c.Z)((function(e){var n={duration:e.transitions.duration.shortest};return{root:{display:"flex",minHeight:48,transition:e.transitions.create(["min-height","background-color"],n),padding:e.spacing(0,2),"&:hover:not($disabled)":{cursor:"pointer"},"&$expanded":{minHeight:64},"&$focused":{backgroundColor:e.palette.action.focus},"&$disabled":{opacity:e.palette.action.disabledOpacity}},expanded:{},focused:{},disabled:{},content:{display:"flex",flexGrow:1,transition:e.transitions.create(["margin"],n),margin:"12px 0","&$expanded":{margin:"20px 0"}},expandIcon:{transform:"rotate(0deg)",transition:e.transitions.create("transform",n),"&:hover":{backgroundColor:"transparent"},"&$expanded":{transform:"rotate(180deg)"}}}}),{name:"MuiExpansionPanelSummary"})(d)},81395:function(e,n,t){"use strict";var a=t(64836),i=t(75263);n.Z=void 0;var r=i(t(67294)),o=(0,a(t(2108)).default)(r.createElement("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),"CheckCircle");n.Z=o},56079:function(e,n,t){"use strict";t.d(n,{Z:function(){return l},j:function(){return c}});var a=t(71371),i=t(69483),r="testmailapp-redirect",o={"github-students":"/github-students?action=connect","github-teachers":"/github-teachers?action=connect",pricing:"/pricing",billing:"/console#redirect-to-billing-portal"},s=Object.keys(o);function l(e,n,t){for(var l=0;l<s.length;l++)if(e.includes("next=".concat(s[l])))return void n(o[s[l]]);i.getItem(r,(function(e,s){if(e)a.Tb(e);else if(null!==s&&(i.removeItem(r,(function(e){e&&a.Tb(e)})),"string"===typeof s.key&&"number"===typeof s.time&&Date.now()-s.time<12e5))return void n(o[s.key]);n(t)}))}function c(e,n,t){i.setItem(r,{key:e,time:Date.now()},(function(i){i&&a.Tb(i),t("".concat(n,"?next=").concat(e))}))}},28892:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return q}});var a=t(52209),i=t(67294),r=t(16423),o=t(36378),s=t(71371),l=t(19277),c=t(69483),u=t(35720),d=t(55853),p=t(11163),h=t(41664),m=t(30115),g=t(10046),f=t(282),b=t(22318),x=t(89659),y=t(52663),Z=t(66856),v=t(29525),k=t(66083),E=t(81395),B=t(43832),w=t(30653),G=t(68479),S=t(74965),N=t(64566),P=i.createElement,T={General:(0,m.Z)((function(e){return{FAQsContainer:{padding:"18px 0px 0px 0px"},FAQsTitle:{marginTop:e.spacing(4),marginBottom:e.spacing(3),textAlign:"center"},ExpansionPanel:{textAlign:"left","&.Mui-expanded":{margin:0},"&:before":{opacity:0}
1},ExpansionPanelHeading:{margin:"4px 0px",fontWeight:e.typography.fontWeightRegular},ExpansionPanelDetails:{flexDirection:"column"},ExpansionPanelContentParagraph:{paddingTop:e.spacing(2)},Code:{background:"#f2f2f2",font:"inherit"}}})),ExpansionPanelSummary:(0,m.Z)((function(){return{root:{minHeight:"42px","&.Mui-expanded":{minHeight:"54px",textDecoration:"underline"}},content:{margin:"4px 0px","&.Mui-expanded":{margin:"4px 0px"}},expandIcon:{padding:"8px"}}}))};function C(){var e={General:T.General(),ExpansionPanelSummary:T.ExpansionPanelSummary()};return P(B.Z,{maxWidth:"md",className:e.General.FAQsContainer},P(b.Z,{component:"h2",variant:"h4",className:e.General.FAQsTitle,gutterBottom:!0},"FAQs"),P(w.Z,{elevation:0,className:e.General.ExpansionPanel,defaultExpanded:!0},P(G.Z,{expandIcon:P(N.Z,null),"aria-controls":"panel1a-content",id:"panel1a-header",classes:e.ExpansionPanelSummary},P(b.Z,{className:e.General.ExpansionPanelHeading},"Do I need a credit card to signup and redeem this offer?")),P(S.Z,{className:e.General.ExpansionPanelDetails},P(b.Z,null,"No - the teacher and student plans do not require a credit card at signup or redemption."))),P(w.Z,{elevation:0,className:e.General.ExpansionPanel,defaultExpanded:!0},P(G.Z,{expandIcon:P(N.Z,null),"aria-controls":"panel1a-content",id:"panel1a-header",classes:e.ExpansionPanelSummary},P(b.Z,{className:e.General.ExpansionPanelHeading},"How can my students redeem this offer?")),P(S.Z,{className:e.General.ExpansionPanelDetails},P(b.Z,null,"Students should signup for the ",P(x.Z,{href:"https://education.github.com/pack?utm_source=github+testmail",target:"_blank",underline:"always"},"GitHub Student Developer Pack")," and then redeem the testmail.app student offer at ",P(h.default,{href:"/github-students",passHref:!0},P(x.Z,{target:"_blank",underline:"always"}
1,"this signup page")),"."))),P(w.Z,{elevation:0,className:e.General.ExpansionPanel,defaultExpanded:!0},P(G.Z,{expandIcon:P(N.Z,null),"aria-controls":"panel2a-content",id:"panel2a-header",classes:e.ExpansionPanelSummary},P(b.Z,{className:e.General.ExpansionPanelHeading},"What are the terms and limitations of this offer?")),P(S.Z,{className:e.General.ExpansionPanelDetails},P(b.Z,null,"The teacher (essential) plan includes unlimited use - subject to the fair usage policy detailed in our ",P(h.default,{href:"/pricing",passHref:!0},P(x.Z,{target:"_blank",underline:"always"},"pricing FAQs")),", the features and limits of the essential plan, and our standard ",P(h.default,{href:"/terms",passHref:!0},P(x.Z,{target:"_blank",underline:"always"},"terms of service")),"."),P(b.Z,{className:e.General.ExpansionPanelContentParagraph},"A few additional restrictions apply: the teacher plan is intended for educational use by teachers. We reserve the right to revoke teacher accounts that are repurposed for commercial use. Reselling teacher accounts is strictly forbidden."))),P(w.Z,{elevation:0,className:e.General.ExpansionPanel,defaultExpanded:!0},P(G.Z,{expandIcon:P(N.Z,null),"aria-controls":"panel3a-content",id:"panel3a-header",classes:e.ExpansionPanelSummary},P(b.Z,{className:e.General.ExpansionPanelHeading},"Are TAs, assistants, or researchers eligible for this offer?")),P(S.Z,{className:e.General.ExpansionPanelDetails},P(b.Z,null,"The teacher plan includes unlimited team sharing/collaboration - just ask your course instructor or faculty member to invite you to the relevant team. If you require additional/separate accounts, please ",P(x.Z,{href:"mailto:[email protected]",underline:"always"},"contact us"),"."))))}var D,_=t(54965),I=t(56079),R=t(53507),A=t(83584),W=i.createElement;var H={General:(0,m.Z)((function(e){return{Paper:{marginTop:e.spacing(4),display:"flex",flexDirection:"column",alignItems:"center"},Title:{fontWeight:300},Block:{marginTop:e.spacing(2),marginBottom:e.spacing(2),textAlign:"center",maxWidth:"550px"},BlockTitle:{},BlockDescription:{},DialogActions:{display:"flex",justifyContent:"center",flexDirection:"column",paddingTop:e.spacing(.62),paddingBottom:e.spacing(1.2)},SignupButton:{marginTop:e.spacing(1),marginBottom:e.spacing(1),borderRadius:"25px",boxShadow:"none","&:hover":{boxShadow:"0 0 0 0.2rem rgba(65, 55, 104, 0.38)"}},SelectButton:{marginTop:e.spacing(.15),marginBottom:e.spacing(2.3),borderRadius:"25px",boxShadow:"none","&:hover":{boxShadow:"0 0 0 0.2rem rgba(65, 55, 104, 0.38)"}},SelectButtonSubstitute:{marginTop:e.spacing(2.9),marginBottom:e.spacing(3.1),textAlign:"center",fontWeight:600}}}))};var q=(0,u.RM)((0,d.CG)((function(e){var n=(0,p.useRouter)(),t=(0,A.Z)().user,u=(0,i.useState)(null),d=u[0],m=u[1],B={General:H.General()};return(0,i.useEffect)((function(){t&&!d&&m(!0),!t&&d&&m(!1)}),[t,d]),(0,i.useEffect)((function(){if(n.isReady){var t=n.query;if("connect"===t.action){var i=Date.now().toString(36)+Math.random().toString(36).substring(2);c.setItem("testmailapp-github-redirect",{destination:"/github-teachers",stateId:i,returnParams:{action:"authorize"}}).then((function(){window.location.href="https://github.com/login/oauth/authorize?client_id=".concat(R.Z.githubClientId,"&state=").concat(i,"&scope=read:user,user:email")})).catch((function(n){s.Tb(n),e.enqueueSnackbar("We cannot securely sign you in via GitHub on your current browser because it does not support localstorage - please upgrade your browser or try from a different browser.",{persist:!0,action:function(n){return W(f.Z,{style:{color:"#EBA4BD"},onClick:function(){e.closeSnackbar(n)}},"Dismiss")}})}))}else if("authorize"===t.action&&d){if(!t.code||!t.state)return void n.push("/github-teachers");c.getItem("testmailapp-github-redirect").then((function(i){var u=(0,r.Z)(i,"stateId",null);null!==u&&(0,r.Z)(t,"state")===u?e.client.mutate({mutation:(0,l.ZP)(D||(D=(0,a.Z)(["\n mutation user_github_teacher(\n $code: String!\n $appv: appvInput!\n ) {\n user_github_teacher(\n code: $code\n appv: $appv\n ) {\n result\n message\n }\n }\n "]))),refetchQueries:["everything"],awaitRefetchQueries:!0,variables:{code:(0,r.Z)(t,"code"),appv:{release:R.Z.appv.release,version:R.Z.appv.version,env:R.Z.appv.env}}}).then((function(t){var a=t.data;c.removeItem("testmailapp-github-redirect"),"success"===(0,r.Z)(a,"user_github_teacher.result")?(e.enqueueSnackbar("Teacher plan activated! Welcome :)",{action:function(n){return W(f.Z,{style:{color:"#EBA4BD"},onClick:function(){e.closeSnackbar(n)}},"Dismiss")}}),window.dataLayer.push({event:"teacher"}),n.push("/console")):((0,o.Z)((0,r.Z)(a,"user_github_teacher.message"))?e.enqueueSnackbar((0,r.Z)(a,"user_github_teacher.message"),{persist:!0,action:function(n){return W(f.Z,{style:{color:"#EBA4BD"},onClick:function(){e.closeSnackbar(n)}},"Dismiss")}}):s.Tb(new Error("user_github_teacher.message is not a string!")),n.push("/github-teachers"))})).catch((function(t){s.Tb(t),e.enqueueSnackbar("We are having trouble connecting - please make sure you are online and try again.",{action:function(n){return W(f.Z,{style:{color:"#EBA4BD"},onClick:function(){e.closeSnackbar(n)}},"Dismiss")}}),n.push("/github-teachers")})):(e.enqueueSnackbar("Invalid authorization state - please try again.",{action:function(n){return W(f.Z,{style:{color:"#EBA4BD"},onClick:function(){e.closeSnackbar(n)}},"Dismiss")}}),n.push("/github-teachers"))})).catch((function(n){s.Tb(n),e.enqueueSnackbar("We cannot securely sign you in via GitHub on your current browser because it does not support localstorage - please upgrade your browser or try from a different browser.",{persist:!0,action:function(n){return W(f.Z,{style:{color:"#EBA4BD"},onClick:function(){e.closeSnackbar(n)}},"Dismiss")}})}))}return function(){}}}),[n.isReady,n.query,d]),W("div",{className:B.General.Paper},W("img",{src:"/static/github-teacher-toolbox.png",className:"h-[150px]",style:{marginTop:"32px",marginBottom:"28px"}}),W(b.Z,{component:"h1",variant:"h3",className:B.General.Title,gutterBottom:!0},"Hello, teachers!"),W("div",{className:B.General.Block,style:{maxWidth:"550px"}},W(b.Z,{component:"h2",variant:"h5",className:B.General.BlockTitle,style:{marginBottom:"18px"}},W("strong",{style:{fontWeight:600}},"testmail"),".app is"," ",W("strong",{style:{fontWeight:600}},"free")," for both teachers and students via the"," ",W(x.Z,{href:"https://education.github.com/teachers?utm_source=github+testmail",target:"_blank",underline:"always"},"GitHub Teacher Toolbox")," ","and the"," ",W(x.Z,{href:"https://education.github.com/pack?utm_source=github+testmail",target:"_blank",underline:"always"},"GitHub Student Developer Pack")),W(b.Z,{component:"h3",variant:"body1",className:B.General.BlockDescription,style:{marginBottom:"18px"}},"The Teacher Toolbox and Student Pack programs give teachers and students free access to the best developer tools for academic use."),W(b.Z,{component:"h3",variant:"body1",className:B.General.BlockDescription},"Get our"," ",W(h.default,{href:"/pricing",passHref:!0},W(x.Z,{target:"_blank",underline:"always"},"essential plan"))," ","(normally $12/month) for free while you're a teacher (or student) - we are happy to support your learning!")),W("div",{className:B.General.Block,style:{maxWidth:"550px"}},W(_.Z,{type:"submit",size:"large",variant:"contained",color:"primary",style:{marginBottom:"16
1px"},disabled:!1,onClick:function(){d?n.push("/github-teachers?action=connect"):n.push("/github-teachers?action=signup")}},"Signup with GitHub"),W(b.Z,{component:"h3",variant:"body1",className:B.General.BlockDescription},"Questions? We're"," ",W(x.Z,{href:"mailto:[email protected]",underline:"always"},"happy to help"),".")),W(C,null),W(y.Z,{open:"signup"===n.query.action,onClose:function(){n.push("/github-teachers")},"aria-labelledby":"gh-signup-dialog-title",maxWidth:"xs"},W(k.Z,{id:"gh-signup-dialog-title",disableTypography:!0,style:{padding:"24px 24px 8px 24px",textAlign:"center",display:"flex",justifyContent:"center",alignItems:"center",maxWidth:"360px"}},W(b.Z,{variant:"h5",style:{fontWeight:"400",lineHeight:"1.15"}},"Teacher Signup")),W(v.Z,{style:{maxWidth:"360px",textAlign:"center"}},W(b.Z,{variant:"body1",style:{marginBottom:"0.62em"}},"Signup for testmail.app"," ",W("strong",{style:{fontWeight:600}},"with the email address on your GitHub teacher account")," ","using the button below."),W(b.Z,{variant:"body1"},"Then return to this page and connect your GitHub account.")),W(Z.Z,{className:B.General.DialogActions,disableSpacing:!0},W(_.Z,{type:"submit",size:"large",variant:"contained",color:"primary",onClick:function(){(0,I.j)("github-teachers","/signup",n.push)}},"Signup"))),W(y.Z,{open:"authorize"===n.query.action,"aria-labelledby":"gh-auth-dialog-title",maxWidth:"xs"},W(k.Z,{id:"gh-auth-dialog-title",disableTypography:!0,style:{padding:"18px 24px 8px 24px",textAlign:"center",display:"flex",justifyContent:"center",alignItems:"center"}},W(E.Z,{style:{color:"#257454"}}),W(b.Z,{variant:"h6",style:{fontWeight:"400",marginLeft:"6px",color:"#257454"}},"Connected to GitHub")),W(v.Z,{style:{color:"#257454",maxWidth:"340px",textAlign:"center"}},W("strong",{style:{fontWeight:600}},"Give us a moment")," while we retrieve your profile, confirm your teacher status, and upgrade your plan..."),W(Z.Z,{className:B.General.DialogActions,disableSpacing:!1},W(g.Z,{display:"flex",flexDirection:"column",justifyContent:"center",alignContent:"center",alignItems:"center",paddingBottom:"6px"},W("div",{className:"GreenLoadingSpinner"})))))})))},98362:function(e,n,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/github-teachers",function(){return t(28892)}])}},function(e){e.O(0,[6423,9483,5853,7806,9774,2888,179],(function(){return n=98362,e(e.s=n);var n}));var n=e.O();_N_E=n}]);
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.