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

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: 1786525749,
23
+ version: '25.0.0',
24
24
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
25
25
  };
26
26
 
@@ -91,10 +91,10 @@ class IconBaseDirective {
91
91
  this.renderer = renderer;
92
92
  validatePackage(packageMetadata);
93
93
  }
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 });
94
+ 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 });
95
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", 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 });
96
96
  }
97
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconBaseDirective, decorators: [{
97
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconBaseDirective, decorators: [{
98
98
  type: Directive,
99
99
  args: [{
100
100
  selector: '[kendoIconBase]'
@@ -150,10 +150,10 @@ class IconComponent extends IconBaseDirective {
150
150
  this.element = element;
151
151
  this.renderer = renderer;
152
152
  }
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 });
153
+ 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 });
154
+ 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
155
  }
156
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconComponent, decorators: [{
156
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconComponent, decorators: [{
157
157
  type: Component,
158
158
  args: [{
159
159
  selector: 'kendo-icon',
@@ -275,15 +275,15 @@ class SVGIconComponent extends IconBaseDirective {
275
275
  `);
276
276
  }
277
277
  }
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: `
278
+ 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 });
279
+ 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", "attr.aria-hidden": "this.hostAriaHidden" } }, exportAs: ["kendoSVGIcon"], usesInheritance: true, ngImport: i0, template: `
280
280
  @if (visible) {
281
281
  <svg [style.pointerEvents]="'none'" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
282
282
  [attr.viewBox]="icon.viewBox" [innerHTML]="content" aria-hidden="true">
283
283
  </svg>
284
284
  }`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
285
285
  }
286
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SVGIconComponent, decorators: [{
286
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: SVGIconComponent, decorators: [{
287
287
  type: Component,
288
288
  args: [{
289
289
  exportAs: 'kendoSVGIcon',
@@ -349,25 +349,27 @@ class IconSettingsService {
349
349
  /**
350
350
  * Returns the [`SVGIcon`](https://www.telerik.com/kendo-angular-ui/components/icons/api/svgicon) object for the provided key.
351
351
  * Override in a custom service to provide custom SVG icons.
352
+ * The optional `_component` parameter carries the host component identity (e.g. `'dateinput'`, `'grid'`)
353
+ * so subclasses can return different icons for the same name depending on the requesting component.
352
354
  *
353
- * @hidden
354
355
  */
355
- getSvgIcon(_name) {
356
+ getSvgIcon(_name, _component) {
356
357
  return null;
357
358
  }
358
359
  /**
359
360
  * Returns the list of classes to be rendered on the host `SPAN` element of custom font icons.
360
361
  * Override in a custom service to provide classes for custom font icons.
362
+ * The optional `_component` parameter carries the host component identity so subclasses can
363
+ * return different classes for the same key depending on the requesting component.
361
364
  *
362
- * @hidden
363
365
  */
364
- getCustomFontIconClass(_key) {
366
+ getCustomFontIconClass(_key, _component) {
365
367
  return null;
366
368
  }
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 });
369
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconSettingsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
370
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconSettingsService });
369
371
  }
370
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconSettingsService, decorators: [{
372
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconSettingsService, decorators: [{
371
373
  type: Injectable
372
374
  }] });
373
375
 
@@ -439,25 +441,45 @@ class IconsService {
439
441
  /**
440
442
  * Returns the [`SVGIcon`](https://www.telerik.com/kendo-angular-ui/components/icons/api/svgicon) object for the provided key.
441
443
  * Override in a custom service to provide custom SVG icons.
444
+ * Walks the `componentChain` outermost-first so the closest explicitly configured ancestor wins,
445
+ * falling back to a global (no component) lookup when no level in the chain matches.
442
446
  * @hidden
443
447
  */
444
- getSvgIcon(name) {
445
- const customIcon = this.iconSettingsService && this.iconSettingsService.getSvgIcon(name);
446
- return customIcon;
448
+ getSvgIcon(name, componentChain) {
449
+ if (!this.iconSettingsService) {
450
+ return null;
451
+ }
452
+ for (const component of componentChain ?? []) {
453
+ const scoped = this.iconSettingsService.getSvgIcon(name, component.toLowerCase());
454
+ if (scoped) {
455
+ return scoped;
456
+ }
457
+ }
458
+ return this.iconSettingsService.getSvgIcon(name);
447
459
  }
448
460
  /**
449
461
  * Returns the list of classes to be rendered on the host `SPAN` element of custom font icons.
450
462
  * Override in a custom service to provide classes for custom font icons.
463
+ * Walks the `componentChain` outermost-first so the closest explicitly configured ancestor wins,
464
+ * falling back to a global (no component) lookup when no level in the chain matches.
451
465
  * @hidden
452
466
  */
453
- getCustomFontIconClass(key) {
454
- const customClass = this.iconSettingsService && this.iconSettingsService.getCustomFontIconClass(key);
455
- return customClass;
467
+ getCustomFontIconClass(key, componentChain) {
468
+ if (!this.iconSettingsService) {
469
+ return null;
470
+ }
471
+ for (const component of componentChain ?? []) {
472
+ const scoped = this.iconSettingsService.getCustomFontIconClass(key, component.toLowerCase());
473
+ if (scoped) {
474
+ return scoped;
475
+ }
476
+ }
477
+ return this.iconSettingsService.getCustomFontIconClass(key);
456
478
  }
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' });
479
+ 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 });
480
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconsService, providedIn: 'root' });
459
481
  }
460
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconsService, decorators: [{
482
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconsService, decorators: [{
461
483
  type: Injectable,
462
484
  args: [{
463
485
  providedIn: 'root'
@@ -477,6 +499,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
477
499
  class IconWrapperComponent {
478
500
  iconsService;
479
501
  element;
502
+ componentChain;
480
503
  hostClass = true;
481
504
  /**
482
505
  * Sets the name for an existing font icon in a Kendo UI theme to render.
@@ -518,7 +541,7 @@ class IconWrapperComponent {
518
541
  get iconSettings() { return this._iconSettings(); }
519
542
  // Resolves the effective SVG icon: prefer service-provided icon, then fall back to the svgIcon input.
520
543
  // 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" }] : []));
544
+ _resolvedSvgIcon = computed(() => this.iconsService.getSvgIcon(this._name(), this.componentChain) || this._svgIcon(), ...(ngDevMode ? [{ debugName: "_resolvedSvgIcon" }] : []));
522
545
  get resolvedSvgIcon() { return this._resolvedSvgIcon(); }
523
546
  get hasSvgIcon() {
524
547
  if (this._resolvedSvgIcon()) {
@@ -545,12 +568,13 @@ https://www.telerik.com/design-system/docs/foundation/iconography/icon-list/
545
568
  return false;
546
569
  }
547
570
  get customFontIconClass() {
548
- return this.iconsService.getCustomFontIconClass(this.name) || this.customFontClass;
571
+ return this.iconsService.getCustomFontIconClass(this.name, this.componentChain) || this.customFontClass;
549
572
  }
550
573
  subs = new Subscription();
551
- constructor(iconsService, element) {
574
+ constructor(iconsService, element, componentChain) {
552
575
  this.iconsService = iconsService;
553
576
  this.element = element;
577
+ this.componentChain = componentChain;
554
578
  this.subs = iconsService.changes.subscribe(iconSettings => {
555
579
  this._iconSettings.set(iconSettings);
556
580
  });
@@ -558,14 +582,15 @@ https://www.telerik.com/design-system/docs/foundation/iconography/icon-list/
558
582
  ngOnDestroy() {
559
583
  this.subs.unsubscribe();
560
584
  }
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: `
585
+ 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 });
586
+ 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
587
  @if (iconSettings?.type === 'svg' && hasSvgIcon) {
564
588
  <kendo-svgicon
565
589
  [ngClass]="innerCssClass"
566
590
  [icon]="resolvedSvgIcon"
567
591
  [size]="size || iconSettings?.size"
568
592
  [themeColor]="iconSettings?.themeColor"
593
+ [variant]="iconSettings?.variant"
569
594
  [flip]="iconSettings?.flip"></kendo-svgicon>
570
595
  } @else {
571
596
  @if (!customFontIconClass) {
@@ -581,7 +606,7 @@ https://www.telerik.com/design-system/docs/foundation/iconography/icon-list/
581
606
  }
582
607
  `, 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
608
  }
584
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconWrapperComponent, decorators: [{
609
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconWrapperComponent, decorators: [{
585
610
  type: Component,
586
611
  args: [{
587
612
  selector: 'kendo-icon-wrapper',
@@ -593,6 +618,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
593
618
  [icon]="resolvedSvgIcon"
594
619
  [size]="size || iconSettings?.size"
595
620
  [themeColor]="iconSettings?.themeColor"
621
+ [variant]="iconSettings?.variant"
596
622
  [flip]="iconSettings?.flip"></kendo-svgicon>
597
623
  } @else {
598
624
  @if (!customFontIconClass) {
@@ -611,7 +637,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
611
637
  changeDetection: ChangeDetectionStrategy.OnPush,
612
638
  imports: [NgClass, IconComponent, SVGIconComponent]
613
639
  }]
614
- }], ctorParameters: () => [{ type: IconsService }, { type: i0.ElementRef }], propDecorators: { hostClass: [{
640
+ }], ctorParameters: () => [{ type: IconsService }, { type: i0.ElementRef }, { type: undefined, decorators: [{
641
+ type: Optional
642
+ }, {
643
+ type: Inject,
644
+ args: [KENDO_COMPONENT_NAME]
645
+ }] }], propDecorators: { hostClass: [{
615
646
  type: HostBinding,
616
647
  args: ['class.k-icon-wrapper-host']
617
648
  }], name: [{
@@ -646,11 +677,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
646
677
  * ```
647
678
  */
648
679
  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 });
680
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
681
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.27", ngImport: i0, type: IconModule, imports: [IconComponent], exports: [IconComponent] });
682
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconModule });
652
683
  }
