PageSourceSearch

https://formapprovals.com/assets/Home-aDWUedxW.js

js formapprovals.com collected 2026-10-02 00:00:10 UTC 22,776 bytes, 17 lines download raw bytes

1import{c as v,u as ee,r as s,j as e,S as f,P as le,T as a,B,a as ce,b as d,d as z,e as g,f as r,C as A,g as I,L as de,h as pe,A as K,I as me,i as M,k as V,G as J,l as ge,m as he,n as ue,o as fe}from"./index-B1JCX_-d.js";import{S as ve}from"./SEOHead-x5xN8jU_.js";import{c as we}from"./settings-DW9MFVg0.js";import{S as be,M as F}from"./ScrollableExamples-DxL_St3f.js";import{T as ye}from"./Textarea-S6TImZwF.js";import{T as ke}from"./Tooltip-V1HmJPbW.js";import{I as oe}from"./IconSparkles-C81NusBo.js";import{G}from"./Grid-CibHDB3Q.js";import{S as X}from"./SimpleGrid-aX7H6xu-.js";import{I as xe}from"./IconTable-U-GBBQPS.js";import{I as je}from"./IconChecklist-pWDaBfhf.js";import{I as Se}from"./IconUsersGroup-0JjYJwmZ.js";import{I as Ae}from"./IconUsers-B8HJdmU4.js";import{A as Y}from"./ActionIcon-BGKkh9bM.js";import{I as Ie}from"./IconChevronLeft-CnCMsgHu.js";import{I as Ce}from"./IconChevronRight-DPVk6pOM.js";import"./get-env-uyVen0u2.js";import"./InputBase-CWPbF_yb.js";import"./get-style-object-DUJZA7T_.js";const Fe=[["path",{d:"M4 10a2 2 0 1 0 4 0a2 2 0 0 0 -4 0",key:"svg-0"}],["path",{d:"M6 4v4",key:"svg-1"}],["path",{d:"M6 12v8",key:"svg-2"}],["path",{d:"M10 16a2 2 0 1 0 4 0a2 2 0 0 0 -4 0",key:"svg-3"}],["path",{d:"M12 4v10",key:"svg-4"}],["path",{d:"M12 18v2",key:"svg-5"}],["path",{d:"M16 7a2 2 0 1 0 4 0a2 2 0 0 0 -4 0",key:"svg-6"}],["path",{d:"M18 4v1",key:"svg-7"}],["path",{d:"M18 9v11",key:"svg-8"}]],Te=v("outline","adjustments","Adjustments",Fe);const Re=[["path",{d:"M6 5a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2v-14",key:"svg-0"}],["path",{d:"M11 4h2",key:"svg-1"}],["path",{d:"M12 17v.01",key:"svg-2"}]],ze=v("outline","device-mobile","DeviceMobile",Re);const Me=[["path",{d:"M8 9h8",key:"svg-0"}],["path",{d:"M8 13h6",key:"svg-1"}],["path",{d:"M10.99 19.206l-2.99 1.794v-3h-2a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v6",key:"svg-2"}],["path",{d:"M15 19l2 2l4 -4",key:"svg-3"}]],Ge=v("outline","message-check","MessageCheck",Me);const Ee=[["path",{d:"M3 19a2 2 0 1 0 4 0a2 2 0 0 0 -4 0",key:"svg-0"}],["path",{d:"M19 7a2 2 0 1 0 0 -4a2 2 0 0 0 0 4",key:"svg-1"}],["path",{d:"M11 19h5.5a3.5 3.5 0 0 0 0 -7h-8a3.5 3.5 0 0 1 0 -7h4.5",key:"svg-2"}]],Be=v("outline","route","Route",Ee);const Le=[["path",{d:"M11.46 20.846a12 12 0 0 1 -7.96 -14.846a12 12 0 0 0 8.5 -3a12 12 0 0 0 8.5 3a12 12 0 0 1 -.09 7.06",key:"svg-0"}],["path",{d:"M15 19l2 2l4 -4",key:"svg-1"}]],We=v("outline","shield-check","ShieldCheck",Le);const _e=[["path",{d:"M12 4l-8 4l8 4l8 -4l-8 -4",key:"svg-0"}],["path",{d:"M4 12l8 4l8 -4",key:"svg-1"}],["path",{d:"M4 16l8 4l8 -4",key:"svg-2"}]],Pe=v("outline","stack-2","Stack2",_e);function Ne(){const i=ee(),[l,w]=s.useState(""),[b,p]=s.useState(!1);async function C(){const h=l.trim();if(h){localStorage.setItem("fa-builder-description",h),p(!0);try{const{key:y}=await we(h);i(`/my-forms/builder/?prompt_key=${y}`)}catch{i("/my-forms/builder/")}finally{p(!1)}}}return e.jsxs(f,{gap:"lg",mt:"lg",children:[e.jsx(be,{onSelect:w}),e.jsx(le,{withBorder:!0,radius:"md",p:"lg",children:e.jsxs(f,{gap:"md",children:[e.jsxs("div",{style:{position:"relative"},children:[e.jsx(ye,{placeholder:"Describe your form and approval workflow...",value:l,onChange:h=>w(h.currentTarget.value),autosize:!0,minRows:3,maxRows:6,maxLength:F,styles:{input:{paddingBottom:28}}}),e.jsxs(a,{size:"xs",c:l.length>=F?"red":l.length>=F*.9?"yellow.8":"dimmed",style:{position:"absolute",bottom:8,right:12,pointerEvents:"none"},children:[l.length.toLocaleString()," / ",F.toLocaleString()]})]}),e.jsx(ke,{label:"Describe your form and workflow above, or select an example to get started",disabled:!!l.trim(),fz:"xs",children:e.jsx(B,{leftSection:e.jsx(oe,{size:18}),size:"md",onClick:C,disabled:!l.trim()||b,loading:b,className:"gradient-cta","data-disabled":!l.trim()||b||void 0,children:"Build my form"})})]})})]})}const Q=[["Build forms","with","AI in seconds"],["Simplify","the","way you work"],["More","than","just approvals"],["Powerful,","yet","easy to use"]],Z=[{icon:me,title:"Set up in minutes",description:"No IT required. Use an existing Google Form and add approvers. When form responses are made, approvers will be emailed."},{icon:oe,title:"AI-powered workflows",description:"Describe your form and approval process using natural language. The AI generates form fields, question types, and approval routing automatically."},{icon:Pe,title:"Multi-level workflows",description:"Set parallel or sequential approvals to ensure your executives are only approv
1ing once endorsed by others."},{icon:xe,title:"Dynamic recipients",description:"Look-up approvers based on answers to the form response or simply let the requestor select or enter the approver."},{icon:je,title:"Role based workflows",description:"Choose a role for your recipient (e.g Approve, Sign, Recommend, Acknowledge, Action or Receive a Copy)."},{icon:Be,title:"Routing conditions",description:"Set logic with your approvals to ensure approvers only receive the requests that are relevant to them."},{icon:Se,title:"Quorum approvals",description:"Add a group of recipients and choose the number that need to respond."},{icon:Ge,title:"One-click approvals",description:"Notifications sent by email and approved with a single click."},{icon:Te,title:"Personalized notifications",description:"Personalize notification content, and include attachments based on a template."},{icon:ze,title:"Responsive design",description:"Designed mobile-first, and is fantastic to work with on desktop & tablet also."},{icon:Ae,title:"Tried & Tested",description:"Installed by over 10 million users worldwide and actively used by thousands of organizations big and small."},{icon:We,title:"Enterprise grade security",description:"Majority of data stored in your spreadsheet. Control over data sovereignty. End to end encryption."}],E=[{quote:"We use Form Approvals for requisitions. ",highlight:"Our process is complicated, but the add-on has converted it into a workflow that is transparent, flexible and secure.",rest:" I particularly like the improved version whereby each layer’s scope (recommend, edit or approve or simply gets cc-ed) can be set. Support is also always available and prompt.",author:"Esmond Han",title:"Head of Business Transformation, Agritrade Resources Ltd"},{quote:"We previously had many problems with our payment requests because even when we used Google Forms, the approval process was slow and inefficient. ",highlight:"We looked for different solutions and Form Approvals was the easiest and most affordable.",rest:" The embedded “approve/deny” option in email notifications is fast and simple.",author:"José Rubén Martínez",title:"Director of Technology and Operations, unete.org"},{quote:"We previously used Sharepoint and a few other methods (for Leave Management and Professional Development processes), but ",highlight:"I continue to be shocked at the usability and simplicity of this add-on.",rest:" It is highly configurable, yet so simple. The customer service is also extremely reliable.",author:"Aznan Nagor",title:"Head of Technologies Unit, The International School of Penang"}],qe=[{title:"AI Form + Workflow Builder",description:"Use AI to create Google Forms and approval workflows from a natural language description. Generate form fields, question types, and routing automatically.",link:"/blog/how-to-create-google-forms-with-ai/"},{title:"Best Workflow Tools 2026",description:"Compare the best Google Forms approval workflow tools. See pricing, features, and find the most affordable option for your organization.",link:"/blog/best-google-forms-approval-workflow-tools/"},{title:"True Cost of Workflow Tools",description:"Why the cheapest advertised price isn't always the most economical. Learn about hidden costs like per-seat fees, setup, and vendor lock-in.",link:"/blog/the-true-cost-of-workflow-automation/"},{title:"Approval Workflow",description:"How to create an interactive approval workflow with Google Forms. Each time a form submission is made, approvers will be notified.",link:"/blog/how-to-create-an-approval-workflow-with-google-forms/"},{title:"How Schools Save 80%",description:"Learn how schools and educational institutions save up to 80% on workflow automation by using Form Approvals with Google Forms.",link:"/blog/how-schools-save-on-workflow-tools/"},{title:"Pricing Explained",description:"Form Approvals pricing starts at $0 with a free forever plan. Paid plans from $36 for 3 months with no per-seat pricing.",link:"/blog/form-approvals-pricing-explained/"}
1,{title:"Array Formulas",description:"How to use Array Formulas with Google Forms to automate calculations and data processing in your spreadsheet.",link:"/blog/how-to-use-array-formulas-with-google-forms/"},{title:"Google Forms Branching",description:"How to use Google Forms branching to create an interactive workflow that routes responses based on answers.",link:"/blog/how-to-use-google-forms-branching-to-create-an-interactive-workflow/"},{title:"Slack Integration",description:"How to integrate Slack with Google Forms and Form Approvals to receive approval notifications in your Slack channels.",link:"/blog/how-to-integrate-slack-with-google-form-approvals/"},{title:"Email Notifications",description:"Go beyond basic Google Forms notifications. Send emails to managers, approvers, and respondents automatically.",link:"/blog/how-to-send-email-notifications-from-google-forms/"},{title:"Multi-Step Approvals",description:"Set up sequential approval chains in Google Forms. Route submissions through multiple approvers automatically.",link:"/blog/how-to-create-a-multi-step-approval-process-in-google-forms/"},{title:"Track Responses",description:"Track Google Forms submission status in real time. See pending, approved, and rejected requests at a glance.",link:"/blog/how-to-track-google-forms-responses-in-real-time/"},{title:"Signature Fields",description:"Google Forms has no signature field. Learn workarounds and how approval-based sign-off can replace signatures.",link:"/blog/how-to-add-a-signature-field-to-google-forms/"},{title:"Purchase Order Form",description:"Build a purchase order form with Google Forms. Add manager and finance approval routing with a complete PO log.",link:"/blog/how-to-create-a-purchase-order-form-with-google-forms/"},{title:"Google vs Microsoft Forms",description:"Compare Google Forms and Microsoft Forms for approval workflows. Features, cost, and setup differences.",link:"/blog/google-forms-vs-microsoft-forms-for-approval-workflows/"},{title:"Google Forms vs Jotform",description:"Compare Google Forms + Form Approvals vs Jotform for approvals. Pricing, features, and data ownership.",link:"/blog/google-forms-vs-jotform-for-approvals/"},{title:"IT Request Form",description:"Build an IT request form with Google Forms. Add manager approval and use your Google Sheet as an IT request log.",link:"/blog/how-to-build-an-it-request-form-with-google-forms/"},{title:"Time-Off Request Form",description:"Create a time-off request form with Google Forms. Add manager approval and track leave in Google Sheets.",link:"/blog/how-to-create-a-time-off-request-form-with-google-forms/"},{title:"HR Workflows",description:"Automate HR processes with Google Forms — time-off, expenses, onboarding, and more with approval routing.",link:"/blog/how-to-automate-google-forms-for-hr-workflows/"}],He={"@context":"https://schema.org","@type":"Organization",name:"Form Approvals",description:"Turn Google Form responses into multi-level approval workflows.",url:"https://formapprovals.com",logo:"https://formapprovals.com/static/images/apple-touch-icon.png",sameAs:["https://workspace.google.com/marketplace/app/form_approvals
1/140491095674"],contactPoint:{"@type":"ContactPoint",contactType:"customer support",email:"[email protected]",url:"https://formapprovals.com/support/contact/"}},De={"@context":"https://schema.org","@type":"WebApplication",name:"Form Approvals",applicationCategory:"BusinessApplication",operatingSystem:"Web",description:"The most affordable workflow automation tool for Google Forms. Turn form responses into multi-level approval workflows with one-click approvals.",url:"https://formapprovals.com",offers:{"@type":"AggregateOffer",lowPrice:"0",highPrice:"65",priceCurrency:"USD",offerCount:"3"},aggregateRating:{"@type":"AggregateRating",ratingValue:"4.7",ratingCount:"1200",bestRating:"5"},featureList:"Multi-level approval workflows, Dynamic recipients, Routing conditions, Role-based workflows, One-click approvals, Personalized notifications, Signature capture, Document generation",screenshot:"https://formapprovals.com/static/images/ogimage.png",softwareHelp:{"@type":"CreativeWork",url:"https://formapprovals.com/support/"}};function co(){const[i,l]=s.useState(!1),[w,b]=s.useState(0),[p,C]=s.useState(0),h=ee(),{setBg:y,resetBg:L}=ce(),W=s.useRef(null),_=s.useRef(null),P=s.useRef(null),N=s.useRef(null),q=s.useRef(null),k=s.useMemo(()=>[{ref:W,from:z,to:d},{ref:q,from:d,to:g},{ref:_,from:g,to:d},{ref:P,from:d,to:g},{ref:N,from:g,to:d}],[]);s.useEffect(()=>{function o(c){const n=c.replace("#","");return n.length===3?n[0]+n[0]+n[1]+n[1]+n[2]+n[2]:n}function t(c,n,u){const m=parseInt(o(c),16),R=parseInt(o(n),16),ae=Math.round((m>>16&255)+((R>>16&255)-(m>>16&255))*u),ie=Math.round((m>>8&255)+((R>>8&255)-(m>>8&255))*u),ne=Math.round((m&255)+((R&255)-(m&255))*u);return`#${(ae<<16|ie<<8|ne).toString(16).padStart(6,"0")}`}let j=0;function S(){cancelAnimationFrame(j),j=requestAnimationFrame(()=>{for(let c=k.length-1;c>=0;c--){const n=k[c].ref.current;if(!n)continue;const u=n.getBoundingClientRect();if(u.top<=0){const m=Math.min(1,Math.max(0,-u.top/(u.height||1)));y(t(k[c].from,k[c].to,m));return}}y(z)})}return window.addEventListener("scroll",S,{passive:!0}),S(),()=>{window.removeEventListener("scroll",S),cancelAnimationFrame(j),L()}},[k,y,L]),s.useEffect(()=>{const o=setInterval(()=>{b(t=>(t+1)%Q.length)},4e3);return()=>clearInterval(o)},[]);const[H,D]=s.useState(0);s.useEffect(()=>{const o=setInterval(()=>{C(t=>(t+1)%E.length),D(t=>t+1)},5e3);return()=>clearInterval(o)},[H]);const te=o=>{C(o),D(t=>t+1)},T=s.useRef(null),[$,se]=s.useState(!1),[O,re]=s.useState(!0),x=s.useCallback(()=>{const o=T.current;o&&(se(o.scrollLeft>0),re(o.scrollLeft+o.clientWidth<o.scrollWidth-1))},[]);s.useEffect(()=>(x(),window.addEventListener("resize",x),()=>window.removeEventListener("resize",x)),[x]);const U=o=>{const t=T.current;if(!t)return;const j=t.firstElementChild?.clientWidth??300,S=parseFloat(getComputedStyle(t).gap)||16,c=j+S;t.scrollBy({left:o==="left"?-c:c,behavior:"smooth"})};return e.jsxs(e.Fragment,{children:[e.jsx(ve,{title:"Form Approvals: Workflow automation for Google Forms",description:"Add approval workflows to Google Forms™. Route responses to the right approvers, collect one-click approvals by email, and track every request. Free plan available.",canonicalUrl:"https://formapprovals.com/",structuredData:He,extraStructuredData:[De]}),e.jsx("link",{"data-seo":"",rel:"preload",href:"/static/images/homepage-concept-02.svg?v=2",as:"image"}),e.jsx(r,{ref:W,py:{base:120,sm:160},style:{background:`linear-gradient(180deg, ${z} 0%, ${d} 100%)`},children:e.jsx(A,{size:"lg",children:e.jsxs(G,{align:"center",gutter:"xl",children:[e.jsx(G.Col,{span:{base:12,lg:5},children:e.jsx(f,{gap:"md",ta:{base:"center",lg:"left"},children:e.jsxs(r,{py:{base:0,sm:"xl"}
1,children:[e.jsxs(I,{order:1,size:"2.7rem",fw:600,lh:1.2,mb:"xl",style:{fontFamily:"inherit"},children:["Approval Workflow"," ",e.jsx(a,{span:!0,inherit:!0,fw:400,children:"Automation for"})," ",e.jsx(a,{span:!0,inherit:!0,fw:400,children:"Google Forms™"})]}),Q.map((o,t)=>e.jsxs(a,{size:"1.5rem",fw:500,mt:"sm",c:"dimmed",style:{display:t===w?"block":"none",fontFamily:"inherit"},"aria-hidden":t!==w,children:[o[0]," ",o[1]," ",o[2]]},t)),e.jsx(a,{size:"md",mt:"lg",mb:"lg",maw:600,mx:{base:"auto",lg:0},children:"Use Google Forms to create customized forms. Use Form Approvals to turn form responses into automated approval workflows."}),e.jsx(B,{component:de,to:"/support/",size:"lg",color:"pink",children:"Try it free today"})]})})}),e.jsx(G.Col,{span:{base:12,lg:7},children:e.jsx(r,{ta:"center",style:{height:"100%"},children:e.jsx("img",{src:"/static/images/homepage-concept-02.svg?v=2",alt:"Image of a workflow process",width:600,height:400,style:{width:"100%",maxWidth:600,height:"auto",verticalAlign:"middle"}})})})]})})}),e.jsx(r,{ref:q,component:"section",py:60,style:{background:`linear-gradient(180deg, ${d} 0%, ${g} 100%)`},children:e.jsxs(A,{size:"lg",children:[e.jsxs(f,{align:"center",gap:0,mb:"md",children:[e.jsx(I,{order:2,ta:"center",children:"Use AI to build Google Forms and approval workflows"}),e.jsx(r,{mt:"sm",mb:"md",style:{width:"8%",minWidth:50,height:4,background:pe,borderRadius:20}}),e.jsx(a,{size:"lg",c:"dimmed",ta:"center",maw:700,children:"Describe your form and approval workflow in natural language. AI builds it for you in seconds. Try an example or write your own."})]}),e.jsx(Ne,{})]})}),e.jsx(r,{ref:_,component:"section",py:80,style:{background:`linear-gradient(180deg, ${g} 0%, ${d} 100%)`},id:"key-features",children:e.jsxs(A,{size:"lg",children:[e.jsxs(f,{align:"center",gap:0,mb:"xl",children:[e.jsx(I,{order:2,ta:"center",children:"Key features"}),e.jsx(r,{mt:"sm",mb:"lg",style:{width:"8%",minWidth:50,height:4,background:K,borderRadius:20}})]}),e.jsx(X,{cols:{base:1,sm:2,lg:3},spacing:"lg",children:Z.slice(0,6).map(o=>e.jsxs(M,{shadow:"xs",padding:"lg",radius:"md",bg:"#ffffff99",children:[e.jsx(V,{size:48,radius:"md",variant:"light",mb:"md",children:e.jsx(o.icon,{size:24})}),e.jsx(a,{fw:600,size:"lg",mb:"xs",children:o.title}),e.jsx(a,{size:"sm",c:"dimmed",children:o.description})]},o.title))}),e.jsx(r,{mt:"lg",role:i?void 0:"button",tabIndex:i?void 0:0,"aria-expanded":i,"aria-label":i?void 0:"Show more features",style:{overflow:"hidden",maxHeight:i?1e3:120,maskImage:i?"none":"linear-gradient(to bottom, black 0%, transparent 100%)",WebkitMaskImage:i?"none":"linear-gradient(to bottom, black 0%, transparent 100%)",transition:"all 0.3s ease",cursor:i?"default":"pointer"},onClick:()=>!i&&l(!0),onKeyDown:o=>{!i&&(o.key==="Enter"||o.key===" ")&&(o.preventDefault(),l(!0))},children:e.jsx(X,{cols:{base:1,sm:2,lg:3},spacing:"lg",children:Z.slice(6).map(o=>e.jsxs(M,{shadow:"xs",padding:"lg",radius:"md",bg:"#ffffff99",children:[e.jsx(V,{size:48,radius:"md",variant:"light",mb:"md",children:e.jsx(o.icon,{size:24})}),e.jsx(a,{fw:600,size:"lg",mb:"xs",children:o.title}),e.jsx(a,{size:"sm",c:"dimmed",children:o.description})]},o.title))})}),!i&&e.jsx(J,{justify:"center",mt:"md",children:e.jsx(B,{variant:"subtle",color:"gray",size:"sm",onClick:()=>l(!0),children:"Show all features"})})]})}),e.jsx(r,{ref:P,component:"section",py:{base:40,sm:80},style:{background:`linear-gradient(180deg, ${d} 0%, ${g} 100%)`},children:e.jsxs(A,{size:"md",ta:"center",children:[e.jsxs(f,{align:"center",gap:0,mb:"xl",children:[e.jsx(I,{order:2,ta:"center",children:"What our users say"}),e.jsx(r,{mt:"sm",style:{width:"8%",minWidth:50,height:4,background:ge,borderRadius:20}})]}),e.jsx(r,{style:{minHeight:280},children:E.map((o,t)=>e.jsxs(r,{style:{display:t===p?"block":"none"},children:[e.jsxs(a,{size:"xl",lh:1.6,mb:"lg",px:{base:0,sm:"xl"}
1,children:[o.quote,e.jsx(a,{span:!0,inherit:!0,style:{backgroundColor:"rgba(236, 72, 153, 0.15)"},children:o.highlight}),o.rest]}),e.jsx(a,{fw:600,size:"lg",children:o.author}),e.jsx(a,{c:"dimmed",children:o.title})]},o.author))}),e.jsx(J,{justify:"center",gap:0,mt:"xl","aria-label":"Testimonial navigation",children:E.map((o,t)=>e.jsx(r,{component:"button",type:"button","aria-label":`Show testimonial by ${o.author}`,"aria-current":t===p?"true":void 0,onClick:()=>te(t),style:{width:28,height:28,padding:0,border:"none",background:"transparent",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer"},children:e.jsx(r,{style:{width:t===p?12:8,height:t===p?12:8,borderRadius:"50%",backgroundColor:t===p?K:he,position:"relative",overflow:"hidden",transition:"width 0.3s, height 0.3s, background-color 0.3s"},children:t===p&&e.jsx(r,{style:{position:"absolute",inset:0,borderRadius:"50%",backgroundColor:ue,animation:"dotFill 5s linear forwards"}},H)})},t))}),e.jsx("style",{children:`
2            @keyframes dotFill {
3              from { transform: scale(0); }
4              to { transform: scale(1); }
5            }
6            .blog-scroll::-webkit-scrollbar { display: none; }
7            .blog-scroll > * {
8              min-width: calc((100% - 2 * var(--mantine-spacing-lg)) / 3);
9              max-width: calc((100% - 2 * var(--mantine-spacing-lg)) / 3);
10            }
11            @media (max-width: 768px) {
12              .blog-scroll > * {
13                min-width: 85%;
14                max-width: 85%;
15              }
16            }
17          `})]})}),e.jsx(r,{ref:N,component:"section",py:60,style:{background:`linear-gradient(180deg, ${g} 0%, ${d} 100%)`},children:e.jsxs(A,{size:"lg",children:[e.jsxs(f,{align:"center",gap:0,mb:"md",children:[e.jsx(I,{order:2,ta:"center",children:"Recent Blogs"}),e.jsx(r,{mt:"sm",mb:"md",style:{width:"8%",minWidth:50,height:4,background:fe,borderRadius:20}}),e.jsx(a,{size:"lg",c:"dimmed",ta:"center",maw:600,children:"Within our blogs, we share tips and tricks on how to make the most of Google Forms."})]}),e.jsxs(r,{pos:"relative",mt:"xl",children:[e.jsx(Y,{variant:"subtle",radius:"xl",size:"lg","aria-label":"Scroll left",onClick:()=>U("left"),className:"scroll-arrow",style:{position:"absolute",left:-18,top:"50%",transform:"translateY(-50%)",zIndex:2,opacity:$?1:0,pointerEvents:$?"auto":"none",transition:"opacity 0.2s"},children:e.jsx(Ie,{size:20})}),e.jsx(r,{ref:T,className:"blog-scroll",onScroll:x,style:{display:"flex",gap:"var(--mantine-spacing-lg)",overflowX:"auto",scrollbarWidth:"none",scrollSnapType:"x mandatory",scrollPadding:"0 14px",padding:"30px 14px",margin:"-30px -14px"},children:qe.map(o=>e.jsxs(M,{padding:"lg",radius:7,className:"card-glow",onClick:()=>h(o.link),style:{boxShadow:"0px 7px 14px rgba(0, 0, 0, 0.07)",border:"none",flex:"0 0 auto",scrollSnapAlign:"start",display:"flex",flexDirection:"column"},children:[e.jsx(a,{fw:600,size:"xl",mb:"sm",children:o.title}),e.jsx(a,{size:"sm",c:"dimmed",mb:"md",children:o.description}),e.jsxs(a,{size:"sm",c:"teal",mt:"auto",children:["Read: ",o.title]})]},o.title))}),e.jsx(Y,{variant:"subtle",radius:"xl",size:"lg","aria-label":"Scroll right",onClick:()=>U("right"),className:"scroll-arrow",style:{position:"absolute",right:-18,top:"50%",transform:"translateY(-50%)",zIndex:2,opacity:O?1:0,pointerEvents:O?"auto":"none",transition:"opacity 0.2s"},children:e.jsx(Ce,{size:20})})]})]})})]})}export{co as default};

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.