Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
851c22f
feat: GenAI Shortcuts in PromptInput
ernst-dev Feb 26, 2026
99e5aad
Fix space insertion after closing a trigger menu
ernst-dev Feb 26, 2026
5dbfbb3
Fix autofocus issues
ernst-dev Feb 26, 2026
425adff
Bug fixes and code improvements
ernst-dev Mar 6, 2026
39df195
Webpack update for react-dom/client
ernst-dev Mar 6, 2026
8f537c9
Further react-dom/client changes to fix builds
ernst-dev Mar 6, 2026
c868557
Update aria-attributes for failing tests
ernst-dev Mar 6, 2026
04bb350
Temp: Add React 16 support
ernst-dev Mar 6, 2026
027acc4
Fully support React 16 with a dev warning, minor bug fixes and visual…
ernst-dev Mar 9, 2026
bd67604
Update cursor positioning pattern
ernst-dev Mar 12, 2026
96397c3
Resolve 'in' eslint errors
ernst-dev Mar 12, 2026
2214bef
Update documenter and add shortcuts page to AppLayout list
ernst-dev Mar 12, 2026
c97e043
Change React compatibility to be React 18 first with internal compata…
ernst-dev Mar 12, 2026
2b98e34
fix: ctrl + A delete all not working, shortcuts page no longer uses A…
ernst-dev Mar 12, 2026
5f94241
fix: Styling issues
ernst-dev Mar 12, 2026
8c8ddfb
Update snapshots
ernst-dev Mar 12, 2026
392b448
Fix delete-all behaviour
ernst-dev Mar 13, 2026
534a725
fix selection in empty input showing ghost selection as well as arrow…
ernst-dev Mar 13, 2026
fdb316f
Additional bug fixes and NextJS timing issues. Also added an async ex…
ernst-dev Mar 13, 2026
e84ee70
Change insertText cursor positioning after text insertion to run in RAF
ernst-dev Mar 13, 2026
30f91a5
Address feedback, refactor hooks, rename cursor to caret, split-out t…
ernst-dev Mar 18, 2026
de2f7cf
Improve unit test coverage and address a few minor comments
ernst-dev Mar 18, 2026
2cd66c8
Merge reactContainers and rootsMap, address minor review feedback
ernst-dev Mar 18, 2026
9ba6300
Fix tests and clean-up confusing conditionals in use-token-mode
ernst-dev Mar 18, 2026
c70f47d
Addressed feedback, updated API docs, extended test coverage, added i…
ernst-dev Mar 18, 2026
07079dc
Fix unmounting root during render cycles in React 18
ernst-dev Mar 18, 2026
1bf1c11
Additional tests and improved RTL support
ernst-dev Mar 19, 2026
dceabd8
Fixed async menu highlighted option resetting onLoad, fixed menu repo…
ernst-dev Mar 19, 2026
5582032
Change react 16/17/18 support approach
ernst-dev Mar 19, 2026
869f668
Change render approach to use portals instead of createRoot
ernst-dev Mar 20, 2026
eaa994d
Address failing tests
ernst-dev Mar 20, 2026
3ceaf6b
Address copy/paste bugs
ernst-dev Mar 20, 2026
7744710
Address firefox re-focus issues as well as onTriggerDetected function…
ernst-dev Mar 20, 2026
3b123c8
Address RTL bug-bash findings
ernst-dev Mar 20, 2026
111c69a
Address remaining BB items, VoiceOver enhancements, improve tests
ernst-dev Mar 24, 2026
106a7d0
Force update documenter snapshot
ernst-dev Mar 24, 2026
f951698
Add renderTrigger to dropdown and remove triggerRef
ernst-dev Mar 24, 2026
dd40004
Menu usability improvements, space between symbol and filter text spl…
ernst-dev Mar 24, 2026
0ab1c47
Address VO issue, usability improvements and selection issues
ernst-dev Mar 25, 2026
681e8d7
Add translations
ernst-dev Mar 25, 2026
aa572c2
Fixed translation and documenter issues
ernst-dev Mar 25, 2026
992d693
Address PR feedback and fix minor issues with selection
ernst-dev Mar 25, 2026
7521b5a
Clean up after rebasing dropdown changes
ernst-dev Mar 25, 2026
ab2d33c
Remove startIndex from extractFilterText and add dev warning for Reac…
ernst-dev Mar 26, 2026
eaab44d
Merge branch 'main' into dev-v3-ernstka-shortcuts
ernst-dev Mar 26, 2026
50756f1
General clean-up and removal of dead code
ernst-dev Mar 26, 2026
ba0433c
Update event-handlers to use handleKey and move keyboard event handli…
ernst-dev Mar 26, 2026
7ce28a5
Merge branch 'main' into dev-v3-ernstka-shortcuts
ernst-dev Mar 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 36 additions & 42 deletions package-lock.json

