Skip to content

Conversation

@latonv
Copy link

@latonv latonv commented Jan 21, 2026

Creates a new combo-box component in the labs directory. This component is intended to act as a flexible form control allowing users to select from predefined options, search & filter those options with text input, and optionally enter their own custom values entirely.

To that end, the component supports three levels of behavior:

  • select-only: Functions like a <select> dropdown widget, disallowing text input and requiring a selection to be made from the options presented.
  • list (default): Retains the dropdown behavior as above, but also allows the dropdown options to be filtered by entering a partial value in the widget's text box. It can still only take on values from the predefined options. Implements W3C recommendations for the combobox role with list autocomplete
  • freeform: Presents a filterable dropdown of options like list but does not restrict its held values to these options, instead allowing any text value to be held in the widget. This is essentially just a text input with autocomplete suggestions.

@codecov-commenter
Copy link

codecov-commenter commented Jan 21, 2026

Codecov Report

❌ Patch coverage is 90.61489% with 29 lines in your changes missing coverage. Please review.
✅ Project coverage is 87.15%. Comparing base (bd89dc0) to head (e9bfb0b).

Files with missing lines Patch % Lines
src/elements/ia-combo-box/ia-combo-box.ts 90.20% 9 Missing and 20 partials ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##             main      #24       +/-   ##
===========================================
+ Coverage   68.42%   87.15%   +18.73%     
===========================================
  Files           5        7        +2     
  Lines          57      366      +309     
  Branches        7       87       +80     
===========================================
+ Hits           39      319      +280     
- Misses         15       24        +9     
- Partials        3       23       +20     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@latonv latonv changed the title Draft: WEBDEV-8119 Add basic combo-box component WEBDEV-8119 Add basic combo-box component Jan 22, 2026
@latonv latonv force-pushed the webdev8119-combo-box-component branch from 12274bc to 31b9185 Compare January 22, 2026 20:27
Copy link
Contributor

@jbuckner jbuckner left a comment

Choose a reason for hiding this comment

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

This looks really nice! 👏

Since this is going into production pretty soon, what do you think of moving it out of labs and into the main elements section?

@latonv latonv force-pushed the webdev8119-combo-box-component branch from ab293f4 to 6fbb3ce Compare January 27, 2026 02:38
Copy link
Contributor

@rebecca-shoptaw rebecca-shoptaw left a comment

Choose a reason for hiding this comment

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

Looking great! One note re: possible CSS structure to avoid too many variables (and any in :host that aren't also reflect in theme-styles.ts which I feel should be our standard).

@latonv latonv force-pushed the webdev8119-combo-box-component branch from f7c558d to dddb2f6 Compare January 27, 2026 21:16
@github-actions
Copy link

github-actions bot commented Jan 27, 2026

PR Preview Action v1.8.1

🚀 View preview at
https://internetarchive.github.io/elements/pr/pr-24/

Built to branch ghpages at 2026-01-29 08:59 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

@latonv latonv force-pushed the webdev8119-combo-box-component branch from dddb2f6 to c048a1d Compare January 28, 2026 03:51
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.

5 participants