UNPKG

naive-ui

Version:

A Vue 3 Component Library. Fairly Complete, Theme Customizable, Uses TypeScript, Fast

259 lines (258 loc) 11 kB
import type { Ref, VNodeChild } from 'vue'; import type { CNode } from 'css-render'; import type { AlertTheme } from '../../alert/styles'; import type { AnchorTheme } from '../../anchor/styles'; import type { AutoCompleteTheme } from '../../auto-complete/styles'; import type { AvatarTheme } from '../../avatar/styles'; import type { AvatarGroupTheme } from '../../avatar-group/styles'; import type { BackTopTheme } from '../../back-top/styles'; import type { BadgeTheme } from '../../badge/styles'; import type { BreadcrumbTheme } from '../../breadcrumb/styles'; import type { ButtonTheme } from '../../button/styles'; import type { CalendarTheme } from '../../calendar/styles'; import type { CardTheme } from '../../card/styles'; import type { CarouselTheme } from '../../carousel/styles'; import type { CascaderTheme } from '../../cascader/styles'; import type { CheckboxTheme } from '../../checkbox/styles'; import type { CodeTheme } from '../../code/styles'; import type { CollapseTheme } from '../../collapse/styles'; import type { ColorPickerTheme } from '../../color-picker/styles'; import type { DataTableTheme } from '../../data-table/styles'; import type { DatePickerTheme } from '../../date-picker/styles'; import type { DescriptionsTheme } from '../../descriptions/styles'; import type { DialogTheme } from '../../dialog/styles'; import type { DividerTheme } from '../../divider/styles'; import type { DrawerTheme } from '../../drawer/styles'; import type { DropdownTheme } from '../../dropdown/styles'; import type { DynamicInputTheme } from '../../dynamic-input/styles'; import type { DynamicTagsTheme } from '../../dynamic-tags/styles'; import type { ElementTheme } from '../../element/styles'; import type { EllipsisTheme } from '../../ellipsis/styles'; import type { EmptyTheme } from '../../empty/styles'; import type { EquationTheme } from '../../equation/styles'; import type { FormTheme } from '../../form/styles'; import type { FloatButtonTheme } from '../../float-button/styles'; import type { GradientTextTheme } from '../../gradient-text/styles'; import type { IconTheme } from '../../icon/styles'; import type { IconWrapperTheme } from '../../icon-wrapper/styles'; import type { ImageTheme } from '../../image/styles'; import type { InputTheme } from '../../input/styles'; import type { InputNumberTheme } from '../../input-number/styles'; import type { LayoutTheme } from '../../layout/styles'; import type { LegacyTransferTheme } from '../../legacy-transfer/styles'; import type { ListTheme } from '../../list/styles'; import type { LoadingBarTheme } from '../../loading-bar/styles'; import type { LogTheme } from '../../log/styles'; import type { MenuTheme } from '../../menu/styles'; import type { MentionTheme } from '../../mention/styles'; import type { MessageTheme } from '../../message/styles'; import type { ModalTheme } from '../../modal/styles'; import type { NotificationTheme } from '../../notification/styles'; import type { PageHeaderTheme } from '../../page-header/styles'; import type { PaginationTheme } from '../../pagination/styles'; import type { PopconfirmTheme } from '../../popconfirm/styles'; import type { PopoverTheme } from '../../popover/styles'; import type { PopselectTheme } from '../../popselect/styles'; import type { ProgressTheme } from '../../progress/styles'; import type { QrCodeTheme } from '../../qr-code/styles'; import type { RadioTheme } from '../../radio/styles'; import type { RateTheme } from '../../rate/styles'; import type { ResultTheme } from '../../result/styles'; import type { ScrollbarTheme } from '../../_internal/scrollbar/styles'; import type { SelectTheme } from '../../select/styles'; import type { SkeletonTheme } from '../../skeleton/styles'; import type { SliderTheme } from '../../slider/styles'; import type { SpaceTheme } from '../../space/styles'; import type { SpinTheme } from '../../spin/styles'; import type { StatisticTheme } from '../../statistic/styles'; import type { StepsTheme } from '../../steps/styles'; import type { SwitchTheme } from '../../switch/styles'; import type { TableTheme } from '../../table/styles'; import type { TabsTheme } from '../../tabs/styles'; import type { TagTheme } from '../../tag/styles'; import type { ThingTheme } from '../../thing/styles'; import type { TimePickerTheme } from '../../time-picker/styles'; import type { TimelineTheme } from '../../timeline/styles'; import type { TooltipTheme } from '../../tooltip/styles'; import type { TransferTheme } from '../../transfer/styles'; import type { TreeTheme } from '../../tree/styles'; import type { TreeSelectTheme } from '../../tree-select/styles'; import type { TypographyTheme } from '../../typography/styles'; import type { UploadTheme } from '../../upload/styles'; import type { WatermarkTheme } from '../../watermark/styles'; import type { InternalSelectMenuTheme } from '../../_internal/select-menu/styles'; import type { InternalSelectionTheme } from '../../_internal/selection/styles'; import type { NDateLocale, NLocale } from '../../locales'; import type { Hljs } from '../../_mixins'; import type { Size as TimePickerSize } from '../../time-picker/src/interface'; import type { Size as InputSize } from '../../input/src/interface'; import type { Size as SelectSize } from '../../select/src/interface'; import type { Size as ButtonSize } from '../../button/src/interface'; import type { DataTableRenderFilter, DataTableRenderSorter } from '../../data-table'; import type { IconPlacement } from '../../dialog/src/interface'; import type { EmptyProps } from '../../empty'; import type { CollapseTransitionTheme } from '../../collapse-transition/styles'; import type { ButtonGroupTheme } from '../../button-group/styles/light'; import type { RowTheme } from '../../legacy-grid/styles'; import type { SplitTheme } from '../../split/styles'; import type { FlexTheme } from '../../flex/styles'; import type { FloatButtonGroupTheme } from '../../float-button-group/styles'; import type { Katex } from './katex'; import type { GlobalTheme, GlobalThemeOverrides } from './interface'; export interface GlobalThemeWithoutCommon { Alert?: AlertTheme; Anchor?: AnchorTheme; AutoComplete?: AutoCompleteTheme; Avatar?: AvatarTheme; AvatarGroup?: AvatarGroupTheme; BackTop?: BackTopTheme; Badge?: BadgeTheme; Breadcrumb?: BreadcrumbTheme; Button?: ButtonTheme; ButtonGroup?: ButtonGroupTheme; Calendar?: CalendarTheme; Card?: CardTheme; Carousel?: CarouselTheme; Cascader?: CascaderTheme; Checkbox?: CheckboxTheme; Code?: CodeTheme; Collapse?: CollapseTheme; CollapseTransition?: CollapseTransitionTheme; ColorPicker?: ColorPickerTheme; DataTable?: DataTableTheme; DatePicker?: DatePickerTheme; Descriptions?: DescriptionsTheme; Dialog?: DialogTheme; Divider?: DividerTheme; Drawer?: DrawerTheme; Dropdown?: DropdownTheme; DynamicInput?: DynamicInputTheme; DynamicTags?: DynamicTagsTheme; Element?: ElementTheme; Ellipsis?: EllipsisTheme; Empty?: EmptyTheme; Equation?: EquationTheme; Flex?: FlexTheme; Form?: FormTheme; FloatButton?: FloatButtonTheme; FloatButtonGroup?: FloatButtonGroupTheme; GradientText?: GradientTextTheme; Icon?: IconTheme; IconWrapper?: IconWrapperTheme; Image?: ImageTheme; Input?: InputTheme; InputNumber?: InputNumberTheme; Layout?: LayoutTheme; LegacyTransfer?: LegacyTransferTheme; List?: ListTheme; LoadingBar?: LoadingBarTheme; Log?: LogTheme; Menu?: MenuTheme; Mention?: MentionTheme; Message?: MessageTheme; Modal?: ModalTheme; Notification?: NotificationTheme; PageHeader?: PageHeaderTheme; Pagination?: PaginationTheme; Popconfirm?: PopconfirmTheme; Popover?: PopoverTheme; Popselect?: PopselectTheme; Progress?: ProgressTheme; QrCode?: QrCodeTheme; Radio?: RadioTheme; Rate?: RateTheme; Result?: ResultTheme; Scrollbar?: ScrollbarTheme; Select?: SelectTheme; Skeleton?: SkeletonTheme; Slider?: SliderTheme; Space?: SpaceTheme; Spin?: SpinTheme; Statistic?: StatisticTheme; Steps?: StepsTheme; Switch?: SwitchTheme; Table?: TableTheme; Tabs?: TabsTheme; Tag?: TagTheme; Thing?: ThingTheme; TimePicker?: TimePickerTheme; Timeline?: TimelineTheme; Tooltip?: TooltipTheme; Transfer?: TransferTheme; Tree?: TreeTheme; TreeSelect?: TreeSelectTheme; Typography?: TypographyTheme; Upload?: UploadTheme; Watermark?: WatermarkTheme; Split?: SplitTheme; Row?: RowTheme; InternalSelectMenu?: InternalSelectMenuTheme; InternalSelection?: InternalSelectionTheme; } export interface GlobalComponentConfig { Pagination?: { inputSize?: InputSize; selectSize?: SelectSize; }; DatePicker?: { timePickerSize?: TimePickerSize; }; Dialog?: { iconPlacement?: IconPlacement; }; DataTable?: { renderFilter?: DataTableRenderFilter; renderSorter?: DataTableRenderSorter; }; DynamicInput?: { buttonSize?: ButtonSize; }; Empty?: Pick<EmptyProps, 'description' | 'renderIcon'>; } export interface GlobalIconConfig { attach?: () => VNodeChild; cancel?: () => VNodeChild; clear?: () => VNodeChild; close?: () => VNodeChild; date?: () => VNodeChild; download?: () => VNodeChild; error?: () => VNodeChild; info?: () => VNodeChild; retry?: () => VNodeChild; success?: () => VNodeChild; time?: () => VNodeChild; to?: () => VNodeChild; trash?: () => VNodeChild; warning?: () => VNodeChild; rotateClockwise?: () => VNodeChild; rotateCounterclockwise?: () => VNodeChild; zoomIn?: () => VNodeChild; zoomOut?: () => VNodeChild; } export interface RtlItem { name: keyof GlobalThemeWithoutCommon; style: CNode; peers?: RtlItem[]; } export type RtlProp = RtlItem[]; export type RtlEnabledState = Partial<Record<keyof GlobalThemeWithoutCommon, RtlItem>>; export type Breakpoints = Record<string, number> | undefined; export interface ConfigProviderInjection { mergedBreakpointsRef: Ref<Breakpoints | undefined>; mergedClsPrefixRef: Ref<string>; mergedBorderedRef: Ref<boolean | undefined>; mergedNamespaceRef: Ref<string | undefined>; mergedLocaleRef: Ref<NLocale | undefined>; mergedDateLocaleRef: Ref<NDateLocale | undefined>; mergedHljsRef: Ref<Hljs | undefined>; mergedKatexRef: Ref<Katex | undefined>; mergedComponentPropsRef: Ref<GlobalComponentConfig | undefined>; mergedIconsRef: Ref<GlobalIconConfig | undefined>; mergedThemeRef: Ref<GlobalTheme | undefined>; mergedThemeOverridesRef: Ref<GlobalThemeOverrides | undefined>; mergedRtlRef: Ref<RtlEnabledState | undefined>; mergedThemeHashRef: Ref<string>; inlineThemeDisabled: boolean; preflightStyleDisabled: boolean; styleMountTarget: ParentNode | undefined; }