From f9c4073d210e0e0ea17f768cecd14ab6691cf0c8 Mon Sep 17 00:00:00 2001 From: pironantoine <57062554-pironantoine@users.noreply.replit.com> Date: Fri, 3 Apr 2026 16:25:11 +0000 Subject: [PATCH] Add a democratic idea submission and AI synthesis platform Implement a full-stack application with a React frontend and a Python Flask backend. The backend integrates with an AI agent to filter political ideas for democratic values and synthesize accepted ideas into a collective voice. Includes API endpoints for idea submission, retrieval, and synthesis, along with database persistence. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 923ae0e3-a363-4db8-b04a-e8baca2a1330 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 31c5f770-9905-46af-a938-9d40ef3d4404 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/8af7d2ec-2cc3-4ece-8af3-9f071488d072/923ae0e3-a363-4db8-b04a-e8baca2a1330/Xzzm5QH Replit-Helium-Checkpoint-Created: true --- artifacts/api-server/package.json | 1 + artifacts/api-server/src/lib/ai-agent.ts | 93 +++ artifacts/api-server/src/routes/ideas.ts | 100 +++ artifacts/api-server/src/routes/index.ts | 4 + artifacts/api-server/src/routes/synthesis.ts | 25 + .../.replit-artifact/artifact.toml | 31 + artifacts/voix-du-peuple/components.json | 20 + artifacts/voix-du-peuple/index.html | 16 + artifacts/voix-du-peuple/package.json | 77 ++ artifacts/voix-du-peuple/public/favicon.svg | 3 + artifacts/voix-du-peuple/public/opengraph.jpg | Bin 0 -> 122422 bytes artifacts/voix-du-peuple/src/App.tsx | 62 ++ .../src/components/ui/accordion.tsx | 55 ++ .../src/components/ui/alert-dialog.tsx | 139 ++++ .../src/components/ui/alert.tsx | 59 ++ .../src/components/ui/aspect-ratio.tsx | 5 + .../src/components/ui/avatar.tsx | 50 ++ .../src/components/ui/badge.tsx | 43 ++ .../src/components/ui/breadcrumb.tsx | 115 +++ .../src/components/ui/button-group.tsx | 83 ++ .../src/components/ui/button.tsx | 65 ++ .../src/components/ui/calendar.tsx | 213 +++++ .../voix-du-peuple/src/components/ui/card.tsx | 76 ++ .../src/components/ui/carousel.tsx | 260 +++++++ .../src/components/ui/chart.tsx | 367 +++++++++ .../src/components/ui/checkbox.tsx | 28 + .../src/components/ui/collapsible.tsx | 11 + .../src/components/ui/command.tsx | 153 ++++ .../src/components/ui/context-menu.tsx | 198 +++++ .../src/components/ui/dialog.tsx | 120 +++ .../src/components/ui/drawer.tsx | 116 +++ .../src/components/ui/dropdown-menu.tsx | 201 +++++ .../src/components/ui/empty.tsx | 104 +++ .../src/components/ui/field.tsx | 244 ++++++ .../voix-du-peuple/src/components/ui/form.tsx | 176 +++++ .../src/components/ui/hover-card.tsx | 27 + .../src/components/ui/input-group.tsx | 168 ++++ .../src/components/ui/input-otp.tsx | 69 ++ .../src/components/ui/input.tsx | 22 + .../voix-du-peuple/src/components/ui/item.tsx | 193 +++++ .../voix-du-peuple/src/components/ui/kbd.tsx | 28 + .../src/components/ui/label.tsx | 26 + .../src/components/ui/menubar.tsx | 254 ++++++ .../src/components/ui/navigation-menu.tsx | 128 +++ .../src/components/ui/pagination.tsx | 117 +++ .../src/components/ui/popover.tsx | 31 + .../src/components/ui/progress.tsx | 28 + .../src/components/ui/radio-group.tsx | 42 + .../src/components/ui/resizable.tsx | 45 ++ .../src/components/ui/scroll-area.tsx | 46 ++ .../src/components/ui/select.tsx | 159 ++++ .../src/components/ui/separator.tsx | 29 + .../src/components/ui/sheet.tsx | 140 ++++ .../src/components/ui/sidebar.tsx | 727 ++++++++++++++++++ .../src/components/ui/skeleton.tsx | 15 + .../src/components/ui/slider.tsx | 26 + .../src/components/ui/sonner.tsx | 31 + .../src/components/ui/spinner.tsx | 16 + .../src/components/ui/switch.tsx | 27 + .../src/components/ui/table.tsx | 120 +++ .../voix-du-peuple/src/components/ui/tabs.tsx | 53 ++ .../src/components/ui/textarea.tsx | 22 + .../src/components/ui/toast.tsx | 127 +++ .../src/components/ui/toaster.tsx | 33 + .../src/components/ui/toggle-group.tsx | 61 ++ .../src/components/ui/toggle.tsx | 43 ++ .../src/components/ui/tooltip.tsx | 32 + .../voix-du-peuple/src/hooks/use-mobile.tsx | 19 + .../voix-du-peuple/src/hooks/use-toast.ts | 191 +++++ artifacts/voix-du-peuple/src/index.css | 305 ++++++++ artifacts/voix-du-peuple/src/lib/utils.ts | 6 + artifacts/voix-du-peuple/src/main.tsx | 5 + artifacts/voix-du-peuple/src/pages/about.tsx | 69 ++ artifacts/voix-du-peuple/src/pages/home.tsx | 278 +++++++ .../voix-du-peuple/src/pages/not-found.tsx | 21 + artifacts/voix-du-peuple/tsconfig.json | 22 + artifacts/voix-du-peuple/vite.config.ts | 75 ++ .../src/generated/api.schemas.ts | 50 ++ lib/api-client-react/src/generated/api.ts | 322 +++++++- lib/api-spec/openapi.yaml | 169 ++++ lib/api-zod/src/generated/api.ts | 56 ++ .../src/generated/types/errorResponse.ts | 12 + lib/api-zod/src/generated/types/idea.ts | 16 + lib/api-zod/src/generated/types/ideaResult.ts | 16 + lib/api-zod/src/generated/types/ideaStats.ts | 13 + lib/api-zod/src/generated/types/index.ts | 6 + .../src/generated/types/submitIdeaBody.ts | 21 + lib/api-zod/src/generated/types/synthesis.ts | 15 + lib/db/src/schema/ideas.ts | 16 + lib/db/src/schema/index.ts | 22 +- lib/db/src/schema/synthesis.ts | 14 + pnpm-lock.yaml | 285 +++++++ 92 files changed, 8199 insertions(+), 23 deletions(-) create mode 100644 artifacts/api-server/src/lib/ai-agent.ts create mode 100644 artifacts/api-server/src/routes/ideas.ts create mode 100644 artifacts/api-server/src/routes/synthesis.ts create mode 100644 artifacts/voix-du-peuple/.replit-artifact/artifact.toml create mode 100644 artifacts/voix-du-peuple/components.json create mode 100644 artifacts/voix-du-peuple/index.html create mode 100644 artifacts/voix-du-peuple/package.json create mode 100644 artifacts/voix-du-peuple/public/favicon.svg create mode 100644 artifacts/voix-du-peuple/public/opengraph.jpg create mode 100644 artifacts/voix-du-peuple/src/App.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/accordion.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/alert-dialog.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/alert.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/aspect-ratio.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/avatar.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/badge.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/breadcrumb.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/button-group.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/button.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/calendar.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/card.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/carousel.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/chart.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/checkbox.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/collapsible.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/command.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/context-menu.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/dialog.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/drawer.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/dropdown-menu.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/empty.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/field.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/form.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/hover-card.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/input-group.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/input-otp.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/input.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/item.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/kbd.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/label.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/menubar.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/navigation-menu.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/pagination.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/popover.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/progress.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/radio-group.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/resizable.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/scroll-area.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/select.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/separator.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/sheet.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/sidebar.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/skeleton.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/slider.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/sonner.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/spinner.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/switch.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/table.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/tabs.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/textarea.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/toast.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/toaster.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/toggle-group.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/toggle.tsx create mode 100644 artifacts/voix-du-peuple/src/components/ui/tooltip.tsx create mode 100644 artifacts/voix-du-peuple/src/hooks/use-mobile.tsx create mode 100644 artifacts/voix-du-peuple/src/hooks/use-toast.ts create mode 100644 artifacts/voix-du-peuple/src/index.css create mode 100644 artifacts/voix-du-peuple/src/lib/utils.ts create mode 100644 artifacts/voix-du-peuple/src/main.tsx create mode 100644 artifacts/voix-du-peuple/src/pages/about.tsx create mode 100644 artifacts/voix-du-peuple/src/pages/home.tsx create mode 100644 artifacts/voix-du-peuple/src/pages/not-found.tsx create mode 100644 artifacts/voix-du-peuple/tsconfig.json create mode 100644 artifacts/voix-du-peuple/vite.config.ts create mode 100644 lib/api-zod/src/generated/types/errorResponse.ts create mode 100644 lib/api-zod/src/generated/types/idea.ts create mode 100644 lib/api-zod/src/generated/types/ideaResult.ts create mode 100644 lib/api-zod/src/generated/types/ideaStats.ts create mode 100644 lib/api-zod/src/generated/types/submitIdeaBody.ts create mode 100644 lib/api-zod/src/generated/types/synthesis.ts create mode 100644 lib/db/src/schema/ideas.ts create mode 100644 lib/db/src/schema/synthesis.ts diff --git a/artifacts/api-server/package.json b/artifacts/api-server/package.json index 1c15a36..1aa59ea 100644 --- a/artifacts/api-server/package.json +++ b/artifacts/api-server/package.json @@ -16,6 +16,7 @@ "cors": "^2", "drizzle-orm": "catalog:", "express": "^5", + "openai": "^6.33.0", "pino": "^9", "pino-http": "^10" }, diff --git a/artifacts/api-server/src/lib/ai-agent.ts b/artifacts/api-server/src/lib/ai-agent.ts new file mode 100644 index 0000000..980fcf1 --- /dev/null +++ b/artifacts/api-server/src/lib/ai-agent.ts @@ -0,0 +1,93 @@ +import OpenAI from "openai"; +import { logger } from "./logger"; + +const openai = new OpenAI({ + baseURL: process.env.AI_INTEGRATIONS_OPENAI_BASE_URL, + apiKey: process.env.AI_INTEGRATIONS_OPENAI_API_KEY, +}); + +export interface FilterResult { + accepted: boolean; + reason?: string; +} + +export async function filterIdea(content: string): Promise { + const systemPrompt = `Tu es un agent de filtrage éthique pour une plateforme démocratique citoyenne. +Ta mission : analyser les idées politiques soumises et décider si elles respectent les valeurs démocratiques. + +Critères d'ACCEPTATION : +- L'idée promeut les droits fondamentaux, la liberté, l'égalité, la justice sociale +- L'idée propose des améliorations concrètes pour la société +- L'idée est constructive, même si critique du gouvernement ou des institutions +- L'idée débat de politiques publiques de manière civile + +Critères de REJET : +- Contenu fasciste, totalitaire ou autoritaire +- Appels à la haine, discrimination ou violence +- Négation de droits fondamentaux pour des groupes de personnes +- Propagande pour des idéologies qui détruisent la démocratie +- Contenu raciste, sexiste, homophobe ou xénophobe +- Appels au renversement violent de la démocratie + +Réponds UNIQUEMENT avec un JSON valide, sans markdown, dans ce format exact : +{"accepted": true} ou {"accepted": false, "reason": "explication courte en français"}`; + + try { + const response = await openai.chat.completions.create({ + model: "gpt-5-mini", + max_completion_tokens: 200, + messages: [ + { role: "system", content: systemPrompt }, + { role: "user", content: `Idée à analyser : "${content}"` }, + ], + }); + + const raw = response.choices[0]?.message?.content ?? '{"accepted": false, "reason": "Erreur d\'analyse"}'; + const result = JSON.parse(raw) as FilterResult; + return result; + } catch (err) { + logger.error({ err }, "Error filtering idea"); + return { accepted: false, reason: "Erreur interne de filtrage" }; + } +} + +export async function synthesizeIdeas(ideas: string[]): Promise { + if (ideas.length === 0) { + return "Aucune idée n'a encore été soumise. Soyez le premier à partager votre vision pour une société meilleure."; + } + + const systemPrompt = `Tu es un synthétiseur démocratique. Tu reçois une liste d'idées politiques citoyennes filtrées et validées. +Ta mission : créer UN texte synthétique, éloquent et inspirant qui capture l'essence collective de ces idées. + +Ce texte est "La Voix du Peuple" — il doit : +- Être écrit à la première personne du pluriel (nous, notre, nos) +- Capturer les thèmes communs et les aspirations partagées +- Être poétique mais concret, inspirant mais ancré dans la réalité +- Faire environ 3-5 paragraphes +- Commencer par "Nous, le peuple, ..." +- Respecter la diversité des idées sans en ignorer aucune +- Être rédigé en français + +NE PAS mentionner les idées individuellement, mais les fondre dans une vision collective cohérente.`; + + const ideasText = ideas.map((idea, i) => `${i + 1}. ${idea}`).join("\n"); + + try { + const response = await openai.chat.completions.create({ + model: "gpt-5.2", + max_completion_tokens: 1000, + messages: [ + { role: "system", content: systemPrompt }, + { + role: "user", + content: `Voici les idées citoyennes à synthétiser :\n\n${ideasText}\n\nRédige "La Voix du Peuple".`, + }, + ], + }); + + return response.choices[0]?.message?.content ?? "Synthèse en cours..."; + } catch (err) { + logger.error({ err }, "Error synthesizing ideas"); + return "La synthèse est temporairement indisponible. Vos idées ont été enregistrées."; + } +} diff --git a/artifacts/api-server/src/routes/ideas.ts b/artifacts/api-server/src/routes/ideas.ts new file mode 100644 index 0000000..0607f42 --- /dev/null +++ b/artifacts/api-server/src/routes/ideas.ts @@ -0,0 +1,100 @@ +import { Router, type IRouter } from "express"; +import { eq, count, and } from "drizzle-orm"; +import { db, ideasTable, synthesisTable } from "@workspace/db"; +import { SubmitIdeaBody } from "@workspace/api-zod"; +import { filterIdea, synthesizeIdeas } from "../lib/ai-agent"; +import { logger } from "../lib/logger"; + +const router: IRouter = Router(); + +router.get("/ideas", async (_req, res): Promise => { + const ideas = await db + .select() + .from(ideasTable) + .where(eq(ideasTable.accepted, true)) + .orderBy(ideasTable.createdAt); + res.json(ideas); +}); + +router.get("/ideas/stats", async (_req, res): Promise => { + const [totalRow] = await db.select({ value: count() }).from(ideasTable); + const [acceptedRow] = await db + .select({ value: count() }) + .from(ideasTable) + .where(eq(ideasTable.accepted, true)); + const [rejectedRow] = await db + .select({ value: count() }) + .from(ideasTable) + .where(eq(ideasTable.accepted, false)); + + res.json({ + total: Number(totalRow?.value ?? 0), + accepted: Number(acceptedRow?.value ?? 0), + rejected: Number(rejectedRow?.value ?? 0), + }); +}); + +router.post("/ideas", async (req, res): Promise => { + const parsed = SubmitIdeaBody.safeParse(req.body); + if (!parsed.success) { + res.status(400).json({ error: "validation_error", message: parsed.error.message }); + return; + } + + const { content, author } = parsed.data; + + req.log.info({ contentLength: content.length }, "Filtering new idea"); + + const filterResult = await filterIdea(content); + + const [idea] = await db + .insert(ideasTable) + .values({ + content, + author: author ?? null, + accepted: filterResult.accepted, + rejectionReason: filterResult.reason ?? null, + }) + .returning(); + + if (filterResult.accepted) { + triggerSynthesisUpdate().catch((err) => { + logger.error({ err }, "Background synthesis update failed"); + }); + } + + res.status(201).json({ + id: idea!.id, + accepted: filterResult.accepted, + reason: filterResult.reason, + idea: idea, + }); +}); + +async function triggerSynthesisUpdate(): Promise { + const ideas = await db + .select({ content: ideasTable.content }) + .from(ideasTable) + .where(eq(ideasTable.accepted, true)) + .orderBy(ideasTable.createdAt); + + const ideaTexts = ideas.map((i) => i.content); + const synthesizedText = await synthesizeIdeas(ideaTexts); + + const existing = await db.select().from(synthesisTable).limit(1); + + if (existing.length > 0) { + await db + .update(synthesisTable) + .set({ text: synthesizedText, ideaCount: ideaTexts.length }); + } else { + await db.insert(synthesisTable).values({ + text: synthesizedText, + ideaCount: ideaTexts.length, + }); + } + + logger.info({ ideaCount: ideaTexts.length }, "Synthesis updated"); +} + +export default router; diff --git a/artifacts/api-server/src/routes/index.ts b/artifacts/api-server/src/routes/index.ts index 5a1f77a..c7cc355 100644 --- a/artifacts/api-server/src/routes/index.ts +++ b/artifacts/api-server/src/routes/index.ts @@ -1,8 +1,12 @@ import { Router, type IRouter } from "express"; import healthRouter from "./health"; +import ideasRouter from "./ideas"; +import synthesisRouter from "./synthesis"; const router: IRouter = Router(); router.use(healthRouter); +router.use(ideasRouter); +router.use(synthesisRouter); export default router; diff --git a/artifacts/api-server/src/routes/synthesis.ts b/artifacts/api-server/src/routes/synthesis.ts new file mode 100644 index 0000000..369ac5a --- /dev/null +++ b/artifacts/api-server/src/routes/synthesis.ts @@ -0,0 +1,25 @@ +import { Router, type IRouter } from "express"; +import { db, synthesisTable } from "@workspace/db"; + +const router: IRouter = Router(); + +router.get("/synthesis", async (_req, res): Promise => { + const [synthesis] = await db.select().from(synthesisTable).limit(1); + + if (!synthesis) { + res.json({ + text: "Aucune idée n'a encore été soumise. Soyez le premier à partager votre vision pour une société meilleure.", + ideaCount: 0, + updatedAt: null, + }); + return; + } + + res.json({ + text: synthesis.text, + ideaCount: synthesis.ideaCount, + updatedAt: synthesis.updatedAt, + }); +}); + +export default router; diff --git a/artifacts/voix-du-peuple/.replit-artifact/artifact.toml b/artifacts/voix-du-peuple/.replit-artifact/artifact.toml new file mode 100644 index 0000000..e17e1e6 --- /dev/null +++ b/artifacts/voix-du-peuple/.replit-artifact/artifact.toml @@ -0,0 +1,31 @@ +kind = "web" +previewPath = "/" +title = "La Voix du Peuple" +version = "1.0.0" +id = "artifacts/voix-du-peuple" +router = "path" + +[[integratedSkills]] +name = "react-vite" +version = "1.0.0" + +[[services]] +name = "web" +paths = [ "/" ] +localPort = 20108 + +[services.development] +run = "pnpm --filter @workspace/voix-du-peuple run dev" + +[services.production] +build = [ "pnpm", "--filter", "@workspace/voix-du-peuple", "run", "build" ] +publicDir = "artifacts/voix-du-peuple/dist/public" +serve = "static" + +[[services.production.rewrites]] +from = "/*" +to = "/index.html" + +[services.env] +PORT = "20108" +BASE_PATH = "/" diff --git a/artifacts/voix-du-peuple/components.json b/artifacts/voix-du-peuple/components.json new file mode 100644 index 0000000..3ff62cf --- /dev/null +++ b/artifacts/voix-du-peuple/components.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "new-york", + "rsc": false, + "tsx": true, + "tailwind": { + "config": "", + "css": "src/index.css", + "baseColor": "neutral", + "cssVariables": true, + "prefix": "" + }, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + } +} \ No newline at end of file diff --git a/artifacts/voix-du-peuple/index.html b/artifacts/voix-du-peuple/index.html new file mode 100644 index 0000000..828bd92 --- /dev/null +++ b/artifacts/voix-du-peuple/index.html @@ -0,0 +1,16 @@ + + + + + + La Voix du Peuple + + + + + + +
+ + + diff --git a/artifacts/voix-du-peuple/package.json b/artifacts/voix-du-peuple/package.json new file mode 100644 index 0000000..0c32cf4 --- /dev/null +++ b/artifacts/voix-du-peuple/package.json @@ -0,0 +1,77 @@ +{ + "name": "@workspace/voix-du-peuple", + "version": "0.0.0", + "private": true, + "type": "module", + "scripts": { + "dev": "vite --config vite.config.ts --host 0.0.0.0", + "build": "vite build --config vite.config.ts", + "serve": "vite preview --config vite.config.ts --host 0.0.0.0", + "typecheck": "tsc -p tsconfig.json --noEmit" + }, + "devDependencies": { + "@hookform/resolvers": "^3.10.0", + "@radix-ui/react-accordion": "^1.2.4", + "@radix-ui/react-alert-dialog": "^1.1.7", + "@radix-ui/react-aspect-ratio": "^1.1.3", + "@radix-ui/react-avatar": "^1.1.4", + "@radix-ui/react-checkbox": "^1.1.5", + "@radix-ui/react-collapsible": "^1.1.4", + "@radix-ui/react-context-menu": "^2.2.7", + "@radix-ui/react-dialog": "^1.1.7", + "@radix-ui/react-dropdown-menu": "^2.1.7", + "@radix-ui/react-hover-card": "^1.1.7", + "@radix-ui/react-label": "^2.1.3", + "@radix-ui/react-menubar": "^1.1.7", + "@radix-ui/react-navigation-menu": "^1.2.6", + "@radix-ui/react-popover": "^1.1.7", + "@radix-ui/react-progress": "^1.1.3", + "@radix-ui/react-radio-group": "^1.2.4", + "@radix-ui/react-scroll-area": "^1.2.4", + "@radix-ui/react-select": "^2.1.7", + "@radix-ui/react-separator": "^1.1.3", + "@radix-ui/react-slider": "^1.2.4", + "@radix-ui/react-slot": "^1.2.0", + "@radix-ui/react-switch": "^1.1.4", + "@radix-ui/react-tabs": "^1.1.4", + "@radix-ui/react-toast": "^1.2.7", + "@radix-ui/react-toggle": "^1.1.3", + "@radix-ui/react-toggle-group": "^1.1.3", + "@radix-ui/react-tooltip": "^1.2.0", + "@replit/vite-plugin-cartographer": "catalog:", + "@replit/vite-plugin-dev-banner": "catalog:", + "@replit/vite-plugin-runtime-error-modal": "catalog:", + "@tailwindcss/typography": "^0.5.15", + "@tailwindcss/vite": "catalog:", + "@tanstack/react-query": "catalog:", + "@types/node": "catalog:", + "@types/react": "catalog:", + "@types/react-dom": "catalog:", + "@vitejs/plugin-react": "catalog:", + "@workspace/api-client-react": "workspace:*", + "class-variance-authority": "catalog:", + "clsx": "catalog:", + "cmdk": "^1.1.1", + "date-fns": "^3.6.0", + "embla-carousel-react": "^8.6.0", + "framer-motion": "catalog:", + "input-otp": "^1.4.2", + "lucide-react": "catalog:", + "next-themes": "^0.4.6", + "react": "catalog:", + "react-day-picker": "^9.11.1", + "react-dom": "catalog:", + "react-hook-form": "^7.55.0", + "react-icons": "^5.4.0", + "react-resizable-panels": "^2.1.7", + "recharts": "^2.15.2", + "sonner": "^2.0.7", + "tailwind-merge": "catalog:", + "tailwindcss": "catalog:", + "tw-animate-css": "^1.4.0", + "vaul": "^1.1.2", + "vite": "catalog:", + "wouter": "^3.3.5", + "zod": "catalog:" + } +} diff --git a/artifacts/voix-du-peuple/public/favicon.svg b/artifacts/voix-du-peuple/public/favicon.svg new file mode 100644 index 0000000..4373d3c --- /dev/null +++ b/artifacts/voix-du-peuple/public/favicon.svg @@ -0,0 +1,3 @@ + + + diff --git a/artifacts/voix-du-peuple/public/opengraph.jpg b/artifacts/voix-du-peuple/public/opengraph.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bce6793327b6308f70af6cdffaec54474701fcd0 GIT binary patch literal 122422 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%0AmSTI?gBRrPV&*$Hvvho@sl# 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 L8yl +
+ + La Voix du Peuple + + +
+ + ); +} + +function Router() { + return ( +
+ +
+ + + + + +
+
+ ); +} + +function App() { + return ( + + + + + + + + + ); +} + +export default App; diff --git a/artifacts/voix-du-peuple/src/components/ui/accordion.tsx b/artifacts/voix-du-peuple/src/components/ui/accordion.tsx new file mode 100644 index 0000000..e1797c9 --- /dev/null +++ b/artifacts/voix-du-peuple/src/components/ui/accordion.tsx @@ -0,0 +1,55 @@ +import * as React from "react" +import * as AccordionPrimitive from "@radix-ui/react-accordion" +import { ChevronDown } from "lucide-react" + +import { cn } from "@/lib/utils" + +const Accordion = AccordionPrimitive.Root + +const AccordionItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +AccordionItem.displayName = "AccordionItem" + +const AccordionTrigger = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + svg]:rotate-180", + className + )} + {...props} + > + {children} + + + +)) +AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName + +const AccordionContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + +
{children}
+
+)) +AccordionContent.displayName = AccordionPrimitive.Content.displayName + +export { Accordion, AccordionItem, AccordionTrigger, AccordionContent } diff --git a/artifacts/voix-du-peuple/src/components/ui/alert-dialog.tsx b/artifacts/voix-du-peuple/src/components/ui/alert-dialog.tsx new file mode 100644 index 0000000..fa2b442 --- /dev/null +++ b/artifacts/voix-du-peuple/src/components/ui/alert-dialog.tsx @@ -0,0 +1,139 @@ +import * as React from "react" +import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog" + +import { cn } from "@/lib/utils" +import { buttonVariants } from "@/components/ui/button" + +const AlertDialog = AlertDialogPrimitive.Root + +const AlertDialogTrigger = AlertDialogPrimitive.Trigger + +const AlertDialogPortal = AlertDialogPrimitive.Portal + +const AlertDialogOverlay = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName + +const AlertDialogContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + + + + +)) +AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName + +const AlertDialogHeader = ({ + className, + ...props +}: React.HTMLAttributes) => ( +
+) +AlertDialogHeader.displayName = "AlertDialogHeader" + +const AlertDialogFooter = ({ + className, + ...props +}: React.HTMLAttributes) => ( +
+) +AlertDialogFooter.displayName = "AlertDialogFooter" + +const AlertDialogTitle = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName + +const AlertDialogDescription = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +AlertDialogDescription.displayName = + AlertDialogPrimitive.Description.displayName + +const AlertDialogAction = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName + +const AlertDialogCancel = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName + +export { + AlertDialog, + AlertDialogPortal, + AlertDialogOverlay, + AlertDialogTrigger, + AlertDialogContent, + AlertDialogHeader, + AlertDialogFooter, + AlertDialogTitle, + AlertDialogDescription, + AlertDialogAction, + AlertDialogCancel, +} diff --git a/artifacts/voix-du-peuple/src/components/ui/alert.tsx b/artifacts/voix-du-peuple/src/components/ui/alert.tsx new file mode 100644 index 0000000..5afd41d --- /dev/null +++ b/artifacts/voix-du-peuple/src/components/ui/alert.tsx @@ -0,0 +1,59 @@ +import * as React from "react" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" + +const alertVariants = cva( + "relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7", + { + variants: { + variant: { + default: "bg-background text-foreground", + destructive: + "border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive", + }, + }, + defaultVariants: { + variant: "default", + }, + } +) + +const Alert = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes & VariantProps +>(({ className, variant, ...props }, ref) => ( +
+)) +Alert.displayName = "Alert" + +const AlertTitle = React.forwardRef< + HTMLParagraphElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +AlertTitle.displayName = "AlertTitle" + +const AlertDescription = React.forwardRef< + HTMLParagraphElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +AlertDescription.displayName = "AlertDescription" + +export { Alert, AlertTitle, AlertDescription } diff --git a/artifacts/voix-du-peuple/src/components/ui/aspect-ratio.tsx b/artifacts/voix-du-peuple/src/components/ui/aspect-ratio.tsx new file mode 100644 index 0000000..c4abbf3 --- /dev/null +++ b/artifacts/voix-du-peuple/src/components/ui/aspect-ratio.tsx @@ -0,0 +1,5 @@ +import * as AspectRatioPrimitive from "@radix-ui/react-aspect-ratio" + +const AspectRatio = AspectRatioPrimitive.Root + +export { AspectRatio } diff --git a/artifacts/voix-du-peuple/src/components/ui/avatar.tsx b/artifacts/voix-du-peuple/src/components/ui/avatar.tsx new file mode 100644 index 0000000..51e507b --- /dev/null +++ b/artifacts/voix-du-peuple/src/components/ui/avatar.tsx @@ -0,0 +1,50 @@ +"use client" + +import * as React from "react" +import * as AvatarPrimitive from "@radix-ui/react-avatar" + +import { cn } from "@/lib/utils" + +const Avatar = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +Avatar.displayName = AvatarPrimitive.Root.displayName + +const AvatarImage = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +AvatarImage.displayName = AvatarPrimitive.Image.displayName + +const AvatarFallback = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName + +export { Avatar, AvatarImage, AvatarFallback } diff --git a/artifacts/voix-du-peuple/src/components/ui/badge.tsx b/artifacts/voix-du-peuple/src/components/ui/badge.tsx new file mode 100644 index 0000000..3f03665 --- /dev/null +++ b/artifacts/voix-du-peuple/src/components/ui/badge.tsx @@ -0,0 +1,43 @@ +import * as React from "react" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" + +const badgeVariants = cva( + // @replit + // Whitespace-nowrap: Badges should never wrap. + "whitespace-nowrap inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2" + + " hover-elevate ", + { + variants: { + variant: { + default: + // @replit shadow-xs instead of shadow, no hover because we use hover-elevate + "border-transparent bg-primary text-primary-foreground shadow-xs", + secondary: + // @replit no hover because we use hover-elevate + "border-transparent bg-secondary text-secondary-foreground", + destructive: + // @replit shadow-xs instead of shadow, no hover because we use hover-elevate + "border-transparent bg-destructive text-destructive-foreground shadow-xs", + // @replit shadow-xs" - use badge outline variable + outline: "text-foreground border [border-color:var(--badge-outline)]", + }, + }, + defaultVariants: { + variant: "default", + }, + } +) + +export interface BadgeProps + extends React.HTMLAttributes, + VariantProps {} + +function Badge({ className, variant, ...props }: BadgeProps) { + return ( +
+ ) +} + +export { Badge, badgeVariants } diff --git a/artifacts/voix-du-peuple/src/components/ui/breadcrumb.tsx b/artifacts/voix-du-peuple/src/components/ui/breadcrumb.tsx new file mode 100644 index 0000000..60e6c96 --- /dev/null +++ b/artifacts/voix-du-peuple/src/components/ui/breadcrumb.tsx @@ -0,0 +1,115 @@ +import * as React from "react" +import { Slot } from "@radix-ui/react-slot" +import { ChevronRight, MoreHorizontal } from "lucide-react" + +import { cn } from "@/lib/utils" + +const Breadcrumb = React.forwardRef< + HTMLElement, + React.ComponentPropsWithoutRef<"nav"> & { + separator?: React.ReactNode + } +>(({ ...props }, ref) =>