@progress/kendo-angular-icons 25.0.0-develop.8 → 25.1.0-develop.1

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.
package/NOTICE.txt CHANGED
@@ -1,18 +1,18 @@
1
1
 
2
- Progress Kendo UI for Angular 2026 Updated June 2026
2
+ Progress Kendo UI for Angular 2026 Updated August 2026
3
3
 
4
4
  ----------------------------------------------------------------------------------------------------------------------------
5
5
  NOTICES REPORT
6
6
  ----------------------------------------------------------------------------------------------------------------------------
7
7
 
8
8
  Portions of the Products include certain open source and commercial third-party components listed below ("Third-Party
9
- Components"). The authors of the Third-Party Components require Progress Software Corporation ("PSC") to include
10
- the following notices and additional licensing terms as a condition of PSC's use of such Third-Party Components. You
11
- acknowledge that the authors of the Third-Party Components have no obligation to provide support to you for the Third-
12
- Party Components or the Product. You hereby undertake to comply with all licenses related to the applicable Third-Party
9
+ Components"). The authors of the Third-Party Components require Progress Software Corporation ("PSC") to include the
10
+ following notices and additional licensing terms as a condition of PSC's use of such Third-Party Components. You
11
+ acknowledge that the authors of the Third-Party Components have no obligation to provide support to you for the Third-Party
12
+ Components or the Product. You hereby undertake to comply with all licenses related to the applicable Third-Party
13
13
  Components. Notwithstanding anything to the contrary, to the extent that any of the terms and conditions of the Progress
14
- Agreement conflict, vary, or are in addition to the terms and conditions of the aforementioned third-party licenses for
15
- these technologies, such terms and conditions are offered by PSC alone and not by any other party.
14
+ Agreement conflict, vary, or are in addition to the terms and conditions of the aforementioned third-party licenses for these
15
+ technologies, such terms and conditions are offered by PSC alone and not by any other party.
16
16
 
17
17
  ----------------------------------------------------------------------------------------------------------------------------
18
18
  Report Content
@@ -25,40 +25,38 @@
25
25
 
26
26
  ----------------------------------------------------------------------------------------------------------------------------
27
27
 
28
- GENERATIVE ARTIFICIAL INTELLIGENCE INTEGRATION
29
- If the Software documentation specifies integration with some form of generative artificial intelligence (AI), then the
30
- Software will include a configuration to connect to AI. You acknowledge that a separate license or subscription access to
31
- AI governed by the terms and conditions of a license agreement from AI licensor will be required for use and access of
32
- AI capabilities integrated with the Software. You will be responsible to comply with the terms of such license agreement for
33
- a valid use of AI. You acknowledge and accept that Progress is not a party to the license agreement between You and AI
34
- licensor for AI use, and as a result Progress does not have any control over AI and its availability, and Progress
35
- disclaims any and all liabilities for any output, error, damages, loss, etc., or any other result of Your use of AI integrated
36
- with the Software.
28
+ GENERATIVE ARTIFICIAL INTELLIGENCE INTEGRATION
29
+ If the Software documentation specifies integration with some form of generative artificial intelligence (AI), then the
30
+ Software will include a configuration to connect to AI. You acknowledge that a separate license or subscription access
31
+ to AI governed by the terms and conditions of a license agreement from AI licensor will be required for use and access of
32
+ AI capabilities integrated with the Software. You will be responsible to comply with the terms of such license agreement
33
+ for a valid use of AI. You acknowledge and accept that Progress is not a party to the license agreement between You
34
+ and AI licensor for AI use, and as a result Progress does not have any control over AI and its availability, and Progress
35
+ disclaims any and all liabilities for any output, error, damages, loss, etc., or any other result of Your use of AI
36
+ integrated with the Software.
37
37
 
38
38
  ----------------------------------------------------------------------------------------------------------------------------
39
39
 
40
- NOTICE FROM PROGRESS SOFTWARE CORPORATION: Additional notices may be included in the release notes or
41
- other documentation that accompanies updates received in connection with support of the Product.
40
+ NOTICE FROM PROGRESS SOFTWARE CORPORATION: Additional notices may be included in the release notes or other
41
+ documentation that accompanies updates received in connection with support of the Product.
42
42
 
43
43
  ----------------------------------------------------------------------------------------------------------------------------
44
44
 
45
45
  TECHNOLOGIES DISTRIBUTED UNDER ORIGINAL LICENSE
46
- The Product contains the following third-party technologies licensed to PSC under licenses that require PSC to
47
- distribute the technologies to Users only under its original license terms as noted, the text of which is copied herein
48
- below.
46
+ The Product contains the following third-party technologies licensed to PSC under licenses that require PSC to distribute the
47
+ technologies to Users only under its original license terms as noted, the text of which is copied herein below.
49
48
 
50
49
  Component License
51
-
52
- caniuse-lite | 1.0.30001797 Creative Commons Attribution 4.0
50
+ caniuse-lite | 1.0.30001806 Creative Commons Attribution 4.0
53
51
 
54
52
  ----------------------------------------------------------------------------------------------------------------------------
55
53
 
56
- Components:
54
+ Components:
57
55
 
58
56
  | -------------------------------------- | ------------------------------------- | ---------------------------------------- |
59
57
  | Component | Origin | License |
60
58
  | -------------------------------------- | ------------------------------------- | ---------------------------------------- |
61
- | caniuse-lite 1.0.30001797 | https://github.com/ben-eb/caniuse-lit | Creative Commons Attribution 4.0 |
59
+ | caniuse-lite 1.0.30001806 | https://github.com/ben-eb/caniuse-lit | Creative Commons Attribution 4.0 |
62
60
  | | e | |
63
61
  | jszip 3.10.1 | https://github.com/Stuk/jszip | MIT License |
64
62
  | Microsofttslib 1.14.1 | http://github.com/Microsoft/tslib/ | BSD Zero Clause License |
@@ -66,12 +64,14 @@ Components:
66
64
  | node-semver 7.7.1 | https://github.com/npm/node-semver | ISC License |
67
65
  | nodeca/pako 1.0.11 | https://github.com/nodeca/pako | MIT License |
68
66
  | orderedmap 2.1.1 | https://github.com/marijnh/orderedmap | MIT License |
69
- | pdfjs-dist-for-node 5.6.205 | http://mozilla.github.io/pdf.js/ | Apache License 2.0 |
67
+ | pdfjs-dist-for-node 5.5.207 | http://mozilla.github.io/pdf.js/ | Apache License 2.0 |
68
+ | @progress/kendo-svg-icons 5.4.0 | https://github.com/telerik/kendo-icon | Apache License 2.0 |
69
+ | | s#readme | |
70
70
  | prosemirror-commands 1.7.1 | https://github.com/prosemirror/prosem | MIT License |
71
71
  | | irror-commands#readme | |
72
72
  | prosemirror-dropcursor 1.8.2 | https://github.com/prosemirror/prosem | MIT License |
73
73
  | | irror-dropcursor#readme | |
74
- | prosemirror-gapcursor 1.4.0 | https://github.com/prosemirror/prosem | MIT License |
74
+ | prosemirror-gapcursor 1.4.1 | https://github.com/prosemirror/prosem | MIT License |
75
75
  | | irror-gapcursor#readme | |
76
76
  | prosemirror-history 1.5.0 | https://github.com/prosemirror/prosem | MIT License |
77
77
  | | irror-history#readme | |
@@ -79,7 +79,7 @@ Components:
79
79
  | | irror-inputrules#readme | |
80
80
  | prosemirror-keymap 1.2.3 | https://github.com/prosemirror/prosem | MIT License |
81
81
  | | irror-keymap#readme | |
82
- | prosemirror-model 1.25.4 | https://github.com/prosemirror/prosem | MIT License |
82
+ | prosemirror-model 1.25.9 | https://github.com/prosemirror/prosem | MIT License |
83
83
  | | irror-model#readme | |
84
84
  | prosemirror-schema-list 1.5.1 | https://github.com/prosemirror/prosem | MIT License |
85
85
  | | irror-schema-list#readme | |
@@ -87,16 +87,14 @@ Components:
87
87
  | | irror-state#readme | |
88
88
  | prosemirror-tables 1.8.5 | https://github.com/prosemirror/prosem | MIT License |
89
89
  | | irror-tables#readme | |
90
- | prosemirror-transform 1.10.5 | https://github.com/prosemirror/prosem | MIT License |
90
+ | prosemirror-transform 1.12.0 | https://github.com/prosemirror/prosem | MIT License |
91
91
  | | irror-transform#readme | |
92
- | prosemirror-view 1.41.4 | https://github.com/prosemirror/prosem | MIT License |
92
+ | prosemirror-view 1.42.0 | https://github.com/prosemirror/prosem | MIT License |
93
93
  | | irror-view#readme | |
94
94
  | rope-sequence 1.3.4 | https://github.com/marijnh/rope-seque | MIT License |
95
95
  | | nce#readme | |
96
96
  | w3c-keyname 2.2.8 | https://github.com/marijnh/w3c-keynam | MIT License |
97
97
  | | e#readme | |
98
- | @progress/kendo-svg-icons 4.9.2 | https://github.com/telerik/kendo-icon | Apache License 2.0 |
99
- | | s#readme | |
100
98
  | -------------------------------------- | ------------------------------------- | ---------------------------------------- |
101
99
 
102
100
  -------------------------------------------------------------------------------------------------------------------------
@@ -104,7 +102,8 @@ License Data and Text:
104
102
  -------------------------------------------------------------------------------------------------------------------------
105
103
 
106
104
  Apache License 2.0
107
- (@progress/kendo-svg-icons 4.9.2, pdfjs-dist-for-node 5.6.205)
105
+ (@progress/kendo-svg-icons 5.4.0, pdfjs-dist-for-node 5.5.207)
106
+
108
107
  Apache License
109
108
  Version 2.0, January 2004
110
109
  =========================
@@ -372,7 +371,7 @@ THIS SOFTWARE.
372
371
  ---
373
372
 
374
373
  Creative Commons Attribution 4.0
375
- (caniuse-lite 1.0.30001797)
374
+ (caniuse-lite 1.0.30001806)
376
375
 
377
376
  Creative Commons Attribution 4.0
378
377
  ================================
@@ -13,6 +13,7 @@ exports.writeInstructionMarker = writeInstructionMarker;
13
13
  exports.isApiChangeTarget = isApiChangeTarget;
14
14
  exports.isRenderingChangeTarget = isRenderingChangeTarget;
15
15
  exports.executeCodemodTest = executeCodemodTest;
16
+ exports.removeAttributeFromDirectiveHost = removeAttributeFromDirectiveHost;
16
17
  const tslib_1 = require("tslib");
17
18
  /// <reference types="node" />
18
19
  const fs = tslib_1.__importStar(require("fs"));
@@ -1486,3 +1487,17 @@ function executeCodemodTest(codemod, testDir, exampleFileName = 'example.ts', ex
1486
1487
  catch { }
1487
1488
  }
1488
1489
  }
