@progress/kendo-angular-layout 24.0.0-develop.3 → 24.0.0-develop.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12,14 +12,14 @@ import { validatePackage } from '@progress/kendo-licensing';
12
12
  import * as i1$2 from '@angular/animations';
13
13
  import { trigger, state, style, transition, animate, AUTO_STYLE } from '@angular/animations';
14
14
  import { Subject, BehaviorSubject, Subscription, of } from 'rxjs';
15
- import { chevronUpIcon, chevronDownIcon, caretAltLeftIcon, caretAltRightIcon, caretAltUpIcon, caretAltDownIcon, xIcon, checkCircleIcon, exclamationCircleIcon, chevronRightIcon } from '@progress/kendo-svg-icons';
15
+ import { chevronUpIcon, chevronDownIcon, chevronLeftIcon, chevronRightIcon, xIcon, checkCircleIcon, exclamationCircleIcon } from '@progress/kendo-svg-icons';
16
16
  import { IconWrapperComponent } from '@progress/kendo-angular-icons';
17
17
  import { NgTemplateOutlet, NgStyle, NgClass } from '@angular/common';
18
18
  import { delay, takeUntil, map, tap, filter, switchMap, take } from 'rxjs/operators';
19
- import { ProgressBarComponent } from '@progress/kendo-angular-progressbar';
19
+ import { ProgressBarComponent, ProgressBarCustomMessagesComponent } from '@progress/kendo-angular-progressbar';
20
20
  import { Draggable } from '@progress/kendo-draggable';
21
- import { ButtonComponent } from '@progress/kendo-angular-buttons';
22
21
  import { DatePipe } from '@progress/kendo-angular-intl';
22
+ import { ButtonComponent } from '@progress/kendo-angular-buttons';
23
23
 
24
24
  /**
25
25
  * @hidden
@@ -29,8 +29,8 @@ const packageMetadata = {
29
29
  productName: 'Kendo UI for Angular',
30
30
  productCode: 'KENDOUIANGULAR',
31
31
  productCodes: ['KENDOUIANGULAR'],
32
- publishDate: 1776940438,
33
- version: '24.0.0-develop.3',
32
+ publishDate: 1778841625,
33
+ version: '24.0.0-develop.31',
34
34
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
35
35
  };
36
36
 
@@ -428,7 +428,7 @@ class PanelBarItemComponent {
428
428
  return (this.hasChildItems || this.hasContent) ? !this.disabled && this.expanded : null;
429
429
  }
430
430
  get ariaSelected() {
431
- return !this.disabled && this.selected;
431
+ return !this.disabled && (this.selected || this.expanded);
432
432
  }
433
433
  get ariaDisabled() {
434
434
  return this.disabled ? true : null;
@@ -669,8 +669,8 @@ class PanelBarItemComponent {
669
669
  <div
670
670
  #contentWrapper
671
671
  [@toggle]="state"
672
- [attr.role]="'group'"
673
- [attr.aria-hidden]="!disabled && !expanded"
672
+ [attr.role]="hasChildItems ? 'group' : null"
673
+ [attr.aria-hidden]="(!disabled && !expanded) || null"
674
674
  >
675
675
  @if (hasChildItems && !items?.length) {
676
676
  <div
@@ -843,8 +843,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
843
843
  <div
844
844
  #contentWrapper
845
845
  [@toggle]="state"
846
- [attr.role]="'group'"
847
- [attr.aria-hidden]="!disabled && !expanded"
846
+ [attr.role]="hasChildItems ? 'group' : null"
847
+ [attr.aria-hidden]="(!disabled && !expanded) || null"
848
848
  >
849
849
  @if (hasChildItems && !items?.length) {
850
850
  <div
@@ -1236,7 +1236,7 @@ class PanelBarComponent {
1236
1236
  hostClasses = true;
1237
1237
  tabIndex = 0;
1238
1238
  role = 'tree';
1239
- activeDescendant = '';
1239
+ activeDescendant = null;
1240
1240
  get hostHeight() {
1241
1241
  return this.expandMode === PanelBarExpandMode.Full ? this.height : 'auto';
1242
1242
  }
@@ -1369,7 +1369,7 @@ class PanelBarComponent {
1369
1369
  onComponentBlur() {
1370
1370
  this.eventService.onBlur();
1371
1371
  this.focused = false;
1372
- this.activeDescendant = '';
1372
+ this.activeDescendant = null;
1373
1373
  }
1374
1374
  /**
1375
1375
  * @hidden
@@ -1455,7 +1455,7 @@ class PanelBarComponent {
1455
1455
  if (currentItem.selected !== selectedState || currentItem.focused !== focusedState) {
1456
1456
  currentItem.selected = selectedState;
1457
1457
  currentItem.focused = focusedState;
1458
- this.activeDescendant = focusedState ? currentItem.itemId : '';
1458
+ this.activeDescendant = focusedState ? currentItem.itemId : null;
1459
1459
  modifiedItems.push(currentItem);
1460
1460
  }
1461
1461
  });
@@ -1466,7 +1466,7 @@ class PanelBarComponent {
1466
1466
  const focusedState = currentItem === item;
1467
1467
  if (currentItem.focused !== focusedState) {
1468
1468
  currentItem.focused = focusedState;
1469
- this.activeDescendant = focusedState ? currentItem.itemId : '';
1469
+ this.activeDescendant = focusedState ? currentItem.itemId : null;
1470
1470
  modifiedItems.push(currentItem);
1471
1471
  }
1472
1472
  });
@@ -1860,11 +1860,7 @@ class SplitterService {
1860
1860
  pane.detectChanges();
1861
1861
  }
1862
1862
  }
1863
- const notCollapsed = this.panes.filter(p => !p.collapsed);
1864
- const allHaveFixedSize = notCollapsed.every(p => p.fixedSize);
1865
- notCollapsed.filter(p => p.fixedSize).forEach(pane => {
1866
- pane.forceExpand = allHaveFixedSize ? true : false;
1867
- });
1863
+ this.syncPaneExpandState();
1868
1864
  return pane.collapsible;
1869
1865
  }
1870
1866
  togglePane(keyCode, index) {
@@ -2010,6 +2006,23 @@ class SplitterService {
2010
2006
  this.containerSize = containerSize;
2011
2007
  this.rtl = direction === 'rtl';
2012
2008
  }
2009
+ syncPaneExpandState() {
2010
+ if (!this.panes) {
2011
+ return;
2012
+ }
2013
+ const notCollapsed = this.panes.filter(p => !p.collapsed);
2014
+ const someAreCollapsed = notCollapsed.length < this.panes.length;
2015
+ const allHaveFixedSize = notCollapsed.every(p => p.fixedSize);
2016
+ // A pane is flexible when it is resizable or collapsible, meaning it can absorb extra space.
2017
+ const someAreFlexible = notCollapsed.some(p => p.resizable || p.collapsible);
2018
+ notCollapsed.filter(p => p.fixedSize).forEach(pane => {
2019
+ // Force-expand only when a pane is collapsed (space needs redistribution),
2020
+ // all visible panes have a fixed size, and either no flexible pane exists
2021
+ // or this pane itself is flexible and can absorb the extra space.
2022
+ // When no pane is collapsed, sizes are balanced and no expansion is needed.
2023
+ pane.forceExpand = someAreCollapsed && allHaveFixedSize && (!someAreFlexible || pane.resizable || pane.collapsible);
2024
+ });
2025
+ }
2013
2026
  containerSize = () => { };
2014
2027
  rtl;
2015
2028
  isPercent(size) {
@@ -2151,11 +2164,7 @@ class SplitterPaneComponent {
2151
2164
  // Trigger the same forceExpand logic that tryToggle does
2152
2165
  // This ensures remaining panes expand when a pane is collapsed
2153
2166
  if (this.splitterService?.panes) {
2154
- const notCollapsed = this.splitterService.panes.filter(p => !p.collapsed);
2155
- const allHaveFixedSize = notCollapsed.every(p => p.fixedSize);
2156
- notCollapsed.filter(p => p.fixedSize).forEach(pane => {
2157
- pane.forceExpand = allHaveFixedSize;
2158
- });
2167
+ this.splitterService.syncPaneExpandState();
2159
2168
  }
2160
2169
  }
2161
2170
  }
@@ -2207,7 +2216,34 @@ class SplitterPaneComponent {
2207
2216
  /**
2208
2217
  * @hidden
2209
2218
  */
