@servicetitan/anvil2 stable package export. At the same time, Combobox is formally deprecated.
What’s changing
Four select components are now stable
The following components are exported from@servicetitan/anvil2:
| Component | Use when |
|---|---|
SelectField | Single-select with a search input in a form field layout |
SelectFieldSync | Same as SelectField, with sync option loading |
MultiSelectField | Multi-select with chips in a form field layout |
MultiSelectFieldSync | Same as MultiSelectField, with sync option loading |
SelectMenu | Single-select without a form field wrapper |
SelectMenuSync | Same as SelectMenu, with sync option loading |
MultiSelectMenu | Multi-select without a form field wrapper |
MultiSelectMenuSync | Same as MultiSelectMenu, with sync option loading |
Combobox is deprecated
Combobox is deprecated and will be removed in Anvil2 5.0. It will continue to work in the meantime, but the console will log a one-time warning in development to remind you to migrate.
The select field components are a direct replacement. They cover everything Combobox handles, plus lazy loading, grouping, and multi-select.
Why this is a milestone
The beta lifecycle exists so we can ship components into production before their APIs are locked down. That gives you access to new capabilities early and gives us room to refine based on real usage. The flip side is that using beta components comes with the expectation of occasional migration work. Graduating to stable is how that lifecycle is supposed to end. It’s a signal that the component has been through enough real-world usage that we’re confident in the API, and we’re committing to backward compatibility going forward. The select components are the first components to complete that journey in Anvil2. There are more components in beta today, and they’ll each follow the same path as they stabilize.How to migrate
Update import paths
For most consumers, the migration is a find-and-replace:Migrate from Combobox to SelectField
The Combobox API is structured quite differently from the select components. Combobox uses a render-prop pattern with several required sub-components (Combobox.SearchField, Combobox.Content, Combobox.List, Combobox.Item) and accepts generic typed items with separate itemToString and itemToKey converters. The select components have a flat, declarative API — you pass an options array and they handle rendering internally.
Because the migration involves more than swapping an import, a dedicated migration guide and codemod will be published before Anvil2 5.0. We’ll announce that in #ask-designsystem when it’s ready. In the meantime, the SelectField code docs and MultiSelectField code docs are the best reference for the target API.
- SelectField stable promotion →
- MultiSelectField stable promotion →
- SelectMenu stable promotion →
- MultiSelectMenu stable promotion →
Breaking change timeline
| Change | Version |
|---|---|
| Beta export deprecated (warning logged) | Now |
| Beta export removed | Anvil2 4.0 |
Combobox deprecated (warning logged) | Now |
Combobox removed | Anvil2 5.0 |
The 4.0 release is planned for early August. When future releases are planned, we’ll communicate timelines well in advance through #ask-designsystem.