Components
Space selection
Choose a project’s area of responsibility using identity, description, and a persistent selected value.
On this page
Purpose and usage
Choose a project’s area of responsibility using identity, description, and a persistent selected value.
Use in project creation when assigning responsibility context; a project status picker serves a different purpose.
Anatomy
| Part | Contract |
|---|---|
| Trigger | Selected space identity and title. |
| Options | Only active spaces are pickable. |
| Selection value | String space ID supplied by the parent. |
Variants and configuration
| Configuration | Behavior |
|---|---|
| options | PickableSpace[] including optional archivedAt. |
| value | String ID; fallback uses the first active space. |
| onChange | Reports the selected ID. |
State coverage
| State | Implemented behavior |
|---|---|
| Selection | Current space remains visible. |
| Open | Choice surface lists active spaces. |
| No active spaces | Must be tested before enabling project creation. |
Interaction and responsive behavior
- Convert IDs consistently to strings.
- Do not allow a new project into an archived space.
- Use descriptions to distinguish spaces with similar names.
Accessibility contract
- The implementation has label and menu IDs and a trigger ref.
- Verify selection announcement and keyboard traversal in the open state.
- Keep space color decorative; the title carries the identity.
Known gaps and readiness
Empty-options behavior is not a full recovery pattern. The team should define how a user creates or restores a space before proceeding.
Composition example
<SpacePicker options={activeSpaces} value={spaceId}
onChange={setSpaceId} />Source references
| File | Responsibility |
|---|---|
| app/components/space-picker.tsx | Accessible choice surface |
Examples from the app
Actual Radarist components with fictional data. Captured at 2× resolution or higher. Select an image to inspect it full size.
Related topics
Source audit: 2026-10-07 · Revision 0103e2549959 · Documentation v0.1