2210
- forceExpand = false;
2219
+ set forceExpand(value) {
2220
+ if (this._forceExpand === value) {
2221
+ return;
2222
+ }
2223
+ this._forceExpand = value;
2224
+ // Enforce min/max constraints during flex redistribution so panes
2225
+ // do not exceed their bounds when absorbing a collapsed pane's space.
2226
+ const sizeProp = this.orientation === 'vertical' ? 'height' : 'width';
2227
+ if (value) {
2228
+ if (this.max) {
2229
+ this.renderer.setStyle(this.nativeElement, `max-${sizeProp}`, this.max);
2230
+ }
2231
+ if (this.min) {
2232
+ this.renderer.setStyle(this.nativeElement, `min-${sizeProp}`, this.min);
2233
+ }
2234
+ }
2235
+ else {
2236
+ if (this.max) {
2237
+ this.renderer.removeStyle(this.nativeElement, `max-${sizeProp}`);
2238
+ }
2239
+ if (this.min) {
2240
+ this.renderer.removeStyle(this.nativeElement, `min-${sizeProp}`);
2241
+ }
2242
+ }
2243
+ }
2244
+ get forceExpand() {
2245
+ return this._forceExpand;
2246
+ }
2211
2247
  /**
2212
2248
  * @hidden
2213
2249
  */
