## software-mansion/enriched-markdown — v0.7.4…v1.0.0

_116 commits._

### Features
- **feat: implement jest mock (#614)** (0ebe18f)
- **feat: codeblock streaming (#648)** (b88b87f)
- **feat(ios): show Select All in selection menu when the system omits it (#642)** (29726ef)
- **feat: add onCopyPress event for code block copy (#634)** (7a05c35)
- **feat: cleaner, smaller code block copy button (#633)** (56b81e1)
- **feat: tressiter for colored codeblocks (#625)** (899a6b7)
- **feat: codeblock highlight colors (#624)** (f76b0ed)
- **feat(ios): add Copy as Markdown and Copy Image URL selection menu items (#639)** (8496f25)
- **feat(ios): add markdown extractor for selection-to-markdown conversion (#638)** (2ecaeef)
- **feat: add `hardSoftBreaks` md4cFlags option (#632)** (a08cfb9)
- **feat(ios): expose md4cFlags and add strikethrough/underline rendering (#627)** (7845ee4)
- **feat: expose insert text method (#613)** (d39d78f)
- **feat: padding and broderradius for blockquotes (#601)** (50a082c)
- **feat: implement gfm style codeblock (#607)** (07d3855)
- **feat(ios): add custom font support to markdown theme (#572)** (c29339c)
- **feat(ios): add list rendering and theme (#571)** (c6b185b)
- **feat(ios): add blockquote rendering and theme (#570)** (bc25ad6)
- **feat(ios): add code block rendering and theme (#569)** (d4e926d)
- **feat(ios): add thematic break rendering and theme (#568)** (a986717)
- **feat(ios): add block rendering layout infrastructure (#567)** (fcc015a)
- **feat(ios): add image rendering, theme, and attachments (#566)** (5898242)
- **feat(ios): add inline code rendering and theme (#565)** (0466760)
- **feat(ios): add line break rendering (#564)** (940bf2e)
- **feat(ios): add link rendering, theme, and onLinkPress (#563)** (7616ba0)
- **feat(ios): add heading rendering and theme (#562)** (c90cefb)
- **feat(ios): add async parse and render for EnrichedMarkdownText (#560)** (cab5a95)
- **feat(ios): add EnrichedMarkdownText SwiftUI view (#559)** (125a93e)
- **feat(ios): add AST-to-attributed-string renderer (#558)** (6751c54)
- **feat(ios): add markdown theme system (#557)** (8ecd228)
- **feat(ios): port parser module to ios (#556)** (0396c3a)
- **feat: match rn textinput keyboard-dismiss behavior on taps outside the input (#597)** (a0ebd69)
- **feat: on key press support (#584)** (fe7ae74)
- **feat: support loading local images (#588)** (6e9d0ab)
- **feat(input): rebased version of "list state, toolbar, docs, and e2e (lists 5/5)" (#545)** (4959dc0)
- **feat: centering of entire tables (#554)** (d8cf748)
- **feat: support saving original image (#548)** (10e2fe7)
- **feat: space between list items (#578)** (e7c0751)
- **feat: add maxHeight, aspectRatio and resizeMode to block image styling (#539)** (2724c99)
- **feat: custom image request headers (#544)** (2c49268)
- **feat: add horizontalOverflow style prop for edge-to-edge scrollable tables (#542)** (e0cad14)
- **feat(ios): voiceover read contents of input element (#526)** (cb1ccb0)
- **feat(ios): render in-paragraph display math instead of dropping its delimiters (#537)** (fa5a0f0)
- **feat(input): heading toolbar support — toggleHeading command, active-state, empty-line persistence (#499)** (36447d5)
- **feat(input): import block ranges on paste (#498)** (4c030e3)
- **feat(input): heading blocks (H1-H6) on the block pipeline (#497)** (b25bb0c)
- **feat(input): block-editing pipeline foundation (#460)** (13898e0)

### Fixes
- **fix(android): font scaling measurement and bullet rendering (#644)** (4f8b0e2)
- **fix(ios): vendor RaTeX as a prebuilt static XCFramework (drop spm_dependency) (#652)** (94ea7e0)
- **fix: list marker dropped when inserting character (#641)** (c9573e7)
- **fix: inline inherited grammar highlights when vendoring (TypeScript/TSX) (#640)** (adf5c83)
- **fix(ios): render soft line breaks as spaces in standalone package (#637)** (11dfdfa)
- **fix(android): commit font scaling settings to measurement store (#631)** (42d4b30)
- **fix(input): keep styles and list block when typing over a leading selection; stop iOS edit-menu jitter (#612)** (7a9815b)
- **fix(ios): codeblock measurement in shadow node (#623)** (a31137a)
- **fix(iOS): apply formatting when setting text via ref setValue (#617)** (e189cae)
- **fix(android): codeblock drawing range calculations (#611)** (8e5b8fa)
- **fix(iOS): main-thread deadlock in markdown measurement under locked ShadowTree commits (#582)** (7826cc0)
- **fix(input): support macOS text input with correct typing attributes and list markers (#605)** (56d6c38)
- **fix(input): align bullet marker shapes with EnrichedMarkdownText (#604)** (c007582)
- **fix(web): disable growable ArrayBuffers in WASM build (#598)** (c839456)
- **fix(android): crash indexoutofboundsexecption set span (#583)** (c4d124a)
- **fix: soft markdown line breaks (#585)** (75f8f89)
- **fix(ios): reset typing attributes when input is cleared to remove stale list indent (#596)** (9dee7eb)
- **fix(input/ios): show trailing empty-line bullet marker immediately (#595)** (91b3e85)
- **fix: block images overflow their line box (#579)** (1b74c6b)
- **Revert "fix(iOS): replace racy RaTeXFFI modulemap-strip script with an explicit-modules opt-out (#546)" (#551)** (3a6468d)
- **fix(ios): visible source fallback when RaTeX cannot parse a math span (#536)** (4403f5c)
- **fix: preserve Select All (and other system items) in the selection edit menu (#549)** (a644ed4)
- **fix: reset cached style state in Fabric prepareForRecycle to stop stale-markdown flicker (#482)** (0d57486)
- **fix(iOS): replace racy RaTeXFFI modulemap-strip script with an explicit-modules opt-out (#546)** (a65a7b9)
- **fix(ios): inline math height calculations (#522)** (fa5c831)
- **fix(ios): lists inside blockquotes lose their indent (#534)** (36634ff)
- **fix(android): prevent false link hit detection for taps outside text bounds (#523)** (3512340)
- **fix: autolink detection while working with ref (#535)** (579f4cc)
- **fix(android): strong italic font family (#530)** (15e62a3)
- **fix(build): fix x86_64 simulator build and spm_dependency guard (#531)** (99dfc50)
- **fix: honor ordered list start number (#525)** (c17b158)
- **fix: remove extra markers from text input (#520)** (e60a65a)
- **fix: better list children rendering logic (#478)** (b60d2e4)
- **fix(ios): include all layout-affecting props in measurement cache key (#494)** (233c031)
- **fix(input): hide placeholder when heading is toggled on empty text (#515)** (0d9e18c)
- **fix(android): exclude block spans from inline formatting pass (#508)** (29274e2)
- **fix(android): sync cursor height with heading block on empty lines (#507)** (3b361f1)
- **fix(ios): sync typing attributes after text edit to fix heading cursor on Enter (#506) (#506)** (ef7e9f9)
- **fix(input): handle zero-length heading anchors in formatter and serializer (#505) (#505)** (792e040)
- **fix(android): adjust blockStore on all text mutations for iOS parity (#500)** (1e7a4ef)

### Tests
- **test(ios): add e2e maestro tests (#574)** (04f8f61)
- **test(ios): add renderer unit tests (#561)** (d4da4b8)
- **test(ios): update maestro screenshots (#587)** (218a07d)

### Chore
- **chore: release 1.0.0** (a0fe3f9)
- **chore: add react native 0.87 to compatibility table (#654)** (2e157c8)
- **chore: block logs in maestro tests (#636)** (9959acc)
- **chore(ios): restructure and cleanup native code (#619)** (daacfd7)
- **chore(ios): add README.md for ios (#575)** (af9521b)
- **chore(ios): add proper example app (#573)** (32388d2)
- **chore(ios): set up ios library and example app (#555)** (53519fd)
- **refactor(input): move ENRMInputFormatterStyle to its own file (#603)** (78b235c)
- **refactor(input): extract ENRMInputTypingAttributesController from EnrichedMarkdownTextInput (#602)** (90d0f86)
- **refactor(input): extract ENRMInputStyleStateBuilder from ENRMInputEventEmitter (#600)** (5c10bce)
- **refactor(input): extract ENRMInputEventEmitter from EnrichedMarkdownTextInput (iOS) (#599)** (7f520a8)
- **refactor(input): extract list marker drawing into decorator pattern (#594)** (3c1419e)
- **refactor(input): extract Link, Mention, and Clipboard coordinators (iOS & Android) (#593)** (378522a)
- **refactor(input): push inline style toggle logic into FormattingStore (iOS & Android) (#592)** (1eb68a1)
- **refactor(input): extract BlockEditCoordinator (iOS & Android) (#591)** (817082a)
- **refactor(input): consolidate reentrancy flags into EditSession (iOS & Android) (#590)** (a6f45ea)
- **refactor(input): extract EditPipeline from input views (iOS & Android) (#589)** (2c30f86)
- **chore: point homepage to enriched.swmansion.com/markdown (#553)** (ed8051f)
- **chore: add RNRepo to CI builds (#292)** (d72ae9d)
- **chore: use macos-latest-xlarge (#543)** (4c0577d)
- **chore: release 0.7.4 (#533)** (7f5670f)
- **chore(android): release scripts and docs (#529)** (647c336)
- **refactor: deduplicate post-edit store adjustment pipeline (#519)** (f0ecf1a)
- **refactor(input): narrow heading level to a union type and export HeadingStyle (#504) (#504)** (8ac0e94)
- **refactor(input): deduplicate helpers shared between BlockStore and FormattingStore (#503) (#503)** (b548106)
- **refactor(input): remove unused blockRangeContaining API from both platforms (#502)** (de51662)
- **refactor(input): update sync method for typing attributes to use cursor block (#501)** (c944584)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/software-mansion/enriched-markdown?utm_source=github-action)._