{"$schema":"https://ui.shadcn.com/schema/registry-item.json","name":"local-intake-form","type":"registry:component","title":"Local Intake Form","description":"Prepare a request as JSON without sending or storing it.","author":"Notion Arena","categories":["business"],"tags":["widget","free","form","intake","request","feedback","offline"],"meta":{"kind":"widget","tier":"free","version":"1.0.0","updatedAt":"2026-10-11","notionPlan":"Free","emoji":"📝","delivery":["embed","html-block","download"],"capabilities":{"interactive":true,"offlineSafe":true,"persistsLocally":false,"writesToNotion":false,"needsNetwork":false},"embedUrl":"https://notionarena.vercel.app/embed/local-intake-form","fileUrl":"https://notionarena.vercel.app/widgets/local-intake-form.html","downloadUrl":"https://notionarena.vercel.app/api/widget/local-intake-form","height":370,"minHeight":290,"maxHeight":560,"params":[{"key":"label","label":"Form title","type":"text","default":"Quick request"},{"key":"requireEmail","label":"Require email","type":"boolean","default":false},{"key":"accent","label":"Accent","type":"color","default":"#2383e2"},{"key":"theme","label":"Theme","type":"select","default":"auto","options":[{"value":"auto","label":"Match Notion"},{"value":"light","label":"Light"},{"value":"dark","label":"Dark"}]}]},"files":[{"path":"widgets/local-intake-form.html","type":"registry:file","target":"notion/widgets/local-intake-form.html","content":"<!doctype html>\n<html lang=\"en\" data-theme=\"auto\">\n<head>\n<meta charset=\"utf-8\" /><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\" />\n<title>Local Request Form</title>\n<style>\n:root{--bg:#fff;--fg:#37352f;--muted:#787774;--surface:#f7f7f5;--border:#e9e9e7;--accent:#2383e2;--font:ui-sans-serif,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Helvetica,Arial,sans-serif}\nhtml[data-theme=\"dark\"]{--bg:#191919;--fg:#e6e6e4;--muted:#9b9a97;--surface:#252525;--border:#343434}\n@media(prefers-color-scheme:dark){html[data-theme=\"auto\"]{--bg:#191919;--fg:#e6e6e4;--muted:#9b9a97;--surface:#252525;--border:#343434}}\n*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--bg);color:var(--fg);font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;overflow:hidden}\n.wrap{height:100%;min-height:290px;display:flex;flex-direction:column;gap:9px;padding:13px;overflow:auto}.head{display:flex;align-items:center;justify-content:space-between;gap:8px}.kicker{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:650}.title{font-size:13.5px;font-weight:650;margin-top:2px}.privacy{font-size:9px;color:var(--muted)}\n.form{display:grid;grid-template-columns:1fr 1fr;gap:7px}.field{display:flex;min-width:0;flex-direction:column;gap:4px}.field.full{grid-column:1/-1}.field label{font-size:10px;font-weight:600;color:var(--muted)}.field input,.field select,.field textarea{width:100%;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--fg);padding:6px 7px;font:inherit;font-size:11px}.field input,.field select{height:31px}.field textarea{min-height:64px;resize:vertical;line-height:1.4}.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}\nbutton{min-height:30px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--fg);font:inherit;font-size:10.5px;font-weight:550;padding:5px 9px;cursor:pointer}button:hover{border-color:color-mix(in oklab,var(--accent) 45%,var(--border))}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button.primary{border-color:var(--accent);background:var(--accent);color:#fff}.result{display:flex;flex:1;min-height:0;flex-direction:column;gap:7px}.result-title{font-size:11px;font-weight:650}.payload{min-height:95px;flex:1;width:100%;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--fg);padding:8px;font:10px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;resize:vertical}.payload:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.status{min-height:14px;font-size:10px;color:var(--muted)}\n@media(max-width:350px){.wrap{padding:10px}.form{gap:5px}.field input,.field select,.field textarea{font-size:10px}}\n@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}\n</style>\n</head>\n<body><main class=\"wrap\">\n  <header class=\"head\"><div><div class=\"kicker\">Private by default</div><div class=\"title\" id=\"title\">Quick request</div></div><div class=\"privacy\">Nothing is sent</div></header>\n  <form class=\"form\" id=\"form\">\n    <div class=\"field\"><label for=\"name\">Your name</label><input id=\"name\" name=\"name\" maxlength=\"80\" autocomplete=\"name\" required /></div>\n    <div class=\"field\"><label id=\"emailLabel\" for=\"email\">Email, optional</label><input id=\"email\" name=\"email\" type=\"email\" maxlength=\"120\" autocomplete=\"email\" /></div>\n    <div class=\"field full\"><label for=\"topic\">Request type</label><select id=\"topic\" name=\"topic\"><option>Question</option><option>Support</option><option>Feedback</option><option>Other</option></select></div>\n    <div class=\"field full\"><label for=\"details\">Details</label><textarea id=\"details\" name=\"details\" maxlength=\"1200\" required></textarea></div>\n    <div class=\"field full actions\"><button class=\"primary\" type=\"submit\">Prepare request</button><span class=\"privacy\">Copy it yourself, this form has no receiver.</span></div>\n  </form>\n  <section class=\"result\" id=\"result\" hidden aria-label=\"Prepared request\">\n    <div class=\"result-title\">Copy or keep this JSON locally</div>\n    <textarea class=\"payload\" id=\"payload\" readonly aria-label=\"Prepared request JSON\"></textarea>\n    <div class=\"actions\"><button class=\"primary\" id=\"copy\" type=\"button\">Copy request</button><button id=\"edit\" type=\"button\">Edit</button></div>\n  </section>\n  <div class=\"status\" id=\"status\" aria-live=\"polite\">Your entries are not sent or saved by this widget.</div>\n</main>\n<script>\n(function(){\n  var cfgEl=document.getElementById('bk-config'),base={};try{base=cfgEl?JSON.parse(cfgEl.textContent||'{}'):{};}catch(e){}\n  var q=new URLSearchParams(location.search),c={};for(var k in base)c[k]=base[k];q.forEach(function(v,k){c[k]=v;});\n  function bool(k,d){var v=c[k];return v===undefined?d:(v===true||v==='true'||v==='1');}\n  function safeColor(v,d){return /^#[0-9a-f]{6}$/i.test(String(v||''))?String(v):d;}\n  var theme=['auto','light','dark'].indexOf(String(c.theme||'auto'))>-1?String(c.theme||'auto'):'auto',ACCENT=safeColor(c.accent,'#2383e2'),LABEL=String(c.label||'Quick request').slice(0,48);\n  document.documentElement.setAttribute('data-theme',theme);document.documentElement.style.setProperty('--accent',ACCENT);document.getElementById('title').textContent=LABEL;document.title=LABEL;\n  var form=document.getElementById('form'),email=document.getElementById('email'),result=document.getElementById('result'),payload=document.getElementById('payload'),status=document.getElementById('status');\n  email.required=bool('requireEmail',false);document.getElementById('emailLabel').textContent=email.required?'Email':'Email, optional';\n  form.addEventListener('submit',function(e){e.preventDefault();if(!form.reportValidity())return;var data={topic:document.getElementById('topic').value,name:document.getElementById('name').value.trim(),email:email.value.trim(),details:document.getElementById('details').value.trim(),preparedAt:new Date().toISOString()};payload.value=JSON.stringify(data,null,2);form.hidden=true;result.hidden=false;status.textContent='Request prepared. Nothing was sent or saved.';});\n  function manualCopy(){payload.focus();payload.select();status.textContent='Request selected. Use your device copy command; nothing was sent.';}\n  document.getElementById('copy').addEventListener('click',function(){try{if(typeof navigator!=='undefined'&&navigator.clipboard&&navigator.clipboard.writeText){navigator.clipboard.writeText(payload.value).then(function(){status.textContent='Copied. Nothing was sent.';},manualCopy);}else manualCopy();}catch(e){manualCopy();}});\n  document.getElementById('edit').addEventListener('click',function(){result.hidden=true;form.hidden=false;status.textContent='Edit your request. Entries remain only in this page until you leave.';});\n})();\n</script>\n</body>\n</html>\n"}]}