Components
Block-time menu
Start a time reservation with an explicit kind of activity instead of a generic blank calendar entry.
On this page
Purpose and usage
Start a time reservation with an explicit kind of activity instead of a generic blank calendar entry.
Use from the day controls or an agenda gap; do not bypass the editor’s time validation.
Anatomy
| Part | Contract |
|---|---|
| Trigger | Block time action. |
| Options | Project, event, lunch, and time-away choices as defined in source. |
| Locked treatment | Past day cannot open a creation action. |
Variants and configuration
| Configuration | Behavior |
|---|---|
| Presentation | compact, heroOverlay, iconOnly, centerMobileMenu. |
| Behavior | locked and onSelect(choice). |
State coverage
| State | Implemented behavior |
|---|---|
| Available | Choice menu can open. |
| Locked | Creation is disabled for a past date. |
| Open | A labeled menu presents the block choices. |
Interaction and responsive behavior
- Let RadarWorkspace choose an available gap and open the real editor.
- Keep the chosen type explicit; lunch is normalized into its implemented block type.
- Center the mobile menu where needed to keep choices visible.
Accessibility contract
- Trigger has Block time accessible name and expansion state.
- Menu items have meaningful text labels.
- Escape and outside pointer close it; full menu keyboard behavior needs review.
Known gaps and readiness
The project choices are currently hard-coded examples in BlockTimePicker. Each project choice emits the generic project kind rather than a project ID; Customize these choices only dismisses the menu; no customization flow is implemented. Treat these as prototype controls. Server-side scheduling constraints remain a separate validation boundary.
Composition example
<BlockTimePicker locked={locked}
onSelect={choice => requestBlock(choice)} />Source references
| File | Responsibility |
|---|---|
| app/components/block-time-picker.tsx | Choice menu |
| app/components/radar-workspace.tsx | Block request and view selection |
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