Commit Graph

5502 Commits

Author SHA1 Message Date
Vladimir Enchev
cf243536d3 Raise version to 10.4.9 v10.4.9 v10.4.8 2026-06-11 13:32:51 +03:00
Vladimir Enchev
0cdc73e699 Fix RadzenSpiderChart disposal error when navigating away
Disconnect the resize observer before disposing the DotNetObjectReference and use async interop in Dispose so a teardown-time exception cannot abort base.Dispose. Also swallow the async rejection from the resize handler's invokeMethodAsync so a post-disposal Resize call no longer surfaces as an uncaught 'no tracked object' error.
2026-06-11 13:32:51 +03:00
Vladimir Enchev
8fe9cc9351 Fix RadzenSpiderChart leaking ResizeObserver causing disposed DotNetObjectReference error
RadzenSpiderChart registered a resize observer via Radzen.createResizable
but never tore it down on dispose. After navigation the orphaned observer
invoked Resize on the disposed DotNetObjectReference, throwing
'There is no tracked object with id ...'. Disconnect it in Dispose.
2026-06-11 12:40:32 +03:00
Vladimir Enchev
09ccce8bd1 Raise version to 10.4.8 2026-06-11 12:36:53 +03:00
Vladimir Enchev
9a921c8513 Fix RadzenSplitter sticky cursor and stuck resize mask blocking panes
Cleanup was bound only to pointerup, so a drag ending in pointercancel
or a missed pointerup left Radzen drag state and the rz-splitter-mask
permanently active, locking panes and making the bar follow the cursor.

Handle pointercancel and finalize the resize when a pointermove arrives
with no button pressed.

