import { CSSProperties, FC, SVGProps } from 'react'; import { ButtonProps } from '../components'; export type { FocusableElement } from 'tabbable'; export type ButtonAppearance = "primary" | "secondary" | "ghost" | "danger" | "danger-secondary"; export type OnCloseProps = { /** * Called when the component is closed. If supplied, a close button will be rendered. * @returns void */ onClose?: ButtonProps["onClick"]; }; type Copy = Pick; export type DisableCloseOnEscapeOrClickProps = { /** * Determines whether to disable pressing "escape" to close the component. * @default false */ disableCloseOnEscape?: boolean; /** * Determines whether to disable clicking outside of the component to close it. * @default false */ disableCloseOnClickOutside?: boolean; }; export type GapSize = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | "0" | "half" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "11" | "12" | "13" | "14"; export type LayoutUtilProps = { flex?: CSSProperties["flex"]; flexDirection?: CSSProperties["flexDirection"]; flexGrow?: CSSProperties["flexGrow"]; flexShrink?: CSSProperties["flexShrink"]; flexBasis?: CSSProperties["flexBasis"]; order?: CSSProperties["order"]; gridArea?: CSSProperties["gridArea"]; gridColumn?: CSSProperties["gridColumn"]; gridRow?: CSSProperties["gridRow"]; gridColumnStart?: CSSProperties["gridColumnStart"]; gridColumnEnd?: CSSProperties["gridColumnEnd"]; gridRowStart?: CSSProperties["gridRowStart"]; gridRowEnd?: CSSProperties["gridRowEnd"]; alignSelf?: CSSProperties["alignSelf"]; justifySelf?: CSSProperties["justifySelf"]; alignItems?: CSSProperties["alignItems"]; justifyItems?: CSSProperties["justifyItems"]; alignContent?: CSSProperties["alignContent"]; justifyContent?: CSSProperties["justifyContent"]; placeItems?: CSSProperties["placeItems"]; placeContent?: CSSProperties["placeContent"]; placeSelf?: CSSProperties["placeSelf"]; gap?: GapSize; rowGap?: GapSize; columnGap?: GapSize; sm?: Omit; md?: Omit; lg?: Omit; xl?: Omit; xxl?: Omit; }; export type RequiredByKeys = Copy<{ [P in keyof T as P extends K ? P : never]-?: T[P]; } & { [P in keyof T as P extends K ? never : P]: T[P]; }>; export type SemanticColor = "primary" | "secondary" | "critical" | "warning"; export type Size = "0" | "xsmall" | "small" | "medium" | "large" | "xlarge"; export type Status = "info" | "success" | "warning" | "danger"; export type Svg = FC>; /** * Represents the state of a checkbox-style selection. * Used by SelectField, MultiSelectField, and similar components. */ export type CheckState = "indeterminate" | "loading" | "checked" | "unchecked";