70 lines
1.6 KiB
TypeScript
70 lines
1.6 KiB
TypeScript
import {
|
|
type ActionRow,
|
|
type Button,
|
|
type ChannelSelectMenu,
|
|
type MentionableSelectMenu,
|
|
type PartialEmoji,
|
|
type RoleSelectMenu,
|
|
type StringSelectMenu,
|
|
type TextInput,
|
|
type UserSelectMenu,
|
|
type LabelComponent,
|
|
type ContainerComponent,
|
|
type TextDisplayComponent,
|
|
type SectionComponent,
|
|
type MediaGalleryComponent,
|
|
type SeparatorComponent,
|
|
type FileComponent,
|
|
type InteractionButton,
|
|
type URLButton,
|
|
type PremiumButton,
|
|
type ThumbnailComponent,
|
|
} from '@projectdysnomia/dysnomia';
|
|
|
|
export type Component =
|
|
| ActionRow
|
|
| Button
|
|
| StringSelectMenu
|
|
| UserSelectMenu
|
|
| RoleSelectMenu
|
|
| MentionableSelectMenu
|
|
| ChannelSelectMenu
|
|
| TextInput
|
|
| LabelComponent
|
|
| ContainerComponent
|
|
| TextDisplayComponent
|
|
| SectionComponent
|
|
| MediaGalleryComponent
|
|
| SeparatorComponent
|
|
| FileComponent
|
|
| InteractionButton
|
|
| URLButton
|
|
| PremiumButton
|
|
| ThumbnailComponent;
|
|
|
|
export type Element = Component | Promise<Component>;
|
|
|
|
export interface ElementClass {
|
|
render: any;
|
|
}
|
|
|
|
export interface ElementAttributesProperty {
|
|
props: {};
|
|
}
|
|
|
|
export interface IntrinsicElements {
|
|
// Allow any element, but prefer known elements
|
|
// [elemName: string]: any;
|
|
// Known elements (forcing re-parse)
|
|
actionRow: { children: any | any[] };
|
|
button: {
|
|
label: string;
|
|
customId: string;
|
|
style: number;
|
|
emoji?: PartialEmoji;
|
|
disabled?: boolean;
|
|
};
|
|
container: { color?: string; accent?: number; spoiler?: boolean; children: any | any[] };
|
|
textDisplay: { content: string };
|
|
}
|