Skip to content

Bump Meziantou.Analyzer and 6 others - #61

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/nuget/AFS.ComponentLibrary/nuget-e6fa7d8d4d
Closed

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/nuget/AFS.ComponentLibrary/nuget-e6fa7d8d4d

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Updated Meziantou.Analyzer from 3.0.290 to 3.0.320.

Release notes

Sourced from Meziantou.Analyzer's releases.

3.0.320

NuGet package: https://www.nuget.org/packages/Meziantou.Analyzer/3.0.320

What's Changed

Full Changelog: meziantou/Meziantou.Analyzer@3.0.319...3.0.320

3.0.319

NuGet package: https://www.nuget.org/packages/Meziantou.Analyzer/3.0.319

What's Changed

Full Changelog: meziantou/Meziantou.Analyzer@3.0.318...3.0.319

3.0.318

NuGet package: https://www.nuget.org/packages/Meziantou.Analyzer/3.0.318

What's Changed

Full Changelog: meziantou/Meziantou.Analyzer@3.0.317...3.0.318

3.0.317

NuGet package: https://www.nuget.org/packages/Meziantou.Analyzer/3.0.317

What's Changed

Full Changelog: meziantou/Meziantou.Analyzer@3.0.316...3.0.317

3.0.316

NuGet package: https://www.nuget.org/packages/Meziantou.Analyzer/3.0.316

What's Changed

Full Changelog: meziantou/Meziantou.Analyzer@3.0.315...3.0.316

3.0.315

NuGet package: https://www.nuget.org/packages/Meziantou.Analyzer/3.0.315

What's Changed

Full Changelog: meziantou/Meziantou.Analyzer@3.0.314...3.0.315

3.0.314

NuGet package: https://www.nuget.org/packages/Meziantou.Analyzer/3.0.314

What's Changed

Full Changelog: meziantou/Meziantou.Analyzer@3.0.313...3.0.314

3.0.313

NuGet package: https://www.nuget.org/packages/Meziantou.Analyzer/3.0.313

What's Changed

Full Changelog: meziantou/Meziantou.Analyzer@3.0.312...3.0.313

3.0.312

NuGet package: https://www.nuget.org/packages/Meziantou.Analyzer/3.0.312

What's Changed

Full Changelog: meziantou/Meziantou.Analyzer@3.0.311...3.0.312

3.0.311

NuGet package: https://www.nuget.org/packages/Meziantou.Analyzer/3.0.311

What's Changed

Full Changelog: meziantou/Meziantou.Analyzer@3.0.310...3.0.311

3.0.310

NuGet package: https://www.nuget.org/packages/Meziantou.Analyzer/3.0.310

What's Changed

Full Changelog: meziantou/Meziantou.Analyzer@3.0.309...3.0.310

3.0.309

NuGet package: https://www.nuget.org/packages/Meziantou.Analyzer/3.0.309

What's Changed

Full Changelog: meziantou/Meziantou.Analyzer@3.0.308...3.0.309

3.0.308

NuGet package: https://www.nuget.org/packages/Meziantou.Analyzer/3.0.308

What's Changed

Full Changelog: meziantou/Meziantou.Analyzer@3.0.307...3.0.308

3.0.307

NuGet package: https://www.nuget.org/packages/Meziantou.Analyzer/3.0.307

What's Changed

Full Changelog: meziantou/Meziantou.Analyzer@3.0.306...3.0.307

3.0.306

NuGet package: https://www.nuget.org/packages/Meziantou.Analyzer/3.0.306

What's Changed

Full Changelog: meziantou/Meziantou.Analyzer@3.0.305...3.0.306

3.0.305

NuGet package: https://www.nuget.org/packages/Meziantou.Analyzer/3.0.305

What's Changed

Full Changelog: meziantou/Meziantou.Analyzer@3.0.304...3.0.305

3.0.304

NuGet package: https://www.nuget.org/packages/Meziantou.Analyzer/3.0.304

What's Changed

Full Changelog: meziantou/Meziantou.Analyzer@3.0.303...3.0.304

3.0.303

NuGet package: https://www.nuget.org/packages/Meziantou.Analyzer/3.0.303

What's Changed

Full Changelog: meziantou/Meziantou.Analyzer@3.0.302...3.0.303

3.0.302

NuGet package: https://www.nuget.org/packages/Meziantou.Analyzer/3.0.302

What's Changed

Full Changelog: meziantou/Meziantou.Analyzer@3.0.301...3.0.302

3.0.301

NuGet package: https://www.nuget.org/packages/Meziantou.Analyzer/3.0.301

What's Changed

Full Changelog: meziantou/Meziantou.Analyzer@3.0.300...3.0.301

3.0.300

NuGet package: https://www.nuget.org/packages/Meziantou.Analyzer/3.0.300

What's Changed

Full Changelog: meziantou/Meziantou.Analyzer@3.0.299...3.0.300

3.0.299

NuGet package: https://www.nuget.org/packages/Meziantou.Analyzer/3.0.299

What's Changed

Full Changelog: meziantou/Meziantou.Analyzer@3.0.298...3.0.299

3.0.298

NuGet package: https://www.nuget.org/packages/Meziantou.Analyzer/3.0.298

What's Changed

Full Changelog: meziantou/Meziantou.Analyzer@3.0.297...3.0.298

3.0.297

NuGet package: https://www.nuget.org/packages/Meziantou.Analyzer/3.0.297

What's Changed

Full Changelog: meziantou/Meziantou.Analyzer@3.0.296...3.0.297

3.0.296

NuGet package: https://www.nuget.org/packages/Meziantou.Analyzer/3.0.296

What's Changed

Full Changelog: meziantou/Meziantou.Analyzer@3.0.295...3.0.296

3.0.295

NuGet package: https://www.nuget.org/packages/Meziantou.Analyzer/3.0.295

