Posponed until app-users migration.
An async autocomplete combobox that searches users, groups, and roles from the server. The principalTypes config restricts which types appear in results; skipPrincipals excludes specific entries by key. Search is debounced (300ms) and shows a loading mask while fetching. If a previously saved principal has been deleted, it remains visible in the selection with a "This user is deleted" indicator rather than silently disappearing. Supports multi-select up to occurrences.max, and in the legacy selected items can be reordered.
Implementation
- Create
components/principal-selector-input/ with PrincipalSelectorInput.tsx, index.ts, PrincipalSelectorInput.test.ts, and PrincipalSelectorInput.stories.tsx
- Re-export from
components/index.ts
- Register in
initBuiltInComponents.ts via ComponentRegistry.register
Drafted with AI assistance
An async autocomplete combobox that searches users, groups, and roles from the server. The
principalTypesconfig restricts which types appear in results;skipPrincipalsexcludes specific entries by key. Search is debounced (300ms) and shows a loading mask while fetching. If a previously saved principal has been deleted, it remains visible in the selection with a "This user is deleted" indicator rather than silently disappearing. Supports multi-select up tooccurrences.max, and in the legacy selected items can be reordered.Implementation
components/principal-selector-input/withPrincipalSelectorInput.tsx,index.ts,PrincipalSelectorInput.test.ts, andPrincipalSelectorInput.stories.tsxcomponents/index.tsinitBuiltInComponents.tsviaComponentRegistry.registerDrafted with AI assistance