@progress/kendo-angular-icons 24.0.0-develop.9 → 24.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.
@@ -0,0 +1,53 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ "use strict";
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.aiInstructions = void 0;
8
+ exports.default = default_1;
9
+ const tslib_1 = require("tslib");
10
+ const fs = tslib_1.__importStar(require("fs"));
11
+ const codemods_1 = require("@progress/kendo-angular-common/codemods");
12
+ exports.aiInstructions = `IconThemeColor no longer accepts 'light' or 'dark' values.
13
+ Replace any use of 'light' or 'dark' with a supported value: 'inherit', 'primary', 'secondary', 'tertiary', 'info', 'success', 'warning', 'error', or 'inverse'.
14
+
15
+ Static template bindings were removed automatically, which means the component now uses its default themeColor.
16
+ If you want to explicitly set a new value, re-add the attribute with a supported one:
17
+ Before: (removed by codemod — no themeColor attribute)
18
+ After: themeColor="base"
19
+
20
+ The following patterns could not be migrated automatically and require an additional update:
21
+
22
+ Dynamic binding:
23
+ Before: [themeColor]="color" (where color may be 'light' or 'dark')
24
+ After: [themeColor]="color" (ensure color is a supported value)
25
+
26
+ Conditional expression — replace both branch values:
27
+ Before: [themeColor]="isDark ? 'dark' : 'light'"
28
+ After: [themeColor]="isDark ? 'inverse' : 'base'"
29
+
30
+ TypeScript assignment — update the assigned value:
31
+ Before: this.icon.themeColor = 'light';
32
+ After: this.icon.themeColor = 'base';`;
33
+ const REMOVED_VALUES = ['light', 'dark'];
34
+ function default_1(fileInfo, api) {
35
+ const filePath = fileInfo.path;
36
+ if (!(0, codemods_1.isApiChangeTarget)(filePath)) {
37
+ return fileInfo.source;
38
+ }
39
+ const htmlResult = (0, codemods_1.htmlTransformer)(fileInfo, api, (templateContent) => {
40
+ let result = (0, codemods_1.attributeConditionalRemoval)(templateContent, 'kendo-icon', 'themeColor', REMOVED_VALUES);
41
+ result = (0, codemods_1.attributeConditionalRemoval)(result, 'kendo-svgicon', 'themeColor', REMOVED_VALUES);
42
+ result = (0, codemods_1.attributeConditionalRemoval)(result, 'kendo-svg-icon', 'themeColor', REMOVED_VALUES);
43
+ return result;
44
+ });
45
+ if (filePath.endsWith('.html')) {
46
+ if (htmlResult && htmlResult !== fileInfo.source) {
47
+ fs.writeFileSync(filePath, htmlResult, 'utf-8');
48
+ return htmlResult;
49
+ }
50
+ return fileInfo.source;
51
+ }
52
+ return htmlResult || fileInfo.source;
53
+ }
@@ -7,3 +7,4 @@ export { IconSize } from './size';
7
7
  export { IconThemeColor } from './theme-color';
8
8
  export * from './icon-type';
9
9
  export * from './icon-settings';
10
+ export { IconVariant } from './svg-icon-variant';
@@ -0,0 +1,9 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ /**
6
+ * Specifies the style variant of an SVG icon.
7
+ *
8
+ */
9
+ export type IconVariant = 'solid' | 'outline' | 'duotone';
@@ -14,9 +14,7 @@
14
14
  * - `success`— Applies coloring based on success theme color.
15
15
  * - `warning`— Applies coloring based on warning theme color.
16
16
  * - `error`— Applies coloring based on error theme color.
17
- * - `dark`— Applies coloring based on dark theme color.
18
- * - `light`— Applies coloring based on light theme color.
19
17
  * - `inverse`— Applies coloring based on inverse theme color.
20
18
  *
21
19
  */
22
- export type IconThemeColor = 'inherit' | 'primary' | 'secondary' | 'tertiary' | 'info' | 'success' | 'warning' | 'error' | 'dark' | 'light' | 'inverse';
20
+ export type IconThemeColor = 'inherit' | 'primary' | 'secondary' | 'tertiary' | 'info' | 'success' | 'warning' | 'error' | 'inverse';
@@ -19,8 +19,8 @@ const packageMetadata = {
19
19
  productName: 'Kendo UI for Angular',
20
20
  productCode: 'KENDOUIANGULAR',
21
21
  productCodes: ['KENDOUIANGULAR'],
22
- publishDate: 1777365097,
23
- version: '24.0.0-develop.9',
22
+ publishDate: 1779273279,
23
+ version: '24.0.0',
24
24
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
25
25
  };
