@tedi-design-system/angular 8.2.0-rc.6 → 8.2.0-rc.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tedi-design-system/angular",
3
- "version": "8.2.0-rc.6",
3
+ "version": "8.2.0-rc.7",
4
4
  "type": "module",
5
5
  "main": "community.mjs",
6
6
  "module": "fesm2022/tedi-design-system-angular.mjs",
package/tedi/index.d.ts CHANGED
@@ -2212,56 +2212,6 @@ declare class CollapseButtonComponent {
2212
2212
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<CollapseButtonComponent, "button[tedi-collapse-button]", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "openText": { "alias": "openText"; "required": false; "isSignal": true; }; "closeText": { "alias": "closeText"; "required": false; "isSignal": true; }; "hideText": { "alias": "hideText"; "required": false; "isSignal": true; }; "arrowType": { "alias": "arrowType"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "inverted": { "alias": "inverted"; "required": false; "isSignal": true; }; "underline": { "alias": "underline"; "required": false; "isSignal": true; }; "ariaControls": { "alias": "ariaControls"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, { "openChange": "openChange"; }, never, never, true, never>;
2213
2213
  }
2214
2214
 
2215
- type ArrowType = CollapseButtonArrowType;
2216
- type CollapseSize = CollapseButtonSize;
2217
- declare class CollapseComponent implements AfterViewInit {
2218
- /**
2219
- * The title/header element for the collapsible section.
2220
- * Rendered inside the toggle button.
2221
- */
2222
- openText: _angular_core.InputSignal<string | undefined>;
2223
- /**
2224
- * Text shown on the toggle button when the content is expanded.
2225
- */
2226
- closeText: _angular_core.InputSignal<string | undefined>;
2227
- /**
2228
- * Whether the collapse should be initially open.
2229
- * @default false
2230
- */
2231
- defaultOpen: _angular_core.InputSignal<boolean>;
2232
- /**
2233
- * To show or hide the openText and closeText.
2234
- * @default "false"
2235
- */
2236
- hideCollapseText: _angular_core.InputSignal<boolean>;
2237
- /**
2238
- * Option for toggling different arrow styles.
2239
- * @default "default"
2240
- */
2241
- arrowType: _angular_core.InputSignal<CollapseButtonArrowType>;
2242
- /**
2243
- * Visual size of the toggle button.
2244
- * @default "default"
2245
- */
2246
- size: _angular_core.InputSignal<CollapseButtonSize>;
2247
- /**
2248
- * Inverted color palette — flips the link / icon colors to their
2249
- * inverted-surface equivalents (white text + icon), for use on top of dark
2250
- * backgrounds. Pairs with both the text and icon-only variants; the
2251
- * secondary-arrow style has no inverted form in the design and the flag is
2252
- * ignored when `arrowType === 'secondary'`.
2253
- * @default false
2254
- */
2255
- inverted: _angular_core.InputSignal<boolean>;
2256
- collapseContentId: string;
2257
- isOpen: _angular_core.WritableSignal<boolean>;
2258
- protected readonly isInvertedActive: _angular_core.Signal<boolean>;
2259
- toggleCollapse(): void;
2260
- ngAfterViewInit(): void;
2261
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<CollapseComponent, never>;
2262
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<CollapseComponent, "tedi-collapse", never, { "openText": { "alias": "openText"; "required": false; "isSignal": true; }; "closeText": { "alias": "closeText"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "hideCollapseText": { "alias": "hideCollapseText"; "required": false; "isSignal": true; }; "arrowType": { "alias": "arrowType"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "inverted": { "alias": "inverted"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
2263
- }
2264
-
2265
2215
  type ClosingButtonSize = "default" | "small";
2266
2216
  type ClosingButtonIconSize = 18 | 24;
2267
2217
  declare class ClosingButtonComponent {
@@ -2848,6 +2798,108 @@ declare class CardHeaderComponent extends CardContentComponent {
2848
2798
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<CardHeaderComponent, "tedi-card-header", never, {}, {}, never, ["*"], true, never>;
2849
2799
  }
2850
2800
 
2801
+ type ArrowType = CollapseButtonArrowType;
2802
+ type CollapseSize = CollapseButtonSize;
2803
+ declare class CollapseComponent implements AfterViewInit {
2804
+ /**
2805
+ * The title/header element for the collapsible section.
2806
+ * Rendered inside the toggle button.
2807
+ */
2808
+ openText: _angular_core.InputSignal<string | undefined>;
2809
+ /**
2810
+ * Text shown on the toggle button when the content is expanded.
2811
+ */
2812
+ closeText: _angular_core.InputSignal<string | undefined>;
2813
+ /**
2814
+ * Whether the collapse should be initially open.
2815
+ * @default false
2816
+ */
2817
+ defaultOpen: _angular_core.InputSignal<boolean>;
2818
+ /**
2819
+ * To show or hide the openText and closeText.
2820
+ * @default "false"
2821
+ */
2822
+ hideCollapseText: _angular_core.InputSignal<boolean>;
2823
+ /**
2824
+ * Option for toggling different arrow styles.
2825
+ * @default "default"
2826
+ */
2827
+ arrowType: _angular_core.InputSignal<CollapseButtonArrowType>;
2828
+ /**
2829
+ * Visual size of the toggle button.
2830
+ * @default "default"
2831
+ */
2832
+ size: _angular_core.InputSignal<CollapseButtonSize>;
2833
+ /**
2834
+ * Inverted color palette — flips the link / icon colors to their
2835
+ * inverted-surface equivalents (white text + icon), for use on top of dark
2836
+ * backgrounds. Pairs with both the text and icon-only variants; the
2837
+ * secondary-arrow style has no inverted form in the design and the flag is
2838
+ * ignored when `arrowType === 'secondary'`.
2839
+ * @default false
2840
+ */
2841
+ inverted: _angular_core.InputSignal<boolean>;
2842
+ collapseContentId: string;
2843
+ isOpen: _angular_core.WritableSignal<boolean>;
2844
+ protected readonly isInvertedActive: _angular_core.Signal<boolean>;
2845
+ toggleCollapse(): void;
2846
+ ngAfterViewInit(): void;
2847
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CollapseComponent, never>;
2848
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CollapseComponent, "tedi-collapse", never, { "openText": { "alias": "openText"; "required": false; "isSignal": true; }; "closeText": { "alias": "closeText"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "hideCollapseText": { "alias": "hideCollapseText"; "required": false; "isSignal": true; }; "arrowType": { "alias": "arrowType"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "inverted": { "alias": "inverted"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
2849
+ }
2850
+
2851
+ type EmptyStateType = "separate" | "attached" | "inside";
2852
+ type EmptyStateSize = "default" | "small";
2853
+ /**
2854
+ * Communicates that there is nothing to display — empty search results, an
2855
+ * unpopulated list, a freshly-created workspace — and optionally guides the
2856
+ * user toward the next step via action buttons or a link.
2857
+ *
2858
+ * Description is projected via `<ng-content>`. Actions are projected via
2859
+ * `<ng-content select="[tedi-empty-state-actions]">`.
2860
+ */
2861
+ declare class EmptyStateComponent {
2862
+ /**
2863
+ * Container variant — matches the Figma "Types" section.
2864
+ * - `'separate'` (default) — full border + radius, stands on its own.
2865
+ * - `'attached'` — top border omitted so the block sits flush beneath a
2866
+ * preceding card or table (same width + same bottom-radius).
2867
+ * - `'inside'` — no border, no radius; intended to be placed inside another
2868
+ * container such as a `<tedi-card>` or `<tedi-table>`.
2869
+ * @default separate
2870
+ */
2871
+ readonly type: _angular_core.InputSignal<EmptyStateType>;
2872
+ /**
2873
+ * Padding scale. `default` = 24px, `small` = 16px.
2874
+ * @default default
2875
+ */
2876
+ readonly size: _angular_core.InputSignal<EmptyStateSize>;
2877
+ /**
2878
+ * Material icon name rendered above the text block. Pass `null` to hide.
2879
+ * @default spa
2880
+ */
2881
+ readonly icon: _angular_core.InputSignal<string | null>;
2882
+ /**
2883
+ * Color of the icon. Defaults to brand so the empty state reads as a
2884
+ * "fresh canvas" cue rather than a destructive state.
2885
+ * @default brand
2886
+ */
2887
+ readonly iconColor: _angular_core.InputSignal<IconColor>;
2888
+ /**
2889
+ * Size of the icon, in pixels.
2890
+ * @default 36
2891
+ */
2892
+ readonly iconSize: _angular_core.InputSignal<IconSize>;
2893
+ /**
2894
+ * Optional heading rendered above the description — appears as an `<h3>` in
2895
+ * brand-primary text color.
2896
+ */
2897
+ readonly heading: _angular_core.InputSignal<string | undefined>;
2898
+ protected readonly hostClasses: _angular_core.Signal<string>;
2899
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<EmptyStateComponent, never>;
2900
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<EmptyStateComponent, "tedi-empty-state", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconColor": { "alias": "iconColor"; "required": false; "isSignal": true; }; "iconSize": { "alias": "iconSize"; "required": false; "isSignal": true; }; "heading": { "alias": "heading"; "required": false; "isSignal": true; }; }, {}, never, ["*", "[tedi-empty-state-actions]"], true, never>;
2901
+ }
2902
+
2851
2903
  declare class HeadingWithIconComponent {
2852
2904
  /**
2853
2905
  * Name of the Material Icon
@@ -2895,6 +2947,40 @@ declare class HeadingWithIconComponent {
2895
2947
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<HeadingWithIconComponent, "tedi-heading-with-icon", never, { "icon": { "alias": "icon"; "required": true; "isSignal": true; }; "element": { "alias": "element"; "required": false; "isSignal": true; }; "modifiers": { "alias": "modifiers"; "required": false; "isSignal": true; }; "headingColor": { "alias": "headingColor"; "required": false; "isSignal": true; }; "iconColor": { "alias": "iconColor"; "required": false; "isSignal": true; }; "iconSize": { "alias": "iconSize"; "required": false; "isSignal": true; }; "iconVariant": { "alias": "iconVariant"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
2896
2948
  }
2897
2949
 
2950
+ type LabelSize = "small" | "default";
2951
+ type LabelColor = "primary" | "secondary";
2952
+ type LabelVisuallyHidden = boolean | "reserve-space";
2953
+ declare class LabelComponent {
2954
+ private readonly field;
2955
+ /**
2956
+ * Size of the label. Falls back to the size of a wrapping `tedi-form-field`,
2957
+ * so the label and the control scale together without being set twice.
2958
+ * @default default
2959
+ */
2960
+ size: _angular_core.InputSignal<LabelSize | undefined>;
2961
+ readonly resolvedSize: _angular_core.Signal<LabelSize>;
2962
+ /**
2963
+ * Whether label is required.
2964
+ * @default false
2965
+ */
2966
+ required: _angular_core.InputSignal<boolean>;
2967
+ /**
2968
+ * Color of the label.
2969
+ * @default secondary
2970
+ */
2971
+ color: _angular_core.InputSignal<LabelColor>;
2972
+ /**
2973
+ * Hides the label visually while keeping it in the accessibility tree, so the
2974
+ * control it names stays named. `"reserve-space"` also keeps the label's line
2975
+ * of layout, to align the field with labelled siblings in the same row.
2976
+ * @default false
2977
+ */
2978
+ visuallyHidden: _angular_core.InputSignal<LabelVisuallyHidden>;
2979
+ classes: _angular_core.Signal<string>;
2980
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LabelComponent, never>;
2981
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LabelComponent, "[tedi-label]", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "visuallyHidden": { "alias": "visuallyHidden"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
2982
+ }
2983
+
2898
2984
  type BulletColor = "primary" | "secondary" | "tertiary" | "brand" | "brand-dark" | "success" | "warning" | "warning-dark" | "danger" | "white";
2899
2985
  declare class ListComponent {
2900
2986
  /**
@@ -6839,40 +6925,6 @@ declare class FeedbackTextComponent {
6839
6925
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<FeedbackTextComponent, "tedi-feedback-text", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "text": { "alias": "text"; "required": true; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
6840
6926
  }
6841
6927
 
6842
- type LabelSize = "small" | "default";
6843
- type LabelColor = "primary" | "secondary";
6844
- type LabelVisuallyHidden = boolean | "reserve-space";
6845
- declare class LabelComponent {
6846
- private readonly field;
6847
- /**
6848
- * Size of the label. Falls back to the size of a wrapping `tedi-form-field`,
6849
- * so the label and the control scale together without being set twice.
6850
- * @default default
6851
- */
6852
- size: _angular_core.InputSignal<LabelSize | undefined>;
6853
- readonly resolvedSize: _angular_core.Signal<LabelSize>;
6854
- /**
6855
- * Whether label is required.
6856
- * @default false
6857
- */
6858
- required: _angular_core.InputSignal<boolean>;
6859
- /**
6860
- * Color of the label.
6861
- * @default secondary
6862
- */
6863
- color: _angular_core.InputSignal<LabelColor>;
6864
- /**
6865
- * Hides the label visually while keeping it in the accessibility tree, so the
6866
- * control it names stays named. `"reserve-space"` also keeps the label's line
6867
- * of layout, to align the field with labelled siblings in the same row.
6868
- * @default false
6869
- */
6870
- visuallyHidden: _angular_core.InputSignal<LabelVisuallyHidden>;
6871
- classes: _angular_core.Signal<string>;
6872
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<LabelComponent, never>;
6873
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<LabelComponent, "[tedi-label]", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "visuallyHidden": { "alias": "visuallyHidden"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
6874
- }
6875
-
6876
6928
  declare class LabelRowComponent {
6877
6929
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<LabelRowComponent, never>;
6878
6930
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<LabelRowComponent, "tedi-label-row", never, {}, {}, never, ["*"], true, never>;
@@ -6993,6 +7045,12 @@ declare class FormFieldComponent implements FieldContext {
6993
7045
  * @default false
6994
7046
  */
6995
7047
  clearable: _angular_core.InputSignal<boolean>;
7048
+ /**
7049
+ * Show the clear button only while the filled field is hovered or focused.
7050
+ * Requires `clearable`.
7051
+ * @default false
7052
+ */
7053
+ showClearOnInteraction: _angular_core.InputSignal<boolean>;
6996
7054
  /**
6997
7055
  * Custom CSS classes for the field box.
6998
7056
  *
@@ -7047,11 +7105,12 @@ declare class FormFieldComponent implements FieldContext {
7047
7105
  "tedi-form-field--valid": boolean;
7048
7106
  "tedi-form-field--invalid": boolean;
7049
7107
  "tedi-form-field--disabled": boolean;
7108
+ "tedi-form-field--clear-on-interaction": boolean;
7050
7109
  "tedi-form-field--small": boolean;
7051
7110
  "tedi-form-field--large": boolean;
7052
7111
  }>;
7053
7112
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormFieldComponent, never>;
7054
- static ɵcmp: _angular_core.ɵɵ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; }; "characterLimit": { "alias": "characterLimit"; "required": false; "isSignal": true; }; }, {}, ["control", "feedback"], ["label[tedi-label], tedi-label-row", "*", "tedi-feedback-text", "[tediFormFieldExtra]"], true, never>;
7113
+ static ɵcmp: _angular_core.ɵɵ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; }; "showClearOnInteraction": { "alias": "showClearOnInteraction"; "required": false; "isSignal": true; }; "inputClass": { "alias": "inputClass"; "required": false; "isSignal": true; }; "characterLimit": { "alias": "characterLimit"; "required": false; "isSignal": true; }; }, {}, ["control", "feedback"], ["label[tedi-label], tedi-label-row", "*", "tedi-feedback-text", "[tediFormFieldExtra]"], true, never>;
7055
7114
  }
7056
7115
 
7057
7116
  /**
@@ -7174,6 +7233,12 @@ declare class SearchComponent<T = unknown> implements ControlValueAccessor {
7174
7233
  * @default true
7175
7234
  */
7176
7235
  clearable: _angular_core.InputSignal<boolean>;
7236
+ /**
7237
+ * Show the clear button only while the filled search field is hovered or focused.
7238
+ * Requires `clearable`.
7239
+ * @default false
7240
+ */
7241
+ showClearOnInteraction: _angular_core.InputSignal<boolean>;
7177
7242
  /**
7178
7243
  * Icon shown inside the input. Ignored when `button` is set.
7179
7244
  * @default "search"
@@ -7379,7 +7444,7 @@ declare class SearchComponent<T = unknown> implements ControlValueAccessor {
7379
7444
  private panelElement;
7380
7445
  private resetActiveOption;
7381
7446
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SearchComponent<any>, never>;
7382
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SearchComponent<any>, "tedi-search", never, { "inputId": { "alias": "inputId"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "searchIcon": { "alias": "searchIcon"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "button": { "alias": "button"; "required": false; "isSignal": true; }; "feedbackText": { "alias": "feedbackText"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "suggestions": { "alias": "suggestions"; "required": false; "isSignal": true; }; "bindLabel": { "alias": "bindLabel"; "required": false; "isSignal": true; }; "bindDescription": { "alias": "bindDescription"; "required": false; "isSignal": true; }; "bindDisabled": { "alias": "bindDisabled"; "required": false; "isSignal": true; }; "minQueryLength": { "alias": "minQueryLength"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "hideOnScroll": { "alias": "hideOnScroll"; "required": false; "isSignal": true; }; "panelOpen": { "alias": "panelOpen"; "required": false; "isSignal": true; }; "noResultsText": { "alias": "noResultsText"; "required": false; "isSignal": true; }; "loadingText": { "alias": "loadingText"; "required": false; "isSignal": true; }; "resultsCountText": { "alias": "resultsCountText"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "panelOpen": "panelOpenChange"; "searchEvent": "searchEvent"; "clear": "clear"; "suggestionSelect": "suggestionSelect"; }, ["suggestionTemplate", "footerTemplate"], never, true, never>;
7447
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SearchComponent<any>, "tedi-search", never, { "inputId": { "alias": "inputId"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "showClearOnInteraction": { "alias": "showClearOnInteraction"; "required": false; "isSignal": true; }; "searchIcon": { "alias": "searchIcon"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "button": { "alias": "button"; "required": false; "isSignal": true; }; "feedbackText": { "alias": "feedbackText"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "suggestions": { "alias": "suggestions"; "required": false; "isSignal": true; }; "bindLabel": { "alias": "bindLabel"; "required": false; "isSignal": true; }; "bindDescription": { "alias": "bindDescription"; "required": false; "isSignal": true; }; "bindDisabled": { "alias": "bindDisabled"; "required": false; "isSignal": true; }; "minQueryLength": { "alias": "minQueryLength"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "hideOnScroll": { "alias": "hideOnScroll"; "required": false; "isSignal": true; }; "panelOpen": { "alias": "panelOpen"; "required": false; "isSignal": true; }; "noResultsText": { "alias": "noResultsText"; "required": false; "isSignal": true; }; "loadingText": { "alias": "loadingText"; "required": false; "isSignal": true; }; "resultsCountText": { "alias": "resultsCountText"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "panelOpen": "panelOpenChange"; "searchEvent": "searchEvent"; "clear": "clear"; "suggestionSelect": "suggestionSelect"; }, ["suggestionTemplate", "footerTemplate"], never, true, never>;
7383
7448
  }
7384
7449
 
7385
7450
  declare class SearchSuggestionComponent implements Highlightable {
@@ -7594,6 +7659,12 @@ declare class SelectComponent<T = unknown> implements AfterContentChecked, After
7594
7659
  * @default false
7595
7660
  */
7596
7661
  clearable: _angular_core.InputSignal<boolean>;
7662
+ /**
7663
+ * Show the clear button only while the filled select is hovered or focused.
7664
+ * Requires `clearable`.
7665
+ * @default false
7666
+ */
7667
+ showClearOnInteraction: _angular_core.InputSignal<boolean>;
7597
7668
  /**
7598
7669
  * Element reference used to determine dropdown width.
7599
7670
  * When null, dropdown width matches the host element.
@@ -7963,7 +8034,7 @@ declare class SelectComponent<T = unknown> implements AfterContentChecked, After
7963
8034
  registerOnTouched(fn: () => void): void;
7964
8035
  setDisabledState(isDisabled: boolean): void;
7965
8036
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectComponent<any>, never>;
7966
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SelectComponent<any>, "tedi-select", never, { "inputId": { "alias": "inputId"; "required": true; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "ariaLabelledby": { "alias": "ariaLabelledby"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "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; }; "dropdownAlign": { "alias": "dropdownAlign"; "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; }; "value": { "alias": "value"; "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; }; "tagEllipsis": { "alias": "tagEllipsis"; "required": false; "isSignal": true; }; "ellipsis": { "alias": "ellipsis"; "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; }; "hideOnScroll": { "alias": "hideOnScroll"; "required": false; "isSignal": true; }; "dropdownType": { "alias": "dropdownType"; "required": false; "isSignal": true; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; "isSignal": true; }; "virtualItemSize": { "alias": "virtualItemSize"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "searchFn": { "alias": "searchFn"; "required": false; "isSignal": true; }; "clearSearchOnSelect": { "alias": "clearSearchOnSelect"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; "searchChange": "searchChange"; "opened": "opened"; "closed": "closed"; "cleared": "cleared"; }, ["optionTemplate", "valueTemplate", "tooltipTemplate"], never, true, never>;
8037
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SelectComponent<any>, "tedi-select", never, { "inputId": { "alias": "inputId"; "required": true; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "ariaLabelledby": { "alias": "ariaLabelledby"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "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; }; "showClearOnInteraction": { "alias": "showClearOnInteraction"; "required": false; "isSignal": true; }; "dropdownWidthRef": { "alias": "dropdownWidthRef"; "required": false; "isSignal": true; }; "dropdownAlign": { "alias": "dropdownAlign"; "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; }; "value": { "alias": "value"; "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; }; "tagEllipsis": { "alias": "tagEllipsis"; "required": false; "isSignal": true; }; "ellipsis": { "alias": "ellipsis"; "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; }; "hideOnScroll": { "alias": "hideOnScroll"; "required": false; "isSignal": true; }; "dropdownType": { "alias": "dropdownType"; "required": false; "isSignal": true; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; "isSignal": true; }; "virtualItemSize": { "alias": "virtualItemSize"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "searchFn": { "alias": "searchFn"; "required": false; "isSignal": true; }; "clearSearchOnSelect": { "alias": "clearSearchOnSelect"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; "searchChange": "searchChange"; "opened": "opened"; "closed": "closed"; "cleared": "cleared"; }, ["optionTemplate", "valueTemplate", "tooltipTemplate"], never, true, never>;
7967
8038
  }
7968
8039
 
7969
8040
  type SliderHideLabel = boolean | "keep-space";
@@ -8888,58 +8959,6 @@ declare class AttachmentActionsComponent {
8888
8959
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AttachmentActionsComponent, "tedi-attachment-actions", never, { "padded": { "alias": "padded"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
8889
8960
  }
8890
8961
 
8891
- type EmptyStateType = "separate" | "attached" | "inside";
8892
- type EmptyStateSize = "default" | "small";
8893
- /**
8894
- * Communicates that there is nothing to display — empty search results, an
8895
- * unpopulated list, a freshly-created workspace — and optionally guides the
8896
- * user toward the next step via action buttons or a link.
8897
- *
8898
- * Description is projected via `<ng-content>`. Actions are projected via
8899
- * `<ng-content select="[tedi-empty-state-actions]">`.
8900
- */
8901
- declare class EmptyStateComponent {
8902
- /**
8903
- * Container variant — matches the Figma "Types" section.
8904
- * - `'separate'` (default) — full border + radius, stands on its own.
8905
- * - `'attached'` — top border omitted so the block sits flush beneath a
8906
- * preceding card or table (same width + same bottom-radius).
8907
- * - `'inside'` — no border, no radius; intended to be placed inside another
8908
- * container such as a `<tedi-card>` or `<tedi-table>`.
8909
- * @default separate
8910
- */
8911
- readonly type: _angular_core.InputSignal<EmptyStateType>;
8912
- /**
8913
- * Padding scale. `default` = 24px, `small` = 16px.
8914
- * @default default
8915
- */
8916
- readonly size: _angular_core.InputSignal<EmptyStateSize>;
8917
- /**
8918
- * Material icon name rendered above the text block. Pass `null` to hide.
8919
- * @default spa
8920
- */
8921
- readonly icon: _angular_core.InputSignal<string | null>;
8922
- /**
8923
- * Color of the icon. Defaults to brand so the empty state reads as a
8924
- * "fresh canvas" cue rather than a destructive state.
8925
- * @default brand
8926
- */
8927
- readonly iconColor: _angular_core.InputSignal<IconColor>;
8928
- /**
8929
- * Size of the icon, in pixels.
8930
- * @default 36
8931
- */
8932
- readonly iconSize: _angular_core.InputSignal<IconSize>;
8933
- /**
8934
- * Optional heading rendered above the description — appears as an `<h3>` in
8935
- * brand-primary text color.
8936
- */
8937
- readonly heading: _angular_core.InputSignal<string | undefined>;
8938
- protected readonly hostClasses: _angular_core.Signal<string>;
8939
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<EmptyStateComponent, never>;
8940
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<EmptyStateComponent, "tedi-empty-state", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconColor": { "alias": "iconColor"; "required": false; "isSignal": true; }; "iconSize": { "alias": "iconSize"; "required": false; "isSignal": true; }; "heading": { "alias": "heading"; "required": false; "isSignal": true; }; }, {}, never, ["*", "[tedi-empty-state-actions]"], true, never>;
8941
- }
8942
-
8943
8962
  type ColWidth = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
8944
8963
  type JustifySelf = "start" | "end" | "center" | "stretch";
8945
8964
  type AlignSelf = "start" | "end" | "center" | "stretch";