@zevra/ui 0.38.1 → 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.
@@ -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,wl1RAAwl1R,CAAA;AAE3n1R;;;yBAGyB;AACzB,MAAM,CAAC,MAAM,WAAW,GAAW,y3BAAy3B,CAAA"}
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"}
@@ -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 & {
@@ -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. */
@@ -1 +1 @@
1
- {"version":3,"file":"overlays.js","sourceRoot":"","sources":["../react/overlays.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overlays.js","sourceRoot":"","sources":["../react/overlays.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zevra/ui",
3
- "version": "0.38.1",
3
+ "version": "0.39.0",
4
4
  "description": "Design system Zevra « Encre & Papier » : tokens, CSS des composants et logos officiels.",
5
5
  "license": "UNLICENSED",
6
6
  "private": false,
@@ -55,7 +55,7 @@ import {
55
55
  PagerRank, PagerStep, Popover, Scroll, SideGroup, SideLink, Sidebar,
56
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')
@@ -1797,6 +1831,17 @@ export const CATALOGUE: GroupeCatalogue[] = [
1797
1831
  </Drawer>`,
1798
1832
  rendu: <DemoDrawer />,
1799
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
+ },
1800
1845
  {
1801
1846
  id: 'modale',
1802
1847
  nom: 'Modale',