Spaces:
Runtime error
Runtime error
| // Demo data for a college search spanning HS seniors and adult learners. | |
| export const DEMO_PROJECT = { | |
| title: "Fall College Shortlist — Dual Path", | |
| meta: "HS senior + adult online options · nursing & business · aid + access", | |
| }; | |
| export const INSIGHTS = [ | |
| { | |
| id: 'i-progress', | |
| title: 'Search progress', | |
| icon: 'graph', | |
| category: 'progress', | |
| confidence: 82, | |
| summary: 'Week 3 of a structured college search. Shortlist is forming, but net-price estimates and Disability Services questions are still thin before early deadlines.', | |
| bullets: [ | |
| 'Pipeline: <strong>9 schools researching</strong> · 3 campus/virtual tours booked · 1 Common App section started', | |
| 'Cadence: <strong>~4 focused research hours/week</strong> — below the 6-hour target through midterms', | |
| '<strong>Risk:</strong> sticker price comparisons without Net Price Calculator runs', | |
| ], | |
| pinned: true, | |
| sources: 18, | |
| updatedMinutesAgo: 5, | |
| quotes: [ | |
| '"Run NPCs before cutting a school for sticker price alone." — Financial Aid Navigator', | |
| '"Tag every school: campus, hybrid, or fully online." — College Fit Strategist', | |
| ], | |
| }, | |
| { | |
| id: 'i-method', | |
| title: 'Materials & messaging', | |
| icon: 'flask', | |
| category: 'theory', | |
| confidence: 71, | |
| summary: 'Activities list is solid; personal statement outline is thin. Accommodation documentation plan is not started. Adult transcript collection is incomplete.', | |
| bullets: [ | |
| 'Essay: <strong>1 story bank draft</strong> · need fit paragraph tied to two majors', | |
| 'Access: draft DSS questions before deposits · no stigma framing needed', | |
| 'Transfer: inventory prior credits before assuming bachelor timelines', | |
| ], | |
| sources: 14, | |
| updatedMinutesAgo: 14, | |
| quotes: [ | |
| '"Verify prompts on the official portal — never invent essay requirements." — Admissions Roadmap Planner', | |
| '"Ask Disability Services how online exams and housing are handled." — Accessibility & Accommodations Advisor', | |
| ], | |
| }, | |
| { | |
| id: 'i-lit', | |
| title: 'College knowledge', | |
| icon: 'book', | |
| category: 'literature', | |
| confidence: 76, | |
| summary: 'Good grasp of Common App basics and College Scorecard browsing. Weaker on employer tuition benefits and rolling online start dates.', | |
| bullets: [ | |
| '<strong>Coverage:</strong> Scorecard browsing, campus tour questions, FAFSA timing overview', | |
| '<strong>Gap:</strong> employer tuition policy questions for adult learners', | |
| '<strong>Gap:</strong> no clear <strong>rolling vs ED/EA/RD</strong> tracker yet', | |
| ], | |
| sources: 32, | |
| updatedMinutesAgo: 28, | |
| quotes: [ | |
| '"Get transfer credit evaluations in writing from the registrar." — Adult & Online Learner Coach', | |
| '"Separate marketing tuition from net price you can verify." — Financial Aid Navigator', | |
| ], | |
| }, | |
| { | |
| id: 'i-questions', | |
| title: 'Open college questions', | |
| icon: 'sparkles', | |
| category: 'theory', | |
| confidence: 63, | |
| summary: 'Three live threads. Q1 (modality) gates the shortlist. Q2–Q3 affect aid and essays.', | |
| bullets: [ | |
| '<strong>Q1:</strong> Prefer residential campus, hybrid, or fully online for year one?', | |
| '<strong>Q2:</strong> What net-price ceiling is realistic for your household / employer benefits?', | |
| '<strong>Q3:</strong> Which accommodations or flexibility needs must schools support?', | |
| ], | |
| sources: 9, | |
| updatedMinutesAgo: 41, | |
| quotes: [ | |
| '"Pick a primary modality for 2 weeks, then expand." — College Fit Strategist', | |
| '"Protect weekend blocks for essays and NPC runs." — Admissions Roadmap Planner', | |
| ], | |
| }, | |
| { | |
| id: 'i-next', | |
| title: 'Next steps', | |
| icon: 'arrow', | |
| category: 'action', | |
| confidence: 85, | |
| summary: 'Near-term actions for this week’s research blocks and application prep. Two items have slipped a week.', | |
| bullets: [ | |
| 'Run <strong>Net Price Calculators</strong> for the top 5 schools', | |
| 'Draft <strong>DSS / accessibility questions</strong> before any deposit', | |
| 'Outline <strong>personal statement</strong> with 3 real proof points only', | |
| 'Inventory <strong>transcripts / prior learning</strong> for transfer evaluation', | |
| ], | |
| sources: 7, | |
| updatedMinutesAgo: 9, | |
| quotes: [ | |
| '"Ship the affordability worksheet before opening more tabs." — Financial Aid Navigator', | |
| '"Schedule essay drafting like a class you cannot skip." — Admissions Roadmap Planner', | |
| ], | |
| }, | |
| { | |
| id: 'i-blockers', | |
| title: 'Blockers & risks', | |
| icon: 'alert', | |
| category: 'risk', | |
| confidence: 74, | |
| summary: 'One materials blocker (thin essay story) and one process blocker (inconsistent research cadence). Affordability clarity is the higher risk before early deadlines.', | |
| bullets: [ | |
| '<strong>Money:</strong> sticker-price fear without NPC evidence can cut good-fit schools too early', | |
| '<strong>Process:</strong> missed research blocks during exam/work weeks with no catch-up plan', | |
| ], | |
| sources: 6, | |
| updatedMinutesAgo: 20, | |
| quotes: [ | |
| '"Without a weekly system, even a strong shortlist stalls." — Admissions Roadmap Planner', | |
| '"Do not invent award amounts — recover them from NPC and award letters." — Financial Aid Navigator', | |
| ], | |
| }, | |
| ]; | |
| export const WIDGET_CATALOG = [ | |
| { type: 'bibliography', name: 'Saved Schools', desc: 'Track campuses, links, and notes for schools you care about', icon: 'book', cat: 'research', defaultSize: 'M', enhanced: true }, | |
| { type: 'reading-queue', name: 'Research Queue', desc: 'Programs, tours, and articles to review before applying', icon: 'list', cat: 'research', defaultSize: 'S', enhanced: true }, | |
| { type: 'notes', name: 'Note Inbox', desc: 'Markdown notes with full-text search', icon: 'notes', cat: 'research', defaultSize: 'S', enhanced: true }, | |
| { type: 'concept-map', name: 'Fit Map', desc: 'Map majors, modalities, and schools', icon: 'network', cat: 'research', defaultSize: 'M', stub: true }, | |
| { type: 'highlights', name: 'Essay Story Bank', desc: 'Stories and quotes ready for essays', icon: 'cite', cat: 'research', defaultSize: 'M', enhanced: true }, | |
| { type: 'paper-tldr', name: 'Program TL;DR', desc: 'Paste a program page → must-haves / fit gaps', icon: 'microscope', cat: 'research', defaultSize: 'M', stub: true }, | |
| { type: 'writing', name: 'Writing Tracker', desc: 'Essay drafts with a writing heatmap', icon: 'pencil', cat: 'writing', defaultSize: 'M', enhanced: true }, | |
| { type: 'outline', name: 'Outline Builder', desc: 'Structure personal statements and supplements', icon: 'list', cat: 'writing', defaultSize: 'M', enhanced: true }, | |
| { type: 'latex', name: 'Scratchpad', desc: 'Freeform drafting pad with live preview', icon: 'flask', cat: 'writing', defaultSize: 'M', enhanced: true }, | |
| { type: 'draft-locker', name: 'Draft Locker', desc: 'Versioned essay and activity-list drafts', icon: 'shield', cat: 'writing', defaultSize: 'S', stub: true }, | |
| { type: 'kanban', name: 'Application Board', desc: 'Wishlist → Researching → Applied → Decision', icon: 'kanban', cat: 'project', defaultSize: 'L', enhanced: true }, | |
| { type: 'deadlines', name: 'Deadlines', desc: 'App deadlines plus .ics calendar export', icon: 'calendar', cat: 'project', defaultSize: 'S', enhanced: true }, | |
| { type: 'pomodoro', name: 'Pomodoro', desc: 'Focused research / essay blocks with breaks', icon: 'timer', cat: 'project', defaultSize: 'S', enhanced: true }, | |
| { type: 'gantt', name: 'Search Timeline', desc: 'Research → apply → decision → deposit', icon: 'flag', cat: 'project', defaultSize: 'L', stub: true }, | |
| { type: 'meeting-log', name: 'Visit & Advisor Log', desc: 'Tours, counselors, DSS contacts, next action', icon: 'message', cat: 'project', defaultSize: 'M' }, | |
| { type: 'goals', name: 'Goals / OKRs', desc: 'Weekly research and application goals', icon: 'bullseye', cat: 'project', defaultSize: 'M' }, | |
| { type: 'calendar', name: 'Calendar', desc: 'Month grid with deadlines and research days', icon: 'calendar', cat: 'project', defaultSize: 'M', enhanced: true }, | |
| { type: 'activity', name: 'Activity Feed', desc: 'Chronological log of edits across widgets', icon: 'graph', cat: 'project', defaultSize: 'M', enhanced: true }, | |
| { type: 'documenter', name: 'Daily Documenter', desc: 'Date-stamped college-search journal', icon: 'pencil', cat: 'project', defaultSize: 'M', enhanced: true }, | |
| { type: 'phd-journey', name: 'Search Roadmap', desc: 'Milestones from profile → deposit', icon: 'flag', cat: 'project', defaultSize: 'M', enhanced: true }, | |
| { type: 'phd-resources', name: 'College Resources', desc: 'Scorecard, FAFSA, Common App, DSS research tools', icon: 'star', cat: 'research', defaultSize: 'M', enhanced: true }, | |
| { type: 'mood', name: 'Mood / Stress Check-in', desc: 'Daily slider during heavy application weeks', icon: 'smile', cat: 'wellness', defaultSize: 'S', stub: true }, | |
| { type: 'sleep', name: 'Energy Check', desc: 'Spot burnout before deadline week', icon: 'heart', cat: 'wellness', defaultSize: 'S', stub: true }, | |
| { type: 'habits', name: 'Habit Tracker', desc: 'Daily research, essay, and NPC habits', icon: 'flame', cat: 'wellness', defaultSize: 'S' }, | |
| { type: 'focus', name: 'Focus Playlist', desc: 'Ambient sounds for research blocks', icon: 'music', cat: 'wellness', defaultSize: 'S', stub: true }, | |
| { type: 'cfp', name: 'College Fair Tracker', desc: 'Fairs, schools, follow-ups', icon: 'send', cat: 'career', defaultSize: 'M', stub: true }, | |
| { type: 'grants', name: 'Scholarship Tracker', desc: 'Outside scholarship deadlines', icon: 'award', cat: 'career', defaultSize: 'S', stub: true }, | |
| { type: 'crm', name: 'Counselor / Rec CRM', desc: 'Recommenders, last touch, next ask', icon: 'network', cat: 'career', defaultSize: 'M', stub: true }, | |
| { type: 'cv', name: 'Activity List Versions', desc: 'Track extracurricular and work lists', icon: 'user', cat: 'career', defaultSize: 'S', stub: true }, | |
| { type: 'datasets', name: 'School Shortlist', desc: 'Target schools by major/modality/location', icon: 'database', cat: 'data', defaultSize: 'M', stub: true }, | |
| { type: 'methods', name: 'Tour Question Sheet', desc: 'Campus and virtual-tour question frameworks', icon: 'flask', cat: 'data', defaultSize: 'M', stub: true }, | |
| { type: 'budget', name: 'Budget Tracker', desc: 'Application fees, travel, deposits', icon: 'wallet', cat: 'practical', defaultSize: 'S' }, | |
| { type: 'discounts', name: 'Fee Waivers', desc: 'App fee waiver paths to verify', icon: 'star', cat: 'practical', defaultSize: 'S', stub: true }, | |
| { type: 'reviewer-2', name: 'Reviewer 2 Simulator', desc: 'Paste a plan → harsh, honest critique', icon: 'gavel', cat: 'critic', defaultSize: 'M', critic: true }, | |
| { type: 'devils-advocate', name: 'Devil\'s Advocate', desc: 'Strongest counter-arguments to your plan', icon: 'scale', cat: 'critic', defaultSize: 'M', critic: true }, | |
| { type: 'scope-realism', name: 'Scope Realism Check', desc: 'Feasibility given hours/week and deadlines', icon: 'bullseye', cat: 'critic', defaultSize: 'M', critic: true }, | |
| { type: 'assumption', name: 'Assumption Excavator', desc: 'Names hidden assumptions in your search plan', icon: 'brain', cat: 'critic', defaultSize: 'M', critic: true, stub: true }, | |
| { type: 'whats-missing', name: '"What\'s Missing"', desc: 'Gap analysis on shortlist, aid, or essays', icon: 'alert', cat: 'critic', defaultSize: 'S', critic: true, stub: true }, | |
| { type: 'calibrator', name: 'Confidence Calibrator', desc: 'Challenges every "this always works" claim', icon: 'scale', cat: 'critic', defaultSize: 'S', critic: true, stub: true }, | |
| ]; | |
| export const CATEGORIES = [ | |
| { id: 'all', label: 'All' }, | |
| { id: 'research', label: 'Research' }, | |
| { id: 'writing', label: 'Writing' }, | |
| { id: 'project', label: 'Pipeline' }, | |
| { id: 'wellness', label: 'Wellness' }, | |
| { id: 'career', label: 'College' }, | |
| { id: 'data', label: 'Prep' }, | |
| { id: 'practical', label: 'Practical' }, | |
| { id: 'critic', label: 'Anti-yes-man', critic: true }, | |
| ]; | |
| export const DEFAULT_LAYOUT = []; | |
| const presetIds = (types) => types.map((t, i) => ({ id: `pre-${t.type}-${i}`, ...t })); | |
| export const WORKSPACE_PRESETS = [ | |
| { | |
| id: 'day1-soc', | |
| name: 'Search Starter', | |
| desc: 'Get oriented: resources, notes, deadlines, application board, pomodoro.', | |
| icon: 'sparkles', | |
| layout: presetIds([ | |
| { type: 'phd-resources', size: 'M' }, | |
| { type: 'notes', size: 'M' }, | |
| { type: 'deadlines', size: 'S' }, | |
| { type: 'pomodoro', size: 'S' }, | |
| { type: 'kanban', size: 'L' }, | |
| ]), | |
| }, | |
| { | |
| id: 'writing-sprint', | |
| name: 'Essay Sprint', | |
| desc: 'Polish materials: writing pad, outline, story bank, task board.', | |
| icon: 'pencil', | |
| layout: presetIds([ | |
| { type: 'writing', size: 'M' }, | |
| { type: 'outline', size: 'M' }, | |
| { type: 'pomodoro', size: 'S' }, | |
| { type: 'highlights', size: 'M' }, | |
| { type: 'notes', size: 'M' }, | |
| ]), | |
| }, | |
| { | |
| id: 'audit-prep', | |
| name: 'Deadline Week', | |
| desc: 'Deadlines, kanban, essay drafts, and budget for fees/travel.', | |
| icon: 'flag', | |
| layout: presetIds([ | |
| { type: 'deadlines', size: 'S' }, | |
| { type: 'kanban', size: 'L' }, | |
| { type: 'writing', size: 'M' }, | |
| { type: 'budget', size: 'S' }, | |
| { type: 'goals', size: 'M' }, | |
| ]), | |
| }, | |
| ]; | |
| // Seed shapes for widget state when a tile is first added to the canvas. | |
| export const EMPTY_STATE = { | |
| bibliography: { format: 'APA', entries: [] }, | |
| kanban: { | |
| cols: [ | |
| { id: 'todo', label: 'Wishlist' }, | |
| { id: 'doing', label: 'Researching' }, | |
| { id: 'stuck', label: 'Applied' }, | |
| { id: 'done', label: 'Decision' }, | |
| ], | |
| cards: [], | |
| }, | |
| pomodoro: { focus: 25, brk: 5, sessionsToday: 0 }, | |
| writing: { | |
| chapters: [{ id: 'c-default', name: 'Personal statement', target: 500, draft: '' }], | |
| activeChapterId: 'c-default', | |
| dailyTotals: {}, | |
| target: 500, | |
| }, | |
| deadlines: [], | |
| budget: { cap: 1000, items: [] }, | |
| notes: { items: [] }, | |
| habits: { items: [] }, | |
| goals: { items: [] }, | |
| 'meeting-log': { items: [] }, | |
| 'reading-queue': [], | |
| 'reviewer-2': { lastDraft: '', lastReview: null }, | |
| 'devils-advocate': { claim: '', counters: [] }, | |
| 'scope-realism': { | |
| target: '', | |
| score: 0, | |
| label: 'Set a target', | |
| factors: [], | |
| notes: '', | |
| }, | |
| outline: { items: [], expanded: {} }, | |
| highlights: { items: [] }, | |
| latex: { source: '', displayMode: true }, | |
| calendar: { viewMonth: new Date().toISOString().slice(0, 7) }, | |
| activity: {}, | |
| documenter: { entries: [], lastSummary: null }, | |
| 'phd-journey': { | |
| statuses: {}, | |
| notes: {}, | |
| }, | |
| 'phd-resources': { | |
| customLinks: [], | |
| }, | |
| }; | |
| export const DEMO_WIDGET_DATA = { | |
| 'phd-resources': { | |
| note: 'Start with College Scorecard, FAFSA.gov, and each school’s Net Price Calculator.', | |
| }, | |
| }; | |