1260 lines
107 KiB
JavaScript
1260 lines
107 KiB
JavaScript
module.exports = [
|
|
"[externals]/next/dist/server/app-render/action-async-storage.external.js [external] (next/dist/server/app-render/action-async-storage.external.js, cjs)", ((__turbopack_context__, module, exports) => {
|
|
|
|
const mod = __turbopack_context__.x("next/dist/server/app-render/action-async-storage.external.js", () => require("next/dist/server/app-render/action-async-storage.external.js"));
|
|
|
|
module.exports = mod;
|
|
}),
|
|
"[externals]/next/dist/server/app-render/work-unit-async-storage.external.js [external] (next/dist/server/app-render/work-unit-async-storage.external.js, cjs)", ((__turbopack_context__, module, exports) => {
|
|
|
|
const mod = __turbopack_context__.x("next/dist/server/app-render/work-unit-async-storage.external.js", () => require("next/dist/server/app-render/work-unit-async-storage.external.js"));
|
|
|
|
module.exports = mod;
|
|
}),
|
|
"[externals]/next/dist/server/app-render/work-async-storage.external.js [external] (next/dist/server/app-render/work-async-storage.external.js, cjs)", ((__turbopack_context__, module, exports) => {
|
|
|
|
const mod = __turbopack_context__.x("next/dist/server/app-render/work-async-storage.external.js", () => require("next/dist/server/app-render/work-async-storage.external.js"));
|
|
|
|
module.exports = mod;
|
|
}),
|
|
"[project]/Documents/00 - projet/plumeia/src/lib/types.ts [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"EntityType",
|
|
()=>EntityType
|
|
]);
|
|
var EntityType = /*#__PURE__*/ function(EntityType) {
|
|
EntityType["CHARACTER"] = "Personnage";
|
|
EntityType["LOCATION"] = "Lieu";
|
|
EntityType["OBJECT"] = "Objet";
|
|
EntityType["NOTE"] = "Note";
|
|
return EntityType;
|
|
}({});
|
|
}),
|
|
"[project]/Documents/00 - projet/plumeia/src/lib/constants.ts [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"ARCHETYPES",
|
|
()=>ARCHETYPES,
|
|
"DEFAULT_AUTHOR",
|
|
()=>DEFAULT_AUTHOR,
|
|
"DEFAULT_BOOK_TITLE",
|
|
()=>DEFAULT_BOOK_TITLE,
|
|
"ENTITY_COLORS",
|
|
()=>ENTITY_COLORS,
|
|
"ENTITY_ICONS",
|
|
()=>ENTITY_ICONS,
|
|
"EYE_COLORS",
|
|
()=>EYE_COLORS,
|
|
"GENRES",
|
|
()=>GENRES,
|
|
"HAIR_COLORS",
|
|
()=>HAIR_COLORS,
|
|
"INITIAL_CHAPTER",
|
|
()=>INITIAL_CHAPTER,
|
|
"POV_OPTIONS",
|
|
()=>POV_OPTIONS,
|
|
"TENSE_OPTIONS",
|
|
()=>TENSE_OPTIONS,
|
|
"TONES",
|
|
()=>TONES
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$src$2f$lib$2f$types$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/src/lib/types.ts [app-ssr] (ecmascript)");
|
|
;
|
|
const DEFAULT_BOOK_TITLE = "Nouveau Roman";
|
|
const DEFAULT_AUTHOR = "Auteur Inconnu";
|
|
const INITIAL_CHAPTER = {
|
|
id: 'chap-1',
|
|
title: 'Chapitre 1',
|
|
content: '<p>Il était une fois...</p>',
|
|
summary: 'Début de l\'histoire.'
|
|
};
|
|
const ENTITY_ICONS = {
|
|
[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$src$2f$lib$2f$types$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["EntityType"].CHARACTER]: '👤',
|
|
[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$src$2f$lib$2f$types$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["EntityType"].LOCATION]: '🏰',
|
|
[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$src$2f$lib$2f$types$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["EntityType"].OBJECT]: '🗝️',
|
|
[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$src$2f$lib$2f$types$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["EntityType"].NOTE]: '📝'
|
|
};
|
|
const ENTITY_COLORS = {
|
|
[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$src$2f$lib$2f$types$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["EntityType"].CHARACTER]: 'bg-blue-100 text-blue-800 border-blue-200',
|
|
[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$src$2f$lib$2f$types$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["EntityType"].LOCATION]: 'bg-green-100 text-green-800 border-green-200',
|
|
[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$src$2f$lib$2f$types$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["EntityType"].OBJECT]: 'bg-amber-100 text-amber-800 border-amber-200',
|
|
[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$src$2f$lib$2f$types$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["EntityType"].NOTE]: 'bg-gray-100 text-gray-800 border-gray-200'
|
|
};
|
|
const HAIR_COLORS = [
|
|
"Brun",
|
|
"Noir",
|
|
"Blond",
|
|
"Roux",
|
|
"Auburn",
|
|
"Gris",
|
|
"Blanc",
|
|
"Châtain",
|
|
"Chauve",
|
|
"Teinture (Bleu/Rose/Etc)"
|
|
];
|
|
const EYE_COLORS = [
|
|
"Marron",
|
|
"Bleu",
|
|
"Vert",
|
|
"Noisette",
|
|
"Gris",
|
|
"Noir",
|
|
"Vairons",
|
|
"Ambre"
|
|
];
|
|
const ARCHETYPES = [
|
|
"Le Héros",
|
|
"L'Ombre / Le Méchant",
|
|
"Le Mentor",
|
|
"Le Gardien du Seuil",
|
|
"Le Shapeshifter (Changeforme)",
|
|
"Le Trickster (Farceur)",
|
|
"L'Allié",
|
|
"L'Élu",
|
|
"Le Rebelle",
|
|
"Le Séducteur",
|
|
"Le Sage",
|
|
"Le Guerrier",
|
|
"L'Innocent"
|
|
];
|
|
const GENRES = [
|
|
"Fantasy",
|
|
"Science-Fiction",
|
|
"Thriller / Polar",
|
|
"Romance",
|
|
"Historique",
|
|
"Horreur",
|
|
"Aventure",
|
|
"Contemporain",
|
|
"Jeunesse / Young Adult",
|
|
"Dystopie"
|
|
];
|
|
const TONES = [
|
|
"Sombre & Sérieux",
|
|
"Léger & Humoristique",
|
|
"Épique & Grandiose",
|
|
"Mélancolique",
|
|
"Mystérieux",
|
|
"Optimiste",
|
|
"Cynique",
|
|
"Romantique"
|
|
];
|
|
const POV_OPTIONS = [
|
|
"1ère personne (Je)",
|
|
"3ème personne (Limitée au protagoniste)",
|
|
"3ème personne (Omnisciente)",
|
|
"Multi-points de vue (Alterné)"
|
|
];
|
|
const TENSE_OPTIONS = [
|
|
"Passé (Passé simple / Imparfait)",
|
|
"Présent de narration"
|
|
];
|
|
}),
|
|
"[project]/Documents/00 - projet/plumeia/src/hooks/useProjects.ts [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"useProjects",
|
|
()=>useProjects
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$src$2f$lib$2f$api$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/src/lib/api.ts [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$src$2f$lib$2f$constants$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/src/lib/constants.ts [app-ssr] (ecmascript)");
|
|
'use client';
|
|
;
|
|
;
|
|
;
|
|
const useProjects = (user)=>{
|
|
const [projects, setProjects] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])([]);
|
|
const [currentProjectId, setCurrentProjectId] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(null);
|
|
const [loading, setLoading] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(false);
|
|
// Load Projects
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEffect"])(()=>{
|
|
if (!user) {
|
|
setProjects([]);
|
|
return;
|
|
}
|
|
const loadProjects = async ()=>{
|
|
setLoading(true);
|
|
try {
|
|
const data = await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$src$2f$lib$2f$api$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].projects.list();
|
|
const mapped = (data || []).map((p)=>({
|
|
id: p.id,
|
|
title: p.title,
|
|
author: p.author,
|
|
lastModified: new Date(p.updatedAt).getTime(),
|
|
// Use _count for display before full details are loaded
|
|
chapters: Array.from({
|
|
length: p._count?.chapters || 0
|
|
}, (_, i)=>({
|
|
id: `placeholder-${i}`,
|
|
title: '',
|
|
content: ''
|
|
})),
|
|
entities: Array.from({
|
|
length: p._count?.entities || 0
|
|
}, (_, i)=>({
|
|
id: `placeholder-${i}`,
|
|
type: 'character',
|
|
name: '',
|
|
description: ''
|
|
})),
|
|
ideas: [],
|
|
settings: p.settings || undefined
|
|
}));
|
|
setProjects(mapped);
|
|
} catch (err) {
|
|
console.error('Failed to load projects', err);
|
|
} finally{
|
|
setLoading(false);
|
|
}
|
|
};
|
|
loadProjects();
|
|
}, [
|
|
user
|
|
]);
|
|
// Load details when project is selected
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEffect"])(()=>{
|
|
if (!currentProjectId) return;
|
|
const loadProjectDetails = async ()=>{
|
|
try {
|
|
const fullProject = await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$src$2f$lib$2f$api$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].projects.get(currentProjectId);
|
|
const mapped = {
|
|
id: fullProject.id,
|
|
title: fullProject.title,
|
|
author: fullProject.author,
|
|
lastModified: new Date(fullProject.updatedAt).getTime(),
|
|
settings: fullProject.settings || undefined,
|
|
styleGuide: fullProject.styleGuide || undefined,
|
|
chapters: (fullProject.chapters || []).map((c)=>({
|
|
id: c.id,
|
|
title: c.title,
|
|
content: c.content,
|
|
summary: c.summary
|
|
})),
|
|
entities: (fullProject.entities || []).map((e)=>({
|
|
id: e.id,
|
|
type: e.type,
|
|
name: e.name,
|
|
description: e.description,
|
|
details: e.details,
|
|
storyContext: e.storyContext,
|
|
attributes: e.attributes,
|
|
customValues: e.customValues
|
|
})),
|
|
ideas: (fullProject.ideas || []).map((i)=>({
|
|
id: i.id,
|
|
title: i.title,
|
|
description: i.description,
|
|
status: i.status,
|
|
category: i.category,
|
|
createdAt: new Date(i.createdAt).getTime()
|
|
})),
|
|
workflow: {
|
|
nodes: (fullProject.plotNodes || []).map((n)=>({
|
|
id: n.id,
|
|
x: n.x,
|
|
y: n.y,
|
|
title: n.title,
|
|
description: n.description,
|
|
color: n.color,
|
|
type: n.type
|
|
})),
|
|
connections: (fullProject.plotConnections || []).map((c)=>({
|
|
id: c.id,
|
|
source: c.source,
|
|
target: c.target
|
|
}))
|
|
}
|
|
};
|
|
setProjects((prev)=>prev.map((p)=>p.id === currentProjectId ? mapped : p));
|
|
} catch (err) {
|
|
console.error("Failed to load project details", err);
|
|
}
|
|
};
|
|
loadProjectDetails();
|
|
}, [
|
|
currentProjectId
|
|
]);
|
|
const createProject = async ()=>{
|
|
if (!user) return;
|
|
try {
|
|
const created = await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$src$2f$lib$2f$api$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].projects.create({
|
|
title: __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$src$2f$lib$2f$constants$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DEFAULT_BOOK_TITLE"],
|
|
author: user.name || __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$src$2f$lib$2f$constants$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DEFAULT_AUTHOR"],
|
|
settings: {
|
|
genre: 'Fantasy',
|
|
targetAudience: 'Adult',
|
|
tone: 'Epic'
|
|
}
|
|
});
|
|
const newProject = {
|
|
id: created.id,
|
|
title: created.title,
|
|
author: created.author,
|
|
lastModified: Date.now(),
|
|
chapters: [],
|
|
entities: [],
|
|
ideas: [],
|
|
settings: created.settings
|
|
};
|
|
setProjects((prev)=>[
|
|
...prev,
|
|
newProject
|
|
]);
|
|
await addChapter(created.id, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$src$2f$lib$2f$constants$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["INITIAL_CHAPTER"]);
|
|
return created.id;
|
|
} catch (err) {
|
|
console.error('Failed to create project', err);
|
|
throw err;
|
|
}
|
|
};
|
|
const updateProject = async (id, data)=>{
|
|
setProjects((prev)=>prev.map((p)=>p.id === id ? {
|
|
...p,
|
|
...data
|
|
} : p));
|
|
try {
|
|
// Persist project fields
|
|
const payload = {};
|
|
if (data.title !== undefined) payload.title = data.title;
|
|
if (data.author !== undefined) payload.author = data.author;
|
|
if (data.settings !== undefined) payload.settings = data.settings;
|
|
if (data.styleGuide !== undefined) payload.styleGuide = data.styleGuide;
|
|
if (Object.keys(payload).length > 0) {
|
|
await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$src$2f$lib$2f$api$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].projects.update(id, payload);
|
|
}
|
|
// Persist workflow (nodes + connections) separately
|
|
if (data.workflow) {
|
|
await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$src$2f$lib$2f$api$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].projects.syncWorkflow(id, {
|
|
nodes: data.workflow.nodes || [],
|
|
connections: data.workflow.connections || []
|
|
});
|
|
}
|
|
} catch (err) {
|
|
console.error("Failed to update project", err);
|
|
}
|
|
};
|
|
const addChapter = async (projectId, chapterData)=>{
|
|
try {
|
|
const newChap = await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$src$2f$lib$2f$api$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].chapters.create({
|
|
projectId,
|
|
title: chapterData.title || 'New Chapter',
|
|
content: chapterData.content || '',
|
|
summary: chapterData.summary || undefined
|
|
});
|
|
setProjects((prev)=>prev.map((p)=>{
|
|
if (p.id !== projectId) return p;
|
|
return {
|
|
...p,
|
|
chapters: [
|
|
...p.chapters,
|
|
{
|
|
id: newChap.id,
|
|
title: newChap.title,
|
|
content: newChap.content,
|
|
summary: newChap.summary
|
|
}
|
|
]
|
|
};
|
|
}));
|
|
return newChap.id;
|
|
} catch (err) {
|
|
console.error("Failed to add chapter", err);
|
|
return null;
|
|
}
|
|
};
|
|
const updateChapter = async (projectId, chapterId, data)=>{
|
|
setProjects((prev)=>prev.map((p)=>{
|
|
if (p.id !== projectId) return p;
|
|
return {
|
|
...p,
|
|
chapters: p.chapters.map((c)=>c.id === chapterId ? {
|
|
...c,
|
|
...data
|
|
} : c)
|
|
};
|
|
}));
|
|
try {
|
|
await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$src$2f$lib$2f$api$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].chapters.update(chapterId, data);
|
|
} catch (err) {
|
|
console.error("Failed to update chapter", err);
|
|
}
|
|
};
|
|
const createEntity = async (projectId, type, initialData)=>{
|
|
try {
|
|
const newEntity = await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$src$2f$lib$2f$api$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].entities.create({
|
|
projectId,
|
|
type,
|
|
name: initialData?.name || `Nouveau ${type}`,
|
|
description: initialData?.description || '',
|
|
details: initialData?.details || '',
|
|
attributes: initialData?.attributes || undefined,
|
|
customValues: initialData?.customValues || undefined
|
|
});
|
|
setProjects((prev)=>prev.map((p)=>{
|
|
if (p.id !== projectId) return p;
|
|
return {
|
|
...p,
|
|
entities: [
|
|
...p.entities,
|
|
{
|
|
id: newEntity.id,
|
|
type: newEntity.type,
|
|
name: newEntity.name,
|
|
description: newEntity.description,
|
|
details: newEntity.details,
|
|
attributes: newEntity.attributes,
|
|
customValues: newEntity.customValues || {}
|
|
}
|
|
]
|
|
};
|
|
}));
|
|
return newEntity.id;
|
|
} catch (err) {
|
|
console.error("Failed to create entity", err);
|
|
throw err;
|
|
}
|
|
};
|
|
const updateEntity = async (projectId, entityId, data)=>{
|
|
setProjects((prev)=>prev.map((p)=>{
|
|
if (p.id !== projectId) return p;
|
|
return {
|
|
...p,
|
|
entities: p.entities.map((e)=>e.id === entityId ? {
|
|
...e,
|
|
...data
|
|
} : e)
|
|
};
|
|
}));
|
|
try {
|
|
await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$src$2f$lib$2f$api$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].entities.update(entityId, data);
|
|
} catch (err) {
|
|
console.error("Failed to update entity", err);
|
|
}
|
|
};
|
|
const deleteEntity = async (projectId, entityId)=>{
|
|
setProjects((prev)=>prev.map((p)=>{
|
|
if (p.id !== projectId) return p;
|
|
return {
|
|
...p,
|
|
entities: p.entities.filter((e)=>e.id !== entityId)
|
|
};
|
|
}));
|
|
try {
|
|
await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$src$2f$lib$2f$api$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].entities.delete(entityId);
|
|
} catch (err) {
|
|
console.error("Failed to delete entity", err);
|
|
}
|
|
};
|
|
return {
|
|
projects,
|
|
currentProjectId,
|
|
setCurrentProjectId,
|
|
createProject,
|
|
updateProject,
|
|
addChapter,
|
|
updateChapter,
|
|
createEntity,
|
|
updateEntity,
|
|
deleteEntity,
|
|
deleteProject: async (projectId)=>{
|
|
try {
|
|
// Cascade delete is handled by Prisma, just delete the project
|
|
await __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$src$2f$lib$2f$api$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].projects.delete(projectId);
|
|
setProjects((prev)=>prev.filter((p)=>p.id !== projectId));
|
|
if (currentProjectId === projectId) {
|
|
setCurrentProjectId(null);
|
|
}
|
|
} catch (err) {
|
|
console.error("Failed to delete project", err);
|
|
}
|
|
}
|
|
};
|
|
};
|
|
}),
|
|
"[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"default",
|
|
()=>__TURBOPACK__default__export__
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$plus$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Plus$3e$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/node_modules/lucide-react/dist/esm/icons/plus.js [app-ssr] (ecmascript) <export default as Plus>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$book$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Book$3e$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/node_modules/lucide-react/dist/esm/icons/book.js [app-ssr] (ecmascript) <export default as Book>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$star$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Star$3e$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/node_modules/lucide-react/dist/esm/icons/star.js [app-ssr] (ecmascript) <export default as Star>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$chevron$2d$right$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__ChevronRight$3e$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/node_modules/lucide-react/dist/esm/icons/chevron-right.js [app-ssr] (ecmascript) <export default as ChevronRight>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$log$2d$out$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__LogOut$3e$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/node_modules/lucide-react/dist/esm/icons/log-out.js [app-ssr] (ecmascript) <export default as LogOut>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$user$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__User$3e$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/node_modules/lucide-react/dist/esm/icons/user.js [app-ssr] (ecmascript) <export default as User>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$target$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Target$3e$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/node_modules/lucide-react/dist/esm/icons/target.js [app-ssr] (ecmascript) <export default as Target>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$flame$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Flame$3e$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/node_modules/lucide-react/dist/esm/icons/flame.js [app-ssr] (ecmascript) <export default as Flame>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$pen$2d$line$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Edit3$3e$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/node_modules/lucide-react/dist/esm/icons/pen-line.js [app-ssr] (ecmascript) <export default as Edit3>");
|
|
'use client';
|
|
;
|
|
;
|
|
const Dashboard = ({ user, projects, onSelect, onCreate, onLogout, onPricing, onProfile })=>{
|
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "min-h-screen bg-[#eef2ff] p-8 font-sans",
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "max-w-6xl mx-auto space-y-8",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex flex-col md:flex-row justify-between items-center bg-white p-8 rounded-[2rem] shadow-sm border border-indigo-100 gap-6",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex items-center gap-6",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "relative",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("img", {
|
|
src: user.avatar,
|
|
className: "w-20 h-20 rounded-full border-4 border-slate-50 shadow-lg object-cover",
|
|
alt: "Avatar"
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 27,
|
|
columnNumber: 29
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "absolute -bottom-1 -right-1 bg-green-500 w-5 h-5 rounded-full border-4 border-white"
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 28,
|
|
columnNumber: 29
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 26,
|
|
columnNumber: 25
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("h2", {
|
|
className: "text-3xl font-black text-slate-900",
|
|
children: [
|
|
"Bonjour, ",
|
|
user.name,
|
|
" 👋"
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 31,
|
|
columnNumber: 29
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex items-center gap-3 mt-1",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
|
className: "px-3 py-1 rounded-full bg-indigo-100 text-indigo-700 text-[10px] uppercase font-black tracking-widest",
|
|
children: user.subscription.planDetails?.displayName || user.subscription.plan
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 33,
|
|
columnNumber: 33
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
|
className: "text-slate-400 text-xs font-medium",
|
|
children: "Membre depuis le 24 janv."
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 34,
|
|
columnNumber: 33
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 32,
|
|
columnNumber: 29
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 30,
|
|
columnNumber: 25
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 25,
|
|
columnNumber: 21
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex items-center gap-3",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("button", {
|
|
onClick: onProfile,
|
|
className: "bg-slate-50 text-slate-700 px-5 py-2.5 rounded-xl text-sm font-bold hover:bg-slate-100 transition-all flex items-center gap-2 border border-slate-200",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$user$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__User$3e$__["User"], {
|
|
size: 18
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 40,
|
|
columnNumber: 29
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
" Mon Profil"
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 39,
|
|
columnNumber: 25
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("button", {
|
|
onClick: onLogout,
|
|
className: "p-3 text-slate-400 hover:text-red-500 rounded-full hover:bg-red-50 transition-colors",
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$log$2d$out$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__LogOut$3e$__["LogOut"], {
|
|
size: 20
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 42,
|
|
columnNumber: 149
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 42,
|
|
columnNumber: 25
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 38,
|
|
columnNumber: 21
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 24,
|
|
columnNumber: 17
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "grid grid-cols-1 md:grid-cols-3 gap-6",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "bg-white p-6 rounded-3xl shadow-sm border border-indigo-50 flex items-center gap-4",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "bg-orange-100 p-3 rounded-2xl text-orange-600",
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$flame$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Flame$3e$__["Flame"], {
|
|
size: 24
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 49,
|
|
columnNumber: 88
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 49,
|
|
columnNumber: 25
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-xs font-bold text-slate-400 uppercase tracking-wider",
|
|
children: "Série actuelle"
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 51,
|
|
columnNumber: 29
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-2xl font-black text-slate-900",
|
|
children: [
|
|
user.stats.writingStreak,
|
|
" Jours"
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 52,
|
|
columnNumber: 29
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 50,
|
|
columnNumber: 25
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 48,
|
|
columnNumber: 21
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "bg-white p-6 rounded-3xl shadow-sm border border-indigo-50 flex items-center gap-4",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "bg-blue-100 p-3 rounded-2xl text-blue-600",
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$pen$2d$line$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Edit3$3e$__["Edit3"], {
|
|
size: 24
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 56,
|
|
columnNumber: 84
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 56,
|
|
columnNumber: 25
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-xs font-bold text-slate-400 uppercase tracking-wider",
|
|
children: "Mots écrits"
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 58,
|
|
columnNumber: 29
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-2xl font-black text-slate-900",
|
|
children: user.stats.totalWordsWritten.toLocaleString()
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 59,
|
|
columnNumber: 29
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 57,
|
|
columnNumber: 25
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 55,
|
|
columnNumber: 21
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "bg-white p-6 rounded-3xl shadow-sm border border-indigo-50 flex items-center gap-4",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "bg-indigo-100 p-3 rounded-2xl text-indigo-600",
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$target$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Target$3e$__["Target"], {
|
|
size: 24
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 63,
|
|
columnNumber: 88
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 63,
|
|
columnNumber: 25
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-xs font-bold text-slate-400 uppercase tracking-wider",
|
|
children: "Objectif du jour"
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 65,
|
|
columnNumber: 29
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-2xl font-black text-slate-900",
|
|
children: [
|
|
user.preferences.dailyWordGoal,
|
|
" Mots"
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 66,
|
|
columnNumber: 29
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 64,
|
|
columnNumber: 25
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 62,
|
|
columnNumber: 21
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 47,
|
|
columnNumber: 17
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "grid grid-cols-1 lg:grid-cols-3 gap-8",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "lg:col-span-2 space-y-4",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex justify-between items-center mb-6",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("h3", {
|
|
className: "text-2xl font-black text-slate-900",
|
|
children: "Mes Romans"
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 75,
|
|
columnNumber: 29
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("button", {
|
|
onClick: onCreate,
|
|
className: "flex items-center gap-2 bg-blue-600 text-white px-6 py-3 rounded-2xl font-bold hover:bg-blue-700 transition-all shadow-xl shadow-blue-200",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$plus$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Plus$3e$__["Plus"], {
|
|
size: 20
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 80,
|
|
columnNumber: 33
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
" Écrire un nouveau livre"
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 76,
|
|
columnNumber: 29
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 74,
|
|
columnNumber: 25
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "grid grid-cols-1 md:grid-cols-2 gap-6",
|
|
children: [
|
|
projects.map((p)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
onClick: ()=>onSelect(p.id),
|
|
className: "bg-white p-8 rounded-[2.5rem] border border-indigo-50 shadow-sm hover:shadow-2xl hover:scale-[1.02] transition-all cursor-pointer group flex flex-col justify-between h-64",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "bg-blue-50 w-12 h-12 rounded-2xl flex items-center justify-center text-blue-600 mb-6 group-hover:bg-blue-600 group-hover:text-white transition-colors",
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$book$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Book$3e$__["Book"], {
|
|
size: 24
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 93,
|
|
columnNumber: 45
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 92,
|
|
columnNumber: 41
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("h4", {
|
|
className: "font-black text-slate-900 text-xl truncate mb-1",
|
|
children: p.title
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 95,
|
|
columnNumber: 41
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-slate-400 text-sm",
|
|
children: [
|
|
"Dernière modification : ",
|
|
new Date(p.lastModified).toLocaleDateString()
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 96,
|
|
columnNumber: 41
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 91,
|
|
columnNumber: 37
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex justify-between items-center text-[10px] text-slate-400 font-black uppercase tracking-widest border-t border-slate-50 pt-4",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
|
children: [
|
|
p.chapters.length,
|
|
" Chapitres"
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 99,
|
|
columnNumber: 41
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$chevron$2d$right$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__ChevronRight$3e$__["ChevronRight"], {
|
|
size: 20,
|
|
className: "group-hover:text-blue-600 transition-transform group-hover:translate-x-1 duration-300"
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 100,
|
|
columnNumber: 41
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 98,
|
|
columnNumber: 37
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
]
|
|
}, p.id, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 86,
|
|
columnNumber: 33
|
|
}, ("TURBOPACK compile-time value", void 0))),
|
|
projects.length === 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "col-span-2 py-24 bg-white rounded-[3rem] border-2 border-dashed border-indigo-100 flex flex-col items-center justify-center text-indigo-300",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$book$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Book$3e$__["Book"], {
|
|
size: 64,
|
|
className: "mb-6 opacity-20"
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 106,
|
|
columnNumber: 37
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "font-bold text-lg",
|
|
children: "Prêt à commencer votre premier roman ?"
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 107,
|
|
columnNumber: 37
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("button", {
|
|
onClick: onCreate,
|
|
className: "mt-4 text-blue-600 font-bold hover:underline",
|
|
children: "Créer un projet maintenant"
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 108,
|
|
columnNumber: 37
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 105,
|
|
columnNumber: 33
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 84,
|
|
columnNumber: 25
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 73,
|
|
columnNumber: 21
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "space-y-6",
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "bg-slate-900 text-white p-8 rounded-[2.5rem] shadow-xl relative overflow-hidden",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "absolute top-0 right-0 w-32 h-32 bg-indigo-500/20 blur-[60px] -z-1"
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 117,
|
|
columnNumber: 29
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("h3", {
|
|
className: "font-black text-xl mb-6 flex items-center gap-2",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$star$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Star$3e$__["Star"], {
|
|
size: 20,
|
|
className: "text-yellow-400"
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 118,
|
|
columnNumber: 93
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
" Utilisation"
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 118,
|
|
columnNumber: 29
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "space-y-8",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex justify-between text-[10px] font-black text-slate-400 uppercase tracking-widest mb-2",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
|
children: "Actions IA"
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 122,
|
|
columnNumber: 41
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
|
children: [
|
|
user.usage.aiActionsCurrent,
|
|
" / ",
|
|
user.usage.aiActionsLimit === 999999 ? '∞' : user.usage.aiActionsLimit
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 123,
|
|
columnNumber: 41
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 121,
|
|
columnNumber: 37
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "h-3 w-full bg-slate-800 rounded-full overflow-hidden",
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "h-full bg-blue-500 transition-all duration-1000 shadow-[0_0_10px_rgba(59,130,246,0.5)]",
|
|
style: {
|
|
width: `${Math.min(100, user.usage.aiActionsCurrent / user.usage.aiActionsLimit * 100)}%`
|
|
}
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 126,
|
|
columnNumber: 41
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 125,
|
|
columnNumber: 37
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 120,
|
|
columnNumber: 33
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex justify-between text-[10px] font-black text-slate-400 uppercase tracking-widest mb-2",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
|
children: "Emplacements Roman"
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 134,
|
|
columnNumber: 41
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
|
children: [
|
|
projects.length,
|
|
" / ",
|
|
user.usage.projectsLimit
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 135,
|
|
columnNumber: 41
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 133,
|
|
columnNumber: 37
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "h-3 w-full bg-slate-800 rounded-full overflow-hidden",
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "h-full bg-indigo-500 transition-all duration-1000 shadow-[0_0_10px_rgba(99,102,241,0.5)]",
|
|
style: {
|
|
width: `${Math.min(100, projects.length / user.usage.projectsLimit * 100)}%`
|
|
}
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 138,
|
|
columnNumber: 41
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 137,
|
|
columnNumber: 37
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 132,
|
|
columnNumber: 33
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 119,
|
|
columnNumber: 29
|
|
}, ("TURBOPACK compile-time value", void 0)),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("button", {
|
|
onClick: onPricing,
|
|
className: "w-full mt-10 bg-white/10 hover:bg-white/20 py-4 rounded-2xl text-sm font-bold transition-all",
|
|
children: "Upgrade Plan"
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 145,
|
|
columnNumber: 29
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 116,
|
|
columnNumber: 25
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 115,
|
|
columnNumber: 21
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 71,
|
|
columnNumber: 17
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 21,
|
|
columnNumber: 13
|
|
}, ("TURBOPACK compile-time value", void 0))
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx",
|
|
lineNumber: 20,
|
|
columnNumber: 9
|
|
}, ("TURBOPACK compile-time value", void 0));
|
|
};
|
|
const __TURBOPACK__default__export__ = Dashboard;
|
|
}),
|
|
"[project]/Documents/00 - projet/plumeia/src/app/dashboard/page.tsx [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"default",
|
|
()=>DashboardPage
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$navigation$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/node_modules/next/navigation.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$src$2f$providers$2f$AuthProvider$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/src/providers/AuthProvider.tsx [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$src$2f$hooks$2f$useProjects$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/src/hooks/useProjects.ts [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$src$2f$components$2f$Dashboard$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/src/components/Dashboard.tsx [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$loader$2d$circle$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Loader2$3e$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/node_modules/lucide-react/dist/esm/icons/loader-circle.js [app-ssr] (ecmascript) <export default as Loader2>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$book$2d$open$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__BookOpen$3e$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/node_modules/lucide-react/dist/esm/icons/book-open.js [app-ssr] (ecmascript) <export default as BookOpen>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/00 - projet/plumeia/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)");
|
|
'use client';
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
function DashboardPage() {
|
|
const router = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$navigation$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useRouter"])();
|
|
const { user, logout, loading } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$src$2f$providers$2f$AuthProvider$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useAuthContext"])();
|
|
const { projects, setCurrentProjectId, createProject } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$src$2f$hooks$2f$useProjects$2e$ts__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useProjects"])(user);
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEffect"])(()=>{
|
|
if (!loading && !user) {
|
|
router.replace('/login');
|
|
}
|
|
}, [
|
|
user,
|
|
loading,
|
|
router
|
|
]);
|
|
if (loading || !user) {
|
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "h-screen w-full flex flex-col items-center justify-center bg-slate-900 text-white",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$loader$2d$circle$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Loader2$3e$__["Loader2"], {
|
|
className: "animate-spin text-blue-500 mb-4",
|
|
size: 48
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/app/dashboard/page.tsx",
|
|
lineNumber: 24,
|
|
columnNumber: 17
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex items-center gap-2",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$book$2d$open$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__BookOpen$3e$__["BookOpen"], {
|
|
className: "text-blue-500",
|
|
size: 20
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/app/dashboard/page.tsx",
|
|
lineNumber: 26,
|
|
columnNumber: 21
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", {
|
|
className: "text-lg font-bold",
|
|
children: "PlumeIA"
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/app/dashboard/page.tsx",
|
|
lineNumber: 27,
|
|
columnNumber: 21
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/app/dashboard/page.tsx",
|
|
lineNumber: 25,
|
|
columnNumber: 17
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/app/dashboard/page.tsx",
|
|
lineNumber: 23,
|
|
columnNumber: 13
|
|
}, this);
|
|
}
|
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$00__$2d$__projet$2f$plumeia$2f$src$2f$components$2f$Dashboard$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], {
|
|
user: user,
|
|
projects: projects,
|
|
onSelect: (id)=>{
|
|
setCurrentProjectId(id);
|
|
router.push(`/project/${id}`);
|
|
},
|
|
onCreate: async ()=>{
|
|
try {
|
|
const id = await createProject();
|
|
if (id) {
|
|
setCurrentProjectId(id);
|
|
router.push(`/project/${id}`);
|
|
}
|
|
} catch (err) {
|
|
if (err?.message?.includes('Limite')) {
|
|
alert(err.message);
|
|
router.push('/pricing');
|
|
} else {
|
|
alert('Erreur lors de la création du projet');
|
|
}
|
|
}
|
|
},
|
|
onLogout: ()=>{
|
|
logout();
|
|
router.push('/');
|
|
},
|
|
onPricing: ()=>router.push('/pricing'),
|
|
onProfile: ()=>router.push('/profile')
|
|
}, void 0, false, {
|
|
fileName: "[project]/Documents/00 - projet/plumeia/src/app/dashboard/page.tsx",
|
|
lineNumber: 34,
|
|
columnNumber: 9
|
|
}, this);
|
|
}
|
|
}),
|
|
];
|
|
|
|
//# sourceMappingURL=%5Broot-of-the-server%5D__2aea0639._.js.map
|