1490
+ function removeAttributeFromDirectiveHost(templateContent, directiveAttr, attrToRemove) {
1491
+ const escapedDirective = directiveAttr.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
1492
+ const escapedAttr = attrToRemove.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
1493
+ const boundPattern = new RegExp(`(<[a-zA-Z][a-zA-Z0-9-]*[^>]*${escapedDirective}[^>]*?)\\s+\\[${escapedAttr}\\]\\s*=\\s*("(?:[^"\\\\]|\\\\.)*?"|'(?:[^'\\\\]|\\\\.)*?'|[^\\s>]+)([^>]*?>)`, 'gi');
1494
+ const staticPattern = new RegExp(`(<[a-zA-Z][a-zA-Z0-9-]*[^>]*${escapedDirective}[^>]*?)\\s+${escapedAttr}\\s*=\\s*("(?:[^"\\\\]|\\\\.)*?"|'(?:[^'\\\\]|\\\\.)*?'|[^\\s>]+)([^>]*?>)`, 'gi');
1495
+ // Also match when the attribute appears before the directive
1496
+ const boundPatternBefore = new RegExp(`(<[a-zA-Z][a-zA-Z0-9-]*[^>]*?)\\s+\\[${escapedAttr}\\]\\s*=\\s*("(?:[^"\\\\]|\\\\.)*?"|'(?:[^'\\\\]|\\\\.)*?'|[^\\s>]+)([^>]*${escapedDirective}[^>]*?>)`, 'gi');
1497
+ const staticPatternBefore = new RegExp(`(<[a-zA-Z][a-zA-Z0-9-]*[^>]*?)\\s+${escapedAttr}\\s*=\\s*("(?:[^"\\\\]|\\\\.)*?"|'(?:[^'\\\\]|\\\\.)*?'|[^\\s>]+)([^>]*${escapedDirective}[^>]*?>)`, 'gi');
1498
+ let result = templateContent.replace(boundPattern, '$1$3');
1499
+ result = result.replace(staticPattern, '$1$3');
1500
+ result = result.replace(boundPatternBefore, '$1$3');
1501
+ result = result.replace(staticPatternBefore, '$1$3');
1502
+ return result;
1503
+ }
@@ -4,7 +4,7 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import * as i0 from '@angular/core';
6
6
  import { Input, HostBinding, Directive, signal, ChangeDetectionStrategy, Component, computed, isDevMode, Injectable, InjectionToken, Optional, Inject, NgModule } from '@angular/core';
