@siemens/element-ng 51.0.0-rc.9 → 51.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/fesm2022/siemens-element-ng-chat-messages.mjs +121 -21
  2. package/fesm2022/siemens-element-ng-chat-messages.mjs.map +1 -1
  3. package/fesm2022/siemens-element-ng-form.mjs +17 -4
  4. package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
  5. package/fesm2022/siemens-element-ng-icon.mjs +1 -1
  6. package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
  7. package/fesm2022/siemens-element-ng-list-details.mjs +62 -16
  8. package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
  9. package/fesm2022/siemens-element-ng-main-detail-container.mjs +72 -24
  10. package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -1
  11. package/fesm2022/siemens-element-ng-markdown-hightlighter-highlightjs.mjs +2 -2
  12. package/fesm2022/siemens-element-ng-markdown-hightlighter-highlightjs.mjs.map +1 -1
  13. package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs +2 -2
  14. package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs.map +1 -1
  15. package/fesm2022/siemens-element-ng-navbar-vertical.mjs +2 -2
  16. package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
  17. package/fesm2022/siemens-element-ng-select.mjs +44 -5
  18. package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
  19. package/fesm2022/siemens-element-ng-side-panel.mjs +44 -9
  20. package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
  21. package/fesm2022/siemens-element-ng-split.mjs +18 -16
  22. package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
  23. package/fesm2022/siemens-element-ng-tabs.mjs +93 -71
  24. package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
  25. package/package.json +4 -4
  26. package/schematics/migrations/data/element-class-changes.js +8 -7
  27. package/schematics/ng-update/migrate-list-details-units.js +86 -0
  28. package/schematics/ng-update/migrate-main-detail-units.js +89 -0
  29. package/schematics/ng-update/migrate-split-collapse.js +1 -32
  30. package/schematics/ng-update/migrate-split-scale.js +524 -0
  31. package/schematics/ng-update/migrate-split-sizes.js +5 -3
  32. package/schematics/ng-update/migrate-to-v51.js +6 -0
  33. package/schematics/utils/index.js +1 -0
  34. package/schematics/utils/template-edit-utils.js +35 -0
  35. package/schematics/utils/template-utils.js +31 -45
  36. package/types/siemens-element-ng-chat-messages.d.ts +81 -17
  37. package/types/siemens-element-ng-form.d.ts +3 -0
  38. package/types/siemens-element-ng-list-details.d.ts +25 -3
  39. package/types/siemens-element-ng-main-detail-container.d.ts +23 -3
  40. package/types/siemens-element-ng-select.d.ts +31 -4
  41. package/types/siemens-element-ng-side-panel.d.ts +17 -3
  42. package/types/siemens-element-ng-split.d.ts +3 -10
@@ -3,54 +3,40 @@
3
3
  * SPDX-License-Identifier: MIT
4
4
  */
5
5
  import ts from 'typescript';
