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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/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 +1431 -497
  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/form-field/form-field-control.d.ts +3 -4
  11. package/tedi/components/form/form-field/form-field-control.d.ts.map +1 -1
  12. package/tedi/components/form/form-field/form-field.component.d.ts +8 -2
  13. package/tedi/components/form/form-field/form-field.component.d.ts.map +1 -1
  14. package/tedi/components/form/index.d.ts +2 -1
  15. package/tedi/components/form/index.d.ts.map +1 -1
  16. package/tedi/components/form/select/index.d.ts +3 -0
  17. package/tedi/components/form/select/index.d.ts.map +1 -0
  18. package/tedi/components/form/select/select-templates.directive.d.ts +69 -0
  19. package/tedi/components/form/select/select-templates.directive.d.ts.map +1 -0
  20. package/tedi/components/form/select/select.component.d.ts +238 -0
  21. package/tedi/components/form/select/select.component.d.ts.map +1 -0
  22. package/tedi/components/form/text-field/text-field.component.d.ts +5 -5
  23. package/tedi/components/form/text-field/text-field.component.d.ts.map +1 -1
  24. package/tedi/components/overlay/dropdown/dropdown-content/dropdown-content.component.d.ts +2 -2
  25. package/tedi/components/overlay/dropdown/dropdown-content/dropdown-content.component.d.ts.map +1 -1
  26. package/tedi/components/overlay/dropdown/dropdown-item/dropdown-item.component.d.ts +7 -5
  27. package/tedi/components/overlay/dropdown/dropdown-item/dropdown-item.component.d.ts.map +1 -1
  28. package/tedi/components/overlay/dropdown/dropdown-item-value/dropdown-item-value-label.component.d.ts +6 -0
  29. package/tedi/components/overlay/dropdown/dropdown-item-value/dropdown-item-value-label.component.d.ts.map +1 -0
  30. package/tedi/components/overlay/dropdown/dropdown-item-value/dropdown-item-value-meta.component.d.ts +6 -0
  31. package/tedi/components/overlay/dropdown/dropdown-item-value/dropdown-item-value-meta.component.d.ts.map +1 -0
  32. package/tedi/components/overlay/dropdown/dropdown-item-value/dropdown-item-value.component.d.ts +36 -0
  33. package/tedi/components/overlay/dropdown/dropdown-item-value/dropdown-item-value.component.d.ts.map +1 -0
  34. package/tedi/components/overlay/dropdown/dropdown-item-value/index.d.ts +4 -0
  35. package/tedi/components/overlay/dropdown/dropdown-item-value/index.d.ts.map +1 -0
  36. package/tedi/components/overlay/dropdown/dropdown.component.d.ts.map +1 -1
  37. package/tedi/components/overlay/dropdown/dropdown.tokens.d.ts +30 -0
  38. package/tedi/components/overlay/dropdown/dropdown.tokens.d.ts.map +1 -0
  39. package/tedi/components/overlay/dropdown/index.d.ts +2 -0
  40. package/tedi/components/overlay/dropdown/index.d.ts.map +1 -1
  41. package/tedi/services/translation/translations.d.ts +7 -0
  42. package/tedi/services/translation/translations.d.ts.map +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tedi-design-system/angular",
3
- "version": "6.3.0-rc.3",
3
+ "version": "6.3.0-rc.5",
4
4
  "type": "module",
5
5
  "main": "community.mjs",
6
6
  "module": "fesm2022/tedi-design-system-angular.mjs",
