Hello,
Please repeat the following steps to reproduce this issue:
Expected behaviour: It's possible to navigate through the toolbar items like in step 4
Experienced behaviour: You can not navigate through the toolbar items with arrow left or arrow right.
Important: After choosing an item from the dropdown, the kendo-dropdownlist has still an tabindex="0", what is also wrong.
I observed this bug in our application but it's possible to reproduce it with your example, too.
Kind regards,
Roman
Hi Telerik,
It would be great if we can add Select All functionality as a built-in feature of the MultiSelect component. It is especially useful when working with checkboxes, e.g., https://www.telerik.com/kendo-angular-ui/components/dropdowns/multiselect/templates/#toc-rendering-item-checkboxes.
Please repeat the following steps to reproduce this critical accessibility issue:
Expected behaviour: The disabled "Undo" button is focused so that toolbar navigation with left or right arrow keys is enabled.
Experienced behaviour: The toolbar is permanently unfocusable with keyboard navigation and the element (theme selector) before the toolbar is focused. It is no longer possible to navigate to any buttons in the toolbar with Tab or Shift+Tab at this point. This happens with any toolbar button that becomes disabled after triggering such as the "outdent" button.
NOTE: The expected behaviour actually works in the jQuery Editor (https://demos.telerik.com/kendo-ui/editor/all-tools), so the Angular Editor should be fixed to match.
On the kendo editor for angular, when the toolbar controls for both background color and foreground color are present and I select a background color, the color chosen for background is shown in the swatch for both the back ground and foreground buttons even though nothing has been selected in the foreground
Our application lets the user zoom single views, not the whole page (Ctrl+mouse wheel). A view is scaled by re-declaring the Kendo theme size custom properties (spacing, font sizes, line heights, ...) on the view element, multiplied by a factor in a custom property. Everything inside the view scales correctly with the theme, including the Kendo components.
Kendo popups and dialogs, however, are appended to the application root, outside the scaled view, so they do not inherit the view's custom properties and appear unscaled. This affects the DropDownList, ComboBox and DatePicker popups, tooltips, menus and context menus, the Grid's column menu and filter popups, and dialogs opened through DialogService.
The same need arises for any styling that is scoped to a part of the page: per-area themes, density modes, or a CSS class that marks a region.
POPUP_CONTAINER only moves the popups into another container element. Placing them inside the view lets them inherit its styles, but clips them at the view's edges and puts them under its stacking context.popupSettings.popupClass and DialogSettings.cssClass work per component instance or per call. Many popups do not expose them (e.g. the Grid's internal popups, the tooltip and menu popups of other components), and a class cannot carry a value that changes at runtime, such as the zoom factor.PopupService instances (in their component or module providers), so an application-level replacement provider is never used.The suggestions we received recommend a global POPUP_CONTAINER with shared styles, or popupSettings.appendTo to render the popup inside the originating component. We evaluated both:
appendTo: 'component' (or a container inside the view) inherits the right styles, but clips the popup at every ancestor with overflow: hidden or auto (grid cells, scrollable views, windows), and puts it under the stacking context of the view.appendTo is not available for all popups, e.g. the Grid's internal popups, tooltips and menus of other components, and dialogs opened from shared libraries.We understand that an earlier request to add CSS classes based on the creating component was declined. This request is more general: it does not ask Kendo to decide which classes to add, only for a supported point where the application can adjust the created element itself.
A global, supported way to adjust the element of every popup and dialog when it is opened, for example one of:
PopupService.open() and DialogService.open() (and WindowService.open()) call with the created element and the anchor or the originating element, orIdeally the hook is also called when an open popup is repositioned, so that a changed scale can be applied without reopening it.
If such a hook is not planned, it would already help to document PopupService.open() and DialogService.open() as stable extension points, i.e. that every component opens its popups through them and that the returned references keep giving access to the created element.
We wrap PopupService.prototype.open and DialogService.prototype.open. After the original call, we read the scale factor inherited by the popup's anchor (or, for dialogs, by the focused element or the last pressed element) and set the scale class and the custom property on the returned popup or dialog element. Kendo positions the popup after the next render, so the position is computed from the scaled size.
This works, but depends on the prototypes and on what open() returns, which may change in any release. One detail we noticed: PopupSettings.anchor is declared as ElementRef, but some components pass a plain HTMLElement, so our wrapper has to handle both.
Hello Kendo UI for Angular team,
We found a memory leak in the Kendo UI for Angular DateTimePicker and would like to ask you to fix it. Every time the popup is opened and closed, the complete popup DOM (about 2,000 nodes) and one keydown listener stay in memory until the DateTimePicker itself is destroyed. We could not find an existing report on GitHub, the feedback portal or the forums.
ENVIRONMENT
- @progress/kendo-angular-dateinputs 23.4.0 (our version). The same code is in 24.2.2, in 25.3.0 and in the bundle of your online demo.
- Angular 21.2, RxJS 7.8, Chrome 153, production build.
- Default calendarType ('infinite').
STEPS TO REPRODUCE (on your online demo)
1. Open https://demos.telerik.com/kendo-angular-ui/demos/dateinputs/datetimepicker/basic_usage in Chrome.
2. Open DevTools > Performance monitor (DOM Nodes, JS event listeners), or the Memory tab.
3. Open the popup with the calendar button and close it with Escape. Repeat 8 times.
4. Collect garbage (Memory tab > "Collect garbage") and take a heap snapshot. Filter by "Detached".
ACTUAL RESULT
After forced garbage collection following each cycle:
- DOM nodes: 122 → 2,452 → 4,497 → 6,542 → 8,587 → 10,632 → 12,677 → 14,722 → 16,767 (about +2,045 per open).
- JS event listeners: 63 → 71 (+1 per open).
- The heap snapshot contains 8 detached table.k-calendar-table elements, each with its whole popup subtree, retained by an RxJS subscription teardown.
Closing with Cancel, Set or the toggle button behaves the same. In the same setup, the DatePicker and TimePicker do not grow.
EXPECTED RESULT
After the popup closes and garbage is collected, the DOM node and listener counts return to their previous level.
ROOT CAUSE
For the infinite calendar, DateTimePickerComponent.openPopup() adds a keydown subscription on the month list to the component-lifetime `subscriptions`:
if (this.calendar.type === 'infinite') {
this.subscriptions.add(fromEvent(this.calendar.monthView.list.nativeElement, 'keydown').subscribe((event) => {
...
}));
}
(fesm2022/progress-kendo-angular-dateinputs.mjs: line 16741 in 23.4.0, line 18024 in 25.3.0.)
closePopup() unsubscribes ariaActiveDescendantSubscription, but not this subscription, and `subscriptions` is only unsubscribed in ngOnDestroy(). Every open therefore adds another listener on the new calendar table, and that listener keeps the closed popup alive.
SUGGESTED FIX
Keep the subscription per popup and release it when the popup closes, for example:
private calendarKeydownSubscription: Subscription | null = null;
// openPopup()
if (this.calendar.type === 'infinite') {
this.calendarKeydownSubscription = fromEvent(this.calendar.monthView.list.nativeElement, 'keydown').subscribe((event) => {
...
});
}
// closePopup() and ngOnDestroy()
this.calendarKeydownSubscription?.unsubscribe();
this.calendarKeydownSubscription = null;
IMPACT
We use the DateTimePicker in form fields and in the filter row of a data grid, where the picker lives as long as the grid is shown. Each open adds about 2,000 detached DOM nodes, so memory keeps growing on long-lived screens (100 opens leave about 200,000 detached nodes) until the user leaves the page. Because `subscriptions` is private, we cannot release the subscription cleanly from application code. The subscription is only created for the infinite calendar, but switching to calendarType 'classic' is not an option for us because it changes the calendar experience.
REQUEST
- Please confirm the issue and fix it in an upcoming release, and let us know which version will include the fix.
- If you track it publicly (feedback portal or GitHub), please send us the link so we can follow it.
- Please let us know whether there is a supported workaround until the fix is released.
We are happy to share heap snapshots and our automated Playwright reproduction script.
Kind regards,
Kamil
Hi,
in a Treeview bound to flat data (probably does not matter), if I have 3 items, and I drop the first 2 in the last, the loading indicator is stuck.
Stackblitz repro: https://stackblitz.com/edit/angular-xiwrcwsx?file=src%2Fapp%2Fapp.component.ts
Can you please take a look at it?
Best regards,
Michael
`ZonedDate.fromLocalDate(new Date('2025-10-26T00:00:00.000Z'), TIME_ZONE_ID_EUROPE_BERLIN)`returns hour **1**, although the correct local hour is **2** (CEST, UTC+2). Berlin switches back at **2025-10-26T01:00:00Z**, not at midnight UTC. The two consecutive UTC instants `00:00Z` and `01:00Z` must both display `02:00`, with different offsets.
I tested the behavior with time zones 'Europe/Berlin' and 'Australia/Hobart'.
I tried to attach a Markdown file here, but upload failed for whatever reason. You wiil find the detailed description in the Markdown below:
Hi,
Please provide similar functionality to Material's BreakpointObserver:
https://material.angular.io/cdk/layout/api#BreakpointObserver
that will allow changing the default options of the Drawer automatically based on the screen size.
Thank you
In firefox, open the Kendo Radio Button documentation and slowly resize the window (https://www.telerik.com/kendo-angular-ui/components/inputs/radiobutton)
The radio button will kind of jiggle around and occasionally the white dot in the radio button will become off-center.

This also seems to happen in response to some material bouncy (cubic-bezier) animation transitions.
Hi,
Optimize the internal selection mechanism to enhance overall performance and prevent browser hangs when a large number of items are selected. This enhancement will significantly improve the user experience and ensure smooth functionality within the application.
Example - https://stackblitz.com/edit/angular-83jvpr?file=src%2Fapp%2Fapp.component.ts
Hi,
This will allow the developer to update the view of the Scheduler component without reloading the data.
Please provide a TimeLineMultiWeekView. It should allow the TimeLine view to display a start date from one month up to an end date in the following month. It should be similar to the available MultiWeekView.
thank you
Hi Team,
Currently, there is no designated event that is being fired when selecting an already selected item in the PanelBar component. I would like to have an event that is being fired in such a use case.
In React and jQuery, the PanelBar component seems to be firing an event in such cases:
- React: https://www.telerik.com/kendo-react-ui/components/layout/panelbar/events/
- jQuery: https://demos.telerik.com/kendo-ui/panelbar/events
Hi,
The inclusion of grouping support in the PivotGrid would be a valuable enhancement. This could potentially involve enabling drag-and-drop functionality for grouping, and it could also be integrated into the configurator for added convenience.
Hi,
At present, the DropDowns have the capability to accommodate just a single level of grouping. Enhancing this feature to support multiple levels of grouping would be highly beneficial.