@codegouvfr/react-dsfr
Version:
French State Design System React integration library
40 lines (39 loc) • 1.39 kB
TypeScript
import React, { type ReactNode, type CSSProperties } from "react";
import type { RegisteredLinkProps } from "./link";
export type SideMenuProps = {
id?: string;
title?: ReactNode;
className?: string;
style?: CSSProperties;
align?: "left" | "right";
items: SideMenuProps.Item[];
burgerMenuButtonText: ReactNode;
/** Default: false */
sticky?: boolean;
/** Default: false, only relevent when sticky */
fullHeight?: boolean;
classes?: Partial<Record<"root" | "inner" | "title" | "list" | "item" | "link" | "button", string>>;
};
export declare namespace SideMenuProps {
type Item = Item.Link | Item.SubMenu;
namespace Item {
type Common = {
text: ReactNode;
/** Default: false */
isActive?: boolean;
};
export type Link = Common & {
linkProps: RegisteredLinkProps;
};
export type SubMenu = Common & {
items: Item[];
/** Default: false */
expandedByDefault?: boolean;
linkProps?: RegisteredLinkProps;
};
export {};
}
}
/** @see <https://components.react-dsfr.codegouv.studio/?path=/docs/components-sidemenu> */
export declare const SideMenu: React.MemoExoticComponent<React.ForwardRefExoticComponent<SideMenuProps & React.RefAttributes<HTMLDivElement>>>;
export default SideMenu;