1<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://www.googletagmanager.com"><link rel="dns-prefetch" href="https://fonts.gstatic.com"><meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' blob: https://www.googletagmanager.com https://*.google-analytics.com https://www.youtube.com https://www.google.com https://www.gstatic.com https://snap.licdn.com https://*.6sc.co https://s3.amazonaws.com/ki.js/ https://bat.bing.com https://*.clarity.ms https://js.zi-scripts.com; style-src 'self' 'unsafe-inline' https://use.typekit.net https://p.typekit.net https://fonts.googleapis.com; font-src 'self' data: https://use.typekit.net https://p.typekit.net https://fonts.gstatic.com; img-src 'self' data: https:; media-src 'self' https:; connect-src 'self' https://p.typekit.net https://use.typekit.net https://www.infragistics.com https://www.googleapis.com https://www.googletagmanager.com https://*.googletagmanager.com https://*.google-analytics.com https://analytics.google.com https://*.analytics.google.com https://*.doubleclick.net https://www.google.com https://px.ads.linkedin.com https://*.6sc.co https://*.clarity.ms https://bat.bing.com https://bat.bing.net https://js.zi-scripts.com https://ws.zoominfo.com; frame-src https://www.youtube.com https://www.youtube-nocookie.com https://stackblitz.com https://www.googletagmanager.com https://www.google.com; object-src 'none'; base-uri 'self'; form-action 'self' https://www.infragistics.com; upgrade-insecure-requests"><meta name="referrer" content="strict-origin-when-cross-origin"><meta name="facebook-domain-verification" content="adpjkchhm2pwycs4kxtpnws0qv67jc">
1<script> 2 (function () { 3 'use strict'; 4 5 var COOKIE = 'ig_consent'; 6 var LEGACY_KEY = 'IGconsentMode'; // main site's localStorage key 7 var SCHEMA = 1; // bump to force re-consent when the category list changes 8 var MAX_AGE = 60 * 60 * 24 * 182; // ~6 months 9 10 window.dataLayer = window.dataLayer || []; 11 12 /* gtag must be a REAL function, never a silent no-op. A wrapper that skips 13 the call when gtag is missing turns a hard failure into a permanent 14 invisible one: the click still gets persisted, the banner never returns, 15 and the choice is never transmitted. GTM's snippet defines dataLayer but 16 NOT gtag, so defining it here is what makes the update reliable. */ 17 if (typeof window.gtag !== 'function') { 18 window.gtag = function () { 19 window.dataLayer.push(arguments); 20 }; 21 } 22 var gtag = window.gtag; 23 24 /* ---------- defaults: denied everywhere except security ---------- */ 25 gtag('consent', 'default', { 26 ad_storage: 'denied', 27 ad_user_data: 'denied', 28 ad_personalization: 'denied', 29 analytics_storage: 'denied', 30 functionality_storage: 'denied', 31 personalization_storage: 'denied', 32 // Authentication / fraud prevention. Strictly necessary, so granted 33 // unconditionally rather than exposed as a togglable category. 34 security_storage: 'granted', 35 // Milliseconds the tags wait for an update before sending anything, so a 36 // returning visitor's replay below lands before the first ping. 37 wait_for_update: 500, 38 }); 39 40 /* Redact GCLID/DCLID from pings and page URLs while ad_storage is denied. */ 41 gtag('set', 'ads_data_redaction', true); 42 43 /* Preserve ad-click attribution across same-domain navigation without 44 cookies. Earns its place here specifically: the main site and this blog 45 are separate apps on one domain, so a paid landing that clicks through to 46 an article crosses an app boundary on every visit. */ 47 gtag('set', 'url_passthrough', true); 48 49 /* ---------- storage ---------- */ 50 function cookieAttrs() { 51 // Domain= is only valid for the real site; on localhost it silently 52 // discards the cookie, so fall back to a host-only cookie there. 53 var domain = /(^|\.)infragistics\.com$/.test(location.hostname) 54 ? '; Domain=.infragistics.com' 55 : ''; 56 var secure = location.protocol === 'https:' ? '; Secure' : ''; 57 // Path=/ (not /blogs) â the decision has to be visible to the main site 58 // too. The browser matches cookie paths against the URL it sees, which 59 // still carries /blogs; nginx strips that prefix only further upstream. 60 return '; Path=/; Max-Age=' + MAX_AGE + '; SameSite=Lax' + domain + secure; 61 } 62 63 function readCookie(name) { 64 var m = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)')); 65 return m ? decodeURIComponent(m[1]) : null; 66 } 67 68 /* Coerce anything read from storage into a known-good shape. Guarding the 69 SHAPE and not just JSON.parse matters: "null", "123" and "{}" all parse 70 cleanly, and a bare try/catch would pass them straight to gtag and 71 suppress the banner forever. */ 72 function normalise(c) { 73 if (!c || typeof c !== 'object') return null; 74 return { 75 necessary: true, 76 functional: c.functional === true, 77 analytics: c.analytics === true, 78 advertising: c.advertising === true, 79 }; 80 } 81 82 function persistCookie(c) { 83 try { 84 document.cookie = 85 COOKIE + 86 '=' + 87 encodeURIComponent( 88 JSON.stringify({ v: SCHEMA, ts: new Date().toISOString(), c: c }), 89 ) + 90 cookieAttrs(); 91 } catch (e) { 92 /* cookies disabled â callers still apply the signals for this page */ 93 } 94 } 95 96 function sameDecision(a, b) { 97 return ( 98 a.functional === b.functional && 99 a.analytics === b.analytics && 100 a.advertising === b.advertising 101 ); 102 } 103 104 /* The legacy main-site decision. Its value is a SIGNAL map, not categories, 105 and the main site maps its "Functional" checkbox onto 106 personalization_storage â so that is the signal to read back, not 107 functionality_storage. */ 108 function readLegacy() {
109 try { 110 var legacy = localStorage.getItem(LEGACY_KEY); 111 if (legacy) { 112 var s = JSON.parse(legacy); 113 if (s && typeof s === 'object') { 114 return { 115 necessary: true, 116 functional: s.personalization_storage === 'granted', 117 analytics: s.analytics_storage === 'granted', 118 advertising: s.ad_storage === 'granted', 119 }; 120 } 121 } 122 } catch (e) { 123 /* storage disabled -> treat as no decision */ 124 } 125 return null; 126 } 127 128 function readDecision() { 129 var fromCookie = null; 130 var raw = readCookie(COOKIE); 131 if (raw) { 132 try { 133 var parsed = JSON.parse(raw); 134 if (parsed && parsed.v === SCHEMA) { 135 fromCookie = normalise(parsed.c); 136 } 137 } catch (e) { 138 /* corrupt cookie â handled below */ 139 } 140 // A cookie EXISTS but is unreadable or carries a different schema, so 141 // this visitor has decided before and we are deliberately re-asking. 142 // Do not fall through to the legacy mirror: it carries no version, so 143 // reading it would hand back the very decision the bump was meant to 144 // invalidate, and SCHEMA would silently stop forcing re-consent. 145 if (!fromCookie) return null; 146 } 147 148 var fromLegacy = readLegacy(); 149 if (!fromCookie) return fromLegacy; 150 if (!fromLegacy) return fromCookie; 151 if (sameDecision(fromCookie, fromLegacy)) return fromCookie; 152 153 /* THEY DISAGREE, so the main site wrote last and its value is newer. 154 This blog always writes both stores together, so it cannot be the 155 source of a mismatch; the Umbraco site writes only localStorage and 156 knows nothing about the cookie. The disagreement is therefore the 157 timestamp. Without this the stale cookie would win and a visitor who 158 declined on the main site would be silently re-granted here. 159 160 Re-sync the cookie, and clear anything the newer decision withdraws â 161 signalling denial does not delete what was already written, and the 162 main site never sweeps. */ 163 var drop = []; 164 if (fromCookie.analytics && !fromLegacy.analytics) drop = drop.concat(SWEEP.analytics); 165 if (fromCookie.advertising && !fromLegacy.advertising) 166 drop = drop.concat(SWEEP.advertising); 167 if (drop.length) clearCookies(drop); 168 169 persistCookie(fromLegacy); 170 return fromLegacy; 171 } 172 173 /* ---------- categories -> the seven signals ---------- 174 * NOTE this deliberately differs from the main site, which wires its 175 * FUNCTIONAL checkbox to personalization_storage only and leaves 176 * functionality_storage pinned to the always-on NECESSARY box â so 177 * unticking "Functional" there denies nothing the label describes. The 178 * mapping below is the corrected one; align the main site to it. */ 179 function toSignals(c) { 180 var ads = c.advertising ? 'granted' : 'denied'; 181 var fn = c.functional ? 'granted' : 'denied'; 182 return { 183 security_storage: 'granted', 184 functionality_storage: fn, 185 personalization_storage: fn, 186 analytics_storage: c.analytics ? 'granted' : 'denied', 187 ad_storage: ads, 188 ad_user_data: ads, 189 ad_personalization: ads, 190 }; 191 } 192 193 /* ---------- withdrawal: stop AND remove ---------- 194 * Signalling denial does not delete what was already written. Best-effort 195 * only: cookies set by another domain, or HttpOnly ones, cannot be removed 196 * from script. Those need the vendor's own opt-out or a server-side clear. */ 197 var SWEEP = { 198 analytics: ['_ga', '_gid', '_gat', '__utm'], 199 advertising: ['_gcl', '_fbp', '_fbc', '_uet', 'MUID', '_scid', '_clck', '_clsk'], 200 }; 201 202 function clearCookies(prefixes) { 203 // Try the host-only cookie and every parent domain, since we cannot tell 204 // which one a given cookie was written against. 205 var parts = location.hostname.split('.'); 206 var scopes = ['']; 207 for (var i = 0; i < parts.length - 1; i++) { 208 scopes.push('; Domain=.' + parts.slice(i).join('.')); 209 } 210 document.cookie.split('; ').forEach(function (pair) { 211 var name = pair.split('=')[0]; 212 if (!name) return; 213 var matched = prefixes.some(function (p) { 214 return name.indexOf(p) === 0; 215 }); 216 if (!matched) return;
217 scopes.forEach(function (scope) { 218 document.cookie = name + '=; Path=/; Max-Age=0' + scope; 219 }); 220 }); 221 } 222 223 /* ---------- public API ---------- */ 224 function save(input) { 225 var c = normalise(input); 226 if (!c) return; 227 var previous = window.igConsent.decision; 228 229 var signals = toSignals(c); 230 gtag('consent', 'update', signals); 231 232 persistCookie(c); 233 // Keep the main site in step for as long as it reads this key. 234 try { 235 localStorage.setItem(LEGACY_KEY, JSON.stringify(signals)); 236 } catch (e) { 237 /* storage disabled */ 238 } 239 240 var drop = []; 241 if (!c.analytics && (!previous || previous.analytics)) drop = drop.concat(SWEEP.analytics); 242 if (!c.advertising && (!previous || previous.advertising)) 243 drop = drop.concat(SWEEP.advertising); 244 if (drop.length) clearCookies(drop); 245 246 window.igConsent.decision = c; 247 // Event names match the ones the existing container already listens for, 248 // so GTM triggers keep working unchanged across both properties. 249 window.dataLayer.push({ 250 event: previous ? 'customConsentUpdate' : 'initialCustomConsentUpdate', 251 }); 252 } 253 254 var initial = readDecision(); 255 256 window.igConsent = { 257 /** Resolved categories, or null when the visitor has not decided yet. */ 258 decision: initial, 259 /** Record a decision: updates gtag, persists, sweeps, notifies GTM. */ 260 save: save, 261 /** Re-open the banner. Safe to call before the banner script loads. */ 262 open: function () { 263 window.igConsent.pendingOpen = true; 264 try { 265 window.dispatchEvent(new CustomEvent('ig-consent:open')); 266 } catch (e) { 267 /* very old browser â the pendingOpen flag still gets picked up */ 268 } 269 }, 270 }; 271 272 /* Replay a stored decision on every load. This is what stops a returning 273 consenting visitor being treated as denied, and â more importantly â a 274 returning DECLINING visitor from being re-tracked. */ 275 if (initial) { 276 gtag('consent', 'update', toSignals(initial)); 277 window.dataLayer.push({ event: 'customConsentUpdate' }); 278 } 279 })(); 280</script>
280<script>
vendor: 343 bytes, lines 280-284
280 281 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'}); 282 var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:''; 283 j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl; 284 f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','
284GTM-T65CF7
vendor: 6 bytes, lines 284-285
284'); 285
285</script>
285<link rel="icon" href="/blogs/favicon.ico" type="image/x-icon">
285<script>document.documentElement.classList.add('igd-js', 'wf-active');</script>
285<link rel="preconnect" href="https://use.typekit.net" crossorigin><link rel="preconnect" href="https://p.typekit.net" crossorigin><link rel="stylesheet" href="https://use.typekit.net/bng2zgw.css"><title>What's New in Infragistics Ultimate 26.1 - Infragistics Blogs</title><meta name="description" content="Infragistics Ultimate 26.1 ships a complete AI toolchain - Agent Skills, the Ignite UI CLI MCP server, and the Theming MCP server - across Angular, React, Web Components, and Blazor. The release also introduces Grid Lite, a free MIT-licensed open-source data grid, grid scroll performance gains of up to 150% FPS at 100k rows, PDF export for every grid family, a new Intl-based i18n engine, and new components including IgbQueryBuilder."><meta name="keywords" content="Infragistics Ultimate 26.1,Ignite UI 26.1,what's new Ignite UI,agent skills,Ignite UI CLI MCP server"><link rel="canonical" href="https://www.infragistics.com/blogs/whats-new-in-infragistics-ultimate-26-1"><link rel="alternate" type="application/rss+xml" title="Infragistics Blogs Feed" href="https://www.infragistics.com/blogs/feed"><meta name="robots" content="follow, index, max-snippet:-1, max-video-preview:-1, max-image-preview:large"><meta name="author" content="Radoslav Mirchev"><meta property="og:locale" content="en_US"><meta property="og:type" content="article"><meta property="og:site_name" content="Infragistics Blogs"><meta property="og:title" content="What's New in Infragistics Ultimate 26.1 - Infragistics Blogs"><meta property="og:description" content="Infragistics Ultimate 26.1 ships a complete AI toolchain - Agent Skills, the Ignite UI CLI MCP server, and the Theming MCP server - across Angular, React, Web Components, and Blazor. The release also introduces Grid Lite, a free MIT-licensed open-source data grid, grid scroll performance gains of up to 150% FPS at 100k rows, PDF export for every grid family, a new Intl-based i18n engine, and new components including IgbQueryBuilder."><meta property="og:url" content="https://www.infragistics.com/blogs/whats-new-in-infragistics-ultimate-26-1"><meta property="og:image" content="https://static.infragistics.com/marketing/Website/ig-blog-imgs
285/infragistics-ultimate-26-1.webp"><meta property="og:image:secure_url" content="https://static.infragistics.com/marketing/Website/ig-blog-imgs/infragistics-ultimate-26-1.webp"><meta property="og:updated_time" content="2026-07-23T00:00:00.000Z"><meta property="article:published_time" content="2026-06-11T00:00:00.000Z"><meta property="article:modified_time" content="2026-07-23T00:00:00.000Z"><meta property="article:section" content="Infragistics Ultimate"><meta property="article:tag" content="26-1"><meta property="article:tag" content="agent-skills"><meta property="article:tag" content="angular"><meta property="article:tag" content="blazor"><meta property="article:tag" content="cli"><meta property="article:tag" content="grid-lite"><meta property="article:tag" content="grid-performance"><meta property="article:tag" content="ignite-ui"><meta property="article:tag" content="infragistics-ultimate"><meta property="article:tag" content="MCP"><meta property="article:tag" content="pdf-export"><meta property="article:tag" content="react"><meta property="article:tag" content="web-components"><meta property="article:tag" content="whats-new"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="What's New in Infragistics Ultimate 26.1 - Infragistics Blogs"><meta name="twitter:description" content="Infragistics Ultimate 26.1 ships a complete AI toolchain - Agent Skills, the Ignite UI CLI MCP server, and the Theming MCP server - across Angular, React, Web Components, and Blazor. The release also introduces Grid Lite, a free MIT-licensed open-source data grid, grid scroll performance gains of up to 150% FPS at 100k rows, PDF export for every grid family, a new Intl-based i18n engine, and new components including IgbQueryBuilder."><meta name="twitter:image" content="https://static.infragistics.com/marketing/Website/ig-blog-imgs
285/infragistics-ultimate-26-1.webp"><meta name="twitter:label1" content="Written by"><meta name="twitter:data1" content="Radoslav Mirchev"><meta name="twitter:label2" content="Time to read"><meta name="twitter:data2" content="12 minutes">
285<script type="application/ld+json">{ 286 "@context": "https://schema.org", 287 "@graph": [ 288 { 289 "@type": "Organization", 290 "@id": "https://www.infragistics.com/blogs#organization", 291 "name": "Infragistics", 292 "url": "https://www.infragistics.com", 293 "logo": { 294 "@type": "ImageObject", 295 "@id": "https://www.infragistics.com/blogs#logo", 296 "url": "https://static.infragistics.com/marketing/Website/blogs/infragistics-blog-icon.svg", 297 "contentUrl": "https://static.infragistics.com/marketing/Website/blogs/infragistics-blog-icon.svg", 298 "caption": "Infragistics", 299 "inLanguage": "en-US" 300 } 301 }, 302 { 303 "@type": "WebSite", 304 "@id": "https://www.infragistics.com/blogs#website", 305 "url": "https://www.infragistics.com/blogs", 306 "name": "Infragistics Blogs", 307 "publisher": { 308 "@id": "https://www.infragistics.com/blogs#organization" 309 }, 310 "inLanguage": "en-US" 311 }, 312 { 313 "@type": "ImageObject", 314 "@id": "https://static.infragistics.com/marketing/Website/ig-blog-imgs
314/infragistics-ultimate-26-1.webp", 315 "url": "https://static.infragistics.com/marketing/Website/ig-blog-imgs/infragistics-ultimate-26-1.webp", 316 "contentUrl": "https://static.infragistics.com/marketing/Website/ig-blog-imgs/infragistics-ultimate-26-1.webp", 317 "inLanguage": "en-US" 318 }, 319 { 320 "@type": "BreadcrumbList", 321 "@id": "https://www.infragistics.com/blogs/whats-new-in-infragistics-ultimate-26-1#breadcrumb", 322 "itemListElement": [ 323 { 324 "@type": "ListItem", 325 "position": 1, 326 "name": "Blog", 327 "item": "https://www.infragistics.com/blogs" 328 }, 329 { 330 "@type": "ListItem", 331 "position": 2, 332 "name": "Infragistics Ultimate", 333 "item": "https://www.infragistics.com/blogs/category/ultimate" 334 }, 335 { 336 "@type": "ListItem", 337 "position": 3, 338 "name": "What's New in Infragistics Ultimate 26.1", 339 "item": "https://www.infragistics.com/blogs/whats-new-in-infragistics-ultimate-26-1" 340 } 341 ] 342 }, 343 { 344 "@type": "WebPage", 345 "@id": "https://www.infragistics.com/blogs/whats-new-in-infragistics-ultimate-26-1#webpage", 346 "url": "https://www.infragistics.com/blogs/whats-new-in-infragistics-ultimate-26-1", 347 "name": "What's New in Infragistics Ultimate 26.1 - Infragistics Blogs", 348 "description": "Infragistics Ultimate 26.1 ships a complete AI toolchain - Agent Skills, the Ignite UI CLI MCP server, and the Theming MCP server - across Angular, React, Web Components, and Blazor. The release also introduces Grid Lite, a free MIT-licensed open-source data grid, grid scroll performance gains of up to 150% FPS at 100k rows, PDF export for every grid family, a new Intl-based i18n engine, and new components including IgbQueryBuilder.", 349 "isPartOf": { 350 "@id": "https://www.infragistics.com/blogs#website" 351 }, 352 "primaryImageOfPage": { 353 "@id": "https://static.infragistics.com/marketing/Website/ig-blog-imgs
353/infragistics-ultimate-26-1.webp" 354 }, 355 "datePublished": "2026-06-11T00:00:00.000Z", 356 "dateModified": "2026-07-23T00:00:00.000Z", 357 "breadcrumb": { 358 "@id": "https://www.infragistics.com/blogs/whats-new-in-infragistics-ultimate-26-1#breadcrumb" 359 }, 360 "inLanguage": "en-US" 361 }, 362 { 363 "@type": "Person", 364 "@id": "https://www.infragistics.com/blogs/author/rmirchev", 365 "name": "Radoslav Mirchev", 366 "url": "https://www.infragistics.com/blogs/author/rmirchev", 367 "description": "Product Owner of Ignite UI platform, that includes Ignite UI for Angular, Ignite UI for Web Components, Ignite UI for React, Ignite UI for Blazor and App Builder. I am responsible to advocate for customersâ perspective and needs within the product team, to prioritize the backlog items and make sure everything is ready to deliver, with highest quality and in time.", 368 "image": { 369 "@type": "ImageObject", 370 "@id": "https://secure.gravatar.com/avatar/44593f84101e630ba3aedc00a95528641f68bb6225523d5160ba7c99263d4ff0?s=64&d=mm&r=g", 371 "url": "https://secure.gravatar.com/avatar/44593f84101e630ba3aedc00a95528641f68bb6225523d5160ba7c99263d4ff0?s=64&d=mm&r=g", 372 "contentUrl": "https://secure.gravatar.com/avatar/44593f84101e630ba3aedc00a95528641f68bb6225523d5160ba7c99263d4ff0?s=64&d=mm&r=g", 373 "caption": "Radoslav Mirchev", 374 "inLanguage": "en-US" 375 }, 376 "worksFor": { 377 "@id": "https://www.infragistics.com/blogs#organization" 378 } 379 }, 380 { 381 "@type": "BlogPosting", 382 "@id": "https://www.infragistics.com/blogs/whats-new-in-infragistics-ultimate-26-1#post", 383 "headline": "What's New in Infragistics Ultimate 26.1", 384 "name": "What's New in Infragistics Ultimate 26.1", 385 "description": "Infragistics Ultimate 26.1 ships a complete AI toolchain - Agent Skills, the Ignite UI CLI MCP server, and the Theming MCP server - across Angular, React, Web Components, and Blazor. The release also introduces Grid Lite, a free MIT-licensed open-source data grid, grid scroll performance gains of up to 150% FPS at 100k rows, PDF export for every grid family, a new Intl-based i18n engine, and new components including IgbQueryBuilder.", 386 "keywords": "26-1, agent-skills, angular, blazor, cli, grid-lite, grid-performance, ignite-ui, infragistics-ultimate, MCP, pdf-export, react, web-components, whats-new", 387 "articleSection": "Infragistics Ultimate", 388 "datePublished": "2026-06-11T00:00:00.000Z", 389 "dateModified": "2026-07-23T00:00:00.000Z", 390 "image": { 391 "@id": "https://static.infragistics.com/marketing/Website/ig-blog-imgs
391/infragistics-ultimate-26-1.webp" 392 }, 393 "inLanguage": "en-US", 394 "isPartOf": { 395 "@id": "https://www.infragistics.com/blogs/whats-new-in-infragistics-ultimate-26-1#webpage" 396 }, 397 "mainEntityOfPage": { 398 "@id": "https://www.infragistics.com/blogs/whats-new-in-infragistics-ultimate-26-1#webpage" 399 }, 400 "author": { 401 "@id": "https://www.infragistics.com/blogs/author/rmirchev" 402 }, 403 "publisher": { 404 "@id": "https://www.infragistics.com/blogs#organization" 405 } 406 } 407 ] 408}</script>
408<script type="application/ld+json">{ 409 "@context": "https://schema.org", 410 "@graph": [ 411 { 412 "@type": "TechArticle", 413 "headline": "What's New in Infragistics Ultimate 26.1", 414 "description": "Infragistics Ultimate 26.1 makes the AI-assisted development toolchain - Agent Skills, the Ignite UI CLI MCP server, and the Theming MCP server - a cross-framework capability across Angular, React, Web Components, and Blazor, configured with a single command, alongside Grid Lite, grid performance and PDF export work, an Intl-based i18n engine, and new components.", 415 "author": [ 416 { 417 "@type": "Person", 418 "name": "Radoslav Mirchev", 419 "affiliation": { 420 "@type": "Organization", 421 "name": "Infragistics" 422 } 423 } 424 ], 425 "publisher": { 426 "@type": "Organization", 427 "name": "Infragistics", 428 "url": "https://www.infragistics.com" 429 }, 430 "keywords": "Ignite UI, Infragistics Ultimate 26.1, AI-assisted development, Agent Skills, MCP server, CLI MCP, Theming MCP, Angular, React, Web Components, Blazor, Grid Lite", 431 "about": [ 432 "Ignite UI 26.1 release", 433 "AI-assisted development", 434 "UI component libraries" 435 ], 436 "mentions": [ 437 { 438 "@type": "Thing", 439 "name": "Ignite UI CLI MCP server", 440 "applicationCategory": "DeveloperApplication", 441 "url": "https://www.infragistics.com/products/ignite-ui-react/react/components/ai/cli-mcp" 442 }, 443 { 444 "@type": "Thing", 445 "name": "Ignite UI Theming MCP server", 446 "applicationCategory": "DeveloperApplication", 447 "url": "https://www.infragistics.com/products/ignite-ui-react/react/components/ai/theming-mcp" 448 }, 449 { 450 "@type": "Thing", 451 "name": "Ignite UI Agent Skills", 452 "sameAs": "https://www.infragistics.com/products/ignite-ui/ignite-ui-ai-agent-skills" 453 }, 454 { 455 "@type": "Thing", 456 "name": "Ignite UI Grid Lite", 457 "applicationCategory": "DeveloperApplication", 458 "url": "https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid-lite/overview" 459 } 460 ], 461 "citation": [ 462 { 463 "@type": "ScholarlyArticle", 464 "name": "An Empirical Study of MCP and Agent Skills Benefits", 465 "url": "https://www.infragistics.com/blogs/empirical-study-of-mcp-and-agent-skills-benefits" 466 }, 467 { 468 "@type": "TechArticle", 469 "name": "Why Ignite UI AI Tooling Produces Better Results", 470 "url": "https://www.infragistics.com/blogs/why-ignite-ui-ai-tooling-produces-better-results" 471 } 472 ] 473 }, 474 { 475 "@type": "FAQPage", 476 "mainEntity": [ 477 { 478 "@type": "Question", 479 "name": "What's new in Infragistics Ultimate 26.1?", 480 "acceptedAnswer": { 481 "@type": "Answer", 482 "text": "Infragistics Ultimate 26.1 extends the AI-assisted development toolchain - Agent Skills, the Ignite UI CLI MCP server, and the Theming MCP server - across Angular, React, Web Components, and Blazor, and adds Grid Lite (a free data grid), grid scroll-performance and PDF export work, an Intl-based i18n engine, and new components." 483 } 484 }, 485 { 486 "@type": "Question", 487 "name": "Does the Ignite UI AI tooling support Blazor?", 488 "acceptedAnswer": { 489 "@type": "Answer", 490 "text": "Yes. Agent Skills, the CLI MCP server (Blazor docs and API since CLI 15.2.0), and the Theming MCP server all cover Blazor. CLI project scaffolding templates for Blazor are still in development." 491 } 492 }, 493 { 494 "@type": "Question", 495 "name": "How do I set up the AI-assisted development toolchain?", 496 "acceptedAnswer": { 497 "@type": "Answer", 498 "text": "Run npx igniteui-cli ai-config in an Angular, React, Web Components, or Blazor project. It copies the framework's Agent Skills and writes the CLI MCP and Theming MCP server entries to your AI client configuration." 499 } 500 }, 501 { 502 "@type": "Question",
503 "name": "Which frameworks does the toolchain support?", 504 "acceptedAnswer": { 505 "@type": "Answer", 506 "text": "Angular, React, Web Components, and Blazor - the same three-layer toolchain (Agent Skills, CLI MCP, Theming MCP) across all four." 507 } 508 }, 509 { 510 "@type": "Question", 511 "name": "Is Ignite UI Grid Lite free?", 512 "acceptedAnswer": { 513 "@type": "Answer", 514 "text": "Yes. Grid Lite is released under the MIT license, free for commercial use with no feature gating; the Angular wrapper (IgxGridLiteComponent) ships as a Developer Preview in 21.1." 515 } 516 } 517 ] 518 }, 519 { 520 "@type": "VideoObject", 521 "name": "What's New in Infragistics Ultimate 26.1: AI-Powered Development with Ignite UI CLI", 522 "description": "Webinar walkthrough of the Ignite UI CLI MCP server, AI-configured project scaffolds, the Generate-from-Image workflow, and the Ignite UI for Angular 21.2 updates.", 523 "uploadDate": "2026-06-17", 524 "duration": "PT48M24S", 525 "embedUrl": "https://www.youtube.com/embed/EyGlts52FQI", 526 "thumbnailUrl": "https://i.ytimg.com/vi/EyGlts52FQI/hqdefault.jpg", 527 "publisher": { 528 "@type": "Organization", 529 "name": "Infragistics", 530 "url": "https://www.infragistics.com" 531 } 532 } 533 ] 534}</script>
534<link rel="stylesheet" href="/blogs/_astro/BaseLayout.DgqeQWOa.css"><link rel="stylesheet" href="/blogs/_astro/_..6GbmqKg4.css"></head><body>
vendor: 67 bytes, line 534
534<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
534GTM-T65CF7
vendor: 82 bytes, lines 534-535
534" 535height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
535<a class="igd-skip-link" href="#main-content">Skip to content</a><header id="header" class="globalnav" lang="en" data-nav-auto-init="true" data-mega-menu="true"><div id="header-wrap" class="globalnav__container"><div class="globalnav__search"><div class="globalnav__search-container globalnav__wrapper"><div class="search search__container search--support" data-cse-resultsurl="https://www.infragistics.com/search"><input id="q" class="search__input" type="text" name="q" value="" placeholder="Search Infragistics.com" aria-labelledby="search__button-navigation"><button id="search__button-navigation" type="submit" value="search" aria-label="Search Infragistics.com"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M497.913,497.913c-18.782,18.782-49.225,18.782-68.008,0l-84.862-84.863c-34.889,22.382-76.13,35.717-120.659,35.717 C100.469,448.767,0,348.312,0,224.383S100.469,0,224.384,0c123.931,0,224.384,100.452,224.384,224.383 c0,44.514-13.352,85.771-35.718,120.676l84.863,84.863C516.695,448.704,516.695,479.131,497.913,497.913z M224.384,64.109 c-88.511,0-160.274,71.747-160.274,160.273c0,88.526,71.764,160.274,160.274,160.274c88.525,0,160.273-71.748,160.273-160.274 C384.657,135.856,312.909,64.109,224.384,64.109z"></path></svg></button></div></div></div><div class="globalnav__primary clearfix"><div class="globalnav__wrapper"><div class="globalnav__section clearfix"><nav class="globalnav__menu-container" aria-label="Utility"><ul class="navigation navigation--xs navigation--hpad-0"><li class="navigation__text deemphasize" style="width: auto;">North American Sales: 1-800-231-8588</li><li><a title="Contact Us" href="https://www.infragistics.com/about-us/contact-us">Global Contacts</a></li><li class="navigation__account"><a class="signInLink" href="https://www.infragistics.com/my-account/keys-and-downloads">My Account</a></li></ul></nav></div><div class="globalnav__brand"><a aria-label="Infragistics.com" href="https://www.infragistics.com/"><img class="globalnav__logo" src="https://static.infragistics.com/marketing/Website/General/Infragistics-horizontal.svg" alt="Infragistics logo" width="377" height="53"><img class="globalnav__logo_abbr" src="https://static.infragistics.com/marketing/Website/General/IG-icon.svg" alt="Infragistics logo" width="149" height="137"></a></div><div class="globalnav__mobile-menu"><button type="button" class="globalnav__menu-toggle" aria-label="Toggle navigation menu" aria-expanded="false" aria-controls="main-navigation"><span>Menu</span></button></div><button type="button" class="globalnav__search-toggle" aria-label="Toggle search" aria-expanded="false" aria-controls="q"><div class="globalnav__search-close"><i> </i></div></button><nav class="globalnav__menu-container" aria-label="Main"><ul id="main-navigation" class="navigation navigation--navbar navigation--hpad-0 sf-menu"><li class="navigation__mobile-link"><div class="globalnav__callout-text">North American Sales: 1-800-231-8588</div></li><li class="navigation__mobile-link"><a class="navigation__sub-menu" href="#">My Account</a><ul class="sub-menu clearfix"><li><a class="signInLink" href="https://www.infragistics.com/my-account/keys-and-downloads">Sign In/Register</a></li></ul></li><li class="menu-full-width"><a class="navigation__sub-menu" title="Design and Development" href="https://www.infragistics.com/products/ultimate"><span class="hidden-md">Design & Development</span><span class="visible-md hidden-lg hidden-sm hidden-xs hidden-xxs">Design & Develop</span></a><ul><li><div class="navigation__sub-menu--left"><div class="navigation__sub-menu--left-item"><div class="navigation__sub-menu-header">Best Value Bundles</div><div class="emphasize"><a href="https://www.infragistics.com/products/ultimate"><span class="navigation__sub-menu-title">Infragistics Ultimate</span><span class="navigation__sub-menu-price bgColor--ultimate">$2,399</span><span class="deemphasize">The only complete UX/UI toolkit for building high performance, modern web, mobile and desktop applications.</span></a></div></div>
535<div class="navigation__sub-menu--left-item"><div class="emphasize"><a href="https://www.infragistics.com/products/pro"><span class="navigation__sub-menu-title">Infragistics Professional</span><span class="navigation__sub-menu-price bgColor--pro">$1,599</span><span class="deemphasize">The comprehensive UI components library for web, mobile and desktop developers.</span></a></div></div><div class="navigation__sub-menu--left-item hidden-sm hidden-xs hidden-xxs"><div class="emphasize"><a href="https://www.infragistics.com/products/ignite-ui"><span class="navigation__sub-menu-title">Ignite UI</span><span class="navigation__sub-menu-price bgColor--ignite">$1,399</span><span class="deemphasize">A complete library of UI components for building modern, data-rich and responsive web apps.</span></a></div></div></div></li><li><div class="navigation__sub-menu-header">Web</div><a class="deemphasize" title="App Builder" href="https://www.appbuilder.dev/platform" target="_blank" rel="noopener">App Builder <strong>(New)</strong></a><a class="deemphasize" href="https://www.infragistics.com/products/ignite-ui">Ignite UI</a><p class="deemphasize small-pad-left mar-bottom--zero" style="padding-bottom: 0; margin-bottom: 0;"><a style="display: inline-block;" href="https://www.infragistics.com/products/ignite-ui-angular">Angular</a></p><p class="deemphasize small-pad-left mar-bottom--zero" style="padding-bottom: 0; margin-bottom: 0;"><a style="display: inline-block;" href="https://www.infragistics.com/products/ignite-ui-react">React</a><span style="display: inline-block; margin-right: .7em; margin-left: .7em;"> |</span><a title="Grid Samples" style="display: inline-block;" href="https://www.infragistics.com/products/react-data-grid">React Grid</a><span style="display: inline-block; margin-right: .7em; margin-left: .7em;"> |</span><a title="Agentic AI Campaign" style="display: inline-block;" href="https://www.infragistics.com/products/ignite-ui-react/agentic-ai">Agentic AI</a></p><a class="deemphasize small-pad-left" style="display: inline-block;" href="https://www.infragistics.com/products/ignite-ui-web-components">Web Components</a><a class="deemphasize small-pad-left" href="https://www.infragistics.com/products/ignite-ui-blazor">Blazor</a><a class="deemphasize" href="https://www.infragistics.com/products/ignite-ui-aspnet-core">Ultimate UI for ASP.NET Core</a><a class="deemphasize" href="https://www.infragistics.com/products/ignite-ui-aspnet-mvc">Ultimate UI for ASP.NET MVC</a><a class="deemphasize" href="https://www.infragistics.com/products/ignite-ui-jquery">Ultimate UI for jQuery</a><a class="deemphasize" href="https://www.infragistics.com/products/aspnet">Ultimate UI for ASP.NET Web Forms</a></li><li><div class="navigation__sub-menu-header">AI</div><a title="AI-Assisted App Development with Ignite UI" href="https://www.infragistics.com/ai-assisted-app-development">AI Assisted App Development</a><a title="AI Agent Skills" href="https://www.infragistics.com/products/ignite-ui/ignite-ui-ai-agent-skills">AI Agent Skills</a><a href="https://www.infragistics.com/products/ignite-ui/ignite-ui-cli-mcp">CLI MCP</a><div class="navigation__sub-menu-header">Desktop</div><a href="https://www.infragistics.com/products/windows-forms">Ultimate UI for Windows Forms</a><a href="https://www.infragistics.com/products/wpf">Ultimate UI for WPF</a><div class="navigation__sub-menu-header">Open-Source Controls</div><a title="Angular OSS" href="https://www.infragistics.com/products/ignite-ui-angular/open-source">Angular OSS</a><a title="React OSS" href="https://www.infragistics.com/products/ignite-ui-react/open-source">React OSS</a><a title="Web Components OSS" href="https://www.infragistics.com/products/ignite-ui-web-components/open-source">Web Components OSS</a><a title="Blazor OSS" href="https://www.infragistics.com/products/ignite-ui-blazor/open-source">Blazor OSS</a></li><li><div class="navigation__sub-menu-header">Design to Code</div><a class="hidden-sm hidden-xs hidden-xxs" href="https://www.appbuilder.dev/platform" target="_blank" rel="noopener">App Builder <strong>(New)</strong></a><a class="hidden-sm hidden-xs hidden-xxs" href="https://www.infragistics.com/products/appbuilder/ui-toolkit">Design System & UI Kits</a>
535<div class="navigation__sub-menu-header">Automated Testing Tools</div><a href="https://www.infragistics.com/products/test-automation-micro-focus-uft">Test automation for Micro Focus UFT: Windows Forms</a><a href="https://www.infragistics.com/products/test-automation-micro-focus-uft">Test automation for Micro Focus UFT: WPF</a><a href="https://www.infragistics.com/products/test-automation-ibm-rft">Test automation for IBM RFT: Windows Forms</a></li></ul></li><li><a class="navigation__sub-menu" title="UX" href="https://www.infragistics.com/products/indigo-design">UX</a><ul><li><a title="App Builder" href="https://www.appbuilder.dev/platform" target="_blank" rel="noopener">App Builder<span class="deemphasize">Cloud-based WYSIWYG Drag & Drop Tool, Endless Theming options and Standards-Based Code Output</span></a></li></ul></li><li><a class="navigation__sub-menu" title="Business Intelligence" href="https://www.revealbi.io">Business Intelligence</a><ul><li><a title="Reveal" href="https://www.revealbi.io/">Reveal<span class="deemphasize">Easily embed beautiful data visualizations into your apps</span></a></li><li><a title="Slingshot" href="https://www.slingshotapp.io">Slingshot<span class="deemphasize">Empower everyone in your organization to use data to make smarter business decisions</span></a></li></ul></li><li><a class="navigation__sub-menu" title="Team Productivity" href="https://www.slingshotapp.io">Team Productivity</a><ul><li><a title="Slingshot" href="https://www.slingshotapp.io">Slingshot<span class="deemphasize">Connect everyone you work with to data, project management, content and chats for better results.</span></a></li><li><a title="SharePlus" href="https://www.infragistics.com/products/shareplus-enterprise">SharePlus<span class="deemphasize">Secure, instant access to content and data on the go â with or without connectivity.</span></a></li></ul></li><li><a class="navigation__sub-menu" title="Learn and Support" href="https://www.infragistics.com/support"><span class="hidden-md">Learn & Support</span><span class="visible-md hidden-lg hidden-sm hidden-xs hidden-xxs">Support</span></a><ul><li><a title="Help & Support Documents" href="https://www.infragistics.com/support">Help & Support Documents</a></li><li><a title="Blogs" href="/blogs">Blogs</a></li><li><a title="Forums" href="https://www.infragistics.com/forums/">Forums</a></li><li><a title="Reference Applications" href="https://www.infragistics.com/resources/sample-applications">Reference Applications</a></li><li><a title="Customer Stories" href="https://www.infragistics.com/resources/case-studies">Customer Stories</a></li><li><a title="Webinars" href="https://www.infragistics.com/webinars">Webinars</a></li><li><a title="eBook & Whitepapers" href="https://www.infragistics.com/resources/whitepapers">eBook & Whitepapers</a></li><li><a title="Events" href="https://www.infragistics.com/events">Events</a></li></ul></li><li><a title="Free Trials" href="https://www.infragistics.com/free-downloads">Free Trials</a></li><li><a class="navigation__sub-menu" title="Pricing" href="https://www.infragistics.com/how-to-buy/product-pricing">Pricing</a><ul><li><a title="Product Pricing / Buy Online" href="https://www.infragistics.com/how-to-buy/product-pricing">Product Pricing / Buy Online</a></li><li><a title="Subscription Renewal" href="https://www.infragistics.com/subscription-renewal-page">Subscription Renewal</a></li><li><a title="Contact Us" href="https://www.infragistics.com/about-us/contact-us">Contact Us</a></li></ul></li></ul></nav><div class="globalnav__overlay"></div></div></div></div></header>
535<script type="module" src="/blogs/_astro/GlobalNav.astro_astro_type_script_index_0_lang.CosG9y2j.js"></script>
535<main id="main-content" data-width="full"><div class="igd-hero" style="--igd-hero-backdrop: url("https://static.infragistics.com/marketing/Website/ig-blog-imgs/infragistics-ultimate-26-1.webp")" data-backdrop><div class="igd-hero__inner"><nav class="igd-hero__crumbs" aria-label="Breadcrumb"><a href="/blogs/">Blog</a><span class="igd-hero__sep">/</span><a href="/blogs/category/ultimate">Infragistics Ultimate</a><span class="igd-hero__sep">/</span><span class="igd-hero__current">What's New in Infragistics Ultimate 26.1</span></nav><div class="igd-hero__body"><!--{--><!-- image && (--><!-- <div class="igd-hero__media">--><!-- <img--><!-- src={image}--><!-- alt=""--><!-- width={imageSize?.width}--><!-- height={imageSize?.height}--><!-- decoding="async"--><!-- />--><!-- </div>--><!-- )--><!--}--><div class="igd-hero__text"><h1>What's New in Infragistics Ultimate 26.1</h1><p class="igd-hero__standfirst">Infragistics Ultimate 26.1 ships a complete AI toolchain - Agent Skills, the 536Ignite UI CLI MCP server, and the Theming MCP server - across Angular, 537React, Web Components, and Blazor. The release also introduces Grid Lite, a 538free MIT-licensed open-source data grid, grid scroll performance gains of up 539to 150% FPS at 100k rows, PDF export for every grid family, a new Intl-based 540i18n engine, and new components including IgbQueryBuilder.</p><div class="igd-byline"><span><a href="/blogs/author/rmirchev"><img src="https://secure.gravatar.com/avatar/44593f84101e630ba3aedc00a95528641f68bb6225523d5160ba7c99263d4ff0?s=64&d=mm&r=g" alt="" width="30" height="30" decoding="async">Radoslav Mirchev</a></span><time datetime="2026-06-11">Jun 11, 2026</time><span>12 min read</span></div></div></div></div></div><div class="igd-post"><aside class="igd-post__aside"><nav class="igd-toc igd-panel" aria-labelledby="igd-toc-heading"><p class="igd-toc__heading" id="igd-toc-heading">Table of Contents</p><ul class="igd-list"><li><a href="#one-ai-assisted-development-toolchain">One AI-Assisted Development Toolchain</a></li><li data-sub="true"><a href="#one-command-for-all-four">One Command for All Four</a></li><li data-sub="true"><a href="#agent-skills-across-the-board">Agent Skills Across the Board</a></li><li data-sub="true"><a href="#the-difference-is-measured">The Difference Is Measured</a></li><li data-sub="true"><a href="#optional-maker-multi-agent-orchestration">Optional: MAKER Multi-Agent Orchestration</a></li><li data-sub="true"><a href="#where-the-cli-mcp-server-lives">Where the CLI MCP Server Lives</a></li><li><a href="#redesigned-documentation-and-llmstxt">Redesigned Documentation and llms.txt</a></li><li><a href="#grid-lite-a-free-open-source-data-grid">Grid Lite: A Free, Open-Source Data Grid</a></li><li><a href="#grid-performance">Grid Performance</a></li><li><a href="#grid-pdf-export">Grid PDF Export</a></li><li><a href="#intl-based-i18n">Intl-Based i18n</a></li><li><a href="#dock-manager-21">Dock Manager 2.1</a></li><li><a href="#release-notes-what-shipped-and-when">Release Notes: What Shipped, and When</a></li><li data-sub="true"><a href="#ignite-ui-cli">Ignite UI CLI</a></li><li data-sub="true"><a href="#ignite-ui-for-angular">Ignite UI for Angular</a></li><li data-sub="true"><a href="#ignite-ui-for-react">Ignite UI for React</a></li><li data-sub="true"><a href="#ignite-ui-for-web-components">Ignite UI for Web Components</a></li><li data-sub="true"><a href="#ignite-ui-for-blazor">Ignite UI for Blazor</a></li><li><a href="#ultimate-ui-for-windows-forms-and-wpf">Ultimate UI for Windows Forms and WPF</a></li><li><a href="#frequently-asked-questions">Frequently Asked Questions</a></li><li><a href="#watch-the-walkthrough">Watch the Walkthrough</a></li><li><a href="#a-closing-thought">A Closing Thought</a></li><li><a href="#additional-resources">Additional Resources</a></li></ul></nav>
540<script type="module">var e=[...document.querySelectorAll(`.igd-toc a`)];if(e.length){let t=new Map(e.map(e=>[decodeURIComponent(e.hash.slice(1)),e])),n=[...t.keys()].map(e=>document.getElementById(e)).filter(e=>e!==null);e[0].classList.add(`is-active`);let r=new IntersectionObserver(n=>{for(let r of n)if(r.isIntersecting){for(let t of e)t.classList.remove(`is-active`);t.get(r.target.id)?.classList.add(`is-active`)}},{rootMargin:`0px 0px -70% 0px`,threshold:1});for(let e of n)r.observe(e)}</script>
540<div class="igd-share" aria-label="Share this article"><a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.infragistics.com%2Fblogs%2Fwhats-new-in-infragistics-ultimate-26-1" target="_blank" rel="noopener noreferrer" aria-label="Share on Facebook" title="Share on Facebook"><svg viewBox="0 0 24 24" width="18" height="18" aria-hidden="true" focusable="false"><path fill="currentColor" d="M22 12.06C22 6.5 17.52 2 12 2S2 6.5 2 12.06c0 5 3.66 9.15 8.44 9.94v-7.03H7.9v-2.9h2.54V9.85c0-2.51 1.49-3.9 3.78-3.9 1.09 0 2.24.2 2.24.2v2.46h-1.26c-1.24 0-1.63.77-1.63 1.56v1.87h2.78l-.44 2.9h-2.34V22c4.78-.79 8.44-4.94 8.44-9.94Z"></path></svg></a><a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.infragistics.com%2Fblogs%2Fwhats-new-in-infragistics-ultimate-26-1&text=What's%20New%20in%20Infragistics%20Ultimate%2026.1" target="_blank" rel="noopener noreferrer" aria-label="Share on X" title="Share on X"><svg viewBox="0 0 24 24" width="18" height="18" aria-hidden="true" focusable="false"><path fill="currentColor" d="M18.9 2H22l-7.1 8.1L23 22h-6.6l-5.2-6.8L5.3 22H2l7.6-8.7L1.5 2h6.7l4.7 6.2L18.9 2Zm-1.2 18h1.8L7.4 3.9H5.5L17.7 20Z"></path></svg></a><a href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.infragistics.com%2Fblogs%2Fwhats-new-in-infragistics-ultimate-26-1" target="_blank" rel="noopener noreferrer" aria-label="Share on LinkedIn" title="Share on LinkedIn"><svg viewBox="0 0 24 24" width="18" height="18" aria-hidden="true" focusable="false"><path fill="currentColor" d="M20.45 20.45h-3.55v-5.57c0-1.33-.02-3.04-1.85-3.04-1.85 0-2.14 1.45-2.14 2.94v5.67H9.36V9h3.41v1.56h.05c.47-.9 1.63-1.85 3.36-1.85 3.6 0 4.27 2.37 4.27 5.45v6.29ZM5.34 7.43a2.06 2.06 0 1 1 0-4.12 2.06 2.06 0 0 1 0 4.12ZM7.12 20.45H3.56V9h3.56v11.45ZM22.22 0H1.77C.79 0 0 .77 0 1.73v20.54C0 23.22.79 24 1.77 24h20.45c.98 0 1.78-.78 1.78-1.73V1.73C24 .77 23.2 0 22.22 0Z"></path></svg></a><a href="https://www.reddit.com/submit?url=https%3A%2F%2Fwww.infragistics.com%2Fblogs%2Fwhats-new-in-infragistics-ultimate-26-1&title=What's%20New%20in%20Infragistics%20Ultimate%2026.1" target="_blank" rel="noopener noreferrer" aria-label="Share on Reddit" title="Share on Reddit"><svg viewBox="0 0 24 24" width="18" height="18" aria-hidden="true" focusable="false"><path fill="currentColor" d="M24 11.78a2.52 2.52 0 0 0-4.27-1.82 12.36 12.36 0 0 0-6.6-2.09l1.12-3.53 3 .71a1.8 1.8 0 1 0 .2-.87l-3.35-.79a.37.37 0 0 0-.44.25l-1.25 3.94a12.4 12.4 0 0 0-6.72 2.08 2.52 2.52 0 1 0-2.77 4.11 4.94 4.94 0 0 0-.06.76c0 3.86 4.49 7 10.03 7s10.03-3.14 10.03-7a4.9 4.9 0 0 0-.06-.75A2.52 2.52 0 0 0 24 11.78ZM6.55 13.56a1.8 1.8 0 1 1 3.6 0 1.8 1.8 0 0 1-3.6 0Zm10.02 4.6c-1.23 1.23-3.58 1.32-4.27 1.32-.69 0-3.04-.09-4.27-1.32a.47.47 0 0 1 .66-.66c.78.78 2.44.94 3.61.94 1.17 0 2.83-.16 3.61-.94a.47.47 0 0 1 .66.66h-.27Zm-.32-2.8a1.8 1.8 0 1 1 0-3.6 1.8 1.8 0 0 1 0 3.6Z"></path></svg></a></div></aside><article class="prose igd-post__body"><p>Infragistics Ultimate 26.1 has one organizing idea: the same AI-assisted development toolchain, working the same way, across every modern Ignite UI framework. Agent Skills, the Ignite UI CLI MCP server, and the Theming MCP server now cover Angular, React, Web Components, and Blazor - set up with a single command, and built to keep the four frameworks at parity rather than treating any one as a second-class target.</p> 541<p>Around that toolchain, the H1 2026 cycle also delivers Grid Lite (a new free, MIT-licensed data grid), grid scroll-performance work, PDF exp
541ort across grid families, an Intl-based i18n engine, and a steady stream of new components. The release notes further down capture what landed in each framework and when; this post leads with the part that ties them together.</p> 542<hr/> 543<h2 id="one-ai-assisted-development-toolchain">One AI-Assisted Development Toolchain</h2> 544<p>The toolchain grounds AI coding assistants in correct Ignite UI APIs, import paths, and design tokens - so the agent builds with your component library instead of guessing around it. It has three independently usable layers, and in 26.1 all three cover Angular, React, Web Components, and Blazor. The full overview is at <a href="https://www.infragistics.com/ai-assisted-app-development">infragistics.com/ai-assisted-app-development</a>.</p> 545<p>See it in action: in the <a href="https://youtu.be/EyGlts52FQI">Whatâs New in Infragistics Ultimate 26.1 webinar</a>, Konstantin Dinev, Director of Product Development at Infragistics, walks through the CLI MCP server, the AI-configured project scaffolds, and the Generate-from-Image flow end to end - on the same premise this post starts from: an AI assistant is only as good as the context it is given.</p> 546<p><img src="https://static.infragistics.com/marketing/Website/products/ignite-ui/ai-agent-skills/ignite-ui-assisted-development-diagram-1600.webp" alt="The Ignite UI AI-assisted development workflow: a developer prompt flows through the IDE and agent, is grounded by Agent Skills and the Ignite UI MCP servers, and is rendered by the Ignite UI component library as production-ready output"/></p> 547<div class="igd-table-wrap"><table> 548<thead> 549<tr> 550<th>Layer</th> 551<th>What it does</th> 552<th>Frameworks</th> 553</tr> 554</thead> 555<tbody> 556<tr> 557<td>Agent Skills</td> 558<td>Developer-owned markdown that encodes component selection, import paths, and decision flows for AI assistants</td> 559<td>Angular, React, Web Components, Blazor</td> 560</tr> 561<tr> 562<td>Ignite UI CLI MCP server</td> 563<td>Documentation, API reference, and scaffolding tools exposed to the agent over the Model Context Protocol</td> 564<td>Angular, React, Web Components, Blazor*</td> 565</tr> 566<tr> 567<td>Ignite UI Theming MCP server</td> 568<td>Design tokens, palette generation, CSS custom properties, WCAG AA contrast validation</td> 569<td>Angular, React, Web Components, Blazor</td> 570</tr> 571</tbody> 572</table></div> 573<p>** The CLI MCP server provides full Blazor documentation and API support (shipped in CLI 15.2.0). CLI project scaffolding templates for Blazor are still in development - everything else in this section covers Blazor today.*</p> 574<h3 id="one-command-for-all-four">One Command for All Four</h3> 575<p>A single command configures Agent Skills and both MCP servers in any existing Angular, React, Web Components, or Blazor project:</p> 576<pre class="astro-code github-light" style="background-color:#fff;color:#24292e;overflow-x:auto" tabindex="0" data-language="shell"><code><span class="line"><span style="color:#6F42C1">npx</span><span style="color:#032F62"> igniteui-cli</span><span style="color:#032F62"> ai-config</span></span></code></pre> 577<p>It copies the frameworkâs Agent Skills into the agent discovery path and writes the <code>igniteui-cli</code> and <code>igniteui-theming</code> server entries to <code>.vscode/mcp.json</code>. The same command, the same servers, the same setup story regardless of which of the four frameworks you work in. (After it runs, start each server in your AI client; Claude Code starts them automatically on first tool invocation.) The toolchain is configured for VS Code with GitHub Copilot, Cursor, Claude Desktop, Claude Code, and JetBrains AI Assistant.</p> 578<h3 id="agent-skills-across-the-board">Agent Skills Across the Board</h3> 579<p>Every modern framework ships its own Agent Skills inside its package, so the instruction layer is consistent everywhere - including a Generate-from-Image skill in each framework that turns a design image into a themed, working view.</p> 580<div class="igd-table-wrap"><table> 581<thead> 582<tr> 583<th>Framework</th> 584<th>Agent Skills</th> 585</tr> 586</thead> 587<tbody> 588<tr> 589<td>Angular</td> 590<td>4</td> 591</tr> 592<tr> 593<td>React</td> 594<td>5</td> 595</tr> 596<tr> 597<td>Web Components</td> 598<td>5</td> 599</tr> 600<tr> 601<td>Blazor</td> 602<td>4</td> 603</tr> 604</tbody> 605</table></div> 606<p>Skills are developer-owned: edit the <code>SKILL.md</code>, add your teamâs conventions, and version it with your codebase. Because skills persist on disk, AI output in a workspace improves over time without any change to the underlying model - the mechanism is explained in <a href="https://www.infragistics.com/blogs/why-ai-results-improve-over-time-without-the-model-actually-learning">Why AI Results Improve Over Time Without the Model Actually Learning</a>. Setup and per-client wiring are in the <a href="https://www.infragistics.com/products/ignite-ui/ignite-ui-ai-agent-skills">Agent Skills documentation</a>.</p> 607<h3 id="the-difference-is-measured">The Difference Is Measured</h3> 608<p>In a 7-scenario benchmark study across Ignite UI for Blazor and Ignite UI for Angular (May 2026), two Infragistics developers ran identical tasks in paired sessions - with and without the Ignite UI MCP servers and Agent Skills - using Claude Sonnet 4.6 in VS Code Copilot agent mode. In every scenario where the untooled model ignored the library entirely despite explicit prompts, tooling raised component compliance from 0/5 to 5/5. In the hardest single-prompt build, feature completion rose from 71% to 100%. Counting correction turns, the with-tooling sessions were cost-competitive or cheaper - the untooled path charges its correction cost later. Full tables and methodology are in the research paper <a href="https://www.infragistics.com/blogs/empirical-study-of-mcp-and-agent-skills-benefits">An Empirical Study of MCP and Agent Skills Benefits</a> and the companion blog <a href="https://www.infragistics.com/blogs/why-ignite-ui-ai-tooling-produces-better-results">Your AI Coding Assistant Is Confidently Wrong About Your Component Library</a>. Both benchmark apps are public: <a href="https://github.com/IgniteUI/service-desk-mini-mcp">with MCP</a> and <a href="https://github.com/IgniteUI/service-desk-mini-no-mcp">without MCP</a>.</p> 609<h3 id="optional-maker-multi-agent-orchestration">Optional: MAKER Multi-Agent Orchestration</h3> 610<p>For teams exploring multi-step AI automation, <code>@igniteui/maker-mcp</code> is an experimental orchestration server that decomposes complex tasks using consensus-based voting across multiple agents. It is separate from the standard toolchain setup and requires a GitHub PAT (<code>read:packages</code>) and an AI provider key (OpenAI, Anthropic, or Google). See the <a href="https://github.com/IgniteUI/igniteui-quorum-ai">MAKER documentation</a>.</p> 611<h3 id="where-the-cli-mcp-server-lives">Where the CLI MCP Server Lives</h3> 612<p>The CLI MCP server is publicly discoverable - listed on the official MCP registry (registry.modelcontextprotocol.io) and in the community-curated <a href="https://mcpservers.org/servers/igniteui/igniteui-cli">Awesome MCP Servers directory</a> (mcpservers.org).</p> 613<hr/> 614<h2 id="redesigned-documentation-and-llmstxt">Redesigned Documentation and llms.txt</h2> 615<p>The help documentation and API reference for Angular, React, Web Components, and Blazor have been redesigned and migrated to the Astro framework. Existing URLs are preserved 1:1, so current bookmarks and deep links keep working.</p> 616<p>For AI workflows, each docs site now publishes an llms.txt family: <code>llms.txt</code> (a curated index), <code>llms-small.txt</code> (a compact build for limited context windows), and <code>llms-full.txt</code> (the full documentation as plain markdown). AI assistants can ingest clean markdown instead of scraping rendered HTML - a complement to the CLI MCP serverâs per-query lookups, not a replacement. Example: <a href="https://www.infragistics.com/products/ignite-ui-angular/angular/components/llms.txt">Ignite UI for Angular llms.txt</a>.</p> 617<hr/> 618<h2 id="grid-lite-a-free-open-source-data-grid">Grid Lite: A Free, Open-Source Data Grid</h2> 619<p>Grid Lite is a new product in the Ignite UI family - a lightweight, high-performance data grid under the MIT license, free for commercial use with no feature gating. It is built as a Web Component (<code>igniteui-grid-lite</code>), so it runs with or without a framework, and the first framework-native wrapper, <code>IgxGridLiteComponent</code> for Angular, ships in 21.1 as a Developer Preview (React and Blazor wrappers are on the roadmap). It covers virtualization, sorting, filtering, theming, and Excel-style keyboard navigation, with a direct upgrade path to the full Ignite UI Data Grid. <a href="https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid-lite/overview">Grid Lite overview</a>.</p> 620<hr/> 621<h2 id="grid-performance">Grid Performance</h2> 622<p>The H1 2026 cycle delivers six rendering and change-detection optimizations across the grid scroll pipeline - applied automatically, with no API changes - to the Data Grid, Tree Grid, Hierarchical Grid, and Pivot Grid. Measured on a 100k-row dataset (Angular, React, Web Components):</p> 623<div class="igd-table-wrap"><table> 624<thead> 625<tr> 626<th>Metric</th> 627<th>Before</th> 628<th>After</th> 629<th>Change</th> 630</tr> 631</thead> 632<tbody> 633<tr> 634<td>Total Blocking Time</td> 635<td>~8-12 sec</td> 636<td>~3-5 sec</td> 637<td>-50% to -60%</td> 638</tr> 639<tr> 640<td>Frames per second</td> 641<td>~15-25 fps</td> 642<td>~40-55 fps</td> 643<td>+100% to +150%</td> 644</tr> 645</tbody> 646</table></div> 647<p>Blazor (25.2.77) gets the same dynamic scroll-throttle optimization; Blazor-specific FPS and TBT numbers are not published. This scroll work is one milestone in a longer arc - earlier releases reworked the data pipeline (Schwartzian-transform sort, iterative grouping, Excel-style filtering) to handle 1M+ rows. Full account: <a href="https://www.infragistics.com/blogs/engineering-fast-data-grids">Engineering Fast Data Grids</a>. Delivered in Angular 21.1, React 19.5.0/19.5.1, Web Components 7.0.0, and Blazor 25.2.77.</p> 648<hr/> 649<h2 id="grid-pdf-export">Grid PDF Export</h2> 650<p>PDF export ships across the grid families, producing multi-page documents with automatic page breaks, column group headers, summary rows, and landscape orientation by default, and respecting current filter, sort, and column-visibility state. Per-framework grid coverage:</p> 651<ul> 652<li><strong>Angular (21.1)</strong> - <code>IgxGrid</code>, <code>IgxTreeGrid</code>, <code>IgxHierarchicalGrid</code>, <code>IgxPivotGrid</code>; a new <code>customFont</code> option on <code>IgxPdfExporterOptions</code> adds Unicode support (Cyrillic, CJK, Arabic, Hebrew) via a Base64 TrueType font, with an optional bold variant.</li> 653<li><strong>React (19.5.x)</strong> - <code>IgrGrid</code>, <code>IgrTreeGrid</code>, <code>IgrHierarchicalGrid</code>, <code>IgrPivotGrid</code> (all four).</li> 654<li><strong>Web Components (7.0.0)</strong> - <code>IgcGrid</code>, <code>IgcTreeGrid</code>, <code>IgcHierarchicalGrid</code>; <code>IgcPivotGrid</code> is not covered.</li> 655<li><strong>Blazor (25.2.77)</strong> - <code>IgbGrid</code>, <code>IgbTreeGrid</code>, <code>IgbHierarchicalGrid</code>; <code>IgbPivotGrid</code> is not covered.</li> 656</ul> 657<hr/> 658<h2 id="intl-based-i18n">Intl-Based i18n</h2> 659<p>Grid date and number rendering moves to a native Intl-based pipeline, with a new public localization API and a separate <code>igniteui-i18n-resources</code> package; existing resource strings continue to work. Delivered in Angular 21.1 (grids, Calendar, DatePicker, DateRangePicker), React 19.5.0 (grids, <code>IgrCalendar</code>, <code>IgrDatePicker</code>, <code>IgrDateRangePicker</code>), and Web Components 7.0.0 (grid components). Not part of the Blazor release. <a href="https://www.infragistics.com/products/ignite-ui-angular/angular/components/general/localization">Localization documentation</a>.</p> 660<hr/> 661<h2 id="dock-manager-21">Dock Manager 2.1</h2> 662<p>The Dock Manager is available across all four frameworks - <a href="https://www.infragistics.com/products/ignite-ui-angular/angular/components/dock-manager">Angular</a>, <a href="https://www.infragistics.com/products/ignite-ui-react/react/components/layouts/dock-manager">React</a>, <a href="https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/layouts/dock-manager">Web Components</a>, and <a href="https://www.infragistics.com/products/ignite-ui-blazor/blazor/components/layouts/dock-manager">Blazor</a> - and advances to the 2.1 Web Component this cycle. In React 19.6.0, <code>IgrDockManager</code> moves to <code>[email protected]</code>, adding <code>minResizeWidth</code>/<code>minResizeHeight</code>, a <code>paneFlyoutToggle</code> event, and additional <code>layoutChange</code> detail. In Blazor 26.1.51, <code>IgbDockManager</code>
662 adds two-way synchronization between the Web Component <code>layout</code> property and the Blazor <code>Layout</code> property - making saved and restored layouts and more complex docking scenarios practical - plus a wider pane and tab event surface.</p> 663<p><img src="https://static.infragistics.com/marketing/Website/blogs/Dock-Manager-Sample.gif" alt="Ignite UI Dock Manager - docking, floating, and tabbed panes rearranged at runtime"/></p> 664<p>More layouts are in the <a href="https://github.com/IgniteUI/dock-manager-demos">Dock Manager demos repo</a>.</p> 665<hr/> 666<h2 id="release-notes-what-shipped-and-when">Release Notes: What Shipped, and When</h2> 667<p>The H1 2026 cycle delivered the following across each product line. Each release has its own dedicated blog and changelog with full detail.</p> 668<h3 id="ignite-ui-cli">Ignite UI CLI</h3> 669<ul> 670<li><strong>15.0.0 (Apr 2026)</strong> - CLI MCP server; AI-ready scaffolds (<code>AGENTS.md</code>, <code>CLAUDE.md</code>, pre-wired <code>.vscode/mcp.json</code>); Generate-from-Image skills (Angular, React, Web Components); Angular template modernization; React templates expanded (30 added) to Web Components parity and updated to Vite 8; legacy project types removed.</li> 671<li><strong>15.1.0 (May 2026)</strong> - <code>ai-config</code> command; <code>--agents</code> / <code>--assistants</code> options on <code>new</code>; listed on the official MCP registry. <a href="https://www.infragistics.com/blogs/ignite-ui-cli-mcp-release">Release blog</a></li> 672<li><strong>15.2.0 (May 2026)</strong> - official Blazor MCP support (docs + API); <code>ai-config</code> for Blazor; <code>--framework</code> option with auto-detection.</li> 673<li><strong>15.2.2 (Jun 2026)</strong> - in-tool API reference links; member-level <code>get_api_reference</code> lookup.</li> 674<li><strong>15.3.0 (Jun 2026)</strong> - <code>side-nav-mini</code> template (Angular, React, Web Components); side-nav and empty-project template alignment.</li> 675</ul> 676<h3 id="ignite-ui-for-angular">Ignite UI for Angular</h3> 677<ul> 678<li><strong>21.1</strong> - <code>IgxGridLiteComponent</code> (Developer Preview); HTML Popover API for overlays. Breaking change: grids require a new array reference for change detection. <a href="https://www.infragistics.com/blogs/ignite-ui-for-angular-21-1">Release blog</a></li> 679<li><strong>21.2</strong> - <code>IgxCombo</code>/<code>IgxSimpleCombo</code> <code>selectionChanged</code> event and <code>disableClear</code>; Snackbar/Toast <code>positioning</code>; overlay-settings shorthand (<code>useContainerStrategy</code>). <a href="https://www.infragistics.com/blogs/ignite-ui-cli-mcp-release">Release blog</a></li> 680</ul> 681<h3 id="ignite-ui-for-react">Ignite UI for React</h3> 682<ul> 683<li><strong>19.5.0 / 19.5.1</strong> - Agent Skills (4); HTML Popover API for dropdowns/dialogs. Breaking changes: CSS prefix rename, array-reference change detection, Node.js 22 minimum. <a href="https://www.infragistics.com/blogs/ignite-ui-for-react-19-5-1">Release blog</a></li> 684<li><strong>19.6.0</strong> - Generate-from-Image skill; <code>IgrSplitter</code> and <code>IgrHighlight</code>.</li> 685<li><strong>19.7.0</strong> - Invoker Commands API; Nav Drawer Popover positioning; Snackbar/Toast <code>positioning</code>; single-field Date Range Picker editing; Enter-to-submit form controls plus <code>IgrInput</code> date/time theming; updated Agent Skills. <a href="https://www.infragistics.com/blogs/ignite-ui-react-19-7-ai-skills-mcp-more">Release blog</a></li> 686</ul> 687<h3 id="ignite-ui-for-web-components">Ignite UI for Web Components</h3> 688<ul> 689<li><strong>7.0.0</strong> - Agent Skills (4); HTML Popover API; <code>IgcThemeProvider</code>. Breaking changes: CSS prefix rename, removed <code>Chat typingIndicator</code> renderer and <code>Tooltip disableArrow</code>, Node.js 22 minimum. <a href="https://www.infragistics.com/blogs/ignite-ui-for-web-components-7-0-0">Release blog</a></li> 690<li><strong>7.1.0</strong> - Generate-from-Image skill; <code>IgcSplitter</code> and <code>IgcHighlight</code>; grid maintenance.</li> 691<li><strong>7.2.0</strong> - Invoker Commands API; Nav Drawer Popover positioning; Snackbar/Toast <code>positioning</code>; single-field Date Range Picker editing; Enter-to-submit form controls; updated Agent Skills. <a href="https://www.infragistics.com/blogs/ignite-ui-for-web-components-7-2-ai-skills-mcp-more">Release blog</a></li> 692</ul> 693<h3 id="ignite-ui-for-blazor">Ignite UI for Blazor</h3> 694<p>Blazor uses a separate versioning scheme; the Ultimate 26.1 cycle is the umbrella that contains two builds.</p> 695<ul> 696<li><strong>25.2.77 (Mar 2026)</strong> - <code>IgbQueryBuilder</code>; <code>IgbThemeProvider</code>; Agent Skills (4). Breaking change: grids require a new array reference for change detection.</li> 697<li><strong>26.1.51 (Jun 2026)</strong> - <code>IgbChat</code> (Developer Preview); <code>IgbSplitter</code>; <code>IgbHighlight</code>. No breaking changes; supports .NET 10 and .NET 9. See the <a href="https://www.infragistics.com/blogs/ignite-ui-for-blazor-26-1">Ignite UI for Blazor 26.1 release blog</a>.</li> 698</ul> 699<hr/> 700<h2 id="ultimate-ui-for-windows-forms-and-wpf">Ultimate UI for Windows Forms and WPF</h2> 701<p>The desktop libraries ship a focused set of charting enhancements, identical across both products:</p> 702<ul> 703<li><strong>DataPieChart OthersCategory styling</strong> - new <code>OthersCategoryBrush</code> and <code>OthersCategoryOutline</code> properties style the aggregated âOthersâ slice directly.</li> 704<li><strong>Checkmark marker and configurable MarkerSize</strong> - a new marker shape plus a <code>MarkerSize</code> property (device-independent pixels) for line and scatter charts.</li> 705<li><strong>DataChart Range Bar Series</strong> - plots high/low value ranges as horizontal bars, the bar-oriented counterpart to <code>RangeColumnSeries</code>.</li> 706<li><strong>TimeXAxis LabelFormatOverride event</strong> - event-based control of time-axis label formatting at every level, from years down to milliseconds.</li> 707<li><strong>User Annotation Layers (Community Technology Preview)</strong> - users place annotations directly on chart visualizations at runtime.</li> 708</ul> 709<p>Full details: <a href="https://www.infragistics.com/blogs/infragistics-ultimate-26-1-whats-new-in-ultimate-ui-for-windows-forms">Whatâs New in Ultimate UI for Windows Forms</a> and <a href="https://www.infragistics.com/blogs/infragistics-ultimate-26-1-whats-new-in-ultimate-ui-for-wpf">Whatâs New in Ultimate UI for WPF</a>.</p> 710<p><strong>On the horizon.</strong> Our aim is to support every framework our customers build on, and that includes the desktop. Extending the AI-assisted development experience to Ultimate UI for WPF and Windows Forms is a direction we are exploring, with more to share down the line.</p> 711<hr/> 712<h2 id="frequently-asked-questions">Frequently Asked Questions</h2> 713<p><strong>Whatâs new in Infragistics Ultimate 26.1?</strong> Infragistics Ultimate 26.1 extends the AI-assisted development toolchain - Agent Skills, the Ignite UI CLI MCP server, and the Theming MCP server - across Angular, React, Web Components, and Blazor, and adds Grid Lite (a free data grid), grid scroll-performance and PDF export work, an Intl-based i18n engine, and new components.</p> 714<p><strong>Does the Ignite UI AI tooling support Blazor?</strong> Yes. Agent Skills, the CLI MCP server (Blazor docs and API since CLI 15.2.0), and the Theming MCP server all cover Blazor. CLI project scaffolding templates for Blazor are still in development.</p> 715<p><strong>How do I set up the AI-assisted development toolchain?</strong> Run <code>npx igniteui-cli ai-config</code> in an Angular, React, Web Components, or Blazor project. It copies the frameworkâs Agent Skills and writes the CLI MCP and Theming MCP server entries to your AI client configuration.</p> 716<p><strong>
716Which frameworks does the toolchain support?</strong> Angular, React, Web Components, and Blazor - the same three-layer toolchain (Agent Skills, CLI MCP, Theming MCP) across all four.</p> 717<p><strong>Is Ignite UI Grid Lite free?</strong> Yes. Grid Lite is released under the MIT license, free for commercial use with no feature gating; the Angular wrapper (<code>IgxGridLiteComponent</code>) ships as a Developer Preview in 21.1.</p> 718<hr/> 719<h2 id="watch-the-walkthrough">Watch the Walkthrough</h2> 720<p>Konstantin Dinev demos the full AI-assisted toolchain - the CLI MCP server, AI-configured scaffolds, and Generate-from-Image - in the Ultimate 26.1 webinar.</p> 721<a class="wp-block-button__link" href="https://youtu.be/EyGlts52FQI">Watch the Ultimate 26.1 Webinar -></a> 722<hr/> 723<h2 id="a-closing-thought">A Closing Thought</h2> 724<blockquote> 725<p>AI is a tool, and tools are neutral. An axe clears a path or causes harm depending only on who swings it and how - the blade decides nothing. <a href="https://www.infragistics.com/blogs/why-ignite-ui-ai-tooling-produces-better-results">Our own benchmarks</a> say this more plainly than any opinion could: the same model and the same prompts produced production-ready output in a well-configured environment and confidently wrong code in a bare one. The tool did not decide which - the operator did. That is what a multiplier does: it amplifies whatever it is given, and it never changes the sign of what it multiplies. The teams that win with AI will not be the ones that bought it. They will be the ones who invested in what it multiplies.</p> 726</blockquote> 727<hr/> 728<h2 id="additional-resources">Additional Resources</h2> 729<ul> 730<li><a href="https://www.infragistics.com/ai-assisted-app-development">AI-Assisted App Development with Ignite UI</a></li> 731<li><a href="https://youtu.be/EyGlts52FQI">Webinar: Whatâs New in Infragistics Ultimate 26.1 - AI-Powered Development with Ignite UI CLI</a></li> 732<li><a href="https://www.infragistics.com/products/ignite-ui/ignite-ui-ai-agent-skills">Ignite UI Agent Skills</a></li> 733<li><a href="https://www.infragistics.com/products/react-data-grid">React Data Grid</a></li> 734<li><a href="https://www.infragistics.com/blogs/empirical-study-of-mcp-and-agent-skills-benefits">An Empirical Study of MCP and Agent Skills Benefits (research paper)</a></li> 735<li><a href="https://www.infragistics.com/blogs/why-ignite-ui-ai-tooling-produces-better-results">Why Ignite UI AI Tooling Produces Better Results</a></li> 736<li><a href="https://www.infragistics.com/blogs/why-ai-results-improve-over-time-without-the-model-actually-learning">Why AI Results Improve Over Time Without the Model Actually Learning</a></li> 737<li><a href="https://www.infragistics.com/blogs/engineering-fast-data-grids">Engineering Fast Data Grids</a></li> 738<li><a href="https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid-lite/overview">Grid Lite overview (free, MIT-licensed)</a></li> 739<li><a href="https://github.com/IgniteUI/igniteui-cli/blob/master/CHANGELOG.md">Ignite UI CLI changelog</a></li> 740<li><a href="https://www.infragistics.com/blogs/ignite-ui-for-blazor-26-1">Ignite UI for Blazor 26.1 release blog</a></li> 741<li><a href="https://github.com/IgniteUI/igniteui-quorum-ai">MAKER documentation</a></li> 742</ul><nav class="igd-post__cats" aria-label="Categories"><a class="igd-category" data-category="ultimate" href="/blogs/category/ultimate"><span class="igd-category__dot" aria-hidden="true"></span>Infragistics Ultimate</a><a class="igd-category" data-category="26-1" href="/blogs/tag/26-1"><span class="igd-category__dot" aria-hidden="true"></span>26-1</a><a class="igd-category" data-category="agent-skills" href="/blogs/tag/agent-skills"><span class="igd-category__dot" aria-hidden="true"></span>agent-skills</a><a class="igd-category" data-category="angular" href="/blogs/tag/angular"><span class="igd-category__dot" aria-hidden="true"></span>angular</a><a class="igd-category" data-category="blazor" href="/blogs/tag/blazor"><span class="igd-category__dot" aria-hidden="true"></span>blazor</a><a class="igd-category" data-category="cli" href="/blogs/tag/cli"><span class="igd-category__dot" aria-hidden="true"></span>cli</a><a class="igd-category" data-category="grid-lite" href="/blogs/tag/grid-lite"><span class="igd-category__dot" aria-hidden="true"></span>grid-lite</a><a class="igd-category" data-category="grid-performance" href="/blogs/tag/grid-performance"><span class="igd-category__dot" aria-hidden="true"></span>grid-performance</a><a class="igd-category" data-category="ignite-ui" href="/blogs/tag/ignite-ui"><span class="igd-category__dot" aria-hidden="true"></span>ignite-ui</a><a class="igd-category" data-category="infragistics-ultimate" href="/blogs/tag/infragistics-ultimate"><span class="igd-category__dot" aria-hidden="true"></span>infragistics-ultimate</a><a class="igd-category" data-category="mcp" href="/blogs/tag/mcp"><span class="igd-category__dot" aria-hidden="true"></span>MCP</a><a class="igd-category" data-category="pdf-export" href="/blogs/tag/pdf-export"><span class="igd-category__dot" aria-hidden="true"></span>pdf-export</a><a class="igd-category" data-category="react" href="/blogs/tag/react"><span class="igd-category__dot" aria-hidden="true"></span>react</a><a class="igd-category" data-category="web-components" href="/blogs/tag/web-components"><span class="igd-category__dot" aria-hidden="true"></span>web-components</a><a class="igd-category" data-category="whats-new" href="/blogs/tag/whats-new"><span class="igd-category__dot" aria-hidden="true"></span>whats-new</a></nav></article></div><div class="igd-post-footer"><section class="igd-related" aria-labelledby="relatedArticles"><h2 id="relatedArticles">Related Articles</h2><div class="igd-grid" style="--igd-grid-cols: var(--igd-cards-per-row);
742 --igd-grid-min: var(--igd-card-min)"><igc-card class="igd-post-card"><igc-card-media class="igd-post-card__media igd-skeleton"><img src="https://static.infragistics.com/marketing/Website/ig-blog-imgs/2134.24-1-whats-new-header.jpg-774x735-1.webp" alt="" loading="lazy" decoding="async"></igc-card-media><igc-card-header><h3 slot="title" class="igd-post-card__title" data-clamp="2"><a class="igd-post-card__link" href="/blogs/infragistics-ultimate-24-1">Product Release - What's New in Infragistics Ultimate 24.1</a></h3></igc-card-header><igc-card-content><p class="igd-post-card__excerpt" data-clamp="2">Itâs release time and this time around Infragistics Ultimate 24.1 brings a host of new and much-anticipated features! See whatâs new in our blog.</p></igc-card-content><hr class="igd-post-card__divider"><igc-card-actions><span slot="start" class="igd-byline"><igc-avatar src="https://secure.gravatar.com/avatar/c1ac7b675cc9df977fdbc8e3348f402250ff672d823dd35287aadb88932e1d6c?s=64&d=mm&r=g" alt shape="circle"></igc-avatar><a href="/blogs/author/kmikova">Katie Mikova</a></span><span slot="end" class="igd-post-card__meta"><time datetime="2024-08-08">Aug 8</time><span> · 3min</span></span></igc-card-actions></igc-card><igc-card class="igd-post-card"><igc-card-media class="igd-post-card__media igd-skeleton"><img src="https://static.infragistics.com/marketing/Website/ig-blog-imgs
742/8551.UI-Component-Library-Build-vs-buy.jpg-774x742-1.webp" alt="" loading="lazy" decoding="async"></igc-card-media><igc-card-header><h3 slot="title" class="igd-post-card__title" data-clamp="2"><a class="igd-post-card__link" href="/blogs/ui-component-libraries-build-vs-buy">UI Component Libraries - Build vs Buy</a></h3></igc-card-header><igc-card-content><p class="igd-post-card__excerpt" data-clamp="2">Building vs buying a component library: what to choose? We are trying to answer the question and help developers make an informed decision that won't cost them their budget and time.</p></igc-card-content><hr class="igd-post-card__divider"><igc-card-actions><span slot="start" class="igd-byline"><igc-avatar src="https://secure.gravatar.com/avatar/3f0cfc630989250e40ab4a26863ca4f2108331da22a24ef04f715dc999f91d81?s=64&d=mm&r=g" alt shape="circle"></igc-avatar><a href="/blogs/author/jasonb">Jason Beres</a></span><span slot="end" class="igd-post-card__meta"><time datetime="2022-09-06">Sep 6</time><span> · 11min</span></span></igc-card-actions></igc-card><igc-card class="igd-post-card"><igc-card-media class="igd-post-card__media igd-skeleton"><img src="https://static.infragistics.com/marketing/Website/ig-blog-imgs
742/infragistics-blog.webp" alt="" loading="lazy" decoding="async"></igc-card-media><igc-card-header><h3 slot="title" class="igd-post-card__title" data-clamp="2"><a class="igd-post-card__link" href="/blogs/ignite-ui-dock-manager">Ignite UI Dock Manager: For Web Layouts & Better Usability</a></h3></igc-card-header><igc-card-content><p class="igd-post-card__excerpt" data-clamp="2">See how easy it is to build multi-window, multi-screen apps in any framework with Infragistics' new Dock Manager in Angular, Blazor, React, and Web Components. Try it now!</p></igc-card-content><hr class="igd-post-card__divider"><igc-card-actions><span slot="start" class="igd-byline"><igc-avatar src="https://secure.gravatar.com/avatar/44593f84101e630ba3aedc00a95528641f68bb6225523d5160ba7c99263d4ff0?s=64&d=mm&r=g" alt shape="circle"></igc-avatar><a href="/blogs/author/rmirchev">Radoslav Mirchev</a></span><span slot="end" class="igd-post-card__meta"><time datetime="2023-03-15">Mar 15</time><span> · 8min</span></span></igc-card-actions></igc-card></div></section></div></main><footer class="ui-footer ui-footer--clearfix"><div class="ui-footer__wrap ui-footer--clearfix ui-footer__icons"><a href="/blogs" target="_blank" rel="noopener" class="ui-footer__icon-link" aria-label="RSS"><svg viewBox="0 0 512 512" aria-hidden="true" focusable="false"><path d="M201.8 347.2c0 20.3-16.5 36.8-36.8 36.8 -20.3 0-36.8-16.5-36.8-36.8s16.5-36.8 36.8-36.8C185.3 310.4 201.8 326.8 201.8 347.2zM128.2 204.7v54.5c68.5 0.7 124 56.3 124.7 124.7h54.5C306.7 285.3 226.9 205.4 128.2 204.7zM128.2 166.6c57.9 0.3 112.3 22.9 153.2 63.9 41 41 63.7 95.5 63.9 153.5h54.5c-0.3-149.9-121.7-271.4-271.6-271.9V166.6L128.2 166.6z"></path></svg></a><a href="https://twitter.com/infragistics" target="_blank" rel="noopener" class="ui-footer__icon-link" aria-label="Twitter"><svg viewBox="0 0 512 512" aria-hidden="true" focusable="false"><path d="M288.7,231.2l138.7,201.9h-102l-93.4-136l-117,136H84.7l133.8-155.5L84.7,82.9h102l88.5,128.7L386,82.9h30.2L288.7,231.2L288.7,231.2z M247.3,279.3l92.3,132.1H386L272.9,249.5l-13.6-19.4l-87-124.5h-46.5L233.7,260L247.3,279.3L247.3,279.3z"></path></svg></a><a href="https://www.facebook.com/infragistics" target="_blank" rel="noopener" class="ui-footer__icon-link" aria-label="Facebook"><svg viewBox="0 0 512 512" aria-hidden="true" focusable="false"><path d="M211.9 197.4h-36.7v59.9h36.7V433.1h70.5V256.5h49.2l5.2-59.1h-54.4c0 0 0-22.1 0-33.7 0-13.9 2.8-19.5 16.3-19.5 10.9 0 38.2 0 38.2 0V82.9c0 0-40.2 0-48.8 0 -52.5 0-76.1 23.1-76.1 67.3C211.9 188.8 211.9 197.4 211.9 197.4z"></path></svg></a><a href="https://www.linkedin.com/company/infragistics" target="_blank" rel="noopener" class="ui-footer__icon-link" aria-label="LinkedIn"><svg viewBox="0 0 512 512" aria-hidden="true" focusable="false"><path d="M186.4 142.4c0 19-15.3 34.5-34.2 34.5 -18.9 0-34.2-15.4-34.2-34.5 0-19 15.3-34.5 34.2-34.5C171.1 107.9 186.4 123.4 186.4 142.4zM181.4 201.3h-57.8V388.1h57.8V201.3zM273.8 201.3h-55.4V388.1h55.4c0 0 0-69.3 0-98 0-26.3 12.1-41.9 35.2-41.9 21.3 0 31.5 15 31.5 41.9 0 26.9 0 98 0 98h57.5c0 0 0-68.2 0-118.3 0-50-28.3-74.2-68-74.2 -39.6 0-56.3 30.9-56.3 30.9v-25.2H273.8z"></path></svg></a><a href="https://www.youtube.com/user/Infragistics?sub_confirmation=1" target="_blank" rel="noopener" class="ui-footer__icon-link" aria-label="YouTube"><svg viewBox="0 0 512 512" aria-hidden="true" focusable="false"><path d="M422.6 193.6c-5.3-45.3-23.3-51.6-59-54 -50.8-3.5-164.3-3.5-215.1 0 -35.7 2.4-53.7 8.7-59 54 -4 33.6-4 91.1 0 124.8 5.3 45.3 23.3 51.6 59 54 50.9 3.5 164.3 3.5 215.1 0 35.7-2.4 53.7-8.7 59-54C426.6 284.8 426.6 227.3 422.6 193.6zM222.2 303.4v-94.6l90.7 47.3L222.2 303.4z"></path></svg></a><a href="https://discord.com/invite/c6e9Xdg3ty" target="_blank" rel="noopener" class="ui-footer__icon-link" aria-label="Discord"><svg viewBox="0 0 512 512" aria-hidden="true" focusable="false"><path d="m424.6 343.6c-29.4 22-57.9 35.2-85.8 44-7-9.5-13.1-19.7-18.4-30.3 10.1-3.8 19.8-8.5 28.9-14.1-2.3-1.8-4.7-3.6-7-5.6-55.1 26.1-115.7 26.1-171.5 0-2.3 1.9-4.7 3.8-7.1 5.6 9.1 5.5 18.8 10.3 28.9 14.1-5.3 10.6-11.5 20.8-18.4 30.3-28-8.8-56.4-22.1-85.8-44-5.9-64.3 6-129.6 50.3-196.5 21.9-10.3 45.4-17.8 70-22 3 5.5 6.7 12.8 9 18.6q38.5-5.8 77.6 0c2.4-5.8 5.9-13.1 8.9-18.6 24.6 4.2 48 11.7 70 22 38.4 57.3 57.4 121.9 50.4 196.5zm-194-74.2c0.3-19-13.4-34.7-30.4-34.7-17.1 0-30.5 15.7-30.5 34.7 0 19 13.7 34.7 30.5 34.7 17 0 3
7420.5-15.7 30.4-34.7zm112.7 0c0.3-19-13.4-34.7-30.4-34.7-17.1 0-30.5 15.7-30.5 34.7 0 19 13.7 34.7 30.5 34.7 17 0 30.4-15.7 30.4-34.7z"></path></svg></a></div><div class="ui-footer__wrap ui-footer__wrap--newsletter ui-footer--clearfix"><div class="ui-footer__menu-block"><div class="ui-footer__col-one-fourth ui-footer__col-block"><div class="ui-footer__menu"><ul class="ui-footer__menu-list"><li class="ui-footer__menu-list-item"><div class="ui-footer__category">Products</div><ul><li><a class="menu__link" href="https://www.infragistics.com/products/ultimate">Design & Development</a></li><li><a class="menu__link" href="https://www.infragistics.com/products/indigo-design/desktop">UX Pros</a></li><li><a class="menu__link" href="https://www.revealbi.io/embedded-analytics" target="_blank" rel="noopener">Embedded Analytics</a></li><li><a class="menu__link" href="https://www.slingshotapp.io/" target="_blank" rel="noopener">Work Management</a></li><li><a class="menu__link" href="https://www.infragistics.com/products/all">View All</a></li><li><a class="menu__link" href="https://www.infragistics.com/free-downloads">Free Trials</a></li></ul></li><li class="ui-footer__menu-list-item"><div class="ui-footer__category">Open-Source Components</div><ul><li><a class="menu__link" href="https://www.infragistics.com/products/ignite-ui-angular/open-source">Angular</a></li><li><a class="menu__link" href="https://www.infragistics.com/products/ignite-ui-blazor/open-source">Blazor</a></li><li><a class="menu__link" href="https://www.infragistics.com/products/ignite-ui-react/open-source">React</a></li><li><a class="menu__link" href="https://www.infragistics.com/products/ignite-ui-web-components/open-source">Web Components</a></li></ul></li></ul></div></div><div class="ui-footer__col-one-fourth ui-footer__col-block"><div class="ui-footer__menu"><ul class="ui-footer__menu-list"><li class="ui-footer__menu-list-item"><div class="ui-footer__category">Learn & Support</div><ul><li><a class="menu__link" href="https://www.infragistics.com/support">Help & API Docs</a></li><li><a class="menu__link" href="/blogs">Blogs</a></li><li><a class="menu__link" href="https://www.infragistics.com/support/chat">Technical Support Chat</a></li><li><a class="menu__link" href="https://www.infragistics.com/forums/">Forums</a></li><li><a class="menu__link" href="https://account.infragistics.com/support-cases/submit" target="_blank" rel="noopener">Submit a Request</a></li><li><a class="menu__link" href="https://www.infragistics.com/status">Service Health</a></li></ul></li></ul></div></div><div class="ui-footer__col-one-fourth ui-footer__col-block"><div class="ui-footer__menu"><ul class="ui-footer__menu-list"><li class="ui-footer__menu-list-item"><div class="ui-footer__category">My Account</div><ul><li><a class="menu__link" href="https://account.infragistics.com/subscriptions" target="_blank" rel="noopener">Manage My Subscriptions</a></li><li><a class="menu__link" href="https://account.infragistics.com/support-cases" target="_blank" rel="noopener">Support Requests</a></li></ul></li></ul><ul class="ui-footer__menu-list"><li class="ui-footer__menu-list-item"><div class="ui-footer__category">Compare</div><ul><li><a class="menu__link" href="https://www.infragistics.com/angular-compare">Angular Compare</a></li><li><a class="menu__link" href="https://www.infragistics.com/blazor-compare">Blazor Compare</a></li></ul></li></ul></div></div><div class="ui-footer__col-one-fourth ui-footer__col-block"><div class="ui-footer__menu"><ul class="ui-footer__menu-list"><li class="ui-footer__menu-list-item"><div class="ui-footer__category">Corporate</div><ul><li><a class="menu__link" href="https://www.infragistics.com/about-us">About Us</a></li><li><a class="menu__link" href="https://www.infragistics.com/about-us/careers">Careers</a></li><li><a class="menu__link" href="https://www.infragistics.com/legal/license">Legal</a></li><li><a class="menu__link" href="https://www.infragistics.com/about-us/in-the-news">News & Events</a></li><li><a class="menu__link" href="https://www.infragistics.com/about-us/alliances-partners">Partners</a></li></ul></li></ul></div></div></div><div class="ui-footer__newsletter-block ui-footer__newsletter-updated-block"><div class="newsletter__form-alt bg--dark"><div class="ui-footer-newsletter__header"><div class="emphasize"><span class="display--block-lg display--block-md display--block-xs display--inline-block-xxs">The best blogs, whitepapers, and other </span><span class="newsletter-txt-rotate color--azure-radiance" data-period="2000" data-rotate="["development","user experience","low code","team productivity"]">development</span> resources</div></div><div class="newsletter__Form bg--dark text--align-left"><form id="lead-nl-form" class="lead-tracker-form ui-form ui-form--single-col" data-form-theme=""><div class="be-row be-wrap clearfix"><div id="recaptchaError" class="field-validation-error-msg" style="display: none;">Unfortunately, Google has considered you a bot. If you have an account, please<a href="https://www.infragistics.com/login" title="sign in" class="mchNoDecorate">sign in</a>to validate your status and fill form out again. Alternatively, please feel free to contact<a href="mailto:[email protected]" title="[email protected]" class="mchNoDecorate">[email protected]</a>to obtain the asset you were looking for or choose to schedule a demo of our products.</div><div id="formInvalidEmail" class="field-validation-error-msg" style="display: none;">Must be a valid email: [email protected]</div><div id="formInvalidFreeEmail" class="field-validation-error-msg" style="display: none;">Email must be a business email address</div><div id="formInvalidConditionForm" class="field-validation-error-msg" style="display: none;">Please accept the Terms of Use and Privacy Policy to continue.</div><div id="formGeneralError" class="field-validation-error-msg" style="display: none;">Sorry, something went wrong and we could not sign you up. Please try again, or email<a href="mailto:[email protected]?subject=Newsletter signup">[email protected]</a>.</div></div><div class="be-row be-wrap clearfix"><div class="one-col column-block clearfix ui-form__input-group"><input placeholder="Your email address" id="Email" name="Email" class="sfInput required" aria-labelledby="lblEmail" type="email" data-val-length-max="60" data-val-length="Email cannot exceed 60 characters"><label id="lblEmail" for="Email" class="ui-form__label ui-form__label--required hidden">Email</label></div></div><div class="be-row be-wrap clearfix" style="display:none;"><div class="one-col column-block ui-form__input-group"><input id="Country" name="Country" class="sfInput" aria-labelledby="lblCountry" type="text" value="" tabindex="-1" autocomplete="off"><label id="lblCountry" for="Country" class="ui-form__label">Country</label></div></div><div class="be-row be-wrap clearfix"><div class="one-col column-block"><label for="acceptGDPRFormSubmissionNL" class="ui-form__checkbox-container ui-form__label"><span id="LblacceptGDPRFormSubmissionNL" class="label__text">I understand and agree to the terms of infragistics' <a href="https://www.infragistics.com/legal/terms-of-use" title="Terms of Use" target="_blank" rel="noopener" class="deemphasize">Terms of Use</a> and <a href="https://www.infragistics.com/legal/privacy" title="Privacy Policy" target="_blank" rel="noopener" class="deemphasize">Privacy Policy</a><br><br>
742This site is protected by reCATPTCHA and the Google <a href="https://policies.google.com/privacy?hl=en-US" title="Google Privacy Policy" target="_blank" rel="nofollow noopener" class="deemphasize">Privacy Policy</a> and <a href="https://policies.google.com/terms?hl=en-US" title="Google Terms of Use" target="_blank" rel="nofollow noopener" class="deemphasize">Terms of Use</a> apply</span><input name="acceptGDPRFormSubmissionNL" id="acceptGDPRFormSubmissionNL" type="checkbox" value="yes" aria-required="true" aria-labelledby="LblacceptGDPRFormSubmissionNL"><div class="ui-form__checkbox"> </div></label></div></div><div class="be-row be-wrap clearfix newsletter__submit-btn-wrap"><button id="submit" type="submit" class="ui-btn ui-btn--default ui-btn--sm" disabled>SIGN ME UP!</button></div></form><div class="thankyou__containerNL" style="display: none;"><strong class="emphasize">Thank you for subscribing.</strong> Look for an email from <a href="mailto:[email protected]?subject=Questions about Newsletter">[email protected]</a> for the latest news for Developers, UX, and Business Teams.</div></div></div></div></div><div class="ui-footer__wrap ui-footer--clearfix ui-footer--legal" style="text-align: center;"><div class="ui-footer__menu"><ul class="ui-footer__menu-list"><li class="ui-footer__menu-list-item display--inline-block" style="margin: 0 8px;"><a class="menu__link" style="display: inline-block;" href="https://www.infragistics.com/legal/privacy">Privacy Policy</a><span style="font-size: 10px; color: rgba(255,255,255,0.4); display: inline-block; margin-left: 4px;">(updated)</span></li><li class="ui-footer__menu-list-item display--inline-block" style="margin: 0 8px;"><a class="menu__link" href="https://www.infragistics.com/legal/cookie-policy">Cookies</a></li><li class="ui-footer__menu-list-item display--inline-block" style="margin: 0 8px;"><button class="menu__link ui-footer__consent-link" type="button" data-consent-open>Cookie settings</button></li><li class="ui-footer__menu-list-item display--inline-block" style="margin: 0 8px;"><a class="menu__link" style="display: inline-block;" href="https://www.infragistics.com/legal/terms-of-use">Terms of Use</a><span style="font-size: 10px; color: rgba(255,255,255,0.4); display: inline-block; margin-left: 4px;">(updated)</span></li></ul><div style="margin-top: 15px;"><img title="I.S. Partners SOC2 SEAL" src="https://static.infragistics.com/marketing/Website/shared/Seal-SOC2.png" alt="I.S. Partners SOC2 SEAL" width="32" height="32" loading="lazy"><img title="GDPR SEAL" src="https://static.infragistics.com/marketing/slingshot/security/gdpr-badge.svg" alt="GDPR SEAL" width="35" height="35" loading="lazy"><img title="IS Partners LLC" src="https://static.infragistics.com/marketing/Website/shared/SOC2-badge.svg" alt="IS Partners LLC" width="35" height="35" loading="lazy"></div></div></div></footer><footer id="footer"><div id="footer-wrap" class="be-wrap clearfix"><div id="copyright">© Copyright 2026 INFRAGISTICS. All Rights Reserved</div></div></footer>
742<script type="module" src="/blogs/_astro/Footer.astro_astro_type_script_index_0_lang.CizMfZ9d.js"></script>
742<div id="igd-consent" class="igd-consent" role="dialog" aria-modal="false" aria-labelledby="igd-consent-title" hidden><div class="igd-consent__view" data-view="summary"><h2 id="igd-consent-title" class="igd-consent__title" tabindex="-1">Your Privacy Matters</h2><p class="igd-consent__text">We use our own and third-party cookies to improve your experience on our website. They also allow us to analyze user behavior in order to constantly improve the website for you. Please review our <a href="https://www.infragistics.com/legal/cookie-policy">Cookie Policy</a> and cookie settings below.</p><div class="igd-consent__actions"><button type="button" id="igd-consent-reject" class="igd-consent__btn">Decline All</button><button type="button" id="igd-consent-accept" class="igd-consent__btn">Accept All</button></div><div class="igd-consent__actions igd-consent__actions--secondary"><button type="button" id="igd-consent-manage" class="igd-consent__btn igd-consent__btn--quiet">Manage settings</button></div></div><div class="igd-consent__view" data-view="settings" hidden><h2 id="igd-consent-title-settings" class="igd-consent__title" tabindex="-1">Privacy Preferences</h2><p class="igd-consent__text">When you visit any website, it may store or retrieve information on your browser, mostly in the form of cookies. This information might be about you, your preferences, or your device and is mostly used to make the site work as you expect it to. The information does not usually directly identify you, but can give you a more personalized web experience. Because we respect your right to privacy, you can choose not to allow some types of cookies. However, blocking some types of cookies may impact your experience of the site and the services we are able to offer.</p><div class="igd-consent__actions"><button type="button" id="igd-consent-accept-2" class="igd-consent__btn">Accept All</button></div><ul class="igd-consent__cats"><li class="igd-consent__cat"><label class="igd-consent__cat-label" for="igd-consent-necessary"><input type="checkbox" id="igd-consent-necessary" class="igd-consent__cat-input" aria-describedby="igd-consent-necessary-tip" checked disabled><span class="igd-consent__cat-box" aria-hidden="true"></span><span class="igd-consent__cat-name">Necessary</span></label><button type="button" class="igd-consent__tip" aria-label="What necessary cookies do"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm-2.033 16.01c.564-1.789 1.632-3.932 1.821-4.474.273-.787-.211-1.136-1.74.209l-.34-.64c1.744-1.897 5.335-2.326 4.113.613-.763 1.835-1.309 3.074-1.621 4.03-.455 1.393.694.828 1.819-.211.153.25.203.331.356.619-2.498 2.378-5.271 2.588-4.408-.146zm4.742-8.169c-.532.453-1.32.443-1.761-.022-.441-.465-.367-1.208.164-1.661.532-.453 1.32-.442 1.761.022.439.466.367 1.209-.164 1.661z"></path></svg><span class="igd-consent__tip-text" id="igd-consent-necessary-tip" role="tooltip">Essential cookies for login data and good site performance.</span></button></li><li class="igd-consent__cat"><label class="igd-consent__cat-label" for="igd-consent-functional"><input type="checkbox" id="igd-consent-functional" class="igd-consent__cat-input" aria-describedby="igd-consent-functional-tip"><span class="igd-consent__cat-box" aria-hidden="true"></span><span class="igd-consent__cat-name">Functional</span></label><button type="button" class="igd-consent__tip" aria-label="What functional cookies do"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm-2.033 16.01c.564-1.789 1.632-3.932 1.821-4.474.273-.787-.211-1.136-1.74.209l-.34-.64c1.744-1.897 5.335-2.326 4.113.613-.763 1.835-1.309 3.074-1.621 4.03-.455 1.393.694.828 1.819-.211.153.25.203.331.356.619-2.498 2.378-5.271 2.588-4.408-.146zm4.742-8.169c-.532.453-1.32.443-1.761-.022-.441-.465-.367-1.208.164-1.661.532-.453 1.32-.442 1.761.022.439.466.367 1.209-.164 1.661z"></path></svg><span class="igd-consent__tip-text" id="igd-consent-functional-tip" role="tooltip">Cookies that support website functionality and features.</span></button></li><li class="igd-consent__cat"><label class="igd-consent__cat-label" for="igd-consent-analytics"><input type="checkbox" id="igd-consent-analytics" class="igd-consent__cat-input" aria-describedby="igd-consent-analytics-tip"><span class="igd-consent__cat-box" aria-hidden="true"></span><span class="igd-consent__cat-name">Analytics</span></label><button type="button" class="igd-consent__tip" aria-label="What analytics cookies do"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm-2.033 16.01c.564-1.789 1.632-3.932 1.821-4.474.273-.787-.211-1.136-1.74.209l-.34-.64c1.744-1.897 5.335-2.326 4.113.613-.763 1.835-1.309 3.074-1.621 4.03-.455 1.393.694.828 1.819-.211.153.25.203.331.356.619-2.498 2.378-5.271 2.588-4.408-.146zm4.742-8.169c-.532.453-1.32.443-1.761-.022-.441-.465-.367-1.208.164-1.661.532-.453 1.32-.442 1.761.022.439.466.367 1.209-.164 1.661z"></path></svg><span class="igd-consent__tip-text" id="igd-consent-analytics-tip" role="tooltip">Cookies that measure how the site is used so we can improve it.</span></button></li><li class="igd-consent__cat"><label class="igd-consent__cat-label" for="igd-consent-advertising"><input type="checkbox" id="igd-consent-advertising" class="igd-consent__cat-input" aria-describedby="igd-consent-advertising-tip"><span class="igd-consent__cat-box" aria-hidden="true"></span><span class="igd-consent__cat-name">Advertising</span></label><button type="button" class="igd-consent__tip" aria-label="What advertising cookies do"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm-2.033 16.01c.564-1.789 1.632-3.932 1.821-4.474.273-.787-.211-1.136-1.74.209l-.34-.64c1.744-1.897 5.335-2.326 4.113.613-.763 1.835-1.309 3.074-1.621 4.03-.455 1.393.694.828 1.819-.211.153.25.203.331.356.619-2.498 2.378-5.271 2.588-4.408-.146zm4.742-8.169c-.532.453-1.32.443-1.761-.022-.441-.465-.367-1.208.164-1.661.532-.453 1.32-.442 1.761.022.439.466.367 1.209-.164 1.661z"></path></svg><span class="igd-consent__tip-text" id="igd-consent-advertising-tip" role="tooltip">Cookies used to make advertising messages more relevant to you and your interests.</span></button></li></ul><div class="igd-consent__actions"><button type="button" id="igd-consent-reject-2" class="igd-consent__btn">Decline All</button><button type="button" id="igd-consent-save" class="igd-consent__btn">Confirm My Choices</button></div></div></div>
742<script type="module">var e=[{key:`functional`,id:`igd-consent-functional`},{key:`analytics`,id:`igd-consent-analytics`},{key:`advertising`,id:`igd-consent-advertising`}];function t(){let t=window.igConsent,n=document.getElementById(`igd-consent`);if(!t||!n)return;let r=n.querySelector(`[data-view="summary"]`),i=n.querySelector(`[data-view="settings"]`);if(!r||!i)return;let a=null,o=e=>document.getElementById(e);function s(e){let t=e===`settings`;r.hidden=t,i.hidden=!t,n.setAttribute(`aria-labelledby`,t?`igd-consent-title-settings`:`igd-consent-title`),(t?i:r).querySelector(`h2`)?.focus()}function c(r=`summary`){let i=t.decision;for(let{key:t,id:n}of e){let e=o(n);e&&(e.checked=i?i[t]===!0:!1)}a=document.activeElement instanceof HTMLElement?document.activeElement:null,n.hidden=!1,s(r)}function l(){n.hidden=!0,a&&document.contains(a)&&a.focus(),a=null}function u(e){t.save(e),l()}let d=()=>u({necessary:!0,functional:!0,analytics:!0,advertising:!0}),f=()=>u({necessary:!0,functional:!1,analytics:!1,advertising:!1}),p=()=>u({necessary:!0,functional:o(`igd-consent-functional`)?.checked===!0,analytics:o(`igd-consent-analytics`)?.checked===!0,advertising:o(`igd-consent-advertising`)?.checked===!0}),m=(e,t)=>o(e)?.addEventListener(`click`,e=>{e.preventDefault(),t()});m(`igd-consent-accept`,d),m(`igd-consent-reject`,f),m(`igd-consent-accept-2`,d),m(`igd-consent-reject-2`,f),m(`igd-consent-manage`,()=>s(`settings`)),m(`igd-consent-save`,p),n.addEventListener(`keydown`,e=>{e.key===`Escape`&&(e.stopPropagation(),l())}),window.addEventListener(`ig-consent:open`,()=>c(`settings`)),document.querySelectorAll(`[data-consent-open]`).forEach(e=>e.addEventListener(`click`,e=>{e.preventDefault(),c(`settings`)})),t.pendingOpen?(t.pendingOpen=!1,c(`settings`)):t.decision||c(`summary`)}t();</script>
742</body></html>
742<script type="module" src="/blogs/_astro/BaseLayout.astro_astro_type_script_index_0_lang.CnZtU-E-.js"></script>
742<script type="module">document.querySelectorAll(`.igd-skeleton`).forEach(e=>{let t=e.querySelector(`img`),n=()=>e.setAttribute(`data-loaded`,``);if(!t)return n();let r=()=>(t.decode?t.decode().catch(()=>{}):Promise.resolve()).then(n);t.complete?r():(t.addEventListener(`load`,r,{once:!0}),t.addEventListener(`error`,n,{once:!0}))});</script>
742<script type="module">document.querySelectorAll(`.prose pre`).forEach(e=>{let t=document.createElement(`button`);t.type=`button`,t.className=`igd-copy-btn`,t.textContent=`Copy`,t.addEventListener(`click`,()=>{let n=e.querySelector(`code`)?.textContent??e.textContent??``;navigator.clipboard.writeText(n).then(()=>{t.textContent=`Copied!`,t.classList.add(`is-copied`),setTimeout(()=>{t.textContent=`Copy`,t.classList.remove(`is-copied`)},1500)})}),e.appendChild(t)});</script>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.