origam 2.24.0 → 2.26.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.
- package/CHANGELOG.md +44 -0
- package/dist/src/assets/css/main.css +1 -1
- package/dist/src/assets/css/tokens/dark.css +2 -16
- package/dist/src/assets/css/tokens/light.css +1 -8
- package/dist/src/assets/scss/tokens/_dark.scss +2 -16
- package/dist/src/assets/scss/tokens/_light.scss +1 -8
- package/dist/src/components/Btn/OrigamBtn.vue +89 -124
- package/dist/src/components/Card/OrigamCard.vue +80 -13
- package/dist/src/components/DataTable/OrigamDataTable.vue +26 -1
- package/dist/src/components/DataTable/OrigamDataTableRows.vue +58 -12
- package/dist/src/components/ExpansionPanel/OrigamExpansionPanel.vue +4 -2
- package/dist/src/components/ExpansionPanel/OrigamExpansionPanelContent.vue +12 -3
- package/dist/src/components/Field/OrigamField.vue +120 -152
- package/dist/src/components/Skeleton/OrigamSkeleton.vue +2 -7
- package/dist/src/components/Switch/OrigamSwitch.vue +1 -69
- package/dist/src/enums/DataTable/data-table.enum.cjs +8 -2
- package/dist/src/enums/DataTable/data-table.enum.d.ts +16 -0
- package/dist/src/enums/DataTable/data-table.enum.js +6 -0
- package/dist/src/interfaces/Btn/btn.interface.d.ts +3 -3
- package/dist/src/interfaces/Commons/loader.interface.d.ts +13 -1
- package/dist/src/interfaces/Field/field.interface.d.ts +2 -2
- package/dist/src/interfaces/Skeleton/skeleton.interface.d.ts +13 -0
- package/dist/src/interfaces/Switch/switch.interface.d.ts +2 -2
- package/dist/src/types/Commons/loader.type.d.ts +24 -0
- package/dist/src/types/tokens.type.d.ts +1 -1
- package/dist/src/utils/DataTable/skeleton-cell.util.cjs +13 -0
- package/dist/src/utils/DataTable/skeleton-cell.util.d.ts +12 -0
- package/dist/src/utils/DataTable/skeleton-cell.util.js +7 -0
- package/dist/src/utils/Skeleton/skeleton.util.cjs +30 -0
- package/dist/src/utils/Skeleton/skeleton.util.d.ts +33 -0
- package/dist/src/utils/Skeleton/skeleton.util.js +23 -0
- package/dist/src/utils/index.cjs +22 -0
- package/dist/src/utils/index.d.ts +2 -0
- package/dist/src/utils/index.js +2 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -18,6 +18,50 @@ This project follows [Semantic Versioning](https://semver.org).
|
|
|
18
18
|
|
|
19
19
|
## [Unreleased]
|
|
20
20
|
|
|
21
|
+
## [2.26.0] - 2026-10-14
|
|
22
|
+
|
|
23
|
+
### Changed — `OrigamCard`, `OrigamExpansionPanel(Content)`, `OrigamDataTableRows` : le skeleton suit l'anatomie du conteneur (#1073 lot 2b, #1081, #1076)
|
|
24
|
+
|
|
25
|
+
Lot 2b de #1073 (decisions 1, 4 et 8). Mesure : sonde Chromium `pnpm -F @origam/tests audit:skeleton-containers`, meme code de sonde avant (`e23bc137e`) et apres, `loading={ type: 'skeleton' }`.
|
|
26
|
+
|
|
27
|
+
| conteneur | elements DOM | `role="status"` | `aria-hidden` |
|
|
28
|
+
|---|---|---|---|
|
|
29
|
+
| `OrigamCard` (image, titre, sous-titre, footer) | 9 → 11 | 1 → 1 | 4 → 7 |
|
|
30
|
+
| `OrigamExpansionPanel` (ouvert) | 16 → 16 | 3 → 1 | 1 → 4 |
|
|
31
|
+
| `OrigamDataTable` (4 colonnes) | 68 → 49 | 20 → 1 (hors des lignes) | 4 → 29 |
|
|
32
|
+
|
|
33
|
+
La carte gagne 2 elements : elle dessine desormais 7 formes (media, titre, sous-titre, 2 lignes, 2 actions) la ou le gabarit fixe en dessinait 4. Le panneau garde le meme nombre d'elements : un groupe remplace le `div.__loader` vide. La table perd les 20 `<origam-skeleton>` et gagne un seul `<span role="status">` d'annonce.
|
|
34
|
+
|
|
35
|
+
**Ruptures (assumees, pre-1.0) :**
|
|
36
|
+
- `OrigamCard` n'utilise plus `variant="card"` ni le wrapper `.origam-card__loader` pour le skeleton : la silhouette est un `OrigamSkeletonGroup` (une annonce, une horloge) de primitives `aria-hidden`. Seules les parties que la carte possede sont dessinees (media si `image` / `#asset`, actions si `#footer`). Les overrides du `loading` sont repartis : `animation` et `label` vers le groupe, `color` / `bgColor` / `rounded` vers chaque primitive.
|
|
37
|
+
- `OrigamExpansionPanelContent` : les 3 lignes sont dans un seul `OrigamSkeletonGroup` — **une** annonce `role="status"` au lieu de trois.
|
|
38
|
+
- `OrigamExpansionPanel` ne rend plus le `div.origam-expansion-panel__loader` quand le type est `skeleton` (il etait vide, #1076 point 3).
|
|
39
|
+
- `OrigamDataTableRows` : les `<td>` des 5 lignes factices sont l'hote (`.origam--skeleton`), sans `<origam-skeleton>` ; lignes et cellules `aria-hidden`. **Une** annonce pour la table : un `<span role="status">` visuellement masque rendu par `OrigamDataTable` dans le slot `top` de `OrigamTable` (a cote du `<table>`, seul endroit ou un `<span>` est valide ; ni `<tr>` ni `<caption>`, qui appartient au consommateur), et `aria-busy="true"` sur la racine de la table. La barre suit la colonne : plus courte et collee a la fin pour `align: 'end'`, carre pour `data-table-select` / `data-table-expand`, barre de largeur variable sinon. Les `overrides` `animation` et `label` de `TLoaderConfig` sont enfin transmis ; `color` / `rounded` n'ont pas de noeud ou se poser.
|
|
40
|
+
- Tokens retires : `--origam-card__loader---min-height-skeleton` (remplace par `--origam-card__skeleton---padding`) et `--origam-data-table-rows--skeleton---cell-padding` (la cellule prend le padding de la table).
|
|
41
|
+
|
|
42
|
+
**Ajouts :** utilitaires `splitSkeletonOverrides` et `getSkeletonHostClasses` (`utils/Skeleton`), `getSkeletonCellShape` (`utils/DataTable`), enum `DATATABLE_SKELETON_CELL`, interface `ISkeletonOverrides`. Les gabarits `card` / `list-item` de `OrigamSkeleton` ne sont PAS retires ici (#1083).
|
|
43
|
+
|
|
44
|
+
## [2.25.0] - 2026-10-14
|
|
45
|
+
|
|
46
|
+
### Changed — `OrigamBtn`, `OrigamSwitch` et `OrigamField` n'ont plus de mode skeleton (#1080, lot 2a de #1073)
|
|
47
|
+
|
|
48
|
+
Decision n°2 du proprietaire sous #1073 : un controle qui execute une action n'est pas un placeholder. Avant, `loading: { type: 'skeleton' }` **remplacait** le controle : le bouton perdait son nom accessible (`button "Loading..."`) et imbriquait un `<div>` dans un `<span>` dans un `<button>`, l'interrupteur perdait sa case, le champ demontait son `<input>` et son label. Mesure (Chromium, `origin/develop` @ `3750f0791`, etude #1073).
|
|
49
|
+
|
|
50
|
+
**Ruptures (assumees, pre-1.0) :**
|
|
51
|
+
- `loading` n'accepte plus `{ type: 'skeleton', … }` sur `OrigamBtn`, `OrigamSwitch`, `OrigamField` et leurs derives (`OrigamSelect`, `OrigamTextField`, `OrigamTextareaField`, …) : **erreur de compilation**. Nouveaux types `TControlLoadingValue` / `TControlLoaderConfig` et interface `IControlLoaderProps` (`IBtnProps`, `ISwitchProps` et `IFieldProps` l'etendent a la place de `ILoaderProps`). `TLoadingValue` / `ILoaderProps` / `LOADER_KIND.SKELETON` restent inchanges pour les conteneurs (Card, ExpansionPanel, DataTable). Un appelant non type qui passe quand meme `skeleton` obtient le controle normal avec l'indicateur par defaut, jamais un placeholder.
|
|
52
|
+
- Tokens supprimes (plus lus par personne) : `--origam-switch__skeleton---width`, `---height`, `--origam-switch__skeleton-track---background-color`, `--origam-switch__skeleton-thumb---background-color`, `--origam-btn--loader-skeleton---min-width`, `---min-height`. Le repli `--origam-field__skeleton---min-height` disparait avec la regle `.origam-field__skeleton`.
|
|
53
|
+
- Classes supprimees : `origam-btn--loader-skeleton`, `origam-switch__skeleton*`, `origam-field__skeleton`. `origam-btn--loader-*` ne prend plus que `line` / `circular`.
|
|
54
|
+
- `OrigamBtn` : le slot `loader` remplace desormais l'indicateur (spinner ou bande) quel que soit le type de `loading` ; il n'etait atteignable qu'en mode skeleton.
|
|
55
|
+
|
|
56
|
+
**Comportement pendant une action :**
|
|
57
|
+
- `OrigamBtn` : le libelle reste dans le DOM (nom accessible inchange, largeur stable), l'indicateur se superpose. Le bouton porte `aria-busy="true"` **et** `aria-disabled="true"` — jamais `disabled`, donc il garde le focus — et un clic (souris, Entree, Espace, `@click` du consommateur compris) est avale tant que l'action dure. Le spinner est `aria-hidden` : il ne s'ajoute pas au nom du bouton.
|
|
58
|
+
- `OrigamSwitch` : valeur et label restent ; l'indicateur (pouce ou bande) accompagne la sauvegarde.
|
|
59
|
+
- `OrigamField` : `<input>`, label et valeur restent montes ; la bande `line` (defaut) ou le `circular` s'ajoute.
|
|
60
|
+
|
|
61
|
+
**Corrige (#1076 point 1, cote controles) :** plus de `<div>` dans `<span>`/`<button>` en mode skeleton, `origam-btn--loading` n'est plus emise deux fois, la racine du spinner de `OrigamBtn` est un `<span>`. **Non corrige :** la bande `line` de `OrigamBtn` rend `OrigamProgressLinear`, dont les barres sont des `<div>` (composant partage, hors perimetre).
|
|
62
|
+
|
|
63
|
+
**Stories :** un Variant fixe `Loading` par composant (`Btn`, `Switch`, `Field`, `TextField`, `Select`, `TextareaField`) ; l'option `{ type: skeleton }` des selecteurs `Loading Kind` est retiree (#1076 point 6).
|
|
64
|
+
|
|
21
65
|
## [2.24.0] - 2026-10-14
|
|
22
66
|
|
|
23
67
|
### Changed — refonte d'`OrigamSkeleton` : primitives, pulse par defaut, `OrigamSkeletonGroup` (#1073 lot 1, #1074, #1075, #1076)
|