UNPKG

fanyucomponents

Version:

一款以 純邏輯為核心、無樣式綁定 的 React 元件套件

26 lines (25 loc) 1.51 kB
import { alignOption, directionOption, stateOption } from "./Options"; /** 分配性的省略屬性 (用於聯集型態)*/ export type DistributiveOmit<T, K extends keyof any> = T extends any ? Omit<T, K> : never; /** 用於重載同名屬性(用於覆蓋類型 T 中與類型 P 相同名稱的屬性,並保留其餘屬性*/ export type OverrideProps<T, P> = DistributiveOmit<T, keyof P> & P; /** 支援元件型別 (可複寫屬性)*/ export type AsComponentProps<Component extends React.ElementType, PermanentProps extends object = {}> = OverrideProps<React.ComponentProps<Component>, { /** 指定用於渲染的 React 元件(可為任意元件*/ as?: Component; } & PermanentProps>; /** Flex 排版對齊選項*/ export type flexAlignProps = { direction?: directionOption; mainAlign?: alignOption; crossAlign?: alignOption; }; export type StateStylesProps = Partial<Record<stateOption, React.CSSProperties>>; /** 圖標屬性(包括圖標和位置*/ export type IconProps = { icon?: React.ReactNode; iconPosition?: "left" | "right"; }; export declare const onEventHandlerKeys: readonly ["onClick", "onMouseDown", "onMouseUp", "onMouseOver", "onMouseOut", "onMouseMove", "onMouseEnter", "onMouseLeave", "onPointerEnter", "onPointerLeave", "onPointerMove", "onPointerDown", "onPointerUp", "onBlur", "onFocus", "onKeyDown", "onKeyUp"]; export type onEventHandlerKey = (typeof onEventHandlerKeys)[number]; export type onEventHandler = ((...arg: any[]) => void) | undefined;