26
26
 
@@ -174,7 +174,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
174
174
  type: Input
175
175
  }] } });
176
176
 
177
- const areSame = (i1, i2) => i1?.name === i2?.name && i1.content === i2.content && i1.viewBox === i2.viewBox;
177
+ const areSame = (i1, i2) => i1?.name === i2?.name && i1?.content === i2?.content && i1?.viewBox === i2?.viewBox && i1?.variants === i2?.variants;
178
178
  /**
179
179
  * Represents the [Kendo UI SVG Icon component for Angular](https://www.telerik.com/kendo-angular-ui/components/icons/svgicon).
180
180
  * Used to display icons from the [Kendo UI SVG Icons](https://www.telerik.com/kendo-angular-ui/components/icons/svgicon/svgicon-list) collection.
@@ -223,13 +223,27 @@ class SVGIconComponent extends IconBaseDirective {
223
223
  get icon() {
224
224
  return this._icon;
225
225
  }
226
+ /**
227
+ * Sets the style variant of the icon.
228
+ *
229
+ * > Requires `@progress/kendo-svg-icons` v5 or later for the `variants` property to be available on icons.
230
+ */
231
+ set variant(variant) {
232
+ this._variant = variant;
233
+ }
234
+ get variant() {
235
+ return this._variant;
236
+ }
226
237
  get content() {
227
- return this.domSanitizer.bypassSecurityTrustHtml(this.icon.content);
238
+ const variantContent = this.variant && this.icon?.variants?.[this.variant];
239
+ const svgContent = variantContent || this.icon.content;
240
+ return this.domSanitizer.bypassSecurityTrustHtml(svgContent);
228
241
  }
229
242
  get visible() {
230
243
  return this.icon && isDocumentAvailable();
231
244
  }
232
245
  _icon;
246
+ _variant;
233
247
  constructor(domSanitizer, element, renderer) {
234
248
  super(element, renderer);
235
249
  this.domSanitizer = domSanitizer;
@@ -252,10 +266,10 @@ class SVGIconComponent extends IconBaseDirective {
252
266
  }
253
267
  }
