1
import type { ComponentType } from "svelte";
2
import type { SvelteComponent } from "svelte";
4
interface ComponentImport {
5
interactive: SvelteComponent;
6
static: SvelteComponent;
7
example: SvelteComponent;
10
export interface ComponentMeta {
14
props: Record<string, unknown> & { interactive: boolean };
15
instance: SvelteComponent;
16
component: ComponentType<SvelteComponent>;
17
documentation?: Documentation;
18
children?: ComponentMeta[];
20
component_class_id: string;
23
export interface DependencyTypes {
28
export interface Payload {
31
event_data: unknown | null;
32
trigger_id: number | null;
35
export interface Dependency {
36
targets: [number, string][];
41
scroll_to_output: boolean;
42
show_progress: "full" | "minimal" | "hidden";
43
frontend_fn?: (...args: unknown[]) => Promise<unknown[]>;
45
queue: boolean | null;
46
api_name: string | null;
48
types: DependencyTypes;
49
collects_event_data: boolean;
50
pending_request?: boolean;
51
trigger_after?: number;
52
trigger_only_on_success?: boolean;
53
trigger_mode: "once" | "multiple" | "always_last";
54
final_event: Payload | null;
58
interface TypeDescription {
59
input_payload?: string;
60
response_object?: string;
64
export interface Documentation {
65
type?: TypeDescription;
66
description?: TypeDescription;
67
example_data?: string;
70
export interface LayoutNode {
72
children: LayoutNode[];
75
export type ThemeMode = "system" | "light" | "dark";