Enable font-feature-settings: 'chws' 1 and overflow-wrap / word-break across Web, Mobile, iOS, and image cards for improved typography and long text wrapping.
Editors now take document TipTap nodes from a shared factory. Workspace and editor helpers move out of the large panes. Store iOS no longer builds from Expo EAS.
Stop copying schema nodes in the iOS editor bundle. Image galleries keep the native node view via extend, and roundtrip tests pin Markdown/JSON against the web codec.
Phone viewers no longer shrink a whole diagram into an unreadable overview. The canvas fills the remaining viewport, pinch-zooms, and focuses a topic on tap, without zoom chrome.
First-party canvases, including public share, parse diagram IR and draw
with read-only X6. Embedded Mermaid fences in ordinary notes stay on
Mermaid. Native viewers no longer inject a hidden Mermaid document when
the IR is valid.
Give mind maps a shared three-level appearance across Web, mobile, and
iOS: capsule roots, stronger first-level topics, lighter nested nodes,
and side-anchored tapered branches. Keep flowchart and architecture
edges unfilled so SVG does not paint them black.
Make the shared TipTap link mark non-inclusive so text typed after a pasted or terminal link remains plain across web, desktop, Android, and iOS editors.
Refs #355
Insert a dedicated merge-divider node instead of a plain horizontal rule so
theme hairlines no longer wash out merge boundaries, with Markdown round-trip
markers and stronger multi-client styling.
External links were indistinguishable from body text under the default
theme because Tailwind preflight resets anchors. Add brand-green
underline styles for ProseMirror (Web, mobile web, Android, iOS) while
leaving note/attachment chips unchanged. Closes the styling half of #193;
Notion-style link cards remain deferred per #192.
Align iOS TipTap images with Android (width presets, ⋯ actions, WebP
compress, reliable preview). Persist contentJson so image width survives
detail/viewer; force shared WebView re-push and block late autosave so
new notes open empty. Long-press fullscreen image preview opens resource
actions on both iOS and Android.
Make create Back commit like Android so notes appear in the list and the
next New note opens empty. Harden memo-card press feedback, allow
programmatic WKWebView keyboard focus, and pin the format toolbar above
the scrolling editor body so it no longer jumps under the software keyboard.
Replace the silent PhotosPicker/Transferable path with PHPicker, insert
into TipTap with local hydrate, and flush materialized create/edit body
so uploaded images survive list → detail reopen.
Focus at document end only once when opening a note for edit. SwiftUI
re-binds and setContent no longer call focusEnd on every keystroke, so
mid-document editing keeps the caret in place.
Keep one long-lived viewer and editor WKWebView so switching notes only
rebinds setContent instead of reloading the EditorBundle. Warm both
runtimes after sign-in, restore Evernote-style focus-at-end on edit,
block empty autosave from clobbering notes, and stop showing flattened
contentText when the rich viewer is still booting.
Add bottom-sheet resource actions (share, download, rename, delete)
with success and failure feedback. Viewer image tap opens fullscreen
preview; long-press and attachment taps open the menu. Download uses
the Files export picker so users always know whether the save worked.