v2 : couche données complète + shell + primitives communes
- stores/collective.ts (état local-first, gabarits, import/export, seeds) + stores/decisions.ts (cycle de vie complet : capture→chemin→fenêtres→ sessions→cristallisation→épreuve du réel→révocation) - data/templates.ts : 7 gabarits (Page blanche observatoire-d'abord, 5 points de départ, Institution symétrique) - composables useFeed (13 sections du Fil en sélecteurs purs) + useSearch (index unique Cmd+K/Q0) - shell : layouts default/bare, app.vue mince, useMood v2 (Source/Margelle/ Nappe/Minuit), sceau 井 = logo, LdWorkspaceSelector avec finalité A1, LdAvatarStack (premier/second lieu), LdCountdown (suspension striée) - 338 tests vitest verts, npm run build zéro erreur Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
// Ambiances libreDecision — délègue le mécanisme au layer @yvv/nuxt-base.
|
||||
// Ambiances libreDecision v2 — champ lexical du puits 井.
|
||||
// Délègue le mécanisme au layer @yvv/nuxt-base (auto-import `useMood(moods, options)`).
|
||||
// Les couleurs (identité du projet) restent dans assets/css/moods.css (classes .mood-*).
|
||||
// Le layer fournit l'auto-import `useMood(moods, options)` ; on l'enveloppe ici
|
||||
// sous le nom `useLibreMood` pour éviter la collision avec ce composable auto-importé.
|
||||
// Enveloppé sous le nom `useLibreMood` pour éviter la collision avec le composable du layer.
|
||||
|
||||
export interface Mood {
|
||||
id: string
|
||||
@@ -13,12 +13,12 @@ export interface Mood {
|
||||
}
|
||||
|
||||
const moods: Mood[] = [
|
||||
{ id: 'peps', label: 'Peps', description: 'Chaud et tonique', icon: 'i-lucide-sun', color: '#d44a10', isDark: false },
|
||||
{ id: 'zen', label: 'Zen', description: 'Nature vivante', icon: 'i-lucide-leaf', color: '#2e8b48', isDark: false },
|
||||
{ id: 'chagrine', label: 'Chagrine', description: 'Nuit profonde', icon: 'i-lucide-moon', color: '#6488d8', isDark: true },
|
||||
{ id: 'grave', label: 'Grave', description: 'Ambre mineral', icon: 'i-lucide-shield', color: '#d8a030', isDark: true },
|
||||
{ id: 'source', label: 'Source', description: 'Eau claire', icon: 'i-lucide-droplets', color: '#0f7fa8', isDark: false },
|
||||
{ id: 'margelle', label: 'Margelle', description: 'Pierre chaude', icon: 'i-lucide-landmark', color: '#96682a', isDark: false },
|
||||
{ id: 'nappe', label: 'Nappe', description: 'Eau profonde', icon: 'i-lucide-waves', color: '#3fa9cc', isDark: true },
|
||||
{ id: 'minuit', label: 'Minuit', description: 'Encre et lanterne', icon: 'i-lucide-lamp', color: '#cf9c3e', isDark: true },
|
||||
]
|
||||
|
||||
export function useLibreMood() {
|
||||
return useMood(moods, { storageKey: 'libredecision_mood', defaultId: 'peps' })
|
||||
return useMood(moods, { storageKey: 'libredecision_mood_v2', defaultId: 'source' })
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user