@siemens/element-ng 51.3.0 → 51.5.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.
Files changed (98) hide show
  1. package/fesm2022/siemens-element-ng-about.mjs +2 -2
  2. package/fesm2022/siemens-element-ng-about.mjs.map +1 -1
  3. package/fesm2022/siemens-element-ng-ag-grid.mjs +5 -4
  4. package/fesm2022/siemens-element-ng-ag-grid.mjs.map +1 -1
  5. package/fesm2022/siemens-element-ng-breadcrumb.mjs +20 -71
  6. package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
  7. package/fesm2022/siemens-element-ng-carousel.mjs +6 -4
  8. package/fesm2022/siemens-element-ng-carousel.mjs.map +1 -1
  9. package/fesm2022/siemens-element-ng-chat-messages.mjs +3 -3
  10. package/fesm2022/siemens-element-ng-chat-messages.mjs.map +1 -1
  11. package/fesm2022/siemens-element-ng-common.mjs +16 -1
  12. package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
  13. package/fesm2022/siemens-element-ng-dashboard.mjs +2 -3
  14. package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
  15. package/fesm2022/siemens-element-ng-datatable.mjs +1 -1
  16. package/fesm2022/siemens-element-ng-datatable.mjs.map +1 -1
  17. package/fesm2022/siemens-element-ng-empty-state.mjs +2 -2
  18. package/fesm2022/siemens-element-ng-empty-state.mjs.map +1 -1
  19. package/fesm2022/siemens-element-ng-filtered-search.mjs +255 -160
  20. package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
  21. package/fesm2022/siemens-element-ng-formly.mjs +13 -9
  22. package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
  23. package/fesm2022/siemens-element-ng-header-dropdown.mjs +2 -2
  24. package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
  25. package/fesm2022/siemens-element-ng-list-details.mjs +7 -4
  26. package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
  27. package/fesm2022/siemens-element-ng-loading-spinner.mjs +21 -7
  28. package/fesm2022/siemens-element-ng-loading-spinner.mjs.map +1 -1
  29. package/fesm2022/siemens-element-ng-maplibre.mjs +293 -10
  30. package/fesm2022/siemens-element-ng-maplibre.mjs.map +1 -1
  31. package/fesm2022/siemens-element-ng-markdown-extensions-katex.mjs +6 -3
  32. package/fesm2022/siemens-element-ng-markdown-extensions-katex.mjs.map +1 -1
  33. package/fesm2022/siemens-element-ng-markdown-extensions-mermaid.mjs +9 -0
  34. package/fesm2022/siemens-element-ng-markdown-extensions-mermaid.mjs.map +1 -1
  35. package/fesm2022/siemens-element-ng-markdown.mjs +6 -2
  36. package/fesm2022/siemens-element-ng-markdown.mjs.map +1 -1
  37. package/fesm2022/siemens-element-ng-menu.mjs +6 -6
  38. package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
  39. package/fesm2022/siemens-element-ng-modal.mjs +4 -3
  40. package/fesm2022/siemens-element-ng-modal.mjs.map +1 -1
  41. package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs +10 -4
  42. package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs.map +1 -1
  43. package/fesm2022/siemens-element-ng-navbar-vertical.mjs +12 -6
  44. package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
  45. package/fesm2022/siemens-element-ng-pills-input.mjs +5 -4
  46. package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -1
  47. package/fesm2022/siemens-element-ng-popover-legacy.mjs +1 -1
  48. package/fesm2022/siemens-element-ng-popover-legacy.mjs.map +1 -1
  49. package/fesm2022/siemens-element-ng-popover.mjs +36 -7
  50. package/fesm2022/siemens-element-ng-popover.mjs.map +1 -1
  51. package/fesm2022/siemens-element-ng-result-details-list.mjs +1 -1
  52. package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -1
  53. package/fesm2022/siemens-element-ng-select.mjs +3 -3
  54. package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
  55. package/fesm2022/siemens-element-ng-shadow-root.mjs +54 -1
  56. package/fesm2022/siemens-element-ng-shadow-root.mjs.map +1 -1
  57. package/fesm2022/siemens-element-ng-side-panel.mjs +17 -7
  58. package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
  59. package/fesm2022/siemens-element-ng-skip-links.mjs +18 -4
  60. package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -1
  61. package/fesm2022/siemens-element-ng-source-chip.mjs +1 -1
  62. package/fesm2022/siemens-element-ng-source-chip.mjs.map +1 -1
  63. package/fesm2022/siemens-element-ng-split.mjs +2 -2
  64. package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
  65. package/fesm2022/siemens-element-ng-status-bar.mjs +2 -2
  66. package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
  67. package/fesm2022/siemens-element-ng-theme.mjs +59 -23
  68. package/fesm2022/siemens-element-ng-theme.mjs.map +1 -1
  69. package/fesm2022/siemens-element-ng-tooltip.mjs +83 -11
  70. package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -1
  71. package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
  72. package/fesm2022/siemens-element-ng-tree-view.mjs +3 -4
  73. package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
  74. package/fesm2022/siemens-element-ng-typeahead.mjs +2 -2
  75. package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
  76. package/maplibre/styles/maplibre-gl.scss +4 -0
  77. package/package.json +7 -7
  78. package/schematics/utils/ts-compiler-host.js +21 -0
  79. package/template-i18n.json +7 -0
  80. package/types/siemens-element-ng-ag-grid.d.ts +1 -0
  81. package/types/siemens-element-ng-breadcrumb.d.ts +3 -6
  82. package/types/siemens-element-ng-common.d.ts +28 -3
  83. package/types/siemens-element-ng-dashboard.d.ts +0 -1
  84. package/types/siemens-element-ng-filtered-search.d.ts +26 -10
  85. package/types/siemens-element-ng-list-details.d.ts +2 -0
  86. package/types/siemens-element-ng-loading-spinner.d.ts +11 -4
  87. package/types/siemens-element-ng-maplibre.d.ts +112 -5
  88. package/types/siemens-element-ng-markdown-extensions-katex.d.ts +4 -1
  89. package/types/siemens-element-ng-markdown-extensions-mermaid.d.ts +9 -0
  90. package/types/siemens-element-ng-navbar-vertical-next.d.ts +2 -1
  91. package/types/siemens-element-ng-navbar-vertical.d.ts +2 -2
  92. package/types/siemens-element-ng-popover.d.ts +19 -1
  93. package/types/siemens-element-ng-shadow-root.d.ts +16 -1
  94. package/types/siemens-element-ng-side-panel.d.ts +7 -2
  95. package/types/siemens-element-ng-skip-links.d.ts +4 -2
  96. package/types/siemens-element-ng-theme.d.ts +35 -7
  97. package/types/siemens-element-ng-tooltip.d.ts +14 -1
  98. package/types/siemens-element-ng-translate.d.ts +7 -0
