Files
decision/frontend/app/composables/useMood.ts
T
YvvandClaude Fable 5 d886302b59 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>
2026-08-11 10:30:35 +02:00

25 lines
1.1 KiB
TypeScript

// 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-*).
// Enveloppé sous le nom `useLibreMood` pour éviter la collision avec le composable du layer.
export interface Mood {
id: string
label: string
description: string
icon: string
color: string
isDark: boolean
}
const moods: Mood[] = [
{ 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_v2', defaultId: 'source' })
}