PageSourceSearch

https://fantasticforms.com/static/js/675.750cf0b2.chunk.js

js fantasticforms.com collected 2026-09-25 22:49:37 UTC 37,829 bytes, 3 lines download raw bytes

1/*! For license information please see 675.750cf0b2.chunk.js.LICENSE.txt */
2"use strict";(self.webpackChunkfrontend=self.webpackChunkfrontend||[]).push([[675],{1089(e,s,t){t.d(s,{$C:()=>o,PE:()=>x,Sj:()=>p,Yq:()=>c,cn:()=>r,dc:()=>u,lW:()=>m,r6:()=>d,sg:()=>h,xv:()=>l});var a=t(89379),n=t(58387),i=t(89359);function r(){for(var e=arguments.length,s=new Array(e),t=0;t<e;t++)s[t]=arguments[t];return(0,i.QP)((0,n.$)(s))}function c(e,s){if(!e)return"";return new Date(e).toLocaleDateString("en-US",(0,a.A)({year:"numeric",month:"short",day:"numeric"},s?{timeZone:s}:{}))}function d(e,s){if(!e)return"";return new Date(e).toLocaleDateString("en-US",(0,a.A)({year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"},s?{timeZone:s}:{}))}function o(){return Math.random().toString(36).substring(2,9)}function l(e){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:50;return e?e.length>s?e.substring(0,s)+"...":e:""}async function m(e){try{return await navigator.clipboard.writeText(e),!0}catch(s){return console.error("Failed to copy:",s),!1}}function x(e,s){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"application/json";const a=new Blob(["string"===typeof e?e:JSON.stringify(e,null,2)],{type:t}),n=URL.createObjectURL(a),i=document.createElement("a");i.href=n,i.download=s,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(n)}function h(e,s){let t;return function(){for(var a=arguments.length,n=new Array(a),i=0;i<a;i++)n[i]=arguments[i];clearTimeout(t),t=setTimeout(()=>{clearTimeout(t),e(...n)},s)}}function p(e,s){return"".concat(window.location.origin,"/f/").concat(s||e)}function u(e,s){const t=s||e;return'<div id="ff-'.concat(t,'"></div>\n<script src="').concat(window.location.origin,'/embed.js" data-form-id="').concat(t,'"><\/script>')}},13390(e,s,t){t.d(s,{$:()=>x,r:()=>m});var a=t(89379),n=t(53986),i=t(65043),r=t(16851),c=t(10917),d=t(1089),o=t(70579);const l=["className","variant","size","asChild"],m=(0,c.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),x=i.forwardRef((e,s)=>{let{className:t,variant:i,size:c,asChild:x=!1}=e,h=(0,n.A)(e,l);const p=x?r.DX:"button";return(0,o.jsx)(p,(0,a.A)({className:(0,d.cn)(m({variant:i,size:c,className:t})),ref:s},h))});x.displayName="Button"},19690(e,s,t){t.d(s,{Xi:()=>p,av:()=>u,j7:()=>h,tU:()=>x});var a=t(89379),n=t(53986),i=t(65043),r=t(47127),c=t(1089),d=t(70579);const o=["className"],l=["className"],m=["className"],x=r.bL,h=i.forwardRef((e,s)=>{let{className:t}=e,i=(0,n.A)(e,o);return(0,d.jsx)(r.B8,(0,a.A)({ref:s,className:(0,c.cn)("inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",t)},i))});h.displayName=r.B8.displayName;const p=i.forwardRef((e,s)=>{let{className:t}=e,i=(0,n.A)(e,l);return(0,d.jsx)(r.l9,(0,a.A)({ref:s,className:(0,c.cn)("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",t)},i))});p.displayName=r.l9.displayName;const u=i.forwardRef((e,s)=>{let{className:t}=e,i=(0,n.A)(e,m);
2return(0,d.jsx)(r.UC,(0,a.A)({ref:s,className:(0,c.cn)("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",t)},i))});u.displayName=r.UC.displayName},22024(e,s,t){t.d(s,{A:()=>a});const a=(0,t(77784).A)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},22626(e,s,t){t.d(s,{A:()=>a});const a=(0,t(77784).A)("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]])},27033(e,s,t){t.d(s,{A:()=>a});const a=(0,t(77784).A)("chart-column",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]])},30124(e,s,t){t.r(s),t.d(s,{default:()=>E});var a=t(65043),n=t(45685),i=t(35016),r=t(4980),c=t(13390),d=t(92264),o=t(59938),l=t(91140),m=t(19690),x=t(56328),h=t(27033),p=t(22024),u=t(56099),f=t(34537),v=t(65469),g=t(22626),y=t(75088),b=t(72313),j=t(72629),N=t(94651),w=t(35087),k=t(77737),A=t(9855),z=t(78231),_=t(70579);const C=window.location.origin+"/api",P=[{event:"form.created",desc:"Fires when a new form is created in your workspace."},{event:"form.updated",desc:"Fires when a form's title, settings, or theme are modified."},{event:"form.deleted",desc:"Fires when a form is permanently deleted."},{event:"form.published",desc:"Fires when a draft form goes live and starts accepting responses."},{event:"form.unpublished",desc:"Fires when a live form is taken offline."},{event:"submission.created",desc:"Fires when a new response is submitted to any of your forms."},{event:"submission.updated",desc:"Fires when a submission is edited or its status changes."},{event:"submission.deleted",desc:"Fires when a submission is permanently removed."},{event:"submission.export.completed",desc:"Fires when a CSV or JSON export finishes processing."},{event:"field.created",desc:"Fires when a new field is added to a form."},{event:"field.updated",desc:"Fires when a field's label, type, or validation rules change."},{event:"field.deleted",desc:"Fires when a field is removed from a form."},{event:"logic.updated",desc:"Fires when conditional logic rules on a form are added, changed, or removed."},{event:"webhook.failed",desc:"Fires when a webhook delivery fails after all retry attempts. Use this to monitor integration health."}],T=[{method:"GET",path:"/v1/forms",desc:"List all your forms"},{method:"GET",path:"/v1/forms/:id",desc:"Get a single form"},{method:"GET",path:"/v1/forms/:id/fields",desc:"List all fields in a form"},{method:"GET",path:"/v1/forms/:id/logic",desc:"Get conditional logic rules"},{method:"GET",path:"/v1/forms/:id/submissions",desc:"List submissions (supports ?limit=&offset=)"},{method:"GET",path:"/v1/forms/:id/submissions/:subId",desc:"Get a single submission"},{method:"GET",path:"/v1/forms/:id/submissions/export",desc:"Export submissions (?format=csv|json)"},{method:"GET",path:"/v1/forms/:id/webhooks",desc:"List webhooks"},{method:"POST",path:"/v1/forms",desc:"Create a new form"},{method:"POST",path:"/v1/forms/:id/duplicate",desc:"Duplicate a form"},{method:"POST",path:"/v1/forms/:id/fields",desc:"Add a field to a form"},{method:"POST",path:"/v1/forms/:id/logic",desc:"Add a logic rule"},{method:"POST",path:"/v1/forms/:id/publish",desc:"Publish a form"},{method:"POST",path:"/v1/forms/:id/submissions",desc:"Create a submission programmatically"},{method:"POST",path:"/v1/forms/:id/unpublish",desc:"Unpublish a form"},{method:"POST",path:"/v1/forms/:id/webhooks",desc:"Add a webhook"},{method:"PUT",path:"/v1/forms/:id",desc:"Update a form (full replace)"},{method:"PUT",path:"/v1/forms/:id/fields/order",desc:"Reorder fields"},{method:"PUT",path:"/v1/forms/:id/logic",desc:"Replace all logic rules"},{method:"PATCH",path:"/v1/forms/:id",desc:"Partially update a form"},{method:"PATCH",path:"/v1/forms/:id/fields/:fieldId",desc:"Update a specific field"},{method:"DELETE",path:"/v1/forms/:id",desc:"Delete a form"},{method:"DELETE",path:"/v1/forms/:id/fields/:fieldId",desc:"Delete a field"},{method:"DELETE",path:"/v1/forms/:id/logic/:ruleId",desc:"Delete a logic rule"},{method:"DELETE",path:"/v1/forms/:id/submissions/:subId",desc:"Delete a submission"},{method:"DELETE",path:"/v1/forms/:id/webhooks/:webhookId",desc:"Delete a webhook"}],R={GET:"bg-emerald-100 text-emerald-700",POST:"bg-blue-100 text-blue-700",PUT:"bg-amber-100 text-amber-700",PATCH:"bg-orange-100 text-orange-700",DELETE:"bg-red-100 text-red-700"};function E(){const e=(0,n.Zp)(),{user:s}=(0,i.As)(),t="paid"===(null===s||void 0===s?void 0:s.plan),[E,S]=(0,a.useState)([]),[D,I]=(0,a.useState)(!1),[L,M]=(0,a.useState)(""),[U,B]=(0,a.useState)(null),[F,O]=(0,a.useState)(!1),H=(0,a.useCallback)(async()=>
2{if(t){I(!0);try{const e=await r.t_.list();S(e)}catch(e){}finally{I(!1)}}},[t]);(0,a.useEffect)(()=>{H()},[H]);const J=async()=>{if(L.trim()){I(!0);try{const e=await r.t_.create(L.trim());B(e.key),M(""),H(),x.oR.success("API key created")}catch(t){var e,s;x.oR.error((null===(e=t.response)||void 0===e||null===(s=e.data)||void 0===s?void 0:s.detail)||"Failed to create key")}finally{I(!1)}}else x.oR.error("Enter a key name")},Z=e=>{navigator.clipboard.writeText(e),x.oR.success("Copied")};return t?(0,_.jsxs)("div",{className:"min-h-screen bg-zinc-50","data-testid":"api-page",children:[(0,_.jsx)("div",{className:"bg-white border-b border-zinc-200 sticky top-0 z-40",children:(0,_.jsxs)("div",{className:"max-w-5xl mx-auto px-4 py-3 flex items-center gap-3",children:[(0,_.jsx)(c.$,{variant:"ghost",size:"sm",onClick:()=>e("/dashboard"),children:(0,_.jsx)(v.A,{className:"w-4 h-4"})}),(0,_.jsx)(k.A,{className:"w-5 h-5 text-zinc-700"}),(0,_.jsx)("h1",{className:"text-lg font-semibold",children:"Developers"})]})}),(0,_.jsx)("div",{className:"max-w-5xl mx-auto px-4 py-6",children:(0,_.jsxs)(m.tU,{defaultValue:"keys",children:[(0,_.jsxs)(m.j7,{className:"mb-6",children:[(0,_.jsxs)(m.Xi,{value:"keys",children:[(0,_.jsx)(k.A,{className:"w-4 h-4 mr-2"}),"Keys"]}),(0,_.jsxs)(m.Xi,{value:"docs",children:[(0,_.jsx)(g.A,{className:"w-4 h-4 mr-2"}),"Documentation"]}),(0,_.jsxs)(m.Xi,{value:"usage",children:[(0,_.jsx)(h.A,{className:"w-4 h-4 mr-2"}),"Usage"]}),(0,_.jsxs)(m.Xi,{value:"webhooks",children:[(0,_.jsx)(z.A,{className:"w-4 h-4 mr-2"}),"Webhooks"]}),(0,_.jsxs)(m.Xi,{value:"mcp","data-testid":"developer-mcp-tab",children:[(0,_.jsx)(u.A,{className:"w-4 h-4 mr-2"}),"MCP"]})]}),(0,_.jsx)(m.av,{value:"keys",children:(0,_.jsxs)(l.Zp,{children:[(0,_.jsxs)(l.aR,{children:[(0,_.jsx)(l.ZB,{children:"API Keys"}),(0,_.jsx)(l.BT,{children:"Create and manage API keys for programmatic access."})]}),(0,_.jsxs)(l.Wu,{className:"space-y-6",children:[(0,_.jsxs)("div",{className:"flex gap-2",children:[(0,_.jsx)(d.p,{value:L,onChange:e=>M(e.target.value),placeholder:"Key name (e.g. Production, CI/CD)",className:"flex-1",onKeyDown:e=>"Enter"===e.key&&J(),"data-testid":"api-key-name-input"}),(0,_.jsxs)(c.$,{onClick:J,disabled:D,"data-testid":"create-api-key-btn",children:[D&&(0,_.jsx)(p.A,{className:"w-4 h-4 mr-2 animate-spin"}),"Create Key"]})]}),U&&(0,_.jsxs)("div",{className:"p-4 border border-emerald-200 bg-emerald-50 rounded-lg space-y-2",children:[(0,_.jsx)("p",{className:"text-sm font-medium text-emerald-800",children:"Copy your key now \u2014 it won't be shown again."}),(0,_.jsxs)("div",{className:"flex items-center gap-2",children:[(0,_.jsx)("code",{className:"flex-1 bg-white px-3 py-2 rounded border text-sm font-mono break-all","data-testid":"new-api-key-value",children:F?U:"\u2022".repeat(40)}),(0,_.jsx)(c.$,{variant:"ghost",size:"sm",onClick:()=>O(!F),children:F?(0,_.jsx)(N.A,{className:"w-4 h-4"}):(0,_.jsx)(w.A,{className:"w-4 h-4"})}),(0,_.jsx)(c.$,{variant:"ghost",size:"sm",onClick:()=>Z(U),"data-testid":"copy-api-key-btn",children:(0,_.jsx)(b.A,{className:"w-4 h-4"})})]})]}),D&&!E.length?(0,_.jsx)("div",{className:"flex justify-center py-6",children:(0,_.jsx)(p.A,{className:"w-5 h-5 animate-spin text-zinc-400"})}):0===E.length?(0,_.jsx)("p",{className:"text-sm text-zinc-500 py-4",children:"No API keys yet."}):(0,_.jsx)("div",{className:"space-y-2",children:E.map(e=>(0,_.jsxs)("div",{className:"flex items-center justify-between p-3 border border-zinc-200 rounded-lg","data-testid":"api-key-".concat(e.id),children:[(0,_.jsxs)("div",{className:"space-y-0.5",children:[(0,_.jsx)("p",{className:"text-sm font-medium",children:e.name}),(0,_.jsx)("p",{className:"text-xs text-zinc-500 font-mono",children:e.prefix}),(0,_.jsxs)("p",{className:"text-xs text-zinc-400",children:["Created ",new Date(e.created_at).toLocaleDateString(),e.last_used_at&&" \xb7 Last used ".concat(new Date(e.last_used_at).toLocaleDateString())]})]}),(0,_.jsx)(c.$,{variant:"ghost",size:"sm",onClick:()=>(async e=>{try{await r.t_.revoke(e),S(s=>s.filter(s=>s.id!==e)),x.oR.success("API key revoked")}catch(s){x.oR.error("Failed to revoke key")}})(e.id),className:"text-red-500 hover:text-red-700 hover:bg-red-50","data-testid":"revoke-key-".concat(e.id),children:(0,_.jsx)(A.A,{className:"w-4 h-4"})})]},e.id))})]})]})}),(0,_.jsx)(m.av,{value:"docs",children:(0,_.jsxs)(l.Zp,{children:[(0,_.jsxs)(l.aR,{children:[(0,_.jsx)(l.ZB,{children:"API Documentation"}),(0,_.jsxs)(l.BT,{children:["All requests require a Bearer token. Base URL: ",(0,_.jsx)("code",{className:"text-xs bg-zinc-100 px-1.5 py-0.5 rounded",children:C})]})]}),(0,_.jsxs)(l.Wu,{className:"space-y-6",children:[(0,_.jsxs)("div",{className:"space-y-2",children:[(0,_.jsx)(o.J,{className:"text-sm font-medium",children:"Qu
2ick Start"}),(0,_.jsxs)("div",{className:"bg-zinc-900 text-zinc-100 rounded-lg p-4 text-sm font-mono relative group",children:[(0,_.jsx)("button",{onClick:()=>Z('curl -H "Authorization: Bearer YOUR_API_KEY" \\\n  '.concat(C,"/v1/forms")),className:"absolute top-2 right-2 opacity-0 group-hover:opacity-100 transition-opacity p-1.5 rounded bg-zinc-700 hover:bg-zinc-600",children:(0,_.jsx)(b.A,{className:"w-3.5 h-3.5 text-zinc-300"})}),(0,_.jsx)("pre",{className:"whitespace-pre-wrap",children:'curl -H "Authorization: Bearer YOUR_API_KEY" \\\n  '.concat(C,"/v1/forms")})]})]}),(0,_.jsxs)("div",{className:"space-y-2",children:[(0,_.jsx)(o.J,{className:"text-sm font-medium",children:"Authentication"}),(0,_.jsxs)("p",{className:"text-sm text-zinc-600",children:["Include your API key in the ",(0,_.jsx)("code",{className:"text-xs bg-zinc-100 px-1 rounded",children:"Authorization"})," header:"]}),(0,_.jsx)("div",{className:"bg-zinc-50 border rounded-lg p-3 text-sm font-mono",children:"Authorization: Bearer ff_live_..."})]}),(0,_.jsxs)("div",{className:"space-y-2",children:[(0,_.jsx)(o.J,{className:"text-sm font-medium",children:"Response Format"}),(0,_.jsxs)("p",{className:"text-sm text-zinc-600",children:["All responses are JSON. Errors return a ",(0,_.jsx)("code",{className:"text-xs bg-zinc-100 px-1 rounded",children:"detail"})," field with a human-readable message."]}),(0,_.jsx)("div",{className:"bg-zinc-900 text-zinc-100 rounded-lg p-4 text-sm font-mono",children:(0,_.jsx)("pre",{children:'// Success\n{ "id": "abc-123", "title": "My Form", ... }\n\n// Error\n{ "detail": "Form not found" }'})})]}),(0,_.jsxs)("div",{className:"space-y-2",children:[(0,_.jsxs)(o.J,{className:"text-sm font-medium",children:["Endpoints (",T.length,")"]}),(0,_.jsx)("div",{className:"border rounded-lg overflow-hidden",children:(0,_.jsxs)("table",{className:"w-full text-sm",children:[(0,_.jsx)("thead",{children:(0,_.jsxs)("tr",{className:"bg-zinc-50 border-b",children:[(0,_.jsx)("th",{className:"text-left px-4 py-2 font-medium text-zinc-600 w-20",children:"Method"}),(0,_.jsx)("th",{className:"text-left px-4 py-2 font-medium text-zinc-600",children:"Path"}),(0,_.jsx)("th",{className:"text-left px-4 py-2 font-medium text-zinc-600",children:"Description"})]})}),(0,_.jsx)("tbody",{children:T.map((e,s)=>(0,_.jsxs)("tr",{className:"border-b last:border-0 hover:bg-zinc-50",children:[(0,_.jsx)("td",{className:"px-4 py-2",children:(0,_.jsx)("span",{className:"text-xs font-mono font-medium px-1.5 py-0.5 rounded ".concat(R[e.method]),children:e.method})}),(0,_.jsx)("td",{className:"px-4 py-2 font-mono text-xs text-zinc-700",children:e.path}),(0,_.jsx)("td",{className:"px-4 py-2 text-zinc-600",children:e.desc})]},s))})]})})]}),(0,_.jsxs)("div",{className:"space-y-2",children:[(0,_.jsx)(o.J,{className:"text-sm font-medium",children:"Rate Limits"}),(0,_.jsxs)("p",{className:"text-sm text-zinc-600",children:["API requests are limited to ",(0,_.jsx)("strong",{children:"1,000 requests per hour"})," per API key. Exceeding this limit will return a ",(0,_.jsx)("code",{className:"text-xs bg-zinc-100 px-1 rounded",children:"429"})," status code."]})]})]})]})}),(0,_.jsx)(m.av,{value:"usage",children:(0,_.jsxs)(l.Zp,{children:[(0,_.jsxs)(l.aR,{children:[(0,_.jsx)(l.ZB,{children:"API Usage"}),(0,_.jsx)(l.BT,{children:"Monitor your API key activity."})]}),(0,_.jsxs)(l.Wu,{className:"space-y-6",children:[0===E.length?(0,_.jsx)("p",{className:"text-sm text-zinc-500 py-4",children:"Create an API key to start tracking usage."}):(0,_.jsx)("div",{className:"space-y-4",children:E.map(e=>(0,_.jsxs)("div",{className:"border border-zinc-200 rounded-lg p-4 space-y-3",children:[(0,_.jsxs)("div",{className:"flex items-center justify-between",children:[(0,_.jsxs)("div",{children:[(0,_.jsx)("p",{className:"font-medium text-sm",children:e.name}),(0,_.jsx)("p",{className:"text-xs text-zinc-500 font-mono",children:e.prefix})]}),(0,_.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-zinc-500",children:[(0,_.jsx)(f.A,{className:"w-3.5 h-3.5"}),e.last_used_at?"Active":"Never used"]})]}),(0,_.jsxs)("div",{className:"grid grid-cols-3 gap-3",children:[(0,_.jsxs)("div",{className:"bg-zinc-50 rounded-lg p-3 text-center",children:[(0,_.jsx)("p",{className:"text-xs text-zinc-500",children:"Created"}),(0,_.jsx)("p",{className:"text-sm font-medium",children:new Date(e.created_at).toLocaleDateString()})]}),(0,_.jsxs)("div",{className:"bg-zinc-50 rounded-lg p-3 text-center",children:[(0,_.jsx)("p",{className:"text-xs text-zinc-500",children:"Last Used"}),(0,_.jsx)("p",{className:"text-sm font-medium",children:e.last_used_at?new Date(e.last_used_at).toLocaleDateString():"--"})]}),(0,_.jsxs)("div",{className:"bg-zinc-50 rounded-lg p-3 text-center",children:[(0,_.jsx)("p",{className:"text-xs text-zinc-500",children:"Status"}),(0,_.jsxs)("p",{className:"text-sm font-medium",children:[(0,_.jsx)("span",{className:"inline-block w-2 h-2 rounded-full mr-1.5 ".concat(e.last_used_at?"bg-emerald-500":"bg-zinc-300")}),e.last_used_at?"Active":"Idle"]})]})]})]},e.id))}),(0,_.jsx)("div",{className:"border-t pt-4",children:(0,_.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,_.jsxs)("div",{className:"bg-zinc-50 rounded-lg p-4",children:[(0,_.jsxs)("div",{className:"flex items-center gap-2 text-zinc-500 mb-1",children:[(0,_.jsx)(k.A,{className:"w-4 h-4"}),(0,_.jsx)("p",{className:"text-xs",children:"Total Keys"})]}),(0,_.jsxs)("p",{className:"text-2xl font-semibold",children:[E.length,(0,_.jsx)("span",{className:"text-sm text-zinc-400 font-normal",children:" / 5"})]})]}),(0,_.jsxs)("div",{className:"bg-zinc-50 rounded-lg p-4",children:[(0,_.jsxs)("div",{className:"flex items-center gap-2 text-zinc-500 mb-1",children:[(0,_.jsx)(y.A,{className:"w-4 h-4"}),(0,_.jsx)("p",{className:"text-xs",children:"Last Activity"})]}),(0,_.jsx)("p",{className:"text-2xl font-semibold",children:E.some(e=>e.last_used_at)?new Date(Math.max(...E.filter(e=>e.last_used_at).map(e=>new Date(e.last_used_at)))).toLocaleDateString():"--"})]})]})})]})]})}),(0,_.jsx)(m.av,{value:"webhooks",children:(0,_.jsxs)(l.Zp,{children:[(0,_.jsxs)(l.aR,{children:[(0,_.jsx)(l.ZB,{children:"Webhooks"}
2),(0,_.jsx)(l.BT,{children:"Receive real-time HTTP POST notifications when events happen in your workspace."})]}),(0,_.jsxs)(l.Wu,{className:"space-y-6",children:[(0,_.jsxs)("div",{className:"space-y-2",children:[(0,_.jsx)(o.J,{className:"text-sm font-medium",children:"How It Works"}),(0,_.jsxs)("p",{className:"text-sm text-zinc-600",children:["Register a URL via the API and subscribe to one or more events below. When an event fires, we send a ",(0,_.jsx)("code",{className:"text-xs bg-zinc-100 px-1 rounded",children:"POST"})," request to your endpoint with a JSON payload containing the event type, timestamp, and relevant data."]})]}),(0,_.jsxs)("div",{className:"space-y-2",children:[(0,_.jsx)(o.J,{className:"text-sm font-medium",children:"Register a Webhook"}),(0,_.jsxs)("div",{className:"bg-zinc-900 text-zinc-100 rounded-lg p-4 text-sm font-mono relative group",children:[(0,_.jsx)("button",{onClick:()=>Z("curl -X POST ".concat(C,'/v1/forms/:id/webhooks \\\n  -H "Authorization: Bearer YOUR_API_KEY" \\\n  -H "Content-Type: application/json" \\\n  -d \'{\n    "url": "https://your-server.com/webhook",\n    "events": ["submission.created", "form.published"],\n    "secret": "whsec_your_signing_secret"\n  }\'')),className:"absolute top-2 right-2 opacity-0 group-hover:opacity-100 transition-opacity p-1.5 rounded bg-zinc-700 hover:bg-zinc-600",children:(0,_.jsx)(b.A,{className:"w-3.5 h-3.5 text-zinc-300"})}),(0,_.jsx)("pre",{className:"whitespace-pre-wrap",children:"curl -X POST ".concat(C,'/v1/forms/:id/webhooks \\\n  -H "Authorization: Bearer YOUR_API_KEY" \\\n  -H "Content-Type: application/json" \\\n  -d \'{\n    "url": "https://your-server.com/webhook",\n    "events": ["submission.created", "form.published"],\n    "secret": "whsec_your_signing_secret"\n  }\'')})]})]}),(0,_.jsxs)("div",{className:"space-y-2",children:[(0,_.jsx)(o.J,{className:"text-sm font-medium",children:"Payload Format"}),(0,_.jsxs)("p",{className:"text-sm text-zinc-600",children:["Every webhook delivery includes a signature in the ",(0,_.jsx)("code",{className:"text-xs bg-zinc-100 px-1 rounded",children:"X-FF-Signature"})," header so you can verify authenticity."]}),(0,_.jsxs)("div",{className:"bg-zinc-900 text-zinc-100 rounded-lg p-4 text-sm font-mono relative group",children:[(0,_.jsx)("button",{onClick:()=>Z('{\n  "event": "submission.created",\n  "timestamp": "2026-04-04T12:00:00Z",\n  "form_id": "abc-123",\n  "data": {\n    "submission_id": "sub_456",\n    "fields": { "email": "[email protected]", ... }\n  }\n}'),className:"absolute top-2 right-2 opacity-0 group-hover:opacity-100 transition-opacity p-1.5 rounded bg-zinc-700 hover:bg-zinc-600",children:(0,_.jsx)(b.A,{className:"w-3.5 h-3.5 text-zinc-300"})}),(0,_.jsx)("pre",{className:"whitespace-pre-wrap",children:'{\n  "event": "submission.created",\n  "timestamp": "2026-04-04T12:00:00Z",\n  "form_id": "abc-123",\n  "data": {\n    "submission_id": "sub_456",\n    "fields": { "email": "[email protected]", ... }\n  }\n}'})]})]}),(0,_.jsxs)("div",{className:"space-y-2",children:[(0,_.jsxs)(o.J,{className:"text-sm font-medium",children:["Available Events (",P.length,")"]}),(0,_.jsx)("div",{className:"border rounded-lg overflow-hidden",children:(0,_.jsxs)("table",{className:"w-full text-sm",children:[(0,_.jsx)("thead",{children:(0,_.jsxs)("tr",{className:"bg-zinc-50 border-b",children:[(0,_.jsx)("th",{className:"text-left px-4 py-2.5 font-medium text-zinc-600 w-64",children:"Event"}),(0,_.jsx)("th",{className:"text-left px-4 py-2.5 font-medium text-zinc-600",children:"Description"})]})}),(0,_.jsx)("tbody",{children:P.map((e,s)=>(0,_.jsxs)("tr",{className:"border-b last:border-0 hover:bg-zinc-50","data-testid":"webhook-event-".concat(e.event),children:[(0,_.jsx)("td",{className:"px-4 py-2.5",children:(0,_.jsx)("code",{className:"text-xs font-mono bg-zinc-100 px-2 py-1 rounded text-zinc-800",children:e.event})}),(0,_.jsx)("td",{className:"px-4 py-2.5 text-zinc-600",children:e.desc})]},s))})]})})]}),(0,_.jsxs)("div",{className:"space-y-2",children:[(0,_.jsx)(o.J,{className:"text-sm font-medium",children:"Retry Policy"}),(0,_.jsxs)("p",{className:"text-sm text-zinc-600",children:["If your endpoint returns a non-",(0,_.jsx)("code",{className:"text-xs bg-zinc-100 px-1 rounded",children:"2xx"})," status code, we retry up to ",(0,_.jsx)("strong",{children:"5 times"})," with exponential backoff (1 min, 5 min, 30 min, 2 hrs, 24 hrs). After all retries fail, a ",(0,_.jsx)("code",{className:"text-xs bg-zinc-100 px-1 rounded",children:"webhook.failed"})," event is emitted."]})]})]})]})}),(0,_.jsx)(m.av,{value:"mcp",children:(0,_.jsxs)(l.Zp,{children:[(0,_.jsx)(l.aR,{children:(0,_.jsx)("div",{className:"flex items-start justify-between gap-3",children:(0,_.jsxs)("div",{children:[(0,_.jsxs)(l.ZB,{className:"flex items-center gap-2",children:["Model Context Protocol",(0,_.jsx)("span",{className:"text-xs font-medium bg-zinc-100 text-zinc-700 px-2 py-0.5 rounded-full",children:"Pro"})]}),(0,_.jsx)(l.BT,{children:"Connect Claude Desktop, Cursor, or any MCP-aware AI assistant to your Fantastic Forms workspace. Read forms / submissions / analytics, plus build entire forms via natural language \u2014 all guarded by your Pro API key. Destructive operations (delete form, delete submission) are intentionally excluded."})]})})}),(0,_.jsxs)(l.Wu,{className:"space-y-6",children:[(0,_.jsxs)("div",{className:"space-y-2",children:[(0,_.jsx)(o.J,{className:"text-sm font-medium",children:"Endpoint URL"}),(0,_.jsxs)("div",{className:"flex items-center gap-2",children:[(0,_.jsxs)("code",{className:"flex-1 text-sm bg-zinc-50 border border-zinc-200 rounded-lg px-3 py-2 font-mono text-zinc-900 break-all","data-testid":"mcp-endpoint-url",children:[C,"/mcp"]}),(0,_.jsx)(c.$,{type:"button",variant:"outline",size:"sm",onClick:()=>{navigator.clipboard.writeText("".concat(C,"/mcp")),x.oR.success("Endpoint URL copied")},"data-testid":"mcp-copy-endpoint",children:(0,_.jsx)(b.A,{className:"w-3.5 h-3.5"})})]})]}),(0,_.jsxs)("div",{className:"space-y-2",children:[(0,_.jsx)(o.J,{className:"text-sm font-medium",children:"Authentication"}),(0,_.jsxs)("p",{className:"text-sm text-zinc-600",children:["Send your API key (from the ",(0,_.jsx)("strong",{children:"Keys"})," tab) as a Bearer token. The MCP endpoint accepts the same ",(0,_.jsx)("code",{className:"text-xs bg-zinc-100 px-1 rounded",children:"ff_live_\u2026"})," keys you use for the REST API."]})]}),(0,_.jsxs)("div",{className:"space-y-3",children:[(0,_.jsx)(o.J,{className:"text-sm font-medium",children:"Available tools"}),(0,_.jsxs)("div",{children:[(0,_.jsx)("p",{className:"text-xs uppercase tracking-wide text-zinc-500 mb-2",children:"Read"}),(0,_.jsx)("div",{className:"grid sm:grid-cols-2 gap-2",children:[{name:"list_forms",desc:"Discover form IDs in the workspace."},{name:"get_form",desc:"Inspect a form's structure & logic."}
2,{name:"list_submissions",desc:"Read submission answers + metadata."},{name:"get_analytics",desc:"Aggregated metrics over a date range."}].map(e=>(0,_.jsxs)("div",{className:"border border-zinc-200 rounded-lg p-3",children:[(0,_.jsx)("code",{className:"text-xs font-mono font-semibold text-zinc-900",children:e.name}),(0,_.jsx)("p",{className:"text-xs text-zinc-600 mt-1",children:e.desc})]},e.name))})]}),(0,_.jsxs)("div",{children:[(0,_.jsx)("p",{className:"text-xs uppercase tracking-wide text-zinc-500 mb-2 mt-3",children:"Write"}),(0,_.jsx)("div",{className:"grid sm:grid-cols-2 gap-2",children:[{name:"create_form",desc:"Create a form (optionally with seed fields)."},{name:"update_form",desc:"Patch title, description, settings, branding."},{name:"publish_form",desc:"Set status to published."},{name:"unpublish_form",desc:"Take a form offline (status \u2192 draft)."},{name:"add_field",desc:"Append a new field/element."},{name:"update_field",desc:"Patch an existing field."},{name:"delete_field",desc:"Remove a single field from a form."},{name:"add_logic_rule",desc:"Add conditional show/hide/jump rules."}].map(e=>(0,_.jsxs)("div",{className:"border border-zinc-200 rounded-lg p-3",children:[(0,_.jsx)("code",{className:"text-xs font-mono font-semibold text-zinc-900",children:e.name}),(0,_.jsx)("p",{className:"text-xs text-zinc-600 mt-1",children:e.desc})]},e.name))})]}),(0,_.jsxs)("p",{className:"text-[11px] text-zinc-500 italic mt-2",children:["Note: ",(0,_.jsx)("code",{className:"bg-zinc-100 px-1 rounded",children:"delete_form"})," and ",(0,_.jsx)("code",{className:"bg-zinc-100 px-1 rounded",children:"delete_submission"})," are intentionally NOT exposed \u2014 a leaked key can't wipe data wholesale. Field-level delete is included because iteration is core to form-building."]})]}),(0,_.jsxs)("div",{className:"space-y-2",children:[(0,_.jsx)(o.J,{className:"text-sm font-medium",children:"Connect from Claude Desktop"}),(0,_.jsxs)("p",{className:"text-sm text-zinc-600",children:["Add this to your ",(0,_.jsx)("code",{className:"text-xs bg-zinc-100 px-1 rounded",children:"claude_desktop_config.json"})," (Settings \u2192 Developer \u2192 Edit Config), then restart Claude Desktop:"]}),(0,_.jsx)("pre",{className:"bg-zinc-900 text-zinc-100 text-xs rounded-lg p-4 overflow-x-auto font-mono leading-relaxed",children:'{\n  "mcpServers": {\n    "fantastic-forms": {\n      "command": "npx",\n      "args": [\n        "-y", "mcp-remote",\n        "'.concat(C,'/mcp",\n        "--header",\n        "Authorization: Bearer ff_live_YOUR_KEY_HERE"\n      ]\n    }\n  }\n}')}),(0,_.jsxs)(c.$,{type:"button",variant:"outline",size:"sm",onClick:()=>{const e='{\n  "mcpServers": {\n    "fantastic-forms": {\n      "command": "npx",\n      "args": [\n        "-y", "mcp-remote",\n        "'.concat(C,'/mcp",\n        "--header",\n        "Authorization: Bearer ff_live_YOUR_KEY_HERE"\n      ]\n    }\n  }\n}');navigator.clipboard.writeText(e),x.oR.success("Config snippet copied")},"data-testid":"mcp-copy-config",children:[(0,_.jsx)(b.A,{className:"w-3.5 h-3.5 mr-2"}),"Copy config"]}),(0,_.jsxs)("p",{className:"text-xs text-zinc-500 mt-2",children:["Replace ",(0,_.jsx)("code",{className:"text-xs bg-zinc-100 px-1 rounded",children:"ff_live_YOUR_KEY_HERE"})," with an API key from the Keys tab. ",(0,_.jsx)("code",{className:"text-xs bg-zinc-100 px-1 rounded",children:"mcp-remote"})," bridges the remote endpoint to Claude Desktop's local stdio transport \u2014 no extra install needed beyond npx."]})]}),(0,_.jsxs)("div",{className:"space-y-2",children:[(0,_.jsx)(o.J,{className:"text-sm font-medium",children:"Cursor, Continue, and other clients"}),(0,_.jsxs)("p",{className:"text-sm text-zinc-600",children:["Any client that supports remote Streamable-HTTP MCP can connect directly. Point it at ",(0,_.jsx)("code",{className:"text-xs bg-zinc-100 px-1 rounded",children:"".concat(C,"/mcp")})," with an ",(0,_.jsx)("code",{className:"text-xs bg-zinc-100 px-1 rounded",children:"Authorization: Bearer"})," header \u2014 no bridge required."]})]}),(0,_.jsxs)("div",{className:"space-y-2",children:[(0,_.jsx)(o.J,{className:"text-sm font-medium",children:"Try asking your AI"}),(0,_.jsxs)("ul",{className:"text-sm text-zinc-600 space-y-1.5 list-disc pl-5",children:[(0,_.jsx)("li",{children:'"Summarize the last 50 responses to my contact form."'}),(0,_.jsx)("li",{children:'"What\'s the completion rate on my onboarding survey over the last 7 days?"'}),(0,_.jsx)("li",{children:'"Audit my pricing form\'s logic rules and tell me if anything looks unreachable."'}),(0,_.jsx)("li",{children:'"Build me an NPS survey: a 0\u201310 linear scale and a follow-up long-text field. Then publish it."'}),(0,_.jsx)("li",{children:'"Add an email field to my newsletter signup form and make it required."'}),(0,_.jsx)("li",{children:"\"Hide the 'company size' field unless the user picks 'Business' on the plan question.\""})]})]})]})]})})]})})]}):(0,_.jsx)("div",{className:"min-h-screen bg-zinc-50 flex items-center justify-center",children:(0,_.jsxs)("div",{className:"text-center space-y-4",children:[(0,_.jsx)(j.A,{className:"w-12 h-12 mx-auto text-amber-500"}),(0,_.jsx)("h2",{className:"text-xl font-semibold",children:"API A
2ccess requires a Pro plan"}),(0,_.jsx)(c.$,{onClick:()=>e("/upgrade"),children:"Upgrade to Pro"})]})})}},34537(e,s,t){t.d(s,{A:()=>a});const a=(0,t(77784).A)("activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]])},35087(e,s,t){t.d(s,{A:()=>a});const a=(0,t(77784).A)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]])},56099(e,s,t){t.d(s,{A:()=>a});const a=(0,t(77784).A)("sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]])},59938(e,s,t){t.d(s,{J:()=>x});var a=t(89379),n=t(53986),i=t(65043),r=t(65131),c=t(10917),d=t(1089),o=t(70579);const l=["className"],m=(0,c.F)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),x=i.forwardRef((e,s)=>{let{className:t}=e,i=(0,n.A)(e,l);return(0,o.jsx)(r.b,(0,a.A)({ref:s,className:(0,d.cn)(m(),t)},i))});x.displayName=r.b.displayName},65469(e,s,t){t.d(s,{A:()=>a});const a=(0,t(77784).A)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]])},72313(e,s,t){t.d(s,{A:()=>a});const a=(0,t(77784).A)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]])},72629(e,s,t){t.d(s,{A:()=>a});const a=(0,t(77784).A)("crown",[["path",{d:"M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z",key:"1vdc57"}],["path",{d:"M5 21h14",key:"11awu3"}]])},75088(e,s,t){t.d(s,{A:()=>a});const a=(0,t(77784).A)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]])},77737(e,s,t){t.d(s,{A:()=>a});const a=(0,t(77784).A)("key",[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]])},78231(e,s,t){t.d(s,{A:()=>a});const a=(0,t(77784).A)("webhook",[["path",{d:"M18 16.98h-5.99c-1.1 0-1.95.94-2.48 1.9A4 4 0 0 1 2 17c.01-.7.2-1.4.57-2",key:"q3hayz"}],["path",{d:"m6 17 3.13-5.78c.53-.97.1-2.18-.5-3.1a4 4 0 1 1 6.89-4.06",key:"1go1hn"}],["path",{d:"m12 6 3.13 5.73C15.66 12.7 16.9 13 18 13a4 4 0 0 1 0 8",key:"qlwsc0"}]])},87490(e,s,t){t.d(s,{c:()=>n});var a=t(65043);function n(e){const s=a.useRef(e);return a.useEffect(()=>{s.current=e}),a.useMemo(()=>function(){for(var e,t=arguments.length,a=new Array(t),n=0;n<t;n++)a[n]=arguments[n];return null===(e=s.current)||void 0===e?void 0:e.call(s,...a)},[])}},91140(e,s,t){t.d(s,{BT:()=>v,Wu:()=>g,ZB:()=>f,Zp:()=>p,aR:()=>u});var a=t(89379),n=t(53986),i=t(65043),r=t(1089),c=t(70579);const d=["className"],o=["className"],l=["className"],m=["className"],x=["className"],h=["className"],p=i.forwardRef((e,s)=>{let{className:t}=e,i=(0,n.A)(e,d);return(0,c.jsx)("div",(0,a.A)({ref:s,className:(0,r.cn)("rounded-xl border bg-card text-card-foreground shadow",t)},i))});p.displayName="Card";const u=i.forwardRef((e,s)=>{let{className:t}=e,i=(0,n.A)(e,o);return(0,c.jsx)("div",(0,a.A)({ref:s,className:(0,r.cn)("flex flex-col space-y-1.5 p-6",t)},i))});u.displayName="CardHeader";const f=i.forwardRef((e,s)=>{let{className:t}=e,i=(0,n.A)(e,l);return(0,c.jsx)("div",(0,a.A)({ref:s,className:(0,r.cn)("font-semibold leading-none tracking-tight",t)},i))});f.displayName="CardTitle";const v=i.forwardRef((e,s)=>{let{className:t}=e,i=(0,n.A)(e,m);return(0,c.jsx)("div",(0,a.A)({ref:s,className:(0,r.cn)("text-sm text-muted-foreground",t)},i))});
2v.displayName="CardDescription";const g=i.forwardRef((e,s)=>{let{className:t}=e,i=(0,n.A)(e,x);return(0,c.jsx)("div",(0,a.A)({ref:s,className:(0,r.cn)("p-6 pt-0",t)},i))});g.displayName="CardContent";i.forwardRef((e,s)=>{let{className:t}=e,i=(0,n.A)(e,h);return(0,c.jsx)("div",(0,a.A)({ref:s,className:(0,r.cn)("flex items-center p-6 pt-0",t)},i))}).displayName="CardFooter"},92264(e,s,t){t.d(s,{p:()=>o});var a=t(89379),n=t(53986),i=t(65043),r=t(1089),c=t(70579);const d=["className","type"],o=i.forwardRef((e,s)=>{let{className:t,type:i}=e,o=(0,n.A)(e,d);return(0,c.jsx)("input",(0,a.A)({type:i,className:(0,r.cn)("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",t),ref:s},o))});o.displayName="Input"},94651(e,s,t){t.d(s,{A:()=>a});const a=(0,t(77784).A)("eye-off",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]])}}]);
3//# sourceMappingURL=675.750cf0b2.chunk.js.map

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.