import { type ReactNode } from 'react'; import { type IconButtonProps } from '../IconButton'; import { type ResponsiveSlot } from '../types/responsive'; type MainNavigationButtonProps = { /** * The handler to be called when the main navigation button is clicked. */ onClick: IconButtonProps['onClick']; /** * The accessible label to specify how you want the main navigation button to be recognized and read by screen readers. * This prop is required. * * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-label * * @example * ```jsx * * * // The button will be described as "ナビゲーションを開く" by screen readers. * ``` */ 'aria-label': IconButtonProps['aria-label']; }; export type GlobalHeaderProps = { /** * The class name of the global header. */ className?: string; /** * The properties of the main navigation button. * * If this value is provided, the main navigation button is displayed on the left side of the global header. */ mainNavigationButtonProps?: MainNavigationButtonProps; /** * Elements to be displayed on the applications menu slot area where the left side of the global header. * This slot is displayed when the viewport width is the breakpoint or larger. * * This element must be an applications dropdown menu as defined in Figma. */ applicationsMenuSlot?: ReactNode; /** * Elements to be displayed on the logo area where the left side of the global header. * * If the viewport width is smaller than the breakpoint, the narrowViewport value is displayed, otherwise the base value is displayed. */ logoSlot: ResponsiveSlot; /** * Elements to be displayed on the right side of the global header. * * If the viewport width is smaller than the breakpoint, the narrowViewport value is displayed, otherwise the base value is displayed. */ rightPaneSlot: ResponsiveSlot; /** * Whether to disable the responsive behavior. * * If this property is set to `true`, the main navigation button and the * narrow viewport layout will not be displayed. * * @default false */ disableResponsive?: boolean; }; export {};