@@ -2216,6 +2252,7 @@ class SplitterPaneComponent {
2216
2252
  _order;
2217
2253
  _splitterBarAttributes;
2218
2254
  _collapsed = false;
2255
+ _forceExpand = false;
2219
2256
  constructor(element, renderer, cdr, splitterService) {
2220
2257
  this.element = element;
2221
2258
  this.renderer = renderer;
@@ -2377,8 +2414,9 @@ class SplitterBarComponent {
2377
2414
  ariaLabel = 'Splitter pane';
2378
2415
  focused = false;
2379
2416
  get hostOrientation() {
2380
- return this.orientation === 'horizontal' ? 'vertical' : 'horizontal';
2417
+ return this.orientation === 'horizontal' ? 'vertical' : null;
2381
2418
  }
2419
+ ariaKeyShortcuts = 'ArrowLeft ArrowRight ArrowUp ArrowDown';
2382
2420
  get tabIndex() {
2383
2421
  return this.splitterService.isStatic(this.index) ? -1 : 0;
2384
2422
  }
@@ -2488,10 +2526,10 @@ class SplitterBarComponent {
2488
2526
  const isHorizontal = this.orientation === 'horizontal';
2489
2527
  const isRTL = this.direction === 'rtl';
2490
2528
  return classFromObject({
2491
- 'caret-alt-left': isCollapsible && isHorizontal && ((!isCollapsed && !isRTL) || (isCollapsed && isRTL)),
2492
- 'caret-alt-right': isCollapsible && isHorizontal && ((isCollapsed && !isRTL) || (!isCollapsed && isRTL)),
2493
- 'caret-alt-up': isCollapsible && !isHorizontal && !isCollapsed,
2494
- 'caret-alt-down': isCollapsible && !isHorizontal && isCollapsed
2529
+ 'chevron-left': isCollapsible && isHorizontal && ((!isCollapsed && !isRTL) || (isCollapsed && isRTL)),
2530
+ 'chevron-right': isCollapsible && isHorizontal && ((isCollapsed && !isRTL) || (!isCollapsed && isRTL)),
2531
+ 'chevron-up': isCollapsible && !isHorizontal && !isCollapsed,
2532
+ 'chevron-down': isCollapsible && !isHorizontal && isCollapsed
2495
2533
  });
2496
2534
  }
2497
2535
  previousSVGArrowClass() {
@@ -2501,16 +2539,16 @@ class SplitterBarComponent {
2501
2539
  const isHorizontal = this.orientation === 'horizontal';
2502
2540
  const isRTL = this.direction === 'rtl';
2503
2541
  if (isCollapsible && isHorizontal && ((!isCollapsed && !isRTL) || (isCollapsed && isRTL))) {
2504
- return caretAltLeftIcon;
2542
+ return chevronLeftIcon;
2505
2543
  }
2506
2544
  if (isCollapsible && isHorizontal && ((isCollapsed && !isRTL) || (!isCollapsed && isRTL))) {
2507
- return caretAltRightIcon;
2545
+ return chevronRightIcon;
2508
2546
  }
2509
2547
  if (isCollapsible && !isHorizontal && !isCollapsed) {
2510
- return caretAltUpIcon;
2548
+ return chevronUpIcon;
2511
2549
  }
2512
2550
  if (isCollapsible && !isHorizontal && isCollapsed) {
2513
- return caretAltDownIcon;
2551
+ return chevronDownIcon;
2514
2552
  }
2515
2553
  }
2516
2554
  nextArrowClass() {
@@ -2520,10 +2558,10 @@ class SplitterBarComponent {
2520
2558
  const isHorizontal = this.orientation === 'horizontal';
2521
2559
  const isRTL = this.direction === 'rtl';
2522
2560
  return classFromObject({
2523
- 'caret-alt-right': isCollapsible && isHorizontal && ((!isCollapsed && !isRTL) || (isCollapsed && isRTL)),
2524
- 'caret-alt-left': isCollapsible && isHorizontal && ((isCollapsed && !isRTL) || (!isCollapsed && isRTL)),
2525
- 'caret-alt-down': isCollapsible && !isHorizontal && !isCollapsed,
2526
- 'caret-alt-up': isCollapsible && !isHorizontal && isCollapsed
2561
+ 'chevron-right': isCollapsible && isHorizontal && ((!isCollapsed && !isRTL) || (isCollapsed && isRTL)),
2562
+ 'chevron-left': isCollapsible && isHorizontal && ((isCollapsed && !isRTL) || (!isCollapsed && isRTL)),
2563
+ 'chevron-down': isCollapsible && !isHorizontal && !isCollapsed,
2564
+ 'chevron-up': isCollapsible && !isHorizontal && isCollapsed
2527
2565
  });
2528
2566
  }
2529
2567
  nextSVGArrowClass() {
@@ -2533,16 +2571,16 @@ class SplitterBarComponent {
2533
2571
  const isHorizontal = this.orientation === 'horizontal';
2534
2572
  const isRTL = this.direction === 'rtl';
2535
2573
  if (isCollapsible && isHorizontal && ((!isCollapsed && !isRTL) || (isCollapsed && isRTL))) {
2536
- return caretAltRightIcon;
2574
+ return chevronRightIcon;
2537
2575
  }
2538
2576
  if (isCollapsible && isHorizontal && ((isCollapsed && !isRTL) || (!isCollapsed && isRTL))) {
2539
- return caretAltLeftIcon;
2577
+ return chevronLeftIcon;
2540
2578
  }
2541
2579
  if (isCollapsible && !isHorizontal && !isCollapsed) {
2542
- return caretAltDownIcon;
2580
+ return chevronDownIcon;
2543
2581
  }
2544
2582
  if (isCollapsible && !isHorizontal && isCollapsed) {
2545
- return caretAltUpIcon;
2583
+ return chevronUpIcon;
2546
2584
  }
2547
2585
  }
2548
2586
  togglePane() {
@@ -2587,7 +2625,7 @@ class SplitterBarComponent {
2587
2625
  setHTMLAttributes(attributesToRender, this.renderer, this.element.nativeElement);
2588
2626
  }
2589
2627
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: SplitterBarComponent, deps: [{ token: i1$1.DraggableDirective, host: true }, { token: i1.LocalizationService }, { token: SplitterService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
2590
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: SplitterBarComponent, isStandalone: true, selector: "kendo-splitter-bar", inputs: { orientation: "orientation", index: "index", htmlAttributes: "htmlAttributes" }, host: { properties: { "attr.role": "this.ariaRole", "attr.aria-label": "this.ariaLabel", "class.k-focus": "this.focused", "attr.aria-orientation": "this.hostOrientation", "attr.tabindex": "this.tabIndex", "class": "this.hostClasses", "style.-ms-flex-order": "this.order", "style.order": "this.order" } }, ngImport: i0, template: `
2628
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: SplitterBarComponent, isStandalone: true, selector: "kendo-splitter-bar", inputs: { orientation: "orientation", index: "index", htmlAttributes: "htmlAttributes" }, host: { properties: { "attr.role": "this.ariaRole", "attr.aria-label": "this.ariaLabel", "class.k-focus": "this.focused", "attr.aria-orientation": "this.hostOrientation", "attr.aria-keyshortcuts": "this.ariaKeyShortcuts", "attr.tabindex": "this.tabIndex", "class": "this.hostClasses", "style.-ms-flex-order": "this.order", "style.order": "this.order" } }, ngImport: i0, template: `
2591
2629
  @if (shouldShowIcon('prev')) {
2592
2630
  <div class="k-collapse-prev" (click)="togglePrevious()">
2593
2631
  <kendo-icon-wrapper
@@ -2597,7 +2635,7 @@ class SplitterBarComponent {
2597
2635
  ></kendo-icon-wrapper>
2598
2636
  </div>
2599
2637
  }
2600
- <div class="k-resize-handle"></div>
2638
+ <div class="k-resize-handle" aria-hidden="true"></div>
2601
2639
  @if (shouldShowIcon('next')) {
2602
2640
  <div class="k-collapse-next" (click)="toggleNext()">
2603
2641
  <kendo-icon-wrapper
@@ -2623,7 +2661,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
2623
2661
  ></kendo-icon-wrapper>
2624
2662
  </div>
2625
2663
  }
2626
- <div class="k-resize-handle"></div>
2664
+ <div class="k-resize-handle" aria-hidden="true"></div>
2627
2665
  @if (shouldShowIcon('next')) {
2628
2666
  <div class="k-collapse-next" (click)="toggleNext()">
2629
2667
  <kendo-icon-wrapper
@@ -2651,6 +2689,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
2651
2689
  }], hostOrientation: [{
2652
2690
  type: HostBinding,
2653
2691
  args: ['attr.aria-orientation']
2692
+ }], ariaKeyShortcuts: [{
2693
+ type: HostBinding,
2694
+ args: ['attr.aria-keyshortcuts']
2654
2695
  }], tabIndex: [{
2655
2696
  type: HostBinding,
2656
2697
  args: ['attr.tabindex']
@@ -3500,10 +3541,10 @@ const HIDDEN_CLASS = 'k-hidden';
3500
3541
  * @hidden
3501
3542
  */
3502
3543
  const DIRECTION_CLASSES = {
3503
- left: 'caret-alt-left',
3504
- right: 'caret-alt-right',
3505
- up: 'caret-alt-up',
3506
- down: 'caret-alt-down'
3544
+ left: 'chevron-left',
3545
+ right: 'chevron-right',
3546
+ up: 'chevron-up',
3547
+ down: 'chevron-down'
3507
3548
  };
3508
3549
  /**
3509
3550
  * @hidden
@@ -3725,10 +3766,10 @@ class TabStripScrollableButtonComponent {
3725
3766
  get svgIcon() {
3726
3767
  return this.scrollButtonSVGIcon;
3727
3768
  }
3728
- caretAltLeftIcon = caretAltLeftIcon;
3729
- caretAltRightIcon = caretAltRightIcon;
3730
- caretAltUpIcon = caretAltUpIcon;
3731
- caretAltDownIcon = caretAltDownIcon;
3769
+ chevronLeftIcon = chevronLeftIcon;
3770
+ chevronRightIcon = chevronRightIcon;
3771
+ chevronUpIcon = chevronUpIcon;
3772
+ chevronDownIcon = chevronDownIcon;
3732
3773
  subs = new Subscription();
3733
3774
  constructor(host, renderer, ngZone, localization) {
3734
3775
  this.host = host;
@@ -3757,16 +3798,22 @@ class TabStripScrollableButtonComponent {
3757
3798
  this.onClick.emit(buttonType);
3758
3799
  };
3759
3800
  get scrollButtonIconClass() {
3760
- const defaultPrevIcon = isTablistHorizontal(this.tabPosition) ?
3761
- !this.localization.rtl ?
3762
- DIRECTION_CLASSES.left :
3763
- DIRECTION_CLASSES.right :
3764
- DIRECTION_CLASSES.up;
3765
- const defaultNextIcon = isTablistHorizontal(this.tabPosition) ?
3766
- !this.localization.rtl ?
3767
- DIRECTION_CLASSES.right :
3768
- DIRECTION_CLASSES.left :
3769
- DIRECTION_CLASSES.down;
3801
+ const horizontal = isTablistHorizontal(this.tabPosition);
3802
+ const rtl = this.localization.rtl;
3803
+ let defaultPrevIcon;
3804
+ if (!horizontal) {
3805
+ defaultPrevIcon = DIRECTION_CLASSES.up;
3806
+ }
3807
+ else {
3808
+ defaultPrevIcon = rtl ? DIRECTION_CLASSES.right : DIRECTION_CLASSES.left;
3809
+ }
3810
+ let defaultNextIcon;
3811
+ if (!horizontal) {
3812
+ defaultNextIcon = DIRECTION_CLASSES.down;
3813
+ }
3814
+ else {
3815
+ defaultNextIcon = rtl ? DIRECTION_CLASSES.left : DIRECTION_CLASSES.right;
3816
+ }
3770
3817
  if (typeof this.scrollable === 'object') {
3771
3818
  const prevIcon = typeof this.scrollable.prevButtonIcon === 'undefined' ? defaultPrevIcon : '';
3772
3819
  const nextIcon = typeof this.scrollable.nextButtonIcon === 'undefined' ? defaultNextIcon : '';
@@ -3791,16 +3838,22 @@ class TabStripScrollableButtonComponent {
3791
3838
  }
3792
3839
  }
3793
3840
  get scrollButtonSVGIcon() {
3794
- const defaultPrevSVGIcon = isTablistHorizontal(this.tabPosition) ?
3795
- !this.localization.rtl ?
3796
- this.caretAltLeftIcon :
3797
- this.caretAltRightIcon :
3798
- this.caretAltUpIcon;
3799
- const defaultNextSVGIcon = isTablistHorizontal(this.tabPosition) ?
3800
- !this.localization.rtl ?
3801
- this.caretAltRightIcon :
3802
- this.caretAltLeftIcon :
3803
- this.caretAltDownIcon;
3841
+ const horizontal = isTablistHorizontal(this.tabPosition);
3842
+ const rtl = this.localization.rtl;
3843
+ let defaultPrevSVGIcon;
3844
+ if (!horizontal) {
3845
+ defaultPrevSVGIcon = this.chevronUpIcon;
3846
+ }
3847
+ else {
3848
+ defaultPrevSVGIcon = rtl ? this.chevronRightIcon : this.chevronLeftIcon;
3849
+ }
3850
+ let defaultNextSVGIcon;
3851
+ if (!horizontal) {
3852
+ defaultNextSVGIcon = this.chevronDownIcon;
3853
+ }
3854
+ else {
3855
+ defaultNextSVGIcon = rtl ? this.chevronLeftIcon : this.chevronRightIcon;
3856
+ }
3804
3857
  if (typeof this.scrollable === 'object') {
3805
3858
  const prevIcon = this.scrollable.prevSVGButtonIcon !== undefined ? this.scrollable.prevSVGButtonIcon : defaultPrevSVGIcon;
3806
3859
  const nextIcon = this.scrollable.nextSVGButtonIcon !== undefined ? this.scrollable.nextSVGButtonIcon : defaultNextSVGIcon;
@@ -3878,7 +3931,7 @@ class TabComponent {
3878
3931
  return this.tab.selected;
3879
3932
  }
3880
3933
  get disabledClass() {
3881
- return this.tab.disabled;
3934
+ return this.tab.disabled || null;
3882
3935
  }
3883
3936
  get focusedClass() {
3884
3937
  return this.tab.focused;
@@ -3950,7 +4003,7 @@ class TabComponent {
3950
4003
  }
3951
4004
 
3952
4005
  @if (tabClosable) {
3953
- <span class="k-remove-tab k-icon-button k-button k-button-md k-rounded-md k-button-flat-base k-button-flat"
4006
+ <span class="k-remove-tab k-icon-button k-button k-button-xs k-rounded-md k-button-flat-base k-button-flat"
3954
4007
  (click)="closeTab(index)" [title]="closeButtonTitle">
3955
4008
  <kendo-icon-wrapper
3956
4009
  [svgIcon]="closeSVGIconClass" [name]="closeIconClasses"
@@ -3982,7 +4035,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
3982
4035
  }
3983
4036
 
3984
4037
  @if (tabClosable) {
3985
- <span class="k-remove-tab k-icon-button k-button k-button-md k-rounded-md k-button-flat-base k-button-flat"
4038
+ <span class="k-remove-tab k-icon-button k-button k-button-xs k-rounded-md k-button-flat-base k-button-flat"
3986
4039
  (click)="closeTab(index)" [title]="closeButtonTitle">
3987
4040
  <kendo-icon-wrapper
3988
4041
  [svgIcon]="closeSVGIconClass" [name]="closeIconClasses"
@@ -4657,7 +4710,7 @@ class TabStripComponent {
4657
4710
  'k-tabstrip-items-justify': tabAlignment === 'justify',
4658
4711
  'k-tabstrip-items-scroll': mouseScrollEnabled
4659
4712
  }"
4660
- [attr.aria-orientation]="tabPosition === 'left' || tabPosition === 'right' ? 'vertical' : 'horizontal'"
4713
+ [attr.aria-orientation]="tabPosition === 'left' || tabPosition === 'right' ? 'vertical' : null"
4661
4714
  >
4662
4715
  @for (tab of tabs; track tab; let i = $index) {
4663
4716
  <li
@@ -4728,9 +4781,9 @@ class TabStripComponent {
4728
4781
  [tabIndex]="0"
4729
4782
  role="tabpanel"
4730
4783
  [id]="getTabPanelId(i)"
4731
- [attr.aria-hidden]="!tab.selected"
4784
+ [attr.aria-hidden]="!tab.selected || null"
4732
4785
  [attr.aria-labelledby]="getTabId(i)"
4733
- [attr.aria-disabled]="tab.disabled"
4786
+ [attr.aria-disabled]="tab.disabled || null"
4734
4787
  >
4735
4788
  <ng-template [ngTemplateOutlet]="tab.tabContent?.templateRef"></ng-template>
4736
4789
  </div>
@@ -4850,7 +4903,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
4850
4903
  'k-tabstrip-items-justify': tabAlignment === 'justify',
4851
4904
  'k-tabstrip-items-scroll': mouseScrollEnabled
4852
4905
  }"
4853
- [attr.aria-orientation]="tabPosition === 'left' || tabPosition === 'right' ? 'vertical' : 'horizontal'"
4906
+ [attr.aria-orientation]="tabPosition === 'left' || tabPosition === 'right' ? 'vertical' : null"
4854
4907
  >
4855
4908
  @for (tab of tabs; track tab; let i = $index) {
4856
4909
  <li
@@ -4921,9 +4974,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
4921
4974
  [tabIndex]="0"
4922
4975
  role="tabpanel"
4923
4976
  [id]="getTabPanelId(i)"
4924
- [attr.aria-hidden]="!tab.selected"
4977
+ [attr.aria-hidden]="!tab.selected || null"
4925
4978
  [attr.aria-labelledby]="getTabId(i)"
4926
- [attr.aria-disabled]="tab.disabled"
4979
+ [attr.aria-disabled]="tab.disabled || null"
4927
4980
  >
4928
4981
  <ng-template [ngTemplateOutlet]="tab.tabContent?.templateRef"></ng-template>
4929
4982
  </div>
@@ -5344,20 +5397,20 @@ function collapsePush(duration, width) {
5344
5397
  /**
5345
5398
  * @hidden
5346
5399
  */
5347
- function expandRTLOverlay(duration) {
5400
+ function expandRTLOverlay(duration, width) {
5348
5401
  return [
5349
- style({ transform: `translateX(100%)` }),
5350
- animate(`${duration}ms ease-in`, style({ overflow: 'hidden', transform: `translateX(0)` }))
5402
+ style({ marginRight: `-${width}px` }),
5403
+ animate(`${duration}ms ease-in`, style({ overflow: 'hidden', marginRight: `0px` }))
5351
5404
  ];
5352
5405
  }
5353
5406
  /**
5354
5407
  * @hidden
5355
5408
  */
5356
- function expandOverlay(duration, position) {
5357
- const translateDir = position !== 'end' ? `-100%` : `100%`;
5409
+ function expandOverlay(duration, width, position) {
5410
+ const marginProp = position !== 'end' ? 'marginLeft' : 'marginRight';
5358
5411
  return [
5359
- style({ transform: `translateX(${translateDir})` }),
5360
- animate(`${duration}ms ease-in`, style({ overflow: 'hidden', transform: `translateX(0)` }))
5412
+ style({ [marginProp]: `-${width}px` }),
5413
+ animate(`${duration}ms ease-in`, style({ overflow: 'hidden', [marginProp]: `0px` }))
5361
5414
  ];
5362
5415
  }
5363
5416
  /**
@@ -5372,20 +5425,20 @@ function miniCollapseOverlay(duration, width, miniWidth) {
5372
5425
  /**
5373
5426
  * @hidden
5374
5427
  */
5375
- function collapseOverlay(duration, position) {
5376
- const translateDir = position !== 'end' ? '-100%' : '100%';
5428
+ function collapseOverlay(duration, width, position) {
5429
+ const marginProp = position !== 'end' ? 'marginLeft' : 'marginRight';
5377
5430
  return [
5378
- style({ transform: `translateX(0)` }),
5379
- animate(`${duration}ms ease-in`, style({ overflow: 'hidden', transform: `translateX(${translateDir})` }))
5431
+ style({ [marginProp]: `0px` }),
5432
+ animate(`${duration}ms ease-in`, style({ overflow: 'hidden', [marginProp]: `-${width}px` }))
5380
5433
  ];
5381
5434
  }
5382
5435
  /**
5383
5436
  * @hidden
5384
5437
  */
5385
- function collapseRTLOverlay(duration) {
5438
+ function collapseRTLOverlay(duration, width) {
5386
5439
  return [
5387
- style({ transform: `translateX(0)` }),
5388
- animate(`${duration}ms ease-in`, style({ overflow: 'hidden', transform: `translateX(100%)` }))
5440
+ style({ marginRight: `0px` }),
5441
+ animate(`${duration}ms ease-in`, style({ overflow: 'hidden', marginRight: `-${width}px` }))
5389
5442
  ];
5390
5443
  }
5391
5444
  /**
@@ -5406,7 +5459,7 @@ function expandAnimation(settings) {
5406
5459
  return expandPush(duration, width);
5407
5460
  }
5408
5461
  if (!mini && mode === 'overlay') {
5409
- return rtl ? expandRTLOverlay(duration) : expandOverlay(duration, position);
5462
+ return rtl ? expandRTLOverlay(duration, width) : expandOverlay(duration, width, position);
5410
5463
  }
5411
5464
  if (mini && mode === 'overlay') {
5412
5465
  return miniExpandOverlay(duration, width, miniWidth);
@@ -5430,7 +5483,7 @@ function collapseAnimation(settings) {
5430
5483
  return collapsePush(duration, width);
5431
5484
  }
5432
5485
  if (!mini && mode === 'overlay') {
5433
- return rtl ? collapseRTLOverlay(duration) : collapseOverlay(duration, position);
5486
+ return rtl ? collapseRTLOverlay(duration, width) : collapseOverlay(duration, width, position);
5434
5487
  }
5435
5488
  if (mini && mode === 'overlay') {
5436
5489
  return miniCollapseOverlay(duration, width, miniWidth);
@@ -5776,7 +5829,7 @@ class DrawerListComponent {
5776
5829
  }
5777
5830
  }
5778
5831
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: DrawerListComponent, deps: [{ token: DrawerService }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
5779
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: DrawerListComponent, isStandalone: true, selector: "[kendoDrawerList]", inputs: { itemTemplate: "itemTemplate", mini: "mini", expanded: "expanded", view: "view" }, outputs: { select: "select", viewChange: "viewChange" }, viewQueries: [{ propertyName: "items", predicate: DrawerItemComponent, descendants: true, read: ElementRef }], ngImport: i0, template: "\n @for (v of view; track identifyItem(idx, v); let idx = $index) {\n @if (!v.item.separator) {\n <li kendoDrawerItem\n class=\"k-drawer-item {{expanded ? ' k-level-' + v.level : ''}}\"\n role=\"menuitem\"\n [viewItem]=\"v\"\n [index]=\"idx\"\n [mini]=\"mini\"\n [expanded]=\"expanded\"\n [itemTemplate]=\"itemTemplate\"\n [attr.data-kendo-drawer-index]=\"v.index\"\n [ngClass]=\"v.item.cssClass\"\n [ngStyle]=\"v.item.cssStyle\"\n [tabindex]=\"v.index === 0 ? '0' : '-1'\">\n </li>\n }\n @if (v.item.separator) {\n <li\n role=\"separator\"\n class=\"k-drawer-item k-drawer-separator\"\n [ngClass]=\"v.item.cssClass\"\n [ngStyle]=\"v.item.cssStyle\">\n &nbsp;\n </li>\n }\n }\n ", isInline: true, dependencies: [{ kind: "component", type: DrawerItemComponent, selector: "[kendoDrawerItem]", inputs: ["viewItem", "index", "itemTemplate", "mini", "expanded", "disabled", "cssClass", "cssStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
5832
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: DrawerListComponent, isStandalone: true, selector: "[kendoDrawerList]", inputs: { itemTemplate: "itemTemplate", mini: "mini", expanded: "expanded", view: "view" }, outputs: { select: "select", viewChange: "viewChange" }, viewQueries: [{ propertyName: "items", predicate: DrawerItemComponent, descendants: true, read: ElementRef }], ngImport: i0, template: "\n @for (v of view; track identifyItem(idx, v); let idx = $index) {\n @if (!v.item.separator) {\n <li kendoDrawerItem\n class=\"k-drawer-item {{expanded ? ' k-level-' + v.level : ''}}\"\n role=\"menuitem\"\n [viewItem]=\"v\"\n [index]=\"idx\"\n [mini]=\"mini\"\n [expanded]=\"expanded\"\n [itemTemplate]=\"itemTemplate\"\n [attr.data-kendo-drawer-index]=\"v.index\"\n [ngClass]=\"v.item.cssClass\"\n [ngStyle]=\"v.item.cssStyle\"\n [tabindex]=\"v.index === 0 ? '0' : '-1'\">\n </li>\n }\n @if (v.item.separator) {\n <li\n role=\"separator\"\n class=\"k-drawer-item k-drawer-separator\"\n [ngClass]=\"v.item.cssClass\"\n [ngStyle]=\"v.item.cssStyle\">\n </li>\n }\n }\n ", isInline: true, dependencies: [{ kind: "component", type: DrawerItemComponent, selector: "[kendoDrawerItem]", inputs: ["viewItem", "index", "itemTemplate", "mini", "expanded", "disabled", "cssClass", "cssStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
5780
5833
  }
5781
5834
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: DrawerListComponent, decorators: [{
5782
5835
  type: Component,
@@ -5805,7 +5858,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
5805
5858
  class="k-drawer-item k-drawer-separator"
5806
5859
  [ngClass]="v.item.cssClass"
5807
5860
  [ngStyle]="v.item.cssStyle">
5808
- &nbsp;
5809
5861
  </li>
5810
5862
  }
5811
5863
  }
@@ -5873,14 +5925,23 @@ class DrawerComponent {
5873
5925
  get endPositionClass() {
5874
5926
  return this.position === 'end';
5875
5927
  }
5876
- get overlayTransofrmStyles() {
5877
- if (this.mode === 'push') {
5878
- return;
5928
+ get overlayMarginLeft() {
5929
+ if (!this.shouldApplyOverlayMargin()) {
5930
+ return null;
5931
+ }
5932
+ if (this.rtl || this.position === 'end') {
5933
+ return null;
5934
+ }
5935
+ return `-${this.drawerWidth}px`;
5936
+ }
5937
+ get overlayMarginRight() {
5938
+ if (!this.shouldApplyOverlayMargin()) {
5939
+ return null;
5879
5940
  }
5880
- if (this.expanded || this.minimized) {
5881
- return `translateX(0px)`;
5941
+ if (!this.rtl && this.position !== 'end') {
5942
+ return null;
5882
5943
  }
5883
- return `translateX(-100%)`;
5944
+ return `-${this.drawerWidth}px`;
5884
5945
  }
5885
5946
  get flexStyles() {
5886
5947
  if (this.mode === 'overlay') {
@@ -6095,6 +6156,9 @@ class DrawerComponent {
6095
6156
  this.expanded = value;
6096
6157
  this.expandedChange.emit(value);
6097
6158
  }
6159
+ shouldApplyOverlayMargin() {
6160
+ return this.mode !== 'push' && !this.expanded && !this.minimized;
6161
+ }
6098
6162
  animate(expanded) {
6099
6163
  const settings = {
6100
6164
  mode: this.mode,
@@ -6122,7 +6186,7 @@ class DrawerComponent {
6122
6186
  return player;
6123
6187
  }
6124
6188
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: DrawerComponent, deps: [{ token: i0.ElementRef }, { token: i1$2.AnimationBuilder }, { token: i1.LocalizationService }, { token: DrawerService }], target: i0.ɵɵFactoryTarget.Component });
6125
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: DrawerComponent, isStandalone: true, selector: "kendo-drawer", inputs: { mode: "mode", position: "position", mini: "mini", expanded: "expanded", width: "width", miniWidth: "miniWidth", autoCollapse: "autoCollapse", items: "items", isItemExpanded: "isItemExpanded", animation: "animation" }, outputs: { expand: "expand", collapse: "collapse", select: "select", expandedChange: "expandedChange" }, host: { properties: { "class.k-drawer": "this.hostClasses", "class.k-drawer-start": "this.startPositionClass", "class.k-drawer-end": "this.endPositionClass", "style.transform": "this.overlayTransofrmStyles", "style.flexBasis.px": "this.flexStyles", "attr.dir": "this.direction" } }, providers: [
6189
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: DrawerComponent, isStandalone: true, selector: "kendo-drawer", inputs: { mode: "mode", position: "position", mini: "mini", expanded: "expanded", width: "width", miniWidth: "miniWidth", autoCollapse: "autoCollapse", items: "items", isItemExpanded: "isItemExpanded", animation: "animation" }, outputs: { expand: "expand", collapse: "collapse", select: "select", expandedChange: "expandedChange" }, host: { properties: { "class.k-drawer": "this.hostClasses", "class.k-drawer-start": "this.startPositionClass", "class.k-drawer-end": "this.endPositionClass", "style.marginLeft": "this.overlayMarginLeft", "style.marginRight": "this.overlayMarginRight", "style.flexBasis.px": "this.flexStyles", "attr.dir": "this.direction" } }, providers: [
6126
6190
  LocalizationService,
6127
6191
  DrawerService,
6128
6192
  {
@@ -6229,9 +6293,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
6229
6293
  }], endPositionClass: [{
6230
6294
  type: HostBinding,
6231
6295
  args: ['class.k-drawer-end']
6232
- }], overlayTransofrmStyles: [{
6296
+ }], overlayMarginLeft: [{
6233
6297
  type: HostBinding,
6234
- args: ['style.transform']
6298
+ args: ['style.marginLeft']
6299
+ }], overlayMarginRight: [{
6300
+ type: HostBinding,
6301
+ args: ['style.marginRight']
6235
6302
  }], flexStyles: [{
6236
6303
  type: HostBinding,
6237
6304
  args: ['style.flexBasis.px']
@@ -6942,6 +7009,7 @@ class StepperStepComponent {
6942
7009
  <a href='#' class='k-step-link' #stepLink
6943
7010
  [attr.tabindex]='tabIndexAttr'
6944
7011
  [attr.title]='step.label'
7012
+ [attr.aria-label]='step.label'
6945
7013
  [attr.aria-disabled]='step.disabled'
6946
7014
  [attr.aria-current]='index === current ? "step" : null'
6947
7015
  (focus)='onFocus()'
@@ -6957,7 +7025,6 @@ class StepperStepComponent {
6957
7025
  @if (showIndicator) {
6958
7026
  <span
6959
7027
  class='k-step-indicator'
6960
- aria-hidden='true'
6961
7028
  [style.transition-duration.ms]='transitionDuration'
6962
7029
  >
6963
7030
  @if (indicatorTemplate) {
@@ -7021,6 +7088,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
7021
7088
  <a href='#' class='k-step-link' #stepLink
7022
7089
  [attr.tabindex]='tabIndexAttr'
7023
7090
  [attr.title]='step.label'
7091
+ [attr.aria-label]='step.label'
7024
7092
  [attr.aria-disabled]='step.disabled'
7025
7093
  [attr.aria-current]='index === current ? "step" : null'
7026
7094
  (focus)='onFocus()'
@@ -7036,7 +7104,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
7036
7104
  @if (showIndicator) {
7037
7105
  <span
7038
7106
  class='k-step-indicator'
7039
- aria-hidden='true'
7040
7107
  [style.transition-duration.ms]='transitionDuration'
7041
7108
  >
7042
7109
  @if (indicatorTemplate) {
@@ -7637,7 +7704,7 @@ class StepperComponent {
7637
7704
  (listClick)="onListClick($event)">
7638
7705
  </ol>
7639
7706
 
7640
- @if (steps.length > 0) {
7707
+ @if (steps.length > 1) {
7641
7708
  <kendo-progressbar
7642
7709
  [attr.aria-hidden]='true'
7643
7710
  [animation]='progressAnimation'
@@ -7647,9 +7714,10 @@ class StepperComponent {
7647
7714
  [reverse]='!isHorizontal'
7648
7715
  [value]='currentStep'
7649
7716
  [ngStyle]='progressBarStyling'>
7717
+ <kendo-progressbar-messages progressBarLabel="progress"></kendo-progressbar-messages>
7650
7718
  </kendo-progressbar>
7651
7719
  }
7652
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedStepperMessagesDirective, selector: "\n [kendoStepperLocalizedMessages]\n " }, { kind: "component", type: StepperListComponent, selector: "[kendoStepperList]", inputs: ["linear", "stepType", "orientation", "currentStep", "steps", "successIcon", "successSVGIcon", "errorIcon", "errorSVGIcon", "svgIcon", "indicatorTemplate", "labelTemplate", "stepTemplate"], outputs: ["listKeydown", "listClick"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ProgressBarComponent, selector: "kendo-progressbar", inputs: ["label", "progressCssStyle", "progressCssClass", "emptyCssStyle", "emptyCssClass", "animation"], outputs: ["animationEnd"], exportAs: ["kendoProgressBar"] }] });
7720
+ `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedStepperMessagesDirective, selector: "\n [kendoStepperLocalizedMessages]\n " }, { kind: "component", type: StepperListComponent, selector: "[kendoStepperList]", inputs: ["linear", "stepType", "orientation", "currentStep", "steps", "successIcon", "successSVGIcon", "errorIcon", "errorSVGIcon", "svgIcon", "indicatorTemplate", "labelTemplate", "stepTemplate"], outputs: ["listKeydown", "listClick"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ProgressBarComponent, selector: "kendo-progressbar", inputs: ["label", "progressCssStyle", "progressCssClass", "emptyCssStyle", "emptyCssClass", "animation"], outputs: ["animationEnd"], exportAs: ["kendoProgressBar"] }, { kind: "component", type: ProgressBarCustomMessagesComponent, selector: "kendo-progressbar-messages" }] });
7653
7721
  }
7654
7722
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: StepperComponent, decorators: [{
7655
7723
  type: Component,
@@ -7692,7 +7760,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
7692
7760
  (listClick)="onListClick($event)">
7693
7761
  </ol>
7694
7762
 
7695
- @if (steps.length > 0) {
7763
+ @if (steps.length > 1) {
7696
7764
  <kendo-progressbar
7697
7765
  [attr.aria-hidden]='true'
7698
7766
  [animation]='progressAnimation'
@@ -7702,11 +7770,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
7702
7770
  [reverse]='!isHorizontal'
7703
7771
  [value]='currentStep'
7704
7772
  [ngStyle]='progressBarStyling'>
7773
+ <kendo-progressbar-messages progressBarLabel="progress"></kendo-progressbar-messages>
7705
7774
  </kendo-progressbar>
7706
7775
  }
7707
7776
  `,
7708
7777
  standalone: true,
7709
- imports: [LocalizedStepperMessagesDirective, StepperListComponent, NgStyle, ProgressBarComponent]
7778
+ imports: [LocalizedStepperMessagesDirective, StepperListComponent, NgStyle, ProgressBarComponent, ProgressBarCustomMessagesComponent]
7710
7779
  }]
7711
7780
  }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.LocalizationService }, { type: StepperService }], propDecorators: { hostClasses: [{
7712
7781
  type: HostBinding,
@@ -8058,7 +8127,7 @@ class AvatarComponent {
8058
8127
  _fillMode = undefined;
8059
8128
  _rounded = undefined;
8060
8129
  _svgIcon;
8061
- _themeColorClasses = ['k-avatar-primary', 'k-avatar-secondary', 'k-avatar-tertiary', 'k-avatar-base', 'k-avatar-info', 'k-avatar-success', 'k-avatar-warning', 'k-avatar-error', 'k-avatar-dark', 'k-avatar-light', 'k-avatar-inverse'];
8130
+ _themeColorClasses = ['k-avatar-primary', 'k-avatar-secondary', 'k-avatar-tertiary', 'k-avatar-base'];
8062
8131
  constructor(localization, renderer, element) {
8063
8132
  this.localization = localization;
8064
8133
  this.renderer = renderer;
@@ -9027,6 +9096,9 @@ class ExpansionPanelComponent {
9027
9096
  get expandedClass() {
9028
9097
  return this.expanded && !this.disabled;
9029
9098
  }
9099
+ get disabledClass() {
9100
+ return this.disabled;
9101
+ }
9030
9102
  direction;
9031
9103
  /**
9032
9104
  * @hidden
@@ -9232,7 +9304,7 @@ class ExpansionPanelComponent {
9232
9304
  this.renderer.removeClass(this.content.nativeElement, CONTENT_HIDDEN_CLASS);
9233
9305
  }
9234
9306
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ExpansionPanelComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.LocalizationService }, { token: i1$2.AnimationBuilder }], target: i0.ɵɵFactoryTarget.Component });
9235
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: ExpansionPanelComponent, isStandalone: true, selector: "kendo-expansionpanel", inputs: { title: "title", subtitle: "subtitle", disabled: "disabled", expanded: "expanded", svgExpandIcon: "svgExpandIcon", svgCollapseIcon: "svgCollapseIcon", expandIcon: "expandIcon", collapseIcon: "collapseIcon", animation: "animation" }, outputs: { expandedChange: "expandedChange", action: "action", expand: "expand", collapse: "collapse" }, host: { properties: { "class.k-expander": "this.hostClass", "class.k-expanded": "this.expandedClass", "attr.dir": "this.direction" } }, providers: [
9307
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: ExpansionPanelComponent, isStandalone: true, selector: "kendo-expansionpanel", inputs: { title: "title", subtitle: "subtitle", disabled: "disabled", expanded: "expanded", svgExpandIcon: "svgExpandIcon", svgCollapseIcon: "svgCollapseIcon", expandIcon: "expandIcon", collapseIcon: "collapseIcon", animation: "animation" }, outputs: { expandedChange: "expandedChange", action: "action", expand: "expand", collapse: "collapse" }, host: { properties: { "class.k-expander": "this.hostClass", "class.k-expanded": "this.expandedClass", "class.k-disabled": "this.disabledClass", "attr.dir": "this.direction" } }, providers: [
9236
9308
  LocalizationService,
9237
9309
  {
9238
9310
  provide: L10N_PREFIX,
@@ -9242,8 +9314,7 @@ class ExpansionPanelComponent {
9242
9314
  <div
9243
9315
  #header
9244
9316
  [class.k-expander-header]="true"
9245
- [class.k-disabled]="disabled"
9246
- [attr.aria-disabled]="disabled"
9317
+ [attr.aria-disabled]="disabled || null"
9247
9318
  [attr.aria-expanded]="expanded && !disabled"
9248
9319
  role="button"
9249
9320
  tabindex="0"
@@ -9276,7 +9347,7 @@ class ExpansionPanelComponent {
9276
9347
  </span>
9277
9348
  </div>
9278
9349
  <div #content [id]="contentWrapperId" class="k-expander-content-wrapper">
9279
- <div class="k-expander-content" [attr.aria-hidden]="!expanded">
9350
+ <div class="k-expander-content">
9280
9351
  <ng-content></ng-content>
9281
9352
  </div>
9282
9353
  </div>
@@ -9298,8 +9369,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
9298
9369
  <div
9299
9370
  #header
9300
9371
  [class.k-expander-header]="true"
9301
- [class.k-disabled]="disabled"
9302
- [attr.aria-disabled]="disabled"
9372
+ [attr.aria-disabled]="disabled || null"
9303
9373
  [attr.aria-expanded]="expanded && !disabled"
9304
9374
  role="button"
9305
9375
  tabindex="0"
@@ -9332,7 +9402,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
9332
9402
  </span>
9333
9403
  </div>
9334
9404
  <div #content [id]="contentWrapperId" class="k-expander-content-wrapper">
9335
- <div class="k-expander-content" [attr.aria-hidden]="!expanded">
9405
+ <div class="k-expander-content">
9336
9406
  <ng-content></ng-content>
9337
9407
  </div>
9338
9408
  </div>
@@ -9381,6 +9451,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
9381
9451
  }], expandedClass: [{
9382
9452
  type: HostBinding,
9383
9453
  args: ['class.k-expanded']
9454
+ }], disabledClass: [{
9455
+ type: HostBinding,
9456
+ args: ['class.k-disabled']
9384
9457
  }], direction: [{
9385
9458
  type: HostBinding,
9386
9459
  args: ['attr.dir']
@@ -10401,18 +10474,12 @@ class TileLayoutItemComponent {
10401
10474
  resizable = true;
10402
10475
  itemClass = true;
10403
10476
  hostRole = 'listitem';
10404
- get hostDropEffect() {
10405
- return this.isResizable || this.isReorderable ? 'execute' : undefined;
10406
- }
10407
10477
  get hostTabindex() {
10408
10478
  return this.isNavigable ? '0' : undefined;
10409
10479
  }
10410
10480
  get ariaKeyShortcuts() {
10411
10481
  return this.isNavigable ? 'Enter' : undefined;
10412
10482
  }
10413
- get hostGrabbed() {
10414
- return this.isResizable || this.isReorderable;
10415
- }
10416
10483
  get hostLabelledBy() {
10417
10484
  return this.title ? this.titleId : undefined;
10418
10485
  }
@@ -10538,7 +10605,7 @@ class TileLayoutItemComponent {
10538
10605
  }
10539
10606
  }
10540
10607
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: TileLayoutItemComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i1.LocalizationService }, { token: TileLayoutDraggingService }, { token: TileLayoutKeyboardNavigationService }], target: i0.ɵɵFactoryTarget.Component });
10541
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: TileLayoutItemComponent, isStandalone: true, selector: "kendo-tilelayout-item", inputs: { title: "title", rowSpan: "rowSpan", colSpan: "colSpan", order: "order", col: "col", row: "row", reorderable: "reorderable", resizable: "resizable" }, host: { properties: { "class.k-tilelayout-item": "this.itemClass", "class.k-card": "this.itemClass", "attr.role": "this.hostRole", "attr.aria-dropeffect": "this.hostDropEffect", "attr.tabindex": "this.hostTabindex", "attr.aria-keyshortcuts": "this.ariaKeyShortcuts", "attr.aria-grabbed": "this.hostGrabbed", "attr.aria-labelledby": "this.hostLabelledBy", "style.grid-column-end": "this.colEnd", "style.grid-row-end": "this.rowEnd", "style.grid-column-start": "this.colStart", "style.grid-row-start": "this.rowStart" } }, queries: [{ propertyName: "headers", predicate: TileLayoutItemHeaderComponent }], usesOnChanges: true, ngImport: i0, template: `
10608
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: TileLayoutItemComponent, isStandalone: true, selector: "kendo-tilelayout-item", inputs: { title: "title", rowSpan: "rowSpan", colSpan: "colSpan", order: "order", col: "col", row: "row", reorderable: "reorderable", resizable: "resizable" }, host: { properties: { "class.k-tilelayout-item": "this.itemClass", "class.k-card": "this.itemClass", "attr.role": "this.hostRole", "attr.tabindex": "this.hostTabindex", "attr.aria-keyshortcuts": "this.ariaKeyShortcuts", "attr.aria-labelledby": "this.hostLabelledBy", "style.grid-column-end": "this.colEnd", "style.grid-row-end": "this.rowEnd", "style.grid-column-start": "this.colStart", "style.grid-row-start": "this.rowStart" } }, queries: [{ propertyName: "headers", predicate: TileLayoutItemHeaderComponent }], usesOnChanges: true, ngImport: i0, template: `
10542
10609
  @if (title) {
10543
10610
  <kendo-tilelayout-item-header>
10544
10611
  <h5 [id]="titleId" class="k-card-title">{{ title }}</h5>
@@ -10607,18 +10674,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
10607
10674
  }], hostRole: [{
10608
10675
  type: HostBinding,
10609
10676
  args: ['attr.role']
10610
- }], hostDropEffect: [{
10611
- type: HostBinding,
10612
- args: ['attr.aria-dropeffect']
10613
10677
  }], hostTabindex: [{
10614
10678
  type: HostBinding,
10615
10679
  args: ['attr.tabindex']
10616
10680
  }], ariaKeyShortcuts: [{
10617
10681
  type: HostBinding,
10618
10682
  args: ['attr.aria-keyshortcuts']
10619
- }], hostGrabbed: [{
10620
- type: HostBinding,
10621
- args: ['attr.aria-grabbed']
10622
10683
  }], hostLabelledBy: [{
10623
10684
  type: HostBinding,
10624
10685
  args: ['attr.aria-labelledby']
@@ -11818,13 +11879,19 @@ class TimelineCardComponent {
11818
11879
  }
11819
11880
  }
11820
11881
  get role() {
11821
- return this.orientation === 'vertical' ? 'button' : 'tabpanel';
11882
+ if (this.orientation === 'vertical') {
11883
+ return 'button';
11884
+ }
11885
+ return this.event ? 'tabpanel' : null;
11886
+ }
11887
+ get ariaCardLabel() {
11888
+ return this.orientation === 'horizontal' && this.event ? this.event.subtitle : null;
11822
11889
  }
11823
11890
  get ariaLive() {
11824
11891
  return this.orientation === 'vertical' ? 'polite' : null;
11825
11892
  }
11826
11893
  get ariaExpanded() {
11827
- return this.orientation === 'vertical' ? this.expanded : null;
11894
+ return this.orientation === 'vertical' && this.collapsible ? this.expanded : null;
11828
11895
  }
11829
11896
  calloutSvgIcon = chevronRightIcon;
11830
11897
  calloutFontIcon = 'arrow-chevron-right';
@@ -11898,6 +11965,7 @@ class TimelineCardComponent {
11898
11965
  class="k-card-with-callout k-card-vertical"
11899
11966
  (click)="toggle()"
11900
11967
  [attr.role]="role"
11968
+ [attr.aria-label]="ariaCardLabel"
11901
11969
  [attr.aria-live]="ariaLive"
11902
11970
  [attr.aria-expanded]="ariaExpanded"
11903
11971
  [attr.tabindex]="tabIndex"
@@ -11926,16 +11994,13 @@ class TimelineCardComponent {
11926
11994
  <div kendoCardTitle>
11927
11995
  <span class="k-event-title">{{ event.title }}</span>
11928
11996
  @if (collapsible && orientation === 'vertical') {
11929
- <button
11930
- kendoButton
11931
- [icon]="calloutFontIcon"
11932
- [svgIcon]="calloutSvgIcon"
11933
- class="k-event-collapse"
11934
- fillMode="flat"
11935
- [attr.aria-hidden]="true"
11936
- tabindex="-1"
11937
- type="button"
11938
- ></button>
11997
+ <span class="k-event-collapse k-button k-button-flat k-button-xs k-icon-button">
11998
+ <kendo-icon-wrapper
11999
+ [name]="calloutFontIcon"
12000
+ [svgIcon]="calloutSvgIcon"
12001
+ innerCssClass="k-button-icon">
12002
+ </kendo-icon-wrapper>
12003
+ </span>
11939
12004
  }
11940
12005
  </div>
11941
12006
  }
@@ -12002,7 +12067,7 @@ class TimelineCardComponent {
12002
12067
  </div>
12003
12068
  }
12004
12069
  </kendo-card>
12005
- `, isInline: true, dependencies: [{ kind: "component", type: CardComponent, selector: "kendo-card", inputs: ["orientation", "width"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: CardHeaderComponent, selector: "kendo-card-header" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: CardTitleDirective, selector: "[kendoCardTitle]" }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: CardSubtitleDirective, selector: "[kendoCardSubtitle]" }, { kind: "component", type: CardBodyComponent, selector: "kendo-card-body" }, { kind: "directive", type: CardMediaDirective, selector: "[kendoCardMedia]" }, { kind: "component", type: CardActionsComponent, selector: "kendo-card-actions", inputs: ["orientation", "layout", "actions"], outputs: ["action"] }], animations: [
12070
+ `, isInline: true, dependencies: [{ kind: "component", type: CardComponent, selector: "kendo-card", inputs: ["orientation", "width"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: CardHeaderComponent, selector: "kendo-card-header" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: CardTitleDirective, selector: "[kendoCardTitle]" }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: CardSubtitleDirective, selector: "[kendoCardSubtitle]" }, { kind: "component", type: CardBodyComponent, selector: "kendo-card-body" }, { kind: "directive", type: CardMediaDirective, selector: "[kendoCardMedia]" }, { kind: "component", type: CardActionsComponent, selector: "kendo-card-actions", inputs: ["orientation", "layout", "actions"], outputs: ["action"] }], animations: [
12006
12071
  trigger('toggle', [
12007
12072
  state('collapsed', style({
12008
12073
  height: '0',
@@ -12050,6 +12115,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
12050
12115
  class="k-card-with-callout k-card-vertical"
12051
12116
  (click)="toggle()"
12052
12117
  [attr.role]="role"
12118
+ [attr.aria-label]="ariaCardLabel"
12053
12119
  [attr.aria-live]="ariaLive"
12054
12120
  [attr.aria-expanded]="ariaExpanded"
12055
12121
  [attr.tabindex]="tabIndex"
@@ -12078,16 +12144,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
12078
12144
  <div kendoCardTitle>
12079
12145
  <span class="k-event-title">{{ event.title }}</span>
12080
12146
  @if (collapsible && orientation === 'vertical') {
12081
- <button
12082
- kendoButton
12083
- [icon]="calloutFontIcon"
12084
- [svgIcon]="calloutSvgIcon"
12085
- class="k-event-collapse"
12086
- fillMode="flat"
12087
- [attr.aria-hidden]="true"
12088
- tabindex="-1"
12089
- type="button"
12090
- ></button>
12147
+ <span class="k-event-collapse k-button k-button-flat k-button-xs k-icon-button">
12148
+ <kendo-icon-wrapper
12149
+ [name]="calloutFontIcon"
12150
+ [svgIcon]="calloutSvgIcon"
12151
+ innerCssClass="k-button-icon">
12152
+ </kendo-icon-wrapper>
12153
+ </span>
12091
12154
  }
12092
12155
  </div>
12093
12156
  }
@@ -12156,7 +12219,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
12156
12219
  </kendo-card>
12157
12220
  `,
12158
12221
  standalone: true,
12159
- imports: [CardComponent, NgStyle, NgClass, CardHeaderComponent, NgTemplateOutlet, CardTitleDirective, ButtonComponent, CardSubtitleDirective, CardBodyComponent, CardMediaDirective, CardActionsComponent]
12222
+ imports: [CardComponent, NgStyle, NgClass, CardHeaderComponent, NgTemplateOutlet, CardTitleDirective, IconWrapperComponent, CardSubtitleDirective, CardBodyComponent, CardMediaDirective, CardActionsComponent]
12160
12223
  }]
12161
12224
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: TimelineService }, { type: i0.Renderer2 }], propDecorators: { event: [{
12162
12225
  type: Input
@@ -12249,8 +12312,8 @@ class TimelineHorizontalComponent {
12249
12312
  trackWrapWidth;
12250
12313
  scrollableTrackWidth;
12251
12314
  cardWidth;
12252
- svgLeftIcon = caretAltLeftIcon;
12253
- svgRightIcon = caretAltRightIcon;
12315
+ svgLeftIcon = chevronLeftIcon;
12316
+ svgRightIcon = chevronRightIcon;
12254
12317
  calloutStyle;
12255
12318
  animationState = 'center';
12256
12319
  translateValue = 0;
@@ -12538,9 +12601,10 @@ class TimelineHorizontalComponent {
12538
12601
  });
12539
12602
  }
12540
12603
  assignAriaLabel(cardElement, dateElement) {
12541
- const dateLabelId = `k-${guid()}`;
12542
- this.renderer.setAttribute(dateElement, 'id', dateLabelId);
12543
- this.renderer.setAttribute(cardElement, 'aria-label', dateLabelId);
12604
+ const dateSpan = dateElement.querySelector('.k-timeline-date');
12605
+ if (dateSpan) {
12606
+ this.renderer.setAttribute(cardElement, 'aria-label', dateSpan.textContent.trim());
12607
+ }
12544
12608
  }
12545
12609
  assignAriaDescribedBy(cardElement, dateElement) {
12546
12610
  const cardId = `k-${guid()}`;
@@ -12663,10 +12727,11 @@ class TimelineHorizontalComponent {
12663
12727
  <button
12664
12728
  kendoButton
12665
12729
  [svgIcon]="svgLeftIcon"
12666
- icon="caret-alt-left"
12730
+ icon="chevron-left"
12667
12731
  class="k-timeline-arrow k-timeline-arrow-left"
12668
12732
  rounded="full"
12669
12733
  [title]="previousTitle"
12734
+ [attr.aria-hidden]="true"
12670
12735
  (click)="previousClick()"
12671
12736
  [disabled]="isFirstRange"
12672
12737
  tabindex="-1"
@@ -12675,10 +12740,11 @@ class TimelineHorizontalComponent {
12675
12740
  <button
12676
12741
  kendoButton
12677
12742
  [svgIcon]="svgRightIcon"
12678
- icon="caret-alt-right"
12743
+ icon="chevron-right"
12679
12744
  class="k-timeline-arrow k-timeline-arrow-right"
12680
12745
  rounded="full"
12681
12746
  [title]="nextTitle"
12747
+ [attr.aria-hidden]="true"
12682
12748
  (click)="nextClick()"
12683
12749
  [disabled]="isLastRange"
12684
12750
  tabindex="-1"
@@ -12763,7 +12829,7 @@ class TimelineHorizontalComponent {
12763
12829
  }
12764
12830
  <kendo-resize-sensor (resize)="onResize()" [rateLimit]="10"></kendo-resize-sensor>
12765
12831
  </div>
12766
- `, isInline: true, dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: TimelineCardComponent, selector: "kendo-timeline-card", inputs: ["event", "expanded", "collapsible", "reversed", "orientation", "navigable", "tabIndex", "animationDuration", "index", "eventWidth", "eventHeight", "headerTemplate", "bodyTemplate", "actionsTemplate", "calloutStyle"], exportAs: ["kendoTimelineCard"] }, { kind: "pipe", type: DatePipe, name: "kendoDate" }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], animations: [
12832
+ `, isInline: true, dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: TimelineCardComponent, selector: "kendo-timeline-card", inputs: ["event", "expanded", "collapsible", "reversed", "orientation", "navigable", "tabIndex", "animationDuration", "index", "eventWidth", "eventHeight", "headerTemplate", "bodyTemplate", "actionsTemplate", "calloutStyle"], exportAs: ["kendoTimelineCard"] }, { kind: "pipe", type: DatePipe, name: "kendoDate" }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], animations: [
12767
12833
  trigger('trackSlide', [
12768
12834
  state('left', style({
12769
12835
  transform: `translateX({{transformValue}}%)`,
@@ -12817,10 +12883,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
12817
12883
  <button
12818
12884
  kendoButton
12819
12885
  [svgIcon]="svgLeftIcon"
12820
- icon="caret-alt-left"
12886
+ icon="chevron-left"
12821
12887
  class="k-timeline-arrow k-timeline-arrow-left"
12822
12888
  rounded="full"
12823
12889
  [title]="previousTitle"
12890
+ [attr.aria-hidden]="true"
12824
12891
  (click)="previousClick()"
12825
12892
  [disabled]="isFirstRange"
12826
12893
  tabindex="-1"
@@ -12829,10 +12896,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
12829
12896
  <button
12830
12897
  kendoButton
12831
12898
  [svgIcon]="svgRightIcon"
12832
- icon="caret-alt-right"
12899
+ icon="chevron-right"
12833
12900
  class="k-timeline-arrow k-timeline-arrow-right"
12834
12901
  rounded="full"
12835
12902
  [title]="nextTitle"
12903
+ [attr.aria-hidden]="true"
12836
12904
  (click)="nextClick()"
12837
12905
  [disabled]="isLastRange"
12838
12906
  tabindex="-1"