odoro 1.0.9 → 2.0.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.
Files changed (85) hide show
  1. package/README.md +94 -0
  2. package/client.d.ts +90 -16
  3. package/dist/build-LZAUDJST.js +5 -0
  4. package/dist/{chunk-34RGOZFA.js → chunk-4D56Z7G3.js} +49 -50
  5. package/dist/{chunk-JMEHF3KN.js → chunk-7ZB5MAM6.js} +4 -4
  6. package/dist/{chunk-LHZGX5ML.js → chunk-OMHEQVIW.js} +295 -160
  7. package/dist/{chunk-3SZIN6VG.js → chunk-P3DJITWE.js} +10 -10
  8. package/dist/{chunk-ZVL7EXJO.js → chunk-PRWVZ2SM.js} +22 -14
  9. package/dist/chunk-Q2KCMTB5.js +741 -0
  10. package/dist/chunk-QOVBLN7A.js +241 -0
  11. package/dist/chunk-WWTDEV4Y.js +604 -0
  12. package/dist/cli.d.ts +12 -13
  13. package/dist/cli.js +84 -63
  14. package/dist/{commands-4JRBD55Z.js → commands-EUGVLQWL.js} +44 -45
  15. package/dist/{commands-AHMXBWQQ.js → commands-GYA7NTCX.js} +124 -124
  16. package/dist/{create-CYVSVDAD.js → create-QX5LEWMS.js} +158 -154
  17. package/dist/index.d.ts +603 -151
  18. package/dist/index.js +6 -6
  19. package/dist/{package-EIDLKAA6.js → package-T4Z7OBOH.js} +5 -5
  20. package/dist/preview-P4WY5GEY.js +4 -0
  21. package/dist/registry/index.d.ts +75 -76
  22. package/dist/registry/index.js +1 -1
  23. package/dist/{server-4UGN3SFS.js → server-2WP562EV.js} +3 -3
  24. package/package.json +5 -5
  25. package/templates/react-ts/README.md +71 -35
  26. package/templates/react-ts/_env.example +9 -0
  27. package/templates/react-ts/_variants/with-engine/src/background.tsx +118 -0
  28. package/templates/react-ts/_variants/without-libs/src/App.tsx +380 -0
  29. package/templates/react-ts/_variants/without-libs/src/background.tsx +24 -0
  30. package/templates/react-ts/_variants/without-libs/src/entry-server.tsx +39 -0
  31. package/templates/react-ts/_variants/without-libs/src/main.tsx +26 -0
  32. package/templates/{react-ts-server/_variantes/sans-libs/client → react-ts/_variants/without-libs}/src/styles.css +137 -137
  33. package/templates/react-ts/{_variantes/sans-routeur → _variants/without-router}/src/App.tsx +141 -141
  34. package/templates/react-ts/_variants/without-router/src/entry-server.tsx +39 -0
  35. package/templates/react-ts/index.html +4 -4
  36. package/templates/react-ts/odoro.config.ts +5 -0
  37. package/templates/react-ts/src/App.tsx +219 -209
  38. package/templates/react-ts/src/background.tsx +66 -0
  39. package/templates/react-ts/src/entry-server.tsx +85 -0
  40. package/templates/react-ts/src/main.tsx +13 -4
  41. package/templates/react-ts/src/router.tsx +65 -45
  42. package/templates/react-ts/src/styles.css +5 -5
  43. package/templates/react-ts-server/Dockerfile +9 -9
  44. package/templates/react-ts-server/README.md +97 -45
  45. package/templates/react-ts-server/_env.example +31 -33
  46. package/templates/react-ts-server/_variants/with-engine/client/src/background.tsx +118 -0
  47. package/templates/react-ts-server/_variants/without-libs/client/src/App.tsx +380 -0
  48. package/templates/react-ts-server/_variants/without-libs/client/src/background.tsx +24 -0
  49. package/templates/react-ts-server/_variants/without-libs/client/src/entry-server.tsx +39 -0
  50. package/templates/react-ts-server/_variants/without-libs/client/src/main.tsx +26 -0
  51. package/templates/{react-ts/_variantes/sans-libs → react-ts-server/_variants/without-libs/client}/src/styles.css +137 -137
  52. package/templates/react-ts-server/{_variantes/sans-routeur → _variants/without-router}/client/src/App.tsx +141 -141
  53. package/templates/react-ts-server/_variants/without-router/client/src/entry-server.tsx +39 -0
  54. package/templates/react-ts-server/client/index.html +4 -4
  55. package/templates/react-ts-server/client/src/App.tsx +228 -210
  56. package/templates/react-ts-server/client/src/account.tsx +267 -0
  57. package/templates/react-ts-server/client/src/auth.tsx +139 -0
  58. package/templates/react-ts-server/client/src/background.tsx +66 -0
  59. package/templates/react-ts-server/client/src/entry-server.tsx +92 -0
  60. package/templates/react-ts-server/client/src/main.tsx +17 -5
  61. package/templates/react-ts-server/client/src/router.tsx +77 -45
  62. package/templates/react-ts-server/client/src/styles.css +5 -5
  63. package/templates/react-ts-server/odoro.config.ts +7 -4
  64. package/templates/react-ts-server/package.json +2 -0
  65. package/templates/react-ts-server/scripts/dev.mjs +14 -14
  66. package/templates/react-ts-server/server/src/main.ts +119 -45
  67. package/templates/react-ts-server/server/src/modules/auth/index.ts +238 -0
  68. package/templates/react-ts-server/server/src/modules/auth/password.ts +122 -0
  69. package/templates/react-ts-server/server/src/modules/auth/store.ts +193 -0
  70. package/templates/react-ts-server/server/src/modules/health/index.ts +45 -46
  71. package/dist/build-JFQHODAT.js +0 -5
  72. package/dist/chunk-22KJTV2R.js +0 -380
  73. package/dist/chunk-DL3NPC4H.js +0 -113
  74. package/dist/chunk-TQUJ3MFS.js +0 -268
  75. package/dist/preview-7DKEAQOQ.js +0 -4
  76. package/templates/react-ts/_variantes/avec-moteur/src/fond.tsx +0 -118
  77. package/templates/react-ts/_variantes/sans-libs/src/App.tsx +0 -382
  78. package/templates/react-ts/_variantes/sans-libs/src/fond.tsx +0 -23
  79. package/templates/react-ts/_variantes/sans-libs/src/main.tsx +0 -17
  80. package/templates/react-ts/src/fond.tsx +0 -66
  81. package/templates/react-ts-server/_variantes/avec-moteur/client/src/fond.tsx +0 -118
  82. package/templates/react-ts-server/_variantes/sans-libs/client/src/App.tsx +0 -382
  83. package/templates/react-ts-server/_variantes/sans-libs/client/src/fond.tsx +0 -23
  84. package/templates/react-ts-server/_variantes/sans-libs/client/src/main.tsx +0 -17
  85. package/templates/react-ts-server/client/src/fond.tsx +0 -66
