@nomosui/react 0.5.3 → 0.6.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/SKILL.md CHANGED
@@ -33,11 +33,17 @@ pour expliquer une brique, elle appartient à l'app, pas au cœur.
33
33
  Jamais pour une information essentielle : elle n'est ni au clavier seul ni au tactile.
34
34
  - **Représenter une personne par son image** → `Avatar` (le texte alternatif et le repli
35
35
  viennent de l'app ; natif `<img>` + `onError`, sans dépendance).
36
+ - **Coiffer un titre d'une accroche courte** → `Kicker` (un libellé en majuscules, un point
37
+ de ton optionnel via `dot` ; le texte est injecté par l'appelant).
36
38
 
37
39
  ### Agir, saisir
38
40
 
39
41
  - **Agir** → `Button` (`variant` = le ton, `size` = la densité ; `asChild` pour poser le
40
42
  style sur un lien).
43
+ - **Naviguer vers une URL** → `Link` (un `<a>` ; `href` et libellé injectés, le cœur ne
44
+ porte aucun routing ; `asChild` pour poser le style sur un composant de routing de l'app).
45
+ - **Copier un texte** → `CopyButton` (`value` à copier, `label`/`copiedLabel` et `icon`
46
+ injectés ; le libellé transitoire revient seul après ~2 s).
41
47
  - **Saisir une ligne** → `Input` ; **un nombre borné** → `NumberField` (`step`, `min`,
42
48
  `max` du natif) ; **chercher avec icône et effacement** → `SearchField` ; **plusieurs
43
49
  lignes** → `Textarea`.
@@ -52,8 +58,13 @@ pour expliquer une brique, elle appartient à l'app, pas au cœur.
52
58
  ### Structurer
53
59
 
54
60
  - **Une surface** (titre, corps, pied) → les parts de `Card`.
61
+ - **L'en-tête d'un site** (marque, navigation, actions) → `Navbar` : une barre sticky en
62
+ haut, bordure basse, fond du cœur. Les slots `brand`, `nav` et `actions` sont injectés
63
+ par l'app — aucun `href` ni mot produit dans le cœur (ADR 0030).
55
64
  - **Un état vide, ou une panne à nommer** → `EmptyState` (la carte centrée ; le `detail`
56
65
  brut nomme la vraie panne, plutôt qu'un zéro silencieux).
66
+ - **Un pied de page** (marque, rangée de liens, ligne légale) → `Footer` : des emplacements
67
+ injectés (`brand`, `links`, `legal`), sans routing ni libellé propre au cœur.
57
68
  - **Une information inline** qui demande l'attention sans bloquer → `Alert` (le ton vient
58
69
  du cœur ; `onClose` va avec `closeLabel`).
59
70
  - **Séparer deux contenus** → `Separator` ; **tenir la place d'un contenu qui charge** →
@@ -86,6 +97,18 @@ pour expliquer une brique, elle appartient à l'app, pas au cœur.
86
97
  (sélection multiple) ; ouverture et sélection sont contrôlées par props, le focus
87
98
  clavier (rôle `tree`, flèches) est interne.
88
99
 
100
+ ### Écrire
101
+
102
+ - **Titrer une section** → `Heading` : `level` choisit la balise `h1`..`h6` **et** la taille
103
+ sémantique (display, title, lead, body, caption, micro). La hiérarchie du document se
104
+ décide par le niveau, jamais par la taille.
105
+ - **Écrire le texte courant** → `Text` : `size` lit l'échelle sémantique (`lead`, `body`,
106
+ `caption`, `micro`), `as` choisit `p` (défaut) ou `span` pour un texte inline. Les tailles
107
+ viennent des tokens, jamais d'un utilitaire ad-hoc.
108
+ - **Montrer un extrait de code** → `Code` (inline, dans une phrase) ou `CodeBlock` (bloc
109
+ scrollable avec bouton de copie ; `code` est le texte copié, `children` le rendu, les
110
+ libellés sont injectés). La coloration syntaxique reste à l'app.
111
+
89
112
  ### Formulaire
90
113
 
91
114
  - **Mettre en page** → `Form` (grille de champs + zone d'actions, `columns` pour deux
@@ -132,7 +155,10 @@ button
132
155
  card
133
156
  checkbox
134
157
  chip
158
+ code
159
+ code-block
135
160
  collapsible
161
+ copy-button
136
162
  counter
137
163
  data-table-pagination
138
164
  data-table-toolbar
@@ -142,11 +168,16 @@ empty-state
142
168
  facet-filter
143
169
  field
144
170
  fieldset
171
+ footer
145
172
  form
146
173
  freshness
174
+ heading
147
175
  input
176
+ kicker
148
177
  label
178
+ link
149
179
  meter
180
+ navbar
150
181
  number-field
151
182
  popover
152
183
  progress-bar
@@ -161,6 +192,7 @@ skeleton
161
192
  switch
162
193
  table
163
194
  tabs
195
+ text
164
196
  textarea
165
197
  timeline
166
198
  toast