@tedi-design-system/angular 6.3.0-rc.3 → 6.3.0-rc.4

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 (36) hide show
  1. package/README.md +12 -0
  2. package/community/components/form/select/select.component.d.ts +3 -0
  3. package/community/components/form/select/select.component.d.ts.map +1 -1
  4. package/fesm2022/tedi-design-system-angular-community.mjs +3 -0
  5. package/fesm2022/tedi-design-system-angular-community.mjs.map +1 -1
  6. package/fesm2022/tedi-design-system-angular-tedi.mjs +1611 -686
  7. package/fesm2022/tedi-design-system-angular-tedi.mjs.map +1 -1
  8. package/package.json +1 -1
  9. package/tedi/components/cards/accordion/accordion-item/accordion-item.component.d.ts +2 -2
  10. package/tedi/components/form/index.d.ts +2 -1
  11. package/tedi/components/form/index.d.ts.map +1 -1
  12. package/tedi/components/form/select/index.d.ts +3 -0
  13. package/tedi/components/form/select/index.d.ts.map +1 -0
  14. package/tedi/components/form/select/select-templates.directive.d.ts +69 -0
  15. package/tedi/components/form/select/select-templates.directive.d.ts.map +1 -0
  16. package/tedi/components/form/select/select.component.d.ts +238 -0
  17. package/tedi/components/form/select/select.component.d.ts.map +1 -0
  18. package/tedi/components/overlay/dropdown/dropdown-content/dropdown-content.component.d.ts +2 -2
  19. package/tedi/components/overlay/dropdown/dropdown-content/dropdown-content.component.d.ts.map +1 -1
  20. package/tedi/components/overlay/dropdown/dropdown-item/dropdown-item.component.d.ts +7 -5
  21. package/tedi/components/overlay/dropdown/dropdown-item/dropdown-item.component.d.ts.map +1 -1
  22. package/tedi/components/overlay/dropdown/dropdown-item-value/dropdown-item-value-label.component.d.ts +6 -0
  23. package/tedi/components/overlay/dropdown/dropdown-item-value/dropdown-item-value-label.component.d.ts.map +1 -0
  24. package/tedi/components/overlay/dropdown/dropdown-item-value/dropdown-item-value-meta.component.d.ts +6 -0
  25. package/tedi/components/overlay/dropdown/dropdown-item-value/dropdown-item-value-meta.component.d.ts.map +1 -0
  26. package/tedi/components/overlay/dropdown/dropdown-item-value/dropdown-item-value.component.d.ts +36 -0
  27. package/tedi/components/overlay/dropdown/dropdown-item-value/dropdown-item-value.component.d.ts.map +1 -0
  28. package/tedi/components/overlay/dropdown/dropdown-item-value/index.d.ts +4 -0
  29. package/tedi/components/overlay/dropdown/dropdown-item-value/index.d.ts.map +1 -0
  30. package/tedi/components/overlay/dropdown/dropdown.component.d.ts.map +1 -1
  31. package/tedi/components/overlay/dropdown/dropdown.tokens.d.ts +30 -0
  32. package/tedi/components/overlay/dropdown/dropdown.tokens.d.ts.map +1 -0
  33. package/tedi/components/overlay/dropdown/index.d.ts +2 -0
  34. package/tedi/components/overlay/dropdown/index.d.ts.map +1 -1
  35. package/tedi/services/translation/translations.d.ts +7 -0
  36. package/tedi/services/translation/translations.d.ts.map +1 -1
@@ -1,15 +1,18 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, computed, ViewEncapsulation, ChangeDetectionStrategy, Component, signal, inject, ElementRef, Directive, Injectable, InjectionToken, REQUEST, PLATFORM_ID, effect, isSignal, Pipe, model, output, Injector, Renderer2, HostListener, viewChild, contentChild, contentChildren, forwardRef, ViewChild, ContentChild, Optional, Self, TemplateRef, viewChildren, HostBinding, Attribute, ViewContainerRef, runInInjectionContext, ContentChildren, afterNextRender, makeEnvironmentProviders } from '@angular/core';
2
+ import { input, computed, ViewEncapsulation, ChangeDetectionStrategy, Component, signal, inject, ElementRef, Directive, Injectable, InjectionToken, REQUEST, PLATFORM_ID, effect, isSignal, Pipe, model, output, Injector, Renderer2, forwardRef, ViewChild, TemplateRef, viewChild, viewChildren, NgZone, contentChild, HostListener, contentChildren, ContentChild, Optional, Self, HostBinding, Attribute, ViewContainerRef, runInInjectionContext, ContentChildren, afterNextRender, makeEnvironmentProviders } from '@angular/core';
3
3
  import * as i1 from '@angular/cdk/layout';
4
- import * as i1$3 from '@angular/common';
5
- import { DOCUMENT, isPlatformBrowser, isPlatformServer, NgTemplateOutlet, NgClass, NgFor, NgIf, CommonModule } from '@angular/common';
6
- import { Overlay, OverlayConfig } from '@angular/cdk/overlay';
4
+ import * as i1$1 from '@angular/common';
5
+ import { DOCUMENT, isPlatformBrowser, isPlatformServer, NgTemplateOutlet, CommonModule, NgClass, NgFor, NgIf } from '@angular/common';
6
+ import * as i2 from '@angular/cdk/overlay';
7
+ import { Overlay, OverlayConfig, CdkOverlayOrigin, OverlayModule } from '@angular/cdk/overlay';
7
8
  import { ComponentPortal } from '@angular/cdk/portal';
8
- import * as i1$2 from '@angular/forms';
9
+ import { LiveAnnouncer, _IdGenerator, CdkTrapFocus } from '@angular/cdk/a11y';
10
+ import * as i1$3 from '@angular/forms';
9
11
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
10
- import * as i1$1 from 'ngx-float-ui';
12
+ import * as i3 from '@angular/cdk/listbox';
13
+ import { CdkListbox, CdkListboxModule } from '@angular/cdk/listbox';
14
+ import * as i1$2 from 'ngx-float-ui';
11
15
  import { NgxFloatUiContentComponent, NgxFloatUiModule } from 'ngx-float-ui';
12
- import { LiveAnnouncer, CdkTrapFocus, _IdGenerator } from '@angular/cdk/a11y';
13
16
  import { trigger, state, transition, style, animate } from '@angular/animations';
14
17
  import { RouterLink } from '@angular/router';
15
18
 
@@ -356,7 +359,7 @@ const translationsMap = {
356
359
  },
357
360
  clear: {
358
361
  description: "For clearing a value",
359
- components: ["TableFilter", "TextField"],
362
+ components: ["TableFilter", "TextField", "Select"],
360
363
  et: "Tühjenda",
361
364
  en: "Clear",
362
365
  ru: "Очистить",
@@ -558,25 +561,32 @@ const translationsMap = {
558
561
  },
559
562
  "select.loading": {
560
563
  description: "Text when select options are loading",
561
- components: ["select"],
564
+ components: ["Select"],
562
565
  et: "Laadimine...",
563
566
  en: "Loading...",
564
567
  ru: "Загрузка...",
565
568
  },
566
569
  "select.no-options": {
567
570
  description: "Text when select has no options",
568
- components: ["select"],
571
+ components: ["Select"],
569
572
  et: "Valikud puuduvad",
570
573
  en: "No options",
571
574
  ru: "Нет вариантов",
572
575
  },
573
576
  "select.select-all": {
574
577
  description: "Text when select has 'select all' option",
575
- components: ["select"],
578
+ components: ["Select"],
576
579
  et: "Vali kõik",
577
580
  en: "Select all",
578
581
  ru: "Выбрать все",
579
582
  },
583
+ "select.search": {
584
+ description: "Placeholder text for search input in searchable select",
585
+ components: ["Select"],
586
+ et: "Otsi...",
587
+ en: "Search...",
588
+ ru: "Искать...",
589
+ },
580
590
  "stepper.completed": {
581
591
  description: "Label for screen-reader that this step is completed (visually hidden)",
582
592
  components: ["StepperNav"],
@@ -2174,240 +2184,1540 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
2174
2184
  }, styles: ["input[tedi-checkbox][type=checkbox]{--_checkbox-icon-size: 1.125rem;position:relative;width:var(--form-checkbox-radio-size-responsive);height:var(--form-checkbox-radio-size-responsive);padding:0;margin:0;vertical-align:middle;appearance:none;cursor:pointer;background-color:var(--form-checkbox-radio-default-background-default);border:1px solid var(--form-checkbox-radio-default-border-default);border-radius:var(--form-checkbox-radio-indicator-radius-checkbox)}@media (min-width: 576px){input[tedi-checkbox][type=checkbox]{--_checkbox-icon-size: 1rem}}input[tedi-checkbox][type=checkbox]:not(:disabled):hover{border-color:var(--form-checkbox-radio-default-border-hover);box-shadow:0 0 0 1px var(--form-checkbox-radio-default-border-hover)}input[tedi-checkbox][type=checkbox]:not(:checked):disabled{cursor:not-allowed;background-color:var(--form-general-background-disabled);border-color:var(--form-general-border-disabled)}input[tedi-checkbox][type=checkbox]:checked,input[tedi-checkbox][type=checkbox]:indeterminate{background-color:var(--form-checkbox-radio-default-background-selected);border-color:var(--form-checkbox-radio-default-border-selected)}input[tedi-checkbox][type=checkbox]:checked:disabled,input[tedi-checkbox][type=checkbox]:indeterminate:disabled{cursor:not-allowed;background-color:var(--form-checkbox-radio-default-background-selected-disabled);border-color:var(--form-checkbox-radio-default-border-selected-disabled)}input[tedi-checkbox][type=checkbox]:checked:before,input[tedi-checkbox][type=checkbox]:indeterminate:before{position:absolute;top:50%;left:50%;font-family:Material Symbols Outlined,sans-serif;font-size:var(--_checkbox-icon-size);line-height:1;color:var(--form-checkbox-radio-default-check-indicator-default);content:\"check\";transform:translate(-50%,-50%);-webkit-font-smoothing:antialiased}input[tedi-checkbox][type=checkbox]:checked:before{content:\"check\"}input[tedi-checkbox][type=checkbox]:indeterminate:before{content:\"remove\"}input[tedi-checkbox][type=checkbox]:focus-visible{outline-width:2px;outline-style:solid;outline-offset:2px}input[tedi-checkbox][type=checkbox]:not(:checked,:disabled).tedi-checkbox--invalid,input[tedi-checkbox][type=checkbox]:user-invalid,input[tedi-checkbox][type=checkbox].ng-invalid.ng-touched{border-color:var(--form-general-feedback-error-border)}input[tedi-checkbox][type=checkbox]:not(:checked,:disabled).tedi-checkbox--invalid:hover,input[tedi-checkbox][type=checkbox]:user-invalid:hover,input[tedi-checkbox][type=checkbox].ng-invalid.ng-touched:hover{border-color:var(--form-checkbox-radio-default-border-hover)}input[tedi-checkbox][type=checkbox].tedi-checkbox--large{--_checkbox-icon-size: 1.125rem;width:var(--form-checkbox-radio-size-large);height:var(--form-checkbox-radio-size-large)}\n"] }]
2175
2185
  }] });
2176
2186
 
2177
- class SeparatorComponent {
2178
- /**
2179
- * Axis of separator.
2180
- */
2181
- axis = input("horizontal");
2182
- /**
2183
- * Color of separator
2184
- */
2185
- color = input("primary");
2186
- /**
2187
- * Separator style variant.
2188
- */
2189
- variant = input();
2190
- /**
2191
- * Dot size. Only used when variant is "dot-only".
2192
- */
2193
- dotSize = input();
2194
- /**
2195
- * Is dot filled? Only used when variant is "dot-only".
2196
- */
2197
- dotFilled = input(true);
2187
+ class FeedbackTextComponent {
2198
2188
  /**
2199
- * Thickness in pixels (ignored if variant is used).
2200
- * @default 1
2189
+ * Helper text
2201
2190
  */
2202
- thickness = input(1);
2191
+ text = input.required();
2203
2192
  /**
2204
- * Spacing applied based on the axis:
2205
- * - For horizontal axis, spacing is applied to top and bottom of the separator.
2206
- * - For vertical axis, spacing is applied to left and right of the separator.
2193
+ * Type of form-helper.
2194
+ * @default hint
2207
2195
  */
2208
- spacing = input();
2196
+ type = input("hint");
2209
2197
  /**
2210
- * Size of separator based on the axis:
2211
- * - For horizontal axis, size defines width.
2212
- * - For vertical axis, size defines height (when using percentages, then parent container must have height set).
2213
- * @default 100%
2198
+ * Position of the helper.
2199
+ * @default left
2214
2200
  */
2215
- size = input("100%");
2216
- // eslint-disable-next-line complexity
2217
- classes = computed(() => {
2218
- const classList = [
2219
- "tedi-separator",
2220
- `tedi-separator--${this.color()}`,
2221
- `tedi-separator--${this.axis()}`,
2222
- ];
2223
- if (this.variant()) {
2224
- classList.push(`tedi-separator--${this.variant()}`);
2225
- }
2226
- if (this.variant() && this.dotSize()) {
2227
- classList.push(`tedi-separator--${this.variant()}-${this.dotSize()}`);
2228
- }
2229
- if (this.variant() === "dot-only" && this.dotFilled()) {
2230
- classList.push(`tedi-separator--${this.variant()}-filled`);
2231
- }
2232
- else {
2233
- classList.push(`tedi-separator--${this.variant()}-outlined`);
2234
- }
2235
- if (this.thickness()) {
2236
- classList.push(`tedi-separator--thickness-${this.thickness()}`);
2237
- }
2238
- const spacing = this.spacing();
2239
- if (spacing && typeof spacing === "number") {
2240
- classList.push(`tedi-separator--spacing-${spacing}`.replace(".", "-"));
2201
+ position = input("left");
2202
+ role = computed(() => {
2203
+ if (this.type() === "valid" || this.type() === "error") {
2204
+ return "alert";
2241
2205
  }
2242
- else if (spacing) {
2243
- if (this.axis() === "horizontal") {
2244
- if (spacing.top) {
2245
- classList.push(`tedi-separator--top-${spacing.top}`.replace(".", "-"));
2246
- }
2247
- if (spacing.bottom) {
2248
- classList.push(`tedi-separator--bottom-${spacing.bottom}`.replace(".", "-"));
2249
- }
2250
- }
2251
- else {
2252
- if (spacing.left) {
2253
- classList.push(`tedi-separator--left-${spacing.left}`.replace(".", "-"));
2254
- }
2255
- if (spacing.right) {
2256
- classList.push(`tedi-separator--right-${spacing.right}`.replace(".", "-"));
2257
- }
2258
- }
2206
+ return undefined;
2207
+ });
2208
+ ariaLive = computed(() => {
2209
+ if (this.type() === "error" || this.type() === "valid") {
2210
+ return "assertive";
2259
2211
  }
2260
- return classList.join(" ");
2212
+ return "polite";
2261
2213
  });
2262
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SeparatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2263
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.15", type: SeparatorComponent, isStandalone: true, selector: "tedi-separator", inputs: { axis: { classPropertyName: "axis", publicName: "axis", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, dotSize: { classPropertyName: "dotSize", publicName: "dotSize", isSignal: true, isRequired: false, transformFunction: null }, dotFilled: { classPropertyName: "dotFilled", publicName: "dotFilled", isSignal: true, isRequired: false, transformFunction: null }, thickness: { classPropertyName: "thickness", publicName: "thickness", isSignal: true, isRequired: false, transformFunction: null }, spacing: { classPropertyName: "spacing", publicName: "spacing", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "style.width": "variant() === 'dot-only' ? null : axis() === 'horizontal' ? size() : '0px'", "style.height": "variant() === 'dot-only' ? null : axis() === 'vertical' ? size() : '0px'" } }, ngImport: i0, template: "", isInline: true, styles: [".tedi-separator{position:relative;display:block;margin:0;border:0;border-style:solid;border-top-width:1px}@media print{.tedi-separator{filter:grayscale(1)}}.tedi-separator--vertical{border-top-width:0;border-left-width:1px}.tedi-separator--primary{border-color:var(--general-border-primary)}.tedi-separator--secondary{border-color:var(--general-border-secondary)}.tedi-separator--accent{border-color:var(--general-border-accent)}.tedi-separator--block{display:block}.tedi-separator--inline{display:inline}.tedi-separator--dotted:before,.tedi-separator--dotted-small:before{position:absolute;top:1.25rem;width:var(--separator-dotted-dot-lg);height:var(--separator-dotted-dot-lg);content:\"\";background-color:var(--general-border-primary);border-radius:100%;transform:translate(-8px)}@media print{.tedi-separator--dotted:before,.tedi-separator--dotted-small:before{filter:grayscale(1)}}.tedi-separator--dotted.tedi-separator--secondary:before,.tedi-separator--dotted-small.tedi-separator--secondary:before{background-color:var(--general-border-secondary)}.tedi-separator--dotted.tedi-separator--accent:before,.tedi-separator--dotted-small.tedi-separator--accent:before{background-color:var(--general-border-accent)}.tedi-separator--dotted-small:before{top:1.5rem;width:var(--separator-dotted-dot-md);height:var(--separator-dotted-dot-md);transform:translate(-5px)}.tedi-separator--horizontal.tedi-separator--top-0{margin-top:0}.tedi-separator--horizontal.tedi-separator--bottom-0{margin-bottom:0}.tedi-separator--vertical.tedi-separator--left-0{margin-left:0}.tedi-separator--vertical.tedi-separator--right-0{margin-right:0}.tedi-separator--horizontal.tedi-separator--spacing-0:not(.tedi-separator--dot-only){margin-top:0;margin-bottom:0}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-0,.tedi-separator--vertical.tedi-separator--spacing-0{margin-right:0;margin-left:0}.tedi-separator--horizontal.tedi-separator--top-0-25{margin-top:.25rem}.tedi-separator--horizontal.tedi-separator--bottom-0-25{margin-bottom:.25rem}.tedi-separator--vertical.tedi-separator--left-0-25{margin-left:.25rem}.tedi-separator--vertical.tedi-separator--right-0-25{margin-right:.25rem}.tedi-separator--horizontal.tedi-separator--spacing-0-25:not(.tedi-separator--dot-only){margin-top:.25rem;margin-bottom:.25rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-0-25,.tedi-separator--vertical.tedi-separator--spacing-0-25{margin-right:.25rem;margin-left:.25rem}.tedi-separator--horizontal.tedi-separator--top-0-5{margin-top:.5rem}.tedi-separator--horizontal.tedi-separator--bottom-0-5{margin-bottom:.5rem}.tedi-separator--vertical.tedi-separator--left-0-5{margin-left:.5rem}.tedi-separator--vertical.tedi-separator--right-0-5{margin-right:.5rem}.tedi-separator--horizontal.tedi-separator--spacing-0-5:not(.tedi-separator--dot-only){margin-top:.5rem;margin-bottom:.5rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-0-5,.tedi-separator--vertical.tedi-separator--spacing-0-5{margin-right:.5rem;margin-left:.5rem}.tedi-separator--horizontal.tedi-separator--top-0-75{margin-top:.75rem}.tedi-separator--horizontal.tedi-separator--bottom-0-75{margin-bottom:.75rem}.tedi-separator--vertical.tedi-separator--left-0-75{margin-left:.75rem}.tedi-separator--vertical.tedi-separator--right-0-75{margin-right:.75rem}.tedi-separator--horizontal.tedi-separator--spacing-0-75:not(.tedi-separator--dot-only){margin-top:.75rem;margin-bottom:.75rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-0-75,.tedi-separator--vertical.tedi-separator--spacing-0-75{margin-right:.75rem;margin-left:.75rem}.tedi-separator--horizontal.tedi-separator--top-1{margin-top:1rem}.tedi-separator--horizontal.tedi-separator--bottom-1{margin-bottom:1rem}.tedi-separator--vertical.tedi-separator--left-1{margin-left:1rem}.tedi-separator--vertical.tedi-separator--right-1{margin-right:1rem}.tedi-separator--horizontal.tedi-separator--spacing-1:not(.tedi-separator--dot-only){margin-top:1rem;margin-bottom:1rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-1,.tedi-separator--vertical.tedi-separator--spacing-1{margin-right:1rem;margin-left:1rem}.tedi-separator--horizontal.tedi-separator--top-1-25{margin-top:1.25rem}.tedi-separator--horizontal.tedi-separator--bottom-1-25{margin-bottom:1.25rem}.tedi-separator--vertical.tedi-separator--left-1-25{margin-left:1.25rem}.tedi-separator--vertical.tedi-separator--right-1-25{margin-right:1.25rem}.tedi-separator--horizontal.tedi-separator--spacing-1-25:not(.tedi-separator--dot-only){margin-top:1.25rem;margin-bottom:1.25rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-1-25,.tedi-separator--vertical.tedi-separator--spacing-1-25{margin-right:1.25rem;margin-left:1.25rem}.tedi-separator--horizontal.tedi-separator--top-1-5{margin-top:1.5rem}.tedi-separator--horizontal.tedi-separator--bottom-1-5{margin-bottom:1.5rem}.tedi-separator--vertical.tedi-separator--left-1-5{margin-left:1.5rem}.tedi-separator--vertical.tedi-separator--right-1-5{margin-right:1.5rem}.tedi-separator--horizontal.tedi-separator--spacing-1-5:not(.tedi-separator--dot-only){margin-top:1.5rem;margin-bottom:1.5rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-1-5,.tedi-separator--vertical.tedi-separator--spacing-1-5{margin-right:1.5rem;margin-left:1.5rem}.tedi-separator--horizontal.tedi-separator--top-1-75{margin-top:1.75rem}.tedi-separator--horizontal.tedi-separator--bottom-1-75{margin-bottom:1.75rem}.tedi-separator--vertical.tedi-separator--left-1-75{margin-left:1.75rem}.tedi-separator--vertical.tedi-separator--right-1-75{margin-right:1.75rem}.tedi-separator--horizontal.tedi-separator--spacing-1-75:not(.tedi-separator--dot-only){margin-top:1.75rem;margin-bottom:1.75rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-1-75,.tedi-separator--vertical.tedi-separator--spacing-1-75{margin-right:1.75rem;margin-left:1.75rem}.tedi-separator--horizontal.tedi-separator--top-2{margin-top:2rem}.tedi-separator--horizontal.tedi-separator--bottom-2{margin-bottom:2rem}.tedi-separator--vertical.tedi-separator--left-2{margin-left:2rem}.tedi-separator--vertical.tedi-separator--right-2{margin-right:2rem}.tedi-separator--horizontal.tedi-separator--spacing-2:not(.tedi-separator--dot-only){margin-top:2rem;margin-bottom:2rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-2,.tedi-separator--vertical.tedi-separator--spacing-2{margin-right:2rem;margin-left:2rem}.tedi-separator--horizontal.tedi-separator--top-2-5{margin-top:2.5rem}.tedi-separator--horizontal.tedi-separator--bottom-2-5{margin-bottom:2.5rem}.tedi-separator--vertical.tedi-separator--left-2-5{margin-left:2.5rem}.tedi-separator--vertical.tedi-separator--right-2-5{margin-right:2.5rem}.tedi-separator--horizontal.tedi-separator--spacing-2-5:not(.tedi-separator--dot-only){margin-top:2.5rem;margin-bottom:2.5rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-2-5,.tedi-separator--vertical.tedi-separator--spacing-2-5{margin-right:2.5rem;margin-left:2.5rem}.tedi-separator--horizontal.tedi-separator--top-5{margin-top:5rem}.tedi-separator--horizontal.tedi-separator--bottom-5{margin-bottom:5rem}.tedi-separator--vertical.tedi-separator--left-5{margin-left:5rem}.tedi-separator--vertical.tedi-separator--right-5{margin-right:5rem}.tedi-separator--horizontal.tedi-separator--spacing-5:not(.tedi-separator--dot-only){margin-top:5rem;margin-bottom:5rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-5,.tedi-separator--vertical.tedi-separator--spacing-5{margin-right:5rem;margin-left:5rem}.tedi-separator.tedi-separator--thickness-1{border-top-width:1px}.tedi-separator--vertical.tedi-separator--thickness-1{border-left-width:1px}.tedi-separator.tedi-separator--thickness-2{border-top-width:2px}.tedi-separator--vertical.tedi-separator--thickness-2{border-left-width:2px}.tedi-separator--dot-only{position:relative;display:inline-block;vertical-align:middle;border:none}.tedi-separator--dot-only:before{position:relative;display:block;width:var(--separator-dotted-dot-sm);height:var(--separator-dotted-dot-sm);content:\"\";border-radius:100%}@media print{.tedi-separator--dot-only:before{filter:grayscale(1)}}.tedi-separator--dot-only.tedi-separator--dot-only-extra-small:before{width:var(--separator-dotted-dot-xs);height:var(--separator-dotted-dot-xs)}.tedi-separator--dot-only.tedi-separator--dot-only-small:before{width:var(--separator-dotted-dot-sm);height:var(--separator-dotted-dot-sm)}.tedi-separator--dot-only.tedi-separator--dot-only-medium:before{width:var(--separator-dotted-dot-md);height:var(--separator-dotted-dot-md)}.tedi-separator--dot-only.tedi-separator--dot-only-large:before{width:var(--separator-dotted-dot-lg);height:var(--separator-dotted-dot-lg)}.tedi-separator--dot-only-filled.tedi-separator--primary:before{background-color:var(--general-border-primary)}.tedi-separator--dot-only-filled.tedi-separator--secondary:before{background-color:var(--general-border-secondary)}.tedi-separator--dot-only-filled.tedi-separator--accent:before{background-color:var(--general-border-accent)}.tedi-separator--dot-only-outlined:before{border-style:solid}.tedi-separator--dot-only-outlined.tedi-separator--primary:before{border-color:var(--general-border-primary)}.tedi-separator--dot-only-outlined.tedi-separator--secondary:before{border-color:var(--general-border-secondary)}.tedi-separator--dot-only-outlined.tedi-separator--accent:before{border-color:var(--general-border-accent)}.tedi-separator--dot-only-outlined.tedi-separator--thickness-1:before{border-width:1px}.tedi-separator--dot-only-outlined.tedi-separator--thickness-2:before{border-width:2px}.tedi-separator--horizontal.tedi-separator--dotted:before,.tedi-separator--horizontal.tedi-separator--dotted-small:before{right:0;left:0;margin:0 auto;transform:initial}.tedi-separator--horizontal.tedi-separator--dotted:before{top:calc(var(--separator-dotted-dot-lg) / 2 * -1)}.tedi-separator--horizontal.tedi-separator--dotted-small:before{top:calc(var(--separator-dotted-dot-md) / 2 * -1)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2214
+ classes = computed(() => {
2215
+ return `tedi-feedback-text tedi-feedback-text--${this.type()} tedi-feedback-text--${this.position()}`;
2216
+ });
2217
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: FeedbackTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2218
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.15", type: FeedbackTextComponent, isStandalone: true, selector: "tedi-feedback-text", inputs: { text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.role": "role()", "attr.aria-live": "ariaLive()" } }, ngImport: i0, template: "{{ text() }}\n", styles: [".tedi-feedback-text{display:block;font-size:var(--body-small-regular-size);color:var(--general-text-tertiary)}.tedi-feedback-text--valid{color:var(--form-general-feedback-success-text)}.tedi-feedback-text--error{color:var(--form-general-feedback-error-text)}.tedi-feedback-text--left{flex-grow:1;text-align:left}.tedi-feedback-text--right{flex-grow:0;text-align:right}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2264
2219
  }
2265
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SeparatorComponent, decorators: [{
2220
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: FeedbackTextComponent, decorators: [{
2266
2221
  type: Component,
2267
- args: [{ selector: "tedi-separator", template: "", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
2222
+ args: [{ selector: "tedi-feedback-text", standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
2268
2223
  "[class]": "classes()",
2269
- "[style.width]": "variant() === 'dot-only' ? null : axis() === 'horizontal' ? size() : '0px'",
2270
- "[style.height]": "variant() === 'dot-only' ? null : axis() === 'vertical' ? size() : '0px'",
2271
- }, styles: [".tedi-separator{position:relative;display:block;margin:0;border:0;border-style:solid;border-top-width:1px}@media print{.tedi-separator{filter:grayscale(1)}}.tedi-separator--vertical{border-top-width:0;border-left-width:1px}.tedi-separator--primary{border-color:var(--general-border-primary)}.tedi-separator--secondary{border-color:var(--general-border-secondary)}.tedi-separator--accent{border-color:var(--general-border-accent)}.tedi-separator--block{display:block}.tedi-separator--inline{display:inline}.tedi-separator--dotted:before,.tedi-separator--dotted-small:before{position:absolute;top:1.25rem;width:var(--separator-dotted-dot-lg);height:var(--separator-dotted-dot-lg);content:\"\";background-color:var(--general-border-primary);border-radius:100%;transform:translate(-8px)}@media print{.tedi-separator--dotted:before,.tedi-separator--dotted-small:before{filter:grayscale(1)}}.tedi-separator--dotted.tedi-separator--secondary:before,.tedi-separator--dotted-small.tedi-separator--secondary:before{background-color:var(--general-border-secondary)}.tedi-separator--dotted.tedi-separator--accent:before,.tedi-separator--dotted-small.tedi-separator--accent:before{background-color:var(--general-border-accent)}.tedi-separator--dotted-small:before{top:1.5rem;width:var(--separator-dotted-dot-md);height:var(--separator-dotted-dot-md);transform:translate(-5px)}.tedi-separator--horizontal.tedi-separator--top-0{margin-top:0}.tedi-separator--horizontal.tedi-separator--bottom-0{margin-bottom:0}.tedi-separator--vertical.tedi-separator--left-0{margin-left:0}.tedi-separator--vertical.tedi-separator--right-0{margin-right:0}.tedi-separator--horizontal.tedi-separator--spacing-0:not(.tedi-separator--dot-only){margin-top:0;margin-bottom:0}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-0,.tedi-separator--vertical.tedi-separator--spacing-0{margin-right:0;margin-left:0}.tedi-separator--horizontal.tedi-separator--top-0-25{margin-top:.25rem}.tedi-separator--horizontal.tedi-separator--bottom-0-25{margin-bottom:.25rem}.tedi-separator--vertical.tedi-separator--left-0-25{margin-left:.25rem}.tedi-separator--vertical.tedi-separator--right-0-25{margin-right:.25rem}.tedi-separator--horizontal.tedi-separator--spacing-0-25:not(.tedi-separator--dot-only){margin-top:.25rem;margin-bottom:.25rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-0-25,.tedi-separator--vertical.tedi-separator--spacing-0-25{margin-right:.25rem;margin-left:.25rem}.tedi-separator--horizontal.tedi-separator--top-0-5{margin-top:.5rem}.tedi-separator--horizontal.tedi-separator--bottom-0-5{margin-bottom:.5rem}.tedi-separator--vertical.tedi-separator--left-0-5{margin-left:.5rem}.tedi-separator--vertical.tedi-separator--right-0-5{margin-right:.5rem}.tedi-separator--horizontal.tedi-separator--spacing-0-5:not(.tedi-separator--dot-only){margin-top:.5rem;margin-bottom:.5rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-0-5,.tedi-separator--vertical.tedi-separator--spacing-0-5{margin-right:.5rem;margin-left:.5rem}.tedi-separator--horizontal.tedi-separator--top-0-75{margin-top:.75rem}.tedi-separator--horizontal.tedi-separator--bottom-0-75{margin-bottom:.75rem}.tedi-separator--vertical.tedi-separator--left-0-75{margin-left:.75rem}.tedi-separator--vertical.tedi-separator--right-0-75{margin-right:.75rem}.tedi-separator--horizontal.tedi-separator--spacing-0-75:not(.tedi-separator--dot-only){margin-top:.75rem;margin-bottom:.75rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-0-75,.tedi-separator--vertical.tedi-separator--spacing-0-75{margin-right:.75rem;margin-left:.75rem}.tedi-separator--horizontal.tedi-separator--top-1{margin-top:1rem}.tedi-separator--horizontal.tedi-separator--bottom-1{margin-bottom:1rem}.tedi-separator--vertical.tedi-separator--left-1{margin-left:1rem}.tedi-separator--vertical.tedi-separator--right-1{margin-right:1rem}.tedi-separator--horizontal.tedi-separator--spacing-1:not(.tedi-separator--dot-only){margin-top:1rem;margin-bottom:1rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-1,.tedi-separator--vertical.tedi-separator--spacing-1{margin-right:1rem;margin-left:1rem}.tedi-separator--horizontal.tedi-separator--top-1-25{margin-top:1.25rem}.tedi-separator--horizontal.tedi-separator--bottom-1-25{margin-bottom:1.25rem}.tedi-separator--vertical.tedi-separator--left-1-25{margin-left:1.25rem}.tedi-separator--vertical.tedi-separator--right-1-25{margin-right:1.25rem}.tedi-separator--horizontal.tedi-separator--spacing-1-25:not(.tedi-separator--dot-only){margin-top:1.25rem;margin-bottom:1.25rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-1-25,.tedi-separator--vertical.tedi-separator--spacing-1-25{margin-right:1.25rem;margin-left:1.25rem}.tedi-separator--horizontal.tedi-separator--top-1-5{margin-top:1.5rem}.tedi-separator--horizontal.tedi-separator--bottom-1-5{margin-bottom:1.5rem}.tedi-separator--vertical.tedi-separator--left-1-5{margin-left:1.5rem}.tedi-separator--vertical.tedi-separator--right-1-5{margin-right:1.5rem}.tedi-separator--horizontal.tedi-separator--spacing-1-5:not(.tedi-separator--dot-only){margin-top:1.5rem;margin-bottom:1.5rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-1-5,.tedi-separator--vertical.tedi-separator--spacing-1-5{margin-right:1.5rem;margin-left:1.5rem}.tedi-separator--horizontal.tedi-separator--top-1-75{margin-top:1.75rem}.tedi-separator--horizontal.tedi-separator--bottom-1-75{margin-bottom:1.75rem}.tedi-separator--vertical.tedi-separator--left-1-75{margin-left:1.75rem}.tedi-separator--vertical.tedi-separator--right-1-75{margin-right:1.75rem}.tedi-separator--horizontal.tedi-separator--spacing-1-75:not(.tedi-separator--dot-only){margin-top:1.75rem;margin-bottom:1.75rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-1-75,.tedi-separator--vertical.tedi-separator--spacing-1-75{margin-right:1.75rem;margin-left:1.75rem}.tedi-separator--horizontal.tedi-separator--top-2{margin-top:2rem}.tedi-separator--horizontal.tedi-separator--bottom-2{margin-bottom:2rem}.tedi-separator--vertical.tedi-separator--left-2{margin-left:2rem}.tedi-separator--vertical.tedi-separator--right-2{margin-right:2rem}.tedi-separator--horizontal.tedi-separator--spacing-2:not(.tedi-separator--dot-only){margin-top:2rem;margin-bottom:2rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-2,.tedi-separator--vertical.tedi-separator--spacing-2{margin-right:2rem;margin-left:2rem}.tedi-separator--horizontal.tedi-separator--top-2-5{margin-top:2.5rem}.tedi-separator--horizontal.tedi-separator--bottom-2-5{margin-bottom:2.5rem}.tedi-separator--vertical.tedi-separator--left-2-5{margin-left:2.5rem}.tedi-separator--vertical.tedi-separator--right-2-5{margin-right:2.5rem}.tedi-separator--horizontal.tedi-separator--spacing-2-5:not(.tedi-separator--dot-only){margin-top:2.5rem;margin-bottom:2.5rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-2-5,.tedi-separator--vertical.tedi-separator--spacing-2-5{margin-right:2.5rem;margin-left:2.5rem}.tedi-separator--horizontal.tedi-separator--top-5{margin-top:5rem}.tedi-separator--horizontal.tedi-separator--bottom-5{margin-bottom:5rem}.tedi-separator--vertical.tedi-separator--left-5{margin-left:5rem}.tedi-separator--vertical.tedi-separator--right-5{margin-right:5rem}.tedi-separator--horizontal.tedi-separator--spacing-5:not(.tedi-separator--dot-only){margin-top:5rem;margin-bottom:5rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-5,.tedi-separator--vertical.tedi-separator--spacing-5{margin-right:5rem;margin-left:5rem}.tedi-separator.tedi-separator--thickness-1{border-top-width:1px}.tedi-separator--vertical.tedi-separator--thickness-1{border-left-width:1px}.tedi-separator.tedi-separator--thickness-2{border-top-width:2px}.tedi-separator--vertical.tedi-separator--thickness-2{border-left-width:2px}.tedi-separator--dot-only{position:relative;display:inline-block;vertical-align:middle;border:none}.tedi-separator--dot-only:before{position:relative;display:block;width:var(--separator-dotted-dot-sm);height:var(--separator-dotted-dot-sm);content:\"\";border-radius:100%}@media print{.tedi-separator--dot-only:before{filter:grayscale(1)}}.tedi-separator--dot-only.tedi-separator--dot-only-extra-small:before{width:var(--separator-dotted-dot-xs);height:var(--separator-dotted-dot-xs)}.tedi-separator--dot-only.tedi-separator--dot-only-small:before{width:var(--separator-dotted-dot-sm);height:var(--separator-dotted-dot-sm)}.tedi-separator--dot-only.tedi-separator--dot-only-medium:before{width:var(--separator-dotted-dot-md);height:var(--separator-dotted-dot-md)}.tedi-separator--dot-only.tedi-separator--dot-only-large:before{width:var(--separator-dotted-dot-lg);height:var(--separator-dotted-dot-lg)}.tedi-separator--dot-only-filled.tedi-separator--primary:before{background-color:var(--general-border-primary)}.tedi-separator--dot-only-filled.tedi-separator--secondary:before{background-color:var(--general-border-secondary)}.tedi-separator--dot-only-filled.tedi-separator--accent:before{background-color:var(--general-border-accent)}.tedi-separator--dot-only-outlined:before{border-style:solid}.tedi-separator--dot-only-outlined.tedi-separator--primary:before{border-color:var(--general-border-primary)}.tedi-separator--dot-only-outlined.tedi-separator--secondary:before{border-color:var(--general-border-secondary)}.tedi-separator--dot-only-outlined.tedi-separator--accent:before{border-color:var(--general-border-accent)}.tedi-separator--dot-only-outlined.tedi-separator--thickness-1:before{border-width:1px}.tedi-separator--dot-only-outlined.tedi-separator--thickness-2:before{border-width:2px}.tedi-separator--horizontal.tedi-separator--dotted:before,.tedi-separator--horizontal.tedi-separator--dotted-small:before{right:0;left:0;margin:0 auto;transform:initial}.tedi-separator--horizontal.tedi-separator--dotted:before{top:calc(var(--separator-dotted-dot-lg) / 2 * -1)}.tedi-separator--horizontal.tedi-separator--dotted-small:before{top:calc(var(--separator-dotted-dot-md) / 2 * -1)}\n"] }]
2224
+ "[attr.role]": "role()",
2225
+ "[attr.aria-live]": "ariaLive()",
2226
+ }, template: "{{ text() }}\n", styles: [".tedi-feedback-text{display:block;font-size:var(--body-small-regular-size);color:var(--general-text-tertiary)}.tedi-feedback-text--valid{color:var(--form-general-feedback-success-text)}.tedi-feedback-text--error{color:var(--form-general-feedback-error-text)}.tedi-feedback-text--left{flex-grow:1;text-align:left}.tedi-feedback-text--right{flex-grow:0;text-align:right}\n"] }]
2272
2227
  }] });
2273
2228
 
2274
- class PopoverTriggerDirective {
2275
- /**
2276
- * Should add underline class to trigger element?
2277
- * @default false
2278
- */
2279
- underline = input(false);
2280
- host = inject(ElementRef);
2281
- popover = inject(PopoverComponent);
2282
- onClick() {
2283
- this.popover.togglePopover();
2284
- }
2285
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PopoverTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
2286
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.15", type: PopoverTriggerDirective, isStandalone: true, selector: "[tedi-popover-trigger]", inputs: { underline: { classPropertyName: "underline", publicName: "underline", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "tabindex": "0", "role": "button", "aria-haspopup": "dialog" }, listeners: { "click": "onClick()" }, properties: { "id": "popover.containerId() + '_trigger'", "attr.aria-expanded": "popover.floatUiComponent().state", "attr.aria-controls": "popover.containerId()", "class.tedi-popover-trigger__text": "underline()" } }, ngImport: i0 });
2287
- }
2288
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PopoverTriggerDirective, decorators: [{
2289
- type: Directive,
2290
- args: [{
2291
- standalone: true,
2292
- selector: "[tedi-popover-trigger]",
2293
- host: {
2294
- tabindex: "0",
2295
- role: "button",
2296
- "aria-haspopup": "dialog",
2297
- "[id]": "popover.containerId() + '_trigger'",
2298
- "[attr.aria-expanded]": "popover.floatUiComponent().state",
2299
- "[attr.aria-controls]": "popover.containerId()",
2300
- "[class.tedi-popover-trigger__text]": "underline()",
2301
- },
2302
- }]
2303
- }], propDecorators: { onClick: [{
2304
- type: HostListener,
2305
- args: ["click"]
2306
- }] } });
2307
-
2308
- function getFocusableElements(container) {
2309
- const selectors = [
2310
- "a[href]",
2311
- "area[href]",
2312
- "input:not([disabled]):not([type='hidden'])",
2313
- "select:not([disabled])",
2314
- "textarea:not([disabled])",
2315
- "button:not([disabled])",
2316
- "summary",
2317
- "iframe",
2318
- "audio[controls]",
2319
- "video[controls]",
2320
- "[contenteditable]:not([contenteditable='false'])",
2321
- "[tabindex]:not([tabindex='-1'])",
2322
- ];
2323
- const elements = Array.from(container.querySelectorAll(selectors.join(",")));
2324
- if (typeof window === "undefined") {
2325
- return elements.filter((el) => el instanceof HTMLElement);
2326
- }
2327
- return elements.filter((el) => {
2328
- if (!(el instanceof HTMLElement))
2329
- return false;
2330
- const style = window.getComputedStyle(el);
2331
- if (style.display === "none" || style.visibility === "hidden")
2332
- return false;
2333
- if (el.hasAttribute("hidden"))
2334
- return false;
2335
- if (el.closest("[inert]"))
2336
- return false;
2337
- const fieldset = el.closest("fieldset[disabled]");
2338
- if (fieldset) {
2339
- const firstLegend = fieldset.querySelector("legend");
2340
- if (!firstLegend || !firstLegend.contains(el))
2341
- return false;
2342
- }
2343
- if (el.tagName !== "SUMMARY") {
2344
- const closedDetails = el.closest("details:not([open])");
2345
- if (closedDetails)
2346
- return false;
2347
- }
2348
- return true;
2349
- });
2350
- }
2351
-
2352
- let popoverTitleId = 0;
2353
- class PopoverContentComponent {
2229
+ class LabelComponent {
2354
2230
  /**
2355
- * The width of the popover. Can be 'none', 'small', 'medium', or 'large'.
2356
- * @default small
2231
+ * Size of the label.
2232
+ * @default default
2357
2233
  */
2358
- maxWidth = input("small");
2234
+ size = input("default");
2359
2235
  /**
2360
- * Heading title of the content
2236
+ * Whether label is required.
2237
+ * @default false
2361
2238
  */
2362
- title = input("");
2239
+ required = input(false);
2363
2240
  /**
2364
- * Should content show close button?
2365
- * @default false
2241
+ * Color of the label.
2242
+ * @default secondary
2366
2243
  */
2367
- showClose = input(false);
2368
- popover = inject(PopoverComponent);
2369
- titleId = `popover-title-${popoverTitleId++}`;
2244
+ color = input("secondary");
2370
2245
  classes = computed(() => {
2371
- const classList = [
2372
- "tedi-popover-content",
2373
- `tedi-popover-content--${this.maxWidth()}`,
2374
- ];
2246
+ const classList = ["tedi-label", `tedi-label--${this.color()}`];
2247
+ if (this.size() === "small") {
2248
+ classList.push("tedi-label--small");
2249
+ }
2375
2250
  return classList.join(" ");
2376
2251
  });
2377
- handleClose() {
2378
- this.popover.hidePopover(true);
2379
- }
2380
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PopoverContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2381
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: PopoverContentComponent, isStandalone: true, selector: "tedi-popover-content", inputs: { maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, showClose: { classPropertyName: "showClose", publicName: "showClose", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: "@if (title() && showClose()) {\n <div class=\"tedi-popover-content__head\">\n <h4 class=\"tedi-popover-content__title\" [id]=\"titleId\">{{ title() }}</h4>\n <button tedi-closing-button (click)=\"handleClose()\"></button>\n </div>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n} @else if (showClose()) {\n <div class=\"tedi-popover-content__head\">\n <div>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <button tedi-closing-button size=\"small\" (click)=\"handleClose()\"></button>\n </div>\n} @else if (title()) {\n <h4 [id]=\"titleId\">{{ title() }}</h4>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n} @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", styles: ["tedi-popover{display:block}[tedi-popover-trigger]{cursor:pointer}[tedi-popover-trigger]:focus-visible{outline:var(--borders-02) solid var(--primary-500);outline-offset:var(--borders-01)}float-ui-content .float-ui-container-popover{z-index:var(--z-index-dropdown);padding:0;border:var(--borders-01) solid var(--popover-border);border-radius:var(--popover-radius-rounded);box-shadow:0 1px 5px 0 var(--tedi-alpha-20, rgba(0, 0, 0, .2))}float-ui-content .float-ui-container-popover--arrow .float-ui-arrow{z-index:var(--z-index-dropdown);width:24px;height:24px;background:var(--popover-background);filter:drop-shadow(0 0 5px var(--tedi-alpha-20));clip-path:inset(0 -5px -5px 0)}float-ui-content .float-ui-container-popover--border{border-radius:var(--popover-radius-rounded)}float-ui-content .float-ui-container-popover--border .float-ui-arrow{width:18px;height:18px;border-right:4px solid var(--header-popover-border-top);border-bottom:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=top]{border-bottom:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=top] .float-ui-arrow{bottom:-12px!important}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=bottom]{border-top:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=bottom] .float-ui-arrow{top:-12px!important}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=left]{border-right:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=left] .float-ui-arrow{right:-12px!important}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=right]{border-left:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=right] .float-ui-arrow{left:-12px!important}float-ui-content .float-ui-container-popover[data-float-ui-placement=top]{transform:translateY(-4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=bottom]{transform:translateY(4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=bottom] .float-ui-arrow{transform:rotate(-135deg)}float-ui-content .float-ui-container-popover[data-float-ui-placement=left]{transform:translate(-4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=left] .float-ui-arrow{transform:rotate(-45deg)}float-ui-content .float-ui-container-popover[data-float-ui-placement=right]{transform:translate(4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=right] .float-ui-arrow{transform:rotate(135deg)}.tedi-popover-trigger__text{text-decoration:underline dashed var(--general-border-secondary);text-underline-offset:.5em}.tedi-popover-content{position:relative;display:flex;flex-direction:column;gap:var(--layout-grid-gutters-08);max-width:calc(100dvw - 1rem);padding:var(--popover-padding-sm);color:var(--popover-text);background:var(--popover-background);border-radius:var(--popover-radius-rounded)}.tedi-popover-content--none{width:none}.tedi-popover-content--small{width:240px}.tedi-popover-content--medium{width:480px}.tedi-popover-content--large{width:840px}.tedi-popover-content__head{display:flex;gap:var(--layout-grid-gutters-08);justify-content:space-between}.tedi-popover-content__head>div{display:flex;flex:1 1 0;flex-direction:column;gap:var(--layout-grid-gutters-08);min-width:0}.tedi-popover-content__title{align-self:center}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ClosingButtonComponent, selector: "button[tedi-closing-button]", inputs: ["size", "iconSize", "ariaLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2252
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2253
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: LabelComponent, isStandalone: true, selector: "[tedi-label]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: "<ng-content />\n@if (required()) {\n <span class=\"tedi-label--required\" aria-hidden=\"true\">*</span>\n <span class=\"sr-only\">, {{ 'required' | tediTranslate }}</span>\n}\n", styles: [".tedi-label{font-family:var(--family-default);font-size:var(--body-regular-size)}.tedi-label--small{font-size:var(--body-small-regular-size)}.tedi-label--required{margin-left:var(--content-label-inner-spacing-x);color:var(--form-general-feedback-error-border)}.tedi-label--primary{color:var(--general-text-primary)}.tedi-label--secondary{color:var(--general-text-secondary)}.tedi-label:has(input[disabled]),.tedi-label[for]:has(+input[disabled]){color:var(--general-text-disabled)}\n"], dependencies: [{ kind: "pipe", type: TediTranslationPipe, name: "tediTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2382
2254
  }
2383
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PopoverContentComponent, decorators: [{
2255
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LabelComponent, decorators: [{
2384
2256
  type: Component,
2385
- args: [{ standalone: true, selector: "tedi-popover-content", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgTemplateOutlet, ClosingButtonComponent], host: {
2257
+ args: [{ selector: "[tedi-label]", standalone: true, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
2258
+ TediTranslationPipe
2259
+ ], host: {
2386
2260
  "[class]": "classes()",
2387
- }, template: "@if (title() && showClose()) {\n <div class=\"tedi-popover-content__head\">\n <h4 class=\"tedi-popover-content__title\" [id]=\"titleId\">{{ title() }}</h4>\n <button tedi-closing-button (click)=\"handleClose()\"></button>\n </div>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n} @else if (showClose()) {\n <div class=\"tedi-popover-content__head\">\n <div>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <button tedi-closing-button size=\"small\" (click)=\"handleClose()\"></button>\n </div>\n} @else if (title()) {\n <h4 [id]=\"titleId\">{{ title() }}</h4>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n} @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", styles: ["tedi-popover{display:block}[tedi-popover-trigger]{cursor:pointer}[tedi-popover-trigger]:focus-visible{outline:var(--borders-02) solid var(--primary-500);outline-offset:var(--borders-01)}float-ui-content .float-ui-container-popover{z-index:var(--z-index-dropdown);padding:0;border:var(--borders-01) solid var(--popover-border);border-radius:var(--popover-radius-rounded);box-shadow:0 1px 5px 0 var(--tedi-alpha-20, rgba(0, 0, 0, .2))}float-ui-content .float-ui-container-popover--arrow .float-ui-arrow{z-index:var(--z-index-dropdown);width:24px;height:24px;background:var(--popover-background);filter:drop-shadow(0 0 5px var(--tedi-alpha-20));clip-path:inset(0 -5px -5px 0)}float-ui-content .float-ui-container-popover--border{border-radius:var(--popover-radius-rounded)}float-ui-content .float-ui-container-popover--border .float-ui-arrow{width:18px;height:18px;border-right:4px solid var(--header-popover-border-top);border-bottom:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=top]{border-bottom:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=top] .float-ui-arrow{bottom:-12px!important}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=bottom]{border-top:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=bottom] .float-ui-arrow{top:-12px!important}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=left]{border-right:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=left] .float-ui-arrow{right:-12px!important}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=right]{border-left:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=right] .float-ui-arrow{left:-12px!important}float-ui-content .float-ui-container-popover[data-float-ui-placement=top]{transform:translateY(-4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=bottom]{transform:translateY(4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=bottom] .float-ui-arrow{transform:rotate(-135deg)}float-ui-content .float-ui-container-popover[data-float-ui-placement=left]{transform:translate(-4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=left] .float-ui-arrow{transform:rotate(-45deg)}float-ui-content .float-ui-container-popover[data-float-ui-placement=right]{transform:translate(4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=right] .float-ui-arrow{transform:rotate(135deg)}.tedi-popover-trigger__text{text-decoration:underline dashed var(--general-border-secondary);text-underline-offset:.5em}.tedi-popover-content{position:relative;display:flex;flex-direction:column;gap:var(--layout-grid-gutters-08);max-width:calc(100dvw - 1rem);padding:var(--popover-padding-sm);color:var(--popover-text);background:var(--popover-background);border-radius:var(--popover-radius-rounded)}.tedi-popover-content--none{width:none}.tedi-popover-content--small{width:240px}.tedi-popover-content--medium{width:480px}.tedi-popover-content--large{width:840px}.tedi-popover-content__head{display:flex;gap:var(--layout-grid-gutters-08);justify-content:space-between}.tedi-popover-content__head>div{display:flex;flex:1 1 0;flex-direction:column;gap:var(--layout-grid-gutters-08);min-width:0}.tedi-popover-content__title{align-self:center}\n"] }]
2261
+ }, template: "<ng-content />\n@if (required()) {\n <span class=\"tedi-label--required\" aria-hidden=\"true\">*</span>\n <span class=\"sr-only\">, {{ 'required' | tediTranslate }}</span>\n}\n", styles: [".tedi-label{font-family:var(--family-default);font-size:var(--body-regular-size)}.tedi-label--small{font-size:var(--body-small-regular-size)}.tedi-label--required{margin-left:var(--content-label-inner-spacing-x);color:var(--form-general-feedback-error-border)}.tedi-label--primary{color:var(--general-text-primary)}.tedi-label--secondary{color:var(--general-text-secondary)}.tedi-label:has(input[disabled]),.tedi-label[for]:has(+input[disabled]){color:var(--general-text-disabled)}\n"] }]
2388
2262
  }] });
2389
2263
 
2390
- class PopoverComponent {
2264
+ class NumberFieldComponent {
2391
2265
  /**
2392
- * The position of the popover relative to the trigger element.
2393
- * @default top
2266
+ * The unique identifier for the input element that this label is associated with. This ID should match the input element's id attribute to ensure accessibility.
2394
2267
  */
2395
- position = input("top");
2268
+ inputId = input.required();
2396
2269
  /**
2397
- * Should position flip to opposite direction when overflowing screen?
2398
- * @default false
2270
+ * The text content of the label that describes the input field.
2399
2271
  */
2400
- preventOverflow = input(false);
2272
+ label = input();
2401
2273
  /**
2402
- * Is dismissible by clicking outside of content?
2403
- * @default true
2274
+ * Value of the input field. Supports two-way binding, use with form controls.
2404
2275
  */
2405
- dismissible = input(true);
2276
+ value = model(0);
2406
2277
  /**
2407
- * Does popover content hide on scroll?
2278
+ * Is input disabled?
2408
2279
  * @default false
2409
2280
  */
2410
- hideOnScroll = input(false);
2281
+ disabled = input(false);
2282
+ /**
2283
+ * Indicates whether the input field is required. If set to true, the required indicator will be displayed next to the label.
2284
+ * @default false
2285
+ */
2286
+ required = input(false);
2287
+ /**
2288
+ * Minimum allowed value. Disables decrementing below this value and restricts manual input.
2289
+ */
2290
+ min = input();
2291
+ /**
2292
+ * Maximum allowed value. Disables incrementing above this value and restricts manual input.
2293
+ */
2294
+ max = input();
2295
+ /**
2296
+ * Step size for incrementing or decrementing the value.
2297
+ * @default 1
2298
+ */
2299
+ step = input(1);
2300
+ /**
2301
+ * Size of the number field.
2302
+ * @default default
2303
+ */
2304
+ size = input("default");
2305
+ /**
2306
+ * Marks the field as invalid for validation purposes.
2307
+ * @default false
2308
+ */
2309
+ invalid = input(false);
2310
+ /**
2311
+ * Text displayed after the input value, typically a unit.
2312
+ */
2313
+ suffix = input();
2314
+ /**
2315
+ * FeedbackText component inputs.
2316
+ */
2317
+ feedbackText = input();
2318
+ /**
2319
+ * Is input full width?
2320
+ * @default false
2321
+ */
2322
+ fullWidth = input(false);
2323
+ inputRef;
2324
+ formDisabled = signal(false);
2325
+ onChange = () => { };
2326
+ onTouched = () => { };
2327
+ translationService = inject(TediTranslationService);
2328
+ liveAnnouncer = inject(LiveAnnouncer);
2329
+ isInvalid = computed(() => {
2330
+ const min = this.min();
2331
+ const max = this.max();
2332
+ return (this.invalid() ||
2333
+ Boolean(min !== undefined && this.value() < min) ||
2334
+ Boolean(max !== undefined && this.value() > max));
2335
+ });
2336
+ isDisabled = computed(() => this.disabled() || this.formDisabled());
2337
+ decrementDisabled = computed(() => {
2338
+ const min = this.min();
2339
+ return this.isDisabled() || (min !== undefined && this.value() <= min);
2340
+ });
2341
+ incrementDisabled = computed(() => {
2342
+ const max = this.max();
2343
+ return this.isDisabled() || (max !== undefined && this.value() >= max);
2344
+ });
2345
+ feedbackId = computed(() => this.feedbackText() ? `${this.inputId()}-feedback` : null);
2346
+ writeValue(value) {
2347
+ this.value.set(value ? (isNaN(value) ? 0 : value) : 0);
2348
+ }
2349
+ registerOnChange(fn) {
2350
+ this.onChange = fn;
2351
+ }
2352
+ registerOnTouched(fn) {
2353
+ this.onTouched = fn;
2354
+ }
2355
+ setDisabledState(disabled) {
2356
+ this.formDisabled.set(disabled);
2357
+ }
2358
+ focus() {
2359
+ this.inputRef.nativeElement.focus();
2360
+ }
2361
+ blur() {
2362
+ this.inputRef.nativeElement.blur();
2363
+ this.onTouched();
2364
+ }
2365
+ handleButtonClick(action) {
2366
+ const delta = action === "decrement" ? -1 : 1;
2367
+ const nextValue = this.value() + this.step() * delta;
2368
+ this.value.set(nextValue);
2369
+ this.onChange(nextValue);
2370
+ this.onTouched();
2371
+ this.announceValue(nextValue);
2372
+ }
2373
+ announceValue(value) {
2374
+ this.liveAnnouncer.announce(this.translationService.translate("numberField.quantityUpdated", value), "polite");
2375
+ }
2376
+ handleInputChange(event) {
2377
+ const input = event.target;
2378
+ const value = isNaN(input.valueAsNumber) ? 0 : input.valueAsNumber;
2379
+ if (value !== this.value()) {
2380
+ this.value.set(value);
2381
+ this.onChange(value);
2382
+ }
2383
+ }
2384
+ handleBlur() {
2385
+ this.onTouched();
2386
+ }
2387
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NumberFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2388
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: NumberFieldComponent, isStandalone: true, selector: "tedi-number-field", inputs: { inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, suffix: { classPropertyName: "suffix", publicName: "suffix", isSignal: true, isRequired: false, transformFunction: null }, feedbackText: { classPropertyName: "feedbackText", publicName: "feedbackText", isSignal: true, isRequired: false, transformFunction: null }, fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, providers: [
2389
+ {
2390
+ provide: NG_VALUE_ACCESSOR,
2391
+ useExisting: forwardRef(() => NumberFieldComponent),
2392
+ multi: true,
2393
+ },
2394
+ ], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "@if (label()) {\n <label tedi-label [for]=\"inputId()\" [required]=\"required()\" [size]=\"size()\">\n {{ label() }}\n </label>\n}\n<div\n [class]=\"{\n 'tedi-number-field': true,\n 'tedi-number-field--invalid': isInvalid(),\n 'tedi-number-field--disabled': isDisabled(),\n }\"\n>\n <button\n tedi-button\n type=\"button\"\n variant=\"secondary\"\n [class]=\"{\n 'tedi-number-field__button': true,\n 'tedi-number-field__button--decrement': true,\n 'tedi-number-field__button--small': size() === 'small',\n }\"\n [disabled]=\"decrementDisabled()\"\n [attr.aria-label]=\"'numberField.decrement' | tediTranslate: step()\"\n (click)=\"handleButtonClick('decrement')\"\n >\n <tedi-icon name=\"remove\" [size]=\"18\" />\n </button>\n <div\n [class]=\"{\n 'tedi-number-field__input-wrapper': true,\n 'tedi-number-field__input-wrapper--small': size() === 'small',\n 'tedi-number-field__input-wrapper--disabled': isDisabled(),\n 'tedi-number-field__input-wrapper--with-suffix': suffix(),\n 'tedi-number-field__input-wrapper--full-width': fullWidth(),\n }\"\n (click)=\"focus()\"\n >\n <input\n #inputElement\n [id]=\"inputId()\"\n type=\"number\"\n inputmode=\"numeric\"\n class=\"tedi-number-field__input\"\n [value]=\"value()\"\n [disabled]=\"isDisabled()\"\n [required]=\"required()\"\n [attr.min]=\"min()\"\n [attr.max]=\"max()\"\n [attr.step]=\"step()\"\n [attr.aria-invalid]=\"isInvalid()\"\n [attr.aria-describedby]=\"feedbackId()\"\n (input)=\"handleInputChange($event)\"\n (blur)=\"handleBlur()\"\n />\n @if (suffix()) {\n <small tedi-text color=\"tertiary\" class=\"tedi-number-field__suffix\">\n {{ suffix() }}\n </small>\n }\n </div>\n <button\n tedi-button\n type=\"button\"\n variant=\"secondary\"\n [class]=\"{\n 'tedi-number-field__button': true,\n 'tedi-number-field__button--increment': true,\n 'tedi-number-field__button--small': size() === 'small',\n }\"\n [disabled]=\"incrementDisabled()\"\n [attr.aria-label]=\"'numberField.increment' | tediTranslate: step()\"\n (click)=\"handleButtonClick('increment')\"\n >\n <tedi-icon name=\"add\" [size]=\"18\" />\n </button>\n</div>\n@if (feedbackText(); as feedback) {\n <tedi-feedback-text\n [attr.id]=\"feedbackId()\"\n [text]=\"feedback.text\"\n [type]=\"feedback.type\"\n [position]=\"feedback.position\"\n />\n}\n", styles: [".tedi-number-field{display:flex}.tedi-number-field:hover:not(.tedi-number-field--disabled) .tedi-number-field__button:not(:disabled),.tedi-number-field:hover:not(.tedi-number-field--disabled) .tedi-number-field__input-wrapper:not(:disabled){border-color:var(--form-input-border-hover)}.tedi-number-field .tedi-number-field__button{--general-icon-primary: currentcolor;width:var(--form-field-height);height:var(--form-field-height);border:var(--borders-01) solid var(--form-input-border-default)}.tedi-number-field .tedi-number-field__button:disabled{background-color:var(--form-input-background-disabled);border:var(--borders-01) solid var(--form-input-border-disabled);opacity:.5}.tedi-number-field .tedi-number-field__button--decrement{z-index:2;margin-right:calc(-1 * var(--borders-01));border-radius:0;border-top-left-radius:var(--button-radius-sm);border-bottom-left-radius:var(--button-radius-sm)}.tedi-number-field .tedi-number-field__button--increment{margin-left:calc(-1 * var(--borders-01));border-radius:0;border-top-right-radius:var(--button-radius-sm);border-bottom-right-radius:var(--button-radius-sm)}.tedi-number-field .tedi-number-field__button--small{width:var(--form-field-height-sm);height:var(--form-field-height-sm)}.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__button,.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__button:disabled,.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__button:hover,.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__input-wrapper{border-color:var(--form-general-feedback-error-border)}.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__input-wrapper:focus-within{outline-color:var(--form-general-feedback-error-border)}.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__input-wrapper:active{z-index:2;outline:none;border-color:var(--form-general-feedback-error-border);border-radius:0}.tedi-number-field--disabled .tedi-number-field__button,.tedi-number-field--disabled .tedi-number-field__button:disabled,.tedi-number-field--disabled .tedi-number-field__input-wrapper{background-color:var(--form-input-background-disabled);border-color:var(--form-input-border-disabled)}.tedi-number-field--disabled .tedi-number-field__input-wrapper{background-color:var(--form-input-background-disabled);opacity:.5}.tedi-number-field--disabled .tedi-number-field__input-wrapper .tedi-number-field__input{background-color:var(--form-input-background-disabled)}.tedi-number-field__input-wrapper{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--form-field-inner-spacing-sm);align-items:stretch;width:var(--form-number-input-min-width);height:var(--form-field-height);padding-right:var(--form-field-padding-y-3-default);padding-left:var(--form-field-padding-y-3-default);background-color:var(--form-input-background-default);border:var(--borders-01) solid var(--form-input-border-default)}.tedi-number-field__input-wrapper:focus-within{z-index:2;outline:calc(2 * var(--borders-01)) solid var(--form-input-border-active);outline-offset:var(--borders-01);border-color:var(--form-input-border-active);border-radius:var(--button-radius-sm)}.tedi-number-field__input-wrapper:active:not(.tedi-number-field__input-wrapper--disabled){z-index:2;outline:none;border-color:var(--form-input-border-active);border-radius:0}.tedi-number-field__input-wrapper--small{height:var(--form-field-height-sm)}.tedi-number-field__input-wrapper--with-suffix .tedi-number-field__input{grid-column:span 1;text-align:right}.tedi-number-field__input-wrapper--with-suffix .tedi-number-field__suffix{align-self:center;text-align:left;-webkit-user-select:none;user-select:none}.tedi-number-field__input-wrapper--full-width{width:100%}.tedi-number-field__input{grid-column:span 2;width:100%;font-size:var(--heading-h6-size);color:var(--form-input-text-filled);text-align:center;outline:none;background-color:var(--form-input-background-default);border:0;border-radius:0}.tedi-number-field__input::-webkit-outer-spin-button,.tedi-number-field__input::-webkit-inner-spin-button{appearance:none}.tedi-number-field__input[type=number]{appearance:textfield}\n"], dependencies: [{ kind: "component", type: LabelComponent, selector: "[tedi-label]", inputs: ["size", "required", "color"] }, { kind: "component", type: ButtonComponent, selector: "[tedi-button]", inputs: ["variant", "size"] }, { kind: "component", type: IconComponent, selector: "tedi-icon", inputs: ["name", "size", "color", "background", "variant", "type", "label"] }, { kind: "component", type: TextComponent, selector: "[tedi-text]", inputs: ["modifiers", "color"] }, { kind: "component", type: FeedbackTextComponent, selector: "tedi-feedback-text", inputs: ["text", "type", "position"] }, { kind: "pipe", type: TediTranslationPipe, name: "tediTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2395
+ }
2396
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NumberFieldComponent, decorators: [{
2397
+ type: Component,
2398
+ args: [{ selector: "tedi-number-field", standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [
2399
+ LabelComponent,
2400
+ ButtonComponent,
2401
+ IconComponent,
2402
+ TextComponent,
2403
+ FeedbackTextComponent,
2404
+ TediTranslationPipe,
2405
+ ], providers: [
2406
+ {
2407
+ provide: NG_VALUE_ACCESSOR,
2408
+ useExisting: forwardRef(() => NumberFieldComponent),
2409
+ multi: true,
2410
+ },
2411
+ ], template: "@if (label()) {\n <label tedi-label [for]=\"inputId()\" [required]=\"required()\" [size]=\"size()\">\n {{ label() }}\n </label>\n}\n<div\n [class]=\"{\n 'tedi-number-field': true,\n 'tedi-number-field--invalid': isInvalid(),\n 'tedi-number-field--disabled': isDisabled(),\n }\"\n>\n <button\n tedi-button\n type=\"button\"\n variant=\"secondary\"\n [class]=\"{\n 'tedi-number-field__button': true,\n 'tedi-number-field__button--decrement': true,\n 'tedi-number-field__button--small': size() === 'small',\n }\"\n [disabled]=\"decrementDisabled()\"\n [attr.aria-label]=\"'numberField.decrement' | tediTranslate: step()\"\n (click)=\"handleButtonClick('decrement')\"\n >\n <tedi-icon name=\"remove\" [size]=\"18\" />\n </button>\n <div\n [class]=\"{\n 'tedi-number-field__input-wrapper': true,\n 'tedi-number-field__input-wrapper--small': size() === 'small',\n 'tedi-number-field__input-wrapper--disabled': isDisabled(),\n 'tedi-number-field__input-wrapper--with-suffix': suffix(),\n 'tedi-number-field__input-wrapper--full-width': fullWidth(),\n }\"\n (click)=\"focus()\"\n >\n <input\n #inputElement\n [id]=\"inputId()\"\n type=\"number\"\n inputmode=\"numeric\"\n class=\"tedi-number-field__input\"\n [value]=\"value()\"\n [disabled]=\"isDisabled()\"\n [required]=\"required()\"\n [attr.min]=\"min()\"\n [attr.max]=\"max()\"\n [attr.step]=\"step()\"\n [attr.aria-invalid]=\"isInvalid()\"\n [attr.aria-describedby]=\"feedbackId()\"\n (input)=\"handleInputChange($event)\"\n (blur)=\"handleBlur()\"\n />\n @if (suffix()) {\n <small tedi-text color=\"tertiary\" class=\"tedi-number-field__suffix\">\n {{ suffix() }}\n </small>\n }\n </div>\n <button\n tedi-button\n type=\"button\"\n variant=\"secondary\"\n [class]=\"{\n 'tedi-number-field__button': true,\n 'tedi-number-field__button--increment': true,\n 'tedi-number-field__button--small': size() === 'small',\n }\"\n [disabled]=\"incrementDisabled()\"\n [attr.aria-label]=\"'numberField.increment' | tediTranslate: step()\"\n (click)=\"handleButtonClick('increment')\"\n >\n <tedi-icon name=\"add\" [size]=\"18\" />\n </button>\n</div>\n@if (feedbackText(); as feedback) {\n <tedi-feedback-text\n [attr.id]=\"feedbackId()\"\n [text]=\"feedback.text\"\n [type]=\"feedback.type\"\n [position]=\"feedback.position\"\n />\n}\n", styles: [".tedi-number-field{display:flex}.tedi-number-field:hover:not(.tedi-number-field--disabled) .tedi-number-field__button:not(:disabled),.tedi-number-field:hover:not(.tedi-number-field--disabled) .tedi-number-field__input-wrapper:not(:disabled){border-color:var(--form-input-border-hover)}.tedi-number-field .tedi-number-field__button{--general-icon-primary: currentcolor;width:var(--form-field-height);height:var(--form-field-height);border:var(--borders-01) solid var(--form-input-border-default)}.tedi-number-field .tedi-number-field__button:disabled{background-color:var(--form-input-background-disabled);border:var(--borders-01) solid var(--form-input-border-disabled);opacity:.5}.tedi-number-field .tedi-number-field__button--decrement{z-index:2;margin-right:calc(-1 * var(--borders-01));border-radius:0;border-top-left-radius:var(--button-radius-sm);border-bottom-left-radius:var(--button-radius-sm)}.tedi-number-field .tedi-number-field__button--increment{margin-left:calc(-1 * var(--borders-01));border-radius:0;border-top-right-radius:var(--button-radius-sm);border-bottom-right-radius:var(--button-radius-sm)}.tedi-number-field .tedi-number-field__button--small{width:var(--form-field-height-sm);height:var(--form-field-height-sm)}.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__button,.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__button:disabled,.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__button:hover,.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__input-wrapper{border-color:var(--form-general-feedback-error-border)}.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__input-wrapper:focus-within{outline-color:var(--form-general-feedback-error-border)}.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__input-wrapper:active{z-index:2;outline:none;border-color:var(--form-general-feedback-error-border);border-radius:0}.tedi-number-field--disabled .tedi-number-field__button,.tedi-number-field--disabled .tedi-number-field__button:disabled,.tedi-number-field--disabled .tedi-number-field__input-wrapper{background-color:var(--form-input-background-disabled);border-color:var(--form-input-border-disabled)}.tedi-number-field--disabled .tedi-number-field__input-wrapper{background-color:var(--form-input-background-disabled);opacity:.5}.tedi-number-field--disabled .tedi-number-field__input-wrapper .tedi-number-field__input{background-color:var(--form-input-background-disabled)}.tedi-number-field__input-wrapper{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--form-field-inner-spacing-sm);align-items:stretch;width:var(--form-number-input-min-width);height:var(--form-field-height);padding-right:var(--form-field-padding-y-3-default);padding-left:var(--form-field-padding-y-3-default);background-color:var(--form-input-background-default);border:var(--borders-01) solid var(--form-input-border-default)}.tedi-number-field__input-wrapper:focus-within{z-index:2;outline:calc(2 * var(--borders-01)) solid var(--form-input-border-active);outline-offset:var(--borders-01);border-color:var(--form-input-border-active);border-radius:var(--button-radius-sm)}.tedi-number-field__input-wrapper:active:not(.tedi-number-field__input-wrapper--disabled){z-index:2;outline:none;border-color:var(--form-input-border-active);border-radius:0}.tedi-number-field__input-wrapper--small{height:var(--form-field-height-sm)}.tedi-number-field__input-wrapper--with-suffix .tedi-number-field__input{grid-column:span 1;text-align:right}.tedi-number-field__input-wrapper--with-suffix .tedi-number-field__suffix{align-self:center;text-align:left;-webkit-user-select:none;user-select:none}.tedi-number-field__input-wrapper--full-width{width:100%}.tedi-number-field__input{grid-column:span 2;width:100%;font-size:var(--heading-h6-size);color:var(--form-input-text-filled);text-align:center;outline:none;background-color:var(--form-input-background-default);border:0;border-radius:0}.tedi-number-field__input::-webkit-outer-spin-button,.tedi-number-field__input::-webkit-inner-spin-button{appearance:none}.tedi-number-field__input[type=number]{appearance:textfield}\n"] }]
2412
+ }], propDecorators: { inputRef: [{
2413
+ type: ViewChild,
2414
+ args: ["inputElement"]
2415
+ }] } });
2416
+
2417
+ class SpinnerComponent {
2418
+ /**
2419
+ * Size of the spinner in px.
2420
+ * @default 16
2421
+ */
2422
+ size = input(16);
2423
+ /**
2424
+ * Specifies the color theme of the spinner.
2425
+ * The color should meet accessibility standards for color contrast.
2426
+ * @default primary
2427
+ */
2428
+ color = input("primary");
2429
+ /**
2430
+ * Provides a text label for screen readers to announce the spinner's purpose or status.
2431
+ */
2432
+ label = input();
2433
+ sizeConfig = {
2434
+ 10: { strokeWidth: 4.4, r: 19.8 },
2435
+ 16: { strokeWidth: 5.5, r: 19.25 },
2436
+ 48: { strokeWidth: 3.6667, r: 20.1667 },
2437
+ };
2438
+ strokeWidth = computed(() => this.sizeConfig[this.size()].strokeWidth);
2439
+ r = computed(() => this.sizeConfig[this.size()].r);
2440
+ classes = computed(() => {
2441
+ const classList = [
2442
+ "tedi-spinner",
2443
+ `tedi-spinner--size-${this.size()}`,
2444
+ `tedi-spinner--color-${this.color()}`,
2445
+ ];
2446
+ return classList.join(" ");
2447
+ });
2448
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2449
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.15", type: SpinnerComponent, isStandalone: true, selector: "tedi-spinner", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "status", "aria-live": "polite" }, properties: { "class": "classes()", "attr.aria-label": "label() ? label() : null", "attr.aria-hidden": "!label()" } }, ngImport: i0, template: "<svg viewBox=\"0 0 44 44\" aria-hidden=\"true\">\n <circle\n class=\"tedi-spinner--inner\"\n cx=\"22\"\n cy=\"22\"\n [attr.r]=\"r()\"\n fill=\"none\"\n ></circle>\n</svg>", styles: [".tedi-spinner{display:flex;width:calc(var(--tedi-spinner-size, 16) * 1rem / 16);height:calc(var(--tedi-spinner-size, 16) * 1rem / 16);animation:1.4s linear 0s infinite normal none running tedi-spinner-outer}.tedi-spinner--inner{stroke-width:var(--tedi-spinner-stroke-width);stroke-dasharray:80,200;stroke-dashoffset:0;animation:1.4s ease-in-out 0s infinite normal none running tedi-spinner-inner}@media (prefers-reduced-motion: reduce){.tedi-spinner--inner{animation:none}}.tedi-spinner--color-primary{stroke:var(--loader-spinner-color-primary)}.tedi-spinner--color-secondary{stroke:var(--loader-spinner-color-secondary)}.tedi-spinner--size-10{--tedi-spinner-size: 10;--tedi-spinner-stroke-width: 4.4}.tedi-spinner--size-16{--tedi-spinner-size: 16;--tedi-spinner-stroke-width: 5.5}.tedi-spinner--size-48{--tedi-spinner-size: 48;--tedi-spinner-stroke-width: 3.6666666667}@media (prefers-reduced-motion: reduce){.tedi-spinner{animation:none}}@keyframes tedi-spinner-outer{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes tedi-spinner-inner{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:100,200;stroke-dashoffset:-15}to{stroke-dasharray:100,200;stroke-dashoffset:-125}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2450
+ }
2451
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SpinnerComponent, decorators: [{
2452
+ type: Component,
2453
+ args: [{ selector: "tedi-spinner", standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
2454
+ "[class]": "classes()",
2455
+ "role": "status",
2456
+ "aria-live": "polite",
2457
+ "[attr.aria-label]": "label() ? label() : null",
2458
+ "[attr.aria-hidden]": "!label()"
2459
+ }, template: "<svg viewBox=\"0 0 44 44\" aria-hidden=\"true\">\n <circle\n class=\"tedi-spinner--inner\"\n cx=\"22\"\n cy=\"22\"\n [attr.r]=\"r()\"\n fill=\"none\"\n ></circle>\n</svg>", styles: [".tedi-spinner{display:flex;width:calc(var(--tedi-spinner-size, 16) * 1rem / 16);height:calc(var(--tedi-spinner-size, 16) * 1rem / 16);animation:1.4s linear 0s infinite normal none running tedi-spinner-outer}.tedi-spinner--inner{stroke-width:var(--tedi-spinner-stroke-width);stroke-dasharray:80,200;stroke-dashoffset:0;animation:1.4s ease-in-out 0s infinite normal none running tedi-spinner-inner}@media (prefers-reduced-motion: reduce){.tedi-spinner--inner{animation:none}}.tedi-spinner--color-primary{stroke:var(--loader-spinner-color-primary)}.tedi-spinner--color-secondary{stroke:var(--loader-spinner-color-secondary)}.tedi-spinner--size-10{--tedi-spinner-size: 10;--tedi-spinner-stroke-width: 4.4}.tedi-spinner--size-16{--tedi-spinner-size: 16;--tedi-spinner-stroke-width: 5.5}.tedi-spinner--size-48{--tedi-spinner-size: 48;--tedi-spinner-stroke-width: 3.6666666667}@media (prefers-reduced-motion: reduce){.tedi-spinner{animation:none}}@keyframes tedi-spinner-outer{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes tedi-spinner-inner{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:100,200;stroke-dashoffset:-15}to{stroke-dasharray:100,200;stroke-dashoffset:-125}}\n"] }]
2460
+ }] });
2461
+
2462
+ class TagComponent {
2463
+ idGenerator = inject(_IdGenerator);
2464
+ uniqueId = this.idGenerator.getId('tedi-tag');
2465
+ /**
2466
+ * Whether the tag is in loading state.
2467
+ * When true, a spinner will be displayed inside the tag.
2468
+ * @default false
2469
+ */
2470
+ loading = input(false);
2471
+ /**
2472
+ * Whether the tag can be closed.
2473
+ * When true, a close button will be displayed that emits the 'closed' event when clicked.
2474
+ * @default false
2475
+ */
2476
+ closable = input(false);
2477
+ /**
2478
+ * The visual style of the tag.
2479
+ * Possible values: 'primary', 'secondary', 'danger'
2480
+ * @default "primary"
2481
+ */
2482
+ type = input("primary");
2483
+ /**
2484
+ * Event emitted when the close button is clicked.
2485
+ */
2486
+ closed = output();
2487
+ classes = computed(() => {
2488
+ const classList = [];
2489
+ if (this.type()) {
2490
+ classList.push(`tedi-tag--${this.type()}`);
2491
+ }
2492
+ return classList.join(" ");
2493
+ });
2494
+ handleClose(event) {
2495
+ this.closed.emit(event);
2496
+ }
2497
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TagComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2498
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TagComponent, isStandalone: true, selector: "tedi-tag", inputs: { loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, closable: { classPropertyName: "closable", publicName: "closable", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed" }, host: { properties: { "class.tedi-tag": "true", "class.tedi-tag--loading": "loading()", "class.tedi-tag--closable": "closable()", "class": "classes()" } }, ngImport: i0, template: "@if (type() === \"danger\") {\n <span class=\"tedi-tag__icon-wrapper\">\n <tedi-icon name=\"error\" color=\"danger\" [size]=\"16\" />\n </span>\n}\n\n<span class=\"tedi-tag__content\" [attr.id]=\"uniqueId\">\n <ng-content />\n</span>\n\n@if (loading()) {\n <span class=\"tedi-tag__spinner-wrapper\">\n <tedi-spinner [size]=\"48\" />\n </span>\n} @else if (closable()) {\n <button\n type=\"button\"\n tedi-closing-button\n size=\"small\"\n [iconSize]=\"18\"\n (click)=\"handleClose($event)\"\n [attr.aria-describedby]=\"uniqueId\"\n [ariaLabel]=\"'remove' | tediTranslate\"\n >\n </button>\n}\n", styles: [".tedi-tag{--_background-color: var(--tag-primary-background);--_border-color: var(--tag-primary-border);--_line-height: var(--body-small-regular-line-height);display:inline-flex;gap:var(--tag-default-padding-x);align-items:flex-start;padding:0 var(--tag-default-padding-x);font-family:var(--family-default);font-size:var(--body-small-regular-size);font-weight:var(--body-small-regular-weight);line-height:var(--_line-height);color:var(--general-text-primary);background-color:var(--_background-color);border-radius:var(--tag-default-radius);box-shadow:inset 0 0 0 1px var(--_border-color)}.tedi-tag__content{padding:var(--tag-default-padding-y) 0}.tedi-tag__icon-wrapper{line-height:var(--_line-height)}.tedi-tag__spinner-wrapper{display:flex;align-items:center;height:calc(var(--_line-height) + var(--tag-default-padding-y))}.tedi-tag__spinner-wrapper tedi-spinner{--tedi-spinner-size: 12;--tedi-spinner-stroke: 2}.tedi-tag--closable:not(.tedi-tag--loading){padding-right:0}.tedi-tag--closable:not(.tedi-tag--loading) .tedi-closing-button{border-radius:0 var(--button-radius-sm) var(--button-radius-sm) 0}.tedi-tag--secondary{--_background-color: var(--tag-secondary-background);--_border-color: var(--tag-secondary-border)}.tedi-tag--danger{--_background-color: var(--tag-danger-background);--_border-color: var(--tag-danger-border)}\n"], dependencies: [{ kind: "component", type: SpinnerComponent, selector: "tedi-spinner", inputs: ["size", "color", "label"] }, { kind: "component", type: IconComponent, selector: "tedi-icon", inputs: ["name", "size", "color", "background", "variant", "type", "label"] }, { kind: "component", type: ClosingButtonComponent, selector: "button[tedi-closing-button]", inputs: ["size", "iconSize", "ariaLabel"] }, { kind: "pipe", type: TediTranslationPipe, name: "tediTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2499
+ }
2500
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TagComponent, decorators: [{
2501
+ type: Component,
2502
+ args: [{ selector: "tedi-tag", imports: [SpinnerComponent, IconComponent, ClosingButtonComponent, TediTranslationPipe], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
2503
+ "[class.tedi-tag]": "true",
2504
+ "[class.tedi-tag--loading]": "loading()",
2505
+ "[class.tedi-tag--closable]": "closable()",
2506
+ "[class]": "classes()",
2507
+ }, template: "@if (type() === \"danger\") {\n <span class=\"tedi-tag__icon-wrapper\">\n <tedi-icon name=\"error\" color=\"danger\" [size]=\"16\" />\n </span>\n}\n\n<span class=\"tedi-tag__content\" [attr.id]=\"uniqueId\">\n <ng-content />\n</span>\n\n@if (loading()) {\n <span class=\"tedi-tag__spinner-wrapper\">\n <tedi-spinner [size]=\"48\" />\n </span>\n} @else if (closable()) {\n <button\n type=\"button\"\n tedi-closing-button\n size=\"small\"\n [iconSize]=\"18\"\n (click)=\"handleClose($event)\"\n [attr.aria-describedby]=\"uniqueId\"\n [ariaLabel]=\"'remove' | tediTranslate\"\n >\n </button>\n}\n", styles: [".tedi-tag{--_background-color: var(--tag-primary-background);--_border-color: var(--tag-primary-border);--_line-height: var(--body-small-regular-line-height);display:inline-flex;gap:var(--tag-default-padding-x);align-items:flex-start;padding:0 var(--tag-default-padding-x);font-family:var(--family-default);font-size:var(--body-small-regular-size);font-weight:var(--body-small-regular-weight);line-height:var(--_line-height);color:var(--general-text-primary);background-color:var(--_background-color);border-radius:var(--tag-default-radius);box-shadow:inset 0 0 0 1px var(--_border-color)}.tedi-tag__content{padding:var(--tag-default-padding-y) 0}.tedi-tag__icon-wrapper{line-height:var(--_line-height)}.tedi-tag__spinner-wrapper{display:flex;align-items:center;height:calc(var(--_line-height) + var(--tag-default-padding-y))}.tedi-tag__spinner-wrapper tedi-spinner{--tedi-spinner-size: 12;--tedi-spinner-stroke: 2}.tedi-tag--closable:not(.tedi-tag--loading){padding-right:0}.tedi-tag--closable:not(.tedi-tag--loading) .tedi-closing-button{border-radius:0 var(--button-radius-sm) var(--button-radius-sm) 0}.tedi-tag--secondary{--_background-color: var(--tag-secondary-background);--_border-color: var(--tag-secondary-border)}.tedi-tag--danger{--_background-color: var(--tag-danger-background);--_border-color: var(--tag-danger-border)}\n"] }]
2508
+ }] });
2509
+
2510
+ class DropdownItemValueComponent {
2511
+ /**
2512
+ * Type of item value - controls selection indicator
2513
+ * - 'default': No selection indicator
2514
+ * - 'checkbox': Shows checkbox (for multiselect)
2515
+ * - 'radio': Shows radio button (for single select listbox)
2516
+ * @default 'default'
2517
+ */
2518
+ type = input("default");
2519
+ /**
2520
+ * Layout: 'horizontal' (side-by-side) or 'vertical' (stacked)
2521
+ * @default 'horizontal'
2522
+ */
2523
+ layout = input("horizontal");
2524
+ /**
2525
+ * Whether the item is selected (controls checkbox/radio state)
2526
+ * @default false
2527
+ */
2528
+ selected = input(false);
2529
+ /**
2530
+ * Whether the checkbox is in indeterminate state
2531
+ * @default false
2532
+ */
2533
+ indeterminate = input(false);
2534
+ /**
2535
+ * Whether the item is disabled
2536
+ * @default false
2537
+ */
2538
+ disabled = input(false);
2539
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DropdownItemValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2540
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: DropdownItemValueComponent, isStandalone: true, selector: "tedi-dropdown-item-value", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.tedi-dropdown-item-value--vertical": "layout() === 'vertical'", "class.tedi-dropdown-item-value--horizontal": "layout() === 'horizontal'", "class.tedi-dropdown-item-value--checkbox": "type() === 'checkbox'", "class.tedi-dropdown-item-value--radio": "type() === 'radio'" }, classAttribute: "tedi-dropdown-item-value" }, ngImport: i0, template: "@if (type() === 'checkbox') {\n <input\n type=\"checkbox\"\n tedi-checkbox\n class=\"tedi-dropdown-item-value__checkbox\"\n [checked]=\"selected()\"\n [indeterminate]=\"indeterminate()\"\n [disabled]=\"disabled()\"\n (click)=\"$event.stopPropagation()\"\n />\n} @else if (type() === 'radio') {\n <input\n type=\"radio\"\n class=\"tedi-dropdown-item-value__radio\"\n [checked]=\"selected()\"\n [disabled]=\"disabled()\"\n (click)=\"$event.stopPropagation()\"\n />\n}\n<ng-content select=\"tedi-icon, [tediIcon]\" />\n<div class=\"tedi-dropdown-item-value__content\">\n <ng-content select=\"tedi-dropdown-item-value-label\" />\n <ng-content select=\"tedi-dropdown-item-value-meta\" />\n</div>\n<ng-content />\n", styles: [".tedi-dropdown-item-value{display:flex;gap:var(--dropdown-item-inner-spacing);align-items:center;width:100%}.tedi-dropdown-item-value--vertical.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--vertical.tedi-dropdown-item-value--radio{align-items:flex-start}.tedi-dropdown-item-value--vertical.tedi-dropdown-item-value--checkbox>input[tedi-checkbox][type=checkbox],.tedi-dropdown-item-value--vertical.tedi-dropdown-item-value--checkbox>input.tedi-dropdown-item-value__radio,.tedi-dropdown-item-value--vertical.tedi-dropdown-item-value--checkbox>.tedi-icon,.tedi-dropdown-item-value--vertical.tedi-dropdown-item-value--radio>input[tedi-checkbox][type=checkbox],.tedi-dropdown-item-value--vertical.tedi-dropdown-item-value--radio>input.tedi-dropdown-item-value__radio,.tedi-dropdown-item-value--vertical.tedi-dropdown-item-value--radio>.tedi-icon{margin-top:calc((var(--body-regular-line-height) - var(--form-checkbox-radio-size-responsive)) / 2)}.tedi-dropdown-item-value--radio{gap:var(--form-checkbox-radio-inner-spacing)}.tedi-dropdown-item-value__checkbox,.tedi-dropdown-item-value__radio{flex-shrink:0;pointer-events:none}.tedi-dropdown-item-value__radio{position:relative;width:var(--form-checkbox-radio-size-responsive);height:var(--form-checkbox-radio-size-responsive);padding:0;margin:0;vertical-align:middle;appearance:none;cursor:pointer;background-color:var(--form-checkbox-radio-default-background-default);border:var(--borders-01) solid var(--form-checkbox-radio-default-border-default);border-radius:var(--form-checkbox-radio-indicator-radius-radio)}.tedi-dropdown-item-value__radio:checked{background-color:var(--form-checkbox-radio-default-background-default);border-color:var(--form-checkbox-radio-default-border-selected)}.tedi-dropdown-item-value__radio:checked:before{position:absolute;top:50%;left:50%;width:calc(var(--form-checkbox-radio-size-responsive) * .625);height:calc(var(--form-checkbox-radio-size-responsive) * .625);content:\"\";background:var(--form-checkbox-radio-default-border-selected);border-radius:50%;transform:translate(-50%,-50%)}.tedi-dropdown-item-value__radio:disabled{cursor:not-allowed;background-color:var(--form-input-background-disabled);border-color:var(--form-input-border-disabled)}.tedi-dropdown-item-value__radio:disabled:checked{background-color:var(--form-checkbox-radio-default-background-default);border-color:var(--form-checkbox-radio-default-border-selected-disabled)}.tedi-dropdown-item-value__radio:disabled:checked:before{background:var(--form-checkbox-radio-default-border-selected-disabled)}.tedi-dropdown-item-value__content{display:flex;flex:1 0 0;min-width:0}.tedi-dropdown-item-value--horizontal .tedi-dropdown-item-value__content{flex-direction:row;gap:var(--dropdown-item-inner-spacing);align-items:center;justify-content:space-between}.tedi-dropdown-item-value--vertical .tedi-dropdown-item-value__content{flex-direction:column;align-items:flex-start}.tedi-dropdown-item-value__label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:var(--body-regular-size);line-height:var(--body-regular-line-height);color:var(--dropdown-item-default-text)}.tedi-dropdown-item-value__meta{flex-shrink:0;font-size:var(--body-small-regular-size);line-height:var(--body-small-regular-line-height);color:var(--general-text-tertiary)}.tedi-dropdown-item-value--vertical .tedi-dropdown-item-value__meta{flex-shrink:1}li[tedi-dropdown-item][aria-selected=true] .tedi-dropdown-item-value__label,li[tedi-dropdown-item][aria-selected=true] .tedi-dropdown-item-value__meta,li[tedi-dropdown-item].tedi-dropdown-item--selected .tedi-dropdown-item-value__label,li[tedi-dropdown-item].tedi-dropdown-item--selected .tedi-dropdown-item-value__meta,.tedi-dropdown-item[aria-selected=true] .tedi-dropdown-item-value__label,.tedi-dropdown-item[aria-selected=true] .tedi-dropdown-item-value__meta,.tedi-dropdown-item.tedi-dropdown-item--selected .tedi-dropdown-item-value__label,.tedi-dropdown-item.tedi-dropdown-item--selected .tedi-dropdown-item-value__meta{color:inherit}li[tedi-dropdown-item]:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]) .tedi-dropdown-item-value__label,li[tedi-dropdown-item]:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]) .tedi-dropdown-item-value__meta,.tedi-dropdown-item:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]) .tedi-dropdown-item-value__label,.tedi-dropdown-item:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]) .tedi-dropdown-item-value__meta{color:inherit}li[tedi-dropdown-item][aria-disabled=true] .tedi-dropdown-item-value__label,li[tedi-dropdown-item][aria-disabled=true] .tedi-dropdown-item-value__meta,li[tedi-dropdown-item].tedi-dropdown-item--disabled .tedi-dropdown-item-value__label,li[tedi-dropdown-item].tedi-dropdown-item--disabled .tedi-dropdown-item-value__meta,.tedi-dropdown-item[aria-disabled=true] .tedi-dropdown-item-value__label,.tedi-dropdown-item[aria-disabled=true] .tedi-dropdown-item-value__meta,.tedi-dropdown-item.tedi-dropdown-item--disabled .tedi-dropdown-item-value__label,.tedi-dropdown-item.tedi-dropdown-item--disabled .tedi-dropdown-item-value__meta{color:inherit}li[tedi-dropdown-item]:has(.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--radio)[aria-selected=true],li[tedi-dropdown-item]:has(.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--radio).tedi-dropdown-item--selected,.tedi-dropdown-item:has(.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--radio)[aria-selected=true],.tedi-dropdown-item:has(.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--radio).tedi-dropdown-item--selected{color:var(--dropdown-item-default-text);background:var(--dropdown-item-default-background)}li[tedi-dropdown-item]:has(.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--radio)[aria-selected=true]:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]),li[tedi-dropdown-item]:has(.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--radio).tedi-dropdown-item--selected:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]),.tedi-dropdown-item:has(.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--radio)[aria-selected=true]:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]),.tedi-dropdown-item:has(.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--radio).tedi-dropdown-item--selected:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]){color:var(--dropdown-item-hover-text);background:var(--dropdown-item-hover-background)}li[tedi-dropdown-item]:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]) .tedi-dropdown-item-value__radio,.tedi-dropdown-item:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]) .tedi-dropdown-item-value__radio{background-color:var(--form-checkbox-radio-default-background-hover);border-color:var(--form-checkbox-radio-default-border-hover);border-width:var(--borders-02)}\n"], dependencies: [{ kind: "component", type: CheckboxComponent, selector: "input[type=checkbox][tedi-checkbox]", inputs: ["size", "invalid"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2541
+ }
2542
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DropdownItemValueComponent, decorators: [{
2543
+ type: Component,
2544
+ args: [{ selector: "tedi-dropdown-item-value", standalone: true, imports: [CheckboxComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
2545
+ class: "tedi-dropdown-item-value",
2546
+ "[class.tedi-dropdown-item-value--vertical]": "layout() === 'vertical'",
2547
+ "[class.tedi-dropdown-item-value--horizontal]": "layout() === 'horizontal'",
2548
+ "[class.tedi-dropdown-item-value--checkbox]": "type() === 'checkbox'",
2549
+ "[class.tedi-dropdown-item-value--radio]": "type() === 'radio'",
2550
+ }, template: "@if (type() === 'checkbox') {\n <input\n type=\"checkbox\"\n tedi-checkbox\n class=\"tedi-dropdown-item-value__checkbox\"\n [checked]=\"selected()\"\n [indeterminate]=\"indeterminate()\"\n [disabled]=\"disabled()\"\n (click)=\"$event.stopPropagation()\"\n />\n} @else if (type() === 'radio') {\n <input\n type=\"radio\"\n class=\"tedi-dropdown-item-value__radio\"\n [checked]=\"selected()\"\n [disabled]=\"disabled()\"\n (click)=\"$event.stopPropagation()\"\n />\n}\n<ng-content select=\"tedi-icon, [tediIcon]\" />\n<div class=\"tedi-dropdown-item-value__content\">\n <ng-content select=\"tedi-dropdown-item-value-label\" />\n <ng-content select=\"tedi-dropdown-item-value-meta\" />\n</div>\n<ng-content />\n", styles: [".tedi-dropdown-item-value{display:flex;gap:var(--dropdown-item-inner-spacing);align-items:center;width:100%}.tedi-dropdown-item-value--vertical.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--vertical.tedi-dropdown-item-value--radio{align-items:flex-start}.tedi-dropdown-item-value--vertical.tedi-dropdown-item-value--checkbox>input[tedi-checkbox][type=checkbox],.tedi-dropdown-item-value--vertical.tedi-dropdown-item-value--checkbox>input.tedi-dropdown-item-value__radio,.tedi-dropdown-item-value--vertical.tedi-dropdown-item-value--checkbox>.tedi-icon,.tedi-dropdown-item-value--vertical.tedi-dropdown-item-value--radio>input[tedi-checkbox][type=checkbox],.tedi-dropdown-item-value--vertical.tedi-dropdown-item-value--radio>input.tedi-dropdown-item-value__radio,.tedi-dropdown-item-value--vertical.tedi-dropdown-item-value--radio>.tedi-icon{margin-top:calc((var(--body-regular-line-height) - var(--form-checkbox-radio-size-responsive)) / 2)}.tedi-dropdown-item-value--radio{gap:var(--form-checkbox-radio-inner-spacing)}.tedi-dropdown-item-value__checkbox,.tedi-dropdown-item-value__radio{flex-shrink:0;pointer-events:none}.tedi-dropdown-item-value__radio{position:relative;width:var(--form-checkbox-radio-size-responsive);height:var(--form-checkbox-radio-size-responsive);padding:0;margin:0;vertical-align:middle;appearance:none;cursor:pointer;background-color:var(--form-checkbox-radio-default-background-default);border:var(--borders-01) solid var(--form-checkbox-radio-default-border-default);border-radius:var(--form-checkbox-radio-indicator-radius-radio)}.tedi-dropdown-item-value__radio:checked{background-color:var(--form-checkbox-radio-default-background-default);border-color:var(--form-checkbox-radio-default-border-selected)}.tedi-dropdown-item-value__radio:checked:before{position:absolute;top:50%;left:50%;width:calc(var(--form-checkbox-radio-size-responsive) * .625);height:calc(var(--form-checkbox-radio-size-responsive) * .625);content:\"\";background:var(--form-checkbox-radio-default-border-selected);border-radius:50%;transform:translate(-50%,-50%)}.tedi-dropdown-item-value__radio:disabled{cursor:not-allowed;background-color:var(--form-input-background-disabled);border-color:var(--form-input-border-disabled)}.tedi-dropdown-item-value__radio:disabled:checked{background-color:var(--form-checkbox-radio-default-background-default);border-color:var(--form-checkbox-radio-default-border-selected-disabled)}.tedi-dropdown-item-value__radio:disabled:checked:before{background:var(--form-checkbox-radio-default-border-selected-disabled)}.tedi-dropdown-item-value__content{display:flex;flex:1 0 0;min-width:0}.tedi-dropdown-item-value--horizontal .tedi-dropdown-item-value__content{flex-direction:row;gap:var(--dropdown-item-inner-spacing);align-items:center;justify-content:space-between}.tedi-dropdown-item-value--vertical .tedi-dropdown-item-value__content{flex-direction:column;align-items:flex-start}.tedi-dropdown-item-value__label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:var(--body-regular-size);line-height:var(--body-regular-line-height);color:var(--dropdown-item-default-text)}.tedi-dropdown-item-value__meta{flex-shrink:0;font-size:var(--body-small-regular-size);line-height:var(--body-small-regular-line-height);color:var(--general-text-tertiary)}.tedi-dropdown-item-value--vertical .tedi-dropdown-item-value__meta{flex-shrink:1}li[tedi-dropdown-item][aria-selected=true] .tedi-dropdown-item-value__label,li[tedi-dropdown-item][aria-selected=true] .tedi-dropdown-item-value__meta,li[tedi-dropdown-item].tedi-dropdown-item--selected .tedi-dropdown-item-value__label,li[tedi-dropdown-item].tedi-dropdown-item--selected .tedi-dropdown-item-value__meta,.tedi-dropdown-item[aria-selected=true] .tedi-dropdown-item-value__label,.tedi-dropdown-item[aria-selected=true] .tedi-dropdown-item-value__meta,.tedi-dropdown-item.tedi-dropdown-item--selected .tedi-dropdown-item-value__label,.tedi-dropdown-item.tedi-dropdown-item--selected .tedi-dropdown-item-value__meta{color:inherit}li[tedi-dropdown-item]:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]) .tedi-dropdown-item-value__label,li[tedi-dropdown-item]:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]) .tedi-dropdown-item-value__meta,.tedi-dropdown-item:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]) .tedi-dropdown-item-value__label,.tedi-dropdown-item:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]) .tedi-dropdown-item-value__meta{color:inherit}li[tedi-dropdown-item][aria-disabled=true] .tedi-dropdown-item-value__label,li[tedi-dropdown-item][aria-disabled=true] .tedi-dropdown-item-value__meta,li[tedi-dropdown-item].tedi-dropdown-item--disabled .tedi-dropdown-item-value__label,li[tedi-dropdown-item].tedi-dropdown-item--disabled .tedi-dropdown-item-value__meta,.tedi-dropdown-item[aria-disabled=true] .tedi-dropdown-item-value__label,.tedi-dropdown-item[aria-disabled=true] .tedi-dropdown-item-value__meta,.tedi-dropdown-item.tedi-dropdown-item--disabled .tedi-dropdown-item-value__label,.tedi-dropdown-item.tedi-dropdown-item--disabled .tedi-dropdown-item-value__meta{color:inherit}li[tedi-dropdown-item]:has(.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--radio)[aria-selected=true],li[tedi-dropdown-item]:has(.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--radio).tedi-dropdown-item--selected,.tedi-dropdown-item:has(.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--radio)[aria-selected=true],.tedi-dropdown-item:has(.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--radio).tedi-dropdown-item--selected{color:var(--dropdown-item-default-text);background:var(--dropdown-item-default-background)}li[tedi-dropdown-item]:has(.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--radio)[aria-selected=true]:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]),li[tedi-dropdown-item]:has(.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--radio).tedi-dropdown-item--selected:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]),.tedi-dropdown-item:has(.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--radio)[aria-selected=true]:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]),.tedi-dropdown-item:has(.tedi-dropdown-item-value--checkbox,.tedi-dropdown-item-value--radio).tedi-dropdown-item--selected:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]){color:var(--dropdown-item-hover-text);background:var(--dropdown-item-hover-background)}li[tedi-dropdown-item]:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]) .tedi-dropdown-item-value__radio,.tedi-dropdown-item:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]) .tedi-dropdown-item-value__radio{background-color:var(--form-checkbox-radio-default-background-hover);border-color:var(--form-checkbox-radio-default-border-hover);border-width:var(--borders-02)}\n"] }]
2551
+ }] });
2552
+
2553
+ class DropdownItemValueLabelComponent {
2554
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DropdownItemValueLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2555
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: DropdownItemValueLabelComponent, isStandalone: true, selector: "tedi-dropdown-item-value-label", host: { classAttribute: "tedi-dropdown-item-value__label" }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2556
+ }
2557
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DropdownItemValueLabelComponent, decorators: [{
2558
+ type: Component,
2559
+ args: [{
2560
+ selector: "tedi-dropdown-item-value-label",
2561
+ template: `<ng-content />`,
2562
+ standalone: true,
2563
+ changeDetection: ChangeDetectionStrategy.OnPush,
2564
+ encapsulation: ViewEncapsulation.None,
2565
+ host: {
2566
+ class: "tedi-dropdown-item-value__label",
2567
+ },
2568
+ }]
2569
+ }] });
2570
+
2571
+ /**
2572
+ * Directive for custom option template rendering in the dropdown.
2573
+ *
2574
+ * @example
2575
+ * ```html
2576
+ * <tedi-select [options]="options">
2577
+ * <ng-template tediSelectOption let-item>
2578
+ * <div class="custom-option">
2579
+ * <strong>{{ item.title }}</strong>
2580
+ * <span>{{ item.description }}</span>
2581
+ * </div>
2582
+ * </ng-template>
2583
+ * </tedi-select>
2584
+ * ```
2585
+ */
2586
+ class SelectOptionTemplateDirective {
2587
+ template = inject(TemplateRef);
2588
+ static ngTemplateContextGuard(_dir, ctx) {
2589
+ return true;
2590
+ }
2591
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SelectOptionTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
2592
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: SelectOptionTemplateDirective, isStandalone: true, selector: "[tediSelectOption]", ngImport: i0 });
2593
+ }
2594
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SelectOptionTemplateDirective, decorators: [{
2595
+ type: Directive,
2596
+ args: [{
2597
+ selector: "[tediSelectOption]",
2598
+ standalone: true,
2599
+ }]
2600
+ }] });
2601
+ /**
2602
+ * Directive for custom value template rendering (selected value display in trigger).
2603
+ * Used for single-select to display custom content like colors, icons, etc.
2604
+ *
2605
+ * @example
2606
+ * ```html
2607
+ * <tedi-select [options]="colors" bindLabel="name" bindValue="id">
2608
+ * <ng-template tediSelectValue let-item>
2609
+ * <div class="color-swatch" [style.background]="item.color"></div>
2610
+ * </ng-template>
2611
+ * </tedi-select>
2612
+ * ```
2613
+ */
2614
+ class SelectValueTemplateDirective {
2615
+ template = inject(TemplateRef);
2616
+ static ngTemplateContextGuard(_dir, ctx) {
2617
+ return true;
2618
+ }
2619
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SelectValueTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
2620
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: SelectValueTemplateDirective, isStandalone: true, selector: "[tediSelectValue]", ngImport: i0 });
2621
+ }
2622
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SelectValueTemplateDirective, decorators: [{
2623
+ type: Directive,
2624
+ args: [{
2625
+ selector: "[tediSelectValue]",
2626
+ standalone: true,
2627
+ }]
2628
+ }] });
2629
+
2630
+ var SpecialOptionControls;
2631
+ (function (SpecialOptionControls) {
2632
+ SpecialOptionControls["SELECT_ALL"] = "\0SELECT_ALL";
2633
+ SpecialOptionControls["SELECT_GROUP"] = "\0SELECT_GROUP_";
2634
+ })(SpecialOptionControls || (SpecialOptionControls = {}));
2635
+ class SelectComponent {
2636
+ /**
2637
+ * Unique identifier for the select input element.
2638
+ * Used for label association and accessibility.
2639
+ */
2640
+ inputId = input.required();
2641
+ /**
2642
+ * Label text displayed above the select.
2643
+ */
2644
+ label = input();
2645
+ /**
2646
+ * Whether the field is required.
2647
+ * @default false
2648
+ */
2649
+ required = input(false);
2650
+ /**
2651
+ * Placeholder text shown when no value is selected.
2652
+ * @default ""
2653
+ */
2654
+ placeholder = input("");
2655
+ /**
2656
+ * Visual state of the input.
2657
+ * @default "default"
2658
+ */
2659
+ state = input("default");
2660
+ /**
2661
+ * Size variant of the select.
2662
+ * @default "default"
2663
+ */
2664
+ size = input("default");
2665
+ /**
2666
+ * Whether to show a clear button when a value is selected.
2667
+ * @default false
2668
+ */
2669
+ clearable = input(false);
2670
+ /**
2671
+ * Element reference used to determine dropdown width.
2672
+ * When null, dropdown width matches the host element.
2673
+ */
2674
+ dropdownWidthRef = input();
2675
+ /**
2676
+ * Configuration for the feedback text displayed below the select.
2677
+ */
2678
+ feedbackText = input();
2679
+ /**
2680
+ * Array of options to display in the dropdown.
2681
+ * Can be an array of objects or primitive values.
2682
+ * @default []
2683
+ */
2684
+ options = input([]);
2685
+ /**
2686
+ * Property name to use as the display label for object items.
2687
+ * @default "label"
2688
+ */
2689
+ bindLabel = input("label");
2690
+ /**
2691
+ * Property name to use as the value for object items.
2692
+ * When undefined, the entire object is used as the value.
2693
+ */
2694
+ bindValue = input(undefined);
2695
+ /**
2696
+ * Whether multiple items can be selected.
2697
+ * @default false
2698
+ */
2699
+ allowMultiple = input(false);
2700
+ /**
2701
+ * Property name or function used to group options.
2702
+ * When a string, uses that property from the item.
2703
+ * When a function, calls it with each item to determine the group.
2704
+ */
2705
+ groupBy = input(undefined);
2706
+ /**
2707
+ * Whether to show a "Select All" option in multiselect mode.
2708
+ * @default false
2709
+ */
2710
+ showSelectAll = input(false);
2711
+ /**
2712
+ * Whether group headers are selectable in multiselect mode.
2713
+ * Clicking a group header selects/deselects all options in that group.
2714
+ * @default false
2715
+ */
2716
+ selectableGroups = input(false);
2717
+ /**
2718
+ * Whether selected tags are individually removable in multiselect mode.
2719
+ * @default false
2720
+ */
2721
+ isTagRemovable = input(false);
2722
+ /**
2723
+ * Whether selected tags wrap to multiple rows in multiselect mode.
2724
+ * When false, overflow tags are hidden and a counter is shown.
2725
+ * @default false
2726
+ */
2727
+ multiRow = input(false);
2728
+ /**
2729
+ * Function used to compare option values for equality.
2730
+ * Used to determine which options are selected.
2731
+ * @default (a, b) => a === b
2732
+ */
2733
+ compareWith = input((a, b) => a === b);
2734
+ /**
2735
+ * Property name to check for disabled state on items.
2736
+ * @default "disabled"
2737
+ */
2738
+ disabledKey = input("disabled");
2739
+ /**
2740
+ * Text displayed when no options match the search term.
2741
+ */
2742
+ noOptionsMessage = input();
2743
+ /**
2744
+ * Maximum height of the dropdown menu in pixels.
2745
+ * When not set, the dropdown height is calculated based on available viewport space.
2746
+ */
2747
+ maxDropdownHeight = input();
2748
+ /**
2749
+ * Layout type for the dropdown options.
2750
+ * - `"menu"` (default): vertical list of options.
2751
+ * - `"grid"`: swatch grid layout for use with custom option templates
2752
+ * (e.g. color or icon pickers). Customizable via `--tedi-swatch-size`,
2753
+ * `--tedi-swatch-gap`, and `--tedi-swatch-columns` CSS properties.
2754
+ * @default "menu"
2755
+ */
2756
+ dropdownType = input('menu');
2757
+ /**
2758
+ * Whether the select has a search input for filtering options.
2759
+ * @default false
2760
+ */
2761
+ searchable = input(false);
2762
+ SpecialOptionControls = SpecialOptionControls;
2763
+ dropdownPositions = [
2764
+ // Open below, expand downward
2765
+ {
2766
+ originX: "start",
2767
+ originY: "bottom",
2768
+ overlayX: "start",
2769
+ overlayY: "top",
2770
+ },
2771
+ // Fallback: open above, expand upward
2772
+ {
2773
+ originX: "start",
2774
+ originY: "top",
2775
+ overlayX: "start",
2776
+ overlayY: "bottom",
2777
+ },
2778
+ ];
2779
+ listboxId = computed(() => this.inputId() + "-listbox");
2780
+ labelId = computed(() => this.inputId() + "-label");
2781
+ isOpen = signal(false);
2782
+ selectedValues = signal([]);
2783
+ disabled = signal(false);
2784
+ dropdownWidth = signal(null);
2785
+ dropdownMaxHeight = signal(null);
2786
+ visibleTagsCount = signal(null);
2787
+ searchTerm = signal("");
2788
+ searchFocused = signal(false);
2789
+ hiddenTagsCount = computed(() => {
2790
+ const visible = this.visibleTagsCount();
2791
+ const total = this.selectedValues().length;
2792
+ if (visible === null || visible >= total)
2793
+ return 0;
2794
+ return total - visible;
2795
+ });
2796
+ listboxRef = viewChild(CdkListbox, { read: ElementRef });
2797
+ cdkListboxRef = viewChild(CdkListbox);
2798
+ triggerRef = viewChild(CdkOverlayOrigin, { read: ElementRef });
2799
+ searchInputRef = viewChild("searchInput");
2800
+ multiselectContainerRef = viewChild("multiselectContainer");
2801
+ tagRefs = viewChildren("tagElement", { read: ElementRef });
2802
+ hostRef = inject(ElementRef);
2803
+ ngZone = inject(NgZone);
2804
+ // Template queries for custom rendering
2805
+ optionTemplate = contentChild(SelectOptionTemplateDirective);
2806
+ valueTemplate = contentChild(SelectValueTemplateDirective);
2807
+ normalizedOptions = computed(() => {
2808
+ const items = this.options();
2809
+ if (!items || items.length === 0)
2810
+ return [];
2811
+ return items.map((item) => {
2812
+ if (typeof item === "string" || typeof item === "number") {
2813
+ return {
2814
+ value: item,
2815
+ label: String(item),
2816
+ disabled: false,
2817
+ group: undefined,
2818
+ };
2819
+ }
2820
+ const itemRecord = item;
2821
+ const bindLabel = this.bindLabel();
2822
+ const bindValue = this.bindValue();
2823
+ const disabledKey = this.disabledKey();
2824
+ const groupBy = this.groupBy();
2825
+ const label = String(itemRecord[bindLabel] ?? item);
2826
+ const value = bindValue ? itemRecord[bindValue] : item;
2827
+ const disabled = !!itemRecord[disabledKey];
2828
+ let group;
2829
+ if (typeof groupBy === "string") {
2830
+ group = itemRecord[groupBy];
2831
+ }
2832
+ else if (typeof groupBy === "function") {
2833
+ group = groupBy(item);
2834
+ }
2835
+ return { ...itemRecord, value, label, disabled, group };
2836
+ });
2837
+ });
2838
+ filteredOptions = computed(() => {
2839
+ const options = this.normalizedOptions();
2840
+ const term = this.searchTerm().toLowerCase().trim();
2841
+ if (!term) {
2842
+ return options;
2843
+ }
2844
+ return options.filter((option) => option.label.toLowerCase().includes(term));
2845
+ });
2846
+ optionGroups = computed(() => {
2847
+ const options = this.filteredOptions();
2848
+ const groups = [];
2849
+ options.forEach((option) => {
2850
+ const groupLabel = option.group ?? "";
2851
+ const existingGroup = groups.find((g) => g.label === groupLabel);
2852
+ if (existingGroup) {
2853
+ existingGroup.options.push(option);
2854
+ }
2855
+ else {
2856
+ groups.push({ label: groupLabel, options: [option] });
2857
+ }
2858
+ });
2859
+ return groups;
2860
+ });
2861
+ selectedOptions = computed(() => {
2862
+ const values = this.selectedValues();
2863
+ const options = this.normalizedOptions();
2864
+ const compareWith = this.compareWith();
2865
+ return options.filter((option) => values.some((val) => compareWith(option.value, val)));
2866
+ });
2867
+ visibleSelectedValues = computed(() => {
2868
+ const selected = this.selectedValues();
2869
+ const filtered = this.filteredOptions();
2870
+ const compareWith = this.compareWith();
2871
+ return selected.filter((val) => filtered.some((opt) => compareWith(opt.value, val)));
2872
+ });
2873
+ selectedLabels = computed(() => {
2874
+ return this.selectedOptions().map((option) => option.label);
2875
+ });
2876
+ showSingleSelectedValue = computed(() => {
2877
+ return !this.searchTerm() && !!this.selectedValues().length && !this.allowMultiple();
2878
+ });
2879
+ allOptionsSelected = computed(() => {
2880
+ const enabledOptions = this.normalizedOptions().filter((o) => !o.disabled);
2881
+ const selected = this.selectedValues();
2882
+ const compareWith = this.compareWith();
2883
+ return (enabledOptions.length > 0 &&
2884
+ enabledOptions.every((option) => selected.some((val) => compareWith(option.value, val))));
2885
+ });
2886
+ ngAfterContentChecked() {
2887
+ this.setDropdownWidth();
2888
+ }
2889
+ ngAfterViewChecked() {
2890
+ if (this.allowMultiple() && !this.multiRow()) {
2891
+ this.calculateVisibleTags();
2892
+ }
2893
+ }
2894
+ onWindowResize() {
2895
+ this.setDropdownWidth();
2896
+ if (this.allowMultiple() && !this.multiRow()) {
2897
+ this.visibleTagsCount.set(null);
2898
+ }
2899
+ }
2900
+ onDocumentClick(event) {
2901
+ if (!this.isOpen())
2902
+ return;
2903
+ const target = event.target;
2904
+ const hostElement = this.hostRef.nativeElement;
2905
+ const listboxElement = this.listboxRef()?.nativeElement;
2906
+ const clickedInside = hostElement.contains(target) || listboxElement?.contains(target);
2907
+ if (!clickedInside) {
2908
+ this.isOpen.set(false);
2909
+ this.searchTerm.set("");
2910
+ }
2911
+ }
2912
+ focusListboxWhenVisible = effect(() => {
2913
+ if (this.isOpen() && this.searchable() && this.searchInputRef()) {
2914
+ this.searchInputRef()?.nativeElement.focus();
2915
+ }
2916
+ else if (this.isOpen() && this.listboxRef() && !this.searchable()) {
2917
+ this.listboxRef()?.nativeElement.focus();
2918
+ }
2919
+ });
2920
+ constructor() {
2921
+ /**
2922
+ * Workaround: Prevent CDK from resetting active item to the first selected
2923
+ * option whenever [cdkListboxValue] changes in multiselect mode. CDK calls
2924
+ * _setNextFocusToSelectedOption inside _setSelection, which moves focus
2925
+ * away from the user's current position after each selection toggle.
2926
+ * Tested against @angular/cdk 19. Revisit when CDK exposes a public API
2927
+ * to control this behavior.
2928
+ */
2929
+ effect(() => {
2930
+ const listbox = this.cdkListboxRef();
2931
+ if (listbox && this.allowMultiple()) {
2932
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2933
+ listbox._setNextFocusToSelectedOption = () => { };
2934
+ }
2935
+ });
2936
+ }
2937
+ resetVisibleTagsOnSelectionChange = effect(() => {
2938
+ this.selectedValues();
2939
+ this.visibleTagsCount.set(null);
2940
+ });
2941
+ toggleIsOpen(close) {
2942
+ if (this.disabled() && !close)
2943
+ return;
2944
+ if (close) {
2945
+ this.closeDropdown();
2946
+ this.focusTrigger();
2947
+ }
2948
+ else {
2949
+ const willOpen = !this.isOpen();
2950
+ if (willOpen) {
2951
+ this.openDropdown();
2952
+ }
2953
+ else {
2954
+ this.dropdownMaxHeight.set(null);
2955
+ this.isOpen.set(false);
2956
+ }
2957
+ }
2958
+ }
2959
+ onSearchInput(event) {
2960
+ const input = event.target;
2961
+ this.searchTerm.set(input.value);
2962
+ if (!this.isOpen()) {
2963
+ this.openDropdown();
2964
+ }
2965
+ }
2966
+ onSearchFocus() {
2967
+ this.searchFocused.set(true);
2968
+ }
2969
+ onSearchBlur() {
2970
+ this.searchFocused.set(false);
2971
+ this.onTouched();
2972
+ }
2973
+ onTriggerClick() {
2974
+ if (this.disabled())
2975
+ return;
2976
+ if (this.searchable()) {
2977
+ this.searchInputRef()?.nativeElement.focus();
2978
+ if (!this.isOpen()) {
2979
+ this.openDropdown();
2980
+ }
2981
+ }
2982
+ else {
2983
+ this.toggleIsOpen();
2984
+ }
2985
+ }
2986
+ onTriggerEnter() {
2987
+ if (!this.isOpen()) {
2988
+ this.openDropdown();
2989
+ }
2990
+ }
2991
+ onSearchKeydown(event) {
2992
+ event.stopPropagation();
2993
+ switch (event.key) {
2994
+ case "ArrowDown":
2995
+ case "ArrowUp":
2996
+ case "Home":
2997
+ case "End":
2998
+ event.preventDefault();
2999
+ if (this.isOpen()) {
3000
+ this.forwardToCdkListbox(event.key);
3001
+ }
3002
+ else {
3003
+ this.openDropdown();
3004
+ }
3005
+ break;
3006
+ case "Enter":
3007
+ event.preventDefault();
3008
+ if (this.isOpen()) {
3009
+ this.forwardToCdkListbox(event.key);
3010
+ }
3011
+ else {
3012
+ this.openDropdown();
3013
+ }
3014
+ break;
3015
+ case " ":
3016
+ if (!this.isOpen()) {
3017
+ event.preventDefault();
3018
+ this.openDropdown();
3019
+ }
3020
+ break;
3021
+ case "Escape":
3022
+ case "Tab":
3023
+ if (this.isOpen()) {
3024
+ this.closeDropdown();
3025
+ }
3026
+ break;
3027
+ }
3028
+ }
3029
+ static KEY_CODES = {
3030
+ ArrowDown: 40,
3031
+ ArrowUp: 38,
3032
+ Home: 36,
3033
+ End: 35,
3034
+ Enter: 13,
3035
+ " ": 32,
3036
+ };
3037
+ forwardToCdkListbox(key) {
3038
+ const listbox = this.cdkListboxRef();
3039
+ if (listbox) {
3040
+ const keyCode = SelectComponent.KEY_CODES[key] ?? 0;
3041
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3042
+ listbox._handleKeydown(new KeyboardEvent("keydown", { key, keyCode, bubbles: true }));
3043
+ }
3044
+ }
3045
+ openDropdown() {
3046
+ this.calculateDropdownMaxHeight();
3047
+ this.isOpen.set(true);
3048
+ }
3049
+ calculateDropdownMaxHeight() {
3050
+ const inputMaxHeight = this.maxDropdownHeight();
3051
+ if (inputMaxHeight != null) {
3052
+ this.dropdownMaxHeight.set(inputMaxHeight);
3053
+ return;
3054
+ }
3055
+ const trigger = this.triggerRef()?.nativeElement;
3056
+ if (!trigger) {
3057
+ this.dropdownMaxHeight.set(null);
3058
+ return;
3059
+ }
3060
+ const triggerRect = trigger.getBoundingClientRect();
3061
+ const viewportHeight = window.innerHeight;
3062
+ const margin = 16; // Margin from viewport edges
3063
+ // Calculate space below and above the trigger
3064
+ const spaceBelow = viewportHeight - triggerRect.bottom - margin;
3065
+ const spaceAbove = triggerRect.top - margin;
3066
+ // Use the larger available space
3067
+ const maxHeight = Math.max(spaceBelow, spaceAbove);
3068
+ this.dropdownMaxHeight.set(maxHeight);
3069
+ }
3070
+ closeDropdown() {
3071
+ this.isOpen.set(false);
3072
+ this.searchTerm.set("");
3073
+ this.dropdownMaxHeight.set(null);
3074
+ }
3075
+ handleValueChange(event) {
3076
+ const values = event.value;
3077
+ const selectAllIndex = values.findIndex((v) => v === SpecialOptionControls.SELECT_ALL);
3078
+ const selectGroupValue = values.find((v) => typeof v === "string" &&
3079
+ v.startsWith(SpecialOptionControls.SELECT_GROUP));
3080
+ if (selectAllIndex !== -1) {
3081
+ this.toggleSelectAll();
3082
+ this.onTouched();
3083
+ return;
3084
+ }
3085
+ if (selectGroupValue) {
3086
+ const groupLabel = selectGroupValue.replace(SpecialOptionControls.SELECT_GROUP, "");
3087
+ this.toggleGroupSelection(groupLabel);
3088
+ this.onTouched();
3089
+ return;
3090
+ }
3091
+ if (this.allowMultiple()) {
3092
+ let newSelection;
3093
+ if (this.searchable() && this.searchTerm().trim()) {
3094
+ const filtered = this.filteredOptions();
3095
+ const compareWith = this.compareWith();
3096
+ const hiddenSelected = this.selectedValues().filter((val) => !filtered.some((opt) => compareWith(opt.value, val)));
3097
+ newSelection = [...hiddenSelected, ...values];
3098
+ }
3099
+ else {
3100
+ newSelection = [...values];
3101
+ }
3102
+ this.selectedValues.set(newSelection);
3103
+ this.onChange(newSelection);
3104
+ this.searchTerm.set("");
3105
+ if (this.searchable()) {
3106
+ this.searchInputRef()?.nativeElement.focus();
3107
+ }
3108
+ }
3109
+ else {
3110
+ const selected = values[0] ?? null;
3111
+ this.selectedValues.set(selected != null ? [selected] : []);
3112
+ this.onChange(selected);
3113
+ this.toggleIsOpen(true);
3114
+ }
3115
+ this.onTouched();
3116
+ }
3117
+ clear(event) {
3118
+ event.preventDefault();
3119
+ event.stopPropagation();
3120
+ event.stopImmediatePropagation();
3121
+ this.selectedValues.set([]);
3122
+ if (this.allowMultiple()) {
3123
+ this.onChange([]);
3124
+ }
3125
+ else {
3126
+ this.onChange(null);
3127
+ }
3128
+ this.onTouched();
3129
+ this.focusTrigger();
3130
+ }
3131
+ deselect(event, value) {
3132
+ event.stopPropagation();
3133
+ event.preventDefault();
3134
+ if (this.disabled())
3135
+ return;
3136
+ const compareWith = this.compareWith();
3137
+ const newSelection = this.selectedValues().filter((v) => !compareWith(v, value));
3138
+ this.selectedValues.set(newSelection);
3139
+ this.onChange(newSelection);
3140
+ this.onTouched();
3141
+ }
3142
+ isOptionSelected(optionValue) {
3143
+ const compareWith = this.compareWith();
3144
+ return this.selectedValues().some((val) => compareWith(val, optionValue));
3145
+ }
3146
+ getLabel(value) {
3147
+ const compareWith = this.compareWith();
3148
+ const option = this.normalizedOptions().find((o) => compareWith(o.value, value));
3149
+ return option?.label ?? String(value);
3150
+ }
3151
+ /**
3152
+ * Get the original item from the items array for a given option.
3153
+ * Used for custom templates that need access to the full item data.
3154
+ */
3155
+ getOriginalItem(option) {
3156
+ const compareWith = this.compareWith();
3157
+ const bindValue = this.bindValue();
3158
+ if (!bindValue) {
3159
+ return option.value;
3160
+ }
3161
+ // Find the original item by matching the value
3162
+ const items = this.options();
3163
+ const found = items.find((item) => {
3164
+ const itemRecord = item;
3165
+ return compareWith(itemRecord[bindValue], option.value);
3166
+ });
3167
+ return found ?? option;
3168
+ }
3169
+ /** Create context object for custom option templates. */
3170
+ getOptionContext(option, index) {
3171
+ const item = this.getOriginalItem(option);
3172
+ return {
3173
+ $implicit: item,
3174
+ item,
3175
+ index,
3176
+ selected: this.isOptionSelected(option.value),
3177
+ disabled: option.disabled ?? false,
3178
+ };
3179
+ }
3180
+ /** Create context object for custom value templates. */
3181
+ getValueContext(option) {
3182
+ const item = this.getOriginalItem(option);
3183
+ return { $implicit: item, item, label: option.label };
3184
+ }
3185
+ isGroupSelected(groupLabel) {
3186
+ const group = this.optionGroups().find((g) => g.label === groupLabel);
3187
+ if (!group)
3188
+ return false;
3189
+ const enabledGroupOptions = group.options.filter((o) => !o.disabled);
3190
+ if (enabledGroupOptions.length === 0)
3191
+ return false;
3192
+ const compareWith = this.compareWith();
3193
+ const selected = this.selectedValues();
3194
+ return enabledGroupOptions.every((option) => selected.some((val) => compareWith(option.value, val)));
3195
+ }
3196
+ isGroupIndeterminate(groupLabel) {
3197
+ const group = this.optionGroups().find((g) => g.label === groupLabel);
3198
+ if (!group)
3199
+ return false;
3200
+ const enabledGroupOptions = group.options.filter((o) => !o.disabled);
3201
+ if (enabledGroupOptions.length === 0)
3202
+ return false;
3203
+ const compareWith = this.compareWith();
3204
+ const selected = this.selectedValues();
3205
+ const selectedCount = enabledGroupOptions.filter((option) => selected.some((val) => compareWith(option.value, val))).length;
3206
+ return selectedCount > 0 && selectedCount < enabledGroupOptions.length;
3207
+ }
3208
+ focusTrigger() {
3209
+ if (this.searchable()) {
3210
+ this.searchInputRef()?.nativeElement.focus();
3211
+ }
3212
+ else {
3213
+ this.triggerRef()?.nativeElement.focus();
3214
+ }
3215
+ }
3216
+ getAvailableTagWidth() {
3217
+ const trigger = this.triggerRef()?.nativeElement;
3218
+ if (!trigger)
3219
+ return 0;
3220
+ const triggerWidth = trigger.clientWidth;
3221
+ if (triggerWidth === 0)
3222
+ return 0;
3223
+ const triggerStyle = getComputedStyle(trigger);
3224
+ const padding = (parseFloat(triggerStyle.paddingLeft) || 0) + (parseFloat(triggerStyle.paddingRight) || 0);
3225
+ let nonTagWidth = 0;
3226
+ const arrow = trigger.querySelector(".tedi-select__arrow");
3227
+ const clear = trigger.querySelector(".tedi-select__clear");
3228
+ const searchInput = trigger.querySelector(".tedi-select__search-input");
3229
+ if (arrow)
3230
+ nonTagWidth += arrow.offsetWidth + (parseFloat(getComputedStyle(arrow).marginLeft) || 0) + (parseFloat(getComputedStyle(arrow).paddingLeft) || 0);
3231
+ if (clear)
3232
+ nonTagWidth += clear.offsetWidth;
3233
+ if (searchInput)
3234
+ nonTagWidth += parseFloat(getComputedStyle(searchInput).minWidth) || 0;
3235
+ return triggerWidth - padding - nonTagWidth;
3236
+ }
3237
+ calculateVisibleTags() {
3238
+ const tags = this.tagRefs();
3239
+ if (tags.length === 0 || this.visibleTagsCount() !== null)
3240
+ return;
3241
+ const availableWidth = this.getAvailableTagWidth();
3242
+ if (availableWidth <= 0)
3243
+ return;
3244
+ const gap = 8;
3245
+ const counterTagWidth = 40;
3246
+ let usedWidth = 0;
3247
+ let visibleCount = 0;
3248
+ for (let i = 0; i < tags.length; i++) {
3249
+ const tagWidth = tags[i].nativeElement.offsetWidth;
3250
+ const spaceNeeded = usedWidth + tagWidth + (visibleCount > 0 ? gap : 0);
3251
+ const hasMoreItems = i < tags.length - 1;
3252
+ const reservedSpace = hasMoreItems ? counterTagWidth + gap : 0;
3253
+ if (spaceNeeded + reservedSpace <= availableWidth) {
3254
+ usedWidth = spaceNeeded;
3255
+ visibleCount++;
3256
+ }
3257
+ else {
3258
+ break;
3259
+ }
3260
+ }
3261
+ if (visibleCount === 0 && tags.length > 0) {
3262
+ visibleCount = 1;
3263
+ }
3264
+ this.ngZone.run(() => {
3265
+ this.visibleTagsCount.set(visibleCount);
3266
+ });
3267
+ }
3268
+ setDropdownWidth() {
3269
+ const widthRef = this.dropdownWidthRef();
3270
+ if (widthRef === null) {
3271
+ this.dropdownWidth.set(null);
3272
+ return;
3273
+ }
3274
+ const element = widthRef?.nativeElement ?? this.hostRef?.nativeElement;
3275
+ const computedWidth = element?.getBoundingClientRect()?.width ?? 0;
3276
+ this.dropdownWidth.set(computedWidth);
3277
+ }
3278
+ toggleSelectAll() {
3279
+ const options = this.normalizedOptions();
3280
+ const enabledOptions = options.filter((o) => !o.disabled);
3281
+ const compareWith = this.compareWith();
3282
+ const disabledSelectedValues = this.selectedValues().filter((val) => options.some((o) => o.disabled && compareWith(val, o.value)));
3283
+ if (this.allOptionsSelected()) {
3284
+ this.selectedValues.set(disabledSelectedValues);
3285
+ this.onChange(disabledSelectedValues);
3286
+ }
3287
+ else {
3288
+ const allEnabledValues = enabledOptions.map((o) => o.value);
3289
+ const mergedValues = [...disabledSelectedValues, ...allEnabledValues];
3290
+ this.selectedValues.set(mergedValues);
3291
+ this.onChange(mergedValues);
3292
+ }
3293
+ }
3294
+ toggleGroupSelection(groupLabel) {
3295
+ const group = this.optionGroups().find((g) => g.label === groupLabel);
3296
+ if (!group)
3297
+ return;
3298
+ const enabledGroupOptions = group.options.filter((o) => !o.disabled);
3299
+ const groupValues = enabledGroupOptions.map((o) => o.value);
3300
+ const isGroupSelected = this.isGroupSelected(groupLabel);
3301
+ const compareWith = this.compareWith();
3302
+ let newSelection;
3303
+ if (isGroupSelected) {
3304
+ newSelection = this.selectedValues().filter((val) => !groupValues.some((gv) => compareWith(val, gv)));
3305
+ }
3306
+ else {
3307
+ newSelection = [...this.selectedValues()];
3308
+ for (const gv of groupValues) {
3309
+ if (!newSelection.some((val) => compareWith(val, gv))) {
3310
+ newSelection.push(gv);
3311
+ }
3312
+ }
3313
+ }
3314
+ this.selectedValues.set(newSelection);
3315
+ this.onChange(newSelection);
3316
+ }
3317
+ onChange = () => { };
3318
+ onTouched = () => { };
3319
+ writeValue(value) {
3320
+ if (this.allowMultiple()) {
3321
+ this.selectedValues.set(Array.isArray(value) ? value : []);
3322
+ }
3323
+ else {
3324
+ this.selectedValues.set(value != null ? [value] : []);
3325
+ }
3326
+ }
3327
+ registerOnChange(fn) {
3328
+ this.onChange = fn;
3329
+ }
3330
+ registerOnTouched(fn) {
3331
+ this.onTouched = fn;
3332
+ }
3333
+ setDisabledState(isDisabled) {
3334
+ this.disabled.set(isDisabled);
3335
+ if (isDisabled) {
3336
+ this.closeDropdown();
3337
+ }
3338
+ }
3339
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3340
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: SelectComponent, isStandalone: true, selector: "tedi-select", inputs: { inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, clearable: { classPropertyName: "clearable", publicName: "clearable", isSignal: true, isRequired: false, transformFunction: null }, dropdownWidthRef: { classPropertyName: "dropdownWidthRef", publicName: "dropdownWidthRef", isSignal: true, isRequired: false, transformFunction: null }, feedbackText: { classPropertyName: "feedbackText", publicName: "feedbackText", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, bindLabel: { classPropertyName: "bindLabel", publicName: "bindLabel", isSignal: true, isRequired: false, transformFunction: null }, bindValue: { classPropertyName: "bindValue", publicName: "bindValue", isSignal: true, isRequired: false, transformFunction: null }, allowMultiple: { classPropertyName: "allowMultiple", publicName: "allowMultiple", isSignal: true, isRequired: false, transformFunction: null }, groupBy: { classPropertyName: "groupBy", publicName: "groupBy", isSignal: true, isRequired: false, transformFunction: null }, showSelectAll: { classPropertyName: "showSelectAll", publicName: "showSelectAll", isSignal: true, isRequired: false, transformFunction: null }, selectableGroups: { classPropertyName: "selectableGroups", publicName: "selectableGroups", isSignal: true, isRequired: false, transformFunction: null }, isTagRemovable: { classPropertyName: "isTagRemovable", publicName: "isTagRemovable", isSignal: true, isRequired: false, transformFunction: null }, multiRow: { classPropertyName: "multiRow", publicName: "multiRow", isSignal: true, isRequired: false, transformFunction: null }, compareWith: { classPropertyName: "compareWith", publicName: "compareWith", isSignal: true, isRequired: false, transformFunction: null }, disabledKey: { classPropertyName: "disabledKey", publicName: "disabledKey", isSignal: true, isRequired: false, transformFunction: null }, noOptionsMessage: { classPropertyName: "noOptionsMessage", publicName: "noOptionsMessage", isSignal: true, isRequired: false, transformFunction: null }, maxDropdownHeight: { classPropertyName: "maxDropdownHeight", publicName: "maxDropdownHeight", isSignal: true, isRequired: false, transformFunction: null }, dropdownType: { classPropertyName: "dropdownType", publicName: "dropdownType", isSignal: true, isRequired: false, transformFunction: null }, searchable: { classPropertyName: "searchable", publicName: "searchable", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "window:resize": "onWindowResize()", "document:click": "onDocumentClick($event)" }, properties: { "class.tedi-select--multiselect": "allowMultiple()" }, classAttribute: "tedi-select" }, providers: [
3341
+ {
3342
+ provide: NG_VALUE_ACCESSOR,
3343
+ useExisting: forwardRef(() => SelectComponent),
3344
+ multi: true,
3345
+ },
3346
+ ], queries: [{ propertyName: "optionTemplate", first: true, predicate: SelectOptionTemplateDirective, descendants: true, isSignal: true }, { propertyName: "valueTemplate", first: true, predicate: SelectValueTemplateDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "listboxRef", first: true, predicate: CdkListbox, descendants: true, read: ElementRef, isSignal: true }, { propertyName: "cdkListboxRef", first: true, predicate: CdkListbox, descendants: true, isSignal: true }, { propertyName: "triggerRef", first: true, predicate: CdkOverlayOrigin, descendants: true, read: ElementRef, isSignal: true }, { propertyName: "searchInputRef", first: true, predicate: ["searchInput"], descendants: true, isSignal: true }, { propertyName: "multiselectContainerRef", first: true, predicate: ["multiselectContainer"], descendants: true, isSignal: true }, { propertyName: "tagRefs", predicate: ["tagElement"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "@if (label()) {\n <label\n [id]=\"labelId()\"\n tedi-label\n [for]=\"inputId()\"\n [required]=\"required()\"\n [size]=\"size()\"\n >\n {{ label() }}\n </label>\n}\n<div\n [id]=\"inputId()\"\n class=\"tedi-select__trigger tedi-input\"\n [class.tedi-input--disabled]=\"disabled()\"\n [class.tedi-input--small]=\"size() === 'small'\"\n [class.tedi-input--error]=\"state() === 'error'\"\n [class.tedi-input--valid]=\"state() === 'valid'\"\n [class.tedi-select__trigger--searchable]=\"searchable()\"\n [class.tedi-select__trigger--search-focused]=\"searchFocused()\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n [attr.role]=\"searchable() ? null : 'combobox'\"\n [attr.aria-haspopup]=\"searchable() ? null : 'listbox'\"\n [attr.aria-expanded]=\"searchable() ? null : isOpen()\"\n [attr.aria-controls]=\"searchable() ? null : listboxId()\"\n [attr.aria-labelledby]=\"!searchable() && label() ? labelId() : null\"\n [tabindex]=\"searchable() || disabled() ? -1 : 0\"\n (click)=\"onTriggerClick()\"\n (keydown.enter)=\"onTriggerEnter()\"\n (keydown.space)=\"$event.preventDefault(); toggleIsOpen()\"\n (keydown.arrowdown)=\"$event.preventDefault(); toggleIsOpen()\"\n (blur)=\"onTouched()\"\n>\n @if (searchable()) {\n <div class=\"tedi-select__search-wrapper\">\n @if (showSingleSelectedValue()) {\n <span class=\"tedi-select__selected-value\">\n @if (valueTemplate(); as tpl) {\n @if (selectedOptions()[0]; as option) {\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"getValueContext(option)\"\n />\n }\n } @else {\n {{ selectedLabels().join(\", \") }}\n }\n </span>\n }\n @if (allowMultiple() && selectedValues().length) {\n <ng-container\n [ngTemplateOutlet]=\"multiselectTags\"\n [ngTemplateOutletContext]=\"{ $implicit: multiselectContainerRef }\"\n />\n }\n <input\n #searchInput\n type=\"text\"\n class=\"tedi-select__search-input\"\n [class.tedi-select__search-input--hidden]=\"showSingleSelectedValue()\"\n [placeholder]=\"selectedValues().length ? '' : placeholder()\"\n [value]=\"searchTerm()\"\n [disabled]=\"disabled()\"\n (input)=\"onSearchInput($event)\"\n (focus)=\"onSearchFocus()\"\n (blur)=\"onSearchBlur()\"\n (keydown)=\"onSearchKeydown($event)\"\n autocomplete=\"off\"\n role=\"combobox\"\n aria-autocomplete=\"list\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-controls]=\"listboxId()\"\n [attr.aria-labelledby]=\"label() ? labelId() : null\"\n />\n </div>\n } @else {\n <span class=\"tedi-select__label\">\n @if (selectedValues().length) {\n @if (allowMultiple()) {\n <ng-container\n [ngTemplateOutlet]=\"multiselectTags\"\n [ngTemplateOutletContext]=\"{ $implicit: multiselectContainerRef }\"\n />\n } @else {\n @if (valueTemplate(); as tpl) {\n @if (selectedOptions()[0]; as option) {\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"getValueContext(option)\"\n />\n }\n } @else {\n {{ selectedLabels().join(\", \") }}\n }\n }\n } @else {\n <span class=\"tedi-select__label--placeholder\">\n {{ placeholder() }}\n </span>\n }\n </span>\n }\n\n @if (clearable() && selectedValues().length) {\n <button\n class=\"tedi-select__clear\"\n tedi-closing-button\n type=\"button\"\n size=\"small\"\n [iconSize]=\"18\"\n [ariaLabel]=\"'clear' | tediTranslate\"\n (click)=\"clear($event)\"\n (keydown.enter)=\"clear($event)\"\n (keydown.space)=\"clear($event)\"\n [attr.aria-describedby]=\"label() ? labelId() : null\"\n ></button>\n }\n\n <tedi-icon class=\"tedi-select__arrow\" name=\"arrow_drop_down\" />\n</div>\n@if (feedbackText(); as feedback) {\n <tedi-feedback-text\n [text]=\"feedback.text\"\n [type]=\"feedback.type\"\n [position]=\"feedback.position\"\n />\n}\n\n<ng-template #multiselectTags>\n <div\n class=\"tedi-select__multiselect-container\"\n [class.tedi-select__multiselect-container--single-row]=\"!multiRow()\"\n #multiselectContainer\n >\n @if (multiRow()) {\n @for (value of selectedValues(); track value) {\n <tedi-tag\n [closable]=\"isTagRemovable()\"\n (closed)=\"deselect($event, value)\"\n >\n {{ getLabel(value) }}\n </tedi-tag>\n }\n } @else {\n @for (value of selectedValues(); track value; let i = $index) {\n @if (visibleTagsCount() === null || i < visibleTagsCount()!) {\n <tedi-tag\n #tagElement\n [closable]=\"isTagRemovable()\"\n (closed)=\"deselect($event, value)\"\n >\n {{ getLabel(value) }}\n </tedi-tag>\n }\n }\n @if (hiddenTagsCount() > 0) {\n <tedi-tag>+{{ hiddenTagsCount() }}</tedi-tag>\n }\n }\n </div>\n</ng-template>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayPositions]=\"dropdownPositions\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n [cdkConnectedOverlayGrowAfterOpen]=\"true\"\n (detach)=\"toggleIsOpen(true)\"\n>\n <div\n class=\"tedi-select__dropdown\"\n [style.width]=\"!!dropdownWidth() ? dropdownWidth() + 'px' : 'auto'\"\n [style.max-height]=\"dropdownMaxHeight() ? dropdownMaxHeight() + 'px' : null\"\n >\n <ul\n [id]=\"listboxId()\"\n class=\"tedi-select__options\"\n [class.tedi-select__options--multiselect]=\"allowMultiple()\"\n [class.tedi-select__options--swatch-grid]=\"dropdownType() === 'grid'\"\n cdkListbox\n [cdkListboxMultiple]=\"allowMultiple()\"\n [cdkListboxValue]=\"visibleSelectedValues()\"\n [cdkListboxNavigatesDisabledOptions]=\"false\"\n [cdkListboxUseActiveDescendant]=\"true\"\n (cdkListboxValueChange)=\"handleValueChange($event)\"\n (keydown.tab)=\"toggleIsOpen(true)\"\n (keydown.escape)=\"toggleIsOpen(true)\"\n #listbox=\"cdkListbox\"\n >\n @if (filteredOptions().length) {\n @if (allowMultiple() && showSelectAll()) {\n <li\n class=\"tedi-dropdown-item\"\n [cdkOption]=\"SpecialOptionControls.SELECT_ALL\"\n >\n <tedi-dropdown-item-value type=\"checkbox\" [selected]=\"allOptionsSelected()\">\n <tedi-dropdown-item-value-label>{{ \"select.select-all\" | tediTranslate }}</tedi-dropdown-item-value-label>\n </tedi-dropdown-item-value>\n </li>\n }\n\n @for (group of optionGroups(); track group.label) {\n @if (group.label.length > 0) {\n @if (allowMultiple() && selectableGroups()) {\n <li\n class=\"tedi-dropdown-item tedi-select__group-name tedi-select__group-name--selectable\"\n [cdkOption]=\"SpecialOptionControls.SELECT_GROUP + group.label\"\n >\n <tedi-dropdown-item-value type=\"checkbox\" [selected]=\"isGroupSelected(group.label)\" [indeterminate]=\"isGroupIndeterminate(group.label)\">\n <tedi-dropdown-item-value-label>{{ group.label }}</tedi-dropdown-item-value-label>\n </tedi-dropdown-item-value>\n </li>\n } @else {\n <li class=\"tedi-select__group-name\" role=\"presentation\">\n <span tedi-text color=\"tertiary\">\n {{ group.label }}\n </span>\n </li>\n }\n }\n\n @for (option of group.options; track option.value; let i = $index) {\n <li\n class=\"tedi-dropdown-item\"\n [class.tedi-dropdown-item--selected]=\"!allowMultiple() && isOptionSelected(option.value)\"\n [class.tedi-dropdown-item--disabled]=\"option.disabled\"\n [class.tedi-dropdown-item--custom]=\"optionTemplate()\"\n [cdkOption]=\"option.value\"\n [cdkOptionDisabled]=\"option.disabled\"\n >\n @if (optionTemplate(); as tpl) {\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"getOptionContext(option, i)\"\n />\n } @else {\n <tedi-dropdown-item-value\n [type]=\"allowMultiple() ? 'checkbox' : 'default'\"\n [selected]=\"isOptionSelected(option.value)\"\n [disabled]=\"!!option.disabled\"\n >\n <tedi-dropdown-item-value-label>{{ option.label }}</tedi-dropdown-item-value-label>\n </tedi-dropdown-item-value>\n }\n </li>\n }\n }\n } @else {\n <li class=\"tedi-dropdown-item tedi-select__no-options\">\n {{ noOptionsMessage() || (\"select.no-options\" | tediTranslate) }}\n </li>\n }\n </ul>\n </div>\n</ng-template>\n", styles: ["li[tedi-dropdown-item],.tedi-dropdown-item{display:flex;gap:var(--dropdown-item-inner-spacing);align-items:center;width:100%;min-height:40px;padding:var(--dropdown-item-padding-y) var(--dropdown-item-padding-x);color:var(--dropdown-item-default-text);cursor:pointer;background:var(--dropdown-item-default-background)}li[tedi-dropdown-item]:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]),.tedi-dropdown-item:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]){color:var(--dropdown-item-hover-text);background:var(--dropdown-item-hover-background)}li[tedi-dropdown-item]:focus-visible,.tedi-dropdown-item:focus-visible{outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:calc(-1 * var(--borders-02))}li[tedi-dropdown-item][aria-selected=true],li[tedi-dropdown-item].tedi-dropdown-item--selected,.tedi-dropdown-item[aria-selected=true],.tedi-dropdown-item.tedi-dropdown-item--selected{color:var(--dropdown-item-active-text);background:var(--dropdown-item-active-background)}li[tedi-dropdown-item][aria-disabled=true],li[tedi-dropdown-item].tedi-dropdown-item--disabled,.tedi-dropdown-item[aria-disabled=true],.tedi-dropdown-item.tedi-dropdown-item--disabled{color:var(--general-text-disabled);cursor:not-allowed;background:var(--dropdown-item-disabled-background)}.tedi-input{--_border-color: var(--form-input-border-default);--_color: var(--form-input-text-filled);--_background-color: var(--form-input-background-default);--_placeholder-color: var(--form-input-text-placeholder);--_border-radius: var(--form-field-radius);--_font-size: var(--body-regular-size);--_line-height: var(--body-regular-line-height);--_padding-y: var(--form-field-padding-y-md-default);--_padding-x: var(--form-field-padding-x-md-default);--_search-input-min-width: 50px;min-height:var(--form-field-height);padding:calc(var(--_padding-y) - var(--borders-01)) var(--_padding-x);margin-bottom:0;font-family:var(--family-default);font-size:var(--_font-size);line-height:var(--_line-height);color:var(--_color);background-color:var(--_background-color);border:var(--borders-01) solid var(--_border-color);border-radius:var(--_border-radius)}.tedi-input:hover{--_border-color: var(--form-input-border-hover)}.tedi-input:focus,.tedi-input:active,.tedi-input.tedi-select__trigger--search-focused{border-color:var(--form-input-border-hover);box-shadow:inset 0 0 0 1px var(--form-input-border-hover)}.tedi-input--disabled{--_color: var(--form-input-text-disabled);--_border-color: var(--form-input-border-disabled);--_background-color: var(--form-input-background-disabled);pointer-events:none}.tedi-input--error:not(.tedi-input--disabled){--_border-color: var(--form-general-feedback-error-border)}.tedi-input--error:not(.tedi-input--disabled):focus,.tedi-input--error:not(.tedi-input--disabled):active,.tedi-input--error:not(.tedi-input--disabled).tedi-select__trigger--search-focused{border-color:var(--form-general-feedback-error-border);box-shadow:inset 0 0 0 1px var(--form-general-feedback-error-border)}.tedi-input--valid:not(.tedi-input--disabled){--_border-color: var(--form-general-feedback-success-border)}.tedi-input--valid:not(.tedi-input--disabled):focus,.tedi-input--valid:not(.tedi-input--disabled):active,.tedi-input--valid:not(.tedi-input--disabled).tedi-select__trigger--search-focused{border-color:var(--form-general-feedback-success-border);box-shadow:inset 0 0 0 1px var(--form-general-feedback-success-border)}.tedi-input--small{--_padding-y: var(--form-field-padding-y-sm);min-height:var(--form-field-height-sm)}.tedi-select{display:block;width:100%}.tedi-select .tedi-feedback-text{margin-top:var(--form-field-outer-spacing)}.tedi-select__trigger{display:flex;justify-content:space-between;width:100%;cursor:pointer}.tedi-select__label{flex-grow:1;overflow:hidden;text-align:left;cursor:default}.tedi-select__label--placeholder{color:var(--_placeholder-color);pointer-events:none}.tedi-select__clear{flex-grow:0;padding:0;margin:0;color:var(--button-close-text-default);cursor:pointer;background:none;border:none}.tedi-select__clear+.tedi-select__arrow{border-left:1px solid var(--general-border-primary)}.tedi-select__arrow{flex-grow:0;padding-left:var(--form-field-inner-spacing);margin-left:var(--form-field-inner-spacing);cursor:default}.tedi-select__dropdown{display:flex;flex-direction:column;max-height:100%;margin-top:var(--form-field-outer-spacing);margin-bottom:var(--form-field-outer-spacing);background:var(--card-background-primary);border-radius:var(--card-border-radius);box-shadow:0 1px 5px 0 var(--tedi-alpha-20)}.tedi-select__trigger--searchable{cursor:text}.tedi-select__search-wrapper{position:relative;display:flex;flex-grow:1;flex-wrap:wrap;gap:var(--form-field-inner-spacing);align-items:center;min-height:var(--_line-height);overflow:hidden}.tedi-select__selected-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;pointer-events:none}.tedi-select__search-input{position:absolute;top:0;left:0;width:100%;height:100%;padding:0;font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;background:transparent;border:none}.tedi-select__search-input:focus{outline:none}.tedi-select__search-input::placeholder{color:var(--form-input-text-placeholder)}.tedi-select__search-input--hidden{color:transparent;caret-color:var(--form-input-text-filled)}.tedi-select__search-input:not(.tedi-select__search-input--hidden){position:relative;flex:1;width:auto;min-width:var(--_search-input-min-width);height:auto}.tedi-select__options{flex:1;min-height:0;padding:0;margin:0;overflow-y:auto;outline:none}.tedi-select__options .tedi-dropdown-item{outline:none}.tedi-select__options .tedi-dropdown-item.cdk-option-active:not(.tedi-dropdown-item--disabled){outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:calc(-1 * var(--borders-02))}.tedi-select__options .tedi-dropdown-item[aria-selected=true],.tedi-select__options .tedi-dropdown-item.tedi-dropdown-item--selected{color:var(--dropdown-item-active-text);background:var(--dropdown-item-active-background)}.tedi-select__options .tedi-dropdown-item[aria-selected=true] .tedi-icon,.tedi-select__options .tedi-dropdown-item.tedi-dropdown-item--selected .tedi-icon{color:inherit}.tedi-select__dropdown-item--label{display:none}.tedi-select__dropdown-item--custom-content:empty+.tedi-select__dropdown-item--label{display:block}.tedi-select__group-name{display:block;padding:var(--dropdown-group-label-padding-y) var(--dropdown-group-label-padding-x) var(--layout-grid-gutters-04);font-size:var(--heading-subtitle-small-size);font-weight:var(--heading-subtitle-small-weight);line-height:var(--heading-subtitle-small-line-height);text-transform:uppercase;letter-spacing:0}.tedi-select__group-name--selectable{padding:var(--dropdown-item-padding-y) var(--dropdown-item-padding-x);font-size:var(--body-regular-size);font-weight:var(--body-regular-weight);line-height:var(--body-regular-line-height);text-transform:none;letter-spacing:inherit}.tedi-select__group-name--selectable~.tedi-dropdown-item:not(.tedi-select__group-name){padding-left:var(--form-checkbox-radio-subitem-padding-left)}.tedi-select--multiselect .tedi-select__trigger{align-items:flex-start}.tedi-select__multiselect-container{display:flex;flex-wrap:wrap;gap:var(--form-field-inner-spacing)}.tedi-select__multiselect-container--single-row{flex-wrap:nowrap;overflow:hidden}.tedi-select__multiselect-container--single-row .tedi-tag{flex-shrink:0}.tedi-select__multiselect-container--single-row .tedi-tag__content{white-space:nowrap}.tedi-select__no-options{color:var(--general-text-tertiary);cursor:default}.tedi-select__no-options:hover{color:var(--general-text-tertiary);background:var(--dropdown-item-default-background)}.tedi-select__dropdown:has(.tedi-select__options--swatch-grid){width:fit-content}.tedi-select__options--swatch-grid{--tedi-swatch-size: 24px;--tedi-swatch-gap: var(--layout-grid-gutters-04);--tedi-swatch-columns: 11;display:grid;grid-template-columns:repeat(auto-fit,var(--tedi-swatch-size));gap:var(--tedi-swatch-gap);max-width:calc(var(--tedi-swatch-columns) * (var(--tedi-swatch-size) + var(--tedi-swatch-gap)));padding:var(--dropdown-body-padding-y) var(--dropdown-body-padding-x)}.tedi-select__options--swatch-grid .tedi-dropdown-item{display:flex;align-items:center;justify-content:center;width:var(--tedi-swatch-size);height:var(--tedi-swatch-size);min-height:auto;padding:var(--layout-grid-gutters-02);color:inherit;background:transparent;border-radius:var(--card-radius-rounded)}.tedi-select__options--swatch-grid .tedi-dropdown-item.cdk-option-active:not(.tedi-dropdown-item--disabled){outline-offset:0}.tedi-select__options--swatch-grid .tedi-dropdown-item[aria-selected=true],.tedi-select__options--swatch-grid .tedi-dropdown-item.tedi-dropdown-item--selected{color:inherit;background:transparent;border:var(--borders-02) solid var(--card-border-selected)}.tedi-select__options--swatch-grid .tedi-dropdown-item:hover:not(.tedi-dropdown-item--disabled){background:transparent}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i2.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i2.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "ngmodule", type: CdkListboxModule }, { kind: "directive", type: i3.CdkListbox, selector: "[cdkListbox]", inputs: ["id", "tabindex", "cdkListboxValue", "cdkListboxMultiple", "cdkListboxDisabled", "cdkListboxUseActiveDescendant", "cdkListboxOrientation", "cdkListboxCompareWith", "cdkListboxNavigationWrapDisabled", "cdkListboxNavigatesDisabledOptions"], outputs: ["cdkListboxValueChange"], exportAs: ["cdkListbox"] }, { kind: "directive", type: i3.CdkOption, selector: "[cdkOption]", inputs: ["id", "cdkOption", "cdkOptionTypeaheadLabel", "cdkOptionDisabled", "tabindex"], exportAs: ["cdkOption"] }, { kind: "component", type: ClosingButtonComponent, selector: "button[tedi-closing-button]", inputs: ["size", "iconSize", "ariaLabel"] }, { kind: "component", type: IconComponent, selector: "tedi-icon", inputs: ["name", "size", "color", "background", "variant", "type", "label"] }, { kind: "component", type: LabelComponent, selector: "[tedi-label]", inputs: ["size", "required", "color"] }, { kind: "component", type: FeedbackTextComponent, selector: "tedi-feedback-text", inputs: ["text", "type", "position"] }, { kind: "component", type: TextComponent, selector: "[tedi-text]", inputs: ["modifiers", "color"] }, { kind: "component", type: TagComponent, selector: "tedi-tag", inputs: ["loading", "closable", "type"], outputs: ["closed"] }, { kind: "pipe", type: TediTranslationPipe, name: "tediTranslate" }, { kind: "component", type: DropdownItemValueComponent, selector: "tedi-dropdown-item-value", inputs: ["type", "layout", "selected", "indeterminate", "disabled"] }, { kind: "component", type: DropdownItemValueLabelComponent, selector: "tedi-dropdown-item-value-label" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
3347
+ }
3348
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SelectComponent, decorators: [{
3349
+ type: Component,
3350
+ args: [{ selector: "tedi-select", imports: [
3351
+ CommonModule,
3352
+ OverlayModule,
3353
+ CdkListboxModule,
3354
+ ClosingButtonComponent,
3355
+ IconComponent,
3356
+ LabelComponent,
3357
+ FeedbackTextComponent,
3358
+ TextComponent,
3359
+ TagComponent,
3360
+ TediTranslationPipe,
3361
+ DropdownItemValueComponent,
3362
+ DropdownItemValueLabelComponent,
3363
+ ], standalone: true, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
3364
+ class: "tedi-select",
3365
+ "[class.tedi-select--multiselect]": "allowMultiple()",
3366
+ }, providers: [
3367
+ {
3368
+ provide: NG_VALUE_ACCESSOR,
3369
+ useExisting: forwardRef(() => SelectComponent),
3370
+ multi: true,
3371
+ },
3372
+ ], template: "@if (label()) {\n <label\n [id]=\"labelId()\"\n tedi-label\n [for]=\"inputId()\"\n [required]=\"required()\"\n [size]=\"size()\"\n >\n {{ label() }}\n </label>\n}\n<div\n [id]=\"inputId()\"\n class=\"tedi-select__trigger tedi-input\"\n [class.tedi-input--disabled]=\"disabled()\"\n [class.tedi-input--small]=\"size() === 'small'\"\n [class.tedi-input--error]=\"state() === 'error'\"\n [class.tedi-input--valid]=\"state() === 'valid'\"\n [class.tedi-select__trigger--searchable]=\"searchable()\"\n [class.tedi-select__trigger--search-focused]=\"searchFocused()\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n [attr.role]=\"searchable() ? null : 'combobox'\"\n [attr.aria-haspopup]=\"searchable() ? null : 'listbox'\"\n [attr.aria-expanded]=\"searchable() ? null : isOpen()\"\n [attr.aria-controls]=\"searchable() ? null : listboxId()\"\n [attr.aria-labelledby]=\"!searchable() && label() ? labelId() : null\"\n [tabindex]=\"searchable() || disabled() ? -1 : 0\"\n (click)=\"onTriggerClick()\"\n (keydown.enter)=\"onTriggerEnter()\"\n (keydown.space)=\"$event.preventDefault(); toggleIsOpen()\"\n (keydown.arrowdown)=\"$event.preventDefault(); toggleIsOpen()\"\n (blur)=\"onTouched()\"\n>\n @if (searchable()) {\n <div class=\"tedi-select__search-wrapper\">\n @if (showSingleSelectedValue()) {\n <span class=\"tedi-select__selected-value\">\n @if (valueTemplate(); as tpl) {\n @if (selectedOptions()[0]; as option) {\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"getValueContext(option)\"\n />\n }\n } @else {\n {{ selectedLabels().join(\", \") }}\n }\n </span>\n }\n @if (allowMultiple() && selectedValues().length) {\n <ng-container\n [ngTemplateOutlet]=\"multiselectTags\"\n [ngTemplateOutletContext]=\"{ $implicit: multiselectContainerRef }\"\n />\n }\n <input\n #searchInput\n type=\"text\"\n class=\"tedi-select__search-input\"\n [class.tedi-select__search-input--hidden]=\"showSingleSelectedValue()\"\n [placeholder]=\"selectedValues().length ? '' : placeholder()\"\n [value]=\"searchTerm()\"\n [disabled]=\"disabled()\"\n (input)=\"onSearchInput($event)\"\n (focus)=\"onSearchFocus()\"\n (blur)=\"onSearchBlur()\"\n (keydown)=\"onSearchKeydown($event)\"\n autocomplete=\"off\"\n role=\"combobox\"\n aria-autocomplete=\"list\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-controls]=\"listboxId()\"\n [attr.aria-labelledby]=\"label() ? labelId() : null\"\n />\n </div>\n } @else {\n <span class=\"tedi-select__label\">\n @if (selectedValues().length) {\n @if (allowMultiple()) {\n <ng-container\n [ngTemplateOutlet]=\"multiselectTags\"\n [ngTemplateOutletContext]=\"{ $implicit: multiselectContainerRef }\"\n />\n } @else {\n @if (valueTemplate(); as tpl) {\n @if (selectedOptions()[0]; as option) {\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"getValueContext(option)\"\n />\n }\n } @else {\n {{ selectedLabels().join(\", \") }}\n }\n }\n } @else {\n <span class=\"tedi-select__label--placeholder\">\n {{ placeholder() }}\n </span>\n }\n </span>\n }\n\n @if (clearable() && selectedValues().length) {\n <button\n class=\"tedi-select__clear\"\n tedi-closing-button\n type=\"button\"\n size=\"small\"\n [iconSize]=\"18\"\n [ariaLabel]=\"'clear' | tediTranslate\"\n (click)=\"clear($event)\"\n (keydown.enter)=\"clear($event)\"\n (keydown.space)=\"clear($event)\"\n [attr.aria-describedby]=\"label() ? labelId() : null\"\n ></button>\n }\n\n <tedi-icon class=\"tedi-select__arrow\" name=\"arrow_drop_down\" />\n</div>\n@if (feedbackText(); as feedback) {\n <tedi-feedback-text\n [text]=\"feedback.text\"\n [type]=\"feedback.type\"\n [position]=\"feedback.position\"\n />\n}\n\n<ng-template #multiselectTags>\n <div\n class=\"tedi-select__multiselect-container\"\n [class.tedi-select__multiselect-container--single-row]=\"!multiRow()\"\n #multiselectContainer\n >\n @if (multiRow()) {\n @for (value of selectedValues(); track value) {\n <tedi-tag\n [closable]=\"isTagRemovable()\"\n (closed)=\"deselect($event, value)\"\n >\n {{ getLabel(value) }}\n </tedi-tag>\n }\n } @else {\n @for (value of selectedValues(); track value; let i = $index) {\n @if (visibleTagsCount() === null || i < visibleTagsCount()!) {\n <tedi-tag\n #tagElement\n [closable]=\"isTagRemovable()\"\n (closed)=\"deselect($event, value)\"\n >\n {{ getLabel(value) }}\n </tedi-tag>\n }\n }\n @if (hiddenTagsCount() > 0) {\n <tedi-tag>+{{ hiddenTagsCount() }}</tedi-tag>\n }\n }\n </div>\n</ng-template>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayPositions]=\"dropdownPositions\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n [cdkConnectedOverlayGrowAfterOpen]=\"true\"\n (detach)=\"toggleIsOpen(true)\"\n>\n <div\n class=\"tedi-select__dropdown\"\n [style.width]=\"!!dropdownWidth() ? dropdownWidth() + 'px' : 'auto'\"\n [style.max-height]=\"dropdownMaxHeight() ? dropdownMaxHeight() + 'px' : null\"\n >\n <ul\n [id]=\"listboxId()\"\n class=\"tedi-select__options\"\n [class.tedi-select__options--multiselect]=\"allowMultiple()\"\n [class.tedi-select__options--swatch-grid]=\"dropdownType() === 'grid'\"\n cdkListbox\n [cdkListboxMultiple]=\"allowMultiple()\"\n [cdkListboxValue]=\"visibleSelectedValues()\"\n [cdkListboxNavigatesDisabledOptions]=\"false\"\n [cdkListboxUseActiveDescendant]=\"true\"\n (cdkListboxValueChange)=\"handleValueChange($event)\"\n (keydown.tab)=\"toggleIsOpen(true)\"\n (keydown.escape)=\"toggleIsOpen(true)\"\n #listbox=\"cdkListbox\"\n >\n @if (filteredOptions().length) {\n @if (allowMultiple() && showSelectAll()) {\n <li\n class=\"tedi-dropdown-item\"\n [cdkOption]=\"SpecialOptionControls.SELECT_ALL\"\n >\n <tedi-dropdown-item-value type=\"checkbox\" [selected]=\"allOptionsSelected()\">\n <tedi-dropdown-item-value-label>{{ \"select.select-all\" | tediTranslate }}</tedi-dropdown-item-value-label>\n </tedi-dropdown-item-value>\n </li>\n }\n\n @for (group of optionGroups(); track group.label) {\n @if (group.label.length > 0) {\n @if (allowMultiple() && selectableGroups()) {\n <li\n class=\"tedi-dropdown-item tedi-select__group-name tedi-select__group-name--selectable\"\n [cdkOption]=\"SpecialOptionControls.SELECT_GROUP + group.label\"\n >\n <tedi-dropdown-item-value type=\"checkbox\" [selected]=\"isGroupSelected(group.label)\" [indeterminate]=\"isGroupIndeterminate(group.label)\">\n <tedi-dropdown-item-value-label>{{ group.label }}</tedi-dropdown-item-value-label>\n </tedi-dropdown-item-value>\n </li>\n } @else {\n <li class=\"tedi-select__group-name\" role=\"presentation\">\n <span tedi-text color=\"tertiary\">\n {{ group.label }}\n </span>\n </li>\n }\n }\n\n @for (option of group.options; track option.value; let i = $index) {\n <li\n class=\"tedi-dropdown-item\"\n [class.tedi-dropdown-item--selected]=\"!allowMultiple() && isOptionSelected(option.value)\"\n [class.tedi-dropdown-item--disabled]=\"option.disabled\"\n [class.tedi-dropdown-item--custom]=\"optionTemplate()\"\n [cdkOption]=\"option.value\"\n [cdkOptionDisabled]=\"option.disabled\"\n >\n @if (optionTemplate(); as tpl) {\n <ng-container\n [ngTemplateOutlet]=\"tpl.template\"\n [ngTemplateOutletContext]=\"getOptionContext(option, i)\"\n />\n } @else {\n <tedi-dropdown-item-value\n [type]=\"allowMultiple() ? 'checkbox' : 'default'\"\n [selected]=\"isOptionSelected(option.value)\"\n [disabled]=\"!!option.disabled\"\n >\n <tedi-dropdown-item-value-label>{{ option.label }}</tedi-dropdown-item-value-label>\n </tedi-dropdown-item-value>\n }\n </li>\n }\n }\n } @else {\n <li class=\"tedi-dropdown-item tedi-select__no-options\">\n {{ noOptionsMessage() || (\"select.no-options\" | tediTranslate) }}\n </li>\n }\n </ul>\n </div>\n</ng-template>\n", styles: ["li[tedi-dropdown-item],.tedi-dropdown-item{display:flex;gap:var(--dropdown-item-inner-spacing);align-items:center;width:100%;min-height:40px;padding:var(--dropdown-item-padding-y) var(--dropdown-item-padding-x);color:var(--dropdown-item-default-text);cursor:pointer;background:var(--dropdown-item-default-background)}li[tedi-dropdown-item]:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]),.tedi-dropdown-item:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]){color:var(--dropdown-item-hover-text);background:var(--dropdown-item-hover-background)}li[tedi-dropdown-item]:focus-visible,.tedi-dropdown-item:focus-visible{outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:calc(-1 * var(--borders-02))}li[tedi-dropdown-item][aria-selected=true],li[tedi-dropdown-item].tedi-dropdown-item--selected,.tedi-dropdown-item[aria-selected=true],.tedi-dropdown-item.tedi-dropdown-item--selected{color:var(--dropdown-item-active-text);background:var(--dropdown-item-active-background)}li[tedi-dropdown-item][aria-disabled=true],li[tedi-dropdown-item].tedi-dropdown-item--disabled,.tedi-dropdown-item[aria-disabled=true],.tedi-dropdown-item.tedi-dropdown-item--disabled{color:var(--general-text-disabled);cursor:not-allowed;background:var(--dropdown-item-disabled-background)}.tedi-input{--_border-color: var(--form-input-border-default);--_color: var(--form-input-text-filled);--_background-color: var(--form-input-background-default);--_placeholder-color: var(--form-input-text-placeholder);--_border-radius: var(--form-field-radius);--_font-size: var(--body-regular-size);--_line-height: var(--body-regular-line-height);--_padding-y: var(--form-field-padding-y-md-default);--_padding-x: var(--form-field-padding-x-md-default);--_search-input-min-width: 50px;min-height:var(--form-field-height);padding:calc(var(--_padding-y) - var(--borders-01)) var(--_padding-x);margin-bottom:0;font-family:var(--family-default);font-size:var(--_font-size);line-height:var(--_line-height);color:var(--_color);background-color:var(--_background-color);border:var(--borders-01) solid var(--_border-color);border-radius:var(--_border-radius)}.tedi-input:hover{--_border-color: var(--form-input-border-hover)}.tedi-input:focus,.tedi-input:active,.tedi-input.tedi-select__trigger--search-focused{border-color:var(--form-input-border-hover);box-shadow:inset 0 0 0 1px var(--form-input-border-hover)}.tedi-input--disabled{--_color: var(--form-input-text-disabled);--_border-color: var(--form-input-border-disabled);--_background-color: var(--form-input-background-disabled);pointer-events:none}.tedi-input--error:not(.tedi-input--disabled){--_border-color: var(--form-general-feedback-error-border)}.tedi-input--error:not(.tedi-input--disabled):focus,.tedi-input--error:not(.tedi-input--disabled):active,.tedi-input--error:not(.tedi-input--disabled).tedi-select__trigger--search-focused{border-color:var(--form-general-feedback-error-border);box-shadow:inset 0 0 0 1px var(--form-general-feedback-error-border)}.tedi-input--valid:not(.tedi-input--disabled){--_border-color: var(--form-general-feedback-success-border)}.tedi-input--valid:not(.tedi-input--disabled):focus,.tedi-input--valid:not(.tedi-input--disabled):active,.tedi-input--valid:not(.tedi-input--disabled).tedi-select__trigger--search-focused{border-color:var(--form-general-feedback-success-border);box-shadow:inset 0 0 0 1px var(--form-general-feedback-success-border)}.tedi-input--small{--_padding-y: var(--form-field-padding-y-sm);min-height:var(--form-field-height-sm)}.tedi-select{display:block;width:100%}.tedi-select .tedi-feedback-text{margin-top:var(--form-field-outer-spacing)}.tedi-select__trigger{display:flex;justify-content:space-between;width:100%;cursor:pointer}.tedi-select__label{flex-grow:1;overflow:hidden;text-align:left;cursor:default}.tedi-select__label--placeholder{color:var(--_placeholder-color);pointer-events:none}.tedi-select__clear{flex-grow:0;padding:0;margin:0;color:var(--button-close-text-default);cursor:pointer;background:none;border:none}.tedi-select__clear+.tedi-select__arrow{border-left:1px solid var(--general-border-primary)}.tedi-select__arrow{flex-grow:0;padding-left:var(--form-field-inner-spacing);margin-left:var(--form-field-inner-spacing);cursor:default}.tedi-select__dropdown{display:flex;flex-direction:column;max-height:100%;margin-top:var(--form-field-outer-spacing);margin-bottom:var(--form-field-outer-spacing);background:var(--card-background-primary);border-radius:var(--card-border-radius);box-shadow:0 1px 5px 0 var(--tedi-alpha-20)}.tedi-select__trigger--searchable{cursor:text}.tedi-select__search-wrapper{position:relative;display:flex;flex-grow:1;flex-wrap:wrap;gap:var(--form-field-inner-spacing);align-items:center;min-height:var(--_line-height);overflow:hidden}.tedi-select__selected-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;pointer-events:none}.tedi-select__search-input{position:absolute;top:0;left:0;width:100%;height:100%;padding:0;font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;background:transparent;border:none}.tedi-select__search-input:focus{outline:none}.tedi-select__search-input::placeholder{color:var(--form-input-text-placeholder)}.tedi-select__search-input--hidden{color:transparent;caret-color:var(--form-input-text-filled)}.tedi-select__search-input:not(.tedi-select__search-input--hidden){position:relative;flex:1;width:auto;min-width:var(--_search-input-min-width);height:auto}.tedi-select__options{flex:1;min-height:0;padding:0;margin:0;overflow-y:auto;outline:none}.tedi-select__options .tedi-dropdown-item{outline:none}.tedi-select__options .tedi-dropdown-item.cdk-option-active:not(.tedi-dropdown-item--disabled){outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:calc(-1 * var(--borders-02))}.tedi-select__options .tedi-dropdown-item[aria-selected=true],.tedi-select__options .tedi-dropdown-item.tedi-dropdown-item--selected{color:var(--dropdown-item-active-text);background:var(--dropdown-item-active-background)}.tedi-select__options .tedi-dropdown-item[aria-selected=true] .tedi-icon,.tedi-select__options .tedi-dropdown-item.tedi-dropdown-item--selected .tedi-icon{color:inherit}.tedi-select__dropdown-item--label{display:none}.tedi-select__dropdown-item--custom-content:empty+.tedi-select__dropdown-item--label{display:block}.tedi-select__group-name{display:block;padding:var(--dropdown-group-label-padding-y) var(--dropdown-group-label-padding-x) var(--layout-grid-gutters-04);font-size:var(--heading-subtitle-small-size);font-weight:var(--heading-subtitle-small-weight);line-height:var(--heading-subtitle-small-line-height);text-transform:uppercase;letter-spacing:0}.tedi-select__group-name--selectable{padding:var(--dropdown-item-padding-y) var(--dropdown-item-padding-x);font-size:var(--body-regular-size);font-weight:var(--body-regular-weight);line-height:var(--body-regular-line-height);text-transform:none;letter-spacing:inherit}.tedi-select__group-name--selectable~.tedi-dropdown-item:not(.tedi-select__group-name){padding-left:var(--form-checkbox-radio-subitem-padding-left)}.tedi-select--multiselect .tedi-select__trigger{align-items:flex-start}.tedi-select__multiselect-container{display:flex;flex-wrap:wrap;gap:var(--form-field-inner-spacing)}.tedi-select__multiselect-container--single-row{flex-wrap:nowrap;overflow:hidden}.tedi-select__multiselect-container--single-row .tedi-tag{flex-shrink:0}.tedi-select__multiselect-container--single-row .tedi-tag__content{white-space:nowrap}.tedi-select__no-options{color:var(--general-text-tertiary);cursor:default}.tedi-select__no-options:hover{color:var(--general-text-tertiary);background:var(--dropdown-item-default-background)}.tedi-select__dropdown:has(.tedi-select__options--swatch-grid){width:fit-content}.tedi-select__options--swatch-grid{--tedi-swatch-size: 24px;--tedi-swatch-gap: var(--layout-grid-gutters-04);--tedi-swatch-columns: 11;display:grid;grid-template-columns:repeat(auto-fit,var(--tedi-swatch-size));gap:var(--tedi-swatch-gap);max-width:calc(var(--tedi-swatch-columns) * (var(--tedi-swatch-size) + var(--tedi-swatch-gap)));padding:var(--dropdown-body-padding-y) var(--dropdown-body-padding-x)}.tedi-select__options--swatch-grid .tedi-dropdown-item{display:flex;align-items:center;justify-content:center;width:var(--tedi-swatch-size);height:var(--tedi-swatch-size);min-height:auto;padding:var(--layout-grid-gutters-02);color:inherit;background:transparent;border-radius:var(--card-radius-rounded)}.tedi-select__options--swatch-grid .tedi-dropdown-item.cdk-option-active:not(.tedi-dropdown-item--disabled){outline-offset:0}.tedi-select__options--swatch-grid .tedi-dropdown-item[aria-selected=true],.tedi-select__options--swatch-grid .tedi-dropdown-item.tedi-dropdown-item--selected{color:inherit;background:transparent;border:var(--borders-02) solid var(--card-border-selected)}.tedi-select__options--swatch-grid .tedi-dropdown-item:hover:not(.tedi-dropdown-item--disabled){background:transparent}\n"] }]
3373
+ }], ctorParameters: () => [], propDecorators: { onWindowResize: [{
3374
+ type: HostListener,
3375
+ args: ["window:resize"]
3376
+ }], onDocumentClick: [{
3377
+ type: HostListener,
3378
+ args: ["document:click", ["$event"]]
3379
+ }] } });
3380
+
3381
+ class ToggleComponent {
3382
+ /**
3383
+ * The unique identifier for the input element that is associated with label.
3384
+ */
3385
+ inputId = input.required();
3386
+ /**
3387
+ * Is toggle checked? Supports two-way binding, use with form controls.
3388
+ */
3389
+ checked = model(false);
3390
+ /**
3391
+ * Is input disabled?
3392
+ * @default false
3393
+ */
3394
+ disabled = input(false);
3395
+ /**
3396
+ * Indicates whether the input field is required.
3397
+ * @default false
3398
+ */
3399
+ required = input(false);
3400
+ /**
3401
+ * Color variant of the toggle
3402
+ * @default primary
3403
+ */
3404
+ variant = input("primary");
3405
+ /**
3406
+ * Type of the toggle
3407
+ * @default filled
3408
+ */
3409
+ type = input("filled");
3410
+ /**
3411
+ * Size of the toggle
3412
+ * @default default
3413
+ */
3414
+ size = input("default");
3415
+ /**
3416
+ * Should the toggle show lock icon. Works only with large toggle.
3417
+ * @default false
3418
+ */
3419
+ icon = input(false);
3420
+ inputRef;
3421
+ onChange = () => { };
3422
+ onTouched = () => { };
3423
+ writeValue(checked) {
3424
+ this.checked.set(checked);
3425
+ }
3426
+ registerOnChange(fn) {
3427
+ this.onChange = fn;
3428
+ }
3429
+ registerOnTouched(fn) {
3430
+ this.onTouched = fn;
3431
+ }
3432
+ focus() {
3433
+ this.inputRef.nativeElement.focus();
3434
+ }
3435
+ blur() {
3436
+ this.inputRef.nativeElement.blur();
3437
+ this.onTouched();
3438
+ }
3439
+ handleChange = (event) => {
3440
+ const target = event.target;
3441
+ this.checked.set(target.checked);
3442
+ this.onChange(target.checked);
3443
+ };
3444
+ classes = computed(() => {
3445
+ return [
3446
+ "tedi-toggle",
3447
+ `tedi-toggle--${this.variant()}-${this.type()}`,
3448
+ `tedi-toggle--size-${this.size()}`,
3449
+ ].join(" ");
3450
+ });
3451
+ iconColor = computed(() => {
3452
+ if (this.type() === "outlined") {
3453
+ return 'white';
3454
+ }
3455
+ switch (this.variant()) {
3456
+ case "primary":
3457
+ return this.checked() ? "brand" : "tertiary";
3458
+ case "colored":
3459
+ return this.checked() ? "success" : "danger";
3460
+ }
3461
+ });
3462
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3463
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: ToggleComponent, isStandalone: true, selector: "tedi-toggle", inputs: { inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: true, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: "checkedChange" }, host: { properties: { "class": "classes()" } }, providers: [
3464
+ {
3465
+ provide: NG_VALUE_ACCESSOR,
3466
+ useExisting: forwardRef(() => ToggleComponent),
3467
+ multi: true
3468
+ }
3469
+ ], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "<input\n #inputElement\n [id]=\"inputId()\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n [attr.aria-checked]=\"checked()\"\n type=\"checkbox\"\n class=\"tedi-toggle__input\"\n role=\"switch\"\n (change)=\"handleChange($event)\"\n/>\n<span class=\"tedi-toggle__slider\" aria-hidden=\"true\">\n @if (icon() && size() === 'large') {\n <tedi-icon\n [name]=\"checked() ? 'lock_open_right' : 'lock'\"\n [color]=\"iconColor()\"\n [size]=\"16\"\n class=\"tedi-toggle__icon\"\n />\n }\n</span>\n", styles: [".tedi-toggle{position:relative;display:block}.tedi-toggle--size-default{--_toggle-indicator: var(--form-toggl-default-indicator);width:var(--form-toggl-default-width);height:var(--form-toggl-default-height)}.tedi-toggle--size-default .tedi-toggle__slider{width:var(--form-toggl-default-indicator);height:var(--form-toggl-default-indicator)}.tedi-toggle--size-large{--_toggle-indicator: var(--form-toggl-large-indicator);width:var(--form-toggl-large-width);height:var(--form-toggl-large-height)}.tedi-toggle--size-large .tedi-toggle__slider{width:var(--form-toggl-large-indicator);height:var(--form-toggl-large-indicator)}.tedi-toggle--primary-filled .tedi-toggle__input{background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-filled .tedi-toggle__input:hover{background-color:var(--form-toggl-primary-inactive-hover)}.tedi-toggle--primary-filled .tedi-toggle__input:active{background-color:var(--form-toggl-primary-inactive-active)}.tedi-toggle--primary-filled .tedi-toggle__input:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-filled .tedi-toggle__input:disabled{cursor:not-allowed;background-color:var(--form-toggl-primary-inactive-default);opacity:.5}.tedi-toggle--primary-filled .tedi-toggle__input:disabled+.tedi-toggle__slider .tedi-toggle__icon{opacity:.5}.tedi-toggle--primary-filled .tedi-toggle__input+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-indicator)}.tedi-toggle--primary-filled .tedi-toggle__input:checked{background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-filled .tedi-toggle__input:checked:hover{background-color:var(--form-toggl-primary-active-hover)}.tedi-toggle--primary-filled .tedi-toggle__input:checked:active{background-color:var(--form-toggl-primary-active-active)}.tedi-toggle--primary-filled .tedi-toggle__input:checked:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-filled .tedi-toggle__input:checked:disabled{cursor:not-allowed;background-color:var(--form-toggl-primary-active-default);opacity:.5}.tedi-toggle--primary-filled .tedi-toggle__input:checked:disabled+.tedi-toggle__slider .tedi-toggle__icon{opacity:.5}.tedi-toggle--primary-filled .tedi-toggle__input:checked+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-indicator)}.tedi-toggle--primary-outlined .tedi-toggle__input{border:var(--borders-01) solid var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:hover{border:var(--borders-01) solid var(--form-toggl-primary-inactive-hover)}.tedi-toggle--primary-outlined .tedi-toggle__input:hover+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-hover)}.tedi-toggle--primary-outlined .tedi-toggle__input:active{border:var(--borders-01) solid var(--form-toggl-primary-inactive-active)}.tedi-toggle--primary-outlined .tedi-toggle__input:active+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-active)}.tedi-toggle--primary-outlined .tedi-toggle__input:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);border:var(--borders-01) solid var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:focus-visible+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:disabled{cursor:not-allowed;border:var(--borders-01) solid var(--form-toggl-primary-inactive-default);opacity:.5}.tedi-toggle--primary-outlined .tedi-toggle__input:disabled+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:disabled+.tedi-toggle__slider{opacity:.5}.tedi-toggle--primary-outlined .tedi-toggle__input:checked{border:var(--borders-01) solid var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:hover{border:var(--borders-01) solid var(--form-toggl-primary-active-hover)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:hover+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-hover)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:active{border:var(--borders-01) solid var(--form-toggl-primary-active-active)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:active+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-active)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);border:var(--borders-01) solid var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:focus-visible+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:disabled{cursor:not-allowed;border:var(--borders-01) solid var(--form-toggl-primary-active-default);opacity:.5}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:disabled+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:disabled+.tedi-toggle__slider{opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input{background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-filled .tedi-toggle__input:hover{background-color:var(--form-toggl-colored-inactive-hover)}.tedi-toggle--colored-filled .tedi-toggle__input:active{background-color:var(--form-toggl-colored-inactive-active)}.tedi-toggle--colored-filled .tedi-toggle__input:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-filled .tedi-toggle__input:disabled{cursor:not-allowed;background-color:var(--form-toggl-colored-inactive-default);opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input:disabled+.tedi-toggle__slider .tedi-toggle__icon{opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-indicator)}.tedi-toggle--colored-filled .tedi-toggle__input:checked{background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-filled .tedi-toggle__input:checked:hover{background-color:var(--form-toggl-colored-active-hover)}.tedi-toggle--colored-filled .tedi-toggle__input:checked:active{background-color:var(--form-toggl-colored-active-active)}.tedi-toggle--colored-filled .tedi-toggle__input:checked:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-filled .tedi-toggle__input:checked:disabled{cursor:not-allowed;background-color:var(--form-toggl-colored-active-default);opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input:checked:disabled+.tedi-toggle__slider .tedi-toggle__icon{opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input:checked+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-indicator)}.tedi-toggle--colored-outlined .tedi-toggle__input{border:var(--borders-01) solid var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:hover{border:var(--borders-01) solid var(--form-toggl-colored-inactive-hover)}.tedi-toggle--colored-outlined .tedi-toggle__input:hover+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-hover)}.tedi-toggle--colored-outlined .tedi-toggle__input:active{border:var(--borders-01) solid var(--form-toggl-colored-inactive-active)}.tedi-toggle--colored-outlined .tedi-toggle__input:active+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-active)}.tedi-toggle--colored-outlined .tedi-toggle__input:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);border:var(--borders-01) solid var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:focus-visible+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:disabled{cursor:not-allowed;border:var(--borders-01) solid var(--form-toggl-colored-inactive-default);opacity:.5}.tedi-toggle--colored-outlined .tedi-toggle__input:disabled+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:disabled+.tedi-toggle__slider{opacity:.5}.tedi-toggle--colored-outlined .tedi-toggle__input:checked{border:var(--borders-01) solid var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:hover{border:var(--borders-01) solid var(--form-toggl-colored-active-hover)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:hover+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-hover)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:active{border:var(--borders-01) solid var(--form-toggl-colored-active-active)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:active+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-active)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);border:var(--borders-01) solid var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:focus-visible+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:disabled{cursor:not-allowed;border:var(--borders-01) solid var(--form-toggl-colored-active-default);opacity:.5}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:disabled+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:disabled+.tedi-toggle__slider{opacity:.5}.tedi-toggle__input{width:100%;height:100%;margin:0;appearance:none;cursor:pointer;border-radius:var(--form-toggl-radius)}.tedi-toggle__input:checked+.tedi-toggle__slider{left:calc(100% - var(--_toggle-indicator) - var(--form-toggl-padding));transform:translateY(-50%)}.tedi-toggle__slider{position:absolute;top:50%;left:var(--form-toggl-padding);display:flex;align-items:center;justify-content:center;pointer-events:none;border-radius:50%;transform:translateY(-50%);transition:left .17s ease-out}\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 });
3470
+ }
3471
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ToggleComponent, decorators: [{
3472
+ type: Component,
3473
+ args: [{ selector: "tedi-toggle", standalone: true, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [IconComponent], providers: [
3474
+ {
3475
+ provide: NG_VALUE_ACCESSOR,
3476
+ useExisting: forwardRef(() => ToggleComponent),
3477
+ multi: true
3478
+ }
3479
+ ], host: {
3480
+ "[class]": "classes()"
3481
+ }, template: "<input\n #inputElement\n [id]=\"inputId()\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n [attr.aria-checked]=\"checked()\"\n type=\"checkbox\"\n class=\"tedi-toggle__input\"\n role=\"switch\"\n (change)=\"handleChange($event)\"\n/>\n<span class=\"tedi-toggle__slider\" aria-hidden=\"true\">\n @if (icon() && size() === 'large') {\n <tedi-icon\n [name]=\"checked() ? 'lock_open_right' : 'lock'\"\n [color]=\"iconColor()\"\n [size]=\"16\"\n class=\"tedi-toggle__icon\"\n />\n }\n</span>\n", styles: [".tedi-toggle{position:relative;display:block}.tedi-toggle--size-default{--_toggle-indicator: var(--form-toggl-default-indicator);width:var(--form-toggl-default-width);height:var(--form-toggl-default-height)}.tedi-toggle--size-default .tedi-toggle__slider{width:var(--form-toggl-default-indicator);height:var(--form-toggl-default-indicator)}.tedi-toggle--size-large{--_toggle-indicator: var(--form-toggl-large-indicator);width:var(--form-toggl-large-width);height:var(--form-toggl-large-height)}.tedi-toggle--size-large .tedi-toggle__slider{width:var(--form-toggl-large-indicator);height:var(--form-toggl-large-indicator)}.tedi-toggle--primary-filled .tedi-toggle__input{background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-filled .tedi-toggle__input:hover{background-color:var(--form-toggl-primary-inactive-hover)}.tedi-toggle--primary-filled .tedi-toggle__input:active{background-color:var(--form-toggl-primary-inactive-active)}.tedi-toggle--primary-filled .tedi-toggle__input:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-filled .tedi-toggle__input:disabled{cursor:not-allowed;background-color:var(--form-toggl-primary-inactive-default);opacity:.5}.tedi-toggle--primary-filled .tedi-toggle__input:disabled+.tedi-toggle__slider .tedi-toggle__icon{opacity:.5}.tedi-toggle--primary-filled .tedi-toggle__input+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-indicator)}.tedi-toggle--primary-filled .tedi-toggle__input:checked{background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-filled .tedi-toggle__input:checked:hover{background-color:var(--form-toggl-primary-active-hover)}.tedi-toggle--primary-filled .tedi-toggle__input:checked:active{background-color:var(--form-toggl-primary-active-active)}.tedi-toggle--primary-filled .tedi-toggle__input:checked:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-filled .tedi-toggle__input:checked:disabled{cursor:not-allowed;background-color:var(--form-toggl-primary-active-default);opacity:.5}.tedi-toggle--primary-filled .tedi-toggle__input:checked:disabled+.tedi-toggle__slider .tedi-toggle__icon{opacity:.5}.tedi-toggle--primary-filled .tedi-toggle__input:checked+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-indicator)}.tedi-toggle--primary-outlined .tedi-toggle__input{border:var(--borders-01) solid var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:hover{border:var(--borders-01) solid var(--form-toggl-primary-inactive-hover)}.tedi-toggle--primary-outlined .tedi-toggle__input:hover+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-hover)}.tedi-toggle--primary-outlined .tedi-toggle__input:active{border:var(--borders-01) solid var(--form-toggl-primary-inactive-active)}.tedi-toggle--primary-outlined .tedi-toggle__input:active+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-active)}.tedi-toggle--primary-outlined .tedi-toggle__input:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);border:var(--borders-01) solid var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:focus-visible+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:disabled{cursor:not-allowed;border:var(--borders-01) solid var(--form-toggl-primary-inactive-default);opacity:.5}.tedi-toggle--primary-outlined .tedi-toggle__input:disabled+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:disabled+.tedi-toggle__slider{opacity:.5}.tedi-toggle--primary-outlined .tedi-toggle__input:checked{border:var(--borders-01) solid var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:hover{border:var(--borders-01) solid var(--form-toggl-primary-active-hover)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:hover+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-hover)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:active{border:var(--borders-01) solid var(--form-toggl-primary-active-active)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:active+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-active)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);border:var(--borders-01) solid var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:focus-visible+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:disabled{cursor:not-allowed;border:var(--borders-01) solid var(--form-toggl-primary-active-default);opacity:.5}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:disabled+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:disabled+.tedi-toggle__slider{opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input{background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-filled .tedi-toggle__input:hover{background-color:var(--form-toggl-colored-inactive-hover)}.tedi-toggle--colored-filled .tedi-toggle__input:active{background-color:var(--form-toggl-colored-inactive-active)}.tedi-toggle--colored-filled .tedi-toggle__input:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-filled .tedi-toggle__input:disabled{cursor:not-allowed;background-color:var(--form-toggl-colored-inactive-default);opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input:disabled+.tedi-toggle__slider .tedi-toggle__icon{opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-indicator)}.tedi-toggle--colored-filled .tedi-toggle__input:checked{background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-filled .tedi-toggle__input:checked:hover{background-color:var(--form-toggl-colored-active-hover)}.tedi-toggle--colored-filled .tedi-toggle__input:checked:active{background-color:var(--form-toggl-colored-active-active)}.tedi-toggle--colored-filled .tedi-toggle__input:checked:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-filled .tedi-toggle__input:checked:disabled{cursor:not-allowed;background-color:var(--form-toggl-colored-active-default);opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input:checked:disabled+.tedi-toggle__slider .tedi-toggle__icon{opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input:checked+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-indicator)}.tedi-toggle--colored-outlined .tedi-toggle__input{border:var(--borders-01) solid var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:hover{border:var(--borders-01) solid var(--form-toggl-colored-inactive-hover)}.tedi-toggle--colored-outlined .tedi-toggle__input:hover+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-hover)}.tedi-toggle--colored-outlined .tedi-toggle__input:active{border:var(--borders-01) solid var(--form-toggl-colored-inactive-active)}.tedi-toggle--colored-outlined .tedi-toggle__input:active+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-active)}.tedi-toggle--colored-outlined .tedi-toggle__input:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);border:var(--borders-01) solid var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:focus-visible+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:disabled{cursor:not-allowed;border:var(--borders-01) solid var(--form-toggl-colored-inactive-default);opacity:.5}.tedi-toggle--colored-outlined .tedi-toggle__input:disabled+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:disabled+.tedi-toggle__slider{opacity:.5}.tedi-toggle--colored-outlined .tedi-toggle__input:checked{border:var(--borders-01) solid var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:hover{border:var(--borders-01) solid var(--form-toggl-colored-active-hover)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:hover+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-hover)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:active{border:var(--borders-01) solid var(--form-toggl-colored-active-active)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:active+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-active)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);border:var(--borders-01) solid var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:focus-visible+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:disabled{cursor:not-allowed;border:var(--borders-01) solid var(--form-toggl-colored-active-default);opacity:.5}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:disabled+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:disabled+.tedi-toggle__slider{opacity:.5}.tedi-toggle__input{width:100%;height:100%;margin:0;appearance:none;cursor:pointer;border-radius:var(--form-toggl-radius)}.tedi-toggle__input:checked+.tedi-toggle__slider{left:calc(100% - var(--_toggle-indicator) - var(--form-toggl-padding));transform:translateY(-50%)}.tedi-toggle__slider{position:absolute;top:50%;left:var(--form-toggl-padding);display:flex;align-items:center;justify-content:center;pointer-events:none;border-radius:50%;transform:translateY(-50%);transition:left .17s ease-out}\n"] }]
3482
+ }], propDecorators: { inputRef: [{
3483
+ type: ViewChild,
3484
+ args: ['inputElement']
3485
+ }] } });
3486
+
3487
+ class SeparatorComponent {
3488
+ /**
3489
+ * Axis of separator.
3490
+ */
3491
+ axis = input("horizontal");
3492
+ /**
3493
+ * Color of separator
3494
+ */
3495
+ color = input("primary");
3496
+ /**
3497
+ * Separator style variant.
3498
+ */
3499
+ variant = input();
3500
+ /**
3501
+ * Dot size. Only used when variant is "dot-only".
3502
+ */
3503
+ dotSize = input();
3504
+ /**
3505
+ * Is dot filled? Only used when variant is "dot-only".
3506
+ */
3507
+ dotFilled = input(true);
3508
+ /**
3509
+ * Thickness in pixels (ignored if variant is used).
3510
+ * @default 1
3511
+ */
3512
+ thickness = input(1);
3513
+ /**
3514
+ * Spacing applied based on the axis:
3515
+ * - For horizontal axis, spacing is applied to top and bottom of the separator.
3516
+ * - For vertical axis, spacing is applied to left and right of the separator.
3517
+ */
3518
+ spacing = input();
3519
+ /**
3520
+ * Size of separator based on the axis:
3521
+ * - For horizontal axis, size defines width.
3522
+ * - For vertical axis, size defines height (when using percentages, then parent container must have height set).
3523
+ * @default 100%
3524
+ */
3525
+ size = input("100%");
3526
+ // eslint-disable-next-line complexity
3527
+ classes = computed(() => {
3528
+ const classList = [
3529
+ "tedi-separator",
3530
+ `tedi-separator--${this.color()}`,
3531
+ `tedi-separator--${this.axis()}`,
3532
+ ];
3533
+ if (this.variant()) {
3534
+ classList.push(`tedi-separator--${this.variant()}`);
3535
+ }
3536
+ if (this.variant() && this.dotSize()) {
3537
+ classList.push(`tedi-separator--${this.variant()}-${this.dotSize()}`);
3538
+ }
3539
+ if (this.variant() === "dot-only" && this.dotFilled()) {
3540
+ classList.push(`tedi-separator--${this.variant()}-filled`);
3541
+ }
3542
+ else {
3543
+ classList.push(`tedi-separator--${this.variant()}-outlined`);
3544
+ }
3545
+ if (this.thickness()) {
3546
+ classList.push(`tedi-separator--thickness-${this.thickness()}`);
3547
+ }
3548
+ const spacing = this.spacing();
3549
+ if (spacing && typeof spacing === "number") {
3550
+ classList.push(`tedi-separator--spacing-${spacing}`.replace(".", "-"));
3551
+ }
3552
+ else if (spacing) {
3553
+ if (this.axis() === "horizontal") {
3554
+ if (spacing.top) {
3555
+ classList.push(`tedi-separator--top-${spacing.top}`.replace(".", "-"));
3556
+ }
3557
+ if (spacing.bottom) {
3558
+ classList.push(`tedi-separator--bottom-${spacing.bottom}`.replace(".", "-"));
3559
+ }
3560
+ }
3561
+ else {
3562
+ if (spacing.left) {
3563
+ classList.push(`tedi-separator--left-${spacing.left}`.replace(".", "-"));
3564
+ }
3565
+ if (spacing.right) {
3566
+ classList.push(`tedi-separator--right-${spacing.right}`.replace(".", "-"));
3567
+ }
3568
+ }
3569
+ }
3570
+ return classList.join(" ");
3571
+ });
3572
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SeparatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3573
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.15", type: SeparatorComponent, isStandalone: true, selector: "tedi-separator", inputs: { axis: { classPropertyName: "axis", publicName: "axis", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, dotSize: { classPropertyName: "dotSize", publicName: "dotSize", isSignal: true, isRequired: false, transformFunction: null }, dotFilled: { classPropertyName: "dotFilled", publicName: "dotFilled", isSignal: true, isRequired: false, transformFunction: null }, thickness: { classPropertyName: "thickness", publicName: "thickness", isSignal: true, isRequired: false, transformFunction: null }, spacing: { classPropertyName: "spacing", publicName: "spacing", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "style.width": "variant() === 'dot-only' ? null : axis() === 'horizontal' ? size() : '0px'", "style.height": "variant() === 'dot-only' ? null : axis() === 'vertical' ? size() : '0px'" } }, ngImport: i0, template: "", isInline: true, styles: [".tedi-separator{position:relative;display:block;margin:0;border:0;border-style:solid;border-top-width:1px}@media print{.tedi-separator{filter:grayscale(1)}}.tedi-separator--vertical{border-top-width:0;border-left-width:1px}.tedi-separator--primary{border-color:var(--general-border-primary)}.tedi-separator--secondary{border-color:var(--general-border-secondary)}.tedi-separator--accent{border-color:var(--general-border-accent)}.tedi-separator--block{display:block}.tedi-separator--inline{display:inline}.tedi-separator--dotted:before,.tedi-separator--dotted-small:before{position:absolute;top:1.25rem;width:var(--separator-dotted-dot-lg);height:var(--separator-dotted-dot-lg);content:\"\";background-color:var(--general-border-primary);border-radius:100%;transform:translate(-8px)}@media print{.tedi-separator--dotted:before,.tedi-separator--dotted-small:before{filter:grayscale(1)}}.tedi-separator--dotted.tedi-separator--secondary:before,.tedi-separator--dotted-small.tedi-separator--secondary:before{background-color:var(--general-border-secondary)}.tedi-separator--dotted.tedi-separator--accent:before,.tedi-separator--dotted-small.tedi-separator--accent:before{background-color:var(--general-border-accent)}.tedi-separator--dotted-small:before{top:1.5rem;width:var(--separator-dotted-dot-md);height:var(--separator-dotted-dot-md);transform:translate(-5px)}.tedi-separator--horizontal.tedi-separator--top-0{margin-top:0}.tedi-separator--horizontal.tedi-separator--bottom-0{margin-bottom:0}.tedi-separator--vertical.tedi-separator--left-0{margin-left:0}.tedi-separator--vertical.tedi-separator--right-0{margin-right:0}.tedi-separator--horizontal.tedi-separator--spacing-0:not(.tedi-separator--dot-only){margin-top:0;margin-bottom:0}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-0,.tedi-separator--vertical.tedi-separator--spacing-0{margin-right:0;margin-left:0}.tedi-separator--horizontal.tedi-separator--top-0-25{margin-top:.25rem}.tedi-separator--horizontal.tedi-separator--bottom-0-25{margin-bottom:.25rem}.tedi-separator--vertical.tedi-separator--left-0-25{margin-left:.25rem}.tedi-separator--vertical.tedi-separator--right-0-25{margin-right:.25rem}.tedi-separator--horizontal.tedi-separator--spacing-0-25:not(.tedi-separator--dot-only){margin-top:.25rem;margin-bottom:.25rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-0-25,.tedi-separator--vertical.tedi-separator--spacing-0-25{margin-right:.25rem;margin-left:.25rem}.tedi-separator--horizontal.tedi-separator--top-0-5{margin-top:.5rem}.tedi-separator--horizontal.tedi-separator--bottom-0-5{margin-bottom:.5rem}.tedi-separator--vertical.tedi-separator--left-0-5{margin-left:.5rem}.tedi-separator--vertical.tedi-separator--right-0-5{margin-right:.5rem}.tedi-separator--horizontal.tedi-separator--spacing-0-5:not(.tedi-separator--dot-only){margin-top:.5rem;margin-bottom:.5rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-0-5,.tedi-separator--vertical.tedi-separator--spacing-0-5{margin-right:.5rem;margin-left:.5rem}.tedi-separator--horizontal.tedi-separator--top-0-75{margin-top:.75rem}.tedi-separator--horizontal.tedi-separator--bottom-0-75{margin-bottom:.75rem}.tedi-separator--vertical.tedi-separator--left-0-75{margin-left:.75rem}.tedi-separator--vertical.tedi-separator--right-0-75{margin-right:.75rem}.tedi-separator--horizontal.tedi-separator--spacing-0-75:not(.tedi-separator--dot-only){margin-top:.75rem;margin-bottom:.75rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-0-75,.tedi-separator--vertical.tedi-separator--spacing-0-75{margin-right:.75rem;margin-left:.75rem}.tedi-separator--horizontal.tedi-separator--top-1{margin-top:1rem}.tedi-separator--horizontal.tedi-separator--bottom-1{margin-bottom:1rem}.tedi-separator--vertical.tedi-separator--left-1{margin-left:1rem}.tedi-separator--vertical.tedi-separator--right-1{margin-right:1rem}.tedi-separator--horizontal.tedi-separator--spacing-1:not(.tedi-separator--dot-only){margin-top:1rem;margin-bottom:1rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-1,.tedi-separator--vertical.tedi-separator--spacing-1{margin-right:1rem;margin-left:1rem}.tedi-separator--horizontal.tedi-separator--top-1-25{margin-top:1.25rem}.tedi-separator--horizontal.tedi-separator--bottom-1-25{margin-bottom:1.25rem}.tedi-separator--vertical.tedi-separator--left-1-25{margin-left:1.25rem}.tedi-separator--vertical.tedi-separator--right-1-25{margin-right:1.25rem}.tedi-separator--horizontal.tedi-separator--spacing-1-25:not(.tedi-separator--dot-only){margin-top:1.25rem;margin-bottom:1.25rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-1-25,.tedi-separator--vertical.tedi-separator--spacing-1-25{margin-right:1.25rem;margin-left:1.25rem}.tedi-separator--horizontal.tedi-separator--top-1-5{margin-top:1.5rem}.tedi-separator--horizontal.tedi-separator--bottom-1-5{margin-bottom:1.5rem}.tedi-separator--vertical.tedi-separator--left-1-5{margin-left:1.5rem}.tedi-separator--vertical.tedi-separator--right-1-5{margin-right:1.5rem}.tedi-separator--horizontal.tedi-separator--spacing-1-5:not(.tedi-separator--dot-only){margin-top:1.5rem;margin-bottom:1.5rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-1-5,.tedi-separator--vertical.tedi-separator--spacing-1-5{margin-right:1.5rem;margin-left:1.5rem}.tedi-separator--horizontal.tedi-separator--top-1-75{margin-top:1.75rem}.tedi-separator--horizontal.tedi-separator--bottom-1-75{margin-bottom:1.75rem}.tedi-separator--vertical.tedi-separator--left-1-75{margin-left:1.75rem}.tedi-separator--vertical.tedi-separator--right-1-75{margin-right:1.75rem}.tedi-separator--horizontal.tedi-separator--spacing-1-75:not(.tedi-separator--dot-only){margin-top:1.75rem;margin-bottom:1.75rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-1-75,.tedi-separator--vertical.tedi-separator--spacing-1-75{margin-right:1.75rem;margin-left:1.75rem}.tedi-separator--horizontal.tedi-separator--top-2{margin-top:2rem}.tedi-separator--horizontal.tedi-separator--bottom-2{margin-bottom:2rem}.tedi-separator--vertical.tedi-separator--left-2{margin-left:2rem}.tedi-separator--vertical.tedi-separator--right-2{margin-right:2rem}.tedi-separator--horizontal.tedi-separator--spacing-2:not(.tedi-separator--dot-only){margin-top:2rem;margin-bottom:2rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-2,.tedi-separator--vertical.tedi-separator--spacing-2{margin-right:2rem;margin-left:2rem}.tedi-separator--horizontal.tedi-separator--top-2-5{margin-top:2.5rem}.tedi-separator--horizontal.tedi-separator--bottom-2-5{margin-bottom:2.5rem}.tedi-separator--vertical.tedi-separator--left-2-5{margin-left:2.5rem}.tedi-separator--vertical.tedi-separator--right-2-5{margin-right:2.5rem}.tedi-separator--horizontal.tedi-separator--spacing-2-5:not(.tedi-separator--dot-only){margin-top:2.5rem;margin-bottom:2.5rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-2-5,.tedi-separator--vertical.tedi-separator--spacing-2-5{margin-right:2.5rem;margin-left:2.5rem}.tedi-separator--horizontal.tedi-separator--top-5{margin-top:5rem}.tedi-separator--horizontal.tedi-separator--bottom-5{margin-bottom:5rem}.tedi-separator--vertical.tedi-separator--left-5{margin-left:5rem}.tedi-separator--vertical.tedi-separator--right-5{margin-right:5rem}.tedi-separator--horizontal.tedi-separator--spacing-5:not(.tedi-separator--dot-only){margin-top:5rem;margin-bottom:5rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-5,.tedi-separator--vertical.tedi-separator--spacing-5{margin-right:5rem;margin-left:5rem}.tedi-separator.tedi-separator--thickness-1{border-top-width:1px}.tedi-separator--vertical.tedi-separator--thickness-1{border-left-width:1px}.tedi-separator.tedi-separator--thickness-2{border-top-width:2px}.tedi-separator--vertical.tedi-separator--thickness-2{border-left-width:2px}.tedi-separator--dot-only{position:relative;display:inline-block;vertical-align:middle;border:none}.tedi-separator--dot-only:before{position:relative;display:block;width:var(--separator-dotted-dot-sm);height:var(--separator-dotted-dot-sm);content:\"\";border-radius:100%}@media print{.tedi-separator--dot-only:before{filter:grayscale(1)}}.tedi-separator--dot-only.tedi-separator--dot-only-extra-small:before{width:var(--separator-dotted-dot-xs);height:var(--separator-dotted-dot-xs)}.tedi-separator--dot-only.tedi-separator--dot-only-small:before{width:var(--separator-dotted-dot-sm);height:var(--separator-dotted-dot-sm)}.tedi-separator--dot-only.tedi-separator--dot-only-medium:before{width:var(--separator-dotted-dot-md);height:var(--separator-dotted-dot-md)}.tedi-separator--dot-only.tedi-separator--dot-only-large:before{width:var(--separator-dotted-dot-lg);height:var(--separator-dotted-dot-lg)}.tedi-separator--dot-only-filled.tedi-separator--primary:before{background-color:var(--general-border-primary)}.tedi-separator--dot-only-filled.tedi-separator--secondary:before{background-color:var(--general-border-secondary)}.tedi-separator--dot-only-filled.tedi-separator--accent:before{background-color:var(--general-border-accent)}.tedi-separator--dot-only-outlined:before{border-style:solid}.tedi-separator--dot-only-outlined.tedi-separator--primary:before{border-color:var(--general-border-primary)}.tedi-separator--dot-only-outlined.tedi-separator--secondary:before{border-color:var(--general-border-secondary)}.tedi-separator--dot-only-outlined.tedi-separator--accent:before{border-color:var(--general-border-accent)}.tedi-separator--dot-only-outlined.tedi-separator--thickness-1:before{border-width:1px}.tedi-separator--dot-only-outlined.tedi-separator--thickness-2:before{border-width:2px}.tedi-separator--horizontal.tedi-separator--dotted:before,.tedi-separator--horizontal.tedi-separator--dotted-small:before{right:0;left:0;margin:0 auto;transform:initial}.tedi-separator--horizontal.tedi-separator--dotted:before{top:calc(var(--separator-dotted-dot-lg) / 2 * -1)}.tedi-separator--horizontal.tedi-separator--dotted-small:before{top:calc(var(--separator-dotted-dot-md) / 2 * -1)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
3574
+ }
3575
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SeparatorComponent, decorators: [{
3576
+ type: Component,
3577
+ args: [{ selector: "tedi-separator", template: "", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
3578
+ "[class]": "classes()",
3579
+ "[style.width]": "variant() === 'dot-only' ? null : axis() === 'horizontal' ? size() : '0px'",
3580
+ "[style.height]": "variant() === 'dot-only' ? null : axis() === 'vertical' ? size() : '0px'",
3581
+ }, styles: [".tedi-separator{position:relative;display:block;margin:0;border:0;border-style:solid;border-top-width:1px}@media print{.tedi-separator{filter:grayscale(1)}}.tedi-separator--vertical{border-top-width:0;border-left-width:1px}.tedi-separator--primary{border-color:var(--general-border-primary)}.tedi-separator--secondary{border-color:var(--general-border-secondary)}.tedi-separator--accent{border-color:var(--general-border-accent)}.tedi-separator--block{display:block}.tedi-separator--inline{display:inline}.tedi-separator--dotted:before,.tedi-separator--dotted-small:before{position:absolute;top:1.25rem;width:var(--separator-dotted-dot-lg);height:var(--separator-dotted-dot-lg);content:\"\";background-color:var(--general-border-primary);border-radius:100%;transform:translate(-8px)}@media print{.tedi-separator--dotted:before,.tedi-separator--dotted-small:before{filter:grayscale(1)}}.tedi-separator--dotted.tedi-separator--secondary:before,.tedi-separator--dotted-small.tedi-separator--secondary:before{background-color:var(--general-border-secondary)}.tedi-separator--dotted.tedi-separator--accent:before,.tedi-separator--dotted-small.tedi-separator--accent:before{background-color:var(--general-border-accent)}.tedi-separator--dotted-small:before{top:1.5rem;width:var(--separator-dotted-dot-md);height:var(--separator-dotted-dot-md);transform:translate(-5px)}.tedi-separator--horizontal.tedi-separator--top-0{margin-top:0}.tedi-separator--horizontal.tedi-separator--bottom-0{margin-bottom:0}.tedi-separator--vertical.tedi-separator--left-0{margin-left:0}.tedi-separator--vertical.tedi-separator--right-0{margin-right:0}.tedi-separator--horizontal.tedi-separator--spacing-0:not(.tedi-separator--dot-only){margin-top:0;margin-bottom:0}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-0,.tedi-separator--vertical.tedi-separator--spacing-0{margin-right:0;margin-left:0}.tedi-separator--horizontal.tedi-separator--top-0-25{margin-top:.25rem}.tedi-separator--horizontal.tedi-separator--bottom-0-25{margin-bottom:.25rem}.tedi-separator--vertical.tedi-separator--left-0-25{margin-left:.25rem}.tedi-separator--vertical.tedi-separator--right-0-25{margin-right:.25rem}.tedi-separator--horizontal.tedi-separator--spacing-0-25:not(.tedi-separator--dot-only){margin-top:.25rem;margin-bottom:.25rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-0-25,.tedi-separator--vertical.tedi-separator--spacing-0-25{margin-right:.25rem;margin-left:.25rem}.tedi-separator--horizontal.tedi-separator--top-0-5{margin-top:.5rem}.tedi-separator--horizontal.tedi-separator--bottom-0-5{margin-bottom:.5rem}.tedi-separator--vertical.tedi-separator--left-0-5{margin-left:.5rem}.tedi-separator--vertical.tedi-separator--right-0-5{margin-right:.5rem}.tedi-separator--horizontal.tedi-separator--spacing-0-5:not(.tedi-separator--dot-only){margin-top:.5rem;margin-bottom:.5rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-0-5,.tedi-separator--vertical.tedi-separator--spacing-0-5{margin-right:.5rem;margin-left:.5rem}.tedi-separator--horizontal.tedi-separator--top-0-75{margin-top:.75rem}.tedi-separator--horizontal.tedi-separator--bottom-0-75{margin-bottom:.75rem}.tedi-separator--vertical.tedi-separator--left-0-75{margin-left:.75rem}.tedi-separator--vertical.tedi-separator--right-0-75{margin-right:.75rem}.tedi-separator--horizontal.tedi-separator--spacing-0-75:not(.tedi-separator--dot-only){margin-top:.75rem;margin-bottom:.75rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-0-75,.tedi-separator--vertical.tedi-separator--spacing-0-75{margin-right:.75rem;margin-left:.75rem}.tedi-separator--horizontal.tedi-separator--top-1{margin-top:1rem}.tedi-separator--horizontal.tedi-separator--bottom-1{margin-bottom:1rem}.tedi-separator--vertical.tedi-separator--left-1{margin-left:1rem}.tedi-separator--vertical.tedi-separator--right-1{margin-right:1rem}.tedi-separator--horizontal.tedi-separator--spacing-1:not(.tedi-separator--dot-only){margin-top:1rem;margin-bottom:1rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-1,.tedi-separator--vertical.tedi-separator--spacing-1{margin-right:1rem;margin-left:1rem}.tedi-separator--horizontal.tedi-separator--top-1-25{margin-top:1.25rem}.tedi-separator--horizontal.tedi-separator--bottom-1-25{margin-bottom:1.25rem}.tedi-separator--vertical.tedi-separator--left-1-25{margin-left:1.25rem}.tedi-separator--vertical.tedi-separator--right-1-25{margin-right:1.25rem}.tedi-separator--horizontal.tedi-separator--spacing-1-25:not(.tedi-separator--dot-only){margin-top:1.25rem;margin-bottom:1.25rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-1-25,.tedi-separator--vertical.tedi-separator--spacing-1-25{margin-right:1.25rem;margin-left:1.25rem}.tedi-separator--horizontal.tedi-separator--top-1-5{margin-top:1.5rem}.tedi-separator--horizontal.tedi-separator--bottom-1-5{margin-bottom:1.5rem}.tedi-separator--vertical.tedi-separator--left-1-5{margin-left:1.5rem}.tedi-separator--vertical.tedi-separator--right-1-5{margin-right:1.5rem}.tedi-separator--horizontal.tedi-separator--spacing-1-5:not(.tedi-separator--dot-only){margin-top:1.5rem;margin-bottom:1.5rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-1-5,.tedi-separator--vertical.tedi-separator--spacing-1-5{margin-right:1.5rem;margin-left:1.5rem}.tedi-separator--horizontal.tedi-separator--top-1-75{margin-top:1.75rem}.tedi-separator--horizontal.tedi-separator--bottom-1-75{margin-bottom:1.75rem}.tedi-separator--vertical.tedi-separator--left-1-75{margin-left:1.75rem}.tedi-separator--vertical.tedi-separator--right-1-75{margin-right:1.75rem}.tedi-separator--horizontal.tedi-separator--spacing-1-75:not(.tedi-separator--dot-only){margin-top:1.75rem;margin-bottom:1.75rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-1-75,.tedi-separator--vertical.tedi-separator--spacing-1-75{margin-right:1.75rem;margin-left:1.75rem}.tedi-separator--horizontal.tedi-separator--top-2{margin-top:2rem}.tedi-separator--horizontal.tedi-separator--bottom-2{margin-bottom:2rem}.tedi-separator--vertical.tedi-separator--left-2{margin-left:2rem}.tedi-separator--vertical.tedi-separator--right-2{margin-right:2rem}.tedi-separator--horizontal.tedi-separator--spacing-2:not(.tedi-separator--dot-only){margin-top:2rem;margin-bottom:2rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-2,.tedi-separator--vertical.tedi-separator--spacing-2{margin-right:2rem;margin-left:2rem}.tedi-separator--horizontal.tedi-separator--top-2-5{margin-top:2.5rem}.tedi-separator--horizontal.tedi-separator--bottom-2-5{margin-bottom:2.5rem}.tedi-separator--vertical.tedi-separator--left-2-5{margin-left:2.5rem}.tedi-separator--vertical.tedi-separator--right-2-5{margin-right:2.5rem}.tedi-separator--horizontal.tedi-separator--spacing-2-5:not(.tedi-separator--dot-only){margin-top:2.5rem;margin-bottom:2.5rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-2-5,.tedi-separator--vertical.tedi-separator--spacing-2-5{margin-right:2.5rem;margin-left:2.5rem}.tedi-separator--horizontal.tedi-separator--top-5{margin-top:5rem}.tedi-separator--horizontal.tedi-separator--bottom-5{margin-bottom:5rem}.tedi-separator--vertical.tedi-separator--left-5{margin-left:5rem}.tedi-separator--vertical.tedi-separator--right-5{margin-right:5rem}.tedi-separator--horizontal.tedi-separator--spacing-5:not(.tedi-separator--dot-only){margin-top:5rem;margin-bottom:5rem}.tedi-separator--horizontal.tedi-separator--dot-only.tedi-separator--spacing-5,.tedi-separator--vertical.tedi-separator--spacing-5{margin-right:5rem;margin-left:5rem}.tedi-separator.tedi-separator--thickness-1{border-top-width:1px}.tedi-separator--vertical.tedi-separator--thickness-1{border-left-width:1px}.tedi-separator.tedi-separator--thickness-2{border-top-width:2px}.tedi-separator--vertical.tedi-separator--thickness-2{border-left-width:2px}.tedi-separator--dot-only{position:relative;display:inline-block;vertical-align:middle;border:none}.tedi-separator--dot-only:before{position:relative;display:block;width:var(--separator-dotted-dot-sm);height:var(--separator-dotted-dot-sm);content:\"\";border-radius:100%}@media print{.tedi-separator--dot-only:before{filter:grayscale(1)}}.tedi-separator--dot-only.tedi-separator--dot-only-extra-small:before{width:var(--separator-dotted-dot-xs);height:var(--separator-dotted-dot-xs)}.tedi-separator--dot-only.tedi-separator--dot-only-small:before{width:var(--separator-dotted-dot-sm);height:var(--separator-dotted-dot-sm)}.tedi-separator--dot-only.tedi-separator--dot-only-medium:before{width:var(--separator-dotted-dot-md);height:var(--separator-dotted-dot-md)}.tedi-separator--dot-only.tedi-separator--dot-only-large:before{width:var(--separator-dotted-dot-lg);height:var(--separator-dotted-dot-lg)}.tedi-separator--dot-only-filled.tedi-separator--primary:before{background-color:var(--general-border-primary)}.tedi-separator--dot-only-filled.tedi-separator--secondary:before{background-color:var(--general-border-secondary)}.tedi-separator--dot-only-filled.tedi-separator--accent:before{background-color:var(--general-border-accent)}.tedi-separator--dot-only-outlined:before{border-style:solid}.tedi-separator--dot-only-outlined.tedi-separator--primary:before{border-color:var(--general-border-primary)}.tedi-separator--dot-only-outlined.tedi-separator--secondary:before{border-color:var(--general-border-secondary)}.tedi-separator--dot-only-outlined.tedi-separator--accent:before{border-color:var(--general-border-accent)}.tedi-separator--dot-only-outlined.tedi-separator--thickness-1:before{border-width:1px}.tedi-separator--dot-only-outlined.tedi-separator--thickness-2:before{border-width:2px}.tedi-separator--horizontal.tedi-separator--dotted:before,.tedi-separator--horizontal.tedi-separator--dotted-small:before{right:0;left:0;margin:0 auto;transform:initial}.tedi-separator--horizontal.tedi-separator--dotted:before{top:calc(var(--separator-dotted-dot-lg) / 2 * -1)}.tedi-separator--horizontal.tedi-separator--dotted-small:before{top:calc(var(--separator-dotted-dot-md) / 2 * -1)}\n"] }]
3582
+ }] });
3583
+
3584
+ class PopoverTriggerDirective {
3585
+ /**
3586
+ * Should add underline class to trigger element?
3587
+ * @default false
3588
+ */
3589
+ underline = input(false);
3590
+ host = inject(ElementRef);
3591
+ popover = inject(PopoverComponent);
3592
+ onClick() {
3593
+ this.popover.togglePopover();
3594
+ }
3595
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PopoverTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
3596
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.15", type: PopoverTriggerDirective, isStandalone: true, selector: "[tedi-popover-trigger]", inputs: { underline: { classPropertyName: "underline", publicName: "underline", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "tabindex": "0", "role": "button", "aria-haspopup": "dialog" }, listeners: { "click": "onClick()" }, properties: { "id": "popover.containerId() + '_trigger'", "attr.aria-expanded": "popover.floatUiComponent().state", "attr.aria-controls": "popover.containerId()", "class.tedi-popover-trigger__text": "underline()" } }, ngImport: i0 });
3597
+ }
3598
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PopoverTriggerDirective, decorators: [{
3599
+ type: Directive,
3600
+ args: [{
3601
+ standalone: true,
3602
+ selector: "[tedi-popover-trigger]",
3603
+ host: {
3604
+ tabindex: "0",
3605
+ role: "button",
3606
+ "aria-haspopup": "dialog",
3607
+ "[id]": "popover.containerId() + '_trigger'",
3608
+ "[attr.aria-expanded]": "popover.floatUiComponent().state",
3609
+ "[attr.aria-controls]": "popover.containerId()",
3610
+ "[class.tedi-popover-trigger__text]": "underline()",
3611
+ },
3612
+ }]
3613
+ }], propDecorators: { onClick: [{
3614
+ type: HostListener,
3615
+ args: ["click"]
3616
+ }] } });
3617
+
3618
+ function getFocusableElements(container) {
3619
+ const selectors = [
3620
+ "a[href]",
3621
+ "area[href]",
3622
+ "input:not([disabled]):not([type='hidden'])",
3623
+ "select:not([disabled])",
3624
+ "textarea:not([disabled])",
3625
+ "button:not([disabled])",
3626
+ "summary",
3627
+ "iframe",
3628
+ "audio[controls]",
3629
+ "video[controls]",
3630
+ "[contenteditable]:not([contenteditable='false'])",
3631
+ "[tabindex]:not([tabindex='-1'])",
3632
+ ];
3633
+ const elements = Array.from(container.querySelectorAll(selectors.join(",")));
3634
+ if (typeof window === "undefined") {
3635
+ return elements.filter((el) => el instanceof HTMLElement);
3636
+ }
3637
+ return elements.filter((el) => {
3638
+ if (!(el instanceof HTMLElement))
3639
+ return false;
3640
+ const style = window.getComputedStyle(el);
3641
+ if (style.display === "none" || style.visibility === "hidden")
3642
+ return false;
3643
+ if (el.hasAttribute("hidden"))
3644
+ return false;
3645
+ if (el.closest("[inert]"))
3646
+ return false;
3647
+ const fieldset = el.closest("fieldset[disabled]");
3648
+ if (fieldset) {
3649
+ const firstLegend = fieldset.querySelector("legend");
3650
+ if (!firstLegend || !firstLegend.contains(el))
3651
+ return false;
3652
+ }
3653
+ if (el.tagName !== "SUMMARY") {
3654
+ const closedDetails = el.closest("details:not([open])");
3655
+ if (closedDetails)
3656
+ return false;
3657
+ }
3658
+ return true;
3659
+ });
3660
+ }
3661
+
3662
+ let popoverTitleId = 0;
3663
+ class PopoverContentComponent {
3664
+ /**
3665
+ * The width of the popover. Can be 'none', 'small', 'medium', or 'large'.
3666
+ * @default small
3667
+ */
3668
+ maxWidth = input("small");
3669
+ /**
3670
+ * Heading title of the content
3671
+ */
3672
+ title = input("");
3673
+ /**
3674
+ * Should content show close button?
3675
+ * @default false
3676
+ */
3677
+ showClose = input(false);
3678
+ popover = inject(PopoverComponent);
3679
+ titleId = `popover-title-${popoverTitleId++}`;
3680
+ classes = computed(() => {
3681
+ const classList = [
3682
+ "tedi-popover-content",
3683
+ `tedi-popover-content--${this.maxWidth()}`,
3684
+ ];
3685
+ return classList.join(" ");
3686
+ });
3687
+ handleClose() {
3688
+ this.popover.hidePopover(true);
3689
+ }
3690
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PopoverContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3691
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: PopoverContentComponent, isStandalone: true, selector: "tedi-popover-content", inputs: { maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, showClose: { classPropertyName: "showClose", publicName: "showClose", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: "@if (title() && showClose()) {\n <div class=\"tedi-popover-content__head\">\n <h4 class=\"tedi-popover-content__title\" [id]=\"titleId\">{{ title() }}</h4>\n <button tedi-closing-button (click)=\"handleClose()\"></button>\n </div>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n} @else if (showClose()) {\n <div class=\"tedi-popover-content__head\">\n <div>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <button tedi-closing-button size=\"small\" (click)=\"handleClose()\"></button>\n </div>\n} @else if (title()) {\n <h4 [id]=\"titleId\">{{ title() }}</h4>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n} @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", styles: ["tedi-popover{display:block}[tedi-popover-trigger]{cursor:pointer}[tedi-popover-trigger]:focus-visible{outline:var(--borders-02) solid var(--primary-500);outline-offset:var(--borders-01)}float-ui-content .float-ui-container-popover{z-index:var(--z-index-dropdown);padding:0;border:var(--borders-01) solid var(--popover-border);border-radius:var(--popover-radius-rounded);box-shadow:0 1px 5px 0 var(--tedi-alpha-20, rgba(0, 0, 0, .2))}float-ui-content .float-ui-container-popover--arrow .float-ui-arrow{z-index:var(--z-index-dropdown);width:24px;height:24px;background:var(--popover-background);filter:drop-shadow(0 0 5px var(--tedi-alpha-20));clip-path:inset(0 -5px -5px 0)}float-ui-content .float-ui-container-popover--border{border-radius:var(--popover-radius-rounded)}float-ui-content .float-ui-container-popover--border .float-ui-arrow{width:18px;height:18px;border-right:4px solid var(--header-popover-border-top);border-bottom:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=top]{border-bottom:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=top] .float-ui-arrow{bottom:-12px!important}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=bottom]{border-top:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=bottom] .float-ui-arrow{top:-12px!important}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=left]{border-right:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=left] .float-ui-arrow{right:-12px!important}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=right]{border-left:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=right] .float-ui-arrow{left:-12px!important}float-ui-content .float-ui-container-popover[data-float-ui-placement=top]{transform:translateY(-4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=bottom]{transform:translateY(4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=bottom] .float-ui-arrow{transform:rotate(-135deg)}float-ui-content .float-ui-container-popover[data-float-ui-placement=left]{transform:translate(-4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=left] .float-ui-arrow{transform:rotate(-45deg)}float-ui-content .float-ui-container-popover[data-float-ui-placement=right]{transform:translate(4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=right] .float-ui-arrow{transform:rotate(135deg)}.tedi-popover-trigger__text{text-decoration:underline dashed var(--general-border-secondary);text-underline-offset:.5em}.tedi-popover-content{position:relative;display:flex;flex-direction:column;gap:var(--layout-grid-gutters-08);max-width:calc(100dvw - 1rem);padding:var(--popover-padding-sm);color:var(--popover-text);background:var(--popover-background);border-radius:var(--popover-radius-rounded)}.tedi-popover-content--none{width:none}.tedi-popover-content--small{width:240px}.tedi-popover-content--medium{width:480px}.tedi-popover-content--large{width:840px}.tedi-popover-content__head{display:flex;gap:var(--layout-grid-gutters-08);justify-content:space-between}.tedi-popover-content__head>div{display:flex;flex:1 1 0;flex-direction:column;gap:var(--layout-grid-gutters-08);min-width:0}.tedi-popover-content__title{align-self:center}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ClosingButtonComponent, selector: "button[tedi-closing-button]", inputs: ["size", "iconSize", "ariaLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
3692
+ }
3693
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PopoverContentComponent, decorators: [{
3694
+ type: Component,
3695
+ args: [{ standalone: true, selector: "tedi-popover-content", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgTemplateOutlet, ClosingButtonComponent], host: {
3696
+ "[class]": "classes()",
3697
+ }, template: "@if (title() && showClose()) {\n <div class=\"tedi-popover-content__head\">\n <h4 class=\"tedi-popover-content__title\" [id]=\"titleId\">{{ title() }}</h4>\n <button tedi-closing-button (click)=\"handleClose()\"></button>\n </div>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n} @else if (showClose()) {\n <div class=\"tedi-popover-content__head\">\n <div>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <button tedi-closing-button size=\"small\" (click)=\"handleClose()\"></button>\n </div>\n} @else if (title()) {\n <h4 [id]=\"titleId\">{{ title() }}</h4>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n} @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", styles: ["tedi-popover{display:block}[tedi-popover-trigger]{cursor:pointer}[tedi-popover-trigger]:focus-visible{outline:var(--borders-02) solid var(--primary-500);outline-offset:var(--borders-01)}float-ui-content .float-ui-container-popover{z-index:var(--z-index-dropdown);padding:0;border:var(--borders-01) solid var(--popover-border);border-radius:var(--popover-radius-rounded);box-shadow:0 1px 5px 0 var(--tedi-alpha-20, rgba(0, 0, 0, .2))}float-ui-content .float-ui-container-popover--arrow .float-ui-arrow{z-index:var(--z-index-dropdown);width:24px;height:24px;background:var(--popover-background);filter:drop-shadow(0 0 5px var(--tedi-alpha-20));clip-path:inset(0 -5px -5px 0)}float-ui-content .float-ui-container-popover--border{border-radius:var(--popover-radius-rounded)}float-ui-content .float-ui-container-popover--border .float-ui-arrow{width:18px;height:18px;border-right:4px solid var(--header-popover-border-top);border-bottom:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=top]{border-bottom:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=top] .float-ui-arrow{bottom:-12px!important}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=bottom]{border-top:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=bottom] .float-ui-arrow{top:-12px!important}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=left]{border-right:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=left] .float-ui-arrow{right:-12px!important}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=right]{border-left:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=right] .float-ui-arrow{left:-12px!important}float-ui-content .float-ui-container-popover[data-float-ui-placement=top]{transform:translateY(-4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=bottom]{transform:translateY(4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=bottom] .float-ui-arrow{transform:rotate(-135deg)}float-ui-content .float-ui-container-popover[data-float-ui-placement=left]{transform:translate(-4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=left] .float-ui-arrow{transform:rotate(-45deg)}float-ui-content .float-ui-container-popover[data-float-ui-placement=right]{transform:translate(4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=right] .float-ui-arrow{transform:rotate(135deg)}.tedi-popover-trigger__text{text-decoration:underline dashed var(--general-border-secondary);text-underline-offset:.5em}.tedi-popover-content{position:relative;display:flex;flex-direction:column;gap:var(--layout-grid-gutters-08);max-width:calc(100dvw - 1rem);padding:var(--popover-padding-sm);color:var(--popover-text);background:var(--popover-background);border-radius:var(--popover-radius-rounded)}.tedi-popover-content--none{width:none}.tedi-popover-content--small{width:240px}.tedi-popover-content--medium{width:480px}.tedi-popover-content--large{width:840px}.tedi-popover-content__head{display:flex;gap:var(--layout-grid-gutters-08);justify-content:space-between}.tedi-popover-content__head>div{display:flex;flex:1 1 0;flex-direction:column;gap:var(--layout-grid-gutters-08);min-width:0}.tedi-popover-content__title{align-self:center}\n"] }]
3698
+ }] });
3699
+
3700
+ class PopoverComponent {
3701
+ /**
3702
+ * The position of the popover relative to the trigger element.
3703
+ * @default top
3704
+ */
3705
+ position = input("top");
3706
+ /**
3707
+ * Should position flip to opposite direction when overflowing screen?
3708
+ * @default false
3709
+ */
3710
+ preventOverflow = input(false);
3711
+ /**
3712
+ * Is dismissible by clicking outside of content?
3713
+ * @default true
3714
+ */
3715
+ dismissible = input(true);
3716
+ /**
3717
+ * Does popover content hide on scroll?
3718
+ * @default false
3719
+ */
3720
+ hideOnScroll = input(false);
2411
3721
  /**
2412
3722
  * Does popover have illustrative border on the arrow side?
2413
3723
  * @default false
@@ -2601,7 +3911,7 @@ class PopoverComponent {
2601
3911
  this.hidePopover(true);
2602
3912
  }
2603
3913
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2604
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.15", type: PopoverComponent, isStandalone: true, selector: "tedi-popover", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, preventOverflow: { classPropertyName: "preventOverflow", publicName: "preventOverflow", isSignal: true, isRequired: false, transformFunction: null }, dismissible: { classPropertyName: "dismissible", publicName: "dismissible", isSignal: true, isRequired: false, transformFunction: null }, hideOnScroll: { classPropertyName: "hideOnScroll", publicName: "hideOnScroll", isSignal: true, isRequired: false, transformFunction: null }, withBorder: { classPropertyName: "withBorder", publicName: "withBorder", isSignal: true, isRequired: false, transformFunction: null }, withArrow: { classPropertyName: "withArrow", publicName: "withArrow", isSignal: true, isRequired: false, transformFunction: null }, lockScroll: { classPropertyName: "lockScroll", publicName: "lockScroll", isSignal: true, isRequired: false, transformFunction: null }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null }, timeoutDelay: { classPropertyName: "timeoutDelay", publicName: "timeoutDelay", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "popoverTrigger", first: true, predicate: PopoverTriggerDirective, descendants: true, isSignal: true }, { propertyName: "popoverContent", first: true, predicate: PopoverContentComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "floatUiComponent", first: true, predicate: NgxFloatUiContentComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ng-content select=\"[tedi-popover-trigger]\" />\n<float-ui-content\n #floatUiComponent\n looseTrigger=\"none\"\n ariaRole=\"dialog\"\n [appendTo]=\"appendTo()\"\n [floatUiLoose]=\"floatUiComponent\"\n [targetElement]=\"popoverTrigger().host.nativeElement\"\n [loosePlacement]=\"position()\"\n [preventOverflow]=\"position().includes('auto') ? false : preventOverflow()\"\n [applyClass]=\"floatUiContainerClass()\"\n [disableAnimation]=\"true\"\n>\n <ng-content select=\"tedi-popover-content\" />\n</float-ui-content>\n", styles: ["tedi-popover{display:block}[tedi-popover-trigger]{cursor:pointer}[tedi-popover-trigger]:focus-visible{outline:var(--borders-02) solid var(--primary-500);outline-offset:var(--borders-01)}float-ui-content .float-ui-container-popover{z-index:var(--z-index-dropdown);padding:0;border:var(--borders-01) solid var(--popover-border);border-radius:var(--popover-radius-rounded);box-shadow:0 1px 5px 0 var(--tedi-alpha-20, rgba(0, 0, 0, .2))}float-ui-content .float-ui-container-popover--arrow .float-ui-arrow{z-index:var(--z-index-dropdown);width:24px;height:24px;background:var(--popover-background);filter:drop-shadow(0 0 5px var(--tedi-alpha-20));clip-path:inset(0 -5px -5px 0)}float-ui-content .float-ui-container-popover--border{border-radius:var(--popover-radius-rounded)}float-ui-content .float-ui-container-popover--border .float-ui-arrow{width:18px;height:18px;border-right:4px solid var(--header-popover-border-top);border-bottom:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=top]{border-bottom:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=top] .float-ui-arrow{bottom:-12px!important}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=bottom]{border-top:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=bottom] .float-ui-arrow{top:-12px!important}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=left]{border-right:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=left] .float-ui-arrow{right:-12px!important}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=right]{border-left:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=right] .float-ui-arrow{left:-12px!important}float-ui-content .float-ui-container-popover[data-float-ui-placement=top]{transform:translateY(-4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=bottom]{transform:translateY(4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=bottom] .float-ui-arrow{transform:rotate(-135deg)}float-ui-content .float-ui-container-popover[data-float-ui-placement=left]{transform:translate(-4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=left] .float-ui-arrow{transform:rotate(-45deg)}float-ui-content .float-ui-container-popover[data-float-ui-placement=right]{transform:translate(4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=right] .float-ui-arrow{transform:rotate(135deg)}.tedi-popover-trigger__text{text-decoration:underline dashed var(--general-border-secondary);text-underline-offset:.5em}.tedi-popover-content{position:relative;display:flex;flex-direction:column;gap:var(--layout-grid-gutters-08);max-width:calc(100dvw - 1rem);padding:var(--popover-padding-sm);color:var(--popover-text);background:var(--popover-background);border-radius:var(--popover-radius-rounded)}.tedi-popover-content--none{width:none}.tedi-popover-content--small{width:240px}.tedi-popover-content--medium{width:480px}.tedi-popover-content--large{width:840px}.tedi-popover-content__head{display:flex;gap:var(--layout-grid-gutters-08);justify-content:space-between}.tedi-popover-content__head>div{display:flex;flex:1 1 0;flex-direction:column;gap:var(--layout-grid-gutters-08);min-width:0}.tedi-popover-content__title{align-self:center}\n"], dependencies: [{ kind: "ngmodule", type: NgxFloatUiModule }, { kind: "component", type: i1$1.NgxFloatUiContentComponent, selector: "float-ui-content", exportAs: ["ngxFloatUiContent"] }, { kind: "directive", type: i1$1.NgxFloatUiLooseDirective, selector: "[floatUiLoose]", inputs: ["floatUiLoose", "loosePlacement", "looseTrigger"], exportAs: ["floatUiLoose"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
3914
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.15", type: PopoverComponent, isStandalone: true, selector: "tedi-popover", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, preventOverflow: { classPropertyName: "preventOverflow", publicName: "preventOverflow", isSignal: true, isRequired: false, transformFunction: null }, dismissible: { classPropertyName: "dismissible", publicName: "dismissible", isSignal: true, isRequired: false, transformFunction: null }, hideOnScroll: { classPropertyName: "hideOnScroll", publicName: "hideOnScroll", isSignal: true, isRequired: false, transformFunction: null }, withBorder: { classPropertyName: "withBorder", publicName: "withBorder", isSignal: true, isRequired: false, transformFunction: null }, withArrow: { classPropertyName: "withArrow", publicName: "withArrow", isSignal: true, isRequired: false, transformFunction: null }, lockScroll: { classPropertyName: "lockScroll", publicName: "lockScroll", isSignal: true, isRequired: false, transformFunction: null }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null }, timeoutDelay: { classPropertyName: "timeoutDelay", publicName: "timeoutDelay", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "popoverTrigger", first: true, predicate: PopoverTriggerDirective, descendants: true, isSignal: true }, { propertyName: "popoverContent", first: true, predicate: PopoverContentComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "floatUiComponent", first: true, predicate: NgxFloatUiContentComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ng-content select=\"[tedi-popover-trigger]\" />\n<float-ui-content\n #floatUiComponent\n looseTrigger=\"none\"\n ariaRole=\"dialog\"\n [appendTo]=\"appendTo()\"\n [floatUiLoose]=\"floatUiComponent\"\n [targetElement]=\"popoverTrigger().host.nativeElement\"\n [loosePlacement]=\"position()\"\n [preventOverflow]=\"position().includes('auto') ? false : preventOverflow()\"\n [applyClass]=\"floatUiContainerClass()\"\n [disableAnimation]=\"true\"\n>\n <ng-content select=\"tedi-popover-content\" />\n</float-ui-content>\n", styles: ["tedi-popover{display:block}[tedi-popover-trigger]{cursor:pointer}[tedi-popover-trigger]:focus-visible{outline:var(--borders-02) solid var(--primary-500);outline-offset:var(--borders-01)}float-ui-content .float-ui-container-popover{z-index:var(--z-index-dropdown);padding:0;border:var(--borders-01) solid var(--popover-border);border-radius:var(--popover-radius-rounded);box-shadow:0 1px 5px 0 var(--tedi-alpha-20, rgba(0, 0, 0, .2))}float-ui-content .float-ui-container-popover--arrow .float-ui-arrow{z-index:var(--z-index-dropdown);width:24px;height:24px;background:var(--popover-background);filter:drop-shadow(0 0 5px var(--tedi-alpha-20));clip-path:inset(0 -5px -5px 0)}float-ui-content .float-ui-container-popover--border{border-radius:var(--popover-radius-rounded)}float-ui-content .float-ui-container-popover--border .float-ui-arrow{width:18px;height:18px;border-right:4px solid var(--header-popover-border-top);border-bottom:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=top]{border-bottom:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=top] .float-ui-arrow{bottom:-12px!important}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=bottom]{border-top:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=bottom] .float-ui-arrow{top:-12px!important}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=left]{border-right:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=left] .float-ui-arrow{right:-12px!important}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=right]{border-left:4px solid var(--header-popover-border-top)}float-ui-content .float-ui-container-popover--border[data-float-ui-placement=right] .float-ui-arrow{left:-12px!important}float-ui-content .float-ui-container-popover[data-float-ui-placement=top]{transform:translateY(-4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=bottom]{transform:translateY(4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=bottom] .float-ui-arrow{transform:rotate(-135deg)}float-ui-content .float-ui-container-popover[data-float-ui-placement=left]{transform:translate(-4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=left] .float-ui-arrow{transform:rotate(-45deg)}float-ui-content .float-ui-container-popover[data-float-ui-placement=right]{transform:translate(4px)}float-ui-content .float-ui-container-popover[data-float-ui-placement=right] .float-ui-arrow{transform:rotate(135deg)}.tedi-popover-trigger__text{text-decoration:underline dashed var(--general-border-secondary);text-underline-offset:.5em}.tedi-popover-content{position:relative;display:flex;flex-direction:column;gap:var(--layout-grid-gutters-08);max-width:calc(100dvw - 1rem);padding:var(--popover-padding-sm);color:var(--popover-text);background:var(--popover-background);border-radius:var(--popover-radius-rounded)}.tedi-popover-content--none{width:none}.tedi-popover-content--small{width:240px}.tedi-popover-content--medium{width:480px}.tedi-popover-content--large{width:840px}.tedi-popover-content__head{display:flex;gap:var(--layout-grid-gutters-08);justify-content:space-between}.tedi-popover-content__head>div{display:flex;flex:1 1 0;flex-direction:column;gap:var(--layout-grid-gutters-08);min-width:0}.tedi-popover-content__title{align-self:center}\n"], dependencies: [{ kind: "ngmodule", type: NgxFloatUiModule }, { kind: "component", type: i1$2.NgxFloatUiContentComponent, selector: "float-ui-content", exportAs: ["ngxFloatUiContent"] }, { kind: "directive", type: i1$2.NgxFloatUiLooseDirective, selector: "[floatUiLoose]", inputs: ["floatUiLoose", "loosePlacement", "looseTrigger"], exportAs: ["floatUiLoose"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2605
3915
  }
2606
3916
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PopoverComponent, decorators: [{
2607
3917
  type: Component,
@@ -2674,14 +3984,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
2674
3984
  args: ["keydown", ["$event"]]
2675
3985
  }] } });
2676
3986
 
3987
+ const DROPDOWN_API = new InjectionToken("DropdownApi");
3988
+ const DROPDOWN_CONTENT_API = new InjectionToken("DropdownContentApi");
3989
+
2677
3990
  class DropdownItemComponent {
2678
3991
  /** Item value */
2679
3992
  value = input();
2680
3993
  /** Is item disabled? */
2681
3994
  disabled = input(false);
2682
3995
  host = inject(ElementRef);
2683
- dropdown = inject(DropdownComponent);
2684
- dropdownContent = inject(DropdownContentComponent);
3996
+ dropdown = inject(DROPDOWN_API);
3997
+ dropdownContent = inject(DROPDOWN_CONTENT_API);
3998
+ /** Check if custom dropdown-item-value is provided */
3999
+ customItemValue = contentChild(DropdownItemValueComponent);
2685
4000
  isSelected() {
2686
4001
  return this.dropdown.value() === this.value();
2687
4002
  }
@@ -2736,16 +4051,16 @@ class DropdownItemComponent {
2736
4051
  this.dropdown.dropdownTrigger()?.host.nativeElement.focus();
2737
4052
  }
2738
4053
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DropdownItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2739
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.15", type: DropdownItemComponent, isStandalone: true, selector: "li[tedi-dropdown-item]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "onClick()", "keydown": "onKeydown($event)" }, properties: { "attr.role": "dropdownContent.dropdownRole() === 'menu' ? 'menuitem' : 'option'", "attr.aria-selected": "dropdownContent.dropdownRole() === 'listbox' ? isSelected() : null", "attr.aria-disabled": "disabled() ? 'true' : null", "tabindex": "dropdownContent.dropdownRole() === 'menu' ? '-1' : (disabled() ? null : '-1')" } }, ngImport: i0, template: "<ng-content />", isInline: true, styles: ["li[tedi-dropdown-item]{display:flex;gap:var(--dropdown-item-inner-spacing);align-items:center;width:100%;min-height:40px;padding:var(--dropdown-item-padding-y, 8px) var(--dropdown-item-padding-x);color:var(--dropdown-item-default-text);cursor:pointer;background:var(--dropdown-item-default-background)}li[tedi-dropdown-item]:hover{color:var(--dropdown-item-hover-text);background:var(--dropdown-item-hover-background)}li[tedi-dropdown-item]:focus-visible{outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:calc(-1 * var(--borders-02))}li[tedi-dropdown-item][aria-selected=true]{color:var(--dropdown-item-active-text);background:var(--dropdown-item-active-background)}li[tedi-dropdown-item][aria-selected=true]:focus-visible{color:var(--dropdown-item-default-text);background:var(--dropdown-item-default-background)}li[tedi-dropdown-item][aria-disabled=true]{color:var(--general-text-disabled);cursor:not-allowed;background:var(--dropdown-item-disabled-background)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
4054
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: DropdownItemComponent, isStandalone: true, selector: "li[tedi-dropdown-item]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "onClick()", "keydown": "onKeydown($event)" }, properties: { "attr.role": "dropdownContent.dropdownRole() === 'menu' ? 'menuitem' : 'option'", "attr.aria-selected": "dropdownContent.dropdownRole() === 'listbox' ? isSelected() : null", "attr.aria-disabled": "disabled() ? 'true' : null", "tabindex": "dropdownContent.dropdownRole() === 'menu' ? '-1' : (disabled() ? null : '-1')" } }, queries: [{ propertyName: "customItemValue", first: true, predicate: DropdownItemValueComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ng-content select=\"tedi-dropdown-item-value\" />\n\n@if (!customItemValue()) {\n <tedi-dropdown-item-value>\n <tedi-dropdown-item-value-label>\n <ng-content />\n </tedi-dropdown-item-value-label>\n </tedi-dropdown-item-value>\n}\n", styles: ["li[tedi-dropdown-item],.tedi-dropdown-item{display:flex;gap:var(--dropdown-item-inner-spacing);align-items:center;width:100%;min-height:40px;padding:var(--dropdown-item-padding-y) var(--dropdown-item-padding-x);color:var(--dropdown-item-default-text);cursor:pointer;background:var(--dropdown-item-default-background)}li[tedi-dropdown-item]:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]),.tedi-dropdown-item:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]){color:var(--dropdown-item-hover-text);background:var(--dropdown-item-hover-background)}li[tedi-dropdown-item]:focus-visible,.tedi-dropdown-item:focus-visible{outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:calc(-1 * var(--borders-02))}li[tedi-dropdown-item][aria-selected=true],li[tedi-dropdown-item].tedi-dropdown-item--selected,.tedi-dropdown-item[aria-selected=true],.tedi-dropdown-item.tedi-dropdown-item--selected{color:var(--dropdown-item-active-text);background:var(--dropdown-item-active-background)}li[tedi-dropdown-item][aria-disabled=true],li[tedi-dropdown-item].tedi-dropdown-item--disabled,.tedi-dropdown-item[aria-disabled=true],.tedi-dropdown-item.tedi-dropdown-item--disabled{color:var(--general-text-disabled);cursor:not-allowed;background:var(--dropdown-item-disabled-background)}\n"], dependencies: [{ kind: "component", type: DropdownItemValueComponent, selector: "tedi-dropdown-item-value", inputs: ["type", "layout", "selected", "indeterminate", "disabled"] }, { kind: "component", type: DropdownItemValueLabelComponent, selector: "tedi-dropdown-item-value-label" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2740
4055
  }
2741
4056
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DropdownItemComponent, decorators: [{
2742
4057
  type: Component,
2743
- args: [{ selector: "li[tedi-dropdown-item]", standalone: true, template: "<ng-content />", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
4058
+ args: [{ selector: "li[tedi-dropdown-item]", standalone: true, imports: [DropdownItemValueComponent, DropdownItemValueLabelComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
2744
4059
  "[attr.role]": "dropdownContent.dropdownRole() === 'menu' ? 'menuitem' : 'option'",
2745
4060
  "[attr.aria-selected]": "dropdownContent.dropdownRole() === 'listbox' ? isSelected() : null",
2746
4061
  "[attr.aria-disabled]": "disabled() ? 'true' : null",
2747
4062
  "[tabindex]": "dropdownContent.dropdownRole() === 'menu' ? '-1' : (disabled() ? null : '-1')",
2748
- }, styles: ["li[tedi-dropdown-item]{display:flex;gap:var(--dropdown-item-inner-spacing);align-items:center;width:100%;min-height:40px;padding:var(--dropdown-item-padding-y, 8px) var(--dropdown-item-padding-x);color:var(--dropdown-item-default-text);cursor:pointer;background:var(--dropdown-item-default-background)}li[tedi-dropdown-item]:hover{color:var(--dropdown-item-hover-text);background:var(--dropdown-item-hover-background)}li[tedi-dropdown-item]:focus-visible{outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:calc(-1 * var(--borders-02))}li[tedi-dropdown-item][aria-selected=true]{color:var(--dropdown-item-active-text);background:var(--dropdown-item-active-background)}li[tedi-dropdown-item][aria-selected=true]:focus-visible{color:var(--dropdown-item-default-text);background:var(--dropdown-item-default-background)}li[tedi-dropdown-item][aria-disabled=true]{color:var(--general-text-disabled);cursor:not-allowed;background:var(--dropdown-item-disabled-background)}\n"] }]
4063
+ }, template: "<ng-content select=\"tedi-dropdown-item-value\" />\n\n@if (!customItemValue()) {\n <tedi-dropdown-item-value>\n <tedi-dropdown-item-value-label>\n <ng-content />\n </tedi-dropdown-item-value-label>\n </tedi-dropdown-item-value>\n}\n", styles: ["li[tedi-dropdown-item],.tedi-dropdown-item{display:flex;gap:var(--dropdown-item-inner-spacing);align-items:center;width:100%;min-height:40px;padding:var(--dropdown-item-padding-y) var(--dropdown-item-padding-x);color:var(--dropdown-item-default-text);cursor:pointer;background:var(--dropdown-item-default-background)}li[tedi-dropdown-item]:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]),.tedi-dropdown-item:hover:not(.tedi-dropdown-item--disabled,[aria-disabled=true]){color:var(--dropdown-item-hover-text);background:var(--dropdown-item-hover-background)}li[tedi-dropdown-item]:focus-visible,.tedi-dropdown-item:focus-visible{outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:calc(-1 * var(--borders-02))}li[tedi-dropdown-item][aria-selected=true],li[tedi-dropdown-item].tedi-dropdown-item--selected,.tedi-dropdown-item[aria-selected=true],.tedi-dropdown-item.tedi-dropdown-item--selected{color:var(--dropdown-item-active-text);background:var(--dropdown-item-active-background)}li[tedi-dropdown-item][aria-disabled=true],li[tedi-dropdown-item].tedi-dropdown-item--disabled,.tedi-dropdown-item[aria-disabled=true],.tedi-dropdown-item.tedi-dropdown-item--disabled{color:var(--general-text-disabled);cursor:not-allowed;background:var(--dropdown-item-disabled-background)}\n"] }]
2749
4064
  }], propDecorators: { onClick: [{
2750
4065
  type: HostListener,
2751
4066
  args: ["click"]
@@ -2760,17 +4075,28 @@ class DropdownContentComponent {
2760
4075
  * @default menu
2761
4076
  */
2762
4077
  dropdownRole = input("menu");
2763
- dropdown = inject(DropdownComponent);
4078
+ dropdownApi = inject(DROPDOWN_API);
4079
+ containerId = computed(() => this.dropdownApi.containerId());
2764
4080
  items = contentChildren(DropdownItemComponent);
2765
4081
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DropdownContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2766
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.15", type: DropdownContentComponent, isStandalone: true, selector: "tedi-dropdown-content", inputs: { dropdownRole: { classPropertyName: "dropdownRole", publicName: "dropdownRole", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "presentation" }, properties: { "attr.aria-labelledby": "dropdown.containerId() + '_trigger'" } }, queries: [{ propertyName: "items", predicate: DropdownItemComponent, isSignal: true }], ngImport: i0, template: "<ng-content />\n<ul [attr.role]=\"dropdownRole()\">\n <ng-content select=\"li[tedi-dropdown-item]\" />\n</ul>\n", styles: ["tedi-dropdown-content{display:flex;flex-direction:column;width:max-content;min-width:var(--_tedi-dropdown-trigger-width);overflow:auto;border:1px solid var(--card-border-primary);border-radius:var(--form-select-area-radius);box-shadow:0 1px 5px #0003}tedi-dropdown-content ul{margin:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
4082
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.15", type: DropdownContentComponent, isStandalone: true, selector: "tedi-dropdown-content", inputs: { dropdownRole: { classPropertyName: "dropdownRole", publicName: "dropdownRole", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "presentation" }, properties: { "attr.aria-labelledby": "containerId() + '_trigger'" } }, providers: [
4083
+ {
4084
+ provide: DROPDOWN_CONTENT_API,
4085
+ useExisting: forwardRef(() => DropdownContentComponent),
4086
+ },
4087
+ ], queries: [{ propertyName: "items", predicate: DropdownItemComponent, isSignal: true }], ngImport: i0, template: "<ng-content />\n<ul [attr.role]=\"dropdownRole()\">\n <ng-content select=\"li[tedi-dropdown-item]\" />\n</ul>\n", styles: ["tedi-dropdown-content{display:flex;flex-direction:column;width:max-content;min-width:var(--_tedi-dropdown-trigger-width);overflow:auto;border:1px solid var(--card-border-primary);border-radius:var(--form-select-area-radius);box-shadow:0 1px 5px #0003}tedi-dropdown-content ul{margin:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2767
4088
  }
2768
4089
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DropdownContentComponent, decorators: [{
2769
4090
  type: Component,
2770
4091
  args: [{ selector: "tedi-dropdown-content", standalone: true, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
2771
4092
  role: "presentation",
2772
- "[attr.aria-labelledby]": "dropdown.containerId() + '_trigger'",
2773
- }, template: "<ng-content />\n<ul [attr.role]=\"dropdownRole()\">\n <ng-content select=\"li[tedi-dropdown-item]\" />\n</ul>\n", styles: ["tedi-dropdown-content{display:flex;flex-direction:column;width:max-content;min-width:var(--_tedi-dropdown-trigger-width);overflow:auto;border:1px solid var(--card-border-primary);border-radius:var(--form-select-area-radius);box-shadow:0 1px 5px #0003}tedi-dropdown-content ul{margin:0}\n"] }]
4093
+ "[attr.aria-labelledby]": "containerId() + '_trigger'",
4094
+ }, providers: [
4095
+ {
4096
+ provide: DROPDOWN_CONTENT_API,
4097
+ useExisting: forwardRef(() => DropdownContentComponent),
4098
+ },
4099
+ ], template: "<ng-content />\n<ul [attr.role]=\"dropdownRole()\">\n <ng-content select=\"li[tedi-dropdown-item]\" />\n</ul>\n", styles: ["tedi-dropdown-content{display:flex;flex-direction:column;width:max-content;min-width:var(--_tedi-dropdown-trigger-width);overflow:auto;border:1px solid var(--card-border-primary);border-radius:var(--form-select-area-radius);box-shadow:0 1px 5px #0003}tedi-dropdown-content ul{margin:0}\n"] }]
2774
4100
  }] });
2775
4101
 
2776
4102
  class DropdownComponent {
@@ -2976,11 +4302,21 @@ class DropdownComponent {
2976
4302
  return null;
2977
4303
  }
2978
4304
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2979
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.15", type: DropdownComponent, isStandalone: true, selector: "tedi-dropdown", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, preventOverflow: { classPropertyName: "preventOverflow", publicName: "preventOverflow", isSignal: true, isRequired: false, transformFunction: null }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, queries: [{ propertyName: "dropdownTrigger", first: true, predicate: DropdownTriggerDirective, descendants: true, isSignal: true }, { propertyName: "dropdownContent", first: true, predicate: DropdownContentComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "floatUiComponent", first: true, predicate: NgxFloatUiContentComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div\n applyClass=\"float-ui-container-dropdown\"\n style=\"display: contents\"\n looseTrigger=\"none\"\n ariaRole=\"presentation\"\n [hideOnClickOutside]=\"true\"\n [floatUiLoose]=\"floatUiComponent\"\n [loosePlacement]=\"position()\"\n [preventOverflow]=\"position().includes('auto') ? false : preventOverflow()\"\n [disableAnimation]=\"true\"\n [targetElement]=\"dropdownTrigger().host.nativeElement\"\n [appendTo]=\"appendTo()\"\n>\n <ng-content select=\"[tedi-dropdown-trigger]\" />\n</div>\n<float-ui-content #floatUiComponent [style.display]=\"floatUiDisplay()\">\n <ng-content select=\"tedi-dropdown-content\" />\n</float-ui-content>\n", styles: ["tedi-dropdown{display:inline-flex}float-ui-content .float-ui-container-dropdown{z-index:var(--z-index-dropdown);padding:0;border:0;border-radius:var(--dropdown-item-radius);box-shadow:0 1px 5px 0 var(--tedi-alpha-20, rgba(0, 0, 0, .2))}\n"], dependencies: [{ kind: "ngmodule", type: NgxFloatUiModule }, { kind: "component", type: i1$1.NgxFloatUiContentComponent, selector: "float-ui-content", exportAs: ["ngxFloatUiContent"] }, { kind: "directive", type: i1$1.NgxFloatUiLooseDirective, selector: "[floatUiLoose]", inputs: ["floatUiLoose", "loosePlacement", "looseTrigger"], exportAs: ["floatUiLoose"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
4305
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.15", type: DropdownComponent, isStandalone: true, selector: "tedi-dropdown", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, preventOverflow: { classPropertyName: "preventOverflow", publicName: "preventOverflow", isSignal: true, isRequired: false, transformFunction: null }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, providers: [
4306
+ {
4307
+ provide: DROPDOWN_API,
4308
+ useExisting: DropdownComponent,
4309
+ },
4310
+ ], queries: [{ propertyName: "dropdownTrigger", first: true, predicate: DropdownTriggerDirective, descendants: true, isSignal: true }, { propertyName: "dropdownContent", first: true, predicate: DropdownContentComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "floatUiComponent", first: true, predicate: NgxFloatUiContentComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div\n applyClass=\"float-ui-container-dropdown\"\n style=\"display: contents\"\n looseTrigger=\"none\"\n ariaRole=\"presentation\"\n [hideOnClickOutside]=\"true\"\n [floatUiLoose]=\"floatUiComponent\"\n [loosePlacement]=\"position()\"\n [preventOverflow]=\"position().includes('auto') ? false : preventOverflow()\"\n [disableAnimation]=\"true\"\n [targetElement]=\"dropdownTrigger().host.nativeElement\"\n [appendTo]=\"appendTo()\"\n>\n <ng-content select=\"[tedi-dropdown-trigger]\" />\n</div>\n<float-ui-content #floatUiComponent [style.display]=\"floatUiDisplay()\">\n <ng-content select=\"tedi-dropdown-content\" />\n</float-ui-content>\n", styles: ["tedi-dropdown{display:inline-flex}float-ui-content .float-ui-container-dropdown{z-index:var(--z-index-dropdown);padding:0;border:0;border-radius:var(--dropdown-item-radius);box-shadow:0 1px 5px 0 var(--tedi-alpha-20, rgba(0, 0, 0, .2))}\n"], dependencies: [{ kind: "ngmodule", type: NgxFloatUiModule }, { kind: "component", type: i1$2.NgxFloatUiContentComponent, selector: "float-ui-content", exportAs: ["ngxFloatUiContent"] }, { kind: "directive", type: i1$2.NgxFloatUiLooseDirective, selector: "[floatUiLoose]", inputs: ["floatUiLoose", "loosePlacement", "looseTrigger"], exportAs: ["floatUiLoose"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2980
4311
  }
2981
4312
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DropdownComponent, decorators: [{
2982
4313
  type: Component,
2983
- args: [{ standalone: true, selector: "tedi-dropdown", imports: [NgxFloatUiModule], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n applyClass=\"float-ui-container-dropdown\"\n style=\"display: contents\"\n looseTrigger=\"none\"\n ariaRole=\"presentation\"\n [hideOnClickOutside]=\"true\"\n [floatUiLoose]=\"floatUiComponent\"\n [loosePlacement]=\"position()\"\n [preventOverflow]=\"position().includes('auto') ? false : preventOverflow()\"\n [disableAnimation]=\"true\"\n [targetElement]=\"dropdownTrigger().host.nativeElement\"\n [appendTo]=\"appendTo()\"\n>\n <ng-content select=\"[tedi-dropdown-trigger]\" />\n</div>\n<float-ui-content #floatUiComponent [style.display]=\"floatUiDisplay()\">\n <ng-content select=\"tedi-dropdown-content\" />\n</float-ui-content>\n", styles: ["tedi-dropdown{display:inline-flex}float-ui-content .float-ui-container-dropdown{z-index:var(--z-index-dropdown);padding:0;border:0;border-radius:var(--dropdown-item-radius);box-shadow:0 1px 5px 0 var(--tedi-alpha-20, rgba(0, 0, 0, .2))}\n"] }]
4314
+ args: [{ standalone: true, selector: "tedi-dropdown", imports: [NgxFloatUiModule], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
4315
+ {
4316
+ provide: DROPDOWN_API,
4317
+ useExisting: DropdownComponent,
4318
+ },
4319
+ ], template: "<div\n applyClass=\"float-ui-container-dropdown\"\n style=\"display: contents\"\n looseTrigger=\"none\"\n ariaRole=\"presentation\"\n [hideOnClickOutside]=\"true\"\n [floatUiLoose]=\"floatUiComponent\"\n [loosePlacement]=\"position()\"\n [preventOverflow]=\"position().includes('auto') ? false : preventOverflow()\"\n [disableAnimation]=\"true\"\n [targetElement]=\"dropdownTrigger().host.nativeElement\"\n [appendTo]=\"appendTo()\"\n>\n <ng-content select=\"[tedi-dropdown-trigger]\" />\n</div>\n<float-ui-content #floatUiComponent [style.display]=\"floatUiDisplay()\">\n <ng-content select=\"tedi-dropdown-content\" />\n</float-ui-content>\n", styles: ["tedi-dropdown{display:inline-flex}float-ui-content .float-ui-container-dropdown{z-index:var(--z-index-dropdown);padding:0;border:0;border-radius:var(--dropdown-item-radius);box-shadow:0 1px 5px 0 var(--tedi-alpha-20, rgba(0, 0, 0, .2))}\n"] }]
2984
4320
  }], ctorParameters: () => [] });
2985
4321
 
2986
4322
  class DatePickerHeaderComponent {
@@ -3824,392 +5160,56 @@ class DatePickerComponent {
3824
5160
  }
3825
5161
  month++;
3826
5162
  }
3827
- return null;
3828
- }
3829
- /**
3830
- * Finds the next enabled date starting from the given date, moving by the given step.
3831
- * Returns null if no enabled date is found within a reasonable range.
3832
- * Needed for correct WCAG arrow movement handling
3833
- */
3834
- findNextEnabledDate(from, step) {
3835
- const maxIterations = 365;
3836
- const target = new Date(from);
3837
- for (let i = 0; i < maxIterations; i++) {
3838
- target.setDate(target.getDate() + step);
3839
- if (!this.isDisabled(target)) {
3840
- return new Date(target);
3841
- }
3842
- }
3843
- return null;
3844
- }
3845
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3846
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: DatePickerComponent, isStandalone: true, selector: "tedi-date-picker", inputs: { selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, month: { classPropertyName: "month", publicName: "month", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, showNavigation: { classPropertyName: "showNavigation", publicName: "showNavigation", isSignal: true, isRequired: false, transformFunction: null }, monthMode: { classPropertyName: "monthMode", publicName: "monthMode", isSignal: true, isRequired: false, transformFunction: null }, yearMode: { classPropertyName: "yearMode", publicName: "yearMode", isSignal: true, isRequired: false, transformFunction: null }, startYear: { classPropertyName: "startYear", publicName: "startYear", isSignal: true, isRequired: false, transformFunction: null }, endYear: { classPropertyName: "endYear", publicName: "endYear", isSignal: true, isRequired: false, transformFunction: null }, inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: false, transformFunction: null }, inputPlaceholder: { classPropertyName: "inputPlaceholder", publicName: "inputPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, inputState: { classPropertyName: "inputState", publicName: "inputState", isSignal: true, isRequired: false, transformFunction: null }, inputSize: { classPropertyName: "inputSize", publicName: "inputSize", isSignal: true, isRequired: false, transformFunction: null }, inputDisabled: { classPropertyName: "inputDisabled", publicName: "inputDisabled", isSignal: true, isRequired: false, transformFunction: null }, allowManualInput: { classPropertyName: "allowManualInput", publicName: "allowManualInput", isSignal: true, isRequired: false, transformFunction: null }, showWeekNumbers: { classPropertyName: "showWeekNumbers", publicName: "showWeekNumbers", isSignal: true, isRequired: false, transformFunction: null }, closeOnSelect: { classPropertyName: "closeOnSelect", publicName: "closeOnSelect", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selectedChange", month: "monthChange" }, providers: [
3847
- {
3848
- provide: NG_VALUE_ACCESSOR,
3849
- useExisting: forwardRef(() => DatePickerComponent),
3850
- multi: true,
3851
- },
3852
- ], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true, isSignal: true }, { propertyName: "calendarGrid", first: true, predicate: ["gridElement"], descendants: true, isSignal: true }, { propertyName: "popover", first: true, predicate: PopoverComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<input\n #inputElement\n type=\"text\"\n class=\"tedi-date-picker__input\"\n role=\"combobox\"\n aria-autocomplete=\"none\"\n aria-haspopup=\"dialog\"\n [class.tedi-date-picker__input--small]=\"inputSize() === 'small'\"\n [class.tedi-date-picker__input--valid]=\"inputState() === 'valid'\"\n [class.tedi-date-picker__input--error]=\"inputState() === 'error'\"\n [attr.id]=\"inputId()\"\n [attr.placeholder]=\"inputPlaceholder()\"\n [attr.aria-expanded]=\"!fieldDisabled() && popover().floatUiComponent().state\"\n [attr.aria-controls]=\"uniqueId\"\n [attr.aria-readonly]=\"!allowManualInput()\"\n [readOnly]=\"!allowManualInput()\"\n [value]=\"inputValue()\"\n [disabled]=\"fieldDisabled()\"\n (input)=\"onInput($event)\"\n (blur)=\"onInputBlur()\"\n (click)=\"onInputClick()\"\n/>\n<div class=\"tedi-date-picker__input-buttons\">\n @if (selected()) {\n <button\n tedi-closing-button\n type=\"button\"\n size=\"small\"\n class=\"tedi-date-picker__clear\"\n [iconSize]=\"18\"\n [ariaLabel]=\"'date-picker.clear-date' | tediTranslate\"\n [disabled]=\"fieldDisabled()\"\n (click)=\"clearInput()\"\n ></button>\n <tedi-separator axis=\"vertical\" size=\"1rem\" />\n }\n <tedi-popover\n style=\"display: flex; align-items: center\"\n position=\"bottom-end\"\n [withArrow]=\"false\"\n [preventOverflow]=\"true\"\n >\n <button\n tedi-button\n tedi-popover-trigger\n type=\"button\"\n variant=\"neutral\"\n size=\"small\"\n class=\"tedi-date-picker__toggle\"\n [attr.aria-label]=\"'date-picker.open-calendar' | tediTranslate\"\n [disabled]=\"fieldDisabled()\"\n (click)=\"openCalendar()\"\n >\n <tedi-icon name=\"calendar_today\" size=\"inherit\" />\n </button>\n <tedi-popover-content maxWidth=\"none\" style=\"padding: 0\">\n <div\n class=\"tedi-date-picker__calendar\"\n (keydown)=\"onCalendarKeyDown($event)\"\n >\n <tedi-date-picker-header\n [uniqueId]=\"uniqueId\"\n [currentView]=\"currentView()\"\n [month]=\"month()\"\n [monthMode]=\"monthMode()\"\n [yearMode]=\"yearMode()\"\n [showNavigation]=\"showNavigation()\"\n [canGoPrev]=\"canGoPrev()\"\n [canGoNext]=\"canGoNext()\"\n [selectedYear]=\"selectedYear()\"\n [years]=\"years()\"\n [pagedYears]=\"pagedYears()\"\n [hasPrevYearPage]=\"hasPrevYearPage()\"\n [hasNextYearPage]=\"hasNextYearPage()\"\n [disabledMonths]=\"disabledMonths()\"\n [disabledYears]=\"disabledYears()\"\n (prevMonth)=\"prevMonth()\"\n (nextMonth)=\"nextMonth()\"\n (monthSelect)=\"onMonthSelect($event)\"\n (yearSelect)=\"onYearSelect($event)\"\n (monthClick)=\"onMonthClick()\"\n (yearClick)=\"onYearClick()\"\n (prevYearPage)=\"prevYearPage()\"\n (nextYearPage)=\"nextYearPage()\"\n />\n\n @if (currentView() === \"calendar-grid\") {\n <tedi-date-picker-calendar-grid\n #gridElement\n [gridId]=\"uniqueId\"\n [weekRows]=\"weekRows()\"\n [weekNumbers]=\"weekNumbers()\"\n [showWeekNumbers]=\"showWeekNumbers()\"\n [activeDate]=\"activeDate()\"\n [selected]=\"selected()\"\n [today]=\"today\"\n (daySelect)=\"selectDay($event)\"\n (dayKeydown)=\"onDayKeydown($event.event, $event.date)\"\n />\n } @else if (currentView() === \"month-grid\") {\n <tedi-date-picker-month-grid\n [currentMonth]=\"month()\"\n (monthSelect)=\"onMonthSelect($event)\"\n />\n } @else if (currentView() === \"year-grid\") {\n <tedi-date-picker-year-grid\n [pagedYears]=\"pagedYears()\"\n [selectedYear]=\"selectedYear()\"\n (yearSelect)=\"onYearSelect($event)\"\n />\n }\n </div>\n </tedi-popover-content>\n </tedi-popover>\n</div>\n", styles: ["tedi-date-picker{display:flex;gap:var(--form-field-inner-spacing);align-self:stretch;min-height:var(--form-field-height);padding-right:var(--form-field-padding-x-md-default);background:var(--form-input-background-default);border:var(--borders-01) solid var(--form-input-border-default);border-radius:var(--form-field-radius)}tedi-date-picker:has(.tedi-date-picker__input:hover):not(:has(.tedi-date-picker__input:disabled)){border-color:var(--form-input-border-hover)}tedi-date-picker:has(.tedi-date-picker__input:active):not(:has(.tedi-date-picker__input:disabled)),tedi-date-picker:has(.tedi-date-picker__input:focus):not(:has(.tedi-date-picker__input:disabled)){border-color:var(--form-input-border-active);box-shadow:0 0 0 1px var(--form-input-border-active)}tedi-date-picker:has(.tedi-date-picker__input:disabled){cursor:not-allowed;background:var(--form-input-background-disabled);border-color:var(--form-input-border-disabled)}tedi-date-picker:has(.tedi-date-picker__input--valid){border-color:var(--form-general-feedback-success-border)}tedi-date-picker:has(.tedi-date-picker__input--error){border-color:var(--form-general-feedback-error-border)}tedi-date-picker:has(.tedi-date-picker__input--small){min-height:var(--form-field-height-sm)}.tedi-date-picker__input{flex:1;min-width:0;padding-left:var(--form-field-padding-x-md-default);font-size:var(--body-regular-size);color:var(--form-input-text-filled);border:0;border-radius:var(--form-field-radius)}.tedi-date-picker__input::placeholder{color:var(--form-input-text-placeholder)}.tedi-date-picker__input:disabled{cursor:not-allowed}.tedi-date-picker__input-buttons{display:flex;gap:var(--layout-grid-gutters-04);align-items:center;align-self:center;justify-content:center;min-width:0}.tedi-date-picker__clear:disabled{cursor:not-allowed}.tedi-date-picker__toggle{width:var(--button-xs-icon-size)!important;height:var(--form-field-button-height-sm)!important;font-size:1.125rem!important;border-radius:var(--button-radius-sm)!important}.tedi-date-picker__toggle:disabled{cursor:not-allowed}.tedi-date-picker__calendar{display:block;width:fit-content;-webkit-user-select:none;user-select:none;background:var(--card-background-primary);border-radius:var(--card-radius-rounded)}.tedi-date-picker__header{display:flex;gap:var(--layout-grid-gutters-08);align-items:center;justify-content:space-between;padding:var(--card-padding-md-default) var(--card-padding-md-default) var(--card-padding-xs) var(--card-padding-md-default)}.tedi-date-picker__controls{display:flex;gap:var(--layout-grid-gutters-08);align-items:center;margin:0 auto}.tedi-date-picker__dropdown-trigger{display:inline-flex;gap:var(--layout-grid-gutters-02);align-items:center;padding:0;padding-left:var(--layout-grid-gutters-04);font-size:1rem;font-weight:500;color:var(--general-text-primary);cursor:pointer;background:transparent;border:0;border-radius:var(--button-radius-sm)}.tedi-date-picker__dropdown-trigger:hover{color:var(--button-main-neutral-text-hover);background:var(--button-main-neutral-icon-only-background-hover)}.tedi-date-picker__dropdown-trigger:hover tedi-icon{color:var(--button-main-neutral-text-hover)}.tedi-date-picker__dropdown-trigger:active{color:var(--button-main-neutral-text-active);background:var(--button-main-neutral-icon-only-background-active)}.tedi-date-picker__dropdown-trigger:active tedi-icon{color:var(--button-main-neutral-text-active)}.tedi-date-picker__dropdown-trigger:focus-visible{outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:var(--borders-01)}.tedi-date-picker__dropdown-trigger tedi-icon{font-size:2rem;color:var(--general-icon-tertiary)}.tedi-date-picker__dropdown-content{max-height:15rem}.tedi-date-picker__dropdown-content--month{width:10rem}.tedi-date-picker__dropdown-content--year{width:8.75rem}.tedi-date-picker__label{font-weight:500;color:var(--general-text-primary)}.tedi-date-picker__nav{font-size:var(--button-icon-inner-icon-only-size)!important}.tedi-date-picker__weekdays{display:grid;grid-template-columns:repeat(7,1fr);padding:0 var(--card-padding-md-default)}.tedi-date-picker__weekdays--numbered{grid-template-columns:repeat(8,1fr)}.tedi-date-picker__weekday{display:flex;align-items:center;justify-content:center;width:var(--form-calendar-date-width);height:var(--form-calendar-date-width);font-size:var(--body-small-regular-size);color:var(--general-text-tertiary);text-align:center;text-transform:uppercase;border-bottom:var(--borders-01) solid var(--general-border-primary)}.tedi-date-picker__grid{display:flex;flex-direction:column;padding:0 var(--card-padding-md-default) var(--card-padding-md-default) var(--card-padding-md-default)}.tedi-date-picker__row{display:grid;grid-template-columns:repeat(7,1fr)}.tedi-date-picker__row--numbered{grid-template-columns:repeat(8,1fr)}.tedi-date-picker__weeknumber{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--form-calendar-date-width);height:var(--form-calendar-date-width);font-size:var(--body-small-regular-size);color:var(--general-text-tertiary);border-right:var(--borders-01) solid var(--general-border-primary)}.tedi-date-picker__day{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--form-calendar-date-width);height:var(--form-calendar-date-width);font-size:var(--body-regular-size);color:var(--general-text-primary);cursor:pointer;background:none;border:none;border-radius:var(--button-radius-sm)}.tedi-date-picker__day:hover{background:var(--form-datepicker-date-hover)}.tedi-date-picker__day:active{background:var(--form-datepicker-date-active)}.tedi-date-picker__day:disabled{cursor:not-allowed;opacity:.3}.tedi-date-picker__day:focus-visible{outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:var(--borders-01)}.tedi-date-picker__day--other-month{color:var(--form-datepicker-date-text-muted)}.tedi-date-picker__day--selected{color:var(--form-datepicker-date-text-selected);background:var(--form-datepicker-date-selected);border-radius:var(--button-radius-sm)}.tedi-date-picker__day--selected:hover{background:var(--form-datepicker-date-selected)}.tedi-date-picker__day--selected .tedi-date-picker__today{border-color:var(--form-datepicker-today-border-secondary)}.tedi-date-picker__today{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--form-calendar-date-width);height:var(--form-calendar-date-width);border:var(--borders-01) solid var(--form-datepicker-today-border);border-radius:var(--button-radius-default)}.tedi-date-picker__month-year-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--layout-grid-gutters-08);padding:var(--card-padding-md-default)}.tedi-date-picker__month-year-button{display:flex;align-items:center;justify-content:center;padding:var(--form-checkbox-radio-card-radio-padding-y) var(--form-checkbox-radio-card-radio-padding-x);font-size:var(--body-regular-size);color:var(--form-checkbox-radio-card-primary-default-text);background:var(--form-checkbox-radio-card-secondary-default-background);border:var(--borders-01) solid var(--form-checkbox-radio-card-secondary-default-border);border-radius:var(--form-checkbox-radio-card-radius)}.tedi-date-picker__month-year-button:hover{color:var(--form-checkbox-radio-card-secondary-hover-text);background:var(--form-checkbox-radio-card-secondary-hover-background);border-color:var(--form-checkbox-radio-card-secondary-hover-border)}.tedi-date-picker__month-year-button:focus-visible{outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:var(--borders-01)}.tedi-date-picker__month-year-button:disabled{color:var(--form-checkbox-radio-card-secondary-disabled-default-text);cursor:not-allowed;background:var(--form-checkbox-radio-card-secondary-disabled-default-background);border-color:var(--form-checkbox-radio-card-secondary-disabled-default-border)}.tedi-date-picker__month-year-button--selected{color:var(--form-checkbox-radio-card-secondary-selected-text);background:var(--form-checkbox-radio-card-secondary-selected-background);border-color:var(--form-checkbox-radio-card-secondary-selected-border);box-shadow:0 0 0 1px var(--form-checkbox-radio-card-secondary-selected-border)}.tedi-date-picker__month-year-button--selected:disabled{color:var(--form-checkbox-radio-card-secondary-disabled-selected-text);cursor:not-allowed;background:var(--form-checkbox-radio-card-secondary-disabled-selected-background);border-color:var(--form-checkbox-radio-card-secondary-disabled-selected-border);box-shadow:0 0 0 1px var(--form-checkbox-radio-card-secondary-disabled-selected-border)}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "[tedi-button]", inputs: ["variant", "size"] }, { kind: "component", type: IconComponent, selector: "tedi-icon", inputs: ["name", "size", "color", "background", "variant", "type", "label"] }, { kind: "component", type: ClosingButtonComponent, selector: "button[tedi-closing-button]", inputs: ["size", "iconSize", "ariaLabel"] }, { kind: "component", type: SeparatorComponent, selector: "tedi-separator", inputs: ["axis", "color", "variant", "dotSize", "dotFilled", "thickness", "spacing", "size"] }, { kind: "component", type: PopoverComponent, selector: "tedi-popover", inputs: ["position", "preventOverflow", "dismissible", "hideOnScroll", "withBorder", "withArrow", "lockScroll", "appendTo", "timeoutDelay"] }, { kind: "directive", type: PopoverTriggerDirective, selector: "[tedi-popover-trigger]", inputs: ["underline"] }, { kind: "component", type: PopoverContentComponent, selector: "tedi-popover-content", inputs: ["maxWidth", "title", "showClose"] }, { kind: "component", type: DatePickerHeaderComponent, selector: "tedi-date-picker-header", inputs: ["uniqueId", "currentView", "month", "monthMode", "yearMode", "showNavigation", "canGoPrev", "canGoNext", "selectedYear", "years", "pagedYears", "hasPrevYearPage", "hasNextYearPage", "disabledMonths", "disabledYears"], outputs: ["prevMonth", "nextMonth", "monthSelect", "yearSelect", "monthClick", "yearClick", "prevYearPage", "nextYearPage"] }, { kind: "component", type: DatePickerCalendarGridComponent, selector: "tedi-date-picker-calendar-grid", inputs: ["gridId", "weekRows", "weekNumbers", "showWeekNumbers", "activeDate", "selected", "today"], outputs: ["daySelect", "dayKeydown"] }, { kind: "component", type: DatePickerMonthGridComponent, selector: "tedi-date-picker-month-grid", inputs: ["currentMonth"], outputs: ["monthSelect"] }, { kind: "component", type: DatePickerYearGridComponent, selector: "tedi-date-picker-year-grid", inputs: ["pagedYears", "selectedYear"], outputs: ["yearSelect"] }, { kind: "pipe", type: TediTranslationPipe, name: "tediTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
3853
- }
3854
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DatePickerComponent, decorators: [{
3855
- type: Component,
3856
- args: [{ standalone: true, selector: "tedi-date-picker", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
3857
- ButtonComponent,
3858
- IconComponent,
3859
- ClosingButtonComponent,
3860
- SeparatorComponent,
3861
- PopoverComponent,
3862
- PopoverTriggerDirective,
3863
- PopoverContentComponent,
3864
- DatePickerHeaderComponent,
3865
- DatePickerCalendarGridComponent,
3866
- DatePickerMonthGridComponent,
3867
- DatePickerYearGridComponent,
3868
- TediTranslationPipe
3869
- ], providers: [
3870
- {
3871
- provide: NG_VALUE_ACCESSOR,
3872
- useExisting: forwardRef(() => DatePickerComponent),
3873
- multi: true,
3874
- },
3875
- ], template: "<input\n #inputElement\n type=\"text\"\n class=\"tedi-date-picker__input\"\n role=\"combobox\"\n aria-autocomplete=\"none\"\n aria-haspopup=\"dialog\"\n [class.tedi-date-picker__input--small]=\"inputSize() === 'small'\"\n [class.tedi-date-picker__input--valid]=\"inputState() === 'valid'\"\n [class.tedi-date-picker__input--error]=\"inputState() === 'error'\"\n [attr.id]=\"inputId()\"\n [attr.placeholder]=\"inputPlaceholder()\"\n [attr.aria-expanded]=\"!fieldDisabled() && popover().floatUiComponent().state\"\n [attr.aria-controls]=\"uniqueId\"\n [attr.aria-readonly]=\"!allowManualInput()\"\n [readOnly]=\"!allowManualInput()\"\n [value]=\"inputValue()\"\n [disabled]=\"fieldDisabled()\"\n (input)=\"onInput($event)\"\n (blur)=\"onInputBlur()\"\n (click)=\"onInputClick()\"\n/>\n<div class=\"tedi-date-picker__input-buttons\">\n @if (selected()) {\n <button\n tedi-closing-button\n type=\"button\"\n size=\"small\"\n class=\"tedi-date-picker__clear\"\n [iconSize]=\"18\"\n [ariaLabel]=\"'date-picker.clear-date' | tediTranslate\"\n [disabled]=\"fieldDisabled()\"\n (click)=\"clearInput()\"\n ></button>\n <tedi-separator axis=\"vertical\" size=\"1rem\" />\n }\n <tedi-popover\n style=\"display: flex; align-items: center\"\n position=\"bottom-end\"\n [withArrow]=\"false\"\n [preventOverflow]=\"true\"\n >\n <button\n tedi-button\n tedi-popover-trigger\n type=\"button\"\n variant=\"neutral\"\n size=\"small\"\n class=\"tedi-date-picker__toggle\"\n [attr.aria-label]=\"'date-picker.open-calendar' | tediTranslate\"\n [disabled]=\"fieldDisabled()\"\n (click)=\"openCalendar()\"\n >\n <tedi-icon name=\"calendar_today\" size=\"inherit\" />\n </button>\n <tedi-popover-content maxWidth=\"none\" style=\"padding: 0\">\n <div\n class=\"tedi-date-picker__calendar\"\n (keydown)=\"onCalendarKeyDown($event)\"\n >\n <tedi-date-picker-header\n [uniqueId]=\"uniqueId\"\n [currentView]=\"currentView()\"\n [month]=\"month()\"\n [monthMode]=\"monthMode()\"\n [yearMode]=\"yearMode()\"\n [showNavigation]=\"showNavigation()\"\n [canGoPrev]=\"canGoPrev()\"\n [canGoNext]=\"canGoNext()\"\n [selectedYear]=\"selectedYear()\"\n [years]=\"years()\"\n [pagedYears]=\"pagedYears()\"\n [hasPrevYearPage]=\"hasPrevYearPage()\"\n [hasNextYearPage]=\"hasNextYearPage()\"\n [disabledMonths]=\"disabledMonths()\"\n [disabledYears]=\"disabledYears()\"\n (prevMonth)=\"prevMonth()\"\n (nextMonth)=\"nextMonth()\"\n (monthSelect)=\"onMonthSelect($event)\"\n (yearSelect)=\"onYearSelect($event)\"\n (monthClick)=\"onMonthClick()\"\n (yearClick)=\"onYearClick()\"\n (prevYearPage)=\"prevYearPage()\"\n (nextYearPage)=\"nextYearPage()\"\n />\n\n @if (currentView() === \"calendar-grid\") {\n <tedi-date-picker-calendar-grid\n #gridElement\n [gridId]=\"uniqueId\"\n [weekRows]=\"weekRows()\"\n [weekNumbers]=\"weekNumbers()\"\n [showWeekNumbers]=\"showWeekNumbers()\"\n [activeDate]=\"activeDate()\"\n [selected]=\"selected()\"\n [today]=\"today\"\n (daySelect)=\"selectDay($event)\"\n (dayKeydown)=\"onDayKeydown($event.event, $event.date)\"\n />\n } @else if (currentView() === \"month-grid\") {\n <tedi-date-picker-month-grid\n [currentMonth]=\"month()\"\n (monthSelect)=\"onMonthSelect($event)\"\n />\n } @else if (currentView() === \"year-grid\") {\n <tedi-date-picker-year-grid\n [pagedYears]=\"pagedYears()\"\n [selectedYear]=\"selectedYear()\"\n (yearSelect)=\"onYearSelect($event)\"\n />\n }\n </div>\n </tedi-popover-content>\n </tedi-popover>\n</div>\n", styles: ["tedi-date-picker{display:flex;gap:var(--form-field-inner-spacing);align-self:stretch;min-height:var(--form-field-height);padding-right:var(--form-field-padding-x-md-default);background:var(--form-input-background-default);border:var(--borders-01) solid var(--form-input-border-default);border-radius:var(--form-field-radius)}tedi-date-picker:has(.tedi-date-picker__input:hover):not(:has(.tedi-date-picker__input:disabled)){border-color:var(--form-input-border-hover)}tedi-date-picker:has(.tedi-date-picker__input:active):not(:has(.tedi-date-picker__input:disabled)),tedi-date-picker:has(.tedi-date-picker__input:focus):not(:has(.tedi-date-picker__input:disabled)){border-color:var(--form-input-border-active);box-shadow:0 0 0 1px var(--form-input-border-active)}tedi-date-picker:has(.tedi-date-picker__input:disabled){cursor:not-allowed;background:var(--form-input-background-disabled);border-color:var(--form-input-border-disabled)}tedi-date-picker:has(.tedi-date-picker__input--valid){border-color:var(--form-general-feedback-success-border)}tedi-date-picker:has(.tedi-date-picker__input--error){border-color:var(--form-general-feedback-error-border)}tedi-date-picker:has(.tedi-date-picker__input--small){min-height:var(--form-field-height-sm)}.tedi-date-picker__input{flex:1;min-width:0;padding-left:var(--form-field-padding-x-md-default);font-size:var(--body-regular-size);color:var(--form-input-text-filled);border:0;border-radius:var(--form-field-radius)}.tedi-date-picker__input::placeholder{color:var(--form-input-text-placeholder)}.tedi-date-picker__input:disabled{cursor:not-allowed}.tedi-date-picker__input-buttons{display:flex;gap:var(--layout-grid-gutters-04);align-items:center;align-self:center;justify-content:center;min-width:0}.tedi-date-picker__clear:disabled{cursor:not-allowed}.tedi-date-picker__toggle{width:var(--button-xs-icon-size)!important;height:var(--form-field-button-height-sm)!important;font-size:1.125rem!important;border-radius:var(--button-radius-sm)!important}.tedi-date-picker__toggle:disabled{cursor:not-allowed}.tedi-date-picker__calendar{display:block;width:fit-content;-webkit-user-select:none;user-select:none;background:var(--card-background-primary);border-radius:var(--card-radius-rounded)}.tedi-date-picker__header{display:flex;gap:var(--layout-grid-gutters-08);align-items:center;justify-content:space-between;padding:var(--card-padding-md-default) var(--card-padding-md-default) var(--card-padding-xs) var(--card-padding-md-default)}.tedi-date-picker__controls{display:flex;gap:var(--layout-grid-gutters-08);align-items:center;margin:0 auto}.tedi-date-picker__dropdown-trigger{display:inline-flex;gap:var(--layout-grid-gutters-02);align-items:center;padding:0;padding-left:var(--layout-grid-gutters-04);font-size:1rem;font-weight:500;color:var(--general-text-primary);cursor:pointer;background:transparent;border:0;border-radius:var(--button-radius-sm)}.tedi-date-picker__dropdown-trigger:hover{color:var(--button-main-neutral-text-hover);background:var(--button-main-neutral-icon-only-background-hover)}.tedi-date-picker__dropdown-trigger:hover tedi-icon{color:var(--button-main-neutral-text-hover)}.tedi-date-picker__dropdown-trigger:active{color:var(--button-main-neutral-text-active);background:var(--button-main-neutral-icon-only-background-active)}.tedi-date-picker__dropdown-trigger:active tedi-icon{color:var(--button-main-neutral-text-active)}.tedi-date-picker__dropdown-trigger:focus-visible{outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:var(--borders-01)}.tedi-date-picker__dropdown-trigger tedi-icon{font-size:2rem;color:var(--general-icon-tertiary)}.tedi-date-picker__dropdown-content{max-height:15rem}.tedi-date-picker__dropdown-content--month{width:10rem}.tedi-date-picker__dropdown-content--year{width:8.75rem}.tedi-date-picker__label{font-weight:500;color:var(--general-text-primary)}.tedi-date-picker__nav{font-size:var(--button-icon-inner-icon-only-size)!important}.tedi-date-picker__weekdays{display:grid;grid-template-columns:repeat(7,1fr);padding:0 var(--card-padding-md-default)}.tedi-date-picker__weekdays--numbered{grid-template-columns:repeat(8,1fr)}.tedi-date-picker__weekday{display:flex;align-items:center;justify-content:center;width:var(--form-calendar-date-width);height:var(--form-calendar-date-width);font-size:var(--body-small-regular-size);color:var(--general-text-tertiary);text-align:center;text-transform:uppercase;border-bottom:var(--borders-01) solid var(--general-border-primary)}.tedi-date-picker__grid{display:flex;flex-direction:column;padding:0 var(--card-padding-md-default) var(--card-padding-md-default) var(--card-padding-md-default)}.tedi-date-picker__row{display:grid;grid-template-columns:repeat(7,1fr)}.tedi-date-picker__row--numbered{grid-template-columns:repeat(8,1fr)}.tedi-date-picker__weeknumber{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--form-calendar-date-width);height:var(--form-calendar-date-width);font-size:var(--body-small-regular-size);color:var(--general-text-tertiary);border-right:var(--borders-01) solid var(--general-border-primary)}.tedi-date-picker__day{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--form-calendar-date-width);height:var(--form-calendar-date-width);font-size:var(--body-regular-size);color:var(--general-text-primary);cursor:pointer;background:none;border:none;border-radius:var(--button-radius-sm)}.tedi-date-picker__day:hover{background:var(--form-datepicker-date-hover)}.tedi-date-picker__day:active{background:var(--form-datepicker-date-active)}.tedi-date-picker__day:disabled{cursor:not-allowed;opacity:.3}.tedi-date-picker__day:focus-visible{outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:var(--borders-01)}.tedi-date-picker__day--other-month{color:var(--form-datepicker-date-text-muted)}.tedi-date-picker__day--selected{color:var(--form-datepicker-date-text-selected);background:var(--form-datepicker-date-selected);border-radius:var(--button-radius-sm)}.tedi-date-picker__day--selected:hover{background:var(--form-datepicker-date-selected)}.tedi-date-picker__day--selected .tedi-date-picker__today{border-color:var(--form-datepicker-today-border-secondary)}.tedi-date-picker__today{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--form-calendar-date-width);height:var(--form-calendar-date-width);border:var(--borders-01) solid var(--form-datepicker-today-border);border-radius:var(--button-radius-default)}.tedi-date-picker__month-year-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--layout-grid-gutters-08);padding:var(--card-padding-md-default)}.tedi-date-picker__month-year-button{display:flex;align-items:center;justify-content:center;padding:var(--form-checkbox-radio-card-radio-padding-y) var(--form-checkbox-radio-card-radio-padding-x);font-size:var(--body-regular-size);color:var(--form-checkbox-radio-card-primary-default-text);background:var(--form-checkbox-radio-card-secondary-default-background);border:var(--borders-01) solid var(--form-checkbox-radio-card-secondary-default-border);border-radius:var(--form-checkbox-radio-card-radius)}.tedi-date-picker__month-year-button:hover{color:var(--form-checkbox-radio-card-secondary-hover-text);background:var(--form-checkbox-radio-card-secondary-hover-background);border-color:var(--form-checkbox-radio-card-secondary-hover-border)}.tedi-date-picker__month-year-button:focus-visible{outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:var(--borders-01)}.tedi-date-picker__month-year-button:disabled{color:var(--form-checkbox-radio-card-secondary-disabled-default-text);cursor:not-allowed;background:var(--form-checkbox-radio-card-secondary-disabled-default-background);border-color:var(--form-checkbox-radio-card-secondary-disabled-default-border)}.tedi-date-picker__month-year-button--selected{color:var(--form-checkbox-radio-card-secondary-selected-text);background:var(--form-checkbox-radio-card-secondary-selected-background);border-color:var(--form-checkbox-radio-card-secondary-selected-border);box-shadow:0 0 0 1px var(--form-checkbox-radio-card-secondary-selected-border)}.tedi-date-picker__month-year-button--selected:disabled{color:var(--form-checkbox-radio-card-secondary-disabled-selected-text);cursor:not-allowed;background:var(--form-checkbox-radio-card-secondary-disabled-selected-background);border-color:var(--form-checkbox-radio-card-secondary-disabled-selected-border);box-shadow:0 0 0 1px var(--form-checkbox-radio-card-secondary-disabled-selected-border)}\n"] }]
3876
- }], ctorParameters: () => [] });
3877
-
3878
- class FeedbackTextComponent {
3879
- /**
3880
- * Helper text
3881
- */
3882
- text = input.required();
3883
- /**
3884
- * Type of form-helper.
3885
- * @default hint
3886
- */
3887
- type = input("hint");
3888
- /**
3889
- * Position of the helper.
3890
- * @default left
3891
- */
3892
- position = input("left");
3893
- role = computed(() => {
3894
- if (this.type() === "valid" || this.type() === "error") {
3895
- return "alert";
3896
- }
3897
- return undefined;
3898
- });
3899
- ariaLive = computed(() => {
3900
- if (this.type() === "error" || this.type() === "valid") {
3901
- return "assertive";
3902
- }
3903
- return "polite";
3904
- });
3905
- classes = computed(() => {
3906
- return `tedi-feedback-text tedi-feedback-text--${this.type()} tedi-feedback-text--${this.position()}`;
3907
- });
3908
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: FeedbackTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3909
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.15", type: FeedbackTextComponent, isStandalone: true, selector: "tedi-feedback-text", inputs: { text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.role": "role()", "attr.aria-live": "ariaLive()" } }, ngImport: i0, template: "{{ text() }}\n", styles: [".tedi-feedback-text{display:block;font-size:var(--body-small-regular-size);color:var(--general-text-tertiary)}.tedi-feedback-text--valid{color:var(--form-general-feedback-success-text)}.tedi-feedback-text--error{color:var(--form-general-feedback-error-text)}.tedi-feedback-text--left{flex-grow:1;text-align:left}.tedi-feedback-text--right{flex-grow:0;text-align:right}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
3910
- }
3911
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: FeedbackTextComponent, decorators: [{
3912
- type: Component,
3913
- args: [{ selector: "tedi-feedback-text", standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
3914
- "[class]": "classes()",
3915
- "[attr.role]": "role()",
3916
- "[attr.aria-live]": "ariaLive()",
3917
- }, template: "{{ text() }}\n", styles: [".tedi-feedback-text{display:block;font-size:var(--body-small-regular-size);color:var(--general-text-tertiary)}.tedi-feedback-text--valid{color:var(--form-general-feedback-success-text)}.tedi-feedback-text--error{color:var(--form-general-feedback-error-text)}.tedi-feedback-text--left{flex-grow:1;text-align:left}.tedi-feedback-text--right{flex-grow:0;text-align:right}\n"] }]
3918
- }] });
3919
-
3920
- class LabelComponent {
3921
- /**
3922
- * Size of the label.
3923
- * @default default
3924
- */
3925
- size = input("default");
3926
- /**
3927
- * Whether label is required.
3928
- * @default false
3929
- */
3930
- required = input(false);
3931
- /**
3932
- * Color of the label.
3933
- * @default secondary
3934
- */
3935
- color = input("secondary");
3936
- classes = computed(() => {
3937
- const classList = ["tedi-label", `tedi-label--${this.color()}`];
3938
- if (this.size() === "small") {
3939
- classList.push("tedi-label--small");
3940
- }
3941
- return classList.join(" ");
3942
- });
3943
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3944
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: LabelComponent, isStandalone: true, selector: "[tedi-label]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: "<ng-content />\n@if (required()) {\n <span class=\"tedi-label--required\" aria-hidden=\"true\">*</span>\n <span class=\"sr-only\">, {{ 'required' | tediTranslate }}</span>\n}\n", styles: [".tedi-label{font-family:var(--family-default);font-size:var(--body-regular-size)}.tedi-label--small{font-size:var(--body-small-regular-size)}.tedi-label--required{margin-left:var(--content-label-inner-spacing-x);color:var(--form-general-feedback-error-border)}.tedi-label--primary{color:var(--general-text-primary)}.tedi-label--secondary{color:var(--general-text-secondary)}.tedi-label:has(input[disabled]),.tedi-label[for]:has(+input[disabled]){color:var(--general-text-disabled)}\n"], dependencies: [{ kind: "pipe", type: TediTranslationPipe, name: "tediTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
3945
- }
3946
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LabelComponent, decorators: [{
3947
- type: Component,
3948
- args: [{ selector: "[tedi-label]", standalone: true, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
3949
- TediTranslationPipe
3950
- ], host: {
3951
- "[class]": "classes()",
3952
- }, template: "<ng-content />\n@if (required()) {\n <span class=\"tedi-label--required\" aria-hidden=\"true\">*</span>\n <span class=\"sr-only\">, {{ 'required' | tediTranslate }}</span>\n}\n", styles: [".tedi-label{font-family:var(--family-default);font-size:var(--body-regular-size)}.tedi-label--small{font-size:var(--body-small-regular-size)}.tedi-label--required{margin-left:var(--content-label-inner-spacing-x);color:var(--form-general-feedback-error-border)}.tedi-label--primary{color:var(--general-text-primary)}.tedi-label--secondary{color:var(--general-text-secondary)}.tedi-label:has(input[disabled]),.tedi-label[for]:has(+input[disabled]){color:var(--general-text-disabled)}\n"] }]
3953
- }] });
3954
-
3955
- class NumberFieldComponent {
3956
- /**
3957
- * The unique identifier for the input element that this label is associated with. This ID should match the input element's id attribute to ensure accessibility.
3958
- */
3959
- inputId = input.required();
3960
- /**
3961
- * The text content of the label that describes the input field.
3962
- */
3963
- label = input();
3964
- /**
3965
- * Value of the input field. Supports two-way binding, use with form controls.
3966
- */
3967
- value = model(0);
3968
- /**
3969
- * Is input disabled?
3970
- * @default false
3971
- */
3972
- disabled = input(false);
3973
- /**
3974
- * Indicates whether the input field is required. If set to true, the required indicator will be displayed next to the label.
3975
- * @default false
3976
- */
3977
- required = input(false);
3978
- /**
3979
- * Minimum allowed value. Disables decrementing below this value and restricts manual input.
3980
- */
3981
- min = input();
3982
- /**
3983
- * Maximum allowed value. Disables incrementing above this value and restricts manual input.
3984
- */
3985
- max = input();
3986
- /**
3987
- * Step size for incrementing or decrementing the value.
3988
- * @default 1
3989
- */
3990
- step = input(1);
3991
- /**
3992
- * Size of the number field.
3993
- * @default default
3994
- */
3995
- size = input("default");
3996
- /**
3997
- * Marks the field as invalid for validation purposes.
3998
- * @default false
3999
- */
4000
- invalid = input(false);
4001
- /**
4002
- * Text displayed after the input value, typically a unit.
4003
- */
4004
- suffix = input();
4005
- /**
4006
- * FeedbackText component inputs.
4007
- */
4008
- feedbackText = input();
4009
- /**
4010
- * Is input full width?
4011
- * @default false
4012
- */
4013
- fullWidth = input(false);
4014
- inputRef;
4015
- formDisabled = signal(false);
4016
- onChange = () => { };
4017
- onTouched = () => { };
4018
- translationService = inject(TediTranslationService);
4019
- liveAnnouncer = inject(LiveAnnouncer);
4020
- isInvalid = computed(() => {
4021
- const min = this.min();
4022
- const max = this.max();
4023
- return (this.invalid() ||
4024
- Boolean(min !== undefined && this.value() < min) ||
4025
- Boolean(max !== undefined && this.value() > max));
4026
- });
4027
- isDisabled = computed(() => this.disabled() || this.formDisabled());
4028
- decrementDisabled = computed(() => {
4029
- const min = this.min();
4030
- return this.isDisabled() || (min !== undefined && this.value() <= min);
4031
- });
4032
- incrementDisabled = computed(() => {
4033
- const max = this.max();
4034
- return this.isDisabled() || (max !== undefined && this.value() >= max);
4035
- });
4036
- feedbackId = computed(() => this.feedbackText() ? `${this.inputId()}-feedback` : null);
4037
- writeValue(value) {
4038
- this.value.set(value ? (isNaN(value) ? 0 : value) : 0);
4039
- }
4040
- registerOnChange(fn) {
4041
- this.onChange = fn;
4042
- }
4043
- registerOnTouched(fn) {
4044
- this.onTouched = fn;
4045
- }
4046
- setDisabledState(disabled) {
4047
- this.formDisabled.set(disabled);
4048
- }
4049
- focus() {
4050
- this.inputRef.nativeElement.focus();
4051
- }
4052
- blur() {
4053
- this.inputRef.nativeElement.blur();
4054
- this.onTouched();
4055
- }
4056
- handleButtonClick(action) {
4057
- const delta = action === "decrement" ? -1 : 1;
4058
- const nextValue = this.value() + this.step() * delta;
4059
- this.value.set(nextValue);
4060
- this.onChange(nextValue);
4061
- this.onTouched();
4062
- this.announceValue(nextValue);
4063
- }
4064
- announceValue(value) {
4065
- this.liveAnnouncer.announce(this.translationService.translate("numberField.quantityUpdated", value), "polite");
4066
- }
4067
- handleInputChange(event) {
4068
- const input = event.target;
4069
- const value = isNaN(input.valueAsNumber) ? 0 : input.valueAsNumber;
4070
- if (value !== this.value()) {
4071
- this.value.set(value);
4072
- this.onChange(value);
4073
- }
5163
+ return null;
4074
5164
  }
4075
- handleBlur() {
4076
- this.onTouched();
5165
+ /**
5166
+ * Finds the next enabled date starting from the given date, moving by the given step.
5167
+ * Returns null if no enabled date is found within a reasonable range.
5168
+ * Needed for correct WCAG arrow movement handling
5169
+ */
5170
+ findNextEnabledDate(from, step) {
5171
+ const maxIterations = 365;
5172
+ const target = new Date(from);
5173
+ for (let i = 0; i < maxIterations; i++) {
5174
+ target.setDate(target.getDate() + step);
5175
+ if (!this.isDisabled(target)) {
5176
+ return new Date(target);
5177
+ }
5178
+ }
5179
+ return null;
4077
5180
  }
4078
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NumberFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4079
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: NumberFieldComponent, isStandalone: true, selector: "tedi-number-field", inputs: { inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, suffix: { classPropertyName: "suffix", publicName: "suffix", isSignal: true, isRequired: false, transformFunction: null }, feedbackText: { classPropertyName: "feedbackText", publicName: "feedbackText", isSignal: true, isRequired: false, transformFunction: null }, fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, providers: [
5181
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5182
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: DatePickerComponent, isStandalone: true, selector: "tedi-date-picker", inputs: { selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, month: { classPropertyName: "month", publicName: "month", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, showNavigation: { classPropertyName: "showNavigation", publicName: "showNavigation", isSignal: true, isRequired: false, transformFunction: null }, monthMode: { classPropertyName: "monthMode", publicName: "monthMode", isSignal: true, isRequired: false, transformFunction: null }, yearMode: { classPropertyName: "yearMode", publicName: "yearMode", isSignal: true, isRequired: false, transformFunction: null }, startYear: { classPropertyName: "startYear", publicName: "startYear", isSignal: true, isRequired: false, transformFunction: null }, endYear: { classPropertyName: "endYear", publicName: "endYear", isSignal: true, isRequired: false, transformFunction: null }, inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: false, transformFunction: null }, inputPlaceholder: { classPropertyName: "inputPlaceholder", publicName: "inputPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, inputState: { classPropertyName: "inputState", publicName: "inputState", isSignal: true, isRequired: false, transformFunction: null }, inputSize: { classPropertyName: "inputSize", publicName: "inputSize", isSignal: true, isRequired: false, transformFunction: null }, inputDisabled: { classPropertyName: "inputDisabled", publicName: "inputDisabled", isSignal: true, isRequired: false, transformFunction: null }, allowManualInput: { classPropertyName: "allowManualInput", publicName: "allowManualInput", isSignal: true, isRequired: false, transformFunction: null }, showWeekNumbers: { classPropertyName: "showWeekNumbers", publicName: "showWeekNumbers", isSignal: true, isRequired: false, transformFunction: null }, closeOnSelect: { classPropertyName: "closeOnSelect", publicName: "closeOnSelect", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selectedChange", month: "monthChange" }, providers: [
4080
5183
  {
4081
5184
  provide: NG_VALUE_ACCESSOR,
4082
- useExisting: forwardRef(() => NumberFieldComponent),
5185
+ useExisting: forwardRef(() => DatePickerComponent),
4083
5186
  multi: true,
4084
5187
  },
4085
- ], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "@if (label()) {\n <label tedi-label [for]=\"inputId()\" [required]=\"required()\" [size]=\"size()\">\n {{ label() }}\n </label>\n}\n<div\n [class]=\"{\n 'tedi-number-field': true,\n 'tedi-number-field--invalid': isInvalid(),\n 'tedi-number-field--disabled': isDisabled(),\n }\"\n>\n <button\n tedi-button\n type=\"button\"\n variant=\"secondary\"\n [class]=\"{\n 'tedi-number-field__button': true,\n 'tedi-number-field__button--decrement': true,\n 'tedi-number-field__button--small': size() === 'small',\n }\"\n [disabled]=\"decrementDisabled()\"\n [attr.aria-label]=\"'numberField.decrement' | tediTranslate: step()\"\n (click)=\"handleButtonClick('decrement')\"\n >\n <tedi-icon name=\"remove\" [size]=\"18\" />\n </button>\n <div\n [class]=\"{\n 'tedi-number-field__input-wrapper': true,\n 'tedi-number-field__input-wrapper--small': size() === 'small',\n 'tedi-number-field__input-wrapper--disabled': isDisabled(),\n 'tedi-number-field__input-wrapper--with-suffix': suffix(),\n 'tedi-number-field__input-wrapper--full-width': fullWidth(),\n }\"\n (click)=\"focus()\"\n >\n <input\n #inputElement\n [id]=\"inputId()\"\n type=\"number\"\n inputmode=\"numeric\"\n class=\"tedi-number-field__input\"\n [value]=\"value()\"\n [disabled]=\"isDisabled()\"\n [required]=\"required()\"\n [attr.min]=\"min()\"\n [attr.max]=\"max()\"\n [attr.step]=\"step()\"\n [attr.aria-invalid]=\"isInvalid()\"\n [attr.aria-describedby]=\"feedbackId()\"\n (input)=\"handleInputChange($event)\"\n (blur)=\"handleBlur()\"\n />\n @if (suffix()) {\n <small tedi-text color=\"tertiary\" class=\"tedi-number-field__suffix\">\n {{ suffix() }}\n </small>\n }\n </div>\n <button\n tedi-button\n type=\"button\"\n variant=\"secondary\"\n [class]=\"{\n 'tedi-number-field__button': true,\n 'tedi-number-field__button--increment': true,\n 'tedi-number-field__button--small': size() === 'small',\n }\"\n [disabled]=\"incrementDisabled()\"\n [attr.aria-label]=\"'numberField.increment' | tediTranslate: step()\"\n (click)=\"handleButtonClick('increment')\"\n >\n <tedi-icon name=\"add\" [size]=\"18\" />\n </button>\n</div>\n@if (feedbackText(); as feedback) {\n <tedi-feedback-text\n [attr.id]=\"feedbackId()\"\n [text]=\"feedback.text\"\n [type]=\"feedback.type\"\n [position]=\"feedback.position\"\n />\n}\n", styles: [".tedi-number-field{display:flex}.tedi-number-field:hover:not(.tedi-number-field--disabled) .tedi-number-field__button:not(:disabled),.tedi-number-field:hover:not(.tedi-number-field--disabled) .tedi-number-field__input-wrapper:not(:disabled){border-color:var(--form-input-border-hover)}.tedi-number-field .tedi-number-field__button{--general-icon-primary: currentcolor;width:var(--form-field-height);height:var(--form-field-height);border:var(--borders-01) solid var(--form-input-border-default)}.tedi-number-field .tedi-number-field__button:disabled{background-color:var(--form-input-background-disabled);border:var(--borders-01) solid var(--form-input-border-disabled);opacity:.5}.tedi-number-field .tedi-number-field__button--decrement{z-index:2;margin-right:calc(-1 * var(--borders-01));border-radius:0;border-top-left-radius:var(--button-radius-sm);border-bottom-left-radius:var(--button-radius-sm)}.tedi-number-field .tedi-number-field__button--increment{margin-left:calc(-1 * var(--borders-01));border-radius:0;border-top-right-radius:var(--button-radius-sm);border-bottom-right-radius:var(--button-radius-sm)}.tedi-number-field .tedi-number-field__button--small{width:var(--form-field-height-sm);height:var(--form-field-height-sm)}.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__button,.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__button:disabled,.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__button:hover,.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__input-wrapper{border-color:var(--form-general-feedback-error-border)}.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__input-wrapper:focus-within{outline-color:var(--form-general-feedback-error-border)}.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__input-wrapper:active{z-index:2;outline:none;border-color:var(--form-general-feedback-error-border);border-radius:0}.tedi-number-field--disabled .tedi-number-field__button,.tedi-number-field--disabled .tedi-number-field__button:disabled,.tedi-number-field--disabled .tedi-number-field__input-wrapper{background-color:var(--form-input-background-disabled);border-color:var(--form-input-border-disabled)}.tedi-number-field--disabled .tedi-number-field__input-wrapper{background-color:var(--form-input-background-disabled);opacity:.5}.tedi-number-field--disabled .tedi-number-field__input-wrapper .tedi-number-field__input{background-color:var(--form-input-background-disabled)}.tedi-number-field__input-wrapper{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--form-field-inner-spacing-sm);align-items:stretch;width:var(--form-number-input-min-width);height:var(--form-field-height);padding-right:var(--form-field-padding-y-3-default);padding-left:var(--form-field-padding-y-3-default);background-color:var(--form-input-background-default);border:var(--borders-01) solid var(--form-input-border-default)}.tedi-number-field__input-wrapper:focus-within{z-index:2;outline:calc(2 * var(--borders-01)) solid var(--form-input-border-active);outline-offset:var(--borders-01);border-color:var(--form-input-border-active);border-radius:var(--button-radius-sm)}.tedi-number-field__input-wrapper:active:not(.tedi-number-field__input-wrapper--disabled){z-index:2;outline:none;border-color:var(--form-input-border-active);border-radius:0}.tedi-number-field__input-wrapper--small{height:var(--form-field-height-sm)}.tedi-number-field__input-wrapper--with-suffix .tedi-number-field__input{grid-column:span 1;text-align:right}.tedi-number-field__input-wrapper--with-suffix .tedi-number-field__suffix{align-self:center;text-align:left;-webkit-user-select:none;user-select:none}.tedi-number-field__input-wrapper--full-width{width:100%}.tedi-number-field__input{grid-column:span 2;width:100%;font-size:var(--heading-h6-size);color:var(--form-input-text-filled);text-align:center;outline:none;background-color:var(--form-input-background-default);border:0;border-radius:0}.tedi-number-field__input::-webkit-outer-spin-button,.tedi-number-field__input::-webkit-inner-spin-button{appearance:none}.tedi-number-field__input[type=number]{appearance:textfield}\n"], dependencies: [{ kind: "component", type: LabelComponent, selector: "[tedi-label]", inputs: ["size", "required", "color"] }, { kind: "component", type: ButtonComponent, selector: "[tedi-button]", inputs: ["variant", "size"] }, { kind: "component", type: IconComponent, selector: "tedi-icon", inputs: ["name", "size", "color", "background", "variant", "type", "label"] }, { kind: "component", type: TextComponent, selector: "[tedi-text]", inputs: ["modifiers", "color"] }, { kind: "component", type: FeedbackTextComponent, selector: "tedi-feedback-text", inputs: ["text", "type", "position"] }, { kind: "pipe", type: TediTranslationPipe, name: "tediTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
5188
+ ], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true, isSignal: true }, { propertyName: "calendarGrid", first: true, predicate: ["gridElement"], descendants: true, isSignal: true }, { propertyName: "popover", first: true, predicate: PopoverComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<input\n #inputElement\n type=\"text\"\n class=\"tedi-date-picker__input\"\n role=\"combobox\"\n aria-autocomplete=\"none\"\n aria-haspopup=\"dialog\"\n [class.tedi-date-picker__input--small]=\"inputSize() === 'small'\"\n [class.tedi-date-picker__input--valid]=\"inputState() === 'valid'\"\n [class.tedi-date-picker__input--error]=\"inputState() === 'error'\"\n [attr.id]=\"inputId()\"\n [attr.placeholder]=\"inputPlaceholder()\"\n [attr.aria-expanded]=\"!fieldDisabled() && popover().floatUiComponent().state\"\n [attr.aria-controls]=\"uniqueId\"\n [attr.aria-readonly]=\"!allowManualInput()\"\n [readOnly]=\"!allowManualInput()\"\n [value]=\"inputValue()\"\n [disabled]=\"fieldDisabled()\"\n (input)=\"onInput($event)\"\n (blur)=\"onInputBlur()\"\n (click)=\"onInputClick()\"\n/>\n<div class=\"tedi-date-picker__input-buttons\">\n @if (selected()) {\n <button\n tedi-closing-button\n type=\"button\"\n size=\"small\"\n class=\"tedi-date-picker__clear\"\n [iconSize]=\"18\"\n [ariaLabel]=\"'date-picker.clear-date' | tediTranslate\"\n [disabled]=\"fieldDisabled()\"\n (click)=\"clearInput()\"\n ></button>\n <tedi-separator axis=\"vertical\" size=\"1rem\" />\n }\n <tedi-popover\n style=\"display: flex; align-items: center\"\n position=\"bottom-end\"\n [withArrow]=\"false\"\n [preventOverflow]=\"true\"\n >\n <button\n tedi-button\n tedi-popover-trigger\n type=\"button\"\n variant=\"neutral\"\n size=\"small\"\n class=\"tedi-date-picker__toggle\"\n [attr.aria-label]=\"'date-picker.open-calendar' | tediTranslate\"\n [disabled]=\"fieldDisabled()\"\n (click)=\"openCalendar()\"\n >\n <tedi-icon name=\"calendar_today\" size=\"inherit\" />\n </button>\n <tedi-popover-content maxWidth=\"none\" style=\"padding: 0\">\n <div\n class=\"tedi-date-picker__calendar\"\n (keydown)=\"onCalendarKeyDown($event)\"\n >\n <tedi-date-picker-header\n [uniqueId]=\"uniqueId\"\n [currentView]=\"currentView()\"\n [month]=\"month()\"\n [monthMode]=\"monthMode()\"\n [yearMode]=\"yearMode()\"\n [showNavigation]=\"showNavigation()\"\n [canGoPrev]=\"canGoPrev()\"\n [canGoNext]=\"canGoNext()\"\n [selectedYear]=\"selectedYear()\"\n [years]=\"years()\"\n [pagedYears]=\"pagedYears()\"\n [hasPrevYearPage]=\"hasPrevYearPage()\"\n [hasNextYearPage]=\"hasNextYearPage()\"\n [disabledMonths]=\"disabledMonths()\"\n [disabledYears]=\"disabledYears()\"\n (prevMonth)=\"prevMonth()\"\n (nextMonth)=\"nextMonth()\"\n (monthSelect)=\"onMonthSelect($event)\"\n (yearSelect)=\"onYearSelect($event)\"\n (monthClick)=\"onMonthClick()\"\n (yearClick)=\"onYearClick()\"\n (prevYearPage)=\"prevYearPage()\"\n (nextYearPage)=\"nextYearPage()\"\n />\n\n @if (currentView() === \"calendar-grid\") {\n <tedi-date-picker-calendar-grid\n #gridElement\n [gridId]=\"uniqueId\"\n [weekRows]=\"weekRows()\"\n [weekNumbers]=\"weekNumbers()\"\n [showWeekNumbers]=\"showWeekNumbers()\"\n [activeDate]=\"activeDate()\"\n [selected]=\"selected()\"\n [today]=\"today\"\n (daySelect)=\"selectDay($event)\"\n (dayKeydown)=\"onDayKeydown($event.event, $event.date)\"\n />\n } @else if (currentView() === \"month-grid\") {\n <tedi-date-picker-month-grid\n [currentMonth]=\"month()\"\n (monthSelect)=\"onMonthSelect($event)\"\n />\n } @else if (currentView() === \"year-grid\") {\n <tedi-date-picker-year-grid\n [pagedYears]=\"pagedYears()\"\n [selectedYear]=\"selectedYear()\"\n (yearSelect)=\"onYearSelect($event)\"\n />\n }\n </div>\n </tedi-popover-content>\n </tedi-popover>\n</div>\n", styles: ["tedi-date-picker{display:flex;gap:var(--form-field-inner-spacing);align-self:stretch;min-height:var(--form-field-height);padding-right:var(--form-field-padding-x-md-default);background:var(--form-input-background-default);border:var(--borders-01) solid var(--form-input-border-default);border-radius:var(--form-field-radius)}tedi-date-picker:has(.tedi-date-picker__input:hover):not(:has(.tedi-date-picker__input:disabled)){border-color:var(--form-input-border-hover)}tedi-date-picker:has(.tedi-date-picker__input:active):not(:has(.tedi-date-picker__input:disabled)),tedi-date-picker:has(.tedi-date-picker__input:focus):not(:has(.tedi-date-picker__input:disabled)){border-color:var(--form-input-border-active);box-shadow:0 0 0 1px var(--form-input-border-active)}tedi-date-picker:has(.tedi-date-picker__input:disabled){cursor:not-allowed;background:var(--form-input-background-disabled);border-color:var(--form-input-border-disabled)}tedi-date-picker:has(.tedi-date-picker__input--valid){border-color:var(--form-general-feedback-success-border)}tedi-date-picker:has(.tedi-date-picker__input--error){border-color:var(--form-general-feedback-error-border)}tedi-date-picker:has(.tedi-date-picker__input--small){min-height:var(--form-field-height-sm)}.tedi-date-picker__input{flex:1;min-width:0;padding-left:var(--form-field-padding-x-md-default);font-size:var(--body-regular-size);color:var(--form-input-text-filled);border:0;border-radius:var(--form-field-radius)}.tedi-date-picker__input::placeholder{color:var(--form-input-text-placeholder)}.tedi-date-picker__input:disabled{cursor:not-allowed}.tedi-date-picker__input-buttons{display:flex;gap:var(--layout-grid-gutters-04);align-items:center;align-self:center;justify-content:center;min-width:0}.tedi-date-picker__clear:disabled{cursor:not-allowed}.tedi-date-picker__toggle{width:var(--button-xs-icon-size)!important;height:var(--form-field-button-height-sm)!important;font-size:1.125rem!important;border-radius:var(--button-radius-sm)!important}.tedi-date-picker__toggle:disabled{cursor:not-allowed}.tedi-date-picker__calendar{display:block;width:fit-content;-webkit-user-select:none;user-select:none;background:var(--card-background-primary);border-radius:var(--card-radius-rounded)}.tedi-date-picker__header{display:flex;gap:var(--layout-grid-gutters-08);align-items:center;justify-content:space-between;padding:var(--card-padding-md-default) var(--card-padding-md-default) var(--card-padding-xs) var(--card-padding-md-default)}.tedi-date-picker__controls{display:flex;gap:var(--layout-grid-gutters-08);align-items:center;margin:0 auto}.tedi-date-picker__dropdown-trigger{display:inline-flex;gap:var(--layout-grid-gutters-02);align-items:center;padding:0;padding-left:var(--layout-grid-gutters-04);font-size:1rem;font-weight:500;color:var(--general-text-primary);cursor:pointer;background:transparent;border:0;border-radius:var(--button-radius-sm)}.tedi-date-picker__dropdown-trigger:hover{color:var(--button-main-neutral-text-hover);background:var(--button-main-neutral-icon-only-background-hover)}.tedi-date-picker__dropdown-trigger:hover tedi-icon{color:var(--button-main-neutral-text-hover)}.tedi-date-picker__dropdown-trigger:active{color:var(--button-main-neutral-text-active);background:var(--button-main-neutral-icon-only-background-active)}.tedi-date-picker__dropdown-trigger:active tedi-icon{color:var(--button-main-neutral-text-active)}.tedi-date-picker__dropdown-trigger:focus-visible{outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:var(--borders-01)}.tedi-date-picker__dropdown-trigger tedi-icon{font-size:2rem;color:var(--general-icon-tertiary)}.tedi-date-picker__dropdown-content{max-height:15rem}.tedi-date-picker__dropdown-content--month{width:10rem}.tedi-date-picker__dropdown-content--year{width:8.75rem}.tedi-date-picker__label{font-weight:500;color:var(--general-text-primary)}.tedi-date-picker__nav{font-size:var(--button-icon-inner-icon-only-size)!important}.tedi-date-picker__weekdays{display:grid;grid-template-columns:repeat(7,1fr);padding:0 var(--card-padding-md-default)}.tedi-date-picker__weekdays--numbered{grid-template-columns:repeat(8,1fr)}.tedi-date-picker__weekday{display:flex;align-items:center;justify-content:center;width:var(--form-calendar-date-width);height:var(--form-calendar-date-width);font-size:var(--body-small-regular-size);color:var(--general-text-tertiary);text-align:center;text-transform:uppercase;border-bottom:var(--borders-01) solid var(--general-border-primary)}.tedi-date-picker__grid{display:flex;flex-direction:column;padding:0 var(--card-padding-md-default) var(--card-padding-md-default) var(--card-padding-md-default)}.tedi-date-picker__row{display:grid;grid-template-columns:repeat(7,1fr)}.tedi-date-picker__row--numbered{grid-template-columns:repeat(8,1fr)}.tedi-date-picker__weeknumber{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--form-calendar-date-width);height:var(--form-calendar-date-width);font-size:var(--body-small-regular-size);color:var(--general-text-tertiary);border-right:var(--borders-01) solid var(--general-border-primary)}.tedi-date-picker__day{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--form-calendar-date-width);height:var(--form-calendar-date-width);font-size:var(--body-regular-size);color:var(--general-text-primary);cursor:pointer;background:none;border:none;border-radius:var(--button-radius-sm)}.tedi-date-picker__day:hover{background:var(--form-datepicker-date-hover)}.tedi-date-picker__day:active{background:var(--form-datepicker-date-active)}.tedi-date-picker__day:disabled{cursor:not-allowed;opacity:.3}.tedi-date-picker__day:focus-visible{outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:var(--borders-01)}.tedi-date-picker__day--other-month{color:var(--form-datepicker-date-text-muted)}.tedi-date-picker__day--selected{color:var(--form-datepicker-date-text-selected);background:var(--form-datepicker-date-selected);border-radius:var(--button-radius-sm)}.tedi-date-picker__day--selected:hover{background:var(--form-datepicker-date-selected)}.tedi-date-picker__day--selected .tedi-date-picker__today{border-color:var(--form-datepicker-today-border-secondary)}.tedi-date-picker__today{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--form-calendar-date-width);height:var(--form-calendar-date-width);border:var(--borders-01) solid var(--form-datepicker-today-border);border-radius:var(--button-radius-default)}.tedi-date-picker__month-year-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--layout-grid-gutters-08);padding:var(--card-padding-md-default)}.tedi-date-picker__month-year-button{display:flex;align-items:center;justify-content:center;padding:var(--form-checkbox-radio-card-radio-padding-y) var(--form-checkbox-radio-card-radio-padding-x);font-size:var(--body-regular-size);color:var(--form-checkbox-radio-card-primary-default-text);background:var(--form-checkbox-radio-card-secondary-default-background);border:var(--borders-01) solid var(--form-checkbox-radio-card-secondary-default-border);border-radius:var(--form-checkbox-radio-card-radius)}.tedi-date-picker__month-year-button:hover{color:var(--form-checkbox-radio-card-secondary-hover-text);background:var(--form-checkbox-radio-card-secondary-hover-background);border-color:var(--form-checkbox-radio-card-secondary-hover-border)}.tedi-date-picker__month-year-button:focus-visible{outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:var(--borders-01)}.tedi-date-picker__month-year-button:disabled{color:var(--form-checkbox-radio-card-secondary-disabled-default-text);cursor:not-allowed;background:var(--form-checkbox-radio-card-secondary-disabled-default-background);border-color:var(--form-checkbox-radio-card-secondary-disabled-default-border)}.tedi-date-picker__month-year-button--selected{color:var(--form-checkbox-radio-card-secondary-selected-text);background:var(--form-checkbox-radio-card-secondary-selected-background);border-color:var(--form-checkbox-radio-card-secondary-selected-border);box-shadow:0 0 0 1px var(--form-checkbox-radio-card-secondary-selected-border)}.tedi-date-picker__month-year-button--selected:disabled{color:var(--form-checkbox-radio-card-secondary-disabled-selected-text);cursor:not-allowed;background:var(--form-checkbox-radio-card-secondary-disabled-selected-background);border-color:var(--form-checkbox-radio-card-secondary-disabled-selected-border);box-shadow:0 0 0 1px var(--form-checkbox-radio-card-secondary-disabled-selected-border)}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "[tedi-button]", inputs: ["variant", "size"] }, { kind: "component", type: IconComponent, selector: "tedi-icon", inputs: ["name", "size", "color", "background", "variant", "type", "label"] }, { kind: "component", type: ClosingButtonComponent, selector: "button[tedi-closing-button]", inputs: ["size", "iconSize", "ariaLabel"] }, { kind: "component", type: SeparatorComponent, selector: "tedi-separator", inputs: ["axis", "color", "variant", "dotSize", "dotFilled", "thickness", "spacing", "size"] }, { kind: "component", type: PopoverComponent, selector: "tedi-popover", inputs: ["position", "preventOverflow", "dismissible", "hideOnScroll", "withBorder", "withArrow", "lockScroll", "appendTo", "timeoutDelay"] }, { kind: "directive", type: PopoverTriggerDirective, selector: "[tedi-popover-trigger]", inputs: ["underline"] }, { kind: "component", type: PopoverContentComponent, selector: "tedi-popover-content", inputs: ["maxWidth", "title", "showClose"] }, { kind: "component", type: DatePickerHeaderComponent, selector: "tedi-date-picker-header", inputs: ["uniqueId", "currentView", "month", "monthMode", "yearMode", "showNavigation", "canGoPrev", "canGoNext", "selectedYear", "years", "pagedYears", "hasPrevYearPage", "hasNextYearPage", "disabledMonths", "disabledYears"], outputs: ["prevMonth", "nextMonth", "monthSelect", "yearSelect", "monthClick", "yearClick", "prevYearPage", "nextYearPage"] }, { kind: "component", type: DatePickerCalendarGridComponent, selector: "tedi-date-picker-calendar-grid", inputs: ["gridId", "weekRows", "weekNumbers", "showWeekNumbers", "activeDate", "selected", "today"], outputs: ["daySelect", "dayKeydown"] }, { kind: "component", type: DatePickerMonthGridComponent, selector: "tedi-date-picker-month-grid", inputs: ["currentMonth"], outputs: ["monthSelect"] }, { kind: "component", type: DatePickerYearGridComponent, selector: "tedi-date-picker-year-grid", inputs: ["pagedYears", "selectedYear"], outputs: ["yearSelect"] }, { kind: "pipe", type: TediTranslationPipe, name: "tediTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
4086
5189
  }
4087
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NumberFieldComponent, decorators: [{
5190
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DatePickerComponent, decorators: [{
4088
5191
  type: Component,
4089
- args: [{ selector: "tedi-number-field", standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [
4090
- LabelComponent,
5192
+ args: [{ standalone: true, selector: "tedi-date-picker", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
4091
5193
  ButtonComponent,
4092
5194
  IconComponent,
4093
- TextComponent,
4094
- FeedbackTextComponent,
4095
- TediTranslationPipe,
5195
+ ClosingButtonComponent,
5196
+ SeparatorComponent,
5197
+ PopoverComponent,
5198
+ PopoverTriggerDirective,
5199
+ PopoverContentComponent,
5200
+ DatePickerHeaderComponent,
5201
+ DatePickerCalendarGridComponent,
5202
+ DatePickerMonthGridComponent,
5203
+ DatePickerYearGridComponent,
5204
+ TediTranslationPipe
4096
5205
  ], providers: [
4097
5206
  {
4098
5207
  provide: NG_VALUE_ACCESSOR,
4099
- useExisting: forwardRef(() => NumberFieldComponent),
5208
+ useExisting: forwardRef(() => DatePickerComponent),
4100
5209
  multi: true,
4101
5210
  },
4102
- ], template: "@if (label()) {\n <label tedi-label [for]=\"inputId()\" [required]=\"required()\" [size]=\"size()\">\n {{ label() }}\n </label>\n}\n<div\n [class]=\"{\n 'tedi-number-field': true,\n 'tedi-number-field--invalid': isInvalid(),\n 'tedi-number-field--disabled': isDisabled(),\n }\"\n>\n <button\n tedi-button\n type=\"button\"\n variant=\"secondary\"\n [class]=\"{\n 'tedi-number-field__button': true,\n 'tedi-number-field__button--decrement': true,\n 'tedi-number-field__button--small': size() === 'small',\n }\"\n [disabled]=\"decrementDisabled()\"\n [attr.aria-label]=\"'numberField.decrement' | tediTranslate: step()\"\n (click)=\"handleButtonClick('decrement')\"\n >\n <tedi-icon name=\"remove\" [size]=\"18\" />\n </button>\n <div\n [class]=\"{\n 'tedi-number-field__input-wrapper': true,\n 'tedi-number-field__input-wrapper--small': size() === 'small',\n 'tedi-number-field__input-wrapper--disabled': isDisabled(),\n 'tedi-number-field__input-wrapper--with-suffix': suffix(),\n 'tedi-number-field__input-wrapper--full-width': fullWidth(),\n }\"\n (click)=\"focus()\"\n >\n <input\n #inputElement\n [id]=\"inputId()\"\n type=\"number\"\n inputmode=\"numeric\"\n class=\"tedi-number-field__input\"\n [value]=\"value()\"\n [disabled]=\"isDisabled()\"\n [required]=\"required()\"\n [attr.min]=\"min()\"\n [attr.max]=\"max()\"\n [attr.step]=\"step()\"\n [attr.aria-invalid]=\"isInvalid()\"\n [attr.aria-describedby]=\"feedbackId()\"\n (input)=\"handleInputChange($event)\"\n (blur)=\"handleBlur()\"\n />\n @if (suffix()) {\n <small tedi-text color=\"tertiary\" class=\"tedi-number-field__suffix\">\n {{ suffix() }}\n </small>\n }\n </div>\n <button\n tedi-button\n type=\"button\"\n variant=\"secondary\"\n [class]=\"{\n 'tedi-number-field__button': true,\n 'tedi-number-field__button--increment': true,\n 'tedi-number-field__button--small': size() === 'small',\n }\"\n [disabled]=\"incrementDisabled()\"\n [attr.aria-label]=\"'numberField.increment' | tediTranslate: step()\"\n (click)=\"handleButtonClick('increment')\"\n >\n <tedi-icon name=\"add\" [size]=\"18\" />\n </button>\n</div>\n@if (feedbackText(); as feedback) {\n <tedi-feedback-text\n [attr.id]=\"feedbackId()\"\n [text]=\"feedback.text\"\n [type]=\"feedback.type\"\n [position]=\"feedback.position\"\n />\n}\n", styles: [".tedi-number-field{display:flex}.tedi-number-field:hover:not(.tedi-number-field--disabled) .tedi-number-field__button:not(:disabled),.tedi-number-field:hover:not(.tedi-number-field--disabled) .tedi-number-field__input-wrapper:not(:disabled){border-color:var(--form-input-border-hover)}.tedi-number-field .tedi-number-field__button{--general-icon-primary: currentcolor;width:var(--form-field-height);height:var(--form-field-height);border:var(--borders-01) solid var(--form-input-border-default)}.tedi-number-field .tedi-number-field__button:disabled{background-color:var(--form-input-background-disabled);border:var(--borders-01) solid var(--form-input-border-disabled);opacity:.5}.tedi-number-field .tedi-number-field__button--decrement{z-index:2;margin-right:calc(-1 * var(--borders-01));border-radius:0;border-top-left-radius:var(--button-radius-sm);border-bottom-left-radius:var(--button-radius-sm)}.tedi-number-field .tedi-number-field__button--increment{margin-left:calc(-1 * var(--borders-01));border-radius:0;border-top-right-radius:var(--button-radius-sm);border-bottom-right-radius:var(--button-radius-sm)}.tedi-number-field .tedi-number-field__button--small{width:var(--form-field-height-sm);height:var(--form-field-height-sm)}.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__button,.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__button:disabled,.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__button:hover,.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__input-wrapper{border-color:var(--form-general-feedback-error-border)}.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__input-wrapper:focus-within{outline-color:var(--form-general-feedback-error-border)}.tedi-number-field--invalid:not(.tedi-number-field--disabled) .tedi-number-field__input-wrapper:active{z-index:2;outline:none;border-color:var(--form-general-feedback-error-border);border-radius:0}.tedi-number-field--disabled .tedi-number-field__button,.tedi-number-field--disabled .tedi-number-field__button:disabled,.tedi-number-field--disabled .tedi-number-field__input-wrapper{background-color:var(--form-input-background-disabled);border-color:var(--form-input-border-disabled)}.tedi-number-field--disabled .tedi-number-field__input-wrapper{background-color:var(--form-input-background-disabled);opacity:.5}.tedi-number-field--disabled .tedi-number-field__input-wrapper .tedi-number-field__input{background-color:var(--form-input-background-disabled)}.tedi-number-field__input-wrapper{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--form-field-inner-spacing-sm);align-items:stretch;width:var(--form-number-input-min-width);height:var(--form-field-height);padding-right:var(--form-field-padding-y-3-default);padding-left:var(--form-field-padding-y-3-default);background-color:var(--form-input-background-default);border:var(--borders-01) solid var(--form-input-border-default)}.tedi-number-field__input-wrapper:focus-within{z-index:2;outline:calc(2 * var(--borders-01)) solid var(--form-input-border-active);outline-offset:var(--borders-01);border-color:var(--form-input-border-active);border-radius:var(--button-radius-sm)}.tedi-number-field__input-wrapper:active:not(.tedi-number-field__input-wrapper--disabled){z-index:2;outline:none;border-color:var(--form-input-border-active);border-radius:0}.tedi-number-field__input-wrapper--small{height:var(--form-field-height-sm)}.tedi-number-field__input-wrapper--with-suffix .tedi-number-field__input{grid-column:span 1;text-align:right}.tedi-number-field__input-wrapper--with-suffix .tedi-number-field__suffix{align-self:center;text-align:left;-webkit-user-select:none;user-select:none}.tedi-number-field__input-wrapper--full-width{width:100%}.tedi-number-field__input{grid-column:span 2;width:100%;font-size:var(--heading-h6-size);color:var(--form-input-text-filled);text-align:center;outline:none;background-color:var(--form-input-background-default);border:0;border-radius:0}.tedi-number-field__input::-webkit-outer-spin-button,.tedi-number-field__input::-webkit-inner-spin-button{appearance:none}.tedi-number-field__input[type=number]{appearance:textfield}\n"] }]
4103
- }], propDecorators: { inputRef: [{
4104
- type: ViewChild,
4105
- args: ["inputElement"]
4106
- }] } });
4107
-
4108
- class ToggleComponent {
4109
- /**
4110
- * The unique identifier for the input element that is associated with label.
4111
- */
4112
- inputId = input.required();
4113
- /**
4114
- * Is toggle checked? Supports two-way binding, use with form controls.
4115
- */
4116
- checked = model(false);
4117
- /**
4118
- * Is input disabled?
4119
- * @default false
4120
- */
4121
- disabled = input(false);
4122
- /**
4123
- * Indicates whether the input field is required.
4124
- * @default false
4125
- */
4126
- required = input(false);
4127
- /**
4128
- * Color variant of the toggle
4129
- * @default primary
4130
- */
4131
- variant = input("primary");
4132
- /**
4133
- * Type of the toggle
4134
- * @default filled
4135
- */
4136
- type = input("filled");
4137
- /**
4138
- * Size of the toggle
4139
- * @default default
4140
- */
4141
- size = input("default");
4142
- /**
4143
- * Should the toggle show lock icon. Works only with large toggle.
4144
- * @default false
4145
- */
4146
- icon = input(false);
4147
- inputRef;
4148
- onChange = () => { };
4149
- onTouched = () => { };
4150
- writeValue(checked) {
4151
- this.checked.set(checked);
4152
- }
4153
- registerOnChange(fn) {
4154
- this.onChange = fn;
4155
- }
4156
- registerOnTouched(fn) {
4157
- this.onTouched = fn;
4158
- }
4159
- focus() {
4160
- this.inputRef.nativeElement.focus();
4161
- }
4162
- blur() {
4163
- this.inputRef.nativeElement.blur();
4164
- this.onTouched();
4165
- }
4166
- handleChange = (event) => {
4167
- const target = event.target;
4168
- this.checked.set(target.checked);
4169
- this.onChange(target.checked);
4170
- };
4171
- classes = computed(() => {
4172
- return [
4173
- "tedi-toggle",
4174
- `tedi-toggle--${this.variant()}-${this.type()}`,
4175
- `tedi-toggle--size-${this.size()}`,
4176
- ].join(" ");
4177
- });
4178
- iconColor = computed(() => {
4179
- if (this.type() === "outlined") {
4180
- return 'white';
4181
- }
4182
- switch (this.variant()) {
4183
- case "primary":
4184
- return this.checked() ? "brand" : "tertiary";
4185
- case "colored":
4186
- return this.checked() ? "success" : "danger";
4187
- }
4188
- });
4189
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4190
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: ToggleComponent, isStandalone: true, selector: "tedi-toggle", inputs: { inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: true, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: "checkedChange" }, host: { properties: { "class": "classes()" } }, providers: [
4191
- {
4192
- provide: NG_VALUE_ACCESSOR,
4193
- useExisting: forwardRef(() => ToggleComponent),
4194
- multi: true
4195
- }
4196
- ], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "<input\n #inputElement\n [id]=\"inputId()\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n [attr.aria-checked]=\"checked()\"\n type=\"checkbox\"\n class=\"tedi-toggle__input\"\n role=\"switch\"\n (change)=\"handleChange($event)\"\n/>\n<span class=\"tedi-toggle__slider\" aria-hidden=\"true\">\n @if (icon() && size() === 'large') {\n <tedi-icon\n [name]=\"checked() ? 'lock_open_right' : 'lock'\"\n [color]=\"iconColor()\"\n [size]=\"16\"\n class=\"tedi-toggle__icon\"\n />\n }\n</span>\n", styles: [".tedi-toggle{position:relative;display:block}.tedi-toggle--size-default{--_toggle-indicator: var(--form-toggl-default-indicator);width:var(--form-toggl-default-width);height:var(--form-toggl-default-height)}.tedi-toggle--size-default .tedi-toggle__slider{width:var(--form-toggl-default-indicator);height:var(--form-toggl-default-indicator)}.tedi-toggle--size-large{--_toggle-indicator: var(--form-toggl-large-indicator);width:var(--form-toggl-large-width);height:var(--form-toggl-large-height)}.tedi-toggle--size-large .tedi-toggle__slider{width:var(--form-toggl-large-indicator);height:var(--form-toggl-large-indicator)}.tedi-toggle--primary-filled .tedi-toggle__input{background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-filled .tedi-toggle__input:hover{background-color:var(--form-toggl-primary-inactive-hover)}.tedi-toggle--primary-filled .tedi-toggle__input:active{background-color:var(--form-toggl-primary-inactive-active)}.tedi-toggle--primary-filled .tedi-toggle__input:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-filled .tedi-toggle__input:disabled{cursor:not-allowed;background-color:var(--form-toggl-primary-inactive-default);opacity:.5}.tedi-toggle--primary-filled .tedi-toggle__input:disabled+.tedi-toggle__slider .tedi-toggle__icon{opacity:.5}.tedi-toggle--primary-filled .tedi-toggle__input+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-indicator)}.tedi-toggle--primary-filled .tedi-toggle__input:checked{background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-filled .tedi-toggle__input:checked:hover{background-color:var(--form-toggl-primary-active-hover)}.tedi-toggle--primary-filled .tedi-toggle__input:checked:active{background-color:var(--form-toggl-primary-active-active)}.tedi-toggle--primary-filled .tedi-toggle__input:checked:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-filled .tedi-toggle__input:checked:disabled{cursor:not-allowed;background-color:var(--form-toggl-primary-active-default);opacity:.5}.tedi-toggle--primary-filled .tedi-toggle__input:checked:disabled+.tedi-toggle__slider .tedi-toggle__icon{opacity:.5}.tedi-toggle--primary-filled .tedi-toggle__input:checked+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-indicator)}.tedi-toggle--primary-outlined .tedi-toggle__input{border:var(--borders-01) solid var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:hover{border:var(--borders-01) solid var(--form-toggl-primary-inactive-hover)}.tedi-toggle--primary-outlined .tedi-toggle__input:hover+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-hover)}.tedi-toggle--primary-outlined .tedi-toggle__input:active{border:var(--borders-01) solid var(--form-toggl-primary-inactive-active)}.tedi-toggle--primary-outlined .tedi-toggle__input:active+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-active)}.tedi-toggle--primary-outlined .tedi-toggle__input:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);border:var(--borders-01) solid var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:focus-visible+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:disabled{cursor:not-allowed;border:var(--borders-01) solid var(--form-toggl-primary-inactive-default);opacity:.5}.tedi-toggle--primary-outlined .tedi-toggle__input:disabled+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:disabled+.tedi-toggle__slider{opacity:.5}.tedi-toggle--primary-outlined .tedi-toggle__input:checked{border:var(--borders-01) solid var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:hover{border:var(--borders-01) solid var(--form-toggl-primary-active-hover)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:hover+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-hover)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:active{border:var(--borders-01) solid var(--form-toggl-primary-active-active)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:active+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-active)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);border:var(--borders-01) solid var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:focus-visible+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:disabled{cursor:not-allowed;border:var(--borders-01) solid var(--form-toggl-primary-active-default);opacity:.5}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:disabled+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:disabled+.tedi-toggle__slider{opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input{background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-filled .tedi-toggle__input:hover{background-color:var(--form-toggl-colored-inactive-hover)}.tedi-toggle--colored-filled .tedi-toggle__input:active{background-color:var(--form-toggl-colored-inactive-active)}.tedi-toggle--colored-filled .tedi-toggle__input:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-filled .tedi-toggle__input:disabled{cursor:not-allowed;background-color:var(--form-toggl-colored-inactive-default);opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input:disabled+.tedi-toggle__slider .tedi-toggle__icon{opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-indicator)}.tedi-toggle--colored-filled .tedi-toggle__input:checked{background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-filled .tedi-toggle__input:checked:hover{background-color:var(--form-toggl-colored-active-hover)}.tedi-toggle--colored-filled .tedi-toggle__input:checked:active{background-color:var(--form-toggl-colored-active-active)}.tedi-toggle--colored-filled .tedi-toggle__input:checked:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-filled .tedi-toggle__input:checked:disabled{cursor:not-allowed;background-color:var(--form-toggl-colored-active-default);opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input:checked:disabled+.tedi-toggle__slider .tedi-toggle__icon{opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input:checked+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-indicator)}.tedi-toggle--colored-outlined .tedi-toggle__input{border:var(--borders-01) solid var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:hover{border:var(--borders-01) solid var(--form-toggl-colored-inactive-hover)}.tedi-toggle--colored-outlined .tedi-toggle__input:hover+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-hover)}.tedi-toggle--colored-outlined .tedi-toggle__input:active{border:var(--borders-01) solid var(--form-toggl-colored-inactive-active)}.tedi-toggle--colored-outlined .tedi-toggle__input:active+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-active)}.tedi-toggle--colored-outlined .tedi-toggle__input:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);border:var(--borders-01) solid var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:focus-visible+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:disabled{cursor:not-allowed;border:var(--borders-01) solid var(--form-toggl-colored-inactive-default);opacity:.5}.tedi-toggle--colored-outlined .tedi-toggle__input:disabled+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:disabled+.tedi-toggle__slider{opacity:.5}.tedi-toggle--colored-outlined .tedi-toggle__input:checked{border:var(--borders-01) solid var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:hover{border:var(--borders-01) solid var(--form-toggl-colored-active-hover)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:hover+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-hover)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:active{border:var(--borders-01) solid var(--form-toggl-colored-active-active)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:active+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-active)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);border:var(--borders-01) solid var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:focus-visible+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:disabled{cursor:not-allowed;border:var(--borders-01) solid var(--form-toggl-colored-active-default);opacity:.5}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:disabled+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:disabled+.tedi-toggle__slider{opacity:.5}.tedi-toggle__input{width:100%;height:100%;margin:0;appearance:none;cursor:pointer;border-radius:var(--form-toggl-radius)}.tedi-toggle__input:checked+.tedi-toggle__slider{left:calc(100% - var(--_toggle-indicator) - var(--form-toggl-padding));transform:translateY(-50%)}.tedi-toggle__slider{position:absolute;top:50%;left:var(--form-toggl-padding);display:flex;align-items:center;justify-content:center;pointer-events:none;border-radius:50%;transform:translateY(-50%);transition:left .17s ease-out}\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 });
4197
- }
4198
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ToggleComponent, decorators: [{
4199
- type: Component,
4200
- args: [{ selector: "tedi-toggle", standalone: true, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [IconComponent], providers: [
4201
- {
4202
- provide: NG_VALUE_ACCESSOR,
4203
- useExisting: forwardRef(() => ToggleComponent),
4204
- multi: true
4205
- }
4206
- ], host: {
4207
- "[class]": "classes()"
4208
- }, template: "<input\n #inputElement\n [id]=\"inputId()\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n [attr.aria-checked]=\"checked()\"\n type=\"checkbox\"\n class=\"tedi-toggle__input\"\n role=\"switch\"\n (change)=\"handleChange($event)\"\n/>\n<span class=\"tedi-toggle__slider\" aria-hidden=\"true\">\n @if (icon() && size() === 'large') {\n <tedi-icon\n [name]=\"checked() ? 'lock_open_right' : 'lock'\"\n [color]=\"iconColor()\"\n [size]=\"16\"\n class=\"tedi-toggle__icon\"\n />\n }\n</span>\n", styles: [".tedi-toggle{position:relative;display:block}.tedi-toggle--size-default{--_toggle-indicator: var(--form-toggl-default-indicator);width:var(--form-toggl-default-width);height:var(--form-toggl-default-height)}.tedi-toggle--size-default .tedi-toggle__slider{width:var(--form-toggl-default-indicator);height:var(--form-toggl-default-indicator)}.tedi-toggle--size-large{--_toggle-indicator: var(--form-toggl-large-indicator);width:var(--form-toggl-large-width);height:var(--form-toggl-large-height)}.tedi-toggle--size-large .tedi-toggle__slider{width:var(--form-toggl-large-indicator);height:var(--form-toggl-large-indicator)}.tedi-toggle--primary-filled .tedi-toggle__input{background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-filled .tedi-toggle__input:hover{background-color:var(--form-toggl-primary-inactive-hover)}.tedi-toggle--primary-filled .tedi-toggle__input:active{background-color:var(--form-toggl-primary-inactive-active)}.tedi-toggle--primary-filled .tedi-toggle__input:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-filled .tedi-toggle__input:disabled{cursor:not-allowed;background-color:var(--form-toggl-primary-inactive-default);opacity:.5}.tedi-toggle--primary-filled .tedi-toggle__input:disabled+.tedi-toggle__slider .tedi-toggle__icon{opacity:.5}.tedi-toggle--primary-filled .tedi-toggle__input+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-indicator)}.tedi-toggle--primary-filled .tedi-toggle__input:checked{background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-filled .tedi-toggle__input:checked:hover{background-color:var(--form-toggl-primary-active-hover)}.tedi-toggle--primary-filled .tedi-toggle__input:checked:active{background-color:var(--form-toggl-primary-active-active)}.tedi-toggle--primary-filled .tedi-toggle__input:checked:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-filled .tedi-toggle__input:checked:disabled{cursor:not-allowed;background-color:var(--form-toggl-primary-active-default);opacity:.5}.tedi-toggle--primary-filled .tedi-toggle__input:checked:disabled+.tedi-toggle__slider .tedi-toggle__icon{opacity:.5}.tedi-toggle--primary-filled .tedi-toggle__input:checked+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-indicator)}.tedi-toggle--primary-outlined .tedi-toggle__input{border:var(--borders-01) solid var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:hover{border:var(--borders-01) solid var(--form-toggl-primary-inactive-hover)}.tedi-toggle--primary-outlined .tedi-toggle__input:hover+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-hover)}.tedi-toggle--primary-outlined .tedi-toggle__input:active{border:var(--borders-01) solid var(--form-toggl-primary-inactive-active)}.tedi-toggle--primary-outlined .tedi-toggle__input:active+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-active)}.tedi-toggle--primary-outlined .tedi-toggle__input:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);border:var(--borders-01) solid var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:focus-visible+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:disabled{cursor:not-allowed;border:var(--borders-01) solid var(--form-toggl-primary-inactive-default);opacity:.5}.tedi-toggle--primary-outlined .tedi-toggle__input:disabled+.tedi-toggle__slider{background-color:var(--form-toggl-primary-inactive-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:disabled+.tedi-toggle__slider{opacity:.5}.tedi-toggle--primary-outlined .tedi-toggle__input:checked{border:var(--borders-01) solid var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:hover{border:var(--borders-01) solid var(--form-toggl-primary-active-hover)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:hover+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-hover)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:active{border:var(--borders-01) solid var(--form-toggl-primary-active-active)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:active+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-active)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);border:var(--borders-01) solid var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:focus-visible+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:disabled{cursor:not-allowed;border:var(--borders-01) solid var(--form-toggl-primary-active-default);opacity:.5}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:disabled+.tedi-toggle__slider{background-color:var(--form-toggl-primary-active-default)}.tedi-toggle--primary-outlined .tedi-toggle__input:checked:disabled+.tedi-toggle__slider{opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input{background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-filled .tedi-toggle__input:hover{background-color:var(--form-toggl-colored-inactive-hover)}.tedi-toggle--colored-filled .tedi-toggle__input:active{background-color:var(--form-toggl-colored-inactive-active)}.tedi-toggle--colored-filled .tedi-toggle__input:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-filled .tedi-toggle__input:disabled{cursor:not-allowed;background-color:var(--form-toggl-colored-inactive-default);opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input:disabled+.tedi-toggle__slider .tedi-toggle__icon{opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-indicator)}.tedi-toggle--colored-filled .tedi-toggle__input:checked{background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-filled .tedi-toggle__input:checked:hover{background-color:var(--form-toggl-colored-active-hover)}.tedi-toggle--colored-filled .tedi-toggle__input:checked:active{background-color:var(--form-toggl-colored-active-active)}.tedi-toggle--colored-filled .tedi-toggle__input:checked:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-filled .tedi-toggle__input:checked:disabled{cursor:not-allowed;background-color:var(--form-toggl-colored-active-default);opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input:checked:disabled+.tedi-toggle__slider .tedi-toggle__icon{opacity:.5}.tedi-toggle--colored-filled .tedi-toggle__input:checked+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-indicator)}.tedi-toggle--colored-outlined .tedi-toggle__input{border:var(--borders-01) solid var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:hover{border:var(--borders-01) solid var(--form-toggl-colored-inactive-hover)}.tedi-toggle--colored-outlined .tedi-toggle__input:hover+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-hover)}.tedi-toggle--colored-outlined .tedi-toggle__input:active{border:var(--borders-01) solid var(--form-toggl-colored-inactive-active)}.tedi-toggle--colored-outlined .tedi-toggle__input:active+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-active)}.tedi-toggle--colored-outlined .tedi-toggle__input:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);border:var(--borders-01) solid var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:focus-visible+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:disabled{cursor:not-allowed;border:var(--borders-01) solid var(--form-toggl-colored-inactive-default);opacity:.5}.tedi-toggle--colored-outlined .tedi-toggle__input:disabled+.tedi-toggle__slider{background-color:var(--form-toggl-colored-inactive-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:disabled+.tedi-toggle__slider{opacity:.5}.tedi-toggle--colored-outlined .tedi-toggle__input:checked{border:var(--borders-01) solid var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:hover{border:var(--borders-01) solid var(--form-toggl-colored-active-hover)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:hover+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-hover)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:active{border:var(--borders-01) solid var(--form-toggl-colored-active-active)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:active+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-active)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:focus-visible{outline:calc(2 * var(--borders-01)) solid var(--form-toggl-primary-active-default);outline-offset:var(--borders-01);border:var(--borders-01) solid var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:focus-visible+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:disabled{cursor:not-allowed;border:var(--borders-01) solid var(--form-toggl-colored-active-default);opacity:.5}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:disabled+.tedi-toggle__slider{background-color:var(--form-toggl-colored-active-default)}.tedi-toggle--colored-outlined .tedi-toggle__input:checked:disabled+.tedi-toggle__slider{opacity:.5}.tedi-toggle__input{width:100%;height:100%;margin:0;appearance:none;cursor:pointer;border-radius:var(--form-toggl-radius)}.tedi-toggle__input:checked+.tedi-toggle__slider{left:calc(100% - var(--_toggle-indicator) - var(--form-toggl-padding));transform:translateY(-50%)}.tedi-toggle__slider{position:absolute;top:50%;left:var(--form-toggl-padding);display:flex;align-items:center;justify-content:center;pointer-events:none;border-radius:50%;transform:translateY(-50%);transition:left .17s ease-out}\n"] }]
4209
- }], propDecorators: { inputRef: [{
4210
- type: ViewChild,
4211
- args: ['inputElement']
4212
- }] } });
5211
+ ], template: "<input\n #inputElement\n type=\"text\"\n class=\"tedi-date-picker__input\"\n role=\"combobox\"\n aria-autocomplete=\"none\"\n aria-haspopup=\"dialog\"\n [class.tedi-date-picker__input--small]=\"inputSize() === 'small'\"\n [class.tedi-date-picker__input--valid]=\"inputState() === 'valid'\"\n [class.tedi-date-picker__input--error]=\"inputState() === 'error'\"\n [attr.id]=\"inputId()\"\n [attr.placeholder]=\"inputPlaceholder()\"\n [attr.aria-expanded]=\"!fieldDisabled() && popover().floatUiComponent().state\"\n [attr.aria-controls]=\"uniqueId\"\n [attr.aria-readonly]=\"!allowManualInput()\"\n [readOnly]=\"!allowManualInput()\"\n [value]=\"inputValue()\"\n [disabled]=\"fieldDisabled()\"\n (input)=\"onInput($event)\"\n (blur)=\"onInputBlur()\"\n (click)=\"onInputClick()\"\n/>\n<div class=\"tedi-date-picker__input-buttons\">\n @if (selected()) {\n <button\n tedi-closing-button\n type=\"button\"\n size=\"small\"\n class=\"tedi-date-picker__clear\"\n [iconSize]=\"18\"\n [ariaLabel]=\"'date-picker.clear-date' | tediTranslate\"\n [disabled]=\"fieldDisabled()\"\n (click)=\"clearInput()\"\n ></button>\n <tedi-separator axis=\"vertical\" size=\"1rem\" />\n }\n <tedi-popover\n style=\"display: flex; align-items: center\"\n position=\"bottom-end\"\n [withArrow]=\"false\"\n [preventOverflow]=\"true\"\n >\n <button\n tedi-button\n tedi-popover-trigger\n type=\"button\"\n variant=\"neutral\"\n size=\"small\"\n class=\"tedi-date-picker__toggle\"\n [attr.aria-label]=\"'date-picker.open-calendar' | tediTranslate\"\n [disabled]=\"fieldDisabled()\"\n (click)=\"openCalendar()\"\n >\n <tedi-icon name=\"calendar_today\" size=\"inherit\" />\n </button>\n <tedi-popover-content maxWidth=\"none\" style=\"padding: 0\">\n <div\n class=\"tedi-date-picker__calendar\"\n (keydown)=\"onCalendarKeyDown($event)\"\n >\n <tedi-date-picker-header\n [uniqueId]=\"uniqueId\"\n [currentView]=\"currentView()\"\n [month]=\"month()\"\n [monthMode]=\"monthMode()\"\n [yearMode]=\"yearMode()\"\n [showNavigation]=\"showNavigation()\"\n [canGoPrev]=\"canGoPrev()\"\n [canGoNext]=\"canGoNext()\"\n [selectedYear]=\"selectedYear()\"\n [years]=\"years()\"\n [pagedYears]=\"pagedYears()\"\n [hasPrevYearPage]=\"hasPrevYearPage()\"\n [hasNextYearPage]=\"hasNextYearPage()\"\n [disabledMonths]=\"disabledMonths()\"\n [disabledYears]=\"disabledYears()\"\n (prevMonth)=\"prevMonth()\"\n (nextMonth)=\"nextMonth()\"\n (monthSelect)=\"onMonthSelect($event)\"\n (yearSelect)=\"onYearSelect($event)\"\n (monthClick)=\"onMonthClick()\"\n (yearClick)=\"onYearClick()\"\n (prevYearPage)=\"prevYearPage()\"\n (nextYearPage)=\"nextYearPage()\"\n />\n\n @if (currentView() === \"calendar-grid\") {\n <tedi-date-picker-calendar-grid\n #gridElement\n [gridId]=\"uniqueId\"\n [weekRows]=\"weekRows()\"\n [weekNumbers]=\"weekNumbers()\"\n [showWeekNumbers]=\"showWeekNumbers()\"\n [activeDate]=\"activeDate()\"\n [selected]=\"selected()\"\n [today]=\"today\"\n (daySelect)=\"selectDay($event)\"\n (dayKeydown)=\"onDayKeydown($event.event, $event.date)\"\n />\n } @else if (currentView() === \"month-grid\") {\n <tedi-date-picker-month-grid\n [currentMonth]=\"month()\"\n (monthSelect)=\"onMonthSelect($event)\"\n />\n } @else if (currentView() === \"year-grid\") {\n <tedi-date-picker-year-grid\n [pagedYears]=\"pagedYears()\"\n [selectedYear]=\"selectedYear()\"\n (yearSelect)=\"onYearSelect($event)\"\n />\n }\n </div>\n </tedi-popover-content>\n </tedi-popover>\n</div>\n", styles: ["tedi-date-picker{display:flex;gap:var(--form-field-inner-spacing);align-self:stretch;min-height:var(--form-field-height);padding-right:var(--form-field-padding-x-md-default);background:var(--form-input-background-default);border:var(--borders-01) solid var(--form-input-border-default);border-radius:var(--form-field-radius)}tedi-date-picker:has(.tedi-date-picker__input:hover):not(:has(.tedi-date-picker__input:disabled)){border-color:var(--form-input-border-hover)}tedi-date-picker:has(.tedi-date-picker__input:active):not(:has(.tedi-date-picker__input:disabled)),tedi-date-picker:has(.tedi-date-picker__input:focus):not(:has(.tedi-date-picker__input:disabled)){border-color:var(--form-input-border-active);box-shadow:0 0 0 1px var(--form-input-border-active)}tedi-date-picker:has(.tedi-date-picker__input:disabled){cursor:not-allowed;background:var(--form-input-background-disabled);border-color:var(--form-input-border-disabled)}tedi-date-picker:has(.tedi-date-picker__input--valid){border-color:var(--form-general-feedback-success-border)}tedi-date-picker:has(.tedi-date-picker__input--error){border-color:var(--form-general-feedback-error-border)}tedi-date-picker:has(.tedi-date-picker__input--small){min-height:var(--form-field-height-sm)}.tedi-date-picker__input{flex:1;min-width:0;padding-left:var(--form-field-padding-x-md-default);font-size:var(--body-regular-size);color:var(--form-input-text-filled);border:0;border-radius:var(--form-field-radius)}.tedi-date-picker__input::placeholder{color:var(--form-input-text-placeholder)}.tedi-date-picker__input:disabled{cursor:not-allowed}.tedi-date-picker__input-buttons{display:flex;gap:var(--layout-grid-gutters-04);align-items:center;align-self:center;justify-content:center;min-width:0}.tedi-date-picker__clear:disabled{cursor:not-allowed}.tedi-date-picker__toggle{width:var(--button-xs-icon-size)!important;height:var(--form-field-button-height-sm)!important;font-size:1.125rem!important;border-radius:var(--button-radius-sm)!important}.tedi-date-picker__toggle:disabled{cursor:not-allowed}.tedi-date-picker__calendar{display:block;width:fit-content;-webkit-user-select:none;user-select:none;background:var(--card-background-primary);border-radius:var(--card-radius-rounded)}.tedi-date-picker__header{display:flex;gap:var(--layout-grid-gutters-08);align-items:center;justify-content:space-between;padding:var(--card-padding-md-default) var(--card-padding-md-default) var(--card-padding-xs) var(--card-padding-md-default)}.tedi-date-picker__controls{display:flex;gap:var(--layout-grid-gutters-08);align-items:center;margin:0 auto}.tedi-date-picker__dropdown-trigger{display:inline-flex;gap:var(--layout-grid-gutters-02);align-items:center;padding:0;padding-left:var(--layout-grid-gutters-04);font-size:1rem;font-weight:500;color:var(--general-text-primary);cursor:pointer;background:transparent;border:0;border-radius:var(--button-radius-sm)}.tedi-date-picker__dropdown-trigger:hover{color:var(--button-main-neutral-text-hover);background:var(--button-main-neutral-icon-only-background-hover)}.tedi-date-picker__dropdown-trigger:hover tedi-icon{color:var(--button-main-neutral-text-hover)}.tedi-date-picker__dropdown-trigger:active{color:var(--button-main-neutral-text-active);background:var(--button-main-neutral-icon-only-background-active)}.tedi-date-picker__dropdown-trigger:active tedi-icon{color:var(--button-main-neutral-text-active)}.tedi-date-picker__dropdown-trigger:focus-visible{outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:var(--borders-01)}.tedi-date-picker__dropdown-trigger tedi-icon{font-size:2rem;color:var(--general-icon-tertiary)}.tedi-date-picker__dropdown-content{max-height:15rem}.tedi-date-picker__dropdown-content--month{width:10rem}.tedi-date-picker__dropdown-content--year{width:8.75rem}.tedi-date-picker__label{font-weight:500;color:var(--general-text-primary)}.tedi-date-picker__nav{font-size:var(--button-icon-inner-icon-only-size)!important}.tedi-date-picker__weekdays{display:grid;grid-template-columns:repeat(7,1fr);padding:0 var(--card-padding-md-default)}.tedi-date-picker__weekdays--numbered{grid-template-columns:repeat(8,1fr)}.tedi-date-picker__weekday{display:flex;align-items:center;justify-content:center;width:var(--form-calendar-date-width);height:var(--form-calendar-date-width);font-size:var(--body-small-regular-size);color:var(--general-text-tertiary);text-align:center;text-transform:uppercase;border-bottom:var(--borders-01) solid var(--general-border-primary)}.tedi-date-picker__grid{display:flex;flex-direction:column;padding:0 var(--card-padding-md-default) var(--card-padding-md-default) var(--card-padding-md-default)}.tedi-date-picker__row{display:grid;grid-template-columns:repeat(7,1fr)}.tedi-date-picker__row--numbered{grid-template-columns:repeat(8,1fr)}.tedi-date-picker__weeknumber{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--form-calendar-date-width);height:var(--form-calendar-date-width);font-size:var(--body-small-regular-size);color:var(--general-text-tertiary);border-right:var(--borders-01) solid var(--general-border-primary)}.tedi-date-picker__day{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--form-calendar-date-width);height:var(--form-calendar-date-width);font-size:var(--body-regular-size);color:var(--general-text-primary);cursor:pointer;background:none;border:none;border-radius:var(--button-radius-sm)}.tedi-date-picker__day:hover{background:var(--form-datepicker-date-hover)}.tedi-date-picker__day:active{background:var(--form-datepicker-date-active)}.tedi-date-picker__day:disabled{cursor:not-allowed;opacity:.3}.tedi-date-picker__day:focus-visible{outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:var(--borders-01)}.tedi-date-picker__day--other-month{color:var(--form-datepicker-date-text-muted)}.tedi-date-picker__day--selected{color:var(--form-datepicker-date-text-selected);background:var(--form-datepicker-date-selected);border-radius:var(--button-radius-sm)}.tedi-date-picker__day--selected:hover{background:var(--form-datepicker-date-selected)}.tedi-date-picker__day--selected .tedi-date-picker__today{border-color:var(--form-datepicker-today-border-secondary)}.tedi-date-picker__today{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--form-calendar-date-width);height:var(--form-calendar-date-width);border:var(--borders-01) solid var(--form-datepicker-today-border);border-radius:var(--button-radius-default)}.tedi-date-picker__month-year-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--layout-grid-gutters-08);padding:var(--card-padding-md-default)}.tedi-date-picker__month-year-button{display:flex;align-items:center;justify-content:center;padding:var(--form-checkbox-radio-card-radio-padding-y) var(--form-checkbox-radio-card-radio-padding-x);font-size:var(--body-regular-size);color:var(--form-checkbox-radio-card-primary-default-text);background:var(--form-checkbox-radio-card-secondary-default-background);border:var(--borders-01) solid var(--form-checkbox-radio-card-secondary-default-border);border-radius:var(--form-checkbox-radio-card-radius)}.tedi-date-picker__month-year-button:hover{color:var(--form-checkbox-radio-card-secondary-hover-text);background:var(--form-checkbox-radio-card-secondary-hover-background);border-color:var(--form-checkbox-radio-card-secondary-hover-border)}.tedi-date-picker__month-year-button:focus-visible{outline:var(--borders-02) solid var(--tedi-primary-500);outline-offset:var(--borders-01)}.tedi-date-picker__month-year-button:disabled{color:var(--form-checkbox-radio-card-secondary-disabled-default-text);cursor:not-allowed;background:var(--form-checkbox-radio-card-secondary-disabled-default-background);border-color:var(--form-checkbox-radio-card-secondary-disabled-default-border)}.tedi-date-picker__month-year-button--selected{color:var(--form-checkbox-radio-card-secondary-selected-text);background:var(--form-checkbox-radio-card-secondary-selected-background);border-color:var(--form-checkbox-radio-card-secondary-selected-border);box-shadow:0 0 0 1px var(--form-checkbox-radio-card-secondary-selected-border)}.tedi-date-picker__month-year-button--selected:disabled{color:var(--form-checkbox-radio-card-secondary-disabled-selected-text);cursor:not-allowed;background:var(--form-checkbox-radio-card-secondary-disabled-selected-background);border-color:var(--form-checkbox-radio-card-secondary-disabled-selected-border);box-shadow:0 0 0 1px var(--form-checkbox-radio-card-secondary-disabled-selected-border)}\n"] }]
5212
+ }], ctorParameters: () => [] });
4213
5213
 
4214
5214
  /**
4215
5215
  * Injection token used by `tedi-form-field` to obtain
@@ -4366,7 +5366,7 @@ class TextFieldComponent {
4366
5366
  this.clear.emit();
4367
5367
  this.onTouched();
4368
5368
  }
4369
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TextFieldComponent, deps: [{ token: i0.ElementRef }, { token: i1$2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
5369
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TextFieldComponent, deps: [{ token: i0.ElementRef }, { token: i1$3.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
4370
5370
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.15", type: TextFieldComponent, isStandalone: true, selector: "input[tedi-text-field]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, arrowsHidden: { classPropertyName: "arrowsHidden", publicName: "arrowsHidden", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", clear: "clear" }, host: { listeners: { "input": "handleInputChange($event)", "blur": "handleBlur()" }, properties: { "class.tedi-text-field--arrows-hidden": "arrowsHidden()", "attr.aria-invalid": "invalid() || null" }, classAttribute: "tedi-text-field" }, providers: [
4371
5371
  {
4372
5372
  provide: NG_VALUE_ACCESSOR,
@@ -4398,7 +5398,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
4398
5398
  "(input)": "handleInputChange($event)",
4399
5399
  "(blur)": "handleBlur()",
4400
5400
  }, styles: [".tedi-text-field{flex:1;height:100%;padding:var(--form-field-padding-y-md-default) var(--form-field-padding-x-md-default);font-size:var(--body-regular-size);font-weight:var(--body-regular-weight);line-height:var(--body-regular-line-height);color:var(--form-input-text-filled);outline:none;background:transparent;border:0;border-radius:var(--form-field-radius)}.tedi-text-field::placeholder{color:var(--form-input-text-placeholder)}.tedi-text-field:disabled{color:var(--form-input-text-disabled);cursor:not-allowed;background:transparent}.tedi-text-field--arrows-hidden::-webkit-outer-spin-button,.tedi-text-field--arrows-hidden::-webkit-inner-spin-button{appearance:none}.tedi-text-field--arrows-hidden[type=number]{appearance:textfield}.tedi-form-field--with-icon .tedi-text-field{padding-right:0}.tedi-form-field--small .tedi-text-field{padding-block:var(--form-field-padding-y-sm);padding-inline:var(--form-field-padding-x-md-default)}.tedi-form-field--large .tedi-text-field{padding-block:var(--form-field-padding-y-lg);padding-inline:var(--form-field-padding-x-lg)}\n"] }]
4401
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1$2.NgControl, decorators: [{
5401
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1$3.NgControl, decorators: [{
4402
5402
  type: Optional
4403
5403
  }, {
4404
5404
  type: Self
@@ -6139,7 +7139,7 @@ class TooltipComponent {
6139
7139
  }
6140
7140
  }
6141
7141
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6142
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TooltipComponent, isStandalone: true, selector: "tedi-tooltip", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, preventOverflow: { classPropertyName: "preventOverflow", publicName: "preventOverflow", isSignal: true, isRequired: false, transformFunction: null }, openWith: { classPropertyName: "openWith", publicName: "openWith", isSignal: true, isRequired: false, transformFunction: null }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null }, timeoutDelay: { classPropertyName: "timeoutDelay", publicName: "timeoutDelay", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "tooltipTrigger", first: true, predicate: TooltipTriggerComponent, descendants: true, isSignal: true }, { propertyName: "tooltipContent", first: true, predicate: TooltipContentComponent, descendants: true, read: ElementRef, isSignal: true }], viewQueries: [{ propertyName: "floatUiComponent", first: true, predicate: NgxFloatUiContentComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div\n applyClass=\"float-ui-container-tooltip\"\n ariaRole=\"tooltip\"\n ariaHidden=\"true\"\n style=\"display: contents\"\n looseTrigger=\"none\"\n [floatUiLoose]=\"floatUiComponent\"\n [loosePlacement]=\"position()\"\n [preventOverflow]=\"position().includes('auto') ? false : preventOverflow()\"\n [disableAnimation]=\"true\"\n [targetElement]=\"tooltipTrigger().host.nativeElement\"\n [appendTo]=\"appendTo()\"\n>\n <ng-content select=\"tedi-tooltip-trigger\" />\n</div>\n@if (contentText()) {\n <span [id]=\"descriptionId\" class=\"sr-only\">{{ contentText() }}</span>\n}\n<float-ui-content #floatUiComponent [style.display]=\"floatUiDisplay()\" aria-hidden=\"true\">\n <ng-content select=\"tedi-tooltip-content\" />\n</float-ui-content>\n", styles: ["tedi-tooltip{display:contents}float-ui-content .float-ui-container-tooltip{z-index:var(--z-index-tooltip);width:max-content;padding:0;border:0;border-radius:var(--popover-radius-rounded);box-shadow:0 1px 5px 0 var(--tedi-alpha-20, rgba(0, 0, 0, .2))}float-ui-content .float-ui-container-tooltip .float-ui-arrow{width:8px;height:8px;background:var(--tooltip-background);clip-path:inset(0 -5px -5px 0)}float-ui-content .float-ui-container-tooltip[data-float-ui-placement=top]{transform:translateY(-4px)}float-ui-content .float-ui-container-tooltip[data-float-ui-placement=top] .float-ui-arrow{transform:rotate(-135deg)}float-ui-content .float-ui-container-tooltip[data-float-ui-placement=bottom]{transform:translateY(4px)}float-ui-content .float-ui-container-tooltip[data-float-ui-placement=bottom] .float-ui-arrow{transform:rotate(-135deg)}float-ui-content .float-ui-container-tooltip[data-float-ui-placement=left]{transform:translate(-4px)}float-ui-content .float-ui-container-tooltip[data-float-ui-placement=left] .float-ui-arrow{transform:rotate(-45deg)}float-ui-content .float-ui-container-tooltip[data-float-ui-placement=right]{transform:translate(4px)}float-ui-content .float-ui-container-tooltip[data-float-ui-placement=right] .float-ui-arrow{transform:rotate(135deg)}tedi-tooltip-trigger{display:inline-flex}tedi-tooltip-trigger .tedi-tooltip-trigger--focus:focus-visible{outline:2px solid var(--tedi-primary-500);outline-offset:2px}tedi-tooltip-trigger .tedi-tooltip-trigger__text{text-decoration:underline dashed var(--general-border-secondary);text-underline-offset:.5em}.tedi-tooltip-content{position:relative;display:block;max-width:var(--tooltip-max-width);padding:var(--tooltip-padding-y) var(--tooltip-padding-x);color:var(--tooltip-text);background:var(--tooltip-background);border-radius:var(--tooltip-radius);box-shadow:0 1px 5px 0 var(--tedi-alpha-20, rgba(0, 0, 0, .2))}.tedi-tooltip-content--none{max-width:none}.tedi-tooltip-content--small{max-width:10rem}.tedi-tooltip-content--medium{max-width:15rem}.tedi-tooltip-content--large{max-width:30rem}\n"], dependencies: [{ kind: "ngmodule", type: NgxFloatUiModule }, { kind: "component", type: i1$1.NgxFloatUiContentComponent, selector: "float-ui-content", exportAs: ["ngxFloatUiContent"] }, { kind: "directive", type: i1$1.NgxFloatUiLooseDirective, selector: "[floatUiLoose]", inputs: ["floatUiLoose", "loosePlacement", "looseTrigger"], exportAs: ["floatUiLoose"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
7142
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TooltipComponent, isStandalone: true, selector: "tedi-tooltip", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, preventOverflow: { classPropertyName: "preventOverflow", publicName: "preventOverflow", isSignal: true, isRequired: false, transformFunction: null }, openWith: { classPropertyName: "openWith", publicName: "openWith", isSignal: true, isRequired: false, transformFunction: null }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null }, timeoutDelay: { classPropertyName: "timeoutDelay", publicName: "timeoutDelay", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "tooltipTrigger", first: true, predicate: TooltipTriggerComponent, descendants: true, isSignal: true }, { propertyName: "tooltipContent", first: true, predicate: TooltipContentComponent, descendants: true, read: ElementRef, isSignal: true }], viewQueries: [{ propertyName: "floatUiComponent", first: true, predicate: NgxFloatUiContentComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div\n applyClass=\"float-ui-container-tooltip\"\n ariaRole=\"tooltip\"\n ariaHidden=\"true\"\n style=\"display: contents\"\n looseTrigger=\"none\"\n [floatUiLoose]=\"floatUiComponent\"\n [loosePlacement]=\"position()\"\n [preventOverflow]=\"position().includes('auto') ? false : preventOverflow()\"\n [disableAnimation]=\"true\"\n [targetElement]=\"tooltipTrigger().host.nativeElement\"\n [appendTo]=\"appendTo()\"\n>\n <ng-content select=\"tedi-tooltip-trigger\" />\n</div>\n@if (contentText()) {\n <span [id]=\"descriptionId\" class=\"sr-only\">{{ contentText() }}</span>\n}\n<float-ui-content #floatUiComponent [style.display]=\"floatUiDisplay()\" aria-hidden=\"true\">\n <ng-content select=\"tedi-tooltip-content\" />\n</float-ui-content>\n", styles: ["tedi-tooltip{display:contents}float-ui-content .float-ui-container-tooltip{z-index:var(--z-index-tooltip);width:max-content;padding:0;border:0;border-radius:var(--popover-radius-rounded);box-shadow:0 1px 5px 0 var(--tedi-alpha-20, rgba(0, 0, 0, .2))}float-ui-content .float-ui-container-tooltip .float-ui-arrow{width:8px;height:8px;background:var(--tooltip-background);clip-path:inset(0 -5px -5px 0)}float-ui-content .float-ui-container-tooltip[data-float-ui-placement=top]{transform:translateY(-4px)}float-ui-content .float-ui-container-tooltip[data-float-ui-placement=top] .float-ui-arrow{transform:rotate(-135deg)}float-ui-content .float-ui-container-tooltip[data-float-ui-placement=bottom]{transform:translateY(4px)}float-ui-content .float-ui-container-tooltip[data-float-ui-placement=bottom] .float-ui-arrow{transform:rotate(-135deg)}float-ui-content .float-ui-container-tooltip[data-float-ui-placement=left]{transform:translate(-4px)}float-ui-content .float-ui-container-tooltip[data-float-ui-placement=left] .float-ui-arrow{transform:rotate(-45deg)}float-ui-content .float-ui-container-tooltip[data-float-ui-placement=right]{transform:translate(4px)}float-ui-content .float-ui-container-tooltip[data-float-ui-placement=right] .float-ui-arrow{transform:rotate(135deg)}tedi-tooltip-trigger{display:inline-flex}tedi-tooltip-trigger .tedi-tooltip-trigger--focus:focus-visible{outline:2px solid var(--tedi-primary-500);outline-offset:2px}tedi-tooltip-trigger .tedi-tooltip-trigger__text{text-decoration:underline dashed var(--general-border-secondary);text-underline-offset:.5em}.tedi-tooltip-content{position:relative;display:block;max-width:var(--tooltip-max-width);padding:var(--tooltip-padding-y) var(--tooltip-padding-x);color:var(--tooltip-text);background:var(--tooltip-background);border-radius:var(--tooltip-radius);box-shadow:0 1px 5px 0 var(--tedi-alpha-20, rgba(0, 0, 0, .2))}.tedi-tooltip-content--none{max-width:none}.tedi-tooltip-content--small{max-width:10rem}.tedi-tooltip-content--medium{max-width:15rem}.tedi-tooltip-content--large{max-width:30rem}\n"], dependencies: [{ kind: "ngmodule", type: NgxFloatUiModule }, { kind: "component", type: i1$2.NgxFloatUiContentComponent, selector: "float-ui-content", exportAs: ["ngxFloatUiContent"] }, { kind: "directive", type: i1$2.NgxFloatUiLooseDirective, selector: "[floatUiLoose]", inputs: ["floatUiLoose", "loosePlacement", "looseTrigger"], exportAs: ["floatUiLoose"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
6143
7143
  }
6144
7144
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TooltipComponent, decorators: [{
6145
7145
  type: Component,
@@ -6381,49 +7381,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
6381
7381
  args: ["click"]
6382
7382
  }] } });
6383
7383
 
6384
- class SpinnerComponent {
6385
- /**
6386
- * Size of the spinner in px.
6387
- * @default 16
6388
- */
6389
- size = input(16);
6390
- /**
6391
- * Specifies the color theme of the spinner.
6392
- * The color should meet accessibility standards for color contrast.
6393
- * @default primary
6394
- */
6395
- color = input("primary");
6396
- /**
6397
- * Provides a text label for screen readers to announce the spinner's purpose or status.
6398
- */
6399
- label = input();
6400
- sizeConfig = {
6401
- 10: { strokeWidth: 4.4, r: 19.8 },
6402
- 16: { strokeWidth: 5.5, r: 19.25 },
6403
- 48: { strokeWidth: 3.6667, r: 20.1667 },
6404
- };
6405
- strokeWidth = computed(() => this.sizeConfig[this.size()].strokeWidth);
6406
- r = computed(() => this.sizeConfig[this.size()].r);
6407
- classes = computed(() => {
6408
- const classList = [
6409
- "tedi-spinner",
6410
- `tedi-spinner--size-${this.size()}`,
6411
- `tedi-spinner--color-${this.color()}`,
6412
- ];
6413
- return classList.join(" ");
6414
- });
6415
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6416
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.15", type: SpinnerComponent, isStandalone: true, selector: "tedi-spinner", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "status", "aria-live": "polite" }, properties: { "class": "classes()", "attr.aria-label": "label() ? label() : null", "attr.aria-hidden": "!label()" } }, ngImport: i0, template: "<svg viewBox=\"0 0 44 44\" aria-hidden=\"true\">\n <circle\n class=\"tedi-spinner--inner\"\n cx=\"22\"\n cy=\"22\"\n [attr.r]=\"r()\"\n fill=\"none\"\n ></circle>\n</svg>", styles: [".tedi-spinner{display:flex;width:calc(var(--tedi-spinner-size, 16) * 1rem / 16);height:calc(var(--tedi-spinner-size, 16) * 1rem / 16);animation:1.4s linear 0s infinite normal none running tedi-spinner-outer}.tedi-spinner--inner{stroke-width:var(--tedi-spinner-stroke-width);stroke-dasharray:80,200;stroke-dashoffset:0;animation:1.4s ease-in-out 0s infinite normal none running tedi-spinner-inner}@media (prefers-reduced-motion: reduce){.tedi-spinner--inner{animation:none}}.tedi-spinner--color-primary{stroke:var(--loader-spinner-color-primary)}.tedi-spinner--color-secondary{stroke:var(--loader-spinner-color-secondary)}.tedi-spinner--size-10{--tedi-spinner-size: 10;--tedi-spinner-stroke-width: 4.4}.tedi-spinner--size-16{--tedi-spinner-size: 16;--tedi-spinner-stroke-width: 5.5}.tedi-spinner--size-48{--tedi-spinner-size: 48;--tedi-spinner-stroke-width: 3.6666666667}@media (prefers-reduced-motion: reduce){.tedi-spinner{animation:none}}@keyframes tedi-spinner-outer{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes tedi-spinner-inner{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:100,200;stroke-dashoffset:-15}to{stroke-dasharray:100,200;stroke-dashoffset:-125}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
7384
+ class DropdownItemValueMetaComponent {
7385
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DropdownItemValueMetaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7386
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: DropdownItemValueMetaComponent, isStandalone: true, selector: "tedi-dropdown-item-value-meta", host: { classAttribute: "tedi-dropdown-item-value__meta" }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
6417
7387
  }
6418
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SpinnerComponent, decorators: [{
7388
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DropdownItemValueMetaComponent, decorators: [{
6419
7389
  type: Component,
6420
- args: [{ selector: "tedi-spinner", standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
6421
- "[class]": "classes()",
6422
- "role": "status",
6423
- "aria-live": "polite",
6424
- "[attr.aria-label]": "label() ? label() : null",
6425
- "[attr.aria-hidden]": "!label()"
6426
- }, template: "<svg viewBox=\"0 0 44 44\" aria-hidden=\"true\">\n <circle\n class=\"tedi-spinner--inner\"\n cx=\"22\"\n cy=\"22\"\n [attr.r]=\"r()\"\n fill=\"none\"\n ></circle>\n</svg>", styles: [".tedi-spinner{display:flex;width:calc(var(--tedi-spinner-size, 16) * 1rem / 16);height:calc(var(--tedi-spinner-size, 16) * 1rem / 16);animation:1.4s linear 0s infinite normal none running tedi-spinner-outer}.tedi-spinner--inner{stroke-width:var(--tedi-spinner-stroke-width);stroke-dasharray:80,200;stroke-dashoffset:0;animation:1.4s ease-in-out 0s infinite normal none running tedi-spinner-inner}@media (prefers-reduced-motion: reduce){.tedi-spinner--inner{animation:none}}.tedi-spinner--color-primary{stroke:var(--loader-spinner-color-primary)}.tedi-spinner--color-secondary{stroke:var(--loader-spinner-color-secondary)}.tedi-spinner--size-10{--tedi-spinner-size: 10;--tedi-spinner-stroke-width: 4.4}.tedi-spinner--size-16{--tedi-spinner-size: 16;--tedi-spinner-stroke-width: 5.5}.tedi-spinner--size-48{--tedi-spinner-size: 48;--tedi-spinner-stroke-width: 3.6666666667}@media (prefers-reduced-motion: reduce){.tedi-spinner{animation:none}}@keyframes tedi-spinner-outer{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes tedi-spinner-inner{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:100,200;stroke-dashoffset:-15}to{stroke-dasharray:100,200;stroke-dashoffset:-125}}\n"] }]
7390
+ args: [{
7391
+ selector: "tedi-dropdown-item-value-meta",
7392
+ template: `<ng-content />`,
7393
+ standalone: true,
7394
+ changeDetection: ChangeDetectionStrategy.OnPush,
7395
+ encapsulation: ViewEncapsulation.None,
7396
+ host: {
7397
+ class: "tedi-dropdown-item-value__meta",
7398
+ },
7399
+ }]
6427
7400
  }] });
6428
7401
 
6429
7402
  class ModalComponent {
@@ -6539,54 +7512,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
6539
7512
  args: [{ standalone: true, selector: "tedi-modal-header", imports: [ClosingButtonComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"tedi-modal-header__head\">\n <ng-content select=\"h1,h2,h3,h4,h5,h6\" />\n @if (showClose()) {\n <button tedi-closing-button (click)=\"closeModal()\"></button>\n }\n</div>\n<ng-content />\n", styles: ["h1,.h1,.tedi-h1,.text-h1,.tedi-text--h1{font-size:var(--heading-h1-size);font-weight:var(--heading-h1-weight);line-height:var(--heading-h1-line-height)}h2,.h2,.tedi-h2,.text-h2,.tedi-text--h2{font-size:var(--heading-h2-size);font-weight:var(--heading-h2-weight);line-height:var(--heading-h2-line-height)}h3,.h3,.tedi-h3,.text-h3,.tedi-text--h3{font-size:var(--heading-h3-size);font-weight:var(--heading-h3-weight);line-height:var(--heading-h3-line-height)}h4,.h4,.tedi-h4,.text-h4,.tedi-text--h4{font-size:var(--heading-h4-size);font-weight:var(--heading-h4-weight);line-height:var(--heading-h4-line-height)}h5,.h5,.tedi-h5,.text-h5,.tedi-text--h5{font-size:var(--heading-h5-size);font-weight:var(--heading-h5-weight);line-height:var(--heading-h5-line-height)}h6,.h6,.tedi-h6,.text-h6,.tedi-text--h6{font-size:var(--heading-h6-size);font-weight:var(--heading-h6-weight);line-height:var(--heading-h6-line-height)}.tedi-text--h1{font-size:var(--heading-h1-size);font-weight:var(--heading-h1-weight);line-height:var(--heading-h1-line-height)}.tedi-text--h2{font-size:var(--heading-h2-size);font-weight:var(--heading-h2-weight);line-height:var(--heading-h2-line-height)}.tedi-text--h3{font-size:var(--heading-h3-size);font-weight:var(--heading-h3-weight);line-height:var(--heading-h3-line-height)}.tedi-text--h4{font-size:var(--heading-h4-size);font-weight:var(--heading-h4-weight);line-height:var(--heading-h4-line-height)}.tedi-text--h5{font-size:var(--heading-h5-size);font-weight:var(--heading-h5-weight);line-height:var(--heading-h5-line-height)}.tedi-text--h6{font-size:var(--heading-h6-size);font-weight:var(--heading-h6-weight);line-height:var(--heading-h6-line-height)}.tedi-text--default{font-family:var(--family-default);font-size:var(--body-regular-size);font-weight:var(--body-regular-weight);line-height:var(--body-regular-line-height);color:var(--general-text-primary)}.tedi-text--small{font-size:var(--body-small-regular-size);font-weight:var(--body-small-regular-weight);line-height:var(--body-small-regular-line-height)}.text-subtitle{font-size:var(--heading-subtitle-regular-size);font-weight:var(--heading-subtitle-regular-weight);line-height:var(--heading-subtitle-regular-line-height);text-transform:uppercase}.text-subtitle.text-small{font-size:var(--heading-subtitle-small-size);font-weight:var(--heading-subtitle-small-weight);line-height:var(--heading-subtitle-small-line-height)}label{line-height:var(--body-regular-line-height);color:var(--general-text-secondary)}.text-normal{font-family:var(--family-default);font-size:var(--body-regular-size);font-weight:var(--body-regular-weight);line-height:var(--body-regular-line-height);color:var(--general-text-primary)}small,.text-small{font-size:var(--body-small-regular-size);font-weight:var(--body-small-regular-weight);line-height:var(--body-small-regular-line-height)}.text-extra-small{font-size:var(--body-extra-small-size);font-weight:var(--body-extra-small-weight);line-height:var(--body-extra-small-line-height)}.tedi-text--default,.tedi-text--primary{color:var(--general-text-primary)}.tedi-text--secondary{color:var(--general-text-secondary)}.tedi-text--tertiary{color:var(--general-text-tertiary)}.tedi-text--white{color:var(--general-text-white)}.tedi-text--disabled{color:var(--general-text-disabled)}.tedi-text--brand{color:var(--general-text-brand)}.tedi-text--success{color:var(--general-status-success-text)}.tedi-text--warning{color:var(--general-status-warning-text)}.tedi-text--danger{color:var(--general-status-danger-text)}.tedi-text--info{color:var(--general-status-info-text)}.tedi-text--neutral{color:var(--general-status-neutral-text)}.text-nowrap{white-space:nowrap}.text-break-all{word-break:break-all}.text-break-word{overflow-wrap:break-word}.text-uppercase{text-transform:uppercase}.text-lowercase{text-transform:lowercase}.text-capitalize{text-transform:capitalize}.text-capitalize-first:first-letter{text-transform:capitalize}.text-break-spaces{white-space:break-spaces}.text-inline-block{display:inline-block}.text-inline{display:inline}b,strong,.text-bold{font-weight:700}.text-thin{font-weight:300}i,.text-italic{font-style:italic}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-line-normal{line-height:normal}.text-line-condensed{line-height:1}.text-default{color:var(--general-text-primary)}.text-primary{color:var(--general-text-brand)}@media print{.text-primary{filter:grayscale(1)}}.text-muted{color:var(--general-text-secondary)}.text-subtle{color:var(--general-text-tertiary)}.text-disabled{color:var(--general-text-disabled)}.text-inverted{color:var(--general-text-white)}.text-positive{color:var(--general-status-success-text)}@media print{.text-positive{filter:grayscale(1)}}.text-important{color:var(--general-status-danger-text)}@media print{.text-important{filter:grayscale(1)}}.text-warning{color:var(--general-status-warning-text)}@media print{.text-warning{filter:grayscale(1)}}.tedi-modal{position:fixed;inset:0;z-index:var(--z-index-modal);display:none}.tedi-modal--open{display:block}.tedi-modal--default{--_tedi-modal-heading-padding-x: var(--modal-heading-padding-x);--_tedi-modal-heading-padding-y: var(--modal-heading-padding-y);--_tedi-modal-body-padding: var(--modal-body-padding);--_tedi-modal-footer-padding-x: var(--modal-footer-padding-x);--_tedi-modal-footer-padding-y: var(--modal-footer-padding-y)}.tedi-modal--default .tedi-modal-header__head h1,.tedi-modal--default .tedi-modal-header__head h2,.tedi-modal--default .tedi-modal-header__head h3,.tedi-modal--default .tedi-modal-header__head h4,.tedi-modal--default .tedi-modal-header__head h5,.tedi-modal--default .tedi-modal-header__head h6{font-size:var(--heading-h3-size);font-weight:var(--heading-h3-weight);line-height:var(--heading-h3-line-height)}.tedi-modal--small{--_tedi-modal-heading-padding-x: var(--modal-heading-padding-x-sm);--_tedi-modal-heading-padding-y: var(--modal-heading-padding-y-sm);--_tedi-modal-body-padding: var(--modal-body-padding-sm);--_tedi-modal-footer-padding-x: var(--modal-footer-padding-x-sm);--_tedi-modal-footer-padding-y: var(--modal-footer-padding-y-sm)}.tedi-modal--small .tedi-modal-header__head h1,.tedi-modal--small .tedi-modal-header__head h2,.tedi-modal--small .tedi-modal-header__head h3,.tedi-modal--small .tedi-modal-header__head h4,.tedi-modal--small .tedi-modal-header__head h5,.tedi-modal--small .tedi-modal-header__head h6{font-size:var(--heading-h4-size);font-weight:var(--heading-h4-weight);line-height:var(--heading-h4-line-height)}.tedi-modal--xs .tedi-modal__dialog{max-width:var(--modal-max-width-xs)}.tedi-modal--sm .tedi-modal__dialog{max-width:var(--modal-max-width-sm)}.tedi-modal--md .tedi-modal__dialog{max-width:var(--modal-max-width-md)}.tedi-modal--lg .tedi-modal__dialog{max-width:var(--modal-max-width-lg)}.tedi-modal--xl .tedi-modal__dialog{max-width:var(--modal-max-width-xl)}.tedi-modal--center .tedi-modal__dialog{top:50%;left:50%;max-height:95dvh;transform:translate(-50%,-50%)}.tedi-modal--left .tedi-modal__dialog{top:0;left:0;height:100%}.tedi-modal--right .tedi-modal__dialog{top:0;right:0;height:100%}.tedi-modal__dialog{position:fixed;display:flex;flex-direction:column;width:100%;background-color:var(--modal-background);border:var(--borders-01) solid var(--modal-border-outer);border-radius:var(--modal-radius)}.tedi-modal__backdrop{position:fixed;inset:0;background:var(--general-surface-overlay)}.tedi-modal tedi-modal-header{padding:var(--_tedi-modal-heading-padding-y) var(--_tedi-modal-heading-padding-x);border-bottom:var(--borders-01) solid var(--modal-border-inner)}.tedi-modal tedi-modal-header .tedi-modal-header__head{display:flex;gap:var(--layout-grid-gutters-08);align-items:center}.tedi-modal tedi-modal-header .tedi-modal-header__head button[tedi-closing-button]{margin-left:auto}.tedi-modal tedi-modal-content{display:flex;flex-direction:column;gap:var(--layout-grid-gutters-16);padding:var(--_tedi-modal-body-padding);overflow-y:auto}.tedi-modal tedi-modal-footer{display:flex;gap:var(--layout-grid-gutters-16);justify-content:flex-end;padding:var(--_tedi-modal-footer-padding-y) var(--_tedi-modal-footer-padding-x);border-top:var(--borders-01) solid var(--modal-border-inner)}\n"] }]
6540
7513
  }] });
6541
7514
 
6542
- class TagComponent {
6543
- idGenerator = inject(_IdGenerator);
6544
- uniqueId = this.idGenerator.getId('tedi-tag');
6545
- /**
6546
- * Whether the tag is in loading state.
6547
- * When true, a spinner will be displayed inside the tag.
6548
- * @default false
6549
- */
6550
- loading = input(false);
6551
- /**
6552
- * Whether the tag can be closed.
6553
- * When true, a close button will be displayed that emits the 'closed' event when clicked.
6554
- * @default false
6555
- */
6556
- closable = input(false);
6557
- /**
6558
- * The visual style of the tag.
6559
- * Possible values: 'primary', 'secondary', 'danger'
6560
- * @default "primary"
6561
- */
6562
- type = input("primary");
6563
- /**
6564
- * Event emitted when the close button is clicked.
6565
- */
6566
- closed = output();
6567
- classes = computed(() => {
6568
- const classList = [];
6569
- if (this.type()) {
6570
- classList.push(`tedi-tag--${this.type()}`);
6571
- }
6572
- return classList.join(" ");
6573
- });
6574
- handleClose(event) {
6575
- this.closed.emit(event);
6576
- }
6577
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TagComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6578
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TagComponent, isStandalone: true, selector: "tedi-tag", inputs: { loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, closable: { classPropertyName: "closable", publicName: "closable", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed" }, host: { properties: { "class.tedi-tag": "true", "class.tedi-tag--loading": "loading()", "class.tedi-tag--closable": "closable()", "class": "classes()" } }, ngImport: i0, template: "@if (type() === \"danger\") {\n <span class=\"tedi-tag__icon-wrapper\">\n <tedi-icon name=\"error\" color=\"danger\" [size]=\"16\" />\n </span>\n}\n\n<span class=\"tedi-tag__content\" [attr.id]=\"uniqueId\">\n <ng-content />\n</span>\n\n@if (loading()) {\n <span class=\"tedi-tag__spinner-wrapper\">\n <tedi-spinner [size]=\"48\" />\n </span>\n} @else if (closable()) {\n <button\n type=\"button\"\n tedi-closing-button\n size=\"small\"\n [iconSize]=\"18\"\n (click)=\"handleClose($event)\"\n [attr.aria-describedby]=\"uniqueId\"\n [ariaLabel]=\"'remove' | tediTranslate\"\n >\n </button>\n}\n", styles: [".tedi-tag{--_background-color: var(--tag-primary-background);--_border-color: var(--tag-primary-border);--_line-height: var(--body-small-regular-line-height);display:inline-flex;gap:var(--tag-default-padding-x);align-items:flex-start;padding:0 var(--tag-default-padding-x);font-family:var(--family-default);font-size:var(--body-small-regular-size);font-weight:var(--body-small-regular-weight);line-height:var(--_line-height);color:var(--general-text-primary);background-color:var(--_background-color);border-radius:var(--tag-default-radius);box-shadow:inset 0 0 0 1px var(--_border-color)}.tedi-tag__content{padding:var(--tag-default-padding-y) 0}.tedi-tag__icon-wrapper{line-height:var(--_line-height)}.tedi-tag__spinner-wrapper{display:flex;align-items:center;height:calc(var(--_line-height) + var(--tag-default-padding-y))}.tedi-tag__spinner-wrapper tedi-spinner{--tedi-spinner-size: 12;--tedi-spinner-stroke: 2}.tedi-tag--closable:not(.tedi-tag--loading){padding-right:0}.tedi-tag--closable:not(.tedi-tag--loading) .tedi-closing-button{border-radius:0 var(--button-radius-sm) var(--button-radius-sm) 0}.tedi-tag--secondary{--_background-color: var(--tag-secondary-background);--_border-color: var(--tag-secondary-border)}.tedi-tag--danger{--_background-color: var(--tag-danger-background);--_border-color: var(--tag-danger-border)}\n"], dependencies: [{ kind: "component", type: SpinnerComponent, selector: "tedi-spinner", inputs: ["size", "color", "label"] }, { kind: "component", type: IconComponent, selector: "tedi-icon", inputs: ["name", "size", "color", "background", "variant", "type", "label"] }, { kind: "component", type: ClosingButtonComponent, selector: "button[tedi-closing-button]", inputs: ["size", "iconSize", "ariaLabel"] }, { kind: "pipe", type: TediTranslationPipe, name: "tediTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
6579
- }
6580
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TagComponent, decorators: [{
6581
- type: Component,
6582
- args: [{ selector: "tedi-tag", imports: [SpinnerComponent, IconComponent, ClosingButtonComponent, TediTranslationPipe], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
6583
- "[class.tedi-tag]": "true",
6584
- "[class.tedi-tag--loading]": "loading()",
6585
- "[class.tedi-tag--closable]": "closable()",
6586
- "[class]": "classes()",
6587
- }, template: "@if (type() === \"danger\") {\n <span class=\"tedi-tag__icon-wrapper\">\n <tedi-icon name=\"error\" color=\"danger\" [size]=\"16\" />\n </span>\n}\n\n<span class=\"tedi-tag__content\" [attr.id]=\"uniqueId\">\n <ng-content />\n</span>\n\n@if (loading()) {\n <span class=\"tedi-tag__spinner-wrapper\">\n <tedi-spinner [size]=\"48\" />\n </span>\n} @else if (closable()) {\n <button\n type=\"button\"\n tedi-closing-button\n size=\"small\"\n [iconSize]=\"18\"\n (click)=\"handleClose($event)\"\n [attr.aria-describedby]=\"uniqueId\"\n [ariaLabel]=\"'remove' | tediTranslate\"\n >\n </button>\n}\n", styles: [".tedi-tag{--_background-color: var(--tag-primary-background);--_border-color: var(--tag-primary-border);--_line-height: var(--body-small-regular-line-height);display:inline-flex;gap:var(--tag-default-padding-x);align-items:flex-start;padding:0 var(--tag-default-padding-x);font-family:var(--family-default);font-size:var(--body-small-regular-size);font-weight:var(--body-small-regular-weight);line-height:var(--_line-height);color:var(--general-text-primary);background-color:var(--_background-color);border-radius:var(--tag-default-radius);box-shadow:inset 0 0 0 1px var(--_border-color)}.tedi-tag__content{padding:var(--tag-default-padding-y) 0}.tedi-tag__icon-wrapper{line-height:var(--_line-height)}.tedi-tag__spinner-wrapper{display:flex;align-items:center;height:calc(var(--_line-height) + var(--tag-default-padding-y))}.tedi-tag__spinner-wrapper tedi-spinner{--tedi-spinner-size: 12;--tedi-spinner-stroke: 2}.tedi-tag--closable:not(.tedi-tag--loading){padding-right:0}.tedi-tag--closable:not(.tedi-tag--loading) .tedi-closing-button{border-radius:0 var(--button-radius-sm) var(--button-radius-sm) 0}.tedi-tag--secondary{--_background-color: var(--tag-secondary-background);--_border-color: var(--tag-secondary-border)}.tedi-tag--danger{--_background-color: var(--tag-danger-background);--_border-color: var(--tag-danger-border)}\n"] }]
6588
- }] });
6589
-
6590
7515
  class StatusBadgeComponent {
6591
7516
  idGenerator = inject(_IdGenerator);
6592
7517
  uniqueId = this.idGenerator.getId("tedi-status-badge");
@@ -6665,7 +7590,7 @@ class StatusBadgeComponent {
6665
7590
  return null;
6666
7591
  });
6667
7592
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: StatusBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6668
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: StatusBadgeComponent, isStandalone: true, selector: "tedi-status-badge", inputs: { text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (title()) {\n <abbr\n [ngClass]=\"classes()\"\n [attr.id]=\"uniqueId\"\n [attr.title]=\"title()\"\n [attr.role]=\"role()\"\n [attr.aria-live]=\"ariaLive()\"\n >\n <ng-container *ngTemplateOutlet=\"statusBadgeContent\"></ng-container>\n </abbr>\n} @else {\n <div\n [ngClass]=\"classes()\"\n [attr.id]=\"uniqueId\"\n [attr.role]=\"role()\"\n [attr.aria-live]=\"ariaLive()\"\n >\n <ng-container *ngTemplateOutlet=\"statusBadgeContent\"></ng-container>\n </div>\n}\n\n<ng-template #statusBadgeContent>\n @if (icon()) {\n <tedi-icon class=\"tedi-status-badge__icon\" [name]=\"icon()\" [size]=\"16\" />\n }\n\n @if (text()) {\n <span class=\"tedi-status-badge__text\">{{ text() }}</span>\n }\n</ng-template>\n", styles: [".tedi-status-badge{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:var(--tag-default-padding-y) var(--tag-default-padding-x);font-size:var(--body-small-regular-size);font-weight:var(--body-small-regular-weight);line-height:var(--body-small-regular-line-height);color:var(--_status-badge-text);text-decoration:none;background:var(--_status-badge-background);border-radius:var(--tag-default-radius);box-shadow:var(--_status-badge-box-shadow)}.tedi-status-badge__text{min-width:fit-content;padding:0 var(--tag-default-padding-x)}.tedi-status-badge--large{min-width:var(--tag-status-large-min-width);padding:var(--tag-status-large-padding-y) var(--tag-status-large-padding-x)}.tedi-status-badge.tedi-status-badge--variant-filled.tedi-status-badge--color-neutral{--_status-badge-text: var(--status-badge-text-neutral);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-neutral);--_status-badge-background: var( --status-badge-background-neutral );--_status-badge-box-shadow: none}.tedi-status-badge.tedi-status-badge--variant-filled.tedi-status-badge--color-brand{--_status-badge-text: var(--status-badge-text-brand);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-brand);--_status-badge-background: var( --status-badge-background-brand );--_status-badge-box-shadow: none}.tedi-status-badge.tedi-status-badge--variant-filled.tedi-status-badge--color-accent{--_status-badge-text: var(--status-badge-text-accent);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-accent);--_status-badge-background: var( --status-badge-background-accent );--_status-badge-box-shadow: none}.tedi-status-badge.tedi-status-badge--variant-filled.tedi-status-badge--color-success{--_status-badge-text: var(--status-badge-text-success);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-success);--_status-badge-background: var( --status-badge-background-success );--_status-badge-box-shadow: none}.tedi-status-badge.tedi-status-badge--variant-filled.tedi-status-badge--color-danger{--_status-badge-text: var(--status-badge-text-danger);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-danger);--_status-badge-background: var( --status-badge-background-danger );--_status-badge-box-shadow: none}.tedi-status-badge.tedi-status-badge--variant-filled.tedi-status-badge--color-warning{--_status-badge-text: var(--status-badge-text-warning);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-warning);--_status-badge-background: var( --status-badge-background-warning );--_status-badge-box-shadow: none}.tedi-status-badge.tedi-status-badge--variant-filled.tedi-status-badge--color-transparent{--_status-badge-text: var(--status-badge-text-transparent);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-transparent);--_status-badge-background: var( --status-badge-background-transparent );--_status-badge-box-shadow: none}.tedi-status-badge.tedi-status-badge--variant-filled-bordered.tedi-status-badge--color-neutral{--_status-badge-text: var(--status-badge-text-neutral);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-neutral);--_status-badge-background: var( --status-badge-background-neutral )}.tedi-status-badge.tedi-status-badge--variant-filled-bordered.tedi-status-badge--color-brand{--_status-badge-text: var(--status-badge-text-brand);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-brand);--_status-badge-background: var( --status-badge-background-brand )}.tedi-status-badge.tedi-status-badge--variant-filled-bordered.tedi-status-badge--color-accent{--_status-badge-text: var(--status-badge-text-accent);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-accent);--_status-badge-background: var( --status-badge-background-accent )}.tedi-status-badge.tedi-status-badge--variant-filled-bordered.tedi-status-badge--color-success{--_status-badge-text: var(--status-badge-text-success);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-success);--_status-badge-background: var( --status-badge-background-success )}.tedi-status-badge.tedi-status-badge--variant-filled-bordered.tedi-status-badge--color-danger{--_status-badge-text: var(--status-badge-text-danger);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-danger);--_status-badge-background: var( --status-badge-background-danger )}.tedi-status-badge.tedi-status-badge--variant-filled-bordered.tedi-status-badge--color-warning{--_status-badge-text: var(--status-badge-text-warning);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-warning);--_status-badge-background: var( --status-badge-background-warning )}.tedi-status-badge.tedi-status-badge--variant-filled-bordered.tedi-status-badge--color-transparent{--_status-badge-text: var(--status-badge-text-transparent);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-transparent);--_status-badge-background: var( --status-badge-background-transparent )}.tedi-status-badge.tedi-status-badge--variant-bordered.tedi-status-badge--color-neutral{--_status-badge-text: var(--status-badge-text-neutral);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-neutral);--_status-badge-background: transparent}.tedi-status-badge.tedi-status-badge--variant-bordered.tedi-status-badge--color-brand{--_status-badge-text: var(--status-badge-text-brand);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-brand);--_status-badge-background: transparent}.tedi-status-badge.tedi-status-badge--variant-bordered.tedi-status-badge--color-accent{--_status-badge-text: var(--status-badge-text-accent);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-accent);--_status-badge-background: transparent}.tedi-status-badge.tedi-status-badge--variant-bordered.tedi-status-badge--color-success{--_status-badge-text: var(--status-badge-text-success);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-success);--_status-badge-background: transparent}.tedi-status-badge.tedi-status-badge--variant-bordered.tedi-status-badge--color-danger{--_status-badge-text: var(--status-badge-text-danger);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-danger);--_status-badge-background: transparent}.tedi-status-badge.tedi-status-badge--variant-bordered.tedi-status-badge--color-warning{--_status-badge-text: var(--status-badge-text-warning);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-warning);--_status-badge-background: transparent}.tedi-status-badge.tedi-status-badge--variant-bordered.tedi-status-badge--color-transparent{--_status-badge-text: var(--status-badge-text-transparent);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-transparent);--_status-badge-background: transparent}.tedi-status-badge--status:before{position:absolute;top:-.125rem;right:-.125rem;z-index:1;width:var(--status-indicator-sm);height:var(--status-indicator-sm);content:\"\";background-color:var(--_status-badge--indicator-background);border:1px solid var(--status-badge-indicator-border);border-radius:50%}.tedi-status-badge--status.tedi-status-badge--large:before{width:var(--status-indicator-lg);height:var(--status-indicator-lg)}.tedi-status-badge--status-inactive:before{--_status-badge--indicator-background: var( --status-badge-indicator-inactive )}.tedi-status-badge--status-success:before{--_status-badge--indicator-background: var( --status-badge-indicator-success )}.tedi-status-badge--status-danger:before{--_status-badge--indicator-background: var( --status-badge-indicator-danger )}.tedi-status-badge--status-warning:before{--_status-badge--indicator-background: var( --status-badge-indicator-warning )}.tedi-status-badge .tedi-status-badge__icon{color:inherit}.tedi-status-badge__icon-only{display:inline-flex;align-items:center;padding:var(--tag-status-icon-padding-y) var(--tag-status-icon-padding-x);line-height:var(--body-small-regular-line-height)}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "tedi-icon", inputs: ["name", "size", "color", "background", "variant", "type", "label"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
7593
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: StatusBadgeComponent, isStandalone: true, selector: "tedi-status-badge", inputs: { text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (title()) {\n <abbr\n [ngClass]=\"classes()\"\n [attr.id]=\"uniqueId\"\n [attr.title]=\"title()\"\n [attr.role]=\"role()\"\n [attr.aria-live]=\"ariaLive()\"\n >\n <ng-container *ngTemplateOutlet=\"statusBadgeContent\"></ng-container>\n </abbr>\n} @else {\n <div\n [ngClass]=\"classes()\"\n [attr.id]=\"uniqueId\"\n [attr.role]=\"role()\"\n [attr.aria-live]=\"ariaLive()\"\n >\n <ng-container *ngTemplateOutlet=\"statusBadgeContent\"></ng-container>\n </div>\n}\n\n<ng-template #statusBadgeContent>\n @if (icon()) {\n <tedi-icon class=\"tedi-status-badge__icon\" [name]=\"icon()\" [size]=\"16\" />\n }\n\n @if (text()) {\n <span class=\"tedi-status-badge__text\">{{ text() }}</span>\n }\n</ng-template>\n", styles: [".tedi-status-badge{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:var(--tag-default-padding-y) var(--tag-default-padding-x);font-size:var(--body-small-regular-size);font-weight:var(--body-small-regular-weight);line-height:var(--body-small-regular-line-height);color:var(--_status-badge-text);text-decoration:none;background:var(--_status-badge-background);border-radius:var(--tag-default-radius);box-shadow:var(--_status-badge-box-shadow)}.tedi-status-badge__text{min-width:fit-content;padding:0 var(--tag-default-padding-x)}.tedi-status-badge--large{min-width:var(--tag-status-large-min-width);padding:var(--tag-status-large-padding-y) var(--tag-status-large-padding-x)}.tedi-status-badge.tedi-status-badge--variant-filled.tedi-status-badge--color-neutral{--_status-badge-text: var(--status-badge-text-neutral);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-neutral);--_status-badge-background: var( --status-badge-background-neutral );--_status-badge-box-shadow: none}.tedi-status-badge.tedi-status-badge--variant-filled.tedi-status-badge--color-brand{--_status-badge-text: var(--status-badge-text-brand);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-brand);--_status-badge-background: var( --status-badge-background-brand );--_status-badge-box-shadow: none}.tedi-status-badge.tedi-status-badge--variant-filled.tedi-status-badge--color-accent{--_status-badge-text: var(--status-badge-text-accent);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-accent);--_status-badge-background: var( --status-badge-background-accent );--_status-badge-box-shadow: none}.tedi-status-badge.tedi-status-badge--variant-filled.tedi-status-badge--color-success{--_status-badge-text: var(--status-badge-text-success);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-success);--_status-badge-background: var( --status-badge-background-success );--_status-badge-box-shadow: none}.tedi-status-badge.tedi-status-badge--variant-filled.tedi-status-badge--color-danger{--_status-badge-text: var(--status-badge-text-danger);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-danger);--_status-badge-background: var( --status-badge-background-danger );--_status-badge-box-shadow: none}.tedi-status-badge.tedi-status-badge--variant-filled.tedi-status-badge--color-warning{--_status-badge-text: var(--status-badge-text-warning);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-warning);--_status-badge-background: var( --status-badge-background-warning );--_status-badge-box-shadow: none}.tedi-status-badge.tedi-status-badge--variant-filled.tedi-status-badge--color-transparent{--_status-badge-text: var(--status-badge-text-transparent);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-transparent);--_status-badge-background: var( --status-badge-background-transparent );--_status-badge-box-shadow: none}.tedi-status-badge.tedi-status-badge--variant-filled-bordered.tedi-status-badge--color-neutral{--_status-badge-text: var(--status-badge-text-neutral);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-neutral);--_status-badge-background: var( --status-badge-background-neutral )}.tedi-status-badge.tedi-status-badge--variant-filled-bordered.tedi-status-badge--color-brand{--_status-badge-text: var(--status-badge-text-brand);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-brand);--_status-badge-background: var( --status-badge-background-brand )}.tedi-status-badge.tedi-status-badge--variant-filled-bordered.tedi-status-badge--color-accent{--_status-badge-text: var(--status-badge-text-accent);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-accent);--_status-badge-background: var( --status-badge-background-accent )}.tedi-status-badge.tedi-status-badge--variant-filled-bordered.tedi-status-badge--color-success{--_status-badge-text: var(--status-badge-text-success);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-success);--_status-badge-background: var( --status-badge-background-success )}.tedi-status-badge.tedi-status-badge--variant-filled-bordered.tedi-status-badge--color-danger{--_status-badge-text: var(--status-badge-text-danger);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-danger);--_status-badge-background: var( --status-badge-background-danger )}.tedi-status-badge.tedi-status-badge--variant-filled-bordered.tedi-status-badge--color-warning{--_status-badge-text: var(--status-badge-text-warning);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-warning);--_status-badge-background: var( --status-badge-background-warning )}.tedi-status-badge.tedi-status-badge--variant-filled-bordered.tedi-status-badge--color-transparent{--_status-badge-text: var(--status-badge-text-transparent);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-transparent);--_status-badge-background: var( --status-badge-background-transparent )}.tedi-status-badge.tedi-status-badge--variant-bordered.tedi-status-badge--color-neutral{--_status-badge-text: var(--status-badge-text-neutral);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-neutral);--_status-badge-background: transparent}.tedi-status-badge.tedi-status-badge--variant-bordered.tedi-status-badge--color-brand{--_status-badge-text: var(--status-badge-text-brand);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-brand);--_status-badge-background: transparent}.tedi-status-badge.tedi-status-badge--variant-bordered.tedi-status-badge--color-accent{--_status-badge-text: var(--status-badge-text-accent);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-accent);--_status-badge-background: transparent}.tedi-status-badge.tedi-status-badge--variant-bordered.tedi-status-badge--color-success{--_status-badge-text: var(--status-badge-text-success);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-success);--_status-badge-background: transparent}.tedi-status-badge.tedi-status-badge--variant-bordered.tedi-status-badge--color-danger{--_status-badge-text: var(--status-badge-text-danger);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-danger);--_status-badge-background: transparent}.tedi-status-badge.tedi-status-badge--variant-bordered.tedi-status-badge--color-warning{--_status-badge-text: var(--status-badge-text-warning);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-warning);--_status-badge-background: transparent}.tedi-status-badge.tedi-status-badge--variant-bordered.tedi-status-badge--color-transparent{--_status-badge-text: var(--status-badge-text-transparent);--_status-badge-box-shadow: inset 0 0 0 1px var(--status-badge-border-transparent);--_status-badge-background: transparent}.tedi-status-badge--status:before{position:absolute;top:-.125rem;right:-.125rem;z-index:1;width:var(--status-indicator-sm);height:var(--status-indicator-sm);content:\"\";background-color:var(--_status-badge--indicator-background);border:1px solid var(--status-badge-indicator-border);border-radius:50%}.tedi-status-badge--status.tedi-status-badge--large:before{width:var(--status-indicator-lg);height:var(--status-indicator-lg)}.tedi-status-badge--status-inactive:before{--_status-badge--indicator-background: var( --status-badge-indicator-inactive )}.tedi-status-badge--status-success:before{--_status-badge--indicator-background: var( --status-badge-indicator-success )}.tedi-status-badge--status-danger:before{--_status-badge--indicator-background: var( --status-badge-indicator-danger )}.tedi-status-badge--status-warning:before{--_status-badge--indicator-background: var( --status-badge-indicator-warning )}.tedi-status-badge .tedi-status-badge__icon{color:inherit}.tedi-status-badge__icon-only{display:inline-flex;align-items:center;padding:var(--tag-status-icon-padding-y) var(--tag-status-icon-padding-x);line-height:var(--body-small-regular-line-height)}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "tedi-icon", inputs: ["name", "size", "color", "background", "variant", "type", "label"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
6669
7594
  }
6670
7595
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: StatusBadgeComponent, decorators: [{
6671
7596
  type: Component,
@@ -6773,7 +7698,7 @@ class AccordionItemComponent {
6773
7698
  return !this.headerClickable() && !this.showExpandLabel();
6774
7699
  });
6775
7700
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AccordionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6776
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: AccordionItemComponent, isStandalone: true, selector: "tedi-accordion-item", inputs: { headerClickable: { classPropertyName: "headerClickable", publicName: "headerClickable", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, titleLayout: { classPropertyName: "titleLayout", publicName: "titleLayout", isSignal: true, isRequired: false, transformFunction: null }, showSeparateTitle: { classPropertyName: "showSeparateTitle", publicName: "showSeparateTitle", isSignal: true, isRequired: false, transformFunction: null }, openLabel: { classPropertyName: "openLabel", publicName: "openLabel", isSignal: true, isRequired: false, transformFunction: null }, closeLabel: { classPropertyName: "closeLabel", publicName: "closeLabel", isSignal: true, isRequired: false, transformFunction: null }, showExpandLabel: { classPropertyName: "showExpandLabel", publicName: "showExpandLabel", isSignal: true, isRequired: false, transformFunction: null }, showDefaultExpandAction: { classPropertyName: "showDefaultExpandAction", publicName: "showDefaultExpandAction", isSignal: true, isRequired: false, transformFunction: null }, expandActionPosition: { classPropertyName: "expandActionPosition", publicName: "expandActionPosition", isSignal: true, isRequired: false, transformFunction: null }, defaultExpanded: { classPropertyName: "defaultExpanded", publicName: "defaultExpanded", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, descriptionPosition: { classPropertyName: "descriptionPosition", publicName: "descriptionPosition", isSignal: true, isRequired: false, transformFunction: null }, showIconCard: { classPropertyName: "showIconCard", publicName: "showIconCard", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, headerClass: { classPropertyName: "headerClass", publicName: "headerClass", isSignal: true, isRequired: false, transformFunction: null }, bodyClass: { classPropertyName: "bodyClass", publicName: "bodyClass", isSignal: true, isRequired: false, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expanded: "expandedChange" }, ngImport: i0, template: "<div\n class=\"tedi-accordion__item\"\n [class.tedi-accordion__item--selected]=\"selected()\"\n [class.tedi-accordion__item--expanded]=\"expanded()\"\n>\n @if (showIconCard()) {\n <ng-content select=\"[tedi-accordion-icon-card]\"></ng-content>\n }\n\n <div class=\"tedi-accordion__header-row\">\n @if (headerClickable()) {\n <button\n [id]=\"headerId\"\n type=\"button\"\n [ngClass]=\"headerClasses()\"\n (click)=\"toggle()\"\n [attr.aria-expanded]=\"expanded()\"\n [attr.aria-controls]=\"bodyId\"\n >\n <ng-container *ngTemplateOutlet=\"headerContent\"></ng-container>\n </button>\n } @else {\n <div [id]=\"headerId\" [ngClass]=\"headerClasses()\">\n <ng-container *ngTemplateOutlet=\"headerContent\"></ng-container>\n </div>\n }\n </div>\n\n <div\n [ngClass]=\"bodyClasses()\"\n [id]=\"bodyId\"\n [attr.role]=\"expanded() ? 'region' : null\"\n [attr.aria-labelledby]=\"headerId\"\n [attr.aria-hidden]=\"!expanded()\"\n [attr.inert]=\"!expanded() ? '' : null\"\n >\n <div class=\"tedi-accordion__body--inner\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<ng-template #headerContent>\n <div class=\"tedi-accordion__start\">\n <ng-content select=\"[tedi-accordion-start-action]\"></ng-content>\n\n <ng-content select=\"[tedi-accordion-start-before-title]\"></ng-content>\n\n <span\n class=\"tedi-accordion__title\"\n [class.tedi-accordion__title--with-description]=\"description()\"\n [class.tedi-accordion__title--grow]=\"titleLayout() === 'fill'\"\n >\n <span class=\"tedi-accordion__title--main\">\n @if (showStartExpandAction()) {\n <ng-container *ngTemplateOutlet=\"collapseButton\"></ng-container>\n }\n\n @if (showSeparateTitle()) {\n <span\n tedi-text\n color=\"secondary\"\n modifiers=\"normal\"\n [id]=\"headerId + '-title'\"\n [attr.aria-hidden]=\"hideTitleFromSR() ? 'true' : null\"\n >\n {{ title() | tediTranslate }}\n </span>\n }\n </span>\n\n @if (descriptionPosition() !== \"end\") {\n <ng-content select=\"[tedi-accordion-start-description]\"></ng-content>\n\n @if (description(); as desc) {\n <span tedi-text color=\"tertiary\" modifiers=\"normal\">\n {{ desc | tediTranslate }}\n </span>\n }\n }\n </span>\n\n <ng-content select=\"[tedi-accordion-start-after-title]\"></ng-content>\n </div>\n\n @if (descriptionPosition() !== \"start\") {\n <ng-content select=\"[tedi-accordion-end-description]\"></ng-content>\n\n @if (description(); as desc) {\n <span tedi-text color=\"tertiary\" modifiers=\"small\">\n {{ desc | tediTranslate }}\n </span>\n }\n }\n\n @if (showEndExpandAction()) {\n <ng-container *ngTemplateOutlet=\"collapseButton\"></ng-container>\n }\n\n <ng-content select=\"[tedi-accordion-end-action]\"></ng-content>\n</ng-template>\n\n<ng-template #collapseButton>\n @if (headerClickable()) {\n <div\n tedi-text\n modifiers=\"normal\"\n class=\"tedi-accordion__expand-indicator\"\n [class.tedi-accordion__expand-indicator--with-label]=\"showExpandLabel()\"\n >\n {{ (showExpandLabel() ? expandLabel() : \"\") | tediTranslate }}\n <ng-container *ngTemplateOutlet=\"expandIcon\"></ng-container>\n </div>\n } @else {\n <button\n type=\"button\"\n class=\"tedi-accordion__toggle-button\"\n tedi-link\n [underline]=\"false\"\n (click)=\"toggle()\"\n [attr.aria-expanded]=\"expanded()\"\n [attr.aria-controls]=\"bodyId\"\n [attr.aria-label]=\"\n !showExpandLabel() ? (expandLabel() | tediTranslate) : null\n \"\n [attr.aria-labelledby]=\"headerId + '-title'\"\n >\n @if (showExpandLabel()) {\n {{ (showSeparateTitle() ? expandLabel() : title()) | tediTranslate }}\n }\n <ng-container *ngTemplateOutlet=\"expandIcon\"></ng-container>\n </button>\n }\n</ng-template>\n\n<ng-template #expandIcon>\n <tedi-icon\n aria-hidden=\"true\"\n name=\"expand_more\"\n class=\"tedi-accordion__icon\"\n [class.tedi-accordion__icon--expanded]=\"expanded()\"\n [class.tedi-accordion__icon--no-label]=\"!showExpandLabel()\"\n />\n</ng-template>\n", styles: [".tedi-accordion__item{display:grid;grid-template-rows:max-content minmax(0,0fr);grid-template-columns:auto 1fr;transition:grid-template-rows .3s ease}.tedi-accordion__item--selected{border:1px solid var(--card-border-selected);border-radius:var(--card-radius-rounded)}.tedi-accordion__item--selected .tedi-accordion__header,.tedi-accordion__item--selected.tedi-accordion__item--expanded .tedi-accordion__body,.tedi-accordion__item--selected [tedi-accordion-icon-card]{border:transparent}.tedi-accordion__item--selected .tedi-accordion__header--with-icon-card,.tedi-accordion__item--selected.tedi-accordion__item--expanded .tedi-accordion__body--with-icon-card{border-left:1px solid var(--card-border-primary)}.tedi-accordion__item--selected .tedi-accordion__header--expanded{border-bottom:1px solid var(--card-border-primary)}.tedi-accordion__item--expanded{grid-template-rows:max-content minmax(0,1fr)}.tedi-accordion__item--expanded .tedi-accordion__body{border:1px solid var(--card-border-primary);border-top:none;border-radius:0 0 var(--card-radius-rounded) var(--card-radius-rounded)}.tedi-accordion__item--expanded .tedi-accordion__body--with-icon-card{border-radius:0 0 var(--card-radius-rounded) 0}.tedi-accordion__header-row{display:flex;grid-row:1;grid-column:2;align-items:stretch}.tedi-accordion__header{position:relative;display:flex;flex:1;gap:var(--layout-grid-gutters-16);align-items:center;padding:var(--card-padding-md-default);background:var(--card-background-primary);border:1px solid var(--card-border-primary);border-radius:var(--card-radius-rounded)}.tedi-accordion__header--expanded{border-radius:var(--card-radius-rounded) var(--card-radius-rounded) 0 0}.tedi-accordion__header--expanded.tedi-accordion__header--with-icon-card{border-radius:0 var(--card-radius-rounded) 0 0}.tedi-accordion__header--with-icon-card{border-radius:var(--card-radius-sharp) var(--card-radius-rounded) var(--card-radius-rounded) var(--card-radius-sharp)}.tedi-accordion__header--hoverable{cursor:pointer}.tedi-accordion__header--hoverable:hover{background:var(--general-surface-hover)}.tedi-accordion__header--hoverable:active{background:var(--general-surface-brand-tertiary)}.tedi-accordion__header--hoverable:focus-visible{z-index:1;outline:none;background:var(--card-background-primary);border:1px solid var(--card-border-primary);box-shadow:0 0 0 1px var(--tedi-neutral-100),0 0 0 3px var(--tedi-primary-500)}.tedi-accordion__body{grid-row:2;grid-column:2;overflow:hidden;background:var(--card-background-primary)}.tedi-accordion__body--inner{padding:var(--card-padding-md-default)}.tedi-accordion__icon{transition:transform .2s ease-in-out}.tedi-accordion__icon--expanded{transform:rotate(-180deg)}.tedi-accordion__start{display:flex;flex:1;gap:var(--layout-grid-gutters-08);align-items:center;min-width:0}[tedi-accordion-icon-card]{display:inline-flex;grid-row:1/span 2;grid-column:1;gap:var(--layout-grid-gutters-08);align-items:flex-start;align-self:stretch;justify-content:flex-end;padding:var(--card-padding-md-default);background:var(--card-background-secondary);border:1px solid var(--card-border-primary);border-right:none;border-radius:var(--card-radius-rounded) var(--card-radius-sharp) var(--card-radius-sharp) var(--card-radius-rounded)}.tedi-accordion__title{display:flex;gap:var(--layout-grid-gutters-08)}.tedi-accordion__title--main{display:flex;gap:inherit;align-items:center}.tedi-accordion__title--with-description,.tedi-accordion__title:has([tedi-accordion-start-description]){flex-direction:column;gap:0;align-items:flex-start}.tedi-accordion__title--grow{flex:1;justify-content:space-between}.tedi-accordion__toggle-button{display:flex;padding:0;font-size:var(--body-regular-size);background:transparent;border:transparent}.tedi-accordion__expand-indicator{display:flex;align-items:center;color:var(--accordion-action-color)}.tedi-accordion__expand-indicator tedi-icon{color:inherit}.tedi-accordion__expand-indicator--with-label tedi-icon{margin-left:var(--button-sm-inner-spacing);font-size:var(--tedi-size-02);line-height:inherit}.tedi-link tedi-icon.tedi-accordion__icon--no-label{font-size:var(--icon-05)}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "tedi-icon", inputs: ["name", "size", "color", "background", "variant", "type", "label"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: TextComponent, selector: "[tedi-text]", inputs: ["modifiers", "color"] }, { kind: "component", type: LinkComponent, selector: "[tedi-link]", inputs: ["variant", "size", "underline", "target", "xs", "sm", "md", "lg", "xl", "xxl"] }, { kind: "pipe", type: TediTranslationPipe, name: "tediTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
7701
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: AccordionItemComponent, isStandalone: true, selector: "tedi-accordion-item", inputs: { headerClickable: { classPropertyName: "headerClickable", publicName: "headerClickable", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, titleLayout: { classPropertyName: "titleLayout", publicName: "titleLayout", isSignal: true, isRequired: false, transformFunction: null }, showSeparateTitle: { classPropertyName: "showSeparateTitle", publicName: "showSeparateTitle", isSignal: true, isRequired: false, transformFunction: null }, openLabel: { classPropertyName: "openLabel", publicName: "openLabel", isSignal: true, isRequired: false, transformFunction: null }, closeLabel: { classPropertyName: "closeLabel", publicName: "closeLabel", isSignal: true, isRequired: false, transformFunction: null }, showExpandLabel: { classPropertyName: "showExpandLabel", publicName: "showExpandLabel", isSignal: true, isRequired: false, transformFunction: null }, showDefaultExpandAction: { classPropertyName: "showDefaultExpandAction", publicName: "showDefaultExpandAction", isSignal: true, isRequired: false, transformFunction: null }, expandActionPosition: { classPropertyName: "expandActionPosition", publicName: "expandActionPosition", isSignal: true, isRequired: false, transformFunction: null }, defaultExpanded: { classPropertyName: "defaultExpanded", publicName: "defaultExpanded", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, descriptionPosition: { classPropertyName: "descriptionPosition", publicName: "descriptionPosition", isSignal: true, isRequired: false, transformFunction: null }, showIconCard: { classPropertyName: "showIconCard", publicName: "showIconCard", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, headerClass: { classPropertyName: "headerClass", publicName: "headerClass", isSignal: true, isRequired: false, transformFunction: null }, bodyClass: { classPropertyName: "bodyClass", publicName: "bodyClass", isSignal: true, isRequired: false, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expanded: "expandedChange" }, ngImport: i0, template: "<div\n class=\"tedi-accordion__item\"\n [class.tedi-accordion__item--selected]=\"selected()\"\n [class.tedi-accordion__item--expanded]=\"expanded()\"\n>\n @if (showIconCard()) {\n <ng-content select=\"[tedi-accordion-icon-card]\"></ng-content>\n }\n\n <div class=\"tedi-accordion__header-row\">\n @if (headerClickable()) {\n <button\n [id]=\"headerId\"\n type=\"button\"\n [ngClass]=\"headerClasses()\"\n (click)=\"toggle()\"\n [attr.aria-expanded]=\"expanded()\"\n [attr.aria-controls]=\"bodyId\"\n >\n <ng-container *ngTemplateOutlet=\"headerContent\"></ng-container>\n </button>\n } @else {\n <div [id]=\"headerId\" [ngClass]=\"headerClasses()\">\n <ng-container *ngTemplateOutlet=\"headerContent\"></ng-container>\n </div>\n }\n </div>\n\n <div\n [ngClass]=\"bodyClasses()\"\n [id]=\"bodyId\"\n [attr.role]=\"expanded() ? 'region' : null\"\n [attr.aria-labelledby]=\"headerId\"\n [attr.aria-hidden]=\"!expanded()\"\n [attr.inert]=\"!expanded() ? '' : null\"\n >\n <div class=\"tedi-accordion__body--inner\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<ng-template #headerContent>\n <div class=\"tedi-accordion__start\">\n <ng-content select=\"[tedi-accordion-start-action]\"></ng-content>\n\n <ng-content select=\"[tedi-accordion-start-before-title]\"></ng-content>\n\n <span\n class=\"tedi-accordion__title\"\n [class.tedi-accordion__title--with-description]=\"description()\"\n [class.tedi-accordion__title--grow]=\"titleLayout() === 'fill'\"\n >\n <span class=\"tedi-accordion__title--main\">\n @if (showStartExpandAction()) {\n <ng-container *ngTemplateOutlet=\"collapseButton\"></ng-container>\n }\n\n @if (showSeparateTitle()) {\n <span\n tedi-text\n color=\"secondary\"\n modifiers=\"normal\"\n [id]=\"headerId + '-title'\"\n [attr.aria-hidden]=\"hideTitleFromSR() ? 'true' : null\"\n >\n {{ title() | tediTranslate }}\n </span>\n }\n </span>\n\n @if (descriptionPosition() !== \"end\") {\n <ng-content select=\"[tedi-accordion-start-description]\"></ng-content>\n\n @if (description(); as desc) {\n <span tedi-text color=\"tertiary\" modifiers=\"normal\">\n {{ desc | tediTranslate }}\n </span>\n }\n }\n </span>\n\n <ng-content select=\"[tedi-accordion-start-after-title]\"></ng-content>\n </div>\n\n @if (descriptionPosition() !== \"start\") {\n <ng-content select=\"[tedi-accordion-end-description]\"></ng-content>\n\n @if (description(); as desc) {\n <span tedi-text color=\"tertiary\" modifiers=\"small\">\n {{ desc | tediTranslate }}\n </span>\n }\n }\n\n @if (showEndExpandAction()) {\n <ng-container *ngTemplateOutlet=\"collapseButton\"></ng-container>\n }\n\n <ng-content select=\"[tedi-accordion-end-action]\"></ng-content>\n</ng-template>\n\n<ng-template #collapseButton>\n @if (headerClickable()) {\n <div\n tedi-text\n modifiers=\"normal\"\n class=\"tedi-accordion__expand-indicator\"\n [class.tedi-accordion__expand-indicator--with-label]=\"showExpandLabel()\"\n >\n {{ (showExpandLabel() ? expandLabel() : \"\") | tediTranslate }}\n <ng-container *ngTemplateOutlet=\"expandIcon\"></ng-container>\n </div>\n } @else {\n <button\n type=\"button\"\n class=\"tedi-accordion__toggle-button\"\n tedi-link\n [underline]=\"false\"\n (click)=\"toggle()\"\n [attr.aria-expanded]=\"expanded()\"\n [attr.aria-controls]=\"bodyId\"\n [attr.aria-label]=\"\n !showExpandLabel() ? (expandLabel() | tediTranslate) : null\n \"\n [attr.aria-labelledby]=\"headerId + '-title'\"\n >\n @if (showExpandLabel()) {\n {{ (showSeparateTitle() ? expandLabel() : title()) | tediTranslate }}\n }\n <ng-container *ngTemplateOutlet=\"expandIcon\"></ng-container>\n </button>\n }\n</ng-template>\n\n<ng-template #expandIcon>\n <tedi-icon\n aria-hidden=\"true\"\n name=\"expand_more\"\n class=\"tedi-accordion__icon\"\n [class.tedi-accordion__icon--expanded]=\"expanded()\"\n [class.tedi-accordion__icon--no-label]=\"!showExpandLabel()\"\n />\n</ng-template>\n", styles: [".tedi-accordion__item{display:grid;grid-template-rows:max-content minmax(0,0fr);grid-template-columns:auto 1fr;transition:grid-template-rows .3s ease}.tedi-accordion__item--selected{border:1px solid var(--card-border-selected);border-radius:var(--card-radius-rounded)}.tedi-accordion__item--selected .tedi-accordion__header,.tedi-accordion__item--selected.tedi-accordion__item--expanded .tedi-accordion__body,.tedi-accordion__item--selected [tedi-accordion-icon-card]{border:transparent}.tedi-accordion__item--selected .tedi-accordion__header--with-icon-card,.tedi-accordion__item--selected.tedi-accordion__item--expanded .tedi-accordion__body--with-icon-card{border-left:1px solid var(--card-border-primary)}.tedi-accordion__item--selected .tedi-accordion__header--expanded{border-bottom:1px solid var(--card-border-primary)}.tedi-accordion__item--expanded{grid-template-rows:max-content minmax(0,1fr)}.tedi-accordion__item--expanded .tedi-accordion__body{border:1px solid var(--card-border-primary);border-top:none;border-radius:0 0 var(--card-radius-rounded) var(--card-radius-rounded)}.tedi-accordion__item--expanded .tedi-accordion__body--with-icon-card{border-radius:0 0 var(--card-radius-rounded) 0}.tedi-accordion__header-row{display:flex;grid-row:1;grid-column:2;align-items:stretch}.tedi-accordion__header{position:relative;display:flex;flex:1;gap:var(--layout-grid-gutters-16);align-items:center;padding:var(--card-padding-md-default);background:var(--card-background-primary);border:1px solid var(--card-border-primary);border-radius:var(--card-radius-rounded)}.tedi-accordion__header--expanded{border-radius:var(--card-radius-rounded) var(--card-radius-rounded) 0 0}.tedi-accordion__header--expanded.tedi-accordion__header--with-icon-card{border-radius:0 var(--card-radius-rounded) 0 0}.tedi-accordion__header--with-icon-card{border-radius:var(--card-radius-sharp) var(--card-radius-rounded) var(--card-radius-rounded) var(--card-radius-sharp)}.tedi-accordion__header--hoverable{cursor:pointer}.tedi-accordion__header--hoverable:hover{background:var(--general-surface-hover)}.tedi-accordion__header--hoverable:active{background:var(--general-surface-brand-tertiary)}.tedi-accordion__header--hoverable:focus-visible{z-index:1;outline:none;background:var(--card-background-primary);border:1px solid var(--card-border-primary);box-shadow:0 0 0 1px var(--tedi-neutral-100),0 0 0 3px var(--tedi-primary-500)}.tedi-accordion__body{grid-row:2;grid-column:2;overflow:hidden;background:var(--card-background-primary)}.tedi-accordion__body--inner{padding:var(--card-padding-md-default)}.tedi-accordion__icon{transition:transform .2s ease-in-out}.tedi-accordion__icon--expanded{transform:rotate(-180deg)}.tedi-accordion__start{display:flex;flex:1;gap:var(--layout-grid-gutters-08);align-items:center;min-width:0}[tedi-accordion-icon-card]{display:inline-flex;grid-row:1/span 2;grid-column:1;gap:var(--layout-grid-gutters-08);align-items:flex-start;align-self:stretch;justify-content:flex-end;padding:var(--card-padding-md-default);background:var(--card-background-secondary);border:1px solid var(--card-border-primary);border-right:none;border-radius:var(--card-radius-rounded) var(--card-radius-sharp) var(--card-radius-sharp) var(--card-radius-rounded)}.tedi-accordion__title{display:flex;gap:var(--layout-grid-gutters-08)}.tedi-accordion__title--main{display:flex;gap:inherit;align-items:center}.tedi-accordion__title--with-description,.tedi-accordion__title:has([tedi-accordion-start-description]){flex-direction:column;gap:0;align-items:flex-start}.tedi-accordion__title--grow{flex:1;justify-content:space-between}.tedi-accordion__toggle-button{display:flex;padding:0;font-size:var(--body-regular-size);background:transparent;border:transparent}.tedi-accordion__expand-indicator{display:flex;align-items:center;color:var(--accordion-action-color)}.tedi-accordion__expand-indicator tedi-icon{color:inherit}.tedi-accordion__expand-indicator--with-label tedi-icon{margin-left:var(--button-sm-inner-spacing);font-size:var(--tedi-size-02);line-height:inherit}.tedi-link tedi-icon.tedi-accordion__icon--no-label{font-size:var(--icon-05)}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "tedi-icon", inputs: ["name", "size", "color", "background", "variant", "type", "label"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: TextComponent, selector: "[tedi-text]", inputs: ["modifiers", "color"] }, { kind: "component", type: LinkComponent, selector: "[tedi-link]", inputs: ["variant", "size", "underline", "target", "xs", "sm", "md", "lg", "xl", "xxl"] }, { kind: "pipe", type: TediTranslationPipe, name: "tediTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
6777
7702
  }
6778
7703
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AccordionItemComponent, decorators: [{
6779
7704
  type: Component,
@@ -6878,5 +7803,5 @@ function provideTedi(config = {}) {
6878
7803
  * Generated bundle index. Do not edit.
6879
7804
  */
6880
7805
 
6881
- export { AVAILABLE_LANGUAGES, AccordionComponent, AccordionItemComponent, AlertComponent, BREAKPOINTS, BaseButtonDirective, BreakpointService, ButtonComponent, CarouselComponent, CarouselContentComponent, CarouselFooterComponent, CarouselHeaderComponent, CarouselIndicatorsComponent, CarouselNavigationComponent, CarouselSlideDirective, CheckboxComponent, ClosingButtonComponent, ColComponent, CollapseComponent, DatePickerComponent, DropdownComponent, DropdownContentComponent, DropdownItemComponent, DropdownTriggerDirective, FeedbackTextComponent, FooterBodyComponent, FooterBottomComponent, FooterComponent, FooterSectionComponent, FooterSideComponent, FormFieldComponent, HeaderActionsComponent, HeaderComponent, HeaderContentComponent, HeaderLanguageComponent, HeaderLoginComponent, HeaderLogoutComponent, HeaderProfileComponent, HeaderRoleComponent, HideAtDirective, IconComponent, InfoButtonComponent, LANGUAGE_COOKIE_NAME, LANGUAGE_FALLBACK_VALUE, LabelComponent, LinkComponent, ListComponent, ModalComponent, ModalContentComponent, ModalFooterComponent, ModalHeaderComponent, NumberFieldComponent, PopoverComponent, PopoverContentComponent, PopoverTriggerDirective, RowComponent, SeparatorComponent, ShowAtDirective, SideNavComponent, SideNavDropdownComponent, SideNavDropdownGroupComponent, SideNavDropdownItemComponent, SideNavGroupTitleComponent, SideNavItemComponent, SideNavOverlayComponent, SideNavToggleComponent, SpinnerComponent, StatusBadgeComponent, TEDI_THEME_DEFAULT_TOKEN, TEDI_TRANSLATION_DEFAULT_TOKEN, THEME_CLASS_PREFIX, THEME_COOKIE_NAME, THEME_FALLBACK_VALUE, TOAST_DEFAULT_DURATION, TagComponent, TediTranslationPipe, TediTranslationService, TextComponent, TextFieldComponent, TextGroupComponent, TextGroupLabelComponent, TextGroupValueComponent, ThemeService, TimelineComponent, TimelineDescriptionComponent, TimelineItemComponent, TimelineTitleComponent, ToastComponent, ToastService, ToggleComponent, TooltipComponent, TooltipContentComponent, TooltipTriggerComponent, VerticalSpacingDirective, VerticalSpacingItemDirective, breakpointInput, generateUUID, provideTedi };
7806
+ export { AVAILABLE_LANGUAGES, AccordionComponent, AccordionItemComponent, AlertComponent, BREAKPOINTS, BaseButtonDirective, BreakpointService, ButtonComponent, CarouselComponent, CarouselContentComponent, CarouselFooterComponent, CarouselHeaderComponent, CarouselIndicatorsComponent, CarouselNavigationComponent, CarouselSlideDirective, CheckboxComponent, ClosingButtonComponent, ColComponent, CollapseComponent, DROPDOWN_API, DROPDOWN_CONTENT_API, DatePickerComponent, DropdownComponent, DropdownContentComponent, DropdownItemComponent, DropdownItemValueComponent, DropdownItemValueLabelComponent, DropdownItemValueMetaComponent, DropdownTriggerDirective, FeedbackTextComponent, FooterBodyComponent, FooterBottomComponent, FooterComponent, FooterSectionComponent, FooterSideComponent, FormFieldComponent, HeaderActionsComponent, HeaderComponent, HeaderContentComponent, HeaderLanguageComponent, HeaderLoginComponent, HeaderLogoutComponent, HeaderProfileComponent, HeaderRoleComponent, HideAtDirective, IconComponent, InfoButtonComponent, LANGUAGE_COOKIE_NAME, LANGUAGE_FALLBACK_VALUE, LabelComponent, LinkComponent, ListComponent, ModalComponent, ModalContentComponent, ModalFooterComponent, ModalHeaderComponent, NumberFieldComponent, PopoverComponent, PopoverContentComponent, PopoverTriggerDirective, RowComponent, SelectComponent, SelectOptionTemplateDirective, SelectValueTemplateDirective, SeparatorComponent, ShowAtDirective, SideNavComponent, SideNavDropdownComponent, SideNavDropdownGroupComponent, SideNavDropdownItemComponent, SideNavGroupTitleComponent, SideNavItemComponent, SideNavOverlayComponent, SideNavToggleComponent, SpecialOptionControls, SpinnerComponent, StatusBadgeComponent, TEDI_THEME_DEFAULT_TOKEN, TEDI_TRANSLATION_DEFAULT_TOKEN, THEME_CLASS_PREFIX, THEME_COOKIE_NAME, THEME_FALLBACK_VALUE, TOAST_DEFAULT_DURATION, TagComponent, TediTranslationPipe, TediTranslationService, TextComponent, TextFieldComponent, TextGroupComponent, TextGroupLabelComponent, TextGroupValueComponent, ThemeService, TimelineComponent, TimelineDescriptionComponent, TimelineItemComponent, TimelineTitleComponent, ToastComponent, ToastService, ToggleComponent, TooltipComponent, TooltipContentComponent, TooltipTriggerComponent, VerticalSpacingDirective, VerticalSpacingItemDirective, breakpointInput, generateUUID, provideTedi };
6882
7807
  //# sourceMappingURL=tedi-design-system-angular-tedi.mjs.map