@zevra/ui 0.31.0 → 0.33.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/DECISIONS.md +78 -0
- package/dist/catalogue.d.ts.map +1 -1
- package/dist/catalogue.js +24 -2
- package/dist/catalogue.js.map +1 -1
- package/dist/content.d.ts +48 -0
- package/dist/content.d.ts.map +1 -1
- package/dist/content.js +12 -0
- package/dist/content.js.map +1 -1
- package/dist/css-inline.d.ts.map +1 -1
- package/dist/css-inline.js +1 -1
- package/dist/css-inline.js.map +1 -1
- package/package.json +1 -1
- package/react/catalogue.tsx +46 -2
- package/react/content.tsx +77 -0
- package/react/css-inline.ts +1 -1
- package/src/components.css +121 -0
package/dist/css-inline.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css-inline.js","sourceRoot":"","sources":["../react/css-inline.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,0EAA0E;AAE1E;;;iEAGiE;AACjE,MAAM,CAAC,MAAM,WAAW,GAAW
|
|
1
|
+
{"version":3,"file":"css-inline.js","sourceRoot":"","sources":["../react/css-inline.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,0EAA0E;AAE1E;;;iEAGiE;AACjE,MAAM,CAAC,MAAM,WAAW,GAAW,22tRAA22tR,CAAA;AAE94tR;;;yBAGyB;AACzB,MAAM,CAAC,MAAM,WAAW,GAAW,03BAA03B,CAAA"}
|
package/package.json
CHANGED
package/react/catalogue.tsx
CHANGED
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
Callout, Card, Check, Divider, Ent, EntText, Faq, FaqItem, Flow, FlowStep,
|
|
21
21
|
LegalPage,
|
|
22
22
|
Glass, IndexItem, IndexList, Inset, Media, MediaCoin, MediaVoile, MiniStat,
|
|
23
|
-
MiniStatItem, Pill, Price,
|
|
23
|
+
MiniStatItem, PageErreur, Pill, Price,
|
|
24
24
|
Quote, Rows, RowsItem, Src, SrcRow, StatCard, Tag, UiPreview,
|
|
25
25
|
} from './content.js'
|
|
26
26
|
import {
|
|
@@ -1022,8 +1022,52 @@ export const CATALOGUE: GroupeCatalogue[] = [
|
|
|
1022
1022
|
couche: 'commun',
|
|
1023
1023
|
css: 'components.css',
|
|
1024
1024
|
resume:
|
|
1025
|
-
'Surfaces, encarts, étiquettes éditoriales
|
|
1025
|
+
'Surfaces, encarts, étiquettes éditoriales, blocs de preuve et la page d’erreur. ⚠️ Deux règles de charte y sont opposables : jamais de fausse citation, jamais de lorem dans un aperçu produit.',
|
|
1026
1026
|
exemples: [
|
|
1027
|
+
{
|
|
1028
|
+
id: 'page-erreur',
|
|
1029
|
+
nom: 'Page d’erreur',
|
|
1030
|
+
resume:
|
|
1031
|
+
'404, 403, 410, 500. ⚠️ Le glyphe est DÉCORATIF par défaut (glypheAlt=""), et le mot « Erreur » se passe en prop : la 0.32.0 posait alt="Zevra" et « Erreur » en dur, si bien que la 404 de Mémoire annonçait « Zevra » au lecteur d’écran et affichait « Erreur 404 » sous /en/. Le composant ne porte AUCUN texte : une plaisanterie câblée dans un design system part dans les sept apps, dans une seule langue, et n’en revient jamais. La copie ci-dessous est la RÉFÉRENCE, à copier et à adapter. Elle plaisante en vocabulaire juridique — un mot juste employé de travers, pas une blague sur un ton qu’Encre & Papier n’a pas — et l’ordre est fixe : le titre dit la panne en clair, l’esprit vient ensuite et se dédit lui-même. Une page d’erreur qui fait rire avant d’informer est ratée.',
|
|
1032
|
+
code: `<PageErreur
|
|
1033
|
+
code="404"
|
|
1034
|
+
libelle="Erreur" {/* le mot est À VOUS : « Error » sous /en/ */}
|
|
1035
|
+
glyphe={GLYPHES.memoire} {/* le glyphe de VOTRE produit */}
|
|
1036
|
+
glypheAlt="" {/* vide = décoratif, et c'est le bon défaut */}
|
|
1037
|
+
titre="Page introuvable"
|
|
1038
|
+
reference={<>Réf. 404 · GET /dossier/2019</>}
|
|
1039
|
+
actions={<>
|
|
1040
|
+
<ButtonLink href="/">Retour à l'accueil</ButtonLink>
|
|
1041
|
+
<ButtonLink href="/contact" variante="fantome">Nous signaler le lien</ButtonLink>
|
|
1042
|
+
</>}
|
|
1043
|
+
>
|
|
1044
|
+
Elle a peut-être exercé son droit à l'effacement.{' '}
|
|
1045
|
+
<strong>Plus sérieusement</strong> : le lien est mort, l'adresse a changé,
|
|
1046
|
+
ou cette page n'a jamais été versée au dossier.
|
|
1047
|
+
</PageErreur>`,
|
|
1048
|
+
rendu: (
|
|
1049
|
+
<PageErreur
|
|
1050
|
+
code="404"
|
|
1051
|
+
libelle="Erreur"
|
|
1052
|
+
glyphe={GLYPHES.zevra}
|
|
1053
|
+
titre="Page introuvable"
|
|
1054
|
+
reference={<>Réf. 404 · GET /dossier/2019</>}
|
|
1055
|
+
style={{ minHeight: 0, padding: '40px 24px' }}
|
|
1056
|
+
actions={
|
|
1057
|
+
<>
|
|
1058
|
+
<ButtonLink href="#">Retour à l’accueil</ButtonLink>
|
|
1059
|
+
<ButtonLink href="#" variante="fantome">
|
|
1060
|
+
Nous signaler le lien
|
|
1061
|
+
</ButtonLink>
|
|
1062
|
+
</>
|
|
1063
|
+
}
|
|
1064
|
+
>
|
|
1065
|
+
Elle a peut-être exercé son droit à l’effacement.{' '}
|
|
1066
|
+
<strong>Plus sérieusement</strong> : le lien est mort, l’adresse a changé, ou
|
|
1067
|
+
cette page n’a jamais été versée au dossier.
|
|
1068
|
+
</PageErreur>
|
|
1069
|
+
),
|
|
1070
|
+
},
|
|
1027
1071
|
{
|
|
1028
1072
|
id: 'cartes',
|
|
1029
1073
|
nom: 'Cartes',
|
package/react/content.tsx
CHANGED
|
@@ -726,3 +726,80 @@ export function LegalPage({
|
|
|
726
726
|
</article>
|
|
727
727
|
)
|
|
728
728
|
}
|
|
729
|
+
|
|
730
|
+
/* ─── Page d'erreur ─────────────────────────────────────────────────── */
|
|
731
|
+
|
|
732
|
+
export interface PageErreurProps extends Div {
|
|
733
|
+
/** Le code, tel qu'il s'affiche dans le kicker (`404`, `403`, `500`). */
|
|
734
|
+
code: string
|
|
735
|
+
/** Le mot qui précède le code (« Erreur », « Error », « Error »). Absent,
|
|
736
|
+
* seul le code s'affiche.
|
|
737
|
+
*
|
|
738
|
+
* ⚠️ EN PROP, et pas en dur : une 404 anglaise de Mémoire affichait
|
|
739
|
+
* « Erreur 404 ». Le composant est censé ne porter aucun texte — c'est
|
|
740
|
+
* écrit dans son arbitrage —, et il en portait quand même. */
|
|
741
|
+
libelle?: string
|
|
742
|
+
/** L'URL du glyphe — `GLYPHES.memoire` de `@zevra/ui/glyphes`. Sur une
|
|
743
|
+
* page qui n'a plus de contenu, c'est le seul repère qui dise encore où
|
|
744
|
+
* l'on se trouve. */
|
|
745
|
+
glyphe?: string
|
|
746
|
+
/** Le texte alternatif du glyphe. VIDE par défaut, donc décoratif : sur
|
|
747
|
+
* une page d'erreur, la marque n'apporte rien que le titre et le kicker
|
|
748
|
+
* ne disent déjà, et l'annoncer place un nom de produit devant
|
|
749
|
+
* l'information que le lecteur est venu chercher.
|
|
750
|
+
*
|
|
751
|
+
* ⚠️ Il valait `"Zevra"` en dur jusqu'à la 0.33.0 : sur la 404 de
|
|
752
|
+
* Mémoire, un lecteur d'écran annonçait « Zevra » devant le M de Mémoire,
|
|
753
|
+
* et aucune prop ne permettait de le corriger. Une valeur qu'une app aura
|
|
754
|
+
* légitimement besoin d'ajuster ne se pose pas en dur — c'est la règle du
|
|
755
|
+
* dépôt, et celle-ci l'enfreignait. */
|
|
756
|
+
glypheAlt?: string
|
|
757
|
+
/** Le titre. ⚠️ Il dit la panne EN CLAIR : « Page introuvable », pas un
|
|
758
|
+
* jeu de mots. L'esprit vient dans le texte, jamais avant l'information. */
|
|
759
|
+
titre: ReactNode
|
|
760
|
+
/** Les actions : un bouton plein pour la sortie, un fantôme pour le
|
|
761
|
+
* recours. Deux au plus — au-delà, la page d'erreur devient un menu. */
|
|
762
|
+
actions?: ReactNode
|
|
763
|
+
/** La cote de l'incident (`GET /dossier/2019`). Elle donne au visiteur de
|
|
764
|
+
* quoi signaler la panne et au support de quoi la retrouver. */
|
|
765
|
+
reference?: ReactNode
|
|
766
|
+
className?: string
|
|
767
|
+
/** L'explication. C'est ici, et seulement ici, que l'esprit a sa place. */
|
|
768
|
+
children?: ReactNode
|
|
769
|
+
}
|
|
770
|
+
|
|
771
|
+
/**
|
|
772
|
+
* Une page entière d'erreur — 404, 403, 410, 500, maintenance.
|
|
773
|
+
*
|
|
774
|
+
* ⚠️ ELLE NE PORTE AUCUN TEXTE PAR DÉFAUT, et c'est délibéré : une
|
|
775
|
+
* plaisanterie câblée dans un design system part dans les sept apps, dans
|
|
776
|
+
* une seule langue, et n'en revient jamais. La copie de référence — celle
|
|
777
|
+
* qui plaisante en vocabulaire juridique — vit dans l'exemple du catalogue,
|
|
778
|
+
* là où on la lit avant de la copier.
|
|
779
|
+
*/
|
|
780
|
+
export function PageErreur({
|
|
781
|
+
code,
|
|
782
|
+
libelle,
|
|
783
|
+
glyphe,
|
|
784
|
+
glypheAlt = '',
|
|
785
|
+
titre,
|
|
786
|
+
actions,
|
|
787
|
+
reference,
|
|
788
|
+
className,
|
|
789
|
+
children,
|
|
790
|
+
...reste
|
|
791
|
+
}: PageErreurProps) {
|
|
792
|
+
return (
|
|
793
|
+
<div className={cx('zv-errpage', className)} {...reste}>
|
|
794
|
+
{glyphe && <img src={glyphe} alt={glypheAlt} className="zv-errpage__glyphe" />}
|
|
795
|
+
<p className="zv-errpage__kicker">
|
|
796
|
+
<span className="zv-spec" aria-hidden="true" />
|
|
797
|
+
<span className="zv-mono zv-mono--label">{libelle ? `${libelle} ${code}` : code}</span>
|
|
798
|
+
</p>
|
|
799
|
+
<h1 className="zv-errpage__titre">{titre}</h1>
|
|
800
|
+
{children && <p className="zv-errpage__texte">{children}</p>}
|
|
801
|
+
{actions && <div className="zv-errpage__actions">{actions}</div>}
|
|
802
|
+
{reference && <p className="zv-errpage__ref">{reference}</p>}
|
|
803
|
+
</div>
|
|
804
|
+
)
|
|
805
|
+
}
|