Skip to main content

Pickers

All pickers live in src/lib/ui/pickers/. They cover entity selection, colour and date input, file upload, and locale switching.

ComponentFilePurpose
ActivityPickerActivityPicker.tsxSingle or multi-select picker for activities. Supports template-type filtering (org-level vs activity-specific). Accepts a custom trigger element and surfaces selected items as chips.
ColorPickerColorPicker.tsxIcon button that opens a Popover containing a SketchPicker. Returns a hex colour string via onChangeComplete. Highlights the button when the field is compulsory and empty.
DatePickerDatePicker.tsxLocale-aware MUI date picker with dynamic dayjs locale loading. Enforces a 6-month minimum selectable range. Wraps standard MUI DatePicker props.
FilePickerFilePicker.tsxDrop-zone + file selector dialog. Supports async file verification, configurable accept and maxSize, a custom confirm button slot, and extra action items alongside the standard Choose / Cancel controls.
LanguagePickerLanguagePicker.tsxLocale switcher in the app navbar. Renders the current locale's flag and label. Org admins get an additional "edit supported languages" modal. Reads org and locale context — accepts no props.
OrganizationPickerOrganizationPicker.tsxMulti-select picker for contract partner organisations. Items render with a coloured header. Accepts a custom trigger element and closes the menu after each selection.
OuPickerOuPicker.tsxSingle-select picker for organisational units. Shows a confirmation dialog when changing the OU of an existing activity. Skips confirmation for new activities.
PartnerDnDPickerPartnerDnDPicker.tsxDialog-based drag-and-drop configurator with three droppable zones: Available, Processors, and Controllers. Validates that at least one processor or controller is assigned before applying.