@@ -37,7 +37,7 @@ export declare class AccordionItemComponent implements OnInit {
37
37
  /**
38
38
  * Position of the expand action relative to the header content.
39
39
  */
40
- expandActionPosition: import("@angular/core").InputSignal<"end" | "start">;
40
+ expandActionPosition: import("@angular/core").InputSignal<"start" | "end">;
41
41
  /**
42
42
  * Whether the accordion item is expanded initially.
43
43
  * Does not control the expanded state after initialization.
@@ -48,7 +48,7 @@ export declare class AccordionItemComponent implements OnInit {
48
48
  /**
49
49
  * Position of the description relative to the title.
50
50
  */
51
- descriptionPosition: import("@angular/core").InputSignal<"end" | "start" | "both">;
51
+ descriptionPosition: import("@angular/core").InputSignal<"start" | "end" | "both">;
52
52
  /**
53
53
  * Enables the icon-card layout variant.
54
54
  */
@@ -12,11 +12,10 @@ export interface FormFieldControl<T = unknown> {
12
12
  * Whether the control is disabled.
13
13
  */
14
14
  disabled: Signal<boolean>;
15
- /**
16
- * Whether the control is currently in an invalid state.
17
- * Usually derived from Angular form validation state.
18
- */
15
+ /** Reactive invalid state (driven by FormField) */
19
16
  invalid: Signal<boolean>;
17
+ /** Called by FormField to update invalid state */
18
+ setInvalidState(isInvalid: boolean): void;
20
19
  /**
21
20
  * Optional method used by the form field clear button.
22
21
  * If implemented, the form field can trigger clearing the value.
@@ -1 +1 @@
1
- {"version":3,"file":"form-field-control.d.ts","sourceRoot":"","sources":["../../../../../tedi/components/form/form-field/form-field-control.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC,GAAG,OAAO;IAC3C;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACjB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1B;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAEzB;;;OAGG;IACH,UAAU,CAAC,IAAI,IAAI,CAAC;CACrB;AAED;;;GAGG;AACH,eAAO,MAAM,uBAAuB,2CAEnC,CAAC"}
1
+ {"version":3,"file":"form-field-control.d.ts","sourceRoot":"","sources":["../../../../../tedi/components/form/form-field/form-field-control.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC,GAAG,OAAO;IAC3C;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACjB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1B,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAEzB,kDAAkD;IAClD,eAAe,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1C;;;OAGG;IACH,UAAU,CAAC,IAAI,IAAI,CAAC;CACrB;AAED;;;GAGG;AACH,eAAO,MAAM,uBAAuB,2CAEnC,CAAC"}
@@ -1,6 +1,8 @@
1
+ import { AfterContentInit } from "@angular/core";
1
2
  import { FormFieldControl } from "./form-field-control";
2
3
  import { IconColor, IconSize, IconType, IconVariant } from "../../../components/base/icon/icon.component";
3
4
  import { FeedbackTextComponent } from "../feedback-text/feedback-text.component";
5
+ import { NgControl } from "@angular/forms";
4
6
  import * as i0 from "@angular/core";
5
7
  export type InputSize = "small" | "large" | "default";
6
8
  export type InputState = "valid" | "error" | "default";
@@ -12,7 +14,7 @@ export interface FormFieldIcon {
12
14
  type?: IconType;
13
15
  variant?: IconVariant;
14
16
  }
15
- export declare class FormFieldComponent {
17
+ export declare class FormFieldComponent implements AfterContentInit {
16
18
  /**
17
19
  * The size of the form field.
18
20
  * @default "default"
@@ -32,7 +34,11 @@ export declare class FormFieldComponent {
32
34
  */
33
35
  inputClass: import("@angular/core").InputSignal<string | null>;
34
36
  control?: FormFieldControl;
37
+ ngControl?: NgControl;
35
38
  feedback?: FeedbackTextComponent;
39
+ private readonly destroyRef;
40
+ ngAfterContentInit(): void;
41
+ private updateValidationState;
36
42
  readonly resolvedIcon: import("@angular/core").Signal<FormFieldIcon | undefined>;
37
43
  readonly validationState: import("@angular/core").Signal<ValidationState>;
38
44
  showClearButton: import("@angular/core").Signal<boolean>;
@@ -51,7 +57,7 @@ export declare class FormFieldComponent {
51
57
  }>;
52
58
  clear(): void;
53
59
  static ɵfac: i0.ɵɵFactoryDeclaration<FormFieldComponent, never>;
54
- static ɵcmp: i0.ɵɵComponentDeclaration<FormFieldComponent, "tedi-form-field", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "inputClass": { "alias": "inputClass"; "required": false; "isSignal": true; }; }, {}, ["control", "feedback"], ["label[tedi-label]", "input[tedi-text-field]", "tedi-feedback-text"], true, never>;
60
+ static ɵcmp: i0.ɵɵComponentDeclaration<FormFieldComponent, "tedi-form-field", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "inputClass": { "alias": "inputClass"; "required": false; "isSignal": true; }; }, {}, ["control", "ngControl", "feedback"], ["label[tedi-label]", "input[tedi-text-field]", "tedi-feedback-text"], true, never>;
55
61
  }
56
62
  export {};
57
63
  //# sourceMappingURL=form-field.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"form-field.component.d.ts","sourceRoot":"","sources":["../../../../../tedi/components/form/form-field/form-field.component.ts"],"names":[],"mappings":"AASA,OAAO,EACL,gBAAgB,EAEjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,SAAS,EAET,QAAQ,EACR,QAAQ,EACR,WAAW,EACZ,MAAM,8CAA8C,CAAC;AAItD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;;AAEjF,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;AACtD,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;AACvD,KAAK,eAAe,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAEvD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED,qBAkBa,kBAAkB;IAC7B;;;OAGG;IACH,IAAI,iDAA+B;IACnC;;OAEG;IACH,IAAI,0EAA+C;IACnD;;;OAGG;IACH,SAAS,+CAAyB;IAClC;;OAEG;IACH,UAAU,qDAA8B;IAGxC,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAG3B,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IAEjC,QAAQ,CAAC,YAAY,4DAKlB;IAEH,QAAQ,CAAC,eAAe,kDAQrB;IAEH,eAAe,0CAGZ;IAEH,QAAQ,CAAC,UAAU,0CAAqD;IAExE,QAAQ,CAAC,WAAW;;;;;;;;OAUjB;IAEH,QAAQ,CAAC,YAAY;;OAOlB;IAEH,KAAK;yCAvEM,kBAAkB;2CAAlB,kBAAkB;CA0E9B"}
