origam 2.21.0 → 2.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/dist/src/assets/css/main.css +1 -1
  3. package/dist/src/assets/css/tokens/dark.css +8 -0
  4. package/dist/src/assets/css/tokens/light.css +3 -0
  5. package/dist/src/assets/scss/tokens/_dark.scss +8 -0
  6. package/dist/src/assets/scss/tokens/_light.scss +3 -0
  7. package/dist/src/components/CommandPalette/OrigamCommandPalette.vue +8 -2
  8. package/dist/src/components/ContextualMenu/OrigamContextualMenu.vue +1 -1
  9. package/dist/src/components/Dialog/OrigamDialog.vue +1 -1
  10. package/dist/src/components/Dialog/OrigamDialogConfirmation.vue +1 -1
  11. package/dist/src/components/Drawer/OrigamDrawer.vue +12 -2
  12. package/dist/src/components/Menu/OrigamMenu.vue +1 -1
  13. package/dist/src/components/Overlay/OrigamOverlay.vue +2 -2
  14. package/dist/src/components/Snackbar/OrigamSnackbar.vue +1 -1
  15. package/dist/src/components/Snackbar/OrigamSnackbarGroup.vue +8 -2
  16. package/dist/src/components/Tooltip/OrigamTooltip.vue +1 -1
  17. package/dist/src/composables/Commons/hydration.composable.cjs +8 -3
  18. package/dist/src/composables/Commons/hydration.composable.d.ts +13 -5
  19. package/dist/src/composables/Commons/hydration.composable.js +6 -1
  20. package/dist/src/composables/Commons/teleport.composable.cjs +3 -0
  21. package/dist/src/composables/Commons/teleport.composable.d.ts +56 -0
  22. package/dist/src/composables/Commons/teleport.composable.js +3 -0
  23. package/dist/src/interfaces/CommandPalette/command-palette.interface.d.ts +2 -1
  24. package/dist/src/interfaces/Commons/attach.interface.cjs +1 -0
  25. package/dist/src/interfaces/Commons/attach.interface.d.ts +30 -0
  26. package/dist/src/interfaces/Commons/attach.interface.js +0 -0
  27. package/dist/src/interfaces/Drawer/drawer.interface.d.ts +24 -1
  28. package/dist/src/interfaces/Overlay/overlay.interface.d.ts +2 -2
  29. package/dist/src/interfaces/Snackbar/snackbar-group.interface.d.ts +2 -1
  30. package/dist/src/interfaces/index.cjs +11 -0
  31. package/dist/src/interfaces/index.d.ts +1 -0
  32. package/dist/src/interfaces/index.js +1 -0
  33. package/dist/src/themes/origam.theme.cjs +10 -1
  34. package/dist/src/themes/origam.theme.js +10 -1
  35. package/dist/src/types/tokens.type.d.ts +1 -1
  36. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -18,6 +18,60 @@ This project follows [Semantic Versioning](https://semver.org).
18
18
 
19
19
  ## [Unreleased]
20
20
 
21
+ ## [2.22.0] - 2026-10-07
22
+
23
+ ### Added — `attach` sur `OrigamCommandPalette`, `OrigamSnackbarGroup` et `OrigamDrawer`
24
+
25
+ Ces trois composants codaient en dur `<teleport to="body">` et n'offraient **aucun moyen de
26
+ rediriger** la cible, alors que toute la famille Overlay — Tooltip, Snackbar, Dialog, Menu, via
27
+ `IOverlayProps` — portait déjà `attach`. C'était une surface à moitié implémentée, et la directive
28
+ d'`adr-007-directional-props.md` est explicite : *si un format existe, il existe partout ; on ne
29
+ fait pas moitié*.
30
+
31
+ La prop est désormais extraite dans `interfaces/Commons/attach.interface.ts` (`IAttachProps`) au
32
+ lieu d'être redéclarée sur chaque interface, et consommée par le point unique existant,
33
+ `useTeleport`.
34
+
35
+ **Vérifié sur le parent DOM réel** du nœud téléporté, pas sur l'acceptation de la prop : les 9
36
+ tests `attach` sont **9/9 rouges sur le commit parent**, verts sur la branche.
37
+
38
+ ### Added — `--origam-color__text---tertiary`
39
+
40
+ Troisième niveau de texte sémantique, déclaré dans `light.css` (`neutral-500`) et `dark.css`
41
+ (`neutral-400`), leurs jumeaux SCSS, et l'union `TTokenName`.
42
+
43
+ Il était **lu par 27 fichiers** de `packages/marketing` et déclaré **nulle part** : un canal de
44
+ thème mort depuis toujours, qui rendait correctement par son seul repli. Les pages de référence,
45
+ `HomeThemes`, `WhyOrigamThemeDemo`, les pages d'administration et `apple.theme.ts` le consommaient
46
+ tous dans le vide.
47
+
48
+ ⚠️ **Aplatissement assumé** : en mode sombre, `tertiary` et `secondary` résolvent la même valeur
49
+ (`neutral-400`). Il n'existe aucun échelon entre `neutral-400` et `neutral-500`, et `neutral-500`
50
+ sur la surface sombre mesure **4,18:1** — sous le seuil AA de 4,5:1. Un niveau de hiérarchie perdu
51
+ a été préféré à une violation de contraste.
52
+
53
+ ### Fixed — `useTeleport` ne réévaluait jamais sa cible après l'hydratation
54
+
55
+ Le `computed` qui résout la cible de téléportation n'avait **aucune dépendance réactive** sur
56
+ `document.querySelector`. Sous SSR — et sous Histoire, où chaque story est enveloppée dans un
57
+ `<Suspense>` — la première évaluation pouvait tomber **avant** que l'arbre voisin soit commité dans
58
+ le DOM, et rien ne la redéclenchait ensuite.
59
+
60
+ Le symptôme n'était pas théorique : quatre tests e2e du site marketing échouaient sur
61
+ « *sans erreur JS console* » et « *pas d'erreur d'hydratation* ».
62
+
63
+ Le correctif réutilise `useHydration()`, qui porte déjà les deux gardes nécessaires — `IN_BROWSER`
64
+ et `ssr` — au lieu d'un compteur de montage local qui les ignorait. Le défaut touchait **toute la
65
+ famille Overlay**, pas seulement les trois composants de ce lot ; c'est `OrigamDrawer` qui l'a
66
+ révélé.
67
+
68
+ ### Fixed — le thème `origam` sombre posait un `text---tertiary` qui échoue en AA
69
+
70
+ `origamDarkTheme` fixait `tertiary` à `#737373`, soit **4,18:1** sur la surface sombre. Le défaut
71
+ était invisible parce que le canal n'était alimenté par aucune feuille — mais ce bloc runtime
72
+ **gagne la cascade** sur la feuille, donc déclarer le token sans corriger ce thème n'aurait rien
73
+ réglé en mode sombre. Attrapé par `theme-sheet-parity.spec.ts`, rouge avant / vert après.
74
+
21
75
  ## [2.21.0] - 2026-10-01
22
76
 
23
77
  ### Changed — ⚠️ `OrigamBlockquote` : le `variant` est un preset de props, plus un bloc SCSS