import React from 'react'; import { ButtonProps } from '@bigbinary/neetoui'; import Rename from './Rename.js'; interface NavLinkProps { activeClassName?: string | undefined; activeStyle?: React.CSSProperties | undefined; disabled?: boolean | undefined; exact?: boolean | undefined; strict?: boolean | undefined; isActive?: () => boolean; } type TooltipPropType = { content: string; position: string; }; type HomeButtonPropType = { tooltip: TooltipPropType; icon: React.ReactNode; }; type MenuItemPropType = { key: string; label: string; onClick?: () => void; disabled?: boolean; isDisabled?: boolean; tooltipProps?: { content: string; }; }; type MoreOptionsPropType = { isVertical?: boolean; dropdownButtonProps?: { size?: string; className?: string; }; menuItems?: MenuItemPropType[]; }; type HeaderLinkPropType = { key: string; to: string; label: string; className?: string; labelProps?: { lineHeight?: string; }; moreOptions?: MoreOptionsPropType; } & NavLinkProps; type RightActionBlockPropTypes = { isDraftBlockHidden: boolean; previewDraftUrl: string; isResetDraftButtonVisible: boolean; onResetClick: () => void; isResetting: boolean; isPublishDisabled: boolean; isPublishing: boolean; handlePublish: () => void; isPublishPreviewDisabled: boolean; previewPublishedUrl: string; isPublishButtonVisible: boolean; isResetAlertOpen: boolean; setIsResetAlertOpen: () => void; handleReset: () => void; publishAlertTitle: string; publishAlertDescription: string; publishButtonProps: ButtonProps; }; type NavigationLinkPropsType = { headerLinks: HeaderLinkPropType[]; maxVisibleLinks?: number; }; type OverflowLinksPropsType = { overflowLinks: HeaderLinkPropType[]; }; type LeftBlockPropTypes = { homeButtonProps?: HomeButtonPropType; homeUrl: string; renameProps?: Rename; children?: React.ReactNode; }; /** * * A common component to use as navigation header with support for nested dropdown menus. * * @example * * import NavigationHeader from "@bigbinary/neeto-molecules/NavigationHeader"; * * const Page = () => ( * } * rightActionBlock={ * * } * navigationLinks={ * * } * /> * ); * @endexample * To specify the content to be rendered in the left side of the * * NavigationHeader. * * @example * * import NavigationHeader from "@bigbinary/neeto-molecules/NavigationHeader"; * * const Page = () => ( * noop, * }} * /> * } * rightActionBlock={ * * } * navigationLinks={ * * } * /> * ); * @endexample * To specify the content to be rendered at the center of the NavigationHeader. * * Each object in the headerLinks array can have the following properties: * * @example * * import NavigationHeader from "@bigbinary/neeto-molecules/NavigationHeader"; * * const Page = () => ( * console.log("Settings clicked") * }, * { * key: "preferences", * label: "Preferences", * disabled: true, * tooltipProps: { * content: "This feature is coming soon" * } * } * ] * } * }, * ]} * maxVisibleLinks={3} * /> * } * rightActionBlock={ * * } * leftActionBlock={} * /> * ); * @endexample * To specify the content to be rendered in the right side of the * * NavigationHeader * * @example * * import NavigationHeader from "@bigbinary/neeto-molecules/NavigationHeader"; * * const Page = () => ( * * } * navigationLinks={ * * } * leftActionBlock={} * /> * ); * @endexample */ declare const NavigationHeader: React.FC<{ leftActionBlock?: React.ReactNode; navigationLinks?: React.ReactNode; rightActionBlock?: React.ReactNode; }> & { RightActionBlock: React.FC; NavigationLinks: React.FC; LeftActionBlock: React.FC; OverflowLinks: React.FC; }; export { NavigationHeader as default };