svelte-ux
Version:
A large collection of Svelte components, actions, stores and utils to simplify creating highly interactive and visual applications. Built using Tailwind with extensibility and customization in mind.
65 lines (56 loc) • 1.3 kB
TypeScript
// See: https://github.com/carbon-design-system/sveld/blob/main/src/ComponentParser.ts#L26
// See: https://github.com/mattjennings/vite-plugin-sveld/blob/main/types.d.ts
interface SveldProp {
name: string;
kind: 'let' | 'const' | 'function';
constant: boolean;
type?: string;
value?: any;
description?: string;
isFunction: boolean;
isFunctionDeclaration: boolean;
isRequired: boolean;
reactive: boolean;
}
interface SveldSlot {
name?: string;
default: boolean;
fallback?: string;
slot_props?: string;
description?: string;
}
interface ForwardedEvent {
type: 'forwarded';
name: string;
element: ComponentInlineElement | ComponentElement;
}
interface DispatchedEvent {
type: 'dispatched';
name: string;
detail?: any;
description?: string;
}
type SvelteEvent = ForwardedEvent | DispatchedEvent;
interface SveldRestProps {
type: 'InlineComponent' | 'Element';
name: string;
}
interface SveldTypedefs {
type: string;
name: string;
description?: string;
ts: string;
}
interface SveldJson {
props: SveldProp[];
slots: SveldSlot[];
events: SveldEvent[];
typedefs: SveldTypedefs[];
rest_props: SveldRestProps;
moduleExports: SveldProp[];
componentComment?: string;
extends?: {
interface: string;
import: string;
};
}