@lobehub/ui
Version:
Lobe UI is an open-source UI component library for building AIGC web apps
55 lines • 2.06 kB
text/typescript
import { CenterProps } from "../../Flex/type.mjs";
import "../../Flex/index.mjs";
import { IconProps, IconSizeConfig, IconSizeType, LucideIconProps } from "../../Icon/type.mjs";
import "../../Icon/index.mjs";
import { TooltipProps } from "../Tooltip/type.mjs";
import "../Tooltip/index.mjs";
import { CSSProperties, ReactNode, Ref } from "react";
//#region src/base-ui/ActionIcon/type.d.ts
interface ActionIconSizeConfig extends IconSizeConfig {
blockSize?: number | string;
borderRadius?: number | string;
}
type ActionIconSize = number | IconSizeType | ActionIconSizeConfig;
type ActionIconVariant = 'borderless' | 'filled' | 'outlined';
type ActionIconOutdent = boolean | 'start' | 'end';
interface ActionIconClassNames {
icon?: string;
root?: string;
}
interface ActionIconStyles {
icon?: CSSProperties;
root?: CSSProperties;
}
interface BaseActionIconOwnProps extends Partial<LucideIconProps>, Omit<CenterProps, 'title' | 'children'> {
active?: boolean;
classNames?: ActionIconClassNames;
danger?: boolean;
disabled?: boolean;
glass?: boolean;
icon?: IconProps['icon'] | ReactNode;
loading?: boolean;
ref?: Ref<HTMLButtonElement>;
shadow?: boolean;
size?: ActionIconSize;
spin?: boolean;
styles?: ActionIconStyles;
title?: TooltipProps['title'];
tooltipProps?: Omit<TooltipProps, 'children' | 'title'>;
}
type BorderlessOutdentProps<V extends ActionIconVariant> = [V] extends ['borderless'] ? {
/**
* Cancels this size's icon inset (half of block − glyph) with a negative
* margin so a borderless ActionIcon lines up with adjacent copy. `true` /
* `'start'` outdent the start edge; `'end'` outdents the end edge.
*/
outdent?: ActionIconOutdent;
variant?: V;
} : {
outdent?: never;
variant?: V;
};
type ActionIconProps<V extends ActionIconVariant = ActionIconVariant> = BaseActionIconOwnProps & BorderlessOutdentProps<V>;
//#endregion
export { ActionIconClassNames, ActionIconOutdent, ActionIconProps, ActionIconSize, ActionIconStyles, ActionIconVariant };
//# sourceMappingURL=type.d.mts.map