diff --git a/modules/rchoices/components/folk-choices-dashboard.ts b/modules/rchoices/components/folk-choices-dashboard.ts index bc6b340..c6cb419 100644 --- a/modules/rchoices/components/folk-choices-dashboard.ts +++ b/modules/rchoices/components/folk-choices-dashboard.ts @@ -31,7 +31,7 @@ class FolkChoicesDashboard extends HTMLElement { private space: string; /* Demo state */ - private demoTab: "spider" | "ranking" | "voting" = "spider"; + private demoTab: "spider" | "ranking" | "voting" | "crowdsurf" = "spider"; private hoveredPerson: string | null = null; private rankItems: { id: number; name: string; emoji: string }[] = []; private rankDragging: number | null = null; @@ -503,15 +503,17 @@ class FolkChoicesDashboard extends HTMLElement { } private renderDemo() { - const tabs: { key: "spider" | "ranking" | "voting"; label: string; icon: string }[] = [ + const tabs: { key: "spider" | "ranking" | "voting" | "crowdsurf"; label: string; icon: string }[] = [ { key: "spider", label: "Spider Chart", icon: "🕸" }, { key: "ranking", label: "Ranking", icon: "📊" }, { key: "voting", label: "Live Voting", icon: "☑" }, + { key: "crowdsurf", label: "CrowdSurf", icon: "🏄" }, ]; let content = ""; if (this.demoTab === "spider") content = this.renderSpider(); else if (this.demoTab === "ranking") content = this.renderRanking(); + else if (this.demoTab === "crowdsurf") content = this.renderCrowdSurf(); else content = this.renderVoting(); this.shadow.innerHTML = ` @@ -725,6 +727,17 @@ class FolkChoicesDashboard extends HTMLElement { `; } + private renderCrowdSurf(): string { + return `
+ Swipe-based community coordination. Propose activities, set commitment thresholds, and watch them trigger when enough people join. +
+ Open CrowdSurf +