@@ -1,53 +1,53 @@
1
- /* Styles de l'application.
1
+ /* Application styles.
2
2
 
3
- Les bibliotheques Odoro n'ont pas ete retenues a la creation : il n'y a donc
4
- ni jetons ni classes utilitaires, et cette feuille porte tout. Le dessin est
5
- celui de la version complete — meme barre en gelules, meme typographie,
6
- memes cartes, meme teinte de marque — en CSS ordinaire.
3
+ The Odoro libraries were not picked at creation: there are therefore no
4
+ tokens and no utility classes, and this stylesheet carries everything. The
5
+ design is that of the full version — same pill bar, same typography, same
6
+ cards, same brand hue — in plain CSS.
7
7
 
8
- Une seule variable commande la couleur : `--marque`. La changer repeint le
9
- signe, les accents et les boutons d'un seul coup.
8
+ A single variable drives the colour: `--brand`. Changing it repaints the
9
+ mark, the accents and the buttons in one go.
10
10
 
11
- Pour passer aux jetons plus tard : `npm i @odoro-cli/libs`, puis importer
12
- `@odoro-cli/libs/styles.css` dans `main.tsx` avant cette feuille. */
11
+ To move to the tokens later: `npm i @odoro-cli/libs`, then import
12
+ `@odoro-cli/libs/styles.css` in `main.tsx` before this stylesheet. */
13
13
 