254
268
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: SVGIconComponent, deps: [{ token: i1_1.DomSanitizer }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
255
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: SVGIconComponent, isStandalone: true, selector: "kendo-svg-icon, kendo-svgicon", inputs: { icon: "icon" }, 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: `
269
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", 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: `
256
270
  @if (visible) {
257
271
  <svg [style.pointerEvents]="'none'" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
258
- [attr.viewBox]="icon.viewBox" [innerHTML]="content">
272
+ [attr.viewBox]="icon.viewBox" [innerHTML]="content" aria-hidden="true">
259
273
  </svg>
260
274
  }`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
261
275
  }
@@ -267,7 +281,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
267
281
  template: `
268
282
  @if (visible) {
269
283
  <svg [style.pointerEvents]="'none'" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
270
- [attr.viewBox]="icon.viewBox" [innerHTML]="content">
284
+ [attr.viewBox]="icon.viewBox" [innerHTML]="content" aria-hidden="true">
271
285
  </svg>
272
286
  }`,
273
287
  changeDetection: ChangeDetectionStrategy.OnPush,
@@ -285,6 +299,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
285
299
  args: ['attr.aria-hidden']
286
300
  }], icon: [{
287
301
  type: Input
302
+ }], variant: [{
303
+ type: Input
288
304
  }] } });
289
305
 
290
306
  /**
@@ -538,7 +554,7 @@ https://www.telerik.com/design-system/docs/foundation/iconography/icon-list/
538
554
  <span [ngClass]="customClasses"></span>
539
555
  }
540
556
  }
541
- `, 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"], exportAs: ["kendoSVGIcon"] }] });
557
+ `, 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"] }] });
542
558
  }
543
559
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: IconWrapperComponent, decorators: [{
544
560
  type: Component,
package/index.d.ts CHANGED
@@ -8,7 +8,7 @@ export { IconWrapperComponent } from './icon-wrapper/icon-wrapper.component';
8
8
  export { IconModule } from './icon.module';
9
9
  export { SVGIconModule } from './svg-icon.module';
10
10
  export { IconsModule } from './icons.module';
11
- export { IconFlip, IconSize, IconThemeColor, IconType, IconSettings } from './common/models';
11
+ export { IconFlip, IconSize, IconThemeColor, IconType, IconSettings, IconVariant } from './common/models';
12
12
  export { IconsService } from './common/icons.service';
13
13
  export { IconSettingsService } from './common/icon-settings.service';
14
14
  export { ICON_SETTINGS } from './common/icon-settings';
@@ -7,7 +7,7 @@ export const packageMetadata = {
7
7
  "productCodes": [
8
8
  "KENDOUIANGULAR"
9
9
  ],
10
- "publishDate": 1777365097,
11
- "version": "24.0.0-develop.9",
10
+ "publishDate": 1779273279,
11
+ "version": "24.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": "24.0.0-develop.9",
3
+ "version": "24.0.0",
4
4
  "description": "Kendo UI Angular component starter template",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -14,10 +14,24 @@
14
14
  ],
15
15
  "@progress": {
16
16
  "friendlyName": "Icon",
17
+ "migrations": {
18
+ "options": {
19
+ "parser": "tsx",
20
+ "pattern": "*.{ts,html,css,scss,sass,less}"
21
+ },
22
+ "codemods": {
23
+ "24": [
24
+ {
25
+ "description": "IconThemeColor no longer accepts 'light' or 'dark' values.",
26
+ "file": "codemods/v24/themecolor-light-dark.js"
27
+ }
28
+ ]
29
+ }
30
+ },
17
31
  "package": {
18
32
  "productName": "Kendo UI for Angular",
19
33
  "productCode": "KENDOUIANGULAR",
20
- "publishDate": 1777365097,
34
+ "publishDate": 1779273279,
21
35
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
22
36
  }
23
37
  },
@@ -27,13 +41,18 @@
27
41
  "@angular/core": "19 - 21",
28
42
  "@angular/platform-browser": "19 - 21",
29
43
  "@progress/kendo-licensing": "^1.11.0",
30
- "@progress/kendo-svg-icons": "^4.0.0",
31
- "@progress/kendo-angular-common": "24.0.0-develop.9",
44
+ "@progress/kendo-svg-icons": "^4.9.0 || ^5.0.0",
45
+ "@progress/kendo-angular-common": "24.0.0",
32
46
  "rxjs": "^6.5.3 || ^7.0.0"
33
47
  },
48
+ "peerDependenciesMeta": {
49
+ "@progress/kendo-svg-icons": {
50
+ "optional": true
51
+ }
52
+ },
34
53
  "dependencies": {
35
54
  "tslib": "^2.3.1",
36
- "@progress/kendo-angular-schematics": "24.0.0-develop.9"
55
+ "@progress/kendo-angular-schematics": "24.0.0"
37
56
  },
38
57
  "schematics": "./schematics/collection.json",
39
58
  "module": "fesm2022/progress-kendo-angular-icons.mjs",
@@ -6,6 +6,7 @@ import { ElementRef, Renderer2, OnInit } from '@angular/core';
6
6
  import { DomSanitizer, SafeHtml } from "@angular/platform-browser";
7
7
  import { IconBaseDirective } from '../common/icon-base';
8
8
  import { SVGIcon } from '@progress/kendo-svg-icons';
9
+ import { IconVariant } from '../common/models/svg-icon-variant';
9
10
  import * as i0 from "@angular/core";
10
11
  /**
11
12
  * Represents the [Kendo UI SVG Icon component for Angular](https://www.telerik.com/kendo-angular-ui/components/icons/svgicon).
@@ -40,12 +41,20 @@ export declare class SVGIconComponent extends IconBaseDirective implements OnIni
40
41
  */
41
42
  set icon(icon: SVGIcon);
42
43
  get icon(): SVGIcon;
44
+ /**
45
+ * Sets the style variant of the icon.
46
+ *
47
+ * > Requires `@progress/kendo-svg-icons` v5 or later for the `variants` property to be available on icons.
48
+ */
49
+ set variant(variant: IconVariant);
50
+ get variant(): IconVariant;
43
51
  get content(): SafeHtml;
44
52
  get visible(): boolean;
45
53
  private _icon;
54
+ private _variant;
46
55
  constructor(domSanitizer: DomSanitizer, element: ElementRef, renderer: Renderer2);
47
56
  ngOnInit(): void;
48
57
  private verifyIconProperty;
49
58
  static ɵfac: i0.ɵɵFactoryDeclaration<SVGIconComponent, never>;
50
- static ɵcmp: i0.ɵɵComponentDeclaration<SVGIconComponent, "kendo-svg-icon, kendo-svgicon", ["kendoSVGIcon"], { "icon": { "alias": "icon"; "required": false; }; }, {}, never, never, true, never>;
59
+ static ɵcmp: i0.ɵɵComponentDeclaration<SVGIconComponent, "kendo-svg-icon, kendo-svgicon", ["kendoSVGIcon"], { "icon": { "alias": "icon"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, {}, never, never, true, never>;
51
60
  }