@zevra/ui 0.4.0 → 0.5.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/README.md +64 -1
- package/dist/actions.d.ts +41 -0
- package/dist/actions.d.ts.map +1 -0
- package/dist/actions.js +24 -0
- package/dist/actions.js.map +1 -0
- package/dist/catalogue.d.ts +30 -0
- package/dist/catalogue.d.ts.map +1 -0
- package/dist/catalogue.js +830 -0
- package/dist/catalogue.js.map +1 -0
- package/dist/content.d.ts +135 -0
- package/dist/content.d.ts.map +1 -0
- package/dist/content.js +85 -0
- package/dist/content.js.map +1 -0
- package/dist/css-inline.d.ts +11 -0
- package/dist/css-inline.d.ts.map +1 -0
- package/dist/css-inline.js +13 -0
- package/dist/css-inline.js.map +1 -0
- package/dist/cx.d.ts +16 -0
- package/dist/cx.d.ts.map +1 -0
- package/dist/cx.js +20 -0
- package/dist/cx.js.map +1 -0
- package/dist/data.d.ts +136 -0
- package/dist/data.d.ts.map +1 -0
- package/dist/data.js +98 -0
- package/dist/data.js.map +1 -0
- package/dist/feedback.d.ts +88 -0
- package/dist/feedback.d.ts.map +1 -0
- package/dist/feedback.js +38 -0
- package/dist/feedback.js.map +1 -0
- package/dist/forms.d.ts +120 -0
- package/dist/forms.d.ts.map +1 -0
- package/dist/forms.js +60 -0
- package/dist/forms.js.map +1 -0
- package/dist/icon-data.d.ts +6 -0
- package/dist/icon-data.d.ts.map +1 -0
- package/dist/icon-data.js +77 -0
- package/dist/icon-data.js.map +1 -0
- package/dist/icon.d.ts +33 -0
- package/dist/icon.d.ts.map +1 -0
- package/dist/icon.js +13 -0
- package/dist/icon.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +41 -0
- package/dist/index.js.map +1 -0
- package/dist/layout.d.ts +166 -0
- package/dist/layout.d.ts.map +1 -0
- package/dist/layout.js +120 -0
- package/dist/layout.js.map +1 -0
- package/dist/navigation.d.ts +150 -0
- package/dist/navigation.d.ts.map +1 -0
- package/dist/navigation.js +104 -0
- package/dist/navigation.js.map +1 -0
- package/dist/overlays.d.ts +68 -0
- package/dist/overlays.d.ts.map +1 -0
- package/dist/overlays.js +114 -0
- package/dist/overlays.js.map +1 -0
- package/dist/surfaces.d.ts +61 -0
- package/dist/surfaces.d.ts.map +1 -0
- package/dist/surfaces.js +54 -0
- package/dist/surfaces.js.map +1 -0
- package/dist/typography.d.ts +89 -0
- package/dist/typography.d.ts.map +1 -0
- package/dist/typography.js +76 -0
- package/dist/typography.js.map +1 -0
- package/package.json +36 -4
- package/react/actions.tsx +138 -0
- package/react/catalogue.tsx +1644 -0
- package/react/content.tsx +313 -0
- package/react/css-inline.ts +14 -0
- package/react/cx.ts +20 -0
- package/react/data.tsx +300 -0
- package/react/feedback.tsx +229 -0
- package/react/forms.tsx +383 -0
- package/react/icon-data.ts +114 -0
- package/react/icon.tsx +84 -0
- package/react/index.ts +42 -0
- package/react/layout.tsx +347 -0
- package/react/navigation.tsx +329 -0
- package/react/overlays.tsx +237 -0
- package/react/surfaces.tsx +161 -0
- package/react/typography.tsx +220 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
// GÉNÉRÉ par scripts/build-icon-react.mjs — ne pas éditer à la main.
|
|
2
|
+
// Source de vérité : icons/index.json.
|
|
3
|
+
export const CORPS = {
|
|
4
|
+
'accueil': "<path d=\"M4 10.67 L12 4 L20 10.67 V20 H4 Z\" /><path d=\"M9.33 20 V13.33 H14.67 V20\" />",
|
|
5
|
+
'activite': "<path d=\"M3.33 12 H8 L10.67 5.33 L14 18.67 L16 12 H20.67\" />",
|
|
6
|
+
'app-couches': "<path d=\"M12 2.67 L20 6.67 L12 10.67 L4 6.67 Z\" /><path d=\"M4 12 L12 16 L20 12\" /><path d=\"M4 17.33 L12 21.33 L20 17.33\" />",
|
|
7
|
+
'archiver': "<rect x=\"3.33\" y=\"4\" width=\"17.33\" height=\"4.67\" rx=\"1.07\" /><path d=\"M5.33 8.67 V18.93 A1.07 1.07 0 0 0 6.4 20 H17.6 A1.07 1.07 0 0 0 18.67 18.93 V8.67\" /><path d=\"M9.33 12.67 H14.67\" />",
|
|
8
|
+
'base-de-donnees': "<ellipse cx=\"12\" cy=\"6\" rx=\"7.33\" ry=\"2.67\" /><path d=\"M4.67 6 V12 C4.67 13.47 7.87 14.67 12 14.67 C16.13 14.67 19.33 13.47 19.33 12 V6\" /><path d=\"M4.67 12 V18 C4.67 19.47 7.87 20.67 12 20.67 C16.13 20.67 19.33 19.47 19.33 18 V12\" />",
|
|
9
|
+
'bouclier-verifie': "<path d=\"M12 2.67 L20 6 V12 C20 16.67 16.67 19.73 12 21.33 C7.33 19.73 4 16.67 4 12 V6 Z\" /><path d=\"M8.67 12 L11.07 14.4 L15.33 10\" />",
|
|
10
|
+
'cadenas': "<rect x=\"4.67\" y=\"10.67\" width=\"14.67\" height=\"9.33\" rx=\"1.6\" /><path d=\"M8 10.67 V7.33 A4 4 0 0 1 16 7.33 V10.67\" /><circle cx=\"12\" cy=\"15.33\" r=\"1.33\" />",
|
|
11
|
+
'cadrer': "<path d=\"M4 8 V4 H8\" /><path d=\"M20 8 V4 H16\" /><path d=\"M4 16 V20 H8\" /><path d=\"M20 16 V20 H16\" />",
|
|
12
|
+
'chevron-bas': "<path d=\"M6.67 9.33 L12 14.67 L17.33 9.33\" />",
|
|
13
|
+
'chevron-droit': "<path d=\"M9.33 4 L17.33 12 L9.33 20\" />",
|
|
14
|
+
'chevron-gauche': "<path d=\"M14.67 4 L6.67 12 L14.67 20\" />",
|
|
15
|
+
'coche': "<path d=\"M5 12.4 L9.4 16.8 L19 6.8\" />",
|
|
16
|
+
'copier': "<rect x=\"4\" y=\"4\" width=\"12\" height=\"12\" rx=\"1.6\" /><path d=\"M8 16 V18.93 A1.07 1.07 0 0 0 9.07 20 H18.93 A1.07 1.07 0 0 0 20 18.93 V9.07 A1.07 1.07 0 0 0 18.93 8 H16\" />",
|
|
17
|
+
'corbeille': "<path d=\"M4 6.67 H20\" /><path d=\"M9.33 6.67 V4.67 A1.33 1.33 0 0 1 10.67 3.33 H13.33 A1.33 1.33 0 0 1 14.67 4.67 V6.67\" /><path d=\"M6 6.67 L6.93 18.93 A1.33 1.33 0 0 0 8.27 20 H15.73 A1.33 1.33 0 0 0 17.07 18.93 L18 6.67\" /><path d=\"M10 10.67 V16.67\" /><path d=\"M14 10.67 V16.67\" />",
|
|
18
|
+
'cube': "<path d=\"M3.33 8 L12 4 L20.67 8 V16 L12 20 L3.33 16 Z\" /><path d=\"M3.33 8 L12 12 L20.67 8\" /><path d=\"M12 12 V20\" />",
|
|
19
|
+
'deconnexion': "<path d=\"M14.67 4 H5.33 V20 H14.67\" /><path d=\"M10.67 12 H20\" /><path d=\"M16.67 8 L20.67 12 L16.67 16\" />",
|
|
20
|
+
'depot-fichier': "<path d=\"M12 3.2 V14.4\" /><polyline points=\"7.6,10 12,14.4 16.4,10\" /><path d=\"M4 16.8 v2.4 a1.6 1.6 0 0 0 1.6 1.6 h12.8 a1.6 1.6 0 0 0 1.6-1.6 v-2.4\" />",
|
|
21
|
+
'dossier': "<path d=\"M1.41 6.64a1.69 1.69 0 0 1 1.69-1.69h4.8l2.12 2.4h10.87a1.69 1.69 0 0 1 1.69 1.69v9.88a1.69 1.69 0 0 1-1.69 1.69H3.11A1.69 1.69 0 0 1 1.41 20.33V6.64Z\" />",
|
|
22
|
+
'eclair': "<path d=\"M13.33 2.67 L5.33 13.33 H12 L10.67 21.33 L18.67 10.67 H12 Z\" />",
|
|
23
|
+
'equipe': "<circle cx=\"9.33\" cy=\"8\" r=\"3.33\" /><path d=\"M3.33 20 C3.33 15.33 6 13.33 9.33 13.33 C12.67 13.33 15.33 15.33 15.33 20\" /><path d=\"M16 5.33 A2.93 2.93 0 0 1 16 11.07\" /><path d=\"M17.33 13.6 C19.73 14.27 20.67 16.4 20.67 20\" />",
|
|
24
|
+
'etincelles': "<path d=\"M12 2.67 L13.87 8.8 L20 10.67 L13.87 12.53 L12 18.67 L10.13 12.53 L4 10.67 L10.13 8.8 Z\" /><path d=\"M19.33 16.67 L20 18.67 L22 19.33 L20 20 L19.33 22 L18.67 20 L16.67 19.33 L18.67 18.67 Z\" />",
|
|
25
|
+
'fermer': "<path d=\"M5.33 5.33 L18.67 18.67\" /><path d=\"M18.67 5.33 L5.33 18.67\" />",
|
|
26
|
+
'horloge': "<circle cx=\"12\" cy=\"12\" r=\"8\" /><path d=\"M12 6.67 V12 L15.33 14\" />",
|
|
27
|
+
'lien-externe': "<path d=\"M10.67 4 H4 V20 H20 V13.33\" /><path d=\"M14.67 4 H20 V9.33\" /><path d=\"M20 4 L12 12\" />",
|
|
28
|
+
'menu': "<path d=\"M0 5.33 H24\" /><path d=\"M0 12 H24\" /><path d=\"M0 18.67 H24\" />",
|
|
29
|
+
'moins': "<path d=\"M4 12 H20\" />",
|
|
30
|
+
'oeil': "<path d=\"M2 12 C5.33 6.67 8.67 4.67 12 4.67 C15.33 4.67 18.67 6.67 22 12 C18.67 17.33 15.33 19.33 12 19.33 C8.67 19.33 5.33 17.33 2 12 Z\" /><circle cx=\"12\" cy=\"12\" r=\"2.67\" />",
|
|
31
|
+
'plus': "<path d=\"M12 4 V20\" /><path d=\"M4 12 H20\" />",
|
|
32
|
+
'recherche': "<circle cx=\"10.67\" cy=\"10.67\" r=\"6\" /><path d=\"M15.33 15.33 L20 20\" />",
|
|
33
|
+
'registre': "<rect x=\"3.33\" y=\"5.33\" width=\"17.33\" height=\"5.33\" rx=\"1.33\" /><rect x=\"3.33\" y=\"13.33\" width=\"17.33\" height=\"5.33\" rx=\"1.33\" /><circle cx=\"6.67\" cy=\"8\" r=\"0.8\" fill=\"currentColor\" stroke=\"none\" /><circle cx=\"6.67\" cy=\"16\" r=\"0.8\" fill=\"currentColor\" stroke=\"none\" />",
|
|
34
|
+
'reglages': "<circle cx=\"12\" cy=\"12\" r=\"2.93\" /><path d=\"M12 2 V4.67 M12 19.33 V22 M2 12 H4.67 M19.33 12 H22 M4.8 4.8 L6.67 6.67 M17.33 17.33 L19.2 19.2 M19.2 4.8 L17.33 6.67 M6.67 17.33 L4.8 19.2\" />",
|
|
35
|
+
'reseau': "<circle cx=\"12\" cy=\"12\" r=\"8\" /><path d=\"M4 12 H20\" /><path d=\"M12 4 C14.67 8 14.67 16 12 20\" /><path d=\"M12 4 C9.33 8 9.33 16 12 20\" />",
|
|
36
|
+
'taches': "<path d=\"M4.67 6.67 L6.67 8.67 L10 5.33\" /><path d=\"M4.67 16 L6.67 18 L10 14.67\" /><path d=\"M13.33 7.33 H20\" /><path d=\"M13.33 16.67 H20\" />",
|
|
37
|
+
'trois-points': "<circle cx=\"5.33\" cy=\"12\" r=\"1.33\" fill=\"currentColor\" stroke=\"none\" /><circle cx=\"12\" cy=\"12\" r=\"1.33\" fill=\"currentColor\" stroke=\"none\" /><circle cx=\"18.67\" cy=\"12\" r=\"1.33\" fill=\"currentColor\" stroke=\"none\" />",
|
|
38
|
+
};
|
|
39
|
+
/** Nom lisible de chaque icône — sert de titre accessible par défaut à
|
|
40
|
+
* `IconButton`, et de libellé dans la page de consultation de l'admin. */
|
|
41
|
+
export const NOMS = {
|
|
42
|
+
'accueil': "Accueil",
|
|
43
|
+
'activite': "Activité (pouls)",
|
|
44
|
+
'app-couches': "Application (couches)",
|
|
45
|
+
'archiver': "Archiver",
|
|
46
|
+
'base-de-donnees': "Base de données",
|
|
47
|
+
'bouclier-verifie': "Bouclier vérifié (authentification)",
|
|
48
|
+
'cadenas': "Cadenas (secret)",
|
|
49
|
+
'cadrer': "Cadrer (ajuster à la vue)",
|
|
50
|
+
'chevron-bas': "Chevron bas",
|
|
51
|
+
'chevron-droit': "Chevron droit",
|
|
52
|
+
'chevron-gauche': "Chevron gauche",
|
|
53
|
+
'coche': "Coche",
|
|
54
|
+
'copier': "Copier",
|
|
55
|
+
'corbeille': "Corbeille (supprimer)",
|
|
56
|
+
'cube': "Cube (stockage objet)",
|
|
57
|
+
'deconnexion': "Déconnexion",
|
|
58
|
+
'depot-fichier': "Dépôt de fichier (zone de glisser-déposer)",
|
|
59
|
+
'dossier': "Dossier",
|
|
60
|
+
'eclair': "Éclair (action rapide)",
|
|
61
|
+
'equipe': "Équipe (membres)",
|
|
62
|
+
'etincelles': "Étincelles (IA)",
|
|
63
|
+
'fermer': "Fermer",
|
|
64
|
+
'horloge': "Horloge (intégration continue)",
|
|
65
|
+
'lien-externe': "Lien externe",
|
|
66
|
+
'menu': "Menu (hamburger)",
|
|
67
|
+
'moins': "Moins",
|
|
68
|
+
'oeil': "Œil (afficher)",
|
|
69
|
+
'plus': "Plus",
|
|
70
|
+
'recherche': "Recherche (loupe)",
|
|
71
|
+
'registre': "Registre (serveurs empilés)",
|
|
72
|
+
'reglages': "Réglages",
|
|
73
|
+
'reseau': "Réseau (entrée / globe)",
|
|
74
|
+
'taches': "Tâches (liste à cocher)",
|
|
75
|
+
'trois-points': "Trois points (menu contextuel)",
|
|
76
|
+
};
|
|
77
|
+
//# sourceMappingURL=icon-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon-data.js","sourceRoot":"","sources":["../react/icon-data.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,uCAAuC;AAsCvC,MAAM,CAAC,MAAM,KAAK,GAA2B;IAC3C,SAAS,EAAE,2FAA2F;IACtG,UAAU,EAAE,gEAAgE;IAC5E,aAAa,EAAE,mIAAmI;IAClJ,UAAU,EAAE,2MAA2M;IACvN,iBAAiB,EAAE,wPAAwP;IAC3Q,kBAAkB,EAAE,6IAA6I;IACjK,SAAS,EAAE,+KAA+K;IAC1L,QAAQ,EAAE,8GAA8G;IACxH,aAAa,EAAE,iDAAiD;IAChE,eAAe,EAAE,2CAA2C;IAC5D,gBAAgB,EAAE,4CAA4C;IAC9D,OAAO,EAAE,0CAA0C;IACnD,QAAQ,EAAE,wLAAwL;IAClM,WAAW,EAAE,sSAAsS;IACnT,MAAM,EAAE,4HAA4H;IACpI,aAAa,EAAE,iHAAiH;IAChI,eAAe,EAAE,iKAAiK;IAClL,SAAS,EAAE,uKAAuK;IAClL,QAAQ,EAAE,4EAA4E;IACtF,QAAQ,EAAE,gPAAgP;IAC1P,YAAY,EAAE,8MAA8M;IAC5N,QAAQ,EAAE,8EAA8E;IACxF,SAAS,EAAE,6EAA6E;IACxF,cAAc,EAAE,uGAAuG;IACvH,MAAM,EAAE,+EAA+E;IACvF,OAAO,EAAE,0BAA0B;IACnC,MAAM,EAAE,yLAAyL;IACjM,MAAM,EAAE,kDAAkD;IAC1D,WAAW,EAAE,gFAAgF;IAC7F,UAAU,EAAE,sTAAsT;IAClU,UAAU,EAAE,qMAAqM;IACjN,QAAQ,EAAE,sJAAsJ;IAChK,QAAQ,EAAE,sJAAsJ;IAChK,cAAc,EAAE,oPAAoP;CACrQ,CAAA;AAED;2EAC2E;AAC3E,MAAM,CAAC,MAAM,IAAI,GAA2B;IAC1C,SAAS,EAAE,SAAS;IACpB,UAAU,EAAE,kBAAkB;IAC9B,aAAa,EAAE,uBAAuB;IACtC,UAAU,EAAE,UAAU;IACtB,iBAAiB,EAAE,iBAAiB;IACpC,kBAAkB,EAAE,qCAAqC;IACzD,SAAS,EAAE,kBAAkB;IAC7B,QAAQ,EAAE,2BAA2B;IACrC,aAAa,EAAE,aAAa;IAC5B,eAAe,EAAE,eAAe;IAChC,gBAAgB,EAAE,gBAAgB;IAClC,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,QAAQ;IAClB,WAAW,EAAE,uBAAuB;IACpC,MAAM,EAAE,uBAAuB;IAC/B,aAAa,EAAE,aAAa;IAC5B,eAAe,EAAE,4CAA4C;IAC7D,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE,wBAAwB;IAClC,QAAQ,EAAE,kBAAkB;IAC5B,YAAY,EAAE,iBAAiB;IAC/B,QAAQ,EAAE,QAAQ;IAClB,SAAS,EAAE,gCAAgC;IAC3C,cAAc,EAAE,cAAc;IAC9B,MAAM,EAAE,kBAAkB;IAC1B,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,MAAM;IACd,WAAW,EAAE,mBAAmB;IAChC,UAAU,EAAE,6BAA6B;IACzC,UAAU,EAAE,UAAU;IACtB,QAAQ,EAAE,yBAAyB;IACnC,QAAQ,EAAE,yBAAyB;IACnC,cAAc,EAAE,gCAAgC;CACjD,CAAA"}
|
package/dist/icon.d.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { ButtonHTMLAttributes, ReactNode, SVGAttributes } from 'react';
|
|
2
|
+
import { NOMS, type IconId } from './icon-data.js';
|
|
3
|
+
export type { IconId };
|
|
4
|
+
export { NOMS as NOMS_ICONES };
|
|
5
|
+
/** Les 34 identifiants, triés — pour construire une planche ou un sélecteur. */
|
|
6
|
+
export declare const ICONES: IconId[];
|
|
7
|
+
export interface IconProps extends Omit<SVGAttributes<SVGSVGElement>, 'className' | 'children'> {
|
|
8
|
+
nom: IconId;
|
|
9
|
+
/** `sm` compense l'épaississement optique du trait, `xl` l'affine.
|
|
10
|
+
* `lg` = navigation et boutons de chrome. */
|
|
11
|
+
taille?: 'sm' | 'normal' | 'lg' | 'xl';
|
|
12
|
+
discret?: boolean;
|
|
13
|
+
/** Titre accessible. Sans lui l'icône est DÉCORATIVE et masquée aux
|
|
14
|
+
* lecteurs d'écran — ce qui est le bon défaut : une icône accolée à un
|
|
15
|
+
* libellé qui la répète crée une annonce double. */
|
|
16
|
+
titre?: string;
|
|
17
|
+
className?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare function Icon({ nom, taille, discret, titre, className, ...reste }: IconProps): import("react").JSX.Element;
|
|
20
|
+
export interface IconButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'className'> {
|
|
21
|
+
/** Icône du jeu. À défaut, passe le glyphe en `children` — mais préfère le
|
|
22
|
+
* jeu : trois tracés maison de la même « croix » ont déjà divergé. */
|
|
23
|
+
icone?: IconId;
|
|
24
|
+
/** OBLIGATOIRE : une icône seule n'a pas de libellé pour la nommer.
|
|
25
|
+
* L'écrire pour l'ACTION (« Fermer le panneau ») et non pour le dessin
|
|
26
|
+
* (« Croix ») — c'est ce que le lecteur d'écran annonce. */
|
|
27
|
+
label: string;
|
|
28
|
+
taille?: IconProps['taille'];
|
|
29
|
+
className?: string;
|
|
30
|
+
children?: ReactNode;
|
|
31
|
+
}
|
|
32
|
+
export declare function IconButton({ icone, label, taille, className, children, type, ...reste }: IconButtonProps): import("react").JSX.Element;
|
|
33
|
+
//# sourceMappingURL=icon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../react/icon.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAE3E,OAAO,EAAS,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAEzD,YAAY,EAAE,MAAM,EAAE,CAAA;AACtB,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,CAAA;AAE9B,gFAAgF;AAChF,eAAO,MAAM,MAAM,EAAyB,MAAM,EAAE,CAAA;AAEpD,MAAM,WAAW,SACf,SAAQ,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC;IACpE,GAAG,EAAE,MAAM,CAAA;IACX;kDAC8C;IAC9C,MAAM,CAAC,EAAE,IAAI,GAAG,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAA;IACtC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;yDAEqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,IAAI,CAAC,EAAE,GAAG,EAAE,MAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,SAAS,+BAiB9F;AAED,MAAM,WAAW,eACf,SAAQ,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,WAAW,CAAC;IAClE;2EACuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;iEAE6D;IAC7D,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAA;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAED,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,KAAK,EACL,MAAa,EACb,SAAS,EACT,QAAQ,EACR,IAAe,EACf,GAAG,KAAK,EACT,EAAE,eAAe,+BAWjB"}
|
package/dist/icon.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { cx } from './cx.js';
|
|
3
|
+
import { CORPS, NOMS } from './icon-data.js';
|
|
4
|
+
export { NOMS as NOMS_ICONES };
|
|
5
|
+
/** Les 34 identifiants, triés — pour construire une planche ou un sélecteur. */
|
|
6
|
+
export const ICONES = Object.keys(CORPS);
|
|
7
|
+
export function Icon({ nom, taille = 'normal', discret, titre, className, ...reste }) {
|
|
8
|
+
return (_jsx("svg", { viewBox: "0 0 24 24", role: titre ? 'img' : undefined, "aria-hidden": titre ? undefined : true, "aria-label": titre, className: cx('zv-icon', taille !== 'normal' && `zv-icon--${taille}`, discret && 'zv-icon--quiet', className), dangerouslySetInnerHTML: { __html: CORPS[nom] }, ...reste }));
|
|
9
|
+
}
|
|
10
|
+
export function IconButton({ icone, label, taille = 'lg', className, children, type = 'button', ...reste }) {
|
|
11
|
+
return (_jsx("button", { type: type, "aria-label": label, className: cx('zv-icon-btn', className), ...reste, children: icone ? _jsx(Icon, { nom: icone, taille: taille }) : children }));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=icon.js.map
|
package/dist/icon.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon.js","sourceRoot":"","sources":["../react/icon.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAe,MAAM,gBAAgB,CAAA;AAGzD,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,CAAA;AAE9B,gFAAgF;AAChF,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAa,CAAA;AAgBpD,MAAM,UAAU,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAa;IAC7F,OAAO,CACL,cACE,OAAO,EAAC,WAAW,EACnB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,iBAClB,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,gBACzB,KAAK,EACjB,SAAS,EAAE,EAAE,CACX,SAAS,EACT,MAAM,KAAK,QAAQ,IAAI,YAAY,MAAM,EAAE,EAC3C,OAAO,IAAI,gBAAgB,EAC3B,SAAS,CACV,EACD,uBAAuB,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,KAC3C,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAgBD,MAAM,UAAU,UAAU,CAAC,EACzB,KAAK,EACL,KAAK,EACL,MAAM,GAAG,IAAI,EACb,SAAS,EACT,QAAQ,EACR,IAAI,GAAG,QAAQ,EACf,GAAG,KAAK,EACQ;IAChB,OAAO,CACL,iBACE,IAAI,EAAE,IAAI,gBACE,KAAK,EACjB,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,KACnC,KAAK,YAER,KAAK,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAI,CAAC,CAAC,CAAC,QAAQ,GACjD,CACV,CAAA;AACH,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export { cx, mod } from './cx.js';
|
|
2
|
+
export * from './actions.js';
|
|
3
|
+
export * from './content.js';
|
|
4
|
+
export * from './data.js';
|
|
5
|
+
export * from './feedback.js';
|
|
6
|
+
export * from './forms.js';
|
|
7
|
+
export * from './icon.js';
|
|
8
|
+
export * from './layout.js';
|
|
9
|
+
export * from './navigation.js';
|
|
10
|
+
export * from './overlays.js';
|
|
11
|
+
export * from './surfaces.js';
|
|
12
|
+
export * from './typography.js';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../react/index.ts"],"names":[],"mappings":"AA6BA,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAEjC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// @zevra/ui/react — bibliothèque de composants du design system « Encre & Papier ».
|
|
2
|
+
//
|
|
3
|
+
// COMMENT C'EST ORGANISÉ. Le CSS reste la source de vérité : chaque composant
|
|
4
|
+
// n'est qu'une façade typée et documentée au-dessus de classes `zv-`. Rien
|
|
5
|
+
// n'est calculé au rendu, aucune valeur de charte n'est écrite en JavaScript.
|
|
6
|
+
// Un test (tests/react.test.js) vérifie que toute classe qu'un composant peut
|
|
7
|
+
// émettre existe bien dans le CSS — c'est ce qui empêche les deux de diverger.
|
|
8
|
+
//
|
|
9
|
+
// CE QU'IL FAUT CHARGER. Les composants ne portent PAS le CSS : il s'importe
|
|
10
|
+
// à part, une fois, dans la page ou la mise en page racine.
|
|
11
|
+
//
|
|
12
|
+
// import '@zevra/ui/tokens.css' // toujours
|
|
13
|
+
// import '@zevra/ui/fonts.css' // sauf si l'app charge déjà les polices
|
|
14
|
+
// import '@zevra/ui/base.css' // toujours
|
|
15
|
+
// … puis les modules employés (components, forms, feedback, data, …)
|
|
16
|
+
// ou '@zevra/ui/css' pour tout charger d'un coup.
|
|
17
|
+
//
|
|
18
|
+
// SERVEUR / CLIENT. Un seul module est marqué « use client » : `overlays`
|
|
19
|
+
// (tiroir, modale, notification) — eux seuls ont besoin du navigateur. Tout
|
|
20
|
+
// le reste se rend au serveur, y compris dans une île Astro à zéro JS.
|
|
21
|
+
// Les composants qui prennent un gestionnaire d'événement (Switch, Seg,
|
|
22
|
+
// Tabs…) restent sans état : c'est un composant client à toi qui détient
|
|
23
|
+
// l'état et les rend.
|
|
24
|
+
//
|
|
25
|
+
// ÉCRITURE DES PROPS. En français, comme le CSS et les commentaires. Chaque
|
|
26
|
+
// prop qui porte une décision de charte est documentée à l'endroit où on la
|
|
27
|
+
// lit — les avertissements ⚠️ signalent ce qui casse le système si on le
|
|
28
|
+
// contourne, pas de simples préférences.
|
|
29
|
+
export { cx, mod } from './cx.js';
|
|
30
|
+
export * from './actions.js';
|
|
31
|
+
export * from './content.js';
|
|
32
|
+
export * from './data.js';
|
|
33
|
+
export * from './feedback.js';
|
|
34
|
+
export * from './forms.js';
|
|
35
|
+
export * from './icon.js';
|
|
36
|
+
export * from './layout.js';
|
|
37
|
+
export * from './navigation.js';
|
|
38
|
+
export * from './overlays.js';
|
|
39
|
+
export * from './surfaces.js';
|
|
40
|
+
export * from './typography.js';
|
|
41
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../react/index.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,EAAE;AACF,8EAA8E;AAC9E,2EAA2E;AAC3E,8EAA8E;AAC9E,8EAA8E;AAC9E,+EAA+E;AAC/E,EAAE;AACF,6EAA6E;AAC7E,4DAA4D;AAC5D,EAAE;AACF,gDAAgD;AAChD,6EAA6E;AAC7E,gDAAgD;AAChD,uEAAuE;AACvE,oDAAoD;AACpD,EAAE;AACF,0EAA0E;AAC1E,4EAA4E;AAC5E,uEAAuE;AACvE,wEAAwE;AACxE,yEAAyE;AACzE,sBAAsB;AACtB,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,yEAAyE;AACzE,yCAAyC;AAEzC,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAEjC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA"}
|
package/dist/layout.d.ts
ADDED
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import type { ElementType, HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
type Div = Omit<HTMLAttributes<HTMLDivElement>, 'className'>;
|
|
3
|
+
export declare function Page({ as, className, ...reste }: Div & {
|
|
4
|
+
as?: ElementType;
|
|
5
|
+
className?: string;
|
|
6
|
+
}): import("react").JSX.Element;
|
|
7
|
+
export interface GutterProps extends Div {
|
|
8
|
+
/** `wide` pour une bande pleine largeur, `chrome` pour la barre de
|
|
9
|
+
* navigation — qui ne s'aligne pas sur la colonne de texte. */
|
|
10
|
+
variante?: 'wide' | 'chrome';
|
|
11
|
+
as?: ElementType;
|
|
12
|
+
className?: string;
|
|
13
|
+
}
|
|
14
|
+
/** La largeur de colonne du système. Toute la vitrine s'aligne dessus : un
|
|
15
|
+
* bloc qui pose sa propre largeur maximale se décale de tous les autres. */
|
|
16
|
+
export declare function Gutter({ variante, as, className, ...reste }: GutterProps): import("react").JSX.Element;
|
|
17
|
+
/** Débord latéral : ressort de la gouttière pour aller au bord de l'écran
|
|
18
|
+
* (une bande de couleur, une image pleine largeur). */
|
|
19
|
+
export declare function InsetX({ className, ...reste }: Div & {
|
|
20
|
+
className?: string;
|
|
21
|
+
}): import("react").JSX.Element;
|
|
22
|
+
export declare function Grid12({ className, ...reste }: Div & {
|
|
23
|
+
className?: string;
|
|
24
|
+
}): import("react").JSX.Element;
|
|
25
|
+
export type Span12 = 3 | 4 | 6 | 8 | 9;
|
|
26
|
+
/** ⚠️ Seules 3, 4, 6, 8 et 9 existent : ce sont les découpes employées par la
|
|
27
|
+
* vitrine. En ajouter une revient à ajouter une mise en page, pas une
|
|
28
|
+
* utilité — c'est une décision de DA. */
|
|
29
|
+
export declare function Col({ span, className, ...reste }: Div & {
|
|
30
|
+
span: Span12;
|
|
31
|
+
className?: string;
|
|
32
|
+
}): import("react").JSX.Element;
|
|
33
|
+
/** Grilles régulières, empilées sous le point de rupture. */
|
|
34
|
+
export declare function Grid({ colonnes, className, ...reste }: Div & {
|
|
35
|
+
colonnes: 3 | 4;
|
|
36
|
+
className?: string;
|
|
37
|
+
}): import("react").JSX.Element;
|
|
38
|
+
export interface SectionHeadProps extends Div {
|
|
39
|
+
/** Bloc de droite : un lien, un chiffre, une précision. Il tombe SOUS le
|
|
40
|
+
* titre en dessous du point de rupture. */
|
|
41
|
+
aside?: ReactNode;
|
|
42
|
+
className?: string;
|
|
43
|
+
children?: ReactNode;
|
|
44
|
+
}
|
|
45
|
+
export declare function SectionHead({ aside, className, children, ...reste }: SectionHeadProps): import("react").JSX.Element;
|
|
46
|
+
export declare function SectionRule({ discret, className, ...reste }: Div & {
|
|
47
|
+
discret?: boolean;
|
|
48
|
+
className?: string;
|
|
49
|
+
}): import("react").JSX.Element;
|
|
50
|
+
export interface SheetSectionProps extends Div {
|
|
51
|
+
titre?: ReactNode;
|
|
52
|
+
className?: string;
|
|
53
|
+
children?: ReactNode;
|
|
54
|
+
}
|
|
55
|
+
/** Section d'un document long : un intitulé mono, un filet, du corps. */
|
|
56
|
+
export declare function SheetSection({ titre, className, children, ...reste }: SheetSectionProps): import("react").JSX.Element;
|
|
57
|
+
export declare function Hero({ className, ...reste }: Div & {
|
|
58
|
+
className?: string;
|
|
59
|
+
}): import("react").JSX.Element;
|
|
60
|
+
export declare function CTA({ className, ...reste }: Div & {
|
|
61
|
+
className?: string;
|
|
62
|
+
}): import("react").JSX.Element;
|
|
63
|
+
/** En-tête fixe de la vitrine. */
|
|
64
|
+
export declare function Header({ className, ...reste }: Div & {
|
|
65
|
+
className?: string;
|
|
66
|
+
}): import("react").JSX.Element;
|
|
67
|
+
export declare function Nav({ className, ...reste }: Div & {
|
|
68
|
+
className?: string;
|
|
69
|
+
}): import("react").JSX.Element;
|
|
70
|
+
export declare function NavLogo({ className, ...reste }: Div & {
|
|
71
|
+
className?: string;
|
|
72
|
+
}): import("react").JSX.Element;
|
|
73
|
+
/** ⚠️ Cette rangée disparaît sous le point de rupture, remplacée par le
|
|
74
|
+
* burger. Le CSS s'en occupe : ne jamais la conditionner en JavaScript. */
|
|
75
|
+
export declare function NavLinks({ className, ...reste }: Div & {
|
|
76
|
+
className?: string;
|
|
77
|
+
}): import("react").JSX.Element;
|
|
78
|
+
export interface NavLinkProps extends Omit<HTMLAttributes<HTMLAnchorElement>, 'className'> {
|
|
79
|
+
/** Lien secondaire : connexion, mentions. */
|
|
80
|
+
discret?: boolean;
|
|
81
|
+
href?: string;
|
|
82
|
+
className?: string;
|
|
83
|
+
}
|
|
84
|
+
/** ⚠️ `.zv-navlink` est la navigation de VITRINE. L'entrée applicative
|
|
85
|
+
* s'appelle `SideLink` — les deux ne doivent jamais se recouvrir. */
|
|
86
|
+
export declare function NavLink({ discret, className, ...reste }: NavLinkProps): import("react").JSX.Element;
|
|
87
|
+
/** Le burger de la vitrine. Il n'apparaît que sous le point de rupture. */
|
|
88
|
+
export declare function NavBurger({ className, type, ...reste }: Omit<HTMLAttributes<HTMLButtonElement>, 'className'> & {
|
|
89
|
+
className?: string;
|
|
90
|
+
type?: 'button';
|
|
91
|
+
'aria-label': string;
|
|
92
|
+
}): import("react").JSX.Element;
|
|
93
|
+
/** Le contenu du tiroir de navigation vitrine — à poser dans `Drawer`. */
|
|
94
|
+
export declare function NavDrawer({ className, ...reste }: Div & {
|
|
95
|
+
className?: string;
|
|
96
|
+
}): import("react").JSX.Element;
|
|
97
|
+
export declare function NavDrawerLink({ courant, className, ...reste }: Omit<HTMLAttributes<HTMLAnchorElement>, 'className'> & {
|
|
98
|
+
courant?: boolean;
|
|
99
|
+
href?: string;
|
|
100
|
+
className?: string;
|
|
101
|
+
}): import("react").JSX.Element;
|
|
102
|
+
export interface StepsProps extends Div {
|
|
103
|
+
/** Avancement du rail, entre 0 et 1 — piloté au défilement. */
|
|
104
|
+
avancement?: number;
|
|
105
|
+
className?: string;
|
|
106
|
+
children?: ReactNode;
|
|
107
|
+
}
|
|
108
|
+
export declare function Steps({ avancement, className, children, ...reste }: StepsProps): import("react").JSX.Element;
|
|
109
|
+
export interface StepProps extends Div {
|
|
110
|
+
/** Troisième et dernier emploi autorisé du spectre : le point de méthode.
|
|
111
|
+
* Jamais en fond, jamais en texte. */
|
|
112
|
+
teinte?: 'violet' | 'cyan';
|
|
113
|
+
className?: string;
|
|
114
|
+
children?: ReactNode;
|
|
115
|
+
}
|
|
116
|
+
export declare function Step({ teinte, className, children, ...reste }: StepProps): import("react").JSX.Element;
|
|
117
|
+
export declare function Stats({ className, ...reste }: Div & {
|
|
118
|
+
className?: string;
|
|
119
|
+
}): import("react").JSX.Element;
|
|
120
|
+
export interface StatProps extends Div {
|
|
121
|
+
valeur: ReactNode;
|
|
122
|
+
className?: string;
|
|
123
|
+
children?: ReactNode;
|
|
124
|
+
}
|
|
125
|
+
export declare function Stat({ valeur, className, children, ...reste }: StatProps): import("react").JSX.Element;
|
|
126
|
+
export interface FooterProps extends Div {
|
|
127
|
+
/** Colonne de gauche : logo, signature, mention légale. */
|
|
128
|
+
marque?: ReactNode;
|
|
129
|
+
className?: string;
|
|
130
|
+
children?: ReactNode;
|
|
131
|
+
}
|
|
132
|
+
export declare function Footer({ marque, className, children, ...reste }: FooterProps): import("react").JSX.Element;
|
|
133
|
+
/** Pied réduit : une ligne, un logo, des mentions. Pour une page isolée
|
|
134
|
+
* (connexion, document partagé) qui n'a pas de pied complet à porter. */
|
|
135
|
+
export declare function FooterMini({ logo, className, children, ...reste }: Div & {
|
|
136
|
+
logo?: ReactNode;
|
|
137
|
+
className?: string;
|
|
138
|
+
children?: ReactNode;
|
|
139
|
+
}): import("react").JSX.Element;
|
|
140
|
+
export interface ProofBarProps extends Div {
|
|
141
|
+
/** Les noms cités. ⚠️ RÈGLE DE CHARTE : jamais de client inventé. */
|
|
142
|
+
noms?: ReactNode;
|
|
143
|
+
className?: string;
|
|
144
|
+
children?: ReactNode;
|
|
145
|
+
}
|
|
146
|
+
export declare function ProofBar({ noms, className, children, ...reste }: ProofBarProps): import("react").JSX.Element;
|
|
147
|
+
/** Les cinq étages du système, nommés une fois pour toutes : un `z-index`
|
|
148
|
+
* écrit à la main quelque part finit toujours par passer devant ou derrière
|
|
149
|
+
* ce qu'il ne fallait pas. Les enrobages (voile 60 → notification 100) sont
|
|
150
|
+
* au-dessus, dans overlays.css. */
|
|
151
|
+
export type Etage = 'scene' | 'content' | 'progress' | 'chrome' | 'top';
|
|
152
|
+
export declare function Layer({ etage, className, ...reste }: Div & {
|
|
153
|
+
etage: Etage;
|
|
154
|
+
className?: string;
|
|
155
|
+
}): import("react").JSX.Element;
|
|
156
|
+
/** ⚠️ Rendu par le CSS, PAS par JavaScript : le serveur ne connaît pas la
|
|
157
|
+
* largeur de l'écran, et conditionner le rendu produit un décalage
|
|
158
|
+
* d'hydratation. Les deux nœuds sont posés, le CSS en masque un. */
|
|
159
|
+
export declare function OnlyDesktop({ className, ...reste }: Div & {
|
|
160
|
+
className?: string;
|
|
161
|
+
}): import("react").JSX.Element;
|
|
162
|
+
export declare function OnlyMobile({ className, ...reste }: Div & {
|
|
163
|
+
className?: string;
|
|
164
|
+
}): import("react").JSX.Element;
|
|
165
|
+
export {};
|
|
166
|
+
//# sourceMappingURL=layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../react/layout.tsx"],"names":[],"mappings":"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"}
|
package/dist/layout.js
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cx } from './cx.js';
|
|
3
|
+
/* ─── Page et gouttières ───────────────────────────────────────────── */
|
|
4
|
+
export function Page({ as, className, ...reste }) {
|
|
5
|
+
const Balise = as ?? 'div';
|
|
6
|
+
return _jsx(Balise, { className: cx('zv-page', className), ...reste });
|
|
7
|
+
}
|
|
8
|
+
/** La largeur de colonne du système. Toute la vitrine s'aligne dessus : un
|
|
9
|
+
* bloc qui pose sa propre largeur maximale se décale de tous les autres. */
|
|
10
|
+
export function Gutter({ variante, as, className, ...reste }) {
|
|
11
|
+
const Balise = as ?? 'div';
|
|
12
|
+
return (_jsx(Balise, { className: cx('zv-gutter', variante && `zv-gutter--${variante}`, className), ...reste }));
|
|
13
|
+
}
|
|
14
|
+
/** Débord latéral : ressort de la gouttière pour aller au bord de l'écran
|
|
15
|
+
* (une bande de couleur, une image pleine largeur). */
|
|
16
|
+
export function InsetX({ className, ...reste }) {
|
|
17
|
+
return _jsx("div", { className: cx('zv-inset-x', className), ...reste });
|
|
18
|
+
}
|
|
19
|
+
/* ─── Grilles ──────────────────────────────────────────────────────── */
|
|
20
|
+
export function Grid12({ className, ...reste }) {
|
|
21
|
+
return _jsx("div", { className: cx('zv-grid-12', className), ...reste });
|
|
22
|
+
}
|
|
23
|
+
/** ⚠️ Seules 3, 4, 6, 8 et 9 existent : ce sont les découpes employées par la
|
|
24
|
+
* vitrine. En ajouter une revient à ajouter une mise en page, pas une
|
|
25
|
+
* utilité — c'est une décision de DA. */
|
|
26
|
+
export function Col({ span, className, ...reste }) {
|
|
27
|
+
return _jsx("div", { className: cx(`zv-col-${span}`, className), ...reste });
|
|
28
|
+
}
|
|
29
|
+
/** Grilles régulières, empilées sous le point de rupture. */
|
|
30
|
+
export function Grid({ colonnes, className, ...reste }) {
|
|
31
|
+
return _jsx("div", { className: cx(`zv-grid-${colonnes}`, className), ...reste });
|
|
32
|
+
}
|
|
33
|
+
export function SectionHead({ aside, className, children, ...reste }) {
|
|
34
|
+
return (_jsxs("div", { className: cx('zv-section-head', className), ...reste, children: [_jsx("div", { className: "zv-section-head__main", children: children }), aside && _jsx("div", { className: "zv-section-head__aside", children: aside })] }));
|
|
35
|
+
}
|
|
36
|
+
export function SectionRule({ discret, className, ...reste }) {
|
|
37
|
+
return (_jsx("div", { className: cx('zv-section-rule', discret && 'zv-section-rule--quiet', className), ...reste }));
|
|
38
|
+
}
|
|
39
|
+
/** Section d'un document long : un intitulé mono, un filet, du corps. */
|
|
40
|
+
export function SheetSection({ titre, className, children, ...reste }) {
|
|
41
|
+
return (_jsxs("section", { className: cx('zv-sheet-section', className), ...reste, children: [titre && _jsx("h2", { className: "zv-sheet-section__title", children: titre }), _jsx("div", { className: "zv-sheet-section__body", children: children })] }));
|
|
42
|
+
}
|
|
43
|
+
/* ─── Blocs centrés ────────────────────────────────────────────────── */
|
|
44
|
+
export function Hero({ className, ...reste }) {
|
|
45
|
+
return _jsx("section", { className: cx('zv-hero', className), ...reste });
|
|
46
|
+
}
|
|
47
|
+
export function CTA({ className, ...reste }) {
|
|
48
|
+
return _jsx("section", { className: cx('zv-cta', className), ...reste });
|
|
49
|
+
}
|
|
50
|
+
/** En-tête fixe de la vitrine. */
|
|
51
|
+
export function Header({ className, ...reste }) {
|
|
52
|
+
return _jsx("header", { className: cx('zv-header', className), ...reste });
|
|
53
|
+
}
|
|
54
|
+
/* ─── Navigation vitrine ───────────────────────────────────────────── */
|
|
55
|
+
export function Nav({ className, ...reste }) {
|
|
56
|
+
return _jsx("nav", { className: cx('zv-nav', className), ...reste });
|
|
57
|
+
}
|
|
58
|
+
export function NavLogo({ className, ...reste }) {
|
|
59
|
+
return _jsx("div", { className: cx('zv-nav__logo', className), ...reste });
|
|
60
|
+
}
|
|
61
|
+
/** ⚠️ Cette rangée disparaît sous le point de rupture, remplacée par le
|
|
62
|
+
* burger. Le CSS s'en occupe : ne jamais la conditionner en JavaScript. */
|
|
63
|
+
export function NavLinks({ className, ...reste }) {
|
|
64
|
+
return _jsx("div", { className: cx('zv-nav__links', className), ...reste });
|
|
65
|
+
}
|
|
66
|
+
/** ⚠️ `.zv-navlink` est la navigation de VITRINE. L'entrée applicative
|
|
67
|
+
* s'appelle `SideLink` — les deux ne doivent jamais se recouvrir. */
|
|
68
|
+
export function NavLink({ discret, className, ...reste }) {
|
|
69
|
+
return (_jsx("a", { className: cx('zv-navlink', discret && 'zv-navlink--quiet', className), ...reste }));
|
|
70
|
+
}
|
|
71
|
+
/** Le burger de la vitrine. Il n'apparaît que sous le point de rupture. */
|
|
72
|
+
export function NavBurger({ className, type = 'button', ...reste }) {
|
|
73
|
+
return _jsx("button", { type: type, className: cx('zv-nav__burger', className), ...reste });
|
|
74
|
+
}
|
|
75
|
+
/** Le contenu du tiroir de navigation vitrine — à poser dans `Drawer`. */
|
|
76
|
+
export function NavDrawer({ className, ...reste }) {
|
|
77
|
+
return _jsx("div", { className: cx('zv-nav-drawer', className), ...reste });
|
|
78
|
+
}
|
|
79
|
+
export function NavDrawerLink({ courant, className, ...reste }) {
|
|
80
|
+
return (_jsx("a", { "aria-current": courant ? 'page' : undefined, className: cx('zv-nav-drawer__link', courant && 'zv-nav-drawer__link--on', className), ...reste }));
|
|
81
|
+
}
|
|
82
|
+
export function Steps({ avancement, className, children, ...reste }) {
|
|
83
|
+
const part = Math.min(1, Math.max(0, avancement ?? 0));
|
|
84
|
+
return (_jsxs("div", { className: cx('zv-steps', className), ...reste, children: [_jsx("div", { className: "zv-steps__rail", "aria-hidden": "true", children: _jsx("div", { className: "zv-steps__progress", style: { width: `${part * 100}%` } }) }), children] }));
|
|
85
|
+
}
|
|
86
|
+
export function Step({ teinte, className, children, ...reste }) {
|
|
87
|
+
return (_jsxs("div", { className: cx('zv-step', className), ...reste, children: [_jsx("span", { className: cx('zv-step__dot', teinte && `zv-step__dot--${teinte}`), "aria-hidden": "true" }), children] }));
|
|
88
|
+
}
|
|
89
|
+
/* ─── Statistiques ─────────────────────────────────────────────────── */
|
|
90
|
+
export function Stats({ className, ...reste }) {
|
|
91
|
+
return _jsx("div", { className: cx('zv-stats', className), ...reste });
|
|
92
|
+
}
|
|
93
|
+
export function Stat({ valeur, className, children, ...reste }) {
|
|
94
|
+
return (_jsxs("div", { className: cx('zv-stat', className), ...reste, children: [_jsx("span", { className: "zv-stat__value", children: valeur }), children] }));
|
|
95
|
+
}
|
|
96
|
+
export function Footer({ marque, className, children, ...reste }) {
|
|
97
|
+
return (_jsxs("footer", { className: cx('zv-footer', className), ...reste, children: [marque && _jsx("div", { className: "zv-footer__brand", children: marque }), _jsx("div", { className: "zv-footer__cols", children: children })] }));
|
|
98
|
+
}
|
|
99
|
+
/** Pied réduit : une ligne, un logo, des mentions. Pour une page isolée
|
|
100
|
+
* (connexion, document partagé) qui n'a pas de pied complet à porter. */
|
|
101
|
+
export function FooterMini({ logo, className, children, ...reste }) {
|
|
102
|
+
return (_jsxs("footer", { className: cx('zv-footer-mini', className), ...reste, children: [logo && _jsx("div", { className: "zv-footer-mini__logo", children: logo }), children] }));
|
|
103
|
+
}
|
|
104
|
+
export function ProofBar({ noms, className, children, ...reste }) {
|
|
105
|
+
return (_jsxs("div", { className: cx('zv-proof-bar', className), ...reste, children: [children, noms && _jsx("div", { className: "zv-proof-bar__names", children: noms })] }));
|
|
106
|
+
}
|
|
107
|
+
export function Layer({ etage, className, ...reste }) {
|
|
108
|
+
return _jsx("div", { className: cx(`zv-layer-${etage}`, className), ...reste });
|
|
109
|
+
}
|
|
110
|
+
/* ─── Visibilité ───────────────────────────────────────────────────── */
|
|
111
|
+
/** ⚠️ Rendu par le CSS, PAS par JavaScript : le serveur ne connaît pas la
|
|
112
|
+
* largeur de l'écran, et conditionner le rendu produit un décalage
|
|
113
|
+
* d'hydratation. Les deux nœuds sont posés, le CSS en masque un. */
|
|
114
|
+
export function OnlyDesktop({ className, ...reste }) {
|
|
115
|
+
return _jsx("div", { className: cx('zv-only-desktop', className), ...reste });
|
|
116
|
+
}
|
|
117
|
+
export function OnlyMobile({ className, ...reste }) {
|
|
118
|
+
return _jsx("div", { className: cx('zv-only-mobile', className), ...reste });
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../react/layout.tsx"],"names":[],"mappings":"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"}
|