@oslokommune/punkt-elements
Version:
Komponentbiblioteket til Punkt, et designsystem laget av Oslo Origo
60 lines (59 loc) • 2.72 kB
TypeScript
import { PktIconName } from '@oslokommune/punkt-assets/dist/icons/icon';
import { booleanishConverter, Booleanish, User as SharedUser, Representing as SharedRepresenting, UserMenuItem as SharedUserMenuItem, TInternalMenuItem as SharedTInternalMenuItem, TSlotMenuVariant, THeaderMenu, TLogOutButtonPlacement, THeaderPosition, THeaderScrollBehavior } from '../../shared-types';
export type { Booleanish, TSlotMenuVariant, THeaderMenu, TLogOutButtonPlacement, THeaderPosition, THeaderScrollBehavior, };
export { booleanishConverter };
export type User = SharedUser;
export type Representing = SharedRepresenting;
export type UserMenuItem = SharedUserMenuItem<PktIconName>;
export type TInternalMenuItem = SharedTInternalMenuItem<PktIconName>;
/**
* Helper to convert UserMenuItem (with target) to internal format
*/
export declare const convertUserMenuItem: (item: UserMenuItem) => TInternalMenuItem;
/**
* Interface for the Header component props
*/
export interface IPktHeader {
/** Hide the Oslo logo */
hideLogo?: Booleanish;
/** Logo link URL */
logoLink?: string;
/** Service name displayed in the header */
serviceName?: string;
/** Service link URL */
serviceLink?: string;
/** Use compact header height */
compact?: Booleanish;
/** Header position. 'fixed' fixes to top of viewport, 'relative' follows document flow. Default: 'fixed' */
position?: THeaderPosition;
/** Scroll behavior. 'hide' hides header on scroll down, 'none' keeps it visible. Default: 'hide' */
scrollBehavior?: THeaderScrollBehavior;
/** User object for logged-in user */
user?: User;
/** User menu items */
userMenu?: UserMenuItem[];
/** Representation object */
representing?: Representing;
/** Allow user to change representation */
canChangeRepresentation?: Booleanish;
/** Logout button placement */
logOutButtonPlacement?: TLogOutButtonPlacement;
/** Whether there's a logout handler attached (required for logout button to show) */
hasLogOut?: Booleanish;
/** Show search field */
showSearch?: Booleanish;
/** Search field placeholder */
searchPlaceholder?: string;
/** Controlled search value */
searchValue?: string;
/** Custom breakpoint for responsive behavior in pixels. Default: 1024 */
mobileBreakpoint?: number;
/** Custom breakpoint for tablet responsive behavior in pixels. Default: 1280 */
tabletBreakpoint?: number;
/** Which menu is initially open */
openedMenu?: THeaderMenu;
/** Variant for the slot menu button. Default: 'icon-only' */
slotMenuVariant?: TSlotMenuVariant;
/** Text for the slot menu button. Default: 'Meny' */
slotMenuText?: string;
}