Skip to content

Embeds Components v2#313

Open
LemonCubeDev wants to merge 17 commits into
merlinfuchs:mainfrom
LemonCubeDev:comps-v2
Open

Embeds Components v2#313
LemonCubeDev wants to merge 17 commits into
merlinfuchs:mainfrom
LemonCubeDev:comps-v2

Conversation

@LemonCubeDev

Copy link
Copy Markdown

This pull request adds the components v2 features for embeds. It uses code submitted in #291 along with code from merlinfuchs/embed-generator, modified to support the other components. This is a feature that was heavily requested by the community. I have not done any testing, but I am hopeful that it will work.

Features:

  • Action Row (Type 1)
  • Button (Type 2)
  • Select Menu (Type 3)
  • Section (Type 9)
  • Text Display (Type 10)
  • Thumbnail (Type 11)
  • Media Gallery (Type 12)
  • File (Type 13)
  • Separator (Type 14)
  • Container (Type 17)

LoggeL and others added 14 commits February 1, 2026 10:46
Add entry_component_select node type similar to entry_component_button,
allowing users to create flows triggered by Discord select menu interactions.

Frontend changes:
- Add FlowNodeEntryComponentSelect component
- Register entry_component_select in node types and components
- Add nodeEntryComponentSelectDataSchema
- Add component_select to FlowContextType
- Include component_select in Responses action context

Backend changes:
- Add FlowNodeTypeEntryComponentSelect constant
- Add CompileComponentSelect function
- Add IsComponentSelectEntry helper
- Update IsEntry to include select component
- Update execute.go to handle select entry
- Update message.go to handle StringSelectInteraction
- Handle StringSelectInteraction in app.go event handler
- Add Values field to InteractionEnv for select menu selections
- Expose 'values' at top level in eval context
- Add value(index) helper function to access selected values
- Add MessageComponentSelectMenu.tsx component with full editor UI
- Enable 'Add Select Menu Row' button in MessageComponentsSection
- Render select menus in MessageComponentRow instead of placeholder text
- Add DiscordStringSelectMenu preview in MessagePreview
- Add flow_source_id to selectMenuOptionSchema for option values
- Add StringSelectComponent conversion in backend convert.go
- Add min_values and max_values fields to selectMenuSchema
- Add default field to selectMenuOptionSchema
- Add state management methods for new fields (setSelectMenuMinValues,
  setSelectMenuMaxValues, setSelectMenuOptionDefault)
- Add UI controls for min/max values selection (0-25)
- Add default toggle for each select menu option

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add white-space: nowrap CSS on the discord-string-select-menu host
element to prevent placeholder text from wrapping to multiple lines
in narrow preview containers. Also simplify formatPreviewSelectPlaceholder
by removing the workaround that fell back to default text on truncation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy Select Menu To Add Other V2 Components
Update Data Structures
Update Component Conversion
Update Flow Compilation
Update Zod Schemas
Update Message Store
Create Component Editors
Update Component Row Renderer
Update "Add Component" Menu
@vercel

vercel Bot commented Mar 24, 2026

Copy link
Copy Markdown

@LemonCubeDev is attempting to deploy a commit to the merlinfuchs' projects Team on Vercel.

A member of the Team first needs to authorize it.

@LemonCubeDev LemonCubeDev deleted the comps-v2 branch March 24, 2026 16:51
@LemonCubeDev LemonCubeDev restored the comps-v2 branch March 24, 2026 16:52
@LemonCubeDev LemonCubeDev reopened this Mar 24, 2026

@Street-TNRP Street-TNRP left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work on this submission! Everything looks well-structured and easy to follow. The implementation is clean, and it’s clear a lot of thought went into organizing the logic and keeping things readable. I didn’t run into any issues while reviewing, and the overall approach makes sense for the problem you're solving. Nice job 👍

@fall3n-ang3l

Copy link
Copy Markdown

Apple

@fall3n-ang3l

Copy link
Copy Markdown

This is very peak

@Street-TNRP

Copy link
Copy Markdown

Merlin, it would be deadass peak if you could merge ts

@fall3n-ang3l

Copy link
Copy Markdown

Merlin you should add this
it would be peak

@TJ1-kite

TJ1-kite commented Apr 2, 2026

Copy link
Copy Markdown

Merlin, PLEASE, DAY 94 OF ASKING FOR COMPONENTS V2 IN KITE.ONL

@LemonCubeDev

Copy link
Copy Markdown
Author

Spamming comments or sending unuseful comments will result in moderation actions.

@TJ1-kite

TJ1-kite commented Apr 4, 2026

Copy link
Copy Markdown

Spamming comments or sending unuseful comments will result in moderation actions.

I did 1 day here 😔

@LemonCubeDev

Copy link
Copy Markdown
Author

I understand, just please do not continue

@TJ1-kite

TJ1-kite commented Apr 4, 2026

Copy link
Copy Markdown

I understand, just please do not continue

Alr

@neganblakey

Copy link
Copy Markdown

im not sure that Discord Library used by Kite which Arikawa has Components V2 support or not. Tested on local build and it has so many errors.

@LemonCubeDev

Copy link
Copy Markdown
Author

im not sure that Discord Library used by Kite which Arikawa has Components V2 support or not. Tested on local build and it has so many errors.

What were the errors?

@Jackappleteam

Copy link
Copy Markdown

im not sure that Discord Library used by Kite which Arikawa has Components V2 support or not. Tested on local build and it has so many errors.

It doesn't, but it does have dropdown support, which I'm currently working on.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants