@tedi-design-system/angular 6.2.1 → 6.3.0-rc.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/README.md +12 -0
  2. package/community/components/cards/accordion/accordion-item/accordion-item.component.d.ts +4 -2
  3. package/community/components/cards/accordion/accordion-item/accordion-item.component.d.ts.map +1 -1
  4. package/community/components/cards/accordion/accordion-item-content/accordion-item-content.component.d.ts +1 -0
  5. package/community/components/cards/accordion/accordion-item-content/accordion-item-content.component.d.ts.map +1 -1
  6. package/community/components/cards/accordion/accordion-item-header/accordion-item-header.component.d.ts +9 -1
  7. package/community/components/cards/accordion/accordion-item-header/accordion-item-header.component.d.ts.map +1 -1
  8. package/community/components/form/checkbox/checkbox/checkbox.component.d.ts +3 -0
  9. package/community/components/form/checkbox/checkbox/checkbox.component.d.ts.map +1 -1
  10. package/community/components/form/checkbox/checkbox-card-group/checkbox-card-group.component.d.ts +3 -0
  11. package/community/components/form/checkbox/checkbox-card-group/checkbox-card-group.component.d.ts.map +1 -1
  12. package/community/components/form/checkbox/checkbox-group/checkbox-group.component.d.ts +3 -0
  13. package/community/components/form/checkbox/checkbox-group/checkbox-group.component.d.ts.map +1 -1
  14. package/community/components/form/radio/radio/radio.component.d.ts +3 -0
  15. package/community/components/form/radio/radio/radio.component.d.ts.map +1 -1
  16. package/community/components/form/radio/radio-card-group/radio-card-group.component.d.ts +3 -0
  17. package/community/components/form/radio/radio-card-group/radio-card-group.component.d.ts.map +1 -1
  18. package/community/components/form/radio/radio-group/radio-group.component.d.ts +3 -0
  19. package/community/components/form/radio/radio-group/radio-group.component.d.ts.map +1 -1
  20. package/community/components/form/select/select.component.d.ts +3 -0
  21. package/community/components/form/select/select.component.d.ts.map +1 -1
  22. package/fesm2022/tedi-design-system-angular-community.mjs +68 -31
  23. package/fesm2022/tedi-design-system-angular-community.mjs.map +1 -1
  24. package/fesm2022/tedi-design-system-angular-tedi.mjs +1578 -227
  25. package/fesm2022/tedi-design-system-angular-tedi.mjs.map +1 -1
  26. package/index.css +1 -1
  27. package/package.json +2 -2
  28. package/tedi/components/base/icon/icon.component.d.ts +1 -1
  29. package/tedi/components/base/icon/icon.component.d.ts.map +1 -1
  30. package/tedi/components/form/checkbox-card/checkbox-card.component.d.ts +18 -0
  31. package/tedi/components/form/checkbox-card/checkbox-card.component.d.ts.map +1 -0
  32. package/tedi/components/form/checkbox-card-group/checkbox-card-group.component.d.ts +6 -0
  33. package/tedi/components/form/checkbox-card-group/checkbox-card-group.component.d.ts.map +1 -0
  34. package/tedi/components/form/checkbox-group/checkbox-group.component.d.ts +16 -0
  35. package/tedi/components/form/checkbox-group/checkbox-group.component.d.ts.map +1 -0
  36. package/tedi/components/form/form-field/form-field-control.d.ts +3 -4
  37. package/tedi/components/form/form-field/form-field-control.d.ts.map +1 -1
  38. package/tedi/components/form/form-field/form-field.component.d.ts +8 -2
  39. package/tedi/components/form/form-field/form-field.component.d.ts.map +1 -1
  40. package/tedi/components/form/index.d.ts +9 -0
  41. package/tedi/components/form/index.d.ts.map +1 -1
  42. package/tedi/components/form/radio/radio.component.d.ts +17 -0
  43. package/tedi/components/form/radio/radio.component.d.ts.map +1 -0
  44. package/tedi/components/form/radio-card/radio-card.component.d.ts +23 -0
  45. package/tedi/components/form/radio-card/radio-card.component.d.ts.map +1 -0
  46. package/tedi/components/form/radio-card-group/radio-card-group.component.d.ts +6 -0
  47. package/tedi/components/form/radio-card-group/radio-card-group.component.d.ts.map +1 -0
  48. package/tedi/components/form/radio-group/radio-group.component.d.ts +16 -0
  49. package/tedi/components/form/radio-group/radio-group.component.d.ts.map +1 -0
  50. package/tedi/components/form/select/index.d.ts +3 -0
  51. package/tedi/components/form/select/index.d.ts.map +1 -0
  52. package/tedi/components/form/select/select-templates.directive.d.ts +69 -0
  53. package/tedi/components/form/select/select-templates.directive.d.ts.map +1 -0
  54. package/tedi/components/form/select/select.component.d.ts +238 -0
  55. package/tedi/components/form/select/select.component.d.ts.map +1 -0
  56. package/tedi/components/form/text-field/text-field.component.d.ts +5 -5
  57. package/tedi/components/form/text-field/text-field.component.d.ts.map +1 -1
  58. package/tedi/components/helpers/index.d.ts +1 -0
  59. package/tedi/components/helpers/index.d.ts.map +1 -1
  60. package/tedi/components/helpers/scroll-fade/index.d.ts +3 -0
  61. package/tedi/components/helpers/scroll-fade/index.d.ts.map +1 -0
  62. package/tedi/components/helpers/scroll-fade/scroll-fade.component.d.ts +27 -0
  63. package/tedi/components/helpers/scroll-fade/scroll-fade.component.d.ts.map +1 -0
  64. package/tedi/components/overlay/dropdown/dropdown-content/dropdown-content.component.d.ts +2 -2
  65. package/tedi/components/overlay/dropdown/dropdown-content/dropdown-content.component.d.ts.map +1 -1
  66. package/tedi/components/overlay/dropdown/dropdown-item/dropdown-item.component.d.ts +7 -5
  67. package/tedi/components/overlay/dropdown/dropdown-item/dropdown-item.component.d.ts.map +1 -1
  68. package/tedi/components/overlay/dropdown/dropdown-item-value/dropdown-item-value-label.component.d.ts +6 -0
  69. package/tedi/components/overlay/dropdown/dropdown-item-value/dropdown-item-value-label.component.d.ts.map +1 -0
  70. package/tedi/components/overlay/dropdown/dropdown-item-value/dropdown-item-value-meta.component.d.ts +6 -0
  71. package/tedi/components/overlay/dropdown/dropdown-item-value/dropdown-item-value-meta.component.d.ts.map +1 -0
  72. package/tedi/components/overlay/dropdown/dropdown-item-value/dropdown-item-value.component.d.ts +36 -0
  73. package/tedi/components/overlay/dropdown/dropdown-item-value/dropdown-item-value.component.d.ts.map +1 -0
  74. package/tedi/components/overlay/dropdown/dropdown-item-value/index.d.ts +4 -0
  75. package/tedi/components/overlay/dropdown/dropdown-item-value/index.d.ts.map +1 -0
  76. package/tedi/components/overlay/dropdown/dropdown.component.d.ts.map +1 -1
  77. package/tedi/components/overlay/dropdown/dropdown.tokens.d.ts +30 -0
  78. package/tedi/components/overlay/dropdown/dropdown.tokens.d.ts.map +1 -0
  79. package/tedi/components/overlay/dropdown/index.d.ts +2 -0
  80. package/tedi/components/overlay/dropdown/index.d.ts.map +1 -1
  81. package/tedi/components/overlay/modal/index.d.ts +3 -0
  82. package/tedi/components/overlay/modal/index.d.ts.map +1 -1
  83. package/tedi/components/overlay/modal/modal-content/modal-content.component.d.ts.map +1 -1
  84. package/tedi/components/overlay/modal/modal-footer/modal-footer.component.d.ts.map +1 -1
  85. package/tedi/components/overlay/modal/modal-header/modal-header.component.d.ts +4 -1
  86. package/tedi/components/overlay/modal/modal-header/modal-header.component.d.ts.map +1 -1
  87. package/tedi/components/overlay/modal/modal-ref.d.ts +21 -0
  88. package/tedi/components/overlay/modal/modal-ref.d.ts.map +1 -0
  89. package/tedi/components/overlay/modal/modal.component.d.ts +25 -5
  90. package/tedi/components/overlay/modal/modal.component.d.ts.map +1 -1
  91. package/tedi/components/overlay/modal/modal.service.d.ts +35 -0
  92. package/tedi/components/overlay/modal/modal.service.d.ts.map +1 -0
  93. package/tedi/components/overlay/modal/modal.types.d.ts +36 -0
  94. package/tedi/components/overlay/modal/modal.types.d.ts.map +1 -0
  95. package/tedi/services/translation/translations.d.ts +7 -0
  96. package/tedi/services/translation/translations.d.ts.map +1 -1
  97. package/fonts/SpaceGrotesk-Light.woff +0 -0
  98. package/fonts/SpaceGrotesk-Light.woff2 +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tedi-design-system/angular",
3
- "version": "6.2.1",
3
+ "version": "6.3.0-rc.10",
4
4
  "type": "module",
5
5
  "main": "community.mjs",
6
6
  "module": "fesm2022/tedi-design-system-angular.mjs",
@@ -34,7 +34,7 @@
34
34
  "ngx-float-ui": "^19.0.1 || ^20.0.0 || ^21.0.0"
35
35
  },
36
36
  "dependencies": {
37
- "@tedi-design-system/core": "^3.3.0",
37
+ "@tedi-design-system/core": "^6.0.0",
38
38
  "tslib": "^2.3.0"
39
39
  },
40
40
  "commitlint": {
@@ -2,7 +2,7 @@ import * as i0 from "@angular/core";
2
2
  export type IconSize = 8 | 12 | 16 | 18 | 24 | 36 | 48 | "inherit";
3
3
  export type IconVariant = "filled" | "outlined";
4
4
  export type IconType = "outlined" | "sharp" | "rounded";
5
- export type IconColor = "primary" | "secondary" | "tertiary" | "brand" | "brand-dark" | "success" | "warning" | "warning-dark" | "danger" | "white";
5
+ export type IconColor = "primary" | "secondary" | "tertiary" | "brand" | "brand-dark" | "success" | "warning" | "warning-dark" | "danger" | "white" | "inherit";
6
6
  export type IconBackgroundColor = "primary" | "secondary" | "brand-primary" | "brand-secondary";
7
7
  export declare class IconComponent {
8
8
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"icon.component.d.ts","sourceRoot":"","sources":["../../../../../tedi/components/base/icon/icon.component.ts"],"names":[],"mappings":";AAUA,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC;AACnE,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;AAChD,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;AACxD,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,WAAW,GACX,UAAU,GACV,OAAO,GACP,YAAY,GACZ,SAAS,GACT,SAAS,GACT,cAAc,GACd,QAAQ,GACR,OAAO,CAAC;AACZ,MAAM,MAAM,mBAAmB,GAC3B,SAAS,GACT,WAAW,GACX,eAAe,GACf,iBAAiB,CAAC;AAEtB,qBAca,aAAa;IACxB;;;OAGG;IACH,IAAI,8CAA4B;IAChC;;;OAGG;IACH,IAAI,gDAAuB;IAC3B;;;OAGG;IACH,KAAK,iDAA+B;IACpC;;OAEG;IACH,UAAU,uEAAgC;IAC1C;;;OAGG;IACH,OAAO,mDAAkC;IACzC;;;;OAIG;IACH,IAAI,gDAA+B;IACnC;;;OAGG;IACH,KAAK,0DAAmB;IAExB,OAAO,yCA6BJ;yCAlEQ,aAAa;2CAAb,aAAa;CAmEzB"}
1
+ {"version":3,"file":"icon.component.d.ts","sourceRoot":"","sources":["../../../../../tedi/components/base/icon/icon.component.ts"],"names":[],"mappings":";AAUA,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC;AACnE,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;AAChD,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;AACxD,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,WAAW,GACX,UAAU,GACV,OAAO,GACP,YAAY,GACZ,SAAS,GACT,SAAS,GACT,cAAc,GACd,QAAQ,GACR,OAAO,GACP,SAAS,CAAC;AACd,MAAM,MAAM,mBAAmB,GAC3B,SAAS,GACT,WAAW,GACX,eAAe,GACf,iBAAiB,CAAC;AAEtB,qBAca,aAAa;IACxB;;;OAGG;IACH,IAAI,8CAA4B;IAChC;;;OAGG;IACH,IAAI,gDAAuB;IAC3B;;;OAGG;IACH,KAAK,iDAA+B;IACpC;;OAEG;IACH,UAAU,uEAAgC;IAC1C;;;OAGG;IACH,OAAO,mDAAkC;IACzC;;;;OAIG;IACH,IAAI,gDAA+B;IACnC;;;OAGG;IACH,KAAK,0DAAmB;IAExB,OAAO,yCA6BJ;yCAlEQ,aAAa;2CAAb,aAAa;CAmEzB"}
@@ -0,0 +1,18 @@
1
+ import * as i0 from "@angular/core";
2
+ export type CheckboxCardVariant = "primary" | "secondary";
3
+ export declare class CheckboxCardComponent {
4
+ /**
5
+ * Visual variant of the card.
6
+ * @default primary
7
+ */
8
+ readonly variant: import("@angular/core").InputSignal<CheckboxCardVariant>;
9
+ /**
10
+ * Whether to show the checkbox indicator.
11
+ * When false, the checkbox is visually hidden but remains functional.
12
+ * @default true
13
+ */
14
+ readonly showIndicator: import("@angular/core").InputSignal<boolean>;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxCardComponent, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxCardComponent, "label[tedi-checkbox-card]", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "showIndicator": { "alias": "showIndicator"; "required": false; "isSignal": true; }; }, {}, never, ["*", "tedi-feedback-text"], true, never>;
17
+ }
18
+ //# sourceMappingURL=checkbox-card.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox-card.component.d.ts","sourceRoot":"","sources":["../../../../../tedi/components/form/checkbox-card/checkbox-card.component.ts"],"names":[],"mappings":";AAOA,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,WAAW,CAAC;AAE1D,qBAca,qBAAqB;IAChC;;;OAGG;IACH,QAAQ,CAAC,OAAO,2DAAyC;IAEzD;;;;OAIG;IACH,QAAQ,CAAC,aAAa,+CAAwB;yCAZnC,qBAAqB;2CAArB,qBAAqB;CAajC"}
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class CheckboxCardGroupComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxCardGroupComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxCardGroupComponent, "tedi-checkbox-card-group", never, {}, {}, never, ["*"], true, never>;
5
+ }
6
+ //# sourceMappingURL=checkbox-card-group.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox-card-group.component.d.ts","sourceRoot":"","sources":["../../../../../tedi/components/form/checkbox-card-group/checkbox-card-group.component.ts"],"names":[],"mappings":";AAMA,qBAWa,0BAA0B;yCAA1B,0BAA0B;2CAA1B,0BAA0B;CAAG"}
@@ -0,0 +1,16 @@
1
+ import * as i0 from "@angular/core";
2
+ export type CheckboxGroupDirection = "horizontal" | "vertical";
3
+ export declare class CheckboxGroupComponent {
4
+ /**
5
+ * Label text displayed above the checkbox group.
6
+ */
7
+ readonly label: import("@angular/core").InputSignal<string | undefined>;
8
+ /**
9
+ * Layout direction of the checkboxes.
10
+ * @default horizontal
11
+ */
12
+ readonly direction: import("@angular/core").InputSignal<CheckboxGroupDirection>;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxGroupComponent, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxGroupComponent, "tedi-checkbox-group", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; }, {}, never, ["*", "tedi-feedback-text"], true, never>;
15
+ }
16
+ //# sourceMappingURL=checkbox-group.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox-group.component.d.ts","sourceRoot":"","sources":["../../../../../tedi/components/form/checkbox-group/checkbox-group.component.ts"],"names":[],"mappings":";AAQA,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG,UAAU,CAAC;AAE/D,qBAYa,sBAAsB;IACjC;;OAEG;IACH,QAAQ,CAAC,KAAK,0DAAmB;IACjC;;;OAGG;IACH,QAAQ,CAAC,SAAS,8DAA+C;yCATtD,sBAAsB;2CAAtB,sBAAsB;CAUlC"}
@@ -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,18 @@
1
1
  export * from "./checkbox/checkbox.component";