653
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconModule, decorators: [{
684
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconModule, decorators: [{
654
685
  type: NgModule,
655
686
  args: [{
656
687
  exports: [IconComponent],
@@ -678,11 +709,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
678
709
  * ```
679
710
  */
680
711
  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 });
712
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: SVGIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
713
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.27", ngImport: i0, type: SVGIconModule, imports: [SVGIconComponent], exports: [SVGIconComponent] });
714
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: SVGIconModule });
684
715
  }
685
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SVGIconModule, decorators: [{
716
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: SVGIconModule, decorators: [{
686
717
  type: NgModule,
687
718
  args: [{
688
719
  exports: [SVGIconComponent],
@@ -772,11 +803,11 @@ const KENDO_ICONS = [
772
803
  * ```
773
804
  */
774
805
  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] });
806
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
807
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.27", ngImport: i0, type: IconsModule, imports: [IconComponent, SVGIconComponent], exports: [IconComponent, SVGIconComponent] });
808
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconsModule, providers: [IconsService] });
778
809
  }
779
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IconsModule, decorators: [{
810
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: IconsModule, decorators: [{
780
811
  type: NgModule,
781
812
  args: [{
782
813
  imports: [
package/index.d.ts CHANGED
@@ -183,7 +183,8 @@ type IconType = 'font' | 'svg';
183
183
  * type: 'svg',
184
184
  * themeColor: 'primary',
185
185
  * size: 'large',
186
- * flip: 'horizontal'
186
+ * flip: 'horizontal',
187
+ * variant: 'outline'
187
188
  * };
188
189
  * ```
189
190
  */
@@ -204,6 +205,11 @@ interface IconSettings {
204
205
  * Sets the `flip` direction of the icon.
205
206
  */
206
207
  flip?: IconFlip;
208
+ /**
209
+ * Sets the `variant` of the SVG icon.
210
+ * Requires `@progress/kendo-svg-icons` version `5.0.0` or later.
211
+ */
212
+ variant?: IconVariant;
207
213
  }
208
214
 
209
215
  /**
@@ -235,17 +241,19 @@ declare class IconSettingsService {
235
241
  /**
236
242
  * Returns the [`SVGIcon`](https://www.telerik.com/kendo-angular-ui/components/icons/api/svgicon) object for the provided key.
237
243
  * Override in a custom service to provide custom SVG icons.
244
+ * The optional `_component` parameter carries the host component identity (e.g. `'dateinput'`, `'grid'`)
245
+ * so subclasses can return different icons for the same name depending on the requesting component.
238
246
  *
239
- * @hidden
240
247
  */
241
- getSvgIcon(_name: string): SVGIcon;
248
+ getSvgIcon(_name: string, _component?: string): SVGIcon;
242
249
  /**
243
250
  * Returns the list of classes to be rendered on the host `SPAN` element of custom font icons.
244
251
  * Override in a custom service to provide classes for custom font icons.
252
+ * The optional `_component` parameter carries the host component identity so subclasses can
253
+ * return different classes for the same key depending on the requesting component.
245
254
  *
246
- * @hidden
247
255
  */
248
- getCustomFontIconClass(_key: string): string;
256
+ getCustomFontIconClass(_key: string, _component?: string): string;
249
257
  static ɵfac: i0.ɵɵFactoryDeclaration<IconSettingsService, never>;
250
258
  static ɵprov: i0.ɵɵInjectableDeclaration<IconSettingsService>;
251
259
  }
@@ -286,15 +294,19 @@ declare class IconsService implements OnDestroy {
286
294
  /**
287
295
  * Returns the [`SVGIcon`](https://www.telerik.com/kendo-angular-ui/components/icons/api/svgicon) object for the provided key.
288
296
  * Override in a custom service to provide custom SVG icons.
297
+ * Walks the `componentChain` outermost-first so the closest explicitly configured ancestor wins,
298
+ * falling back to a global (no component) lookup when no level in the chain matches.
289
299
  * @hidden
290
300
  */
291
- getSvgIcon(name: string): SVGIcon;
301
+ getSvgIcon(name: string, componentChain?: string[]): SVGIcon;
292
302
  /**
293
303
  * Returns the list of classes to be rendered on the host `SPAN` element of custom font icons.
294
304
  * Override in a custom service to provide classes for custom font icons.
305
+ * Walks the `componentChain` outermost-first so the closest explicitly configured ancestor wins,
306
+ * falling back to a global (no component) lookup when no level in the chain matches.
295
307
  * @hidden
296
308
  */
297
- getCustomFontIconClass(key: string): string;
309
+ getCustomFontIconClass(key: string, componentChain?: string[]): string;
298
310
  static ɵfac: i0.ɵɵFactoryDeclaration<IconsService, [{ optional: true; }, { optional: true; }]>;
299
311
  static ɵprov: i0.ɵɵInjectableDeclaration<IconsService>;
300
312
  }
@@ -305,6 +317,7 @@ declare class IconsService implements OnDestroy {
305
317
  declare class IconWrapperComponent implements OnDestroy {
306
318
  private iconsService;
307
319
  element: ElementRef;
320
+ private componentChain;
308
321
  hostClass: boolean;
309
322
  /**
310
323
  * Sets the name for an existing font icon in a Kendo UI theme to render.
@@ -345,9 +358,9 @@ declare class IconWrapperComponent implements OnDestroy {
345
358
  get hasSvgIcon(): boolean;
346
359
  get customFontIconClass(): string;
347
360
  private subs;
348
- constructor(iconsService: IconsService, element: ElementRef);
361
+ constructor(iconsService: IconsService, element: ElementRef, componentChain: string[]);
349
362
  ngOnDestroy(): void;
350
- static ɵfac: i0.ɵɵFactoryDeclaration<IconWrapperComponent, never>;
363
+ static ɵfac: i0.ɵɵFactoryDeclaration<IconWrapperComponent, [null, null, { optional: true; }]>;
351
364
  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
365
  }
353
366
 
@@ -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": 1786525749,
11
+ "version": "25.0.0",
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.0.0",
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": 1786525749,
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.0.0",
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.0.0"
56
56
  },
57
57
  "schematics": "./schematics/collection.json",
58
58
  "module": "fesm2022/progress-kendo-angular-icons.mjs",