diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d02326..5500d85 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,6 +34,80 @@ Le format suit [Keep a Changelog](https://keepachangelog.com/fr/1.1.0/) et le pr - Réduit volontairement par rapport à PrimeNG : 4 directions (pas 8 — les diagonales), 2 dispositions (pas 4 — sans `quarter-circle`/`semi-circle`), et un seul étalonnage de touches clavier commun aux dispositions plutôt qu'un mappage par cas. `showTooltips` (booléen) simplifie `tooltipOptions` : la position suit automatiquement le sens de déploiement. - 5 hooks `--ui-speed-dial-*` (empan, décalage d'apparition des actions, rayon par défaut du cercle, palier d'empilement, assombrissement du masque). +- **`ui-editor` : outils `indent`/`outdent`** (FSHSP-160). Deux nouveaux `EditorButtonTool`, + passthrough direct sur `document.execCommand('indent'|'outdent')` — pas de marker ni de classe + à convertir, contrairement à `fontFamily`/`fontSize`. Absents de `DEFAULT_EDITOR_TOOLS` (même + logique que `fontSize` : opt-in via `tools`), icônes FontAwesome `indent`/`outdent`. + +- **`ui-editor` : outils `textColor`/`highlightColor`** (FSHSP-160). Deux nouveaux + `EditorButtonTool`, chacun ouvrant un `ui-swatch-picker` en popup (`size="small"`) ancré à son + bouton `ui-button`, plutôt qu'une commande directe — la sélection se fait dans le + `swatchSelect` du nuancier. Palette réutilisée depuis `DEFAULT_SWATCH_PALETTE` + (`ui-swatch-picker`) : `EDITOR_COLORS`/`EDITOR_HIGHLIGHTS` sont dérivées de la même liste pour + que le nuancier et les classes générées portent toujours le même jeu de tokens + `--primitives-*`. Écrits en **classe** (`ui-editor-color-*`/`ui-editor-highlight-*`) — jamais + en style en ligne — via le même mécanisme marker → conversion que `fontFamily`/`fontSize` : + `document.execCommand('foreColor', …)` émet un `` converti en ``, + tandis que `hiliteColor` n'émet **pas** de `` (vérifié empiriquement, Chromium et + Firefox) — il pose un `style="background-color:…"` sur un ``, converti via un sélecteur + d'attribut `style` plutôt que `font[color]`. Le bouton de chaque outil affiche un liseré sous + son icône dans la couleur en vigueur au curseur ; le nuancier propose une pastille + « Aucune couleur » (`allowClear`) qui retire la classe couleur/surlignage de la sélection sans + effacer le reste de la mise en forme — `foreColor`/`hiliteColor` n'ont pas de commande native + « retirer la couleur ». Absents de `DEFAULT_EDITOR_TOOLS` (même logique d'opt-in que + `fontSize`/`indent`/`outdent`). + +- **`ui-swatch-picker` — nuancier de couleur réutilisable** (FSHSP-160). `ui-editor` avait + besoin d'un nuancier couleur texte / surlignage, et rien dans le kit ne couvrait ce + besoin : `ui-menu` structure des commandes, pas une grille de teintes. `ui-swatch-picker` + reprend la mécanique overlay de `ui-menu` (`CdkConnectedOverlay`, `autoFlip`, + re-position au scroll) sans porter son propre bouton trigger — même contrat de + composition que `ui-button-split` avec `ui-menu` (`toggle(event)`/`show(event)`/ + `hide(focusTrigger?)`, `popup`). + - `DEFAULT_SWATCH_PALETTE` (export nommé) : grille 7×5 dérivée des tokens `primitives.*` + (7 teintes `primary`/`secondary`/`green`/`orange`/`red`/`slate`/`grey` × 5 paliers + `900`→`100`, foncé → clair) plus `black`/`white` — chaque pastille pointe une variable + `--primitives-{teinte}-{palier}`, jamais un hex en dur : un rebind de marque change la + grille sans recompilation. `palette` accepte un `UiSwatchGroup[]` personnalisé. + - Navigation clavier **grille 2D** (roving tabindex) : flèches, `Début`/`Fin`, + `Entrée`/`Espace` sélectionnent, `Échap` ferme le popup — mêmes bases que le roving + focus de `ui-menu`, adaptées au calcul ligne/colonne. + - A11y : `role="listbox"` / `role="option"` sur de vrais `