Inventory of reusable components in frontend/src/components/. Each component lives in its own folder (index.ts + <name>.tsx + classes.ts + types.ts).
[!info]
Pattern: components are reusable and free of business logic. Page-specific composition lives in frontend/src/sections/. Hooks that fetch data live in frontend/src/hooks/.
1. Form components (components/hook-form/)
RHF + MUI wrappers. Used inside a <FormProvider {...methods}> context. All accept name, plus the MUI props of the underlying component.
Component
Wraps
Notes
RHFTextField
TextField
The workhorse text input
RHFSelect
Select + MenuItem
Pass children={<MenuItem value="..."/>...}
RHFAutocomplete
Autocomplete
Async-loader friendly; pass options
RHFCheckbox
Checkbox + FormControlLabel
Single boolean
RHFMultiCheckbox
grid of checkboxes
Returns string[]
RHFRadioGroup
RadioGroup
Returns selected value
RHFSwitch
Switch + label
Boolean toggle
RHFEditor
TipTap wrapper
HTML output
RHFUpload
components/upload Dropzone
Single or multiple
RHFDatePicker
@mui/x-date-pickers DatePicker
Locale-aware
RHFDateTimePicker
DateTimePicker
—
RHFTimePicker
TimePicker
—
RHFPhoneInput
react-phone-number-input
E.164 output
RHFCountrySelect
components/country-select
ISO-2 output
RHFNumberInput
components/number-input
Locale-formatted, accepts min/max/step
RHFRating
Rating
0–5
RHFSlider
Slider
Single or range
Tip
Form-level errors render automatically via formState.errors[name] — pass helperText={errors.name?.message} is not needed; the wrapper handles it.
2. Data display
Component
Purpose
custom-data-grid/
MUI DataGrid Pro wrapper — sets density, locale, custom toolbar, RTL support
Sidebar nav with role-filtering, group headers, mini variant
nav-basic/
Simple horizontal nav for marketing pages
custom-breadcrumbs/
Page header breadcrumbs + action slot
progress-bar/
NProgress integration for route transitions
The sidebar reads from a configuration array — see src/layouts/dashboard/config-nav-dashboard.ts (or similar) — where each entry can specify roles: ['admin'] to hide from other users.