release : couleurs et surlignage dans l'éditeur rich text (#40)
All checks were successful
Release / release (push) Successful in 1m0s

## Résumé

Ajoute deux boutons à la toolbar de \`<MalioInputRichText>\` pour appliquer une couleur de texte ou un surlignage sur la sélection, façon Jira.

## Changements

- Extensions TipTap : \`@tiptap/extension-text-style\`, \`@tiptap/extension-color\`, \`@tiptap/extension-highlight\` (multicolor)
- Palette de 8 couleurs texte + 8 pastels surlignage + reset
- Indicateur de couleur active sous l'icône
- Fermeture popover sur clic extérieur, Échap, ou clic dans l'éditeur
- Tests : 4 nouveaux cas (15/15 OK)
- Story et \`COMPONENTS.md\` à jour

## Limite à connaître

Les couleurs ne sont **pas sérialisables en markdown** (\`tiptap-markdown\` ne les sérialise pas). Pour les conserver au save/reload, utiliser \`output-format="html"\`.

## Release attendu

Commit type \`fix:\` → semantic-release publie **1.4.8** (patch).

Co-authored-by: kevin <kevin@yuno.malio.fr>
Co-authored-by: tristan <tristan@yuno.malio.fr>
Co-authored-by: Kevin Boudet <kevin@yuno.malio.fr>
Reviewed-on: #40
This commit was merged in pull request #40.
This commit is contained in:
2026-05-04 18:03:40 +00:00
parent f30619a497
commit 7fc072ad08
6 changed files with 361 additions and 14 deletions

View File

@@ -72,6 +72,17 @@
min-height="200px"
/>
</div>
<div class="rounded-lg border p-4 lg:col-span-2">
<h2 class="mb-4 text-xl font-bold">Couleurs &amp; surlignage</h2>
<MalioInputRichText
v-model="colorValue"
label="Note colorée"
output-format="html"
min-height="180px"
hint="Tester les boutons couleur du texte et surlignage (palettes Jira-like)"
/>
</div>
</div>
</Story>
</template>
@@ -80,7 +91,7 @@
# MalioInputRichText
Éditeur de texte riche basé sur **TipTap v3** + **StarterKit** + **tiptap-markdown**.
Sortie en **markdown** (par défaut) ou en **HTML**. Aligné sur le thème Malio
Sortie en **HTML** (par défaut) ou en **markdown**. Aligné sur le thème Malio
(couleurs `m-*`, icônes `mdi:*`, états error / success / hint).
------------------------------------------------------------------------
@@ -144,10 +155,10 @@ Sortie en **markdown** (par défaut) ou en **HTML**. Aligné sur le thème Malio
### outputFormat
- Type: `'markdown' | 'html'`
- Défaut: `'markdown'`
- Défaut: `'html'`
- Description: Format émis dans `update:modelValue`.
- `markdown` : utilise `tiptap-markdown` (`getMarkdown()`).
- `html` : utilise `editor.getHTML()`.
- `markdown` : utilise `tiptap-markdown` (`getMarkdown()`).
### groupClass / labelClass / editorClass
@@ -166,8 +177,15 @@ Boutons (icônes `mdi:*`) :
- Citation
- Code inline, Bloc de code
- Lien (prompt URL ; vide pour retirer)
- Couleur du texte (palette de 8 swatches + reset)
- Surlignage (palette de 8 swatches + reset)
- Annuler / Rétablir
Les palettes couleur/surlignage s'ouvrent en popover sous leur bouton.
Fermeture : clic sur un swatch, clic en dehors, ou touche **Échap**.
> Les couleurs et surlignages ne sont **pas persistés en markdown** (spec Markdown ne couvre pas la couleur). Pour préserver les couleurs au save/reload, utiliser `output-format="html"`.
------------------------------------------------------------------------
## Accessibilité
@@ -199,4 +217,5 @@ const successValue = ref('Tout est bon de mon côté.')
const disabledValue = ref('Contenu indisponible.')
const readonlyValue = ref('## Compte-rendu\n\n- Point 1\n- Point 2\n\n> Citation importante')
const htmlValue = ref('<p>Contenu <strong>riche</strong>.</p>')
const colorValue = ref('<p>Sélectionner du texte puis utiliser les boutons <span style="color: #bf2600">couleur</span> ou <mark data-color="#fff0b3" style="background-color: #fff0b3">surlignage</mark>.</p>')
</script>