117 lines
4.5 KiB
TypeScript
117 lines
4.5 KiB
TypeScript
/**
|
|
* rNotes demo page — server-rendered HTML body.
|
|
*
|
|
* Embeds the full <folk-notes-app space="demo"> component for
|
|
* real interactivity (notebook browsing, note editing, search, tags)
|
|
* plus showcase sections explaining the rNotes vision.
|
|
*/
|
|
|
|
const FEATURES = [
|
|
{
|
|
icon: "\u{1F3A4}",
|
|
title: "Live Transcription",
|
|
desc: "Record and transcribe in real time. Stream audio via WebSocket or transcribe offline with Parakeet.js.",
|
|
},
|
|
{
|
|
icon: "\u270F\uFE0F",
|
|
title: "Rich Editing",
|
|
desc: "Headings, lists, code blocks, highlights, images, and file attachments in every note.",
|
|
},
|
|
{
|
|
icon: "\u{1F4D3}",
|
|
title: "Notebooks",
|
|
desc: "Organize notes into notebooks with sections. Nest as deep as you need for any project structure.",
|
|
},
|
|
{
|
|
icon: "\u{1F3F7}\uFE0F",
|
|
title: "Flexible Tags",
|
|
desc: "Cross-cutting tags let you find notes across all notebooks instantly. Filter and search by any combination.",
|
|
},
|
|
];
|
|
|
|
const INTEGRATIONS = [
|
|
{ icon: "\u{1F4C5}", name: "rCal", desc: "Link notes to calendar events. Meeting agendas, daily journals, and retrospective logs." },
|
|
{ icon: "\u{1F5FA}", name: "rMaps", desc: "Pin location-aware notes to places on the map. Field notes, venue reviews, site reports." },
|
|
{ icon: "\u{1F465}", name: "rNetwork", desc: "Collaborate on notes across your network with real-time Automerge sync." },
|
|
{ icon: "\u{1F3AC}", name: "rTube", desc: "Attach meeting notes, transcripts, and timestamps to video recordings." },
|
|
{ icon: "\u{1F5F3}", name: "rVote", desc: "Link governance proposals to supporting research notes and discussion threads." },
|
|
{ icon: "\u2615\uFE0F", name: "rSpace", desc: "Pin any note to the collaborative canvas. Each space has its own knowledge base." },
|
|
];
|
|
|
|
export function renderDemo(): string {
|
|
return `
|
|
<div class="rd-root" style="--rd-accent-from:#f59e0b; --rd-accent-to:#fb923c;">
|
|
|
|
<!-- Hero -->
|
|
<section class="rd-hero">
|
|
<div style="display:inline-block;padding:0.375rem 1rem;background:rgba(245,158,11,0.1);border:1px solid rgba(245,158,11,0.2);border-radius:9999px;font-size:0.875rem;color:#fbbf24;font-weight:500;margin-bottom:1.5rem;">
|
|
Collaborative Knowledge Base
|
|
</div>
|
|
<h1>rNotes Demo</h1>
|
|
<p class="rd-subtitle">Notebooks with rich-text notes, voice transcription, and real-time collaboration</p>
|
|
<div class="rd-meta">
|
|
<span>\u{1F3A4} Transcription</span>
|
|
<span style="color:#475569">|</span>
|
|
<span>\u270F\uFE0F Rich Editing</span>
|
|
<span style="color:#475569">|</span>
|
|
<span>\u{1F4D3} Notebooks</span>
|
|
<span style="color:#475569">|</span>
|
|
<span>\u{1F3F7}\uFE0F Tags & Search</span>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Interactive Notes App -->
|
|
<section class="rd-section rd-section--narrow">
|
|
<div class="rd-card" style="padding:0;overflow:hidden;">
|
|
<folk-notes-app space="demo"></folk-notes-app>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Core Concepts -->
|
|
<section class="rd-section">
|
|
<div class="rd-grid rd-grid--2">
|
|
${FEATURES.map(
|
|
(f) => `
|
|
<div class="rd-card" style="padding:1.5rem;">
|
|
<div style="font-size:1.75rem;margin-bottom:0.75rem;">${f.icon}</div>
|
|
<h3 style="font-size:1rem;font-weight:600;color:#e2e8f0;margin:0 0 0.5rem;">${f.title}</h3>
|
|
<p style="font-size:0.875rem;color:#94a3b8;margin:0;line-height:1.5;">${f.desc}</p>
|
|
</div>`,
|
|
).join("")}
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Ecosystem Integrations -->
|
|
<section class="rd-section">
|
|
<h2 style="text-align:center;font-size:1.25rem;font-weight:700;color:#f1f5f9;margin:0 0 1.5rem;">
|
|
r* Ecosystem Integrations
|
|
</h2>
|
|
<div class="rd-grid rd-grid--3">
|
|
${INTEGRATIONS.map(
|
|
(i) => `
|
|
<div class="rd-card" style="padding:1.25rem;">
|
|
<div style="font-size:1.5rem;margin-bottom:0.5rem;">${i.icon}</div>
|
|
<h3 style="font-size:0.875rem;font-weight:600;color:#e2e8f0;margin:0 0 0.375rem;">${i.name}</h3>
|
|
<p style="font-size:0.8rem;color:#94a3b8;margin:0;line-height:1.4;">${i.desc}</p>
|
|
</div>`,
|
|
).join("")}
|
|
</div>
|
|
</section>
|
|
|
|
<!-- CTA -->
|
|
<section class="rd-section rd-section--narrow">
|
|
<div class="rd-cta">
|
|
<h2>Ready to capture everything?</h2>
|
|
<p>
|
|
rNotes gives your team a shared knowledge base with rich editing, flexible organization,
|
|
and deep integration with the r* ecosystem — all on a collaborative canvas.
|
|
</p>
|
|
<a href="/create-space" style="background:linear-gradient(135deg,#f59e0b,#f97316);box-shadow:0 8px 24px rgba(245,158,11,0.25);">
|
|
Start Taking Notes
|
|
</a>
|
|
</div>
|
|
</section>
|
|
|
|
</div>`;
|
|
}
|