Fixes #2568
2026-06-11 12:36:16 +03:00
Atanas Korchev
d0714b8260 Make the newsletter signup more visible
Move it above the commercial banner on demo pages and to the
free-to-paid seam on the homepage. Give it a subtle band background,
simplify the copy and solve the Altcha challenge on focus instead of
on every page load.
2026-06-11 09:33:12 +03:00
Atanas Korchev
2d736f02aa Add newsletter signup to the demos footer and homepage 2026-06-10 11:50:20 +03:00
Atanas Korchev
d947b62e5c Add GitHub star call to action to the home page hero and get started page 2026-06-10 08:22:24 +03:00
Vladimir Enchev
2d9e204515 RadzenDropDown: reposition popup when on-screen keyboard appears on mobile (MAUI)
Resolves #2563
2026-06-08 10:07:41 +03:00
Vladimir Enchev
7ed8e18b9c RadzenTabs: swallow JSException when focusing after tab selection
Element.FocusAsync throws JSException ("Unable to focus an invalid
element") when the change handler navigates away or otherwise removes
the tabs root from the DOM before focus runs. The previous fix only
caught JSDisconnectedException, so the underlying race still surfaced
to users in 10.4.7.

Fixes forum report https://forum.radzen.com/t/radzen-tab-focus-error/21570
2026-06-01 15:39:18 +03:00
yordanov
e8df27b1f9 Update premium themes 2026-06-01 10:02:20 +03:00
Vladimir Enchev
81a86b797d Version updated v10.4.7 2026-06-01 09:57:12 +03:00
Atanas Korchev
f1b2024f82 Don't disallow llms.txt and .md in robots.txt
They already send X-Robots-Tag: noindex, which keeps them out of search results while staying readable by AI agents. A robots.txt Disallow blocks fetching entirely (so the noindex is never seen) and blocks agents from llms.txt, defeating its purpose.
2026-05-29 20:25:50 +03:00
Vladimir Enchev
61b2982f0d RadzenTabs: ensure render state is restored when tab event handlers throw
Follow-up to the #2558 fix. In SelectTab the StateHasChanged call was skipped
if Change/SelectedIndexChanged threw, leaving the component stale (multiple
tabs visually active); in SelectTabOnClient a throw left shouldRender stuck at
false, blocking all further renders. Wrap both in finally so the render state
is always restored. Addresses review feedback on commit df1dfa713.

Fixes #2558
2026-05-29 15:19:30 +03:00
Vladimir Enchev
38ea391bfc RadzenTabs: avoid re-rendering tab content on every keystroke
The keydown guard handler added for conditional ESC propagation forced a
StateHasChanged on every keypress within a tab panel, re-rendering the whole
tabs subtree. Suppress the render when the propagation flag is unchanged so
only an actual ESC toggle triggers a render.
2026-05-29 15:09:31 +03:00
Vladimir Enchev
df1dfa7133 RadzenTabs: handle JSDisconnectedException during tab selection
Wrap the JS interop calls in SelectTab, SelectTabOnClient and
OnAfterRenderAsync with try/catch (JSDisconnectedException) so a
dropping SignalR circuit no longer throws an uncaught exception and
leaves multiple tabs visually active. Matches the existing pattern
used by RadzenToc/RadzenChart.

Fixes #2558

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-29 08:33:47 +03:00
Vladimir Enchev
89403ce516 RadzenPivotDataGrid: keep footer value cells behind frozen footer cells
The pivot table also has the rz-grid-table class, so the shared
".rz-grid-table tfoot td { position: sticky; z-index: 2 }" rule makes the
scrolling footer value cells tie/beat the frozen footer header (2) and total
(1) cells, so they painted over the frozen columns while scrolling. Raise the
frozen footer cells above the value cells (z-index 4).
2026-05-28 17:01:23 +03:00
Vladimir Enchev
a9b6c35160 RadzenPivotDataGrid: optimize cell computation with single-pass column bucketing
Replace the per-cell dynamic-LINQ re-filtering with one grouping pass per row:
items are bucketed by their column leaf and each bucket is aggregated, instead of
rebuilding a parsed Where expression for every (row, column, aggregate) cell. Also
build the column header tree once, cache aggregate property type/IsNumeric, reuse
stored row items for row totals, bucket the page once for column totals, and drop
the O(C^2) IndexOf lookups during render. All pivot math still runs on the
materialized PagedView, so IQueryable/OData/LoadData support is unchanged.

Add IQueryable support tests (cell values, totals/grand total, filter, sort) plus
a test proving the source is enumerated lazily and not re-queried per cell.
2026-05-28 16:36:32 +03:00
Vladimir Enchev
21ceb99d4a Demos: fix Run crash in Edit Source and allow Monaco worker via CSP
Guard the Monaco updateOptions eval against a disposed editor so running
edited code no longer throws when the tab switch removes the editor.
Add worker-src 'self' blob: to the CSP so Monaco's web worker can load.
2026-05-28 08:35:14 +03:00
Vladimir Enchev
a3864c8f29 Version updated v10.4.6 2026-05-28 07:55:53 +03:00
Vladimir Enchev
ab6590b911 RadzenChat: render header title span only when Title or TitleContent set; fix demo badge typo 2026-05-28 07:55:49 +03:00
Marco Papst
9745c96486 Allow to use a RenderFragment as title for the RadzenChat component (#2557) 2026-05-28 07:53:36 +03:00
Vladimir Enchev
2aab69e1d5 DataGrid: keep simple filter row aligned with column when hiding via column picker 2026-05-27 19:38:50 +03:00
Vladimir Enchev
ca45314e25 Pivot tests updated 2026-05-27 19:22:06 +03:00
Vladimir Enchev
e6c8890cbf RadzenMask: render id from Name so RadzenFormField label associates correctly (#2556) 2026-05-27 18:49:03 +03:00
Vladimir Enchev
ba0ea0ec94 Version updated v10.4.5 2026-05-26 11:23:58 +03:00
Vladimir Enchev
9e544339cd code fixed 2026-05-26 10:38:33 +03:00
Vladimir Enchev
3b36dece6e PickList: fix TargetTemplate cref and add TargetTemplate to demo 2026-05-25 17:16:26 +03:00
mist475
10f9b85023 picklist: add ability to use seperate template for target and source (#2555) 2026-05-25 17:08:55 +03:00
Vladimir Enchev
44fbc814e2 DataGrid filter with composite columns error 2026-05-25 17:07:05 +03:00
Vladimir Enchev
00afc3fcd6 Stabilize AutoApplyCheckBoxListFilter test under CI load v10.4.4 2026-05-21 14:29:42 +03:00
Vladimir Enchev
fab1f6f90d Version updated 2026-05-21 14:16:38 +03:00
Vladimir Enchev
5c69646928 Simplify Count binding for CheckBoxList filter 2026-05-21 14:15:52 +03:00
Josh
fb1d0b91f3 Introduce SortComparer to RadzenDataGridColumn, for custom IComparer sort support (#2552)
* Add SortComparer parameter to RadzenDataGridColumn

* Sort DataGrid by column SortComparer for in-memory data

* Test multi-column, default-path, and missing-key SortComparer cases

* Add Custom Sort Comparer DataGrid demo

* Clarify SortComparer docs and harden demo comparer

* Document that a SortComparer column forces multi-column sort in memory
2026-05-21 11:05:51 +03:00
Josh
cff40a38bd Add FilterLookupData to RadzenDataGridColumn for lookup-driven CheckBoxList filtering (#2553) 2026-05-21 11:02:47 +03:00
Josh
891ba9bae7 Add AutoApplyCheckBoxListFilter to apply CheckBoxList filters on selection (#2554) 2026-05-21 08:14:57 +03:00
Atanas Korchev
f36700a4ab Icon font flickers when switching themes in development 2026-05-20 20:45:19 +03:00
Atanas Korchev
4f1a263756 Switching themes in quick succession flashes unstyled content 2026-05-20 20:45:19 +03:00
Vladimir Enchev
f0d57bd379 Scheduler month view trims multi-day events that start later than other events on the same day 2026-05-20 18:06:28 +03:00
Atanas Korchev
84591cba67 Fix accumulating &amp; chain in demo site theme query string
The demos panel menu built href values by concatenating navigationManager.Uri's
raw query onto each Example.Path. When an inbound URL happened to contain a
literal &amp; (from a shared link, search-engine cache, or any earlier
encoding round-trip), Razor's attribute encoder added another layer on every
render, producing /datagrid?theme=dark&amp;amp;amp;...wcag=false in the wild.

Rebuild the suffix from canonical ThemeService state via
QueryStringThemeService.GetUriWithStateQueryParameters, which goes through
NavigationManager.GetUriWithQueryParameters and produces a cleanly URL-encoded
query regardless of what the inbound URL contained. Make the helper public so
the demo can reuse it.
2026-05-18 14:26:04 +03:00
Vladimir Enchev
6d03733907 RadzenNumeric with Immediate=true moves cursor to the end while typing 2026-05-14 17:09:00 +03:00
Vladimir Enchev
585b2ed6ed Version updated v10.4.3 2026-05-14 12:18:48 +03:00
Vladimir Enchev
883faf259f DropDownDataGrid filtering not working with LoadData 2026-05-14 12:18:27 +03:00
Vladimir Enchev
f291c32a25 RadzenTextBox trims spaces when the user tries to encapsulate them within the text
Fix #2549
2026-05-14 10:11:06 +03:00
Vladimir Enchev
346a058387 Version updated v10.4.2 2026-05-13 15:36:08 +03:00
Vladimir Enchev
d170e56bcc Popup Dispose no longer crashes Blazor Server circuit 2026-05-13 15:36:06 +03:00
Vladimir Enchev
098aaed6ae Tighten LinearGauge_Range_UpdatesOnResize to assert band width changes 2026-05-12 12:10:37 +03:00
DerMave
2603a40c9d Fix RadzenLinearGaugeScaleRange not responding to gauge resize (#2547)
RadzenLinearGaugeScale.razor wrapped its child content in
<CascadingValue Value=@this IsFixed=true>. With IsFixed=true Blazor
freezes the cascading parameter at initialization and does not re-pass
it to child components on subsequent renders. As a result, when the
gauge resizes and RadzenLinearGaugeScale re-renders, Blazor sees no
changed parameters for RadzenLinearGaugeScaleRange (the Scale reference
is the same fixed object; From/To/Fill etc. are unchanged) and skips
its re-render entirely. The range band therefore keeps stale SVG
coordinates and does not respond to any page resize.

Fix: remove IsFixed=true from the CascadingValue, matching the pattern
already used by RadzenRadialGaugeScale.razor. The cascading value now
participates in the normal render cycle so child ranges re-render and
read the updated CurrentStart/CurrentEnd whenever the parent scale
re-renders.

A regression test (LinearGauge_Range_UpdatesOnResize) is added to
verify that the band coordinates change after a Resize() call.

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-12 12:05:14 +03:00
Vladimir Enchev
6165c524c5 Fix DropDownDataGrid LoadData not forwarding Sorts/Filters
The LoadData callback received only OrderBy when the user sorted or
filtered, dropping the structured Sorts and Filters collections
populated by the inner RadzenDataGrid.

Closes #2546
2026-05-12 11:56:43 +03:00
Vladimir Enchev
b1c049b2b5 Version updated v10.4.1 2026-05-11 18:20:56 +03:00