Boîtes à outils enrichies : ContextMapper, SocioElection, WorkflowMilestones

- ContextMapper : 4 questions contexte → méthode de décision optimale
  (advice process Laloux, vote inertiel WoT, consentement sociocratique, Smith…)
- SocioElection : guide élection sociocratique 6 étapes + advice process + clarté de rôle
- WorkflowMilestones : 11 jalons de protocole (7 essentiels), durées recommandées, principes Ostrom
- WorkspaceSelector : sélecteur de collectif multi-site dans le header
- SectionLayout : toolbox en USlideover droit sur mobile, sidebar sticky desktop
- Décisions : ContextMapper intégré + guide consentement
- Mandats : SocioElection intégré + cycle de mandat
- Documents : guide inertie 4 niveaux + structure + IPFS
- Protocoles : WorkflowMilestones + protocole élection sociocratique ajouté
- Renommage projet Glibredecision → libreDecision (dossier + sources)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Yvv
2026-03-17 00:13:08 +01:00
parent 316d205593
commit 290548703d
29 changed files with 4174 additions and 168 deletions

View File

@@ -272,32 +272,41 @@ async function handleCreate() {
<!-- Toolbox sidebar -->
<template #toolbox>
<!-- Sociocratic election guide -->
<div class="toolbox-block">
<div class="toolbox-block__head">
<UIcon name="i-lucide-users" />
<span>Nomination & Élection</span>
</div>
<SocioElection />
</div>
<!-- Mandat cycle -->
<ToolboxVignette
title="Ouverture"
:bullets="['Définir mission et périmètre', 'Durée et objectifs clairs']"
:actions="[
{ label: 'Créer', icon: 'i-lucide-door-open', emit: 'create', primary: true },
title="Cycle de mandat"
:bullets="[
'1. Ouverture + définition du rôle',
'2. Candidatures (auto ou par pairs)',
'3. Élection sociocratique',
'4. Période active + rapports',
'5. Renouvellement ou clôture',
]"
/>
<ToolboxVignette
title="Nomination"
:bullets="['Élection en binôme', 'Titulaire + suppléant']"
:actions="[
{ label: 'Voir', icon: 'i-lucide-users', emit: 'nomination' },
{ label: 'Nouveau mandat', icon: 'i-lucide-plus', emit: 'create', primary: true },
]"
@action="e => e === 'create' && (showCreateModal = true)"
/>
<!-- Révocation -->
<ToolboxVignette
title="Transparence"
:bullets="['Rapports d\'activité', 'Soumis au vote communautaire']"
:actions="[
{ label: 'Voir', icon: 'i-lucide-eye', emit: 'transparence' },
title="Révocation"
:bullets="[
'Initiée par 3 membres ou plus',
'Vote communautaire ordinaire',
'Bilan de clôture obligatoire',
]"
/>
<ToolboxVignette
title="Cloture"
:bullets="['Fin de mandat ou révocation', 'Bilan et transmission']"
:actions="[
{ label: 'Voir', icon: 'i-lucide-lock', emit: 'cloture' },
{ label: 'Voir', icon: 'i-lucide-shield-off', emit: 'revoke' },
]"
/>
</template>
@@ -549,18 +558,24 @@ async function handleCreate() {
margin-top: 0.5rem;
}
.toolbox-section-title {
font-size: 0.8125rem;
font-weight: 700;
color: var(--mood-text-muted);
text-transform: uppercase;
letter-spacing: 0.04em;
margin-bottom: 0.25rem;
.toolbox-block {
background: var(--mood-accent-soft);
border-radius: 14px;
padding: 0.875rem;
display: flex;
flex-direction: column;
gap: 0.75rem;
}
.toolbox-empty-text {
.toolbox-block__head {
display: flex;
align-items: center;
gap: 0.375rem;
font-size: 0.8125rem;
color: var(--mood-text-muted);
font-weight: 800;
color: var(--mood-accent);
text-transform: uppercase;
letter-spacing: 0.04em;
}
.mandate-card__type-badge {