14
14
  :root {
15
- --marque: #3b82f6;
16
- --fond: #ffffff;
17
- --encre: #18181b;
18
- --doux: #71717a;
19
- --filet: #e4e4e7;
15
+ --brand: #3b82f6;
16
+ --bg: #ffffff;
17
+ --ink: #18181b;
18
+ --muted: #71717a;
19
+ --line: #e4e4e7;
20
20
  --surface: #fafafa;
21
21
  color-scheme: light dark;
22
22
  }
23
23
 
24
- /* Les valeurs du theme sombre, ecrites une fois et reprises deux fois.
24
+ /* The dark theme values, written once and repeated twice.
25
25
 
26
- La bascule pose `data-theme` sur la racine ; sans attribut, la preference du
27
- navigateur decide. Les deux regles sont donc necessaires : la seconde sans la
28
- premiere ignorerait le choix du visiteur, la premiere sans la seconde
29
- rendrait un fond blanc au milieu de la nuit. */
26
+ The toggle sets `data-theme` on the root; with no attribute, the browser
27
+ preference decides. Both rules are therefore needed: the second without the
28
+ first would ignore the visitor's choice, the first without the second would
29
+ render a white background in the middle of the night. */
30
30
  @media (prefers-color-scheme: dark) {
31
31
  :root:not([data-theme='light']) {
32
- --fond: #09090b;
33
- --encre: #fafafa;
34
- --doux: #a1a1aa;
35
- --filet: #27272a;
32
+ --bg: #09090b;
33
+ --ink: #fafafa;
34
+ --muted: #a1a1aa;
35
+ --line: #27272a;
36
36
  --surface: #18181b;
37
37
  }
38
38
  }
39
39
 
40
40
  :root[data-theme='dark'] {
41
- --fond: #09090b;
42
- --encre: #fafafa;
43
- --doux: #a1a1aa;
44
- --filet: #27272a;
41
+ --bg: #09090b;
42
+ --ink: #fafafa;
43
+ --muted: #a1a1aa;
44
+ --line: #27272a;
45
45
  --surface: #18181b;
46
46
  }
47
47
 
48
- /* Le choix explicite est dit au navigateur : sans cela, `light-dark()`, les
49
- controles natifs et les barres de defilement continuent de suivre un systeme
50
- en nuit alors que le visiteur a demande le clair. */
48
+ /* The explicit choice is told to the browser: without it, `light-dark()`, the
49
+ native controls and the scrollbars keep following a system set to night even
50
+ though the visitor asked for light. */
51
51
  :root[data-theme='light'] {
52
52
  color-scheme: light;
53
53
  }
@@ -62,8 +62,8 @@
62
62
 
63
63
  body {
64
64
  margin: 0;
65
- background: var(--fond);
66
- color: var(--encre);
65
+ background: var(--bg);
66
+ color: var(--ink);
67
67
  font-family: system-ui, -apple-system, Segoe UI, sans-serif;
68
68
  line-height: 1.6;
69
69
  }
@@ -79,20 +79,20 @@ pre {
79
79
  grid-template-rows: auto 1fr auto;
80
80
  }
81
81
 
82
- /* ----- Barre en gelules --------------------------------------------------- */
82
+ /* ----- Pill bar ----------------------------------------------------------- */
83
83
 
84
- /* La barre ne peint pas de bandeau : ce sont les gelules qui portent la
85
- surface, posees sur ce qu'il y a derriere. Le fond decoratif continue donc
86
- de passer dessous, au lieu d'etre coupe par une bande opaque. */
84
+ /* The bar paints no band: the pills carry the surface, laid over whatever is
85
+ behind. The decorative background therefore keeps showing through, instead
86
+ of being cut off by an opaque strip. */
87
87
 
