@tedi-design-system/angular 6.5.0-rc.14 → 6.5.0-rc.16

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/tedi/index.d.ts CHANGED
@@ -3,7 +3,7 @@ import { AfterContentChecked, AfterViewInit, InputSignal, Signal, PipeTransform,
3
3
  import * as _tedi_design_system_angular_tedi from '@tedi-design-system/angular/tedi';
4
4
  import * as _tanstack_table_core from '@tanstack/table-core';
5
5
  import { CdkDragDrop } from '@angular/cdk/drag-drop';
6
- import { Table, VisibilityState, ColumnOrderState, ColumnSizingState, RowSelectionState, ExpandedState, ColumnFiltersState, SortingState, PaginationState, ColumnDef, CellContext, Column, Row } from '@tanstack/angular-table';
6
+ import { Table, VisibilityState, ColumnOrderState, ColumnSizingState, RowSelectionState, ExpandedState, ColumnFiltersState, SortingState, PaginationState, ColumnDef, CellContext, Row, Column } from '@tanstack/angular-table';
7
7
  import * as _angular_cdk_overlay from '@angular/cdk/overlay';
8
8
  import { ConnectedOverlayPositionChange, ConnectedPosition, CdkOverlayOrigin, CdkConnectedOverlay } from '@angular/cdk/overlay';
9
9
  import { ControlValueAccessor, NgControl } from '@angular/forms';
@@ -60,8 +60,8 @@ declare class IconComponent {
60
60
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<IconComponent, "tedi-icon", never, { "name": { "alias": "name"; "required": true; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "background": { "alias": "background"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
61
61
  }
62
62
 
63
- type TextModifiers = "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "normal" | "small" | "bold" | "thin" | "italic" | "center" | "left" | "right" | "nowrap" | "break-all" | "break-word" | "break-spaces" | "uppercase" | "lowercase" | "capitalize" | "capitalize-first" | "inline-block" | "inline" | "line-normal" | "line-condensed" | "subtitle";
64
- type TextColor = "primary" | "secondary" | "tertiary" | "white" | "disabled" | "brand" | "success" | "warning" | "danger" | "info" | "neutral";
63
+ type TextModifiers = "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "normal" | "small" | "extra-small" | "bold" | "thin" | "italic" | "center" | "left" | "right" | "nowrap" | "break-all" | "break-word" | "break-spaces" | "uppercase" | "lowercase" | "capitalize" | "capitalize-first" | "inline-block" | "inline" | "line-normal" | "line-condensed" | "subtitle";
64
+ type TextColor = "primary" | "secondary" | "tertiary" | "white" | "disabled" | "brand" | "success" | "warning" | "danger" | "info" | "neutral" | "inherit";
65
65
  declare class TextComponent {
66
66
  /**
67
67
  * Single or multiple modifiers to change the text behavior
@@ -409,6 +409,13 @@ declare const translationsMap: {
409
409
  en: string;
410
410
  ru: string;
411
411
  };
412
+ "header.role-search.organization": {
413
+ description: string;
414
+ components: string[];
415
+ et: string;
416
+ en: string;
417
+ ru: string;
418
+ };
412
419
  "header.role-no-representatives": {
413
420
  description: string;
414
421
  components: string[];
@@ -423,7 +430,7 @@ declare const translationsMap: {
423
430
  en: string;
424
431
  ru: string;
425
432
  };
426
- "header.login-mobile": {
433
+ "header.login.mobile": {
427
434
  description: string;
428
435
  components: string[];
429
436
  et: string;
@@ -437,6 +444,13 @@ declare const translationsMap: {
437
444
  en: string;
438
445
  ru: string;
439
446
  };
447
+ "header.logout.mobile": {
448
+ description: string;
449
+ components: string[];
450
+ et: string;
451
+ en: string;
452
+ ru: string;
453
+ };
440
454
  "header.logo": {
441
455
  description: string;
442
456
  components: string[];
@@ -451,6 +465,20 @@ declare const translationsMap: {
451
465
  en: string;
452
466
  ru: string;
453
467
  };
468
+ "header.profile.mobile": {
469
+ description: string;
470
+ components: string[];
471
+ et: string;
472
+ en: string;
473
+ ru: string;
474
+ };
475
+ "header.search": {
476
+ description: string;
477
+ components: string[];
478
+ et: string;
479
+ en: string;
480
+ ru: string;
481
+ };
454
482
  "file-upload.add": {
455
483
  description: string;
456
484
  components: string[];
@@ -2740,6 +2768,12 @@ type ComponentInputs<TComponent> = {
2740
2768
  };
2741
2769
 
2742
2770
  type TableSize = "medium" | "small";
2771
+ /**
2772
+ * The auto-injected control columns, in the order they may appear. Used by the
2773
+ * table's `controlColumnOrder` input to let consumers reorder them (e.g. place
2774
+ * the selection checkbox before the expand chevron).
2775
+ */
2776
+ type TableControlColumn = "drag" | "select" | "expand";
2743
2777
  /** Phases of keyboard-driven column reordering. */
2744
2778
  type ColumnReorderPhase = "idle" | "picked-up" | "moving";
2745
2779
  /**
@@ -2876,6 +2910,19 @@ type TediColumnDef<TData, TValue = unknown> = ColumnDef<TData, TValue> & {
2876
2910
  * entirely (covered by a previous spanning cell). Defaults to `1`.
2877
2911
  */
2878
2912
  rowSpan?: number | ((info: CellContext<TData, TValue>) => number);
2913
+ /**
2914
+ * Row grouping for this column: consecutive rendered rows with an equal key
2915
+ * are merged into a single spanning cell (computed internally against the
2916
+ * live, post-filter / sort / pagination row model — no manual
2917
+ * `groupRowSpan` wiring).
2918
+ *
2919
+ * - A function `(row) => key` groups this column by its own key.
2920
+ * - `true` reuses the table-level `groupRowsBy` key (shared grouping that
2921
+ * also drives the control columns, group selection, and group borders).
2922
+ *
2923
+ * Takes precedence over `rowSpan` when both are set.
2924
+ */
2925
+ groupBy?: boolean | ((row: Row<TData>) => unknown);
2879
2926
  /**
2880
2927
  * Opts the column into the built-in sort affordance. When `true` and the
2881
2928
  * column's `header` is a string, the table renders a clickable sort button
@@ -3104,6 +3151,38 @@ declare class TediTableComponent<TData> {
3104
3151
  * @default undefined
3105
3152
  */
3106
3153
  readonly getSubRows: _angular_core.InputSignal<((row: TData) => TData[] | undefined) | undefined>;
3154
+ /**
3155
+ * Table-level row grouping key. When set, consecutive rendered rows with an
3156
+ * equal key form a group, and:
3157
+ * - the control columns (select / expand / drag) span each group — one
3158
+ * checkbox and one chevron per group instead of per row,
3159
+ * - row selection operates per group (see `enableRowSelection`),
3160
+ * - group boundaries drive `rowGroupDividers`.
3161
+ *
3162
+ * Data columns opt into spanning the same groups with `groupBy: true`; a
3163
+ * column can also group independently with its own `groupBy: (row) => key`.
3164
+ * @default undefined
3165
+ */
3166
+ readonly groupRowsBy: _angular_core.InputSignal<((row: Row<TData>) => unknown) | undefined>;
3167
+ /**
3168
+ * How row dividers are drawn when the table is grouped via `groupRowsBy`:
3169
+ * - `"all"` (default) — a divider under every row, as usual.
3170
+ * - `"between"` — dividers only at group boundaries; rows within a group
3171
+ * read as one block.
3172
+ * - `"none"` — no row dividers.
3173
+ *
3174
+ * No effect when `groupRowsBy` is not set.
3175
+ * @default "all"
3176
+ */
3177
+ readonly rowGroupDividers: _angular_core.InputSignal<"none" | "all" | "between">;
3178
+ /**
3179
+ * Order of the auto-injected control columns (drag handle, selection
3180
+ * checkbox, expand chevron). Only the controls that are actually enabled
3181
+ * render; any enabled control omitted from this list is appended at the end.
3182
+ * Use it to e.g. place the checkbox before the expand chevron.
3183
+ * @default ["drag", "select", "expand"]
3184
+ */
3185
+ readonly controlColumnOrder: _angular_core.InputSignal<TableControlColumn[]>;
3107
3186
  /**
3108
3187
  * Enables pagination and configures the bottom paginator slot. This is also
3109
3188
  * the source of truth for `pageSize` / `pageSizeOptions` — the top slot
@@ -3299,6 +3378,20 @@ declare class TediTableComponent<TData> {
3299
3378
  */
3300
3379
  private readonly hasFilterableColumns;
3301
3380
  private readonly augmentedColumns;
3381
+ /**
3382
+ * Per-column group spans (`columnId → (rowId → span)`), computed from the
3383
+ * live row model for every column that opts into grouping via `groupBy`.
3384
+ * A `groupBy: true` column reuses the table-level `groupRowsBy` key.
3385
+ */
3386
+ protected readonly groupSpansByColumn: Signal<Map<string, Map<string, number>>>;
3387
+ /**
3388
+ * Table-level row groups keyed by `groupRowsBy`: maps every row id to the
3389
+ * full set of rows in its (consecutive) group. Empty when the table is not
3390
+ * grouped. Drives group selection and group dividers.
3391
+ */
3392
+ protected readonly rowGroups: Signal<Map<string, Row<TData>[]>>;
3393
+ /** Row ids that start a group — used to draw dividers at group boundaries. */
3394
+ protected readonly groupStartRowIds: Signal<Set<string>>;
3302
3395
  private buildStateChangeHandlers;
3303
3396
  private readonly defaultPagination;
3304
3397
  private buildResolvedState;
@@ -3332,7 +3425,12 @@ declare class TediTableComponent<TData> {
3332
3425
  protected readonly isSomePageRowsSelected: Signal<boolean>;
3333
3426
  constructor();
3334
3427
  private applyPatch;
3335
- protected handleRowClick(row: Row<TData>): void;
3428
+ protected handleRowClick(event: Event, row: Row<TData>): void;
3429
+ /**
3430
+ * True when the click originated on an interactive control between the event
3431
+ * target and the row element (exclusive), so row-level handlers can bow out.
3432
+ */
3433
+ private isInteractiveTarget;
3336
3434
  private hasTextSelection;
3337
3435
  /** Accessible name for an interactive row, from `rowAriaLabel`. `null` when
3338
3436
  * the row is not interactive or no resolver is provided. */
@@ -3367,6 +3465,22 @@ declare class TediTableComponent<TData> {
3367
3465
  protected columnMaxWidth(column: {
3368
3466
  id: string;
3369
3467
  }): number | null;
3468
+ /**
3469
+ * Columns frozen by `stickyFirstColumn`, keyed by id: the leading control
3470
+ * columns (select / expand / drag) plus the first content column, pinned
3471
+ * together as one block. `left` is the cumulative offset; `start` / `edge`
3472
+ * mark the block's left and right edges (the right edge draws the divider).
3473
+ * Empty when `stickyFirstColumn` is off.
3474
+ */
3475
+ protected readonly stickyLeftColumns: Signal<Map<string, {
3476
+ left: number;
3477
+ start: boolean;
3478
+ edge: boolean;
3479
+ }>>;
3480
+ /** Sticky `left` (px) for a frozen column; `null` when the column isn't frozen. */
3481
+ protected stickyLeft(id: string): number | null;
3482
+ /** Sticky-column class fragment for a cell (`""` when not frozen). */
3483
+ protected stickyLeftClass(id: string): string;
3370
3484
  protected handleRowKeydown(event: KeyboardEvent, row: Row<TData>): void;
3371
3485
  protected handleRowDrop(event: CdkDragDrop<TData[]>): void;
3372
3486
  /** Stable id for a row's reorder handle button — used to restore keyboard
@@ -3451,7 +3565,18 @@ declare class TediTableComponent<TData> {
3451
3565
  /** Visible label shown while a row is expanded (`close` action). */
3452
3566
  protected readonly expandButtonCloseText: Signal<string | undefined>;
3453
3567
  protected handleSelectAll(checked: boolean): void;
3568
+ /**
3569
+ * Selectable rows that a single checkbox controls. For a real group (>1
3570
+ * member) that's the whole group; otherwise it's the row itself — which
3571
+ * keeps TanStack's parent→sub-row cascade (`row.toggleSelected`) intact for
3572
+ * `getSubRows` parents that happen to be singleton groups.
3573
+ */
3574
+ private selectionGroup;
3454
3575
  protected handleSelectRow(row: Row<TData>, checked: boolean): void;
3576
+ /** Whether the (group) checkbox for `row` should render as checked. */
3577
+ protected isRowSelected(row: Row<TData>): boolean;
3578
+ /** Whether the (group) checkbox for `row` should render as indeterminate. */
3579
+ protected isRowIndeterminate(row: Row<TData>): boolean;
3455
3580
  protected handleExpandToggle(row: Row<TData>): void;
3456
3581
  protected handleExpandKeydown(event: KeyboardEvent): void;
3457
3582
  protected handleColumnFilter(column: ReturnType<Table<TData>["getAllLeafColumns"]>[number], value: string): void;
@@ -3558,11 +3683,12 @@ declare class TediTableComponent<TData> {
3558
3683
  */
3559
3684
  protected resolveRowSpan(cell: {
3560
3685
  column: {
3686
+ id: string;
3561
3687
  columnDef: TediColumnDef<TData>;
3562
3688
  };
3563
3689
  }, cellContext: CellContext<TData, unknown>): number | null;
3564
3690
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TediTableComponent<any>, never>;
3565
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TediTableComponent<any>, "tedi-table", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": true; "isSignal": true; }; "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "caption": { "alias": "caption"; "required": false; "isSignal": true; }; "striped": { "alias": "striped"; "required": false; "isSignal": true; }; "verticalBorders": { "alias": "verticalBorders"; "required": false; "isSignal": true; }; "borderless": { "alias": "borderless"; "required": false; "isSignal": true; }; "stickyFirstColumn": { "alias": "stickyFirstColumn"; "required": false; "isSignal": true; }; "stickyHeader": { "alias": "stickyHeader"; "required": false; "isSignal": true; }; "fixedLayout": { "alias": "fixedLayout"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "activeRowId": { "alias": "activeRowId"; "required": false; "isSignal": true; }; "selectedRowHighlight": { "alias": "selectedRowHighlight"; "required": false; "isSignal": true; }; "rowHover": { "alias": "rowHover"; "required": false; "isSignal": true; }; "enableRowSelection": { "alias": "enableRowSelection"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "enableColumnFilters": { "alias": "enableColumnFilters"; "required": false; "isSignal": true; }; "renderSubComponent": { "alias": "renderSubComponent"; "required": false; "isSignal": true; }; "getRowCanExpand": { "alias": "getRowCanExpand"; "required": false; "isSignal": true; }; "expandTrigger": { "alias": "expandTrigger"; "required": false; "isSignal": true; }; "expandButtonVariant": { "alias": "expandButtonVariant"; "required": false; "isSignal": true; }; "expandButtonLabel": { "alias": "expandButtonLabel"; "required": false; "isSignal": true; }; "getSubRows": { "alias": "getSubRows"; "required": false; "isSignal": true; }; "pagination": { "alias": "pagination"; "required": false; "isSignal": true; }; "paginationTop": { "alias": "paginationTop"; "required": false; "isSignal": true; }; "manualPagination": { "alias": "manualPagination"; "required": false; "isSignal": true; }; "manualSorting": { "alias": "manualSorting"; "required": false; "isSignal": true; }; "manualFiltering": { "alias": "manualFiltering"; "required": false; "isSignal": true; }; "pageCount": { "alias": "pageCount"; "required": false; "isSignal": true; }; "rowCount": { "alias": "rowCount"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "defaultState": { "alias": "defaultState"; "required": false; "isSignal": true; }; "persist": { "alias": "persist"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "placeholderRole": { "alias": "placeholderRole"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "rowAriaLabel": { "alias": "rowAriaLabel"; "required": false; "isSignal": true; }; "reorderableRows": { "alias": "reorderableRows"; "required": false; "isSignal": true; }; "reorderableColumns": { "alias": "reorderableColumns"; "required": false; "isSignal": true; }; }, { "stateChange": "stateChange"; "rowClick": "rowClick"; "rowDrop": "rowDrop"; }, ["customResultsTemplateRef"], ["tedi-table-toolbar", "tedi-table-columns-menu"], true, never>;
3691
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TediTableComponent<any>, "tedi-table", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": true; "isSignal": true; }; "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "caption": { "alias": "caption"; "required": false; "isSignal": true; }; "striped": { "alias": "striped"; "required": false; "isSignal": true; }; "verticalBorders": { "alias": "verticalBorders"; "required": false; "isSignal": true; }; "borderless": { "alias": "borderless"; "required": false; "isSignal": true; }; "stickyFirstColumn": { "alias": "stickyFirstColumn"; "required": false; "isSignal": true; }; "stickyHeader": { "alias": "stickyHeader"; "required": false; "isSignal": true; }; "fixedLayout": { "alias": "fixedLayout"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "activeRowId": { "alias": "activeRowId"; "required": false; "isSignal": true; }; "selectedRowHighlight": { "alias": "selectedRowHighlight"; "required": false; "isSignal": true; }; "rowHover": { "alias": "rowHover"; "required": false; "isSignal": true; }; "enableRowSelection": { "alias": "enableRowSelection"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "enableColumnFilters": { "alias": "enableColumnFilters"; "required": false; "isSignal": true; }; "renderSubComponent": { "alias": "renderSubComponent"; "required": false; "isSignal": true; }; "getRowCanExpand": { "alias": "getRowCanExpand"; "required": false; "isSignal": true; }; "expandTrigger": { "alias": "expandTrigger"; "required": false; "isSignal": true; }; "expandButtonVariant": { "alias": "expandButtonVariant"; "required": false; "isSignal": true; }; "expandButtonLabel": { "alias": "expandButtonLabel"; "required": false; "isSignal": true; }; "getSubRows": { "alias": "getSubRows"; "required": false; "isSignal": true; }; "groupRowsBy": { "alias": "groupRowsBy"; "required": false; "isSignal": true; }; "rowGroupDividers": { "alias": "rowGroupDividers"; "required": false; "isSignal": true; }; "controlColumnOrder": { "alias": "controlColumnOrder"; "required": false; "isSignal": true; }; "pagination": { "alias": "pagination"; "required": false; "isSignal": true; }; "paginationTop": { "alias": "paginationTop"; "required": false; "isSignal": true; }; "manualPagination": { "alias": "manualPagination"; "required": false; "isSignal": true; }; "manualSorting": { "alias": "manualSorting"; "required": false; "isSignal": true; }; "manualFiltering": { "alias": "manualFiltering"; "required": false; "isSignal": true; }; "pageCount": { "alias": "pageCount"; "required": false; "isSignal": true; }; "rowCount": { "alias": "rowCount"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "defaultState": { "alias": "defaultState"; "required": false; "isSignal": true; }; "persist": { "alias": "persist"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "placeholderRole": { "alias": "placeholderRole"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "rowAriaLabel": { "alias": "rowAriaLabel"; "required": false; "isSignal": true; }; "reorderableRows": { "alias": "reorderableRows"; "required": false; "isSignal": true; }; "reorderableColumns": { "alias": "reorderableColumns"; "required": false; "isSignal": true; }; }, { "stateChange": "stateChange"; "rowClick": "rowClick"; "rowDrop": "rowDrop"; }, ["customResultsTemplateRef"], ["tedi-table-toolbar", "tedi-table-columns-menu"], true, never>;
3566
3692
  }
3567
3693
 
3568
3694
  declare const TEDI_TABLE_CONTEXT: InjectionToken<TediTableContextValue<unknown>>;
@@ -3592,12 +3718,23 @@ declare function createTablePersistence(options: {
3592
3718
  onStateChange?: (state: TableState) => void;
3593
3719
  }): TablePersistenceController;
3594
3720
 
3721
+ /**
3722
+ * Collapse consecutive rows with an equal key into row spans, keyed by row id.
3723
+ * The first row of each run maps to the run length (`N`); the rows it covers
3724
+ * map to `0`. Pass the **rendered** row set (typically
3725
+ * `table.getRowModel().rows`) so spans operate post-filter / sort / pagination.
3726
+ */
3727
+ declare function computeGroupSpans<TData>(rows: Row<TData>[], keyFn: (row: Row<TData>) => unknown): Map<string, number>;
3595
3728
  /**
3596
3729
  * Build a `rowSpan` callback that auto-collapses consecutive equal keys.
3597
3730
  * Returns `N > 1` for the first row in a run and `0` for the covered rows.
3598
3731
  * Pass the **same** array of rows the table is rendering — typically
3599
3732
  * `table.getRowModel().rows` — so spans operate on the post-filter / sort /
3600
3733
  * pagination row set.
3734
+ *
3735
+ * Prefer the column-level `groupBy` option, which computes this internally
3736
+ * against the live row model; reach for this helper only when you need a
3737
+ * standalone `rowSpan` callback.
3601
3738
  */
3602
3739
  declare function groupRowSpan<TData>(rows: Row<TData>[], keyFn: (row: Row<TData>) => unknown): (info: CellContext<TData, unknown>) => number;
3603
3740
 
@@ -5156,6 +5293,7 @@ declare class TextFieldComponent implements ControlValueAccessor, FormFieldContr
5156
5293
  private formDisabled;
5157
5294
  private onChange;
5158
5295
  private onTouched;
5296
+ constructor();
5159
5297
  private setValue;
5160
5298
  writeValue(value: string | null): void;
5161
5299
  registerOnChange(fn: (value: string) => void): void;
@@ -5955,7 +6093,7 @@ declare class FooterBottomComponent implements AfterContentInit {
5955
6093
 
5956
6094
  declare class HeaderComponent {
5957
6095
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<HeaderComponent, never>;
5958
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<HeaderComponent, "header[tedi-header]", never, {}, {}, never, ["button[tedi-sidenav-toggle]", "*"], true, never>;
6096
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<HeaderComponent, "header[tedi-header]", never, {}, {}, never, ["button[tedi-sidenav-toggle]", "*", "tedi-header-bottom"], true, never>;
5959
6097
  }
5960
6098
 
5961
6099
  declare class HeaderActionsComponent {
@@ -5963,9 +6101,40 @@ declare class HeaderActionsComponent {
5963
6101
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<HeaderActionsComponent, "tedi-header-actions", never, {}, {}, never, ["*"], true, never>;
5964
6102
  }
5965
6103
 
6104
+ /**
6105
+ * Mobile-only secondary row rendered below the main header bar.
6106
+ *
6107
+ * Typical use: a compact search bar or mobile-specific navigation that only
6108
+ * appears below the `md` breakpoint. Above `md` the component is hidden via
6109
+ * CSS, so consumers can include it unconditionally — desktop users won't see it.
6110
+ *
6111
+ * @example
6112
+ * <header tedi-header>
6113
+ * <!-- main content -->
6114
+ * <tedi-header-bottom>
6115
+ * <tedi-header-search mobileVariant="inline">
6116
+ * <tedi-search inputId="search" placeholder="Search..." />
6117
+ * </tedi-header-search>
6118
+ * </tedi-header-bottom>
6119
+ * </header>
6120
+ */
6121
+ declare class HeaderBottomComponent {
6122
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HeaderBottomComponent, never>;
6123
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<HeaderBottomComponent, "tedi-header-bottom", never, {}, {}, never, ["*"], true, never>;
6124
+ }
6125
+
6126
+ type HeaderContentAlignment = "flex-start" | "center" | "space-between";
5966
6127
  declare class HeaderContentComponent {
6128
+ /**
6129
+ * Controls the horizontal alignment of the projected content (`justify-content`).
6130
+ * Useful when the center area mixes nav links with another component (e.g. a
6131
+ * `<tedi-header-search>`) and you want to push them apart or align them to one edge.
6132
+ * @default "center"
6133
+ */
6134
+ readonly alignment: _angular_core.InputSignal<HeaderContentAlignment>;
6135
+ protected readonly classes: _angular_core.Signal<string>;
5967
6136
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<HeaderContentComponent, never>;
5968
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<HeaderContentComponent, "tedi-header-content", never, {}, {}, never, ["*"], true, never>;
6137
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<HeaderContentComponent, "tedi-header-content", never, { "alignment": { "alias": "alignment"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
5969
6138
  }
5970
6139
 
5971
6140
  type HeaderLanguage = {
@@ -5990,82 +6159,507 @@ declare class HeaderLanguageComponent {
5990
6159
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<HeaderLanguageComponent, "tedi-header-language", never, { "languages": { "alias": "languages"; "required": true; "isSignal": true; }; }, { "languageChange": "languageChange"; }, never, never, true, never>;
5991
6160
  }
5992
6161
 
5993
- declare class HeaderLoginComponent {
6162
+ type HeaderLoginSize = "default" | "small";
6163
+ /**
6164
+ * Subset of `HeaderLoginComponent` inputs that can be overridden per breakpoint
6165
+ * via the `[xs]` / `[sm]` / `[md]` / `[lg]` / `[xl]` / `[xxl]` inputs. Mirrors
6166
+ * React's `HeaderLoginBreakpointProps`.
6167
+ */
6168
+ type HeaderLoginInputs = {
6169
+ size: HeaderLoginSize | undefined;
6170
+ label: string;
6171
+ };
6172
+ declare class HeaderLoginComponent implements BreakpointInputs<HeaderLoginInputs> {
5994
6173
  breakpointService: BreakpointService;
5995
6174
  translationService: TediTranslationService;
5996
- isMobile: _angular_core.Signal<boolean>;
5997
- textDesktop: _angular_core.Signal<string>;
5998
- textMobile: _angular_core.Signal<string>;
5999
- text: _angular_core.Signal<string>;
6175
+ private isMobile;
6176
+ /**
6177
+ * Visual size of the login button.
6178
+ * - `'small'` renders a compact icon-and-caption button (the
6179
+ * `<tedi-header-mobile-button>` variant).
6180
+ * - `'default'` renders a primary button or anchor with text only.
6181
+ *
6182
+ * When left unset, the size is chosen automatically based on the viewport:
6183
+ * `'small'` below the `md` breakpoint, `'default'` from `md` up. Pass an
6184
+ * explicit value to force a variant regardless of viewport.
6185
+ */
6186
+ size: _angular_core.InputSignal<HeaderLoginSize | undefined>;
6187
+ /**
6188
+ * Custom label text for the login button. When provided, used as-is — not
6189
+ * translated. When omitted or empty, falls back to the `header.login.mobile`
6190
+ * translation key for the compact variant and `header.login` for the full
6191
+ * variant.
6192
+ */
6193
+ label: _angular_core.InputSignal<string>;
6194
+ /**
6195
+ * If provided, the login button renders as an `<a>` navigating to this URL.
6196
+ * Otherwise renders as a `<button>`.
6197
+ */
6198
+ href: _angular_core.InputSignal<string | undefined>;
6199
+ xs: _angular_core.InputSignal<HeaderLoginInputs | undefined>;
6200
+ sm: _angular_core.InputSignal<HeaderLoginInputs | undefined>;
6201
+ md: _angular_core.InputSignal<HeaderLoginInputs | undefined>;
6202
+ lg: _angular_core.InputSignal<HeaderLoginInputs | undefined>;
6203
+ xl: _angular_core.InputSignal<HeaderLoginInputs | undefined>;
6204
+ xxl: _angular_core.InputSignal<HeaderLoginInputs | undefined>;
6205
+ protected readonly breakpointInputs: _angular_core.Signal<HeaderLoginInputs>;
6206
+ isSmall: _angular_core.Signal<boolean>;
6207
+ resolvedLabel: _angular_core.Signal<string>;
6000
6208
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<HeaderLoginComponent, never>;
6001
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<HeaderLoginComponent, "tedi-header-login", never, {}, {}, never, never, true, never>;
6209
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<HeaderLoginComponent, "tedi-header-login", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; "xs": { "alias": "xs"; "required": false; "isSignal": true; }; "sm": { "alias": "sm"; "required": false; "isSignal": true; }; "md": { "alias": "md"; "required": false; "isSignal": true; }; "lg": { "alias": "lg"; "required": false; "isSignal": true; }; "xl": { "alias": "xl"; "required": false; "isSignal": true; }; "xxl": { "alias": "xxl"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
6002
6210
  }
6003
6211
 
6004
- declare class HeaderLogoutComponent {
6005
- breakpointService: BreakpointService;
6006
- isMobile: _angular_core.Signal<boolean>;
6007
- classes: _angular_core.Signal<string>;
6212
+ declare class HeaderLogoComponent {
6213
+ /**
6214
+ * Optional link URL. When set, the logo is wrapped in an anchor element.
6215
+ */
6216
+ readonly href: _angular_core.InputSignal<string | undefined>;
6217
+ /**
6218
+ * Controls visibility of the logo. Useful for conditionally hiding the logo
6219
+ * based on application state, feature flags, or custom media queries that
6220
+ * fall between standard breakpoints (e.g. 360px). For responsive hiding at
6221
+ * standard breakpoints, prefer wrapping `<tedi-header-logo>` with `*hideAt`
6222
+ * or `*showAt`.
6223
+ * @default true
6224
+ */
6225
+ readonly showLogo: _angular_core.InputSignal<boolean>;
6226
+ private readonly darkSlot;
6227
+ private readonly themeService;
6228
+ protected readonly useDark: _angular_core.Signal<boolean>;
6229
+ protected readonly classes: _angular_core.Signal<string>;
6230
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HeaderLogoComponent, never>;
6231
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<HeaderLogoComponent, "tedi-header-logo", never, { "href": { "alias": "href"; "required": false; "isSignal": true; }; "showLogo": { "alias": "showLogo"; "required": false; "isSignal": true; }; }, {}, ["darkSlot"], ["*", "[tedi-header-logo-dark]"], true, never>;
6232
+ }
6233
+
6234
+ /**
6235
+ * Marks a projected child of `<tedi-header-logo>` as the dark-theme variant.
6236
+ * `HeaderLogoComponent` detects it via `contentChild` and swaps to the dark
6237
+ * slot when the active theme is `dark`.
6238
+ */
6239
+ declare class HeaderLogoDarkDirective {
6240
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HeaderLogoDarkDirective, never>;
6241
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<HeaderLogoDarkDirective, "[tedi-header-logo-dark]", never, {}, {}, never, never, true, never>;
6242
+ }
6243
+
6244
+ type HeaderLogoutSize = "default" | "small";
6245
+ /**
6246
+ * Subset of `HeaderLogoutComponent` inputs that can be overridden per
6247
+ * breakpoint via the `[xs]` / `[sm]` / `[md]` / `[lg]` / `[xl]` / `[xxl]`
6248
+ * inputs. Mirrors React's `HeaderLogoutBreakpointProps`.
6249
+ */
6250
+ type HeaderLogoutInputs = {
6251
+ size: HeaderLogoutSize | undefined;
6252
+ label: string;
6253
+ };
6254
+ declare class HeaderLogoutComponent implements BreakpointInputs<HeaderLogoutInputs> {
6255
+ private readonly translationService;
6256
+ private readonly breakpointService;
6257
+ private isMobile;
6258
+ /**
6259
+ * Visual size of the logout button.
6260
+ * - `'small'` renders a compact icon-and-caption button (the
6261
+ * `<tedi-header-mobile-button>` variant).
6262
+ * - `'default'` renders a full-width link with inline icon and text.
6263
+ *
6264
+ * When left unset (the default), the size is chosen automatically based on
6265
+ * the viewport: `'small'` below the `md` breakpoint, `'default'` from `md`
6266
+ * up. Pass an explicit value to force a variant regardless of viewport —
6267
+ * useful inside tight containers (sidebar panel, dropdown) where the
6268
+ * desktop layout has no room.
6269
+ */
6270
+ size: _angular_core.InputSignal<HeaderLogoutSize | undefined>;
6271
+ /**
6272
+ * Custom label text for the logout button. When provided, used as-is — not
6273
+ * translated. When omitted or empty, falls back to the `header.logout.mobile`
6274
+ * translation key for the compact variant and `header.logout` for the full
6275
+ * variant.
6276
+ */
6277
+ label: _angular_core.InputSignal<string>;
6278
+ /**
6279
+ * If provided, the logout button renders as an `<a>` navigating to this URL.
6280
+ * Otherwise renders as a `<button>`.
6281
+ */
6282
+ href: _angular_core.InputSignal<string | undefined>;
6283
+ xs: _angular_core.InputSignal<HeaderLogoutInputs | undefined>;
6284
+ sm: _angular_core.InputSignal<HeaderLogoutInputs | undefined>;
6285
+ md: _angular_core.InputSignal<HeaderLogoutInputs | undefined>;
6286
+ lg: _angular_core.InputSignal<HeaderLogoutInputs | undefined>;
6287
+ xl: _angular_core.InputSignal<HeaderLogoutInputs | undefined>;
6288
+ xxl: _angular_core.InputSignal<HeaderLogoutInputs | undefined>;
6289
+ protected readonly breakpointInputs: _angular_core.Signal<HeaderLogoutInputs>;
6290
+ isSmall: _angular_core.Signal<boolean>;
6291
+ resolvedLabel: _angular_core.Signal<string>;
6008
6292
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<HeaderLogoutComponent, never>;
6009
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<HeaderLogoutComponent, "button[tedi-header-logout]", never, {}, {}, never, ["*"], true, never>;
6293
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<HeaderLogoutComponent, "tedi-header-logout", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; "xs": { "alias": "xs"; "required": false; "isSignal": true; }; "sm": { "alias": "sm"; "required": false; "isSignal": true; }; "md": { "alias": "md"; "required": false; "isSignal": true; }; "lg": { "alias": "lg"; "required": false; "isSignal": true; }; "xl": { "alias": "xl"; "required": false; "isSignal": true; }; "xxl": { "alias": "xxl"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
6010
6294
  }
6011
6295
 
6012
- declare class HeaderProfileComponent implements AfterContentInit {
6013
- /** Name of representative */
6014
- name: _angular_core.InputSignal<string>;
6015
- /** Breakpoint at which we show dropdown instead of modal */
6016
- showDropdown: _angular_core.InputSignal<"xs" | "sm" | "md" | "lg" | "xl" | "xxl" | undefined>;
6296
+ /**
6297
+ * Compact icon + label button used inside the mobile header row
6298
+ * (`<tedi-header-bottom>` or a mobile-specific section of
6299
+ * `<tedi-header-actions>`).
6300
+ *
6301
+ * Renders as an `<a>` when `href` is provided and `disabled` is false,
6302
+ * otherwise as a `<button>` — mirroring the React `HeaderMobileButton`.
6303
+ *
6304
+ * @example
6305
+ * <tedi-header-mobile-button icon="menu" label="Menu" />
6306
+ * <tedi-header-mobile-button icon="search" label="Search" href="/search" />
6307
+ * <tedi-header-mobile-button icon="notifications" label="Alerts" [selected]="true" />
6308
+ */
6309
+ declare class HeaderMobileButtonComponent {
6310
+ /** Material icon name displayed inside the button. */
6311
+ icon: _angular_core.InputSignal<string>;
6312
+ /** Label text displayed below the icon. */
6313
+ label: _angular_core.InputSignal<string | undefined>;
6314
+ /**
6315
+ * If provided (and not disabled), the button renders as an `<a>`
6316
+ * navigating to this URL. Otherwise renders as a `<button>`.
6317
+ */
6318
+ href: _angular_core.InputSignal<string | undefined>;
6319
+ /** Whether the button is in a selected state. */
6320
+ selected: _angular_core.InputSignal<boolean>;
6321
+ /** Whether the button is disabled. */
6322
+ disabled: _angular_core.InputSignal<boolean>;
6323
+ /**
6324
+ * Accessible name override forwarded to the inner `<button>`/`<a>`.
6325
+ * Useful when the visible label needs to be augmented for screen readers
6326
+ * (e.g. when the button only renders an icon).
6327
+ */
6328
+ ariaLabel: _angular_core.InputSignal<string | undefined>;
6329
+ /**
6330
+ * Forwarded to the inner `<button>` as `aria-haspopup`. Set to `'dialog'`
6331
+ * when the button opens a modal dialog, `'menu'` for menus, etc.
6332
+ *
6333
+ * Only applied when the component renders as a `<button>` (i.e. when
6334
+ * `href` is not set). A real navigation link with popup-trigger semantics
6335
+ * is confusing to assistive tech — if a popup is involved, omit `href`
6336
+ * so the component renders as a button.
6337
+ */
6338
+ ariaHasPopup: _angular_core.InputSignal<"menu" | "listbox" | "dialog" | "true" | "grid" | "false" | "tree" | undefined>;
6339
+ /**
6340
+ * Forwarded to the inner `<button>` as `aria-expanded`. Pair with
6341
+ * `ariaHasPopup` when this button toggles a dialog/menu open.
6342
+ *
6343
+ * Only applied when the component renders as a `<button>` (i.e. when
6344
+ * `href` is not set).
6345
+ */
6346
+ ariaExpanded: _angular_core.InputSignal<boolean | undefined>;
6347
+ renderAsLink: _angular_core.Signal<boolean>;
6348
+ classes: _angular_core.Signal<string>;
6349
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HeaderMobileButtonComponent, never>;
6350
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<HeaderMobileButtonComponent, "tedi-header-mobile-button", never, { "icon": { "alias": "icon"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaHasPopup": { "alias": "ariaHasPopup"; "required": false; "isSignal": true; }; "ariaExpanded": { "alias": "ariaExpanded"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
6351
+ }
6352
+
6353
+ type HeaderProfileSize = "default" | "small";
6354
+ /**
6355
+ * Subset of `HeaderProfileComponent` inputs that can be overridden per
6356
+ * breakpoint via the `[xs]` / `[sm]` / `[md]` / `[lg]` / `[xl]` / `[xxl]` inputs.
6357
+ */
6358
+ type HeaderProfileInputs = {
6359
+ label: string;
6360
+ showPopover: Breakpoint;
6361
+ };
6362
+ declare class HeaderProfileComponent implements BreakpointInputs<HeaderProfileInputs>, AfterContentInit {
6363
+ /**
6364
+ * Custom label text for the profile button. Falls back to the `header.profile`
6365
+ * translation key on desktop, or `header.profile.mobile` on mobile.
6366
+ */
6367
+ label: _angular_core.InputSignal<string>;
6368
+ /**
6369
+ * Whether to display a text label next to the profile icon on non-mobile
6370
+ * viewports. When `false` the desktop trigger renders as an icon-only button
6371
+ * and the label (custom or translated) is used as the `aria-label` only.
6372
+ * When `true` the label is visible and a chevron is shown next to it.
6373
+ *
6374
+ * Has no effect on the mobile/small variant — the mobile button always
6375
+ * shows its label.
6376
+ * @default false
6377
+ */
6378
+ showLabel: _angular_core.InputSignal<boolean>;
6379
+ /**
6380
+ * Defines the breakpoint from which the profile menu is displayed as a popover.
6381
+ * Below this breakpoint, it is rendered as a modal.
6382
+ *
6383
+ * @default 'lg'
6384
+ */
6385
+ showPopover: _angular_core.InputSignal<"xs" | "sm" | "md" | "lg" | "xl" | "xxl">;
6386
+ /**
6387
+ * Removes default item styles from the mobile modal content. When `true`,
6388
+ * projected children render without the padding, border, or background that
6389
+ * `<tedi-header-profile>` normally applies to each direct child of the
6390
+ * modal. Use when the content requires custom item styling.
6391
+ *
6392
+ * Only affects the mobile/modal branch. The desktop popover uses
6393
+ * `<tedi-popover-content>`'s own styling and is unaffected.
6394
+ *
6395
+ * @default false
6396
+ */
6397
+ noStyle: _angular_core.InputSignal<boolean>;
6398
+ /**
6399
+ * Visual size of the profile button.
6400
+ * - `'small'` renders a compact icon-and-caption button (the
6401
+ * `<tedi-header-mobile-button>` variant).
6402
+ * - `'default'` renders a button with the user's name + icon.
6403
+ *
6404
+ * When left unset, the size is chosen automatically based on the viewport:
6405
+ * `'small'` below the `md` breakpoint, `'default'` from `md` up. Pass an
6406
+ * explicit value to force a variant regardless of viewport.
6407
+ */
6408
+ size: _angular_core.InputSignal<HeaderProfileSize | undefined>;
6409
+ xs: _angular_core.InputSignal<HeaderProfileInputs | undefined>;
6410
+ sm: _angular_core.InputSignal<HeaderProfileInputs | undefined>;
6411
+ md: _angular_core.InputSignal<HeaderProfileInputs | undefined>;
6412
+ lg: _angular_core.InputSignal<HeaderProfileInputs | undefined>;
6413
+ xl: _angular_core.InputSignal<HeaderProfileInputs | undefined>;
6414
+ xxl: _angular_core.InputSignal<HeaderProfileInputs | undefined>;
6017
6415
  readonly breakpointService: BreakpointService;
6018
6416
  readonly translationService: TediTranslationService;
6019
6417
  private readonly document;
6020
6418
  private readonly host;
6021
6419
  private readonly renderer;
6022
- private readonly eventListeners;
6420
+ private readonly destroyRef;
6421
+ readonly isMobile: _angular_core.Signal<boolean>;
6422
+ readonly isSmall: _angular_core.Signal<boolean>;
6423
+ protected readonly breakpointInputs: _angular_core.Signal<HeaderProfileInputs>;
6424
+ readonly resolvedLabel: _angular_core.Signal<string>;
6023
6425
  constructor();
6024
6426
  modalOpen: _angular_core.WritableSignal<boolean>;
6427
+ /**
6428
+ * Tracks which `HeaderRoleComponent` instance currently has its
6429
+ * accordion open. When a role opens, it writes its own reference here;
6430
+ * other roles watch this signal and close themselves when it changes.
6431
+ * @internal
6432
+ */
6433
+ readonly activeRole: _angular_core.WritableSignal<unknown>;
6025
6434
  readonly buttonVariant: _angular_core.Signal<ButtonVariant>;
6026
- readonly buttonClass: _angular_core.Signal<"tedi-header-profile--mobile" | null>;
6027
6435
  ngAfterContentInit(): void;
6028
6436
  handleModalOpen(): void;
6029
6437
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<HeaderProfileComponent, never>;
6030
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<HeaderProfileComponent, "tedi-header-profile", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "showDropdown": { "alias": "showDropdown"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
6438
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<HeaderProfileComponent, "tedi-header-profile", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "showLabel": { "alias": "showLabel"; "required": false; "isSignal": true; }; "showPopover": { "alias": "showPopover"; "required": false; "isSignal": true; }; "noStyle": { "alias": "noStyle"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "xs": { "alias": "xs"; "required": false; "isSignal": true; }; "sm": { "alias": "sm"; "required": false; "isSignal": true; }; "md": { "alias": "md"; "required": false; "isSignal": true; }; "lg": { "alias": "lg"; "required": false; "isSignal": true; }; "xl": { "alias": "xl"; "required": false; "isSignal": true; }; "xxl": { "alias": "xxl"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
6439
+ }
6440
+
6441
+ /**
6442
+ * Marker directive applied to a projected child of `<tedi-header-role>` to mark it
6443
+ * as the title content (e.g. a `<tedi-tag>`). The directive itself adds no DOM or
6444
+ * behavior — it only exists so `HeaderRoleComponent` can detect, via `contentChild`,
6445
+ * whether a consumer has projected title content. When projected, the title slot
6446
+ * replaces the bold `role` string fallback.
6447
+ *
6448
+ * @example
6449
+ * <tedi-header-role [representatives]="..." [currentRepresentative]="...">
6450
+ * <tedi-tag tedi-header-role-title>Esindatav</tedi-tag>
6451
+ * </tedi-header-role>
6452
+ */
6453
+ declare class HeaderRoleTitleDirective {
6454
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HeaderRoleTitleDirective, never>;
6455
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<HeaderRoleTitleDirective, "[tedi-header-role-title]", never, {}, {}, never, never, true, never>;
6031
6456
  }
6032
6457
 
6458
+ type RepresentativeIcon = {
6459
+ /** Material Icon name. */
6460
+ name: string;
6461
+ /** Size in px. Falls back to `<tedi-icon>`'s default (24) when omitted. */
6462
+ size?: IconSize;
6463
+ };
6033
6464
  type Representative = {
6465
+ /**
6466
+ * Stable identifier. Required for selection comparison and for re-syncing
6467
+ * the current representative when the `representatives` input changes.
6468
+ */
6469
+ id: string;
6034
6470
  name: string;
6035
- icon?: string;
6471
+ /**
6472
+ * Icon shown next to the representative. Accepts either a Material Icon name
6473
+ * as a string (`'person'`) for the common case, or a full
6474
+ * `RepresentativeIcon` object (`{ name: 'person', size: 18 }`) when an
6475
+ * explicit size is needed. The two forms are equivalent when only `name` is
6476
+ * relevant.
6477
+ */
6478
+ icon?: string | RepresentativeIcon;
6036
6479
  description?: string;
6037
6480
  };
6481
+ /**
6482
+ * Structural marker for custom content projected into the role selection
6483
+ * popover (desktop) or accordion (tablet/mobile).
6484
+ *
6485
+ * When present, replaces the default representative list entirely.
6486
+ *
6487
+ * Usage:
6488
+ * ```html
6489
+ * <tedi-header-role ...>
6490
+ * <ng-template tedi-header-role-content>
6491
+ * <div>Custom content here</div>
6492
+ * </ng-template>
6493
+ * </tedi-header-role>
6494
+ * ```
6495
+ */
6496
+ declare class HeaderRoleContentDirective {
6497
+ readonly templateRef: TemplateRef<any>;
6498
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HeaderRoleContentDirective, never>;
6499
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<HeaderRoleContentDirective, "[tedi-header-role-content]", never, {}, {}, never, never, true, never>;
6500
+ }
6501
+ /**
6502
+ * Structural marker for custom "no results" content shown when the search
6503
+ * filter produces an empty representative list.
6504
+ *
6505
+ * When absent, the component falls back to a default translated string.
6506
+ *
6507
+ * Usage:
6508
+ * ```html
6509
+ * <tedi-header-role ...>
6510
+ * <ng-template tedi-header-role-no-results>
6511
+ * <tedi-empty-state description="No matches found" />
6512
+ * </ng-template>
6513
+ * </tedi-header-role>
6514
+ * ```
6515
+ */
6516
+ declare class HeaderRoleNoResultsDirective {
6517
+ readonly templateRef: TemplateRef<any>;
6518
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HeaderRoleNoResultsDirective, never>;
6519
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<HeaderRoleNoResultsDirective, "[tedi-header-role-no-results]", never, {}, {}, never, never, true, never>;
6520
+ }
6038
6521
  declare class HeaderRoleComponent {
6039
6522
  /**
6040
- * Role text
6523
+ * Label text. Rendered as bold text in the title position when no title content is
6524
+ * projected via `[tedi-header-role-title]`. Projected content takes precedence and
6525
+ * replaces this string.
6041
6526
  */
6042
- role: _angular_core.InputSignal<string>;
6527
+ label: _angular_core.InputSignal<string>;
6043
6528
  /**
6044
6529
  * Description text
6045
6530
  */
6046
6531
  description: _angular_core.InputSignal<string>;
6047
- /** Should show input in representative list?
6532
+ /**
6533
+ * Whether the consumer projected title content (e.g. `<tedi-tag tedi-header-role-title>`)
6534
+ * via the `[tedi-header-role-title]` slot. Used by the template to know whether the
6535
+ * title position has content even when `label` is empty.
6536
+ */
6537
+ protected readonly titleContent: _angular_core.Signal<HeaderRoleTitleDirective | undefined>;
6538
+ protected readonly hasTitle: _angular_core.Signal<boolean>;
6539
+ /**
6540
+ * Projected custom content that replaces the default representative list.
6541
+ */
6542
+ protected readonly customContent: _angular_core.Signal<HeaderRoleContentDirective | undefined>;
6543
+ protected readonly hasCustomContent: _angular_core.Signal<boolean>;
6544
+ protected readonly customContentTemplate: _angular_core.Signal<TemplateRef<any> | null>;
6545
+ protected readonly noResultsContent: _angular_core.Signal<HeaderRoleNoResultsDirective | undefined>;
6546
+ protected readonly hasNoResultsContent: _angular_core.Signal<boolean>;
6547
+ protected readonly noResultsTemplate: _angular_core.Signal<TemplateRef<any> | null>;
6548
+ /**
6549
+ * Whether to display the search input above the representative list.
6048
6550
  * @default false
6049
6551
  */
6050
- showInput: _angular_core.InputSignal<boolean>;
6552
+ showSearch: _angular_core.InputSignal<boolean>;
6553
+ /**
6554
+ * Whether the search input shows a clear button.
6555
+ * @default false
6556
+ */
6557
+ searchClearable: _angular_core.InputSignal<boolean>;
6558
+ /**
6559
+ * Whether to clear the search input when a representative is selected.
6560
+ * @default true
6561
+ */
6562
+ clearSearchOnSelect: _angular_core.InputSignal<boolean>;
6563
+ /**
6564
+ * Whether the role represents an organization.
6565
+ * Affects the search input label.
6566
+ */
6567
+ isOrganization: _angular_core.InputSignal<boolean>;
6568
+ /**
6569
+ * Label for the search input when selecting a representative.
6570
+ * Falls back to i18n labels when not provided.
6571
+ */
6572
+ searchLabel: _angular_core.InputSignal<string | undefined>;
6573
+ /**
6574
+ * Label for the search input when selecting an organization representative.
6575
+ * Overrides both the default and `searchLabel` when `isOrganization` is true.
6576
+ */
6577
+ organizationSearchLabel: _angular_core.InputSignal<string | undefined>;
6578
+ /**
6579
+ * Whether to show the role selection toggle and dropdown.
6580
+ * When not set, defaults to showing the selection when there are multiple representatives.
6581
+ */
6582
+ showRoleSwitch: _angular_core.InputSignal<boolean | undefined>;
6051
6583
  /** List of representatives */
6052
6584
  representatives: _angular_core.InputSignal<Representative[]>;
6053
6585
  /** Current representative */
6054
6586
  currentRepresentative: _angular_core.ModelSignal<Representative>;
6587
+ /**
6588
+ * Emits when the role selection (mobile collapse on tablet/mobile, popover on
6589
+ * desktop) opens or closes.
6590
+ */
6591
+ readonly roleSelectionToggle: _angular_core.OutputEmitterRef<boolean>;
6055
6592
  mobileOpen: _angular_core.WritableSignal<boolean>;
6056
6593
  inputValue: _angular_core.WritableSignal<string>;
6594
+ protected readonly inputId: string;
6595
+ readonly breakpointService: BreakpointService;
6596
+ readonly isTabletView: _angular_core.Signal<boolean>;
6597
+ protected readonly hasRoleSelection: _angular_core.Signal<boolean>;
6598
+ private readonly popover;
6599
+ private readonly searchInput;
6600
+ private previousPopoverOpen;
6601
+ private readonly parentProfile;
6602
+ constructor();
6057
6603
  translationService: TediTranslationService;
6058
6604
  switchRoleText: _angular_core.Signal<string>;
6059
6605
  closeText: _angular_core.Signal<string>;
6606
+ private defaultSearchText;
6607
+ private defaultOrgSearchText;
6060
6608
  searchText: _angular_core.Signal<string>;
6061
6609
  noResultsText: _angular_core.Signal<string>;
6062
6610
  collapseText: _angular_core.Signal<string>;
6063
6611
  filteredRepresentatives: _angular_core.Signal<Representative[]>;
6612
+ closeIfOtherRoleActive(active: unknown, isOpen: boolean): void;
6064
6613
  handleMobileOpen(): void;
6065
6614
  handleSelectRepresentative(r: Representative): void;
6066
6615
  handleInputChange(event: Event): void;
6616
+ trackById: (_: number, r: Representative) => string;
6617
+ protected resolveIcon(icon: string | RepresentativeIcon | undefined): {
6618
+ name: string;
6619
+ size: IconSize;
6620
+ } | null;
6067
6621
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<HeaderRoleComponent, never>;
6068
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<HeaderRoleComponent, "tedi-header-role", never, { "role": { "alias": "role"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "showInput": { "alias": "showInput"; "required": false; "isSignal": true; }; "representatives": { "alias": "representatives"; "required": true; "isSignal": true; }; "currentRepresentative": { "alias": "currentRepresentative"; "required": true; "isSignal": true; }; }, { "currentRepresentative": "currentRepresentativeChange"; }, never, never, true, never>;
6622
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<HeaderRoleComponent, "tedi-header-role", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "showSearch": { "alias": "showSearch"; "required": false; "isSignal": true; }; "searchClearable": { "alias": "searchClearable"; "required": false; "isSignal": true; }; "clearSearchOnSelect": { "alias": "clearSearchOnSelect"; "required": false; "isSignal": true; }; "isOrganization": { "alias": "isOrganization"; "required": false; "isSignal": true; }; "searchLabel": { "alias": "searchLabel"; "required": false; "isSignal": true; }; "organizationSearchLabel": { "alias": "organizationSearchLabel"; "required": false; "isSignal": true; }; "showRoleSwitch": { "alias": "showRoleSwitch"; "required": false; "isSignal": true; }; "representatives": { "alias": "representatives"; "required": true; "isSignal": true; }; "currentRepresentative": { "alias": "currentRepresentative"; "required": true; "isSignal": true; }; }, { "currentRepresentative": "currentRepresentativeChange"; "roleSelectionToggle": "roleSelectionToggle"; }, ["titleContent", "customContent", "noResultsContent"], ["[tedi-header-role-title]"], true, never>;
6623
+ }
6624
+
6625
+ type HeaderSearchMobileVariant = "modal" | "inline";
6626
+ interface HeaderSearchMobileLabels {
6627
+ /** Label shown on the mobile toggle button. Falls back to the `header.search` translation. */
6628
+ button?: string;
6629
+ /** Title shown in the mobile modal heading. Falls back to the `header.search` translation. */
6630
+ modalTitle?: string;
6631
+ }
6632
+ declare class HeaderSearchComponent {
6633
+ /**
6634
+ * Behavior on mobile viewports (below the `md` breakpoint).
6635
+ * - `'modal'` shows a toggle button that opens a fullscreen native dialog containing the projected content.
6636
+ * - `'inline'` renders the projected content inline at all breakpoints (no toggle, no dialog).
6637
+ * @default "modal"
6638
+ */
6639
+ readonly mobileVariant: _angular_core.InputSignal<HeaderSearchMobileVariant>;
6640
+ /**
6641
+ * Mobile-specific labels for the toggle button and the modal title.
6642
+ * When omitted, both fall back to the `header.search` translation key.
6643
+ */
6644
+ readonly mobileLabels: _angular_core.InputSignal<HeaderSearchMobileLabels>;
6645
+ /**
6646
+ * Disables the mobile toggle button. Has no effect on desktop or in the `inline` variant.
6647
+ * @default false
6648
+ */
6649
+ readonly disabled: _angular_core.InputSignal<boolean>;
6650
+ protected readonly translationService: TediTranslationService;
6651
+ protected readonly isMobile: _angular_core.Signal<boolean>;
6652
+ protected readonly modalOpen: _angular_core.WritableSignal<boolean>;
6653
+ protected readonly dialogEl: _angular_core.Signal<ElementRef<HTMLDialogElement> | undefined>;
6654
+ protected readonly buttonLabel: _angular_core.Signal<string>;
6655
+ protected readonly modalTitle: _angular_core.Signal<string>;
6656
+ protected readonly closeLabel: _angular_core.Signal<string>;
6657
+ constructor();
6658
+ protected open(): void;
6659
+ protected close(): void;
6660
+ protected onDialogClose(): void;
6661
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HeaderSearchComponent, never>;
6662
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<HeaderSearchComponent, "tedi-header-search", never, { "mobileVariant": { "alias": "mobileVariant"; "required": false; "isSignal": true; }; "mobileLabels": { "alias": "mobileLabels"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
6069
6663
  }
6070
6664
 
6071
6665
  declare class SideNavDropdownComponent implements AfterViewInit {
@@ -6936,6 +7530,6 @@ declare const TEDI_THEME_DEFAULT_TOKEN: InjectionToken<string>;
6936
7530
 
6937
7531
  declare const TEDI_TRANSLATION_DEFAULT_TOKEN: InjectionToken<Language>;
6938
7532
 
6939
- export { AVAILABLE_LANGUAGES, AccordionComponent, AccordionItemComponent, AccordionItemContentComponent, AccordionItemHeaderComponent, AlertComponent, AttachmentActionsComponent, AttachmentComponent, BREAKPOINTS, BaseButtonDirective, BreakpointService, ButtonComponent, ButtonGroupButtonDirective, ButtonGroupComponent, CardButtonComponent, CardComponent, CardContentComponent, CardHeaderComponent, CardIconComponent, CardRowComponent, CarouselComponent, CarouselContentComponent, CarouselFooterComponent, CarouselHeaderComponent, CarouselIndicatorsComponent, CarouselNavigationComponent, CarouselSlideDirective, CheckboxCardComponent, CheckboxCardGroupComponent, CheckboxComponent, CheckboxGroupComponent, ClosingButtonComponent, ColComponent, CollapseButtonComponent, CollapseComponent, DROPDOWN_API, DROPDOWN_CONTENT_API, DatePickerComponent, DropdownComponent, DropdownContentComponent, DropdownItemComponent, DropdownItemValueComponent, DropdownItemValueLabelComponent, DropdownItemValueMetaComponent, DropdownTriggerDirective, EllipsisComponent, EmptyStateComponent, FeedbackTextComponent, FilterComponent, FilterContentDirective, FilterGroupComponent, FilterPrependDirective, FooterBodyComponent, FooterBottomComponent, FooterComponent, FooterSectionComponent, FooterSideComponent, FormFieldComponent, HeaderActionsComponent, HeaderComponent, HeaderContentComponent, HeaderLanguageComponent, HeaderLoginComponent, HeaderLogoutComponent, HeaderProfileComponent, HeaderRoleComponent, HideAtDirective, HorizontalPushHandler, HorizontalStepperComponent, HorizontalStepperItemComponent, IconComponent, InfoButtonComponent, LANGUAGE_COOKIE_NAME, LANGUAGE_FALLBACK_VALUE, LabelComponent, LinkComponent, ListComponent, MODAL_DATA, MODAL_SIZE, ModalComponent, ModalContentComponent, ModalFooterComponent, ModalHeaderComponent, ModalRef, ModalService, NumberFieldComponent, PaginationComponent, PopoverComponent, PopoverContentComponent, PopoverTriggerDirective, ProgressBarComponent, RadioCardComponent, RadioCardGroupComponent, RadioComponent, RadioGroupComponent, RowComponent, ScrollFadeComponent, SelectComponent, SelectOptionTemplateDirective, SelectValueTemplateDirective, SeparatorComponent, ShowAtDirective, SideNavComponent, SideNavDropdownComponent, SideNavDropdownGroupComponent, SideNavDropdownItemComponent, SideNavGroupTitleComponent, SideNavItemComponent, SideNavOverlayComponent, SideNavToggleComponent, SpecialOptionControls, SpinnerComponent, StatusBadgeComponent, StatusIndicatorComponent, TEDI_FORM_FIELD_CONTROL, TEDI_TABLE_CONTEXT, TEDI_THEME_DEFAULT_TOKEN, TEDI_TRANSLATION_DEFAULT_TOKEN, THEME_CLASS_PREFIX, THEME_COOKIE_NAME, THEME_FALLBACK_VALUE, TOAST_DEFAULT_DURATION, TagComponent, TediPaginationResultsDirective, TediTableColumnsMenuComponent, TediTableComponent, TediTableHeaderButtonComponent, TediTableToolbarComponent, TediTranslationPipe, TediTranslationService, TextComponent, TextFieldComponent, TextGroupComponent, TextGroupLabelComponent, TextGroupValueComponent, ThemeService, TimeFieldComponent, TimePickerComponent, TimelineComponent, TimelineDescriptionComponent, TimelineItemComponent, TimelineTimingsBottomDirective, TimelineTitleComponent, ToastComponent, ToastService, ToggleComponent, TooltipComponent, TooltipContentComponent, TooltipTriggerComponent, VerticalSpacingDirective, VerticalSpacingItemDirective, breakpointInput, calculateArrowOffset, createTablePersistence, generateUUID, getCardBorderPlacementColor, getPaddingCssVariables, getPlacementFromPositionChange, groupRowSpan, injectTediTableContext, provideTedi, resolveCardBorderRadius, toConnectedPositions, usePagination };
6940
- export type { AlertRole, AlertTitleType, AlertType, AlertVariant, AlignItems, AlignSelf, ArrowOffset, ArrowType, AttachmentDirection, Breakpoint, BreakpointFlag, BreakpointInput, BreakpointInputs, BreakpointInputsWithoutSignals, BreakpointObject, BulletColor, ButtonGroupDropdownLabelMode, ButtonSize, ButtonVariant, CardBackground, CardBorderPlacement, CardBorderRadius, CardBorderType, CardContentInputs, CardIconSize, CardIconType, CardInputs, CardPadding, CardPaddingNumber, CardResolvedCorners, CarouselIndicatorsVariant, CheckboxCardVariant, CheckboxGroupDirection, CheckboxSize, ClosingButtonIconSize, ClosingButtonSize, ColInputs, ColWidth, CollapseButtonArrowType, CollapseButtonSize, CollapseSize, Cols, ColumnReorderPhase, CompareWithFn, ComponentInputs, DatePickerDay, DatePickerInputSize, DatePickerInputState, DatePickerMatcher, DatePickerSelectorMode, DatePickerView, DropdownApi, DropdownContentApi, DropdownItemValueLayout, DropdownItemValueType, DropdownPosition, DropdownRole, DropdownTriggerAriaHasPopup, EllipsisPosition, EmptyStateSize, EmptyStateType, FeedbackTextPosition, FeedbackTextType, FilterOption, FilterSize, FilterVariant, FooterSidePlacement, FooterSidePosition, FormFieldControl, FormFieldIcon, Gap, GroupByFn, HeaderLanguage, HorizontalStepperBackground, IconBackgroundColor, IconColor, IconSize, IconType, IconVariant, InputSize, InputState, JustifyItems, JustifySelf, LabelColor, LabelSize, Language, LinkInputs, LinkSize, LinkVariant, ModalConfig, ModalFullscreen, ModalPosition, ModalScrollBehavior, ModalSize, ModalWidth, ModalWidthPreset, NumberFieldSize, OverlayPosition, OverlaySide, PaginationBackground, PaginationDividerPosition, PaginationItem, PaginationItemType, PaginationLabels, PaginationVisibility, PopoverPosition, PopoverWidth, ProgressBarInputs, ProgressBarLabelPosition, ProgressBarSize, ProgressBarValuePosition, RadioCardVariant, RadioGroupDirection, RadioSize, Representative, RowInputs, ScrollFadePosition, ScrollFadeScrollbar, ScrollFadeSize, SelectInputSize, SelectOption, SelectOptionContext, SelectOptionGroup, SelectValueContext, SeparatorAxis, SeparatorColor, SeparatorDotSize, SeparatorSpacing, SeparatorSpacingValue, SeparatorThickness, SeparatorVariant, SideNavItemSize, SpinnerColor, SpinnerSize, StatusBadgeColor, StatusBadgeSize, StatusBadgeStatus, StatusBadgeVariant, StatusIndicatorPosition, StatusIndicatorSize, StatusIndicatorType, TEDITheme, TableColumnMeta, TableExpandTrigger, TableFilterOptions, TablePaginationOptions, TablePersistOptions, TablePersistenceController, TableSelectionMode, TableSize, TableState, TableStatePatch, TagEllipsis, TagType, TediColumnDef, TediConfig, TediTableContextValue, TediTableFilterContext, TextColor, TextGroupInputs, TextGroupType, TextModifiers, Theme, TimeFieldFullscreen, TimeFieldModal, TimeFieldPickerTrigger, TimeFieldPickerVariant, TimeFieldUseNativePicker, TimePickerVariant, TimelineCardPadding, TimelineVariant, ToastConfig, ToastPosition, ToastRole, ToastType, ToggleSize, ToggleType, ToggleVariant, TooltipOpenWith, TooltipPosition, TooltipWidth, UsePaginationArgs, VerticalSpacingSize };
7533
+ export { AVAILABLE_LANGUAGES, AccordionComponent, AccordionItemComponent, AccordionItemContentComponent, AccordionItemHeaderComponent, AlertComponent, AttachmentActionsComponent, AttachmentComponent, BREAKPOINTS, BaseButtonDirective, BreakpointService, ButtonComponent, ButtonGroupButtonDirective, ButtonGroupComponent, CardButtonComponent, CardComponent, CardContentComponent, CardHeaderComponent, CardIconComponent, CardRowComponent, CarouselComponent, CarouselContentComponent, CarouselFooterComponent, CarouselHeaderComponent, CarouselIndicatorsComponent, CarouselNavigationComponent, CarouselSlideDirective, CheckboxCardComponent, CheckboxCardGroupComponent, CheckboxComponent, CheckboxGroupComponent, ClosingButtonComponent, ColComponent, CollapseButtonComponent, CollapseComponent, DROPDOWN_API, DROPDOWN_CONTENT_API, DatePickerComponent, DropdownComponent, DropdownContentComponent, DropdownItemComponent, DropdownItemValueComponent, DropdownItemValueLabelComponent, DropdownItemValueMetaComponent, DropdownTriggerDirective, EllipsisComponent, EmptyStateComponent, FeedbackTextComponent, FilterComponent, FilterContentDirective, FilterGroupComponent, FilterPrependDirective, FooterBodyComponent, FooterBottomComponent, FooterComponent, FooterSectionComponent, FooterSideComponent, FormFieldComponent, HeaderActionsComponent, HeaderBottomComponent, HeaderComponent, HeaderContentComponent, HeaderLanguageComponent, HeaderLoginComponent, HeaderLogoComponent, HeaderLogoDarkDirective, HeaderLogoutComponent, HeaderMobileButtonComponent, HeaderProfileComponent, HeaderRoleComponent, HeaderRoleContentDirective, HeaderRoleNoResultsDirective, HeaderRoleTitleDirective, HeaderSearchComponent, HideAtDirective, HorizontalPushHandler, HorizontalStepperComponent, HorizontalStepperItemComponent, IconComponent, InfoButtonComponent, LANGUAGE_COOKIE_NAME, LANGUAGE_FALLBACK_VALUE, LabelComponent, LinkComponent, ListComponent, MODAL_DATA, MODAL_SIZE, ModalComponent, ModalContentComponent, ModalFooterComponent, ModalHeaderComponent, ModalRef, ModalService, NumberFieldComponent, PaginationComponent, PopoverComponent, PopoverContentComponent, PopoverTriggerDirective, ProgressBarComponent, RadioCardComponent, RadioCardGroupComponent, RadioComponent, RadioGroupComponent, RowComponent, ScrollFadeComponent, SelectComponent, SelectOptionTemplateDirective, SelectValueTemplateDirective, SeparatorComponent, ShowAtDirective, SideNavComponent, SideNavDropdownComponent, SideNavDropdownGroupComponent, SideNavDropdownItemComponent, SideNavGroupTitleComponent, SideNavItemComponent, SideNavOverlayComponent, SideNavToggleComponent, SpecialOptionControls, SpinnerComponent, StatusBadgeComponent, StatusIndicatorComponent, TEDI_FORM_FIELD_CONTROL, TEDI_TABLE_CONTEXT, TEDI_THEME_DEFAULT_TOKEN, TEDI_TRANSLATION_DEFAULT_TOKEN, THEME_CLASS_PREFIX, THEME_COOKIE_NAME, THEME_FALLBACK_VALUE, TOAST_DEFAULT_DURATION, TagComponent, TediPaginationResultsDirective, TediTableColumnsMenuComponent, TediTableComponent, TediTableHeaderButtonComponent, TediTableToolbarComponent, TediTranslationPipe, TediTranslationService, TextComponent, TextFieldComponent, TextGroupComponent, TextGroupLabelComponent, TextGroupValueComponent, ThemeService, TimeFieldComponent, TimePickerComponent, TimelineComponent, TimelineDescriptionComponent, TimelineItemComponent, TimelineTimingsBottomDirective, TimelineTitleComponent, ToastComponent, ToastService, ToggleComponent, TooltipComponent, TooltipContentComponent, TooltipTriggerComponent, VerticalSpacingDirective, VerticalSpacingItemDirective, breakpointInput, calculateArrowOffset, computeGroupSpans, createTablePersistence, generateUUID, getCardBorderPlacementColor, getPaddingCssVariables, getPlacementFromPositionChange, groupRowSpan, injectTediTableContext, provideTedi, resolveCardBorderRadius, toConnectedPositions, usePagination };
7534
+ export type { AlertRole, AlertTitleType, AlertType, AlertVariant, AlignItems, AlignSelf, ArrowOffset, ArrowType, AttachmentDirection, Breakpoint, BreakpointFlag, BreakpointInput, BreakpointInputs, BreakpointInputsWithoutSignals, BreakpointObject, BulletColor, ButtonGroupDropdownLabelMode, ButtonSize, ButtonVariant, CardBackground, CardBorderPlacement, CardBorderRadius, CardBorderType, CardContentInputs, CardIconSize, CardIconType, CardInputs, CardPadding, CardPaddingNumber, CardResolvedCorners, CarouselIndicatorsVariant, CheckboxCardVariant, CheckboxGroupDirection, CheckboxSize, ClosingButtonIconSize, ClosingButtonSize, ColInputs, ColWidth, CollapseButtonArrowType, CollapseButtonSize, CollapseSize, Cols, ColumnReorderPhase, CompareWithFn, ComponentInputs, DatePickerDay, DatePickerInputSize, DatePickerInputState, DatePickerMatcher, DatePickerSelectorMode, DatePickerView, DropdownApi, DropdownContentApi, DropdownItemValueLayout, DropdownItemValueType, DropdownPosition, DropdownRole, DropdownTriggerAriaHasPopup, EllipsisPosition, EmptyStateSize, EmptyStateType, FeedbackTextPosition, FeedbackTextType, FilterOption, FilterSize, FilterVariant, FooterSidePlacement, FooterSidePosition, FormFieldControl, FormFieldIcon, Gap, GroupByFn, HeaderContentAlignment, HeaderLanguage, HeaderLoginInputs, HeaderLoginSize, HeaderLogoutInputs, HeaderLogoutSize, HeaderProfileInputs, HeaderProfileSize, HeaderSearchMobileLabels, HeaderSearchMobileVariant, HorizontalStepperBackground, IconBackgroundColor, IconColor, IconSize, IconType, IconVariant, InputSize, InputState, JustifyItems, JustifySelf, LabelColor, LabelSize, Language, LinkInputs, LinkSize, LinkVariant, ModalConfig, ModalFullscreen, ModalPosition, ModalScrollBehavior, ModalSize, ModalWidth, ModalWidthPreset, NumberFieldSize, OverlayPosition, OverlaySide, PaginationBackground, PaginationDividerPosition, PaginationItem, PaginationItemType, PaginationLabels, PaginationVisibility, PopoverPosition, PopoverWidth, ProgressBarInputs, ProgressBarLabelPosition, ProgressBarSize, ProgressBarValuePosition, RadioCardVariant, RadioGroupDirection, RadioSize, Representative, RepresentativeIcon, RowInputs, ScrollFadePosition, ScrollFadeScrollbar, ScrollFadeSize, SelectInputSize, SelectOption, SelectOptionContext, SelectOptionGroup, SelectValueContext, SeparatorAxis, SeparatorColor, SeparatorDotSize, SeparatorSpacing, SeparatorSpacingValue, SeparatorThickness, SeparatorVariant, SideNavItemSize, SpinnerColor, SpinnerSize, StatusBadgeColor, StatusBadgeSize, StatusBadgeStatus, StatusBadgeVariant, StatusIndicatorPosition, StatusIndicatorSize, StatusIndicatorType, TEDITheme, TableColumnMeta, TableControlColumn, TableExpandTrigger, TableFilterOptions, TablePaginationOptions, TablePersistOptions, TablePersistenceController, TableSelectionMode, TableSize, TableState, TableStatePatch, TagEllipsis, TagType, TediColumnDef, TediConfig, TediTableContextValue, TediTableFilterContext, TextColor, TextGroupInputs, TextGroupType, TextModifiers, Theme, TimeFieldFullscreen, TimeFieldModal, TimeFieldPickerTrigger, TimeFieldPickerVariant, TimeFieldUseNativePicker, TimePickerVariant, TimelineCardPadding, TimelineVariant, ToastConfig, ToastPosition, ToastRole, ToastType, ToggleSize, ToggleType, ToggleVariant, TooltipOpenWith, TooltipPosition, TooltipWidth, UsePaginationArgs, VerticalSpacingSize };
6941
7535
  //# sourceMappingURL=index.d.ts.map