import type { VNode } from 'vue'; import type { AppConfig } from '@nuxt/schema'; import theme from '#build/b24ui/page-card'; import type { IconComponent, LinkProps, AvatarProps } from '../types'; import type { ComponentConfig } from '../types/tv'; type PageCard = ComponentConfig; /** * @memo not use spotlight * @memo not use spotlightColor */ export interface PageCardProps { /** * The element or component this component should render as. * @defaultValue 'div' */ as?: any; /** * The icon displayed above the title. Takes precedence over `avatar` — when both * are set, only the plain icon is rendered. * @IconComponent */ icon?: IconComponent; /** * Render a `B24Avatar` in the leading position. Ignored when `icon` is set. * Avatar size falls back to the theme's `leadingAvatarSize` slot. */ avatar?: AvatarProps; title?: string; description?: string; /** * The orientation of the page card. * @defaultValue 'vertical' */ orientation?: PageCard['variants']['orientation']; /** * Reverse the order of the default slot. * @defaultValue false */ reverse?: boolean; /** * Display a line around the page card. */ highlight?: boolean; /** * @defaultValue 'air-primary' */ highlightColor?: PageCard['variants']['highlightColor']; /** * @defaultValue 'outline' */ variant?: PageCard['variants']['variant']; to?: LinkProps['to']; target?: LinkProps['target']; onClick?: (event: MouseEvent) => void | Promise; class?: any; b24ui?: PageCard['slots']; } export interface PageCardSlots { header?(props?: {}): VNode[]; body?(props?: {}): VNode[]; leading?(props: { b24ui: PageCard['b24ui']; }): VNode[]; title?(props?: {}): VNode[]; description?(props?: {}): VNode[]; footer?(props?: {}): VNode[]; default?(props?: {}): VNode[]; } declare const _default: typeof __VLS_export; export default _default; declare const __VLS_export: __VLS_WithSlots & Readonly<{}>, { orientation: PageCard["variants"]["orientation"]; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, PageCardSlots>; type __VLS_WithSlots = T & { new (): { $slots: S; }; };