7
- import { isDocumentAvailable, areObjectsEqual } from '@progress/kendo-angular-common';
7
+ import { isDocumentAvailable, areObjectsEqual, KENDO_COMPONENT_NAME } from '@progress/kendo-angular-common';
8
8
  import { validatePackage } from '@progress/kendo-licensing';
9
9
  import * as i1_1 from '@angular/platform-browser';
10
10
  import { Subject, BehaviorSubject, Subscription } from 'rxjs';
@@ -19,8 +19,8 @@ const packageMetadata = {
19
19
  productName: 'Kendo UI for Angular',
20
20
  productCode: 'KENDOUIANGULAR',
21
21
  productCodes: ['KENDOUIANGULAR'],
22
- publishDate: 1784795712,
23
- version: '25.0.0-develop.8',
22
+ publishDate: 1786626580,
23
+ version: '25.1.0-develop.1',
24
24
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
25
25
  };
26
26
 
@@ -50,6 +50,24 @@ class IconBaseDirective {
50
50
  * Flips the icon horizontally, vertically, or in both directions.
51
51
  */
52
52
  flip;
53
+ /**
54
+ * Rotates the icon by `45`-degree steps.
55
+ */
56
+ set rotate(rotate) {
57
+ const element = this.element.nativeElement;
58
+ const currentClass = this.rotateClass(this._rotate);
59
+ const nextClass = this.rotateClass(rotate);
60
+ if (currentClass) {
61
+ this.renderer.removeClass(element, currentClass);
62
+ }
63
+ if (nextClass) {
64
+ this.renderer.addClass(element, nextClass);
65
+ }
66
+ this._rotate = rotate;
67
+ }
68
+ get rotate() {
69
+ return this._rotate;
70
+ }
53
71
  /**
54
72
  * Sets the `IconThemeColor` for the icon. Use this property to apply a theme color.
55
73
  */
@@ -86,15 +104,19 @@ class IconBaseDirective {
86
104
  }
87
105
  _themeColor;
88
106
  _size;
107
+ _rotate;
89
108
  constructor(element, renderer) {
90
109
  this.element = element;
91
110
  this.renderer = renderer;
92
111
  validatePackage(packageMetadata);
93
112
  }
94
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconBaseDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
95
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: IconBaseDirective, isStandalone: true, selector: "[kendoIconBase]", inputs: { flip: "flip", themeColor: "themeColor", size: "size" }, host: { properties: { "class.k-flip-h": "this.horizontalFlip", "class.k-flip-v": "this.verticalFlip" } }, ngImport: i0 });
113
+ rotateClass(rotate) {
114
+ return rotate === undefined || rotate === null ? undefined : `k-rotate-${rotate}`;
115
+ }
116
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconBaseDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
117
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: IconBaseDirective, isStandalone: true, selector: "[kendoIconBase]", inputs: { flip: "flip", rotate: "rotate", themeColor: "themeColor", size: "size" }, host: { properties: { "class.k-flip-h": "this.horizontalFlip", "class.k-flip-v": "this.verticalFlip" } }, ngImport: i0 });
96
118
  }