Large diffs are not rendered by default.

176 changes: 176 additions & 0 deletions pages/prompt-input/permutations.page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,182 @@ const permutations = createPermutations<PromptInputProps>([
/>,
],
},
// Token mode: Basic text and references
{
tokens: [
[],
[{ type: 'text', value: 'Simple text' }],
[
{ type: 'text', value: 'Text with ' },
{ type: 'reference', id: '', label: 'Reference', value: 'ref1', menuId: 'mentions' },
],
[
{ type: 'reference', id: '', label: 'Ref1', value: 'ref1', menuId: 'mentions' },
{ type: 'text', value: ' ' },
{ type: 'reference', id: '', label: 'Ref2', value: 'ref2', menuId: 'mentions' },
],
],
menus: [
[
{
id: 'mentions',
trigger: '@',
options: [
{ value: 'user1', label: 'John Doe' },
{ value: 'user2', label: 'Jane Smith' },
],
},
],
],
},
// Token mode: Multiline content
{
tokens: [
[
{ type: 'text', value: 'Line 1' },
{ type: 'break', value: '\n' },
{ type: 'text', value: 'Line 2' },
],
[
{ type: 'text', value: 'A' },
{ type: 'break', value: '\n' },
{ type: 'reference', id: '', label: 'Ref', value: 'ref1', menuId: 'mentions' },
{ type: 'break', value: '\n' },
{ type: 'text', value: 'B' },
],
],
menus: [
[
{
id: 'mentions',
trigger: '@',
options: [{ value: 'user1', label: 'User' }],
},
],
],
},
// Token mode: Triggers
{
tokens: [
[{ type: 'trigger', triggerChar: '@', value: '', id: '' }],
[{ type: 'trigger', triggerChar: '@', value: 'user', id: '' }],
[
{ type: 'text', value: 'Text ' },
{ type: 'trigger', triggerChar: '@', value: 'User', id: '' },
],
],
menus: [
[
{
id: 'mentions',
trigger: '@',
options: [
{ value: 'user1', label: 'User 1' },
{ value: 'user2', label: 'User 2' },
],
},
],
],
},
// Token mode: Pinned references
{
tokens: [
[
{ type: 'reference', id: '', label: 'Pinned', value: 'pin1', menuId: 'mentions', pinned: true },
{ type: 'text', value: 'Content' },
],
[
{ type: 'reference', id: '', label: 'Pin1', value: 'pin1', menuId: 'mentions', pinned: true },
{ type: 'reference', id: '', label: 'Pin2', value: 'pin2', menuId: 'mentions', pinned: true },
{ type: 'text', value: 'Text' },
],
],
menus: [
[
{
id: 'mentions',
trigger: '@',
options: [{ value: 'user1', label: 'User' }],
useAtStart: true,
},
],
],
},
// Token mode: Complex mixed scenarios
{
tokens: [
[
{ type: 'reference', id: '', label: 'P1', value: 'p1', menuId: 'mentions', pinned: true },
{ type: 'text', value: 'Start ' },
{ type: 'trigger', triggerChar: '@', value: 'trig', id: '' },
{ type: 'text', value: ' ' },
{ type: 'reference', id: '', label: 'Ref', value: 'ref1', menuId: 'mentions' },
{ type: 'break', value: '\n' },
{ type: 'text', value: 'Line 2' },
],
],
menus: [
[
{
id: 'mentions',
trigger: '@',
options: [
{ value: 'user1', label: 'User 1' },
{ value: 'user2', label: 'User 2' },
],
useAtStart: true,
},
],
],
},
// Token mode: State variations (disabled, readonly, invalid, warning)
{
tokens: [
[
{ type: 'text', value: 'Text with ' },
{ type: 'reference', id: '', label: 'Reference', value: 'ref1', menuId: 'mentions' },
],
],
menus: [
[
{
id: 'mentions',
trigger: '@',
options: [
{ value: 'user1', label: 'User 1' },
{ value: 'user2', label: 'User 2' },
],
},
],
],
disabled: [false, true],
readOnly: [false, true],
invalid: [false, true],
},
// Token mode: Warning state (separate from invalid to avoid duplicates)
{
tokens: [
[
{ type: 'text', value: 'Text with ' },
{ type: 'reference', id: '', label: 'Reference', value: 'ref1', menuId: 'mentions' },
],
],
menus: [
[
{
id: 'mentions',
trigger: '@',
options: [
{ value: 'user1', label: 'User 1' },
{ value: 'user2', label: 'User 2' },
],
},
],
],
disabled: [false, true],
readOnly: [false, true],
warning: [true],
},
]);

export default function PromptInputPermutations() {
Expand Down
Loading
Loading