2
+ export * from "./checkbox-card/checkbox-card.component";
3
+ export * from "./checkbox-group/checkbox-group.component";
4
+ export * from "./checkbox-card-group/checkbox-card-group.component";
5
+ export * from "./radio/radio.component";
6
+ export * from "./radio-card/radio-card.component";
7
+ export * from "./radio-group/radio-group.component";
8
+ export * from "./radio-card-group/radio-card-group.component";
2
9
  export * from "./date-picker/date-picker.component";
3
10
  export * from "./feedback-text/feedback-text.component";
4
11
  export * from "./label/label.component";
5
12
  export * from "./number-field/number-field.component";
13
+ export * from "./select";
6
14
  export * from "./toggle/toggle.component";
15
+ export * from "./date-picker/date-picker.component";
7
16
  export * from "./form-field/form-field.component";
8
17
  export * from "./text-field/text-field.component";
9
18
  //# 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,2CAA2C,CAAC;AAC1D,cAAc,qDAAqD,CAAC;AACpE,cAAc,yBAAyB,CAAC;AACxC,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,qCAAqC,CAAC;AACpD,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,17 @@
1
+ import * as i0 from "@angular/core";
2
+ export type RadioSize = "default" | "large";
3
+ export declare class RadioComponent {
4
+ /**
5
+ * Size of the radio.
6
+ * @default default
7
+ */
8
+ readonly size: import("@angular/core").InputSignal<RadioSize>;
9
+ /**
10
+ * Is radio invalid?
11
+ * @default false
12
+ */
13
+ readonly invalid: import("@angular/core").InputSignal<boolean>;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<RadioComponent, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<RadioComponent, "input[type=radio][tedi-radio]", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
16
+ }
17
+ //# sourceMappingURL=radio.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio.component.d.ts","sourceRoot":"","sources":["../../../../../tedi/components/form/radio/radio.component.ts"],"names":[],"mappings":";AAOA,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAE5C,qBAYa,cAAc;IACzB;;;OAGG;IACH,QAAQ,CAAC,IAAI,iDAA+B;IAC5C;;;OAGG;IACH,QAAQ,CAAC,OAAO,+CAAgB;yCAVrB,cAAc;2CAAd,cAAc;CAW1B"}
@@ -0,0 +1,23 @@
1
+ import * as i0 from "@angular/core";
2
+ export type RadioCardVariant = "primary" | "secondary";
3
+ export declare class RadioCardComponent {
4
+ /**
5
+ * Visual variant of the card.
6
+ * @default primary
7
+ */
8
+ readonly variant: import("@angular/core").InputSignal<RadioCardVariant>;
9
+ /**
10
+ * Whether the card is part of a button-group style layout.
11
+ * @default false
12
+ */
13
+ readonly grouped: import("@angular/core").InputSignal<boolean>;
14
+ /**
15
+ * Whether to show the radio indicator.
16
+ * When false, the radio is visually hidden but remains functional.
17
+ * @default true
18
+ */
19
+ readonly showIndicator: import("@angular/core").InputSignal<boolean>;
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<RadioCardComponent, never>;
21
+ static ɵcmp: i0.ɵɵComponentDeclaration<RadioCardComponent, "label[tedi-radio-card]", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "grouped": { "alias": "grouped"; "required": false; "isSignal": true; }; "showIndicator": { "alias": "showIndicator"; "required": false; "isSignal": true; }; }, {}, never, ["*", "tedi-feedback-text"], true, never>;
22
+ }
23
+ //# sourceMappingURL=radio-card.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio-card.component.d.ts","sourceRoot":"","sources":["../../../../../tedi/components/form/radio-card/radio-card.component.ts"],"names":[],"mappings":";AAOA,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,WAAW,CAAC;AAEvD,qBAea,kBAAkB;IAC7B;;;OAGG;IACH,QAAQ,CAAC,OAAO,wDAAsC;IACtD;;;OAGG;IACH,QAAQ,CAAC,OAAO,+CAAgB;IAEhC;;;;OAIG;IACH,QAAQ,CAAC,aAAa,+CAAwB;yCAjBnC,kBAAkB;2CAAlB,kBAAkB;CAkB9B"}
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class RadioCardGroupComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<RadioCardGroupComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<RadioCardGroupComponent, "tedi-radio-card-group", never, {}, {}, never, ["*"], true, never>;
5
+ }
6
+ //# sourceMappingURL=radio-card-group.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio-card-group.component.d.ts","sourceRoot":"","sources":["../../../../../tedi/components/form/radio-card-group/radio-card-group.component.ts"],"names":[],"mappings":";AAMA,qBAWa,uBAAuB;yCAAvB,uBAAuB;2CAAvB,uBAAuB;CAAG"}
@@ -0,0 +1,16 @@
1
+ import * as i0 from "@angular/core";
2
+ export type RadioGroupDirection = "horizontal" | "vertical";
3
+ export declare class RadioGroupComponent {
4
+ /**
5
+ * Label text displayed above the radio group.
6
+ */
7
+ readonly label: import("@angular/core").InputSignal<string | undefined>;
8
+ /**
9
+ * Layout direction of the radios.
10
+ * @default horizontal
11
+ */
12
+ readonly direction: import("@angular/core").InputSignal<RadioGroupDirection>;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<RadioGroupComponent, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<RadioGroupComponent, "tedi-radio-group", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; }, {}, never, ["*", "tedi-feedback-text"], true, never>;
15
+ }
16
+ //# sourceMappingURL=radio-group.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio-group.component.d.ts","sourceRoot":"","sources":["../../../../../tedi/components/form/radio-group/radio-group.component.ts"],"names":[],"mappings":";AAQA,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG,UAAU,CAAC;AAE5D,qBAYa,mBAAmB;IAC9B;;OAEG;IACH,QAAQ,CAAC,KAAK,0DAAmB;IACjC;;;OAGG;IACH,QAAQ,CAAC,SAAS,2DAA4C;yCATnD,mBAAmB;2CAAnB,mBAAmB;CAU/B"}
@@ -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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"}