tag:github.com,2008:https://github.com/NuPlay/RichText/releases Release notes from RichText 2025-08-28T13:54:19Z tag:github.com,2008:Repository/389261402/3.0.2 2025-08-28T13:55:16Z V3.0.2 <h2>โญ What's Changed</h2> <ul> <li>fix: resolve state modification during view update warning (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3351978845" data-permission-text="Title is private" data-url="https://github.com/NuPlay/RichText/issues/72" data-hovercard-type="issue" data-hovercard-url="/NuPlay/RichText/issues/72/hovercard" href="https://github.com/NuPlay/RichText/issues/72">#72</a>)</li> </ul> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/NuPlay/RichText/compare/3.0.1...3.0.2"><tt>3.0.1...3.0.2</tt></a></p> NuPlay tag:github.com,2008:Repository/389261402/3.0.1 2025-08-25T15:39:50Z V3.0.1 <h2>๐Ÿ”ง Documentation Fixes</h2> <p>This patch release focuses on correcting documentation inconsistencies found after the major v3.0.0 release.</p> <h2>What's Fixed</h2> <h3>๐Ÿ“š <strong>Documentation Accuracy</strong></h3> <ul> <li><strong>Swift Version Clarification</strong>: Updated requirements from Swift 6.0+ to Swift 5.9+ to accurately reflect <code>Package.swift</code> configuration <ul> <li>Library requires Swift 5.9+ for production use</li> <li>Swift 6.0+ only needed for running Swift Testing framework tests</li> </ul> </li> </ul> <h3>โœ… <strong>Test Documentation</strong></h3> <ul> <li>Removed references to non-existent XCTest file</li> <li>Clarified that only Swift Testing framework is used for tests</li> <li>Updated platform requirements for tests vs library usage</li> </ul> <h3>๐Ÿ“‹ <strong>API Documentation</strong></h3> <ul> <li>Fixed deprecated method recommendations: Now correctly suggests <code>.placeholder {}</code> instead of <code>.loadingPlaceholder()</code></li> <li>Added missing default values: <ul> <li><code>imageRadius</code> default: 0</li> <li><code>colorScheme</code> default: .auto</li> <li><code>lineHeight</code> default: 170</li> </ul> </li> </ul> <h2>๐Ÿš€ No Code Changes</h2> <p>This release contains <strong>documentation updates only</strong>. No functionality has been changed from <a href="https://github.com/NuPlay/RichText/releases/tag/3.0.0">v3.0.0</a>.</p> <h2>๐Ÿ“ฆ Installation</h2> <div class="highlight highlight-source-swift notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=".package(url: &quot;https://github.com/NuPlay/RichText.git&quot;, .upToNextMajor(from: &quot;3.0.1&quot;))"><pre><span class="pl-kos">.</span><span class="pl-k">package</span><span class="pl-kos">(</span>url<span class="pl-kos">:</span> <span class="pl-s">"</span><span class="pl-s">https://github.com/NuPlay/RichText.git</span><span class="pl-s">"</span><span class="pl-kos">,</span> <span class="pl-kos">.</span>upToNextMajor<span class="pl-kos">(</span>from<span class="pl-kos">:</span> <span class="pl-s">"</span><span class="pl-s">3.0.1</span><span class="pl-s">"</span><span class="pl-kos">)</span><span class="pl-kos">)</span></pre></div> NuPlay tag:github.com,2008:Repository/389261402/3.0.0 2025-08-24T13:27:06Z V3.0.0 <h1>๐Ÿš€ RichText v3.0.0 Release Notes</h1> <div class="markdown-alert markdown-alert-important"><p class="markdown-alert-title"><svg class="octicon octicon-report mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg>Important</p><p><strong>Platform Requirements Updated</strong></p> <ul> <li>iOS: 15.0+ (previously 13.0+)</li> <li>macOS: 12.0+ (previously 10.15+)</li> <li>Swift: 6.0+</li> <li>Xcode: 16+ for development</li> </ul> </div> <h2>๐ŸŽ‰ Major Release - Swift 6.0 &amp; Modern Concurrency</h2> <p>This major release modernizes RichText with async/await support, Swift Testing, and enhanced APIs while maintaining backward compatibility.</p> <h2>โœจ New Features</h2> <h3>๐Ÿ”„ <strong>Async/Await Support</strong></h3> <ul> <li>Complete migration to modern Swift concurrency</li> <li>Enhanced WebView performance with async loading</li> <li>Improved error handling with structured concurrency</li> </ul> <h3>๐ŸŽฏ <strong>Enhanced APIs</strong></h3> <ul> <li>Type-safe background color options</li> <li>Media click handling capabilities</li> <li>Comprehensive error reporting system</li> <li>Dynamic type support for better accessibility</li> <li>Improved color management system</li> </ul> <h3>๐Ÿงช <strong>Swift Testing Framework</strong></h3> <ul> <li>Migrated from XCTest to Swift Testing</li> <li>600+ comprehensive test cases</li> <li>Cross-platform testing coverage</li> </ul> <h2>๐Ÿ”ง Improvements</h2> <ul> <li><strong>Performance</strong>: Optimized WebView rendering with async operations</li> <li><strong>Type Safety</strong>: Enhanced type-safe APIs throughout the library</li> <li><strong>Error Handling</strong>: More detailed and actionable error messages</li> <li><strong>Accessibility</strong>: Better Dynamic Type support</li> </ul> <h2>๐Ÿ”„ Migration Guide</h2> <p>Existing v2.x projects can upgrade with minimal changes:</p> <ol> <li><strong>Update platform targets</strong> in your project settings</li> <li><strong>Replace deprecated methods</strong> (warnings provided)</li> <li><strong>Leverage new type-safe APIs</strong> for better performance</li> <li><strong>Use new error handling</strong> methods for better debugging</li> </ol> <h2>๐Ÿง‘โ€๐Ÿ’ป For Developers</h2> <ul> <li>All public APIs remain compatible with v2.x</li> <li>Deprecated methods include migration warnings</li> <li>Enhanced documentation and examples</li> </ul> <h2>๐Ÿ“ฆ Installation</h2> <div class="highlight highlight-source-swift notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="dependencies: [ .package(url: &quot;https://github.com/NuPlay/RichText.git&quot;, from: &quot;3.0.0&quot;) ]"><pre><span class="pl-ent">dependencies:</span> <span class="pl-kos">[</span> <span class="pl-kos">.</span><span class="pl-k">package</span><span class="pl-kos">(</span>url<span class="pl-kos">:</span> <span class="pl-s">"</span><span class="pl-s">https://github.com/NuPlay/RichText.git</span><span class="pl-s">"</span><span class="pl-kos">,</span> from<span class="pl-kos">:</span> <span class="pl-s">"</span><span class="pl-s">3.0.0</span><span class="pl-s">"</span><span class="pl-kos">)</span> <span class="pl-kos">]</span></pre></div> <hr> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/NuPlay/RichText/compare/v2.7.0...v3.0.0"><tt>v2.7.0...v3.0.0</tt></a></p> NuPlay tag:github.com,2008:Repository/389261402/2.7.0 2025-07-20T06:07:46Z v2.7.0 <h2>โญ What's Changed</h2> <ul> <li>feat: Add option to force color scheme background by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jcovin293/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jcovin293">@jcovin293</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3215930174" data-permission-text="Title is private" data-url="https://github.com/NuPlay/RichText/issues/65" data-hovercard-type="pull_request" data-hovercard-url="/NuPlay/RichText/pull/65/hovercard" href="https://github.com/NuPlay/RichText/pull/65">#65</a></li> </ul> <div class="highlight highlight-source-swift notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="RichText(html: &quot;&quot;) .forceColorSchemeBackground(true) // new option"><pre><span class="pl-en">RichText</span><span class="pl-kos">(</span>html<span class="pl-kos">:</span> <span class="pl-s">"</span><span class="pl-s">"</span><span class="pl-kos">)</span> <span class="pl-kos">.</span><span class="pl-en">forceColorSchemeBackground</span><span class="pl-kos">(</span><span class="pl-c1">true</span><span class="pl-kos">)</span> // new option</pre></div> <h2>๐Ÿ‘ Contributors</h2> <ul> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jcovin293/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jcovin293">@jcovin293</a> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3215930174" data-permission-text="Title is private" data-url="https://github.com/NuPlay/RichText/issues/65" data-hovercard-type="pull_request" data-hovercard-url="/NuPlay/RichText/pull/65/hovercard" href="https://github.com/NuPlay/RichText/pull/65">#65</a></li> </ul> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/NuPlay/RichText/compare/2.5.0...2.6.0"><tt>2.5.0...2.6.0</tt></a></p> NuPlay tag:github.com,2008:Repository/389261402/2.6.0 2025-07-20T06:08:19Z v2.6.0 <h2>โญ What's Changed</h2> <ul> <li>feat: Support Dynamic Type by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jcovin293/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jcovin293">@jcovin293</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3185563644" data-permission-text="Title is private" data-url="https://github.com/NuPlay/RichText/issues/62" data-hovercard-type="pull_request" data-hovercard-url="/NuPlay/RichText/pull/62/hovercard" href="https://github.com/NuPlay/RichText/pull/62">#62</a></li> </ul> <div class="highlight highlight-source-swift notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="public struct Configuration { ... public var supportsDynamicType: Bool ... public init( ... supportsDynamicType: Bool = false, ... ) { ... self.supportsDynamicType = supportsDynamicType ... if supportsDynamicType { self.customCSS = self.customCSS + &quot;&quot;&quot; html { font: -apple-system-body; } body { font: -apple-system-body; } h1 { font: -apple-system-largeTitle; } h2 { font: -apple-system-title1; } h3 { font: -apple-system-title2; } h4 { font: -apple-system-title3; } h5 { font: -apple-system-headline; } h6 { font: -apple-system-callout; } p.subheadline { font: -apple-system-subheadline; } p.footnote { font: -apple-system-footnote; } p.caption1 { font: -apple-system-caption1; } p.caption2 { font: -apple-system-caption2; } &quot;&quot;&quot; } } }"><pre><span class="pl-k">public</span> <span class="pl-k">struct</span> Configuration <span class="pl-kos">{</span> <span class="pl-c1">...</span> <span class="pl-k">public</span> <span class="pl-k">var</span> <span class="pl-s1">supportsDynamicType</span><span class="pl-kos">:</span> <span class="pl-smi">Bool</span> <span class="pl-c1">...</span> <span class="pl-k">public</span> init<span class="pl-kos">(</span> <span class="pl-c1">...</span> supportsDynamicType<span class="pl-kos">:</span> Bool <span class="pl-c1">=</span> false<span class="pl-kos">,</span> <span class="pl-c1">...</span> <span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-c1">...</span> self<span class="pl-kos">.</span>supportsDynamicType <span class="pl-c1">=</span> supportsDynamicType <span class="pl-c1">...</span> <span class="pl-k">if</span> supportsDynamicType <span class="pl-kos">{</span> <span class="pl-smi">self</span><span class="pl-kos">.</span>customCSS <span class="pl-c1">=</span> <span class="pl-smi">self</span><span class="pl-kos">.</span>customCSS <span class="pl-c1">+</span> <span class="pl-s">"""</span><span class="pl-s"></span> <span class="pl-s"> html { font: -apple-system-body; }</span> <span class="pl-s"> </span> <span class="pl-s"> body { font: -apple-system-body; }</span> <span class="pl-s"> </span> <span class="pl-s"> h1 { font: -apple-system-largeTitle; }</span> <span class="pl-s"> h2 { font: -apple-system-title1; }</span> <span class="pl-s"> h3 { font: -apple-system-title2; }</span> <span class="pl-s"> h4 { font: -apple-system-title3; }</span> <span class="pl-s"> </span> <span class="pl-s"> h5 { font: -apple-system-headline; }</span> <span class="pl-s"> h6 { font: -apple-system-callout; }</span> <span class="pl-s"> </span> <span class="pl-s"> p.subheadline { font: -apple-system-subheadline; }</span> <span class="pl-s"> p.footnote { font: -apple-system-footnote; }</span> <span class="pl-s"> p.caption1 { font: -apple-system-caption1; }</span> <span class="pl-s"> p.caption2 { font: -apple-system-caption2; }</span> <span class="pl-s"> </span><span class="pl-s">"""</span> <span class="pl-kos">}</span> <span class="pl-kos">}</span> <span class="pl-kos">}</span></pre></div> <h2>๐Ÿ‘ New Contributors</h2> <ul> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jcovin293/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jcovin293">@jcovin293</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3185563644" data-permission-text="Title is private" data-url="https://github.com/NuPlay/RichText/issues/62" data-hovercard-type="pull_request" data-hovercard-url="/NuPlay/RichText/pull/62/hovercard" href="https://github.com/NuPlay/RichText/pull/62">#62</a></li> </ul> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/NuPlay/RichText/compare/2.5.0...2.6.0"><tt>2.5.0...2.6.0</tt></a></p> NuPlay tag:github.com,2008:Repository/389261402/2.5.0 2025-07-20T06:08:36Z v2.5.0 <h2>โญ What's Changed</h2> <ul> <li>fix: update height after image loaded by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/paranoidjk/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/paranoidjk">@paranoidjk</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2707135870" data-permission-text="Title is private" data-url="https://github.com/NuPlay/RichText/issues/54" data-hovercard-type="pull_request" data-hovercard-url="/NuPlay/RichText/pull/54/hovercard" href="https://github.com/NuPlay/RichText/pull/54">#54</a></li> </ul> <h2>๐Ÿ‘ New Contributors</h2> <ul> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/paranoidjk/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/paranoidjk">@paranoidjk</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2707135870" data-permission-text="Title is private" data-url="https://github.com/NuPlay/RichText/issues/54" data-hovercard-type="pull_request" data-hovercard-url="/NuPlay/RichText/pull/54/hovercard" href="https://github.com/NuPlay/RichText/pull/54">#54</a></li> </ul> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/NuPlay/RichText/compare/2.4.1...2.5.0"><tt>2.4.1...2.5.0</tt></a></p> NuPlay tag:github.com,2008:Repository/389261402/2.4.1 2025-07-20T06:08:41Z v2.4.1 <h2>โญ What's Changed</h2> <ul> <li>feat: Add <code>PrivacyInfo.xcprivacy</code> file for issue <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2249125796" data-permission-text="Title is private" data-url="https://github.com/NuPlay/RichText/issues/50" data-hovercard-type="issue" data-hovercard-url="/NuPlay/RichText/issues/50/hovercard" href="https://github.com/NuPlay/RichText/issues/50">#50</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/NuPlay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/NuPlay">@NuPlay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2254425626" data-permission-text="Title is private" data-url="https://github.com/NuPlay/RichText/issues/51" data-hovercard-type="pull_request" data-hovercard-url="/NuPlay/RichText/pull/51/hovercard" href="https://github.com/NuPlay/RichText/pull/51">#51</a></li> </ul> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/NuPlay/RichText/compare/2.4.0...2.4.1"><tt>2.4.0...2.4.1</tt></a></p> NuPlay tag:github.com,2008:Repository/389261402/2.4.0 2025-07-20T06:08:46Z v2.4.0 <h1>โญ What's Changed</h1> <ul> <li><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2092762167" data-permission-text="Title is private" data-url="https://github.com/NuPlay/RichText/issues/46" data-hovercard-type="issue" data-hovercard-url="/NuPlay/RichText/issues/46/hovercard" href="https://github.com/NuPlay/RichText/issues/46">#46</a> LinkOpenType Custom Handling for All URL Schemes by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/NuPlay/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/NuPlay">@NuPlay</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2104166764" data-permission-text="Title is private" data-url="https://github.com/NuPlay/RichText/issues/47" data-hovercard-type="pull_request" data-hovercard-url="/NuPlay/RichText/pull/47/hovercard" href="https://github.com/NuPlay/RichText/pull/47">#47</a></li> <li>Allow setting the WebKit baseURL for requests to something other than the Bundle by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ohmantics/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ohmantics">@ohmantics</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2111884444" data-permission-text="Title is private" data-url="https://github.com/NuPlay/RichText/issues/48" data-hovercard-type="pull_request" data-hovercard-url="/NuPlay/RichText/pull/48/hovercard" href="https://github.com/NuPlay/RichText/pull/48">#48</a></li> </ul> <h3>๐Ÿ› Bug fix</h3> <ul> <li>Fixed sometime dynamic height not correct by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/sk-chanch/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/sk-chanch">@sk-chanch</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2090046514" data-permission-text="Title is private" data-url="https://github.com/NuPlay/RichText/issues/45" data-hovercard-type="pull_request" data-hovercard-url="/NuPlay/RichText/pull/45/hovercard" href="https://github.com/NuPlay/RichText/pull/45">#45</a></li> </ul> <h2>๐Ÿ‘ New Contributors</h2> <ul> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/sk-chanch/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/sk-chanch">@sk-chanch</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2090046514" data-permission-text="Title is private" data-url="https://github.com/NuPlay/RichText/issues/45" data-hovercard-type="pull_request" data-hovercard-url="/NuPlay/RichText/pull/45/hovercard" href="https://github.com/NuPlay/RichText/pull/45">#45</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ohmantics/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ohmantics">@ohmantics</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2111884444" data-permission-text="Title is private" data-url="https://github.com/NuPlay/RichText/issues/48" data-hovercard-type="pull_request" data-hovercard-url="/NuPlay/RichText/pull/48/hovercard" href="https://github.com/NuPlay/RichText/pull/48">#48</a></li> </ul> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/NuPlay/RichText/compare/2.3.1...2.4.0"><tt>2.3.1...2.4.0</tt></a></p> NuPlay tag:github.com,2008:Repository/389261402/2.3.1 2024-01-21T11:58:14Z V.2.3.1 <h1>โญ What's Changed</h1> <h3>โœจ [Feature]: Add custom type to LinkOpenType by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/vidalhara/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/vidalhara">@vidalhara</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2019062355" data-permission-text="Title is private" data-url="https://github.com/NuPlay/RichText/issues/42" data-hovercard-type="pull_request" data-hovercard-url="/NuPlay/RichText/pull/42/hovercard" href="https://github.com/NuPlay/RichText/pull/42">#42</a></h3> <div class="highlight highlight-source-swift notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="public enum LinkOpenType { #if canImport(UIKit) case SFSafariView(configuration: SFSafariViewController.Configuration = .init(), isReaderActivated: Bool? = nil, isAnimated: Bool = true) #endif case Safari case custom((URL) -&gt; Void) case none }"><pre><span class="pl-k">public</span> <span class="pl-k">enum</span> <span class="pl-smi">LinkOpenType</span> <span class="pl-kos">{</span> <span class="pl-en">#if canImport(UIKit)</span> <span class="pl-k">case</span> SFSafariView<span class="pl-kos">(</span>configuration<span class="pl-kos">:</span> <span class="pl-smi">SFSafariViewController</span><span class="pl-kos">.</span><span class="pl-smi">Configuration</span> <span class="pl-c1">=</span> <span class="pl-kos">.</span>init<span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">,</span> isReaderActivated<span class="pl-kos">:</span> <span class="pl-smi">Bool</span><span class="pl-c1"><span class="pl-c1">?</span></span> <span class="pl-c1">=</span> <span class="pl-smi">nil</span><span class="pl-kos">,</span> isAnimated<span class="pl-kos">:</span> <span class="pl-smi">Bool</span> <span class="pl-c1">=</span> <span class="pl-c1">true</span><span class="pl-kos">)</span> <span class="pl-en">#endif</span> <span class="pl-k">case</span> Safari <span class="pl-k">case</span> custom<span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-smi">URL</span><span class="pl-kos">)</span> <span class="pl-c1">-&gt;</span> <span class="pl-smi">Void</span><span class="pl-kos">)</span> <span class="pl-k">case</span> none <span class="pl-kos">}</span></pre></div> <h3>๐Ÿ› [Fix] Always call decisionHandler on webview navigationAction by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/filip-zielinski/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/filip-zielinski">@filip-zielinski</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2081993793" data-permission-text="Title is private" data-url="https://github.com/NuPlay/RichText/issues/43" data-hovercard-type="pull_request" data-hovercard-url="/NuPlay/RichText/pull/43/hovercard" href="https://github.com/NuPlay/RichText/pull/43">#43</a></h3> <h2>๐Ÿ‘ New Contributors</h2> <ul> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/vidalhara/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/vidalhara">@vidalhara</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2019062355" data-permission-text="Title is private" data-url="https://github.com/NuPlay/RichText/issues/42" data-hovercard-type="pull_request" data-hovercard-url="/NuPlay/RichText/pull/42/hovercard" href="https://github.com/NuPlay/RichText/pull/42">#42</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/filip-zielinski/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/filip-zielinski">@filip-zielinski</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2081993793" data-permission-text="Title is private" data-url="https://github.com/NuPlay/RichText/issues/43" data-hovercard-type="pull_request" data-hovercard-url="/NuPlay/RichText/pull/43/hovercard" href="https://github.com/NuPlay/RichText/pull/43">#43</a></li> </ul> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/NuPlay/RichText/compare/2.3.0...2.3.1"><tt>2.3.0...2.3.1</tt></a></p> NuPlay tag:github.com,2008:Repository/389261402/2.3.0 2023-07-17T23:18:18Z v2.3.0 <h2>โœจ Support macOS</h2> <h3>Now available for iOS 13 and macOS 10.15 and later.</h3> <div class="highlight highlight-source-swift notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="let package = Package( name: &quot;RichText&quot;, platforms: [ .iOS(&quot;13.0&quot;), .macOS(&quot;10.15&quot;) ], ... )"><pre><span class="pl-k">let</span> <span class="pl-s1"><span class="pl-k">package</span></span> <span class="pl-c1">=</span> <span class="pl-en">Package</span><span class="pl-kos">(</span> name<span class="pl-kos">:</span> <span class="pl-s">"</span><span class="pl-s">RichText</span><span class="pl-s">"</span><span class="pl-kos">,</span> platforms<span class="pl-kos">:</span> <span class="pl-kos">[</span> <span class="pl-kos">.</span>iOS<span class="pl-kos">(</span><span class="pl-s">"</span><span class="pl-s">13.0</span><span class="pl-s">"</span><span class="pl-kos">)</span><span class="pl-kos">,</span> <span class="pl-kos">.</span>macOS<span class="pl-kos">(</span><span class="pl-s">"</span><span class="pl-s">10.15</span><span class="pl-s">"</span><span class="pl-kos">)</span> <span class="pl-kos">]</span><span class="pl-kos">,</span> <span class="pl-c1">...</span> <span class="pl-kos">)</span></pre></div> <p>This update resolves the issue mentioned in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1728991150" data-permission-text="Title is private" data-url="https://github.com/NuPlay/RichText/issues/34" data-hovercard-type="issue" data-hovercard-url="/NuPlay/RichText/issues/34/hovercard" href="https://github.com/NuPlay/RichText/issues/34">#34</a> and has been implemented through PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1804345003" data-permission-text="Title is private" data-url="https://github.com/NuPlay/RichText/issues/36" data-hovercard-type="pull_request" data-hovercard-url="/NuPlay/RichText/pull/36/hovercard" href="https://github.com/NuPlay/RichText/pull/36">#36</a></p> <h3>โ™ป๏ธ linkOpenType Default Value is Changed</h3> <ul> <li>Default value for linkOpenType is changed to .Safari. <ul> <li>Previous: .SFSafariView()</li> <li>Reason: SFSafariView is not possible on macOS.</li> </ul> </li> </ul> <div class="highlight highlight-source-swift notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="//previous linkOpenType: LinkOpenType = .SFSafariView() //now linkOpenType: LinkOpenType = .Safari"><pre>//previous <span class="pl-ent">linkOpenType:</span> LinkOpenType <span class="pl-c1">=</span> <span class="pl-kos">.</span><span class="pl-en">SFSafariView</span><span class="pl-kos">(</span><span class="pl-kos">)</span> //now <span class="pl-ent">linkOpenType:</span> LinkOpenType <span class="pl-c1">=</span> <span class="pl-kos">.</span>Safari</pre></div> <div class="highlight highlight-source-swift notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="public enum LinkOpenType { #if canImport(UIKit) case SFSafariView(configuration: SFSafariViewController.Configuration = .init(), isReaderActivated: Bool? = nil, isAnimated: Bool = true) #endif case Safari case none }"><pre><span class="pl-k">public</span> <span class="pl-k">enum</span> <span class="pl-smi">LinkOpenType</span> <span class="pl-kos">{</span> <span class="pl-en">#if canImport(UIKit)</span> <span class="pl-k">case</span> SFSafariView<span class="pl-kos">(</span>configuration<span class="pl-kos">:</span> <span class="pl-smi">SFSafariViewController</span><span class="pl-kos">.</span><span class="pl-smi">Configuration</span> <span class="pl-c1">=</span> <span class="pl-kos">.</span>init<span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">,</span> isReaderActivated<span class="pl-kos">:</span> <span class="pl-smi">Bool</span><span class="pl-c1"><span class="pl-c1">?</span></span> <span class="pl-c1">=</span> <span class="pl-smi">nil</span><span class="pl-kos">,</span> isAnimated<span class="pl-kos">:</span> <span class="pl-smi">Bool</span> <span class="pl-c1">=</span> <span class="pl-c1">true</span><span class="pl-kos">)</span> <span class="pl-en">#endif</span> <span class="pl-k">case</span> Safari <span class="pl-k">case</span> none <span class="pl-kos">}</span></pre></div> <h3>๐Ÿ‘ Contributors</h3> <p>Thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/studiogaram/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/studiogaram">@studiogaram</a></p> NuPlay