@progress/kendo-angular-buttons 17.0.0-develop.2 → 17.0.0-develop.21

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.
@@ -4,7 +4,7 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import * as i0 from '@angular/core';
6
6
  import { Injectable, EventEmitter, isDevMode, Component, Optional, Input, Output, HostBinding, HostListener, ContentChildren, Directive, InjectionToken, Inject, ElementRef, ViewContainerRef, ContentChild, ViewChild, forwardRef, NgModule } from '@angular/core';
7
- import { isDocumentAvailable, isFirefox, Keys, isSafari, isChanged, hasObservers, MultiTabStop, guid, TemplateContextDirective, isPresent as isPresent$1, EventsOutsideAngularDirective, anyChanged, ResizeBatchService } from '@progress/kendo-angular-common';
7
+ import { isDocumentAvailable, isFirefox, isSafari, isChanged, hasObservers, Keys, MultiTabStop, guid, TemplateContextDirective, isPresent as isPresent$1, EventsOutsideAngularDirective, anyChanged, ResizeBatchService } from '@progress/kendo-angular-common';
8
8
  export { ToggleButtonTabStopDirective } from '@progress/kendo-angular-common';
9
9
  import { caretAltDownIcon, xCircleIcon, moreVerticalIcon } from '@progress/kendo-svg-icons';
10
10
  import * as i1 from '@progress/kendo-angular-l10n';
@@ -12,7 +12,7 @@ import { LocalizationService, L10N_PREFIX, ComponentMessages } from '@progress/k
12
12
  import { Subject, Subscription, fromEvent, merge } from 'rxjs';
13
13
  import { validatePackage } from '@progress/kendo-licensing';
14
14
  import { IconWrapperComponent, IconsService } from '@progress/kendo-angular-icons';
15
- import { NgIf, NgClass, NgFor, NgTemplateOutlet, NgStyle } from '@angular/common';
15
+ import { NgIf, NgClass, NgStyle, NgFor, NgTemplateOutlet } from '@angular/common';
16
16
  import { filter, tap, take } from 'rxjs/operators';
17
17
  import * as i3 from '@progress/kendo-angular-popup';
18
18
  import { PopupService } from '@progress/kendo-angular-popup';
@@ -26,8 +26,8 @@ const packageMetadata = {
26
26
  name: '@progress/kendo-angular-buttons',
27
27
  productName: 'Kendo UI for Angular',
28
28
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
29
- publishDate: 1728914267,
30
- version: '17.0.0-develop.2',
29
+ publishDate: 1729874032,
30
+ version: '17.0.0-develop.21',
31
31
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
32
32
  };
33
33
 
@@ -122,6 +122,12 @@ const getThemeColorClasses = (componentType, prevFillMode, fillMode, previousVal
122
122
  toAdd: newValue !== 'none' ? `k-${componentType}-${fillMode}-${newValue}` : ''
123
123
  };
124
124
  };
125
+ /**
126
+ * @hidden
127
+ *
128
+ * Checks for an empty object - {}
129
+ */
130
+ const isObjectEmpty = (obj) => obj && Object.keys(obj).length === 0 && obj.constructor === Object;
125
131
 
126
132
  /**
127
133
  * @hidden
@@ -141,9 +147,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
141
147
  type: Injectable
142
148
  }] });
143
149
 
144
- const SPAN_TAG_NAME = 'SPAN';
145
- const BUTTON_TAG_NAME = 'BUTTON';
146
- const KENDO_BUTTON_TAG_NAME = 'KENDO-BUTTON';
147
150
  const DEFAULT_ROUNDED$3 = 'medium';
148
151
  const DEFAULT_SIZE$2 = 'medium';
149
152
  const DEFAULT_THEME_COLOR$2 = 'base';
@@ -151,9 +154,8 @@ const DEFAULT_FILL_MODE$3 = 'solid';
151
154
  /**
152
155
  * Represents the Kendo UI Button component for Angular.
153
156
  *
154
- * As of package v16, the `span[kendoButton]` and `kendo-button` selectors are deprecated and can
155
- * be removed in a future major version. We recommend using the `button[kendoButton]` selector
156
- * to avoid discrepancies between the behavior of the `ButtonComponent` and the native HTML Button element.
157
+ * As of package v17, the `span[kendoButton]` and `kendo-button` selectors are removed.
158
+ * Please use the `button[kendoButton]` selector only.
157
159
  */
