diff --git a/apps/test-bot/package.json b/apps/test-bot/package.json index a42f53aa..c598b63b 100644 --- a/apps/test-bot/package.json +++ b/apps/test-bot/package.json @@ -26,6 +26,7 @@ }, "devDependencies": { "@types/ms": "^2.1.0", + "cross-env": "^10.1.0", "tsx": "^4.7.0" } } diff --git a/apps/test-bot/src/app/commands/(general)/poll.tsx b/apps/test-bot/src/app/commands/(general)/poll.tsx new file mode 100644 index 00000000..bbc2ff6a --- /dev/null +++ b/apps/test-bot/src/app/commands/(general)/poll.tsx @@ -0,0 +1,27 @@ +import { + Poll, + PollQuestion, + PollAnswer, + CommandData, + ChatInputCommand, +} from 'commandkit'; +import { PollData } from 'discord.js'; + +export const command: CommandData = { + name: 'poll', + description: 'Create a poll', +}; + +export const chatInput: ChatInputCommand = async (ctx) => { + const poll: PollData = ( + + What's your favorite color? + Red + Blue + Green + Other + + ); + + await ctx.interaction.reply({ poll }); +}; diff --git a/apps/test-bot/src/app/commands/(interactions)/+middleware.ts b/apps/test-bot/src/app/commands/(interactions)/+middleware.ts index f12a33d9..d86f01f7 100644 --- a/apps/test-bot/src/app/commands/(interactions)/+middleware.ts +++ b/apps/test-bot/src/app/commands/(interactions)/+middleware.ts @@ -4,8 +4,6 @@ import { MessageFlags } from 'discord.js'; export function beforeExecute(ctx: MiddlewareContext) { Logger.info('Pre-command middleware'); - console.log({ isAI: ctx.ai }); - const user = ctx.isInteraction() ? ctx.interaction.user : ctx.message.author; if (ctx.commandName === 'prompt' && user.id === '159985870458322944') { diff --git a/apps/test-bot/src/app/commands/(interactions)/prompt.tsx b/apps/test-bot/src/app/commands/(interactions)/prompt.tsx index db255008..7b0facd5 100644 --- a/apps/test-bot/src/app/commands/(interactions)/prompt.tsx +++ b/apps/test-bot/src/app/commands/(interactions)/prompt.tsx @@ -3,11 +3,14 @@ import { Modal, ShortInput, ParagraphInput, + Label, OnModalKitSubmit, MessageCommandContext, ChatInputCommandContext, + StringSelectMenu, + StringSelectMenuOption, } from 'commandkit'; -import { MessageFlags } from 'discord.js'; +import { ComponentType, MessageFlags } from 'discord.js'; export const command: CommandData = { name: 'prompt', @@ -17,9 +20,10 @@ export const command: CommandData = { const handleSubmit: OnModalKitSubmit = async (interaction, context) => { const name = interaction.fields.getTextInputValue('name'); const description = interaction.fields.getTextInputValue('description'); + const select = interaction.fields.getField('select'); await interaction.reply({ - content: `Name: ${name}\nDescription: ${description}`, + content: `Name: ${name}\nDescription: ${description}\nSelect: ${select}`, flags: MessageFlags.Ephemeral, }); @@ -28,13 +32,38 @@ const handleSubmit: OnModalKitSubmit = async (interaction, context) => { export async function chatInput(ctx: ChatInputCommandContext) { const modal = ( - - - + + + + ); diff --git a/apps/website/docs/api-reference/commandkit/classes/button-kit.mdx b/apps/website/docs/api-reference/commandkit/classes/button-kit.mdx index 8b23d8f7..ae7b67d4 100644 --- a/apps/website/docs/api-reference/commandkit/classes/button-kit.mdx +++ b/apps/website/docs/api-reference/commandkit/classes/button-kit.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## ButtonKit - + A builder for creating buttons with additional features like interaction collectors and event handling. diff --git a/apps/website/docs/api-reference/commandkit/classes/channel-select-menu-kit.mdx b/apps/website/docs/api-reference/commandkit/classes/channel-select-menu-kit.mdx index 56792e7b..b517f92f 100644 --- a/apps/website/docs/api-reference/commandkit/classes/channel-select-menu-kit.mdx +++ b/apps/website/docs/api-reference/commandkit/classes/channel-select-menu-kit.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## ChannelSelectMenuKit - + A builder for creating channel select menus with additional features like interaction collectors and event handling. This class extends the ChannelSelectMenuBuilder from discord.js and adds methods for handling interactions. diff --git a/apps/website/docs/api-reference/commandkit/classes/mentionable-select-menu-kit.mdx b/apps/website/docs/api-reference/commandkit/classes/mentionable-select-menu-kit.mdx index 7e8b74b8..993aaf70 100644 --- a/apps/website/docs/api-reference/commandkit/classes/mentionable-select-menu-kit.mdx +++ b/apps/website/docs/api-reference/commandkit/classes/mentionable-select-menu-kit.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## MentionableSelectMenuKit - + diff --git a/apps/website/docs/api-reference/commandkit/classes/modal-kit.mdx b/apps/website/docs/api-reference/commandkit/classes/modal-kit.mdx index 4ff327ca..aacdb57c 100644 --- a/apps/website/docs/api-reference/commandkit/classes/modal-kit.mdx +++ b/apps/website/docs/api-reference/commandkit/classes/modal-kit.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## ModalKit - + A builder for creating modals with additional features like interaction collectors and event handling. This class extends the ModalBuilder from discord.js and adds methods for handling interactions. diff --git a/apps/website/docs/api-reference/commandkit/classes/role-select-menu-kit.mdx b/apps/website/docs/api-reference/commandkit/classes/role-select-menu-kit.mdx index 514f5b00..764fba66 100644 --- a/apps/website/docs/api-reference/commandkit/classes/role-select-menu-kit.mdx +++ b/apps/website/docs/api-reference/commandkit/classes/role-select-menu-kit.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## RoleSelectMenuKit - + A builder for creating role select menus with additional features like interaction collectors and event handling. This class extends the RoleSelectMenuBuilder from discord.js and adds methods for handling interactions. diff --git a/apps/website/docs/api-reference/commandkit/classes/string-select-menu-kit.mdx b/apps/website/docs/api-reference/commandkit/classes/string-select-menu-kit.mdx index 86f4d946..4bc9f9e4 100644 --- a/apps/website/docs/api-reference/commandkit/classes/string-select-menu-kit.mdx +++ b/apps/website/docs/api-reference/commandkit/classes/string-select-menu-kit.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## StringSelectMenuKit - + A builder for creating string select menus with additional features like interaction collectors and event handling. This class extends the StringSelectMenuBuilder from discord.js and adds methods for handling interactions. diff --git a/apps/website/docs/api-reference/commandkit/classes/user-select-menu-kit.mdx b/apps/website/docs/api-reference/commandkit/classes/user-select-menu-kit.mdx index a6e234dd..e4cd9d15 100644 --- a/apps/website/docs/api-reference/commandkit/classes/user-select-menu-kit.mdx +++ b/apps/website/docs/api-reference/commandkit/classes/user-select-menu-kit.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## UserSelectMenuKit - + A builder for creating user select menus with additional features like interaction collectors and event handling. This class extends the UserSelectMenuBuilder from discord.js and adds methods for handling interactions. diff --git a/apps/website/docs/api-reference/commandkit/functions/action-row.mdx b/apps/website/docs/api-reference/commandkit/functions/action-row.mdx index ead3da1d..52a24d43 100644 --- a/apps/website/docs/api-reference/commandkit/functions/action-row.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/action-row.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## ActionRow - + The action row component. diff --git a/apps/website/docs/api-reference/commandkit/functions/button.mdx b/apps/website/docs/api-reference/commandkit/functions/button.mdx index 7d5b90a4..c4e8b5ab 100644 --- a/apps/website/docs/api-reference/commandkit/functions/button.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/button.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## Button - + The button component. diff --git a/apps/website/docs/api-reference/commandkit/functions/channel-select-menu.mdx b/apps/website/docs/api-reference/commandkit/functions/channel-select-menu.mdx index 9f982260..a9eed232 100644 --- a/apps/website/docs/api-reference/commandkit/functions/channel-select-menu.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/channel-select-menu.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## ChannelSelectMenu - + The ChannelSelectMenu component. diff --git a/apps/website/docs/api-reference/commandkit/functions/container.mdx b/apps/website/docs/api-reference/commandkit/functions/container.mdx index ba0cd910..c5cde5ad 100644 --- a/apps/website/docs/api-reference/commandkit/functions/container.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/container.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## Container - + The components v2 container component diff --git a/apps/website/docs/api-reference/commandkit/functions/create-element.mdx b/apps/website/docs/api-reference/commandkit/functions/create-element.mdx index 79ce68de..6498958f 100644 --- a/apps/website/docs/api-reference/commandkit/functions/create-element.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/create-element.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## createElement - + The createElement function is used to create CommandKit elements. diff --git a/apps/website/docs/api-reference/commandkit/functions/emit-warning.mdx b/apps/website/docs/api-reference/commandkit/functions/emit-warning.mdx index b184c147..54831b9b 100644 --- a/apps/website/docs/api-reference/commandkit/functions/emit-warning.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/emit-warning.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## emitWarning - + Emit a warning message to the console as a CommandKitWarning. diff --git a/apps/website/docs/api-reference/commandkit/functions/file.mdx b/apps/website/docs/api-reference/commandkit/functions/file.mdx index c6fa188d..7640e8bb 100644 --- a/apps/website/docs/api-reference/commandkit/functions/file.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/file.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## File - + The file component diff --git a/apps/website/docs/api-reference/commandkit/functions/fragment.mdx b/apps/website/docs/api-reference/commandkit/functions/fragment.mdx index 908d8b86..b7206d07 100644 --- a/apps/website/docs/api-reference/commandkit/functions/fragment.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/fragment.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## Fragment - + Represents a fragment of CommandKit elements. diff --git a/apps/website/docs/api-reference/commandkit/functions/get-element.mdx b/apps/website/docs/api-reference/commandkit/functions/get-element.mdx index d90eda3c..57ccfe5f 100644 --- a/apps/website/docs/api-reference/commandkit/functions/get-element.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/get-element.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## getElement - + Gets the element data for a specific CommandKit element. diff --git a/apps/website/docs/api-reference/commandkit/functions/is-command-kit-element.mdx b/apps/website/docs/api-reference/commandkit/functions/is-command-kit-element.mdx index 5dd4589f..2746eee1 100644 --- a/apps/website/docs/api-reference/commandkit/functions/is-command-kit-element.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/is-command-kit-element.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## isCommandKitElement - + Checks if the given element is a CommandKit element. diff --git a/apps/website/docs/api-reference/commandkit/functions/label.mdx b/apps/website/docs/api-reference/commandkit/functions/label.mdx new file mode 100644 index 00000000..df774e13 --- /dev/null +++ b/apps/website/docs/api-reference/commandkit/functions/label.mdx @@ -0,0 +1,40 @@ +--- +title: "Label" +isDefaultIndex: false +generated: true +--- + +import MemberInfo from '@site/src/components/MemberInfo'; +import GenerationInfo from '@site/src/components/GenerationInfo'; +import MemberDescription from '@site/src/components/MemberDescription'; + + + + +## Label + + + +The label component wraps modal components with text as a label and optional description. + + + +*Example* + +```tsx +import { Label } from 'commandkit'; + +const label = ; +``` + +```ts title="Signature" +function Label(props: LabelProps): void +``` +Parameters + +### props + +LabelProps`} /> + diff --git a/apps/website/docs/api-reference/commandkit/functions/media-gallery-item.mdx b/apps/website/docs/api-reference/commandkit/functions/media-gallery-item.mdx index 4e94dafe..bdb147fe 100644 --- a/apps/website/docs/api-reference/commandkit/functions/media-gallery-item.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/media-gallery-item.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## MediaGalleryItem - + The media gallery item component diff --git a/apps/website/docs/api-reference/commandkit/functions/media-gallery.mdx b/apps/website/docs/api-reference/commandkit/functions/media-gallery.mdx index 9a76d0b7..7a678bc1 100644 --- a/apps/website/docs/api-reference/commandkit/functions/media-gallery.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/media-gallery.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## MediaGallery - + The media gallery component diff --git a/apps/website/docs/api-reference/commandkit/functions/mentionable-select-menu.mdx b/apps/website/docs/api-reference/commandkit/functions/mentionable-select-menu.mdx index b172044f..0318e8be 100644 --- a/apps/website/docs/api-reference/commandkit/functions/mentionable-select-menu.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/mentionable-select-menu.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## MentionableSelectMenu - + The MentionableSelectMenu component. diff --git a/apps/website/docs/api-reference/commandkit/functions/modal.mdx b/apps/website/docs/api-reference/commandkit/functions/modal.mdx index 9ad5c3dc..b69651f6 100644 --- a/apps/website/docs/api-reference/commandkit/functions/modal.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/modal.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## Modal - + The modal component. diff --git a/apps/website/docs/api-reference/commandkit/functions/paragraph-input.mdx b/apps/website/docs/api-reference/commandkit/functions/paragraph-input.mdx index ada3cfc4..6328469d 100644 --- a/apps/website/docs/api-reference/commandkit/functions/paragraph-input.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/paragraph-input.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## ParagraphInput - + The paragraph text input component. diff --git a/apps/website/docs/api-reference/commandkit/functions/poll-answer.mdx b/apps/website/docs/api-reference/commandkit/functions/poll-answer.mdx new file mode 100644 index 00000000..6bbfbe9a --- /dev/null +++ b/apps/website/docs/api-reference/commandkit/functions/poll-answer.mdx @@ -0,0 +1,44 @@ +--- +title: "PollAnswer" +isDefaultIndex: false +generated: true +--- + +import MemberInfo from '@site/src/components/MemberInfo'; +import GenerationInfo from '@site/src/components/GenerationInfo'; +import MemberDescription from '@site/src/components/MemberDescription'; + + + + +## PollAnswer + + + +The poll answer component defines an answer option for a Discord poll. + + + +*Example* + +```tsx +import { PollAnswer } from 'commandkit'; + +const answer = TypeScript; +``` + +```ts title="Signature" +function PollAnswer({ + children, + ...props +}: PollAnswerProps): PollChild +``` +Parameters + +### \{ + children, + ...props +} + +PollAnswerProps`} /> + diff --git a/apps/website/docs/api-reference/commandkit/functions/poll-question.mdx b/apps/website/docs/api-reference/commandkit/functions/poll-question.mdx new file mode 100644 index 00000000..a0bd123b --- /dev/null +++ b/apps/website/docs/api-reference/commandkit/functions/poll-question.mdx @@ -0,0 +1,44 @@ +--- +title: "PollQuestion" +isDefaultIndex: false +generated: true +--- + +import MemberInfo from '@site/src/components/MemberInfo'; +import GenerationInfo from '@site/src/components/GenerationInfo'; +import MemberDescription from '@site/src/components/MemberDescription'; + + + + +## PollQuestion + + + +The poll question component defines the question text for a Discord poll. + + + +*Example* + +```tsx +import { PollQuestion } from 'commandkit'; + +const question = What's your favorite programming language?; +``` + +```ts title="Signature" +function PollQuestion({ + children, + ...props +}: PollQuestionProps): PollChild +``` +Parameters + +### \{ + children, + ...props +} + +PollQuestionProps`} /> + diff --git a/apps/website/docs/api-reference/commandkit/functions/poll.mdx b/apps/website/docs/api-reference/commandkit/functions/poll.mdx new file mode 100644 index 00000000..8027336f --- /dev/null +++ b/apps/website/docs/api-reference/commandkit/functions/poll.mdx @@ -0,0 +1,43 @@ +--- +title: "Poll" +isDefaultIndex: false +generated: true +--- + +import MemberInfo from '@site/src/components/MemberInfo'; +import GenerationInfo from '@site/src/components/GenerationInfo'; +import MemberDescription from '@site/src/components/MemberDescription'; + + + + +## Poll + + + +The poll component creates a Discord poll with a question and multiple answer options. + + + +*Example* + +```tsx +import { Poll, PollQuestion, PollAnswer } from 'commandkit'; + +const poll = +What's your favorite color? +Red +Blue +Green +; +``` + +```ts title="Signature" +function Poll({ children, ...props }: PollProps): PollData +``` +Parameters + +### \{ children, ...props } + +PollProps`} /> + diff --git a/apps/website/docs/api-reference/commandkit/functions/role-select-menu.mdx b/apps/website/docs/api-reference/commandkit/functions/role-select-menu.mdx index 65fd170f..bf8ed198 100644 --- a/apps/website/docs/api-reference/commandkit/functions/role-select-menu.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/role-select-menu.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## RoleSelectMenu - + The RoleSelectMenu component. diff --git a/apps/website/docs/api-reference/commandkit/functions/section.mdx b/apps/website/docs/api-reference/commandkit/functions/section.mdx index 741a43a9..b67d3aac 100644 --- a/apps/website/docs/api-reference/commandkit/functions/section.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/section.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## Section - + The components v2 section component diff --git a/apps/website/docs/api-reference/commandkit/functions/separator.mdx b/apps/website/docs/api-reference/commandkit/functions/separator.mdx index 534aea30..04ac600c 100644 --- a/apps/website/docs/api-reference/commandkit/functions/separator.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/separator.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## Separator - + The components v2 separator component diff --git a/apps/website/docs/api-reference/commandkit/functions/short-input.mdx b/apps/website/docs/api-reference/commandkit/functions/short-input.mdx index 6b2416f9..10541d9b 100644 --- a/apps/website/docs/api-reference/commandkit/functions/short-input.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/short-input.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## ShortInput - + The short text input component. diff --git a/apps/website/docs/api-reference/commandkit/functions/string-select-menu-option.mdx b/apps/website/docs/api-reference/commandkit/functions/string-select-menu-option.mdx index e8258217..ef6f9fb7 100644 --- a/apps/website/docs/api-reference/commandkit/functions/string-select-menu-option.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/string-select-menu-option.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## StringSelectMenuOption - + A select menu option for the string select menu. diff --git a/apps/website/docs/api-reference/commandkit/functions/string-select-menu.mdx b/apps/website/docs/api-reference/commandkit/functions/string-select-menu.mdx index 0c7c0ea4..63d63d14 100644 --- a/apps/website/docs/api-reference/commandkit/functions/string-select-menu.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/string-select-menu.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## StringSelectMenu - + The StringSelectMenu component. diff --git a/apps/website/docs/api-reference/commandkit/functions/text-display.mdx b/apps/website/docs/api-reference/commandkit/functions/text-display.mdx index 2336464b..0baf5333 100644 --- a/apps/website/docs/api-reference/commandkit/functions/text-display.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/text-display.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## TextDisplay - + The components v2 text display component diff --git a/apps/website/docs/api-reference/commandkit/functions/text-input.mdx b/apps/website/docs/api-reference/commandkit/functions/text-input.mdx index 486b22cf..8ba7438e 100644 --- a/apps/website/docs/api-reference/commandkit/functions/text-input.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/text-input.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## TextInput - + The text input component. @@ -22,7 +22,7 @@ The text input component. *Example* ```ts - + ``` ```ts title="Signature" diff --git a/apps/website/docs/api-reference/commandkit/functions/thumbnail.mdx b/apps/website/docs/api-reference/commandkit/functions/thumbnail.mdx index 1cb66622..23e92d63 100644 --- a/apps/website/docs/api-reference/commandkit/functions/thumbnail.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/thumbnail.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## Thumbnail - + The thumbnail component diff --git a/apps/website/docs/api-reference/commandkit/functions/user-select-menu.mdx b/apps/website/docs/api-reference/commandkit/functions/user-select-menu.mdx index bd40fea5..4ed147c5 100644 --- a/apps/website/docs/api-reference/commandkit/functions/user-select-menu.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/user-select-menu.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## UserSelectMenu - + The UserSelectMenu component. diff --git a/apps/website/docs/api-reference/commandkit/functions/warn-deprecated.mdx b/apps/website/docs/api-reference/commandkit/functions/warn-deprecated.mdx new file mode 100644 index 00000000..796a661b --- /dev/null +++ b/apps/website/docs/api-reference/commandkit/functions/warn-deprecated.mdx @@ -0,0 +1,40 @@ +--- +title: "WarnDeprecated" +isDefaultIndex: false +generated: true +--- + +import MemberInfo from '@site/src/components/MemberInfo'; +import GenerationInfo from '@site/src/components/GenerationInfo'; +import MemberDescription from '@site/src/components/MemberDescription'; + + + + +## warnDeprecated + + + + + +```ts title="Signature" +function warnDeprecated({ + what, + message, + where, +}: { + what: string; + where?: string; + message?: string; +}): void +``` +Parameters + +### \{ + what, + message, + where, +} + + + diff --git a/apps/website/docs/api-reference/commandkit/functions/warn-unstable.mdx b/apps/website/docs/api-reference/commandkit/functions/warn-unstable.mdx index cb1c7626..0d4e11a4 100644 --- a/apps/website/docs/api-reference/commandkit/functions/warn-unstable.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/warn-unstable.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## warnUnstable - + Emit a warning for unstable features in CommandKit. diff --git a/apps/website/docs/api-reference/commandkit/interfaces/action-row-props.mdx b/apps/website/docs/api-reference/commandkit/interfaces/action-row-props.mdx index bfd36b80..a7ef6593 100644 --- a/apps/website/docs/api-reference/commandkit/interfaces/action-row-props.mdx +++ b/apps/website/docs/api-reference/commandkit/interfaces/action-row-props.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## ActionRowProps - + The properties for the action row component. diff --git a/apps/website/docs/api-reference/commandkit/interfaces/button-props.mdx b/apps/website/docs/api-reference/commandkit/interfaces/button-props.mdx index da7672dc..39dd686f 100644 --- a/apps/website/docs/api-reference/commandkit/interfaces/button-props.mdx +++ b/apps/website/docs/api-reference/commandkit/interfaces/button-props.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## ButtonProps - + The button props diff --git a/apps/website/docs/api-reference/commandkit/interfaces/channel-select-menu-props.mdx b/apps/website/docs/api-reference/commandkit/interfaces/channel-select-menu-props.mdx index b65fcf46..1f3ba808 100644 --- a/apps/website/docs/api-reference/commandkit/interfaces/channel-select-menu-props.mdx +++ b/apps/website/docs/api-reference/commandkit/interfaces/channel-select-menu-props.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## ChannelSelectMenuProps - + The ChannelSelectMenu component props. diff --git a/apps/website/docs/api-reference/commandkit/interfaces/command-context.mdx b/apps/website/docs/api-reference/commandkit/interfaces/command-context.mdx index 12386bcb..bc39d82e 100644 --- a/apps/website/docs/api-reference/commandkit/interfaces/command-context.mdx +++ b/apps/website/docs/api-reference/commandkit/interfaces/command-context.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## CommandContext - + Represents a command context. diff --git a/apps/website/docs/api-reference/commandkit/interfaces/command-kit-element-data.mdx b/apps/website/docs/api-reference/commandkit/interfaces/command-kit-element-data.mdx index cf684288..cd2af931 100644 --- a/apps/website/docs/api-reference/commandkit/interfaces/command-kit-element-data.mdx +++ b/apps/website/docs/api-reference/commandkit/interfaces/command-kit-element-data.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## CommandKitElementData - + The data structure that maps each ElementType to its corresponding CommandKit element. diff --git a/apps/website/docs/api-reference/commandkit/interfaces/command-kit-options.mdx b/apps/website/docs/api-reference/commandkit/interfaces/command-kit-options.mdx index 0e2f31c6..ea70db4d 100644 --- a/apps/website/docs/api-reference/commandkit/interfaces/command-kit-options.mdx +++ b/apps/website/docs/api-reference/commandkit/interfaces/command-kit-options.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## CommandKitOptions - + Options for instantiating a CommandKit handler. diff --git a/apps/website/docs/api-reference/commandkit/interfaces/command-metadata.mdx b/apps/website/docs/api-reference/commandkit/interfaces/command-metadata.mdx index fc250d3b..8b7f3caa 100644 --- a/apps/website/docs/api-reference/commandkit/interfaces/command-metadata.mdx +++ b/apps/website/docs/api-reference/commandkit/interfaces/command-metadata.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## CommandMetadata - + Represents the command metadata. diff --git a/apps/website/docs/api-reference/commandkit/interfaces/common-select-menu-props.mdx b/apps/website/docs/api-reference/commandkit/interfaces/common-select-menu-props.mdx index 4c68882c..cba9b7a4 100644 --- a/apps/website/docs/api-reference/commandkit/interfaces/common-select-menu-props.mdx +++ b/apps/website/docs/api-reference/commandkit/interfaces/common-select-menu-props.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## CommonSelectMenuProps - + Type for the common properties shared by all select menu builders. diff --git a/apps/website/docs/api-reference/commandkit/interfaces/container-props.mdx b/apps/website/docs/api-reference/commandkit/interfaces/container-props.mdx index f5b2ea49..a5328711 100644 --- a/apps/website/docs/api-reference/commandkit/interfaces/container-props.mdx +++ b/apps/website/docs/api-reference/commandkit/interfaces/container-props.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## ContainerProps - + Represents the properties for a container component. diff --git a/apps/website/docs/api-reference/commandkit/interfaces/file-props.mdx b/apps/website/docs/api-reference/commandkit/interfaces/file-props.mdx index abc8b94a..b3a5a1c4 100644 --- a/apps/website/docs/api-reference/commandkit/interfaces/file-props.mdx +++ b/apps/website/docs/api-reference/commandkit/interfaces/file-props.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## FileProps - + Represents the properties for a file component. diff --git a/apps/website/docs/api-reference/commandkit/interfaces/fragment-element-props.mdx b/apps/website/docs/api-reference/commandkit/interfaces/fragment-element-props.mdx index f65a2ae1..25292466 100644 --- a/apps/website/docs/api-reference/commandkit/interfaces/fragment-element-props.mdx +++ b/apps/website/docs/api-reference/commandkit/interfaces/fragment-element-props.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## FragmentElementProps - + Represents the properties for a fragment element in CommandKit. diff --git a/apps/website/docs/api-reference/commandkit/interfaces/label-props.mdx b/apps/website/docs/api-reference/commandkit/interfaces/label-props.mdx new file mode 100644 index 00000000..93e1a07c --- /dev/null +++ b/apps/website/docs/api-reference/commandkit/interfaces/label-props.mdx @@ -0,0 +1,38 @@ +--- +title: "LabelProps" +isDefaultIndex: false +generated: true +--- + +import MemberInfo from '@site/src/components/MemberInfo'; +import GenerationInfo from '@site/src/components/GenerationInfo'; +import MemberDescription from '@site/src/components/MemberDescription'; + + + + +## LabelProps + + + +The label properties for the label component. + +```ts title="Signature" +interface LabelProps extends Omit { + children: LabelBuilderData['component'] & {}; +} +``` +* Extends: Omit<LabelBuilderData, 'component' | 'type'> + + + +
+ +### children + + + +The component that will be wrapped by the label component. + + +
diff --git a/apps/website/docs/api-reference/commandkit/interfaces/media-gallery-item-props.mdx b/apps/website/docs/api-reference/commandkit/interfaces/media-gallery-item-props.mdx index fefbd185..31aef5fc 100644 --- a/apps/website/docs/api-reference/commandkit/interfaces/media-gallery-item-props.mdx +++ b/apps/website/docs/api-reference/commandkit/interfaces/media-gallery-item-props.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## MediaGalleryItemProps - + Represents the properties for a media gallery item component. diff --git a/apps/website/docs/api-reference/commandkit/interfaces/media-gallery-props.mdx b/apps/website/docs/api-reference/commandkit/interfaces/media-gallery-props.mdx index c51b0c3f..e0979d44 100644 --- a/apps/website/docs/api-reference/commandkit/interfaces/media-gallery-props.mdx +++ b/apps/website/docs/api-reference/commandkit/interfaces/media-gallery-props.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## MediaGalleryProps - + Represents the properties for a media gallery component. diff --git a/apps/website/docs/api-reference/commandkit/interfaces/mentionable-select-menu-props.mdx b/apps/website/docs/api-reference/commandkit/interfaces/mentionable-select-menu-props.mdx index 75eb12ed..399fda5c 100644 --- a/apps/website/docs/api-reference/commandkit/interfaces/mentionable-select-menu-props.mdx +++ b/apps/website/docs/api-reference/commandkit/interfaces/mentionable-select-menu-props.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## MentionableSelectMenuProps - + The MentionableSelectMenu component props. diff --git a/apps/website/docs/api-reference/commandkit/interfaces/modal-props.mdx b/apps/website/docs/api-reference/commandkit/interfaces/modal-props.mdx index b18219eb..d7086b47 100644 --- a/apps/website/docs/api-reference/commandkit/interfaces/modal-props.mdx +++ b/apps/website/docs/api-reference/commandkit/interfaces/modal-props.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## ModalProps - + The properties for the modal component. @@ -21,7 +21,7 @@ The properties for the modal component. interface ModalProps { customId?: string; title: string; - children?: MaybeArray; + children?: MaybeArray; onSubmit?: OnModalKitSubmit; onEnd?: OnModalKitEnd; onError?: EventInterceptorErrorHandler; @@ -43,7 +43,7 @@ interface ModalProps { ### children -MaybeArray<TextInputBuilder | ActionRowBuilder>`} /> +MaybeArray<ModalKit['components'][number]>`} /> ### onSubmit diff --git a/apps/website/docs/api-reference/commandkit/interfaces/poll-answer-props.mdx b/apps/website/docs/api-reference/commandkit/interfaces/poll-answer-props.mdx new file mode 100644 index 00000000..5f103559 --- /dev/null +++ b/apps/website/docs/api-reference/commandkit/interfaces/poll-answer-props.mdx @@ -0,0 +1,38 @@ +--- +title: "PollAnswerProps" +isDefaultIndex: false +generated: true +--- + +import MemberInfo from '@site/src/components/MemberInfo'; +import GenerationInfo from '@site/src/components/GenerationInfo'; +import MemberDescription from '@site/src/components/MemberDescription'; + + + + +## PollAnswerProps + + + +The poll answer properties for the poll answer component. + +```ts title="Signature" +interface PollAnswerProps extends Omit { + children: PollAnswerData['text']; +} +``` +* Extends: Omit<PollAnswerData, 'text'> + + + +
+ +### children + + + +The answer text content. + + +
diff --git a/apps/website/docs/api-reference/commandkit/interfaces/poll-props.mdx b/apps/website/docs/api-reference/commandkit/interfaces/poll-props.mdx new file mode 100644 index 00000000..af2a8320 --- /dev/null +++ b/apps/website/docs/api-reference/commandkit/interfaces/poll-props.mdx @@ -0,0 +1,38 @@ +--- +title: "PollProps" +isDefaultIndex: false +generated: true +--- + +import MemberInfo from '@site/src/components/MemberInfo'; +import GenerationInfo from '@site/src/components/GenerationInfo'; +import MemberDescription from '@site/src/components/MemberDescription'; + + + + +## PollProps + + + +The poll properties for the poll component. + +```ts title="Signature" +interface PollProps extends Partial> { + children: PollChildrenType[]; +} +``` +* Extends: Partial<Omit<PollData, 'question' | 'answers'>> + + + +
+ +### children + +PollChildrenType[]`} /> + +The poll children components (question and answers). + + +
diff --git a/apps/website/docs/api-reference/commandkit/interfaces/poll-question-props.mdx b/apps/website/docs/api-reference/commandkit/interfaces/poll-question-props.mdx new file mode 100644 index 00000000..bc9a7943 --- /dev/null +++ b/apps/website/docs/api-reference/commandkit/interfaces/poll-question-props.mdx @@ -0,0 +1,38 @@ +--- +title: "PollQuestionProps" +isDefaultIndex: false +generated: true +--- + +import MemberInfo from '@site/src/components/MemberInfo'; +import GenerationInfo from '@site/src/components/GenerationInfo'; +import MemberDescription from '@site/src/components/MemberDescription'; + + + + +## PollQuestionProps + + + +The poll question properties for the poll question component. + +```ts title="Signature" +interface PollQuestionProps extends Omit { + children: PollQuestionMedia['text']; +} +``` +* Extends: Omit<PollQuestionMedia, 'text'> + + + +
+ +### children + + + +The question text content. + + +
diff --git a/apps/website/docs/api-reference/commandkit/interfaces/role-select-menu-props.mdx b/apps/website/docs/api-reference/commandkit/interfaces/role-select-menu-props.mdx index 9729570a..6902e79e 100644 --- a/apps/website/docs/api-reference/commandkit/interfaces/role-select-menu-props.mdx +++ b/apps/website/docs/api-reference/commandkit/interfaces/role-select-menu-props.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## RoleSelectMenuProps - + The RoleSelectMenu component props. diff --git a/apps/website/docs/api-reference/commandkit/interfaces/section-props.mdx b/apps/website/docs/api-reference/commandkit/interfaces/section-props.mdx index 29848928..ef1b39ae 100644 --- a/apps/website/docs/api-reference/commandkit/interfaces/section-props.mdx +++ b/apps/website/docs/api-reference/commandkit/interfaces/section-props.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## SectionProps - + Represents the properties for a section component. diff --git a/apps/website/docs/api-reference/commandkit/interfaces/select-menu-props.mdx b/apps/website/docs/api-reference/commandkit/interfaces/select-menu-props.mdx index 70847b9a..311fbfd9 100644 --- a/apps/website/docs/api-reference/commandkit/interfaces/select-menu-props.mdx +++ b/apps/website/docs/api-reference/commandkit/interfaces/select-menu-props.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## SelectMenuProps - + Type for the base select menu component data. diff --git a/apps/website/docs/api-reference/commandkit/interfaces/separator-props.mdx b/apps/website/docs/api-reference/commandkit/interfaces/separator-props.mdx index b624ef93..60e1f065 100644 --- a/apps/website/docs/api-reference/commandkit/interfaces/separator-props.mdx +++ b/apps/website/docs/api-reference/commandkit/interfaces/separator-props.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## SeparatorProps - + Represents the properties for a separator component. diff --git a/apps/website/docs/api-reference/commandkit/interfaces/string-select-menu-props.mdx b/apps/website/docs/api-reference/commandkit/interfaces/string-select-menu-props.mdx index 3a88228a..9478ef78 100644 --- a/apps/website/docs/api-reference/commandkit/interfaces/string-select-menu-props.mdx +++ b/apps/website/docs/api-reference/commandkit/interfaces/string-select-menu-props.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## StringSelectMenuProps - + The properties for a string select menu component. diff --git a/apps/website/docs/api-reference/commandkit/interfaces/text-display-props.mdx b/apps/website/docs/api-reference/commandkit/interfaces/text-display-props.mdx index 4e3159b7..93109e20 100644 --- a/apps/website/docs/api-reference/commandkit/interfaces/text-display-props.mdx +++ b/apps/website/docs/api-reference/commandkit/interfaces/text-display-props.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## TextDisplayProps - + Represents the properties for a text display component. This interface extends the TextDisplayComponentData type from discord.js, diff --git a/apps/website/docs/api-reference/commandkit/interfaces/text-input-props.mdx b/apps/website/docs/api-reference/commandkit/interfaces/text-input-props.mdx index 823dc538..e23ed0cd 100644 --- a/apps/website/docs/api-reference/commandkit/interfaces/text-input-props.mdx +++ b/apps/website/docs/api-reference/commandkit/interfaces/text-input-props.mdx @@ -13,14 +13,14 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## TextInputProps - + ```ts title="Signature" interface TextInputProps { customId: string; - label: string; + label?: string; placeholder?: string; maxLength?: number; minLength?: number; diff --git a/apps/website/docs/api-reference/commandkit/interfaces/thumbnail-props.mdx b/apps/website/docs/api-reference/commandkit/interfaces/thumbnail-props.mdx index 472c1047..b08170c2 100644 --- a/apps/website/docs/api-reference/commandkit/interfaces/thumbnail-props.mdx +++ b/apps/website/docs/api-reference/commandkit/interfaces/thumbnail-props.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## ThumbnailProps - + Represents the properties for a thumbnail component. diff --git a/apps/website/docs/api-reference/commandkit/interfaces/user-select-menu-props.mdx b/apps/website/docs/api-reference/commandkit/interfaces/user-select-menu-props.mdx index 4dd35c20..66b722d0 100644 --- a/apps/website/docs/api-reference/commandkit/interfaces/user-select-menu-props.mdx +++ b/apps/website/docs/api-reference/commandkit/interfaces/user-select-menu-props.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## UserSelectMenuProps - + The UserSelectMenu component. diff --git a/apps/website/docs/api-reference/commandkit/types/any-command-kit-element.mdx b/apps/website/docs/api-reference/commandkit/types/any-command-kit-element.mdx index c9e7ef07..93568385 100644 --- a/apps/website/docs/api-reference/commandkit/types/any-command-kit-element.mdx +++ b/apps/website/docs/api-reference/commandkit/types/any-command-kit-element.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## AnyCommandKitElement - + Represents any CommandKit element, which can be of any type defined in CommandKitElementData. diff --git a/apps/website/docs/api-reference/commandkit/types/button-children-like.mdx b/apps/website/docs/api-reference/commandkit/types/button-children-like.mdx index 5421315b..e60a1187 100644 --- a/apps/website/docs/api-reference/commandkit/types/button-children-like.mdx +++ b/apps/website/docs/api-reference/commandkit/types/button-children-like.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## ButtonChildrenLike - + The button children type. diff --git a/apps/website/docs/api-reference/commandkit/types/button-kit-predicate.mdx b/apps/website/docs/api-reference/commandkit/types/button-kit-predicate.mdx index 51c9d9a1..d4be00c4 100644 --- a/apps/website/docs/api-reference/commandkit/types/button-kit-predicate.mdx +++ b/apps/website/docs/api-reference/commandkit/types/button-kit-predicate.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## ButtonKitPredicate - + The predicate function that filters button interactions. It receives a ButtonInteraction and returns a boolean or a Promise that resolves to a boolean. diff --git a/apps/website/docs/api-reference/commandkit/types/channel-select-menu-kit-predicate.mdx b/apps/website/docs/api-reference/commandkit/types/channel-select-menu-kit-predicate.mdx index 3612eed5..18fa354f 100644 --- a/apps/website/docs/api-reference/commandkit/types/channel-select-menu-kit-predicate.mdx +++ b/apps/website/docs/api-reference/commandkit/types/channel-select-menu-kit-predicate.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## ChannelSelectMenuKitPredicate - + Type for the predicate function that filters channel select menu interactions. It receives a ChannelSelectMenuInteraction and returns a boolean or a Promise that resolves to a boolean. diff --git a/apps/website/docs/api-reference/commandkit/types/command-data.mdx b/apps/website/docs/api-reference/commandkit/types/command-data.mdx index f5a21978..122ed33e 100644 --- a/apps/website/docs/api-reference/commandkit/types/command-data.mdx +++ b/apps/website/docs/api-reference/commandkit/types/command-data.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## CommandData - + Represents a command that can be executed by CommandKit. diff --git a/apps/website/docs/api-reference/commandkit/types/command-kit-button-builder-interaction-collector-dispatch-context-data.mdx b/apps/website/docs/api-reference/commandkit/types/command-kit-button-builder-interaction-collector-dispatch-context-data.mdx index fcceb8fb..27514b29 100644 --- a/apps/website/docs/api-reference/commandkit/types/command-kit-button-builder-interaction-collector-dispatch-context-data.mdx +++ b/apps/website/docs/api-reference/commandkit/types/command-kit-button-builder-interaction-collector-dispatch-context-data.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## CommandKitButtonBuilderInteractionCollectorDispatchContextData - + The context data for the interaction collector. This includes the autoReset, time, filter, onEnd, and onError properties. diff --git a/apps/website/docs/api-reference/commandkit/types/command-kit-button-builder-interaction-collector-dispatch.mdx b/apps/website/docs/api-reference/commandkit/types/command-kit-button-builder-interaction-collector-dispatch.mdx index 66c7f0bb..a9e4c59f 100644 --- a/apps/website/docs/api-reference/commandkit/types/command-kit-button-builder-interaction-collector-dispatch.mdx +++ b/apps/website/docs/api-reference/commandkit/types/command-kit-button-builder-interaction-collector-dispatch.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## CommandKitButtonBuilderInteractionCollectorDispatch - + The handler to run when a button is clicked. This handler is called with the interaction as the first argument. If the first argument is null, it means that the interaction collector has been destroyed. diff --git a/apps/website/docs/api-reference/commandkit/types/command-kit-button-builder-on-end.mdx b/apps/website/docs/api-reference/commandkit/types/command-kit-button-builder-on-end.mdx index aa090559..f525d819 100644 --- a/apps/website/docs/api-reference/commandkit/types/command-kit-button-builder-on-end.mdx +++ b/apps/website/docs/api-reference/commandkit/types/command-kit-button-builder-on-end.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## CommandKitButtonBuilderOnEnd - + The handler to run when the interaction collector ends. This handler is called with the reason as the first argument. If the first argument is null, it means that the interaction collector has been destroyed. diff --git a/apps/website/docs/api-reference/commandkit/types/command-kit-element.mdx b/apps/website/docs/api-reference/commandkit/types/command-kit-element.mdx index cfff4652..dea16a5b 100644 --- a/apps/website/docs/api-reference/commandkit/types/command-kit-element.mdx +++ b/apps/website/docs/api-reference/commandkit/types/command-kit-element.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## CommandKitElement - + Represents a CommandKit element with a specific type and data. diff --git a/apps/website/docs/api-reference/commandkit/types/command-kit-modal-builder-interaction-collector-dispatch-context-data.mdx b/apps/website/docs/api-reference/commandkit/types/command-kit-modal-builder-interaction-collector-dispatch-context-data.mdx index c9ef4da4..e0b95585 100644 --- a/apps/website/docs/api-reference/commandkit/types/command-kit-modal-builder-interaction-collector-dispatch-context-data.mdx +++ b/apps/website/docs/api-reference/commandkit/types/command-kit-modal-builder-interaction-collector-dispatch-context-data.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## CommandKitModalBuilderInteractionCollectorDispatchContextData - + The context data for the interaction collector. This includes the autoReset, time, filter, onEnd, and onError properties. diff --git a/apps/website/docs/api-reference/commandkit/types/command-kit-modal-builder-interaction-collector-dispatch.mdx b/apps/website/docs/api-reference/commandkit/types/command-kit-modal-builder-interaction-collector-dispatch.mdx index 5a37a6a0..6162b0e1 100644 --- a/apps/website/docs/api-reference/commandkit/types/command-kit-modal-builder-interaction-collector-dispatch.mdx +++ b/apps/website/docs/api-reference/commandkit/types/command-kit-modal-builder-interaction-collector-dispatch.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## CommandKitModalBuilderInteractionCollectorDispatch - + The handler to run when a modal is submitted. This handler is called with the interaction as the first argument. If the first argument is null, it means that the interaction collector has been destroyed. diff --git a/apps/website/docs/api-reference/commandkit/types/command-kit-modal-builder-on-end.mdx b/apps/website/docs/api-reference/commandkit/types/command-kit-modal-builder-on-end.mdx index 665bd10e..f1f0f7da 100644 --- a/apps/website/docs/api-reference/commandkit/types/command-kit-modal-builder-on-end.mdx +++ b/apps/website/docs/api-reference/commandkit/types/command-kit-modal-builder-on-end.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## CommandKitModalBuilderOnEnd - + The handler to run when the interaction collector ends. This handler is called with the reason as the first argument. If the first argument is null, it means that the interaction collector has been destroyed. diff --git a/apps/website/docs/api-reference/commandkit/types/command-kit-select-menu-builder-interaction-collector-dispatch-context-data.mdx b/apps/website/docs/api-reference/commandkit/types/command-kit-select-menu-builder-interaction-collector-dispatch-context-data.mdx index 380ca0e0..d93ea83d 100644 --- a/apps/website/docs/api-reference/commandkit/types/command-kit-select-menu-builder-interaction-collector-dispatch-context-data.mdx +++ b/apps/website/docs/api-reference/commandkit/types/command-kit-select-menu-builder-interaction-collector-dispatch-context-data.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## CommandKitSelectMenuBuilderInteractionCollectorDispatchContextData - + diff --git a/apps/website/docs/api-reference/commandkit/types/command-kit-select-menu-builder-interaction-collector-dispatch.mdx b/apps/website/docs/api-reference/commandkit/types/command-kit-select-menu-builder-interaction-collector-dispatch.mdx index 03e9a496..39948109 100644 --- a/apps/website/docs/api-reference/commandkit/types/command-kit-select-menu-builder-interaction-collector-dispatch.mdx +++ b/apps/website/docs/api-reference/commandkit/types/command-kit-select-menu-builder-interaction-collector-dispatch.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## CommandKitSelectMenuBuilderInteractionCollectorDispatch - + The handler to run when a modal is submitted. This handler is called with the interaction as the first argument. If the first argument is null, it means that the interaction collector has been destroyed. diff --git a/apps/website/docs/api-reference/commandkit/types/command-kit-select-menu-builder-on-end.mdx b/apps/website/docs/api-reference/commandkit/types/command-kit-select-menu-builder-on-end.mdx index c8aba970..9c624644 100644 --- a/apps/website/docs/api-reference/commandkit/types/command-kit-select-menu-builder-on-end.mdx +++ b/apps/website/docs/api-reference/commandkit/types/command-kit-select-menu-builder-on-end.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## CommandKitSelectMenuBuilderOnEnd - + diff --git a/apps/website/docs/api-reference/commandkit/types/command-metadata-function.mdx b/apps/website/docs/api-reference/commandkit/types/command-metadata-function.mdx index 47368b68..7ada2e8d 100644 --- a/apps/website/docs/api-reference/commandkit/types/command-metadata-function.mdx +++ b/apps/website/docs/api-reference/commandkit/types/command-metadata-function.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## CommandMetadataFunction - + The command metadata function diff --git a/apps/website/docs/api-reference/commandkit/types/common-builder-kit.mdx b/apps/website/docs/api-reference/commandkit/types/common-builder-kit.mdx index d569c0de..688a68cd 100644 --- a/apps/website/docs/api-reference/commandkit/types/common-builder-kit.mdx +++ b/apps/website/docs/api-reference/commandkit/types/common-builder-kit.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## CommonBuilderKit - + Type for the common builder kit that can be used with select menus. diff --git a/apps/website/docs/api-reference/commandkit/types/element-type.mdx b/apps/website/docs/api-reference/commandkit/types/element-type.mdx index afa9442a..4df0d795 100644 --- a/apps/website/docs/api-reference/commandkit/types/element-type.mdx +++ b/apps/website/docs/api-reference/commandkit/types/element-type.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## ElementType - + The type of element that can be used in CommandKit. This is a union of the keys of the ElementType object. diff --git a/apps/website/docs/api-reference/commandkit/types/event-handler.mdx b/apps/website/docs/api-reference/commandkit/types/event-handler.mdx index 79f02e68..d5c11e10 100644 --- a/apps/website/docs/api-reference/commandkit/types/event-handler.mdx +++ b/apps/website/docs/api-reference/commandkit/types/event-handler.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## EventHandler - + Represents an event handler for a specific event. diff --git a/apps/website/docs/api-reference/commandkit/types/mentionable-select-menu-kit-predicate.mdx b/apps/website/docs/api-reference/commandkit/types/mentionable-select-menu-kit-predicate.mdx index 686e142e..8e2ff1ea 100644 --- a/apps/website/docs/api-reference/commandkit/types/mentionable-select-menu-kit-predicate.mdx +++ b/apps/website/docs/api-reference/commandkit/types/mentionable-select-menu-kit-predicate.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## MentionableSelectMenuKitPredicate - + Type for the predicate function that filters mentionable select menu interactions. It receives a MentionableSelectMenuInteraction and returns a boolean or a Promise that resolves to a boolean. diff --git a/apps/website/docs/api-reference/commandkit/types/modal-kit-predicate.mdx b/apps/website/docs/api-reference/commandkit/types/modal-kit-predicate.mdx index e12867c5..6390dd31 100644 --- a/apps/website/docs/api-reference/commandkit/types/modal-kit-predicate.mdx +++ b/apps/website/docs/api-reference/commandkit/types/modal-kit-predicate.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## ModalKitPredicate - + The predicate function that filters modal interactions. It receives a ModalSubmitInteraction and returns a boolean or a Promise that resolves to a boolean. diff --git a/apps/website/docs/api-reference/commandkit/types/on-button-kit-click.mdx b/apps/website/docs/api-reference/commandkit/types/on-button-kit-click.mdx index 2abfbb86..cc5a945e 100644 --- a/apps/website/docs/api-reference/commandkit/types/on-button-kit-click.mdx +++ b/apps/website/docs/api-reference/commandkit/types/on-button-kit-click.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## OnButtonKitClick - + The handler to run when a button is clicked. This handler is called with the interaction as the first argument. If the first argument is null, it means that the interaction collector has been destroyed. diff --git a/apps/website/docs/api-reference/commandkit/types/on-button-kit-end.mdx b/apps/website/docs/api-reference/commandkit/types/on-button-kit-end.mdx index 13e1f039..6a7e9d4d 100644 --- a/apps/website/docs/api-reference/commandkit/types/on-button-kit-end.mdx +++ b/apps/website/docs/api-reference/commandkit/types/on-button-kit-end.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## OnButtonKitEnd - + The handler to run when the interaction collector ends. This handler is called with the reason as the first argument. If the first argument is null, it means that the interaction collector has been destroyed. diff --git a/apps/website/docs/api-reference/commandkit/types/on-channel-select-menu-kit-submit.mdx b/apps/website/docs/api-reference/commandkit/types/on-channel-select-menu-kit-submit.mdx index 8bee5f53..04f12b83 100644 --- a/apps/website/docs/api-reference/commandkit/types/on-channel-select-menu-kit-submit.mdx +++ b/apps/website/docs/api-reference/commandkit/types/on-channel-select-menu-kit-submit.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## OnChannelSelectMenuKitSubmit - + Type for the handler function that is called when the channel select menu is submitted. diff --git a/apps/website/docs/api-reference/commandkit/types/on-mentionable-select-menu-kit-submit.mdx b/apps/website/docs/api-reference/commandkit/types/on-mentionable-select-menu-kit-submit.mdx index d43651af..87a9e658 100644 --- a/apps/website/docs/api-reference/commandkit/types/on-mentionable-select-menu-kit-submit.mdx +++ b/apps/website/docs/api-reference/commandkit/types/on-mentionable-select-menu-kit-submit.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## OnMentionableSelectMenuKitSubmit - + Type for the handler function that is called when the mentionable select menu is submitted. diff --git a/apps/website/docs/api-reference/commandkit/types/on-modal-kit-end.mdx b/apps/website/docs/api-reference/commandkit/types/on-modal-kit-end.mdx index 91e0b083..b4da7d7d 100644 --- a/apps/website/docs/api-reference/commandkit/types/on-modal-kit-end.mdx +++ b/apps/website/docs/api-reference/commandkit/types/on-modal-kit-end.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## OnModalKitEnd - + The handler to run when the interaction collector ends. This handler is called with the reason as the first argument. If the first argument is null, it means that the interaction collector has been destroyed. diff --git a/apps/website/docs/api-reference/commandkit/types/on-modal-kit-submit.mdx b/apps/website/docs/api-reference/commandkit/types/on-modal-kit-submit.mdx index b33cf71f..a8ec5eec 100644 --- a/apps/website/docs/api-reference/commandkit/types/on-modal-kit-submit.mdx +++ b/apps/website/docs/api-reference/commandkit/types/on-modal-kit-submit.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## OnModalKitSubmit - + The handler to run when a modal is submitted. This handler is called with the interaction as the first argument. If the first argument is null, it means that the interaction collector has been destroyed. diff --git a/apps/website/docs/api-reference/commandkit/types/on-role-select-menu-kit-submit.mdx b/apps/website/docs/api-reference/commandkit/types/on-role-select-menu-kit-submit.mdx index 4c5b59eb..7123456c 100644 --- a/apps/website/docs/api-reference/commandkit/types/on-role-select-menu-kit-submit.mdx +++ b/apps/website/docs/api-reference/commandkit/types/on-role-select-menu-kit-submit.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## OnRoleSelectMenuKitSubmit - + Type for the handler function that is called when the role select menu is submitted. diff --git a/apps/website/docs/api-reference/commandkit/types/on-select-menu-kit-end.mdx b/apps/website/docs/api-reference/commandkit/types/on-select-menu-kit-end.mdx index 896fb5fa..c6dd9509 100644 --- a/apps/website/docs/api-reference/commandkit/types/on-select-menu-kit-end.mdx +++ b/apps/website/docs/api-reference/commandkit/types/on-select-menu-kit-end.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## OnSelectMenuKitEnd - + The handler to run when the interaction collector ends. This handler is called with the reason as the first argument. If the first argument is null, it means that the interaction collector has been destroyed. diff --git a/apps/website/docs/api-reference/commandkit/types/on-select-menu-kit-submit.mdx b/apps/website/docs/api-reference/commandkit/types/on-select-menu-kit-submit.mdx index efd14de9..9d798014 100644 --- a/apps/website/docs/api-reference/commandkit/types/on-select-menu-kit-submit.mdx +++ b/apps/website/docs/api-reference/commandkit/types/on-select-menu-kit-submit.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## OnSelectMenuKitSubmit - + The handler to run when a modal is submitted. This handler is called with the interaction as the first argument. If the first argument is null, it means that the interaction collector has been destroyed. diff --git a/apps/website/docs/api-reference/commandkit/types/on-string-select-menu-kit-submit.mdx b/apps/website/docs/api-reference/commandkit/types/on-string-select-menu-kit-submit.mdx index 3ec909fb..bb473a3d 100644 --- a/apps/website/docs/api-reference/commandkit/types/on-string-select-menu-kit-submit.mdx +++ b/apps/website/docs/api-reference/commandkit/types/on-string-select-menu-kit-submit.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## OnStringSelectMenuKitSubmit - + Type for the handler function that is called when the string select menu is submitted. diff --git a/apps/website/docs/api-reference/commandkit/types/on-user-select-menu-kit-submit.mdx b/apps/website/docs/api-reference/commandkit/types/on-user-select-menu-kit-submit.mdx index e42cca32..33891b33 100644 --- a/apps/website/docs/api-reference/commandkit/types/on-user-select-menu-kit-submit.mdx +++ b/apps/website/docs/api-reference/commandkit/types/on-user-select-menu-kit-submit.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## OnUserSelectMenuKitSubmit - + Type for the handler function that is called when the user select menu is submitted. diff --git a/apps/website/docs/api-reference/commandkit/types/poll-children-type.mdx b/apps/website/docs/api-reference/commandkit/types/poll-children-type.mdx new file mode 100644 index 00000000..9d4efbfa --- /dev/null +++ b/apps/website/docs/api-reference/commandkit/types/poll-children-type.mdx @@ -0,0 +1,23 @@ +--- +title: "PollChildrenType" +isDefaultIndex: false +generated: true +--- + +import MemberInfo from '@site/src/components/MemberInfo'; +import GenerationInfo from '@site/src/components/GenerationInfo'; +import MemberDescription from '@site/src/components/MemberDescription'; + + + + +## PollChildrenType + + + + + +```ts title="Signature" +type PollChildrenType = | PollChild + | PollChild +``` diff --git a/apps/website/docs/api-reference/commandkit/types/resolve-builder-interaction.mdx b/apps/website/docs/api-reference/commandkit/types/resolve-builder-interaction.mdx index cce04e76..68884a61 100644 --- a/apps/website/docs/api-reference/commandkit/types/resolve-builder-interaction.mdx +++ b/apps/website/docs/api-reference/commandkit/types/resolve-builder-interaction.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## ResolveBuilderInteraction - + Type that resolves to the specific interaction type based on the builder type. This is used to ensure that the interaction type matches the builder type. diff --git a/apps/website/docs/api-reference/commandkit/types/role-select-menu-kit-predicate.mdx b/apps/website/docs/api-reference/commandkit/types/role-select-menu-kit-predicate.mdx index eda4869b..4e5f6724 100644 --- a/apps/website/docs/api-reference/commandkit/types/role-select-menu-kit-predicate.mdx +++ b/apps/website/docs/api-reference/commandkit/types/role-select-menu-kit-predicate.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## RoleSelectMenuKitPredicate - + Type for the predicate function that filters role select menu interactions. It receives a RoleSelectMenuInteraction and returns a boolean or a Promise that resolves to a boolean. diff --git a/apps/website/docs/api-reference/commandkit/types/select-menu-kit-predicate.mdx b/apps/website/docs/api-reference/commandkit/types/select-menu-kit-predicate.mdx index 05102075..8a8feab1 100644 --- a/apps/website/docs/api-reference/commandkit/types/select-menu-kit-predicate.mdx +++ b/apps/website/docs/api-reference/commandkit/types/select-menu-kit-predicate.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## SelectMenuKitPredicate - + The predicate function that filters select menu interactions. It receives an interaction and returns a boolean or a Promise that resolves to a boolean. diff --git a/apps/website/docs/api-reference/commandkit/types/string-encodable.mdx b/apps/website/docs/api-reference/commandkit/types/string-encodable.mdx index 2c70c24f..33c84447 100644 --- a/apps/website/docs/api-reference/commandkit/types/string-encodable.mdx +++ b/apps/website/docs/api-reference/commandkit/types/string-encodable.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## StringEncodable - + Represents a type that can be encoded as a string. diff --git a/apps/website/docs/api-reference/commandkit/types/string-select-menu-kit-predicate.mdx b/apps/website/docs/api-reference/commandkit/types/string-select-menu-kit-predicate.mdx index dae26b83..a5f6b00b 100644 --- a/apps/website/docs/api-reference/commandkit/types/string-select-menu-kit-predicate.mdx +++ b/apps/website/docs/api-reference/commandkit/types/string-select-menu-kit-predicate.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## StringSelectMenuKitPredicate - + Type for the predicate function that filters string select menu interactions. It receives a StringSelectMenuInteraction and returns a boolean or a Promise that resolves to a boolean. diff --git a/apps/website/docs/api-reference/commandkit/types/string-select-menu-option-props.mdx b/apps/website/docs/api-reference/commandkit/types/string-select-menu-option-props.mdx index 19bafb92..c059a1a7 100644 --- a/apps/website/docs/api-reference/commandkit/types/string-select-menu-option-props.mdx +++ b/apps/website/docs/api-reference/commandkit/types/string-select-menu-option-props.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## StringSelectMenuOptionProps - + Represents the properties for a string select menu option. This can be either a SelectMenuComponentOptionData or an APISelectMenuOption. diff --git a/apps/website/docs/api-reference/commandkit/types/user-select-menu-kit-predicate.mdx b/apps/website/docs/api-reference/commandkit/types/user-select-menu-kit-predicate.mdx index 54754c83..683745ca 100644 --- a/apps/website/docs/api-reference/commandkit/types/user-select-menu-kit-predicate.mdx +++ b/apps/website/docs/api-reference/commandkit/types/user-select-menu-kit-predicate.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## UserSelectMenuKitPredicate - + Type for the predicate function that filters user select menu interactions. It receives a UserSelectMenuInteraction and returns a boolean or a Promise that resolves to a boolean. diff --git a/apps/website/docs/api-reference/commandkit/variables/element-type.mdx b/apps/website/docs/api-reference/commandkit/variables/element-type.mdx index 4ae8628b..525b108c 100644 --- a/apps/website/docs/api-reference/commandkit/variables/element-type.mdx +++ b/apps/website/docs/api-reference/commandkit/variables/element-type.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## ElementType - + Represents the types of elements that can be used in CommandKit. diff --git a/apps/website/docs/guide/04-jsx-components/02-discord-components-v1/01-action-row.mdx b/apps/website/docs/guide/04-jsx-components/02-interactive-components/01-action-row.mdx similarity index 100% rename from apps/website/docs/guide/04-jsx-components/02-discord-components-v1/01-action-row.mdx rename to apps/website/docs/guide/04-jsx-components/02-interactive-components/01-action-row.mdx diff --git a/apps/website/docs/guide/04-jsx-components/02-discord-components-v1/02-button.mdx b/apps/website/docs/guide/04-jsx-components/02-interactive-components/02-button.mdx similarity index 100% rename from apps/website/docs/guide/04-jsx-components/02-discord-components-v1/02-button.mdx rename to apps/website/docs/guide/04-jsx-components/02-interactive-components/02-button.mdx diff --git a/apps/website/docs/guide/04-jsx-components/02-discord-components-v1/03-select-menu.mdx b/apps/website/docs/guide/04-jsx-components/02-interactive-components/03-select-menu.mdx similarity index 100% rename from apps/website/docs/guide/04-jsx-components/02-discord-components-v1/03-select-menu.mdx rename to apps/website/docs/guide/04-jsx-components/02-interactive-components/03-select-menu.mdx diff --git a/apps/website/docs/guide/04-jsx-components/02-discord-components-v1/04-modal.mdx b/apps/website/docs/guide/04-jsx-components/02-interactive-components/04-modal.mdx similarity index 100% rename from apps/website/docs/guide/04-jsx-components/02-discord-components-v1/04-modal.mdx rename to apps/website/docs/guide/04-jsx-components/02-interactive-components/04-modal.mdx diff --git a/apps/website/docs/guide/04-jsx-components/02-interactive-components/05-poll.mdx b/apps/website/docs/guide/04-jsx-components/02-interactive-components/05-poll.mdx new file mode 100644 index 00000000..fb690b40 --- /dev/null +++ b/apps/website/docs/guide/04-jsx-components/02-interactive-components/05-poll.mdx @@ -0,0 +1,213 @@ +--- +title: Poll +--- + +The `Poll` component allows you to create interactive polls in Discord messages. Users can vote on poll questions with multiple answer options, and the results are displayed in real-time. Polls can be open for up to 32 days (768 hours). + +## Basic usage + +```tsx title="src/app/commands/poll-example.tsx" +import { + CommandData, + Poll, + PollQuestion, + PollAnswer, + ChatInputCommand, +} from 'commandkit'; +import { PollData } from 'discord.js'; + +export const command: CommandData = { + name: 'poll', + description: 'Create a poll', +}; + +export const chatInput: ChatInputCommand = async (ctx) => { + const poll: PollData = ( + + What's your favorite programming language? + JavaScript + TypeScript + Python + Rust + + ); + + await ctx.interaction.reply({ poll }); +}; +``` + +## Poll duration + +Set how long the poll should be active (in hours). The duration defaults to 24 hours and can be up to 32 days (768 hours): + +```tsx title="src/app/commands/poll-duration.tsx" +import { + CommandData, + Poll, + PollQuestion, + PollAnswer, + ChatInputCommand, +} from 'commandkit'; +import { PollData } from 'discord.js'; + +export const command: CommandData = { + name: 'quickpoll', + description: 'Create a quick poll', +}; + +export const chatInput: ChatInputCommand = async (ctx) => { + const poll: PollData = ( + + Quick question: Coffee or tea? + Coffee + Tea + + ); + + await ctx.interaction.reply({ poll }); +}; +``` + +For longer polls, you can specify durations up to 32 days: + +```tsx title="src/app/commands/long-poll.tsx" +import { + CommandData, + Poll, + PollQuestion, + PollAnswer, + ChatInputCommand, +} from 'commandkit'; +import { PollData } from 'discord.js'; + +export const command: CommandData = { + name: 'weeklypoll', + description: 'Create a weekly poll', +}; + +export const chatInput: ChatInputCommand = async (ctx) => { + const poll: PollData = ( + + Weekly poll: What should we work on next? + New features + Bug fixes + Documentation + UI improvements + + ); + + await ctx.interaction.reply({ poll }); +}; +``` + +## Multiple choice polls + +Allow users to select multiple answers: + +```tsx title="src/app/commands/multiselect-poll.tsx" +import { + CommandData, + Poll, + PollQuestion, + PollAnswer, + ChatInputCommand, +} from 'commandkit'; +import { PollData } from 'discord.js'; + +export const command: CommandData = { + name: 'multiselect', + description: 'Create a multiple choice poll', +}; + +export const chatInput: ChatInputCommand = async (ctx) => { + const poll: PollData = ( + + + Which social media platforms do you use? (Select all that apply) + + Facebook + Twitter + Instagram + LinkedIn + TikTok + YouTube + + ); + + await ctx.interaction.reply({ poll }); +}; +``` + +## Poll layout types + +Customize how your poll appears using different layout types: + +```tsx title="src/app/commands/poll-layouts.tsx" +import { + CommandData, + Poll, + PollQuestion, + PollAnswer, + ChatInputCommand, +} from 'commandkit'; +import { PollData, PollLayoutType } from 'discord.js'; + +export const command: CommandData = { + name: 'layoutpoll', + description: 'Create a poll with custom layout', +}; + +export const chatInput: ChatInputCommand = async (ctx) => { + const poll: PollData = ( + + List layout poll + First item + Second item + Third item + + ); + + await ctx.interaction.reply({ poll }); +}; +``` + +## Poll with media + +Add images or other media to your poll questions: + +```tsx title="src/app/commands/media-poll.tsx" +import { + CommandData, + Poll, + PollQuestion, + PollAnswer, + ChatInputCommand, +} from 'commandkit'; +import { PollData } from 'discord.js'; + +export const command: CommandData = { + name: 'mediapoll', + description: 'Create a poll with media', +}; + +export const chatInput: ChatInputCommand = async (ctx) => { + const poll: PollData = ( + + + Choose your favorite logo design + + Design A + Design B + Design C + + ); + + await ctx.interaction.reply({ poll }); +}; +``` diff --git a/apps/website/docs/guide/04-jsx-components/03-discord-components-v2/01-text-display.mdx b/apps/website/docs/guide/04-jsx-components/03-display-components/01-text-display.mdx similarity index 100% rename from apps/website/docs/guide/04-jsx-components/03-discord-components-v2/01-text-display.mdx rename to apps/website/docs/guide/04-jsx-components/03-display-components/01-text-display.mdx diff --git a/apps/website/docs/guide/04-jsx-components/03-discord-components-v2/02-container.mdx b/apps/website/docs/guide/04-jsx-components/03-display-components/02-container.mdx similarity index 100% rename from apps/website/docs/guide/04-jsx-components/03-discord-components-v2/02-container.mdx rename to apps/website/docs/guide/04-jsx-components/03-display-components/02-container.mdx diff --git a/apps/website/docs/guide/04-jsx-components/03-discord-components-v2/03-media-gallery.mdx b/apps/website/docs/guide/04-jsx-components/03-display-components/03-media-gallery.mdx similarity index 100% rename from apps/website/docs/guide/04-jsx-components/03-discord-components-v2/03-media-gallery.mdx rename to apps/website/docs/guide/04-jsx-components/03-display-components/03-media-gallery.mdx diff --git a/apps/website/docs/guide/04-jsx-components/03-discord-components-v2/04-separator.mdx b/apps/website/docs/guide/04-jsx-components/03-display-components/04-separator.mdx similarity index 100% rename from apps/website/docs/guide/04-jsx-components/03-discord-components-v2/04-separator.mdx rename to apps/website/docs/guide/04-jsx-components/03-display-components/04-separator.mdx diff --git a/apps/website/docs/guide/04-jsx-components/03-discord-components-v2/05-file.mdx b/apps/website/docs/guide/04-jsx-components/03-display-components/05-file.mdx similarity index 100% rename from apps/website/docs/guide/04-jsx-components/03-discord-components-v2/05-file.mdx rename to apps/website/docs/guide/04-jsx-components/03-display-components/05-file.mdx diff --git a/apps/website/docs/guide/04-jsx-components/03-discord-components-v2/06-section.mdx b/apps/website/docs/guide/04-jsx-components/03-display-components/06-section.mdx similarity index 100% rename from apps/website/docs/guide/04-jsx-components/03-discord-components-v2/06-section.mdx rename to apps/website/docs/guide/04-jsx-components/03-display-components/06-section.mdx diff --git a/apps/website/docs/guide/04-jsx-components/03-display-components/07-label.mdx b/apps/website/docs/guide/04-jsx-components/03-display-components/07-label.mdx new file mode 100644 index 00000000..6654de00 --- /dev/null +++ b/apps/website/docs/guide/04-jsx-components/03-display-components/07-label.mdx @@ -0,0 +1,167 @@ +--- +title: Label +--- + +The `Label` component wraps modal components with text as a label and optional description, providing better organization and context for form elements. + +## Basic usage + +```tsx title="src/app/commands/label-example.tsx" +import { + CommandData, + Modal, + ShortInput, + Label, + OnModalKitSubmit, + ChatInputCommandContext, +} from 'commandkit'; +import { MessageFlags } from 'discord.js'; + +export const command: CommandData = { + name: 'profile', + description: 'Create your profile', +}; + +const handleSubmit: OnModalKitSubmit = async (interaction, context) => { + const name = interaction.fields.getTextInputValue('name'); + + await interaction.reply({ + content: `Hello, ${name}!`, + flags: MessageFlags.Ephemeral, + }); + + context.dispose(); +}; + +export const chatInput: ChatInputCommandContext = async (ctx) => { + const modal = ( + + + + ); + + await ctx.interaction.showModal(modal); +}; +``` + +## With description + +Labels can include descriptive text to provide additional context: + +```tsx title="src/app/commands/label-description.tsx" +import { + CommandData, + Modal, + ShortInput, + ParagraphInput, + Label, + OnModalKitSubmit, + ChatInputCommandContext, +} from 'commandkit'; +import { MessageFlags } from 'discord.js'; + +export const command: CommandData = { + name: 'profile', + description: 'Create your profile', +}; + +const handleSubmit: OnModalKitSubmit = async (interaction, context) => { + const username = interaction.fields.getTextInputValue('username'); + const bio = interaction.fields.getTextInputValue('bio'); + + await interaction.reply({ + content: `**Username:** ${username}\n**Bio:** ${bio}`, + flags: MessageFlags.Ephemeral, + }); + + context.dispose(); +}; + +export const chatInput: ChatInputCommandContext = async (ctx) => { + const modal = ( + + + + + + ); + + await ctx.interaction.showModal(modal); +}; +``` + +## Multiple labels + +Use multiple labels to organize different sections of your modal: + +```tsx title="src/app/commands/multiple-labels.tsx" +import { + CommandData, + Modal, + ShortInput, + ParagraphInput, + Label, + OnModalKitSubmit, + ChatInputCommandContext, +} from 'commandkit'; +import { MessageFlags } from 'discord.js'; + +export const command: CommandData = { + name: 'contact', + description: 'Send us a message', +}; + +const handleSubmit: OnModalKitSubmit = async (interaction, context) => { + const firstName = interaction.fields.getTextInputValue('firstName'); + const lastName = interaction.fields.getTextInputValue('lastName'); + const email = interaction.fields.getTextInputValue('email'); + const message = interaction.fields.getTextInputValue('message'); + + await interaction.reply({ + content: `**Contact Form Submitted**\n**Name:** ${firstName} ${lastName}\n**Email:** ${email}\n**Message:** ${message}`, + flags: MessageFlags.Ephemeral, + }); + + context.dispose(); +}; + +export const chatInput: ChatInputCommandContext = async (ctx) => { + const modal = ( + + + + + + + + ); + + await ctx.interaction.showModal(modal); +}; +``` diff --git a/packages/commandkit/src/analytics/analytics-engine.ts b/packages/commandkit/src/analytics/analytics-engine.ts index 6ac3882b..a84222f5 100644 --- a/packages/commandkit/src/analytics/analytics-engine.ts +++ b/packages/commandkit/src/analytics/analytics-engine.ts @@ -1,4 +1,4 @@ -import { CommandKit } from '../commandkit'; +import type { CommandKit } from '../commandkit'; import { Logger } from '../logger/Logger'; import { AnalyticsEvent, diff --git a/packages/commandkit/src/app/commands/Context.ts b/packages/commandkit/src/app/commands/Context.ts index 5510b6b1..375d5b50 100644 --- a/packages/commandkit/src/app/commands/Context.ts +++ b/packages/commandkit/src/app/commands/Context.ts @@ -12,7 +12,7 @@ import { TextBasedChannel, UserContextMenuCommandInteraction, } from 'discord.js'; -import { CommandKit } from '../../commandkit'; +import type { CommandKit } from '../../commandkit'; import { GenericFunction, getContext } from '../../context/async-context'; import { CommandKitEnvironment } from '../../context/environment'; import { diff --git a/packages/commandkit/src/app/events/EventWorkerContext.ts b/packages/commandkit/src/app/events/EventWorkerContext.ts index 8ec6e437..9d1cfe8c 100644 --- a/packages/commandkit/src/app/events/EventWorkerContext.ts +++ b/packages/commandkit/src/app/events/EventWorkerContext.ts @@ -1,6 +1,6 @@ import { AsyncLocalStorage } from 'node:async_hooks'; import { ParsedEvent } from '../router'; -import { CommandKit } from '../../commandkit'; +import type { CommandKit } from '../../commandkit'; /** * Context object containing information about the currently executing event. diff --git a/packages/commandkit/src/app/handlers/AppEventsHandler.ts b/packages/commandkit/src/app/handlers/AppEventsHandler.ts index 0f42fddd..2415b44a 100644 --- a/packages/commandkit/src/app/handlers/AppEventsHandler.ts +++ b/packages/commandkit/src/app/handlers/AppEventsHandler.ts @@ -1,5 +1,5 @@ import { Collection } from 'discord.js'; -import { CommandKit } from '../../commandkit'; +import type { CommandKit } from '../../commandkit'; import { ListenerFunction } from '../../events/CommandKitEventsChannel'; import { Logger } from '../../logger/Logger'; import { toFileURL } from '../../utils/resolve-file-url'; diff --git a/packages/commandkit/src/app/register/CommandRegistrar.ts b/packages/commandkit/src/app/register/CommandRegistrar.ts index 3e96969c..5e1afce8 100644 --- a/packages/commandkit/src/app/register/CommandRegistrar.ts +++ b/packages/commandkit/src/app/register/CommandRegistrar.ts @@ -1,5 +1,5 @@ import { ApplicationCommandType, REST, Routes } from 'discord.js'; -import { CommandKit } from '../../commandkit'; +import type { CommandKit } from '../../commandkit'; import { CommandData, CommandMetadata } from '../../types'; import { Logger } from '../../logger/Logger'; diff --git a/packages/commandkit/src/cli/app-process.ts b/packages/commandkit/src/cli/app-process.ts index 92a1199c..4bdaf05c 100644 --- a/packages/commandkit/src/cli/app-process.ts +++ b/packages/commandkit/src/cli/app-process.ts @@ -36,7 +36,7 @@ export function createAppProcess( '--enable-source-maps', ]; - const nodeOptions = process.env.NODE_OPTIONS; + const nodeOptions = process.env.CK_NODE_OPTIONS || process.env.NODE_OPTIONS; let nodeArgs = [...baseArgs]; if (nodeOptions) { diff --git a/packages/commandkit/src/cli/build.ts b/packages/commandkit/src/cli/build.ts index 6c7213fb..d5599d40 100644 --- a/packages/commandkit/src/cli/build.ts +++ b/packages/commandkit/src/cli/build.ts @@ -219,10 +219,10 @@ async function injectEntryFile( const code = `/* Entrypoint File Generated By CommandKit */ ${isDev ? `\n\n// Injected for development\n${wrapInAsyncIIFE([envScript(isDev), emitAntiCrashScript ? antiCrashScript : ''])}\n\n` : wrapInAsyncIIFE([envScript(isDev)])} -import { commandkit } from 'commandkit'; -import { Client } from 'discord.js'; async function bootstrap() { + const { Client } = await import('discord.js'); + const { commandkit } = await import('commandkit'); const app = await import('./app.js').then((m) => m.default ?? m); if (!app || !(app instanceof Client)) { diff --git a/packages/commandkit/src/components/common/element.ts b/packages/commandkit/src/components/common/element.ts index 9f2b6de0..2c9afc1c 100644 --- a/packages/commandkit/src/components/common/element.ts +++ b/packages/commandkit/src/components/common/element.ts @@ -1,7 +1,6 @@ -import { ActionRowBuilder, TextInputBuilder } from 'discord.js'; -import type { ButtonKit } from '../v1/button/ButtonKit'; -import { warnUnstable } from '../../utils/warn-unstable'; -import { ModalKit } from '../v1/modal/ModalKit'; +import type { ActionRowBuilder, TextInputBuilder } from 'discord.js'; +import type { ButtonKit } from '../interactive/button/ButtonKit'; +import type { ModalKit } from '../interactive/modal/ModalKit'; /** * Represents the types of elements that can be used in CommandKit. diff --git a/packages/commandkit/src/components/v2/common.ts b/packages/commandkit/src/components/display/common.ts similarity index 78% rename from packages/commandkit/src/components/v2/common.ts rename to packages/commandkit/src/components/display/common.ts index 5f0177b1..8a7b4f19 100644 --- a/packages/commandkit/src/components/v2/common.ts +++ b/packages/commandkit/src/components/display/common.ts @@ -4,7 +4,7 @@ import { ComponentBuilder } from 'discord.js'; * @private */ export function applyId(props: { id?: number }, component: ComponentBuilder) { - if (props.id != null) { + if (props.id != null && 'setId' in component) { component.setId(props.id); } } diff --git a/packages/commandkit/src/components/v2/container.ts b/packages/commandkit/src/components/display/container.ts similarity index 100% rename from packages/commandkit/src/components/v2/container.ts rename to packages/commandkit/src/components/display/container.ts diff --git a/packages/commandkit/src/components/v2/file.ts b/packages/commandkit/src/components/display/file.ts similarity index 100% rename from packages/commandkit/src/components/v2/file.ts rename to packages/commandkit/src/components/display/file.ts diff --git a/packages/commandkit/src/components/v2/index.ts b/packages/commandkit/src/components/display/index.ts similarity index 78% rename from packages/commandkit/src/components/v2/index.ts rename to packages/commandkit/src/components/display/index.ts index 05de7138..56c1d056 100644 --- a/packages/commandkit/src/components/v2/index.ts +++ b/packages/commandkit/src/components/display/index.ts @@ -4,3 +4,5 @@ export * from './media-gallery'; export * from './section'; export * from './separator'; export * from './text-display'; +export * from './label'; +export * from './poll'; diff --git a/packages/commandkit/src/components/display/label.ts b/packages/commandkit/src/components/display/label.ts new file mode 100644 index 00000000..d8dcda8f --- /dev/null +++ b/packages/commandkit/src/components/display/label.ts @@ -0,0 +1,43 @@ +import { + APIComponentInLabel, + LabelBuilder, + type LabelBuilderData, +} from 'discord.js'; +import { applyId } from './common'; + +/** + * The label properties for the label component. + */ +export interface LabelProps + extends Omit { + /** + * The component that will be wrapped by the label component. + */ + children: LabelBuilderData['component'] & {}; +} + +/** + * The label component wraps modal components with text as a label and optional description. + * @param props The label properties. + * @returns The label builder instance. + * @example ```tsx + * import { Label } from 'commandkit'; + * + * const label = ; + * ``` + */ +export function Label(props: LabelProps) { + const { children, id, ...rest } = props; + + const label = new LabelBuilder({ + ...rest, + // channel select menu builder is missing? + component: children as unknown as APIComponentInLabel, + }); + + applyId(props, label); + + return label; +} diff --git a/packages/commandkit/src/components/v2/media-gallery.ts b/packages/commandkit/src/components/display/media-gallery.ts similarity index 100% rename from packages/commandkit/src/components/v2/media-gallery.ts rename to packages/commandkit/src/components/display/media-gallery.ts diff --git a/packages/commandkit/src/components/display/poll.ts b/packages/commandkit/src/components/display/poll.ts new file mode 100644 index 00000000..3604101c --- /dev/null +++ b/packages/commandkit/src/components/display/poll.ts @@ -0,0 +1,132 @@ +import { + PollLayoutType, + type PollAnswerData, + type PollData, + type PollQuestionMedia, +} from 'discord.js'; + +/** + * The poll properties for the poll component. + */ +export interface PollProps + extends Partial> { + /** + * The poll children components (question and answers). + */ + children: PollChildrenType[]; +} + +enum PollChildType { + Answer, + Question, +} + +type PollChild = T & { + $$typeof: Type; +}; + +export type PollChildrenType = + | PollChild + | PollChild; + +/** + * The poll component creates a Discord poll with a question and multiple answer options. + * @param props The poll properties. + * @returns The poll data object. + * @example ```tsx + * import { Poll, PollQuestion, PollAnswer } from 'commandkit'; + * + * const poll = + * What's your favorite color? + * Red + * Blue + * Green + * ; + * ``` + */ +export function Poll({ children, ...props }: PollProps): PollData { + const question = children.find( + (child): child is PollChild => + child.$$typeof === PollChildType.Question, + ); + + if (!question) { + throw new Error('Poll question is required'); + } + + const answers = children.filter( + (child): child is PollChild => + child.$$typeof === PollChildType.Answer, + ); + + const { children: questionChildren, ...questionProps } = question; + const { duration, allowMultiselect, layoutType, ...restProps } = props; + + return { + duration: duration ?? 24, + allowMultiselect: allowMultiselect ?? false, + layoutType: layoutType ?? PollLayoutType.Default, + ...restProps, + question: { text: questionChildren, ...questionProps }, + answers: answers.map( + ({ children: answerChildren, $$typeof, ...answerProps }) => ({ + text: answerChildren, + ...answerProps, + }), + ), + }; +} + +/** + * The poll question properties for the poll question component. + */ +export interface PollQuestionProps extends Omit { + /** + * The question text content. + */ + children: PollQuestionMedia['text']; +} + +/** + * The poll question component defines the question text for a Discord poll. + * @param props The poll question properties. + * @returns The poll question media object. + * @example ```tsx + * import { PollQuestion } from 'commandkit'; + * + * const question = What's your favorite programming language?; + * ``` + */ +export function PollQuestion({ + children, + ...props +}: PollQuestionProps): PollChild { + return { ...props, text: children, $$typeof: PollChildType.Question }; +} + +/** + * The poll answer properties for the poll answer component. + */ +export interface PollAnswerProps extends Omit { + /** + * The answer text content. + */ + children: PollAnswerData['text']; +} + +/** + * The poll answer component defines an answer option for a Discord poll. + * @param props The poll answer properties. + * @returns The poll answer data object. + * @example ```tsx + * import { PollAnswer } from 'commandkit'; + * + * const answer = TypeScript; + * ``` + */ +export function PollAnswer({ + children, + ...props +}: PollAnswerProps): PollChild { + return { ...props, text: children, $$typeof: PollChildType.Answer }; +} diff --git a/packages/commandkit/src/components/v2/section.ts b/packages/commandkit/src/components/display/section.ts similarity index 100% rename from packages/commandkit/src/components/v2/section.ts rename to packages/commandkit/src/components/display/section.ts diff --git a/packages/commandkit/src/components/v2/separator.ts b/packages/commandkit/src/components/display/separator.ts similarity index 100% rename from packages/commandkit/src/components/v2/separator.ts rename to packages/commandkit/src/components/display/separator.ts diff --git a/packages/commandkit/src/components/v2/text-display.ts b/packages/commandkit/src/components/display/text-display.ts similarity index 100% rename from packages/commandkit/src/components/v2/text-display.ts rename to packages/commandkit/src/components/display/text-display.ts diff --git a/packages/commandkit/src/components/index.ts b/packages/commandkit/src/components/index.ts index d0ed748b..68e5ab4a 100644 --- a/packages/commandkit/src/components/index.ts +++ b/packages/commandkit/src/components/index.ts @@ -1,27 +1,26 @@ // action row -export * from './v1/action-row/ActionRow'; +export * from './interactive/action-row/ActionRow'; // buttons -export * from './v1/button/ButtonKit'; -export * from './v1/button/Button'; +export * from './interactive/button/ButtonKit'; +export * from './interactive/button/Button'; // modals -export * from './v1/modal/ModalKit'; -export * from './v1/modal/Modal'; +export * from './interactive/modal/ModalKit'; +export * from './interactive/modal/Modal'; // select menus -export * from './v1/select-menu/StringSelectMenuKit'; -export * from './v1/select-menu/ChannelSelectMenuKit'; -export * from './v1/select-menu/MentionableSelectMenuKit'; -export * from './v1/select-menu/UserSelectMenuKit'; -export * from './v1/select-menu/RoleSelectMenuKit'; -export * from './v1/select-menu/SelectMenu'; -export * from './v1/select-menu/common'; +export * from './interactive/select-menu/StringSelectMenuKit'; +export * from './interactive/select-menu/ChannelSelectMenuKit'; +export * from './interactive/select-menu/MentionableSelectMenuKit'; +export * from './interactive/select-menu/UserSelectMenuKit'; +export * from './interactive/select-menu/RoleSelectMenuKit'; +export * from './interactive/select-menu/SelectMenu'; +export * from './interactive/select-menu/common'; // v2 -export * from './v2/index'; +export * from './display/index'; // common export * from './common/element'; export * from './common/types'; -export * from './common/EventInterceptor'; diff --git a/packages/commandkit/src/components/v1/action-row/ActionRow.ts b/packages/commandkit/src/components/interactive/action-row/ActionRow.ts similarity index 100% rename from packages/commandkit/src/components/v1/action-row/ActionRow.ts rename to packages/commandkit/src/components/interactive/action-row/ActionRow.ts diff --git a/packages/commandkit/src/components/v1/button/Button.ts b/packages/commandkit/src/components/interactive/button/Button.ts similarity index 100% rename from packages/commandkit/src/components/v1/button/Button.ts rename to packages/commandkit/src/components/interactive/button/Button.ts diff --git a/packages/commandkit/src/components/v1/button/ButtonKit.ts b/packages/commandkit/src/components/interactive/button/ButtonKit.ts similarity index 99% rename from packages/commandkit/src/components/v1/button/ButtonKit.ts rename to packages/commandkit/src/components/interactive/button/ButtonKit.ts index 793d218e..af3a1eaa 100644 --- a/packages/commandkit/src/components/v1/button/ButtonKit.ts +++ b/packages/commandkit/src/components/interactive/button/ButtonKit.ts @@ -209,6 +209,7 @@ export class ButtonKit extends ButtonBuilder { } const interceptor = this.#getEventInterceptor(); + if (!interceptor) return; this.#unsub = interceptor.subscribe( Events.InteractionCreate, diff --git a/packages/commandkit/src/components/v1/modal/Modal.ts b/packages/commandkit/src/components/interactive/modal/Modal.ts similarity index 82% rename from packages/commandkit/src/components/v1/modal/Modal.ts rename to packages/commandkit/src/components/interactive/modal/Modal.ts index ec88ca9d..c1c6fb1b 100644 --- a/packages/commandkit/src/components/v1/modal/Modal.ts +++ b/packages/commandkit/src/components/interactive/modal/Modal.ts @@ -1,4 +1,4 @@ -import { ActionRowBuilder, TextInputBuilder, TextInputStyle } from 'discord.js'; +import { TextInputBuilder, TextInputStyle } from 'discord.js'; import { MaybeArray } from '../../common/types'; import { CommandKitElement } from '../../common/element'; import { @@ -8,6 +8,7 @@ import { OnModalKitSubmit, } from './ModalKit'; import { EventInterceptorErrorHandler } from '../../common/EventInterceptor'; +import { warnDeprecated } from '../../../utils/warning'; /** * The properties for the modal component. @@ -15,7 +16,7 @@ import { EventInterceptorErrorHandler } from '../../common/EventInterceptor'; export interface ModalProps { customId?: string; title: string; - children?: MaybeArray; + children?: MaybeArray; onSubmit?: OnModalKitSubmit; onEnd?: OnModalKitEnd; onError?: EventInterceptorErrorHandler; @@ -48,17 +49,11 @@ export function Modal(props: ModalProps): CommandKitElement<'modal'> { } if (props.children) { - const childs = ( - Array.isArray(props.children) ? props.children : [props.children] - ) - .map((c) => { - if (c instanceof ActionRowBuilder) return c; - if (c instanceof TextInputBuilder) - return new ActionRowBuilder().addComponents(c); - }) - .filter((c): c is ActionRowBuilder => c != null); - - modal.addComponents(childs); + const childs = Array.isArray(props.children) + ? props.children + : [props.children]; + + modal.components.push(...childs); } if (props.onEnd) { @@ -74,7 +69,10 @@ export function Modal(props: ModalProps): CommandKitElement<'modal'> { export interface TextInputProps { customId: string; - label: string; + /** + * @deprecated use the `