88
- .barre {
88
+ .nav {
89
89
  position: sticky;
90
90
  top: 0;
91
91
  z-index: 20;
92
92
  padding: 0 1.25rem;
93
93
  }
94
94
 
95
- .barre-contenu {
95
+ .nav-content {
96
96
  display: flex;
97
97
  align-items: center;
98
98
  gap: 0.75rem;
@@ -102,96 +102,96 @@ pre {
102
102
  margin: 0 auto;
103
103
  }
104
104
 
105
- .gelule {
105
+ .pill {
106
106
  display: inline-flex;
107
107
  align-items: center;
108
108
  height: 3.5rem;
109
109
  flex-shrink: 0;
110
110
  padding: 0 1.25rem;
111
- border: 1px solid color-mix(in oklab, var(--encre) 12%, transparent);
111
+ border: 1px solid color-mix(in oklab, var(--ink) 12%, transparent);
112
112
  border-radius: 9999px;
113
- background: color-mix(in oklab, var(--fond) 72%, transparent);
113
+ background: color-mix(in oklab, var(--bg) 72%, transparent);
114
114
  backdrop-filter: blur(16px);
115
115
  text-decoration: none;
116
116
  }
117
117
 
118
- .barre-fin {
118
+ .nav-end {
119
119
  margin-left: auto;
120
120
  display: flex;
121
121
  align-items: center;
122
122
  gap: 0.75rem;
123
123
  }
124
124
 
125
- .gelule-lien {
126
- color: var(--doux);
125
+ .pill-link {
126
+ color: var(--muted);
127
127
  font-size: 0.875rem;
128
128
  }
129
129
 
130
- .bascule {
130
+ .toggle {
131
131
  width: 3.5rem;
132
132
  justify-content: center;
133
133
  padding: 0;
134
- color: var(--doux);
134
+ color: var(--muted);
135
135
  cursor: pointer;
136
136
  }
137
137
 
138
- .bascule:hover {
139
- color: var(--encre);
138
+ .toggle:hover {
139
+ color: var(--ink);
140
140
  }
141
141
 
142
- .gelule-lien:hover {
143
- color: var(--encre);
142
+ .pill-link:hover {
143
+ color: var(--ink);
144
144
  }
145
145
 
146
- /* ----- Marque ------------------------------------------------------------- */
146
+ /* ----- Brand -------------------------------------------------------------- */
147
147
 
148
- .marque {
148
+ .brand {
149
149
  display: inline-flex;
150
150
  align-items: center;
151
151
  gap: 0.625rem;
152
152
  }
153
153
 
154
- .marque-signe {
155
- color: var(--marque);
154
+ .brand-mark {
155
+ color: var(--brand);
156
156
  display: inline-flex;
157
157
  }
158
158
 
159
- .marque-mot {
159
+ .brand-word {
160
160
  font-size: 1.125rem;
161
161
  font-weight: 700;
162
162
  letter-spacing: 0.025em;
163
- color: var(--encre);
163
+ color: var(--ink);
164
164
  }
165
165
 
166
- /* ----- Coquille ----------------------------------------------------------- */
166
+ /* ----- Shell -------------------------------------------------------------- */
167
167
 
168
- .app-shell-fond {
168
+ .app-shell-background {
169
169
  position: relative;
170
170
  }
171
171
 
172
- .principal {
172
+ .main {
173
173
  position: relative;
174
174
  }
175
175
 
176
- .pied {
176
+ .footer {
177
177
  display: flex;
178
178
  align-items: center;
179
179
  justify-content: space-between;
180
180
  gap: 1rem;
181
181
  padding: 2rem 1.5rem;
182
- border-top: 1px solid var(--filet);
183
- color: var(--doux);
182
+ border-top: 1px solid var(--line);
183
+ color: var(--muted);
184
184
  font-size: 0.875rem;
185
185
  }
186
186
 
187
- .pied .marque-mot {
187
+ .footer .brand-word {
188
188
  font-size: 0.875rem;
189
189
  color: inherit;
190
190
  }
191
191
 
192
- /* ----- Fond decoratif ----------------------------------------------------- */
192
+ /* ----- Decorative background ---------------------------------------------- */
193
193
 
194
- .fond {
194
+ .background {
195
195
  position: absolute;
196
196
  inset-inline: 0;
197
197
  top: 0;
@@ -200,45 +200,45 @@ pre {
200
200
  pointer-events: none;
201
201
  }
202
202
 
203
- .fond-nappe {
203
+ .background-glow {
204
204
  position: absolute;
205
205
  border-radius: 9999px;
206
206
  filter: blur(64px);
207
207
  }
208
208
 
209
- .fond-nappe-haute {
209
+ .background-glow-top {
210
210
  left: 50%;
211
211
  top: -18rem;
212
212
  width: 46rem;
213
213
  height: 46rem;
214
214
  transform: translateX(-50%);
215
215
  opacity: 0.3;
216
- background: radial-gradient(closest-side, var(--marque), transparent);
216
+ background: radial-gradient(closest-side, var(--brand), transparent);
217
217
  }
218
218
 
219
- .fond-nappe-droite {
219
+ .background-glow-right {
220
220
  right: -10rem;
221
221
  top: 6rem;
222
222
  width: 30rem;
223
223
  height: 30rem;
224
224
  opacity: 0.18;
225
- background: radial-gradient(closest-side, var(--marque), transparent);
225
+ background: radial-gradient(closest-side, var(--brand), transparent);
226
226
  }
227
227
 
228
- /* ----- Mise en page ------------------------------------------------------- */
228
+ /* ----- Layout ------------------------------------------------------------- */
229
229
 
230
- .contenu,
231
- .contenu-etroit {
230
+ .content,
231
+ .content-narrow {
232
232
  width: 100%;
233
233
  margin: 0 auto;
234
234
  position: relative;
235
235
  }
236
236
 
237
- .contenu {
237
+ .content {
238
238
  max-width: 64rem;
239
239
  }
240
240
 
241
- .contenu-etroit {
241
+ .content-narrow {
242
242
  max-width: 48rem;
243
243
  text-align: center;
244
244
  }
@@ -249,30 +249,30 @@ pre {
249
249
 
250
250
  .section {
251
251
  padding: 5rem 1.5rem;
252
- border-top: 1px solid var(--filet);
252
+ border-top: 1px solid var(--line);
253
253
  }
254
254
 
255
- .section-centre {
255
+ .section-centered {
256
256
  padding: 6rem 1.5rem;
257
257
  }
258
258
 
259
259
  /* ----- Hero --------------------------------------------------------------- */
260
260
 
261
- .pastille-marque {
261
+ .brand-dot {
262
262
  display: inline-flex;
263
263
  align-items: center;
264
264
  gap: 0.5rem;
265
265
  white-space: nowrap;
266
266
  padding: 0.25rem 0.75rem;
267
267
  border-radius: 9999px;
268
- border: 1px solid color-mix(in oklab, var(--marque) 30%, transparent);
269
- background: color-mix(in oklab, var(--marque) 10%, transparent);
270
- color: var(--marque);
268
+ border: 1px solid color-mix(in oklab, var(--brand) 30%, transparent);
269
+ background: color-mix(in oklab, var(--brand) 10%, transparent);
270
+ color: var(--brand);
271
271
  font-size: 0.75rem;
272
272
  font-weight: 500;
273
273
  }
274
274
 
275
- .hero-titre {
275
+ .hero-title {
276
276
  margin: 1.5rem 0 0;
277
277
  max-width: 46rem;
278
278
  font-size: clamp(2.5rem, 6vw, 3.75rem);
@@ -282,14 +282,14 @@ pre {
282
282
  }
283
283
 
284
284
  .accent {
285
- color: var(--marque);
285
+ color: var(--brand);
286
286
  }
287
287
 
288
- .hero-chapeau {
288
+ .hero-eyebrow {
289
289
  margin: 1.25rem 0 0;
290
290
  max-width: 36rem;
291
291
  font-size: 1.125rem;
292
- color: var(--doux);
292
+ color: var(--muted);
293
293
  }
294
294
 
295
295
  .hero-actions {
@@ -299,162 +299,162 @@ pre {
299
299
  margin-top: 2rem;
300
300
  }
301
301
 
302
- .faits {
302
+ .facts {
303
303
  display: flex;
304
304
  flex-wrap: wrap;
305
305
  gap: 0.5rem;
306
306
  margin-top: 1.5rem;
307
307
  }
308
308
 
309
- .fait {
309
+ .fact {
310
310
  padding: 0.25rem 0.75rem;
311
311
  border-radius: 9999px;
312
- border: 1px solid var(--filet);
313
- color: var(--doux);
312
+ border: 1px solid var(--line);
313
+ color: var(--muted);
314
314
  font-size: 0.75rem;
315
315
  }
316
316
 
317
- .hero-fenetre {
317
+ .hero-window {
318
318
  margin-top: 3.5rem;
319
319
  }
320
320
 
321
- /* ----- Fenetre du produit ------------------------------------------------- */
321
+ /* ----- Product window ----------------------------------------------------- */
322
322
 
323
- .fenetre {
323
+ .window {
324
324
  overflow: hidden;
325
325
  border-radius: 1rem;
326
- border: 1px solid var(--filet);
326
+ border: 1px solid var(--line);
327
327
  background: var(--surface);
328
328
  box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
329
329
  }
330
330
 
331
- .fenetre-barre {
331
+ .window-bar {
332
332
  display: flex;
333
333
  align-items: center;
334
334
  gap: 0.5rem;
335
335
  padding: 0.625rem 1rem;
336
- border-bottom: 1px solid var(--filet);
336
+ border-bottom: 1px solid var(--line);
337
337
  }
338
338
 
339
- .fenetre-pastilles {
339
+ .window-dots {
340
340
  display: flex;
341
341
  gap: 0.375rem;
342
342
  }
343
343
 
344
- .fenetre-pastilles span {
344
+ .window-dots span {
345
345
  width: 0.625rem;
346
346
  height: 0.625rem;
347
347
  border-radius: 9999px;
348
- background: var(--filet);
348
+ background: var(--line);
349
349
  }
350
350
 
351
- .fenetre-chemin {
351
+ .window-path {
352
352
  margin-left: 0.5rem;
353
- color: var(--doux);
353
+ color: var(--muted);
354
354
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
355
355
  font-size: 0.75rem;
356
356
  }
357
357
 
358
- .fenetre-code {
358
+ .window-code {
359
359
  margin: 0;
360
360
  padding: 1.25rem;
361
361
  overflow-x: auto;
362
362
  font-size: 0.75rem;
363
363
  line-height: 1.7;
364
- color: var(--doux);
364
+ color: var(--muted);
365
365
  }
366
366
 
367
- /* ----- Cartes ------------------------------------------------------------- */
367
+ /* ----- Cards -------------------------------------------------------------- */
368
368
 
369
- .sur-titre {
369
+ .overline {
370
370
  margin: 0;
371
371
  font-size: 0.8125rem;
372
372
  font-weight: 600;
373
373
  letter-spacing: 0.12em;
374
374
  text-transform: uppercase;
375
- color: var(--doux);
375
+ color: var(--muted);
376
376
  }
377
377
 
378
- .grille {
378
+ .grid {
379
379
  display: grid;
380
380
  gap: 1rem;
381
381
  grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
382
382
  margin-top: 2rem;
383
383
  }
384
384
 
385
- .carte {
386
- border: 1px solid var(--filet);
385
+ .card {
386
+ border: 1px solid var(--line);
387
387
  border-radius: 0.75rem;
388
388
  background: var(--surface);
389
389
  padding: 1.5rem;
390
390
  }
391
391
 
392
- .carte-numero {
392
+ .card-number {
393
393
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
394
394
  font-size: 0.75rem;
395
- color: var(--marque);
395
+ color: var(--brand);
396
396
  }
397
397
 
398
- .carte h3 {
398
+ .card h3 {
399
399
  margin: 0.75rem 0 0;
400
400
  font-size: 1.125rem;
401
401
  letter-spacing: -0.01em;
402
402
  }
403
403
 
404
- .carte p {
404
+ .card p {
405
405
  margin: 0.5rem 0 0;
406
406
  font-size: 0.875rem;
407
- color: var(--doux);
407
+ color: var(--muted);
408
408
  }
409
409
 
410
- /* ----- Cloture ------------------------------------------------------------ */
410
+ /* ----- Closing ------------------------------------------------------------ */
411
411
 
412
- .cloture-titre {
412
+ .closing-title {
413
413
  margin: 0;
414
414
  font-size: clamp(1.75rem, 4vw, 2.25rem);
415
415
  font-weight: 700;
416
416
  letter-spacing: -0.02em;
417
417
  }
418
418
 
419
- .cloture-chapeau {
419
+ .closing-eyebrow {
420
420
  margin: 1rem auto 0;
421
421
  max-width: 40rem;
422
- color: var(--doux);
422
+ color: var(--muted);
423
423
  }
424
424
 
425
- .commande {
425
+ .command {
426
426
  display: flex;
427
427
  align-items: center;
428
428
  gap: 0.5rem;
429
429
  max-width: 28rem;
430
430
  margin: 2rem auto 0;
431
431
  padding: 0.5rem 0.5rem 0.5rem 1rem;
432
- border: 1px solid var(--filet);
432
+ border: 1px solid var(--line);
433
433
  border-radius: 0.75rem;
434
434
  background: var(--surface);
435
435
  }
436
436
 
437
- .commande code {
437
+ .command code {
438
438
  flex: 1;
439
439
  text-align: left;
440
440
  font-size: 0.875rem;
441
441
  }
442
442
 
443
- .lien-discret {
443
+ .quiet-link {
444
444
  display: inline-block;
445
445
  margin: 1.5rem auto 0;
446
- color: var(--doux);
446
+ color: var(--muted);
447
447
  font-size: 0.875rem;
448
448
  text-decoration: none;
449
449
  }
450
450
 
451
- .lien-discret:hover {
452
- color: var(--marque);
451
+ .quiet-link:hover {
452
+ color: var(--brand);
453
453
  }
454
454
 
455
- /* ----- Boutons ------------------------------------------------------------ */
455
+ /* ----- Buttons ------------------------------------------------------------ */
456
456
 
457
- .bouton {
457
+ .button {
458
458
  display: inline-flex;
459
459
  align-items: center;
460
460
  justify-content: center;
@@ -469,29 +469,29 @@ pre {
469
469
  cursor: pointer;
470
470
  }
471
471
 
472
- .bouton-primaire {
473
- background: var(--marque);
472
+ .button-primary {
473
+ background: var(--brand);
474
474
  color: #ffffff;
475
475
  }
476
476
 
477
- .bouton-primaire:hover {
478
- background: color-mix(in oklab, var(--marque) 85%, black);
477
+ .button-primary:hover {
478
+ background: color-mix(in oklab, var(--brand) 85%, black);
479
479
  }
480
480
 
481
- .bouton-secondaire {
481
+ .button-secondary {
482
482
  background: var(--surface);
483
- color: var(--encre);
484
- border: 1px solid var(--filet);
483
+ color: var(--ink);
484
+ border: 1px solid var(--line);
485
485
  }
486
486
 
487
- .bouton-fantome {
487
+ .button-ghost {
488
488
  height: 2rem;
489
489
  padding: 0 0.75rem;
490
490
  background: transparent;
491
- color: var(--encre);
491
+ color: var(--ink);
492
492
  font-size: 0.875rem;
493
493
  }
494
494
 
495
- .bouton-fantome:hover {
496
- background: var(--filet);
495
+ .button-ghost:hover {
496
+ background: var(--line);
497
497
  }