{"$schema":"https://ui.shadcn.com/schema/registry-item.json","name":"guest-prep-sheet","type":"registry:component","title":"Guest Prep Sheet","description":"Organize a guest label, episode topic, talking points, and a link.","author":"Notion Arena","categories":["docs"],"tags":["widget","free","podcast guest","interview prep","talking points","creator","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":true,"writesToNotion":false,"needsNetwork":false},"embedUrl":"https://notionarena.vercel.app/embed/guest-prep-sheet","fileUrl":"https://notionarena.vercel.app/widgets/guest-prep-sheet.html","downloadUrl":"https://notionarena.vercel.app/api/widget/guest-prep-sheet","height":400,"minHeight":285,"maxHeight":560,"params":[{"key":"label","label":"Widget title","type":"text","default":"Guest prep"},{"key":"accent","label":"Accent","type":"color","default":"#6940a5"},{"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/guest-prep-sheet.html","type":"registry:file","target":"notion/widgets/guest-prep-sheet.html","content":"<!doctype html>\n<html lang=\"en\" data-theme=\"auto\">\n<head><meta charset=\"utf-8\" /><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\" /><title>Guest Prep Sheet</title>\n<style>\n:root{--bg:#fff;--fg:#37352f;--muted:#6b6a68;--surface:#f7f7f5;--border:#e9e9e7;--accent:#6940a5;--accent-ink:#fff;--accent-text:var(--accent);--danger:#c24136}\nhtml[data-theme=\"dark\"]{--bg:#191919;--fg:#e6e6e4;--muted:#9b9a97;--surface:#252525;--border:#343434;--danger:#ff7369}@media(prefers-color-scheme:dark){html[data-theme=\"auto\"]{--bg:#191919;--fg:#e6e6e4;--muted:#9b9a97;--surface:#252525;--border:#343434;--danger:#ff7369}}\n*{box-sizing:border-box}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}html,body{margin:0;height:100%}body{overflow:hidden;background:var(--bg);color:var(--fg);font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}.wrap{height:100%;min-height:285px;display:flex;flex-direction:column;gap:8px;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{margin-top:2px;font-size:14px;font-weight:650}.count{text-align:right;color:var(--muted);font-size:9px}.count b{display:block;color:var(--accent-text);font-size:12px}.form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 110px;gap:5px}.form input,.form textarea{width:100%;min-width:0;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--fg);padding:5px 7px;font:inherit;font-size:9px}.form input{height:30px}.form textarea{grid-column:1/3;min-height:48px;resize:vertical;line-height:1.35}.form input:focus-visible,.form textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.form button{grid-column:3;grid-row:2;height:29px;border:1px solid var(--accent);border-radius:7px;background:var(--accent);color:var(--accent-ink);font:inherit;font-size:9px;padding:4px 7px;cursor:pointer}.list{display:flex;flex:1;min-height:55px;flex-direction:column;gap:5px;overflow:auto}.entry{display:grid;grid-template-columns:minmax(0,1fr) 23px;gap:3px 7px;padding:7px 8px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.guest{min-width:0;overflow-wrap:anywhere;font-size:10px;font-weight:650}.topic{color:var(--accent-text);font-size:8.5px;text-align:right}.notes{grid-column:1/2;overflow-wrap:anywhere;white-space:pre-wrap;color:var(--muted);font-size:9px;line-height:1.4}.link{grid-column:1/2;width:max-content;max-width:100%;overflow:hidden;color:var(--accent-text);font-size:8.5px;text-overflow:ellipsis;white-space:nowrap;text-decoration:underline;text-underline-offset:2px}.remove{grid-column:2;grid-row:1/4;width:21px;height:21px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--muted);cursor:pointer}.remove:hover{border-color:var(--danger);color:var(--danger)}.empty{text-align:center;padding:12px;color:var(--muted);font-size:10px}.foot{display:flex;align-items:center;justify-content:space-between;gap:8px}.msg,.warning{color:var(--muted);font-size:9px;line-height:1.35}.clear{min-height:26px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--fg);font:inherit;font-size:9px;padding:4px 7px;cursor:pointer}@media(max-width:350px){.wrap{padding:10px}.form{grid-template-columns:minmax(0,1fr) 100px}.form textarea{grid-column:1/3}.form button{grid-column:2;grid-row:auto}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}\n</style></head>\n<body><main class=\"wrap\"><header class=\"head\"><div><div class=\"kicker\">Personal conversation outline</div><div class=\"title\" id=\"title\">Guest prep</div></div><div class=\"count\"><b id=\"count\">0</b>sheets</div></header>\n<form class=\"form\" id=\"form\"><label class=\"sr-only\" for=\"guest\">Guest name or label</label><input id=\"guest\" maxlength=\"56\" placeholder=\"Guest name or label\" required /><label class=\"sr-only\" for=\"topic\">Episode topic</label><input id=\"topic\" maxlength=\"64\" placeholder=\"Episode topic\" /><label class=\"sr-only\" for=\"url\">Optional guest or source link</label><input id=\"url\" type=\"url\" maxlength=\"500\" placeholder=\"https:// optional\" /><label class=\"sr-only\" for=\"notes\">Talking points and preparation</label><textarea id=\"notes\" maxlength=\"700\" placeholder=\"Talking points and preparation\"></textarea><button type=\"submit\">Save sheet</button></form>\n<section class=\"list\" id=\"list\" aria-label=\"Guest preparation sheets\"></section><footer class=\"foot\"><span class=\"msg\" id=\"msg\" aria-live=\"polite\">Sheets save locally and are not encrypted.</span><button class=\"clear\" id=\"clear\" type=\"button\">Clear sheets</button></footer><div class=\"warning\">Avoid storing private contact details or sensitive personal information.</div></main>\n<script>\n(function(){var cfgEl=document.getElementById('bk-config'),base={};try{base=cfgEl?JSON.parse(cfgEl.textContent||'{}'):{};}catch(e){}var q=new URLSearchParams(location.search),c={};for(var k in base)c[k]=base[k];q.forEach(function(v,k){c[k]=v;});function safeColor(v,d){return /^#[0-9a-f]{6}$/i.test(String(v||''))?String(v):d;}function rgb(h){var s=h.slice(1);return[0,2,4].map(function(i){return parseInt(s.slice(i,i+2),16);});}function lum(a){return a.map(function(v){v/=255;return v<=.04045?v/12.92:Math.pow((v+.055)/1.055,2.4);}).reduce(function(s,v,i){return s+v*[.2126,.7152,.0722][i];},0);}function contrast(a,b){var x=lum(a),y=lum(b);return(Math.max(x,y)+.05)/(Math.min(x,y)+.05);}function ink(h){var a=rgb(h);return contrast(a,[255,255,255])>=contrast(a,[0,0,0])?'#fff':'#000';}function textColor(h){var dark=theme==='dark'||(theme==='auto'&&window.matchMedia&&window.matchMedia('(prefers-color-scheme: dark)').matches),bg=rgb(dark?'#252525':'#f7f7f5'),a=rgb(h),to=dark?[255,255,255]:[0,0,0];if(contrast(a,bg)>=4.5)return h;for(var t=.02;t<=1;t+=.02){var m=a.map(function(v,i){return Math.round(v+(to[i]-v)*t);});if(contrast(m,bg)>=4.5)return'#'+m.map(function(v){return v.toString(16).padStart(2,'0');}).join('');}return dark?'#fff':'#191919';}var theme=['auto','light','dark'].indexOf(String(c.theme||'auto'))>=0?String(c.theme||'auto'):'auto',ACCENT=safeColor(c.accent,'#6940a5'),LABEL=String(c.label||'Guest prep').slice(0,48),KEY='notion-arena.guest-prep-sheet.v1',items=[];function setText(){document.documentElement.style.setProperty('--accent-text',textColor(ACCENT));}document.documentElement.setAttribute('data-theme',theme);document.documentElement.style.setProperty('--accent',ACCENT);document.documentElement.style.setProperty('--accent-ink',ink(ACCENT));setText();if(theme==='auto'&&window.matchMedia){var mq=window.matchMedia('(prefers-color-scheme: dark)');if(mq.addEventListener)mq.addEventListener('change',setText);else if(mq.addListener)mq.addListener(setText);}document.getElementById('title').textContent=LABEL;document.title=LABEL;function safeUrl(raw){if(!raw)return'';try{var u=new URL(raw);return u.protocol==='http:'||u.protocol==='https:'?u.href:'';}catch(e){return'';}}try{var a=JSON.parse(localStorage.getItem(KEY)||'[]');if(Array.isArray(a))items=a.filter(function(x){return x&&typeof x.guest==='string';}).slice(0,60);}catch(e){}var list=document.getElementById('list'),msg=document.getElementById('msg');function save(text){try{localStorage.setItem(KEY,JSON.stringify(items));msg.textContent=text||'Sheets save locally and are not encrypted.';}catch(e){msg.textContent='Storage is unavailable in this browser session.';}}function render(){list.textContent='';document.getElementById('count').textContent=String(items.length);if(!items.length){var empty=document.createElement('div');empty.className='empty';empty.textContent='Create a guest prep sheet before recording.';list.appendChild(empty);return;}items.slice().reverse().forEach(function(item){var row=document.createElement('article');row.className='entry';var guest=document.createElement('span');guest.className='guest';guest.textContent=item.guest;var topic=document.createElement('span');topic.className='topic';topic.textContent=item.topic||'Topic not set';var notes=document.createElement('div');notes.className='notes';notes.textContent=item.notes||'No talking points added';var url=safeUrl(item.url||'');row.append(guest,topic,notes);if(url){var link=document.createElement('a');link.className='link';link.href=url;link.target='_blank';link.rel='noopener noreferrer';link.textContent=url;link.setAttribute('aria-label','Open guest link in a new tab');row.appendChild(link);}var del=document.createElement('button');del.className='remove';del.type='button';del.textContent='×';del.setAttribute('aria-label','Remove guest sheet: '+item.guest);del.addEventListener('click',function(){items.splice(items.indexOf(item),1);save();render();});row.appendChild(del);list.appendChild(row);});}document.getElementById('form').addEventListener('submit',function(e){e.preventDefault();var guest=document.getElementById('guest').value.trim().slice(0,56),topic=document.getElementById('topic').value.trim().slice(0,64),raw=document.getElementById('url').value.trim(),url=safeUrl(raw),notes=document.getElementById('notes').value.trim().slice(0,700);if(!guest)return;if(raw&&!url){msg.textContent='Enter an http or https URL, or leave the link blank.';return;}if(items.length>=60){msg.textContent='Guest sheet limit reached.';return;}items.push({guest:guest,topic:topic,url:url,notes:notes});document.getElementById('guest').value='';document.getElementById('topic').value='';document.getElementById('url').value='';document.getElementById('notes').value='';save();render();document.getElementById('guest').focus();});document.getElementById('clear').addEventListener('click',function(){items=[];save('Guest prep sheets cleared.');render();});render();})();\n</script></body></html>\n"}]}