fix(input-rich-text) : couleurs de texte et surlignage façon Jira
Ajoute deux boutons à la toolbar avec popover en palette pour appliquer une couleur de texte ou un surlignage sur la sélection. - 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 du popover sur clic extérieur, Echap, ou clic dans l'éditeur. - Inclut les améliorations rendu/markdown du commit précédent (default outputFormat html, normalizeEditorInput, styles deep pour h2/h3/p/ul/ol/blockquote). - Tests : 4 nouveaux cas (15 au total). - Story et COMPONENTS.md à jour. Note : les couleurs ne sont pas sérialisables en markdown ; pour les conserver au save/reload utiliser output-format=\"html\". Co-Authored-By: RuFlo <ruv@ruv.net>
This commit is contained in:
@@ -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 & 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>
|
||||
|
||||
Reference in New Issue
Block a user