@sia-ui/registry 0.1.0 → 0.3.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 +291 -0
- package/LICENSE +21 -21
- package/README.md +35 -35
- package/dist/index.cjs +72 -16
- package/dist/index.js +72 -16
- package/package.json +1 -1
- package/registry.json +72 -16
package/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,297 @@ vérifie, et la CI le lance. Sans quoi une entrée monterait de version sans
|
|
|
10
10
|
que personne ne puisse savoir ce qui a changé dans le fichier qu'il a déjà
|
|
11
11
|
chez lui.
|
|
12
12
|
|
|
13
|
+
## 0.3.0
|
|
14
|
+
|
|
15
|
+
### Minor Changes
|
|
16
|
+
|
|
17
|
+
- Une ressource se déclare une fois, cinq composants refondus, et une
|
|
18
|
+
documentation qui décrit le produit plutôt que son développement.
|
|
19
|
+
|
|
20
|
+
## Déclarer une ressource
|
|
21
|
+
|
|
22
|
+
`defineResource` décrit un objet métier **une seule fois**. Les colonnes du
|
|
23
|
+
tableau, les champs du formulaire, les lignes de la vue de détail, la
|
|
24
|
+
validation, les clés de recherche et les quatre règles de droits en sont
|
|
25
|
+
dérivés — et chaque dérivation reste remplaçable par la prop correspondante.
|
|
26
|
+
|
|
27
|
+
```tsx
|
|
28
|
+
<CrudPage resource={FACTURE} data={factures} can={can}
|
|
29
|
+
onSubmit={…} onDelete={…} />
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Le rendu se déduit du type : un `currency` s'affiche formaté et aligné à
|
|
33
|
+
droite, un `select` avec ses `tones` devient une pastille, une `date` passe
|
|
34
|
+
par le format local. `permissions: "auto"` applique la convention
|
|
35
|
+
`<nom>.<verbe>`.
|
|
36
|
+
|
|
37
|
+
## Les quatre opérations ouvrent leurs propres boîtes
|
|
38
|
+
|
|
39
|
+
`CrudPage` n'appelle plus seulement un gestionnaire : déclarer `fields` et
|
|
40
|
+
`onSubmit` suffit à obtenir un formulaire vide en création, le même prérempli
|
|
41
|
+
en modification, et une vue de détail. `onCreate`, `onEdit` et `onView`
|
|
42
|
+
restent la porte de sortie vers une page dédiée — fournis, ils passent devant
|
|
43
|
+
la boîte.
|
|
44
|
+
|
|
45
|
+
Les boîtes n'inventent rien : `Modal` pour la boîte, `Form` pour la saisie,
|
|
46
|
+
`Descriptions` pour la lecture.
|
|
47
|
+
|
|
48
|
+
## Cinq composants refondus
|
|
49
|
+
- **`Sidebar`** — le rail réduit n'enferme plus ses sous-menus : ils sortent
|
|
50
|
+
en volet. Profondeur illimitée, droits en cascade, trois variantes.
|
|
51
|
+
- **`AppShell`** — se branche sur n'importe quel routeur par une seule
|
|
52
|
+
chaîne, l'adresse courante. Trois états de barre, tiroir ou onglets bas sur
|
|
53
|
+
mobile, filtrage des droits fait une seule fois.
|
|
54
|
+
- **`Avatar`** — teinte dérivée du nom, repli peint sous l'image, quatre états
|
|
55
|
+
de présence, et des piles qui résument leur surplus.
|
|
56
|
+
- **`DataTable`** — actions de ligne avec droits et confirmation, sélection et
|
|
57
|
+
barre groupée, vue en cartes, trois densités, états de chargement, d'erreur
|
|
58
|
+
et de vide.
|
|
59
|
+
- **`CrudPage`** — réécrit : il tenait en neuf lignes et n'offrait aucune des
|
|
60
|
+
quatre opérations qui lui donnent son nom.
|
|
61
|
+
|
|
62
|
+
## Ruptures
|
|
63
|
+
- `CrudPage` : `actions` portait des nœuds d'en-tête, ils vont dans
|
|
64
|
+
`headerActions`. `data` est requis, et `columns` l'est aussi à moins qu'une
|
|
65
|
+
`resource` ne les fournisse.
|
|
66
|
+
- `Sidebar` et `AppShell` : les props ont changé. Voir
|
|
67
|
+
[La navigation latérale](https://beatjo.github.io/sia-ui-site/guides/navigation)
|
|
68
|
+
et [La coquille d'application](https://beatjo.github.io/sia-ui-site/guides/coquille-application).
|
|
69
|
+
|
|
70
|
+
## Documentation
|
|
71
|
+
|
|
72
|
+
Les cent trois composants ont désormais une page de référence — ce qu'ils
|
|
73
|
+
font, comment les installer, et **toutes** leurs props avec type et valeur par
|
|
74
|
+
défaut. Ces pages sont écrites par le code : les props viennent des types, les
|
|
75
|
+
descriptions de leurs commentaires, la commande d'installation du registre.
|
|
76
|
+
|
|
77
|
+
Le catalogue est passé de seize sections en deux langues à neuf, ordonnées du
|
|
78
|
+
plus général au plus assemblé. Les comptes rendus de développement ont été
|
|
79
|
+
retirés de la documentation : ils décrivaient un chemin parcouru, pas un
|
|
80
|
+
produit.
|
|
81
|
+
|
|
82
|
+
## 0.2.0
|
|
83
|
+
|
|
84
|
+
### Minor Changes
|
|
85
|
+
|
|
86
|
+
- e4e4a72: Annonces, session et droits, formulaires sans dépendance, et vingt entrées de
|
|
87
|
+
registre de plus.
|
|
88
|
+
|
|
89
|
+
## Composants
|
|
90
|
+
- **Annonces** — `toast()` s'appelle hors de React, variante `loading`, boutons
|
|
91
|
+
d'action, six coins réglables par annonce, balayage pour écarter, suivi de
|
|
92
|
+
promesse.
|
|
93
|
+
- **Session et droits** — `createSessionStore` avec sa machine à quatre états,
|
|
94
|
+
`createAccessLayer` à évaluateur injecté, `RequireSession` sans routeur.
|
|
95
|
+
- **Formulaires** — le contrat `FormAdapter` et `useLocalForm`, sans
|
|
96
|
+
dépendance. `Form` est écrit sur le contrat : il n'importe ni
|
|
97
|
+
react-hook-form ni zod, et se câble à l'un ou l'autre par un adaptateur.
|
|
98
|
+
- **Vingt entrées de registre de plus** — `progress`, `dropdown-menu`,
|
|
99
|
+
`accordion`, `sidebar`, `breadcrumb`, `steps`, `toggle`, `scroll-area`,
|
|
100
|
+
`hover-card`, `aspect-ratio`, `input-number`, `password-input`,
|
|
101
|
+
`phone-input`, `chart`, `require-session`, `form`…
|
|
102
|
+
- **Thème** — mode `system`, persistance et script anti-clignotement dans
|
|
103
|
+
`SiaProvider`, en remplacement de `next-themes`.
|
|
104
|
+
|
|
105
|
+
## `@sia-ui/api`
|
|
106
|
+
|
|
107
|
+
Le client HTTP typé est un paquet à part : ni React, ni DOM, ni tokens. Il
|
|
108
|
+
s'installe seul, et copier un `Badge` depuis le registre ne l'entraîne pas.
|
|
109
|
+
|
|
110
|
+
## Utilitaires
|
|
111
|
+
|
|
112
|
+
`@sia-ui/utils` passe de six à quatorze modules : `query`, `async`,
|
|
113
|
+
`collection`, `object`, `validation`, `file`, `clipboard`, `locale`.
|
|
114
|
+
|
|
115
|
+
## Archives
|
|
116
|
+
- Plus de sourcemaps : elles pesaient environ soixante pour cent de chaque
|
|
117
|
+
archive — `@sia-ui/react-web` passe de 2,1 Mo à 759 Ko.
|
|
118
|
+
- Chaque paquet porte enfin la licence MIT qu'il annonce.
|
|
119
|
+
|
|
120
|
+
## Vitrine en ligne
|
|
121
|
+
|
|
122
|
+
Trois surfaces publiées sur GitHub Pages à chaque poussée sur `main` : la
|
|
123
|
+
documentation à la racine, le catalogue Storybook sous `/storybook/`, la
|
|
124
|
+
démonstration sous `/preview/`. Le site de documentation est construit depuis
|
|
125
|
+
les fichiers de `docs/` eux-mêmes, qui restent du Markdown ordinaire.
|
|
126
|
+
|
|
127
|
+
## Le registre n'est plus une voie sans retour
|
|
128
|
+
|
|
129
|
+
Installer était jusqu'ici définitif : plus rien ne disait ce qu'on avait, ce
|
|
130
|
+
qu'on avait retouché, ni ce qui avait bougé en amont — donc rien ne permettait
|
|
131
|
+
de corriger ni de déprécier une entrée après coup.
|
|
132
|
+
- **`sia-ui.lock.json`**, écrit à chaque `add` : version, date et empreinte de
|
|
133
|
+
chaque fichier copié.
|
|
134
|
+
- **Quatre commandes** : `diff`, `remove`, `doctor`, `list --outdated`.
|
|
135
|
+
`remove` refuse de casser un voisin ou d'effacer un fichier retouché.
|
|
136
|
+
- **Cycle de vie des entrées** — `experimental`, `stable`, `deprecated`,
|
|
137
|
+
`removed` — avec `replacedBy`. `add` refuse ce qui est retiré, `doctor`
|
|
138
|
+
signale ce qui est déprécié chez qui l'a déjà installé.
|
|
139
|
+
- **Journal du registre**, entrée par entrée, dont `pnpm check:changelog`
|
|
140
|
+
refuse qu'il mente.
|
|
141
|
+
- **Registre servi en HTTP**, versionné par l'URL : `…/r/v1/`. Corriger une
|
|
142
|
+
entrée n'oblige plus à republier la CLI.
|
|
143
|
+
|
|
144
|
+
## Corrections
|
|
145
|
+
- La case à cocher et le bouton radio masquaient leur contrôle natif en
|
|
146
|
+
`opacity:0`. Le navigateur le peignait encore sous le visuel personnalisé, et
|
|
147
|
+
ce dessin clignotait au clic. Les deux utilisent désormais la recette
|
|
148
|
+
partagée `.sia-visually-hidden`, qui le découpe hors du rendu sans le retirer
|
|
149
|
+
du clavier.
|
|
150
|
+
- Une case à cocher non contrôlée ne se peignait jamais cochée : l'`<input>`
|
|
151
|
+
basculait, mais la classe qui dessine la case ne suivait pas.
|
|
152
|
+
- Le curseur de survol des graphes était ovale, et le tracé de la courbe
|
|
153
|
+
haché : les marqueurs sont sortis du SVG, qui est étiré sans conserver ses
|
|
154
|
+
proportions.
|
|
155
|
+
- L'entrée `drawer` du registre était impossible à installer — elle importait
|
|
156
|
+
deux dossiers que la CLI ne copie pas.
|
|
157
|
+
|
|
158
|
+
### Patch Changes
|
|
159
|
+
|
|
160
|
+
- Include component styles when installing registry components
|
|
161
|
+
|
|
162
|
+
## 0.2.0
|
|
163
|
+
|
|
164
|
+
- `resource` — **nouvelle entrée**. Une page de liste décrivait le même objet
|
|
165
|
+
trois fois : en colonnes pour le tableau, en champs pour le formulaire, en
|
|
166
|
+
lignes pour le détail. Plus la validation, les clés de recherche et la règle
|
|
167
|
+
de droits par opération. Ces descriptions divergent, et toujours dans le
|
|
168
|
+
même sens — c'est le formulaire qui oublie le champ que le tableau affiche.
|
|
169
|
+
|
|
170
|
+
`defineResource` la décrit **une seule fois**. Colonnes, champs, détail,
|
|
171
|
+
validation, recherche, clé de ligne et droits en sont dérivés. Le rendu se
|
|
172
|
+
déduit du type : un `currency` s'affiche formaté et aligné à droite, un
|
|
173
|
+
`select` avec ses `tones` devient une pastille, une `date` passe par le
|
|
174
|
+
format local.
|
|
175
|
+
|
|
176
|
+
Trois surfaces, trois défauts : `inTable` écarte ce qui est trop long pour
|
|
177
|
+
une cellule, `inForm` écarte ce que `readOnly` marque, `inDetail` garde
|
|
178
|
+
tout. Le détail n'est donc pas le tableau — une note de trois phrases sort
|
|
179
|
+
des colonnes et reste dans la boîte de consultation.
|
|
180
|
+
|
|
181
|
+
`permissions: "auto"` applique la convention `<nom>.<verbe>`. Chaque
|
|
182
|
+
dérivation cède à la prop correspondante : passer `columns` ne coûte ni le
|
|
183
|
+
formulaire, ni les droits.
|
|
184
|
+
|
|
185
|
+
- `crud-page` — **réécrit**. Il tenait en neuf lignes : un titre, un
|
|
186
|
+
emplacement libre et une pagination. Les quatre opérations d'une page de
|
|
187
|
+
liste étaient à réécrire à chaque écran, ce qui produit quatre variantes
|
|
188
|
+
qui divergent — celle qui oublie la confirmation, celle qui ne vérifie
|
|
189
|
+
pas les droits, celle dont le bouton reste actif pendant l'appel.
|
|
190
|
+
|
|
191
|
+
Créer, consulter, modifier, supprimer **fonctionnent d'emblée** : fournir
|
|
192
|
+
le gestionnaire suffit, ne pas le fournir retire l'action. La suppression
|
|
193
|
+
est confirmée d'office — on peut lever la confirmation, encore faut-il
|
|
194
|
+
l'avoir écrit.
|
|
195
|
+
|
|
196
|
+
`operations` personnalise chaque action : libellé, icône, droits,
|
|
197
|
+
visibilité ligne par ligne, confirmation. `extraRowActions` en ajoute
|
|
198
|
+
d'autres, `onBulkDelete` active la sélection et sa barre.
|
|
199
|
+
|
|
200
|
+
Sans gestionnaire, les actions **ouvrent leurs propres boîtes** : déclarer
|
|
201
|
+
`fields` et `onSubmit` suffit à obtenir un formulaire vide en création, le
|
|
202
|
+
même prérempli en modification, et une vue de détail dérivée des colonnes.
|
|
203
|
+
`onCreate`, `onEdit` et `onView` restent la porte de sortie vers une page
|
|
204
|
+
dédiée : fournis, ils passent devant la boîte. `resource` va plus loin et
|
|
205
|
+
dérive tout d'une seule déclaration.
|
|
206
|
+
|
|
207
|
+
**Migration, rupture** : `actions` portait des nœuds d'en-tête; ils vont
|
|
208
|
+
dans `headerActions`. Le nom `actions` désignerait sinon deux choses
|
|
209
|
+
différentes selon la version, ce qui est le pire cas — le code compile et
|
|
210
|
+
se comporte autrement. `data` est désormais requis, et `columns` l'est
|
|
211
|
+
aussi à moins qu'une `resource` ne les fournisse; le tableau reste
|
|
212
|
+
remplaçable par `children`.
|
|
213
|
+
|
|
214
|
+
- `data-table` — refonte. Il affichait des colonnes et un tri délégué.
|
|
215
|
+
S'ajoutent les **actions de ligne** — avec droits, confirmation, et
|
|
216
|
+
passage en menu au-delà de la limite —, la **sélection** et sa barre
|
|
217
|
+
d'actions groupées, une **vue en cartes** qui bascule d'elle-même sous
|
|
218
|
+
768 px, la recherche locale, trois densités, les états de chargement,
|
|
219
|
+
d'erreur et de vide.
|
|
220
|
+
|
|
221
|
+
Les actions de ligne s'estompent hors survol : une colonne pleine de
|
|
222
|
+
boutons attire l'œil plus que les données. Elles restent entières au
|
|
223
|
+
clavier et sur tactile, où il n'y a pas de survol.
|
|
224
|
+
|
|
225
|
+
**Migration, rupture** : `align` passe de `left`/`right` à `start`/`end`,
|
|
226
|
+
et `getRowKey` devient facultatif. `useDataTableQuery` et
|
|
227
|
+
`createUrlTableStorage` sont inchangés.
|
|
228
|
+
|
|
229
|
+
- `app-shell` — **réécrit**. Il tenait en six lignes : une grille à deux
|
|
230
|
+
colonnes, un bouton de repli écrit `☰`, et des emplacements libres. Il ne
|
|
231
|
+
réutilisait ni la navigation, ni le tiroir, ni rien.
|
|
232
|
+
|
|
233
|
+
Il assemble maintenant le `Sidebar` et le `Drawer`, filtre les droits **une
|
|
234
|
+
seule fois** pour la barre comme pour les onglets, et se branche sur
|
|
235
|
+
n'importe quel routeur par une seule chaîne :
|
|
236
|
+
|
|
237
|
+
```tsx
|
|
238
|
+
<AppShell nav={NAV} currentPath={usePathname()} renderLink={…} />
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
De là il déduit l'entrée courante par le préfixe le plus long — une page
|
|
242
|
+
`/factures/12/lignes` marque bien `Factures` — et referme le tiroir mobile
|
|
243
|
+
à chaque navigation, sans jamais importer de routeur.
|
|
244
|
+
|
|
245
|
+
S'ajoutent trois états de barre (`expanded`, `collapsed`, `hidden`), trois
|
|
246
|
+
stratégies mobiles (`drawer`, `tabs`, `both`), `contentWidth`, `side`, les
|
|
247
|
+
largeurs personnalisables, et `BottomTabs` — qui ne montre que des
|
|
248
|
+
feuilles, un onglet ouvrant un sous-menu étant un piège tactile.
|
|
249
|
+
|
|
250
|
+
**Migration, rupture** : `logo` devient `brand`, `navigation` devient
|
|
251
|
+
`nav` et prend des données plutôt que des nœuds. `header` est inchangé.
|
|
252
|
+
Le titre de page n'est pas une prop : le poser dans `page`, avec
|
|
253
|
+
`PageHeader` — une coquille qui rend le `<h1>` force chaque écran à passer
|
|
254
|
+
par ses props.
|
|
255
|
+
|
|
256
|
+
L'entrée annonçait deux fichiers et une dépendance; elle en annonce
|
|
257
|
+
maintenant trois et cinq. Copiée telle quelle, elle serait arrivée cassée.
|
|
258
|
+
|
|
259
|
+
- `avatar` — refonte. Il servait une image, trois tailles et des initiales.
|
|
260
|
+
S'ajoutent : une **teinte dérivée du nom**, stable d'un écran à l'autre,
|
|
261
|
+
pour distinguer deux personnes aux mêmes initiales; trois formes et trois
|
|
262
|
+
variantes (`soft`, `solid`, `outline`); cinq tailles; une pastille de
|
|
263
|
+
présence à quatre états; et `AvatarGroup`, qui empile et résume son
|
|
264
|
+
surplus.
|
|
265
|
+
|
|
266
|
+
Le repli est désormais peint **sous** l'image plutôt qu'à sa place : la
|
|
267
|
+
mise en page ne bouge plus entre l'attente, la réussite et l'échec.
|
|
268
|
+
|
|
269
|
+
Les initiales prennent la première et la dernière partie du nom, particules
|
|
270
|
+
écartées : « Jean-Baptiste Kouassi Mbella » donne « JM », « Marie de la
|
|
271
|
+
Tour » donne « MT ».
|
|
272
|
+
|
|
273
|
+
**Migration** : aucune prop retirée. `fallback` accepte maintenant un
|
|
274
|
+
nœud React et non plus seulement une chaîne.
|
|
275
|
+
|
|
276
|
+
- `sidebar` — refonte. Trois défauts corrigés :
|
|
277
|
+
|
|
278
|
+
**Réduite, la barre enfermait ses sous-entrées.** Une règle forçait le
|
|
279
|
+
panneau des enfants à une hauteur nulle quel que soit son état : une
|
|
280
|
+
rubrique à sous-menus devenait inatteignable dès qu'on repliait la barre.
|
|
281
|
+
Les sous-menus sortent maintenant en volet, au survol ou au clavier.
|
|
282
|
+
|
|
283
|
+
**L'arbre s'arrêtait à deux niveaux**, interdits par le type lui-même
|
|
284
|
+
(`items?: Array<Omit<SidebarItem, "items">>`). Il descend désormais aussi
|
|
285
|
+
profond que l'arborescence du produit.
|
|
286
|
+
|
|
287
|
+
**Aucun filtrage par droits.** `permission` sur une entrée, `can` sur le
|
|
288
|
+
composant, et une cascade : un parent dont toute la descendance est
|
|
289
|
+
filtrée disparaît avec elle, sauf `keepWhenEmpty`.
|
|
290
|
+
|
|
291
|
+
S'ajoutent `renderLink` pour brancher un routeur sans en dépendre,
|
|
292
|
+
`openKeys` pour piloter les branches ouvertes, `accordion`, `side`, et les
|
|
293
|
+
variantes `default` / `filled` / `floating` en trois tailles.
|
|
294
|
+
|
|
295
|
+
**Migration** : aucune prop retirée. `registryDependencies` gagne
|
|
296
|
+
`overlay` — `sia-ui add sidebar --overwrite` l'installe.
|
|
297
|
+
|
|
298
|
+
## 0.1.1
|
|
299
|
+
|
|
300
|
+
- `button` — l'entrée n'annonçait que son `index.tsx`. Installé, le bouton
|
|
301
|
+
arrivait donc sans sa feuille de style. `components/Button/styles.css`
|
|
302
|
+
rejoint ses fichiers.
|
|
303
|
+
|
|
13
304
|
## 0.1.0
|
|
14
305
|
|
|
15
306
|
Première version des 104 entrées du registre.
|
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 Ivan Mbella
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Ivan Mbella
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
# @sia-ui/registry
|
|
2
|
-
|
|
3
|
-
Le catalogue des composants installables par la CLI.
|
|
4
|
-
|
|
5
|
-
```ts
|
|
6
|
-
import { registry, getRegistryItem } from "@sia-ui/registry";
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
Chaque entrée porte son `nom`, sa `version`, son `status`
|
|
10
|
-
(`experimental`, `stable`, `deprecated`, `removed`), ses fichiers, ses
|
|
11
|
-
dépendances npm et ses dépendances de registre.
|
|
12
|
-
|
|
13
|
-
Les fichiers viennent de `@sia-ui/react-web` et sont copiés **sans
|
|
14
|
-
transformation** : il n'y a qu'une implémentation.
|
|
15
|
-
|
|
16
|
-
Ce paquet sert surtout à la [CLI](https://www.npmjs.com/package/@sia-ui/cli).
|
|
17
|
-
|
|
18
|
-
## Place dans SIA UI
|
|
19
|
-
|
|
20
|
-
```
|
|
21
|
-
@sia-ui/tokens valeurs : couleurs, espacements, mouvement, vocabulaire
|
|
22
|
-
@sia-ui/utils fonctions sans dépendance
|
|
23
|
-
@sia-ui/api client HTTP — indépendant de l'interface
|
|
24
|
-
@sia-ui/headless comportement, avec React, sans plateforme
|
|
25
|
-
@sia-ui/react primitives de runtime DOM
|
|
26
|
-
@sia-ui/react-web composants DOM
|
|
27
|
-
@sia-ui/react-native composants natifs, à venir
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
Une chose s'écrit au niveau le plus bas où elle a du sens, et une seule fois.
|
|
31
|
-
Voir [la documentation](https://github.com/BeatJo/sia-ui/tree/main/docs).
|
|
32
|
-
|
|
33
|
-
## Licence
|
|
34
|
-
|
|
35
|
-
MIT
|
|
1
|
+
# @sia-ui/registry
|
|
2
|
+
|
|
3
|
+
Le catalogue des composants installables par la CLI.
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
import { registry, getRegistryItem } from "@sia-ui/registry";
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Chaque entrée porte son `nom`, sa `version`, son `status`
|
|
10
|
+
(`experimental`, `stable`, `deprecated`, `removed`), ses fichiers, ses
|
|
11
|
+
dépendances npm et ses dépendances de registre.
|
|
12
|
+
|
|
13
|
+
Les fichiers viennent de `@sia-ui/react-web` et sont copiés **sans
|
|
14
|
+
transformation** : il n'y a qu'une implémentation.
|
|
15
|
+
|
|
16
|
+
Ce paquet sert surtout à la [CLI](https://www.npmjs.com/package/@sia-ui/cli).
|
|
17
|
+
|
|
18
|
+
## Place dans SIA UI
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
@sia-ui/tokens valeurs : couleurs, espacements, mouvement, vocabulaire
|
|
22
|
+
@sia-ui/utils fonctions sans dépendance
|
|
23
|
+
@sia-ui/api client HTTP — indépendant de l'interface
|
|
24
|
+
@sia-ui/headless comportement, avec React, sans plateforme
|
|
25
|
+
@sia-ui/react primitives de runtime DOM
|
|
26
|
+
@sia-ui/react-web composants DOM
|
|
27
|
+
@sia-ui/react-native composants natifs, à venir
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Une chose s'écrit au niveau le plus bas où elle a du sens, et une seule fois.
|
|
31
|
+
Voir [la documentation](https://github.com/BeatJo/sia-ui/tree/main/docs).
|
|
32
|
+
|
|
33
|
+
## Licence
|
|
34
|
+
|
|
35
|
+
MIT
|
package/dist/index.cjs
CHANGED
|
@@ -60,17 +60,24 @@ var registry_default = {
|
|
|
60
60
|
},
|
|
61
61
|
{
|
|
62
62
|
name: "app-shell",
|
|
63
|
-
description: "
|
|
63
|
+
description: "Application shell: three sidebar states, permission filtering, router-agnostic active route, and mobile drawer or bottom tabs.",
|
|
64
64
|
type: "pattern",
|
|
65
|
-
version: "0.
|
|
65
|
+
version: "0.2.0",
|
|
66
66
|
status: "stable",
|
|
67
67
|
source: "package",
|
|
68
68
|
files: [
|
|
69
69
|
"components/AppShell/index.tsx",
|
|
70
|
+
"components/AppShell/tab-bar.tsx",
|
|
70
71
|
"components/AppShell/styles.css"
|
|
71
72
|
],
|
|
72
73
|
dependencies: [
|
|
74
|
+
"@sia-ui/headless",
|
|
75
|
+
"@sia-ui/react",
|
|
73
76
|
"@sia-ui/utils"
|
|
77
|
+
],
|
|
78
|
+
registryDependencies: [
|
|
79
|
+
"drawer",
|
|
80
|
+
"sidebar"
|
|
74
81
|
]
|
|
75
82
|
},
|
|
76
83
|
{
|
|
@@ -155,9 +162,9 @@ var registry_default = {
|
|
|
155
162
|
},
|
|
156
163
|
{
|
|
157
164
|
name: "avatar",
|
|
158
|
-
description: "
|
|
165
|
+
description: "Avatar and stacked group: name-derived tint, initials, presence, three shapes and variants.",
|
|
159
166
|
type: "primitive",
|
|
160
|
-
version: "0.
|
|
167
|
+
version: "0.2.0",
|
|
161
168
|
status: "stable",
|
|
162
169
|
source: "package",
|
|
163
170
|
files: [
|
|
@@ -212,11 +219,12 @@ var registry_default = {
|
|
|
212
219
|
name: "button",
|
|
213
220
|
description: "Accessible button with loading and icon states.",
|
|
214
221
|
type: "primitive",
|
|
215
|
-
version: "0.1.
|
|
222
|
+
version: "0.1.1",
|
|
216
223
|
status: "stable",
|
|
217
224
|
source: "package",
|
|
218
225
|
files: [
|
|
219
|
-
"components/Button/index.tsx"
|
|
226
|
+
"components/Button/index.tsx",
|
|
227
|
+
"components/Button/styles.css"
|
|
220
228
|
],
|
|
221
229
|
dependencies: [
|
|
222
230
|
"@sia-ui/headless",
|
|
@@ -373,22 +381,30 @@ var registry_default = {
|
|
|
373
381
|
},
|
|
374
382
|
{
|
|
375
383
|
name: "crud-page",
|
|
376
|
-
description: "
|
|
384
|
+
description: "List page for a declared resource: create, view, edit and delete open their own dialogs, each removable and permission-aware.",
|
|
377
385
|
type: "pattern",
|
|
378
|
-
version: "0.
|
|
386
|
+
version: "0.2.0",
|
|
379
387
|
status: "stable",
|
|
380
388
|
source: "package",
|
|
381
389
|
files: [
|
|
382
390
|
"components/CrudPage/index.tsx",
|
|
391
|
+
"components/CrudPage/dialogs.tsx",
|
|
383
392
|
"components/CrudPage/styles.css"
|
|
384
393
|
],
|
|
385
394
|
dependencies: [
|
|
395
|
+
"@sia-ui/headless",
|
|
386
396
|
"@sia-ui/utils"
|
|
387
397
|
],
|
|
388
398
|
registryDependencies: [
|
|
389
|
-
"
|
|
399
|
+
"button",
|
|
400
|
+
"data-table",
|
|
401
|
+
"descriptions",
|
|
402
|
+
"form",
|
|
403
|
+
"icons",
|
|
404
|
+
"modal",
|
|
390
405
|
"page-header",
|
|
391
|
-
"pagination"
|
|
406
|
+
"pagination",
|
|
407
|
+
"resource"
|
|
392
408
|
]
|
|
393
409
|
},
|
|
394
410
|
{
|
|
@@ -408,21 +424,35 @@ var registry_default = {
|
|
|
408
424
|
},
|
|
409
425
|
{
|
|
410
426
|
name: "data-table",
|
|
411
|
-
description: "
|
|
427
|
+
description: "Data table: row actions with permissions and confirmation, selection, card view, density and sorting.",
|
|
412
428
|
type: "component",
|
|
413
|
-
version: "0.
|
|
429
|
+
version: "0.2.0",
|
|
414
430
|
status: "stable",
|
|
415
431
|
source: "package",
|
|
416
432
|
files: [
|
|
417
433
|
"components/DataTable/index.tsx",
|
|
434
|
+
"components/DataTable/types.ts",
|
|
435
|
+
"components/DataTable/values.ts",
|
|
436
|
+
"components/DataTable/row-actions.tsx",
|
|
437
|
+
"components/DataTable/query.ts",
|
|
418
438
|
"components/DataTable/styles.css"
|
|
419
439
|
],
|
|
420
440
|
dependencies: [
|
|
421
441
|
"@sia-ui/headless",
|
|
442
|
+
"@sia-ui/react",
|
|
422
443
|
"@sia-ui/utils"
|
|
423
444
|
],
|
|
424
445
|
registryDependencies: [
|
|
425
|
-
"
|
|
446
|
+
"button",
|
|
447
|
+
"checkbox",
|
|
448
|
+
"confirm-dialog",
|
|
449
|
+
"dropdown-menu",
|
|
450
|
+
"empty-state",
|
|
451
|
+
"error-state",
|
|
452
|
+
"icon-button",
|
|
453
|
+
"icons",
|
|
454
|
+
"search-input",
|
|
455
|
+
"skeleton"
|
|
426
456
|
]
|
|
427
457
|
},
|
|
428
458
|
{
|
|
@@ -1275,6 +1305,30 @@ var registry_default = {
|
|
|
1275
1305
|
"@sia-ui/utils"
|
|
1276
1306
|
]
|
|
1277
1307
|
},
|
|
1308
|
+
{
|
|
1309
|
+
name: "resource",
|
|
1310
|
+
description: "Declare a resource once: table columns, form fields, detail view, validation, search keys and permissions are all derived from it.",
|
|
1311
|
+
type: "pattern",
|
|
1312
|
+
version: "0.2.0",
|
|
1313
|
+
status: "stable",
|
|
1314
|
+
source: "package",
|
|
1315
|
+
files: [
|
|
1316
|
+
"components/Resource/index.tsx"
|
|
1317
|
+
],
|
|
1318
|
+
dependencies: [
|
|
1319
|
+
"@sia-ui/headless",
|
|
1320
|
+
"@sia-ui/tokens",
|
|
1321
|
+
"@sia-ui/utils"
|
|
1322
|
+
],
|
|
1323
|
+
registryDependencies: [
|
|
1324
|
+
"amount-display",
|
|
1325
|
+
"badge",
|
|
1326
|
+
"data-table",
|
|
1327
|
+
"field",
|
|
1328
|
+
"form",
|
|
1329
|
+
"select"
|
|
1330
|
+
]
|
|
1331
|
+
},
|
|
1278
1332
|
{
|
|
1279
1333
|
name: "rich-text-editor",
|
|
1280
1334
|
description: "Lightweight rich text input with basic formatting commands.",
|
|
@@ -1346,9 +1400,9 @@ var registry_default = {
|
|
|
1346
1400
|
},
|
|
1347
1401
|
{
|
|
1348
1402
|
name: "sidebar",
|
|
1349
|
-
description: "
|
|
1403
|
+
description: "Application navigation: unlimited depth, permission filtering, and a rail whose sub-menus open in a flyout.",
|
|
1350
1404
|
type: "pattern",
|
|
1351
|
-
version: "0.
|
|
1405
|
+
version: "0.2.0",
|
|
1352
1406
|
status: "stable",
|
|
1353
1407
|
source: "package",
|
|
1354
1408
|
files: [
|
|
@@ -1357,10 +1411,12 @@ var registry_default = {
|
|
|
1357
1411
|
],
|
|
1358
1412
|
dependencies: [
|
|
1359
1413
|
"@sia-ui/headless",
|
|
1414
|
+
"@sia-ui/tokens",
|
|
1360
1415
|
"@sia-ui/utils"
|
|
1361
1416
|
],
|
|
1362
1417
|
registryDependencies: [
|
|
1363
|
-
"icons"
|
|
1418
|
+
"icons",
|
|
1419
|
+
"overlay"
|
|
1364
1420
|
]
|
|
1365
1421
|
},
|
|
1366
1422
|
{
|
package/dist/index.js
CHANGED
|
@@ -58,17 +58,24 @@ var registry_default = {
|
|
|
58
58
|
},
|
|
59
59
|
{
|
|
60
60
|
name: "app-shell",
|
|
61
|
-
description: "
|
|
61
|
+
description: "Application shell: three sidebar states, permission filtering, router-agnostic active route, and mobile drawer or bottom tabs.",
|
|
62
62
|
type: "pattern",
|
|
63
|
-
version: "0.
|
|
63
|
+
version: "0.2.0",
|
|
64
64
|
status: "stable",
|
|
65
65
|
source: "package",
|
|
66
66
|
files: [
|
|
67
67
|
"components/AppShell/index.tsx",
|
|
68
|
+
"components/AppShell/tab-bar.tsx",
|
|
68
69
|
"components/AppShell/styles.css"
|
|
69
70
|
],
|
|
70
71
|
dependencies: [
|
|
72
|
+
"@sia-ui/headless",
|
|
73
|
+
"@sia-ui/react",
|
|
71
74
|
"@sia-ui/utils"
|
|
75
|
+
],
|
|
76
|
+
registryDependencies: [
|
|
77
|
+
"drawer",
|
|
78
|
+
"sidebar"
|
|
72
79
|
]
|
|
73
80
|
},
|
|
74
81
|
{
|
|
@@ -153,9 +160,9 @@ var registry_default = {
|
|
|
153
160
|
},
|
|
154
161
|
{
|
|
155
162
|
name: "avatar",
|
|
156
|
-
description: "
|
|
163
|
+
description: "Avatar and stacked group: name-derived tint, initials, presence, three shapes and variants.",
|
|
157
164
|
type: "primitive",
|
|
158
|
-
version: "0.
|
|
165
|
+
version: "0.2.0",
|
|
159
166
|
status: "stable",
|
|
160
167
|
source: "package",
|
|
161
168
|
files: [
|
|
@@ -210,11 +217,12 @@ var registry_default = {
|
|
|
210
217
|
name: "button",
|
|
211
218
|
description: "Accessible button with loading and icon states.",
|
|
212
219
|
type: "primitive",
|
|
213
|
-
version: "0.1.
|
|
220
|
+
version: "0.1.1",
|
|
214
221
|
status: "stable",
|
|
215
222
|
source: "package",
|
|
216
223
|
files: [
|
|
217
|
-
"components/Button/index.tsx"
|
|
224
|
+
"components/Button/index.tsx",
|
|
225
|
+
"components/Button/styles.css"
|
|
218
226
|
],
|
|
219
227
|
dependencies: [
|
|
220
228
|
"@sia-ui/headless",
|
|
@@ -371,22 +379,30 @@ var registry_default = {
|
|
|
371
379
|
},
|
|
372
380
|
{
|
|
373
381
|
name: "crud-page",
|
|
374
|
-
description: "
|
|
382
|
+
description: "List page for a declared resource: create, view, edit and delete open their own dialogs, each removable and permission-aware.",
|
|
375
383
|
type: "pattern",
|
|
376
|
-
version: "0.
|
|
384
|
+
version: "0.2.0",
|
|
377
385
|
status: "stable",
|
|
378
386
|
source: "package",
|
|
379
387
|
files: [
|
|
380
388
|
"components/CrudPage/index.tsx",
|
|
389
|
+
"components/CrudPage/dialogs.tsx",
|
|
381
390
|
"components/CrudPage/styles.css"
|
|
382
391
|
],
|
|
383
392
|
dependencies: [
|
|
393
|
+
"@sia-ui/headless",
|
|
384
394
|
"@sia-ui/utils"
|
|
385
395
|
],
|
|
386
396
|
registryDependencies: [
|
|
387
|
-
"
|
|
397
|
+
"button",
|
|
398
|
+
"data-table",
|
|
399
|
+
"descriptions",
|
|
400
|
+
"form",
|
|
401
|
+
"icons",
|
|
402
|
+
"modal",
|
|
388
403
|
"page-header",
|
|
389
|
-
"pagination"
|
|
404
|
+
"pagination",
|
|
405
|
+
"resource"
|
|
390
406
|
]
|
|
391
407
|
},
|
|
392
408
|
{
|
|
@@ -406,21 +422,35 @@ var registry_default = {
|
|
|
406
422
|
},
|
|
407
423
|
{
|
|
408
424
|
name: "data-table",
|
|
409
|
-
description: "
|
|
425
|
+
description: "Data table: row actions with permissions and confirmation, selection, card view, density and sorting.",
|
|
410
426
|
type: "component",
|
|
411
|
-
version: "0.
|
|
427
|
+
version: "0.2.0",
|
|
412
428
|
status: "stable",
|
|
413
429
|
source: "package",
|
|
414
430
|
files: [
|
|
415
431
|
"components/DataTable/index.tsx",
|
|
432
|
+
"components/DataTable/types.ts",
|
|
433
|
+
"components/DataTable/values.ts",
|
|
434
|
+
"components/DataTable/row-actions.tsx",
|
|
435
|
+
"components/DataTable/query.ts",
|
|
416
436
|
"components/DataTable/styles.css"
|
|
417
437
|
],
|
|
418
438
|
dependencies: [
|
|
419
439
|
"@sia-ui/headless",
|
|
440
|
+
"@sia-ui/react",
|
|
420
441
|
"@sia-ui/utils"
|
|
421
442
|
],
|
|
422
443
|
registryDependencies: [
|
|
423
|
-
"
|
|
444
|
+
"button",
|
|
445
|
+
"checkbox",
|
|
446
|
+
"confirm-dialog",
|
|
447
|
+
"dropdown-menu",
|
|
448
|
+
"empty-state",
|
|
449
|
+
"error-state",
|
|
450
|
+
"icon-button",
|
|
451
|
+
"icons",
|
|
452
|
+
"search-input",
|
|
453
|
+
"skeleton"
|
|
424
454
|
]
|
|
425
455
|
},
|
|
426
456
|
{
|
|
@@ -1273,6 +1303,30 @@ var registry_default = {
|
|
|
1273
1303
|
"@sia-ui/utils"
|
|
1274
1304
|
]
|
|
1275
1305
|
},
|
|
1306
|
+
{
|
|
1307
|
+
name: "resource",
|
|
1308
|
+
description: "Declare a resource once: table columns, form fields, detail view, validation, search keys and permissions are all derived from it.",
|
|
1309
|
+
type: "pattern",
|
|
1310
|
+
version: "0.2.0",
|
|
1311
|
+
status: "stable",
|
|
1312
|
+
source: "package",
|
|
1313
|
+
files: [
|
|
1314
|
+
"components/Resource/index.tsx"
|
|
1315
|
+
],
|
|
1316
|
+
dependencies: [
|
|
1317
|
+
"@sia-ui/headless",
|
|
1318
|
+
"@sia-ui/tokens",
|
|
1319
|
+
"@sia-ui/utils"
|
|
1320
|
+
],
|
|
1321
|
+
registryDependencies: [
|
|
1322
|
+
"amount-display",
|
|
1323
|
+
"badge",
|
|
1324
|
+
"data-table",
|
|
1325
|
+
"field",
|
|
1326
|
+
"form",
|
|
1327
|
+
"select"
|
|
1328
|
+
]
|
|
1329
|
+
},
|
|
1276
1330
|
{
|
|
1277
1331
|
name: "rich-text-editor",
|
|
1278
1332
|
description: "Lightweight rich text input with basic formatting commands.",
|
|
@@ -1344,9 +1398,9 @@ var registry_default = {
|
|
|
1344
1398
|
},
|
|
1345
1399
|
{
|
|
1346
1400
|
name: "sidebar",
|
|
1347
|
-
description: "
|
|
1401
|
+
description: "Application navigation: unlimited depth, permission filtering, and a rail whose sub-menus open in a flyout.",
|
|
1348
1402
|
type: "pattern",
|
|
1349
|
-
version: "0.
|
|
1403
|
+
version: "0.2.0",
|
|
1350
1404
|
status: "stable",
|
|
1351
1405
|
source: "package",
|
|
1352
1406
|
files: [
|
|
@@ -1355,10 +1409,12 @@ var registry_default = {
|
|
|
1355
1409
|
],
|
|
1356
1410
|
dependencies: [
|
|
1357
1411
|
"@sia-ui/headless",
|
|
1412
|
+
"@sia-ui/tokens",
|
|
1358
1413
|
"@sia-ui/utils"
|
|
1359
1414
|
],
|
|
1360
1415
|
registryDependencies: [
|
|
1361
|
-
"icons"
|
|
1416
|
+
"icons",
|
|
1417
|
+
"overlay"
|
|
1362
1418
|
]
|
|
1363
1419
|
},
|
|
1364
1420
|
{
|
package/package.json
CHANGED
package/registry.json
CHANGED
|
@@ -60,17 +60,24 @@
|
|
|
60
60
|
},
|
|
61
61
|
{
|
|
62
62
|
"name": "app-shell",
|
|
63
|
-
"description": "
|
|
63
|
+
"description": "Application shell: three sidebar states, permission filtering, router-agnostic active route, and mobile drawer or bottom tabs.",
|
|
64
64
|
"type": "pattern",
|
|
65
|
-
"version": "0.
|
|
65
|
+
"version": "0.2.0",
|
|
66
66
|
"status": "stable",
|
|
67
67
|
"source": "package",
|
|
68
68
|
"files": [
|
|
69
69
|
"components/AppShell/index.tsx",
|
|
70
|
+
"components/AppShell/tab-bar.tsx",
|
|
70
71
|
"components/AppShell/styles.css"
|
|
71
72
|
],
|
|
72
73
|
"dependencies": [
|
|
74
|
+
"@sia-ui/headless",
|
|
75
|
+
"@sia-ui/react",
|
|
73
76
|
"@sia-ui/utils"
|
|
77
|
+
],
|
|
78
|
+
"registryDependencies": [
|
|
79
|
+
"drawer",
|
|
80
|
+
"sidebar"
|
|
74
81
|
]
|
|
75
82
|
},
|
|
76
83
|
{
|
|
@@ -155,9 +162,9 @@
|
|
|
155
162
|
},
|
|
156
163
|
{
|
|
157
164
|
"name": "avatar",
|
|
158
|
-
"description": "
|
|
165
|
+
"description": "Avatar and stacked group: name-derived tint, initials, presence, three shapes and variants.",
|
|
159
166
|
"type": "primitive",
|
|
160
|
-
"version": "0.
|
|
167
|
+
"version": "0.2.0",
|
|
161
168
|
"status": "stable",
|
|
162
169
|
"source": "package",
|
|
163
170
|
"files": [
|
|
@@ -212,11 +219,12 @@
|
|
|
212
219
|
"name": "button",
|
|
213
220
|
"description": "Accessible button with loading and icon states.",
|
|
214
221
|
"type": "primitive",
|
|
215
|
-
"version": "0.1.
|
|
222
|
+
"version": "0.1.1",
|
|
216
223
|
"status": "stable",
|
|
217
224
|
"source": "package",
|
|
218
225
|
"files": [
|
|
219
|
-
"components/Button/index.tsx"
|
|
226
|
+
"components/Button/index.tsx",
|
|
227
|
+
"components/Button/styles.css"
|
|
220
228
|
],
|
|
221
229
|
"dependencies": [
|
|
222
230
|
"@sia-ui/headless",
|
|
@@ -373,22 +381,30 @@
|
|
|
373
381
|
},
|
|
374
382
|
{
|
|
375
383
|
"name": "crud-page",
|
|
376
|
-
"description": "
|
|
384
|
+
"description": "List page for a declared resource: create, view, edit and delete open their own dialogs, each removable and permission-aware.",
|
|
377
385
|
"type": "pattern",
|
|
378
|
-
"version": "0.
|
|
386
|
+
"version": "0.2.0",
|
|
379
387
|
"status": "stable",
|
|
380
388
|
"source": "package",
|
|
381
389
|
"files": [
|
|
382
390
|
"components/CrudPage/index.tsx",
|
|
391
|
+
"components/CrudPage/dialogs.tsx",
|
|
383
392
|
"components/CrudPage/styles.css"
|
|
384
393
|
],
|
|
385
394
|
"dependencies": [
|
|
395
|
+
"@sia-ui/headless",
|
|
386
396
|
"@sia-ui/utils"
|
|
387
397
|
],
|
|
388
398
|
"registryDependencies": [
|
|
389
|
-
"
|
|
399
|
+
"button",
|
|
400
|
+
"data-table",
|
|
401
|
+
"descriptions",
|
|
402
|
+
"form",
|
|
403
|
+
"icons",
|
|
404
|
+
"modal",
|
|
390
405
|
"page-header",
|
|
391
|
-
"pagination"
|
|
406
|
+
"pagination",
|
|
407
|
+
"resource"
|
|
392
408
|
]
|
|
393
409
|
},
|
|
394
410
|
{
|
|
@@ -408,21 +424,35 @@
|
|
|
408
424
|
},
|
|
409
425
|
{
|
|
410
426
|
"name": "data-table",
|
|
411
|
-
"description": "
|
|
427
|
+
"description": "Data table: row actions with permissions and confirmation, selection, card view, density and sorting.",
|
|
412
428
|
"type": "component",
|
|
413
|
-
"version": "0.
|
|
429
|
+
"version": "0.2.0",
|
|
414
430
|
"status": "stable",
|
|
415
431
|
"source": "package",
|
|
416
432
|
"files": [
|
|
417
433
|
"components/DataTable/index.tsx",
|
|
434
|
+
"components/DataTable/types.ts",
|
|
435
|
+
"components/DataTable/values.ts",
|
|
436
|
+
"components/DataTable/row-actions.tsx",
|
|
437
|
+
"components/DataTable/query.ts",
|
|
418
438
|
"components/DataTable/styles.css"
|
|
419
439
|
],
|
|
420
440
|
"dependencies": [
|
|
421
441
|
"@sia-ui/headless",
|
|
442
|
+
"@sia-ui/react",
|
|
422
443
|
"@sia-ui/utils"
|
|
423
444
|
],
|
|
424
445
|
"registryDependencies": [
|
|
425
|
-
"
|
|
446
|
+
"button",
|
|
447
|
+
"checkbox",
|
|
448
|
+
"confirm-dialog",
|
|
449
|
+
"dropdown-menu",
|
|
450
|
+
"empty-state",
|
|
451
|
+
"error-state",
|
|
452
|
+
"icon-button",
|
|
453
|
+
"icons",
|
|
454
|
+
"search-input",
|
|
455
|
+
"skeleton"
|
|
426
456
|
]
|
|
427
457
|
},
|
|
428
458
|
{
|
|
@@ -1275,6 +1305,30 @@
|
|
|
1275
1305
|
"@sia-ui/utils"
|
|
1276
1306
|
]
|
|
1277
1307
|
},
|
|
1308
|
+
{
|
|
1309
|
+
"name": "resource",
|
|
1310
|
+
"description": "Declare a resource once: table columns, form fields, detail view, validation, search keys and permissions are all derived from it.",
|
|
1311
|
+
"type": "pattern",
|
|
1312
|
+
"version": "0.2.0",
|
|
1313
|
+
"status": "stable",
|
|
1314
|
+
"source": "package",
|
|
1315
|
+
"files": [
|
|
1316
|
+
"components/Resource/index.tsx"
|
|
1317
|
+
],
|
|
1318
|
+
"dependencies": [
|
|
1319
|
+
"@sia-ui/headless",
|
|
1320
|
+
"@sia-ui/tokens",
|
|
1321
|
+
"@sia-ui/utils"
|
|
1322
|
+
],
|
|
1323
|
+
"registryDependencies": [
|
|
1324
|
+
"amount-display",
|
|
1325
|
+
"badge",
|
|
1326
|
+
"data-table",
|
|
1327
|
+
"field",
|
|
1328
|
+
"form",
|
|
1329
|
+
"select"
|
|
1330
|
+
]
|
|
1331
|
+
},
|
|
1278
1332
|
{
|
|
1279
1333
|
"name": "rich-text-editor",
|
|
1280
1334
|
"description": "Lightweight rich text input with basic formatting commands.",
|
|
@@ -1346,9 +1400,9 @@
|
|
|
1346
1400
|
},
|
|
1347
1401
|
{
|
|
1348
1402
|
"name": "sidebar",
|
|
1349
|
-
"description": "
|
|
1403
|
+
"description": "Application navigation: unlimited depth, permission filtering, and a rail whose sub-menus open in a flyout.",
|
|
1350
1404
|
"type": "pattern",
|
|
1351
|
-
"version": "0.
|
|
1405
|
+
"version": "0.2.0",
|
|
1352
1406
|
"status": "stable",
|
|
1353
1407
|
"source": "package",
|
|
1354
1408
|
"files": [
|
|
@@ -1357,10 +1411,12 @@
|
|
|
1357
1411
|
],
|
|
1358
1412
|
"dependencies": [
|
|
1359
1413
|
"@sia-ui/headless",
|
|
1414
|
+
"@sia-ui/tokens",
|
|
1360
1415
|
"@sia-ui/utils"
|
|
1361
1416
|
],
|
|
1362
1417
|
"registryDependencies": [
|
|
1363
|
-
"icons"
|
|
1418
|
+
"icons",
|
|
1419
|
+
"overlay"
|
|
1364
1420
|
]
|
|
1365
1421
|
},
|
|
1366
1422
|
{
|