@sia-ui/react 0.3.0 → 0.3.2

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 (3) hide show
  1. package/CHANGELOG.md +176 -0
  2. package/README.md +175 -1
  3. package/package.json +7 -7
package/CHANGELOG.md ADDED
@@ -0,0 +1,176 @@
1
+ # @sia-ui/react
2
+
3
+ ## 0.3.2
4
+
5
+ ### Patch Changes
6
+
7
+ - Ajoute l’identité visuelle officielle de SIA UI et améliore la documentation publique, les changelogs et les ressources de contribution.
8
+ - Updated dependencies
9
+ - @sia-ui/tokens@0.3.2
10
+ - @sia-ui/utils@0.3.2
11
+
12
+ ## 0.3.1
13
+
14
+ ### Patch Changes
15
+
16
+ - Expose public contribution flow on npm
17
+ - Updated dependencies
18
+ - @sia-ui/tokens@0.3.1
19
+ - @sia-ui/utils@0.3.1
20
+
21
+ ## 0.3.0
22
+
23
+ ### Minor Changes
24
+
25
+ - Une ressource se déclare une fois, cinq composants refondus, et une
26
+ documentation qui décrit le produit plutôt que son développement.
27
+
28
+ ## Déclarer une ressource
29
+
30
+ `defineResource` décrit un objet métier **une seule fois**. Les colonnes du
31
+ tableau, les champs du formulaire, les lignes de la vue de détail, la
32
+ validation, les clés de recherche et les quatre règles de droits en sont
33
+ dérivés — et chaque dérivation reste remplaçable par la prop correspondante.
34
+
35
+ ```tsx
36
+ <CrudPage resource={FACTURE} data={factures} can={can}
37
+ onSubmit={…} onDelete={…} />
38
+ ```
39
+
40
+ Le rendu se déduit du type : un `currency` s'affiche formaté et aligné à
41
+ droite, un `select` avec ses `tones` devient une pastille, une `date` passe
42
+ par le format local. `permissions: "auto"` applique la convention
43
+ `<nom>.<verbe>`.
44
+
45
+ ## Les quatre opérations ouvrent leurs propres boîtes
46
+
47
+ `CrudPage` n'appelle plus seulement un gestionnaire : déclarer `fields` et
48
+ `onSubmit` suffit à obtenir un formulaire vide en création, le même prérempli
49
+ en modification, et une vue de détail. `onCreate`, `onEdit` et `onView`
50
+ restent la porte de sortie vers une page dédiée — fournis, ils passent devant
51
+ la boîte.
52
+
53
+ Les boîtes n'inventent rien : `Modal` pour la boîte, `Form` pour la saisie,
54
+ `Descriptions` pour la lecture.
55
+
56
+ ## Cinq composants refondus
57
+ - **`Sidebar`** — le rail réduit n'enferme plus ses sous-menus : ils sortent
58
+ en volet. Profondeur illimitée, droits en cascade, trois variantes.
59
+ - **`AppShell`** — se branche sur n'importe quel routeur par une seule
60
+ chaîne, l'adresse courante. Trois états de barre, tiroir ou onglets bas sur
61
+ mobile, filtrage des droits fait une seule fois.
62
+ - **`Avatar`** — teinte dérivée du nom, repli peint sous l'image, quatre états
63
+ de présence, et des piles qui résument leur surplus.
64
+ - **`DataTable`** — actions de ligne avec droits et confirmation, sélection et
65
+ barre groupée, vue en cartes, trois densités, états de chargement, d'erreur
66
+ et de vide.
67
+ - **`CrudPage`** — réécrit : il tenait en neuf lignes et n'offrait aucune des
68
+ quatre opérations qui lui donnent son nom.
69
+
70
+ ## Ruptures
71
+ - `CrudPage` : `actions` portait des nœuds d'en-tête, ils vont dans
72
+ `headerActions`. `data` est requis, et `columns` l'est aussi à moins qu'une
73
+ `resource` ne les fournisse.
74
+ - `Sidebar` et `AppShell` : les props ont changé. Voir
75
+ [La navigation latérale](https://beatjo.github.io/sia-ui-site/guides/navigation)
76
+ et [La coquille d'application](https://beatjo.github.io/sia-ui-site/guides/coquille-application).
77
+
78
+ ## Documentation
79
+
80
+ Les cent trois composants ont désormais une page de référence — ce qu'ils
81
+ font, comment les installer, et **toutes** leurs props avec type et valeur par
82
+ défaut. Ces pages sont écrites par le code : les props viennent des types, les
83
+ descriptions de leurs commentaires, la commande d'installation du registre.
84
+
85
+ Le catalogue est passé de seize sections en deux langues à neuf, ordonnées du
86
+ plus général au plus assemblé. Les comptes rendus de développement ont été
87
+ retirés de la documentation : ils décrivaient un chemin parcouru, pas un
88
+ produit.
89
+
90
+ ### Patch Changes
91
+
92
+ - Updated dependencies
93
+ - @sia-ui/tokens@0.3.0
94
+ - @sia-ui/utils@0.3.0
95
+
96
+ ## 0.2.0
97
+
98
+ ### Minor Changes
99
+
100
+ - e4e4a72: Annonces, session et droits, formulaires sans dépendance, et vingt entrées de
101
+ registre de plus.
102
+
103
+ ## Composants
104
+ - **Annonces** — `toast()` s'appelle hors de React, variante `loading`, boutons
105
+ d'action, six coins réglables par annonce, balayage pour écarter, suivi de
106
+ promesse.
107
+ - **Session et droits** — `createSessionStore` avec sa machine à quatre états,
108
+ `createAccessLayer` à évaluateur injecté, `RequireSession` sans routeur.
109
+ - **Formulaires** — le contrat `FormAdapter` et `useLocalForm`, sans
110
+ dépendance. `Form` est écrit sur le contrat : il n'importe ni
111
+ react-hook-form ni zod, et se câble à l'un ou l'autre par un adaptateur.
112
+ - **Vingt entrées de registre de plus** — `progress`, `dropdown-menu`,
113
+ `accordion`, `sidebar`, `breadcrumb`, `steps`, `toggle`, `scroll-area`,
114
+ `hover-card`, `aspect-ratio`, `input-number`, `password-input`,
115
+ `phone-input`, `chart`, `require-session`, `form`…
116
+ - **Thème** — mode `system`, persistance et script anti-clignotement dans
117
+ `SiaProvider`, en remplacement de `next-themes`.
118
+
119
+ ## `@sia-ui/api`
120
+
121
+ Le client HTTP typé est un paquet à part : ni React, ni DOM, ni tokens. Il
122
+ s'installe seul, et copier un `Badge` depuis le registre ne l'entraîne pas.
123
+
124
+ ## Utilitaires
125
+
126
+ `@sia-ui/utils` passe de six à quatorze modules : `query`, `async`,
127
+ `collection`, `object`, `validation`, `file`, `clipboard`, `locale`.
128
+
129
+ ## Archives
130
+ - Plus de sourcemaps : elles pesaient environ soixante pour cent de chaque
131
+ archive — `@sia-ui/react-web` passe de 2,1 Mo à 759 Ko.
132
+ - Chaque paquet porte enfin la licence MIT qu'il annonce.
133
+
134
+ ## Vitrine en ligne
135
+
136
+ Trois surfaces publiées sur GitHub Pages à chaque poussée sur `main` : la
137
+ documentation à la racine, le catalogue Storybook sous `/storybook/`, la
138
+ démonstration sous `/preview/`. Le site de documentation est construit depuis
139
+ les fichiers de `docs/` eux-mêmes, qui restent du Markdown ordinaire.
140
+
141
+ ## Le registre n'est plus une voie sans retour
142
+
143
+ Installer était jusqu'ici définitif : plus rien ne disait ce qu'on avait, ce
144
+ qu'on avait retouché, ni ce qui avait bougé en amont — donc rien ne permettait
145
+ de corriger ni de déprécier une entrée après coup.
146
+ - **`sia-ui.lock.json`**, écrit à chaque `add` : version, date et empreinte de
147
+ chaque fichier copié.
148
+ - **Quatre commandes** : `diff`, `remove`, `doctor`, `list --outdated`.
149
+ `remove` refuse de casser un voisin ou d'effacer un fichier retouché.
150
+ - **Cycle de vie des entrées** — `experimental`, `stable`, `deprecated`,
151
+ `removed` — avec `replacedBy`. `add` refuse ce qui est retiré, `doctor`
152
+ signale ce qui est déprécié chez qui l'a déjà installé.
153
+ - **Journal du registre**, entrée par entrée, dont `pnpm check:changelog`
154
+ refuse qu'il mente.
155
+ - **Registre servi en HTTP**, versionné par l'URL : `…/r/v1/`. Corriger une
156
+ entrée n'oblige plus à republier la CLI.
157
+
158
+ ## Corrections
159
+ - La case à cocher et le bouton radio masquaient leur contrôle natif en
160
+ `opacity:0`. Le navigateur le peignait encore sous le visuel personnalisé, et
161
+ ce dessin clignotait au clic. Les deux utilisent désormais la recette
162
+ partagée `.sia-visually-hidden`, qui le découpe hors du rendu sans le retirer
163
+ du clavier.
164
+ - Une case à cocher non contrôlée ne se peignait jamais cochée : l'`<input>`
165
+ basculait, mais la classe qui dessine la case ne suivait pas.
166
+ - Le curseur de survol des graphes était ovale, et le tracé de la courbe
167
+ haché : les marqueurs sont sortis du SVG, qui est étiré sans conserver ses
168
+ proportions.
169
+ - L'entrée `drawer` du registre était impossible à installer — elle importait
170
+ deux dossiers que la CLI ne copie pas.
171
+
172
+ ### Patch Changes
173
+
174
+ - Updated dependencies [e4e4a72]
175
+ - @sia-ui/tokens@0.2.0
176
+ - @sia-ui/utils@0.2.0
package/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ <p align="center"><img src="https://beatjo.github.io/sia-ui-site/brand/sia-ui-logo.png" alt="SIA UI" width="320"></p>
2
+
1
3
  # @sia-ui/react
2
4
 
3
5
  Les primitives de runtime dont un composant DOM a besoin.
@@ -31,7 +33,179 @@ import { SiaProvider, Portal, usePortal, useOutsideClick } from "@sia-ui/react";
31
33
  ```
32
34
 
33
35
  Une chose s'écrit au niveau le plus bas où elle a du sens, et une seule fois.
34
- Voir [la documentation](https://github.com/BeatJo/sia-ui/tree/main/docs).
36
+ Voir [la documentation](https://beatjo.github.io/sia-ui-site).
37
+
38
+ ## Contribuer
39
+
40
+ Le code source principal de SIA UI est privé pour le moment. Les retours publics passent par le dépôt `BeatJo/sia-ui-site` : bugs, demandes de composants, corrections de documentation et questions d'usage.
41
+
42
+ - Signaler un bug : https://github.com/BeatJo/sia-ui-site/issues
43
+ - Lire la documentation : https://beatjo.github.io/sia-ui-site/
44
+ - Voir la démonstration : https://beatjo.github.io/sia-ui-site/preview/
45
+
46
+ Les contributions directes au code des packages se font sur invitation dans le dépôt source privé.
47
+ ## Journal des changements
48
+
49
+ Le contenu ci-dessous reprend intégralement `CHANGELOG.md` pour rester visible sur npm.
50
+
51
+ # @sia-ui/react
52
+
53
+ ## 0.3.0
54
+
55
+ ### Minor Changes
56
+
57
+ - Une ressource se déclare une fois, cinq composants refondus, et une
58
+ documentation qui décrit le produit plutôt que son développement.
59
+
60
+ ## Déclarer une ressource
61
+
62
+ `defineResource` décrit un objet métier **une seule fois**. Les colonnes du
63
+ tableau, les champs du formulaire, les lignes de la vue de détail, la
64
+ validation, les clés de recherche et les quatre règles de droits en sont
65
+ dérivés — et chaque dérivation reste remplaçable par la prop correspondante.
66
+
67
+ ```tsx
68
+ <CrudPage resource={FACTURE} data={factures} can={can}
69
+ onSubmit={…} onDelete={…} />
70
+ ```
71
+
72
+ Le rendu se déduit du type : un `currency` s'affiche formaté et aligné à
73
+ droite, un `select` avec ses `tones` devient une pastille, une `date` passe
74
+ par le format local. `permissions: "auto"` applique la convention
75
+ `<nom>.<verbe>`.
76
+
77
+ ## Les quatre opérations ouvrent leurs propres boîtes
78
+
79
+ `CrudPage` n'appelle plus seulement un gestionnaire : déclarer `fields` et
80
+ `onSubmit` suffit à obtenir un formulaire vide en création, le même prérempli
81
+ en modification, et une vue de détail. `onCreate`, `onEdit` et `onView`
82
+ restent la porte de sortie vers une page dédiée — fournis, ils passent devant
83
+ la boîte.
84
+
85
+ Les boîtes n'inventent rien : `Modal` pour la boîte, `Form` pour la saisie,
86
+ `Descriptions` pour la lecture.
87
+
88
+ ## Cinq composants refondus
89
+ - **`Sidebar`** — le rail réduit n'enferme plus ses sous-menus : ils sortent
90
+ en volet. Profondeur illimitée, droits en cascade, trois variantes.
91
+ - **`AppShell`** — se branche sur n'importe quel routeur par une seule
92
+ chaîne, l'adresse courante. Trois états de barre, tiroir ou onglets bas sur
93
+ mobile, filtrage des droits fait une seule fois.
94
+ - **`Avatar`** — teinte dérivée du nom, repli peint sous l'image, quatre états
95
+ de présence, et des piles qui résument leur surplus.
96
+ - **`DataTable`** — actions de ligne avec droits et confirmation, sélection et
97
+ barre groupée, vue en cartes, trois densités, états de chargement, d'erreur
98
+ et de vide.
99
+ - **`CrudPage`** — réécrit : il tenait en neuf lignes et n'offrait aucune des
100
+ quatre opérations qui lui donnent son nom.
101
+
102
+ ## Ruptures
103
+ - `CrudPage` : `actions` portait des nœuds d'en-tête, ils vont dans
104
+ `headerActions`. `data` est requis, et `columns` l'est aussi à moins qu'une
105
+ `resource` ne les fournisse.
106
+ - `Sidebar` et `AppShell` : les props ont changé. Voir
107
+ [La navigation latérale](https://beatjo.github.io/sia-ui-site/guides/navigation)
108
+ et [La coquille d'application](https://beatjo.github.io/sia-ui-site/guides/coquille-application).
109
+
110
+ ## Documentation
111
+
112
+ Les cent trois composants ont désormais une page de référence — ce qu'ils
113
+ font, comment les installer, et **toutes** leurs props avec type et valeur par
114
+ défaut. Ces pages sont écrites par le code : les props viennent des types, les
115
+ descriptions de leurs commentaires, la commande d'installation du registre.
116
+
117
+ Le catalogue est passé de seize sections en deux langues à neuf, ordonnées du
118
+ plus général au plus assemblé. Les comptes rendus de développement ont été
119
+ retirés de la documentation : ils décrivaient un chemin parcouru, pas un
120
+ produit.
121
+
122
+ ### Patch Changes
123
+
124
+ - Updated dependencies
125
+ - @sia-ui/tokens@0.3.0
126
+ - @sia-ui/utils@0.3.0
127
+
128
+ ## 0.2.0
129
+
130
+ ### Minor Changes
131
+
132
+ - e4e4a72: Annonces, session et droits, formulaires sans dépendance, et vingt entrées de
133
+ registre de plus.
134
+
135
+ ## Composants
136
+ - **Annonces** — `toast()` s'appelle hors de React, variante `loading`, boutons
137
+ d'action, six coins réglables par annonce, balayage pour écarter, suivi de
138
+ promesse.
139
+ - **Session et droits** — `createSessionStore` avec sa machine à quatre états,
140
+ `createAccessLayer` à évaluateur injecté, `RequireSession` sans routeur.
141
+ - **Formulaires** — le contrat `FormAdapter` et `useLocalForm`, sans
142
+ dépendance. `Form` est écrit sur le contrat : il n'importe ni
143
+ react-hook-form ni zod, et se câble à l'un ou l'autre par un adaptateur.
144
+ - **Vingt entrées de registre de plus** — `progress`, `dropdown-menu`,
145
+ `accordion`, `sidebar`, `breadcrumb`, `steps`, `toggle`, `scroll-area`,
146
+ `hover-card`, `aspect-ratio`, `input-number`, `password-input`,
147
+ `phone-input`, `chart`, `require-session`, `form`…
148
+ - **Thème** — mode `system`, persistance et script anti-clignotement dans
149
+ `SiaProvider`, en remplacement de `next-themes`.
150
+
151
+ ## `@sia-ui/api`
152
+
153
+ Le client HTTP typé est un paquet à part : ni React, ni DOM, ni tokens. Il
154
+ s'installe seul, et copier un `Badge` depuis le registre ne l'entraîne pas.
155
+
156
+ ## Utilitaires
157
+
158
+ `@sia-ui/utils` passe de six à quatorze modules : `query`, `async`,
159
+ `collection`, `object`, `validation`, `file`, `clipboard`, `locale`.
160
+
161
+ ## Archives
162
+ - Plus de sourcemaps : elles pesaient environ soixante pour cent de chaque
163
+ archive — `@sia-ui/react-web` passe de 2,1 Mo à 759 Ko.
164
+ - Chaque paquet porte enfin la licence MIT qu'il annonce.
165
+
166
+ ## Vitrine en ligne
167
+
168
+ Trois surfaces publiées sur GitHub Pages à chaque poussée sur `main` : la
169
+ documentation à la racine, le catalogue Storybook sous `/storybook/`, la
170
+ démonstration sous `/preview/`. Le site de documentation est construit depuis
171
+ les fichiers de `docs/` eux-mêmes, qui restent du Markdown ordinaire.
172
+
173
+ ## Le registre n'est plus une voie sans retour
174
+
175
+ Installer était jusqu'ici définitif : plus rien ne disait ce qu'on avait, ce
176
+ qu'on avait retouché, ni ce qui avait bougé en amont — donc rien ne permettait
177
+ de corriger ni de déprécier une entrée après coup.
178
+ - **`sia-ui.lock.json`**, écrit à chaque `add` : version, date et empreinte de
179
+ chaque fichier copié.
180
+ - **Quatre commandes** : `diff`, `remove`, `doctor`, `list --outdated`.
181
+ `remove` refuse de casser un voisin ou d'effacer un fichier retouché.
182
+ - **Cycle de vie des entrées** — `experimental`, `stable`, `deprecated`,
183
+ `removed` — avec `replacedBy`. `add` refuse ce qui est retiré, `doctor`
184
+ signale ce qui est déprécié chez qui l'a déjà installé.
185
+ - **Journal du registre**, entrée par entrée, dont `pnpm check:changelog`
186
+ refuse qu'il mente.
187
+ - **Registre servi en HTTP**, versionné par l'URL : `…/r/v1/`. Corriger une
188
+ entrée n'oblige plus à republier la CLI.
189
+
190
+ ## Corrections
191
+ - La case à cocher et le bouton radio masquaient leur contrôle natif en
192
+ `opacity:0`. Le navigateur le peignait encore sous le visuel personnalisé, et
193
+ ce dessin clignotait au clic. Les deux utilisent désormais la recette
194
+ partagée `.sia-visually-hidden`, qui le découpe hors du rendu sans le retirer
195
+ du clavier.
196
+ - Une case à cocher non contrôlée ne se peignait jamais cochée : l'`<input>`
197
+ basculait, mais la classe qui dessine la case ne suivait pas.
198
+ - Le curseur de survol des graphes était ovale, et le tracé de la courbe
199
+ haché : les marqueurs sont sortis du SVG, qui est étiré sans conserver ses
200
+ proportions.
201
+ - L'entrée `drawer` du registre était impossible à installer — elle importait
202
+ deux dossiers que la CLI ne copie pas.
203
+
204
+ ### Patch Changes
205
+
206
+ - Updated dependencies [e4e4a72]
207
+ - @sia-ui/tokens@0.2.0
208
+ - @sia-ui/utils@0.2.0
35
209
 
36
210
  ## Licence
37
211
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sia-ui/react",
3
- "version": "0.3.0",
3
+ "version": "0.3.2",
4
4
  "description": "React runtime foundations for SIA UI.",
5
5
  "keywords": [
6
6
  "sia-ui",
@@ -11,14 +11,13 @@
11
11
  ],
12
12
  "license": "MIT",
13
13
  "author": "Ivan Mbella",
14
- "homepage": "https://github.com/BeatJo/sia-ui#readme",
14
+ "homepage": "https://beatjo.github.io/sia-ui-site/",
15
15
  "bugs": {
16
- "url": "https://github.com/BeatJo/sia-ui/issues"
16
+ "url": "https://github.com/BeatJo/sia-ui-site/issues"
17
17
  },
18
18
  "repository": {
19
19
  "type": "git",
20
- "url": "git+https://github.com/BeatJo/sia-ui.git",
21
- "directory": "packages/react"
20
+ "url": "git+https://github.com/BeatJo/sia-ui-site.git"
22
21
  },
23
22
  "type": "module",
24
23
  "sideEffects": [
@@ -27,6 +26,7 @@
27
26
  "files": [
28
27
  "dist",
29
28
  "README.md",
29
+ "CHANGELOG.md",
30
30
  "LICENSE"
31
31
  ],
32
32
  "main": "./dist/index.cjs",
@@ -44,8 +44,8 @@
44
44
  "access": "public"
45
45
  },
46
46
  "dependencies": {
47
- "@sia-ui/tokens": "0.3.0",
48
- "@sia-ui/utils": "0.3.0"
47
+ "@sia-ui/tokens": "0.3.2",
48
+ "@sia-ui/utils": "0.3.2"
49
49
  },
50
50
  "peerDependencies": {
51
51
  "react": ">=18.2.0",