0.3.0
The headline fix:
on mobile, focusing a widget's search field made everything below it disappear. Obsidian pads .view-content at the bottom by the keyboard height when the keyboard opens; measured on an iPhone that left our grid's scroll area 56px of the 632px it needed. The dashboard and kanban views opt out of that padding — they scroll themselves, and their text forms are top-anchored modals.
Mobile input forms:
- Modals anchor to the top of the screen and scroll, instead of being
centred or pinned above the keyboard: a bad visualViewport reading
now costs height rather than pushing the dialog off-screen. - All plugin fields are 16px so iOS stops zooming the page on focus.
- 44px tap targets across dialogs, toolbars and list rows.
- KeyboardDoneButton: a header button that blurs the focused field so
the keyboard retracts and a dialog's actions become reachable.
Bug fixes:
- Timeline composer portals inside the hosting Obsidian modal, so its focus trap stops stealing focus back on every tap (same fix Calendar and Secret Manager already had); FileWidget's memo compose too.
- Timeline composer now focuses its textarea when opened.
- Secret Manager's view and unlock overlays were never portalled out of the widget cell, so
position: absoluteclipped them to it. - Secret Manager's create dialog uses max-height, not a fixed height that put its footer under the keyboard.
- Timeline's mobile filter panel fits the cell, so its clear button is no longer clipped outside the tappable area.
Features:
- Launcher gains File and Base tools, each with a searchable, most recently edited first picker.
- Launcher lists Secret Manager directly under Dashboard.
- Opening a file from a launcher-hosted widget dismisses the modal.
- On mobile the dashboard toolbar swaps the layout equalizers, which need a multi-column grid, for a launcher button.