Founding price: $35, then $99 after 23:59 UTC on 4 November, then $99
Get ProA search box that queries several sources at once and shows each source as its own section with its own loading, empty and error state, so one slow or failing source never hides the others. Use this when one box searches people, projects and documents.
Derived from this item’s props table, because it declares no controls of its own. This item has no standalone playground, so changes update the code, the share link and the AI prompt.
Use it for global pickers and link-to dialogs, where the answer may be a person, a page or a ticket and the sources are different services with different speeds.
Do not use it when there is one source. Use a single async search.
This item is part of tealmac UI Pro
The source for this item installs with a Pro licence key. Log in with your key to see the install command, or read the Pro setup page.
| Prop | Type | Default | Description |
| --------------- | ------------------------- | ------- | --------------------------------------------------------------------------------- | ----------------------------- |
| sources | { id, label, search }[] | - | Each search is (query, { signal }) => Promise<{ id, label, description? }[]>. |
| value | { source, item } \\ | null | - | Selected result (controlled). |
| defaultValue | { source, item } \\ | null | null | Initial result. |
| onValueChange | (result) => void | - | Runs when a result is picked. |
| debounceMs | number | 250 | Wait after typing. |
| minChars | number | 1 | Do not search for shorter text. |
People, Projects); each shows its own state as text.Failed to load and a Retry button that retries only that source.role="status" line announces each source's result count as it arrives.The pattern ships with a Testing Library test (async-multi-source-sections.test.tsx) that covers parallel sections, one source failing while the others show, retrying only that source and picking from a section.