6
- export const getInlineTemplates = (source) => {
7
- const templateNodes = [];
8
- const componentDecoratorVisitor = (node) => {
9
- if (ts.isDecorator(node) &&
10
- ts.isCallExpression(node.expression) &&
11
- ts.isIdentifier(node.expression.expression) &&
12
- node.expression.expression.text === 'Component') {
13
- const arg = node.expression.arguments[0];
14
- if (ts.isObjectLiteralExpression(arg)) {
15
- const template = arg.properties.find(property => ts.isPropertyAssignment(property) &&
16
- ts.isIdentifier(property.name) &&
17
- property.name.text === 'template');
18
- const initializer = template?.initializer;
19
- if (initializer &&
20
- (ts.isNoSubstitutionTemplateLiteral(initializer) || ts.isStringLiteral(initializer))) {
21
- templateNodes.push(initializer);
6
+ export const getComponentTemplates = (source) => {
7
+ const templates = [];
8
+ const visit = (node) => {
9
+ if (ts.isClassDeclaration(node)) {
10
+ for (const decorator of ts.getDecorators(node) ?? []) {
11
+ const call = decorator.expression;
12
+ if (!ts.isCallExpression(call) ||
13
+ !ts.isIdentifier(call.expression) ||
14
+ call.expression.text !== 'Component') {
15
+ continue;
22
16
  }
23
- }
24
- }
25
- else {
26
- node.forEachChild(componentDecoratorVisitor);
27
- }
28
- };
29
- source.forEachChild(componentDecoratorVisitor);
30
- return templateNodes;
31
- };
32
- export const getTemplateUrl = (source) => {
33
- const templateUrls = [];
34
- const componentDecoratorVisitor = (node) => {
35
- if (ts.isDecorator(node) &&
36
- ts.isCallExpression(node.expression) &&
37
- ts.isIdentifier(node.expression.expression) &&
38
- node.expression.expression.text === 'Component') {
39
- const arg = node.expression.arguments[0];
40
- if (ts.isObjectLiteralExpression(arg)) {
41
- const template = arg.properties.find(property => ts.isPropertyAssignment(property) &&
42
- ts.isIdentifier(property.name) &&
43
- property.name.text === 'templateUrl');
44
- const initializer = template?.initializer;
45
- if (initializer && ts.isStringLiteral(initializer)) {
46
- templateUrls.push(initializer.text);
17
+ const metadata = call.arguments[0];
18
+ if (!metadata || !ts.isObjectLiteralExpression(metadata)) {
19
+ continue;
20
+ }
21
+ for (const property of metadata.properties) {
22
+ if (!ts.isPropertyAssignment(property) || !ts.isIdentifier(property.name)) {
23
+ continue;
24
+ }
25
+ const value = property.initializer;
26
+ if (property.name.text === 'template' &&
27
+ (ts.isStringLiteral(value) || ts.isNoSubstitutionTemplateLiteral(value))) {
28
+ templates.push({ component: node, kind: 'inline', node: value });
29
+ }
30
+ else if (property.name.text === 'templateUrl' && ts.isStringLiteral(value)) {
31
+ templates.push({ component: node, kind: 'external', url: value.text });
32
+ }
47
33
  }
48
34
  }
49
35
  }
50
- else {
51
- node.forEachChild(componentDecoratorVisitor);
52
- }
36
+ ts.forEachChild(node, visit);
53
37
  };
54
- source.forEachChild(componentDecoratorVisitor);
55
- return templateUrls;
38
+ visit(source);
39
+ return templates;
56
40
  };
41
+ export const getInlineTemplates = (source) => getComponentTemplates(source).flatMap(template => template.kind === 'inline' ? [template.node] : []);
42
+ export const getTemplateUrl = (source) => getComponentTemplates(source).flatMap(template => template.kind === 'external' ? [template.url] : []);
@@ -1,10 +1,9 @@
1
1
  import * as _siemens_element_translate_ng_translate from '@siemens/element-translate-ng/translate';
2
- import { TranslatableString as TranslatableString$1 } from '@siemens/element-translate-ng/translate';
2
+ import { TranslatableString } from '@siemens/element-translate-ng/translate';
3
3
  import * as _angular_core from '@angular/core';
4
4
  import { TemplateRef, AfterContentInit, OnDestroy, AfterViewInit, ElementRef } from '@angular/core';
5
5
  import { MenuItem } from '@siemens/element-ng/menu';
6
6
  import { SourceReference } from '@siemens/element-ng/source-chip';
7
- import { TranslatableString } from '@siemens/element-translate-ng/translate-types';
8
7
  import { SiModalService } from '@siemens/element-ng/modal';
9
8
  import { FileUploadError, UploadFile } from '@siemens/element-ng/file-uploader';
10
9
  import * as i1 from '@siemens/element-ng/resize-observer';
@@ -99,6 +98,73 @@ declare class SiAiMessageComponent {
99
98
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiAiMessageComponent, "si-ai-message", never, { "content": { "alias": "content"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "actions": { "alias": "actions"; "required": false; "isSignal": true; }; "secondaryActions": { "alias": "secondaryActions"; "required": false; "isSignal": true; }; "actionParam": { "alias": "actionParam"; "required": false; "isSignal": true; }; "sources": { "alias": "sources"; "required": false; "isSignal": true; }; "secondaryActionsLabel": { "alias": "secondaryActionsLabel"; "required": false; "isSignal": true; }; }, { "sourceClicked": "sourceClicked"; }, never, ["*"], true, never>;
100
99
  }
101
100
 
101
+ /**
102
+ * Collapsible activity message for displaying progress and intermediate steps in a chat.
103
+ *
104
+ * @experimental
105
+ */
106
+ declare class SiActivityMessageComponent {
107
+ /** Activity heading. */
108
+ readonly heading: _angular_core.InputSignal<TranslatableString>;
109
+ /** Activity icon. */
110
+ readonly icon: _angular_core.InputSignal<string | undefined>;
111
+ /** Current state of the activity. */
112
+ readonly state: _angular_core.InputSignal<"running" | "failed" | undefined>;
113
+ /**
114
+ * Whether the activity details are expanded.
115
+ *
116
+ * @defaultValue false
117
+ */
118
+ readonly expanded: _angular_core.ModelSignal<boolean>;
119
+ protected readonly icons: Record<"elementRight2" | "elementCircleFilled" | "elementIssue", string>;
120
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiActivityMessageComponent, never>;
121
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiActivityMessageComponent, "si-activity-message", never, { "heading": { "alias": "heading"; "required": true; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; }, { "expanded": "expandedChange"; }, never, ["*"], true, never>;
122
+ }
123
+
124
+ /**
125
+ * Titled content part for use inside an activity message.
126
+ *
127
+ * @experimental
128
+ */
129
+ declare class SiActivityMessagePartComponent {
130
+ /** Part heading. */
131
+ readonly heading: _angular_core.InputSignal<TranslatableString>;
132
+ /**
133
+ * Whether the part can be collapsed and expanded.
134
+ *
135
+ * @defaultValue false
136
+ */
137
+ readonly collapsible: _angular_core.InputSignalWithTransform<boolean, unknown>;
138
+ /**
139
+ * Whether collapsible content is expanded.
140
+ *
141
+ * @defaultValue true
142
+ */
143
+ readonly expanded: _angular_core.ModelSignal<boolean>;
144
+ protected readonly icons: Record<"elementRight2" | "elementCircleFilled", string>;
145
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiActivityMessagePartComponent, never>;
146
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiActivityMessagePartComponent, "si-activity-message-part", never, { "heading": { "alias": "heading"; "required": true; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; }, { "expanded": "expandedChange"; }, never, ["*"], true, never>;
147
+ }
148
+
149
+ /**
150
+ * Collapsible container for grouping multiple activity messages.
151
+ *
152
+ * @experimental
153
+ */
154
+ declare class SiActivityTraceComponent {
155
+ /** Trace heading. */
156
+ readonly heading: _angular_core.InputSignal<TranslatableString>;
157
+ /**
158
+ * Whether the trace content is expanded.
159
+ *
160
+ * @defaultValue false
161
+ */
162
+ readonly expanded: _angular_core.ModelSignal<boolean>;
163
+ protected readonly icons: Record<"elementRight2", string>;
164
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiActivityTraceComponent, never>;
165
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiActivityTraceComponent, "si-activity-trace", never, { "heading": { "alias": "heading"; "required": true; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; }, { "expanded": "expandedChange"; }, never, ["*"], true, never>;
166
+ }
167
+
102
168
  /**
103
169
  * Attachment item interface for file attachments in chat messages, used by {@link SiAttachmentListComponent} and inside {@link SiUserMessageComponent} as well as {@link SiChatInputComponent}.
104
170
  *
@@ -328,7 +394,7 @@ declare class SiChatInputComponent implements AfterViewInit {
328
394
  * t(() => $localize`:@@SI_CHAT_INPUT.PLACEHOLDER:Enter a message…`)
329
395
  * ```
330
396
  */
331
- readonly placeholder: _angular_core.InputSignal<TranslatableString$1>;
397
+ readonly placeholder: _angular_core.InputSignal<TranslatableString>;
332
398
  /**
333
399
  * Whether the input is disabled
334
400
  * @defaultValue false
@@ -356,10 +422,9 @@ declare class SiChatInputComponent implements AfterViewInit {
356
422
  * If not provided, the component will look for projected content with the `siChatInputDisclaimer` directive.
357
423
  * If both are empty, no disclaimer section will be shown (handled via CSS :empty).
358
424
  */
359
- readonly disclaimer: _angular_core.InputSignal<TranslatableString$1 | undefined>;
425
+ readonly disclaimer: _angular_core.InputSignal<TranslatableString | undefined>;
360
426
  /**
361
- * Primary actions available in the input (attach files, etc.)
362
- * All actions displayed inline
427
+ * Primary actions available in the input. Provide at most one action.
363
428
  * @defaultValue []
364
429
  */
365
430
  readonly actions: _angular_core.InputSignal<MessageAction[]>;
@@ -406,7 +471,7 @@ declare class SiChatInputComponent implements AfterViewInit {
406
471
  * t(() => $localize`:@@SI_CHAT_INPUT.SEND:Send`)
407
472
  * ```
408
473
  */
409
- readonly sendButtonLabel: _angular_core.InputSignal<TranslatableString$1>;
474
+ readonly sendButtonLabel: _angular_core.InputSignal<TranslatableString>;
410
475
  /**
411
476
  * Send button icon
412
477
  *
@@ -421,7 +486,7 @@ declare class SiChatInputComponent implements AfterViewInit {
421
486
  * t(() => $localize`:@@SI_CHAT_INPUT.INTERRUPT:Stop processing`)
422
487
  * ```
423
488
  */
424
- readonly interruptButtonLabel: _angular_core.InputSignal<TranslatableString$1>;
489
+ readonly interruptButtonLabel: _angular_core.InputSignal<TranslatableString>;
425
490
  /**
426
491
  * Auto-focus the input on component initialization
427
492
  * @defaultValue false
@@ -435,7 +500,7 @@ declare class SiChatInputComponent implements AfterViewInit {
435
500
  * t(() => $localize`:@@SI_CHAT_INPUT.ATTACH_FILE:Attach file`)
436
501
  * ```
437
502
  */
438
- readonly attachFileLabel: _angular_core.InputSignal<TranslatableString$1>;
503
+ readonly attachFileLabel: _angular_core.InputSignal<TranslatableString>;
439
504
  /**
440
505
  * Remove attachment aria label.
441
506
  * The attachment name is available with `{{attachment}}`.
@@ -445,7 +510,7 @@ declare class SiChatInputComponent implements AfterViewInit {
445
510
  * t(() => $localize`:@@SI_ATTACHMENT_LIST.REMOVE_ATTACHMENT:Remove {{attachment}}`)
446
511
  * ```
447
512
  */
448
- readonly removeAttachmentLabel: _angular_core.InputSignal<TranslatableString$1>;
513
+ readonly removeAttachmentLabel: _angular_core.InputSignal<TranslatableString>;
449
514
  /**
450
515
  * More actions button aria label
451
516
  *
@@ -454,7 +519,7 @@ declare class SiChatInputComponent implements AfterViewInit {
454
519
  * t(() => $localize`:@@SI_CHAT_INPUT.SECONDARY_ACTIONS:Additional actions`)
455
520
  * ```
456
521
  */
457
- readonly secondaryActionsLabel: _angular_core.InputSignal<TranslatableString$1>;
522
+ readonly secondaryActionsLabel: _angular_core.InputSignal<TranslatableString>;
458
523
  /**
459
524
  * Suggested follow-up prompts to display as pill buttons above the chat input.
460
525
  * Use `followUpPromptSelected` to handle selection and update the input value.
@@ -487,14 +552,14 @@ declare class SiChatInputComponent implements AfterViewInit {
487
552
  protected readonly hasAttachments: _angular_core.Signal<boolean>;
488
553
  protected readonly hasActions: _angular_core.Signal<boolean>;
489
554
  protected readonly hasSecondaryActions: _angular_core.Signal<boolean>;
490
- protected readonly allMenuActions: _angular_core.Signal<MenuItem[]>;
555
+ protected readonly combinedMenuActions: _angular_core.Signal<MenuItem[]>;
491
556
  protected readonly hasMenuActions: _angular_core.Signal<boolean>;
492
557
  protected triggerFileInput(): void;
493
558
  protected readonly canSend: _angular_core.Signal<boolean>;
494
559
  protected readonly showInterruptButton: _angular_core.Signal<boolean>;
495
560
  protected readonly buttonDisabled: _angular_core.Signal<boolean>;
496
561
  protected readonly buttonIcon: _angular_core.Signal<string>;
497
- protected readonly buttonLabel: _angular_core.Signal<TranslatableString$1>;
562
+ protected readonly buttonLabel: _angular_core.Signal<TranslatableString>;
498
563
  protected readonly dragOver: _angular_core.WritableSignal<boolean>;
499
564
  private readonly injector;
500
565
  protected onInputChange(value: string): void;
@@ -673,10 +738,10 @@ declare class SiUserMessageComponent {
673
738
  }
674
739
 
675
740
  interface PromptCategory {
676
- label: TranslatableString$1;
741
+ label: TranslatableString;
677
742
  }
678
743
  interface PromptSuggestion {
679
- text: TranslatableString$1;
744
+ text: TranslatableString;
680
745
  }
681
746
  /**
682
747
  * AI welcome screen component for displaying initial state in AI chat interfaces.
@@ -691,7 +756,6 @@ interface PromptSuggestion {
691
756
  * - Clickable prompt suggestion cards
692
757
  * - Optional refresh button to regenerate suggestions
693
758
  *
694
- * @see {@link SiAiChatContainerComponent} for the AI chat container which uses this component
695
759
  * @see {@link SiChatContainerComponent} for the base chat container
696
760
  *
697
761
  * @experimental
@@ -722,5 +786,5 @@ declare class SiAiWelcomeScreenComponent {
722
786
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiAiWelcomeScreenComponent, "si-ai-welcome-screen", never, { "categories": { "alias": "categories"; "required": false; "isSignal": true; }; "selectedCategory": { "alias": "selectedCategory"; "required": false; "isSignal": true; }; "promptSuggestions": { "alias": "promptSuggestions"; "required": false; "isSignal": true; }; }, { "selectedCategory": "selectedCategoryChange"; "promptSelected": "promptSelected"; }, never, ["*"], true, never>;
723
787
  }
724
788
 
725
- export { SiAiMessageComponent, SiAiWelcomeScreenComponent, SiAttachmentListComponent, SiChatContainerComponent, SiChatContainerInputDirective, SiChatInputComponent, SiChatInputDisclaimerDirective, SiChatMessageActionDirective, SiChatMessageComponent, SiUserMessageComponent };
789
+ export { SiActivityMessageComponent, SiActivityMessagePartComponent, SiActivityTraceComponent, SiAiMessageComponent, SiAiWelcomeScreenComponent, SiAttachmentListComponent, SiChatContainerComponent, SiChatContainerInputDirective, SiChatInputComponent, SiChatInputDisclaimerDirective, SiChatMessageActionDirective, SiChatMessageComponent, SiUserMessageComponent };
726
790
  export type { Attachment, ChatInputAttachment, MessageAction, PromptCategory, PromptSuggestion };
@@ -340,6 +340,8 @@ declare class SiFormItemComponent implements AfterContentInit, AfterContentCheck
340
340
  readonly required: _angular_core.Signal<boolean>;
341
341
  /** @internal */
342
342
  readonly control: _angular_core.Signal<_angular_forms.AbstractControl<any, any, any> | null | undefined>;
343
+ /** @internal */
344
+ readonly radioGroupName: _angular_core.Signal<string | undefined>;
343
345
  ngOnChanges(changes: SimpleChanges<this>): void;
344
346
  ngOnInit(): void;
345
347
  ngAfterContentInit(): void;
@@ -358,6 +360,7 @@ declare class SiFormItemComponent implements AfterContentInit, AfterContentCheck
358
360
 
359
361
  interface SiFormFieldsetControl {
360
362
  readonly control: Signal<unknown>;
363
+ readonly radioGroupName?: Signal<string | undefined>;
361
364
  readonly required: Signal<boolean>;
362
365
  readonly touched: Signal<boolean>;
363
366
  readonly errors: Signal<readonly SiFormError[]>;
@@ -1,5 +1,6 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { OnInit, OnChanges, OnDestroy, SimpleChanges, Signal } from '@angular/core';
3
+ import { SplitUnit } from '@siemens/element-ng/split';
3
4
  import { Subject, BehaviorSubject } from 'rxjs';
4
5
  import { TranslatableString } from '@siemens/element-translate-ng/translate';
5
6
 
@@ -8,6 +9,8 @@ declare class SiListDetailsComponent implements OnInit, OnChanges, OnDestroy {
8
9
  private elementRef;
9
10
  private resizeObserver;
10
11
  private readonly listDetailsContainer;
12
+ private readonly listPart;
13
+ private readonly split;
11
14
  protected readonly animationsGloballyDisabled: boolean;
12
15
  /**
13
16
  * A numeric value defining the minimum width in px, which the component needs
@@ -35,11 +38,22 @@ declare class SiListDetailsComponent implements OnInit, OnChanges, OnDestroy {
35
38
  */
36
39
  readonly disableResizing: _angular_core.InputSignalWithTransform<boolean, unknown>;
37
40
  /**
38
- * The percentage width of the list view of the overall component width.
41
+ * The list pane size, updated when the split is resized or restored.
42
+ * With resizing enabled, the value uses {@link listWidthUnit}: pixels for `px`,
43
+ * or a percentage-based fractional weight for `fr`. With resizing disabled,
44
+ * the value is always interpreted as a percentage.
45
+ * Percentage values must be in the inclusive range 0-100; values outside this
46
+ * range fall back to a 32/68 list/details split.
39
47
  *
40
- * @defaultValue 32
48
+ * @defaultValue 300
41
49
  */
42
50
  readonly listWidth: _angular_core.ModelSignal<number>;
51
+ /**
52
+ * Unit used for the list split part when resizing is enabled.
53
+ *
54
+ * @defaultValue 'px'
55
+ */
56
+ readonly listWidthUnit: _angular_core.InputSignal<SplitUnit>;
43
57
  /**
44
58
  * Sets the minimal width of the list component in pixel.
45
59
  *
@@ -57,6 +71,13 @@ declare class SiListDetailsComponent implements OnInit, OnChanges, OnDestroy {
57
71
  * Required for persistence of ui state.
58
72
  */
59
73
  readonly stateId: _angular_core.InputSignal<string | undefined>;
74
+ /**
75
+ * Percentage width shared by static and resizable `fr` layouts.
76
+ * The migration sets `listWidthUnit="fr"` without setting `listWidth`, so the default
77
+ * pixel width of 300 must fall back to 32 to preserve the legacy 32/68 split.
78
+ * @internal
79
+ */
80
+ readonly listWidthPercent: _angular_core.Signal<number>;
60
81
  protected readonly splitSizes: _angular_core.Signal<[number, number]>;
61
82
  protected readonly listStateId: _angular_core.Signal<string | undefined>;
62
83
  protected readonly detailsStateId: _angular_core.Signal<string | undefined>;
@@ -79,6 +100,7 @@ declare class SiListDetailsComponent implements OnInit, OnChanges, OnDestroy {
79
100
  ngOnDestroy(): void;
80
101
  private readonly resizeDimensions;
81
102
  protected onSplitSizesChange(sizes: number[]): void;
103
+ private getListSizePx;
82
104
  /** @internal */
83
105
  detailsBackClicked(options?: {
84
106
  animationDone?: () => void;
@@ -86,7 +108,7 @@ declare class SiListDetailsComponent implements OnInit, OnChanges, OnDestroy {
86
108
  protected detailsExpandedAnimationDone(event: TransitionEvent): void;
87
109
  private transferFocus;
88
110
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiListDetailsComponent, never>;
89
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiListDetailsComponent, "si-list-details", never, { "expandBreakpoint": { "alias": "expandBreakpoint"; "required": false; "isSignal": true; }; "detailsActive": { "alias": "detailsActive"; "required": false; "isSignal": true; }; "disableResizing": { "alias": "disableResizing"; "required": false; "isSignal": true; }; "listWidth": { "alias": "listWidth"; "required": false; "isSignal": true; }; "minListSize": { "alias": "minListSize"; "required": false; "isSignal": true; }; "minDetailsSize": { "alias": "minDetailsSize"; "required": false; "isSignal": true; }; "stateId": { "alias": "stateId"; "required": false; "isSignal": true; }; }, { "detailsActive": "detailsActiveChange"; "listWidth": "listWidthChange"; }, never, ["si-list-pane", "si-details-pane"], true, never>;
111
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiListDetailsComponent, "si-list-details", never, { "expandBreakpoint": { "alias": "expandBreakpoint"; "required": false; "isSignal": true; }; "detailsActive": { "alias": "detailsActive"; "required": false; "isSignal": true; }; "disableResizing": { "alias": "disableResizing"; "required": false; "isSignal": true; }; "listWidth": { "alias": "listWidth"; "required": false; "isSignal": true; }; "listWidthUnit": { "alias": "listWidthUnit"; "required": false; "isSignal": true; }; "minListSize": { "alias": "minListSize"; "required": false; "isSignal": true; }; "minDetailsSize": { "alias": "minDetailsSize"; "required": false; "isSignal": true; }; "stateId": { "alias": "stateId"; "required": false; "isSignal": true; }; }, { "detailsActive": "detailsActiveChange"; "listWidth": "listWidthChange"; }, never, ["si-list-pane", "si-details-pane"], true, never>;
90
112
  }
91
113
 
92
114
  declare class SiListPaneComponent {
@@ -1,5 +1,6 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { OnInit, OnChanges, SimpleChanges } from '@angular/core';
3
+ import { SplitUnit } from '@siemens/element-ng/split';
3
4
  import { TranslatableString } from '@siemens/element-translate-ng/translate';
4
5
 
5
6
  declare class SiMainDetailContainerComponent implements OnInit, OnChanges {
@@ -9,6 +10,8 @@ declare class SiMainDetailContainerComponent implements OnInit, OnChanges {
9
10
  private readonly resizeObserver;
10
11
  private readonly changeDetectorRef;
11
12
  private readonly destroyRef;
13
+ private readonly splitElement;
14
+ private readonly mainSplitPart;
12
15
  /**
13
16
  * A numeric value defining the minimum width in px, which the container needs
14
17
  * to be displayed in its large layout. Whenever smaller than
@@ -101,8 +104,23 @@ declare class SiMainDetailContainerComponent implements OnInit, OnChanges {
101
104
  */
102
105
  readonly detailContainerClass: _angular_core.InputSignal<string>;
103
106
  /**
104
- * The percentage width of the main container from the overall component width.
105
- * Can be a number or `'default'`, which is 32% when {@link resizableParts} is active, otherwise 50%.
107
+ * Unit used for the main split part when {@link resizableParts} is enabled.
108
+ *
109
+ * @defaultValue 'px'
110
+ */
111
+ readonly mainContainerWidthUnit: _angular_core.InputSignal<SplitUnit>;
112
+ /**
113
+ * The size of the main container. When {@link resizableParts} is enabled,
114
+ * the value is interpreted using {@link mainContainerWidthUnit} and updates as the splitter is moved.
115
+ * With `mainContainerWidthUnit="fr"`, numeric values must be from `0` to `100` (inclusive).
116
+ * The main and detail fractional weights are the value and `100 - value`;
117
+ * out-of-range values fall back to `32` and `68`.
118
+ * In the static layout, numeric values represent a percentage from `0` to `100`
119
+ * (inclusive); out-of-range values leave both containers without max-size constraints.
120
+ * Pixel widths are not limited to the `0` to `100` range.
121
+ *
122
+ * With `'default'`, resizable pixel layouts use {@link minMainSize}, resizable fractional
123
+ * layouts use main and detail weights of `32` and `68`, and static layouts use `50%`.
106
124
  *
107
125
  * @defaultValue 'default'
108
126
  */
@@ -145,11 +163,13 @@ declare class SiMainDetailContainerComponent implements OnInit, OnChanges {
145
163
  * Get the max size to limit in the static flex layout (if less than 50%), otherwise not set
146
164
  */
147
165
  private getMaxSize;
166
+ private getSplitSizes;
167
+ private getMainSizePx;
148
168
  private determineLayout;
149
169
  private doAnimation;
150
170
  private updateDetailsFocusable;
151
171
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiMainDetailContainerComponent, never>;
152
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiMainDetailContainerComponent, "si-main-detail-container", never, { "largeLayoutBreakpoint": { "alias": "largeLayoutBreakpoint"; "required": false; "isSignal": true; }; "detailsActive": { "alias": "detailsActive"; "required": false; "isSignal": true; }; "heading": { "alias": "heading"; "required": false; "isSignal": true; }; "truncateHeading": { "alias": "truncateHeading"; "required": false; "isSignal": true; }; "detailsHeading": { "alias": "detailsHeading"; "required": false; "isSignal": true; }; "resizableParts": { "alias": "resizableParts"; "required": false; "isSignal": true; }; "hideBackButton": { "alias": "hideBackButton"; "required": false; "isSignal": true; }; "detailsBackButtonText": { "alias": "detailsBackButtonText"; "required": false; "isSignal": true; }; "containerClass": { "alias": "containerClass"; "required": false; "isSignal": true; }; "mainContainerClass": { "alias": "mainContainerClass"; "required": false; "isSignal": true; }; "detailContainerClass": { "alias": "detailContainerClass"; "required": false; "isSignal": true; }; "mainContainerWidth": { "alias": "mainContainerWidth"; "required": false; "isSignal": true; }; "minMainSize": { "alias": "minMainSize"; "required": false; "isSignal": true; }; "minDetailSize": { "alias": "minDetailSize"; "required": false; "isSignal": true; }; "stateId": { "alias": "stateId"; "required": false; "isSignal": true; }; }, { "hasLargeSizeChange": "hasLargeSizeChange"; "detailsActive": "detailsActiveChange"; "mainContainerWidth": "mainContainerWidthChange"; }, never, ["[slot=mainSearch]", "[slot=mainActions]", "[slot=mainData]", "[slot=detailActions]", "[slot=details]"], true, never>;
172
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiMainDetailContainerComponent, "si-main-detail-container", never, { "largeLayoutBreakpoint": { "alias": "largeLayoutBreakpoint"; "required": false; "isSignal": true; }; "detailsActive": { "alias": "detailsActive"; "required": false; "isSignal": true; }; "heading": { "alias": "heading"; "required": false; "isSignal": true; }; "truncateHeading": { "alias": "truncateHeading"; "required": false; "isSignal": true; }; "detailsHeading": { "alias": "detailsHeading"; "required": false; "isSignal": true; }; "resizableParts": { "alias": "resizableParts"; "required": false; "isSignal": true; }; "hideBackButton": { "alias": "hideBackButton"; "required": false; "isSignal": true; }; "detailsBackButtonText": { "alias": "detailsBackButtonText"; "required": false; "isSignal": true; }; "containerClass": { "alias": "containerClass"; "required": false; "isSignal": true; }; "mainContainerClass": { "alias": "mainContainerClass"; "required": false; "isSignal": true; }; "detailContainerClass": { "alias": "detailContainerClass"; "required": false; "isSignal": true; }; "mainContainerWidthUnit": { "alias": "mainContainerWidthUnit"; "required": false; "isSignal": true; }; "mainContainerWidth": { "alias": "mainContainerWidth"; "required": false; "isSignal": true; }; "minMainSize": { "alias": "minMainSize"; "required": false; "isSignal": true; }; "minDetailSize": { "alias": "minDetailSize"; "required": false; "isSignal": true; }; "stateId": { "alias": "stateId"; "required": false; "isSignal": true; }; }, { "hasLargeSizeChange": "hasLargeSizeChange"; "detailsActive": "detailsActiveChange"; "mainContainerWidth": "mainContainerWidthChange"; }, never, ["[slot=mainSearch]", "[slot=mainActions]", "[slot=mainData]", "[slot=detailActions]", "[slot=details]"], true, never>;
153
173
  }
154
174
 
155
175
  declare class SiMainDetailContainerModule {
@@ -171,6 +171,9 @@ declare class SiSelectComponent<T> implements SiFormItemControl {
171
171
  protected readonly optionTemplate: _angular_core.Signal<TemplateRef<{
172
172
  $implicit: SelectOption<T>;
173
173
  }> | undefined>;
174
+ protected readonly selectedValueTemplate: _angular_core.Signal<TemplateRef<{
175
+ $implicit: SelectOption<T>;
176
+ }> | undefined>;
174
177
  protected readonly groupTemplate: _angular_core.Signal<TemplateRef<{
175
178
  $implicit: SelectGroup<T>;
176
179
  }> | undefined>;
@@ -205,7 +208,7 @@ declare class SiSelectComponent<T> implements SiFormItemControl {
205
208
  close(): void;
206
209
  protected backdropClick(): void;
207
210
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiSelectComponent<any>, never>;
208
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiSelectComponent<any>, "si-select", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "labelledbyInput": { "alias": "labelledby"; "required": false; "isSignal": true; }; "filterPlaceholder": { "alias": "filterPlaceholder"; "required": false; "isSignal": true; }; "noResultsFoundLabel": { "alias": "noResultsFoundLabel"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "scrollStrategy": { "alias": "scrollStrategy"; "required": false; "isSignal": true; }; "errormessageId": { "alias": "errormessageId"; "required": false; "isSignal": true; }; "hasFilter": { "alias": "hasFilter"; "required": false; "isSignal": true; }; }, { "openChange": "openChange"; }, ["optionTemplate", "groupTemplate", "actionsTemplate"], never, true, never>;
211
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiSelectComponent<any>, "si-select", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "labelledbyInput": { "alias": "labelledby"; "required": false; "isSignal": true; }; "filterPlaceholder": { "alias": "filterPlaceholder"; "required": false; "isSignal": true; }; "noResultsFoundLabel": { "alias": "noResultsFoundLabel"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "scrollStrategy": { "alias": "scrollStrategy"; "required": false; "isSignal": true; }; "errormessageId": { "alias": "errormessageId"; "required": false; "isSignal": true; }; "hasFilter": { "alias": "hasFilter"; "required": false; "isSignal": true; }; }, { "openChange": "openChange"; }, ["optionTemplate", "selectedValueTemplate", "groupTemplate", "actionsTemplate"], never, true, never>;
209
212
  }
210
213
 
211
214
  /**
@@ -438,7 +441,8 @@ declare class SiSelectMultiValueDirective<T> extends SiSelectSelectionStrategy<T
438
441
  }
439
442
 
440
443
  /**
441
- * The directive allows to template/customize the value option rendering.
444
+ * The directive allows to template/customize the option rendering in the dropdown.
445
+ * It is also used for rendering selected values in the input if no input template is provided.
442
446
  * This requires using the {@link SiSelectSimpleOptionsDirective} to specify options as input.
443
447
  *
444
448
  * @example
@@ -457,6 +461,29 @@ declare class SiSelectOptionTemplateDirective {
457
461
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SiSelectOptionTemplateDirective, "[siSelectOptionTemplate]", never, {}, {}, never, never, true, never>;
458
462
  }
459
463
 
464
+ /**
465
+ * The directive allows to template/customize the selected value rendering in the select input.
466
+ * This requires using the {@link SiSelectSimpleOptionsDirective} to specify options as input.
467
+ *
468
+ * @example
469
+ * ```html
470
+ * <si-select [options]="[
471
+ * { type: 'option', value: 'good', label: 'Good' },
472
+ * { type: 'option', value: 'fair', label: 'Fair' }
473
+ * ]">
474
+ * <ng-template siSelectValueTemplate let-option>{{ option.label }}</ng-template>
475
+ * </si-select>
476
+ * ```
477
+ */
478
+ declare class SiSelectValueTemplateDirective {
479
+ /** @internal */
480
+ static ngTemplateContextGuard<T = any>(directive: SiSelectValueTemplateDirective, context: unknown): context is {
481
+ $implicit: SelectOption<T>;
482
+ };
483
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiSelectValueTemplateDirective, never>;
484
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SiSelectValueTemplateDirective, "[siSelectValueTemplate]", never, {}, {}, never, never, true, never>;
485
+ }
486
+
460
487
  /**
461
488
  * The directive allows to template/customize the group option rendering.
462
489
  * This requires using the {@link SiSelectSimpleOptionsDirective} to specify options as input.
@@ -508,7 +535,7 @@ declare class SiSelectActionsDirective {
508
535
 
509
536
  declare class SiSelectModule {
510
537
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiSelectModule, never>;
511
- static ɵmod: _angular_core.ɵɵNgModuleDeclaration<SiSelectModule, never, [typeof SiSelectActionDirective, typeof SiSelectActionsDirective, typeof SiSelectComponent, typeof SiSelectGroupTemplateDirective, typeof SiSelectMultiValueDirective, typeof SiSelectOptionTemplateDirective, typeof SiSelectSimpleOptionsDirective, typeof SiSelectSingleValueDirective], [typeof SiSelectActionDirective, typeof SiSelectActionsDirective, typeof SiSelectComponent, typeof SiSelectGroupTemplateDirective, typeof SiSelectMultiValueDirective, typeof SiSelectOptionTemplateDirective, typeof SiSelectSimpleOptionsDirective, typeof SiSelectSingleValueDirective]>;
538
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<SiSelectModule, never, [typeof SiSelectActionDirective, typeof SiSelectActionsDirective, typeof SiSelectComponent, typeof SiSelectGroupTemplateDirective, typeof SiSelectMultiValueDirective, typeof SiSelectOptionTemplateDirective, typeof SiSelectValueTemplateDirective, typeof SiSelectSimpleOptionsDirective, typeof SiSelectSingleValueDirective], [typeof SiSelectActionDirective, typeof SiSelectActionsDirective, typeof SiSelectComponent, typeof SiSelectGroupTemplateDirective, typeof SiSelectMultiValueDirective, typeof SiSelectOptionTemplateDirective, typeof SiSelectValueTemplateDirective, typeof SiSelectSimpleOptionsDirective, typeof SiSelectSingleValueDirective]>;
512
539
  static ɵinj: _angular_core.ɵɵInjectorDeclaration<SiSelectModule>;
513
540
  }
514
541
 
@@ -817,5 +844,5 @@ declare class SiSelectComboboxValueComponent {
817
844
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiSelectComboboxValueComponent, "si-select-combobox-value", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconColor": { "alias": "iconColor"; "required": false; "isSignal": true; }; "stackedIcon": { "alias": "stackedIcon"; "required": false; "isSignal": true; }; "stackedIconColor": { "alias": "stackedIconColor"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
818
845
  }
819
846
 
820
- export { SiCustomSelectDirective, SiSelectActionDirective, SiSelectActionsDirective, SiSelectComboboxComponent, SiSelectComboboxValueComponent, SiSelectComponent, SiSelectDropdownDirective, SiSelectGroupTemplateDirective, SiSelectLazyOptionsDirective, SiSelectListHasFilterComponent, SiSelectModule, SiSelectMultiValueDirective, SiSelectOptionTemplateDirective, SiSelectSimpleOptionsDirective, SiSelectSingleValueDirective };
847
+ export { SiCustomSelectDirective, SiSelectActionDirective, SiSelectActionsDirective, SiSelectComboboxComponent, SiSelectComboboxValueComponent, SiSelectComponent, SiSelectDropdownDirective, SiSelectGroupTemplateDirective, SiSelectLazyOptionsDirective, SiSelectListHasFilterComponent, SiSelectModule, SiSelectMultiValueDirective, SiSelectOptionTemplateDirective, SiSelectSimpleOptionsDirective, SiSelectSingleValueDirective, SiSelectValueTemplateDirective };
821
848
  export type { SelectGroup, SelectItem, SelectOption, SelectOptionSource, SiSelectDropdownContentType };
@@ -423,7 +423,7 @@ declare class SiSidePanelContentComponent implements OnInit {
423
423
  toggleFullscreen(): void;
424
424
  protected toggleSidePanel(event?: MouseEvent): void;
425
425
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiSidePanelContentComponent, never>;
426
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiSidePanelContentComponent, "si-side-panel-content", never, { "collapsibleInput": { "alias": "collapsible"; "required": false; "isSignal": true; }; "heading": { "alias": "heading"; "required": false; "isSignal": true; }; "primaryActions": { "alias": "primaryActions"; "required": false; "isSignal": true; }; "secondaryActions": { "alias": "secondaryActions"; "required": false; "isSignal": true; }; "statusActions": { "alias": "statusActions"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "closeButtonLabel": { "alias": "closeButtonLabel"; "required": false; "isSignal": true; }; "toggleItemLabel": { "alias": "toggleItemLabel"; "required": false; "isSignal": true; }; "enterFullscreenLabel": { "alias": "enterFullscreenLabel"; "required": false; "isSignal": true; }; "exitFullscreenLabel": { "alias": "exitFullscreenLabel"; "required": false; "isSignal": true; }; "showMobileDrawerBadge": { "alias": "showMobileDrawerBadge"; "required": false; "isSignal": true; }; "displayMode": { "alias": "displayMode"; "required": false; "isSignal": true; }; "navigateConfig": { "alias": "navigateConfig"; "required": false; "isSignal": true; }; }, { "searchEvent": "searchEvent"; }, never, ["si-side-panel-actions", "*"], true, never>;
426
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiSidePanelContentComponent, "si-side-panel-content", never, { "collapsibleInput": { "alias": "collapsible"; "required": false; "isSignal": true; }; "heading": { "alias": "heading"; "required": false; "isSignal": true; }; "primaryActions": { "alias": "primaryActions"; "required": false; "isSignal": true; }; "secondaryActions": { "alias": "secondaryActions"; "required": false; "isSignal": true; }; "statusActions": { "alias": "statusActions"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "closeButtonLabel": { "alias": "closeButtonLabel"; "required": false; "isSignal": true; }; "toggleItemLabel": { "alias": "toggleItemLabel"; "required": false; "isSignal": true; }; "enterFullscreenLabel": { "alias": "enterFullscreenLabel"; "required": false; "isSignal": true; }; "exitFullscreenLabel": { "alias": "exitFullscreenLabel"; "required": false; "isSignal": true; }; "showMobileDrawerBadge": { "alias": "showMobileDrawerBadge"; "required": false; "isSignal": true; }; "displayMode": { "alias": "displayMode"; "required": false; "isSignal": true; }; "navigateConfig": { "alias": "navigateConfig"; "required": false; "isSignal": true; }; }, { "searchEvent": "searchEvent"; }, never, ["[siSidePanelBackButton]", "si-side-panel-actions", "*"], true, never>;
427
427
  }
428
428
 
429
429
  /**
@@ -496,11 +496,25 @@ declare class SiSidePanelActionComponent {
496
496
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiSidePanelActionComponent, "button[si-side-panel-action], a[si-side-panel-action]", never, { "icon": { "alias": "icon"; "required": true; "isSignal": true; }; "iconColor": { "alias": "iconColor"; "required": false; "isSignal": true; }; "stackedIcon": { "alias": "stackedIcon"; "required": false; "isSignal": true; }; "stackedIconColor": { "alias": "stackedIconColor"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
497
497
  }
498
498
 
499
+ /**
500
+ * Back button for navigating from side-panel details to the previous view.
501
+ *
502
+ * @example
503
+ * ```html
504
+ * <button type="button" siSidePanelBackButton aria-label="Back" (click)="back()"></button>
505
+ * ```
506
+ */
507
+ declare class SiSidePanelBackButtonComponent {
508
+ protected readonly icons: Record<"elementLeft4", string>;
509
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiSidePanelBackButtonComponent, never>;
510
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiSidePanelBackButtonComponent, "button[siSidePanelBackButton], a[siSidePanelBackButton]", never, {}, {}, never, ["*"], true, never>;
511
+ }
512
+
499
513
  declare class SiSidePanelModule {
500
514
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiSidePanelModule, never>;
501
- static ɵmod: _angular_core.ɵɵNgModuleDeclaration<SiSidePanelModule, never, [typeof SiSidePanelComponent, typeof SiSidePanelContentComponent, typeof SiSidePanelActionsComponent, typeof SiSidePanelActionComponent], [typeof SiSidePanelComponent, typeof SiSidePanelContentComponent, typeof SiSidePanelActionsComponent, typeof SiSidePanelActionComponent]>;
515
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<SiSidePanelModule, never, [typeof SiSidePanelComponent, typeof SiSidePanelContentComponent, typeof SiSidePanelActionsComponent, typeof SiSidePanelActionComponent, typeof SiSidePanelBackButtonComponent], [typeof SiSidePanelComponent, typeof SiSidePanelContentComponent, typeof SiSidePanelActionsComponent, typeof SiSidePanelActionComponent, typeof SiSidePanelBackButtonComponent]>;
502
516
  static ɵinj: _angular_core.ɵɵInjectorDeclaration<SiSidePanelModule>;
503
517
  }
504
518
 
505
- export { SiSidePanelActionComponent, SiSidePanelActionsComponent, SiSidePanelComponent, SiSidePanelContentComponent, SiSidePanelModule, SiSidePanelService };
519
+ export { SiSidePanelActionComponent, SiSidePanelActionsComponent, SiSidePanelBackButtonComponent, SiSidePanelComponent, SiSidePanelContentComponent, SiSidePanelModule, SiSidePanelService };
506
520
  export type { SidePanelDisplayMode, SidePanelMode, SidePanelNavigateConfig, SidePanelNavigateLink, SidePanelNavigateRouterLink, SidePanelSize, StatusItem };
@@ -10,7 +10,6 @@ import { TranslatableString } from '@siemens/element-translate-ng/translate';
10
10
  type CollapseTo = 'to-start' | 'to-end';
11
11
  type SplitOrientation = 'horizontal' | 'vertical';
12
12
  type SplitUnit = 'px' | 'fr';
13
- type Scale = 'none' | 'auto';
14
13
  interface Action {
15
14
  iconClass: string;
16
15
  tooltip: string;
@@ -72,13 +71,6 @@ declare class SiSplitPartComponent {
72
71
  * @defaultValue false
73
72
  */
74
73
  readonly removeContentOnCollapse: _angular_core.InputSignalWithTransform<boolean, unknown>;
75
- /**
76
- * Defines the behavior of the split part during scaling.
77
- * E.g. when set to `none`, the spit part will keep its current size even when the parent container grows or shrinks.
78
- *
79
- * @defaultValue 'auto'
80
- */
81
- readonly scale: _angular_core.InputSignal<Scale>;
82
74
  /**
83
75
  * Defines if the header of the split part is visible. Default is true.
84
76
  *
@@ -178,7 +170,7 @@ declare class SiSplitPartComponent {
178
170
  private refreshCollapsedToEnd;
179
171
  private refreshCollapseToStart;
180
172
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiSplitPartComponent, never>;
181
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiSplitPartComponent, "si-split-part", never, { "actions": { "alias": "actions"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "collapseIconClass": { "alias": "collapseIconClass"; "required": false; "isSignal": true; }; "collapseToMinSize": { "alias": "collapseToMinSize"; "required": false; "isSignal": true; }; "headerTemplate": { "alias": "headerTemplate"; "required": false; "isSignal": true; }; "heading": { "alias": "heading"; "required": false; "isSignal": true; }; "minSize": { "alias": "minSize"; "required": false; "isSignal": true; }; "removeContentOnCollapse": { "alias": "removeContentOnCollapse"; "required": false; "isSignal": true; }; "scale": { "alias": "scale"; "required": false; "isSignal": true; }; "showHeader": { "alias": "showHeader"; "required": false; "isSignal": true; }; "collapseLabel": { "alias": "collapseLabel"; "required": false; "isSignal": true; }; "stateId": { "alias": "stateId"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": true; "isSignal": true; }; "unit": { "alias": "unit"; "required": true; "isSignal": true; }; "collapseOthers": { "alias": "collapseOthers"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; }, { "collapseChanged": "collapseChanged"; "stateChange": "stateChange"; }, never, ["*"], true, never>;
173
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiSplitPartComponent, "si-split-part", never, { "actions": { "alias": "actions"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "collapseIconClass": { "alias": "collapseIconClass"; "required": false; "isSignal": true; }; "collapseToMinSize": { "alias": "collapseToMinSize"; "required": false; "isSignal": true; }; "headerTemplate": { "alias": "headerTemplate"; "required": false; "isSignal": true; }; "heading": { "alias": "heading"; "required": false; "isSignal": true; }; "minSize": { "alias": "minSize"; "required": false; "isSignal": true; }; "removeContentOnCollapse": { "alias": "removeContentOnCollapse"; "required": false; "isSignal": true; }; "showHeader": { "alias": "showHeader"; "required": false; "isSignal": true; }; "collapseLabel": { "alias": "collapseLabel"; "required": false; "isSignal": true; }; "stateId": { "alias": "stateId"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": true; "isSignal": true; }; "unit": { "alias": "unit"; "required": true; "isSignal": true; }; "collapseOthers": { "alias": "collapseOthers"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; }, { "collapseChanged": "collapseChanged"; "stateChange": "stateChange"; }, never, ["*"], true, never>;
182
174
  }
183
175
 
184
176
  interface Gutter {
@@ -226,6 +218,7 @@ declare class SiSplitComponent {
226
218
  private setupParts;
227
219
  private refreshAllPartSizes;
228
220
  protected resizeStart(gutter: Gutter, event: Event): void;
221
+ private emitSizesChange;
229
222
  private measureContainerSize;
230
223
  private getPosition;
231
224
  private saveUIState;
@@ -241,4 +234,4 @@ declare class SiSplitModule {
241
234
  }
242
235
 
243
236
  export { SiSplitComponent, SiSplitModule, SiSplitPartComponent };
244
- export type { Action, CollapseTo, PartState, Scale, SplitOrientation, SplitUnit };
237
+ export type { Action, CollapseTo, PartState, SplitOrientation, SplitUnit };