@siemens/element-ng 47.0.0 → 47.1.0-next.2

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.
@@ -1,10 +1,11 @@
1
1
  import { OnChanges, SimpleChanges } from '@angular/core';
2
- import { EntityStatusType, StatusIcon } from '@siemens/element-ng/common';
2
+ import { EntityStatusType } from '@siemens/element-ng/common';
3
3
  import { TranslatableString } from '@siemens/element-translate-ng/translate';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "./si-avatar-background-color.directive";
6
6
  export type AvatarSize = 'tiny' | 'xsmall' | 'small' | 'regular' | 'large' | 'xlarge';
7
7
  export declare class SiAvatarComponent implements OnChanges {
8
+ private readonly statusIcons;
8
9
  /**
9
10
  * Size of the component.
10
11
  *
@@ -40,7 +41,7 @@ export declare class SiAvatarComponent implements OnChanges {
40
41
  * aria-label for status
41
42
  */
42
43
  readonly statusAriaLabel: import("@angular/core").InputSignal<TranslatableString | undefined>;
43
- protected statusIcon?: StatusIcon;
44
+ protected readonly statusIcon: import("@angular/core").Signal<import("@siemens/element-ng/common").StatusIcon | undefined>;
44
45
  protected displayInitials?: string;
45
46
  private readonly autoBackgroundColorDirective;
46
47
  ngOnChanges(changes: SimpleChanges): void;
@@ -1,9 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, numberAttribute, booleanAttribute, signal, Directive, inject, ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { input, numberAttribute, booleanAttribute, signal, Directive, inject, computed, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import { NgClass } from '@angular/common';
4
- import { STATUS_ICON } from '@siemens/element-ng/common';
5
- import * as i2 from '@siemens/element-ng/icon';
6
- import { SiIconModule } from '@siemens/element-ng/icon';
4
+ import { STATUS_ICON_CONFIG, SiIconNextComponent } from '@siemens/element-ng/icon';
7
5
 
8
6
  /**
9
7
  * Copyright Siemens 2016 - 2025.
@@ -79,6 +77,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
79
77
  * SPDX-License-Identifier: MIT
80
78
  */
81
79
  class SiAvatarComponent {
80
+ statusIcons = inject(STATUS_ICON_CONFIG);
82
81
  /**
83
82
  * Size of the component.
84
83
  *
@@ -114,14 +113,13 @@ class SiAvatarComponent {
114
113
  * aria-label for status
115
114
  */
116
115
  statusAriaLabel = input();
117
- statusIcon;
116
+ statusIcon = computed(() => {
117
+ const status = this.status();
118
+ return status ? this.statusIcons[status] : undefined;
119
+ });
118
120
  displayInitials;
119
121
  autoBackgroundColorDirective = inject(SiAvatarBackgroundColorDirective);
120
122
  ngOnChanges(changes) {
121
- if (changes.status) {
122
- const status = this.status();
123
- this.statusIcon = status ? STATUS_ICON[status] : undefined;
124
- }
125
123
  if (changes.initials || changes.altText) {
126
124
  this.setInitials();
127
125
  this.autoBackgroundColorDirective.calculateColorFromInitials(this.displayInitials);
@@ -158,18 +156,18 @@ class SiAvatarComponent {
158
156
  }
159
157
  }
160
158
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiAvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
161
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiAvatarComponent, isStandalone: true, selector: "si-avatar", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, imageUrl: { classPropertyName: "imageUrl", publicName: "imageUrl", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, initials: { classPropertyName: "initials", publicName: "initials", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, altText: { classPropertyName: "altText", publicName: "altText", isSignal: true, isRequired: true, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, statusAriaLabel: { classPropertyName: "statusAriaLabel", publicName: "statusAriaLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "size()" } }, usesOnChanges: true, hostDirectives: [{ directive: SiAvatarBackgroundColorDirective, inputs: ["color", "color", "autoColor", "autoColor"] }], ngImport: i0, template: "@if (imageUrl()) {\n <img [src]=\"imageUrl()\" [alt]=\"altText()\" />\n} @else if (icon()) {\n <i class=\"icon\" [title]=\"altText()\" [ngClass]=\"icon()\"></i>\n} @else {\n <div\n class=\"initials\"\n [class.text-body]=\"color() === 0\"\n [title]=\"altText()\"\n [attr.aria-label]=\"altText()\"\n >{{ displayInitials }}</div\n >\n}\n@if (statusIcon) {\n <si-icon\n size=\"indicator-size\"\n class=\"indicator\"\n [alt]=\"statusAriaLabel() ?? ''\"\n [icon]=\"statusIcon.icon\"\n [color]=\"statusIcon.color\"\n [stackedIcon]=\"statusIcon.stacked\"\n [stackedColor]=\"statusIcon.stackedColor\"\n />\n}\n", styles: [":host{--avatar-size: 40px;--indicator-size: 24px;--background: var(--element-base-0);--indicator-offset-x: -12px;--indicator-offset-y: -8px;flex:0 0 auto;display:inline-flex;vertical-align:middle;color:var(--element-text-inverse);position:relative;align-items:center;justify-content:center;inline-size:var(--avatar-size);block-size:var(--avatar-size);border-radius:50%;background:var(--background)}:host.tiny,:host.xsmall,:host.small{--initials-size: .875rem;--indicator-size: 16px;--indicator-offset-x: -8px;--indicator-offset-y: -4px}:host.tiny{--avatar-size: 24px}:host.xsmall{--avatar-size: 28px}:host.small{--avatar-size: 32px}:host.large{--avatar-size: 56px}:host.xlarge{--avatar-size: 80px}.initials{font-weight:700;font-size:var(--initials-size, 1.125rem);line-height:1}img{inline-size:var(--avatar-size);block-size:var(--avatar-size);border-radius:50%}.indicator{position:absolute;inset-block-start:var(--indicator-offset-y);inset-inline-end:var(--indicator-offset-x);font-size:var(--indicator-size)}.indicator ::ng-deep span{text-shadow:-1px 0 var(--element-base-1),0 1px var(--element-base-1),1px 0 var(--element-base-1),0 -1px var(--element-base-1)}.indicator ::ng-deep i{text-shadow:none}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: SiIconModule }, { kind: "component", type: i2.SiIconComponent, selector: "si-icon", inputs: ["icon", "color", "stackedIcon", "stackedColor", "alt", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
159
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiAvatarComponent, isStandalone: true, selector: "si-avatar", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, imageUrl: { classPropertyName: "imageUrl", publicName: "imageUrl", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, initials: { classPropertyName: "initials", publicName: "initials", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, altText: { classPropertyName: "altText", publicName: "altText", isSignal: true, isRequired: true, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, statusAriaLabel: { classPropertyName: "statusAriaLabel", publicName: "statusAriaLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "size()" } }, usesOnChanges: true, hostDirectives: [{ directive: SiAvatarBackgroundColorDirective, inputs: ["color", "color", "autoColor", "autoColor"] }], ngImport: i0, template: "@if (imageUrl()) {\n <img [src]=\"imageUrl()\" [alt]=\"altText()\" />\n} @else if (icon()) {\n <i class=\"icon\" [title]=\"altText()\" [ngClass]=\"icon()\"></i>\n} @else {\n <div\n class=\"initials\"\n [class.text-body]=\"color() === 0\"\n [title]=\"altText()\"\n [attr.aria-label]=\"altText()\"\n >{{ displayInitials }}</div\n >\n}\n@let iconConfig = statusIcon();\n@if (iconConfig) {\n <span class=\"indicator-size indicator icon-stack\">\n <si-icon-next class=\"drop-shadow\" [ngClass]=\"iconConfig.color\" [icon]=\"iconConfig.icon\" />\n <si-icon-next [ngClass]=\"iconConfig.stackedColor\" [icon]=\"iconConfig.stacked\" />\n </span>\n}\n", styles: [":host{--avatar-size: 40px;--indicator-size: 24px;--background: var(--element-base-0);--indicator-offset-x: -12px;--indicator-offset-y: -8px;flex:0 0 auto;display:inline-flex;vertical-align:middle;color:var(--element-text-inverse);position:relative;align-items:center;justify-content:center;inline-size:var(--avatar-size);block-size:var(--avatar-size);border-radius:50%;background:var(--background)}:host.tiny,:host.xsmall,:host.small{--initials-size: .875rem;--indicator-size: 16px;--indicator-offset-x: -8px;--indicator-offset-y: -4px}:host.tiny{--avatar-size: 24px}:host.xsmall{--avatar-size: 28px}:host.small{--avatar-size: 32px}:host.large{--avatar-size: 56px}:host.xlarge{--avatar-size: 80px}.initials{font-weight:700;font-size:var(--initials-size, 1.125rem);line-height:1}img{inline-size:var(--avatar-size);block-size:var(--avatar-size);border-radius:50%}.indicator{position:absolute;inset-block-start:var(--indicator-offset-y);inset-inline-end:var(--indicator-offset-x);font-size:var(--indicator-size)}.indicator .drop-shadow ::ng-deep svg{filter:drop-shadow(1px 0 0 var(--element-base-1)) drop-shadow(-1px 0 0 var(--element-base-1)) drop-shadow(0 1px 0 var(--element-base-1)) drop-shadow(0 -1px 0 var(--element-base-1))}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SiIconNextComponent, selector: "si-icon-next", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
162
160
  }
163
161
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiAvatarComponent, decorators: [{
164
162
  type: Component,
165
- args: [{ selector: 'si-avatar', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgClass, SiIconModule], hostDirectives: [
163
+ args: [{ selector: 'si-avatar', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgClass, SiIconNextComponent], hostDirectives: [
166
164
  {
167
165
  directive: SiAvatarBackgroundColorDirective,
168
166
  inputs: ['color', 'autoColor']
169
167
  }
170
168
  ], host: {
171
169
  '[class]': 'size()'
172
- }, template: "@if (imageUrl()) {\n <img [src]=\"imageUrl()\" [alt]=\"altText()\" />\n} @else if (icon()) {\n <i class=\"icon\" [title]=\"altText()\" [ngClass]=\"icon()\"></i>\n} @else {\n <div\n class=\"initials\"\n [class.text-body]=\"color() === 0\"\n [title]=\"altText()\"\n [attr.aria-label]=\"altText()\"\n >{{ displayInitials }}</div\n >\n}\n@if (statusIcon) {\n <si-icon\n size=\"indicator-size\"\n class=\"indicator\"\n [alt]=\"statusAriaLabel() ?? ''\"\n [icon]=\"statusIcon.icon\"\n [color]=\"statusIcon.color\"\n [stackedIcon]=\"statusIcon.stacked\"\n [stackedColor]=\"statusIcon.stackedColor\"\n />\n}\n", styles: [":host{--avatar-size: 40px;--indicator-size: 24px;--background: var(--element-base-0);--indicator-offset-x: -12px;--indicator-offset-y: -8px;flex:0 0 auto;display:inline-flex;vertical-align:middle;color:var(--element-text-inverse);position:relative;align-items:center;justify-content:center;inline-size:var(--avatar-size);block-size:var(--avatar-size);border-radius:50%;background:var(--background)}:host.tiny,:host.xsmall,:host.small{--initials-size: .875rem;--indicator-size: 16px;--indicator-offset-x: -8px;--indicator-offset-y: -4px}:host.tiny{--avatar-size: 24px}:host.xsmall{--avatar-size: 28px}:host.small{--avatar-size: 32px}:host.large{--avatar-size: 56px}:host.xlarge{--avatar-size: 80px}.initials{font-weight:700;font-size:var(--initials-size, 1.125rem);line-height:1}img{inline-size:var(--avatar-size);block-size:var(--avatar-size);border-radius:50%}.indicator{position:absolute;inset-block-start:var(--indicator-offset-y);inset-inline-end:var(--indicator-offset-x);font-size:var(--indicator-size)}.indicator ::ng-deep span{text-shadow:-1px 0 var(--element-base-1),0 1px var(--element-base-1),1px 0 var(--element-base-1),0 -1px var(--element-base-1)}.indicator ::ng-deep i{text-shadow:none}\n"] }]
170
+ }, template: "@if (imageUrl()) {\n <img [src]=\"imageUrl()\" [alt]=\"altText()\" />\n} @else if (icon()) {\n <i class=\"icon\" [title]=\"altText()\" [ngClass]=\"icon()\"></i>\n} @else {\n <div\n class=\"initials\"\n [class.text-body]=\"color() === 0\"\n [title]=\"altText()\"\n [attr.aria-label]=\"altText()\"\n >{{ displayInitials }}</div\n >\n}\n@let iconConfig = statusIcon();\n@if (iconConfig) {\n <span class=\"indicator-size indicator icon-stack\">\n <si-icon-next class=\"drop-shadow\" [ngClass]=\"iconConfig.color\" [icon]=\"iconConfig.icon\" />\n <si-icon-next [ngClass]=\"iconConfig.stackedColor\" [icon]=\"iconConfig.stacked\" />\n </span>\n}\n", styles: [":host{--avatar-size: 40px;--indicator-size: 24px;--background: var(--element-base-0);--indicator-offset-x: -12px;--indicator-offset-y: -8px;flex:0 0 auto;display:inline-flex;vertical-align:middle;color:var(--element-text-inverse);position:relative;align-items:center;justify-content:center;inline-size:var(--avatar-size);block-size:var(--avatar-size);border-radius:50%;background:var(--background)}:host.tiny,:host.xsmall,:host.small{--initials-size: .875rem;--indicator-size: 16px;--indicator-offset-x: -8px;--indicator-offset-y: -4px}:host.tiny{--avatar-size: 24px}:host.xsmall{--avatar-size: 28px}:host.small{--avatar-size: 32px}:host.large{--avatar-size: 56px}:host.xlarge{--avatar-size: 80px}.initials{font-weight:700;font-size:var(--initials-size, 1.125rem);line-height:1}img{inline-size:var(--avatar-size);block-size:var(--avatar-size);border-radius:50%}.indicator{position:absolute;inset-block-start:var(--indicator-offset-y);inset-inline-end:var(--indicator-offset-x);font-size:var(--indicator-size)}.indicator .drop-shadow ::ng-deep svg{filter:drop-shadow(1px 0 0 var(--element-base-1)) drop-shadow(-1px 0 0 var(--element-base-1)) drop-shadow(0 1px 0 var(--element-base-1)) drop-shadow(0 -1px 0 var(--element-base-1))}\n"] }]
173
171
  }] });
174
172
 
175
173
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-avatar.mjs","sources":["../../../../projects/element-ng/avatar/si-avatar-background-color.directive.ts","../../../../projects/element-ng/avatar/si-avatar.component.ts","../../../../projects/element-ng/avatar/si-avatar.component.html","../../../../projects/element-ng/avatar/index.ts","../../../../projects/element-ng/avatar/siemens-element-ng-avatar.ts"],"sourcesContent":["/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n Directive,\n input,\n numberAttribute,\n OnChanges,\n signal,\n SimpleChanges\n} from '@angular/core';\n\nconst DATA_COLORS_MAX = 17;\nconst DATA_COLOR_NEUTRAL = 17;\nconst ASCII_CODE_INDEX_A = 64;\n\n/**\n * The directive provide a CSS variable --background with a color based on the initials or alt text.\n */\n@Directive({\n selector: '[siAvatarBackgroundColor]',\n host: {\n '[style.--background]': 'backgroundStyle()'\n }\n})\nexport class SiAvatarBackgroundColorDirective implements OnChanges {\n /**\n * The desired color index from $element-data-* color tokens. This can be set to any kind of\n * positive integer that is then mapped to a color index.\n * A better way to set a pseudo-random color is to set {@link autoColor} to `true`.\n *\n * @defaultValue undefined\n */\n readonly color = input<number | undefined, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * Automatically calculates the background color.\n * If set, {@link color} will be ignored.\n *\n * @defaultValue false\n */\n readonly autoColor = input(false, { transform: booleanAttribute });\n\n protected readonly backgroundStyle = signal<string | undefined>('var(--element-data-17)');\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.color) {\n this.setColor(this.color());\n }\n }\n\n /**\n * Update background color variable based on the initials or placeholder text.\n */\n public calculateColorFromInitials(displayInitials?: string): void {\n if (!this.autoColor() || !displayInitials) {\n return;\n }\n\n let color = 0;\n for (let i = 0; i < displayInitials.length; i++) {\n color *= 17; // this prevents 'JD' to have the same color as 'DJ'\n color += displayInitials.charCodeAt(i) - ASCII_CODE_INDEX_A;\n }\n this.setColor(color);\n }\n\n private setColor(color?: number): void {\n if (this.color() === 0) {\n this.backgroundStyle.set(undefined);\n } else {\n const actualColor = color ?? DATA_COLOR_NEUTRAL;\n const colorIndex = ((actualColor - 1) % DATA_COLORS_MAX) + 1;\n this.backgroundStyle.set(`var(--element-data-${colorIndex})`);\n }\n }\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n input,\n numberAttribute,\n OnChanges,\n SimpleChanges\n} from '@angular/core';\nimport { EntityStatusType, STATUS_ICON, StatusIcon } from '@siemens/element-ng/common';\nimport { SiIconModule } from '@siemens/element-ng/icon';\nimport { TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiAvatarBackgroundColorDirective } from './si-avatar-background-color.directive';\n\nexport type AvatarSize = 'tiny' | 'xsmall' | 'small' | 'regular' | 'large' | 'xlarge';\n\n@Component({\n selector: 'si-avatar',\n templateUrl: './si-avatar.component.html',\n styleUrl: './si-avatar.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass, SiIconModule],\n hostDirectives: [\n {\n directive: SiAvatarBackgroundColorDirective,\n inputs: ['color', 'autoColor']\n }\n ],\n host: {\n '[class]': 'size()'\n }\n})\nexport class SiAvatarComponent implements OnChanges {\n /**\n * Size of the component.\n *\n * @defaultValue 'regular'\n */\n readonly size = input<AvatarSize>('regular');\n /** Image src URL when using an image. */\n readonly imageUrl = input<string>();\n /** Icon name when using an icon. */\n readonly icon = input<string>();\n /**\n * Initials to be displayed as default avatar if no `icon` or `imageUrl` are provided.\n * If also no initials are provided, they will be automatically calculated from the `altText`.\n * The value will be used to calculate the background color when `autoColor` is true.\n */\n readonly initials = input<string>();\n /**\n * The desired color index from $element-data-* color tokens. This can be set to any kind of\n * positive integer that is then mapped to a color index.\n * A better way to set a pseudo-random color is to set * {@link autoColor} to `true`.\n *\n * @defaultValue undefined\n */\n readonly color = input<number | undefined, unknown>(undefined, { transform: numberAttribute });\n /** The `alt` text for image, `title` for other modes. */\n readonly altText = input.required<string>();\n /**\n * The status (success, info, warning, caution, danger, critical, pending, progress) to be\n * visualized.\n */\n readonly status = input<EntityStatusType>();\n /**\n * aria-label for status\n */\n readonly statusAriaLabel = input<TranslatableString>();\n\n protected statusIcon?: StatusIcon;\n protected displayInitials?: string;\n private readonly autoBackgroundColorDirective = inject(SiAvatarBackgroundColorDirective);\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.status) {\n const status = this.status();\n this.statusIcon = status ? STATUS_ICON[status] : undefined;\n }\n\n if (changes.initials || changes.altText) {\n this.setInitials();\n this.autoBackgroundColorDirective.calculateColorFromInitials(this.displayInitials);\n }\n }\n\n private setInitials(): void {\n const initials = this.initials();\n if (initials) {\n this.displayInitials = initials;\n } else {\n const name = this.altText()\n .replaceAll(/\\([^)]*\\)/g, '')\n .trim();\n const byComma = name.split(/,\\s*/);\n let first: string;\n let last: string;\n if (byComma.length > 1) {\n last = byComma[0];\n first = byComma[1];\n } else {\n const parts = name.split(' ');\n first = parts.shift() ?? '';\n last = parts.pop() ?? '';\n }\n if (first) {\n first = first[0].toLocaleUpperCase();\n }\n if (last) {\n last = last[0].toLocaleUpperCase();\n }\n this.displayInitials = first + last;\n }\n }\n}\n","@if (imageUrl()) {\n <img [src]=\"imageUrl()\" [alt]=\"altText()\" />\n} @else if (icon()) {\n <i class=\"icon\" [title]=\"altText()\" [ngClass]=\"icon()\"></i>\n} @else {\n <div\n class=\"initials\"\n [class.text-body]=\"color() === 0\"\n [title]=\"altText()\"\n [attr.aria-label]=\"altText()\"\n >{{ displayInitials }}</div\n >\n}\n@if (statusIcon) {\n <si-icon\n size=\"indicator-size\"\n class=\"indicator\"\n [alt]=\"statusAriaLabel() ?? ''\"\n [icon]=\"statusIcon.icon\"\n [color]=\"statusIcon.color\"\n [stackedIcon]=\"statusIcon.stacked\"\n [stackedColor]=\"statusIcon.stackedColor\"\n />\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-avatar-background-color.directive';\nexport * from './si-avatar.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.SiAvatarBackgroundColorDirective"],"mappings":"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"}
1
+ {"version":3,"file":"siemens-element-ng-avatar.mjs","sources":["../../../../projects/element-ng/avatar/si-avatar-background-color.directive.ts","../../../../projects/element-ng/avatar/si-avatar.component.ts","../../../../projects/element-ng/avatar/si-avatar.component.html","../../../../projects/element-ng/avatar/index.ts","../../../../projects/element-ng/avatar/siemens-element-ng-avatar.ts"],"sourcesContent":["/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n Directive,\n input,\n numberAttribute,\n OnChanges,\n signal,\n SimpleChanges\n} from '@angular/core';\n\nconst DATA_COLORS_MAX = 17;\nconst DATA_COLOR_NEUTRAL = 17;\nconst ASCII_CODE_INDEX_A = 64;\n\n/**\n * The directive provide a CSS variable --background with a color based on the initials or alt text.\n */\n@Directive({\n selector: '[siAvatarBackgroundColor]',\n host: {\n '[style.--background]': 'backgroundStyle()'\n }\n})\nexport class SiAvatarBackgroundColorDirective implements OnChanges {\n /**\n * The desired color index from $element-data-* color tokens. This can be set to any kind of\n * positive integer that is then mapped to a color index.\n * A better way to set a pseudo-random color is to set {@link autoColor} to `true`.\n *\n * @defaultValue undefined\n */\n readonly color = input<number | undefined, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * Automatically calculates the background color.\n * If set, {@link color} will be ignored.\n *\n * @defaultValue false\n */\n readonly autoColor = input(false, { transform: booleanAttribute });\n\n protected readonly backgroundStyle = signal<string | undefined>('var(--element-data-17)');\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.color) {\n this.setColor(this.color());\n }\n }\n\n /**\n * Update background color variable based on the initials or placeholder text.\n */\n public calculateColorFromInitials(displayInitials?: string): void {\n if (!this.autoColor() || !displayInitials) {\n return;\n }\n\n let color = 0;\n for (let i = 0; i < displayInitials.length; i++) {\n color *= 17; // this prevents 'JD' to have the same color as 'DJ'\n color += displayInitials.charCodeAt(i) - ASCII_CODE_INDEX_A;\n }\n this.setColor(color);\n }\n\n private setColor(color?: number): void {\n if (this.color() === 0) {\n this.backgroundStyle.set(undefined);\n } else {\n const actualColor = color ?? DATA_COLOR_NEUTRAL;\n const colorIndex = ((actualColor - 1) % DATA_COLORS_MAX) + 1;\n this.backgroundStyle.set(`var(--element-data-${colorIndex})`);\n }\n }\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n numberAttribute,\n OnChanges,\n SimpleChanges\n} from '@angular/core';\nimport { EntityStatusType } from '@siemens/element-ng/common';\nimport { SiIconNextComponent, STATUS_ICON_CONFIG } from '@siemens/element-ng/icon';\nimport { TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiAvatarBackgroundColorDirective } from './si-avatar-background-color.directive';\n\nexport type AvatarSize = 'tiny' | 'xsmall' | 'small' | 'regular' | 'large' | 'xlarge';\n\n@Component({\n selector: 'si-avatar',\n templateUrl: './si-avatar.component.html',\n styleUrl: './si-avatar.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass, SiIconNextComponent],\n hostDirectives: [\n {\n directive: SiAvatarBackgroundColorDirective,\n inputs: ['color', 'autoColor']\n }\n ],\n host: {\n '[class]': 'size()'\n }\n})\nexport class SiAvatarComponent implements OnChanges {\n private readonly statusIcons = inject(STATUS_ICON_CONFIG);\n /**\n * Size of the component.\n *\n * @defaultValue 'regular'\n */\n readonly size = input<AvatarSize>('regular');\n /** Image src URL when using an image. */\n readonly imageUrl = input<string>();\n /** Icon name when using an icon. */\n readonly icon = input<string>();\n /**\n * Initials to be displayed as default avatar if no `icon` or `imageUrl` are provided.\n * If also no initials are provided, they will be automatically calculated from the `altText`.\n * The value will be used to calculate the background color when `autoColor` is true.\n */\n readonly initials = input<string>();\n /**\n * The desired color index from $element-data-* color tokens. This can be set to any kind of\n * positive integer that is then mapped to a color index.\n * A better way to set a pseudo-random color is to set * {@link autoColor} to `true`.\n *\n * @defaultValue undefined\n */\n readonly color = input<number | undefined, unknown>(undefined, { transform: numberAttribute });\n /** The `alt` text for image, `title` for other modes. */\n readonly altText = input.required<string>();\n /**\n * The status (success, info, warning, caution, danger, critical, pending, progress) to be\n * visualized.\n */\n readonly status = input<EntityStatusType>();\n /**\n * aria-label for status\n */\n readonly statusAriaLabel = input<TranslatableString>();\n\n protected readonly statusIcon = computed(() => {\n const status = this.status();\n return status ? this.statusIcons[status] : undefined;\n });\n protected displayInitials?: string;\n private readonly autoBackgroundColorDirective = inject(SiAvatarBackgroundColorDirective);\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.initials || changes.altText) {\n this.setInitials();\n this.autoBackgroundColorDirective.calculateColorFromInitials(this.displayInitials);\n }\n }\n\n private setInitials(): void {\n const initials = this.initials();\n if (initials) {\n this.displayInitials = initials;\n } else {\n const name = this.altText()\n .replaceAll(/\\([^)]*\\)/g, '')\n .trim();\n const byComma = name.split(/,\\s*/);\n let first: string;\n let last: string;\n if (byComma.length > 1) {\n last = byComma[0];\n first = byComma[1];\n } else {\n const parts = name.split(' ');\n first = parts.shift() ?? '';\n last = parts.pop() ?? '';\n }\n if (first) {\n first = first[0].toLocaleUpperCase();\n }\n if (last) {\n last = last[0].toLocaleUpperCase();\n }\n this.displayInitials = first + last;\n }\n }\n}\n","@if (imageUrl()) {\n <img [src]=\"imageUrl()\" [alt]=\"altText()\" />\n} @else if (icon()) {\n <i class=\"icon\" [title]=\"altText()\" [ngClass]=\"icon()\"></i>\n} @else {\n <div\n class=\"initials\"\n [class.text-body]=\"color() === 0\"\n [title]=\"altText()\"\n [attr.aria-label]=\"altText()\"\n >{{ displayInitials }}</div\n >\n}\n@let iconConfig = statusIcon();\n@if (iconConfig) {\n <span class=\"indicator-size indicator icon-stack\">\n <si-icon-next class=\"drop-shadow\" [ngClass]=\"iconConfig.color\" [icon]=\"iconConfig.icon\" />\n <si-icon-next [ngClass]=\"iconConfig.stackedColor\" [icon]=\"iconConfig.stacked\" />\n </span>\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-avatar-background-color.directive';\nexport * from './si-avatar.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.SiAvatarBackgroundColorDirective"],"mappings":"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"}
@@ -198,16 +198,21 @@ class SiIconNextComponent {
198
198
  .toLowerCase();
199
199
  }
200
200
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiIconNextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
201
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.6", type: SiIconNextComponent, isStandalone: true, selector: "si-icon-next", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: true, transformFunction: null } }, host: { attributes: { "aria-hidden": "true" }, properties: { "class": "svgIcon() ? \"svg-icon\" : fontIcon()", "innerHTML": "svgIcon()" } }, ngImport: i0, template: ``, isInline: true, styles: [":host{display:inline-block;font-weight:400;vertical-align:middle;line-height:1}:host.svg-icon ::ng-deep svg{display:block;block-size:1em;fill:currentColor}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
201
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.6", type: SiIconNextComponent, isStandalone: true, selector: "si-icon-next", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "attr.data-icon": "icon()" } }, ngImport: i0, template: ` <div
202
+ aria-hidden="true"
203
+ [ngClass]="svgIcon() ? '' : fontIcon()"
204
+ [innerHTML]="svgIcon()"
205
+ ></div>`, isInline: true, styles: [":host{display:inline-flex;font-weight:400;vertical-align:middle;line-height:1}:host ::ng-deep svg{display:block;block-size:1em;fill:currentColor}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
202
206
  }
203
207
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiIconNextComponent, decorators: [{
204
208
  type: Component,
205
- args: [{ selector: 'si-icon-next', template: ``, host: {
206
- '[class]': 'svgIcon() ? "svg-icon" : fontIcon()',
207
- '[innerHTML]': 'svgIcon()',
208
- // TODO: remove and actually hide the icon content. But wait until: https://github.com/microsoft/playwright/issues/35737 and https://github.com/dequelabs/axe-core/issues/4763 are fixed.
209
- 'aria-hidden': 'true'
210
- }, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:inline-block;font-weight:400;vertical-align:middle;line-height:1}:host.svg-icon ::ng-deep svg{display:block;block-size:1em;fill:currentColor}\n"] }]
209
+ args: [{ selector: 'si-icon-next', template: ` <div
210
+ aria-hidden="true"
211
+ [ngClass]="svgIcon() ? '' : fontIcon()"
212
+ [innerHTML]="svgIcon()"
213
+ ></div>`, host: {
214
+ '[attr.data-icon]': 'icon()'
215
+ }, imports: [NgClass], changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:inline-flex;font-weight:400;vertical-align:middle;line-height:1}:host ::ng-deep svg{display:block;block-size:1em;fill:currentColor}\n"] }]
211
216
  }] });
212
217
 
213
218
  /**
@@ -222,6 +227,119 @@ const elementExport = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/200
222
227
  const elementThumbnails = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><circle cx='144' cy='144' r='24'/><circle cx='368' cy='144' r='24'/><circle cx='256' cy='144' r='24'/><circle cx='144' cy='368' r='24'/><circle cx='368' cy='368' r='24'/><circle cx='256' cy='368' r='24'/><circle cx='144' cy='256' r='24'/><circle cx='368' cy='256' r='24'/><circle cx='256' cy='256' r='24'/></svg>";
223
228
  const elementOptionsVertical = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M284 256a28 28 0 1 1-28-28 28 28 0 0 1 28 28ZM284 144a28 28 0 1 1-28-28 28 28 0 0 1 28 28ZM284 368a28 28 0 1 1-28-28 28 28 0 0 1 28 28Z'/></svg>";
224
229
  const elementMenu = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M400 244H112a12 12 0 0 0 0 24h288a12 12 0 0 0 0-24ZM400 148H112a12 12 0 0 0 0 24h288a12 12 0 0 0 0-24ZM400 340H112a12 12 0 0 0 0 24h288a12 12 0 0 0 0-24Z'/></svg>";
230
+ const elementCircleFilled = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M256 64C150.13 64 64 150.13 64 256s86.13 192 192 192 192-86.13 192-192S361.87 64 256 64Z'/></svg>";
231
+ const elementOctagonFilled = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M320.2 77H191.8a24 24 0 0 0-17 7L84 174.83a24 24 0 0 0-7 17V320.2a24 24 0 0 0 7 17l90.8 90.8a24 24 0 0 0 17 7h128.4a24 24 0 0 0 17-7l90.8-90.8a24 24 0 0 0 7-17V191.8a24 24 0 0 0-7-17L337.17 84a24 24 0 0 0-16.97-7Z'/></svg>";
232
+ const elementSquare45Filled = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><rect x='113.17' y='113.17' width='285.65' height='285.65' rx='24' transform='rotate(-45 256 256.002)'/></svg>";
233
+ const elementSquareFilled = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><rect x='88' y='88' width='336' height='336' rx='48'/></svg>";
234
+ const elementStateExclamationMark = "data:image/svg+xml;utf8,<svg id='Icon' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><defs><style>.cls-1{stroke-width:0}</style></defs><path class='cls-1' d='M256 279.12c-11.05 0-20-8.95-20-20v-89.8c0-11.05 8.95-20 20-20s20 8.95 20 20v89.8c0 11.05-8.95 20-20 20ZM256.17 359.03h-.34c-13.16 0-23.83-10.75-23.83-24s10.67-24 23.83-24h.34c13.16 0 23.83 10.75 23.83 24s-10.67 24-23.83 24Z'/></svg>";
235
+ const elementStateInfo = "data:image/svg+xml;utf8,<svg id='Icon' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><defs><style>.cls-1{stroke-width:0}</style></defs><path class='cls-1' d='M256 356c-11.05 0-20-8.95-20-20v-80c0-11.05 8.95-20 20-20s20 8.95 20 20v80c0 11.05-8.95 20-20 20ZM256.17 156.32h-.34c-13.16 0-23.83 10.75-23.83 24s10.67 24 23.83 24h.34c13.16 0 23.83-10.75 23.83-24s-10.67-24-23.83-24Z'/></svg>";
236
+ const elementStatePause = "data:image/svg+xml;utf8,<svg id='Icon' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><defs><style>.cls-1{stroke-width:0}</style></defs><path class='cls-1' d='M222 349.5c-11.05 0-20-8.95-20-20v-147c0-11.05 8.95-20 20-20s20 8.95 20 20v147c0 11.05-8.95 20-20 20ZM290 349.5c-11.05 0-20-8.95-20-20v-147c0-11.05 8.95-20 20-20s20 8.95 20 20v147c0 11.05-8.95 20-20 20Z'/></svg>";
237
+ const elementStateProgress = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M270.43 253.68V114.43c69.75 0 127.15 62.86 127.15 139.26 0 38.04-14.23 74.47-39.36 100.74l-87.79-100.74Z'/></svg>";
238
+ const elementStateQuestionMark = "data:image/svg+xml;utf8,<svg id='Icon' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><defs><style>.cls-1{stroke-width:0}</style></defs><path class='cls-1' d='M256 311c-11.05 0-20-8.95-20-20v-29.22a19.994 19.994 0 0 1 13.63-18.96c10.43-3.62 33.09-15.84 33.09-28.82.02-11.91-7.5-22.54-18.71-26.49-14.56-5.12-30.58 2.56-35.7 17.12-3.67 10.42-15.08 15.9-25.5 12.23s-15.9-15.08-12.23-25.5c12.44-35.37 51.34-54.02 86.71-41.58 27.22 9.58 45.48 35.4 45.44 64.25 0 13.92-5.57 34.34-32.11 52.4-5.12 3.49-10.2 6.31-14.61 8.5V291c0 11.05-8.95 20-20 20ZM256.16 375h-.32c-13.17 0-23.84-10.75-23.84-24s10.67-24 23.84-24h.32c13.17 0 23.84 10.75 23.84 24s-10.67 24-23.84 24Z'/></svg>";
239
+ const elementStateTick = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M222.25 345.88c-5.12 0-10.24-1.95-14.14-5.86l-56.25-56.25c-7.81-7.81-7.81-20.47 0-28.29s20.47-7.81 28.28 0l42.11 42.11 109.61-109.61c7.81-7.81 20.47-7.81 28.28 0s7.81 20.47 0 28.29L236.39 340.02a19.92 19.92 0 0 1-14.14 5.86Z' style='stroke-width:0'/></svg>";
240
+ const elementTriangleFilled = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='m441.77 338.25-.1-.17L295.72 94.42a46.45 46.45 0 0 0-79.44 0 .21.21 0 0 0 0 .06L70.32 338.08l-.1.17a46.45 46.45 0 0 0 39.72 69.68h292.11a46.46 46.46 0 0 0 39.72-69.68Z'/></svg>";
241
+
242
+ /**
243
+ * Copyright Siemens 2016 - 2025.
244
+ * SPDX-License-Identifier: MIT
245
+ */
246
+ /**
247
+ * The status icon configuration.
248
+ *
249
+ * @experimental
250
+ */
251
+ const STATUS_ICON_CONFIG = new InjectionToken('STATUS_ICON_CONFIG', {
252
+ providedIn: 'root',
253
+ factory: () => {
254
+ addIcons({
255
+ elementCircleFilled,
256
+ elementOctagonFilled,
257
+ elementSquare45Filled,
258
+ elementSquareFilled,
259
+ elementStateExclamationMark,
260
+ elementStateInfo,
261
+ elementStatePause,
262
+ elementStateProgress,
263
+ elementStateQuestionMark,
264
+ elementStateTick,
265
+ elementTriangleFilled
266
+ });
267
+ return {
268
+ success: {
269
+ icon: 'elementCircleFilled',
270
+ color: 'status-success',
271
+ stacked: 'elementStateTick',
272
+ stackedColor: 'status-success-contrast',
273
+ background: 'bg-base-success',
274
+ severity: 5
275
+ },
276
+ info: {
277
+ icon: 'elementSquareFilled',
278
+ color: 'status-info',
279
+ stacked: 'elementStateInfo',
280
+ stackedColor: 'status-info-contrast',
281
+ background: 'bg-base-info',
282
+ severity: 4
283
+ },
284
+ caution: {
285
+ icon: 'elementSquare45Filled',
286
+ color: 'status-caution',
287
+ stacked: 'elementStateExclamationMark',
288
+ stackedColor: 'status-caution-contrast',
289
+ background: 'bg-base-caution',
290
+ severity: 3
291
+ },
292
+ warning: {
293
+ icon: 'elementTriangleFilled',
294
+ color: 'status-warning',
295
+ stacked: 'elementStateExclamationMark',
296
+ stackedColor: 'status-warning-contrast',
297
+ background: 'bg-base-warning',
298
+ severity: 2
299
+ },
300
+ danger: {
301
+ icon: 'elementCircleFilled',
302
+ color: 'status-danger',
303
+ stacked: 'elementStateExclamationMark',
304
+ stackedColor: 'status-danger-contrast',
305
+ background: 'bg-base-danger',
306
+ severity: 1
307
+ },
308
+ critical: {
309
+ icon: 'elementOctagonFilled',
310
+ color: 'status-critical',
311
+ stacked: 'elementStateExclamationMark',
312
+ stackedColor: 'status-critical-contrast',
313
+ background: 'bg-base-danger',
314
+ severity: 0
315
+ },
316
+ progress: {
317
+ icon: 'elementCircleFilled',
318
+ color: 'status-info',
319
+ stacked: 'elementStateProgress',
320
+ stackedColor: 'status-info-contrast',
321
+ background: 'bg-base-info',
322
+ severity: 7
323
+ },
324
+ pending: {
325
+ icon: 'elementCircleFilled',
326
+ color: 'status-caution',
327
+ stacked: 'elementStatePause',
328
+ stackedColor: 'status-caution-contrast',
329
+ background: 'bg-base-caution',
330
+ severity: 6
331
+ },
332
+ unknown: {
333
+ icon: 'elementCircleFilled',
334
+ color: 'status-neutral',
335
+ stacked: 'elementStateQuestionMark',
336
+ stackedColor: 'text-body',
337
+ background: 'bg-base-0',
338
+ severity: 8
339
+ }
340
+ };
341
+ }
342
+ });
225
343
 
226
344
  /**
227
345
  * Copyright Siemens 2016 - 2025.
@@ -232,5 +350,5 @@ const elementMenu = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/
232
350
  * Generated bundle index. Do not edit.
233
351
  */
234
352
 
235
- export { SiIconComponent, SiIconModule, SiIconNextComponent, addIcons, elementCancel, elementDown2, elementExport, elementFavorites, elementFavoritesFilled, elementMenu, elementOptionsVertical, elementThumbnails, provideIconConfig };
353
+ export { STATUS_ICON_CONFIG, SiIconComponent, SiIconModule, SiIconNextComponent, addIcons, elementCancel, elementCircleFilled, elementDown2, elementExport, elementFavorites, elementFavoritesFilled, elementMenu, elementOctagonFilled, elementOptionsVertical, elementSquare45Filled, elementSquareFilled, elementStateExclamationMark, elementStateInfo, elementStatePause, elementStateProgress, elementStateQuestionMark, elementStateTick, elementThumbnails, elementTriangleFilled, provideIconConfig };
236
354
  //# sourceMappingURL=siemens-element-ng-icon.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-icon.mjs","sources":["../../../../projects/element-ng/icon/si-icon.component.ts","../../../../projects/element-ng/icon/si-icon.component.html","../../../../projects/element-ng/icon/si-icon.module.ts","../../../../projects/element-ng/icon/si-icons.ts","../../../../projects/element-ng/icon/si-icon-next.component.ts","../../../../projects/element-ng/icon/element-icons.ts","../../../../projects/element-ng/icon/index.ts","../../../../projects/element-ng/icon/siemens-element-ng-icon.ts"],"sourcesContent":["/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { SiTranslateModule, TranslatableString } from '@siemens/element-translate-ng/translate';\n\n@Component({\n selector: 'si-icon',\n templateUrl: './si-icon.component.html',\n styles: ':host, span { line-height: 1; }',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass, SiTranslateModule]\n})\nexport class SiIconComponent {\n /** Icon token, see {@link https://element.siemens.io/icons/element} */\n readonly icon = input<string>();\n /** Color class, see {@link https://element.siemens.io/fundamentals/typography/#color-variants-classes} */\n readonly color = input<string>();\n /** Icon token, see {@link https://element.siemens.io/fundamentals/icons/} */\n readonly stackedIcon = input<string>();\n /** Color class, see {@link https://element.siemens.io/fundamentals/icons/} */\n readonly stackedColor = input<string>();\n /** Alternative name or translation key for icon. Used for A11y. */\n readonly alt = input<TranslatableString>();\n /**\n * Text-size class for icon size, see {@link https://element.siemens.io/fundamentals/typography/#type-styles-classes}\n *\n * @defaultValue 'icon'\n */\n readonly size = input<string>('icon');\n\n protected readonly altText = computed(() => {\n return this.alt() ?? this.icon()?.replace('element-', '').split('-').join(' ') ?? '';\n });\n}\n","<span\n class=\"d-inline-block position-relative\"\n [attr.aria-label]=\"altText() ? (altText() | translate) : null\"\n [attr.aria-hidden]=\"!altText()\"\n [attr.role]=\"altText() ? 'img' : 'presentation'\"\n [ngClass]=\"[icon() ?? '', color() ?? '', size()]\"\n>\n @if (stackedIcon()) {\n <i\n class=\"position-absolute start-0\"\n aria-hidden=\"true\"\n [ngClass]=\"[stackedIcon(), stackedColor() ?? '']\"\n ></i>\n }\n</span>\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiIconComponent } from './si-icon.component';\n\n@NgModule({\n imports: [SiIconComponent],\n exports: [SiIconComponent]\n})\nexport class SiIconModule {}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { DestroyRef, inject, Injectable } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { SiThemeService } from '@siemens/element-ng/theme';\n\ninterface RegisteredIcon {\n content: SafeHtml | undefined;\n // Count how often an icon was registered to only remove it if it is no longer in use.\n referenceCount: number;\n}\n\nconst parseDataSvgIcon = (icon: string, domSanitizer: DomSanitizer): SafeHtml => {\n const parsed = /^data:image\\/svg\\+xml;utf8,(.*)$/.exec(icon);\n if (!parsed) {\n console.error('Failed to parse icon', icon);\n return '';\n }\n return domSanitizer.bypassSecurityTrustHtml(parsed[1]);\n};\n\nconst registeredIcons = new Map<string, RegisteredIcon>();\n\n/**\n * Adds the provided icons.\n * It requires an Angular InjectionContent.\n * The Icons are available until the component is destroyed.\n * Call this function only in the component which actually uses the icon.\n * Importing all icons on the global level is discouraged.\n *\n * When using a string instead of the object to use an icon,\n * use the kebab-case version of the icon name.\n *\n * @example\n * ```ts\n * import { elementIcon } from '@simpl/element-icons/ionic';\n * import { addIcons } from '@siemens/element-ng/icon'\n *\n * @Component({`<si-icon-next [icon]=\"icons.elementIcon\"`})\n * class MyComponent {\n * icons = addIcons({ elementIcon })\n * }\n * ```\n */\nexport const addIcons = <T extends string>(icons: Record<T, string>): Record<T, string> => {\n const iconMap = {} as Record<T, string>;\n const domSanitizer = inject(DomSanitizer);\n for (const [key, rawContent] of Object.entries<string>(icons)) {\n const registeredIcon = registeredIcons.get(key) ?? {\n content: parseDataSvgIcon(rawContent, domSanitizer),\n referenceCount: 0\n };\n registeredIcon.referenceCount++;\n registeredIcons.set(key, registeredIcon);\n iconMap[key as T] = key;\n }\n\n // Delete registered Icons after Component is destroyed to optimize memory usage.\n // WeakMap must not be used, as the Icon can only be removed on component destruction.\n // When using a WeakMap it would also get destroyed if it is not referenced, but the component may use it later again.\n inject(DestroyRef).onDestroy(() => {\n for (const key of Object.keys(icons)) {\n const registeredIcon = registeredIcons.get(key);\n if (registeredIcon!.referenceCount === 1) {\n registeredIcons.delete(key);\n } else {\n registeredIcon!.referenceCount--;\n }\n }\n });\n\n return iconMap;\n};\n\nconst getIcon = (key: string): SafeHtml | undefined => registeredIcons.get(key)?.content;\n\n@Injectable({ providedIn: 'root' })\nexport class IconService {\n private themeService = inject(SiThemeService);\n\n getIcon(name: string): SafeHtml | undefined {\n const camelCaseName = this.kebabToCamelCase(name);\n return this.themeService.themeIcons()[camelCaseName] ?? getIcon(camelCaseName);\n }\n\n private kebabToCamelCase(str: string): string {\n return str.replace(/-./g, match => match.charAt(1).toUpperCase());\n }\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n InjectionToken,\n input,\n Provider\n} from '@angular/core';\n\nimport { IconService } from './si-icons';\n\n/**\n * Global configuration for icons.\n *\n * @experimental\n */\nexport interface IconConfig {\n /**\n * If true, the si-icon-next component will always render the icon font instead of the svg.\n *\n * @defaultValue true\n */\n disableSvgIcons?: boolean;\n}\n\nconst ICON_CONFIG = new InjectionToken<IconConfig>('ICON_CONFIG', {\n providedIn: 'root',\n factory: () => ({ disableSvgIcons: true })\n});\n\n/**\n * Configure how Element handles icons. Provide only once in your global configuration.\n *\n * @experimental\n */\nexport const provideIconConfig = (config: IconConfig): Provider => ({\n provide: ICON_CONFIG,\n useValue: config\n});\n\n/**\n * Component to render a font or SVG icon depending on the configuration.\n * If no SVG icon is found, the component will fall back to render the icon-font.\n * In that case, an application must ensure that the icon font is loaded.\n * This component will only attach the respective class.\n *\n * The content of this component is hidden in the a11y tree.\n * If needed, the consumer must set proper labels.\n *\n * @experimental\n */\n@Component({\n selector: 'si-icon-next',\n template: ``,\n styles: `\n :host {\n display: inline-block;\n font-weight: normal;\n vertical-align: middle;\n line-height: 1;\n\n &.svg-icon ::ng-deep svg {\n display: block;\n block-size: 1em;\n fill: currentColor;\n }\n }\n `,\n host: {\n '[class]': 'svgIcon() ? \"svg-icon\" : fontIcon()',\n '[innerHTML]': 'svgIcon()',\n // TODO: remove and actually hide the icon content. But wait until: https://github.com/microsoft/playwright/issues/35737 and https://github.com/dequelabs/axe-core/issues/4763 are fixed.\n 'aria-hidden': 'true'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiIconNextComponent {\n /**\n * Define which icon should be rendered.\n * Provide using:\n * - value of the icon map provided by `addIcons`\n * - (not recommended): plain string in kebab-case or camelCase\n *\n * @example\n * ```ts\n * import { elementUser } from '@simpl/element-icons/ionic';\n *\n * @Component({template: `\n * <si-icon-next [icon]=\"icons.elementUser\" />\n * <si-icon-next icon=\"element-user\" />\n * <si-icon-next icon=\"elementUser\" />\n *\n * `})\n * class MyComponent {\n * icons = addIcons(elementUser);\n * }\n * ```\n */\n readonly icon = input.required<string>();\n\n private readonly config = inject(ICON_CONFIG);\n private readonly iconService = inject(IconService);\n\n protected readonly svgIcon = computed(() =>\n this.config.disableSvgIcons ? undefined : this.iconService.getIcon(this.icon())\n );\n\n /** Icon class, which is ensured to be kebab-case. */\n protected readonly fontIcon = computed(() =>\n this.svgIcon() ? undefined : this.camelToKebabCase(this.icon())\n );\n\n private camelToKebabCase(str: string): string {\n return str\n .replace(/([a-z])([A-Z0-9])/g, '$1-$2')\n .replace(/([0-9])([A-Z])/g, '$1-$2')\n .toLowerCase();\n }\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport const elementDown2 =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M352.79 203.21a12.45 12.45 0 0 1 1.44 15.86l-1.44 1.72-88 88a12.45 12.45 0 0 1-15.86 1.44l-1.72-1.44-88-88a12.43 12.43 0 0 1 15.86-19l1.72 1.44L256 282.42l79.21-79.21a12.45 12.45 0 0 1 15.86-1.44Z' data-name='Arrow/Right-3'/></svg>\";\nexport const elementCancel =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='m273 256 87.52-87.51a12 12 0 0 0-17-17L256 239l-87.51-87.52a12 12 0 0 0-17 17L239 256l-87.52 87.51a12 12 0 0 0 17 17L256 273l87.51 87.52a12 12 0 0 0 17-17Z'/></svg>\";\nexport const elementFavoritesFilled =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M427.42 216.46a12 12 0 0 0-9.68-8.17L313.41 193l-46.65-94.47a12 12 0 0 0-21.52 0L198.59 193 94.26 208.29a12 12 0 0 0-6.63 20.47l75.48 73.51-17.82 103.86a12 12 0 0 0 17.42 12.65L256 369.72l93.29 49.06a12 12 0 0 0 17.42-12.65l-17.82-103.86 75.48-73.51a12 12 0 0 0 3.05-12.3Z'/></svg>\";\nexport const elementFavorites =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M427.42 216.46a12 12 0 0 0-9.68-8.17L313.41 193l-46.65-94.47a12 12 0 0 0-21.52 0L198.59 193 94.26 208.29a12 12 0 0 0-6.63 20.47l75.48 73.51-17.82 103.86a12 12 0 0 0 17.42 12.65L256 369.72l93.29 49.06a12 12 0 0 0 17.42-12.65l-17.82-103.86 75.48-73.51a12 12 0 0 0 3.05-12.3Zm-99.79 73a12 12 0 0 0-3.46 10.63l14.77 86.11-77.35-40.68a12 12 0 0 0-11.18 0l-77.35 40.68 14.77-86.11a12 12 0 0 0-3.46-10.63l-62.59-61 86.52-12.65a12 12 0 0 0 9-6.56L256 131l38.68 78.36a12 12 0 0 0 9 6.56l86.52 12.65Z'/></svg>\";\nexport const elementExport =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M364 248a12 12 0 0 0-12 12v96a20 20 0 0 1-20 20H156a20 20 0 0 1-20-20V180a20 20 0 0 1 20-20h96a12 12 0 0 0 0-24h-96a44.05 44.05 0 0 0-44 44v176a44.05 44.05 0 0 0 44 44h176a44.05 44.05 0 0 0 44-44v-96a12 12 0 0 0-12-12Z'/><path d='M423.94 98.82c0-.19-.05-.37-.08-.55s-.05-.41-.09-.61-.1-.41-.15-.61a4.58 4.58 0 0 0-.14-.53c-.06-.2-.13-.39-.2-.58s-.12-.36-.19-.53-.16-.35-.25-.53-.16-.36-.26-.54-.19-.32-.29-.48-.2-.35-.31-.52-.25-.35-.38-.52l-.32-.43c-.24-.29-.5-.58-.77-.85s-.56-.53-.85-.77l-.44-.33c-.17-.12-.33-.25-.51-.37l-.53-.32-.47-.28c-.18-.1-.37-.18-.56-.27l-.51-.24-.55-.2-.55-.19c-.19-.06-.38-.1-.57-.15l-.57-.14-.67-.1-.49-.07q-.6-.06-1.2-.06H316a12 12 0 0 0 0 24h67L227.51 267.51a12 12 0 0 0 17 17L400 129v67a12 12 0 0 0 24 0v-96a10.88 10.88 0 0 0-.06-1.18Z'/></svg>\";\nexport const elementThumbnails =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><circle cx='144' cy='144' r='24'/><circle cx='368' cy='144' r='24'/><circle cx='256' cy='144' r='24'/><circle cx='144' cy='368' r='24'/><circle cx='368' cy='368' r='24'/><circle cx='256' cy='368' r='24'/><circle cx='144' cy='256' r='24'/><circle cx='368' cy='256' r='24'/><circle cx='256' cy='256' r='24'/></svg>\";\nexport const elementOptionsVertical =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M284 256a28 28 0 1 1-28-28 28 28 0 0 1 28 28ZM284 144a28 28 0 1 1-28-28 28 28 0 0 1 28 28ZM284 368a28 28 0 1 1-28-28 28 28 0 0 1 28 28Z'/></svg>\";\nexport const elementMenu =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M400 244H112a12 12 0 0 0 0 24h288a12 12 0 0 0 0-24ZM400 148H112a12 12 0 0 0 0 24h288a12 12 0 0 0 0-24ZM400 340H112a12 12 0 0 0 0 24h288a12 12 0 0 0 0-24Z'/></svg>\";\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-icon.module';\nexport { addIcons } from './si-icons';\nexport * from './si-icon-next.component';\nexport * from './si-icon.component';\nexport * from './element-icons';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"siemens-element-ng-icon.mjs","sources":["../../../../projects/element-ng/icon/si-icon.component.ts","../../../../projects/element-ng/icon/si-icon.component.html","../../../../projects/element-ng/icon/si-icon.module.ts","../../../../projects/element-ng/icon/si-icons.ts","../../../../projects/element-ng/icon/si-icon-next.component.ts","../../../../projects/element-ng/icon/element-icons.ts","../../../../projects/element-ng/icon/icon-status.ts","../../../../projects/element-ng/icon/index.ts","../../../../projects/element-ng/icon/siemens-element-ng-icon.ts"],"sourcesContent":["/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { SiTranslateModule, TranslatableString } from '@siemens/element-translate-ng/translate';\n\n@Component({\n selector: 'si-icon',\n templateUrl: './si-icon.component.html',\n styles: ':host, span { line-height: 1; }',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass, SiTranslateModule]\n})\nexport class SiIconComponent {\n /** Icon token, see {@link https://element.siemens.io/icons/element} */\n readonly icon = input<string>();\n /** Color class, see {@link https://element.siemens.io/fundamentals/typography/#color-variants-classes} */\n readonly color = input<string>();\n /** Icon token, see {@link https://element.siemens.io/fundamentals/icons/} */\n readonly stackedIcon = input<string>();\n /** Color class, see {@link https://element.siemens.io/fundamentals/icons/} */\n readonly stackedColor = input<string>();\n /** Alternative name or translation key for icon. Used for A11y. */\n readonly alt = input<TranslatableString>();\n /**\n * Text-size class for icon size, see {@link https://element.siemens.io/fundamentals/typography/#type-styles-classes}\n *\n * @defaultValue 'icon'\n */\n readonly size = input<string>('icon');\n\n protected readonly altText = computed(() => {\n return this.alt() ?? this.icon()?.replace('element-', '').split('-').join(' ') ?? '';\n });\n}\n","<span\n class=\"d-inline-block position-relative\"\n [attr.aria-label]=\"altText() ? (altText() | translate) : null\"\n [attr.aria-hidden]=\"!altText()\"\n [attr.role]=\"altText() ? 'img' : 'presentation'\"\n [ngClass]=\"[icon() ?? '', color() ?? '', size()]\"\n>\n @if (stackedIcon()) {\n <i\n class=\"position-absolute start-0\"\n aria-hidden=\"true\"\n [ngClass]=\"[stackedIcon(), stackedColor() ?? '']\"\n ></i>\n }\n</span>\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiIconComponent } from './si-icon.component';\n\n@NgModule({\n imports: [SiIconComponent],\n exports: [SiIconComponent]\n})\nexport class SiIconModule {}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { DestroyRef, inject, Injectable } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { SiThemeService } from '@siemens/element-ng/theme';\n\ninterface RegisteredIcon {\n content: SafeHtml | undefined;\n // Count how often an icon was registered to only remove it if it is no longer in use.\n referenceCount: number;\n}\n\nconst parseDataSvgIcon = (icon: string, domSanitizer: DomSanitizer): SafeHtml => {\n const parsed = /^data:image\\/svg\\+xml;utf8,(.*)$/.exec(icon);\n if (!parsed) {\n console.error('Failed to parse icon', icon);\n return '';\n }\n return domSanitizer.bypassSecurityTrustHtml(parsed[1]);\n};\n\nconst registeredIcons = new Map<string, RegisteredIcon>();\n\n/**\n * Adds the provided icons.\n * It requires an Angular InjectionContent.\n * The Icons are available until the component is destroyed.\n * Call this function only in the component which actually uses the icon.\n * Importing all icons on the global level is discouraged.\n *\n * When using a string instead of the object to use an icon,\n * use the kebab-case version of the icon name.\n *\n * @example\n * ```ts\n * import { elementIcon } from '@simpl/element-icons/ionic';\n * import { addIcons } from '@siemens/element-ng/icon'\n *\n * @Component({`<si-icon-next [icon]=\"icons.elementIcon\"`})\n * class MyComponent {\n * icons = addIcons({ elementIcon })\n * }\n * ```\n */\nexport const addIcons = <T extends string>(icons: Record<T, string>): Record<T, string> => {\n const iconMap = {} as Record<T, string>;\n const domSanitizer = inject(DomSanitizer);\n for (const [key, rawContent] of Object.entries<string>(icons)) {\n const registeredIcon = registeredIcons.get(key) ?? {\n content: parseDataSvgIcon(rawContent, domSanitizer),\n referenceCount: 0\n };\n registeredIcon.referenceCount++;\n registeredIcons.set(key, registeredIcon);\n iconMap[key as T] = key;\n }\n\n // Delete registered Icons after Component is destroyed to optimize memory usage.\n // WeakMap must not be used, as the Icon can only be removed on component destruction.\n // When using a WeakMap it would also get destroyed if it is not referenced, but the component may use it later again.\n inject(DestroyRef).onDestroy(() => {\n for (const key of Object.keys(icons)) {\n const registeredIcon = registeredIcons.get(key);\n if (registeredIcon!.referenceCount === 1) {\n registeredIcons.delete(key);\n } else {\n registeredIcon!.referenceCount--;\n }\n }\n });\n\n return iconMap;\n};\n\nconst getIcon = (key: string): SafeHtml | undefined => registeredIcons.get(key)?.content;\n\n@Injectable({ providedIn: 'root' })\nexport class IconService {\n private themeService = inject(SiThemeService);\n\n getIcon(name: string): SafeHtml | undefined {\n const camelCaseName = this.kebabToCamelCase(name);\n return this.themeService.themeIcons()[camelCaseName] ?? getIcon(camelCaseName);\n }\n\n private kebabToCamelCase(str: string): string {\n return str.replace(/-./g, match => match.charAt(1).toUpperCase());\n }\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n InjectionToken,\n input,\n Provider\n} from '@angular/core';\n\nimport { IconService } from './si-icons';\n\n/**\n * Global configuration for icons.\n *\n * @experimental\n */\nexport interface IconConfig {\n /**\n * If true, the si-icon-next component will always render the icon font instead of the svg.\n *\n * @defaultValue true\n */\n disableSvgIcons?: boolean;\n}\n\nconst ICON_CONFIG = new InjectionToken<IconConfig>('ICON_CONFIG', {\n providedIn: 'root',\n factory: () => ({ disableSvgIcons: true })\n});\n\n/**\n * Configure how Element handles icons. Provide only once in your global configuration.\n *\n * @experimental\n */\nexport const provideIconConfig = (config: IconConfig): Provider => ({\n provide: ICON_CONFIG,\n useValue: config\n});\n\n/**\n * Component to render a font or SVG icon depending on the configuration.\n * If no SVG icon is found, the component will fall back to render the icon-font.\n * In that case, an application must ensure that the icon font is loaded.\n * This component will only attach the respective class.\n *\n * The content of this component is hidden in the a11y tree.\n * If needed, the consumer must set proper labels.\n *\n * @experimental\n */\n@Component({\n selector: 'si-icon-next',\n template: ` <div\n aria-hidden=\"true\"\n [ngClass]=\"svgIcon() ? '' : fontIcon()\"\n [innerHTML]=\"svgIcon()\"\n ></div>`,\n styles: `\n :host {\n display: inline-flex;\n font-weight: normal;\n vertical-align: middle;\n line-height: 1;\n\n ::ng-deep svg {\n display: block;\n block-size: 1em;\n fill: currentColor;\n }\n }\n `,\n host: {\n '[attr.data-icon]': 'icon()'\n },\n imports: [NgClass],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiIconNextComponent {\n /**\n * Define which icon should be rendered.\n * Provide using:\n * - value of the icon map provided by `addIcons`\n * - (not recommended): plain string in kebab-case or camelCase\n *\n * @example\n * ```ts\n * import { elementUser } from '@simpl/element-icons/ionic';\n *\n * @Component({template: `\n * <si-icon-next [icon]=\"icons.elementUser\" />\n * <si-icon-next icon=\"element-user\" />\n * <si-icon-next icon=\"elementUser\" />\n *\n * `})\n * class MyComponent {\n * icons = addIcons(elementUser);\n * }\n * ```\n */\n readonly icon = input.required<string>();\n\n private readonly config = inject(ICON_CONFIG);\n private readonly iconService = inject(IconService);\n\n protected readonly svgIcon = computed(() =>\n this.config.disableSvgIcons ? undefined : this.iconService.getIcon(this.icon())\n );\n\n /** Icon class, which is ensured to be kebab-case. */\n protected readonly fontIcon = computed(() =>\n this.svgIcon() ? undefined : this.camelToKebabCase(this.icon())\n );\n\n private camelToKebabCase(str: string): string {\n return str\n .replace(/([a-z])([A-Z0-9])/g, '$1-$2')\n .replace(/([0-9])([A-Z])/g, '$1-$2')\n .toLowerCase();\n }\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport const elementDown2 =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M352.79 203.21a12.45 12.45 0 0 1 1.44 15.86l-1.44 1.72-88 88a12.45 12.45 0 0 1-15.86 1.44l-1.72-1.44-88-88a12.43 12.43 0 0 1 15.86-19l1.72 1.44L256 282.42l79.21-79.21a12.45 12.45 0 0 1 15.86-1.44Z' data-name='Arrow/Right-3'/></svg>\";\nexport const elementCancel =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='m273 256 87.52-87.51a12 12 0 0 0-17-17L256 239l-87.51-87.52a12 12 0 0 0-17 17L239 256l-87.52 87.51a12 12 0 0 0 17 17L256 273l87.51 87.52a12 12 0 0 0 17-17Z'/></svg>\";\nexport const elementFavoritesFilled =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M427.42 216.46a12 12 0 0 0-9.68-8.17L313.41 193l-46.65-94.47a12 12 0 0 0-21.52 0L198.59 193 94.26 208.29a12 12 0 0 0-6.63 20.47l75.48 73.51-17.82 103.86a12 12 0 0 0 17.42 12.65L256 369.72l93.29 49.06a12 12 0 0 0 17.42-12.65l-17.82-103.86 75.48-73.51a12 12 0 0 0 3.05-12.3Z'/></svg>\";\nexport const elementFavorites =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M427.42 216.46a12 12 0 0 0-9.68-8.17L313.41 193l-46.65-94.47a12 12 0 0 0-21.52 0L198.59 193 94.26 208.29a12 12 0 0 0-6.63 20.47l75.48 73.51-17.82 103.86a12 12 0 0 0 17.42 12.65L256 369.72l93.29 49.06a12 12 0 0 0 17.42-12.65l-17.82-103.86 75.48-73.51a12 12 0 0 0 3.05-12.3Zm-99.79 73a12 12 0 0 0-3.46 10.63l14.77 86.11-77.35-40.68a12 12 0 0 0-11.18 0l-77.35 40.68 14.77-86.11a12 12 0 0 0-3.46-10.63l-62.59-61 86.52-12.65a12 12 0 0 0 9-6.56L256 131l38.68 78.36a12 12 0 0 0 9 6.56l86.52 12.65Z'/></svg>\";\nexport const elementExport =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M364 248a12 12 0 0 0-12 12v96a20 20 0 0 1-20 20H156a20 20 0 0 1-20-20V180a20 20 0 0 1 20-20h96a12 12 0 0 0 0-24h-96a44.05 44.05 0 0 0-44 44v176a44.05 44.05 0 0 0 44 44h176a44.05 44.05 0 0 0 44-44v-96a12 12 0 0 0-12-12Z'/><path d='M423.94 98.82c0-.19-.05-.37-.08-.55s-.05-.41-.09-.61-.1-.41-.15-.61a4.58 4.58 0 0 0-.14-.53c-.06-.2-.13-.39-.2-.58s-.12-.36-.19-.53-.16-.35-.25-.53-.16-.36-.26-.54-.19-.32-.29-.48-.2-.35-.31-.52-.25-.35-.38-.52l-.32-.43c-.24-.29-.5-.58-.77-.85s-.56-.53-.85-.77l-.44-.33c-.17-.12-.33-.25-.51-.37l-.53-.32-.47-.28c-.18-.1-.37-.18-.56-.27l-.51-.24-.55-.2-.55-.19c-.19-.06-.38-.1-.57-.15l-.57-.14-.67-.1-.49-.07q-.6-.06-1.2-.06H316a12 12 0 0 0 0 24h67L227.51 267.51a12 12 0 0 0 17 17L400 129v67a12 12 0 0 0 24 0v-96a10.88 10.88 0 0 0-.06-1.18Z'/></svg>\";\nexport const elementThumbnails =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><circle cx='144' cy='144' r='24'/><circle cx='368' cy='144' r='24'/><circle cx='256' cy='144' r='24'/><circle cx='144' cy='368' r='24'/><circle cx='368' cy='368' r='24'/><circle cx='256' cy='368' r='24'/><circle cx='144' cy='256' r='24'/><circle cx='368' cy='256' r='24'/><circle cx='256' cy='256' r='24'/></svg>\";\nexport const elementOptionsVertical =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M284 256a28 28 0 1 1-28-28 28 28 0 0 1 28 28ZM284 144a28 28 0 1 1-28-28 28 28 0 0 1 28 28ZM284 368a28 28 0 1 1-28-28 28 28 0 0 1 28 28Z'/></svg>\";\nexport const elementMenu =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M400 244H112a12 12 0 0 0 0 24h288a12 12 0 0 0 0-24ZM400 148H112a12 12 0 0 0 0 24h288a12 12 0 0 0 0-24ZM400 340H112a12 12 0 0 0 0 24h288a12 12 0 0 0 0-24Z'/></svg>\";\nexport const elementCircleFilled =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M256 64C150.13 64 64 150.13 64 256s86.13 192 192 192 192-86.13 192-192S361.87 64 256 64Z'/></svg>\";\nexport const elementOctagonFilled =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M320.2 77H191.8a24 24 0 0 0-17 7L84 174.83a24 24 0 0 0-7 17V320.2a24 24 0 0 0 7 17l90.8 90.8a24 24 0 0 0 17 7h128.4a24 24 0 0 0 17-7l90.8-90.8a24 24 0 0 0 7-17V191.8a24 24 0 0 0-7-17L337.17 84a24 24 0 0 0-16.97-7Z'/></svg>\";\nexport const elementSquare45Filled =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><rect x='113.17' y='113.17' width='285.65' height='285.65' rx='24' transform='rotate(-45 256 256.002)'/></svg>\";\nexport const elementSquareFilled =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><rect x='88' y='88' width='336' height='336' rx='48'/></svg>\";\nexport const elementStateExclamationMark =\n \"data:image/svg+xml;utf8,<svg id='Icon' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><defs><style>.cls-1{stroke-width:0}</style></defs><path class='cls-1' d='M256 279.12c-11.05 0-20-8.95-20-20v-89.8c0-11.05 8.95-20 20-20s20 8.95 20 20v89.8c0 11.05-8.95 20-20 20ZM256.17 359.03h-.34c-13.16 0-23.83-10.75-23.83-24s10.67-24 23.83-24h.34c13.16 0 23.83 10.75 23.83 24s-10.67 24-23.83 24Z'/></svg>\";\nexport const elementStateInfo =\n \"data:image/svg+xml;utf8,<svg id='Icon' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><defs><style>.cls-1{stroke-width:0}</style></defs><path class='cls-1' d='M256 356c-11.05 0-20-8.95-20-20v-80c0-11.05 8.95-20 20-20s20 8.95 20 20v80c0 11.05-8.95 20-20 20ZM256.17 156.32h-.34c-13.16 0-23.83 10.75-23.83 24s10.67 24 23.83 24h.34c13.16 0 23.83-10.75 23.83-24s-10.67-24-23.83-24Z'/></svg>\";\nexport const elementStatePause =\n \"data:image/svg+xml;utf8,<svg id='Icon' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><defs><style>.cls-1{stroke-width:0}</style></defs><path class='cls-1' d='M222 349.5c-11.05 0-20-8.95-20-20v-147c0-11.05 8.95-20 20-20s20 8.95 20 20v147c0 11.05-8.95 20-20 20ZM290 349.5c-11.05 0-20-8.95-20-20v-147c0-11.05 8.95-20 20-20s20 8.95 20 20v147c0 11.05-8.95 20-20 20Z'/></svg>\";\nexport const elementStateProgress =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M270.43 253.68V114.43c69.75 0 127.15 62.86 127.15 139.26 0 38.04-14.23 74.47-39.36 100.74l-87.79-100.74Z'/></svg>\";\nexport const elementStateQuestionMark =\n \"data:image/svg+xml;utf8,<svg id='Icon' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><defs><style>.cls-1{stroke-width:0}</style></defs><path class='cls-1' d='M256 311c-11.05 0-20-8.95-20-20v-29.22a19.994 19.994 0 0 1 13.63-18.96c10.43-3.62 33.09-15.84 33.09-28.82.02-11.91-7.5-22.54-18.71-26.49-14.56-5.12-30.58 2.56-35.7 17.12-3.67 10.42-15.08 15.9-25.5 12.23s-15.9-15.08-12.23-25.5c12.44-35.37 51.34-54.02 86.71-41.58 27.22 9.58 45.48 35.4 45.44 64.25 0 13.92-5.57 34.34-32.11 52.4-5.12 3.49-10.2 6.31-14.61 8.5V291c0 11.05-8.95 20-20 20ZM256.16 375h-.32c-13.17 0-23.84-10.75-23.84-24s10.67-24 23.84-24h.32c13.17 0 23.84 10.75 23.84 24s-10.67 24-23.84 24Z'/></svg>\";\nexport const elementStateTick =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M222.25 345.88c-5.12 0-10.24-1.95-14.14-5.86l-56.25-56.25c-7.81-7.81-7.81-20.47 0-28.29s20.47-7.81 28.28 0l42.11 42.11 109.61-109.61c7.81-7.81 20.47-7.81 28.28 0s7.81 20.47 0 28.29L236.39 340.02a19.92 19.92 0 0 1-14.14 5.86Z' style='stroke-width:0'/></svg>\";\nexport const elementTriangleFilled =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='m441.77 338.25-.1-.17L295.72 94.42a46.45 46.45 0 0 0-79.44 0 .21.21 0 0 0 0 .06L70.32 338.08l-.1.17a46.45 46.45 0 0 0 39.72 69.68h292.11a46.46 46.46 0 0 0 39.72-69.68Z'/></svg>\";\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { InjectionToken } from '@angular/core';\nimport { EntityStatusType, StatusIcon } from '@siemens/element-ng/common';\n\nimport {\n elementCircleFilled,\n elementOctagonFilled,\n elementSquare45Filled,\n elementSquareFilled,\n elementStateExclamationMark,\n elementStateInfo,\n elementStatePause,\n elementStateProgress,\n elementStateQuestionMark,\n elementStateTick,\n elementTriangleFilled\n} from './element-icons';\nimport { addIcons } from './si-icons';\n\n/**\n * The status icon configuration.\n *\n * @experimental\n */\nexport const STATUS_ICON_CONFIG = new InjectionToken<{ [key in EntityStatusType]: StatusIcon }>(\n 'STATUS_ICON_CONFIG',\n {\n providedIn: 'root',\n factory: () => {\n addIcons({\n elementCircleFilled,\n elementOctagonFilled,\n elementSquare45Filled,\n elementSquareFilled,\n elementStateExclamationMark,\n elementStateInfo,\n elementStatePause,\n elementStateProgress,\n elementStateQuestionMark,\n elementStateTick,\n elementTriangleFilled\n });\n return {\n success: {\n icon: 'elementCircleFilled',\n color: 'status-success',\n stacked: 'elementStateTick',\n stackedColor: 'status-success-contrast',\n background: 'bg-base-success',\n severity: 5\n },\n info: {\n icon: 'elementSquareFilled',\n color: 'status-info',\n stacked: 'elementStateInfo',\n stackedColor: 'status-info-contrast',\n background: 'bg-base-info',\n severity: 4\n },\n caution: {\n icon: 'elementSquare45Filled',\n color: 'status-caution',\n stacked: 'elementStateExclamationMark',\n stackedColor: 'status-caution-contrast',\n background: 'bg-base-caution',\n severity: 3\n },\n warning: {\n icon: 'elementTriangleFilled',\n color: 'status-warning',\n stacked: 'elementStateExclamationMark',\n stackedColor: 'status-warning-contrast',\n background: 'bg-base-warning',\n severity: 2\n },\n danger: {\n icon: 'elementCircleFilled',\n color: 'status-danger',\n stacked: 'elementStateExclamationMark',\n stackedColor: 'status-danger-contrast',\n background: 'bg-base-danger',\n severity: 1\n },\n critical: {\n icon: 'elementOctagonFilled',\n color: 'status-critical',\n stacked: 'elementStateExclamationMark',\n stackedColor: 'status-critical-contrast',\n background: 'bg-base-danger',\n severity: 0\n },\n progress: {\n icon: 'elementCircleFilled',\n color: 'status-info',\n stacked: 'elementStateProgress',\n stackedColor: 'status-info-contrast',\n background: 'bg-base-info',\n severity: 7\n },\n pending: {\n icon: 'elementCircleFilled',\n color: 'status-caution',\n stacked: 'elementStatePause',\n stackedColor: 'status-caution-contrast',\n background: 'bg-base-caution',\n severity: 6\n },\n unknown: {\n icon: 'elementCircleFilled',\n color: 'status-neutral',\n stacked: 'elementStateQuestionMark',\n stackedColor: 'text-body',\n background: 'bg-base-0',\n severity: 8\n }\n };\n }\n }\n);\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-icon.module';\nexport { addIcons } from './si-icons';\nexport * from './si-icon-next.component';\nexport * from './icon-status';\nexport * from './si-icon.component';\nexport * from './element-icons';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -10,3 +10,14 @@ export declare const elementExport = "data:image/svg+xml;utf8,<svg xmlns='http:/
10
10
  export declare const elementThumbnails = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><circle cx='144' cy='144' r='24'/><circle cx='368' cy='144' r='24'/><circle cx='256' cy='144' r='24'/><circle cx='144' cy='368' r='24'/><circle cx='368' cy='368' r='24'/><circle cx='256' cy='368' r='24'/><circle cx='144' cy='256' r='24'/><circle cx='368' cy='256' r='24'/><circle cx='256' cy='256' r='24'/></svg>";
11
11
  export declare const elementOptionsVertical = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M284 256a28 28 0 1 1-28-28 28 28 0 0 1 28 28ZM284 144a28 28 0 1 1-28-28 28 28 0 0 1 28 28ZM284 368a28 28 0 1 1-28-28 28 28 0 0 1 28 28Z'/></svg>";
12
12
  export declare const elementMenu = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M400 244H112a12 12 0 0 0 0 24h288a12 12 0 0 0 0-24ZM400 148H112a12 12 0 0 0 0 24h288a12 12 0 0 0 0-24ZM400 340H112a12 12 0 0 0 0 24h288a12 12 0 0 0 0-24Z'/></svg>";
13
+ export declare const elementCircleFilled = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M256 64C150.13 64 64 150.13 64 256s86.13 192 192 192 192-86.13 192-192S361.87 64 256 64Z'/></svg>";
14
+ export declare const elementOctagonFilled = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M320.2 77H191.8a24 24 0 0 0-17 7L84 174.83a24 24 0 0 0-7 17V320.2a24 24 0 0 0 7 17l90.8 90.8a24 24 0 0 0 17 7h128.4a24 24 0 0 0 17-7l90.8-90.8a24 24 0 0 0 7-17V191.8a24 24 0 0 0-7-17L337.17 84a24 24 0 0 0-16.97-7Z'/></svg>";
15
+ export declare const elementSquare45Filled = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><rect x='113.17' y='113.17' width='285.65' height='285.65' rx='24' transform='rotate(-45 256 256.002)'/></svg>";
16
+ export declare const elementSquareFilled = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><rect x='88' y='88' width='336' height='336' rx='48'/></svg>";
17
+ export declare const elementStateExclamationMark = "data:image/svg+xml;utf8,<svg id='Icon' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><defs><style>.cls-1{stroke-width:0}</style></defs><path class='cls-1' d='M256 279.12c-11.05 0-20-8.95-20-20v-89.8c0-11.05 8.95-20 20-20s20 8.95 20 20v89.8c0 11.05-8.95 20-20 20ZM256.17 359.03h-.34c-13.16 0-23.83-10.75-23.83-24s10.67-24 23.83-24h.34c13.16 0 23.83 10.75 23.83 24s-10.67 24-23.83 24Z'/></svg>";
18
+ export declare const elementStateInfo = "data:image/svg+xml;utf8,<svg id='Icon' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><defs><style>.cls-1{stroke-width:0}</style></defs><path class='cls-1' d='M256 356c-11.05 0-20-8.95-20-20v-80c0-11.05 8.95-20 20-20s20 8.95 20 20v80c0 11.05-8.95 20-20 20ZM256.17 156.32h-.34c-13.16 0-23.83 10.75-23.83 24s10.67 24 23.83 24h.34c13.16 0 23.83-10.75 23.83-24s-10.67-24-23.83-24Z'/></svg>";
19
+ export declare const elementStatePause = "data:image/svg+xml;utf8,<svg id='Icon' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><defs><style>.cls-1{stroke-width:0}</style></defs><path class='cls-1' d='M222 349.5c-11.05 0-20-8.95-20-20v-147c0-11.05 8.95-20 20-20s20 8.95 20 20v147c0 11.05-8.95 20-20 20ZM290 349.5c-11.05 0-20-8.95-20-20v-147c0-11.05 8.95-20 20-20s20 8.95 20 20v147c0 11.05-8.95 20-20 20Z'/></svg>";
20
+ export declare const elementStateProgress = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M270.43 253.68V114.43c69.75 0 127.15 62.86 127.15 139.26 0 38.04-14.23 74.47-39.36 100.74l-87.79-100.74Z'/></svg>";
21
+ export declare const elementStateQuestionMark = "data:image/svg+xml;utf8,<svg id='Icon' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><defs><style>.cls-1{stroke-width:0}</style></defs><path class='cls-1' d='M256 311c-11.05 0-20-8.95-20-20v-29.22a19.994 19.994 0 0 1 13.63-18.96c10.43-3.62 33.09-15.84 33.09-28.82.02-11.91-7.5-22.54-18.71-26.49-14.56-5.12-30.58 2.56-35.7 17.12-3.67 10.42-15.08 15.9-25.5 12.23s-15.9-15.08-12.23-25.5c12.44-35.37 51.34-54.02 86.71-41.58 27.22 9.58 45.48 35.4 45.44 64.25 0 13.92-5.57 34.34-32.11 52.4-5.12 3.49-10.2 6.31-14.61 8.5V291c0 11.05-8.95 20-20 20ZM256.16 375h-.32c-13.17 0-23.84-10.75-23.84-24s10.67-24 23.84-24h.32c13.17 0 23.84 10.75 23.84 24s-10.67 24-23.84 24Z'/></svg>";
22
+ export declare const elementStateTick = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M222.25 345.88c-5.12 0-10.24-1.95-14.14-5.86l-56.25-56.25c-7.81-7.81-7.81-20.47 0-28.29s20.47-7.81 28.28 0l42.11 42.11 109.61-109.61c7.81-7.81 20.47-7.81 28.28 0s7.81 20.47 0 28.29L236.39 340.02a19.92 19.92 0 0 1-14.14 5.86Z' style='stroke-width:0'/></svg>";
23
+ export declare const elementTriangleFilled = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='m441.77 338.25-.1-.17L295.72 94.42a46.45 46.45 0 0 0-79.44 0 .21.21 0 0 0 0 .06L70.32 338.08l-.1.17a46.45 46.45 0 0 0 39.72 69.68h292.11a46.46 46.46 0 0 0 39.72-69.68Z'/></svg>";
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Copyright Siemens 2016 - 2025.
3
+ * SPDX-License-Identifier: MIT
4
+ */
5
+ import { InjectionToken } from '@angular/core';
6
+ import { StatusIcon } from '@siemens/element-ng/common';
7
+ /**
8
+ * The status icon configuration.
9
+ *
10
+ * @experimental
11
+ */
12
+ export declare const STATUS_ICON_CONFIG: InjectionToken<{
13
+ info: StatusIcon;
14
+ success: StatusIcon;
15
+ warning: StatusIcon;
16
+ danger: StatusIcon;
17
+ caution: StatusIcon;
18
+ critical: StatusIcon;
19
+ unknown: StatusIcon;
20
+ pending: StatusIcon;
21
+ progress: StatusIcon;
22
+ }>;
package/icon/index.d.ts CHANGED
@@ -5,5 +5,6 @@
5
5
  export * from './si-icon.module';
6
6
  export { addIcons } from './si-icons';
7
7
  export * from './si-icon-next.component';
8
+ export * from './icon-status';
8
9
  export * from './si-icon.component';
9
10
  export * from './element-icons';
@@ -1,7 +1,3 @@
1
- /**
2
- * Copyright Siemens 2016 - 2025.
3
- * SPDX-License-Identifier: MIT
4
- */
5
1
  import { Provider } from '@angular/core';
6
2
  import * as i0 from "@angular/core";
7
3
  /**
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@siemens/element-ng",
3
3
  "description": "Element Angular component library, implementing the Siemens Design Language",
4
- "version": "47.0.0",
4
+ "version": "47.1.0-next.2",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
@@ -24,8 +24,8 @@
24
24
  "@angular/core": "19",
25
25
  "@angular/forms": "19",
26
26
  "@angular/router": "19",
27
- "@siemens/element-translate-ng": "47.0.0",
28
- "@siemens/element-theme": "47.0.0"
27
+ "@siemens/element-translate-ng": "47.1.0-next.2",
28
+ "@siemens/element-theme": "47.1.0-next.2"
29
29
  },
30
30
  "peerDependenciesMeta": {
31
31
  "@angular/animations": {