@@ -140,12 +140,23 @@ interface DisplayedCriteriaEventArgs {
140
140
  allow(criteriaNamesToDisplay: string[], freeText?: boolean): void;
141
141
  }
142
142
 
143
+ /** Criterion definition normalized for internal rendering and input handling. */
143
144
  interface InternalCriterionDefinition extends CriterionDefinition {
144
145
  label: string;
145
146
  translatedLabel: string;
147
+ /**
148
+ * Identifies free-text pills, displayed without a criterion label using a plain-text editor.
149
+ * Omitted for regular criteria. Internal only; not included in the search model.
150
+ */
146
151
  type?: 'free-text';
147
152
  }
148
153
 
154
+ interface InternalCriterion {
155
+ config: InternalCriterionDefinition;
156
+ value: CriterionValue;
157
+ editOnCreation: boolean;
158
+ initialValueText?: string;
159
+ }
149
160
  declare class SiFilteredSearchComponent implements OnInit, OnChanges {
150
161
  /**
151
162
  * Factory for CDK scroll strategies used by filtered-search overlays.
@@ -375,11 +386,8 @@ declare class SiFilteredSearchComponent implements OnInit, OnChanges {
375
386
  private readonly scrollContainer;
376
387
  private readonly valueComponents;
377
388
  protected dataSource: Observable<InternalCriterionDefinition[]>;
378
- protected autoEditCriteria: boolean;
379
- protected readonly values: _angular_core.WritableSignal<{
380
- config: InternalCriterionDefinition;
381
- value: CriterionValue;
382
- }[]>;
389
+ protected readonly values: _angular_core.WritableSignal<InternalCriterion[]>;
390
+ protected readonly maxCriteriaReached: _angular_core.Signal<boolean>;
383
391
  protected readonly searchValue: _angular_core.WritableSignal<string>;
384
392
  /** Internal criteria model */
385
393
  protected internalCriterionDefinitions: InternalCriterionDefinition[];
@@ -423,6 +431,11 @@ declare class SiFilteredSearchComponent implements OnInit, OnChanges {
423
431
  */
424
432
  private convertToExternalModel;
425
433
  private addCriterion;
434
+ private resolveValue;
435
+ private isDateCriterion;
436
+ private parseModelDate;
437
+ private parseInputDate;
438
+ private getAllowedCriteria;
426
439
  /**
427
440
  * Get criteria list to be shown in typeahead.
428
441
  * @returns list of criteria to be shown in typeahead.
@@ -434,22 +447,25 @@ declare class SiFilteredSearchComponent implements OnInit, OnChanges {
434
447
  protected onCreateCriterion(event: {
435
448
  criterion: InternalCriterionDefinition;
436
449
  value?: string;
450
+ accept: () => void;
437
451
  }): void;
438
452
  protected onCreateCriterionByName(event: {
439
453
  criterionName: string;
440
454
  value?: string;
455
+ editOnCreation?: boolean;
456
+ accept: () => void;
441
457
  }): void;
442
458
  protected onSearchValueChange(): void;
443
- protected valueChange(value: CriterionValue, criterion: {
444
- config: InternalCriterionDefinition;
445
- value: CriterionValue;
446
- }): void;
459
+ protected valueChange(value: CriterionValue, criterion: InternalCriterion): void;
447
460
  protected focusNext(index: number, event: {
448
461
  freeText: string;
449
462
  } | void): void;
450
463
  private updateAndEmitSearchCriteria;
451
464
  private emitChangeEvent;
452
- protected createFreeTextPill(query: string): void;
465
+ protected createFreeTextPill(event: {
466
+ query: string;
467
+ accept: () => void;
468
+ }): void;
453
469
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiFilteredSearchComponent, never>;
454
470
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiFilteredSearchComponent, "si-filtered-search", never, { "scrollStrategy": { "alias": "scrollStrategy"; "required": false; "isSignal": true; }; "doSearchOnInputChange": { "alias": "doSearchOnInputChange"; "required": false; "isSignal": true; }; "lazyCriterionProvider": { "alias": "lazyCriterionProvider"; "required": false; "isSignal": true; }; "lazyValueProvider": { "alias": "lazyValueProvider"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "strictCriterion": { "alias": "strictCriterion"; "required": false; "isSignal": true; }; "strictValue": { "alias": "strictValue"; "required": false; "isSignal": true; }; "onlySelectValue": { "alias": "onlySelectValue"; "required": false; "isSignal": true; }; "lazyLoadingDebounceTime": { "alias": "lazyLoadingDebounceTime"; "required": false; "isSignal": true; }; "searchDebounceTime": { "alias": "searchDebounceTime"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "optionsInScrollableView": { "alias": "optionsInScrollableView"; "required": false; "isSignal": true; }; "searchCriteria": { "alias": "searchCriteria"; "required": false; "isSignal": true; }; "criteria": { "alias": "criteria"; "required": false; "isSignal": true; }; "exclusiveCriteria": { "alias": "exclusiveCriteria"; "required": false; "isSignal": true; }; "maxCriteria": { "alias": "maxCriteria"; "required": false; "isSignal": true; }; "maxCriteriaOptions": { "alias": "maxCriteriaOptions"; "required": false; "isSignal": true; }; "searchLabel": { "alias": "searchLabel"; "required": false; "isSignal": true; }; "clearButtonLabel": { "alias": "clearButtonLabel"; "required": false; "isSignal": true; }; "submitButtonLabel": { "alias": "submitButtonLabel"; "required": false; "isSignal": true; }; "itemCountText": { "alias": "itemCountText"; "required": false; "isSignal": true; }; "colorVariant": { "alias": "colorVariant"; "required": false; "isSignal": true; }; "disableFreeTextSearch": { "alias": "disableFreeTextSearch"; "required": false; "isSignal": true; }; "typeaheadOptionsLimit": { "alias": "typeaheadOptionsLimit"; "required": false; "isSignal": true; }; "disableSelectionByColonAndSemicolon": { "alias": "disableSelectionByColonAndSemicolon"; "required": false; "isSignal": true; }; "freeTextCriterion": { "alias": "freeTextCriterion"; "required": false; "isSignal": true; }; "searchForFreeTextLabel": { "alias": "searchForFreeTextLabel"; "required": false; "isSignal": true; }; }, { "doSearch": "doSearch"; "searchCriteria": "searchCriteriaChange"; "interceptDisplayedCriteria": "interceptDisplayedCriteria"; }, never, never, true, never>;
455
471
  }
@@ -5,6 +5,7 @@ import { Subject, BehaviorSubject } from 'rxjs';
5
5
  import { TranslatableString } from '@siemens/element-translate-ng/translate';
6
6
 
7
7
  declare class SiListDetailsComponent implements OnInit, OnChanges, OnDestroy {
8
+ private readonly document;
8
9
  private resizeSubs?;
9
10
  private elementRef;
10
11
  private resizeObserver;
@@ -113,6 +114,7 @@ declare class SiListDetailsComponent implements OnInit, OnChanges, OnDestroy {
113
114
 
114
115
  declare class SiListPaneComponent {
115
116
  protected parent: SiListDetailsComponent;
117
+ private readonly document;
116
118
  private element;
117
119
  constructor();
118
120
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiListPaneComponent, never>;
@@ -1,6 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { OnInit, OnChanges, OnDestroy } from '@angular/core';
3
- import * as _siemens_element_translate_ng_translate from '@siemens/element-translate-ng/translate';
4
3
  import { TranslatableString } from '@siemens/element-translate-ng/translate';
5
4
  import * as rxjs from 'rxjs';
6
5
  import { BehaviorSubject } from 'rxjs';
@@ -56,9 +55,13 @@ declare class SiLoadingSpinnerComponent {
56
55
  * t(() => $localize`:@@SI_LOADING_SPINNER.LABEL:Loading`)
57
56
  * ```
58
57
  */
59
- readonly ariaLabel: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
58
+ readonly ariaLabel: _angular_core.InputSignal<TranslatableString>;
59
+ /**
60
+ * Optional text to be displayed below the spinner.
61
+ */
62
+ readonly loadingText: _angular_core.InputSignal<TranslatableString | undefined>;
60
63
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiLoadingSpinnerComponent, never>;
61
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiLoadingSpinnerComponent, "si-loading-spinner", never, { "isBlockingSpinner": { "alias": "isBlockingSpinner"; "required": false; "isSignal": true; }; "isSpinnerOverlay": { "alias": "isSpinnerOverlay"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
64
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiLoadingSpinnerComponent, "si-loading-spinner", never, { "isBlockingSpinner": { "alias": "isBlockingSpinner"; "required": false; "isSignal": true; }; "isSpinnerOverlay": { "alias": "isSpinnerOverlay"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "loadingText": { "alias": "loadingText"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
62
65
  }
63
66
 
64
67
  declare class SiLoadingSpinnerDirective implements OnInit, OnChanges, OnDestroy {
@@ -78,6 +81,10 @@ declare class SiLoadingSpinnerDirective implements OnInit, OnChanges, OnDestroy
78
81
  * @defaultValue true
79
82
  */
80
83
  readonly initialDelay: _angular_core.InputSignalWithTransform<boolean, unknown>;
84
+ /**
85
+ * Optional text to be displayed below the spinner.
86
+ */
87
+ readonly loadingText: _angular_core.InputSignal<TranslatableString | undefined>;
81
88
  private el;
82
89
  private readonly viewRef;
83
90
  private cdRef;
@@ -95,7 +102,7 @@ declare class SiLoadingSpinnerDirective implements OnInit, OnChanges, OnDestroy
95
102
  ngOnChanges(): void;
96
103
  ngOnDestroy(): void;
97
104
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiLoadingSpinnerDirective, never>;
98
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SiLoadingSpinnerDirective, "[siLoading]", never, { "siLoading": { "alias": "siLoading"; "required": true; "isSignal": true; }; "blocking": { "alias": "blocking"; "required": false; "isSignal": true; }; "initialDelay": { "alias": "initialDelay"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
105
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SiLoadingSpinnerDirective, "[siLoading]", never, { "siLoading": { "alias": "siLoading"; "required": true; "isSignal": true; }; "blocking": { "alias": "blocking"; "required": false; "isSignal": true; }; "initialDelay": { "alias": "initialDelay"; "required": false; "isSignal": true; }; "loadingText": { "alias": "loadingText"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
99
106
  }
100
107
 
101
108
  declare class SiLoadingService {
@@ -1,8 +1,9 @@
1
1
  import { ExtendedStatusType } from '@siemens/element-ng/common';
2
2
  import * as _angular_core from '@angular/core';
3
- import { Signal } from '@angular/core';
3
+ import { Signal, TemplateRef } from '@angular/core';
4
4
  import { StyleSpecification } from 'maplibre-gl';
5
5
  import * as geojson from 'geojson';
6
+ import * as _siemens_element_translate_ng_translate from '@siemens/element-translate-ng/translate';
6
7
 
7
8
  /**
8
9
  * Copyright (c) Siemens 2016 - 2026
@@ -20,6 +21,27 @@ interface ClusterSegment {
20
21
  color: string;
21
22
  property: string;
22
23
  }
24
+ /**
25
+ * Context supplied to custom cluster popover templates, including all locations loaded so far.
26
+ *
27
+ * @experimental
28
+ */
29
+ interface ClusterPopoverContext {
30
+ /** All loaded original point features, exposed by an unqualified `let-features` binding. */
31
+ $implicit: readonly ClusterPoint[];
32
+ /** The same accumulated features as `$implicit`, exposed by `let-features="features"`. */
33
+ features: readonly ClusterPoint[];
34
+ /** Total number of locations in the selected cluster, including locations not yet loaded. */
35
+ total: number;
36
+ /** Whether the initial batch, an additional batch, or a retry is being loaded. */
37
+ loading: boolean;
38
+ /** Error from a failed batch request, or `undefined` when no error is available. */
39
+ error: unknown;
40
+ /** Selected cluster feature, including its `cluster_id` and `point_count` properties. */
41
+ cluster: ClusterPoint;
42
+ /** Closes the popover using the same behavior as its Close button. */
43
+ close: () => void;
44
+ }
23
45
 
24
46
  /**
25
47
  * Copyright (c) Siemens 2016 - 2026
@@ -144,9 +166,94 @@ declare class SiClusterSourceComponent {
144
166
  protected readonly clusterConfiguration: _angular_core.Signal<ClusterConfiguration>;
145
167
  /** Stores selection for the projected cluster-popover integration. */
146
168
  protected readonly selectedCluster: _angular_core.WritableSignal<ClusterPoint | undefined>;
147
- protected selectCluster(feature: ClusterPoint): Promise<void>;
169
+ private readonly source;
170
+ /**
171
+ * Returns a page of original points belonging to a cluster.
172
+ * @see https://maplibre.org/maplibre-gl-js/docs/API/classes/GeoJSONSource/#getclusterleaves
173
+ */
174
+ getClusterLeaves(clusterId: number, limit: number, offset: number): Promise<ClusterPoint[]>;
148
175
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiClusterSourceComponent, never>;
149
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiClusterSourceComponent, "si-cluster-source", never, { "sourceId": { "alias": "sourceId"; "required": true; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "groupProperty": { "alias": "groupProperty"; "required": false; "isSignal": true; }; "groupColors": { "alias": "groupColors"; "required": false; "isSignal": true; }; "statusProperty": { "alias": "statusProperty"; "required": false; "isSignal": true; }; "clusterRadius": { "alias": "clusterRadius"; "required": false; "isSignal": true; }; "clusterMaxZoom": { "alias": "clusterMaxZoom"; "required": false; "isSignal": true; }; "clusterMinPoints": { "alias": "clusterMinPoints"; "required": false; "isSignal": true; }; }, { "clusterClick": "clusterClick"; }, never, ["si-cluster-popover,[siClusterPopoverOutlet]"], true, never>;
176
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiClusterSourceComponent, "si-cluster-source", never, { "sourceId": { "alias": "sourceId"; "required": true; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "groupProperty": { "alias": "groupProperty"; "required": false; "isSignal": true; }; "groupColors": { "alias": "groupColors"; "required": false; "isSignal": true; }; "statusProperty": { "alias": "statusProperty"; "required": false; "isSignal": true; }; "clusterRadius": { "alias": "clusterRadius"; "required": false; "isSignal": true; }; "clusterMaxZoom": { "alias": "clusterMaxZoom"; "required": false; "isSignal": true; }; "clusterMinPoints": { "alias": "clusterMinPoints"; "required": false; "isSignal": true; }; }, { "clusterClick": "clusterClick"; }, never, ["*"], true, never>;
177
+ }
178
+
179
+ /**
180
+ * Optional popup with incrementally loaded locations projected into a `si-cluster-source`.
181
+ *
182
+ * @experimental
183
+ */
184
+ declare class SiClusterPopoverComponent {
185
+ private static idCounter;
186
+ private readonly destroyRef;
187
+ private readonly focusTrapFactory;
188
+ private readonly document;
189
+ private readonly source;
190
+ private readonly mapService;
191
+ private readonly resizeObserver;
192
+ /**
193
+ * Maximum width passed to the MapLibre popup.
194
+ * @defaultValue '320px'
195
+ */
196
+ readonly maxWidth: _angular_core.InputSignal<string>;
197
+ /**
198
+ * Whether the popup closes when the map moves.
199
+ * @defaultValue true
200
+ */
201
+ readonly closeOnMove: _angular_core.InputSignalWithTransform<boolean, unknown>;
202
+ /**
203
+ * Number of locations loaded initially and with each "Load more" action.
204
+ * @defaultValue 8
205
+ */
206
+ readonly pageSize: _angular_core.InputSignalWithTransform<number, unknown>;
207
+ /**
208
+ * Feature property displayed in the default list.
209
+ * @defaultValue 'name'
210
+ */
211
+ readonly labelProperty: _angular_core.InputSignal<string>;
212
+ /**
213
+ * Feature property displayed as the description in the default list.
214
+ * @defaultValue 'description'
215
+ */
216
+ readonly descriptionProperty: _angular_core.InputSignal<string>;
217
+ private readonly dialog;
218
+ private readonly scrollRegion;
219
+ private readonly batchButton;
220
+ private readonly selectedCluster;
221
+ private readonly batchFocusRequested;
222
+ private readonly offset;
223
+ private readonly displayedFeatures;
224
+ protected readonly titleId: string;
225
+ protected readonly popupCoordinates: _angular_core.WritableSignal<geojson.Position | undefined>;
226
+ protected readonly availableBlockSize: _angular_core.WritableSignal<number | undefined>;
227
+ protected readonly leaves: _angular_core.ResourceRef<ClusterPoint[] | undefined>;
228
+ protected readonly context: _angular_core.Signal<ClusterPopoverContext | undefined>;
229
+ protected readonly template: _angular_core.Signal<TemplateRef<ClusterPopoverContext> | undefined>;
230
+ protected readonly clusterPopoverTitle: _siemens_element_translate_ng_translate.TranslatableString;
231
+ protected readonly locationsLabel: _siemens_element_translate_ng_translate.TranslatableString;
232
+ protected readonly errorText: _siemens_element_translate_ng_translate.TranslatableString;
233
+ protected readonly loadMoreText: _siemens_element_translate_ng_translate.TranslatableString;
234
+ protected readonly retryText: _siemens_element_translate_ng_translate.TranslatableString;
235
+ protected readonly closeText: _siemens_element_translate_ng_translate.TranslatableString;
236
+ protected readonly icons: Record<"elementCancel", string>;
237
+ protected readonly close: () => void;
238
+ protected readonly loadBatch: () => void;
239
+ constructor();
240
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiClusterPopoverComponent, never>;
241
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiClusterPopoverComponent, "si-cluster-popover", never, { "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "closeOnMove": { "alias": "closeOnMove"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "labelProperty": { "alias": "labelProperty"; "required": false; "isSignal": true; }; "descriptionProperty": { "alias": "descriptionProperty"; "required": false; "isSignal": true; }; }, {}, ["template"], never, true, never>;
242
+ }
243
+
244
+ /**
245
+ * Template for custom location content inside `si-cluster-popover`.
246
+ *
247
+ * Receives a {@link ClusterPopoverContext} with all locations loaded so far. Loading feedback,
248
+ * error recovery, and the "Load more" button are handled by the popover.
249
+ *
250
+ * @experimental
251
+ */
252
+ declare class SiClusterPopoverTemplateDirective {
253
+ /** @internal */
254
+ static ngTemplateContextGuard(directive: SiClusterPopoverTemplateDirective, context: unknown): context is ClusterPopoverContext;
255
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiClusterPopoverTemplateDirective, never>;
256
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SiClusterPopoverTemplateDirective, "[siClusterPopoverTemplate]", never, {}, {}, never, never, true, never>;
150
257
  }
151
258
 
152
259
  /**
@@ -186,5 +293,5 @@ declare class SiStatusMarkerComponent {
186
293
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiStatusMarkerComponent, "si-status-marker", never, { "status": { "alias": "status"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
187
294
  }
188
295
 
189
- export { SiClusterSourceComponent, SiStatusMarkerComponent, injectSiMapStyle, injectSiMapTranslations };
190
- export type { ClusterColors, ClusterPoint, ClusterSegment, MarkerStatus };
296
+ export { SiClusterPopoverComponent, SiClusterPopoverTemplateDirective, SiClusterSourceComponent, SiStatusMarkerComponent, injectSiMapStyle, injectSiMapTranslations };
297
+ export type { ClusterColors, ClusterPoint, ClusterPopoverContext, ClusterSegment, MarkerStatus };
@@ -11,7 +11,10 @@ import { Options } from 'remark-math';
11
11
  * An extension to render LaTeX math expressions using KaTeX. Uses `remark-math` to parse
12
12
  * the expressions inside the markdown document.
13
13
  * @param parseOptions - options passed to `remark-math`
14
- * @param katexOptions - options passed to `katex`
14
+ * @param katexOptions - options passed to `katex`. Keep the default `trust: false` for untrusted
15
+ * expressions. Do not set `trust: true` unless all expressions rendered with that configuration
16
+ * come from sources you fully trust. For untrusted expressions that require specific commands,
17
+ * use a narrowly scoped `trust` callback that validates commands and their arguments, including URLs.
15
18
  * @returns extension for `SiMarkdownOption.installExtension()`
16
19
  */
17
20
  declare const siMarkdownMathKaTeX: (parseOptions?: Options, katexOptions?: KatexOptions) => SiMarkdownExtension;
@@ -6,6 +6,15 @@ import { MermaidConfig } from 'mermaid';
6
6
  * SPDX-License-Identifier: MIT
7
7
  */
8
8
 
9
+ /**
10
+ * An extension to render Mermaid diagrams.
11
+ *
12
+ * Options configure the shared Mermaid instance and are not isolated per Markdown component.
13
+ * Keep `securityLevel: 'strict'` for untrusted content and avoid mixing strict and permissive
14
+ * configurations. The integration trusts Mermaid's generated SVG output.
15
+ *
16
+ * @param options - trusted application configuration passed to Mermaid
17
+ */
9
18
  declare const siMarkdownMermaid: (options?: MermaidConfig) => SiMarkdownExtension;
10
19
 
11
20
  export { siMarkdownMermaid };
@@ -2,6 +2,7 @@ import { DomPortal } from '@angular/cdk/portal';
2
2
  import * as _angular_core from '@angular/core';
3
3
  import { TemplateRef, OnInit, OnChanges, SimpleChanges } from '@angular/core';
4
4
  import * as _siemens_element_translate_ng_translate from '@siemens/element-translate-ng/translate';
5
+ import { SiNavbarVerticalLayout } from '@siemens/element-ng/common';
5
6
  import * as _siemens_element_ng_navbar_vertical_next from '@siemens/element-ng/navbar-vertical-next';
6
7
  import * as _angular_cdk_overlay from '@angular/cdk/overlay';
7
8
  import { ConnectedPosition } from '@angular/cdk/overlay';
@@ -171,7 +172,7 @@ declare class SiNavbarVerticalNextItemComponent implements OnInit {
171
172
  }
172
173
 
173
174
  /** @experimental */
174
- declare class SiNavbarVerticalNextComponent implements OnChanges, OnInit {
175
+ declare class SiNavbarVerticalNextComponent implements OnChanges, OnInit, SiNavbarVerticalLayout {
175
176
  protected readonly icons: Record<"elementDoubleLeft" | "elementDoubleRight" | "elementLayoutPane2" | "elementLayoutPane2Right", string>;
176
177
  /**
177
178
  * Whether the navbar-vertical is collapsed.
@@ -3,7 +3,7 @@ import { TranslatableString } from '@siemens/element-translate-ng/translate';
3
3
  import * as _angular_core from '@angular/core';
4
4
  import { OnChanges, OnInit, SimpleChanges } from '@angular/core';
5
5
  import { NavigationExtras, IsActiveMatchOptions, ActivatedRoute } from '@angular/router';
6
- import { MenuItem } from '@siemens/element-ng/common';
6
+ import { SiNavbarVerticalLayout, MenuItem } from '@siemens/element-ng/common';
7
7
 
8
8
  /**
9
9
  * Copyright (c) Siemens 2016 - 2026
@@ -96,7 +96,7 @@ declare class SiNavbarVerticalItemGuardDirective {
96
96
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiNavbarVerticalItemGuardDirective, never>;
97
97
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SiNavbarVerticalItemGuardDirective, "[siNavbarVerticalItemGuard]", never, {}, {}, never, never, true, never>;
98
98
  }
99
- declare class SiNavbarVerticalComponent implements OnChanges, OnInit {
99
+ declare class SiNavbarVerticalComponent implements OnChanges, OnInit, SiNavbarVerticalLayout {
100
100
  protected readonly icons: Record<"elementSearch" | "elementDoubleLeft" | "elementDoubleRight", string>;
101
101
  /**
102
102
  * Whether the navbar-vertical is collapsed.
@@ -57,6 +57,15 @@ declare class SiPopoverDirective implements OnDestroy {
57
57
  readonly popoverCounter: number;
58
58
  /** @internal */
59
59
  readonly popoverId: string;
60
+ /**
61
+ * The ID of the trigger element.
62
+ *
63
+ * @defaultValue
64
+ * ```
65
+ * `__popover-trigger_${this.popoverCounter}`
66
+ * ```
67
+ */
68
+ readonly id: _angular_core.InputSignal<string>;
60
69
  /** @internal */
61
70
  protected readonly isOpen: _angular_core.WritableSignal<boolean>;
62
71
  private overlayref?;
@@ -80,7 +89,7 @@ declare class SiPopoverDirective implements OnDestroy {
80
89
  protected onClick(): void;
81
90
  private createOverlay;
82
91
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiPopoverDirective, never>;
83
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SiPopoverDirective, "[siPopover]", ["si-popover"], { "siPopover": { "alias": "siPopover"; "required": false; "isSignal": true; }; "placement": { "alias": "siPopoverPlacement"; "required": false; "isSignal": true; }; "title": { "alias": "siPopoverTitle"; "required": false; "isSignal": true; }; "containerClass": { "alias": "siPopoverContainerClass"; "required": false; "isSignal": true; }; "icon": { "alias": "siPopoverIcon"; "required": false; "isSignal": true; }; "context": { "alias": "siPopoverContext"; "required": false; "isSignal": true; }; "scrollStrategy": { "alias": "siPopoverScrollStrategy"; "required": false; "isSignal": true; }; }, { "visibilityChange": "siPopoverVisibilityChange"; }, never, never, true, never>;
92
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SiPopoverDirective, "[siPopover]", ["si-popover"], { "siPopover": { "alias": "siPopover"; "required": false; "isSignal": true; }; "placement": { "alias": "siPopoverPlacement"; "required": false; "isSignal": true; }; "title": { "alias": "siPopoverTitle"; "required": false; "isSignal": true; }; "containerClass": { "alias": "siPopoverContainerClass"; "required": false; "isSignal": true; }; "icon": { "alias": "siPopoverIcon"; "required": false; "isSignal": true; }; "context": { "alias": "siPopoverContext"; "required": false; "isSignal": true; }; "scrollStrategy": { "alias": "siPopoverScrollStrategy"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, { "visibilityChange": "siPopoverVisibilityChange"; }, never, never, true, never>;
84
93
  }
85
94
 
86
95
  declare class PopoverComponent implements OnInit, OnDestroy {
@@ -89,9 +98,16 @@ declare class PopoverComponent implements OnInit, OnDestroy {
89
98
  readonly popoverWrapper: _angular_core.Signal<ElementRef<any>>;
90
99
  /** @internal */
91
100
  labelledBy: string | undefined;
101
+ /**
102
+ * This property is set by the {@link SiPopoverTitleDirective} if present.
103
+ *
104
+ * @internal
105
+ */
106
+ readonly hasTemplateTitle: _angular_core.WritableSignal<boolean>;
92
107
  /** @internal */
93
108
  describedBy: string | undefined;
94
109
  protected readonly positionClass: _angular_core.WritableSignal<string>;
110
+ protected readonly ariaLabelledBy: _angular_core.Signal<string | undefined>;
95
111
  protected readonly arrowPos: _angular_core.WritableSignal<OverlayArrowPosition | undefined>;
96
112
  protected readonly description: _angular_core.Signal<_siemens_element_translate_ng_translate.TranslatableString | undefined>;
97
113
  protected popoverTemplate: TemplateRef<any> | null;
@@ -99,6 +115,7 @@ declare class PopoverComponent implements OnInit, OnDestroy {
99
115
  private elementRef;
100
116
  private focusTrapFactory;
101
117
  private focusTrap?;
118
+ private focusTimeoutId?;
102
119
  private readonly previouslyActiveElement;
103
120
  ngOnInit(): void;
104
121
  ngOnDestroy(): void;
@@ -112,6 +129,7 @@ declare class PopoverComponent implements OnInit, OnDestroy {
112
129
 
113
130
  declare class SiPopoverTitleDirective {
114
131
  readonly popover: PopoverComponent;
132
+ constructor();
115
133
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiPopoverTitleDirective, never>;
116
134
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SiPopoverTitleDirective, "si-popover-title", never, {}, {}, never, never, true, never>;
117
135
  }
@@ -1,5 +1,6 @@
1
1
  import { OverlayContainer } from '@angular/cdk/overlay';
2
2
  import * as i0 from '@angular/core';
3
+ import { Provider } from '@angular/core';
3
4
 
4
5
  /**
5
6
  * Copyright (c) Siemens 2016 - 2026
@@ -36,9 +37,23 @@ declare class SiShadowRootDirective extends OverlayContainer {
36
37
  private elementRef;
37
38
  private document;
38
39
  private destroyRef;
40
+ private themeTarget;
39
41
  protected _createContainer(): void;
40
42
  static ɵfac: i0.ɵɵFactoryDeclaration<SiShadowRootDirective, never>;
41
43
  static ɵdir: i0.ɵɵDirectiveDeclaration<SiShadowRootDirective, "[siShadowRoot]", never, {}, {}, never, never, true, never>;
42
44
  }
43
45
 
44
- export { SiShadowRootDirective };
46
+ /**
47
+ * Copyright (c) Siemens 2016 - 2026
48
+ * SPDX-License-Identifier: MIT
49
+ */
50
+
51
+ /**
52
+ * Provides the shadow root specific theme service with a dedicated theme target
53
+ * for components using Shadow DOM encapsulation.
54
+ * Use this when the component defines and loads the Element theme in its own shadow root instead
55
+ * of reusing the theme defined on `:root`.
56
+ */
57
+ declare const provideShadowRootThemeTarget: () => Provider;
58
+
59
+ export { SiShadowRootDirective, provideShadowRootThemeTarget };
@@ -2,11 +2,12 @@ import * as _angular_core from '@angular/core';
2
2
  import { OnInit, OnDestroy, OnChanges, SimpleChanges } from '@angular/core';
3
3
  import { Portal } from '@angular/cdk/portal';
4
4
  import { Observable } from 'rxjs';
5
+ import * as _siemens_element_ng_common from '@siemens/element-ng/common';
6
+ import { MenuItem } from '@siemens/element-ng/common';
5
7
  import * as _siemens_element_translate_ng_translate from '@siemens/element-translate-ng/translate';
6
8
  import { TranslatableString } from '@siemens/element-translate-ng/translate';
7
9
  import { Breakpoints, ElementDimensions } from '@siemens/element-ng/resize-observer';
8
10
  import { NavigationExtras, ActivatedRoute } from '@angular/router';
9
- import { MenuItem } from '@siemens/element-ng/common';
10
11
  import { ContentActionBarMainItem } from '@siemens/element-ng/content-action-bar';
11
12
  import { MenuItem as MenuItem$1 } from '@siemens/element-ng/menu';
12
13
 
@@ -208,6 +209,9 @@ declare class SiSidePanelComponent implements OnInit, OnDestroy, OnChanges {
208
209
  protected readonly isHidden: _angular_core.WritableSignal<boolean>;
209
210
  protected readonly isFullscreenOverlay: _angular_core.WritableSignal<boolean>;
210
211
  protected readonly showTempContent: _angular_core.WritableSignal<boolean>;
212
+ protected readonly navbarLayout: _angular_core.Signal<_siemens_element_ng_common.SiNavbarVerticalLayout | undefined>;
213
+ private readonly enclosingNavbar;
214
+ private readonly projectedNavbar;
211
215
  private readonly panelElement;
212
216
  private readonly contentElement;
213
217
  private readonly portalOutlet;
@@ -246,7 +250,7 @@ declare class SiSidePanelComponent implements OnInit, OnDestroy, OnChanges {
246
250
  private doOpenClose;
247
251
  private moveFocusInside;
248
252
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiSidePanelComponent, never>;
249
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiSidePanelComponent, "si-side-panel", never, { "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "toggleItemLabel": { "alias": "toggleItemLabel"; "required": false; "isSignal": true; }; "breakpoints": { "alias": "breakpoints"; "required": false; "isSignal": true; }; "enableMobile": { "alias": "enableMobile"; "required": false; "isSignal": true; }; "disableBackdrop": { "alias": "disableBackdrop"; "required": false; "isSignal": true; }; }, { "collapsed": "collapsedChange"; "closed": "closed"; "contentResize": "contentResize"; }, never, ["si-side-panel-content, element-side-panel-content", "*"], true, never>;
253
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiSidePanelComponent, "si-side-panel", never, { "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "toggleItemLabel": { "alias": "toggleItemLabel"; "required": false; "isSignal": true; }; "breakpoints": { "alias": "breakpoints"; "required": false; "isSignal": true; }; "enableMobile": { "alias": "enableMobile"; "required": false; "isSignal": true; }; "disableBackdrop": { "alias": "disableBackdrop"; "required": false; "isSignal": true; }; }, { "collapsed": "collapsedChange"; "closed": "closed"; "contentResize": "contentResize"; }, ["projectedNavbar"], ["si-side-panel-content, element-side-panel-content", "*"], true, never>;
250
254
  }
251
255
 
252
256
  /**
@@ -412,6 +416,7 @@ declare class SiSidePanelContentComponent implements OnInit {
412
416
  * For the animation we need to wait until the resize is done.
413
417
  */
414
418
  private readonly resizeAnimationDelay;
419
+ private readonly document;
415
420
  private readonly destroyRef;
416
421
  private readonly breakpointObserver;
417
422
  private expandedTimeout;
@@ -4,7 +4,8 @@ import { TranslatableString } from '@siemens/element-translate-ng/translate';
4
4
 
5
5
  /**
6
6
  * Directive to mark an element as a target for a skip link.
7
- * If this directive is applied to a none interactive element, a tabindex of -1 must be added manually.
7
+ * Focuses the target if it is focusable, otherwise its first usable tabbable descendant.
8
+ * Add tabindex="-1" to a non-interactive element to focus the target itself.
8
9
  */
9
10
  declare class SiSkipLinkTargetDirective implements OnInit, OnDestroy {
10
11
  /**
@@ -13,10 +14,11 @@ declare class SiSkipLinkTargetDirective implements OnInit, OnDestroy {
13
14
  readonly name: i0.InputSignal<TranslatableString>;
14
15
  private skipLinkService;
15
16
  private elementRef;
17
+ private interactivityChecker;
16
18
  ngOnInit(): void;
17
19
  ngOnDestroy(): void;
18
20
  /**
19
- * Call this methode to "activate" a skip link target. It will focus this element and scroll it into the view.
21
+ * Activate a skip link target by scrolling it into view and focusing it or its first tabbable descendant.
20
22
  */
21
23
  jumpToThisTarget(): void;
22
24
  static ɵfac: i0.ɵɵFactoryDeclaration<SiSkipLinkTargetDirective, never>;
@@ -1,6 +1,6 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import * as i0 from '@angular/core';
3
- import { EventEmitter, Signal } from '@angular/core';
3
+ import { InjectionToken, EventEmitter, Signal } from '@angular/core';
4
4
 
5
5
  /**
6
6
  * Copyright (c) Siemens 2016 - 2026
@@ -48,7 +48,8 @@ interface ThemeColorSchemes {
48
48
  type ThemeColorScheme = {
49
49
  [key: string]: string;
50
50
  };
51
- type ThemeType = 'dark' | 'light' | 'auto';
51
+ type ColorScheme = 'light' | 'dark';
52
+ type ThemeType = ColorScheme | 'auto';
52
53
  declare const ELEMENT_THEME_NAME = "element";
53
54
  declare const elementTheme: ThemeDescription;
54
55
 
@@ -134,6 +135,32 @@ declare class SiDefaultThemeStore extends SiThemeStore {
134
135
  private saveStore;
135
136
  }
136
137
 
138
+ /**
139
+ * Copyright (c) Siemens 2016 - 2026
140
+ * SPDX-License-Identifier: MIT
141
+ */
142
+
143
+ /**
144
+ * DOM boundary controlled by {@link SiThemeService}.
145
+ */
146
+ interface SiThemeDomTarget {
147
+ /** Element that receives theme and color-scheme classes. */
148
+ readonly element: HTMLElement;
149
+ /** CSS selector used for runtime theme variables. */
150
+ readonly rootSelector: string;
151
+ /** Event target for the legacy `theme-switch` event. */
152
+ readonly eventTarget?: EventTarget;
153
+ forEachElement(callback: (element: HTMLElement) => void): void;
154
+ registerElement?(element: HTMLElement): () => void;
155
+ getStyleElement(id: string): HTMLStyleElement | null;
156
+ appendStyleElement(style: HTMLStyleElement): void;
157
+ updateColorScheme(colorScheme: ColorScheme): void;
158
+ }
159
+ /**
160
+ * Theme DOM target. The default implementation targets the current document.
161
+ */
162
+ declare const SI_THEME_DOM_TARGET: InjectionToken<SiThemeDomTarget>;
163
+
137
164
  declare class SiThemeService {
138
165
  /**
139
166
  * The current color scheme. (e.g. light or dark).
@@ -190,8 +217,8 @@ declare class SiThemeService {
190
217
  private isBrowser;
191
218
  private previewTheme?;
192
219
  private themeStore;
193
- private meta;
194
220
  private document;
221
+ private themeTarget;
195
222
  constructor();
196
223
  /**
197
224
  * Returns `true` if a theme with the given name is available.
@@ -228,11 +255,11 @@ declare class SiThemeService {
228
255
  */
229
256
  setActiveTheme(name?: string, type?: ThemeType): Observable<boolean>;
230
257
  /**
231
- * Apply `light` or `dark` theme to the document.
258
+ * Apply `light` or `dark` theme to the configured theme target.
232
259
  */
233
260
  applyThemeType(type: ThemeType): void;
234
261
  /**
235
- * Applies the given theme to the document. If no theme is given, the active theme is applied.
262
+ * Applies the given theme to the configured theme target. If no theme is given, the active theme is applied.
236
263
  */
237
264
  applyTheme(theme?: Theme, type?: ThemeType, overwrite?: boolean): void;
238
265
  /**
@@ -248,6 +275,7 @@ declare class SiThemeService {
248
275
  private activateTheme;
249
276
  private hasThemeCSS;
250
277
  private createThemeCSS;
278
+ private createThemeSelector;
251
279
  private createThemeVariantCSS;
252
280
  private removeThemeCSS;
253
281
  private toggleDark;
@@ -267,5 +295,5 @@ declare class SiThemeService {
267
295
  */
268
296
  declare const injectIsDarkTheme: () => Signal<boolean>;
269
297
 
270
- export { ELEMENT_THEME_NAME, SI_THEME_LOCAL_STORAGE_KEY, SiDefaultThemeStore, SiThemeService, SiThemeStore, elementTheme, injectIsDarkTheme };
271
- export type { Theme, ThemeColorScheme, ThemeColorSchemes, ThemeDescription, ThemeProperty, ThemePropertyGroup, ThemePropertyType, ThemeStorage, ThemeType };
298
+ export { ELEMENT_THEME_NAME, SI_THEME_DOM_TARGET, SI_THEME_LOCAL_STORAGE_KEY, SiDefaultThemeStore, SiThemeService, SiThemeStore, elementTheme, injectIsDarkTheme };
299
+ export type { ColorScheme, SiThemeDomTarget, Theme, ThemeColorScheme, ThemeColorSchemes, ThemeDescription, ThemeProperty, ThemePropertyGroup, ThemePropertyType, ThemeStorage, ThemeType };
@@ -50,6 +50,19 @@ declare class SiTooltipModule {
50
50
  static ɵinj: i0.ɵɵInjectorDeclaration<SiTooltipModule>;
51
51
  }
52
52
 
53
+ /**
54
+ * Adds a tooltip containing the host element's text when that text is truncated.
55
+ */
56
+ declare class SiTooltipOverflowDirective {
57
+ private readonly elementRef;
58
+ private readonly tooltipService;
59
+ private readonly element;
60
+ constructor();
61
+ private canShow;
62
+ static ɵfac: i0.ɵɵFactoryDeclaration<SiTooltipOverflowDirective, never>;
63
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SiTooltipOverflowDirective, "[siTooltipOverflow]", never, {}, {}, never, never, true, never>;
64
+ }
65
+
53
66
  /**
54
67
  * Copyright (c) Siemens 2016 - 2026
55
68
  * SPDX-License-Identifier: MIT
@@ -90,5 +103,5 @@ declare class SiTooltipService {
90
103
  static ɵprov: i0.ɵɵInjectableDeclaration<SiTooltipService>;
91
104
  }
92
105
 
93
- export { SiTooltipDirective, SiTooltipModule, SiTooltipService };
106
+ export { SiTooltipDirective, SiTooltipModule, SiTooltipOverflowDirective, SiTooltipService };
94
107
  export type { TooltipRef };