Add a foundation model for typeahead search of UIs.

Review Request #13627 — Created March 11, 2024 and submitted

Information

Ink
master

Reviewers

This introduces TypeaheadBuffer, which tracks key presses made within
a short period of time (default is 3 seconds) for the purposes of
navigating a UI (such as a menu or sidebar). It takes care of
maintaining its buffer based on key presses and assisting in performing
matches based on the keys pressed.

Components can instantiate this, send key presses, listen to buffer
changes, and use those and helper methods to help find the relevant
element in the UI to select.

This does not provide any visuals showing what's been typed (though that
may come later, based on work done in another codebase).

Unit tests pass.

Summary ID
Add a foundation model for typeahead search of UIs.
This introduces `typeaheadBuffer`, which tracks key presses made within a short period of time (default is 3 seconds) for the purposes of navigating a UI (such as a menu or sidebar). It takes care of maintaining its buffer based on key presses and assisting in performing matches based on the keys pressed. Components can instantiate this, send key presses, listen to buffer changes, and use those and helper methods to help find the relevant element in the UI to select. This does not provide any visuals showing what's been typed (though that may come later, based on work done in another codebase).
a4cd3e23d244990a4582cb28aed8a923735b4d24
Description From Last Updated

Typo in summary: fondation

daviddavid

Add a module level comment here.

daviddavid

TItem?

daviddavid

This syntax isn't quite right. This defines a function that takes an argument named ItemT with no type, and returns …

daviddavid

Same here.

daviddavid

Add type for this?

daviddavid
david
  1. 
      
  2. Show all issues

    Typo in summary: fondation

  3. Show all issues

    Add a module level comment here.

  4. Show all issues

    TItem?

  5. Show all issues

    This syntax isn't quite right. This defines a function that takes an argument named ItemT with no type, and returns a string. It needs to be ((item: ItemT) => string)

  6. Show all issues

    Same here.

  7. Show all issues

    Add type for this?

  8. 
      
chipx86
chipx86
david
  1. Ship It!
  2. 
      
chipx86
Review request changed
Status:
Completed
Change Summary:
Pushed to master (fee49e6)