UI modules
The root package exports all of these modules. The detailed pages under components document compound children and visual props; this page explains where each module fits in an application.
| Module | Main exports | Use |
|---|---|---|
| auth | SignIn, Register, ResetPassword, ProfileForm, LogoutButton, DeleteAccountButton | Authentication and account screens |
| theme | ThemeProvider, useAppTheme, DEFAULT_COLORS, DEFAULT_MULTIPLIERS | Shared Material theme |
| setting | SettingList, SettingListItem, ListHeader | Settings screens |
| tile | Tile and tile compound children | Measurement/task cards |
| diary | DiaryCard | Diary summaries |
| measurement | MeasurementList, list item and date-range types | Measurement history |
| observation-detail | ObservationDetail and date/time types | FHIR observation detail |
| patient | PatientCard, PatientList and patient field components | Patient selection and summaries |
| content | ContentCard, ContentList, ContentDetail, composition hooks | Content delivery |
| journal | Answer, PastJournal, TodayQuestion | Journal and daily questions |
| questionnaire-response-form | QuestionnaireForm, providers, hooks, submit utilities | FHIR questionnaire responses |
| breathing-exercise | BreathingExercise, provider, context, hook | Guided breathing flows |
| tab | Tab, TabItem, TabProvider, useTab | Tab navigation primitives |
| picker-sheet | PickerSheet, WheelPicker, WheelPickerItem | Bottom-sheet selection |
| progress-bar | ProgressBar | Generic progress presentation |
| PDFViewer | Native PDF viewing | |
| image | OptimizedImage, image sizing types | Optimized remote images |
| language-switcher | LanguageSwitcher, context, hook | Locale selection |
| helpers | Conditional, form items, logging/animation helpers, bottom-sheet provider | Shared implementation helpers |
| socket | SocketProvider, useSocket, useAiEventListener | Socket.IO app events |
| bt-device | Device list, instructions, catalog constants | Device-picker UI and metadata |
| bt-management | BTProvider, BTManager, device declarations, callbacks | BLE discovery and protocols |
| data-sync | DataSync, HealthKit/Health Connect components, progress | Health platform import |
| background-sync | Android service, notifications, Health Connect scheduling | Native background entry points |
| polyfills | polyfillMedplumWebAPIs, Expo storage/crypto, WebSocket initialization | Expo-compatible core runtime |
Component reference
Use the detailed component pages for:
- compound auth children and form field customization: auth components;
- theme tokens and multipliers: theme;
- device UI and instructions: BT device UI;
- socket context: socket;
- content, diary, journal, measurement, patient, tile, and questionnaire components: the corresponding categories in the documentation sidebar.
Composition rules
Most components are presentation components with props and children. The exceptions that own side effects are:
- BTProvider and the Bluetooth managers;
- Health authorization and sync components;
- SocketProvider;
- auth forms and account actions;
- questionnaire providers and submit utilities.
Mount side-effect components deliberately, keep them mounted for the lifetime of the flow they own, and forward their error/progress callbacks to application telemetry.