UNPKG

@eslamdevui/ui

Version:

A UI Library for Modern Web Apps, powered by Vue & Tailwind CSS.

60 lines (59 loc) 2.12 kB
import theme from '#build/ui/blog-post'; import type { AppConfig } from '@nuxt/schema'; import type { BadgeProps, LinkProps, ComponentConfig, UserProps } from '../types'; type BlogPost = ComponentConfig<typeof theme, AppConfig, 'blogPost'>; export interface BlogPostProps { /** * The element or component this component should render as. * @defaultValue 'article' */ as?: any; title?: string; description?: string; /** The date of the blog post. Can be a string or a Date object. */ date?: string | Date; /** * Display a badge on the blog post. * Can be a string or an object. * `{ color: 'neutral', variant: 'subtle' }`{lang="ts-type"} */ badge?: string | BadgeProps; /** The authors of the blog post. */ authors?: UserProps[]; /** The image of the blog post. Can be a string or an object. */ image?: string | Partial<HTMLImageElement>; /** * The orientation of the blog post. * @defaultValue 'vertical' */ orientation?: BlogPost['variants']['orientation']; /** * @defaultValue 'outline' */ variant?: BlogPost['variants']['variant']; to?: LinkProps['to']; target?: LinkProps['target']; onClick?: (event: MouseEvent) => void | Promise<void>; class?: any; ui?: BlogPost['slots']; } export interface BlogPostSlots { date(props?: {}): any; badge(props?: {}): any; title(props?: {}): any; description(props?: {}): any; authors(props?: {}): any; header(props?: {}): any; body(props?: {}): any; footer(props?: {}): any; } declare const _default: __VLS_WithSlots<import("vue").DefineComponent<BlogPostProps, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<BlogPostProps> & Readonly<{}>, { as: any; orientation: BlogPost["variants"]["orientation"]; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, BlogPostSlots>; export default _default; type __VLS_WithSlots<T, S> = T & { new (): { $slots: S; }; };