Commit Graph

112 Commits

Author SHA1 Message Date
f7d4b923f4 chore : autorise eslint dans l'allowlist de permissions locale (#MUI-33)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 16:01:16 +02:00
34ac08f153 feat : story et page playground de MalioDateWeek (#MUI-33) 2026-05-20 15:17:49 +02:00
d093923a63 feat : composant MalioDateWeek (sélection semaine ISO) (#MUI-33) 2026-05-20 15:17:19 +02:00
4021240df3 feat : MonthGrid n° de semaine interactif + repère (mode semaine) (#MUI-33) 2026-05-20 15:16:17 +02:00
9263cb3722 feat : helpers purs de semaine ISO (#MUI-33) 2026-05-20 15:15:13 +02:00
1a5ed60912 docs : plan d'implémentation de MalioDateWeek (#MUI-33)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 15:13:38 +02:00
fe9e127b85 docs : spec de conception du composant MalioDateWeek (#MUI-33)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 15:10:25 +02:00
8e6b08400a fix : composant date cross hover + client playground 2026-05-20 14:18:42 +02:00
9a752d08ad feat : surlignage plage en pilule pleine cellule + playground DateRange en largeur ERP (#MUI-33)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 13:58:23 +02:00
4fb23302be feat : story et page playground de MalioDateRange (#MUI-33)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 11:57:09 +02:00
b764f27186 feat : composant MalioDateRange (sélection période) (#MUI-33)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 11:56:05 +02:00
3495c2f63e feat : MonthGrid mode plage (surlignage demi-barre + hover + data-range-role) (#MUI-33)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 11:54:59 +02:00
beb0e32b7e refactor : Date.vue devient une enveloppe du shell CalendarField (#MUI-33) 2026-05-20 11:53:42 +02:00
19a1bb5e50 feat : shell CalendarField partagé (champ + popover + navigation) (#MUI-33) 2026-05-20 11:53:42 +02:00
6e683f714d feat : composable de navigation mois/année du calendrier (#MUI-33)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 11:52:00 +02:00
ccc1cae6a8 feat : helpers purs de plage de dates (#MUI-33)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 11:52:00 +02:00
13b0ea685a docs : plan d'implémentation de MalioDateRange + shell partagé (#MUI-33)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 11:49:39 +02:00
840a5c6c52 docs : spec de conception du composant MalioDateRange + shell partagé (#MUI-33)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 11:44:31 +02:00
c96cb5112d feat : ajustements visuels du datepicker selon maquette (#MUI-33)
- nouveau token couleur m-primary-light (#EFEFFD)
- popover en largeur du champ, shadow au lieu de bordure, collé au champ
- frames semaine (35x45) et jours alignés à 45px, cercle centré, font-medium
- colonne semaine étroite + marge, numéros en black/60 (semaine courante en black)
- vue mois en toutes lettres sur 3 colonnes, blocs 45px
- label bleu et grossissement calibré du champ à l'ouverture
- header sans hover, chevrons et titre plaqués en haut

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 11:13:08 +02:00
9479c649be feat : composant MalioDate (datepicker) avec calendrier, vue mois, bornes et effacement (#MUI-33)
Sous-composants internes (CalendarHeader, MonthGrid, MonthPicker), composant
public Date.vue, tests d'intégration, story Histoire et page playground.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 08:28:01 +02:00
d65884dc44 feat : composable d'état du popover calendrier (#MUI-33)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 08:21:36 +02:00
29d7eff203 feat : composable de matrice mensuelle avec n° de semaine ISO (#MUI-33)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 08:20:08 +02:00
c208551a44 feat : utilitaires de format et validation de date (#MUI-33)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 08:17:26 +02:00
7ab2219764 docs : plan d'implémentation du datepicker MalioDate (#MUI-33)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 08:13:37 +02:00
2ce444ec65 docs : spec de conception du composant datepicker MalioDate (#MUI-33)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 08:04:41 +02:00
ac06ed9ae6 Merge branch 'main' into develop
# Conflicts:
#	.playground/pages/composant/form/client.vue
#	app/components/malio/checkbox/Checkbox.vue
#	app/components/malio/input/InputTextArea.vue
2026-05-13 09:00:12 +02:00
b2e3a83bb9 [#MUI-32] Création d'un composant saisie assistée (autocomplete) (#46)
| Numéro du ticket | Titre du ticket |
|------------------|-----------------|
|                  |                 |

## Description de la PR

## Modification du .env

## Check list

- [ ] Pas de régression
- [ ] TU/TI/TF rédigée
- [ ] TU/TI/TF OK
- [ ] CHANGELOG modifié

Reviewed-on: #46
Co-authored-by: tristan <tristan@yuno.malio.fr>
Co-committed-by: tristan <tristan@yuno.malio.fr>
2026-05-13 06:59:13 +00:00
9ed094ba86 [#MUI-31] Création d'un composant téléphone (#45)
| Numéro du ticket | Titre du ticket |
|------------------|-----------------|
|                  |                 |

## Description de la PR

## Modification du .env

## Check list

- [ ] Pas de régression
- [ ] TU/TI/TF rédigée
- [ ] TU/TI/TF OK
- [ ] CHANGELOG modifié

Reviewed-on: #45
Co-authored-by: tristan <tristan@yuno.malio.fr>
Co-committed-by: tristan <tristan@yuno.malio.fr>
2026-05-12 06:54:35 +00:00
1ffe63827d [#MUI-30] Création d'un composant email (#44)
| Numéro du ticket | Titre du ticket |
|------------------|-----------------|
|                  |                 |

## Description de la PR

## Modification du .env

## Check list

- [ ] Pas de régression
- [ ] TU/TI/TF rédigée
- [ ] TU/TI/TF OK
- [ ] CHANGELOG modifié

Reviewed-on: #44
Co-authored-by: tristan <tristan@yuno.malio.fr>
Co-committed-by: tristan <tristan@yuno.malio.fr>
2026-05-11 08:54:31 +00:00
d9023a0ddc fix: problèmes de taille des champs + Ajout d'un playground form (#43)
All checks were successful
Release / release (push) Successful in 1m11s
| Numéro du ticket | Titre du ticket |
|------------------|-----------------|
|                  |                 |

## Description de la PR

## Modification du .env

## Check list

- [ ] Pas de régression
- [ ] TU/TI/TF rédigée
- [ ] TU/TI/TF OK
- [ ] CHANGELOG modifié

Co-authored-by: kevin <kevin@yuno.malio.fr>
Co-authored-by: matthieu <matthieu@yuno.malio.fr>
Co-authored-by: THOLOT DECHENE Matthieu <matthieu@yuno.malio.fr>
Reviewed-on: #43
Co-authored-by: tristan <tristan@yuno.malio.fr>
Co-committed-by: tristan <tristan@yuno.malio.fr>
v1.4.9
2026-05-11 07:38:57 +00:00
eb21827686 Merge branch 'main' into develop 2026-05-11 09:38:39 +02:00
6938e730b6 fix: problèmes de taille des champs + Ajout d'un playground form (#42)
| Numéro du ticket | Titre du ticket |
|------------------|-----------------|
|                  |                 |

## Description de la PR

## Modification du .env

## Check list

- [ ] Pas de régression
- [ ] TU/TI/TF rédigée
- [ ] TU/TI/TF OK
- [ ] CHANGELOG modifié

Reviewed-on: #42
Co-authored-by: tristan <tristan@yuno.malio.fr>
Co-committed-by: tristan <tristan@yuno.malio.fr>
2026-05-11 07:37:49 +00:00
c646df9fe3 fix: republier 1.4.8 (couleurs éditeur rich text) (#41)
All checks were successful
Release / release (push) Successful in 1m8s
## Pourquoi

Le squash-merge de #40 a utilisé le titre \`release : ...\` comme message du merge commit. Le mot \`release\` n'est pas un type reconnu par le \`commit-analyzer\` (angular preset reconnaît \`feat\`, \`fix\`, \`perf\`, etc.). Résultat : semantic-release a tourné mais n'a rien publié → le code des couleurs est sur main mais 1.4.8 n'est jamais sorti.

## Quoi

Un commit vide \`fix(release) : ...\` qui force le bump patch et republie en 1.4.8.

## Note durable

Le titre des PR de release **doit** être un Conventional Commit (\`fix: ...\`, \`feat: ...\`). Avec squash-merge, c'est ce titre qui devient le message analysé.

Co-authored-by: tristan <tristan@yuno.malio.fr>
Co-authored-by: Kevin Boudet <kevin@yuno.malio.fr>
Co-authored-by: kevin <kevin@yuno.malio.fr>
Reviewed-on: #41
v1.4.8
2026-05-04 18:42:23 +00:00
174f1f9a64 Merge branch 'main' into develop 2026-05-04 18:42:13 +00:00
30efd482d8 fix(release) : republier 1.4.8 pour les couleurs de l'éditeur rich text
Le squash-merge de #40 a utilisé le titre "release : ..." comme
message de commit. "release" n'est pas un type reconnu par le
commit-analyzer (angular preset) donc semantic-release n'a rien
publié alors que le code des couleurs est bien sur main.

Ce commit force le release en utilisant le type "fix" attendu
par l'analyzer.

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-05-04 20:41:45 +02:00
7fc072ad08 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
2026-05-04 18:03:40 +00:00
7dec45b374 Merge branch 'main' into develop 2026-05-04 18:03:33 +00:00
ea92acff3a 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>
2026-05-04 20:01:55 +02:00
f30619a497 fix: ajout du composant rich text editor (TipTap v3) (#39)
All checks were successful
Release / release (push) Successful in 1m8s
## Résumé

Release pour publier le composant `MalioInputRichText` (mergé via #37 dans `develop`).

Inclut également un correctif de configuration `semantic-release` pour tolérer le format de commits du repo (`<type>(<scope>) : <message>` avec espace avant `:`).

## Changements

- **#37** — `feat(input-rich-text)` : composant éditeur de texte riche TipTap v3 (déjà sur `develop`)
- **chore(release)** : `parserOpts.headerPattern` ajouté à `commit-analyzer` et `release-notes-generator` dans `.releaserc.json` pour matcher le format Malio avec espace

## Pourquoi un titre `fix:` et pas `feat:`

Choix utilisateur — bump souhaité **patch** (`v1.4.6` → `v1.4.7`) plutôt que minor.

## Test plan

- [ ] Workflow Gitea Actions se déclenche après merge
- [ ] semantic-release détecte le commit `fix:` et bump en `v1.4.7`
- [ ] Tag `v1.4.7` créé
- [ ] Package publié sur Gitea Packages npm registry
- [ ] Test côté projet consommateur : `npm update @malio/layer-ui` → import `<MalioInputRichText>`

## Note durable

Pour les futures PR de release : titre de la PR = un commit Conventional Commits (ex: `fix: …`, `feat: …`, `chore: …`). Avec ce parserOpts en place, l'espace avant `:` est désormais toléré par semantic-release.

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: #39
Co-authored-by: matthieu <matthieu@yuno.malio.fr>
Co-committed-by: matthieu <matthieu@yuno.malio.fr>
v1.4.7
2026-05-04 13:27:57 +00:00
a3421c02e9 Merge remote-tracking branch 'origin/main' into develop 2026-05-04 15:27:10 +02:00
5563d89743 chore(release) : tolérer l'espace avant ':' dans le commit-analyzer
Le hook commit-msg du repo impose le format `<type>(<scope>) : <message>`
avec un espace avant le ':', mais le preset Angular du commit-analyzer
de semantic-release attend le format standard sans espace. Ce décalage
empêchait semantic-release de reconnaître les commits squashés sur main
si le titre de PR contenait un espace ou un type non standard.

On ajoute parserOpts.headerPattern à commit-analyzer ET
release-notes-generator pour matcher les deux formats.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 15:24:24 +02:00
d7bf038fdd release : rich text editor (TipTap) (#38)
All checks were successful
Release / release (push) Successful in 1m6s
## Résumé

Release de `develop` vers `main` pour déclencher `semantic-release` (publication sur Gitea Packages).

Inclut :
- **#37** — `feat(input-rich-text) : ajout d'un éditeur de texte riche basé sur TipTap v3`

Le commit `feat:` déclenchera un bump **minor** (rétrocompatible).

## Test plan

- [x] Tests verts sur `develop` (315/315)
- [x] Lint OK (0 erreur sur les fichiers ajoutés)
- [x] Histoire build OK
- [ ] Vérifier le run du workflow `release.yml` après merge
- [ ] Vérifier la nouvelle version publiée sur Gitea Packages

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: #38
2026-05-04 13:15:41 +00:00
640ff90187 Merge branch 'main' into develop 2026-05-04 13:15:24 +00:00
2eb7a5247a feat(input-rich-text) : ajout d'un éditeur de texte riche basé sur TipTap v3 (#37)
## Résumé

Nouveau composant `MalioInputRichText` : éditeur WYSIWYG basé sur **TipTap v3** + **StarterKit** + **tiptap-markdown**, aligné sur le thème Malio (couleurs `m-*`, icônes `mdi:*`, états error / success / hint).

## Détails

- **Toolbar** : gras, italique, barré, H2, H3, liste à puces, liste numérotée, citation, code inline, bloc de code, lien (prompt URL), undo / redo
- **Sortie** : `markdown` (par défaut) ou `html` via la prop `outputFormat`
- **Modes** : `editable`, `disabled`, `readonly` ; mode lecture seule (`editable=false`) rend le contenu en `prose` sans toolbar
- **Accessibilité** : label `for/id`, `aria-invalid`, `aria-describedby`, `aria-pressed` sur les boutons toolbar
- **Style** : floating focus border `m-primary`, error `m-danger`, success `m-success`, toolbar `bg-m-bg`

## Dépendances ajoutées (purement additives, aucun bump existant)

- `@tiptap/vue-3` ^3.22.5
- `@tiptap/starter-kit` ^3.22.5
- `@tiptap/extension-placeholder` ^3.22.5
- `@tiptap/pm` ^3.22.5
- `tiptap-markdown` ^0.9.0

> Note : `@tiptap/extension-link` n'est pas installé séparément car StarterKit v3 l'inclut nativement (configuré via `StarterKit.configure({ link: { ... } })`).

## Test plan

- [x] `npm run test` — 315/315 (12 nouveaux tests sur InputRichText)
- [x] `npm run lint` — 0 erreur sur les fichiers ajoutés
- [x] `npm run story:build` — Histoire build OK (story `Input/RichText` listée)
- [x] `npm run dev` — playground `/composant/input/inputRichText` (vérification visuelle des 8 variantes : simple, hint, erreur, succès, readonly, disabled, lecture seule, sortie HTML)
- [x] `npm run story:dev` — story `Input/RichText` avec docs

## Fichiers

- `app/components/malio/input/InputRichText.vue` — composant
- `app/components/malio/input/InputRichText.test.ts` — tests
- `.playground/pages/composant/input/inputRichText.vue` — playground
- `app/story/input/inputRichText.story.vue` — story Histoire
- `histoire.config.ts` — alias ESM + `optimizeDeps` pour `tiptap-markdown` (sinon Histoire choisit la build UMD)
- `CHANGELOG.md`, `COMPONENTS.md` — documentation

Reviewed-on: #37
Co-authored-by: matthieu <matthieu@yuno.malio.fr>
Co-committed-by: matthieu <matthieu@yuno.malio.fr>
2026-05-04 13:12:38 +00:00
2059556ffe fix: option vide rendue uniquement si emptyOptionLabel non vide (#36)
All checks were successful
Release / release (push) Successful in 1m11s
| Numéro du ticket | Titre du ticket |
|------------------|-----------------|
|                  |                 |

## Description de la PR

## Modification du .env

## Check list

- [ ] Pas de régression
- [ ] TU/TI/TF rédigée
- [ ] TU/TI/TF OK
- [ ] CHANGELOG modifié

Co-authored-by: kevin <kevin@yuno.malio.fr>
Co-authored-by: Kevin Boudet <kevin@yuno.malio.fr>
Reviewed-on: #36
Co-authored-by: tristan <tristan@yuno.malio.fr>
Co-committed-by: tristan <tristan@yuno.malio.fr>
v1.4.6
2026-04-27 12:59:18 +00:00
3336ff0c69 Merge branch 'main' into develop 2026-04-27 14:58:25 +02:00
da3a4cb349 fix(select) : option vide rendue uniquement si emptyOptionLabel non vide 2026-04-27 14:51:49 +02:00
a95cf8cdfb fix: select checkbox (#35)
All checks were successful
Release / release (push) Successful in 1m10s
| Numéro du ticket | Titre du ticket |
|------------------|-----------------|
|                  |                 |

## Description de la PR

## Modification du .env

## Check list

- [ ] Pas de régression
- [ ] TU/TI/TF rédigée
- [ ] TU/TI/TF OK
- [ ] CHANGELOG modifié

Co-authored-by: kevin <kevin@yuno.malio.fr>
Co-authored-by: Kevin Boudet <kevin@yuno.malio.fr>
Reviewed-on: #35
Co-authored-by: tristan <tristan@yuno.malio.fr>
Co-committed-by: tristan <tristan@yuno.malio.fr>
v1.4.5
2026-04-27 10:09:24 +00:00
0ddae4dd70 Merge branch 'main' into develop 2026-04-27 12:05:31 +02:00
23210e6868 refactor(select-checkbox) : ré-aligner la structure sur MalioSelect 2026-04-27 11:44:18 +02:00