97
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconBaseDirective, decorators: [{
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconBaseDirective, decorators: [{
98
120
  type: Directive,
99
121
  args: [{
100
122
  selector: '[kendoIconBase]'
@@ -107,6 +129,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
107
129
  args: ['class.k-flip-v']
108
130
  }], flip: [{
109
131
  type: Input
132
+ }], rotate: [{
133
+ type: Input
110
134
  }], themeColor: [{
111
135
  type: Input
112
136
  }], size: [{
@@ -150,10 +174,10 @@ class IconComponent extends IconBaseDirective {
150
174
  this.element = element;
151
175
  this.renderer = renderer;
152
176
  }
153
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
154
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: IconComponent, isStandalone: true, selector: "kendo-icon", inputs: { name: "name" }, host: { properties: { "class.k-icon": "this.hostClass", "class.k-font-icon": "this.hostClass", "attr.aria-hidden": "this.hostAriaHidden" } }, exportAs: ["kendoIcon"], usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
177
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
178
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.27", type: IconComponent, isStandalone: true, selector: "kendo-icon", inputs: { name: "name" }, host: { properties: { "class.k-icon": "this.hostClass", "class.k-font-icon": "this.hostClass", "attr.aria-hidden": "this.hostAriaHidden" } }, exportAs: ["kendoIcon"], usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
155
179
  }
156
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconComponent, decorators: [{
180
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconComponent, decorators: [{
157
181
  type: Component,
158
182
  args: [{
159
183
  selector: 'kendo-icon',
@@ -203,6 +227,12 @@ class SVGIconComponent extends IconBaseDirective {
203
227
  element;
204
228
  renderer;
205
229
  hostClass = true;
230
+ get outlineVariantClass() {
231
+ return this.variant === 'outline';
232
+ }
233
+ get duotoneVariantClass() {
234
+ return this.variant === 'duotone';
235
+ }
206
236
  hostAriaHidden = true;
207
237
  /**
208
238
  * Sets the `SVGIcon` to render. Supports all [Kendo UI SVG Icons](https://www.telerik.com/kendo-angular-ui/components/icons/svgicon/svgicon-list).
@@ -275,15 +305,15 @@ class SVGIconComponent extends IconBaseDirective {
275
305
  `);
276
306
  }
277
307
  }
278
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SVGIconComponent, deps: [{ token: i1_1.DomSanitizer }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
279
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: SVGIconComponent, isStandalone: true, selector: "kendo-svg-icon, kendo-svgicon", inputs: { icon: "icon", variant: "variant" }, host: { properties: { "class.k-svg-icon": "this.hostClass", "class.k-icon": "this.hostClass", "attr.aria-hidden": "this.hostAriaHidden" } }, exportAs: ["kendoSVGIcon"], usesInheritance: true, ngImport: i0, template: `
308
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: SVGIconComponent, deps: [{ token: i1_1.DomSanitizer }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
309
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.27", type: SVGIconComponent, isStandalone: true, selector: "kendo-svg-icon, kendo-svgicon", inputs: { icon: "icon", variant: "variant" }, host: { properties: { "class.k-svg-icon": "this.hostClass", "class.k-icon": "this.hostClass", "class.k-svg-icon-outline": "this.outlineVariantClass", "class.k-svg-icon-duotone": "this.duotoneVariantClass", "attr.aria-hidden": "this.hostAriaHidden" } }, exportAs: ["kendoSVGIcon"], usesInheritance: true, ngImport: i0, template: `
280
310
  @if (visible) {
281
311
  <svg [style.pointerEvents]="'none'" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
282
312
  [attr.viewBox]="icon.viewBox" [innerHTML]="content" aria-hidden="true">
283
313
  </svg>
284
314
  }`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
285
315
  }
286
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SVGIconComponent, decorators: [{
316
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: SVGIconComponent, decorators: [{
287
317
  type: Component,
288
318
  args: [{
289
319
  exportAs: 'kendoSVGIcon',
@@ -304,6 +334,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
304
334
  }, {
305
335
  type: HostBinding,
306
336
  args: ['class.k-icon']
337
+ }], outlineVariantClass: [{
338
+ type: HostBinding,
339
+ args: ['class.k-svg-icon-outline']
340
+ }], duotoneVariantClass: [{
341
+ type: HostBinding,
342
+ args: ['class.k-svg-icon-duotone']
307
343
  }], hostAriaHidden: [{
308
344
  type: HostBinding,
309
345
  args: ['attr.aria-hidden']
@@ -349,25 +385,27 @@ class IconSettingsService {
349
385
  /**
350
386
  * Returns the [`SVGIcon`](https://www.telerik.com/kendo-angular-ui/components/icons/api/svgicon) object for the provided key.
351
387
  * Override in a custom service to provide custom SVG icons.
388
+ * The optional `_component` parameter carries the host component identity (e.g. `'dateinput'`, `'grid'`)
389
+ * so subclasses can return different icons for the same name depending on the requesting component.
352
390
  *
353
- * @hidden
354
391
  */
355
- getSvgIcon(_name) {
392
+ getSvgIcon(_name, _component) {
356
393
  return null;
357
394
  }
358
395
  /**
359
396
  * Returns the list of classes to be rendered on the host `SPAN` element of custom font icons.
360
397
  * Override in a custom service to provide classes for custom font icons.
398
+ * The optional `_component` parameter carries the host component identity so subclasses can
399
+ * return different classes for the same key depending on the requesting component.
361
400
  *
362
- * @hidden
363
401
  */
364
- getCustomFontIconClass(_key) {
402
+ getCustomFontIconClass(_key, _component) {
365
403
  return null;
366
404
  }
367
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconSettingsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
368
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconSettingsService });
405
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconSettingsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
406
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconSettingsService });
369
407
  }
370
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconSettingsService, decorators: [{
408
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconSettingsService, decorators: [{
371
409
  type: Injectable
372
410
  }] });
373
411
 
@@ -439,25 +477,45 @@ class IconsService {
439
477
  /**
440
478
  * Returns the [`SVGIcon`](https://www.telerik.com/kendo-angular-ui/components/icons/api/svgicon) object for the provided key.
441
479
  * Override in a custom service to provide custom SVG icons.
480
+ * Walks the `componentChain` outermost-first so the closest explicitly configured ancestor wins,
481
+ * falling back to a global (no component) lookup when no level in the chain matches.
442
482
  * @hidden
443
483
  */
444
- getSvgIcon(name) {
445
- const customIcon = this.iconSettingsService && this.iconSettingsService.getSvgIcon(name);
446
- return customIcon;
484
+ getSvgIcon(name, componentChain) {
485
+ if (!this.iconSettingsService) {
486
+ return null;
487
+ }
488
+ for (const component of componentChain ?? []) {
489
+ const scoped = this.iconSettingsService.getSvgIcon(name, component.toLowerCase());
490
+ if (scoped) {
491
+ return scoped;
492
+ }
493
+ }
494
+ return this.iconSettingsService.getSvgIcon(name);
447
495
  }
448
496
  /**
449
497
  * Returns the list of classes to be rendered on the host `SPAN` element of custom font icons.
450
498
  * Override in a custom service to provide classes for custom font icons.
499
+ * Walks the `componentChain` outermost-first so the closest explicitly configured ancestor wins,
500
+ * falling back to a global (no component) lookup when no level in the chain matches.
451
501
  * @hidden
452
502
  */
453
- getCustomFontIconClass(key) {
454
- const customClass = this.iconSettingsService && this.iconSettingsService.getCustomFontIconClass(key);
455
- return customClass;
503
+ getCustomFontIconClass(key, componentChain) {
504
+ if (!this.iconSettingsService) {
505
+ return null;
506
+ }
507
+ for (const component of componentChain ?? []) {
508
+ const scoped = this.iconSettingsService.getCustomFontIconClass(key, component.toLowerCase());
509
+ if (scoped) {
510
+ return scoped;
511
+ }
512
+ }
513
+ return this.iconSettingsService.getCustomFontIconClass(key);
456
514
  }
457
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconsService, deps: [{ token: ICON_SETTINGS, optional: true }, { token: IconSettingsService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
458
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconsService, providedIn: 'root' });
515
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconsService, deps: [{ token: ICON_SETTINGS, optional: true }, { token: IconSettingsService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
516
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconsService, providedIn: 'root' });
459
517
  }
460
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconsService, decorators: [{
518
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconsService, decorators: [{
461
519
  type: Injectable,
462
520
  args: [{
463
521
  providedIn: 'root'
@@ -477,6 +535,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
477
535
  class IconWrapperComponent {
478
536
  iconsService;
479
537
  element;
538
+ componentChain;
480
539
  hostClass = true;
481
540
  /**
482
541
  * Sets the name for an existing font icon in a Kendo UI theme to render.
@@ -518,7 +577,7 @@ class IconWrapperComponent {
518
577
  get iconSettings() { return this._iconSettings(); }
519
578
  // Resolves the effective SVG icon: prefer service-provided icon, then fall back to the svgIcon input.
520
579
  // Extracted from hasSvgIcon getter to avoid writing to a signal inside a reactive context.
521
- _resolvedSvgIcon = computed(() => this.iconsService.getSvgIcon(this._name()) || this._svgIcon(), ...(ngDevMode ? [{ debugName: "_resolvedSvgIcon" }] : []));
580
+ _resolvedSvgIcon = computed(() => this.iconsService.getSvgIcon(this._name(), this.componentChain) || this._svgIcon(), ...(ngDevMode ? [{ debugName: "_resolvedSvgIcon" }] : []));
522
581
  get resolvedSvgIcon() { return this._resolvedSvgIcon(); }
523
582
  get hasSvgIcon() {
524
583
  if (this._resolvedSvgIcon()) {
@@ -545,12 +604,13 @@ https://www.telerik.com/design-system/docs/foundation/iconography/icon-list/
545
604
  return false;
546
605
  }
547
606
  get customFontIconClass() {
548
- return this.iconsService.getCustomFontIconClass(this.name) || this.customFontClass;
607
+ return this.iconsService.getCustomFontIconClass(this.name, this.componentChain) || this.customFontClass;
549
608
  }
550
609
  subs = new Subscription();
551
- constructor(iconsService, element) {
610
+ constructor(iconsService, element, componentChain) {
552
611
  this.iconsService = iconsService;
553
612
  this.element = element;
613
+ this.componentChain = componentChain;
554
614
  this.subs = iconsService.changes.subscribe(iconSettings => {
555
615
  this._iconSettings.set(iconSettings);
556
616
  });
@@ -558,15 +618,17 @@ https://www.telerik.com/design-system/docs/foundation/iconography/icon-list/
558
618
  ngOnDestroy() {
559
619
  this.subs.unsubscribe();
560
620
  }
561
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconWrapperComponent, deps: [{ token: IconsService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
562
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: IconWrapperComponent, isStandalone: true, selector: "kendo-icon-wrapper", inputs: { name: "name", svgIcon: "svgIcon", innerCssClass: "innerCssClass", customFontClass: "customFontClass", size: "size" }, host: { properties: { "class.k-icon-wrapper-host": "this.hostClass" } }, exportAs: ["kendoIconWrapper"], ngImport: i0, template: `
621
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconWrapperComponent, deps: [{ token: IconsService }, { token: i0.ElementRef }, { token: KENDO_COMPONENT_NAME, optional: true }], target: i0.ɵɵFactoryTarget.Component });
622
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.27", type: IconWrapperComponent, isStandalone: true, selector: "kendo-icon-wrapper", inputs: { name: "name", svgIcon: "svgIcon", innerCssClass: "innerCssClass", customFontClass: "customFontClass", size: "size" }, host: { properties: { "class.k-icon-wrapper-host": "this.hostClass" } }, exportAs: ["kendoIconWrapper"], ngImport: i0, template: `
563
623
  @if (iconSettings?.type === 'svg' && hasSvgIcon) {
564
624
  <kendo-svgicon
565
625
  [ngClass]="innerCssClass"
566
626
  [icon]="resolvedSvgIcon"
567
627
  [size]="size || iconSettings?.size"
568
628
  [themeColor]="iconSettings?.themeColor"
569
- [flip]="iconSettings?.flip"></kendo-svgicon>
629
+ [variant]="iconSettings?.variant"
630
+ [flip]="iconSettings?.flip"
631
+ [rotate]="iconSettings?.rotate"></kendo-svgicon>
570
632
  } @else {
571
633
  @if (!customFontIconClass) {
572
634
  <kendo-icon
@@ -574,14 +636,15 @@ https://www.telerik.com/design-system/docs/foundation/iconography/icon-list/
574
636
  [name]="name"
575
637
  [size]="size || iconSettings?.size"
576
638
  [themeColor]="iconSettings?.themeColor"
577
- [flip]="iconSettings?.flip"></kendo-icon>
639
+ [flip]="iconSettings?.flip"
640
+ [rotate]="iconSettings?.rotate"></kendo-icon>
578
641
  } @else {
579
642
  <span [ngClass]="customClasses"></span>
580
643
  }
581
644
  }
582
645
  `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconComponent, selector: "kendo-icon", inputs: ["name"], exportAs: ["kendoIcon"] }, { kind: "component", type: SVGIconComponent, selector: "kendo-svg-icon, kendo-svgicon", inputs: ["icon", "variant"], exportAs: ["kendoSVGIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
583
646
  }
584
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconWrapperComponent, decorators: [{
647
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconWrapperComponent, decorators: [{
585
648
  type: Component,
586
649
  args: [{
587
650
  selector: 'kendo-icon-wrapper',
@@ -593,7 +656,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
593
656
  [icon]="resolvedSvgIcon"
594
657
  [size]="size || iconSettings?.size"
595
658
  [themeColor]="iconSettings?.themeColor"
596
- [flip]="iconSettings?.flip"></kendo-svgicon>
659
+ [variant]="iconSettings?.variant"
660
+ [flip]="iconSettings?.flip"
661
+ [rotate]="iconSettings?.rotate"></kendo-svgicon>
597
662
  } @else {
598
663
  @if (!customFontIconClass) {
599
664
  <kendo-icon
@@ -601,7 +666,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
601
666
  [name]="name"
602
667
  [size]="size || iconSettings?.size"
603
668
  [themeColor]="iconSettings?.themeColor"
604
- [flip]="iconSettings?.flip"></kendo-icon>
669
+ [flip]="iconSettings?.flip"
670
+ [rotate]="iconSettings?.rotate"></kendo-icon>
605
671
  } @else {
606
672
  <span [ngClass]="customClasses"></span>
607
673
  }
@@ -611,7 +677,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
611
677
  changeDetection: ChangeDetectionStrategy.OnPush,
612
678
  imports: [NgClass, IconComponent, SVGIconComponent]
613
679
  }]
614
- }], ctorParameters: () => [{ type: IconsService }, { type: i0.ElementRef }], propDecorators: { hostClass: [{
680
+ }], ctorParameters: () => [{ type: IconsService }, { type: i0.ElementRef }, { type: undefined, decorators: [{
681
+ type: Optional
682
+ }, {
683
+ type: Inject,
684
+ args: [KENDO_COMPONENT_NAME]
685
+ }] }], propDecorators: { hostClass: [{
615
686
  type: HostBinding,
616
687
  args: ['class.k-icon-wrapper-host']
617
688
  }], name: [{
@@ -646,11 +717,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
646
717
  * ```
647
718
  */
648
719
  class IconModule {
649
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
650
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: IconModule, imports: [IconComponent], exports: [IconComponent] });
651
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconModule });
720
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
721
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.27", ngImport: i0, type: IconModule, imports: [IconComponent], exports: [IconComponent] });
722
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconModule });
652
723
  }
653
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconModule, decorators: [{
724
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconModule, decorators: [{
654
725
  type: NgModule,
655
726
  args: [{
656
727
  exports: [IconComponent],
@@ -678,11 +749,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
678
749
  * ```
679
750
  */
680
751
  class SVGIconModule {
681
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SVGIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
682
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: SVGIconModule, imports: [SVGIconComponent], exports: [SVGIconComponent] });
683
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SVGIconModule });
752
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: SVGIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
753
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.27", ngImport: i0, type: SVGIconModule, imports: [SVGIconComponent], exports: [SVGIconComponent] });
754
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: SVGIconModule });
684
755
  }
685
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SVGIconModule, decorators: [{
756
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: SVGIconModule, decorators: [{
686
757
  type: NgModule,
687
758
  args: [{
688
759
  exports: [SVGIconComponent],
@@ -772,11 +843,11 @@ const KENDO_ICONS = [
772
843
  * ```
773
844
  */
774
845
  class IconsModule {
775
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
776
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: IconsModule, imports: [IconComponent, SVGIconComponent], exports: [IconComponent, SVGIconComponent] });
777
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconsModule, providers: [IconsService] });
846
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
847
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.27", ngImport: i0, type: IconsModule, imports: [IconComponent, SVGIconComponent], exports: [IconComponent, SVGIconComponent] });
848
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconsModule, providers: [IconsService] });
778
849
  }
779
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconsModule, decorators: [{
850
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconsModule, decorators: [{
780
851
  type: NgModule,
781
852
  args: [{
782
853
  imports: [
package/index.d.ts CHANGED
@@ -54,6 +54,13 @@ type IconSize = 'default' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' |
54
54
  */
55
55
  type IconFlip = 'default' | 'horizontal' | 'vertical' | 'both';
56
56
 
57
+ /**
58
+ * Specifies the `IconRotate` degree.
59
+ *
60
+ * Use this type to control icon rotation in `45`-degree steps, where the degree is provided as a number.
61
+ */
62
+ type IconRotate = 0 | 45 | 90 | 135 | 180 | 225 | 270 | 315;
63
+
57
64
  /**
58
65
  * @hidden
59
66
  */
@@ -66,6 +73,11 @@ declare abstract class IconBaseDirective {
66
73
  * Flips the icon horizontally, vertically, or in both directions.
67
74
  */
68
75
  flip: IconFlip;
76
+ /**
77
+ * Rotates the icon by `45`-degree steps.
78
+ */
79
+ set rotate(rotate: IconRotate);
80
+ get rotate(): IconRotate;
69
81
  /**
70
82
  * Sets the `IconThemeColor` for the icon. Use this property to apply a theme color.
71
83
  */
@@ -78,9 +90,11 @@ declare abstract class IconBaseDirective {
78
90
  get size(): IconSize;
79
91
  _themeColor: IconThemeColor;
80
92
  _size: IconSize;
93
+ _rotate: IconRotate;
81
94
  constructor(element: ElementRef, renderer: Renderer2);
95
+ private rotateClass;
82
96
  static ɵfac: i0.ɵɵFactoryDeclaration<IconBaseDirective, never>;
83
- static ɵdir: i0.ɵɵDirectiveDeclaration<IconBaseDirective, "[kendoIconBase]", never, { "flip": { "alias": "flip"; "required": false; }; "themeColor": { "alias": "themeColor"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
97
+ static ɵdir: i0.ɵɵDirectiveDeclaration<IconBaseDirective, "[kendoIconBase]", never, { "flip": { "alias": "flip"; "required": false; }; "rotate": { "alias": "rotate"; "required": false; }; "themeColor": { "alias": "themeColor"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
84
98
  }
85
99
 
86
100
  /**
@@ -141,6 +155,8 @@ declare class SVGIconComponent extends IconBaseDirective implements OnInit {
141
155
  element: ElementRef;
142
156
  renderer: Renderer2;
143
157
  hostClass: boolean;
158
+ get outlineVariantClass(): boolean;
159
+ get duotoneVariantClass(): boolean;
144
160
  hostAriaHidden: boolean;
145
161
  /**
146
162
  * Sets the `SVGIcon` to render. Supports all [Kendo UI SVG Icons](https://www.telerik.com/kendo-angular-ui/components/icons/svgicon/svgicon-list).
@@ -175,7 +191,7 @@ type IconType = 'font' | 'svg';
175
191
 
176
192
  /**
177
193
  * Represents the icon settings for Kendo UI icons.
178
- * Use the `IconSettings` interface to set the icon `type`, `themeColor`, `size`, and `flip` direction.
194
+ * Use the `IconSettings` interface to set the icon `type`, `themeColor`, `size`, `flip`, and `rotate` values.
179
195
  *
180
196
  * @example
181
197
  * ```typescript
@@ -183,7 +199,9 @@ type IconType = 'font' | 'svg';
183
199
  * type: 'svg',
184
200
  * themeColor: 'primary',
185
201
  * size: 'large',
186
- * flip: 'horizontal'
202
+ * flip: 'horizontal',
203
+ * rotate: 90,
204
+ * variant: 'outline'
187
205
  * };
188
206
  * ```
189
207
  */
@@ -204,6 +222,15 @@ interface IconSettings {
204
222
  * Sets the `flip` direction of the icon.
205
223
  */
206
224
  flip?: IconFlip;
225
+ /**
226
+ * Sets the `rotate` degree of the icon. The `flip` direction takes precedence over the rotation degree when both are applied.
227
+ */
228
+ rotate?: IconRotate;
229
+ /**
230
+ * Sets the `variant` of the SVG icon.
231
+ * Requires `@progress/kendo-svg-icons` version `5.0.0` or later.
232
+ */
233
+ variant?: IconVariant;
207
234
  }
208
235
 
209
236
  /**
@@ -235,17 +262,19 @@ declare class IconSettingsService {
235
262
  /**
236
263
  * Returns the [`SVGIcon`](https://www.telerik.com/kendo-angular-ui/components/icons/api/svgicon) object for the provided key.
237
264
  * Override in a custom service to provide custom SVG icons.
265
+ * The optional `_component` parameter carries the host component identity (e.g. `'dateinput'`, `'grid'`)
266
+ * so subclasses can return different icons for the same name depending on the requesting component.
238
267
  *
239
- * @hidden
240
268
  */
241
- getSvgIcon(_name: string): SVGIcon;
269
+ getSvgIcon(_name: string, _component?: string): SVGIcon;
242
270
  /**
243
271
  * Returns the list of classes to be rendered on the host `SPAN` element of custom font icons.
244
272
  * Override in a custom service to provide classes for custom font icons.
273
+ * The optional `_component` parameter carries the host component identity so subclasses can
274
+ * return different classes for the same key depending on the requesting component.
245
275
  *
246
- * @hidden
247
276
  */
248
- getCustomFontIconClass(_key: string): string;
277
+ getCustomFontIconClass(_key: string, _component?: string): string;
249
278
  static ɵfac: i0.ɵɵFactoryDeclaration<IconSettingsService, never>;
250
279
  static ɵprov: i0.ɵɵInjectableDeclaration<IconSettingsService>;
251
280
  }
@@ -286,15 +315,19 @@ declare class IconsService implements OnDestroy {
286
315
  /**
287
316
  * Returns the [`SVGIcon`](https://www.telerik.com/kendo-angular-ui/components/icons/api/svgicon) object for the provided key.
288
317
  * Override in a custom service to provide custom SVG icons.
318
+ * Walks the `componentChain` outermost-first so the closest explicitly configured ancestor wins,
319
+ * falling back to a global (no component) lookup when no level in the chain matches.
289
320
  * @hidden
290
321
  */
291
- getSvgIcon(name: string): SVGIcon;
322
+ getSvgIcon(name: string, componentChain?: string[]): SVGIcon;
292
323
  /**
293
324
  * Returns the list of classes to be rendered on the host `SPAN` element of custom font icons.
294
325
  * Override in a custom service to provide classes for custom font icons.
326
+ * Walks the `componentChain` outermost-first so the closest explicitly configured ancestor wins,
327
+ * falling back to a global (no component) lookup when no level in the chain matches.
295
328
  * @hidden
296
329
  */
297
- getCustomFontIconClass(key: string): string;
330
+ getCustomFontIconClass(key: string, componentChain?: string[]): string;
298
331
  static ɵfac: i0.ɵɵFactoryDeclaration<IconsService, [{ optional: true; }, { optional: true; }]>;
299
332
  static ɵprov: i0.ɵɵInjectableDeclaration<IconsService>;
300
333
  }
@@ -305,6 +338,7 @@ declare class IconsService implements OnDestroy {
305
338
  declare class IconWrapperComponent implements OnDestroy {
306
339
  private iconsService;
307
340
  element: ElementRef;
341
+ private componentChain;
308
342
  hostClass: boolean;
309
343
  /**
310
344
  * Sets the name for an existing font icon in a Kendo UI theme to render.
@@ -345,9 +379,9 @@ declare class IconWrapperComponent implements OnDestroy {
345
379
  get hasSvgIcon(): boolean;
346
380
  get customFontIconClass(): string;
347
381
  private subs;
348
- constructor(iconsService: IconsService, element: ElementRef);
382
+ constructor(iconsService: IconsService, element: ElementRef, componentChain: string[]);
349
383
  ngOnDestroy(): void;
350
- static ɵfac: i0.ɵɵFactoryDeclaration<IconWrapperComponent, never>;
384
+ static ɵfac: i0.ɵɵFactoryDeclaration<IconWrapperComponent, [null, null, { optional: true; }]>;
351
385
  static ɵcmp: i0.ɵɵComponentDeclaration<IconWrapperComponent, "kendo-icon-wrapper", ["kendoIconWrapper"], { "name": { "alias": "name"; "required": false; }; "svgIcon": { "alias": "svgIcon"; "required": false; }; "innerCssClass": { "alias": "innerCssClass"; "required": false; }; "customFontClass": { "alias": "customFontClass"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
352
386
  }
353
387
 
@@ -495,4 +529,4 @@ declare const KENDO_SVGICON: readonly [typeof SVGIconComponent];
495
529
  declare const KENDO_ICONS: readonly [typeof IconComponent, typeof SVGIconComponent];
496
530
 
497
531
  export { ICON_SETTINGS, IconComponent, IconModule, IconSettingsService, IconWrapperComponent, IconsModule, IconsService, KENDO_ICON, KENDO_ICONS, KENDO_SVGICON, SVGIconComponent, SVGIconModule };
498
- export type { IconFlip, IconSettings, IconSize, IconThemeColor, IconType, IconVariant };
532
+ export type { IconFlip, IconRotate, IconSettings, IconSize, IconThemeColor, IconType, IconVariant };
@@ -7,7 +7,7 @@ export const packageMetadata = {
7
7
  "productCodes": [
8
8
  "KENDOUIANGULAR"
9
9
  ],
10
- "publishDate": 1784795712,
11
- "version": "25.0.0-develop.8",
10
+ "publishDate": 1786626580,
11
+ "version": "25.1.0-develop.1",
12
12
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
13
13
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-icons",
3
- "version": "25.0.0-develop.8",
3
+ "version": "25.1.0-develop.1",
4
4
  "description": "Kendo UI Angular component starter template",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -31,7 +31,7 @@
31
31
  "package": {
32
32
  "productName": "Kendo UI for Angular",
33
33
  "productCode": "KENDOUIANGULAR",
34
- "publishDate": 1784795712,
34
+ "publishDate": 1786626580,
35
35
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
36
36
  }
37
37
  },
@@ -42,7 +42,7 @@
42
42
  "@angular/platform-browser": "20 - 22",
43
43
  "@progress/kendo-licensing": "^1.11.0",
44
44
  "@progress/kendo-svg-icons": "^4.9.0 || ^5.0.0",
45
- "@progress/kendo-angular-common": "25.0.0-develop.8",
45
+ "@progress/kendo-angular-common": "25.1.0-develop.1",
46
46
  "rxjs": "^6.5.3 || ^7.0.0"
47
47
  },
48
48
  "peerDependenciesMeta": {
@@ -52,7 +52,7 @@
52
52
  },
53
53
  "dependencies": {
54
54
  "tslib": "^2.3.1",
55
- "@progress/kendo-angular-schematics": "25.0.0-develop.8"
55
+ "@progress/kendo-angular-schematics": "25.1.0-develop.1"
56
56
  },
57
57
  "schematics": "./schematics/collection.json",
58
58
  "module": "fesm2022/progress-kendo-angular-icons.mjs",