import type MagicString from 'magic-string'; import type { Snippet } from 'svelte'; import type { ClassNameType, IdElementType, KitClassNameType, KitStylePropertiesType, PropValue, SStyleProp, StylePropertiesType } from './'; import type { ClassValue } from 'svelte/elements'; export interface useStylesProps { styleAttr?: string; sStyle?: SStyleProp; styleProps?: Record; } export interface Base { id?: IdElementType; class?: ClassNameType; style?: StylePropertiesType; 's-class'?: KitClassNameType; 's-style'?: KitStylePropertiesType; [key: string]: any; } export interface Component extends Base { children?: Snippet; } export type KitComponentScan = { code: string; changed: boolean; magic: MagicString; importedComponents: Map; }; export type ComponentInfo = { name: string; ref: string; direct?: boolean; }; export interface ComponentAttrs { /** For the class attribute of the element: Svelte applies clsx (strings, arrays, objects) */ class: ClassValue; style: string; rest: Record; }