What's Changed

New Contributors

Full Changelog: meziantou/Meziantou.Analyzer@3.0.294...3.0.295

3.0.294

NuGet package: https://www.nuget.org/packages/Meziantou.Analyzer/3.0.294

What's Changed

Full Changelog: meziantou/Meziantou.Analyzer@3.0.293...3.0.294

3.0.293

NuGet package: https://www.nuget.org/packages/Meziantou.Analyzer/3.0.293

What's Changed

Full Changelog: meziantou/Meziantou.Analyzer@3.0.292...3.0.293

3.0.292

NuGet package: https://www.nuget.org/packages/Meziantou.Analyzer/3.0.292

What's Changed

New Contributors

Full Changelog: meziantou/Meziantou.Analyzer@3.0.291...3.0.292

3.0.291

NuGet package: https://www.nuget.org/packages/Meziantou.Analyzer/3.0.291

What's Changed

Full Changelog: meziantou/Meziantou.Analyzer@3.0.290...3.0.291

Commits viewable in compare view.

Updated Microsoft.AspNetCore.Components.WebAssembly from 10.0.12 to 10.0.14.

Release notes

Sourced from Microsoft.AspNetCore.Components.WebAssembly's releases.

No release notes found for this version range.

Commits viewable in compare view.

Updated Microsoft.AspNetCore.Components.WebAssembly.DevServer from 10.0.12 to 10.0.14.

Release notes

Sourced from Microsoft.AspNetCore.Components.WebAssembly.DevServer's releases.

No release notes found for this version range.

Commits viewable in compare view.

Updated Microsoft.Extensions.Localization from 10.0.12 to 10.0.14.

Release notes

Sourced from Microsoft.Extensions.Localization's releases.

No release notes found for this version range.

Commits viewable in compare view.

Updated Radzen.Blazor from 12.0.1 to 12.1.9.

Release notes

Sourced from Radzen.Blazor's releases.

12.1.9

12.1.9 - 2026-10-31

Improvements

  • Spreadsheet formulas support the ^ and % operators, which returned #NAME? before. ^ is left associative and binds looser than unary minus and % is a postfix operator, as in Excel, so =2^3^2 is 64, =-2^2 is 4 and =5%% is 0.0005. ^ and POWER share one calculation: 0^0 returns #NUM!, 0^-1 returns #DIV/0!, overflow returns #NUM! and odd roots of negative numbers such as (-8)^(1/3) work. POWER returned #DIV/0! on overflow before, and arithmetic overflow such as =10^308*10 now returns #NUM! instead of infinity.
  • Spreadsheet accepts a sheet qualified #REF! such as Sheet1!#REF! and 'My Sheet'!#REF!, the form Excel writes when a referenced row or column is deleted. These formulas evaluated to #NAME? before.
  • Spreadsheet deletes several rows or columns in one pass. On a sheet with 60000 formulas, deleting 2000 rows drops from 61s to about 0.5s.
  • DataGrid can expand or collapse all groups from the header of the group expand column. The new ShowGroupExpandAll parameter renders a toggle button in the first group header cell and the public ToggleAllGroupsExpand method does the same from code. The title and aria-label come from the new ExpandAllGroupsTitle and CollapseAllGroupsTitle parameters.
  • Tabs supports closable tabs. RadzenTabsItem gets a Closable parameter that renders a close icon after the title, and clicking it or pressing Delete raises the new Close event with the tab and its index. RemoveItem keeps the same tab selected when an earlier tab is removed and selects a neighbouring enabled tab when the selected tab is removed.
  • Menu can share a header row with other items on small screens through the new rz-display-contents utility on a responsive menu, and rz-display-sm-flex restores it above 768px.

