Step 7 of the simplification review: structure changes in the three biggest UI files. No intended visible change, except one fix noted under the host.
**Editor** (EventEditScreen)
- Pass-through wrappers removed: InlineField → floret InlineTextField, SaveScopeDialog → RecurringScopeDialog, REMINDER_QUICK_PICKS → REMINDER_PRESETS, reminderLabel/reminderLeadText → reminderLeadTimeLabel, currentDetailLocale → currentLocale.
- One PickerCardBody draws the time zone, recurrence, visibility and colour cards.
- The seven saveable showXPicker booleans are one saveable `EditSheet?` slot, so two sheets can't be open at once. EventEditContent goes from ~770 to ~250 lines; each card section and the sheet host are their own composables.
- Not done: GroupedSurface on the grouped form cards, since it adds a visible press-morph.
**Timeline** (WeekScreen, TimelineDrag)
- A remembered TimelineActions holder (scroll state, drag controller, five callbacks) replaces the seven values threaded through nine composables. Callbacks go through rememberUpdatedState, so the holder stays stable and pages don't recompose.
- TimelineDragController shares pieces(), settle(), column() (the RTL flip, was 5 copies) and snapToSlot() between move and resize. No extra per-frame work.
**Calendar host** (CalendarHost, RootScreen, MainActivity, view models)
- SlideOverlay replaces seven copies of the overlay enter/exit block; rememberHeld replaces the hand-paired held keys; one saveable CreateRequest replaces three create fields, and the widget create path calls openCreate.
- An ExternalRequests holder built in MainActivity replaces 13 parameters declared twice in RootScreen and CalendarHost.
- Month, week and agenda view models share one rollover-following today flow. CalendarHost keeps its own, which survives recreation.
- Fix: after rotation or process death with the detail or edit overlay open, closing it slid out a blank screen, because the held key was only set by in-app opens. It now keeps its content through the slide-out, as ARCHITECTURE.md describes.
Not yet checked on a device. Worth a look before release: open/close of detail, edit and create from every entry point (tap, notification, widget, QS tile, ACTION_INSERT/EDIT, .ics), rotation with an overlay open, every editor picker incl. rotation, and timeline move/resize/drag-to-create incl. RTL and after pinch-zoom.
Co-authored-by: Jean-Luc Makiola <business@jeanlucmakiola.de>
Reviewed-on: https://codeberg.org/jlmakiola/calendula/pulls/417