@recordair/ui-core 0.3.17 → 0.3.19

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,16 +1,19 @@
1
1
  import { type ReactNode } from "react";
2
- import { type ButtonSize, type ButtonVariant } from "./buttonStyles";
2
+ import { type ButtonShape, type ButtonSize, type ButtonVariant } from "./buttonStyles";
3
3
  type MenuButtonAlign = "start" | "end" | "stretch";
4
4
  type MenuButtonProps = {
5
5
  label: ReactNode;
6
6
  children: ReactNode;
7
7
  variant?: ButtonVariant;
8
8
  size?: ButtonSize;
9
+ shape?: ButtonShape;
9
10
  block?: boolean;
10
11
  /** Alignement du panneau sous le trigger. `stretch` = même largeur. */
11
12
  align?: MenuButtonAlign;
12
13
  /** Chevron indicateur d'ouverture après `label`. Désactiver pour un trigger icône seule (ex. avatar, burger). */
13
14
  showChevron?: boolean;
15
+ /** Trigger carré sans padding horizontal (ex. avatar seul), comme `IconButton`. */
16
+ iconOnly?: boolean;
14
17
  className?: string;
15
18
  menuClassName?: string;
16
19
  };
@@ -20,7 +23,7 @@ type MenuButtonProps = {
20
23
  * et l'ARIA. Le contenu (`children`) est arbitraire : items, formulaires, liens.
21
24
  * Le menu se ferme automatiquement après un clic sur un `button` ou un lien.
22
25
  */
23
- declare const MenuButton: ({ label, children, variant, size, block, align, showChevron, className, menuClassName, }: MenuButtonProps) => import("react").JSX.Element;
26
+ declare const MenuButton: ({ label, children, variant, size, shape, block, align, showChevron, iconOnly, className, menuClassName, }: MenuButtonProps) => import("react").JSX.Element;
24
27
  export { MenuButton };
25
28
  export type { MenuButtonAlign, MenuButtonProps };
26
29
  //# sourceMappingURL=MenuButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MenuButton.d.ts","sourceRoot":"","sources":["../src/MenuButton.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAsC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAG3E,OAAO,EAAmB,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEtF,KAAK,eAAe,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC;AAEnD,KAAK,eAAe,GAAG;IACrB,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,uEAAuE;IACvE,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,iHAAiH;IACjH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAQF;;;;;GAKG;AACH,QAAA,MAAM,UAAU,GAAI,0FAUjB,eAAe,gCAyEjB,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"MenuButton.d.ts","sourceRoot":"","sources":["../src/MenuButton.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAsC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAG3E,OAAO,EAAmB,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAExG,KAAK,eAAe,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC;AAEnD,KAAK,eAAe,GAAG;IACrB,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,uEAAuE;IACvE,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,iHAAiH;IACjH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mFAAmF;IACnF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAQF;;;;;GAKG;AACH,QAAA,MAAM,UAAU,GAAI,2GAYjB,eAAe,gCAyEjB,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC"}
@@ -15,7 +15,7 @@ const alignClasses = {
15
15
  * et l'ARIA. Le contenu (`children`) est arbitraire : items, formulaires, liens.
16
16
  * Le menu se ferme automatiquement après un clic sur un `button` ou un lien.
17
17
  */
18
- const MenuButton = ({ label, children, variant = "secondary", size = "md", block = false, align = block ? "stretch" : "start", showChevron = true, className, menuClassName, }) => {
18
+ const MenuButton = ({ label, children, variant = "secondary", size = "md", shape = "default", block = false, align = block ? "stretch" : "start", showChevron = true, iconOnly = false, className, menuClassName, }) => {
19
19
  const menuId = useId();
20
20
  const rootRef = useRef(null);
21
21
  const triggerRef = useRef(null);
@@ -47,7 +47,7 @@ const MenuButton = ({ label, children, variant = "secondary", size = "md", block
47
47
  setOpen(false);
48
48
  }
49
49
  };
50
- return (_jsxs("div", { ref: rootRef, className: classNames("relative", block && "w-full", className), children: [_jsxs("button", { ref: triggerRef, type: "button", "aria-controls": menuId, "aria-expanded": open, "aria-haspopup": "menu", onClick: () => setOpen((current) => !current), className: buttonClassName({ variant, size, block }), children: [label, showChevron ? (_jsx(ChevronDownIcon, { "aria-hidden": true, className: classNames("size-4 transition-transform", open && "rotate-180") })) : null] }), open ? (_jsx("div", { id: menuId, role: "menu", onClick: handleMenuClick, className: classNames("absolute top-full z-50 mt-2 flex flex-col gap-0.5 rounded-xl border border-neutral-200 bg-neutral-0 p-2 shadow-elevated", alignClasses[align], menuClassName), children: children })) : null] }));
50
+ return (_jsxs("div", { ref: rootRef, className: classNames("relative", block && "w-full", className), children: [_jsxs("button", { ref: triggerRef, type: "button", "aria-controls": menuId, "aria-expanded": open, "aria-haspopup": "menu", onClick: () => setOpen((current) => !current), className: buttonClassName({ variant, size, shape, block, iconOnly }), children: [label, showChevron ? (_jsx(ChevronDownIcon, { "aria-hidden": true, className: classNames("size-4 transition-transform", open && "rotate-180") })) : null] }), open ? (_jsx("div", { id: menuId, role: "menu", onClick: handleMenuClick, className: classNames("absolute top-full z-50 mt-2 flex flex-col gap-0.5 rounded-xl border border-line bg-surface-elevated p-2 text-fg-primary shadow-menu", alignClasses[align], menuClassName), children: children })) : null] }));
51
51
  };
52
52
  export { MenuButton };
53
53
  //# sourceMappingURL=MenuButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MenuButton.js","sourceRoot":"","sources":["../src/MenuButton.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MenuButton.js","sourceRoot":"","sources":["../src/MenuButton.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@recordair/ui-core",
3
- "version": "0.3.17",
3
+ "version": "0.3.19",
4
4
  "author": "Pierre-Alexandre Monneau",
5
5
  "description": "Primitives React accessibles et thémables extraites de Record'air.",
6
6
  "type": "module",