Fixes

  • Spreadsheet row and column deletes update formula references the way Excel does. References after the deleted rows move, a range shrinks when its start or end is deleted, and a reference left with no cells becomes #REF!. Before, remaining rows read the wrong cells, ranges returned #REF! and undo left shifted formulas behind. Undo and redo now restore every formula in the workbook, including validation formulas and chart series.
  • Spreadsheet defined names follow row and column inserts and deletes, and formulas using them keep tracking the moved cells. Names were never updated before, so a name kept pointing at its old address.
  • Spreadsheet row and column inserts keep formulas the parser cannot represent. An insert used to rewrite the formula from a partial parse, which corrupted it.
  • Spreadsheet formulas on other sheets recalculate when a row or column delete changes what a whole column or row reference covers.
  • Spreadsheet context menus act on the whole selection. Right-clicking inside a selection keeps it, and Delete, Hide and Unhide apply to every selected row or column (#​2782). Sort limits itself to a multi-cell selection outside tables and autofilters (#​2784).
  • Spreadsheet filter menu shows the active filter when it reopens. Every checkbox came back unchecked for text values, and OK then replaced the filter with one on blanks (#​2783). Custom, top and above or below average filters reopened with every box ticked and OK cleared them; the checkboxes now show what the filter keeps and OK with no change leaves the filter alone.
  • Steps no longer sends a Blazor Server process into a runaway render loop when an async CanChange handler is combined with a Change handler and a bound SelectedIndex. CanChange is raised for user-initiated changes only and SelectedIndexChanged is raised before Change (#​2785).
  • Tabs raises SelectedIndexChanged before Change, so an async CanChange no longer leaves the tab on the old index, and handled keys no longer swallow the next keystroke.
  • Scheduler aligns the all-day row with the time grid when the week view groups by resource.
  • Themes replace :root:has(.rz-layout) with depth-bounded selectors to reduce style recalculation cost.

12.1.8

12.1.8 - 2026-10-28

Improvements

  • DataGrid can be given an accessible name through the new AriaLabel and AriaLabelledBy parameters, rendered on the element with the grid or treegrid role. The role element rendered no name and aria-label or aria-labelledby splatted onto the component landed on the role-less wrapper where assistive technology ignores them, so screen readers announced an unnamed grid and axe reported "ARIA grid must have an accessible name". When the parameters are not set a splatted aria-label or aria-labelledby is used instead and those two attributes no longer reach the wrapper, because ARIA 1.2 prohibits naming a generic element (#​2780).

Fixes

  • AppearanceToggle has an accessible name and reports aria-pressed for the dark theme. The button rendered no name, because RadzenToggleButton wrote its AriaLabel parameter after the splatted attributes and removed an aria-label placed on the component; the toggle button now falls back to the splatted aria-label and omits the attribute when neither is given, and RadzenAppearanceToggle gains an AriaLabel parameter that defaults to the localized "Dark theme" text. The pressed state used to mean the light theme was active, so screen readers announced "Dark theme, pressed" in the light theme; aria-pressed, the active state and the toggled style now follow the dark theme while the icons and click behavior are unchanged. When the light and dark names resolve to the same theme the button is rendered disabled instead of flipping a pressed state that changed nothing (#​2781).
  • DataGrid applies KeyProperty regardless of where it appears in the markup. The key getter used to match selected, expanded and child-data items by key was created only when Data changed, so a KeyProperty placed after Data was ignored on the first render and a Value item that was a different instance with the same key was not highlighted; a later change of KeyProperty was ignored as well. The getter is now created after the parameters are set and recreated when KeyProperty changes.
  • DataGrid keeps the selection when Value is bound before Data and both change in the same render. Reset, which runs whenever Data changes, emptied the Value backing field without touching the selected items, so Blazor assigned Value first, the Data setter wiped it and no row was highlighted until the next render while Value reported no selection. The field is now cleared only together with the selected items when Reset is asked to reset row state.
  • DataGrid merges a class added through RowRender with the row class instead of replacing it. The consumer class was splatted after the computed row class and removed rz-data-row and the rz-state-highlight selection class, so styled rows lost their selection highlight; the classes are now combined, also when a RowClick handler adds the row click to the same attributes.

12.1.7

12.1.7 - 2026-10-26

Improvements

  • Spreadsheet gains ShowColumnHeaders and ShowRowHeaders parameters, both true by default. Setting one to false hides the column letters or the row numbers together with the space they take, their resize handles and whole-row or whole-column selection, which suits presentation grids where the axis labels live in frozen rows and columns instead. The setting applies to every sheet of the workbook and can be toggled at runtime, and frozen pane splitters stay in place when the headers are hidden (#​2728). Thanks to @​panoskentros!
  • Spreadsheet formula engine supports the LOOKUP and INDIRECT functions, which returned #NAME? before. LOOKUP covers the vector and array forms with Excel's case-insensitive comparison, type skipping and vector extension rules. INDIRECT accepts A1 text with or without a sheet name, a defined name and R1C1 text with offsets relative to the formula cell, returns #REF! and #VALUE! as Excel does, and is volatile so dependent formulas recalculate on every change. Both are shown in the Spreadsheet formulas demo (#​2777).
  • Spreadsheet keeps sheet-scoped, built-in and hidden defined names. Worksheet has a DefinedNames dictionary for names scoped to that sheet, a formula resolves a sheet-scoped name before a workbook name of the same name, renaming a sheet rewrites references in both, and xlsx files round-trip Print_Area, Print_Titles, _FilterDatabase and the hidden attribute instead of dropping them (#​2777).
  • Chart stacked column and bar series gain a StackGroup parameter. Stacked series that share a group form one stack and different groups render side by side in the same category, each with its own value axis fit, so revenue and expense breakdowns can sit next to each other and next to a plain column series (#​2776).

Fixes

  • Spreadsheet tables, filters, conditional formats, data validation, images and charts now follow row and column insertion and deletion. The worksheet shifted cells, sizes, merged cells and formulas but left every other structure at its old address, so inserting a row inside a table kept the header, totals and banding styles on the old rows while the values moved, and the row appeared to be inserted several rows below the cursor. Table ranges and columns, sheet and per-column filters with the columns in their criteria, conditional format and validation ranges, validation formulas, drawing anchors and chart series references on any sheet now move or resize with the edit, and deleting rows or columns snapshots every table so undo restores a trimmed or removed table exactly (#​2779).
  • Spreadsheet VLOOKUP, HLOOKUP, MATCH and XMATCH treat a blank lookup value and blank cells as Excel does, so a blank lookup no longer matches the first blank cell of the lookup column and shows an empty string where Excel shows 0. The approximate modes no longer fail on a column that mixes numbers and text (#​2777).
  • Spreadsheet XLOOKUP and XMATCH match Excel for blank cells, empty strings and values of different types. A blank lookup value and an empty string are no longer treated as equal, and the approximate and binary search modes order values as Excel does, so the next-larger mode returns the smallest larger value instead of the first larger one it meets.
  • Spreadsheet saves xlsx files that Excel opens. Shared formulas that reference a sheet by name are written as plain formulas, external workbook links and the names and formulas that use them survive a load and save, a list validation whose source is a range is read as a reference and written unquoted, and a list of several items is written in the form Excel accepts (#​2777).
  • Tooltip content taller than the viewport scrolls inside the tooltip instead of growing the document. When no side of the target had room, the popup was clamped to the viewport edge and overflowed the page, which added a document scrollbar, covered the target and raised a spurious MouseLeave that reopened the tooltip in a loop. The fallback now picks the side with the most room, caps the popup at the viewport edge with max-height and inner scrolling, and keeps a max-height from TooltipOptions.Style (#​2548).
  • Chart column series and stacked column series no longer overlap when used in the same chart, and the same holds for bar and stacked bar series. Each family laid itself out from its own siblings only, so a stacked series centered its stack on the category tick regardless of the plain columns next to it. One band per category is now shared by all column-type or bar-type series for rendering, tooltips, data labels and hit-testing (#​2776).
  • AutoComplete no longer flashes stale suggestions after the input drops below MinLength. Backspacing kept the previous matches on screen until the filter delay elapsed, and the next keystroke reopened the popup with the same stale items. The search text is cleared when the popup closes and the input listener keeps the popup closed while the value is shorter than MinLength (#​2775).

12.1.6

12.1.6 - 2026-10-22

Improvements

  • Localization ships a built-in Portuguese translation. The new RadzenStrings.pt.resx satellite covers every resource key and uses the neutral pt culture, so it applies to pt, pt-BR and pt-PT apps without any setup. The wording follows common Brazilian usage in business software. Portuguese is also available in the localization demos (#​2774).

Fixes

  • AIPrompt no longer loses typed characters in interactive server mode. The textarea was a manually controlled input, so every keystroke re-rendered it with a value that was already stale by the time it reached the browser. It now uses two-way binding, and Enter without Shift is blocked on the client by a static keydown listener instead of a per-render handler, so the newline is prevented from the very first render. Shift+Enter still inserts a newline (#​2772). Thanks to @​felippenvieira!
  • Menu no longer swallows Tab and Shift+Tab on the menubar, so keyboard focus leaves the menu in one keystroke (WCAG 2.1.2). The render-time preventDefault flag was applied from the previous render, which blocked the first Tab after the menubar took focus and every Tab after a handled key. A static document listener now prevents the default per key in the browser for arrows, Home, End, Enter, Space, Escape and typeahead characters only (#​2773).
  • DataGrid in FilterMode.SimpleWithMenu no longer shows the filter value through the operator button on a narrow column. The compact layout cleared the button with text-indent, which only offsets the first character, so a scrolled value was painted under the translucent button. The input now uses inline padding, which works in every theme and in RTL (#​2771).
  • DropDown popups no longer overflow the viewport after a visual viewport resize. The resize handler sized the items list to the whole space between the trigger and the viewport edge, ignoring the filter input, the multiselect header and the header and footer templates, so a popup flipped above the trigger went past the top of the screen and never shrank back once grown. The handler now accounts for the popup chrome and restores the original size when it fits again.
  • Upload with Auto="false" no longer shows a broken image for non-image files. An object URL was created for every selected file and rendered as an img, so a PDF or text file displayed the browser's broken-image glyph. The preview is now rendered only for image/* files, and other files show a document icon in the same slot so rows stay aligned.

12.1.5

12.1.5 - 2026-10-19

Improvements

  • Validators get a PopupPosition parameter that shows a popup validator above, below, to the left or to the right of its field. Bottom stays the default, so existing validators look the same. The popup stays next to its field when the layout changes, and a validator positioned while its field is hidden, for example on submit with the field in an inactive tab or a collapsed panel, is placed once the field is shown instead of off-screen (#​640). Thanks to @​panoskentros!

Fixes

  • HtmlEditor table commands keep working after a row or column is deleted. Deleting the active row or column left the caret outside any cell, so the next table command failed. The caret now moves to a remaining cell, which is highlighted. Context menu commands restore the clicked cell's selection and close the menu even when the command fails, and right-clicking a cell no longer scrolls the editor. An inserted row gets the table's full column count when cells are merged with colspan, and the internal rz-html-editor-cell-selected class is no longer saved in Value. Thanks to @​Radium001!
  • DataGrid renders a column bound to a nullable enum with FilterMode.Simple in trimmed Blazor WebAssembly apps instead of throwing ArgumentException (NotAMemberOfType). The "No value" entry of the filter dropdown was an anonymous type whose properties the trimmer removed. It is now a DropDownItem<object>, like the enum entries.

12.1.4

12.1.4 - 2026-10-16

Improvements

  • Scheduler gets an AllowDateSelection parameter that turns the date title into a button opening a date picker, so users can jump straight to a date. Month and year views offer months instead of days, and changing only the year just browses (#​626). Thanks to @​panoskentros!
  • ContextMenu gets a CloseOnScroll option in ContextMenuOptions that closes the menu when the container of the clicked element is scrolled, also after the menu was reopened while open, for example by right-clicking one row after another. Thanks to @​Radium001!

Fixes

  • DataGrid resets correctly when the filters of a column with a FilterTemplate bound to FilterValue and SecondFilterValue are cleared, instead of showing an empty grid or throwing "A second operation was started on this context instance". ClearFilters reset the operator to the type default (Equals for dates) while the filter value fell back to the bound parameter, and changing both bound values started overlapping LoadData calls. The declared operator is now restored, cleared template values no longer fall back to the parameter, and both values changing together reload the grid once (#​2768).
  • DataGrid keeps the SimpleWithMenu filter operator menu of a grid nested in another grid's row template open when clicked. The click bubbled to every ancestor grid's listener, so the popup was toggled once per nesting level and closed right after opening (#​2767).
  • DropDown and DropDownDataGrid follow the page's tab order when tabbing out of an open filterable dropdown instead of moving to the next element in the markup, and no longer land in the component's own closing popup. Thanks to @​jdurrantab!

12.1.3

12.1.3 - 2026-10-15

Improvements

  • Row gets a Columns parameter that sets how many columns fit on each line, so a layout with a fixed number of columns per line no longer needs Size on every RadzenColumn. ColumnsXS, ColumnsSM, ColumnsMD, ColumnsLG, ColumnsXL and ColumnsXX change it per breakpoint. Counts that do not divide 12, such as 5 or 7, work as well and Gap is respected. A column with its own Size for the current breakpoint keeps it (#​2760).

Fixes

  • Spreadsheet reads xlsx files with absolute relationship targets and cells without a reference, such as those written by SpreadCheetah, instead of showing empty sheets. A target like /xl/worksheets/sheet1.xml was prefixed with xl/ so the sheet was not found, and a <c> or <row> without the optional r attribute was dropped. Relationship targets are now resolved against their source part, for sheets as well as drawings, images, charts and tables, and a cell or row without a reference takes the position after the previous one (#​2757).
  • RadialGauge and ArcGauge no longer render C# source as text inside every scale tick. The tick label condition in the scale was missing its @, so if (!string.IsNullOrEmpty(tick.Value)) was emitted as a text node in each tick, which screen readers read once per tick, and an empty tick label was rendered even with ShowTickLabels="false".
  • Carousel no longer jumps back to the first item after every navigation in right-to-left pages. RTL scroll containers report a negative scrollLeft, so the index computed from the scroll position was negative, got clamped to 0 and reset the selection right after Navigate or a pager click. The scroll handler now uses the absolute scroll offset.
  • ODataServiceResult survives trimming when an app deserializes it through its own generic code, such as PersistentComponentState.TryTakeFromJson<T> or JsonSerializer.Deserialize<T> behind an unannotated helper. A trimmed Blazor WebAssembly app kept the type but lost its parameterless constructor and the Count and Value setters, so System.Text.Json threw NotSupportedException. Radzen.Blazor now embeds a trimmer descriptor that keeps these members whenever an app keeps the type.

12.1.2

12.1.2 - 2026-10-12

Improvements

  • AIChat Tool call icons have more contrast, tool call titles use the theme font and the Approve button is flat.

12.1.1

12.1.1 - 2026-10-12

Improvements

  • AIChat QueueMessages accepts messages sent while an answer streams instead of ignoring them: the message shows right away marked as queued, is sent when the answer completes, and Stop returns its text to the box. A service can take such a message mid-response through IAIChatService.TryQueueMessageAsync or an IChatMessageQueue its chat client exposes via GetService; a user-role ChatResponseUpdate with the message id tells the chat the model read it, which moves the message under the answer so far and starts a new assistant message. The send button stays next to the stop button while streaming.
  • AIChat HeaderTemplate, InputHeaderTemplate and InputFooterTemplate slots for a conversation switcher, status line, model picker or action buttons around the conversation and the input.
  • AIChat @​bind-Input reads and sets the text in the box, FocusAsync focuses it.
  • AIChat Text and tool calls of an answer keep the order the model produced them; ChatToolCall.TextPosition and ChatMessage.GetParts() expose it for custom templates.
  • AIChat ChatMessage.Kind with Status, Progress and Error entries rendered as a centered note, a spinner line and an alert; AddMessage(ChatMessage), RemoveMessage and Refresh manage them. RenderMessage renders a message the default way from inside MessageTemplate.
  • AIChat ShowAvatars, SendButtonText, SendButtonIcon, StopButtonText and StopButtonIcon.
  • AIChat AttachmentAdding receives every picked file and can cancel or replace it, for example with a scaled down image; MaxTotalAttachmentSize limits the attachments of a message as a whole.
  • AIChat UsageTemplate and MessageFooterTemplate render usage and extra content per message; ChatMessage.AdditionalProperties collects the AdditionalProperties of the streamed updates, for example credits or changed files.
  • AIChat The conversation store saves messages a service takes mid-response in the order the chat showed them, under the same ids.

Fixes

  • AIChat The streaming placeholder rendered as a finished message until the first token arrived.
  • AIChat In right-to-left layouts the whole send button was mirrored instead of only its icon.

12.1.0

12.1.0 - 2026-10-12

Improvements

  • AIChat is built on Microsoft.Extensions.AI. AIChatService talks to the model through IChatClient: register the client of any provider (OpenAI, Azure OpenAI, Ollama and others) with AddChatClient and the chat picks it up, or keep the built-in OpenAICompatibleChatClient, which streams from any OpenAI-compatible chat completions endpoint and now parses tool calls. IAIChatService.GetChatClient() exposes the configured pipeline, with the Model, MaxTokens and Temperature defaults applied, to your own code.
  • AIChat calls your C# code. Tools takes the AIFunctions created with AIFunctionFactory; calls run automatically and render as cards with the arguments, status and result, ToolCallTemplate renders a result with Radzen components (generative UI), ApprovalRequiredAIFunction makes the chat ask the user before a tool runs (ApproveToolCall, RejectToolCall), and ToolCallCompleted, ShowToolCalls and AllowMultipleToolCalls control the rest. Multiple approvals in one answer are batched and the answer continues once all of them are decided.
  • AIChat shows the reasoning of models that expose it as a collapsible block above the answer (ShowReasoning), lists the sources of an answer under it (ChatMessage.Citations, ShowCitations, CitationTemplate) from the citation annotations of providers such as OpenAI web search or Perplexity and from tools that return ChatCitation, and normalizes the citation markers of gpt-oss models to plain [n].
  • AIChat takes file attachments. AllowAttachments renders a paperclip (AcceptedAttachmentTypes, MaxAttachmentSize, Error), AddAttachment adds files from code and pending attachments show as thumbnails under the input. Images go to multimodal models as image content, text files (txt, csv, md, json, xml and similar) as text so any model can read them, PDF files as file parts for providers that support them. A stop button replaces the send button while an answer streams; Stop() keeps the text received so far. ShowUsage shows the tokens the provider reports for each answer.
  • AIChat conversations persist through IConversationStore. InMemoryConversationStore keeps them for the lifetime of the application and AddConversationStore<TStore>() plugs in a database store; ConversationSessionSerializer round-trips a session with its model history, tool calls, results and attachments as JSON. The service saves after every answer, UserId tells whose conversation it is and GetOrCreateSessionAsync, GetSessionsAsync, ClearSessionAsync and DeleteSessionAsync manage the saved ones; a chat with a SessionId restores its conversation on initialization.
  • AIPrompt is a new component: a prompt box for one-shot AI tasks with suggested prompts, a streaming markdown output panel with copy and regenerate, and commands such as Shorter, Formal or Translate that refine the output. Context applies every prompt to a piece of text, for example the content or selection of an editor; Value, Output, Generated and OutputTemplate wire it into the page.
  • InlineAIPrompt is a new component that adds an AI assistant to any text field. A button opens an AIPrompt in a popup, the bound Value is the context and the output replaces it, is appended to it or is discarded. With TargetId set to the id of the input or textarea, the text selected in it becomes the context and only the selection is replaced. ShowButton="false" with OpenAsync(element) opens the popup from your own trigger and Applied reports the new value.
  • SmartPasteButton is a new component that fills a form from the text in the clipboard: it describes the properties of TModel to the model (Description and Display attributes guide it), asks for a JSON object and assigns the converted values to Data, including dates, numbers, enums and Guids, notifying the EditContext. Fields and Instructions narrow the request and Paste(text) works without the clipboard.
  • Embeddings are available through IAIChatService.GetEmbeddingGenerator(): OpenAICompatibleEmbeddingGenerator implements IEmbeddingGenerator<string, Embedding<float>> over any OpenAI-compatible embeddings endpoint (EmbeddingsEndpoint, EmbeddingsProxy, EmbeddingsModel in AIChatServiceOptions), or register the generator of your provider.
  • AIChatService refuses an API key in the browser. Everything in a WebAssembly client is visible to its users, so configuring ApiKey there, through the options, the component parameter or a per-message override, throws with a message that says to keep the key on the server and set Proxy to a server endpoint that adds it; Blazor Server applications keep working as before.
  • AIChat, AIPrompt and Chat render markdown while the answer streams instead of after it ends.
  • Markdown and the MarkdownEditor design view style lists, code, blockquotes, horizontal rules and inline HTML tags.
  • Demos get an AI section in the navigation and a redesigned AI overview page, with new demos for tool calling, generative UI, human in the loop, voice input, file attachments, citations and conversation persistence in AIChat, AI assistants for the DataGrid (natural language filtering, an AI column, semantic search with embeddings, AI highlight), the Scheduler, the Chart, the HtmlEditor and the MarkdownEditor.

12.0.8

12.0.8 - 2026-10-10

Improvements

  • TileLayout gets an AllowOverlap parameter. When it is false a move or resize that would place a tile over another visible tile is blocked: the tile first tries the free axis alone so a diagonal drag slides along the neighbor, otherwise it stays at its last valid cell. Tiles that already overlap when the drag starts are ignored so they can still be pulled apart. The default stays true.

Fixes

  • DataGrid keeps expanded rows consistent across Reload when KeyProperty is set. The row toggler icon resolved the expanded state by key while the detail row and CollapseItem resolved it by object reference, so after Reload returned fresh objects with the same keys the icon stayed expanded, the detail disappeared and clicking the icon could not remove the stale entry. The row template now uses IsRowExpanded, CollapseItem removes the stored key that matches by KeyProperty, Single expand mode compares with ItemEquals and the hierarchy view re-keys the child data to the fresh parent object so expanded children survive a reload (#​2752).
  • AutoComplete keeps Value when it is declared before Data in the markup. Blazor assigns parameters in markup order and the Data setter resets the stored value whenever Data changes, so a Value declared before Data was lost on the first render and again every time Data was replaced. The Value parameter is now captured before the first await and re-applied after the base call when the Data setter has reset it (#​2754).
  • DataGrid filtering a collection column translates to SQL again when Data is an EF Core IQueryable. The null guard added around Any/All and IsEmpty/IsNotEmpty collection filters protects in-memory data with null collections, but EF Core cannot translate a null comparison of a projected collection such as c.Orders.Select(o => o.Number).ToList() and failed the whole query with "could not be translated". The guard is now emitted only for in-memory sources, so database providers get a plain Any/All as in 11.1.6 (#​2755).

12.0.7

12.0.7 - 2026-10-08

Fixes

  • Chart adopts the ViewStart and ViewEnd a ViewChange handler assigns during a mouse wheel zoom or scrollbar pan. The callbacks fired while the internal zoom guard was active, so a handler that re-anchored the bound range, for example to keep the latest data in view, updated the parent state while the chart kept rendering the cursor-centered range until the next unrelated render. After ViewStartChanged, ViewEndChanged and ViewChange complete the chart now takes the range it received, clamps it and raises ZoomChanged again if the zoom level moved.
  • DatePicker with ShowDays="false" is usable again with the drill-down navigation. The month and year grids were rendered inside the same ShowDays block as the day table, so a month or year picker showed only the header: the title cycled through the month and year views with nothing drawn, the year-range view had no way back and its arrows moved the current date by twelve years. The grids are now rendered regardless of ShowDays and only the day table is gated by it. With ShowDays false the calendar opens in the month grid, the title drills up to the year grid, a year cell returns to the month grid and a month cell stays there with the picked month highlighted and focused. Picking a month changes CurrentDate and raises CurrentDateChanged as the v11 header dropdowns did; the bound Value is not committed, so existing handlers keep working. DropDown navigation with ShowDays false still renders only the header dropdowns.
  • Spreadsheet loads workbooks whose formulas reference large, mutually overlapping ranges without overflowing the stack, and computes them like Excel. Each referenced cell was evaluated recursively and every range expanded eagerly, so INDEX($W$7:$W$521,...) in column V and INDEX($V$31:$V$521,...) in column W recursed through the whole block and crashed with a stack overflow in WebAssembly. Recalculation now follows a calculation chain: only the cells dirtied by a change are recalculated, every other formula cell is read from its stored value, and a formula that reads a dirty precedent not yet calculated is re-queued after it, so stack depth is bounded by formula nesting instead of data size and cycles are detected at calculation time. Cell and range expressions evaluate to references that are dereferenced only where values are needed, so INDEX, ROW, COLUMN, ROWS, COLUMNS, VLOOKUP, HLOOKUP and XLOOKUP read only the cells they use, and IF, IFERROR, IFNA, IFS, SWITCH and CHOOSE evaluate only the branch they take, so ROW(A5) in A5 is 5 instead of #CIRCULAR and CHOOSE(1,5,1/0) is 5. An error criterion in COUNTIF, SUMIF, AVERAGEIF and the *IFS functions matches cells holding the same error instead of failing the formula. The dependency graph stores each distinct range once with the formulas that read it, which cut building it for the reported workbook from 23.8 s to 0.3 s. All formula cells of the three attached workbooks match the values Excel saved (#​2750).
  • Spreadsheet loads large formula workbooks faster. During a recalculation the values of a range are read once and later reads get a copy, unless the range holds a cell that is still pending or a self or circular read, so the 2,333 range reads made while loading the workbook from #​2750 no longer read 3.8 million cells. The formula lexer allocates trivia lists only for tokens that have trivia, shared formulas reuse the parsed master formula instead of parsing it again for every cell, and unpopulated cells share a single empty instance. Worksheets are read with a streaming XmlReader instead of loading each sheet part into an XDocument, so the cell elements are never materialized as XElement and XAttribute objects. Loading that workbook in WebAssembly allocates 244 MB instead of 535 MB and takes 10.7 s instead of 20.4 s.

12.0.6

12.0.6 - 2026-10-06

Improvements

  • Spreadsheet Worksheet.RightToLeft displays a sheet right to left, with column A on the right. XlsxWriter writes it as rightToLeft="1" on the sheet view and XlsxReader reads it back, so Arabic and Hebrew workbooks no longer open left to right. The RadzenDataGrid Excel export follows the computed direction of the rendered grid, and the new DataGridExcelExportOptions.RightToLeft overrides it (#​2748).

Fixes

  • Chart panning and zooming stay responsive with large datasets. Dragging the scrollbar, panning by touch, spinning the wheel or pinching sent one interop call per native event, so a short drag over a 20000 item column series queued 60 OnPan calls that each re-rendered every column and took over two minutes to settle. The zoom and pan interop is now serialized, with the newest pan position and the accumulated wheel steps sent in one call, RadzenColumnSeries and RadzenBarSeries skip the items outside the zoomed plot area, and RadzenLineSeries and RadzenAreaSeries build their path from the points that reach it plus the neighbors the curve needs, unless AnimateDataUpdates is set. A zoomed chart with 20000 columns now settles 40 ms after the last scrollbar move (#​2749).
  • Chart value axis with both Min and Max and no Step always labels Max. The tick step divides the pinned range evenly instead of rounding up to a whole number, which pushed the last tick past Max and dropped it whenever the range was not a multiple of the tick count, for example Min="0" Max="100" ended at 68. Axes with Step, with a single bound or with neither are unchanged.
  • Gantt Day and Month zoom headers follow Culture and HeaderDateFormat instead of a hard-coded M/d. The day labels of the Day zoom and the week range labels of the Month zoom use HeaderDateFormat when it is set, and otherwise the short date pattern of the Gantt culture without its year part (M/d for en-US, dd/MM for en-GB, dd.MM for de-DE). The Gantt passes its Culture and UICulture to the inner scheduler, and the zoom buttons carry a class per view (rz-gantt-view-day, -week, -month, -year, -years) so an application can hide a zoom by class instead of by position (#​2745).
  • Spreadsheet no longer raises "There was an exception invoking 'OnResize'" when it is disposed, for example when a dialog that hosts it closes or the page navigates away. The virtual grid's ResizeObserver fired once more with a 0x0 size for the detached scroll container and called OnResize on an already disposed DotNetObjectReference. The observer now disconnects itself when the scroller is no longer connected, and the call is guarded like the other resize observers (#​2746).
  • Spreadsheet xlsx export no longer writes applyQuotePrefix on the cell style of a quote-prefixed cell. The attribute is not part of CT_Xf in ECMA-376, so strict readers such as openpyxl refused the file with "unexpected keyword argument 'applyQuotePrefix'". Only quotePrefix="1" is written now (#​2747).

12.0.5

12.0.5 - 2026-10-02

Fixes

  • Theme is no longer removed from trimmed applications. Since 12.0.0, the first trimmable release, a Blazor Web App that renders RadzenTheme only from App.razor in the server project lost the component in the published WebAssembly client: nothing in the client referenced it, so the trimmer removed it from Radzen.Blazor, although @​rendermode="InteractiveAuto" and @​rendermode="InteractiveWebAssembly" need it on the client. ThemeService now keeps RadzenTheme, so every application that calls AddRadzenComponents() has the component after trimming and no change is needed in the application. Only this one component is kept, and the rest of the trimming saving stays.

12.0.4

12.0.4 - 2026-10-02

Fixes

  • DatePicker no longer throws a NullReferenceException in Renderer.DispatchEventAsync on .NET 10 when the mouse moves over the calendar. Since 12.0.0 a RadzenDatePicker that is not a range picker, and the disabled days of a RadzenDateRangePicker, registered the range hover handlers without a delegate. .NET 10 applications that use AddRazorComponents() with interactive server rendering then raised the exception on every hover of a day and every time the mouse left the calendar. The picker kept working, but the debugger stopped on each exception and the server paid for one per mouse move. The handlers are now registered only where the range preview needs them.

12.0.3

12.0.3 - 2026-10-01

Fixes

  • VirtualKeyboard fits narrow screens. Every key had a fixed minimum width, so on a phone the alphanumeric keyboard was wider than the screen and the outer keys such as 1, 0, q and p were cut off. The keys now shrink evenly to fit the available width in the Bottom, Top, Auto and Inline placements and keep the same width in every row, keys with longer labels stay as wide as their text, and the keyboard looks the same as before on wider screens.

12.0.2

12.0.2 - 2026-10-01

Improvements

  • FormField has a FocusOnClick parameter. With FocusOnClick="true" clicking the Start or End content, or the empty area inside the field border, focuses the input. Clicks on interactive Start or End content such as buttons and links are left alone, disabled fields are ignored, and an already focused input keeps focus without a blur. The parameter defaults to false, so existing fields behave as before (#​2742).
  • Chart legend items can be templated with the new RadzenLegend ItemTemplate, which renders the content of every legend item instead of its text while keeping the marker and the click behavior. The template receives a LegendItemContext with the Text, Data, Series and Color of the item, and the chart measures the rendered legend and reserves the space it needs (#​852).
  • GoogleMap has a BoundsChanged event that reports the area the map is showing. It is raised once the map is loaded and each time the map becomes idle after panning or zooming, so a drag raises one callback instead of one per frame, and GoogleMapBoundsChangedEventArgs provides the NorthEast and SouthWest corners of the visible area together with the Center and the Zoom level (#​84).
  • DataGrid and Gantt CellClick can prevent the RowClick raised for the same click, for example when CellClick starts in-cell editing and RowClick opens a detail panel. DataGridCellMouseEventArgs now has PreventDefault() and IsDefaultPrevented: calling PreventDefault() in CellClick skips RowClick and the row selection for that click, and calling it in CellDoubleClick skips RowDoubleClick. An asynchronous CellClick handler has to call it before its first await (#​2570).
  • Spreadsheet formulas support whole-column and whole-row references such as A:A, 4:4, $A:$B, Data!A:A and 'My Sheet'!4:5. They evaluate over the used area of the sheet, while ROWS, COLUMNS, COUNTBLANK, INDEX and implicit intersection see the full logical size, recalculate when any cell in the referenced columns or rows changes, shift only the bounded axis on copy, fill and insert, and become #REF! when the referenced column or row is deleted (#​2743).
  • DataGrid and Gantt in-cell edit demos commit the pending edit when the focus leaves the grid (#​2571).

Fixes

  • Spreadsheet formulas that reference another worksheet recalculate when the referenced cell changes. The workbook now owns a single dependency graph that orders recalculation across all sheets, defers it while any sheet is batching, and shifts or invalidates cross-sheet references when rows and columns are inserted or deleted.
  • Spreadsheet renaming a worksheet rewrites every reference to it in cell formulas, defined names, chart series ranges and data validation formulas. The new name is quoted whenever it is not a plain identifier or looks like a cell or R1C1 address, and quoted sheet names that escape an apostrophe as two, such as 'Bob''s Sheet'!A1, are read correctly.
  • Spreadsheet adding, removing or renaming a sheet refreshes only the formulas that name it instead of recalculating the whole workbook, and loading a workbook with many sheets scans its formulas once.

Commits viewable in compare view.

Updated Roslynator.Analyzers from 5.0.0 to 5.0.1.

Release notes

Sourced from Roslynator.Analyzers's releases.

5.0.1

Fixed

  • Set Visual Studio extension InstallationTarget to API version [17.14,) so Marketplace publish succeeds (VsixPub0029; API 18.0 is experimental). Installable on Visual Studio 2022 17.14+ and Visual Studio 2026 (VS 2026 extension compatibility).
  • [CLI] Reference the compiled output of referenced projects that cannot be loaded into the workspace (for example F# projects), so their types are no longer reported as missing (CS0103/CS0246) during analysis (PR)
  • [CLI] Fix loading of analyzers that reference System.Composition on the .NET 10 SDK (PR)
  • Fix code fix for RCS1233 to add parentheses when the new &&/|| expression is an operand of an operator with higher precedence (e.g. a && b | c is now fixed to a && (b || c)) (PR)

Commits viewable in compare view.

Updated xunit.v3 from 4.0.1 to 4.0.2.

Release notes

Sourced from xunit.v3's releases.

No release notes found for this version range.

Commits viewable in compare view.

Bumps Meziantou.Analyzer from 3.0.290 to 3.0.317
Bumps Microsoft.AspNetCore.Components.WebAssembly from 10.0.12 to 10.0.14
Bumps Microsoft.AspNetCore.Components.WebAssembly.DevServer from 10.0.12 to 10.0.14
Bumps Microsoft.Extensions.Localization from 10.0.12 to 10.0.14
Bumps Radzen.Blazor from 12.0.1 to 12.1.7
Bumps Roslynator.Analyzers from 5.0.0 to 5.0.1
Bumps xunit.v3 from 4.0.1 to 4.0.2

---
updated-dependencies:
- dependency-name: Meziantou.Analyzer
  dependency-version: 3.0.317
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget
- dependency-name: Microsoft.AspNetCore.Components.WebAssembly
  dependency-version: 10.0.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget
- dependency-name: Microsoft.AspNetCore.Components.WebAssembly.DevServer
  dependency-version: 10.0.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget
- dependency-name: Microsoft.Extensions.Localization
  dependency-version: 10.0.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget
- dependency-name: Radzen.Blazor
  dependency-version: 12.1.7
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: nuget
- dependency-name: Roslynator.Analyzers
  dependency-version: 5.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget
- dependency-name: xunit.v3
  dependency-version: 4.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added .NET Pull requests that update .NET code dependencies Pull requests that update a dependency file labels Oct 26, 2026
@dependabot @github

dependabot Bot commented on behalf of github Nov 2, 2026

Copy link
Copy Markdown
Contributor Author

Looks like these dependencies are updatable in another way, so this is no longer needed.

@dependabot dependabot Bot closed this Nov 2, 2026
@dependabot dependabot Bot changed the title Bump the nuget group with 7 updates Bump Meziantou.Analyzer and 6 others Nov 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file .NET Pull requests that update .NET code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants