} label={showMarkup?"Markup":"Clean"} active={showMarkup} onClick={()=>setShowMarkup(!showMarkup)}/>
} label={`${pendingChanges.length}`} dropdown active onClick={e=>{e.stopPropagation();setOpenDrop(openDrop==="review"?null:"review")}}/>
{openDrop==="review"&&e.stopPropagation()} style={{position:"absolute",top:28,right:0,backgroundColor:c.bgCard,border:`1px solid ${c.border}`,borderRadius:R.sm,boxShadow:"0 8px 24px rgba(0,0,0,0.12)",zIndex:999,minWidth:160,padding:4}}>
{acceptAll();setOpenDrop(null)}}>✓ Accept All ({pendingChanges.length})
{rejectAll();setOpenDrop(null)}}>✗ Reject All ({pendingChanges.length})
} >}
Saved 2m ago
flash("Send to Agent…")} style={{padding:"3px 10px",borderRadius:R.sm,border:`1px solid ${c.accentBtn}40`,backgroundColor:c.accentBtn+"08",cursor:"pointer",display:"flex",alignItems:"center",gap:4,color:c.accentBtn,fontFamily:font.sans,fontSize:10.5,fontWeight:600,height:26}}>Send to Agent
{findBar&&0/0 setFindBar(false)} style={{padding:2,border:"none",cursor:"pointer",backgroundColor:"transparent",display:"flex",color:c.textTer}}>
}
{/* ─── CONTENT: To-Do | Editor | Comments ─── */}
{/* ═══ TO-DO + ELNOR COLUMN (real, left of editor) ═══ */}
{!fullScreen&&
{/* My Tasks header */}
setTodoCollapsed(!todoCollapsed)} style={{padding:"8px 10px",display:"flex",alignItems:"center",gap:6,cursor:"pointer",backgroundColor:c.bgPanel,borderBottom:`1px solid ${c.borderLight}`}}>
Today
{activeTodos.length}
{e.stopPropagation();flash("Configure list…")}} style={{border:"none",background:"none",cursor:"pointer",padding:2,display:"flex"}}>
{/* Tasks */}
{!todoCollapsed&&
{activeTodos.map(todo=>
setExpandedTodo(expandedTodo===todo.id?null:todo.id)}>
toggleTodo(todo.id)} onClick={e=>e.stopPropagation()} style={{width:15,height:15,accentColor:c.accentBtn,marginTop:1,flexShrink:0}}/>
{todo.text}
{priLabel(todo.pri)}
{todo.due&&{todo.due} }
{todo.linkedNote&&{e.stopPropagation();flash(`Opening "${todo.linkedNote}"`)}}>Note }
{todo.sub.length>0&&{todo.sub.filter(s=>s.done).length}/{todo.sub.length} }
{expandedTodo===todo.id&&
{todo.sub.map(s=>
toggleSub(todo.id,s.id)} style={{width:13,height:13,accentColor:c.accentBtn}}/>
{s.text}
)}
flash("@Elnor…")}>@Elnor
Sub
flash(todo.linkedNote?`Open "${todo.linkedNote}"`:"Link a note…")}>{todo.linkedNote?"Open Note":"Link Note"}
}
)}
{/* Add task */}
setNewTodoText(e.target.value)} placeholder="Add task… (type @Elnor to assign)" onKeyDown={e=>{if(e.key==="Enter"&&newTodoText.trim()){setTodos(p=>[...p,{id:"t"+Date.now(),text:newTodoText,done:false,pri:3,sub:[]}]);setNewTodoText("")}}} style={{flex:1,border:"none",outline:"none",fontSize:12,fontFamily:font.sans,backgroundColor:"transparent",color:c.textPri}}/>
{/* Done */}
{doneTodos.length>0&&
Done ({doneTodos.length})
{doneTodos.map(t=>
toggleTodo(t.id)} style={{width:14,height:14,accentColor:c.accentBtn}}/>
{t.text}
)}
}
}
{/* ═══ ELNOR FEED (with category headers) ═══ */}
setElnorCollapsed(!elnorCollapsed)} style={{padding:"8px 10px",display:"flex",alignItems:"center",gap:6,cursor:"pointer",backgroundColor:c.bgPanel}}>
Elnor
{Object.values(elnorFeedData).flat().length}
{!elnorCollapsed&&
{Object.entries(elnorFeedData).map(([cat,items])=>
{elnorIcons[cat]}
{cat}
({items.length})
{items.map(item=>
e.currentTarget.style.backgroundColor=c.bgInput} onMouseLeave={e=>e.currentTarget.style.backgroundColor="transparent"}>
{item.accent&&}
{item.text}
{item.time}
)}
)}
}
}
{/* ═══ EDITOR (from Q_NOTES_FULL — real, working) ═══ */}
{if(bubbleMenu&&!e.target.closest("[data-bubble]"))setBubbleMenu(null)}}>
Henderson Discovery Priorities
2h ago · 2 comments · 3 pending changes
{segs.map(renderSeg)}
{/* Bubble menu (from Q_NOTES_FULL verbatim) */}
{bubbleMenu&&
{flash("Comment…");dismissBubble()}} style={{padding:"5px 10px",borderRadius:R.sm,border:"none",cursor:"pointer",backgroundColor:c.accentBtn,color:"#fff",fontSize:11,fontWeight:600,fontFamily:font.sans,display:"flex",alignItems:"center",gap:4}}>Comment
{agent.name}
{flash(`Sent to ${agent.name}`);dismissBubble()}} style={{padding:"5px 8px",borderRadius:R.sm,border:"none",cursor:"pointer",backgroundColor:"transparent",color:c.textSec,fontSize:11,fontFamily:font.sans,display:"flex",alignItems:"center",gap:3}} onMouseEnter={e=>e.currentTarget.style.backgroundColor=c.bgInput} onMouseLeave={e=>e.currentTarget.style.backgroundColor="transparent"}>Ask {agent.name}
{["Rewrite","Expand","Shorten"].map(a=>
{flash(`${agent.name}: ${a}…`);dismissBubble()}} style={{padding:"5px 8px",borderRadius:R.sm,border:"none",cursor:"pointer",backgroundColor:"transparent",color:c.textSec,fontSize:11,fontFamily:font.sans}} onMouseEnter={e=>e.currentTarget.style.backgroundColor=c.bgInput} onMouseLeave={e=>e.currentTarget.style.backgroundColor="transparent"}>{a} )}
}
{/* ═══ COMMENTS PANEL — placeholder, collapsible ═══ */}
{commentsOpen&&!fullScreen&&
Comments (2)
Send to Agent
setCommentsOpen(false)} style={{width:26,border:"none",cursor:"pointer",backgroundColor:"transparent",display:"flex",alignItems:"center",justifyContent:"center",color:c.textTer}}>
Comments + Send to Agent from Q_NOTES_FULL.jsx plugs in here verbatim
260–290px · right of editor Full comment cards Reply/Resolve/Edit/Delete Per-comment ✨ Send Agent/Chat selector Context scope radios Output mode + result formatNew: @mention support Type @Elnor in any text field (in specs, not visual here)
}