@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
package/dist/data.d.ts
ADDED
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import type { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
type Div = Omit<HTMLAttributes<HTMLDivElement>, 'className'>;
|
|
3
|
+
type Span = Omit<HTMLAttributes<HTMLSpanElement>, 'className'>;
|
|
4
|
+
export interface TableProps extends Div {
|
|
5
|
+
/** Gabarit de colonnes, en syntaxe `grid-template-columns`
|
|
6
|
+
* (ex. `'minmax(0,2fr) 120px 90px'`). Hérité par l'en-tête et les lignes. */
|
|
7
|
+
gabarit?: string;
|
|
8
|
+
className?: string;
|
|
9
|
+
}
|
|
10
|
+
/** Le tableau défile DANS son cadre : sans ce confinement, une colonne trop
|
|
11
|
+
* large fait défiler la page entière et le rail de navigation part avec. */
|
|
12
|
+
export declare function Table({ gabarit, className, style, ...reste }: TableProps): import("react").JSX.Element;
|
|
13
|
+
export interface TableHeadProps extends Div {
|
|
14
|
+
/** En-tête en retrait, pour un tableau posé dans une carte. */
|
|
15
|
+
inset?: boolean;
|
|
16
|
+
className?: string;
|
|
17
|
+
}
|
|
18
|
+
export declare function TableHead({ inset, className, ...reste }: TableHeadProps): import("react").JSX.Element;
|
|
19
|
+
export interface RowProps extends Div {
|
|
20
|
+
/** Rend la rangée comme un lien : la cible entière devient cliquable, ce
|
|
21
|
+
* qu'un `onClick` sur un `<div>` ne donne jamais (ni clavier, ni ouverture
|
|
22
|
+
* dans un nouvel onglet). */
|
|
23
|
+
href?: string;
|
|
24
|
+
className?: string;
|
|
25
|
+
}
|
|
26
|
+
export declare function Row({ href, className, ...reste }: RowProps): import("react").JSX.Element;
|
|
27
|
+
export interface CellProps extends Div {
|
|
28
|
+
/** `nom` : la colonne d'identité, la seule en encre pleine.
|
|
29
|
+
* `num` : chiffres alignés à droite, en chasse tabulaire. */
|
|
30
|
+
registre?: 'nom' | 'num';
|
|
31
|
+
/** Intitulé qui REMPLACE l'en-tête quand celui-ci disparaît (mobile). */
|
|
32
|
+
label?: ReactNode;
|
|
33
|
+
/** Unité accolée au nombre, en plus petit. */
|
|
34
|
+
unite?: ReactNode;
|
|
35
|
+
className?: string;
|
|
36
|
+
children?: ReactNode;
|
|
37
|
+
}
|
|
38
|
+
export declare function Cell({ registre, label, unite, className, children, ...reste }: CellProps): import("react").JSX.Element;
|
|
39
|
+
/** Groupe deux ou trois cellules pour l'empilement mobile, puis s'efface
|
|
40
|
+
* (`display: contents`) et rend ses enfants DIRECTEMENT à la grille.
|
|
41
|
+
* ⚠️ N'exprime QUE ce sens-là : le mouvement inverse (pile au-dessus du
|
|
42
|
+
* seuil, colonnes en dessous) n'est pas cette classe. */
|
|
43
|
+
export declare function Unwrap({ className, ...reste }: Div & {
|
|
44
|
+
className?: string;
|
|
45
|
+
}): import("react").JSX.Element;
|
|
46
|
+
export declare function List({ className, ...reste }: Div & {
|
|
47
|
+
className?: string;
|
|
48
|
+
}): import("react").JSX.Element;
|
|
49
|
+
export interface ListRowProps extends Div {
|
|
50
|
+
/** Rangée de dépôt en cours : gabarit propre à l'écran d'import. */
|
|
51
|
+
upload?: boolean;
|
|
52
|
+
className?: string;
|
|
53
|
+
}
|
|
54
|
+
export declare function ListRow({ upload, className, ...reste }: ListRowProps): import("react").JSX.Element;
|
|
55
|
+
export declare function ListMain({ className, ...reste }: Div & {
|
|
56
|
+
className?: string;
|
|
57
|
+
}): import("react").JSX.Element;
|
|
58
|
+
export declare function ListName({ className, ...reste }: Span & {
|
|
59
|
+
className?: string;
|
|
60
|
+
}): import("react").JSX.Element;
|
|
61
|
+
export interface MetaProps extends Span {
|
|
62
|
+
taille?: 'sm' | 'normal' | 'md';
|
|
63
|
+
/** Encore plus effacée : contexte de second plan. */
|
|
64
|
+
discret?: boolean;
|
|
65
|
+
className?: string;
|
|
66
|
+
}
|
|
67
|
+
/** Second registre mono du système, en BAS DE CASSE : taille de fichier,
|
|
68
|
+
* date, horodatage, latence. Ni capitales ni interlettrage — c'est ce qui le
|
|
69
|
+
* distingue de `Tag` et `Mono`, et une date en capitales espacées devient
|
|
70
|
+
* illisible. */
|
|
71
|
+
export declare function Meta({ taille, discret, className, ...reste }: MetaProps): import("react").JSX.Element;
|
|
72
|
+
export declare function MetaRow({ className, ...reste }: Div & {
|
|
73
|
+
className?: string;
|
|
74
|
+
}): import("react").JSX.Element;
|
|
75
|
+
export interface KVProps extends Div {
|
|
76
|
+
/** `grid` : deux colonnes alignées. `foot` : bloc de pied de fiche. */
|
|
77
|
+
variante?: 'grid' | 'foot';
|
|
78
|
+
className?: string;
|
|
79
|
+
}
|
|
80
|
+
export declare function KV({ variante, className, ...reste }: KVProps): import("react").JSX.Element;
|
|
81
|
+
export interface KVRowProps extends Div {
|
|
82
|
+
/** ⚠️ La CLÉ est en mono, en accent, et se coupe ; la VALEUR est en texte
|
|
83
|
+
* courant, en gris, et ne se coupe jamais. Inverser les deux change ce que
|
|
84
|
+
* l'œil balaie en premier dans une colonne de métadonnées. */
|
|
85
|
+
cle: ReactNode;
|
|
86
|
+
className?: string;
|
|
87
|
+
children?: ReactNode;
|
|
88
|
+
}
|
|
89
|
+
export declare function KVRow({ cle, className, children, ...reste }: KVRowProps): import("react").JSX.Element;
|
|
90
|
+
export interface AvatarProps extends Span {
|
|
91
|
+
/** ⚠️ La teinte dit la NATURE de l'entité, elle n'est pas décorative :
|
|
92
|
+
* la changer, c'est changer le sens. */
|
|
93
|
+
ton?: 'accent' | 'ink' | 'soft';
|
|
94
|
+
petit?: boolean;
|
|
95
|
+
className?: string;
|
|
96
|
+
}
|
|
97
|
+
/** CARRÉE, jamais ronde : le rond est un usage de réseau social, l'encre et
|
|
98
|
+
* le papier posent des blocs. */
|
|
99
|
+
export declare function Avatar({ ton, petit, className, ...reste }: AvatarProps): import("react").JSX.Element;
|
|
100
|
+
/** Coupe sur une ligne avec des points de suspension. Jamais interchangeable
|
|
101
|
+
* avec `Break`, qui revient à la ligne. */
|
|
102
|
+
export declare function Trunc({ className, ...reste }: Span & {
|
|
103
|
+
className?: string;
|
|
104
|
+
}): import("react").JSX.Element;
|
|
105
|
+
/** Revient à la ligne au milieu d'un mot : jetons, URLs, chemins. */
|
|
106
|
+
export declare function Break({ className, ...reste }: Span & {
|
|
107
|
+
className?: string;
|
|
108
|
+
}): import("react").JSX.Element;
|
|
109
|
+
export interface ChipProps extends Span {
|
|
110
|
+
/** `mono` : identifiant, code. `outline` : filet au lieu du fond. */
|
|
111
|
+
variante?: 'mono' | 'outline';
|
|
112
|
+
className?: string;
|
|
113
|
+
}
|
|
114
|
+
/** Étiquette NON porteuse d'alerte : nature d'entité, matière, mot-clé.
|
|
115
|
+
* À ne pas confondre avec `Badge` (couleur sémantique) ni `Tag` (kicker
|
|
116
|
+
* éditorial). Une catégorie n'a pas à crier. */
|
|
117
|
+
export declare function Chip({ variante, className, ...reste }: ChipProps): import("react").JSX.Element;
|
|
118
|
+
export declare function ChipRow({ className, ...reste }: Div & {
|
|
119
|
+
className?: string;
|
|
120
|
+
}): import("react").JSX.Element;
|
|
121
|
+
export declare function Cite({ className, ...reste }: Omit<HTMLAttributes<HTMLButtonElement>, 'className'> & {
|
|
122
|
+
className?: string;
|
|
123
|
+
}): import("react").JSX.Element;
|
|
124
|
+
export declare function CiteRow({ className, ...reste }: Div & {
|
|
125
|
+
className?: string;
|
|
126
|
+
}): import("react").JSX.Element;
|
|
127
|
+
export interface FileTypeProps extends Span {
|
|
128
|
+
/** Règle de choix relevée : DOCX si le type MIME contient « word »,
|
|
129
|
+
* PDF sinon. Les couleurs ne viennent PAS de la charte — ce sont celles
|
|
130
|
+
* que le monde associe à ces formats. */
|
|
131
|
+
format: 'pdf' | 'docx';
|
|
132
|
+
className?: string;
|
|
133
|
+
}
|
|
134
|
+
export declare function FileType({ format, className, ...reste }: FileTypeProps): import("react").JSX.Element;
|
|
135
|
+
export {};
|
|
136
|
+
//# sourceMappingURL=data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../react/data.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAuC,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAG3F,KAAK,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,WAAW,CAAC,CAAA;AAC5D,KAAK,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,WAAW,CAAC,CAAA;AAa9D,MAAM,WAAW,UAAW,SAAQ,GAAG;IACrC;kFAC8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;6EAC6E;AAC7E,wBAAgB,KAAK,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,+BAIxE;AAED,MAAM,WAAW,cAAe,SAAQ,GAAG;IACzC,+DAA+D;IAC/D,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,+BAOvE;AAED,MAAM,WAAW,QAAS,SAAQ,GAAG;IACnC;;kCAE8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,QAAQ,+BAW1D;AAED,MAAM,WAAW,SAAU,SAAQ,GAAG;IACpC;kEAC8D;IAC9D,QAAQ,CAAC,EAAE,KAAK,GAAG,KAAK,CAAA;IACxB,yEAAyE;IACzE,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAED,wBAAgB,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,SAAS,+BAgBxF;AAED;;;0DAG0D;AAC1D,wBAAgB,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,+BAE3E;AAID,wBAAgB,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,+BAEzE;AAED,MAAM,WAAW,YAAa,SAAQ,GAAG;IACvC,oEAAoE;IACpE,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,+BAOpE;AAED,wBAAgB,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,+BAE7E;AAED,wBAAgB,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,IAAI,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,+BAE9E;AAID,MAAM,WAAW,SAAU,SAAQ,IAAI;IACrC,MAAM,CAAC,EAAE,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAA;IAC/B,qDAAqD;IACrD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;iBAGiB;AACjB,wBAAgB,IAAI,CAAC,EAAE,MAAiB,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,SAAS,+BAalF;AAED,wBAAgB,OAAO,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,+BAE5E;AAID,MAAM,WAAW,OAAQ,SAAQ,GAAG;IAClC,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,OAAO,+BAI5D;AAED,MAAM,WAAW,UAAW,SAAQ,GAAG;IACrC;;mEAE+D;IAC/D,GAAG,EAAE,SAAS,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAED,wBAAgB,KAAK,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,+BAOvE;AAID,MAAM,WAAW,WAAY,SAAQ,IAAI;IACvC;6CACyC;IACzC,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAA;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;kCACkC;AAClC,wBAAgB,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,WAAW,+BAatE;AAID;4CAC4C;AAC5C,wBAAgB,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,IAAI,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,+BAE3E;AAED,qEAAqE;AACrE,wBAAgB,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,IAAI,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,+BAE3E;AAID,MAAM,WAAW,SAAU,SAAQ,IAAI;IACrC,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;iDAEiD;AACjD,wBAAgB,IAAI,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,SAAS,+BAOhE;AAED,wBAAgB,OAAO,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,+BAE5E;AAID,wBAAgB,IAAI,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,WAAW,CAAC,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,+BAE/E;AAED,wBAAgB,OAAO,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,+BAE5E;AAID,MAAM,WAAW,aAAc,SAAQ,IAAI;IACzC;;8CAE0C;IAC1C,MAAM,EAAE,KAAK,GAAG,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,+BAMtE"}
|
package/dist/data.js
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cx } from './cx.js';
|
|
3
|
+
/** `--zv-cols` est un PARAMÈTRE de grille, pas un token de marque : il se
|
|
4
|
+
* pose en style inline sur le cadre, et l'en-tête comme les lignes en
|
|
5
|
+
* héritent. Une seule déclaration pour les deux — recopié aux deux
|
|
6
|
+
* endroits, on l'oublie à l'un et les intitulés se décalent des valeurs
|
|
7
|
+
* sans que rien ne casse visiblement. */
|
|
8
|
+
function cols(gabarit, style) {
|
|
9
|
+
return gabarit ? { ...style, ['--zv-cols']: gabarit } : style;
|
|
10
|
+
}
|
|
11
|
+
/** Le tableau défile DANS son cadre : sans ce confinement, une colonne trop
|
|
12
|
+
* large fait défiler la page entière et le rail de navigation part avec. */
|
|
13
|
+
export function Table({ gabarit, className, style, ...reste }) {
|
|
14
|
+
return (_jsx("div", { className: cx('zv-table', className), style: cols(gabarit, style), ...reste }));
|
|
15
|
+
}
|
|
16
|
+
export function TableHead({ inset, className, ...reste }) {
|
|
17
|
+
return (_jsx("div", { className: cx('zv-table__head', inset && 'zv-table__head--inset', className), ...reste }));
|
|
18
|
+
}
|
|
19
|
+
export function Row({ href, className, ...reste }) {
|
|
20
|
+
if (href) {
|
|
21
|
+
return (_jsx("a", { href: href, className: cx('zv-row', className), ...reste }));
|
|
22
|
+
}
|
|
23
|
+
return _jsx("div", { className: cx('zv-row', className), ...reste });
|
|
24
|
+
}
|
|
25
|
+
export function Cell({ registre, label, unite, className, children, ...reste }) {
|
|
26
|
+
return (_jsxs("div", { className: cx('zv-cell', registre === 'nom' && 'zv-cell--name', registre === 'num' && 'zv-cell--num', className), ...reste, children: [label && _jsx("span", { className: "zv-cell__label", children: label }), children, unite && _jsx("span", { className: "zv-cell__unit", children: unite })] }));
|
|
27
|
+
}
|
|
28
|
+
/** Groupe deux ou trois cellules pour l'empilement mobile, puis s'efface
|
|
29
|
+
* (`display: contents`) et rend ses enfants DIRECTEMENT à la grille.
|
|
30
|
+
* ⚠️ N'exprime QUE ce sens-là : le mouvement inverse (pile au-dessus du
|
|
31
|
+
* seuil, colonnes en dessous) n'est pas cette classe. */
|
|
32
|
+
export function Unwrap({ className, ...reste }) {
|
|
33
|
+
return _jsx("div", { className: cx('zv-unwrap', className), ...reste });
|
|
34
|
+
}
|
|
35
|
+
/* ─── Liste sans colonnes ──────────────────────────────────────────── */
|
|
36
|
+
export function List({ className, ...reste }) {
|
|
37
|
+
return _jsx("div", { className: cx('zv-list', className), ...reste });
|
|
38
|
+
}
|
|
39
|
+
export function ListRow({ upload, className, ...reste }) {
|
|
40
|
+
return (_jsx("div", { className: cx('zv-list__row', upload && 'zv-list__row--upload', className), ...reste }));
|
|
41
|
+
}
|
|
42
|
+
export function ListMain({ className, ...reste }) {
|
|
43
|
+
return _jsx("div", { className: cx('zv-list__main', className), ...reste });
|
|
44
|
+
}
|
|
45
|
+
export function ListName({ className, ...reste }) {
|
|
46
|
+
return _jsx("span", { className: cx('zv-list__name', className), ...reste });
|
|
47
|
+
}
|
|
48
|
+
/** Second registre mono du système, en BAS DE CASSE : taille de fichier,
|
|
49
|
+
* date, horodatage, latence. Ni capitales ni interlettrage — c'est ce qui le
|
|
50
|
+
* distingue de `Tag` et `Mono`, et une date en capitales espacées devient
|
|
51
|
+
* illisible. */
|
|
52
|
+
export function Meta({ taille = 'normal', discret, className, ...reste }) {
|
|
53
|
+
return (_jsx("span", { className: cx('zv-meta', taille === 'sm' && 'zv-meta--sm', taille === 'md' && 'zv-meta--md', discret && 'zv-meta--quiet', className), ...reste }));
|
|
54
|
+
}
|
|
55
|
+
export function MetaRow({ className, ...reste }) {
|
|
56
|
+
return _jsx("div", { className: cx('zv-meta-row', className), ...reste });
|
|
57
|
+
}
|
|
58
|
+
export function KV({ variante, className, ...reste }) {
|
|
59
|
+
return (_jsx("div", { className: cx('zv-kv', variante && `zv-kv--${variante}`, className), ...reste }));
|
|
60
|
+
}
|
|
61
|
+
export function KVRow({ cle, className, children, ...reste }) {
|
|
62
|
+
return (_jsxs("div", { className: cx('zv-kv__row', className), ...reste, children: [_jsx("span", { className: "zv-kv__key", children: cle }), _jsx("span", { className: "zv-kv__val", children: children })] }));
|
|
63
|
+
}
|
|
64
|
+
/** CARRÉE, jamais ronde : le rond est un usage de réseau social, l'encre et
|
|
65
|
+
* le papier posent des blocs. */
|
|
66
|
+
export function Avatar({ ton, petit, className, ...reste }) {
|
|
67
|
+
return (_jsx("span", { "aria-hidden": "true", className: cx('zv-avatar', ton && `zv-avatar--${ton}`, petit && 'zv-avatar--sm', className), ...reste }));
|
|
68
|
+
}
|
|
69
|
+
/* ─── Troncature ───────────────────────────────────────────────────── */
|
|
70
|
+
/** Coupe sur une ligne avec des points de suspension. Jamais interchangeable
|
|
71
|
+
* avec `Break`, qui revient à la ligne. */
|
|
72
|
+
export function Trunc({ className, ...reste }) {
|
|
73
|
+
return _jsx("span", { className: cx('zv-trunc', className), ...reste });
|
|
74
|
+
}
|
|
75
|
+
/** Revient à la ligne au milieu d'un mot : jetons, URLs, chemins. */
|
|
76
|
+
export function Break({ className, ...reste }) {
|
|
77
|
+
return _jsx("span", { className: cx('zv-break', className), ...reste });
|
|
78
|
+
}
|
|
79
|
+
/** Étiquette NON porteuse d'alerte : nature d'entité, matière, mot-clé.
|
|
80
|
+
* À ne pas confondre avec `Badge` (couleur sémantique) ni `Tag` (kicker
|
|
81
|
+
* éditorial). Une catégorie n'a pas à crier. */
|
|
82
|
+
export function Chip({ variante, className, ...reste }) {
|
|
83
|
+
return (_jsx("span", { className: cx('zv-chip', variante && `zv-chip--${variante}`, className), ...reste }));
|
|
84
|
+
}
|
|
85
|
+
export function ChipRow({ className, ...reste }) {
|
|
86
|
+
return _jsx("div", { className: cx('zv-chip-row', className), ...reste });
|
|
87
|
+
}
|
|
88
|
+
/* ─── Citation ─────────────────────────────────────────────────────── */
|
|
89
|
+
export function Cite({ className, ...reste }) {
|
|
90
|
+
return _jsx("button", { type: "button", className: cx('zv-cite', className), ...reste });
|
|
91
|
+
}
|
|
92
|
+
export function CiteRow({ className, ...reste }) {
|
|
93
|
+
return _jsx("div", { className: cx('zv-cite-row', className), ...reste });
|
|
94
|
+
}
|
|
95
|
+
export function FileType({ format, className, ...reste }) {
|
|
96
|
+
return (_jsx("span", { className: cx('zv-filetype', `zv-filetype--${format}`, className), ...reste, children: format.toUpperCase() }));
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=data.js.map
|
package/dist/data.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.js","sourceRoot":"","sources":["../react/data.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
type Div = Omit<HTMLAttributes<HTMLDivElement>, 'className'>;
|
|
3
|
+
type Span = Omit<HTMLAttributes<HTMLSpanElement>, 'className'>;
|
|
4
|
+
export type AlertTon = 'info' | 'ok' | 'warn' | 'err' | 'dash';
|
|
5
|
+
export interface AlertProps extends Div {
|
|
6
|
+
/** OBLIGATOIRE : sans ton, le bandeau hérite d'un filet en `currentColor`,
|
|
7
|
+
* soit un trait d'encre autour d'un fond blanc. */
|
|
8
|
+
ton: AlertTon;
|
|
9
|
+
/** `sm` resserre, `lg` amplifie — ce dernier pour le message qui REMPLACE
|
|
10
|
+
* un contenu attendu (incident, réponse impossible). */
|
|
11
|
+
taille?: 'sm' | 'normal' | 'lg';
|
|
12
|
+
className?: string;
|
|
13
|
+
}
|
|
14
|
+
export declare function Alert({ ton, taille, className, ...reste }: AlertProps): import("react").JSX.Element;
|
|
15
|
+
export type BadgeTon = 'neutre' | 'accent' | 'ok' | 'warn' | 'err';
|
|
16
|
+
export interface BadgeProps extends Span {
|
|
17
|
+
ton?: BadgeTon;
|
|
18
|
+
/** `micro` : niveau de log en tête de ligne, badge de coque.
|
|
19
|
+
* `state` : état de service (OK / CHARGE). */
|
|
20
|
+
gabarit?: 'micro' | 'state';
|
|
21
|
+
/** Pastille en tête, de la couleur du texte. */
|
|
22
|
+
pastille?: boolean;
|
|
23
|
+
className?: string;
|
|
24
|
+
children?: ReactNode;
|
|
25
|
+
}
|
|
26
|
+
/** Le libellé s'écrit EN CAPITALES dans le contenu, pas en CSS : transformé
|
|
27
|
+
* par le navigateur, « INDEXÉ » se casse selon la locale. */
|
|
28
|
+
export declare function Badge({ ton, gabarit, pastille, className, children, ...reste }: BadgeProps): import("react").JSX.Element;
|
|
29
|
+
export type DotEtat = 'recu' | 'ocr' | 'indexation' | 'indexe' | 'ok' | 'erreur';
|
|
30
|
+
export interface DotProps extends Span {
|
|
31
|
+
/** Sans état, la pastille reste GRISE : un statut inconnu — ajouté côté
|
|
32
|
+
* serveur, pas encore côté interface — ne doit pas passer pour un succès. */
|
|
33
|
+
etat?: DotEtat;
|
|
34
|
+
taille?: 'sm' | 'normal' | 'lg';
|
|
35
|
+
/** CARRÉE : marque une SOURCE, pas un état. Ne pas uniformiser. */
|
|
36
|
+
carree?: boolean;
|
|
37
|
+
className?: string;
|
|
38
|
+
}
|
|
39
|
+
export declare function Dot({ etat, taille, carree, className, ...reste }: DotProps): import("react").JSX.Element;
|
|
40
|
+
export interface StatusProps extends Div {
|
|
41
|
+
etat?: DotEtat;
|
|
42
|
+
/** Le message d'erreur REMPLACE le libellé quand il y en a un :
|
|
43
|
+
* l'utilisateur veut lire la cause, pas le mot « Erreur ». */
|
|
44
|
+
children?: ReactNode;
|
|
45
|
+
className?: string;
|
|
46
|
+
}
|
|
47
|
+
export declare function Status({ etat, className, children, ...reste }: StatusProps): import("react").JSX.Element;
|
|
48
|
+
export interface EmptyProps extends Div {
|
|
49
|
+
/** ⚠️ DEUX OBJETS DISTINCTS. Sans `titre` c'est la LIGNE d'absence : un
|
|
50
|
+
* filtre trop étroit, la collection existe, l'en-tête du tableau reste
|
|
51
|
+
* visible. Avec `titre` et `page`, c'est l'ÉCRAN d'absence : la collection
|
|
52
|
+
* est vide et il faut lui offrir une porte de sortie. Les confondre
|
|
53
|
+
* affiche un écran de bienvenue à chaque filtre trop strict. */
|
|
54
|
+
titre?: ReactNode;
|
|
55
|
+
page?: boolean;
|
|
56
|
+
/** L'action qui remplira la collection. Réservée à l'écran d'absence. */
|
|
57
|
+
action?: ReactNode;
|
|
58
|
+
className?: string;
|
|
59
|
+
children?: ReactNode;
|
|
60
|
+
}
|
|
61
|
+
export declare function Empty({ titre, page, action, className, children, ...reste }: EmptyProps): import("react").JSX.Element;
|
|
62
|
+
export interface LoadingProps extends Div {
|
|
63
|
+
className?: string;
|
|
64
|
+
children?: ReactNode;
|
|
65
|
+
}
|
|
66
|
+
/** Pastille + phrase qui dit le travail réel (« Recherche dans 4 812
|
|
67
|
+
* documents anonymisés… »). STATIQUE : la pastille ne bat pas, et lui
|
|
68
|
+
* ajouter un pouls est l'invention la plus tentante du système. */
|
|
69
|
+
export declare function Loading({ className, children, ...reste }: LoadingProps): import("react").JSX.Element;
|
|
70
|
+
/** Bloc collé à la fin d'un texte en cours de diffusion, sur le DERNIER
|
|
71
|
+
* message seulement : sans lui, une réponse coupée à mi-phrase se lit comme
|
|
72
|
+
* une réponse complète et fausse. */
|
|
73
|
+
export declare function Caret({ className, ...reste }: Span & {
|
|
74
|
+
className?: string;
|
|
75
|
+
}): import("react").JSX.Element;
|
|
76
|
+
export interface ProgressProps extends Div {
|
|
77
|
+
/** Entre 0 et 1. Hors bornes, la valeur est ramenée dedans : une barre à
|
|
78
|
+
* 140 % déborde de son cadre. */
|
|
79
|
+
valeur: number;
|
|
80
|
+
/** Ce que la barre mesure — annoncé, jamais dessiné. */
|
|
81
|
+
label?: string;
|
|
82
|
+
className?: string;
|
|
83
|
+
}
|
|
84
|
+
/** Deuxième des trois emplois autorisés du spectre (avec le filet de section
|
|
85
|
+
* et les points de méthode). Jamais en fond, jamais en texte. */
|
|
86
|
+
export declare function Progress({ valeur, label, className, ...reste }: ProgressProps): import("react").JSX.Element;
|
|
87
|
+
export {};
|
|
88
|
+
//# sourceMappingURL=feedback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback.d.ts","sourceRoot":"","sources":["../react/feedback.tsx"],"names":[],"mappings":"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"}
|
package/dist/feedback.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cx } from './cx.js';
|
|
3
|
+
export function Alert({ ton, taille = 'normal', className, ...reste }) {
|
|
4
|
+
return (_jsx("div", { role: "alert", className: cx('zv-alert', `zv-alert--${ton}`, taille === 'sm' && 'zv-alert--sm', taille === 'lg' && 'zv-alert--lg', className), ...reste }));
|
|
5
|
+
}
|
|
6
|
+
/** Le libellé s'écrit EN CAPITALES dans le contenu, pas en CSS : transformé
|
|
7
|
+
* par le navigateur, « INDEXÉ » se casse selon la locale. */
|
|
8
|
+
export function Badge({ ton = 'neutre', gabarit, pastille, className, children, ...reste }) {
|
|
9
|
+
return (_jsxs("span", { className: cx('zv-badge', `zv-badge--${ton}`, gabarit === 'micro' && 'zv-badge--micro', gabarit === 'state' && 'zv-badge--state', pastille && 'zv-badge--dot', className), ...reste, children: [pastille && _jsx("span", { className: "zv-dot", "aria-hidden": "true" }), children] }));
|
|
10
|
+
}
|
|
11
|
+
export function Dot({ etat, taille = 'normal', carree, className, ...reste }) {
|
|
12
|
+
return (_jsx("span", { "aria-hidden": "true", className: cx('zv-dot', etat && `zv-dot--${etat}`, taille === 'sm' && 'zv-dot--sm', taille === 'lg' && 'zv-dot--lg', carree && 'zv-dot--square', className), ...reste }));
|
|
13
|
+
}
|
|
14
|
+
export function Status({ etat, className, children, ...reste }) {
|
|
15
|
+
return (_jsxs("div", { className: cx('zv-status', className), ...reste, children: [_jsx(Dot, { etat: etat }), _jsx("span", { className: "zv-status__label", children: children })] }));
|
|
16
|
+
}
|
|
17
|
+
export function Empty({ titre, page, action, className, children, ...reste }) {
|
|
18
|
+
return (_jsxs("div", { className: cx('zv-empty', page && 'zv-empty--page', className), ...reste, children: [titre && _jsx("p", { className: "zv-empty__title", children: titre }), children && _jsx("p", { className: "zv-empty__text", children: children }), action && _jsx("div", { className: "zv-empty__action", children: action })] }));
|
|
19
|
+
}
|
|
20
|
+
/** Pastille + phrase qui dit le travail réel (« Recherche dans 4 812
|
|
21
|
+
* documents anonymisés… »). STATIQUE : la pastille ne bat pas, et lui
|
|
22
|
+
* ajouter un pouls est l'invention la plus tentante du système. */
|
|
23
|
+
export function Loading({ className, children, ...reste }) {
|
|
24
|
+
return (_jsxs("div", { role: "status", "aria-live": "polite", className: cx('zv-loading', className), ...reste, children: [_jsx("span", { className: "zv-dot", "aria-hidden": "true" }), children] }));
|
|
25
|
+
}
|
|
26
|
+
/** Bloc collé à la fin d'un texte en cours de diffusion, sur le DERNIER
|
|
27
|
+
* message seulement : sans lui, une réponse coupée à mi-phrase se lit comme
|
|
28
|
+
* une réponse complète et fausse. */
|
|
29
|
+
export function Caret({ className, ...reste }) {
|
|
30
|
+
return (_jsx("span", { className: cx('zv-caret', className), "aria-hidden": "true", ...reste, children: "\u258D" }));
|
|
31
|
+
}
|
|
32
|
+
/** Deuxième des trois emplois autorisés du spectre (avec le filet de section
|
|
33
|
+
* et les points de méthode). Jamais en fond, jamais en texte. */
|
|
34
|
+
export function Progress({ valeur, label, className, ...reste }) {
|
|
35
|
+
const part = Math.min(1, Math.max(0, valeur));
|
|
36
|
+
return (_jsx("div", { role: "progressbar", "aria-valuemin": 0, "aria-valuemax": 100, "aria-valuenow": Math.round(part * 100), "aria-label": label, className: cx('zv-progress', className), ...reste, children: _jsx("div", { className: "zv-progress__fill", style: { width: `${part * 100}%` } }) }));
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=feedback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback.js","sourceRoot":"","sources":["../react/feedback.tsx"],"names":[],"mappings":"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"}
|
package/dist/forms.d.ts
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import type { ButtonHTMLAttributes, HTMLAttributes, InputHTMLAttributes, ReactNode, SelectHTMLAttributes, TextareaHTMLAttributes } from 'react';
|
|
2
|
+
export interface FieldProps extends Omit<HTMLAttributes<HTMLDivElement>, 'className'> {
|
|
3
|
+
label?: ReactNode;
|
|
4
|
+
/** Identifiant du contrôle enveloppé — à répéter en `id` sur le contrôle. */
|
|
5
|
+
htmlFor?: string;
|
|
6
|
+
/** Posé à droite de l'intitulé, sur la même ligne de base
|
|
7
|
+
* (« Mot de passe oublié ? »). */
|
|
8
|
+
action?: ReactNode;
|
|
9
|
+
/** Aide permanente. Effacée par `erreur` : les deux au même endroit se
|
|
10
|
+
* chevaucheraient. */
|
|
11
|
+
help?: ReactNode;
|
|
12
|
+
/** Message d'erreur. Sa présence passe aussi le groupe en `--err`, ce qui
|
|
13
|
+
* repeint le filet du contrôle. */
|
|
14
|
+
erreur?: ReactNode;
|
|
15
|
+
className?: string;
|
|
16
|
+
children?: ReactNode;
|
|
17
|
+
}
|
|
18
|
+
export declare function Field({ label, htmlFor, action, help, erreur, className, children, ...reste }: FieldProps): import("react").JSX.Element;
|
|
19
|
+
export interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'className'> {
|
|
20
|
+
/** Chiffres et tirets alignés (identifiant d'organisation, jeton). */
|
|
21
|
+
mono?: boolean;
|
|
22
|
+
/** Ni fond ni filet : c'est le CADRE qui l'entoure qui fait le champ.
|
|
23
|
+
* Lui laisser sa bordure dessinerait deux cadres imbriqués. */
|
|
24
|
+
nu?: boolean;
|
|
25
|
+
/** Pose `aria-invalid` — c'est lui qui rend l'erreur audible, et le CSS le
|
|
26
|
+
* suit autant que la classe. */
|
|
27
|
+
erreur?: boolean;
|
|
28
|
+
className?: string;
|
|
29
|
+
}
|
|
30
|
+
export declare function Input({ mono, nu, erreur, className, ...reste }: InputProps): import("react").JSX.Element;
|
|
31
|
+
export interface TextareaProps extends Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, 'className'> {
|
|
32
|
+
erreur?: boolean;
|
|
33
|
+
className?: string;
|
|
34
|
+
}
|
|
35
|
+
export declare function Textarea({ erreur, className, ...reste }: TextareaProps): import("react").JSX.Element;
|
|
36
|
+
/** <select> NATIF habillé comme le champ : la flèche, l'ouverture au clavier
|
|
37
|
+
* et l'annonce viennent du navigateur. C'est le motif de choix par défaut —
|
|
38
|
+
* `SelectTrigger` est un menu maison, à réserver aux filtres. */
|
|
39
|
+
export declare function Select({ className, ...reste }: Omit<SelectHTMLAttributes<HTMLSelectElement>, 'className'> & {
|
|
40
|
+
className?: string;
|
|
41
|
+
}): import("react").JSX.Element;
|
|
42
|
+
export interface SearchProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'className'> {
|
|
43
|
+
/** Enveloppe : c'est elle qui porte le cadre et la largeur. */
|
|
44
|
+
className?: string;
|
|
45
|
+
}
|
|
46
|
+
/** Cadre + loupe + champ nu. La loupe est dans le balisage (et non un fond
|
|
47
|
+
* CSS) pour suivre `currentColor` et rester nette en zoom. */
|
|
48
|
+
export declare function Search({ className, ...reste }: SearchProps): import("react").JSX.Element;
|
|
49
|
+
export declare function SelectAnchor({ className, ...reste }: Omit<HTMLAttributes<HTMLDivElement>, 'className'> & {
|
|
50
|
+
className?: string;
|
|
51
|
+
}): import("react").JSX.Element;
|
|
52
|
+
export interface SelectTriggerProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'className' | 'value'> {
|
|
53
|
+
/** L'intitulé, en capitales (« PÉRIMÈTRE »). */
|
|
54
|
+
label?: ReactNode;
|
|
55
|
+
/** La valeur courante, seule partie mise en avant. */
|
|
56
|
+
value?: ReactNode;
|
|
57
|
+
className?: string;
|
|
58
|
+
}
|
|
59
|
+
/** Bouton qui ouvre un `Menu`. Pour un vrai choix dans une liste, préférer
|
|
60
|
+
* `Select` (natif). À poser dans un `SelectAnchor` : c'est l'enveloppe qui
|
|
61
|
+
* ancre le menu, pas le déclencheur. */
|
|
62
|
+
export declare function SelectTrigger({ label, value, className, ...reste }: SelectTriggerProps): import("react").JSX.Element;
|
|
63
|
+
export declare function Checkbox({ className, ...reste }: Omit<InputHTMLAttributes<HTMLInputElement>, 'className' | 'type'> & {
|
|
64
|
+
className?: string;
|
|
65
|
+
}): import("react").JSX.Element;
|
|
66
|
+
export declare function Radio({ className, ...reste }: Omit<InputHTMLAttributes<HTMLInputElement>, 'className' | 'type'> & {
|
|
67
|
+
className?: string;
|
|
68
|
+
}): import("react").JSX.Element;
|
|
69
|
+
export interface SwitchProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'className' | 'onChange'> {
|
|
70
|
+
/** État courant. Composant CONTRÔLÉ : il ne mémorise rien. */
|
|
71
|
+
on: boolean;
|
|
72
|
+
/** Libellé accolé — c'est lui qui porte le sens, la piste seule ne dit pas
|
|
73
|
+
* ce qui est activé. */
|
|
74
|
+
texte?: ReactNode;
|
|
75
|
+
className?: string;
|
|
76
|
+
}
|
|
77
|
+
export declare function Switch({ on, texte, className, ...reste }: SwitchProps): import("react").JSX.Element;
|
|
78
|
+
export interface SegGroupProps extends Omit<HTMLAttributes<HTMLDivElement>, 'className'> {
|
|
79
|
+
/** Rangée qui défile au lieu de passer à la ligne. À poser explicitement :
|
|
80
|
+
* par défaut les puces s'enroulent. */
|
|
81
|
+
rail?: boolean;
|
|
82
|
+
className?: string;
|
|
83
|
+
}
|
|
84
|
+
export declare function SegGroup({ rail, className, ...reste }: SegGroupProps): import("react").JSX.Element;
|
|
85
|
+
export interface SegProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'className'> {
|
|
86
|
+
on?: boolean;
|
|
87
|
+
/** Sélection PLEINE au lieu de douce. ⚠️ Un seul groupe plein par page, et
|
|
88
|
+
* jamais sur une page qui porte déjà un bouton plein. */
|
|
89
|
+
plein?: boolean;
|
|
90
|
+
/** Libellés de longueur inégale centrés (INFO, WARN, ERROR). */
|
|
91
|
+
mono?: boolean;
|
|
92
|
+
/** Compteur accolé (« Contrats 12 »). */
|
|
93
|
+
compte?: ReactNode;
|
|
94
|
+
className?: string;
|
|
95
|
+
children?: ReactNode;
|
|
96
|
+
}
|
|
97
|
+
export declare function Seg({ on, plein, mono, compte, className, children, ...reste }: SegProps): import("react").JSX.Element;
|
|
98
|
+
export interface DropProps extends Omit<HTMLAttributes<HTMLDivElement>, 'className' | 'title'> {
|
|
99
|
+
titre?: ReactNode;
|
|
100
|
+
/** Précision sous le titre (« PDF, DOCX · 25 Mo max »). */
|
|
101
|
+
spec?: ReactNode;
|
|
102
|
+
/** Alternative tactile : sous le point de rupture, le lien souligné cède
|
|
103
|
+
* la place à cette cible. Le CSS échange les deux, les deux nœuds restent
|
|
104
|
+
* posés en permanence. */
|
|
105
|
+
parcourir?: ReactNode;
|
|
106
|
+
/** Un fichier est en cours de survol : même rendu que le survol souris. */
|
|
107
|
+
survol?: boolean;
|
|
108
|
+
desactive?: boolean;
|
|
109
|
+
className?: string;
|
|
110
|
+
children?: ReactNode;
|
|
111
|
+
}
|
|
112
|
+
/** ⚠️ `role="button"` + `tabIndex` sont posés ici et non laissés au bon
|
|
113
|
+
* vouloir de l'appelant : une zone de dépôt sans eux rend la page
|
|
114
|
+
* inatteignable au clavier. Penser à remettre `value=''` sur l'input après
|
|
115
|
+
* chaque sélection, sinon redéposer le même fichier ne déclenche rien. */
|
|
116
|
+
export declare function Drop({ titre, spec, parcourir, survol, desactive, className, children, ...reste }: DropProps): import("react").JSX.Element;
|
|
117
|
+
export declare function DropInput({ className, ...reste }: Omit<InputHTMLAttributes<HTMLInputElement>, 'className' | 'type'> & {
|
|
118
|
+
className?: string;
|
|
119
|
+
}): import("react").JSX.Element;
|
|
120
|
+
//# sourceMappingURL=forms.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forms.d.ts","sourceRoot":"","sources":["../react/forms.tsx"],"names":[],"mappings":"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"}
|
package/dist/forms.js
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cx } from './cx.js';
|
|
3
|
+
export function Field({ label, htmlFor, action, help, erreur, className, children, ...reste }) {
|
|
4
|
+
return (_jsxs("div", { className: cx('zv-field', !!erreur && 'zv-field--err', className), ...reste, children: [(label || action) &&
|
|
5
|
+
(action ? (_jsxs("div", { className: "zv-field__head", children: [_jsx("label", { className: "zv-field__label", htmlFor: htmlFor, children: label }), action] })) : (_jsx("label", { className: "zv-field__label", htmlFor: htmlFor, children: label }))), children, erreur ? (_jsx("span", { className: "zv-field__err", id: htmlFor ? `${htmlFor}-err` : undefined, children: erreur })) : (help && _jsx("span", { className: "zv-field__help", children: help }))] }));
|
|
6
|
+
}
|
|
7
|
+
export function Input({ mono, nu, erreur, className, ...reste }) {
|
|
8
|
+
return (_jsx("input", { className: cx('zv-input', mono && 'zv-input--mono', nu && 'zv-input--bare', className), "aria-invalid": erreur || undefined, ...reste }));
|
|
9
|
+
}
|
|
10
|
+
export function Textarea({ erreur, className, ...reste }) {
|
|
11
|
+
return (_jsx("textarea", { className: cx('zv-textarea', className), "aria-invalid": erreur || undefined, ...reste }));
|
|
12
|
+
}
|
|
13
|
+
/** <select> NATIF habillé comme le champ : la flèche, l'ouverture au clavier
|
|
14
|
+
* et l'annonce viennent du navigateur. C'est le motif de choix par défaut —
|
|
15
|
+
* `SelectTrigger` est un menu maison, à réserver aux filtres. */
|
|
16
|
+
export function Select({ className, ...reste }) {
|
|
17
|
+
return _jsx("select", { className: cx('zv-input', 'zv-input--select', className), ...reste });
|
|
18
|
+
}
|
|
19
|
+
/** Cadre + loupe + champ nu. La loupe est dans le balisage (et non un fond
|
|
20
|
+
* CSS) pour suivre `currentColor` et rester nette en zoom. */
|
|
21
|
+
export function Search({ className, ...reste }) {
|
|
22
|
+
return (_jsxs("div", { className: cx('zv-search', className), children: [_jsxs("svg", { className: "zv-search__icon", viewBox: "0 0 13 13", fill: "none", strokeWidth: "1.5", "aria-hidden": "true", children: [_jsx("circle", { cx: "5.5", cy: "5.5", r: "4" }), _jsx("line", { x1: "8.6", y1: "8.6", x2: "12", y2: "12" })] }), _jsx("input", { type: "search", className: "zv-search__input", ...reste })] }));
|
|
23
|
+
}
|
|
24
|
+
/* ─── Déclencheur de sélection (menu maison) ───────────────────────── */
|
|
25
|
+
export function SelectAnchor({ className, ...reste }) {
|
|
26
|
+
return _jsx("div", { className: cx('zv-select-anchor', className), ...reste });
|
|
27
|
+
}
|
|
28
|
+
/** Bouton qui ouvre un `Menu`. Pour un vrai choix dans une liste, préférer
|
|
29
|
+
* `Select` (natif). À poser dans un `SelectAnchor` : c'est l'enveloppe qui
|
|
30
|
+
* ancre le menu, pas le déclencheur. */
|
|
31
|
+
export function SelectTrigger({ label, value, className, ...reste }) {
|
|
32
|
+
return (_jsxs("button", { type: "button", className: cx('zv-select', className), ...reste, children: [label, value != null && _jsx("strong", { children: value }), _jsx("span", { className: "zv-select__chevron", "aria-hidden": "true", children: "\u25BE" })] }));
|
|
33
|
+
}
|
|
34
|
+
/* ─── Case, radio ──────────────────────────────────────────────────── */
|
|
35
|
+
export function Checkbox({ className, ...reste }) {
|
|
36
|
+
return _jsx("input", { type: "checkbox", className: cx('zv-check-box', className), ...reste });
|
|
37
|
+
}
|
|
38
|
+
export function Radio({ className, ...reste }) {
|
|
39
|
+
return _jsx("input", { type: "radio", className: cx('zv-radio', className), ...reste });
|
|
40
|
+
}
|
|
41
|
+
export function Switch({ on, texte, className, ...reste }) {
|
|
42
|
+
return (_jsxs("button", { type: "button", role: "switch", "aria-checked": on, className: cx('zv-switch-hit', className), ...reste, children: [_jsx("span", { className: cx('zv-switch', on && 'zv-switch--on'), children: _jsx("span", { className: "zv-switch__knob" }) }), texte && (_jsx("span", { className: cx('zv-switch__text', on && 'zv-switch__text--on'), children: texte }))] }));
|
|
43
|
+
}
|
|
44
|
+
export function SegGroup({ rail, className, ...reste }) {
|
|
45
|
+
return (_jsx("div", { className: cx('zv-seg-group', rail && 'zv-seg-group--rail', className), ...reste }));
|
|
46
|
+
}
|
|
47
|
+
export function Seg({ on, plein, mono, compte, className, children, ...reste }) {
|
|
48
|
+
return (_jsxs("button", { type: "button", "aria-pressed": on ?? false, className: cx('zv-seg', mono && 'zv-seg--mono', on && (plein ? 'zv-seg--on-solid' : 'zv-seg--on'), className), ...reste, children: [children, compte != null && _jsx("span", { className: "zv-seg__count", children: compte })] }));
|
|
49
|
+
}
|
|
50
|
+
/** ⚠️ `role="button"` + `tabIndex` sont posés ici et non laissés au bon
|
|
51
|
+
* vouloir de l'appelant : une zone de dépôt sans eux rend la page
|
|
52
|
+
* inatteignable au clavier. Penser à remettre `value=''` sur l'input après
|
|
53
|
+
* chaque sélection, sinon redéposer le même fichier ne déclenche rien. */
|
|
54
|
+
export function Drop({ titre, spec, parcourir, survol, desactive, className, children, ...reste }) {
|
|
55
|
+
return (_jsxs("div", { role: "button", tabIndex: desactive ? -1 : 0, "aria-disabled": desactive || undefined, className: cx('zv-drop', survol && 'is-dragging', desactive && 'zv-drop--disabled', className), ...reste, children: [_jsxs("svg", { viewBox: "0 0 30 30", width: "30", height: "30", fill: "none", stroke: "var(--accent)", strokeWidth: "1.5", strokeLinecap: "round", "aria-hidden": "true", children: [_jsx("line", { x1: "15", y1: "4", x2: "15", y2: "18" }), _jsx("polyline", { points: "9.5,12.5 15,18 20.5,12.5" }), _jsx("path", { d: "M5 21 v3 a2 2 0 0 0 2 2 h16 a2 2 0 0 0 2-2 v-3" })] }), titre && _jsx("span", { className: "zv-drop__title", children: titre }), parcourir && _jsx("span", { className: "zv-drop__browse", children: parcourir }), spec && _jsx("span", { className: "zv-drop__spec", children: spec }), children] }));
|
|
56
|
+
}
|
|
57
|
+
export function DropInput({ className, ...reste }) {
|
|
58
|
+
return _jsx("input", { type: "file", className: cx('zv-drop__input', className), ...reste });
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=forms.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forms.js","sourceRoot":"","sources":["../react/forms.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type IconId = 'accueil' | 'activite' | 'app-couches' | 'archiver' | 'base-de-donnees' | 'bouclier-verifie' | 'cadenas' | 'cadrer' | 'chevron-bas' | 'chevron-droit' | 'chevron-gauche' | 'coche' | 'copier' | 'corbeille' | 'cube' | 'deconnexion' | 'depot-fichier' | 'dossier' | 'eclair' | 'equipe' | 'etincelles' | 'fermer' | 'horloge' | 'lien-externe' | 'menu' | 'moins' | 'oeil' | 'plus' | 'recherche' | 'registre' | 'reglages' | 'reseau' | 'taches' | 'trois-points';
|
|
2
|
+
export declare const CORPS: Record<IconId, string>;
|
|
3
|
+
/** Nom lisible de chaque icône — sert de titre accessible par défaut à
|
|
4
|
+
* `IconButton`, et de libellé dans la page de consultation de l'admin. */
|
|
5
|
+
export declare const NOMS: Record<IconId, string>;
|
|
6
|
+
//# sourceMappingURL=icon-data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon-data.d.ts","sourceRoot":"","sources":["../react/icon-data.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,MAAM,GACd,SAAS,GACT,UAAU,GACV,aAAa,GACb,UAAU,GACV,iBAAiB,GACjB,kBAAkB,GAClB,SAAS,GACT,QAAQ,GACR,aAAa,GACb,eAAe,GACf,gBAAgB,GAChB,OAAO,GACP,QAAQ,GACR,WAAW,GACX,MAAM,GACN,aAAa,GACb,eAAe,GACf,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,YAAY,GACZ,QAAQ,GACR,SAAS,GACT,cAAc,GACd,MAAM,GACN,OAAO,GACP,MAAM,GACN,MAAM,GACN,WAAW,GACX,UAAU,GACV,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,cAAc,CAAA;AAElB,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAmCxC,CAAA;AAED;2EAC2E;AAC3E,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAmCvC,CAAA"}
|