@zevra/ui 0.38.0 → 0.39.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 +45 -0
- package/dist/catalogue.d.ts.map +1 -1
- package/dist/catalogue.js +28 -6
- package/dist/catalogue.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/dist/overlays.d.ts +26 -0
- package/dist/overlays.d.ts.map +1 -1
- package/dist/overlays.js +13 -1
- package/dist/overlays.js.map +1 -1
- package/package.json +1 -1
- package/react/catalogue.tsx +65 -5
- package/react/css-inline.ts +1 -1
- package/react/overlays.tsx +79 -1
- package/src/overlays.css +140 -2
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,gg8RAAgg8R,CAAA;AAEni8R;;;yBAGyB;AACzB,MAAM,CAAC,MAAM,WAAW,GAAW,y3BAAy3B,CAAA"}
|
package/dist/overlays.d.ts
CHANGED
|
@@ -51,6 +51,32 @@ export interface ModalProps extends Omit<Div, 'title'> {
|
|
|
51
51
|
children?: ReactNode;
|
|
52
52
|
}
|
|
53
53
|
export declare function Modal({ ouvert, onClose, titre, actions, pied, danger, className, children, ...reste }: ModalProps): import("react").JSX.Element | null;
|
|
54
|
+
export interface VoletProps extends Omit<Div, 'title'> {
|
|
55
|
+
ouvert: boolean;
|
|
56
|
+
onClose: () => void;
|
|
57
|
+
titre?: ReactNode;
|
|
58
|
+
/** Nom du dialogue quand le titre n'est pas une chaîne. */
|
|
59
|
+
label?: string;
|
|
60
|
+
/** Actions de tête, à droite du titre (la croix, en général). */
|
|
61
|
+
actions?: ReactNode;
|
|
62
|
+
/** Pied d'actions, fixe quand le corps défile. */
|
|
63
|
+
pied?: ReactNode;
|
|
64
|
+
/** `normale` pour une fiche, `large` pour un document à lire. */
|
|
65
|
+
largeur?: 'normale' | 'large';
|
|
66
|
+
/** Vrai par défaut : dialogue modal, page voilée et figée. Faux : la page
|
|
67
|
+
* reste utilisable derrière (passer d'une pièce à l'autre d'une liste sans
|
|
68
|
+
* refermer). Échap ferme dans les deux cas. */
|
|
69
|
+
voile?: boolean;
|
|
70
|
+
/** `nu` : corps sans marge, pour un document bord à bord (PDF, image). */
|
|
71
|
+
corps?: 'normal' | 'nu';
|
|
72
|
+
className?: string;
|
|
73
|
+
children?: ReactNode;
|
|
74
|
+
}
|
|
75
|
+
/** Panneau latéral DROIT, à toutes les largeurs : un contenu qu'on consulte
|
|
76
|
+
* à côté d'une liste (un document, une fiche). Ne remplace ni le tiroir,
|
|
77
|
+
* qui est la navigation mobile, ni la modale, qui interrompt pour une
|
|
78
|
+
* décision. Reste monté fermé, comme le tiroir, pour glisser dehors. */
|
|
79
|
+
export declare function Volet({ ouvert, onClose, titre, label, actions, pied, largeur, voile, corps, className, children, ...reste }: VoletProps): import("react").JSX.Element;
|
|
54
80
|
/** Le conteneur ne capte RIEN : seules les notifications le font, sans quoi
|
|
55
81
|
* une colonne invisible bloquerait les clics dans tout le coin de l'écran. */
|
|
56
82
|
export declare function Toasts({ className, ...reste }: Div & {
|
package/dist/overlays.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overlays.d.ts","sourceRoot":"","sources":["../react/overlays.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGjE,KAAK,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,WAAW,CAAC,CAAA;AAK5D,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB;gBACY;IACZ,OAAO,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IACvC;oEACgE;IAChE,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED;;;YAGY;AACZ,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAiB,EAAE,EAAE,iBAAiB,QAwD5F;AAID;qDACqD;AACrD,wBAAgB,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,+BAE1E;AAID,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC;IACrD,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wEAAwE;IACxE,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAED;;;sBAGsB;AACtB,wBAAgB,MAAM,CAAC,EACrB,MAAM,EACN,OAAO,EACP,KAAoB,EACpB,SAAS,EACT,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,WAAW,+BAqBb;AAID,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC;IACpD,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,iEAAiE;IACjE,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB;2CACuC;IACvC,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB;+EAC2E;IAC3E,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAED,wBAAgB,KAAK,CAAC,EACpB,MAAM,EACN,OAAO,EACP,KAAK,EACL,OAAO,EACP,IAAI,EACJ,MAAM,EACN,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,UAAU,sCA+BZ;AAID;+EAC+E;AAC/E,wBAAgB,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,+BAS3E;AAED,MAAM,WAAW,UAAW,SAAQ,GAAG;IACrC,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;mEAEmE;AACnE,wBAAgB,KAAK,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,+BAE7D"}
|
|
1
|
+
{"version":3,"file":"overlays.d.ts","sourceRoot":"","sources":["../react/overlays.tsx"],"names":[],"mappings":"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"}
|
package/dist/overlays.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
// Enrobages : voile, tiroir, modale, notification flottante.
|
|
3
|
+
// Enrobages : voile, tiroir, volet, modale, notification flottante.
|
|
4
4
|
//
|
|
5
5
|
// SEUL fichier du paquet marqué « use client », avec un hook. Tout ce qui vit
|
|
6
6
|
// ici vole le regard à la page : il faut une touche Échap, un piège de focus
|
|
@@ -99,6 +99,18 @@ export function Modal({ ouvert, onClose, titre, actions, pied, danger, className
|
|
|
99
99
|
return null;
|
|
100
100
|
return (_jsxs("div", { role: "dialog", "aria-modal": "true", "aria-label": typeof titre === 'string' ? titre : undefined, className: cx('zv-modal', 'zv-modal--open', danger && 'zv-modal--danger', className), ...reste, children: [_jsx("div", { className: "zv-scrim", onClick: fermer, "aria-hidden": "true" }), _jsxs("div", { className: "zv-modal__panel", ref: panneau, children: [(titre || actions) && (_jsxs("div", { className: "zv-modal__head", children: [titre && _jsx("h2", { className: "zv-modal__title", children: titre }), actions] })), _jsx("div", { className: "zv-modal__body", children: children }), pied && _jsx("div", { className: "zv-modal__foot", children: pied })] })] }));
|
|
101
101
|
}
|
|
102
|
+
/** Panneau latéral DROIT, à toutes les largeurs : un contenu qu'on consulte
|
|
103
|
+
* à côté d'une liste (un document, une fiche). Ne remplace ni le tiroir,
|
|
104
|
+
* qui est la navigation mobile, ni la modale, qui interrompt pour une
|
|
105
|
+
* décision. Reste monté fermé, comme le tiroir, pour glisser dehors. */
|
|
106
|
+
export function Volet({ ouvert, onClose, titre, label, actions, pied, largeur = 'normale', voile = true, corps = 'normal', className, children, ...reste }) {
|
|
107
|
+
const panneau = useRef(null);
|
|
108
|
+
// Sans voile, la page reste à l'utilisateur : ni verrou de défilement, ni
|
|
109
|
+
// piège de focus (Tab doit pouvoir revenir à la liste). Échap ferme.
|
|
110
|
+
useOverlay({ ouvert, onClose, panneau: voile ? panneau : undefined, verrouille: voile });
|
|
111
|
+
const fermer = useCallback(() => onClose(), [onClose]);
|
|
112
|
+
return (_jsxs("div", { role: "dialog", "aria-modal": voile ? 'true' : undefined, "aria-label": label ?? (typeof titre === 'string' ? titre : undefined), "aria-hidden": !ouvert, className: cx('zv-volet', ouvert && 'zv-volet--open', largeur === 'large' && 'zv-volet--large', !voile && 'zv-volet--sans-voile', className), ...reste, children: [voile && _jsx("div", { className: "zv-scrim", onClick: fermer, "aria-hidden": "true" }), _jsxs("div", { className: "zv-volet__panel", ref: panneau, children: [(titre || actions) && (_jsxs("div", { className: "zv-volet__head", children: [titre && _jsx("h2", { className: "zv-volet__title", children: titre }), actions && _jsx("div", { className: "zv-volet__actions", children: actions })] })), _jsx("div", { className: cx('zv-volet__body', corps === 'nu' && 'zv-volet__body--nu'), children: children }), pied && _jsx("div", { className: "zv-volet__foot", children: pied })] })] }));
|
|
113
|
+
}
|
|
102
114
|
/* ─── Notification flottante ───────────────────────────────────────── */
|
|
103
115
|
/** Le conteneur ne capte RIEN : seules les notifications le font, sans quoi
|
|
104
116
|
* une colonne invisible bloquerait les clics dans tout le coin de l'écran. */
|
package/dist/overlays.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overlays.js","sourceRoot":"","sources":["../react/overlays.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,
|
|
1
|
+
{"version":3,"file":"overlays.js","sourceRoot":"","sources":["../react/overlays.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/react/catalogue.tsx
CHANGED
|
@@ -19,7 +19,7 @@ import { Button, ButtonLink, ButtonRow, LinkArrow } from './actions.js'
|
|
|
19
19
|
import {
|
|
20
20
|
Callout, Card, Check, Divider, Ent, EntText, Faq, FaqItem, Flow, FlowStep,
|
|
21
21
|
LegalPage,
|
|
22
|
-
Glass, IndexItem, IndexList, Inset, Media, MediaCoin, MediaVoile, MiniStat,
|
|
22
|
+
Glass, IndexItem, IndexList, Inset, Media, MediaCoin, MediaImg, MediaVoile, MiniStat,
|
|
23
23
|
MiniStatItem, PageErreur, Pill, Price,
|
|
24
24
|
Quote, Rows, RowsItem, Src, SrcRow, StatCard, Tag, UiPreview,
|
|
25
25
|
} from './content.js'
|
|
@@ -53,9 +53,9 @@ import {
|
|
|
53
53
|
import {
|
|
54
54
|
ChromeButton, CitePanel, Crumbs, Menu, MenuItem, Pager, PagerArrow,
|
|
55
55
|
PagerRank, PagerStep, Popover, Scroll, SideGroup, SideLink, Sidebar,
|
|
56
|
-
SidebarFoot, SidebarHead, Tabs, Topbar, TopbarTitle,
|
|
56
|
+
SidebarFoot, SidebarHead, Tabs, Topbar, TopbarBurger, TopbarLogo, TopbarTitle,
|
|
57
57
|
} from './navigation.js'
|
|
58
|
-
import { Drawer, Modal, Toast, Toasts } from './overlays.js'
|
|
58
|
+
import { Drawer, Modal, Toast, Toasts, Volet } from './overlays.js'
|
|
59
59
|
import { SelectMenu } from './select-menu.js'
|
|
60
60
|
import {
|
|
61
61
|
Band, Fade, Glyph, GridFloor, Halo, PanelNavy, SocialFrame, TextOnDark, anim,
|
|
@@ -240,6 +240,40 @@ function DemoModal() {
|
|
|
240
240
|
)
|
|
241
241
|
}
|
|
242
242
|
|
|
243
|
+
function DemoVolet() {
|
|
244
|
+
const [ouvert, setOuvert] = useState(false)
|
|
245
|
+
return (
|
|
246
|
+
<>
|
|
247
|
+
<Button variante="fantome" compact onClick={() => setOuvert(true)}>
|
|
248
|
+
Ouvrir le volet
|
|
249
|
+
</Button>
|
|
250
|
+
<Volet
|
|
251
|
+
ouvert={ouvert}
|
|
252
|
+
onClose={() => setOuvert(false)}
|
|
253
|
+
titre="Avenant n°1 au bail civil"
|
|
254
|
+
largeur="large"
|
|
255
|
+
actions={
|
|
256
|
+
<ChromeButton aria-label="Fermer" onClick={() => setOuvert(false)}>
|
|
257
|
+
×
|
|
258
|
+
</ChromeButton>
|
|
259
|
+
}
|
|
260
|
+
pied={
|
|
261
|
+
<ButtonRow>
|
|
262
|
+
<Button variante="fantome" onClick={() => setOuvert(false)}>
|
|
263
|
+
Fermer
|
|
264
|
+
</Button>
|
|
265
|
+
</ButtonRow>
|
|
266
|
+
}
|
|
267
|
+
>
|
|
268
|
+
<Body>
|
|
269
|
+
Le document se lit ici, à côté de la liste dont il vient. Sans voile, la
|
|
270
|
+
liste reste cliquable derrière et le volet suit la pièce choisie.
|
|
271
|
+
</Body>
|
|
272
|
+
</Volet>
|
|
273
|
+
</>
|
|
274
|
+
)
|
|
275
|
+
}
|
|
276
|
+
|
|
243
277
|
function DemoMotDePasse() {
|
|
244
278
|
const [visible, setVisible] = useState(false)
|
|
245
279
|
const [valeur, setValeur] = useState('cabinet-2026')
|
|
@@ -1647,11 +1681,19 @@ export const CATALOGUE: GroupeCatalogue[] = [
|
|
|
1647
1681
|
'⚠️ Elle REMPLACE la colonne sous le point de rupture : masquée au-dessus, elle n’apparaît que dans le bloc mobile du CSS. Ne jamais la conditionner en JavaScript : le serveur ne connaît pas la largeur de l’écran.',
|
|
1648
1682
|
code: `<Topbar>
|
|
1649
1683
|
<TopbarBurger aria-label="Ouvrir la navigation">☰</TopbarBurger>
|
|
1650
|
-
<TopbarLogo><img src=
|
|
1684
|
+
<TopbarLogo><img src={GLYPHES.zevra} alt="" /></TopbarLogo>
|
|
1651
1685
|
<TopbarTitle>Bibliothèque</TopbarTitle>
|
|
1652
1686
|
</Topbar>`,
|
|
1687
|
+
// ⚠️ Le burger et le logo sont MONTÉS, pas seulement cités dans le
|
|
1688
|
+
// code : un composant absent du rendu n'a aucune carte dans le kit
|
|
1689
|
+
// Claude Design, et l'agent qui code avec le paquet n'en voit jamais
|
|
1690
|
+
// le visuel. Relevé par la synchro du 02/09.
|
|
1653
1691
|
rendu: (
|
|
1654
1692
|
<Topbar style={{ display: 'flex', position: 'static' }}>
|
|
1693
|
+
<TopbarBurger aria-label="Ouvrir la navigation">☰</TopbarBurger>
|
|
1694
|
+
<TopbarLogo>
|
|
1695
|
+
<img src={GLYPHES.zevra} alt="" style={{ width: 22, height: 22 }} />
|
|
1696
|
+
</TopbarLogo>
|
|
1655
1697
|
<TopbarTitle>Bibliothèque</TopbarTitle>
|
|
1656
1698
|
</Topbar>
|
|
1657
1699
|
),
|
|
@@ -1789,6 +1831,17 @@ export const CATALOGUE: GroupeCatalogue[] = [
|
|
|
1789
1831
|
</Drawer>`,
|
|
1790
1832
|
rendu: <DemoDrawer />,
|
|
1791
1833
|
},
|
|
1834
|
+
{
|
|
1835
|
+
id: 'volet',
|
|
1836
|
+
nom: 'Volet',
|
|
1837
|
+
resume:
|
|
1838
|
+
'Panneau latéral DROIT, à toutes les largeurs : un contenu qu’on consulte à côté d’une liste (un document, une fiche). « largeur » normale ou large, « voile » faux pour garder la page utilisable derrière, « corps="nu" » pour un document bord à bord. Ne remplace ni le tiroir (navigation mobile) ni la modale (une décision qui interrompt).',
|
|
1839
|
+
code: `<Volet ouvert={ouvert} onClose={…} titre="Avenant n°1" largeur="large"
|
|
1840
|
+
voile={false} corps="nu" actions={<ChromeButton aria-label="Fermer">×</ChromeButton>}>
|
|
1841
|
+
…
|
|
1842
|
+
</Volet>`,
|
|
1843
|
+
rendu: <DemoVolet />,
|
|
1844
|
+
},
|
|
1792
1845
|
{
|
|
1793
1846
|
id: 'modale',
|
|
1794
1847
|
nom: 'Modale',
|
|
@@ -2397,13 +2450,20 @@ export const CATALOGUE: GroupeCatalogue[] = [
|
|
|
2397
2450
|
<Media ratio="1-1" contient>
|
|
2398
2451
|
<MediaImg src={logo} alt="Zevra" />
|
|
2399
2452
|
</Media>`,
|
|
2453
|
+
// ⚠️ MediaImg est MONTÉ, pas seulement cité : sans lui le cadre est
|
|
2454
|
+
// vide et le composant n'a aucune carte dans le kit Claude Design.
|
|
2455
|
+
// Le glyphe du paquet sert d'image : il est inliné en data-URI, donc
|
|
2456
|
+
// il se résout partout, y compris dans un canvas hors du dépôt.
|
|
2400
2457
|
rendu: (
|
|
2401
2458
|
<div style={{ display: 'grid', gap: 12, gridTemplateColumns: '2fr 1fr', maxWidth: 460 }}>
|
|
2402
2459
|
<Media ratio="16-9">
|
|
2460
|
+
<MediaImg src={GLYPHES.memoire} alt="" />
|
|
2403
2461
|
<MediaVoile />
|
|
2404
2462
|
<MediaCoin>12:04</MediaCoin>
|
|
2405
2463
|
</Media>
|
|
2406
|
-
<Media ratio="1-1" contient
|
|
2464
|
+
<Media ratio="1-1" contient>
|
|
2465
|
+
<MediaImg src={GLYPHES.zevra} alt="Zevra" />
|
|
2466
|
+
</Media>
|
|
2407
2467
|
</div>
|
|
2408
2468
|
),
|
|
2409
2469
|
},
|