{"id":2977,"date":"2025-11-07T16:36:52","date_gmt":"2025-11-07T16:36:52","guid":{"rendered":"https:\/\/mindfusion.dev\/blog\/?p=2977"},"modified":"2025-11-07T16:39:29","modified_gmt":"2025-11-07T16:39:29","slug":"whats-new-in-jspack-2025-r2","status":"publish","type":"post","link":"https:\/\/mindfusion.dev\/blog\/whats-new-in-jspack-2025-r2\/","title":{"rendered":"What\u2019s New in JsPack 2025.R2"},"content":{"rendered":"<p>We are excited to announce the release of JsPack 2025.R2! This update brings a host of new features and improvements to our Diagramming, Scheduling, and Virtual Keyboard components. Here\u2019s a look at what\u2019s new.<\/p>\n<p><a href=\"https:\/\/mindfusion.dev\/blog\/wp-content\/uploads\/2025\/11\/javascript-ui-library.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2978\" src=\"https:\/\/mindfusion.dev\/blog\/wp-content\/uploads\/2025\/11\/javascript-ui-library.webp\" alt=\"\" width=\"721\" height=\"428\" srcset=\"https:\/\/mindfusion.dev\/blog\/wp-content\/uploads\/2025\/11\/javascript-ui-library.webp 721w, https:\/\/mindfusion.dev\/blog\/wp-content\/uploads\/2025\/11\/javascript-ui-library-300x178.webp 300w, https:\/\/mindfusion.dev\/blog\/wp-content\/uploads\/2025\/11\/javascript-ui-library-500x297.webp 500w\" sizes=\"auto, (max-width: 721px) 100vw, 721px\" \/><\/a><br \/>\n<!--more--><\/p>\n<h1>Diagramming<\/h1>\n<h2>Paged Containers<\/h2>\n<p>Introducing PagedContainerNode, a new way to organize complex diagrams. This feature allows you to group nodes into a collection of pages, making your diagrams cleaner and more manageable. Key features include:<\/p>\n<p>Paged Navigation: Easily navigate between pages using scroll arrows or a combo box for direct access.<br \/>\nImproved Organization: Keep your diagrams tidy by grouping nodes into logical views.<br \/>\nDynamic Titles: The container\u2019s title automatically updates to reflect the active page.<\/p>\n<h2>Pattern Router<\/h2>\n<p>The new PatternRouter class provides a powerful way to route links in your diagrams. It uses predefined or custom patterns to create clean, consistent paths for your links, avoiding node crossings.<\/p>\n<h2>Composite Router<\/h2>\n<p>To further enhance link routing, we\u2019ve introduced the CompositeRouter. This new class chains multiple routers together, trying each one until a link is successfully routed. The default router now uses a CompositeRouter with a PatternRouter and a standard Router, ensuring optimal paths in a variety of scenarios.<\/p>\n<h2>Grid Layout<\/h2>\n<p>The GridLayout algorithm arranges your diagram nodes in a grid, keeping connected nodes close together and minimizing link crossings. This can help to create more organized and readable diagrams.<\/p>\n<h1>Scheduling<\/h1>\n<h2>Localization Improvements<\/h2>\n<p>We\u2019ve updated our Scheduling component to use the Intl API for improved localization of dates and times. This allows for more flexible and culturally-aware formatting of your calendars.<\/p>\n<h1>Virtual Keyboard<\/h1>\n<h2>Layout Ring<\/h2>\n<p>The new layoutRing property allows you to define a sequence of keyboard layouts that users can cycle through. This is perfect for applications that need to support multiple languages or input methods. You can customize the appearance of the layout ring key with images or labels.<\/p>\n<p>You can download MindFusion Pack for JavaScript from the <a href=\"https:\/\/mindfusion.dev\/javascript-pack.html\" data-wplink-edit=\"true\">official product page<\/a>.<\/p>\n<p>We invite you to explore these new features and see how they can enhance your applications. As always, we welcome your feedback.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We are excited to announce the release of JsPack 2025.R2! This update brings a host of new features and improvements to our Diagramming, Scheduling, and Virtual Keyboard components. Here\u2019s a look at what\u2019s new.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[513,2],"tags":[742,739,48,740],"class_list":["post-2977","post","type-post","status-publish","format-standard","hentry","category-javascript","category-product-releases","tag-frontend","tag-java-script","tag-ui","tag-web-development"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p3RlKs-M1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mindfusion.dev\/blog\/wp-json\/wp\/v2\/posts\/2977","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mindfusion.dev\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mindfusion.dev\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mindfusion.dev\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mindfusion.dev\/blog\/wp-json\/wp\/v2\/comments?post=2977"}],"version-history":[{"count":3,"href":"https:\/\/mindfusion.dev\/blog\/wp-json\/wp\/v2\/posts\/2977\/revisions"}],"predecessor-version":[{"id":2981,"href":"https:\/\/mindfusion.dev\/blog\/wp-json\/wp\/v2\/posts\/2977\/revisions\/2981"}],"wp:attachment":[{"href":"https:\/\/mindfusion.dev\/blog\/wp-json\/wp\/v2\/media?parent=2977"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mindfusion.dev\/blog\/wp-json\/wp\/v2\/categories?post=2977"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mindfusion.dev\/blog\/wp-json\/wp\/v2\/tags?post=2977"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}