<?xml version="1.0"?>
<oembed><version>1.0</version><provider_name>Ionic Blog</provider_name><provider_url>https://ionic.io/blog</provider_url><author_name>Brandy Smith</author_name><author_url>https://ionic.io/blog/author/brandy</author_url><title>Announcing Ionic 8.4</title><type>rich</type><width>600</width><height>338</height><html>&lt;blockquote class="wp-embedded-content" data-secret="7MN18P7mOt"&gt;&lt;a href="https://ionic.io/blog/announcing-ionic-8-4"&gt;Announcing Ionic 8.4&lt;/a&gt;&lt;/blockquote&gt;&lt;iframe sandbox="allow-scripts" security="restricted" src="https://ionic.io/blog/announcing-ionic-8-4/embed#?secret=7MN18P7mOt" width="600" height="338" title="&#x201C;Announcing Ionic 8.4&#x201D; &#x2014; Ionic Blog" data-secret="7MN18P7mOt" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" class="wp-embedded-content"&gt;&lt;/iframe&gt;&lt;script type="text/javascript"&gt;
/* &lt;![CDATA[ */
/*! This file is auto-generated */
!function(d,l){"use strict";l.querySelector&amp;&amp;d.addEventListener&amp;&amp;"undefined"!=typeof URL&amp;&amp;(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&amp;&amp;!/[^a-zA-Z0-9]/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret="'+t.secret+'"]'),o=l.querySelectorAll('blockquote[data-secret="'+t.secret+'"]'),c=new RegExp("^https?:$","i"),i=0;i&lt;o.length;i++)o[i].style.display="none";for(i=0;i&lt;a.length;i++)s=a[i],e.source===s.contentWindow&amp;&amp;(s.removeAttribute("style"),"height"===t.message?(1e3&lt;(r=parseInt(t.value,10))?r=1e3:~~r&lt;200&amp;&amp;(r=200),s.height=r):"link"===t.message&amp;&amp;(r=new URL(s.getAttribute("src")),n=new URL(t.value),c.test(n.protocol))&amp;&amp;n.host===r.host&amp;&amp;l.activeElement===s&amp;&amp;(d.top.location.href=t.value))}},d.addEventListener("message",d.wp.receiveEmbedMessage,!1),l.addEventListener("DOMContentLoaded",function(){for(var e,t,s=l.querySelectorAll("iframe.wp-embedded-content"),r=0;r&lt;s.length;r++)(t=(e=s[r]).getAttribute("data-secret"))||(t=Math.random().toString(36).substring(2,12),e.src+="#?secret="+t,e.setAttribute("data-secret",t)),e.contentWindow.postMessage({message:"ready",secret:t},"*")},!1)))}(window,document);
//# sourceURL=https://ionic.io/blog/wp-includes/js/wp-embed.min.js
/* ]]&gt; */
&lt;/script&gt;
</html><thumbnail_url>https://ionic.io/blog/wp-content/uploads/2024/11/ionic8-4-feature-image.png</thumbnail_url><thumbnail_width>2240</thumbnail_width><thumbnail_height>1120</thumbnail_height><description>We are thrilled to introduce Ionic 8.4, packed with exciting updates to core components like Alert, Select, and Segment, as well as accessibility enhancements and developer experience improvements. This release adds two new components and enhanced functionality to improve usability and deliver a smoother experience across the board. Here&#x2019;s what&#x2019;s new &#x1F447;</description></oembed>