158
160
  class ButtonComponent {
159
161
  constructor(element, renderer, service, localization, ngZone) {
@@ -172,10 +174,6 @@ class ButtonComponent {
172
174
  * @default false
173
175
  */
174
176
  this.toggleable = false;
175
- /**
176
- * @hidden
177
- */
178
- this.role = 'button';
179
177
  /**
180
178
  * Fires each time the selected state of a toggleable button is changed.
181
179
  *
@@ -360,10 +358,6 @@ class ButtonComponent {
360
358
  const hasIcon = this.icon || this.iconClass || this.imageUrl || this.svgIcon;
361
359
  return hasIcon && !this.hasText;
362
360
  }
363
- get roleSetter() {
364
- const isButtonElementAndRole = this.element.tagName === BUTTON_TAG_NAME && this.role === 'button';
365
- return isButtonElementAndRole ? undefined : this.role;
366
- }
367
361
  get classDisabled() {
368
362
  return this.isDisabled;
369
363
  }
@@ -414,41 +408,14 @@ class ButtonComponent {
414
408
  return this.element;
415
409
  }
416
410
  ngOnInit() {
417
- const elementTagName = this.element.tagName;
418
- const isSpanOrKendoButton = elementTagName === SPAN_TAG_NAME || elementTagName === KENDO_BUTTON_TAG_NAME;
419
411
  if (!this.element.hasAttribute('role') && this.togglable) {
420
412
  this.toggleAriaPressed(this.toggleable);
421
413
  }
422
- if (this.role) {
423
- const isButtonElementAndRole = elementTagName === BUTTON_TAG_NAME && this.role === 'button';
424
- if (!isButtonElementAndRole) {
425
- this.setAttribute('role', this.role);
426
- }
427
- }
428
- if (isSpanOrKendoButton && !this.isDisabled) {
429
- this.tabIndex = 0;
430
- }
431
- if (isDevMode() && isSpanOrKendoButton) {
432
- console.warn(`As of package v16, the "span[kendoButton]" and "kendo-button" selectors are deprecated and can
433
- be removed in a future major version. We recommend using the "button[kendoButton]" selector
434
- to avoid discrepancies between the behavior of the "ButtonComponent" and the native HTML Button element.`);
435
- }
436
414
  this.ngZone.runOutsideAngular(() => {
437
415
  this.subs.add(this.renderer.listen(this.element, 'click', this._onButtonClick.bind(this)));
438
- this.subs.add(this.renderer.listen(this.element, 'keydown', (event) => {
439
- const isSpaceOrEnter = event.keyCode === Keys.Space || event.keyCode === Keys.Enter;
440
- if (isSpanOrKendoButton && isSpaceOrEnter) {
441
- this.ngZone.run(() => {
442
- this.click.emit(event);
443
- });
444
- this._onButtonClick();
445
- }
446
- }));
447
416
  this.subs.add(this.renderer.listen(this.element, 'mousedown', (event) => {
448
- const elementTagName = this.element.tagName;
449
- const isButton = elementTagName === BUTTON_TAG_NAME;
450
417
  const isBrowserSafari = isDocumentAvailable() && isSafari(navigator.userAgent);
451
- if (!this.isDisabled && isButton && isBrowserSafari) {
418
+ if (!this.isDisabled && isBrowserSafari) {
452
419
  event.preventDefault();
453
420
  this.element.focus();
454
421
  }
@@ -577,7 +544,7 @@ class ButtonComponent {
577
544
  }
578
545
  }
579
546
  ButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ButtonComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: KendoButtonService, optional: true }, { token: i1.LocalizationService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
580
- ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ButtonComponent, isStandalone: true, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: { arrowIcon: "arrowIcon", toggleable: "toggleable", togglable: "togglable", selected: "selected", tabIndex: "tabIndex", imageUrl: "imageUrl", iconClass: "iconClass", icon: "icon", disabled: "disabled", size: "size", rounded: "rounded", fillMode: "fillMode", themeColor: "themeColor", svgIcon: "svgIcon", role: "role", primary: "primary", look: "look" }, outputs: { selectedChange: "selectedChange", click: "click" }, host: { listeners: { "focus": "onFocus()", "blur": "onBlur()" }, properties: { "class.k-button": "this.classButton", "class.k-toggle-button": "this.isToggleable", "class.k-icon-button": "this.iconButtonClass", "attr.role": "this.roleSetter", "attr.aria-disabled": "this.classDisabled", "class.k-disabled": "this.classDisabled", "class.k-selected": "this.classActive", "attr.dir": "this.getDirection" } }, providers: [
547
+ ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ButtonComponent, isStandalone: true, selector: "button[kendoButton]", inputs: { arrowIcon: "arrowIcon", toggleable: "toggleable", togglable: "togglable", selected: "selected", tabIndex: "tabIndex", imageUrl: "imageUrl", iconClass: "iconClass", icon: "icon", disabled: "disabled", size: "size", rounded: "rounded", fillMode: "fillMode", themeColor: "themeColor", svgIcon: "svgIcon", primary: "primary", look: "look" }, outputs: { selectedChange: "selectedChange", click: "click" }, host: { listeners: { "focus": "onFocus()", "blur": "onBlur()" }, properties: { "class.k-button": "this.classButton", "class.k-toggle-button": "this.isToggleable", "class.k-icon-button": "this.iconButtonClass", "attr.aria-disabled": "this.classDisabled", "class.k-disabled": "this.classDisabled", "class.k-selected": "this.classActive", "attr.dir": "this.getDirection" } }, providers: [
581
548
  LocalizationService,
582
549
  {
583
550
  provide: L10N_PREFIX,
@@ -595,11 +562,12 @@ ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", versio
595
562
  <span *ngIf="iconClass" class="k-button-icon" [ngClass]="iconClass"></span>
596
563
  <span class="k-button-text"><ng-content></ng-content></span>
597
564
  <span *ngIf="$any(arrowIcon).iconClass" class="k-button-icon" [ngClass]="$any(arrowIcon).iconClass"></span>
598
- <kendo-icon-wrapper
599
- *ngIf="arrowIcon && !$any(arrowIcon).iconClass"
600
- innerCssClass="k-button-icon"
601
- [name]="$any(arrowIcon).icon || 'caret-alt-down'"
602
- [svgIcon]="$any(arrowIcon).svgIcon || caretAltDownIcon"></kendo-icon-wrapper>
565
+ <span *ngIf="arrowIcon && !$any(arrowIcon).iconClass" class="k-button-arrow">
566
+ <kendo-icon-wrapper
567
+ [name]="$any(arrowIcon).icon || 'caret-alt-down'"
568
+ [svgIcon]="$any(arrowIcon).svgIcon || caretAltDownIcon"></kendo-icon-wrapper>
569
+ </span>
570
+
603
571
  `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
604
572
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ButtonComponent, decorators: [{
605
573
  type: Component,
@@ -612,7 +580,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
612
580
  useValue: 'kendo.button'
613
581
  }
614
582
  ],
615
- selector: 'button[kendoButton], span[kendoButton], kendo-button',
583
+ selector: 'button[kendoButton]',
616
584
  template: `
617
585
  <kendo-icon-wrapper
618
586
  *ngIf="icon || svgIcon"
@@ -625,11 +593,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
625
593
  <span *ngIf="iconClass" class="k-button-icon" [ngClass]="iconClass"></span>
626
594
  <span class="k-button-text"><ng-content></ng-content></span>
627
595
  <span *ngIf="$any(arrowIcon).iconClass" class="k-button-icon" [ngClass]="$any(arrowIcon).iconClass"></span>
628
- <kendo-icon-wrapper
629
- *ngIf="arrowIcon && !$any(arrowIcon).iconClass"
630
- innerCssClass="k-button-icon"
631
- [name]="$any(arrowIcon).icon || 'caret-alt-down'"
632
- [svgIcon]="$any(arrowIcon).svgIcon || caretAltDownIcon"></kendo-icon-wrapper>
596
+ <span *ngIf="arrowIcon && !$any(arrowIcon).iconClass" class="k-button-arrow">
597
+ <kendo-icon-wrapper
598
+ [name]="$any(arrowIcon).icon || 'caret-alt-down'"
599
+ [svgIcon]="$any(arrowIcon).svgIcon || caretAltDownIcon"></kendo-icon-wrapper>
600
+ </span>
601
+
633
602
  `,
634
603
  standalone: true,
635
604
  imports: [NgIf, IconWrapperComponent, NgClass]
@@ -666,8 +635,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
666
635
  type: Input
667
636
  }], svgIcon: [{
668
637
  type: Input
669
- }], role: [{
670
- type: Input
671
638
  }], selectedChange: [{
672
639
  type: Output
673
640
  }], click: [{
@@ -681,9 +648,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
681
648
  }], iconButtonClass: [{
682
649
  type: HostBinding,
683
650
  args: ['class.k-icon-button']
684
- }], roleSetter: [{
685
- type: HostBinding,
686
- args: ['attr.role']
687
651
  }], classDisabled: [{
688
652
  type: HostBinding,
689
653
  args: ['attr.aria-disabled']
@@ -766,6 +730,7 @@ class ButtonGroupComponent {
766
730
  this.currentTabIndex = 0;
767
731
  this.lastFocusedIndex = -1;
768
732
  this.subs = new Subscription();
733
+ this.wrapperClasses = true;
769
734
  this.role = 'group';
770
735
  this.focusHandler = () => {
771
736
  this.currentTabIndex = -1;
@@ -789,9 +754,6 @@ class ButtonGroupComponent {
789
754
  get tabIndex() {
790
755
  return this._tabIndex;
791
756
  }
792
- get wrapperClass() {
793
- return true;
794
- }
795
757
  get disabledClass() {
796
758
  return this.disabled;
797
759
  }
@@ -952,7 +914,7 @@ class ButtonGroupComponent {
952
914
  }
953
915
  }
954
916
  ButtonGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ButtonGroupComponent, deps: [{ token: KendoButtonService }, { token: i1.LocalizationService }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
955
- ButtonGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ButtonGroupComponent, isStandalone: true, selector: "kendo-buttongroup", inputs: { disabled: "disabled", selection: "selection", width: "width", tabIndex: "tabIndex", navigable: "navigable" }, outputs: { navigate: "navigate" }, host: { properties: { "class.k-button-group": "this.wrapperClass", "class.k-disabled": "this.disabledClass", "class.k-button-group-stretched": "this.stretchedClass", "attr.role": "this.role", "attr.dir": "this.dir", "attr.aria-disabled": "this.ariaDisabled", "style.width": "this.wrapperWidth", "attr.tabindex": "this.wrapperTabIndex" } }, providers: [
917
+ ButtonGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ButtonGroupComponent, isStandalone: true, selector: "kendo-buttongroup", inputs: { disabled: "disabled", selection: "selection", width: "width", tabIndex: "tabIndex", navigable: "navigable" }, outputs: { navigate: "navigate" }, host: { properties: { "class.k-button-group": "this.wrapperClasses", "class.k-disabled": "this.disabledClass", "class.k-button-group-stretched": "this.stretchedClass", "attr.role": "this.role", "attr.dir": "this.dir", "attr.aria-disabled": "this.ariaDisabled", "style.width": "this.wrapperWidth", "attr.tabindex": "this.wrapperTabIndex" } }, providers: [
956
918
  KendoButtonService,
957
919
  LocalizationService,
958
920
  {
@@ -960,7 +922,7 @@ ButtonGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
960
922
  useValue: 'kendo.buttongroup'
961
923
  }
962
924
  ], queries: [{ propertyName: "buttons", predicate: ButtonComponent }], exportAs: ["kendoButtonGroup"], usesOnChanges: true, ngImport: i0, template: `
963
- <ng-content select="[kendoButton], kendo-button"></ng-content>
925
+ <ng-content select="[kendoButton]"></ng-content>
964
926
  `, isInline: true });
965
927
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ButtonGroupComponent, decorators: [{
966
928
  type: Component,
@@ -976,7 +938,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
976
938
  ],
977
939
  selector: 'kendo-buttongroup',
978
940
  template: `
979
- <ng-content select="[kendoButton], kendo-button"></ng-content>
941
+ <ng-content select="[kendoButton]"></ng-content>
980
942
  `,
981
943
  standalone: true
982
944
  }]
@@ -998,7 +960,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
998
960
  }], buttons: [{
999
961
  type: ContentChildren,
1000
962
  args: [ButtonComponent]
1001
- }], wrapperClass: [{
963
+ }], wrapperClasses: [{
1002
964
  type: HostBinding,
1003
965
  args: ['class.k-button-group']
1004
966
  }], disabledClass: [{
@@ -1168,7 +1130,7 @@ class ChipComponent {
1168
1130
  return this._themeColor;
1169
1131
  }
1170
1132
  get hasIconClass() {
1171
- return Boolean(this.icon || this.iconClass || this.avatarClass);
1133
+ return Boolean(this.icon || this.iconClass || (this.avatarSettings && !isObjectEmpty(this.avatarSettings)));
1172
1134
  }
1173
1135
  get disabledClass() {
1174
1136
  return this.disabled;
@@ -1207,23 +1169,16 @@ class ChipComponent {
1207
1169
  * @hidden
1208
1170
  */
1209
1171
  get kendoIconClass() {
1210
- this.verifyIconSettings([this.iconClass, this.avatarClass]);
1172
+ this.verifyIconSettings([this.iconClass]);
1211
1173
  return `k-i-${this.icon}`;
1212
1174
  }
1213
1175
  /**
1214
1176
  * @hidden
1215
1177
  */
1216
1178
  get customIconClass() {
1217
- this.verifyIconSettings([this.icon, this.avatarClass]);
1179
+ this.verifyIconSettings([this.icon]);
1218
1180
  return this.iconClass;
1219
1181
  }
1220
- /**
1221
- * @hidden
1222
- */
1223
- get chipAvatarClass() {
1224
- this.verifyIconSettings([this.icon, this.iconClass]);
1225
- return this.avatarClass;
1226
- }
1227
1182
  /**
1228
1183
  * @hidden
1229
1184
  */
@@ -1336,7 +1291,7 @@ class ChipComponent {
1336
1291
  }
1337
1292
  }
1338
1293
  ChipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ChipComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
1339
- ChipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ChipComponent, isStandalone: true, selector: "kendo-chip", inputs: { label: "label", icon: "icon", svgIcon: "svgIcon", iconClass: "iconClass", avatarClass: "avatarClass", selected: "selected", removable: "removable", removeIcon: "removeIcon", removeSvgIcon: "removeSvgIcon", hasMenu: "hasMenu", menuIcon: "menuIcon", menuSvgIcon: "menuSvgIcon", disabled: "disabled", size: "size", rounded: "rounded", fillMode: "fillMode", themeColor: "themeColor" }, outputs: { remove: "remove", menuToggle: "menuToggle", contentClick: "contentClick" }, host: { properties: { "attr.tabindex": "this.tabIndex", "class.k-chip": "this.hostClass", "class.k-chip-has-icon": "this.hasIconClass", "attr.aria-disabled": "this.disabledClass", "class.k-disabled": "this.disabledClass", "class.k-selected": "this.selectedClass", "class.k-focus": "this.focusedClass", "attr.dir": "this.direction" } }, providers: [
1294
+ ChipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ChipComponent, isStandalone: true, selector: "kendo-chip", inputs: { label: "label", icon: "icon", svgIcon: "svgIcon", iconClass: "iconClass", avatarSettings: "avatarSettings", selected: "selected", removable: "removable", removeIcon: "removeIcon", removeSvgIcon: "removeSvgIcon", hasMenu: "hasMenu", menuIcon: "menuIcon", menuSvgIcon: "menuSvgIcon", disabled: "disabled", size: "size", rounded: "rounded", fillMode: "fillMode", themeColor: "themeColor" }, outputs: { remove: "remove", menuToggle: "menuToggle", contentClick: "contentClick" }, host: { properties: { "attr.tabindex": "this.tabIndex", "class.k-chip": "this.hostClass", "class.k-chip-has-icon": "this.hasIconClass", "attr.aria-disabled": "this.disabledClass", "class.k-disabled": "this.disabledClass", "class.k-selected": "this.selectedClass", "class.k-focus": "this.focusedClass", "attr.dir": "this.direction" } }, providers: [
1340
1295
  LocalizationService,
1341
1296
  {
1342
1297
  provide: L10N_PREFIX,
@@ -1355,11 +1310,19 @@ ChipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
1355
1310
  size="small"
1356
1311
  innerCssClass="k-chip-icon"
1357
1312
  [customFontClass]="customIconClass"></kendo-icon-wrapper>
1358
-
1359
1313
  <span
1360
- *ngIf="avatarClass"
1361
- class="k-chip-avatar k-avatar k-avatar-md k-avatar-solid k-avatar-solid-primary k-rounded-full">
1362
- <span class="k-avatar-image" [ngClass]="chipAvatarClass"></span>
1314
+ *ngIf="avatarSettings"
1315
+ class="k-chip-avatar k-avatar k-avatar-sm k-avatar-solid k-avatar-solid-primary k-rounded-full"
1316
+ [ngStyle]="avatarSettings.cssStyle">
1317
+ <ng-container *ngIf="avatarSettings?.imageSrc">
1318
+ <span class="k-avatar-image">
1319
+ <img src="{{ avatarSettings.imageSrc }}" [ngStyle]="avatarSettings.imageCssStyle" [attr.alt]="avatarSettings.imageAltText" />
1320
+ </span>
1321
+ </ng-container>
1322
+
1323
+ <ng-container *ngIf="avatarSettings?.initials">
1324
+ <span class="k-avatar-text" [ngStyle]="avatarSettings.initialsCssStyle">{{ avatarSettings.initials.substring(0, 2) }}</span>
1325
+ </ng-container>
1363
1326
  </span>
1364
1327
 
1365
1328
  <span class="k-chip-content">
@@ -1389,7 +1352,7 @@ ChipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
1389
1352
  [customFontClass]="removeIcon"></kendo-icon-wrapper>
1390
1353
  </span>
1391
1354
  </span>
1392
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
1355
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
1393
1356
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ChipComponent, decorators: [{
1394
1357
  type: Component,
1395
1358
  args: [{
@@ -1407,11 +1370,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1407
1370
  size="small"
1408
1371
  innerCssClass="k-chip-icon"
1409
1372
  [customFontClass]="customIconClass"></kendo-icon-wrapper>
1410
-
1411
1373
  <span
1412
- *ngIf="avatarClass"
1413
- class="k-chip-avatar k-avatar k-avatar-md k-avatar-solid k-avatar-solid-primary k-rounded-full">
1414
- <span class="k-avatar-image" [ngClass]="chipAvatarClass"></span>
1374
+ *ngIf="avatarSettings"
1375
+ class="k-chip-avatar k-avatar k-avatar-sm k-avatar-solid k-avatar-solid-primary k-rounded-full"
1376
+ [ngStyle]="avatarSettings.cssStyle">
1377
+ <ng-container *ngIf="avatarSettings?.imageSrc">
1378
+ <span class="k-avatar-image">
1379
+ <img src="{{ avatarSettings.imageSrc }}" [ngStyle]="avatarSettings.imageCssStyle" [attr.alt]="avatarSettings.imageAltText" />
1380
+ </span>
1381
+ </ng-container>
1382
+
1383
+ <ng-container *ngIf="avatarSettings?.initials">
1384
+ <span class="k-avatar-text" [ngStyle]="avatarSettings.initialsCssStyle">{{ avatarSettings.initials.substring(0, 2) }}</span>
1385
+ </ng-container>
1415
1386
  </span>
1416
1387
 
1417
1388
  <span class="k-chip-content">
@@ -1450,7 +1421,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1450
1421
  }
1451
1422
  ],
1452
1423
  standalone: true,
1453
- imports: [NgIf, IconWrapperComponent, NgClass]
1424
+ imports: [NgIf, NgStyle, IconWrapperComponent, NgClass]
1454
1425
  }]
1455
1426
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i1.LocalizationService }]; }, propDecorators: { label: [{
1456
1427
  type: Input
@@ -1460,7 +1431,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1460
1431
  type: Input
1461
1432
  }], iconClass: [{
1462
1433
  type: Input
1463
- }], avatarClass: [{
1434
+ }], avatarSettings: [{
1464
1435
  type: Input
1465
1436
  }], selected: [{
1466
1437
  type: Input
@@ -1549,7 +1520,7 @@ class ChipListComponent {
1549
1520
  this.role = 'listbox';
1550
1521
  this._size = 'medium';
1551
1522
  this.subs = new Subscription();
1552
- this._navigable = false;
1523
+ this._navigable = true;
1553
1524
  this.currentActiveIndex = 0;
1554
1525
  validatePackage(packageMetadata);
1555
1526
  this.direction = localizationService.rtl ? 'rtl' : 'ltr';
@@ -1603,10 +1574,10 @@ class ChipListComponent {
1603
1574
  }
1604
1575
  }
1605
1576
  /**
1606
- * When set to `true`, keyboard navigation is available through arrow keys and roving tabindex. Otherwise, all chips
1607
- * are part of the default tabbing sequence of the page.
1577
+ * By default, keyboard navigation is available through arrow keys and roving tabindex.
1578
+ * When set to `false`, all chips are part of the default tabbing sequence of the page.
1608
1579
  *
1609
- * @default false
1580
+ * @default true
1610
1581
  */
1611
1582
  set navigable(value) {
1612
1583
  var _a, _b;
@@ -2830,9 +2801,6 @@ class DropDownButtonComponent extends ListButton {
2830
2801
  get focused() {
2831
2802
  return this._isFocused && !this._disabled;
2832
2803
  }
2833
- get widgetClasses() {
2834
- return true;
2835
- }
2836
2804
  get dir() {
2837
2805
  return this.direction;
2838
2806
  }
@@ -2915,6 +2883,10 @@ class DropDownButtonComponent extends ListButton {
2915
2883
  this.containerService.container = this.container;
2916
2884
  this.containerService.template = this.popupTemplate;
2917
2885
  this.handleButtonAttributes(this.buttonAttributes);
2886
+ const arrowWrapper = this.button.nativeElement.querySelector('.k-button-arrow');
2887
+ if (arrowWrapper) {
2888
+ this.renderer.addClass(arrowWrapper, 'k-menu-button-arrow');
2889
+ }
2918
2890
  }
2919
2891
  /**
2920
2892
  * @hidden
@@ -2955,7 +2927,7 @@ class DropDownButtonComponent extends ListButton {
2955
2927
  }
2956
2928
  }
2957
2929
  DropDownButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DropDownButtonComponent, deps: [{ token: FocusService }, { token: NavigationService }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i3.PopupService }, { token: i0.ElementRef }, { token: i1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: PopupContainerService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
2958
- DropDownButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DropDownButtonComponent, isStandalone: true, selector: "kendo-dropdownbutton", inputs: { arrowIcon: "arrowIcon", icon: "icon", svgIcon: "svgIcon", iconClass: "iconClass", imageUrl: "imageUrl", textField: "textField", data: "data", size: "size", rounded: "rounded", fillMode: "fillMode", themeColor: "themeColor", buttonAttributes: "buttonAttributes" }, outputs: { itemClick: "itemClick", onFocus: "focus", onBlur: "blur" }, host: { listeners: { "keydown": "keydown($event)", "keyup": "keyup($event)", "mousedown": "mousedown($event)", "mouseup": "mouseup($event)" }, properties: { "class.k-focus": "this.focused", "class.k-dropdown-button": "this.widgetClasses", "attr.dir": "this.dir" } }, providers: [
2930
+ DropDownButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DropDownButtonComponent, isStandalone: true, selector: "kendo-dropdownbutton", inputs: { arrowIcon: "arrowIcon", icon: "icon", svgIcon: "svgIcon", iconClass: "iconClass", imageUrl: "imageUrl", textField: "textField", data: "data", size: "size", rounded: "rounded", fillMode: "fillMode", themeColor: "themeColor", buttonAttributes: "buttonAttributes" }, outputs: { itemClick: "itemClick", onFocus: "focus", onBlur: "blur" }, host: { listeners: { "keydown": "keydown($event)", "keyup": "keyup($event)", "mousedown": "mousedown($event)", "mouseup": "mouseup($event)" }, properties: { "class.k-focus": "this.focused", "attr.dir": "this.dir" } }, providers: [
2959
2931
  FocusService,
2960
2932
  NavigationService,
2961
2933
  NAVIGATION_SETTINGS_PROVIDER$2,
@@ -2970,6 +2942,7 @@ DropDownButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
2970
2942
  type="button"
2971
2943
  [id]="buttonId"
2972
2944
  [tabindex]="componentTabIndex"
2945
+ class="k-menu-button"
2973
2946
  [class.k-active]="active"
2974
2947
  [disabled]="disabled"
2975
2948
  [icon]="icon"
@@ -3008,7 +2981,7 @@ DropDownButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
3008
2981
  </kendo-button-list>
3009
2982
  </ng-template>
3010
2983
  <ng-container #container></ng-container>
3011
- `, isInline: true, dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ListComponent, selector: "kendo-button-list", inputs: ["data", "textField", "itemTemplate", "size"], outputs: ["onItemClick", "onItemBlur"] }] });
2984
+ `, isInline: true, dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ListComponent, selector: "kendo-button-list", inputs: ["data", "textField", "itemTemplate", "size"], outputs: ["onItemClick", "onItemBlur"] }] });
3012
2985
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DropDownButtonComponent, decorators: [{
3013
2986
  type: Component,
3014
2987
  args: [{
@@ -3030,6 +3003,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
3030
3003
  type="button"
3031
3004
  [id]="buttonId"
3032
3005
  [tabindex]="componentTabIndex"
3006
+ class="k-menu-button"
3033
3007
  [class.k-active]="active"
3034
3008
  [disabled]="disabled"
3035
3009
  [icon]="icon"
@@ -3107,9 +3081,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
3107
3081
  }], focused: [{
3108
3082
  type: HostBinding,
3109
3083
  args: ['class.k-focus']
3110
- }], widgetClasses: [{
3111
- type: HostBinding,
3112
- args: ['class.k-dropdown-button']
3113
3084
  }], dir: [{
3114
3085
  type: HostBinding,
3115
3086
  args: ['attr.dir']
@@ -5068,7 +5039,7 @@ SplitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
5068
5039
  </kendo-button-list>
5069
5040
  </ng-template>
5070
5041
  <ng-container #container></ng-container>
5071
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedSplitButtonMessagesDirective, selector: "[kendoSplitButtonLocalizedMessages]" }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ListComponent, selector: "kendo-button-list", inputs: ["data", "textField", "itemTemplate", "size"], outputs: ["onItemClick", "onItemBlur"] }] });
5042
+ `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedSplitButtonMessagesDirective, selector: "[kendoSplitButtonLocalizedMessages]" }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ListComponent, selector: "kendo-button-list", inputs: ["data", "textField", "itemTemplate", "size"], outputs: ["onItemClick", "onItemBlur"] }] });
5072
5043
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SplitButtonComponent, decorators: [{
5073
5044
  type: Component,
5074
5045
  args: [{