@tedi-design-system/angular 9.0.0-rc.4 → 9.0.0-rc.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 TEDI Design System
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/NOTICE.md ADDED
@@ -0,0 +1,25 @@
1
+ # Notice
2
+
3
+ TEDI Angular is released under the [MIT License](LICENSE). The MIT License does not cover the fonts and logos listed below, which keep their own terms.
4
+
5
+ ## Fonts
6
+
7
+ The npm package includes the fonts from `@tedi-design-system/core` in `fonts/`. They keep their own licenses:
8
+
9
+ | Font | Files | Copyright | License |
10
+ | --- | --- | --- | --- |
11
+ | [Roboto](https://github.com/googlefonts/roboto-2) 2.137 | `roboto-v30-*.woff2` | Copyright 2011 Google Inc. | [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0) |
12
+ | [Material Symbols](https://github.com/google/material-design-icons) (Outlined, Rounded, Sharp) | `material-symbols-*.woff2` | Copyright Google LLC | [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0) |
13
+
14
+ A copy of the Apache License 2.0 is next to the font files, in `fonts/LICENSE-Apache-2.0.txt`.
15
+
16
+ ## Logos and emblems
17
+
18
+ The logos and emblems in `public/` are used in Storybook and examples only and are not part of the npm package.
19
+
20
+ | What | Files | Belongs to | Terms |
21
+ | --- | --- | --- | --- |
22
+ | TEDI logo | `TEDI-logo-sinine.svg`, `favicon.svg` | TEHIK | Use it only to refer to TEDI. |
23
+ | TEHIK logo | `TEHIK_logo.svg`, `TEHIK_logo2.svg`, `tehik_logo.png` | TEHIK | Use it only to refer to TEHIK. |
24
+ | Estonian state coat of arms | `header-logo.svg`, `header-logo-white.svg`, `logo.svg` | Republic of Estonia | Its use is regulated by the State Coat of Arms Act (Riigivapi seadus). The examples show what a state agency header looks like; use it in your own product only if you are entitled to use the coat of arms. |
25
+ | EU and Estonian structural funds logos | `sf_logod.jpg`, `sf_logod_vertikaalne.jpg`, `SF-horizontal.png`, `SF-vertical.png` | European Union, Republic of Estonia | Use them only to mark projects co-funded by these funds, following the funds' visibility rules. |
@@ -60,7 +60,8 @@ class IconComponent {
60
60
  variant = input("outlined", ...(ngDevMode ? [{ debugName: "variant" }] : []));
61
61
  /**
62
62
  * Type of Material Symbols icon style.
63
- * It is recommended to only use one type throughout your app.
63
+ * It is recommended to only use one type throughout your app, and to load only that type's font
64
+ * (`icons/<type>.css` with `index-without-icons.css`) instead of all three via `index.css`.
64
65
  * @default outlined
65
66
  */
66
67
  type = input("outlined", ...(ngDevMode ? [{ debugName: "type" }] : []));
@@ -199,7 +200,7 @@ class BaseButtonDirective {
199
200
  this.iconLast.set(iconIndexes.includes(nodes.length - 1));
200
201
  }
201
202
  classes = computed(() => {
202
- const classList = [this.classNamePrefix()];
203
+ const classList = [this.classNamePrefix(), "no-print"];
203
204
  if (this.iconOnly()) {
204
205
  classList.push(`${this.classNamePrefix()}--icon-only`);
205
206
  }
@@ -298,6 +299,7 @@ class ButtonGroupButtonDirective {
298
299
  hostClasses = computed(() => [
299
300
  "tedi-button",
300
301
  "tedi-button-group-button",
302
+ "no-print",
301
303
  `tedi-button--${this.effectiveVariant()}`,
302
304
  `tedi-button--${this.effectiveSize()}`,
303
305
  ].join(" "), ...(ngDevMode ? [{ debugName: "hostClasses" }] : []));
@@ -3788,13 +3790,14 @@ class ClosingButtonComponent {
3788
3790
  translationService = inject(TediTranslationService);
3789
3791
  _defaultLabel = this.translationService.track("close");
3790
3792
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: ClosingButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3791
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.24", type: ClosingButtonComponent, isStandalone: true, selector: "button[tedi-closing-button]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, iconSize: { classPropertyName: "iconSize", publicName: "iconSize", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, showTitle: { classPropertyName: "showTitle", publicName: "showTitle", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.title": "showTitle() ? ariaLabel() || _defaultLabel() : null", "attr.aria-label": "ariaLabel() || _defaultLabel()", "class.tedi-closing-button": "true", "class.tedi-closing-button--small": "size() === 'small'" } }, ngImport: i0, template: "<tedi-icon [name]=\"icon()\" [size]=\"iconSize()\" aria-hidden=\"true\" />\n", styles: [".tedi-closing-button{--general-icon-primary: var(--button-close-text-default);display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--button-sm-icon-size);height:var(--button-sm-icon-size);padding:0;cursor:pointer;background-color:var(--button-close-background-default);border:1px solid var(--button-close-background-default);border-radius:var(--button-radius-default);transition:background .5s ease}.tedi-closing-button:hover{--general-icon-primary: var(--button-close-text-hover);background-color:var(--button-close-background-hover)}.tedi-closing-button:active{--general-icon-primary: var(--button-close-text-active);background-color:var(--button-close-background-active)}.tedi-closing-button:focus-visible{outline:2px solid var(--button-main-primary-border-focus);outline-offset:-2px}.tedi-closing-button--small{width:var(--button-xs-icon-size);height:var(--button-xs-icon-size)}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "tedi-icon", inputs: ["name", "size", "color", "background", "variant", "type", "label"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
3793
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.24", type: ClosingButtonComponent, isStandalone: true, selector: "button[tedi-closing-button]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, iconSize: { classPropertyName: "iconSize", publicName: "iconSize", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, showTitle: { classPropertyName: "showTitle", publicName: "showTitle", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.title": "showTitle() ? ariaLabel() || _defaultLabel() : null", "attr.aria-label": "ariaLabel() || _defaultLabel()", "class.tedi-closing-button": "true", "class.tedi-closing-button--small": "size() === 'small'" }, classAttribute: "no-print" }, ngImport: i0, template: "<tedi-icon [name]=\"icon()\" [size]=\"iconSize()\" aria-hidden=\"true\" />\n", styles: [".tedi-closing-button{--general-icon-primary: var(--button-close-text-default);display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--button-sm-icon-size);height:var(--button-sm-icon-size);padding:0;cursor:pointer;background-color:var(--button-close-background-default);border:1px solid var(--button-close-background-default);border-radius:var(--button-radius-default);transition:background .5s ease}.tedi-closing-button:hover{--general-icon-primary: var(--button-close-text-hover);background-color:var(--button-close-background-hover)}.tedi-closing-button:active{--general-icon-primary: var(--button-close-text-active);background-color:var(--button-close-background-active)}.tedi-closing-button:focus-visible{outline:2px solid var(--button-main-primary-border-focus);outline-offset:-2px}.tedi-closing-button--small{width:var(--button-xs-icon-size);height:var(--button-xs-icon-size)}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "tedi-icon", inputs: ["name", "size", "color", "background", "variant", "type", "label"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
3792
3794
  }
3793
3795
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: ClosingButtonComponent, decorators: [{
3794
3796
  type: Component,
3795
3797
  args: [{ selector: "button[tedi-closing-button]", imports: [IconComponent], standalone: true, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
3796
3798
  "[attr.title]": "showTitle() ? ariaLabel() || _defaultLabel() : null",
3797
3799
  "[attr.aria-label]": "ariaLabel() || _defaultLabel()",
3800
+ class: "no-print",
3798
3801
  "[class.tedi-closing-button]": "true",
3799
3802
  "[class.tedi-closing-button--small]": "size() === 'small'",
3800
3803
  }, template: "<tedi-icon [name]=\"icon()\" [size]=\"iconSize()\" aria-hidden=\"true\" />\n", styles: [".tedi-closing-button{--general-icon-primary: var(--button-close-text-default);display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--button-sm-icon-size);height:var(--button-sm-icon-size);padding:0;cursor:pointer;background-color:var(--button-close-background-default);border:1px solid var(--button-close-background-default);border-radius:var(--button-radius-default);transition:background .5s ease}.tedi-closing-button:hover{--general-icon-primary: var(--button-close-text-hover);background-color:var(--button-close-background-hover)}.tedi-closing-button:active{--general-icon-primary: var(--button-close-text-active);background-color:var(--button-close-background-active)}.tedi-closing-button:focus-visible{outline:2px solid var(--button-main-primary-border-focus);outline-offset:-2px}.tedi-closing-button--small{width:var(--button-xs-icon-size);height:var(--button-xs-icon-size)}\n"] }]
@@ -4443,13 +4446,13 @@ class InfoButtonComponent {
4443
4446
  color = input("primary", ...(ngDevMode ? [{ debugName: "color" }] : []));
4444
4447
  _defaultLabel = this.translationService.track("info-button.label");
4445
4448
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: InfoButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4446
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.24", type: InfoButtonComponent, isStandalone: true, selector: "button[tedi-info-button]", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "type": "button" }, properties: { "class.tedi-info-button--inverted": "color() === 'inverted'", "attr.aria-label": "ariaLabel() || _defaultLabel()" }, classAttribute: "tedi-info-button" }, ngImport: i0, template: `<tedi-icon name="info" [size]="18" />`, isInline: true, styles: [".tedi-info-button{display:inline-flex;align-items:center;justify-content:center;width:var(--button-xs-icon-size);height:var(--button-xs-icon-size);vertical-align:bottom;color:var(--button-main-neutral-text-default);cursor:pointer;background:transparent;border:none;border-radius:var(--button-radius-default)}.tedi-info-button:hover{color:var(--button-main-neutral-text-hover);background:var(--button-main-neutral-icon-only-background-hover)}.tedi-info-button:active{color:var(--button-main-neutral-text-active);background:var(--button-main-neutral-icon-only-background-active)}.tedi-info-button:focus-visible{color:var(--button-main-neutral-text-focus);outline:var(--tedi-borders-02) solid var(--button-main-primary-border-focus);outline-offset:calc(-1 * var(--tedi-borders-02));background-color:var(--button-main-neutral-background-focus);border-color:var(--button-main-neutral-border-default)}.tedi-info-button tedi-icon{color:inherit}.tedi-info-button--inverted{color:var(--button-main-neutral-inverted-text-default)}.tedi-info-button--inverted:hover{color:var(--button-main-neutral-inverted-text-hover);background:var(--button-main-neutral-inverted-icon-only-background-hover)}.tedi-info-button--inverted:active{color:var(--button-main-neutral-inverted-text-active);background:var(--button-main-neutral-inverted-icon-only-background-active)}.tedi-info-button--inverted:focus-visible{color:var(--button-main-neutral-inverted-text-focus);outline:none;background-color:var(--button-main-neutral-inverted-background-focus);box-shadow:0 0 0 var(--tedi-borders-02) var(--tedi-neutral-100)}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "tedi-icon", inputs: ["name", "size", "color", "background", "variant", "type", "label"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
4449
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.24", type: InfoButtonComponent, isStandalone: true, selector: "button[tedi-info-button]", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "type": "button" }, properties: { "class.tedi-info-button--inverted": "color() === 'inverted'", "attr.aria-label": "ariaLabel() || _defaultLabel()" }, classAttribute: "tedi-info-button no-print" }, ngImport: i0, template: `<tedi-icon name="info" [size]="18" />`, isInline: true, styles: [".tedi-info-button{display:inline-flex;align-items:center;justify-content:center;width:var(--button-xs-icon-size);height:var(--button-xs-icon-size);vertical-align:bottom;color:var(--button-main-neutral-text-default);cursor:pointer;background:transparent;border:none;border-radius:var(--button-radius-default)}.tedi-info-button:hover{color:var(--button-main-neutral-text-hover);background:var(--button-main-neutral-icon-only-background-hover)}.tedi-info-button:active{color:var(--button-main-neutral-text-active);background:var(--button-main-neutral-icon-only-background-active)}.tedi-info-button:focus-visible{color:var(--button-main-neutral-text-focus);outline:var(--tedi-borders-02) solid var(--button-main-primary-border-focus);outline-offset:calc(-1 * var(--tedi-borders-02));background-color:var(--button-main-neutral-background-focus);border-color:var(--button-main-neutral-border-default)}.tedi-info-button tedi-icon{color:inherit}.tedi-info-button--inverted{color:var(--button-main-neutral-inverted-text-default)}.tedi-info-button--inverted:hover{color:var(--button-main-neutral-inverted-text-hover);background:var(--button-main-neutral-inverted-icon-only-background-hover)}.tedi-info-button--inverted:active{color:var(--button-main-neutral-inverted-text-active);background:var(--button-main-neutral-inverted-icon-only-background-active)}.tedi-info-button--inverted:focus-visible{color:var(--button-main-neutral-inverted-text-focus);outline:none;background-color:var(--button-main-neutral-inverted-background-focus);box-shadow:0 0 0 var(--tedi-borders-02) var(--tedi-neutral-100)}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "tedi-icon", inputs: ["name", "size", "color", "background", "variant", "type", "label"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
4447
4450
  }
4448
4451
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: InfoButtonComponent, decorators: [{
4449
4452
  type: Component,
4450
4453
  args: [{ standalone: true, selector: "button[tedi-info-button]", imports: [IconComponent], template: `<tedi-icon name="info" [size]="18" />`, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
4451
4454
  type: "button",
4452
- class: "tedi-info-button",
4455
+ class: "tedi-info-button no-print",
4453
4456
  "[class.tedi-info-button--inverted]": "color() === 'inverted'",
4454
4457
  "[attr.aria-label]": "ariaLabel() || _defaultLabel()",
4455
4458
  }, styles: [".tedi-info-button{display:inline-flex;align-items:center;justify-content:center;width:var(--button-xs-icon-size);height:var(--button-xs-icon-size);vertical-align:bottom;color:var(--button-main-neutral-text-default);cursor:pointer;background:transparent;border:none;border-radius:var(--button-radius-default)}.tedi-info-button:hover{color:var(--button-main-neutral-text-hover);background:var(--button-main-neutral-icon-only-background-hover)}.tedi-info-button:active{color:var(--button-main-neutral-text-active);background:var(--button-main-neutral-icon-only-background-active)}.tedi-info-button:focus-visible{color:var(--button-main-neutral-text-focus);outline:var(--tedi-borders-02) solid var(--button-main-primary-border-focus);outline-offset:calc(-1 * var(--tedi-borders-02));background-color:var(--button-main-neutral-background-focus);border-color:var(--button-main-neutral-border-default)}.tedi-info-button tedi-icon{color:inherit}.tedi-info-button--inverted{color:var(--button-main-neutral-inverted-text-default)}.tedi-info-button--inverted:hover{color:var(--button-main-neutral-inverted-text-hover);background:var(--button-main-neutral-inverted-icon-only-background-hover)}.tedi-info-button--inverted:active{color:var(--button-main-neutral-inverted-text-active);background:var(--button-main-neutral-inverted-icon-only-background-active)}.tedi-info-button--inverted:focus-visible{color:var(--button-main-neutral-inverted-text-focus);outline:none;background-color:var(--button-main-neutral-inverted-background-focus);box-shadow:0 0 0 var(--tedi-borders-02) var(--tedi-neutral-100)}\n"] }]
@@ -4534,7 +4537,7 @@ class CollapseButtonComponent {
4534
4537
  return this.ariaLabel() ?? this.label();
4535
4538
  }, ...(ngDevMode ? [{ debugName: "resolvedAriaLabel" }] : []));
4536
4539
  hostClasses = computed(() => {
4537
- const classes = ["tedi-collapse-button"];
4540
+ const classes = ["tedi-collapse-button", "no-print"];
4538
4541
  if (this.open())
4539
4542
  classes.push("tedi-collapse-button--open");
4540
4543
  if (this.size() === "small")
@@ -5412,11 +5415,11 @@ class CollapseComponent {
5412
5415
  }
5413
5416
  }
5414
5417
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: CollapseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5415
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.24", type: CollapseComponent, isStandalone: true, selector: "tedi-collapse", inputs: { openText: { classPropertyName: "openText", publicName: "openText", isSignal: true, isRequired: false, transformFunction: null }, closeText: { classPropertyName: "closeText", publicName: "closeText", isSignal: true, isRequired: false, transformFunction: null }, defaultOpen: { classPropertyName: "defaultOpen", publicName: "defaultOpen", isSignal: true, isRequired: false, transformFunction: null }, hideCollapseText: { classPropertyName: "hideCollapseText", publicName: "hideCollapseText", isSignal: true, isRequired: false, transformFunction: null }, arrowType: { classPropertyName: "arrowType", publicName: "arrowType", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, inverted: { classPropertyName: "inverted", publicName: "inverted", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"tedi-collapse\"\n [class.tedi-collapse--open]=\"isOpen() === true\"\n [class.tedi-collapse--inverted]=\"isInvertedActive()\"\n>\n <button\n tedi-collapse-button\n [open]=\"isOpen()\"\n [openText]=\"openText()\"\n [closeText]=\"closeText()\"\n [hideText]=\"hideCollapseText()\"\n [arrowType]=\"arrowType()\"\n [size]=\"size()\"\n [inverted]=\"inverted()\"\n [ariaControls]=\"collapseContentId\"\n (openChange)=\"isOpen.set($event)\"\n ></button>\n <div class=\"tedi-collapse__content\" [id]=\"collapseContentId\">\n <div class=\"tedi-collapse__extender\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n", styles: [":host{display:block}.tedi-collapse--inverted{color:var(--general-text-white)}.tedi-collapse__extender{visibility:hidden;min-height:0;padding-top:var(--tedi-dimensions-05);transition:visibility .3s}.tedi-collapse__content{display:grid;grid-template-rows:0fr;overflow:hidden;transition:grid-template-rows .3s}.tedi-collapse--open>.tedi-collapse__content{grid-template-rows:1fr}.tedi-collapse--open>.tedi-collapse__content .tedi-collapse__extender{visibility:visible}\n"], dependencies: [{ kind: "component", type: CollapseButtonComponent, selector: "button[tedi-collapse-button]", inputs: ["open", "openText", "closeText", "hideText", "arrowType", "size", "inverted", "underline", "ariaControls", "ariaLabel", "id"], outputs: ["openChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
5418
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.24", type: CollapseComponent, isStandalone: true, selector: "tedi-collapse", inputs: { openText: { classPropertyName: "openText", publicName: "openText", isSignal: true, isRequired: false, transformFunction: null }, closeText: { classPropertyName: "closeText", publicName: "closeText", isSignal: true, isRequired: false, transformFunction: null }, defaultOpen: { classPropertyName: "defaultOpen", publicName: "defaultOpen", isSignal: true, isRequired: false, transformFunction: null }, hideCollapseText: { classPropertyName: "hideCollapseText", publicName: "hideCollapseText", isSignal: true, isRequired: false, transformFunction: null }, arrowType: { classPropertyName: "arrowType", publicName: "arrowType", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, inverted: { classPropertyName: "inverted", publicName: "inverted", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"tedi-collapse\"\n [class.tedi-collapse--open]=\"isOpen() === true\"\n [class.tedi-collapse--inverted]=\"isInvertedActive()\"\n>\n <button\n tedi-collapse-button\n [open]=\"isOpen()\"\n [openText]=\"openText()\"\n [closeText]=\"closeText()\"\n [hideText]=\"hideCollapseText()\"\n [arrowType]=\"arrowType()\"\n [size]=\"size()\"\n [inverted]=\"inverted()\"\n [ariaControls]=\"collapseContentId\"\n (openChange)=\"isOpen.set($event)\"\n ></button>\n <div class=\"tedi-collapse__content\" [id]=\"collapseContentId\">\n <div class=\"tedi-collapse__extender\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n", styles: [":host{display:block}.tedi-collapse--inverted{color:var(--general-text-white)}.tedi-collapse__extender{visibility:hidden;min-height:0;padding-top:var(--tedi-dimensions-05);transition:visibility .3s}.tedi-collapse__content{display:grid;grid-template-rows:0fr;overflow:hidden;transition:grid-template-rows .3s}.tedi-collapse--open>.tedi-collapse__content{grid-template-rows:1fr}.tedi-collapse--open>.tedi-collapse__content .tedi-collapse__extender{visibility:visible}@media print{.tedi-collapse__content,.tedi-collapse__extender{transition:none}.tedi-collapse__content{grid-template-rows:1fr;overflow:visible}.tedi-collapse__extender{visibility:visible}}\n"], dependencies: [{ kind: "component", type: CollapseButtonComponent, selector: "button[tedi-collapse-button]", inputs: ["open", "openText", "closeText", "hideText", "arrowType", "size", "inverted", "underline", "ariaControls", "ariaLabel", "id"], outputs: ["openChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
5416
5419
  }
5417
5420
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: CollapseComponent, decorators: [{
5418
5421
  type: Component,
5419
- args: [{ standalone: true, selector: "tedi-collapse", imports: [CollapseButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"tedi-collapse\"\n [class.tedi-collapse--open]=\"isOpen() === true\"\n [class.tedi-collapse--inverted]=\"isInvertedActive()\"\n>\n <button\n tedi-collapse-button\n [open]=\"isOpen()\"\n [openText]=\"openText()\"\n [closeText]=\"closeText()\"\n [hideText]=\"hideCollapseText()\"\n [arrowType]=\"arrowType()\"\n [size]=\"size()\"\n [inverted]=\"inverted()\"\n [ariaControls]=\"collapseContentId\"\n (openChange)=\"isOpen.set($event)\"\n ></button>\n <div class=\"tedi-collapse__content\" [id]=\"collapseContentId\">\n <div class=\"tedi-collapse__extender\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n", styles: [":host{display:block}.tedi-collapse--inverted{color:var(--general-text-white)}.tedi-collapse__extender{visibility:hidden;min-height:0;padding-top:var(--tedi-dimensions-05);transition:visibility .3s}.tedi-collapse__content{display:grid;grid-template-rows:0fr;overflow:hidden;transition:grid-template-rows .3s}.tedi-collapse--open>.tedi-collapse__content{grid-template-rows:1fr}.tedi-collapse--open>.tedi-collapse__content .tedi-collapse__extender{visibility:visible}\n"] }]
5422
+ args: [{ standalone: true, selector: "tedi-collapse", imports: [CollapseButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"tedi-collapse\"\n [class.tedi-collapse--open]=\"isOpen() === true\"\n [class.tedi-collapse--inverted]=\"isInvertedActive()\"\n>\n <button\n tedi-collapse-button\n [open]=\"isOpen()\"\n [openText]=\"openText()\"\n [closeText]=\"closeText()\"\n [hideText]=\"hideCollapseText()\"\n [arrowType]=\"arrowType()\"\n [size]=\"size()\"\n [inverted]=\"inverted()\"\n [ariaControls]=\"collapseContentId\"\n (openChange)=\"isOpen.set($event)\"\n ></button>\n <div class=\"tedi-collapse__content\" [id]=\"collapseContentId\">\n <div class=\"tedi-collapse__extender\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n", styles: [":host{display:block}.tedi-collapse--inverted{color:var(--general-text-white)}.tedi-collapse__extender{visibility:hidden;min-height:0;padding-top:var(--tedi-dimensions-05);transition:visibility .3s}.tedi-collapse__content{display:grid;grid-template-rows:0fr;overflow:hidden;transition:grid-template-rows .3s}.tedi-collapse--open>.tedi-collapse__content{grid-template-rows:1fr}.tedi-collapse--open>.tedi-collapse__content .tedi-collapse__extender{visibility:visible}@media print{.tedi-collapse__content,.tedi-collapse__extender{transition:none}.tedi-collapse__content{grid-template-rows:1fr;overflow:visible}.tedi-collapse__extender{visibility:visible}}\n"] }]
5420
5423
  }], propDecorators: { openText: [{ type: i0.Input, args: [{ isSignal: true, alias: "openText", required: false }] }], closeText: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeText", required: false }] }], defaultOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultOpen", required: false }] }], hideCollapseText: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideCollapseText", required: false }] }], arrowType: [{ type: i0.Input, args: [{ isSignal: true, alias: "arrowType", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], inverted: [{ type: i0.Input, args: [{ isSignal: true, alias: "inverted", required: false }] }] } });
5421
5424
 
5422
5425
  /**
@@ -21001,11 +21004,13 @@ class FooterComponent {
21001
21004
  breakpointService = inject(BreakpointService);
21002
21005
  mobileLayout = this.breakpointService.isBelowBreakpoint("sm");
21003
21006
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: FooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
21004
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.24", type: FooterComponent, isStandalone: true, selector: "tedi-footer", ngImport: i0, template: "<footer class=\"tedi-footer\">\n <div\n class=\"tedi-footer__container\"\n [class.tedi-footer--mobile]=\"mobileLayout()\"\n >\n <ng-content select=\"[tedi-footer-start]\" />\n <div class=\"tedi-footer__center\">\n <ng-content select=\"tedi-footer-body\" />\n </div>\n <ng-content select=\"[tedi-footer-end]\" />\n </div>\n <ng-content select=\"tedi-footer-bottom\" />\n</footer>\n", styles: [".tedi-footer{background-color:var(--footer-background)}.tedi-footer__container{display:flex}.tedi-footer__center{width:100%}.tedi-footer--mobile{display:flex;flex-direction:column}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
21007
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.24", type: FooterComponent, isStandalone: true, selector: "tedi-footer", host: { classAttribute: "no-print" }, ngImport: i0, template: "<footer class=\"tedi-footer\">\n <div\n class=\"tedi-footer__container\"\n [class.tedi-footer--mobile]=\"mobileLayout()\"\n >\n <ng-content select=\"[tedi-footer-start]\" />\n <div class=\"tedi-footer__center\">\n <ng-content select=\"tedi-footer-body\" />\n </div>\n <ng-content select=\"[tedi-footer-end]\" />\n </div>\n <ng-content select=\"tedi-footer-bottom\" />\n</footer>\n", styles: [".tedi-footer{background-color:var(--footer-background)}.tedi-footer__container{display:flex}.tedi-footer__center{width:100%}.tedi-footer--mobile{display:flex;flex-direction:column}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
21005
21008
  }
21006
21009
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: FooterComponent, decorators: [{
21007
21010
  type: Component,
21008
- args: [{ standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, selector: "tedi-footer", template: "<footer class=\"tedi-footer\">\n <div\n class=\"tedi-footer__container\"\n [class.tedi-footer--mobile]=\"mobileLayout()\"\n >\n <ng-content select=\"[tedi-footer-start]\" />\n <div class=\"tedi-footer__center\">\n <ng-content select=\"tedi-footer-body\" />\n </div>\n <ng-content select=\"[tedi-footer-end]\" />\n </div>\n <ng-content select=\"tedi-footer-bottom\" />\n</footer>\n", styles: [".tedi-footer{background-color:var(--footer-background)}.tedi-footer__container{display:flex}.tedi-footer__center{width:100%}.tedi-footer--mobile{display:flex;flex-direction:column}\n"] }]
21011
+ args: [{ standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, selector: "tedi-footer", host: {
21012
+ class: "no-print",
21013
+ }, template: "<footer class=\"tedi-footer\">\n <div\n class=\"tedi-footer__container\"\n [class.tedi-footer--mobile]=\"mobileLayout()\"\n >\n <ng-content select=\"[tedi-footer-start]\" />\n <div class=\"tedi-footer__center\">\n <ng-content select=\"tedi-footer-body\" />\n </div>\n <ng-content select=\"[tedi-footer-end]\" />\n </div>\n <ng-content select=\"tedi-footer-bottom\" />\n</footer>\n", styles: [".tedi-footer{background-color:var(--footer-background)}.tedi-footer__container{display:flex}.tedi-footer__center{width:100%}.tedi-footer--mobile{display:flex;flex-direction:column}\n"] }]
21009
21014
  }] });
21010
21015
 
21011
21016
  class FooterBodyComponent {
@@ -21171,12 +21176,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImpo
21171
21176
 
21172
21177
  class HeaderComponent {
21173
21178
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: HeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
21174
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.24", type: HeaderComponent, isStandalone: true, selector: "header[tedi-header]", host: { classAttribute: "tedi-header" }, ngImport: i0, template: "<ng-content select=\"tedi-header-top\"></ng-content>\n<div class=\"tedi-header__main\">\n <ng-content select=\"button[tedi-sidenav-toggle]\"></ng-content>\n <div class=\"tedi-header__main--content\">\n <ng-content></ng-content>\n </div>\n</div>\n<ng-content select=\"tedi-header-bottom\"></ng-content>\n", styles: [".tedi-header{display:block;box-shadow:0 1px 5px 0 var(--tedi-alpha-20)}.tedi-header__main{display:flex;min-height:var(--layout-header-height);overflow:auto;background:var(--header-background)}.tedi-header__main--content{display:flex;gap:var(--layout-header-items-right-gutter-x);align-items:center;justify-content:space-between;width:100%;min-height:var(--layout-header-height);padding:var(--layout-header-padding-y) var(--layout-header-padding-right) var(--layout-header-padding-y) var(--layout-header-padding-left)}.tedi-header__link-button.tedi-link{display:inline-flex;gap:var(--link-inner-spacing-x);align-items:center;padding:0;font-size:var(--body-regular-size);white-space:nowrap;background-color:transparent;border:0}.tedi-header__link-button.tedi-link,.tedi-header__link-button.tedi-link:hover:not(:disabled,[aria-disabled=true]),.tedi-header__link-button.tedi-link:active:not(:disabled,[aria-disabled=true]),.tedi-header__link-button.tedi-link:focus-visible:not(:disabled){color:var(--header-dropdown-default)}.tedi-header__link-button.tedi-link:hover:not(:disabled,[aria-disabled=true]){color:var(--header-dropdown-hover)}.tedi-header__link-button.tedi-link:hover:not(:disabled,[aria-disabled=true]) span{text-decoration:underline!important}.tedi-header__link-button.tedi-link:active:not(:disabled,[aria-disabled=true]){color:var(--header-dropdown-active)}.tedi-header__link-button.tedi-link:focus-visible:not(:disabled){color:var(--header-dropdown-focus)}.tedi-header__link-button.tedi-link span{text-decoration:none!important}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
21179
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.24", type: HeaderComponent, isStandalone: true, selector: "header[tedi-header]", host: { classAttribute: "tedi-header no-print" }, ngImport: i0, template: "<ng-content select=\"tedi-header-top\"></ng-content>\n<div class=\"tedi-header__main\">\n <ng-content select=\"button[tedi-sidenav-toggle]\"></ng-content>\n <div class=\"tedi-header__main--content\">\n <ng-content></ng-content>\n </div>\n</div>\n<ng-content select=\"tedi-header-bottom\"></ng-content>\n", styles: [".tedi-header{display:block;box-shadow:0 1px 5px 0 var(--tedi-alpha-20)}.tedi-header__main{display:flex;min-height:var(--layout-header-height);overflow:auto;background:var(--header-background)}.tedi-header__main--content{display:flex;gap:var(--layout-header-items-right-gutter-x);align-items:center;justify-content:space-between;width:100%;min-height:var(--layout-header-height);padding:var(--layout-header-padding-y) var(--layout-header-padding-right) var(--layout-header-padding-y) var(--layout-header-padding-left)}.tedi-header__link-button.tedi-link{display:inline-flex;gap:var(--link-inner-spacing-x);align-items:center;padding:0;font-size:var(--body-regular-size);white-space:nowrap;background-color:transparent;border:0}.tedi-header__link-button.tedi-link,.tedi-header__link-button.tedi-link:hover:not(:disabled,[aria-disabled=true]),.tedi-header__link-button.tedi-link:active:not(:disabled,[aria-disabled=true]),.tedi-header__link-button.tedi-link:focus-visible:not(:disabled){color:var(--header-dropdown-default)}.tedi-header__link-button.tedi-link:hover:not(:disabled,[aria-disabled=true]){color:var(--header-dropdown-hover)}.tedi-header__link-button.tedi-link:hover:not(:disabled,[aria-disabled=true]) span{text-decoration:underline!important}.tedi-header__link-button.tedi-link:active:not(:disabled,[aria-disabled=true]){color:var(--header-dropdown-active)}.tedi-header__link-button.tedi-link:focus-visible:not(:disabled){color:var(--header-dropdown-focus)}.tedi-header__link-button.tedi-link span{text-decoration:none!important}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
21175
21180
  }
21176
21181
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: HeaderComponent, decorators: [{
21177
21182
  type: Component,
21178
21183
  args: [{ selector: "header[tedi-header]", standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
21179
- class: "tedi-header",
21184
+ class: "tedi-header no-print",
21180
21185
  }, template: "<ng-content select=\"tedi-header-top\"></ng-content>\n<div class=\"tedi-header__main\">\n <ng-content select=\"button[tedi-sidenav-toggle]\"></ng-content>\n <div class=\"tedi-header__main--content\">\n <ng-content></ng-content>\n </div>\n</div>\n<ng-content select=\"tedi-header-bottom\"></ng-content>\n", styles: [".tedi-header{display:block;box-shadow:0 1px 5px 0 var(--tedi-alpha-20)}.tedi-header__main{display:flex;min-height:var(--layout-header-height);overflow:auto;background:var(--header-background)}.tedi-header__main--content{display:flex;gap:var(--layout-header-items-right-gutter-x);align-items:center;justify-content:space-between;width:100%;min-height:var(--layout-header-height);padding:var(--layout-header-padding-y) var(--layout-header-padding-right) var(--layout-header-padding-y) var(--layout-header-padding-left)}.tedi-header__link-button.tedi-link{display:inline-flex;gap:var(--link-inner-spacing-x);align-items:center;padding:0;font-size:var(--body-regular-size);white-space:nowrap;background-color:transparent;border:0}.tedi-header__link-button.tedi-link,.tedi-header__link-button.tedi-link:hover:not(:disabled,[aria-disabled=true]),.tedi-header__link-button.tedi-link:active:not(:disabled,[aria-disabled=true]),.tedi-header__link-button.tedi-link:focus-visible:not(:disabled){color:var(--header-dropdown-default)}.tedi-header__link-button.tedi-link:hover:not(:disabled,[aria-disabled=true]){color:var(--header-dropdown-hover)}.tedi-header__link-button.tedi-link:hover:not(:disabled,[aria-disabled=true]) span{text-decoration:underline!important}.tedi-header__link-button.tedi-link:active:not(:disabled,[aria-disabled=true]){color:var(--header-dropdown-active)}.tedi-header__link-button.tedi-link:focus-visible:not(:disabled){color:var(--header-dropdown-focus)}.tedi-header__link-button.tedi-link span{text-decoration:none!important}\n"] }]
21181
21186
  }] });
21182
21187
 
@@ -22347,7 +22352,11 @@ class SideNavComponent {
22347
22352
  }, { injector: this.injector });
22348
22353
  }
22349
22354
  classes = computed(() => {
22350
- const classList = ["tedi-sidenav", `tedi-sidenav--${this.size()}`];
22355
+ const classList = [
22356
+ "tedi-sidenav",
22357
+ "no-print",
22358
+ `tedi-sidenav--${this.size()}`,
22359
+ ];
22351
22360
  if (this.dividers()) {
22352
22361
  classList.push("tedi-sidenav--dividers");
22353
22362
  }
@@ -23753,6 +23762,15 @@ class TabsListComponent {
23753
23762
  overflowMode = input("dropdown", ...(ngDevMode ? [{ debugName: "overflowMode" }] : []));
23754
23763
  /** Label for the overflow dropdown trigger. Defaults to the `more` translation. */
23755
23764
  dropdownLabel = input(...(ngDevMode ? [undefined, { debugName: "dropdownLabel" }] : []));
23765
+ /**
23766
+ * Controls the visibility of the tablist when printing.
23767
+ * - `show`: the tablist is printed (default), no print class is applied
23768
+ * - `hide`: the tablist is left out of the printed output
23769
+ *
23770
+ * `tediPrint` on the same element composes with this: `tediPrint="show"`
23771
+ * wins over `printVisibility="hide"`, matching the core `show-print` rule.
23772
+ */
23773
+ printVisibility = input("show", ...(ngDevMode ? [{ debugName: "printVisibility" }] : []));
23756
23774
  listRef = viewChild.required("list");
23757
23775
  triggers = contentChildren(TabsTriggerComponent, ...(ngDevMode ? [{ debugName: "triggers" }] : []));
23758
23776
  isOverflowing = signal(false, ...(ngDevMode ? [{ debugName: "isOverflowing" }] : []));
@@ -23848,7 +23866,7 @@ class TabsListComponent {
23848
23866
  this.isOverflowing.set(naturalWidth > wrapper.clientWidth);
23849
23867
  }
23850
23868
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: TabsListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23851
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.24", type: TabsListComponent, isStandalone: true, selector: "tedi-tabs-list", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, overflowMode: { classPropertyName: "overflowMode", publicName: "overflowMode", isSignal: true, isRequired: false, transformFunction: null }, dropdownLabel: { classPropertyName: "dropdownLabel", publicName: "dropdownLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.tedi-tabs-list--fade-start": "overflowMode() === 'scroll' && canScrollStart()", "class.tedi-tabs-list--fade-end": "overflowMode() === 'scroll' && canScrollEnd()" }, classAttribute: "tedi-tabs-list" }, queries: [{ propertyName: "triggers", predicate: TabsTriggerComponent, isSignal: true }], viewQueries: [{ propertyName: "listRef", first: true, predicate: ["list"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n #list\n role=\"tablist\"\n data-name=\"tabs-list\"\n class=\"tedi-tabs-list__items\"\n [class.tedi-tabs-list__items--overflow]=\"showMore()\"\n [class.tedi-tabs-list__items--scroll]=\"overflowMode() === 'scroll'\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n (scroll)=\"updateScrollFade()\"\n>\n <ng-content />\n</div>\n\n@if (showMore()) {\n <div class=\"tedi-tabs-list__more\">\n <tedi-dropdown position=\"bottom-end\">\n <button\n type=\"button\"\n tedi-dropdown-trigger\n class=\"tedi-tabs-list__more-btn\"\n >\n {{ dropdownLabel() || (\"more\" | tediTranslate) }}\n <tedi-icon name=\"expand_more\" [size]=\"18\" color=\"inherit\" />\n </button>\n <tedi-dropdown-content dropdownRole=\"menu\">\n @for (item of dropdownItems(); track item.id) {\n <li\n tedi-dropdown-item\n [value]=\"item.id\"\n [disabled]=\"item.disabled\"\n [clipContent]=\"false\"\n [attr.aria-label]=\"item.trigger.label\"\n (itemSelect)=\"selectTab(item.id)\"\n >\n <span [tediTabsOverflowContent]=\"item.trigger\"></span>\n </li>\n }\n </tedi-dropdown-content>\n </tedi-dropdown>\n </div>\n}\n", styles: [".tedi-tabs-list{position:relative;display:flex;overflow:hidden;background:var(--tab-background);border-top-left-radius:var(--tab-top-radius);border-top-right-radius:var(--tab-top-radius)}.tedi-tabs-list--fade-start:before,.tedi-tabs-list--fade-end:after{position:absolute;top:0;bottom:0;z-index:1;width:3rem;pointer-events:none;content:\"\"}.tedi-tabs-list--fade-start:before{left:0;background:linear-gradient(to right,var(--tab-background) 10%,transparent 80%)}.tedi-tabs-list--fade-end:after{right:0;background:linear-gradient(to left,var(--tab-background) 10%,transparent 80%)}.tedi-tabs-list__items{display:flex;flex:1;min-width:0;overflow:hidden}.tedi-tabs-list__items--overflow .tedi-tabs-trigger:not(.tedi-tabs-trigger--selected){display:none}.tedi-tabs-list__items--overflow .tedi-tabs-trigger--selected{flex-grow:1;min-width:0}.tedi-tabs-list__items--scroll{overflow-x:auto}.tedi-tabs-list__more{display:flex;flex-shrink:0}.tedi-tabs-list__more-btn{--_tab-background: var(--tab-item-default-background);--_tab-color: var(--tab-item-default-text);display:inline-flex;gap:var(--tab-inner-spacing);align-items:center;justify-content:center;padding:var(--tab-spacing-y) var(--tab-spacing-x);font-size:var(--body-regular-size);color:var(--_tab-color);white-space:nowrap;cursor:pointer;background:var(--_tab-background);border:none}.tedi-tabs-list__more-btn:hover{--_tab-background: var(--tab-item-hover-background);--_tab-color: var(--tab-item-hover-text)}.tedi-tabs-list__more-btn:focus-visible{outline:none;box-shadow:inset 0 0 0 var(--tedi-borders-02) var(--general-border-brand)}.tedi-tabs-list__more-btn:active{--_tab-background: var(--tab-item-active-background);--_tab-color: var(--tab-item-active-text)}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "tedi-icon", inputs: ["name", "size", "color", "background", "variant", "type", "label"] }, { kind: "component", type: DropdownComponent, selector: "tedi-dropdown", inputs: ["value", "position", "preventOverflow", "offset", "hideOnScroll"], outputs: ["valueChange"] }, { kind: "directive", type: DropdownTriggerDirective, selector: "[tedi-dropdown-trigger]", inputs: ["ariaHaspopup"] }, { kind: "component", type: DropdownContentComponent, selector: "tedi-dropdown-content", inputs: ["dropdownRole"] }, { kind: "component", type: DropdownItemComponent, selector: "li[tedi-dropdown-item]", inputs: ["value", "disabled", "interactiveContent", "clipContent", "closeOnSelect"], outputs: ["itemSelect"] }, { kind: "directive", type: TabsOverflowContentDirective, selector: "[tediTabsOverflowContent]", inputs: ["tediTabsOverflowContent"] }, { kind: "pipe", type: TediTranslationPipe, name: "tediTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
23869
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.24", type: TabsListComponent, isStandalone: true, selector: "tedi-tabs-list", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, overflowMode: { classPropertyName: "overflowMode", publicName: "overflowMode", isSignal: true, isRequired: false, transformFunction: null }, dropdownLabel: { classPropertyName: "dropdownLabel", publicName: "dropdownLabel", isSignal: true, isRequired: false, transformFunction: null }, printVisibility: { classPropertyName: "printVisibility", publicName: "printVisibility", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.no-print": "printVisibility() === 'hide'", "class.tedi-tabs-list--fade-start": "overflowMode() === 'scroll' && canScrollStart()", "class.tedi-tabs-list--fade-end": "overflowMode() === 'scroll' && canScrollEnd()" }, classAttribute: "tedi-tabs-list" }, queries: [{ propertyName: "triggers", predicate: TabsTriggerComponent, isSignal: true }], viewQueries: [{ propertyName: "listRef", first: true, predicate: ["list"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n #list\n role=\"tablist\"\n data-name=\"tabs-list\"\n class=\"tedi-tabs-list__items\"\n [class.tedi-tabs-list__items--overflow]=\"showMore()\"\n [class.tedi-tabs-list__items--scroll]=\"overflowMode() === 'scroll'\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n (scroll)=\"updateScrollFade()\"\n>\n <ng-content />\n</div>\n\n@if (showMore()) {\n <div class=\"tedi-tabs-list__more\">\n <tedi-dropdown position=\"bottom-end\">\n <button\n type=\"button\"\n tedi-dropdown-trigger\n class=\"tedi-tabs-list__more-btn\"\n >\n {{ dropdownLabel() || (\"more\" | tediTranslate) }}\n <tedi-icon name=\"expand_more\" [size]=\"18\" color=\"inherit\" />\n </button>\n <tedi-dropdown-content dropdownRole=\"menu\">\n @for (item of dropdownItems(); track item.id) {\n <li\n tedi-dropdown-item\n [value]=\"item.id\"\n [disabled]=\"item.disabled\"\n [clipContent]=\"false\"\n [attr.aria-label]=\"item.trigger.label\"\n (itemSelect)=\"selectTab(item.id)\"\n >\n <span [tediTabsOverflowContent]=\"item.trigger\"></span>\n </li>\n }\n </tedi-dropdown-content>\n </tedi-dropdown>\n </div>\n}\n", styles: [".tedi-tabs-list{position:relative;display:flex;overflow:hidden;background:var(--tab-background);border-top-left-radius:var(--tab-top-radius);border-top-right-radius:var(--tab-top-radius)}.tedi-tabs-list--fade-start:before,.tedi-tabs-list--fade-end:after{position:absolute;top:0;bottom:0;z-index:1;width:3rem;pointer-events:none;content:\"\"}.tedi-tabs-list--fade-start:before{left:0;background:linear-gradient(to right,var(--tab-background) 10%,transparent 80%)}.tedi-tabs-list--fade-end:after{right:0;background:linear-gradient(to left,var(--tab-background) 10%,transparent 80%)}.tedi-tabs-list__items{display:flex;flex:1;min-width:0;overflow:hidden}.tedi-tabs-list__items--overflow .tedi-tabs-trigger:not(.tedi-tabs-trigger--selected){display:none}.tedi-tabs-list__items--overflow .tedi-tabs-trigger--selected{flex-grow:1;min-width:0}.tedi-tabs-list__items--scroll{overflow-x:auto}.tedi-tabs-list__more{display:flex;flex-shrink:0}.tedi-tabs-list__more-btn{--_tab-background: var(--tab-item-default-background);--_tab-color: var(--tab-item-default-text);display:inline-flex;gap:var(--tab-inner-spacing);align-items:center;justify-content:center;padding:var(--tab-spacing-y) var(--tab-spacing-x);font-size:var(--body-regular-size);color:var(--_tab-color);white-space:nowrap;cursor:pointer;background:var(--_tab-background);border:none}.tedi-tabs-list__more-btn:hover{--_tab-background: var(--tab-item-hover-background);--_tab-color: var(--tab-item-hover-text)}.tedi-tabs-list__more-btn:focus-visible{outline:none;box-shadow:inset 0 0 0 var(--tedi-borders-02) var(--general-border-brand)}.tedi-tabs-list__more-btn:active{--_tab-background: var(--tab-item-active-background);--_tab-color: var(--tab-item-active-text)}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "tedi-icon", inputs: ["name", "size", "color", "background", "variant", "type", "label"] }, { kind: "component", type: DropdownComponent, selector: "tedi-dropdown", inputs: ["value", "position", "preventOverflow", "offset", "hideOnScroll"], outputs: ["valueChange"] }, { kind: "directive", type: DropdownTriggerDirective, selector: "[tedi-dropdown-trigger]", inputs: ["ariaHaspopup"] }, { kind: "component", type: DropdownContentComponent, selector: "tedi-dropdown-content", inputs: ["dropdownRole"] }, { kind: "component", type: DropdownItemComponent, selector: "li[tedi-dropdown-item]", inputs: ["value", "disabled", "interactiveContent", "clipContent", "closeOnSelect"], outputs: ["itemSelect"] }, { kind: "directive", type: TabsOverflowContentDirective, selector: "[tediTabsOverflowContent]", inputs: ["tediTabsOverflowContent"] }, { kind: "pipe", type: TediTranslationPipe, name: "tediTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
23852
23870
  }
23853
23871
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: TabsListComponent, decorators: [{
23854
23872
  type: Component,
@@ -23862,10 +23880,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImpo
23862
23880
  TabsOverflowContentDirective,
23863
23881
  ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
23864
23882
  class: "tedi-tabs-list",
23883
+ "[class.no-print]": "printVisibility() === 'hide'",
23865
23884
  "[class.tedi-tabs-list--fade-start]": "overflowMode() === 'scroll' && canScrollStart()",
23866
23885
  "[class.tedi-tabs-list--fade-end]": "overflowMode() === 'scroll' && canScrollEnd()",
23867
23886
  }, template: "<div\n #list\n role=\"tablist\"\n data-name=\"tabs-list\"\n class=\"tedi-tabs-list__items\"\n [class.tedi-tabs-list__items--overflow]=\"showMore()\"\n [class.tedi-tabs-list__items--scroll]=\"overflowMode() === 'scroll'\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n (scroll)=\"updateScrollFade()\"\n>\n <ng-content />\n</div>\n\n@if (showMore()) {\n <div class=\"tedi-tabs-list__more\">\n <tedi-dropdown position=\"bottom-end\">\n <button\n type=\"button\"\n tedi-dropdown-trigger\n class=\"tedi-tabs-list__more-btn\"\n >\n {{ dropdownLabel() || (\"more\" | tediTranslate) }}\n <tedi-icon name=\"expand_more\" [size]=\"18\" color=\"inherit\" />\n </button>\n <tedi-dropdown-content dropdownRole=\"menu\">\n @for (item of dropdownItems(); track item.id) {\n <li\n tedi-dropdown-item\n [value]=\"item.id\"\n [disabled]=\"item.disabled\"\n [clipContent]=\"false\"\n [attr.aria-label]=\"item.trigger.label\"\n (itemSelect)=\"selectTab(item.id)\"\n >\n <span [tediTabsOverflowContent]=\"item.trigger\"></span>\n </li>\n }\n </tedi-dropdown-content>\n </tedi-dropdown>\n </div>\n}\n", styles: [".tedi-tabs-list{position:relative;display:flex;overflow:hidden;background:var(--tab-background);border-top-left-radius:var(--tab-top-radius);border-top-right-radius:var(--tab-top-radius)}.tedi-tabs-list--fade-start:before,.tedi-tabs-list--fade-end:after{position:absolute;top:0;bottom:0;z-index:1;width:3rem;pointer-events:none;content:\"\"}.tedi-tabs-list--fade-start:before{left:0;background:linear-gradient(to right,var(--tab-background) 10%,transparent 80%)}.tedi-tabs-list--fade-end:after{right:0;background:linear-gradient(to left,var(--tab-background) 10%,transparent 80%)}.tedi-tabs-list__items{display:flex;flex:1;min-width:0;overflow:hidden}.tedi-tabs-list__items--overflow .tedi-tabs-trigger:not(.tedi-tabs-trigger--selected){display:none}.tedi-tabs-list__items--overflow .tedi-tabs-trigger--selected{flex-grow:1;min-width:0}.tedi-tabs-list__items--scroll{overflow-x:auto}.tedi-tabs-list__more{display:flex;flex-shrink:0}.tedi-tabs-list__more-btn{--_tab-background: var(--tab-item-default-background);--_tab-color: var(--tab-item-default-text);display:inline-flex;gap:var(--tab-inner-spacing);align-items:center;justify-content:center;padding:var(--tab-spacing-y) var(--tab-spacing-x);font-size:var(--body-regular-size);color:var(--_tab-color);white-space:nowrap;cursor:pointer;background:var(--_tab-background);border:none}.tedi-tabs-list__more-btn:hover{--_tab-background: var(--tab-item-hover-background);--_tab-color: var(--tab-item-hover-text)}.tedi-tabs-list__more-btn:focus-visible{outline:none;box-shadow:inset 0 0 0 var(--tedi-borders-02) var(--general-border-brand)}.tedi-tabs-list__more-btn:active{--_tab-background: var(--tab-item-active-background);--_tab-color: var(--tab-item-active-text)}\n"] }]
23868
- }], ctorParameters: () => [], propDecorators: { ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], ariaLabelledby: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-labelledby", required: false }] }], overflowMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "overflowMode", required: false }] }], dropdownLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "dropdownLabel", required: false }] }], listRef: [{ type: i0.ViewChild, args: ["list", { isSignal: true }] }], triggers: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => TabsTriggerComponent), { isSignal: true }] }] } });
23887
+ }], ctorParameters: () => [], propDecorators: { ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], ariaLabelledby: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-labelledby", required: false }] }], overflowMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "overflowMode", required: false }] }], dropdownLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "dropdownLabel", required: false }] }], printVisibility: [{ type: i0.Input, args: [{ isSignal: true, alias: "printVisibility", required: false }] }], listRef: [{ type: i0.ViewChild, args: ["list", { isSignal: true }] }], triggers: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => TabsTriggerComponent), { isSignal: true }] }] } });
23869
23888
 
23870
23889
  /**
23871
23890
  * A tab panel. When `id` matches a trigger, the panel is only shown while that
@@ -23913,6 +23932,89 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImpo
23913
23932
  }]
23914
23933
  }] });
23915
23934
 
23935
+ /**
23936
+ * Applies the print helper classes from `@tedi-design-system/core` to the host element.
23937
+ */
23938
+ class PrintDirective {
23939
+ elementRef = inject(ElementRef);
23940
+ renderer = inject(Renderer2);
23941
+ /**
23942
+ * Controls the visibility of the element when printing.
23943
+ * - `'hide'` — the element is not printed.
23944
+ * - `'show'` — the element opts out of a `no-print` applied to the same
23945
+ * element. It cannot reveal an element that an ancestor hid.
23946
+ *
23947
+ * Leave empty when only the break inputs are needed — the `tediPrint`
23948
+ * attribute still has to be present for the directive to apply.
23949
+ */
23950
+ tediPrint = input("", ...(ngDevMode ? [{ debugName: "tediPrint" }] : []));
23951
+ /**
23952
+ * Determines how page, column, or region breaks behave before the element.
23953
+ * Uses the CSS `break-before` property values.
23954
+ */
23955
+ breakBefore = input(...(ngDevMode ? [undefined, { debugName: "breakBefore" }] : []));
23956
+ /**
23957
+ * Determines how page, column, or region breaks behave after the element.
23958
+ * Uses the CSS `break-after` property values.
23959
+ */
23960
+ breakAfter = input(...(ngDevMode ? [undefined, { debugName: "breakAfter" }] : []));
23961
+ /**
23962
+ * Determines how page, column, or region breaks behave inside the element.
23963
+ * Uses the CSS `break-inside` property values.
23964
+ */
23965
+ breakInside = input(...(ngDevMode ? [undefined, { debugName: "breakInside" }] : []));
23966
+ classes = computed(() => {
23967
+ const visibility = this.tediPrint();
23968
+ const breakBefore = this.breakBefore();
23969
+ const breakAfter = this.breakAfter();
23970
+ const breakInside = this.breakInside();
23971
+ return [
23972
+ visibility === "hide" && "no-print",
23973
+ visibility === "show" && "show-print",
23974
+ breakBefore && `break-before-${breakBefore}`,
23975
+ breakAfter && `break-after-${breakAfter}`,
23976
+ breakInside && `break-inside-${breakInside}`,
23977
+ ].filter((className) => !!className);
23978
+ }, ...(ngDevMode ? [{ debugName: "classes" }] : []));
23979
+ constructor() {
23980
+ /** Classes this directive added itself and is therefore allowed to remove. */
23981
+ let owned = [];
23982
+ /**
23983
+ * Classes are synced through Renderer2 rather than host bindings so the
23984
+ * directive never fights the element's own classes. A host binding takes
23985
+ * precedence over a component's `[class]` binding and would strip classes
23986
+ * that component set — e.g. the `no-print` that buttons apply to
23987
+ * themselves. Here a class that is already on the element is left alone:
23988
+ * the directive only removes what it added.
23989
+ */
23990
+ afterRenderEffect(() => {
23991
+ const next = this.classes();
23992
+ const element = this.elementRef.nativeElement;
23993
+ for (const className of owned) {
23994
+ if (!next.includes(className)) {
23995
+ this.renderer.removeClass(element, className);
23996
+ }
23997
+ }
23998
+ owned = next.filter((className) => {
23999
+ if (element.classList.contains(className)) {
24000
+ return owned.includes(className);
24001
+ }
24002
+ this.renderer.addClass(element, className);
24003
+ return true;
24004
+ });
24005
+ });
24006
+ }
24007
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: PrintDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
24008
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.24", type: PrintDirective, isStandalone: true, selector: "[tediPrint]", inputs: { tediPrint: { classPropertyName: "tediPrint", publicName: "tediPrint", isSignal: true, isRequired: false, transformFunction: null }, breakBefore: { classPropertyName: "breakBefore", publicName: "breakBefore", isSignal: true, isRequired: false, transformFunction: null }, breakAfter: { classPropertyName: "breakAfter", publicName: "breakAfter", isSignal: true, isRequired: false, transformFunction: null }, breakInside: { classPropertyName: "breakInside", publicName: "breakInside", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
24009
+ }
24010
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: PrintDirective, decorators: [{
24011
+ type: Directive,
24012
+ args: [{
24013
+ selector: "[tediPrint]",
24014
+ standalone: true,
24015
+ }]
24016
+ }], ctorParameters: () => [], propDecorators: { tediPrint: [{ type: i0.Input, args: [{ isSignal: true, alias: "tediPrint", required: false }] }], breakBefore: [{ type: i0.Input, args: [{ isSignal: true, alias: "breakBefore", required: false }] }], breakAfter: [{ type: i0.Input, args: [{ isSignal: true, alias: "breakAfter", required: false }] }], breakInside: [{ type: i0.Input, args: [{ isSignal: true, alias: "breakInside", required: false }] }] } });
24017
+
23916
24018
  class VerticalSpacingItemDirective {
23917
24019
  el = inject(ElementRef);
23918
24020
  renderer = inject(Renderer2);
@@ -23970,5 +24072,5 @@ function provideTedi(config = {}) {
23970
24072
  * Generated bundle index. Do not edit.
23971
24073
  */
23972
24074
 
23973
- export { AVAILABLE_LANGUAGES, AccordionComponent, AccordionItemComponent, AccordionItemContentComponent, AccordionItemHeaderComponent, AlertComponent, AttachmentActionsComponent, AttachmentComponent, BREAKPOINTS, BaseButtonDirective, BreadcrumbItemDirective, BreadcrumbSeparatorDirective, BreadcrumbsComponent, BreakpointService, ButtonComponent, ButtonGroupButtonDirective, ButtonGroupComponent, COUNTER_TAG_WIDTH, CalendarComponent, CardButtonComponent, CardComponent, CardContentComponent, CardHeaderComponent, CardIconComponent, CardRowComponent, CarouselComponent, CarouselContentComponent, CarouselFooterComponent, CarouselHeaderComponent, CarouselIndicatorsComponent, CarouselNavigationComponent, CarouselSlideDirective, CheckboxCardComponent, CheckboxCardGroupComponent, CheckboxComponent, CheckboxGroupComponent, ClosingButtonComponent, ColComponent, CollapseButtonComponent, CollapseComponent, DROPDOWN_API, DROPDOWN_CONTENT_API, DateFieldComponent, DatePickerComponent, DropdownComponent, DropdownContentComponent, DropdownItemComponent, DropdownItemValueComponent, DropdownItemValueLabelComponent, DropdownItemValueMetaComponent, DropdownTriggerDirective, EllipsisComponent, EmptyStateComponent, FeedbackTextComponent, FilterComponent, FilterContentDirective, FilterGroupComponent, FilterPrependDirective, FloatingButtonComponent, FooterBodyComponent, FooterBottomComponent, FooterComponent, FooterSectionComponent, FooterSideComponent, FormFieldComponent, FormFieldExtraDirective, HeaderActionsComponent, HeaderBottomComponent, HeaderComponent, HeaderContentComponent, HeaderLanguageComponent, HeaderLoginComponent, HeaderLogoComponent, HeaderLogoDarkDirective, HeaderLogoutComponent, HeaderMobileButtonComponent, HeaderProfileComponent, HeaderRoleComponent, HeaderRoleContentDirective, HeaderRoleNoResultsDirective, HeaderRoleTitleDirective, HeaderSearchComponent, HeaderTopComponent, HeadingWithIconComponent, HideAtDirective, HorizontalPushHandler, HorizontalStepperComponent, HorizontalStepperItemComponent, IconComponent, InfoButtonComponent, InfoTooltipComponent, InputGroupComponent, InputGroupPrefixDirective, InputGroupSuffixDirective, LANGUAGE_COOKIE_NAME, LANGUAGE_FALLBACK_VALUE, LabelComponent, LabelRowComponent, LinkComponent, ListComponent, MODAL_DATA, MODAL_SIZE, ModalComponent, ModalContentComponent, ModalFooterComponent, ModalHeaderComponent, ModalRef, ModalService, NumberFieldComponent, PaginationComponent, PopoverComponent, PopoverContentComponent, PopoverTriggerDirective, ProgressBarComponent, RadioCardComponent, RadioCardGroupComponent, RadioComponent, RadioGroupComponent, RowComponent, ScrollFadeComponent, SearchComponent, SearchFooterActionsComponent, SearchFooterTemplateDirective, SearchSuggestionComponent, SearchSuggestionTemplateDirective, SelectComponent, SelectOptionTemplateDirective, SelectTooltipTemplateDirective, SelectValueTemplateDirective, SeparatorComponent, ShowAtDirective, SideNavComponent, SideNavDropdownComponent, SideNavDropdownGroupComponent, SideNavDropdownItemComponent, SideNavGroupTitleComponent, SideNavItemComponent, SideNavOverlayComponent, SideNavToggleComponent, SkeletonBlockComponent, SkeletonComponent, SliderComponent, SpecialOptionControls, SpinnerComponent, StatusBadgeComponent, StatusIndicatorComponent, TAG_GAP, TEDI_FIELD_CONTEXT, TEDI_FORM_FIELD_CONTROL, TEDI_INPUT_GROUP, TEDI_TABLE_CONTEXT, TEDI_THEME_DEFAULT_TOKEN, TEDI_TRANSLATION_DEFAULT_TOKEN, THEME_CLASS_PREFIX, THEME_COOKIE_NAME, THEME_FALLBACK_VALUE, TOAST_DEFAULT_DURATION, TableOfContentsCollapsibleComponent, TableOfContentsComponent, TableOfContentsItemComponent, TableOfContentsItemSuffixDirective, TabsComponent, TabsContentComponent, TabsListComponent, TabsTriggerComponent, TagComponent, TediPaginationResultsDirective, TediTableColumnsMenuComponent, TediTableComponent, TediTableHeaderButtonComponent, TediTableToolbarComponent, TediTranslationPipe, TediTranslationService, TextComponent, TextFieldComponent, TextGroupComponent, TextGroupLabelComponent, TextGroupValueComponent, TextareaComponent, ThemeService, TimeFieldComponent, TimePickerComponent, TimelineComponent, TimelineDescriptionComponent, TimelineItemComponent, TimelineTimingsBottomDirective, TimelineTitleComponent, ToastComponent, ToastService, ToggleComponent, TooltipComponent, TooltipContentComponent, TooltipTriggerComponent, TruncateComponent, VerticalSpacingDirective, VerticalSpacingItemDirective, addDays, addMonths, addYears, breakpointInput, buildMonthGrid, calculateArrowOffset, calculateVisibleTagCount, computeGroupSpans, controlDescribedBy, cookieSignal, createTablePersistence, deriveControlState, endOfMonth, formatDate, formatLocaleDate, formatLocaleDateHint, formatLocaleDateLong, formatMonthYear, generateUUID, getCardBorderPlacementColor, getDaysInMonth, getFirstDayOfWeek, getFocusableElements, getISOWeek, getMonthNames, getPaddingCssVariables, getPlacementFromPositionChange, getWeekdayNames, groupRowSpan, highlightParts, injectTediTableContext, isAfterDay, isBeforeDay, isDateInRange, isSameDay, isSameMonth, isSameYear, isValidTime, matchAny, matchDate, normalizeTime, parseDate, parseLocaleDate, provideTedi, resolveCardBorderRadius, startOfMonth, startOfWeek, toConnectedPositions, toggleDateInArray, usePagination, warnDeprecated };
24075
+ export { AVAILABLE_LANGUAGES, AccordionComponent, AccordionItemComponent, AccordionItemContentComponent, AccordionItemHeaderComponent, AlertComponent, AttachmentActionsComponent, AttachmentComponent, BREAKPOINTS, BaseButtonDirective, BreadcrumbItemDirective, BreadcrumbSeparatorDirective, BreadcrumbsComponent, BreakpointService, ButtonComponent, ButtonGroupButtonDirective, ButtonGroupComponent, COUNTER_TAG_WIDTH, CalendarComponent, CardButtonComponent, CardComponent, CardContentComponent, CardHeaderComponent, CardIconComponent, CardRowComponent, CarouselComponent, CarouselContentComponent, CarouselFooterComponent, CarouselHeaderComponent, CarouselIndicatorsComponent, CarouselNavigationComponent, CarouselSlideDirective, CheckboxCardComponent, CheckboxCardGroupComponent, CheckboxComponent, CheckboxGroupComponent, ClosingButtonComponent, ColComponent, CollapseButtonComponent, CollapseComponent, DROPDOWN_API, DROPDOWN_CONTENT_API, DateFieldComponent, DatePickerComponent, DropdownComponent, DropdownContentComponent, DropdownItemComponent, DropdownItemValueComponent, DropdownItemValueLabelComponent, DropdownItemValueMetaComponent, DropdownTriggerDirective, EllipsisComponent, EmptyStateComponent, FeedbackTextComponent, FilterComponent, FilterContentDirective, FilterGroupComponent, FilterPrependDirective, FloatingButtonComponent, FooterBodyComponent, FooterBottomComponent, FooterComponent, FooterSectionComponent, FooterSideComponent, FormFieldComponent, FormFieldExtraDirective, HeaderActionsComponent, HeaderBottomComponent, HeaderComponent, HeaderContentComponent, HeaderLanguageComponent, HeaderLoginComponent, HeaderLogoComponent, HeaderLogoDarkDirective, HeaderLogoutComponent, HeaderMobileButtonComponent, HeaderProfileComponent, HeaderRoleComponent, HeaderRoleContentDirective, HeaderRoleNoResultsDirective, HeaderRoleTitleDirective, HeaderSearchComponent, HeaderTopComponent, HeadingWithIconComponent, HideAtDirective, HorizontalPushHandler, HorizontalStepperComponent, HorizontalStepperItemComponent, IconComponent, InfoButtonComponent, InfoTooltipComponent, InputGroupComponent, InputGroupPrefixDirective, InputGroupSuffixDirective, LANGUAGE_COOKIE_NAME, LANGUAGE_FALLBACK_VALUE, LabelComponent, LabelRowComponent, LinkComponent, ListComponent, MODAL_DATA, MODAL_SIZE, ModalComponent, ModalContentComponent, ModalFooterComponent, ModalHeaderComponent, ModalRef, ModalService, NumberFieldComponent, PaginationComponent, PopoverComponent, PopoverContentComponent, PopoverTriggerDirective, PrintDirective, ProgressBarComponent, RadioCardComponent, RadioCardGroupComponent, RadioComponent, RadioGroupComponent, RowComponent, ScrollFadeComponent, SearchComponent, SearchFooterActionsComponent, SearchFooterTemplateDirective, SearchSuggestionComponent, SearchSuggestionTemplateDirective, SelectComponent, SelectOptionTemplateDirective, SelectTooltipTemplateDirective, SelectValueTemplateDirective, SeparatorComponent, ShowAtDirective, SideNavComponent, SideNavDropdownComponent, SideNavDropdownGroupComponent, SideNavDropdownItemComponent, SideNavGroupTitleComponent, SideNavItemComponent, SideNavOverlayComponent, SideNavToggleComponent, SkeletonBlockComponent, SkeletonComponent, SliderComponent, SpecialOptionControls, SpinnerComponent, StatusBadgeComponent, StatusIndicatorComponent, TAG_GAP, TEDI_FIELD_CONTEXT, TEDI_FORM_FIELD_CONTROL, TEDI_INPUT_GROUP, TEDI_TABLE_CONTEXT, TEDI_THEME_DEFAULT_TOKEN, TEDI_TRANSLATION_DEFAULT_TOKEN, THEME_CLASS_PREFIX, THEME_COOKIE_NAME, THEME_FALLBACK_VALUE, TOAST_DEFAULT_DURATION, TableOfContentsCollapsibleComponent, TableOfContentsComponent, TableOfContentsItemComponent, TableOfContentsItemSuffixDirective, TabsComponent, TabsContentComponent, TabsListComponent, TabsTriggerComponent, TagComponent, TediPaginationResultsDirective, TediTableColumnsMenuComponent, TediTableComponent, TediTableHeaderButtonComponent, TediTableToolbarComponent, TediTranslationPipe, TediTranslationService, TextComponent, TextFieldComponent, TextGroupComponent, TextGroupLabelComponent, TextGroupValueComponent, TextareaComponent, ThemeService, TimeFieldComponent, TimePickerComponent, TimelineComponent, TimelineDescriptionComponent, TimelineItemComponent, TimelineTimingsBottomDirective, TimelineTitleComponent, ToastComponent, ToastService, ToggleComponent, TooltipComponent, TooltipContentComponent, TooltipTriggerComponent, TruncateComponent, VerticalSpacingDirective, VerticalSpacingItemDirective, addDays, addMonths, addYears, breakpointInput, buildMonthGrid, calculateArrowOffset, calculateVisibleTagCount, computeGroupSpans, controlDescribedBy, cookieSignal, createTablePersistence, deriveControlState, endOfMonth, formatDate, formatLocaleDate, formatLocaleDateHint, formatLocaleDateLong, formatMonthYear, generateUUID, getCardBorderPlacementColor, getDaysInMonth, getFirstDayOfWeek, getFocusableElements, getISOWeek, getMonthNames, getPaddingCssVariables, getPlacementFromPositionChange, getWeekdayNames, groupRowSpan, highlightParts, injectTediTableContext, isAfterDay, isBeforeDay, isDateInRange, isSameDay, isSameMonth, isSameYear, isValidTime, matchAny, matchDate, normalizeTime, parseDate, parseLocaleDate, provideTedi, resolveCardBorderRadius, startOfMonth, startOfWeek, toConnectedPositions, toggleDateInArray, usePagination, warnDeprecated };
23974
24076
  //# sourceMappingURL=tedi-design-system-angular-tedi.mjs.map