You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .claude/rules/styling-dsfr.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -61,7 +61,7 @@ Never write raw `@media (max-width: 768px)`.
61
61
62
62
## DSFR runtime
63
63
64
-
-**Assets**: copied to `public/dsfr/` by `scripts/copy-dsfr.js` (git-ignored, regenerated on `dev`/`build`). Never import DSFR CSS via webpack.
64
+
-**Assets**: copied to `public/dsfr/` by `scripts/copy-dsfr.mjs` (git-ignored, regenerated on `dev`/`build`). Never import DSFR CSS via webpack.
65
65
-**JS**: loaded via `<Script type="module" strategy="beforeInteractive">`. Handles modals, dropdowns, theme toggle, keyboard navigation. Never duplicate this logic in React — use `data-fr-*` attributes.
66
66
-**Dark mode**: `data-fr-scheme="system"` on `<html>`, cookie `fr-theme` read by inline script to avoid flash, `ThemeModal` for user toggle.
67
67
-**Icons**: `fr-icon-{name}-{fill|line}` classes. Always `aria-hidden="true"` on decorative icons.
Le script itère automatiquement sur les routes SUIT (actuellement `GET /api/v1/export/declarations` et `GET /api/v1/files`). Pour signer `GET /api/v1/files/<id>`, passer `--file-id <uuid>`. Pour surcharger l'URL cible, passer `--url https://egapro-preprod.fabrique.social.gouv.fr`. Voir `--help` pour toutes les options. Il suffit ensuite d'exporter `EGAPRO_SUIT_API_KEY=<api-key>` et d'exécuter un des `curl` affichés.
237
237
238
238
### Procédure de rotation
239
239
240
-
1.`./packages/app/scripts/generate-suit-signing-keys.sh renew <env>` — génère une nouvelle paire, sauvegarde l'ancienne
240
+
1.`node packages/app/scripts/generate-suit-signing-keys.mjs renew <env>` — génère une nouvelle paire, sauvegarde l'ancienne
241
241
2. Mettre à jour le sealed-secret K8s avec la nouvelle clé publique
242
242
3. Déployer EgaPro
243
243
4. Transmettre la nouvelle clé privée à SUIT — ils doivent basculer juste après le déploiement
@@ -42,23 +42,24 @@ export EGAPRO_SUIT_API_KEY="<clé fournie par EGAPRO>"
42
42
43
43
## Générer la signature pour toutes les routes (en une commande)
44
44
45
-
Équivalent shell du script `generate-suit-signature.js`. Signe toutes les routes SUIT avec le même `TS` et affiche les 3 headers + un `curl` prêt à copier pour chacune.
45
+
Signe toutes les routes SUIT avec le même `TS` et affiche les 3 headers + un `curl` prêt à copier pour chacune.
46
46
47
47
Prérequis : `suit_private_key.pem` dans le dossier courant, `EGAPRO_SUIT_API_KEY` exporté, `BASE_URL` défini.
-**Assets**: copied to `public/dsfr/` by `scripts/copy-dsfr.js` (git-ignored, regenerated on `dev`/`build`). Never import DSFR CSS via webpack.
204
+
-**Assets**: copied to `public/dsfr/` by `scripts/copy-dsfr.mjs` (git-ignored, regenerated on `dev`/`build`). Never import DSFR CSS via webpack.
205
205
-**JS**: loaded via `<Script type="module" strategy="beforeInteractive">`. Handles modals, dropdowns, theme toggle, keyboard navigation. Never duplicate this logic in React — use `data-fr-*` attributes.
206
206
-**Dark mode**: `data-fr-scheme="system"` on `<html>`, cookie `fr-theme` read by inline script to avoid flash, `ThemeModal` for user toggle.
207
207
-**Icons**: `fr-icon-{name}-{fill|line}` classes. Always `aria-hidden="true"` on decorative icons.
0 commit comments