origam 2.18.19 → 2.18.21

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 (59) hide show
  1. package/CHANGELOG.md +101 -0
  2. package/dist/src/assets/css/main.css +1 -1
  3. package/dist/src/assets/css/tokens/origam-utilities.css +30 -0
  4. package/dist/src/assets/css/tokens/primitive.css +5 -0
  5. package/dist/src/assets/scss/tokens/_origam-utilities.scss +30 -0
  6. package/dist/src/assets/scss/tokens/_primitive.scss +5 -0
  7. package/dist/src/components/Blockquote/OrigamBlockquote.vue +2 -1
  8. package/dist/src/components/TextMask/OrigamTextMask.vue +2 -1
  9. package/dist/src/components/Title/OrigamTitle.vue +2 -1
  10. package/dist/src/composables/Commons/backdrop.composable.cjs +50 -0
  11. package/dist/src/composables/Commons/backdrop.composable.d.ts +32 -0
  12. package/dist/src/composables/Commons/backdrop.composable.js +33 -0
  13. package/dist/src/composables/Commons/opacity.composable.cjs +50 -0
  14. package/dist/src/composables/Commons/opacity.composable.d.ts +33 -0
  15. package/dist/src/composables/Commons/opacity.composable.js +34 -0
  16. package/dist/src/composables/Commons/stateEffect.composable.cjs +17 -2
  17. package/dist/src/composables/Commons/stateEffect.composable.d.ts +7 -2
  18. package/dist/src/composables/Commons/stateEffect.composable.js +23 -2
  19. package/dist/src/composables/Commons/typography.composable.cjs +7 -0
  20. package/dist/src/composables/Commons/typography.composable.d.ts +6 -1
  21. package/dist/src/composables/Commons/typography.composable.js +9 -0
  22. package/dist/src/composables/index.cjs +24 -0
  23. package/dist/src/composables/index.d.ts +2 -0
  24. package/dist/src/composables/index.js +2 -0
  25. package/dist/src/consts/Commons/backdrop.const.cjs +15 -0
  26. package/dist/src/consts/Commons/backdrop.const.d.ts +47 -0
  27. package/dist/src/consts/Commons/backdrop.const.js +9 -0
  28. package/dist/src/consts/Commons/border.const.cjs +4 -1
  29. package/dist/src/consts/Commons/border.const.d.ts +0 -18
  30. package/dist/src/consts/Commons/border.const.js +7 -2
  31. package/dist/src/consts/Commons/opacity.const.cjs +20 -0
  32. package/dist/src/consts/Commons/opacity.const.d.ts +58 -0
  33. package/dist/src/consts/Commons/opacity.const.js +14 -0
  34. package/dist/src/consts/index.cjs +22 -0
  35. package/dist/src/consts/index.d.ts +2 -0
  36. package/dist/src/consts/index.js +2 -0
  37. package/dist/src/interfaces/Commons/backdrop.interface.cjs +1 -0
  38. package/dist/src/interfaces/Commons/backdrop.interface.d.ts +49 -0
  39. package/dist/src/interfaces/Commons/backdrop.interface.js +0 -0
  40. package/dist/src/interfaces/Commons/opacity.interface.cjs +1 -0
  41. package/dist/src/interfaces/Commons/opacity.interface.d.ts +37 -0
  42. package/dist/src/interfaces/Commons/opacity.interface.js +0 -0
  43. package/dist/src/interfaces/Commons/state-effect.interface.d.ts +31 -0
  44. package/dist/src/interfaces/Commons/typography.interface.d.ts +47 -3
  45. package/dist/src/interfaces/index.cjs +22 -0
  46. package/dist/src/interfaces/index.d.ts +2 -0
  47. package/dist/src/interfaces/index.js +2 -0
  48. package/dist/src/types/Commons/backdrop.type.cjs +1 -0
  49. package/dist/src/types/Commons/backdrop.type.d.ts +23 -0
  50. package/dist/src/types/Commons/backdrop.type.js +0 -0
  51. package/dist/src/types/Commons/opacity.type.cjs +1 -0
  52. package/dist/src/types/Commons/opacity.type.d.ts +36 -0
  53. package/dist/src/types/Commons/opacity.type.js +0 -0
  54. package/dist/src/types/Commons/state-effect.type.d.ts +2 -1
  55. package/dist/src/types/index.cjs +22 -0
  56. package/dist/src/types/index.d.ts +2 -0
  57. package/dist/src/types/index.js +2 -0
  58. package/dist/src/types/tokens.type.d.ts +1 -1
  59. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -18,6 +18,107 @@ This project follows [Semantic Versioning](https://semver.org).
18
18
 
19
19
  ## [Unreleased]
20
20
 
21
+ ## [2.18.21] - 2026-09-30
22
+
23
+ ### Fixed — `useBorder` supprimait silencieusement une largeur en `var()`
24
+
25
+ `BORDER_REGEX` n'acceptait en largeur que des chiffres suivis d'une unite,
26
+ tandis que son groupe **couleur** accepte `var(--…)`. Une chaine comme
27
+ `borderLeft="var(--x) solid var(--y)"` etait donc happee **entierement par le
28
+ groupe couleur** : `parseBorderPositionValue` renvoyait une largeur vide,
29
+ `formatBorderPositionStylesVar` sautait la declaration, et le navigateur
30
+ jetait le `border-left-color` invalide. Resultat rendu : un bord `medium`
31
+ (~3px) en `currentColor` au lieu de la largeur et de la couleur demandees.
32
+
33
+ ⛔ **Aucun diagnostic.** Le type-check passait, rien n'etait leve, rien
34
+ n'etait logue. Le chemin booleen (`borderLeft: true`) emettait pourtant un
35
+ `var()` correctement — seul l'analyseur de chaine refusait.
36
+
37
+ Le groupe `width` accepte desormais une alternative `var()`, **conditionnee
38
+ par un lookahead sur un mot-clé de style**. Ce garde n'est pas decoratif : les
39
+ trois groupes de la regex peuvent matcher vide, donc une alternative `var()`
40
+ nue aurait happe `var(--ma-couleur)` — une couleur SEULE, cas courant qui
41
+ fonctionnait — et aurait inverse la panne. Le lookahead tire sa liste de
42
+ `BORDER_STYLE`, pour qu'elle ne puisse plus deriver de celle du groupe `style`.
43
+
44
+ ⚠️ **Limite connue, pinnee par trois tests et non corrigee ici.** Une largeur
45
+ `var()` **contenant une espace** (`var(--x, 4px)`) ne passe que par les props
46
+ PAR COTE. La prop globale `border` fait un `split(' ')` et coupe la valeur en
47
+ fragments invalides. Avant ce lot la meme valeur tombait entiere dans `color`
48
+ et y etait scindee en quatre — aucun bord dans les deux cas, donc pas de
49
+ regression, mais pas repare. **Un preset portant une largeur tokenisee doit
50
+ viser une prop par cote ou d'axe, jamais `border`.**
51
+
52
+ ### Added — `fontStyle` en passthrough sur `ITypographyProps`
53
+
54
+ `font-style` n'avait ni prop, ni groupe de tokens, ni classe utilitaire
55
+ (`0` occurrence dans `interfaces/Commons/` et `composables/Commons/`, `0` pour
56
+ `font__style` dans `primitive.css`). `useTypography` enveloppant toute valeur
57
+ en token, `italic` / `normal` — des mots-clés CSS, pas des echelons — devaient
58
+ passer **litteralement**. Aucun canal nouveau : `--origam-blockquote---font-style`
59
+ etait deja declare et deja lu.
60
+
61
+ ### Internal — ce que la campagne zero-changement ne prouve pas
62
+
63
+ `BORDER_REGEX` sert la prop `border` sur ~100 composants sans baseline VRT, et
64
+ la verification exigee etait donc : aucune valeur du depot ne change de
65
+ decoupage. Verdict — **81 valeurs `border*` distinctes, 81 decoupages
66
+ identiques, delta zero**.
67
+
68
+ ⛔ Mais la regex **naive** que ce garde-fou existe pour eviter ne diverge, elle
69
+ non plus, **sur aucune des 81 valeurs reelles** : aucun fichier du depot ne
70
+ passe une couleur `var()` seule a une prop de bordure. **Le corpus reel
71
+ n'aurait pas attrape la regression inverse** — seul le controle negatif
72
+ synthetique `var(--c)` l'attrape. Une campagne sur valeurs reelles prouve
73
+ moins qu'elle n'en a l'air ; les controles negatifs sont ce qui la rend
74
+ concluante. Consigne dans `border.const.ts`.
75
+
76
+ Hors paquet publie, dans le meme intervalle : `pnpm audit` est repasse de
77
+ **7 high / 7 moderate / 3 low** a **0**, par relevement de trois `overrides`
78
+ (`brace-expansion@2`, `brace-expansion@5`, `undici@8`). Aucun fichier de
79
+ `packages/ds` touche, donc le tarball est inchange par cette partie.
80
+
81
+ ## [2.18.20] - 2026-09-30
82
+
83
+ ### Added — surfaces de props `opacity` et `backdrop`, et les deux trous de `IStateEffectConfig`
84
+
85
+ **Aucun composant converti.** Ce lot pose les surfaces de props sans lesquelles
86
+ les variants `plain` et `ghost` d'`OrigamBtn` ne peuvent pas devenir des presets
87
+ ADR-005 — c'est du déblocage, la conversion vient après.
88
+
89
+ - `IOpacityProps` + `useOpacity`, `IBackdropProps` + `useBackdrop` — quatre
90
+ absences vérifiées à **0 occurrence** avant ce lot.
91
+ - `IStateEffectConfig` gagne **`opacity` ET `borderColor`**. L'audit D6 de
92
+ l'ADR-005 ne citait que le premier : `outlined --active` pose un
93
+ `border-color`, que le raccourci `border` ne peut pas porter. Trouvé à la
94
+ mesure, consigné en commentaire sur la prop elle-même.
95
+ - Nouvelle échelle primitive de flou — `--origam-blur---{xs,sm,md,lg,xl}` =
96
+ `4 / 6 / 8 / 16 / 24px`. Les échelons viennent d'un **comptage des littéraux
97
+ `blur(Npx)`** sur `packages/ds/src` + `packages/marketing/src`
98
+ (`8px ×25, 16px ×21, 6px ×17, 20px ×14, 24px ×7, 12px ×7, 28px ×5`), d'où
99
+ `sm = 6px` plutôt qu'un doublement régulier.
100
+ - 30 classes utilitaires, dans la feuille CSS **et** son jumeau SCSS.
101
+
102
+ ### Internal — réutilisé plutôt que créé
103
+
104
+ Deux des quatre manques annoncés par l'ADR n'en étaient qu'à moitié :
105
+
106
+ - **L'échelle primitive d'opacité existait déjà** — `--origam-opacity---{0,12,
107
+ 26,32,50,60,70,87,100}`, déclarée dans `primitive.css` et **déjà lue** par la
108
+ règle `--variant-plain` de Btn. D6 proposait « `IOpacityProps` + un groupe de
109
+ tokens » : seule la première moitié manquait. Aucune seconde échelle n'a été
110
+ déclarée.
111
+ - **Le canal `--origam-{cmp}---backdrop-filter` était déjà en place sur 12
112
+ composants** (Alert, Card, Chip, Field, Menu, Sheet, Snackbar, Tooltip,
113
+ Toolbar, Overlay, CommandPalette, Btn). Ce qui manquait vraiment, c'était
114
+ l'échelle de flou ci-dessus.
115
+
116
+ `borderColor` et `opacity` sur `IStateEffectConfig` empruntent leurs types à
117
+ `IBorderProps['borderColor']` et `IOpacityProps` — comme `border` le faisait
118
+ déjà. `useStateEffect` transmettait **déjà** `borderColor` à `useBorder`, mais
119
+ en le lisant sur `props` et documenté « non state-swappable » : le getter passe
120
+ désormais par `pickEffective`, sans nouveau chemin de code.
121
+
21
122
  ## [2.18.19] - 2026-09-30
22
123
 
23
124
  ### Changed — ⚠️ RUPTURE : `useLayout` renommé `useLayoutMain`