1
+ {"version":3,"file":"form-field.component.d.ts","sourceRoot":"","sources":["../../../../../tedi/components/form/form-field/form-field.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,gBAAgB,EAGjB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,gBAAgB,EAEjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,SAAS,EAET,QAAQ,EACR,QAAQ,EACR,WAAW,EACZ,MAAM,8CAA8C,CAAC;AAItD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;;AAG3C,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;AACtD,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;AACvD,KAAK,eAAe,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAEvD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED,qBAkBa,kBAAmB,YAAW,gBAAgB;IACzD;;;OAGG;IACH,IAAI,iDAA+B;IACnC;;OAEG;IACH,IAAI,0EAA+C;IACnD;;;OAGG;IACH,SAAS,+CAAyB;IAClC;;OAEG;IACH,UAAU,qDAA8B;IAGxC,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAG3B,SAAS,CAAC,EAAE,SAAS,CAAC;IAGtB,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IAEjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IAEjD,kBAAkB;IAQlB,OAAO,CAAC,qBAAqB;IAS7B,QAAQ,CAAC,YAAY,4DAKlB;IAEH,QAAQ,CAAC,eAAe,kDAQrB;IAEH,eAAe,0CAGZ;IAEH,QAAQ,CAAC,UAAU,0CAAqD;IAExE,QAAQ,CAAC,WAAW;;;;;;;;OAUjB;IAEH,QAAQ,CAAC,YAAY;;OAOlB;IAEH,KAAK;yCA7FM,kBAAkB;2CAAlB,kBAAkB;CAgG9B"}
@@ -1,9 +1,10 @@
1
1
  export * from "./checkbox/checkbox.component";
2
- export * from "./date-picker/date-picker.component";
3
2
  export * from "./feedback-text/feedback-text.component";
4
3
  export * from "./label/label.component";
5
4
  export * from "./number-field/number-field.component";
5
+ export * from "./select";
6
6
  export * from "./toggle/toggle.component";
7
+ export * from "./date-picker/date-picker.component";
7
8
  export * from "./form-field/form-field.component";
8
9
  export * from "./text-field/text-field.component";
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../tedi/components/form/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,yBAAyB,CAAC;AACxC,cAAc,uCAAuC,CAAC;AACtD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../tedi/components/form/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yCAAyC,CAAC;AACxD,cAAc,yBAAyB,CAAC;AACxC,cAAc,uCAAuC,CAAC;AACtD,cAAc,UAAU,CAAC;AACzB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qCAAqC,CAAC;AACpD,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./select.component";
2
+ export * from "./select-templates.directive";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../tedi/components/form/select/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC"}
@@ -0,0 +1,69 @@
1
+ import { TemplateRef } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Context provided to custom option templates.
5
+ */
6
+ export interface SelectOptionContext<T = unknown> {
7
+ /** The option item data */
8
+ $implicit: T;
9
+ /** The option item data (explicit reference) */
10
+ item: T;
11
+ /** Index of the option in the list */
12
+ index: number;
13
+ /** Whether this option is currently selected */
14
+ selected: boolean;
15
+ /** Whether this option is disabled */
16
+ disabled: boolean;
17
+ }
18
+ /**
19
+ * Context provided to custom value templates (for displaying selected value in trigger).
20
+ */
21
+ export interface SelectValueContext<T = unknown> {
22
+ /** The selected item data */
23
+ $implicit: T;
24
+ /** The selected item data (explicit reference) */
25
+ item: T;
26
+ /** The label string for the selected item */
27
+ label: string;
28
+ }
29
+ /**
30
+ * Directive for custom option template rendering in the dropdown.
31
+ *
32
+ * @example
33
+ * ```html
34
+ * <tedi-select [options]="options">
35
+ * <ng-template tediSelectOption let-item>
36
+ * <div class="custom-option">
37
+ * <strong>{{ item.title }}</strong>
38
+ * <span>{{ item.description }}</span>
39
+ * </div>
40
+ * </ng-template>
41
+ * </tedi-select>
42
+ * ```
43
+ */
44
+ export declare class SelectOptionTemplateDirective<T = unknown> {
45
+ template: TemplateRef<SelectOptionContext<T>>;
46
+ static ngTemplateContextGuard<T>(_dir: SelectOptionTemplateDirective<T>, ctx: unknown): ctx is SelectOptionContext<T>;
47
+ static ɵfac: i0.ɵɵFactoryDeclaration<SelectOptionTemplateDirective<any>, never>;
48
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SelectOptionTemplateDirective<any>, "[tediSelectOption]", never, {}, {}, never, never, true, never>;
49
+ }
50
+ /**
51
+ * Directive for custom value template rendering (selected value display in trigger).
52
+ * Used for single-select to display custom content like colors, icons, etc.
53
+ *
54
+ * @example
55
+ * ```html
56
+ * <tedi-select [options]="colors" bindLabel="name" bindValue="id">
57
+ * <ng-template tediSelectValue let-item>
58
+ * <div class="color-swatch" [style.background]="item.color"></div>
59
+ * </ng-template>
60
+ * </tedi-select>
61
+ * ```
62
+ */
63
+ export declare class SelectValueTemplateDirective<T = unknown> {
64
+ template: TemplateRef<SelectValueContext<T>>;
65
+ static ngTemplateContextGuard<T>(_dir: SelectValueTemplateDirective<T>, ctx: unknown): ctx is SelectValueContext<T>;
66
+ static ɵfac: i0.ɵɵFactoryDeclaration<SelectValueTemplateDirective<any>, never>;
67
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SelectValueTemplateDirective<any>, "[tediSelectValue]", never, {}, {}, never, never, true, never>;
68
+ }
69
+ //# sourceMappingURL=select-templates.directive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-templates.directive.d.ts","sourceRoot":"","sources":["../../../../../tedi/components/form/select/select-templates.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,WAAW,EAAU,MAAM,eAAe,CAAC;;AAE/D;;GAEG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC,GAAG,OAAO;IAC9C,2BAA2B;IAC3B,SAAS,EAAE,CAAC,CAAC;IACb,gDAAgD;IAChD,IAAI,EAAE,CAAC,CAAC;IACR,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,QAAQ,EAAE,OAAO,CAAC;IAClB,sCAAsC;IACtC,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,OAAO;IAC7C,6BAA6B;IAC7B,SAAS,EAAE,CAAC,CAAC;IACb,kDAAkD;IAClD,IAAI,EAAE,CAAC,CAAC;IACR,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAIa,6BAA6B,CAAC,CAAC,GAAG,OAAO;IACpD,QAAQ,sCAA4D;IAEpE,MAAM,CAAC,sBAAsB,CAAC,CAAC,EAC7B,IAAI,EAAE,6BAA6B,CAAC,CAAC,CAAC,EACtC,GAAG,EAAE,OAAO,GACX,GAAG,IAAI,mBAAmB,CAAC,CAAC,CAAC;yCANrB,6BAA6B;2CAA7B,6BAA6B;CASzC;AAED;;;;;;;;;;;;GAYG;AACH,qBAIa,4BAA4B,CAAC,CAAC,GAAG,OAAO;IACnD,QAAQ,qCAA2D;IAEnE,MAAM,CAAC,sBAAsB,CAAC,CAAC,EAC7B,IAAI,EAAE,4BAA4B,CAAC,CAAC,CAAC,EACrC,GAAG,EAAE,OAAO,GACX,GAAG,IAAI,kBAAkB,CAAC,CAAC,CAAC;yCANpB,4BAA4B;2CAA5B,4BAA4B;CASxC"}
@@ -0,0 +1,238 @@
1
+ import { ConnectedPosition } from "@angular/cdk/overlay";
2
+ import { CdkListbox } from "@angular/cdk/listbox";
3
+ import { AfterContentChecked, AfterViewChecked, ElementRef } from "@angular/core";
4
+ import { ControlValueAccessor } from "@angular/forms";
5
+ import { ComponentInputs } from "../../../types";
6
+ import { FeedbackTextComponent } from "../feedback-text/feedback-text.component";
7
+ import { SelectOptionTemplateDirective, SelectValueTemplateDirective, SelectOptionContext, SelectValueContext } from "./select-templates.directive";
8
+ import { InputSize, InputState } from "../form-field/form-field.component";
9
+ import * as i0 from "@angular/core";
10
+ export type SelectInputSize = Exclude<InputSize, "large">;
11
+ export interface SelectOption<T = unknown> {
12
+ value: T;
13
+ label: string;
14
+ disabled?: boolean;
15
+ group?: string;
16
+ [key: string]: unknown;
17
+ }
18
+ export interface SelectOptionGroup<T = unknown> {
19
+ label: string;
20
+ options: SelectOption<T>[];
21
+ }
22
+ export type GroupByFn<T = unknown> = (item: T) => string | undefined;
23
+ export type CompareWithFn<T = unknown> = (a: T, b: T) => boolean;
24
+ export declare enum SpecialOptionControls {
25
+ SELECT_ALL = "\0SELECT_ALL",
26
+ SELECT_GROUP = "\0SELECT_GROUP_"
27
+ }
28
+ export declare class SelectComponent<T = unknown> implements AfterContentChecked, AfterViewChecked, ControlValueAccessor {
29
+ /**
30
+ * Unique identifier for the select input element.
31
+ * Used for label association and accessibility.
32
+ */
33
+ inputId: import("@angular/core").InputSignal<string>;
34
+ /**
35
+ * Label text displayed above the select.
36
+ */
37
+ label: import("@angular/core").InputSignal<string | undefined>;
38
+ /**
39
+ * Whether the field is required.
40
+ * @default false
41
+ */
42
+ required: import("@angular/core").InputSignal<boolean>;
43
+ /**
44
+ * Placeholder text shown when no value is selected.
45
+ * @default ""
46
+ */
47
+ placeholder: import("@angular/core").InputSignal<string>;
48
+ /**
49
+ * Visual state of the input.
50
+ * @default "default"
51
+ */
52
+ state: import("@angular/core").InputSignal<InputState>;
53
+ /**
54
+ * Size variant of the select.
55
+ * @default "default"
56
+ */
57
+ size: import("@angular/core").InputSignal<SelectInputSize>;
58
+ /**
59
+ * Whether to show a clear button when a value is selected.
60
+ * @default false
61
+ */
62
+ clearable: import("@angular/core").InputSignal<boolean>;
63
+ /**
64
+ * Element reference used to determine dropdown width.
65
+ * When null, dropdown width matches the host element.
66
+ */
67
+ dropdownWidthRef: import("@angular/core").InputSignal<ElementRef<any> | null | undefined>;
68
+ /**
69
+ * Configuration for the feedback text displayed below the select.
70
+ */
71
+ feedbackText: import("@angular/core").InputSignal<ComponentInputs<FeedbackTextComponent> | undefined>;
72
+ /**
73
+ * Array of options to display in the dropdown.
74
+ * Can be an array of objects or primitive values.
75
+ * @default []
76
+ */
77
+ options: import("@angular/core").InputSignal<T[]>;
78
+ /**
79
+ * Property name to use as the display label for object items.
80
+ * @default "label"
81
+ */
82
+ bindLabel: import("@angular/core").InputSignal<string>;
83
+ /**
84
+ * Property name to use as the value for object items.
85
+ * When undefined, the entire object is used as the value.
86
+ */
87
+ bindValue: import("@angular/core").InputSignal<string | undefined>;
88
+ /**
89
+ * Whether multiple items can be selected.
90
+ * @default false
91
+ */
92
+ allowMultiple: import("@angular/core").InputSignal<boolean>;
93
+ /**
94
+ * Property name or function used to group options.
95
+ * When a string, uses that property from the item.
96
+ * When a function, calls it with each item to determine the group.
97
+ */
98
+ groupBy: import("@angular/core").InputSignal<string | GroupByFn<T> | undefined>;
99
+ /**
100
+ * Whether to show a "Select All" option in multiselect mode.
101
+ * @default false
102
+ */
103
+ showSelectAll: import("@angular/core").InputSignal<boolean>;
104
+ /**
105
+ * Whether group headers are selectable in multiselect mode.
106
+ * Clicking a group header selects/deselects all options in that group.
107
+ * @default false
108
+ */
109
+ selectableGroups: import("@angular/core").InputSignal<boolean>;
110
+ /**
111
+ * Whether selected tags are individually removable in multiselect mode.
112
+ * @default false
113
+ */
114
+ isTagRemovable: import("@angular/core").InputSignal<boolean>;
115
+ /**
116
+ * Whether selected tags wrap to multiple rows in multiselect mode.
117
+ * When false, overflow tags are hidden and a counter is shown.
118
+ * @default false
119
+ */
120
+ multiRow: import("@angular/core").InputSignal<boolean>;
121
+ /**
122
+ * Function used to compare option values for equality.
123
+ * Used to determine which options are selected.
124
+ * @default (a, b) => a === b
125
+ */
126
+ compareWith: import("@angular/core").InputSignal<CompareWithFn<unknown>>;
127
+ /**
128
+ * Property name to check for disabled state on items.
129
+ * @default "disabled"
130
+ */
131
+ disabledKey: import("@angular/core").InputSignal<string>;
132
+ /**
133
+ * Text displayed when no options match the search term.
134
+ */
135
+ noOptionsMessage: import("@angular/core").InputSignal<string | undefined>;
136
+ /**
137
+ * Maximum height of the dropdown menu in pixels.
138
+ * When not set, the dropdown height is calculated based on available viewport space.
139
+ */
140
+ maxDropdownHeight: import("@angular/core").InputSignal<number | undefined>;
141
+ /**
142
+ * Layout type for the dropdown options.
143
+ * - `"menu"` (default): vertical list of options.
144
+ * - `"grid"`: swatch grid layout for use with custom option templates
145
+ * (e.g. color or icon pickers). Customizable via `--tedi-swatch-size`,
146
+ * `--tedi-swatch-gap`, and `--tedi-swatch-columns` CSS properties.
147
+ * @default "menu"
148
+ */
149
+ dropdownType: import("@angular/core").InputSignal<"menu" | "grid">;
150
+ /**
151
+ * Whether the select has a search input for filtering options.
152
+ * @default false
153
+ */
154
+ searchable: import("@angular/core").InputSignal<boolean>;
155
+ readonly SpecialOptionControls: typeof SpecialOptionControls;
156
+ readonly dropdownPositions: ConnectedPosition[];
157
+ listboxId: import("@angular/core").Signal<string>;
158
+ labelId: import("@angular/core").Signal<string>;
159
+ isOpen: import("@angular/core").WritableSignal<boolean>;
160
+ selectedValues: import("@angular/core").WritableSignal<unknown[]>;
161
+ disabled: import("@angular/core").WritableSignal<boolean>;
162
+ dropdownWidth: import("@angular/core").WritableSignal<number | null>;
163
+ dropdownMaxHeight: import("@angular/core").WritableSignal<number | null>;
164
+ visibleTagsCount: import("@angular/core").WritableSignal<number | null>;
165
+ searchTerm: import("@angular/core").WritableSignal<string>;
166
+ searchFocused: import("@angular/core").WritableSignal<boolean>;
167
+ hiddenTagsCount: import("@angular/core").Signal<number>;
168
+ listboxRef: import("@angular/core").Signal<ElementRef<any> | undefined>;
169
+ cdkListboxRef: import("@angular/core").Signal<CdkListbox<any> | undefined>;
170
+ triggerRef: import("@angular/core").Signal<ElementRef<any> | undefined>;
171
+ searchInputRef: import("@angular/core").Signal<ElementRef<any> | undefined>;
172
+ multiselectContainerRef: import("@angular/core").Signal<ElementRef<any> | undefined>;
173
+ tagRefs: import("@angular/core").Signal<readonly ElementRef<any>[]>;
174
+ hostRef: ElementRef<any>;
175
+ private ngZone;
176
+ optionTemplate: import("@angular/core").Signal<SelectOptionTemplateDirective<any> | undefined>;
177
+ valueTemplate: import("@angular/core").Signal<SelectValueTemplateDirective<any> | undefined>;
178
+ normalizedOptions: import("@angular/core").Signal<SelectOption<T>[]>;
179
+ filteredOptions: import("@angular/core").Signal<SelectOption<T>[]>;
180
+ optionGroups: import("@angular/core").Signal<SelectOptionGroup<T>[]>;
181
+ selectedOptions: import("@angular/core").Signal<SelectOption<T>[]>;
182
+ visibleSelectedValues: import("@angular/core").Signal<unknown[]>;
183
+ selectedLabels: import("@angular/core").Signal<string[]>;
184
+ showSingleSelectedValue: import("@angular/core").Signal<boolean>;
185
+ allOptionsSelected: import("@angular/core").Signal<boolean>;
186
+ ngAfterContentChecked(): void;
187
+ ngAfterViewChecked(): void;
188
+ onWindowResize(): void;
189
+ onDocumentClick(event: MouseEvent): void;
190
+ focusListboxWhenVisible: import("@angular/core").EffectRef;
191
+ constructor();
192
+ resetVisibleTagsOnSelectionChange: import("@angular/core").EffectRef;
193
+ toggleIsOpen(close?: boolean): void;
194
+ onSearchInput(event: Event): void;
195
+ onSearchFocus(): void;
196
+ onSearchBlur(): void;
197
+ onTriggerClick(): void;
198
+ onTriggerEnter(): void;
199
+ onSearchKeydown(event: KeyboardEvent): void;
200
+ private static readonly KEY_CODES;
201
+ private forwardToCdkListbox;
202
+ private openDropdown;
203
+ private calculateDropdownMaxHeight;
204
+ private closeDropdown;
205
+ handleValueChange(event: {
206
+ value: readonly unknown[];
207
+ }): void;
208
+ clear(event: Event): void;
209
+ deselect(event: Event, value: unknown): void;
210
+ isOptionSelected(optionValue: unknown): boolean;
211
+ getLabel(value: unknown): string;
212
+ /**
213
+ * Get the original item from the items array for a given option.
214
+ * Used for custom templates that need access to the full item data.
215
+ */
216
+ getOriginalItem(option: SelectOption<T>): T;
217
+ /** Create context object for custom option templates. */
218
+ getOptionContext(option: SelectOption<T>, index: number): SelectOptionContext<T>;
219
+ /** Create context object for custom value templates. */
220
+ getValueContext(option: SelectOption<T>): SelectValueContext<T>;
221
+ isGroupSelected(groupLabel: string): boolean;
222
+ isGroupIndeterminate(groupLabel: string): boolean;
223
+ private focusTrigger;
224
+ private getAvailableTagWidth;
225
+ private calculateVisibleTags;
226
+ private setDropdownWidth;
227
+ private toggleSelectAll;
228
+ private toggleGroupSelection;
229
+ onChange: (value: unknown) => void;
230
+ onTouched: () => void;
231
+ writeValue(value: unknown): void;
232
+ registerOnChange(fn: (value: unknown) => void): void;
233
+ registerOnTouched(fn: () => void): void;
234
+ setDisabledState(isDisabled: boolean): void;
235
+ static ɵfac: i0.ɵɵFactoryDeclaration<SelectComponent<any>, never>;
236
+ static ɵcmp: i0.ɵɵComponentDeclaration<SelectComponent<any>, "tedi-select", never, { "inputId": { "alias": "inputId"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "dropdownWidthRef": { "alias": "dropdownWidthRef"; "required": false; "isSignal": true; }; "feedbackText": { "alias": "feedbackText"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "bindLabel": { "alias": "bindLabel"; "required": false; "isSignal": true; }; "bindValue": { "alias": "bindValue"; "required": false; "isSignal": true; }; "allowMultiple": { "alias": "allowMultiple"; "required": false; "isSignal": true; }; "groupBy": { "alias": "groupBy"; "required": false; "isSignal": true; }; "showSelectAll": { "alias": "showSelectAll"; "required": false; "isSignal": true; }; "selectableGroups": { "alias": "selectableGroups"; "required": false; "isSignal": true; }; "isTagRemovable": { "alias": "isTagRemovable"; "required": false; "isSignal": true; }; "multiRow": { "alias": "multiRow"; "required": false; "isSignal": true; }; "compareWith": { "alias": "compareWith"; "required": false; "isSignal": true; }; "disabledKey": { "alias": "disabledKey"; "required": false; "isSignal": true; }; "noOptionsMessage": { "alias": "noOptionsMessage"; "required": false; "isSignal": true; }; "maxDropdownHeight": { "alias": "maxDropdownHeight"; "required": false; "isSignal": true; }; "dropdownType": { "alias": "dropdownType"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; }, {}, ["optionTemplate", "valueTemplate"], never, true, never>;
237
+ }
238
+ //# sourceMappingURL=select.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.component.d.ts","sourceRoot":"","sources":["../../../../../tedi/components/form/select/select.component.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,9 @@
1
1
  import { ElementRef } from "@angular/core";
2
- import { ControlValueAccessor, NgControl } from "@angular/forms";
2
+ import { ControlValueAccessor } from "@angular/forms";
3
3
  import { FormFieldControl } from "../form-field/form-field-control";
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class TextFieldComponent implements ControlValueAccessor, FormFieldControl {
6
6
  private el;
7
- private ngControl;
8
7
  /**
9
8
  * Value of the input field. Supports two-way binding, use with form controls.
10
9
  */
@@ -18,9 +17,10 @@ export declare class TextFieldComponent implements ControlValueAccessor, FormFie
18
17
  * Callback triggered when the clear button is clicked.
19
18
  */
20
19
  readonly clear: import("@angular/core").OutputEmitterRef<void>;
21
- constructor(el: ElementRef<HTMLInputElement>, ngControl: NgControl | null);
20
+ constructor(el: ElementRef<HTMLInputElement>);
22
21
  readonly disabled: import("@angular/core").Signal<boolean>;
23
- readonly invalid: import("@angular/core").Signal<boolean>;
22
+ readonly invalid: import("@angular/core").WritableSignal<boolean>;
23
+ setInvalidState(isInvalid: boolean): void;
24
24
  private formDisabled;
25
25
  private onChange;
26
26
  private onTouched;
@@ -32,7 +32,7 @@ export declare class TextFieldComponent implements ControlValueAccessor, FormFie
32
32
  handleInputChange(event: Event): void;
33
33
  handleBlur(): void;
34
34
  clearField(): void;
35
- static ɵfac: i0.ɵɵFactoryDeclaration<TextFieldComponent, [null, { optional: true; self: true; }]>;
35
+ static ɵfac: i0.ɵɵFactoryDeclaration<TextFieldComponent, never>;
36
36
  static ɵcmp: i0.ɵɵComponentDeclaration<TextFieldComponent, "input[tedi-text-field]", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "arrowsHidden": { "alias": "arrowsHidden"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "clear": "clear"; }, never, never, true, never>;
37
37
  }
38
38
  //# sourceMappingURL=text-field.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"text-field.component.d.ts","sourceRoot":"","sources":["../../../../../tedi/components/form/text-field/text-field.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,UAAU,EAGX,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,oBAAoB,EAEpB,SAAS,EACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gBAAgB,EAEjB,MAAM,kCAAkC,CAAC;;AAE1C,qBA0Ba,kBACX,YAAW,oBAAoB,EAAE,gBAAgB;IAiB/C,OAAO,CAAC,EAAE;IACU,OAAO,CAAC,SAAS;IAhBvC;;OAEG;IACH,KAAK,8CAAqB;IAC1B;;;OAGG;IACH,YAAY,+CAAwB;IACpC;;OAEG;IACH,QAAQ,CAAC,KAAK,iDAAkB;gBAGtB,EAAE,EAAE,UAAU,CAAC,gBAAgB,CAAC,EACZ,SAAS,EAAE,SAAS,GAAG,IAAI;IAOzD,QAAQ,CAAC,QAAQ,0CAEf;IACF,QAAQ,CAAC,OAAO,0CAGb;IAEH,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,SAAS,CAAwB;IAEzC,OAAO,CAAC,QAAQ;IAKhB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAItC,gBAAgB,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAInD,iBAAiB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAIvC,gBAAgB,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;IAK3C,iBAAiB,CAAC,KAAK,EAAE,KAAK;IAQ9B,UAAU;IAIV,UAAU;yCAxEC,kBAAkB;2CAAlB,kBAAkB;CAgF9B"}
1
+ {"version":3,"file":"text-field.component.d.ts","sourceRoot":"","sources":["../../../../../tedi/components/form/text-field/text-field.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,UAAU,EACX,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,oBAAoB,EAAqB,MAAM,gBAAgB,CAAC;AACzE,OAAO,EACL,gBAAgB,EAEjB,MAAM,kCAAkC,CAAC;;AAE1C,qBA0Ba,kBACX,YAAW,oBAAoB,EAAE,gBAAgB;IAgBrC,OAAO,CAAC,EAAE;IAdtB;;OAEG;IACH,KAAK,8CAAqB;IAC1B;;;OAGG;IACH,YAAY,+CAAwB;IACpC;;OAEG;IACH,QAAQ,CAAC,KAAK,iDAAkB;gBAEZ,EAAE,EAAE,UAAU,CAAC,gBAAgB,CAAC;IAEpD,QAAQ,CAAC,QAAQ,0CAEf;IAEF,QAAQ,CAAC,OAAO,kDAAiB;IAEjC,eAAe,CAAC,SAAS,EAAE,OAAO;IAIlC,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,SAAS,CAAwB;IAEzC,OAAO,CAAC,QAAQ;IAKhB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAItC,gBAAgB,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAInD,iBAAiB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAIvC,gBAAgB,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;IAK3C,iBAAiB,CAAC,KAAK,EAAE,KAAK;IAQ9B,UAAU;IAIV,UAAU;yCAnEC,kBAAkB;2CAAlB,kBAAkB;CA2E9B"}
@@ -1,5 +1,4 @@
1
1
  import { DropdownItemComponent } from "../dropdown-item/dropdown-item.component";
2
- import { DropdownComponent } from "../dropdown.component";
3
2
  import * as i0 from "@angular/core";
4
3
  export type DropdownRole = "menu" | "listbox";
5
4
  export declare class DropdownContentComponent {
@@ -8,7 +7,8 @@ export declare class DropdownContentComponent {
8
7
  * @default menu
9
8
  */
10
9
  readonly dropdownRole: import("@angular/core").InputSignal<DropdownRole>;
11
- readonly dropdown: DropdownComponent;
10
+ private readonly dropdownApi;
11
+ readonly containerId: import("@angular/core").Signal<string>;
12
12
  readonly items: import("@angular/core").Signal<readonly DropdownItemComponent[]>;
13
13
  static ɵfac: i0.ɵɵFactoryDeclaration<DropdownContentComponent, never>;
14
14
  static ɵcmp: i0.ɵɵComponentDeclaration<DropdownContentComponent, "tedi-dropdown-content", never, { "dropdownRole": { "alias": "dropdownRole"; "required": false; "isSignal": true; }; }, {}, ["items"], ["*", "li[tedi-dropdown-item]"], true, never>;
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-content.component.d.ts","sourceRoot":"","sources":["../../../../../../tedi/components/overlay/dropdown/dropdown-content/dropdown-content.component.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;;AAE1D,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,CAAC;AAE9C,qBAYa,wBAAwB;IACnC;;;OAGG;IACH,QAAQ,CAAC,YAAY,oDAA+B;IAEpD,QAAQ,CAAC,QAAQ,oBAA6B;IAC9C,QAAQ,CAAC,KAAK,mEAA0C;yCAR7C,wBAAwB;2CAAxB,wBAAwB;CASpC"}
1
+ {"version":3,"file":"dropdown-content.component.d.ts","sourceRoot":"","sources":["../../../../../../tedi/components/overlay/dropdown/dropdown-content/dropdown-content.component.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;;AAGjF,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,CAAC;AAE9C,qBAkBa,wBAAwB;IACnC;;;OAGG;IACH,QAAQ,CAAC,YAAY,oDAA+B;IAEpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwB;IACpD,QAAQ,CAAC,WAAW,yCAAkD;IACtE,QAAQ,CAAC,KAAK,mEAA0C;yCAT7C,wBAAwB;2CAAxB,wBAAwB;CAUpC"}
@@ -1,6 +1,6 @@
1
1
  import { ElementRef } from "@angular/core";
2
- import { DropdownComponent } from "../dropdown.component";
3
- import { DropdownContentComponent } from "../dropdown-content/dropdown-content.component";
2
+ import { DropdownApi, DropdownContentApi } from "../dropdown.tokens";
3
+ import { DropdownItemValueComponent } from "../dropdown-item-value/dropdown-item-value.component";
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class DropdownItemComponent {
6
6
  /** Item value */
@@ -8,14 +8,16 @@ export declare class DropdownItemComponent {
8
8
  /** Is item disabled? */
9
9
  readonly disabled: import("@angular/core").InputSignal<boolean>;
10
10
  readonly host: ElementRef<HTMLLIElement>;
11
- readonly dropdown: DropdownComponent;
12
- readonly dropdownContent: DropdownContentComponent;
11
+ readonly dropdown: DropdownApi;
12
+ readonly dropdownContent: DropdownContentApi;
13
+ /** Check if custom dropdown-item-value is provided */
14
+ readonly customItemValue: import("@angular/core").Signal<DropdownItemValueComponent | undefined>;
13
15
  isSelected(): boolean;
14
16
  focus(): void;
15
17
  onClick(): void;
16
18
  onKeydown(event: KeyboardEvent): void;
17
19
  private onItemSelect;
18
20
  static ɵfac: i0.ɵɵFactoryDeclaration<DropdownItemComponent, never>;
19
- static ɵcmp: i0.ɵɵComponentDeclaration<DropdownItemComponent, "li[tedi-dropdown-item]", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
21
+ static ɵcmp: i0.ɵɵComponentDeclaration<DropdownItemComponent, "li[tedi-dropdown-item]", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, ["customItemValue"], ["tedi-dropdown-item-value", "*"], true, never>;
20
22
  }
21
23
  //# sourceMappingURL=dropdown-item.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-item.component.d.ts","sourceRoot":"","sources":["../../../../../../tedi/components/overlay/dropdown/dropdown-item/dropdown-item.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,UAAU,EAKX,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;;AAE1F,qBAiBa,qBAAqB;IAChC,iBAAiB;IACjB,QAAQ,CAAC,KAAK,0DAAmB;IAEjC,wBAAwB;IACxB,QAAQ,CAAC,QAAQ,+CAAgB;IAEjC,QAAQ,CAAC,IAAI,4BAAiD;IAC9D,QAAQ,CAAC,QAAQ,oBAA6B;IAC9C,QAAQ,CAAC,eAAe,2BAAoC;IAE5D,UAAU;IAIV,KAAK;IAKL,OAAO;IAOP,SAAS,CAAC,KAAK,EAAE,aAAa;IA2C9B,OAAO,CAAC,YAAY;yCAtET,qBAAqB;2CAArB,qBAAqB;CA8EjC"}
1
+ {"version":3,"file":"dropdown-item.component.d.ts","sourceRoot":"","sources":["../../../../../../tedi/components/overlay/dropdown/dropdown-item/dropdown-item.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,UAAU,EAKX,MAAM,eAAe,CAAC;AACvB,OAAO,EAGL,WAAW,EACX,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,0BAA0B,EAAE,MAAM,sDAAsD,CAAC;;AAGlG,qBAkBa,qBAAqB;IAChC,iBAAiB;IACjB,QAAQ,CAAC,KAAK,0DAAmB;IAEjC,wBAAwB;IACxB,QAAQ,CAAC,QAAQ,+CAAgB;IAEjC,QAAQ,CAAC,IAAI,4BAAiD;IAC9D,QAAQ,CAAC,QAAQ,cAAqC;IACtD,QAAQ,CAAC,eAAe,qBAAoD;IAE5E,sDAAsD;IACtD,QAAQ,CAAC,eAAe,yEAA4C;IAEpE,UAAU;IAIV,KAAK;IAKL,OAAO;IAOP,SAAS,CAAC,KAAK,EAAE,aAAa;IA2C9B,OAAO,CAAC,YAAY;yCAzET,qBAAqB;2CAArB,qBAAqB;CAiFjC"}
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class DropdownItemValueLabelComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<DropdownItemValueLabelComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<DropdownItemValueLabelComponent, "tedi-dropdown-item-value-label", never, {}, {}, never, ["*"], true, never>;
5
+ }
6
+ //# sourceMappingURL=dropdown-item-value-label.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-item-value-label.component.d.ts","sourceRoot":"","sources":["../../../../../../tedi/components/overlay/dropdown/dropdown-item-value/dropdown-item-value-label.component.ts"],"names":[],"mappings":";AAMA,qBAUa,+BAA+B;yCAA/B,+BAA+B;2CAA/B,+BAA+B;CAAG"}
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class DropdownItemValueMetaComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<DropdownItemValueMetaComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<DropdownItemValueMetaComponent, "tedi-dropdown-item-value-meta", never, {}, {}, never, ["*"], true, never>;
5
+ }
6
+ //# sourceMappingURL=dropdown-item-value-meta.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-item-value-meta.component.d.ts","sourceRoot":"","sources":["../../../../../../tedi/components/overlay/dropdown/dropdown-item-value/dropdown-item-value-meta.component.ts"],"names":[],"mappings":";AAMA,qBAUa,8BAA8B;yCAA9B,8BAA8B;2CAA9B,8BAA8B;CAAG"}
@@ -0,0 +1,36 @@
1
+ import * as i0 from "@angular/core";
2
+ export type DropdownItemValueType = "default" | "checkbox" | "radio";
3
+ export type DropdownItemValueLayout = "horizontal" | "vertical";
4
+ export declare class DropdownItemValueComponent {
5
+ /**
6
+ * Type of item value - controls selection indicator
7
+ * - 'default': No selection indicator
8
+ * - 'checkbox': Shows checkbox (for multiselect)
9
+ * - 'radio': Shows radio button (for single select listbox)
10
+ * @default 'default'
11
+ */
12
+ readonly type: import("@angular/core").InputSignal<DropdownItemValueType>;
13
+ /**
14
+ * Layout: 'horizontal' (side-by-side) or 'vertical' (stacked)
15
+ * @default 'horizontal'
16
+ */
17
+ readonly layout: import("@angular/core").InputSignal<DropdownItemValueLayout>;
18
+ /**
19
+ * Whether the item is selected (controls checkbox/radio state)
20
+ * @default false
21
+ */
22
+ readonly selected: import("@angular/core").InputSignal<boolean>;
23
+ /**
24
+ * Whether the checkbox is in indeterminate state
25
+ * @default false
26
+ */
27
+ readonly indeterminate: import("@angular/core").InputSignal<boolean>;
28
+ /**
29
+ * Whether the item is disabled
30
+ * @default false
31
+ */
32
+ readonly disabled: import("@angular/core").InputSignal<boolean>;
33
+ static ɵfac: i0.ɵɵFactoryDeclaration<DropdownItemValueComponent, never>;
34
+ static ɵcmp: i0.ɵɵComponentDeclaration<DropdownItemValueComponent, "tedi-dropdown-item-value", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, ["tedi-icon, [tediIcon]", "tedi-dropdown-item-value-label", "tedi-dropdown-item-value-meta", "*"], true, never>;
35
+ }
36
+ //# sourceMappingURL=dropdown-item-value.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-item-value.component.d.ts","sourceRoot":"","sources":["../../../../../../tedi/components/overlay/dropdown/dropdown-item-value/dropdown-item-value.component.ts"],"names":[],"mappings":";AAQA,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;AACrE,MAAM,MAAM,uBAAuB,GAAG,YAAY,GAAG,UAAU,CAAC;AAEhE,qBAgBa,0BAA0B;IACrC;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,6DAA2C;IAExD;;;OAGG;IACH,QAAQ,CAAC,MAAM,+DAAgD;IAE/D;;;OAGG;IACH,QAAQ,CAAC,QAAQ,+CAAyB;IAE1C;;;OAGG;IACH,QAAQ,CAAC,aAAa,+CAAyB;IAE/C;;;OAGG;IACH,QAAQ,CAAC,QAAQ,+CAAyB;yCAhC/B,0BAA0B;2CAA1B,0BAA0B;CAiCtC"}