@tedi-design-system/angular 7.1.0-rc.2 → 7.1.0-rc.21

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
@@ -1,5 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { AfterContentChecked, AfterViewInit, InputSignal, Signal, PipeTransform, OnInit, OnDestroy, ElementRef, TemplateRef, Injector, InjectionToken, WritableSignal, AfterViewChecked, AfterContentInit, QueryList, EnvironmentProviders } from '@angular/core';
2
+ import { AfterContentChecked, AfterViewInit, InputSignal, Signal, PipeTransform, OnInit, OnDestroy, TemplateRef, ElementRef, Injector, InjectionToken, WritableSignal, AfterViewChecked, AfterContentInit, QueryList, EnvironmentProviders } from '@angular/core';
3
3
  import { _IdGenerator } from '@angular/cdk/a11y';
4
4
  import * as _tedi_design_system_angular_tedi from '@tedi-design-system/angular/tedi';
5
5
  import { ControlValueAccessor, NgControl } from '@angular/forms';
@@ -358,6 +358,13 @@ declare const translationsMap: {
358
358
  en: string;
359
359
  ru: string;
360
360
  };
361
+ "breadcrumbs.show-more": {
362
+ description: string;
363
+ components: string[];
364
+ et: string;
365
+ en: string;
366
+ ru: string;
367
+ };
361
368
  more: {
362
369
  components: string[];
363
370
  et: string;
@@ -812,6 +819,34 @@ declare const translationsMap: {
812
819
  en: string;
813
820
  ru: string;
814
821
  };
822
+ "table.select-column": {
823
+ description: string;
824
+ components: string[];
825
+ et: string;
826
+ en: string;
827
+ ru: string;
828
+ };
829
+ "table.expand-column": {
830
+ description: string;
831
+ components: string[];
832
+ et: string;
833
+ en: string;
834
+ ru: string;
835
+ };
836
+ "table.reorder-column": {
837
+ description: string;
838
+ components: string[];
839
+ et: string;
840
+ en: string;
841
+ ru: string;
842
+ };
843
+ "table.scroll-region": {
844
+ description: string;
845
+ components: string[];
846
+ et: string;
847
+ en: string;
848
+ ru: string;
849
+ };
815
850
  "table.expand-row": {
816
851
  description: string;
817
852
  components: string[];
@@ -910,6 +945,13 @@ declare const translationsMap: {
910
945
  en: string;
911
946
  ru: string;
912
947
  };
948
+ "scroll-fade.label": {
949
+ description: string;
950
+ components: string[];
951
+ et: string;
952
+ en: string;
953
+ ru: string;
954
+ };
913
955
  "pagination.title": {
914
956
  description: string;
915
957
  components: string[];
@@ -1512,6 +1554,13 @@ declare const translationsMap: {
1512
1554
  en: string;
1513
1555
  ru: string;
1514
1556
  };
1557
+ "time-picker.times": {
1558
+ description: string;
1559
+ components: string[];
1560
+ et: string;
1561
+ en: string;
1562
+ ru: string;
1563
+ };
1515
1564
  "time-field.clear": {
1516
1565
  description: string;
1517
1566
  components: string[];
@@ -2571,12 +2620,10 @@ type TextGroupInputs = {
2571
2620
  */
2572
2621
  labelWidth: string | undefined;
2573
2622
  };
2574
- declare class TextGroupComponent implements BreakpointInputs<TextGroupInputs>, AfterContentChecked {
2623
+ declare class TextGroupComponent implements BreakpointInputs<TextGroupInputs> {
2575
2624
  type: _angular_core.InputSignal<TextGroupType>;
2576
2625
  labelWidth: _angular_core.InputSignal<string | undefined>;
2577
2626
  breakpointService: BreakpointService;
2578
- readonly textGroupLabel: _angular_core.Signal<ElementRef<any> | undefined>;
2579
- readonly labelText: _angular_core.WritableSignal<string | null>;
2580
2627
  xs: _angular_core.InputSignal<TextGroupInputs | undefined>;
2581
2628
  sm: _angular_core.InputSignal<TextGroupInputs | undefined>;
2582
2629
  md: _angular_core.InputSignal<TextGroupInputs | undefined>;
@@ -2585,9 +2632,8 @@ declare class TextGroupComponent implements BreakpointInputs<TextGroupInputs>, A
2585
2632
  xxl: _angular_core.InputSignal<TextGroupInputs | undefined>;
2586
2633
  breakpointInputs: _angular_core.Signal<TextGroupInputs>;
2587
2634
  classes: _angular_core.Signal<string>;
2588
- ngAfterContentChecked(): void;
2589
2635
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TextGroupComponent, never>;
2590
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TextGroupComponent, "tedi-text-group", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "labelWidth": { "alias": "labelWidth"; "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; }; }, {}, ["textGroupLabel"], ["tedi-text-group-label", "tedi-text-group-value"], true, never>;
2636
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TextGroupComponent, "tedi-text-group", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "labelWidth": { "alias": "labelWidth"; "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, ["tedi-text-group-label", "tedi-text-group-value"], true, never>;
2591
2637
  }
2592
2638
 
2593
2639
  declare class TextGroupLabelComponent {
@@ -2615,6 +2661,8 @@ declare class CarouselContentComponent implements AfterViewInit, OnDestroy {
2615
2661
  readonly fade: _angular_core.InputSignal<boolean>;
2616
2662
  /** Transition duration in ms */
2617
2663
  readonly transitionMs: _angular_core.InputSignal<number>;
2664
+ /** Accessible label for the carousel region. Falls back to the `carousel` translation. */
2665
+ readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
2618
2666
  readonly translationService: TediTranslationService;
2619
2667
  private readonly breakpointService;
2620
2668
  private readonly host;
@@ -2622,6 +2670,7 @@ declare class CarouselContentComponent implements AfterViewInit, OnDestroy {
2622
2670
  readonly track: _angular_core.Signal<ElementRef<HTMLDivElement>>;
2623
2671
  readonly slideElements: _angular_core.Signal<readonly ElementRef<HTMLDivElement>[]>;
2624
2672
  readonly slides: _angular_core.Signal<readonly CarouselSlideDirective[]>;
2673
+ readonly resolvedAriaLabel: _angular_core.Signal<string>;
2625
2674
  readonly trackIndex: _angular_core.WritableSignal<number>;
2626
2675
  readonly animate: _angular_core.WritableSignal<boolean>;
2627
2676
  readonly viewportWidth: _angular_core.WritableSignal<number>;
@@ -2678,7 +2727,7 @@ declare class CarouselContentComponent implements AfterViewInit, OnDestroy {
2678
2727
  */
2679
2728
  announceSlideChange(): void;
2680
2729
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CarouselContentComponent, never>;
2681
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<CarouselContentComponent, "tedi-carousel-content", never, { "slidesPerView": { "alias": "slidesPerView"; "required": false; "isSignal": true; }; "gap": { "alias": "gap"; "required": false; "isSignal": true; }; "fade": { "alias": "fade"; "required": false; "isSignal": true; }; "transitionMs": { "alias": "transitionMs"; "required": false; "isSignal": true; }; }, {}, ["slides"], never, true, never>;
2730
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CarouselContentComponent, "tedi-carousel-content", never, { "slidesPerView": { "alias": "slidesPerView"; "required": false; "isSignal": true; }; "gap": { "alias": "gap"; "required": false; "isSignal": true; }; "fade": { "alias": "fade"; "required": false; "isSignal": true; }; "transitionMs": { "alias": "transitionMs"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, ["slides"], never, true, never>;
2682
2731
  }
2683
2732
 
2684
2733
  declare class CarouselComponent {
@@ -3080,12 +3129,12 @@ declare class CalendarComponent implements ControlValueAccessor {
3080
3129
  */
3081
3130
  readonly shouldDisableYear: _angular_core.InputSignal<YearPredicate$1 | undefined>;
3082
3131
  /**
3083
- * Earliest year offered in the year grid/dropdown. Defaults to 10 years before
3084
- * the current year when `null`.
3132
+ * Earliest year offered in the year grid/dropdown. Defaults to 100 years
3133
+ * before the current year when `null`.
3085
3134
  */
3086
3135
  readonly minYear: _angular_core.InputSignal<number | null>;
3087
3136
  /**
3088
- * Latest year offered in the year grid/dropdown. Defaults to 10 years after
3137
+ * Latest year offered in the year grid/dropdown. Defaults to 20 years after
3089
3138
  * the current year when `null`.
3090
3139
  */
3091
3140
  readonly maxYear: _angular_core.InputSignal<number | null>;
@@ -3245,12 +3294,20 @@ declare class PopoverTriggerDirective {
3245
3294
  * @default false
3246
3295
  */
3247
3296
  readonly underline: _angular_core.InputSignal<boolean>;
3297
+ /**
3298
+ * When `false`, the trigger drops its `button` role and dialog ARIA
3299
+ * (`aria-haspopup`, `aria-expanded`, `aria-controls`). Use this when the element
3300
+ * is only a positioning anchor and an inner control is the real, labelled trigger
3301
+ * — e.g. a field wrapper whose icon button opens the popover.
3302
+ * @default true
3303
+ */
3304
+ readonly interactive: _angular_core.InputSignal<boolean>;
3248
3305
  readonly host: ElementRef<HTMLElement>;
3249
3306
  readonly popover: PopoverComponent;
3250
3307
  readonly overlayOrigin: CdkOverlayOrigin;
3251
3308
  onClick(): void;
3252
3309
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<PopoverTriggerDirective, never>;
3253
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PopoverTriggerDirective, "[tedi-popover-trigger]", never, { "underline": { "alias": "underline"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof _angular_cdk_overlay.CdkOverlayOrigin; inputs: {}; outputs: {}; }]>;
3310
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PopoverTriggerDirective, "[tedi-popover-trigger]", never, { "underline": { "alias": "underline"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof _angular_cdk_overlay.CdkOverlayOrigin; inputs: {}; outputs: {}; }]>;
3254
3311
  }
3255
3312
 
3256
3313
  type PopoverPosition = OverlayPosition;
@@ -3336,6 +3393,16 @@ declare class PopoverComponent {
3336
3393
  private getPageFocusableElements;
3337
3394
  private focusElementAfterTrigger;
3338
3395
  private focusElementBeforeTrigger;
3396
+ /**
3397
+ * Whether the target is inside this popover's own overlay or a child overlay
3398
+ * opened from within it — such interactions must not dismiss the popover.
3399
+ *
3400
+ * Child overlays (e.g. a date-picker month dropdown) share the CDK overlay
3401
+ * container but render in their own pane, stacked ON TOP (after this pane in
3402
+ * DOM order). An overlay stacked BELOW (e.g. a tedi-modal hosting this
3403
+ * popover) precedes this pane, so clicking it must dismiss.
3404
+ */
3405
+ private isInsideOverlay;
3339
3406
  private handleClosePopoverEvent;
3340
3407
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<PopoverComponent, never>;
3341
3408
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<PopoverComponent, "tedi-popover", never, { "position": { "alias": "position"; "required": false; "isSignal": true; }; "preventOverflow": { "alias": "preventOverflow"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "hideOnScroll": { "alias": "hideOnScroll"; "required": false; "isSignal": true; }; "withBorder": { "alias": "withBorder"; "required": false; "isSignal": true; }; "withArrow": { "alias": "withArrow"; "required": false; "isSignal": true; }; "lockScroll": { "alias": "lockScroll"; "required": false; "isSignal": true; }; "timeoutDelay": { "alias": "timeoutDelay"; "required": false; "isSignal": true; }; }, {}, ["popoverTrigger", "popoverContent"], ["[tedi-popover-trigger]", "tedi-popover-content"], true, never>;
@@ -3934,6 +4001,16 @@ declare class TediTableComponent<TData> {
3934
4001
  * @default undefined
3935
4002
  */
3936
4003
  readonly getSubRows: _angular_core.InputSignal<((row: TData) => TData[] | undefined) | undefined>;
4004
+ /**
4005
+ * Accessor returning a stable, unique id for a row, passed straight through
4006
+ * to TanStack's `getRowId`. By default rows are keyed by their index, so
4007
+ * selection / expansion state breaks as soon as the data changes (filtering,
4008
+ * adding, removing, reordering rows). Key by an entity id instead — e.g.
4009
+ * `getRowId: (row) => row.id` — to keep `rowSelection` / `expanded` stable
4010
+ * across data updates and controllable from the outside by that id.
4011
+ * @default undefined
4012
+ */
4013
+ readonly getRowId: _angular_core.InputSignal<((originalRow: TData, index: number, parent?: Row<TData>) => string) | undefined>;
3937
4014
  /**
3938
4015
  * Table-level row grouping key. When set, consecutive rendered rows with an
3939
4016
  * equal key form a group, and:
@@ -4094,6 +4171,7 @@ declare class TediTableComponent<TData> {
4094
4171
  */
4095
4172
  readonly rowDrop: _angular_core.OutputEmitterRef<CdkDragDrop<TData[], TData[], any>>;
4096
4173
  protected readonly injector: Injector;
4174
+ private readonly platformId;
4097
4175
  private readonly translation;
4098
4176
  private readonly _hoveredRowId;
4099
4177
  /**
@@ -4109,6 +4187,10 @@ declare class TediTableComponent<TData> {
4109
4187
  protected readonly rowDetailsLabel: Signal<string>;
4110
4188
  protected readonly dragColumnLabel: Signal<string>;
4111
4189
  protected readonly dragRowLabel: Signal<string>;
4190
+ protected readonly selectColumnLabel: Signal<string>;
4191
+ protected readonly expandColumnLabel: Signal<string>;
4192
+ protected readonly reorderColumnLabel: Signal<string>;
4193
+ protected readonly scrollRegionLabel: Signal<string>;
4112
4194
  /** Currently picked-up column id (during keyboard reordering), or `null`. */
4113
4195
  private readonly _pickedUpColumnId;
4114
4196
  /** Column order snapshot captured when picking up — restored on cancel. */
@@ -4208,6 +4290,14 @@ declare class TediTableComponent<TData> {
4208
4290
  protected readonly isSomePageRowsSelected: Signal<boolean>;
4209
4291
  constructor();
4210
4292
  private applyPatch;
4293
+ /**
4294
+ * Clears every active column filter in one call, resetting all `filterable`
4295
+ * columns at once. Routes through the same state machinery as the per-column
4296
+ * **Clear** buttons, so it updates internal state, respects a controlled
4297
+ * `state` input, and emits `(stateChange)`. Grab a component reference (e.g.
4298
+ * a template ref `#table` or `viewChild`) to call it from consumer code.
4299
+ */
4300
+ clearFilters(): void;
4211
4301
  protected handleRowClick(event: Event, row: Row<TData>): void;
4212
4302
  /**
4213
4303
  * True when the click originated on an interactive control between the event
@@ -4219,6 +4309,7 @@ declare class TediTableComponent<TData> {
4219
4309
  * the row is not interactive or no resolver is provided. */
4220
4310
  protected rowAriaLabelFor(row: Row<TData>): string | null;
4221
4311
  protected rowExpandsOnClick(row: Row<TData>): boolean;
4312
+ protected rowHasNestedInteractive(row: Row<TData>): boolean;
4222
4313
  protected handleRowMouseEnter(row: Row<TData>): void;
4223
4314
  protected handleRowMouseLeave(): void;
4224
4315
  /**
@@ -4320,6 +4411,14 @@ declare class TediTableComponent<TData> {
4320
4411
  protected handleHeaderKeydown(event: KeyboardEvent, header: {
4321
4412
  column: ReturnType<Table<TData>["getAllLeafColumns"]>[number];
4322
4413
  }): void;
4414
+ private readonly scrollContainer;
4415
+ /**
4416
+ * Resets the table's own vertical scroll to the top. Only affects the
4417
+ * internal scroll container (used when `maxHeight` is set); the horizontal
4418
+ * scroll position is preserved since columns are identical across pages, and
4419
+ * the window scroll is intentionally left untouched.
4420
+ */
4421
+ private resetScrollTop;
4323
4422
  protected handlePaginationPageChange(nextPage: number): void;
4324
4423
  protected handlePaginationPageSizeChange(nextSize: number | undefined): void;
4325
4424
  protected getColumnMeta(column: {
@@ -4328,7 +4427,7 @@ declare class TediTableComponent<TData> {
4328
4427
  };
4329
4428
  }): TableColumnMeta | undefined;
4330
4429
  protected getHeaderAriaSort(column: ReturnType<Table<TData>["getAllLeafColumns"]>[number]): "ascending" | "descending" | "none" | null;
4331
- protected getHeaderLabel(column: ReturnType<Table<TData>["getAllLeafColumns"]>[number]): string | null;
4430
+ protected getSrOnlyHeaderLabel(column: ReturnType<Table<TData>["getAllLeafColumns"]>[number]): string | null;
4332
4431
  protected resolveColumnLabel(column: ReturnType<Table<TData>["getAllLeafColumns"]>[number]): string;
4333
4432
  protected filterLabel(column: ReturnType<Table<TData>["getAllLeafColumns"]>[number]): string;
4334
4433
  protected filterPlaceholder(): string;
@@ -4409,6 +4508,7 @@ declare class TediTableComponent<TData> {
4409
4508
  * nothing.
4410
4509
  */
4411
4510
  private readonly filterDrafts;
4511
+ private readonly filterDraftBaselines;
4412
4512
  /**
4413
4513
  * Normalises `filterable: true | TableFilterOptions | undefined | false`
4414
4514
  * into `TableFilterOptions | null`. `null` means the column did not opt in.
@@ -4436,6 +4536,22 @@ declare class TediTableComponent<TData> {
4436
4536
  protected filterApplyLabel(): string;
4437
4537
  protected filterClearLabel(): string;
4438
4538
  private getFilterDraft;
4539
+ /**
4540
+ * Structural equality for filter values (strings, numbers, bigints, arrays,
4541
+ * plain objects). Filter values are consumer-supplied `unknown`, so the
4542
+ * comparison must never throw: reference-equal values (including equal
4543
+ * primitives and bigints) short-circuit, and anything JSON can't serialise
4544
+ * (bigint mismatches, cyclic structures) falls back to "changed".
4545
+ */
4546
+ private filterValuesEqual;
4547
+ /**
4548
+ * Realigns each open/created filter draft with the applied filter state
4549
+ * whenever the latter changes externally (`clearFilters()`, controlled
4550
+ * `state`, a removed filter chip). A draft is only overwritten when its
4551
+ * column's applied value actually moved since the draft last synced — so an
4552
+ * in-progress, unapplied draft (applied value unchanged) is left intact.
4553
+ */
4554
+ private reconcileFilterDrafts;
4439
4555
  /**
4440
4556
  * Called when the filter trigger button is clicked. If `clearOnClose` is
4441
4557
  * set, the draft is reset to the currently-applied value every time the
@@ -4471,7 +4587,7 @@ declare class TediTableComponent<TData> {
4471
4587
  };
4472
4588
  }, cellContext: CellContext<TData, unknown>): number | null;
4473
4589
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TediTableComponent<any>, never>;
4474
- 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>;
4590
+ 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; }; "getRowId": { "alias": "getRowId"; "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>;
4475
4591
  }
4476
4592
 
4477
4593
  declare const TEDI_TABLE_CONTEXT: InjectionToken<TediTableContextValue<unknown>>;
@@ -4673,6 +4789,14 @@ declare class DropdownItemValueComponent {
4673
4789
  * @default false
4674
4790
  */
4675
4791
  readonly disabled: _angular_core.InputSignal<boolean>;
4792
+ /**
4793
+ * The checkbox/radio only pictures the item's state — the item itself owns the
4794
+ * interaction. Cancelling the default action keeps the browser from toggling the
4795
+ * indicator on its own, which would leave it showing the opposite of `selected`.
4796
+ * The click is left to bubble, so hitting the indicator selects the item just
4797
+ * like hitting anywhere else on it.
4798
+ */
4799
+ onIndicatorClick(event: MouseEvent): void;
4676
4800
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DropdownItemValueComponent, never>;
4677
4801
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<DropdownItemValueComponent, "tedi-dropdown-item-value", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, ["tedi-icon, [tediIcon]", "tedi-dropdown-item-value-label", "tedi-dropdown-item-value-meta", "*"], true, never>;
4678
4802
  }
@@ -4778,12 +4902,13 @@ declare class DropdownComponent implements OnDestroy {
4778
4902
  private readonly document;
4779
4903
  private readonly renderer;
4780
4904
  private scrollListener?;
4905
+ private skipNextGestureOutsideClick;
4781
4906
  constructor();
4782
4907
  ngOnDestroy(): void;
4783
4908
  showDropdown(initialFocus?: "selected" | "first" | "last"): void;
4784
4909
  hideDropdown(): void;
4785
4910
  toggleDropdown(): void;
4786
- onOutsideClick(): void;
4911
+ onOutsideClick(event?: MouseEvent): void;
4787
4912
  handleFocusOut: (event: FocusEvent) => void;
4788
4913
  tabOutOfDropdown(shiftKey: boolean): void;
4789
4914
  focusFirstItem(): void;
@@ -5390,6 +5515,8 @@ declare class DateInputComponent implements AfterViewChecked {
5390
5515
  readonly showClear: _angular_core.Signal<boolean>;
5391
5516
  readonly iconAriaLabel: _angular_core.Signal<string>;
5392
5517
  readonly clearAriaLabel: _angular_core.Signal<string>;
5518
+ /** Moves focus to the text input. Used by the wrapping field. */
5519
+ focusInput(): void;
5393
5520
  handleInput(event: Event): void;
5394
5521
  handleIconClick(): void;
5395
5522
  handleTagRemove(id: string): void;
@@ -5422,6 +5549,12 @@ interface FormFieldControl<T = unknown> {
5422
5549
  * If implemented, the form field can trigger clearing the value.
5423
5550
  */
5424
5551
  clearField?(): void;
5552
+ /**
5553
+ * Optional method used when the field box itself is clicked. If implemented,
5554
+ * clicking the box padding — which is not part of the control's own hit area —
5555
+ * moves focus into the control, the way clicking the value does.
5556
+ */
5557
+ focus?(): void;
5425
5558
  }
5426
5559
  /**
5427
5560
  * Injection token used by `tedi-form-field` to obtain
@@ -5518,6 +5651,16 @@ declare class DateFieldComponent implements ControlValueAccessor, FormFieldContr
5518
5651
  * the calendar's year navigation/grid. Leave `undefined` to disable nothing.
5519
5652
  */
5520
5653
  readonly shouldDisableYear: _angular_core.InputSignal<YearPredicate | undefined>;
5654
+ /**
5655
+ * Earliest year offered in the calendar's year grid/dropdown. Defaults to 100
5656
+ * years before the current year when `null`.
5657
+ */
5658
+ readonly minYear: _angular_core.InputSignal<number | null>;
5659
+ /**
5660
+ * Latest year offered in the calendar's year grid/dropdown. Defaults to 20
5661
+ * years after the current year when `null`.
5662
+ */
5663
+ readonly maxYear: _angular_core.InputSignal<number | null>;
5521
5664
  /**
5522
5665
  * Whitelist of selectable days — an explicit `Date[]` or a predicate
5523
5666
  * `(date) => boolean`. Every other day is disabled.
@@ -5643,6 +5786,7 @@ declare class DateFieldComponent implements ControlValueAccessor, FormFieldContr
5643
5786
  registerOnTouched(fn: () => void): void;
5644
5787
  setDisabledState(isDisabled: boolean): void;
5645
5788
  setInvalidState(isInvalid: boolean): void;
5789
+ focus(): void;
5646
5790
  clearField(): void;
5647
5791
  handleClear(): void;
5648
5792
  handleIconClick(): void;
@@ -5670,7 +5814,7 @@ declare class DateFieldComponent implements ControlValueAccessor, FormFieldContr
5670
5814
  private toIsoDate;
5671
5815
  private queryNativeInput;
5672
5816
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DateFieldComponent, never>;
5673
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DateFieldComponent, "tedi-date-field", never, { "inputId": { "alias": "inputId"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "multiRow": { "alias": "multiRow"; "required": false; "isSignal": true; }; "tagEllipsis": { "alias": "tagEllipsis"; "required": false; "isSignal": true; }; "isTagRemovable": { "alias": "isTagRemovable"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabledMatchers": { "alias": "disabledMatchers"; "required": false; "isSignal": true; }; "inputDisabled": { "alias": "inputDisabled"; "required": false; "isSignal": true; }; "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "disablePast": { "alias": "disablePast"; "required": false; "isSignal": true; }; "disableFuture": { "alias": "disableFuture"; "required": false; "isSignal": true; }; "shouldDisableMonth": { "alias": "shouldDisableMonth"; "required": false; "isSignal": true; }; "shouldDisableYear": { "alias": "shouldDisableYear"; "required": false; "isSignal": true; }; "availableDays": { "alias": "availableDays"; "required": false; "isSignal": true; }; "unavailableDays": { "alias": "unavailableDays"; "required": false; "isSignal": true; }; "selectionLevel": { "alias": "selectionLevel"; "required": false; "isSignal": true; }; "monthYearSelectType": { "alias": "monthYearSelectType"; "required": false; "isSignal": true; }; "initialMonth": { "alias": "initialMonth"; "required": false; "isSignal": true; }; "localeCode": { "alias": "localeCode"; "required": false; "isSignal": true; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; "isSignal": true; }; "showOutsideDays": { "alias": "showOutsideDays"; "required": false; "isSignal": true; }; "showWeekNumbers": { "alias": "showWeekNumbers"; "required": false; "isSignal": true; }; "numberOfMonths": { "alias": "numberOfMonths"; "required": false; "isSignal": true; }; "enableCalendar": { "alias": "enableCalendar"; "required": false; "isSignal": true; }; "calendarTrigger": { "alias": "calendarTrigger"; "required": false; "isSignal": true; }; "useNativePicker": { "alias": "useNativePicker"; "required": false; "isSignal": true; }; "modal": { "alias": "modal"; "required": false; "isSignal": true; }; "fullscreen": { "alias": "fullscreen"; "required": false; "isSignal": true; }; "formatDate": { "alias": "formatDate"; "required": false; "isSignal": true; }; "parseDate": { "alias": "parseDate"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "openChange": "openChange"; }, never, ["[tediCalendarFooter]"], true, never>;
5817
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DateFieldComponent, "tedi-date-field", never, { "inputId": { "alias": "inputId"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "multiRow": { "alias": "multiRow"; "required": false; "isSignal": true; }; "tagEllipsis": { "alias": "tagEllipsis"; "required": false; "isSignal": true; }; "isTagRemovable": { "alias": "isTagRemovable"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabledMatchers": { "alias": "disabledMatchers"; "required": false; "isSignal": true; }; "inputDisabled": { "alias": "inputDisabled"; "required": false; "isSignal": true; }; "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "disablePast": { "alias": "disablePast"; "required": false; "isSignal": true; }; "disableFuture": { "alias": "disableFuture"; "required": false; "isSignal": true; }; "shouldDisableMonth": { "alias": "shouldDisableMonth"; "required": false; "isSignal": true; }; "shouldDisableYear": { "alias": "shouldDisableYear"; "required": false; "isSignal": true; }; "minYear": { "alias": "minYear"; "required": false; "isSignal": true; }; "maxYear": { "alias": "maxYear"; "required": false; "isSignal": true; }; "availableDays": { "alias": "availableDays"; "required": false; "isSignal": true; }; "unavailableDays": { "alias": "unavailableDays"; "required": false; "isSignal": true; }; "selectionLevel": { "alias": "selectionLevel"; "required": false; "isSignal": true; }; "monthYearSelectType": { "alias": "monthYearSelectType"; "required": false; "isSignal": true; }; "initialMonth": { "alias": "initialMonth"; "required": false; "isSignal": true; }; "localeCode": { "alias": "localeCode"; "required": false; "isSignal": true; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; "isSignal": true; }; "showOutsideDays": { "alias": "showOutsideDays"; "required": false; "isSignal": true; }; "showWeekNumbers": { "alias": "showWeekNumbers"; "required": false; "isSignal": true; }; "numberOfMonths": { "alias": "numberOfMonths"; "required": false; "isSignal": true; }; "enableCalendar": { "alias": "enableCalendar"; "required": false; "isSignal": true; }; "calendarTrigger": { "alias": "calendarTrigger"; "required": false; "isSignal": true; }; "useNativePicker": { "alias": "useNativePicker"; "required": false; "isSignal": true; }; "modal": { "alias": "modal"; "required": false; "isSignal": true; }; "fullscreen": { "alias": "fullscreen"; "required": false; "isSignal": true; }; "formatDate": { "alias": "formatDate"; "required": false; "isSignal": true; }; "parseDate": { "alias": "parseDate"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "openChange": "openChange"; }, never, ["[tediCalendarFooter]"], true, never>;
5674
5818
  }
5675
5819
 
5676
5820
  declare class DatePickerCalendarGridComponent {
@@ -5900,6 +6044,11 @@ declare class LabelComponent {
5900
6044
  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; }; }, {}, never, ["*"], true, never>;
5901
6045
  }
5902
6046
 
6047
+ declare class LabelRowComponent {
6048
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LabelRowComponent, never>;
6049
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LabelRowComponent, "tedi-label-row", never, {}, {}, never, ["*"], true, never>;
6050
+ }
6051
+
5903
6052
  type NumberFieldSize = "default" | "small";
5904
6053
  declare class NumberFieldComponent implements ControlValueAccessor {
5905
6054
  /**
@@ -5960,6 +6109,11 @@ declare class NumberFieldComponent implements ControlValueAccessor {
5960
6109
  * @default false
5961
6110
  */
5962
6111
  fullWidth: _angular_core.InputSignal<boolean>;
6112
+ /**
6113
+ * Accessible label for the input, used when no visible `label` is provided
6114
+ * (e.g. when the field is embedded as a compact addon of another control).
6115
+ */
6116
+ ariaLabel: _angular_core.InputSignal<string | undefined>;
5963
6117
  inputRef: ElementRef<HTMLInputElement>;
5964
6118
  private formDisabled;
5965
6119
  private onChange;
@@ -5982,7 +6136,180 @@ declare class NumberFieldComponent implements ControlValueAccessor {
5982
6136
  handleInputChange(event: Event): void;
5983
6137
  handleBlur(): void;
5984
6138
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NumberFieldComponent, never>;
5985
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NumberFieldComponent, "tedi-number-field", never, { "inputId": { "alias": "inputId"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "suffix": { "alias": "suffix"; "required": false; "isSignal": true; }; "feedbackText": { "alias": "feedbackText"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
6139
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NumberFieldComponent, "tedi-number-field", never, { "inputId": { "alias": "inputId"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "suffix": { "alias": "suffix"; "required": false; "isSignal": true; }; "feedbackText": { "alias": "feedbackText"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
6140
+ }
6141
+
6142
+ type InputSize = "small" | "large" | "default";
6143
+ type InputState = "valid" | "error" | "default";
6144
+ type ValidationState = "invalid" | "valid" | "neutral";
6145
+ interface FormFieldIcon {
6146
+ name: string;
6147
+ size?: IconSize;
6148
+ color?: IconColor;
6149
+ type?: IconType;
6150
+ variant?: IconVariant;
6151
+ }
6152
+ declare class FormFieldComponent implements AfterContentInit {
6153
+ /**
6154
+ * The size of the form field.
6155
+ * @default "default"
6156
+ */
6157
+ size: _angular_core.InputSignal<InputSize>;
6158
+ /**
6159
+ * Icon name or configuration object.
6160
+ */
6161
+ icon: _angular_core.InputSignal<string | FormFieldIcon | undefined>;
6162
+ /**
6163
+ * Whether the form field includes a clear button.
6164
+ * @default false
6165
+ */
6166
+ clearable: _angular_core.InputSignal<boolean>;
6167
+ /**
6168
+ * Custom CSS classes for the input.
6169
+ */
6170
+ inputClass: _angular_core.InputSignal<string | null>;
6171
+ control?: FormFieldControl;
6172
+ ngControl?: NgControl;
6173
+ feedback?: FeedbackTextComponent;
6174
+ private readonly destroyRef;
6175
+ private readonly inputGroup;
6176
+ constructor();
6177
+ ngAfterContentInit(): void;
6178
+ private updateValidationState;
6179
+ private computeInvalid;
6180
+ readonly resolvedIcon: _angular_core.Signal<FormFieldIcon | undefined>;
6181
+ readonly validationState: _angular_core.Signal<ValidationState>;
6182
+ showClearButton: _angular_core.Signal<boolean>;
6183
+ readonly isDisabled: _angular_core.Signal<boolean>;
6184
+ readonly hostClasses: _angular_core.Signal<{
6185
+ "tedi-form-field": boolean;
6186
+ "tedi-form-field--valid": boolean;
6187
+ "tedi-form-field--invalid": boolean;
6188
+ "tedi-form-field--disabled": boolean;
6189
+ "tedi-form-field--small": boolean;
6190
+ "tedi-form-field--large": boolean;
6191
+ "tedi-form-field--with-icon": boolean;
6192
+ }>;
6193
+ readonly inputClasses: _angular_core.Signal<{
6194
+ "tedi-form-field__input": boolean;
6195
+ }>;
6196
+ clear(): void;
6197
+ /**
6198
+ * The control never fills the whole box — the box padding and the layout
6199
+ * wrappers around the control are outside its hit area — so clicking there
6200
+ * would otherwise leave the field unfocused. Focus the control instead, unless
6201
+ * the click landed on something interactive that handles it itself (the
6202
+ * control, the clear/calendar buttons, a tag's close button).
6203
+ */
6204
+ handleBoxMouseDown(event: MouseEvent): void;
6205
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormFieldComponent, never>;
6206
+ 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; }; }, {}, ["control", "ngControl", "feedback"], ["label[tedi-label]", "input[tedi-text-field], tedi-time-field, tedi-date-field", "tedi-feedback-text", "*"], true, never>;
6207
+ }
6208
+
6209
+ type SearchSize = InputSize;
6210
+ interface SearchButton {
6211
+ /**
6212
+ * Visible button text. When omitted, the button is rendered icon-only.
6213
+ */
6214
+ text?: string;
6215
+ /**
6216
+ * Icon shown inside the button.
6217
+ * @default "search"
6218
+ */
6219
+ icon?: string;
6220
+ /**
6221
+ * Button color variant.
6222
+ * @default "primary"
6223
+ */
6224
+ variant?: ButtonVariant;
6225
+ /**
6226
+ * Accessible label for an icon-only button.
6227
+ * @default translation "search"
6228
+ */
6229
+ ariaLabel?: string;
6230
+ }
6231
+ declare class SearchComponent implements ControlValueAccessor {
6232
+ /**
6233
+ * Unique identifier for the input element, used to associate the label.
6234
+ */
6235
+ inputId: _angular_core.InputSignal<string>;
6236
+ /**
6237
+ * Visible label text. When omitted, provide `ariaLabel` for accessibility.
6238
+ */
6239
+ label: _angular_core.InputSignal<string | undefined>;
6240
+ /**
6241
+ * Value of the search input. Supports two-way binding and reactive forms.
6242
+ */
6243
+ value: _angular_core.ModelSignal<string>;
6244
+ /**
6245
+ * Placeholder text for the search input.
6246
+ */
6247
+ placeholder: _angular_core.InputSignal<string>;
6248
+ /**
6249
+ * Size of the search field.
6250
+ * @default "default"
6251
+ */
6252
+ size: _angular_core.InputSignal<InputSize>;
6253
+ /**
6254
+ * Whether the input shows a clear button once it has a value.
6255
+ * @default true
6256
+ */
6257
+ clearable: _angular_core.InputSignal<boolean>;
6258
+ /**
6259
+ * Icon shown inside the input. Ignored when `button` is set.
6260
+ * @default "search"
6261
+ */
6262
+ searchIcon: _angular_core.InputSignal<string | FormFieldIcon>;
6263
+ /**
6264
+ * Whether the search field is disabled.
6265
+ * @default false
6266
+ */
6267
+ disabled: _angular_core.InputSignal<boolean>;
6268
+ /**
6269
+ * When set, renders a trailing search button and hides the inline icon.
6270
+ */
6271
+ button: _angular_core.InputSignal<SearchButton | undefined>;
6272
+ /**
6273
+ * FeedbackText component inputs (hint / validation message).
6274
+ */
6275
+ feedbackText: _angular_core.InputSignal<ComponentInputs<FeedbackTextComponent> | undefined>;
6276
+ /**
6277
+ * Accessible name for the search region. Falls back to `label`, then
6278
+ * `placeholder`, then the translated "search" label.
6279
+ */
6280
+ ariaLabel: _angular_core.InputSignal<string | undefined>;
6281
+ /**
6282
+ * Emitted when the search is executed (Enter key or button click).
6283
+ */
6284
+ readonly searchEvent: _angular_core.OutputEmitterRef<string>;
6285
+ /**
6286
+ * Emitted when the clear button is clicked.
6287
+ */
6288
+ readonly clear: _angular_core.OutputEmitterRef<void>;
6289
+ private readonly inputRef;
6290
+ private readonly formDisabled;
6291
+ private readonly translationService;
6292
+ private onChange;
6293
+ private onTouched;
6294
+ readonly isDisabled: _angular_core.Signal<boolean>;
6295
+ readonly fieldIcon: _angular_core.Signal<string | FormFieldIcon | undefined>;
6296
+ readonly fieldHeight: _angular_core.Signal<"var(--form-field-height-sm)" | "var(--form-field-height-lg)" | "var(--form-field-height)">;
6297
+ readonly buttonSize: _angular_core.Signal<"small" | "default">;
6298
+ readonly buttonIconSize: _angular_core.Signal<24 | 18>;
6299
+ readonly buttonAriaLabel: _angular_core.Signal<string | null>;
6300
+ readonly feedbackId: _angular_core.Signal<string | null>;
6301
+ readonly searchAriaLabel: _angular_core.Signal<string>;
6302
+ onInputValue(value: string): void;
6303
+ onClear(): void;
6304
+ onBlur(): void;
6305
+ emitSearch(): void;
6306
+ focus(): void;
6307
+ writeValue(value: string | null): void;
6308
+ registerOnChange(fn: (value: string) => void): void;
6309
+ registerOnTouched(fn: () => void): void;
6310
+ setDisabledState(isDisabled: boolean): void;
6311
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SearchComponent, never>;
6312
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SearchComponent, "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; }; }, { "value": "valueChange"; "searchEvent": "searchEvent"; "clear": "clear"; }, never, never, true, never>;
5986
6313
  }
5987
6314
 
5988
6315
  /**
@@ -6051,61 +6378,24 @@ declare class SelectValueTemplateDirective<T = unknown> {
6051
6378
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectValueTemplateDirective<any>, never>;
6052
6379
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SelectValueTemplateDirective<any>, "[tediSelectValue]", never, {}, {}, never, never, true, never>;
6053
6380
  }
6054
-
6055
- type InputSize = "small" | "large" | "default";
6056
- type InputState = "valid" | "error" | "default";
6057
- type ValidationState = "invalid" | "valid" | "neutral";
6058
- interface FormFieldIcon {
6059
- name: string;
6060
- size?: IconSize;
6061
- color?: IconColor;
6062
- type?: IconType;
6063
- variant?: IconVariant;
6064
- }
6065
- declare class FormFieldComponent implements AfterContentInit {
6066
- /**
6067
- * The size of the form field.
6068
- * @default "default"
6069
- */
6070
- size: _angular_core.InputSignal<InputSize>;
6071
- /**
6072
- * Icon name or configuration object.
6073
- */
6074
- icon: _angular_core.InputSignal<string | FormFieldIcon | undefined>;
6075
- /**
6076
- * Whether the form field includes a clear button.
6077
- * @default false
6078
- */
6079
- clearable: _angular_core.InputSignal<boolean>;
6080
- /**
6081
- * Custom CSS classes for the input.
6082
- */
6083
- inputClass: _angular_core.InputSignal<string | null>;
6084
- control?: FormFieldControl;
6085
- ngControl?: NgControl;
6086
- feedback?: FeedbackTextComponent;
6087
- private readonly destroyRef;
6088
- ngAfterContentInit(): void;
6089
- private updateValidationState;
6090
- readonly resolvedIcon: _angular_core.Signal<FormFieldIcon | undefined>;
6091
- readonly validationState: _angular_core.Signal<ValidationState>;
6092
- showClearButton: _angular_core.Signal<boolean>;
6093
- readonly isDisabled: _angular_core.Signal<boolean>;
6094
- readonly hostClasses: _angular_core.Signal<{
6095
- "tedi-form-field": boolean;
6096
- "tedi-form-field--valid": boolean;
6097
- "tedi-form-field--invalid": boolean;
6098
- "tedi-form-field--disabled": boolean | undefined;
6099
- "tedi-form-field--small": boolean;
6100
- "tedi-form-field--large": boolean;
6101
- "tedi-form-field--with-icon": boolean;
6102
- }>;
6103
- readonly inputClasses: _angular_core.Signal<{
6104
- "tedi-form-field__input": boolean;
6105
- }>;
6106
- clear(): void;
6107
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormFieldComponent, never>;
6108
- 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; }; }, {}, ["control", "ngControl", "feedback"], ["label[tedi-label]", "input[tedi-text-field], tedi-time-field, tedi-date-field", "tedi-feedback-text", "*"], true, never>;
6381
+ /**
6382
+ * Directive for custom tooltip content next to the label. Use when the tooltip
6383
+ * needs formatting the plain `tooltip` string input cannot express (bold,
6384
+ * italic, links). Takes precedence over the `tooltip` input.
6385
+ *
6386
+ * @example
6387
+ * ```html
6388
+ * <tedi-select [options]="options" label="Ravim">
6389
+ * <ng-template tediSelectTooltip>
6390
+ * Vali <b>toimeaine</b>, mitte ravimi nimi.
6391
+ * </ng-template>
6392
+ * </tedi-select>
6393
+ * ```
6394
+ */
6395
+ declare class SelectTooltipTemplateDirective {
6396
+ template: TemplateRef<unknown>;
6397
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectTooltipTemplateDirective, never>;
6398
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SelectTooltipTemplateDirective, "[tediSelectTooltip]", never, {}, {}, never, never, true, never>;
6109
6399
  }
6110
6400
 
6111
6401
  type SelectInputSize = Exclude<InputSize, "large">;
@@ -6138,7 +6428,8 @@ declare class SelectComponent<T = unknown> implements AfterContentChecked, After
6138
6428
  label: _angular_core.InputSignal<string | undefined>;
6139
6429
  /**
6140
6430
  * When set, renders an info button next to the label that reveals this text
6141
- * in a tooltip on hover/focus.
6431
+ * in a tooltip on hover/focus. For formatted content, project a
6432
+ * `*tediSelectTooltip` template instead, which takes precedence over this.
6142
6433
  */
6143
6434
  tooltip: _angular_core.InputSignal<string | undefined>;
6144
6435
  /**
@@ -6249,6 +6540,14 @@ declare class SelectComponent<T = unknown> implements AfterContentChecked, After
6249
6540
  * @default false
6250
6541
  */
6251
6542
  tagEllipsis: _angular_core.InputSignal<TagEllipsis>;
6543
+ /**
6544
+ * Which end the single selected value truncates from when it doesn't fit.
6545
+ * The full value is revealed in a tooltip on hover/focus. `false` (default)
6546
+ * never truncates. Applies to single-select mode; multiselect tags use
6547
+ * `tagEllipsis`.
6548
+ * @default false
6549
+ */
6550
+ ellipsis: _angular_core.InputSignal<false | EllipsisPosition>;
6252
6551
  /**
6253
6552
  * Function used to compare option values for equality.
6254
6553
  * Used to determine which options are selected.
@@ -6269,6 +6568,11 @@ declare class SelectComponent<T = unknown> implements AfterContentChecked, After
6269
6568
  * When not set, the dropdown height is calculated based on available viewport space.
6270
6569
  */
6271
6570
  maxDropdownHeight: _angular_core.InputSignal<number | undefined>;
6571
+ /**
6572
+ * Does the dropdown close when the page scrolls?
6573
+ * @default false
6574
+ */
6575
+ hideOnScroll: _angular_core.InputSignal<boolean>;
6272
6576
  /**
6273
6577
  * Layout type for the dropdown options.
6274
6578
  * - `"menu"` (default): vertical list of options.
@@ -6350,8 +6654,12 @@ declare class SelectComponent<T = unknown> implements AfterContentChecked, After
6350
6654
  tagRefs: _angular_core.Signal<readonly ElementRef<any>[]>;
6351
6655
  hostRef: ElementRef<any>;
6352
6656
  private ngZone;
6657
+ private renderer;
6658
+ private document;
6659
+ private scrollListener?;
6353
6660
  optionTemplate: _angular_core.Signal<SelectOptionTemplateDirective<any> | undefined>;
6354
6661
  valueTemplate: _angular_core.Signal<SelectValueTemplateDirective<any> | undefined>;
6662
+ tooltipTemplate: _angular_core.Signal<SelectTooltipTemplateDirective | undefined>;
6355
6663
  normalizedOptions: _angular_core.Signal<SelectOption<T>[]>;
6356
6664
  filteredOptions: _angular_core.Signal<SelectOption<T>[]>;
6357
6665
  optionGroups: _angular_core.Signal<SelectOptionGroup<T>[]>;
@@ -6387,6 +6695,8 @@ declare class SelectComponent<T = unknown> implements AfterContentChecked, After
6387
6695
  private openDropdown;
6388
6696
  private calculateDropdownMaxHeight;
6389
6697
  private closeDropdown;
6698
+ private setupScrollListener;
6699
+ private cleanupScrollListener;
6390
6700
  handleValueChange(event: {
6391
6701
  value: readonly unknown[];
6392
6702
  }): void;
@@ -6418,7 +6728,136 @@ declare class SelectComponent<T = unknown> implements AfterContentChecked, After
6418
6728
  registerOnTouched(fn: () => void): void;
6419
6729
  setDisabledState(isDisabled: boolean): void;
6420
6730
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectComponent<any>, never>;
6421
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SelectComponent<any>, "tedi-select", never, { "inputId": { "alias": "inputId"; "required": true; "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; }; "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; }; "compareWith": { "alias": "compareWith"; "required": false; "isSignal": true; }; "disabledKey": { "alias": "disabledKey"; "required": false; "isSignal": true; }; "noOptionsMessage": { "alias": "noOptionsMessage"; "required": false; "isSignal": true; }; "maxDropdownHeight": { "alias": "maxDropdownHeight"; "required": false; "isSignal": true; }; "dropdownType": { "alias": "dropdownType"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "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"], never, true, never>;
6731
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SelectComponent<any>, "tedi-select", never, { "inputId": { "alias": "inputId"; "required": true; "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; }; "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; }; "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>;
6732
+ }
6733
+
6734
+ type SliderHideLabel = boolean | "keep-space";
6735
+ declare class SliderComponent implements ControlValueAccessor, OnDestroy {
6736
+ /**
6737
+ * Unique identifier for the underlying range input, used for label association.
6738
+ */
6739
+ inputId: _angular_core.InputSignal<string>;
6740
+ /**
6741
+ * Name attribute of the underlying input.
6742
+ */
6743
+ name: _angular_core.InputSignal<string | undefined>;
6744
+ /**
6745
+ * Label rendered above the slider.
6746
+ */
6747
+ label: _angular_core.InputSignal<string | undefined>;
6748
+ /**
6749
+ * Hide the label visually while keeping it available to assistive technology, or
6750
+ * `"keep-space"` to also reserve its vertical space.
6751
+ * @default false
6752
+ */
6753
+ hideLabel: _angular_core.InputSignal<SliderHideLabel>;
6754
+ /**
6755
+ * Marks the field as required.
6756
+ * @default false
6757
+ */
6758
+ required: _angular_core.InputSignal<boolean>;
6759
+ /**
6760
+ * Minimum allowed value.
6761
+ * @default 0
6762
+ */
6763
+ min: _angular_core.InputSignal<number>;
6764
+ /**
6765
+ * Maximum allowed value.
6766
+ * @default 100
6767
+ */
6768
+ max: _angular_core.InputSignal<number>;
6769
+ /**
6770
+ * Step size.
6771
+ * @default 1
6772
+ */
6773
+ step: _angular_core.InputSignal<number>;
6774
+ /**
6775
+ * Current value. Supports two-way binding and reactive forms.
6776
+ */
6777
+ value: _angular_core.ModelSignal<number>;
6778
+ /**
6779
+ * Disables the slider.
6780
+ * @default false
6781
+ */
6782
+ disabled: _angular_core.InputSignal<boolean>;
6783
+ /**
6784
+ * Marks the slider as invalid for validation purposes.
6785
+ * @default false
6786
+ */
6787
+ invalid: _angular_core.InputSignal<boolean>;
6788
+ /**
6789
+ * Text rendered to the left of the track (e.g. the minimum value).
6790
+ */
6791
+ minLabel: _angular_core.InputSignal<string | undefined>;
6792
+ /**
6793
+ * Text rendered to the right of the track (e.g. the maximum value).
6794
+ * Ignored when `showCurrentValue` is `true`.
6795
+ */
6796
+ maxLabel: _angular_core.InputSignal<string | undefined>;
6797
+ /**
6798
+ * Render the current value to the right of the track instead of `maxLabel`.
6799
+ * @default false
6800
+ */
6801
+ showCurrentValue: _angular_core.InputSignal<boolean>;
6802
+ /**
6803
+ * Formats the current value for the thumb tooltip and the `showCurrentValue` label.
6804
+ */
6805
+ valueFormatter: _angular_core.InputSignal<((value: number) => string) | undefined>;
6806
+ /**
6807
+ * Show a tooltip with the current value above the thumb while hovered, focused or dragged.
6808
+ * @default true
6809
+ */
6810
+ tooltip: _angular_core.InputSignal<boolean>;
6811
+ /**
6812
+ * FeedbackText component inputs, rendered below the slider.
6813
+ */
6814
+ feedbackText: _angular_core.InputSignal<ComponentInputs<FeedbackTextComponent> | undefined>;
6815
+ /**
6816
+ * Accessible label used when no visible `label` is provided.
6817
+ */
6818
+ ariaLabel: _angular_core.InputSignal<string | undefined>;
6819
+ /**
6820
+ * ID of an element that labels the slider, used when no visible `label` is provided.
6821
+ */
6822
+ ariaLabelledby: _angular_core.InputSignal<string | undefined>;
6823
+ /**
6824
+ * Human-readable text alternative of the current value.
6825
+ */
6826
+ ariaValuetext: _angular_core.InputSignal<string | undefined>;
6827
+ private readonly formDisabled;
6828
+ readonly isHovered: _angular_core.WritableSignal<boolean>;
6829
+ readonly isFocused: _angular_core.WritableSignal<boolean>;
6830
+ readonly isDragging: _angular_core.WritableSignal<boolean>;
6831
+ private onChange;
6832
+ private onTouched;
6833
+ readonly isDisabled: _angular_core.Signal<boolean>;
6834
+ readonly isInvalid: _angular_core.Signal<boolean>;
6835
+ readonly clampedValue: _angular_core.Signal<number>;
6836
+ readonly progress: _angular_core.Signal<number>;
6837
+ readonly progressStyle: _angular_core.Signal<{
6838
+ "--tedi-slider-progress": string;
6839
+ "--tedi-slider-progress-ratio": string;
6840
+ }>;
6841
+ readonly formattedValue: _angular_core.Signal<string>;
6842
+ readonly rightLabel: _angular_core.Signal<string | undefined>;
6843
+ readonly feedbackId: _angular_core.Signal<string | null>;
6844
+ readonly canShowTooltip: _angular_core.Signal<boolean>;
6845
+ readonly tooltipOpen: _angular_core.Signal<boolean>;
6846
+ readonly classes: _angular_core.Signal<string>;
6847
+ writeValue(value?: number): void;
6848
+ registerOnChange(fn: (value: number) => void): void;
6849
+ registerOnTouched(fn: () => void): void;
6850
+ setDisabledState(disabled: boolean): void;
6851
+ handleInput(event: Event): void;
6852
+ handlePointerDown(): void;
6853
+ handleFocus(): void;
6854
+ handleBlur(): void;
6855
+ handleMouseEnter(): void;
6856
+ handleMouseLeave(): void;
6857
+ ngOnDestroy(): void;
6858
+ private endDrag;
6859
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SliderComponent, never>;
6860
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SliderComponent, "tedi-slider", never, { "inputId": { "alias": "inputId"; "required": true; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "hideLabel": { "alias": "hideLabel"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "minLabel": { "alias": "minLabel"; "required": false; "isSignal": true; }; "maxLabel": { "alias": "maxLabel"; "required": false; "isSignal": true; }; "showCurrentValue": { "alias": "showCurrentValue"; "required": false; "isSignal": true; }; "valueFormatter": { "alias": "valueFormatter"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "feedbackText": { "alias": "feedbackText"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaLabelledby": { "alias": "ariaLabelledby"; "required": false; "isSignal": true; }; "ariaValuetext": { "alias": "ariaValuetext"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, ["[sliderAddon]"], true, never>;
6422
6861
  }
6423
6862
 
6424
6863
  type ToggleVariant = "primary" | "colored";
@@ -6463,6 +6902,11 @@ declare class ToggleComponent implements ControlValueAccessor {
6463
6902
  * @default false
6464
6903
  */
6465
6904
  icon: _angular_core.InputSignal<boolean>;
6905
+ /**
6906
+ * Accessible label for the toggle. Provide this when there is no associated
6907
+ * visible `<label>` element, so the switch has an accessible name.
6908
+ */
6909
+ ariaLabel: _angular_core.InputSignal<string | undefined>;
6466
6910
  inputRef: ElementRef<HTMLInputElement>;
6467
6911
  private onChange;
6468
6912
  private onTouched;
@@ -6475,11 +6919,92 @@ declare class ToggleComponent implements ControlValueAccessor {
6475
6919
  classes: _angular_core.Signal<string>;
6476
6920
  iconColor: _angular_core.Signal<IconColor>;
6477
6921
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToggleComponent, never>;
6478
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ToggleComponent, "tedi-toggle", never, { "inputId": { "alias": "inputId"; "required": true; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; }, never, never, true, never>;
6922
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ToggleComponent, "tedi-toggle", never, { "inputId": { "alias": "inputId"; "required": true; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; }, never, never, true, never>;
6923
+ }
6924
+
6925
+ /**
6926
+ * Shared behavior for the prefix/suffix addon directives: reads the group's
6927
+ * disabled state and detects whether the addon holds plain text (so the
6928
+ * wrapper, rather than a child element, gets the padding).
6929
+ */
6930
+ declare abstract class InputGroupAddonDirective implements AfterContentInit {
6931
+ protected readonly el: ElementRef<HTMLElement>;
6932
+ private readonly group;
6933
+ readonly disabled: _angular_core.Signal<boolean>;
6934
+ protected readonly isText: _angular_core.WritableSignal<boolean>;
6935
+ ngAfterContentInit(): void;
6936
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<InputGroupAddonDirective, never>;
6937
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<InputGroupAddonDirective, never, never, {}, {}, never, never, true, never>;
6938
+ }
6939
+
6940
+ /**
6941
+ * Marks an element as the prefix (leading) addon of a `tedi-input-group`.
6942
+ * Applied to any element, e.g. `<span tediInputGroupPrefix>Street</span>` or a
6943
+ * wrapper around a button/dropdown.
6944
+ */
6945
+ declare class InputGroupPrefixDirective extends InputGroupAddonDirective {
6946
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<InputGroupPrefixDirective, never>;
6947
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<InputGroupPrefixDirective, "[tediInputGroupPrefix]", never, {}, {}, never, never, true, never>;
6948
+ }
6949
+
6950
+ /**
6951
+ * Marks an element as the suffix (trailing) addon of a `tedi-input-group`.
6952
+ * Applied to any element, e.g. `<span tediInputGroupSuffix>EUR</span>` or a
6953
+ * wrapper around a button/dropdown.
6954
+ */
6955
+ declare class InputGroupSuffixDirective extends InputGroupAddonDirective {
6956
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<InputGroupSuffixDirective, never>;
6957
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<InputGroupSuffixDirective, "[tediInputGroupSuffix]", never, {}, {}, never, never, true, never>;
6958
+ }
6959
+
6960
+ /**
6961
+ * Context exposed by `tedi-input-group` to the controls and addons rendered
6962
+ * inside it. Consumed via optional DI so a control can merge the group's
6963
+ * `disabled` / `invalid` state into its own.
6964
+ */
6965
+ interface InputGroupContext {
6966
+ disabled: Signal<boolean>;
6967
+ invalid: Signal<boolean>;
6968
+ }
6969
+ declare const TEDI_INPUT_GROUP: InjectionToken<InputGroupContext>;
6970
+
6971
+ /**
6972
+ * A flexible wrapper that composes a form control with leading/trailing addons
6973
+ * (prefix/suffix). Project a `label[tedi-label]` for the label, a control
6974
+ * (`tedi-form-field`, `tedi-select`, …) as the input, optional
6975
+ * `[tediInputGroupPrefix]` / `[tediInputGroupSuffix]` addons, and a
6976
+ * `tedi-feedback-text` for helper/error messages.
6977
+ */
6978
+ declare class InputGroupComponent implements InputGroupContext {
6979
+ /**
6980
+ * Merges the borders and radii of the addons and the control into a single
6981
+ * visual unit. Disable when using addons that should stay detached, e.g. a
6982
+ * standalone action button.
6983
+ * @default true
6984
+ */
6985
+ addons: _angular_core.InputSignal<boolean>;
6986
+ /**
6987
+ * Disables the whole group. Greys out the addons and propagates the disabled
6988
+ * state to the wrapped control.
6989
+ * @default false
6990
+ */
6991
+ disabled: _angular_core.InputSignal<boolean>;
6992
+ /**
6993
+ * Marks the whole group as invalid. Propagates `invalid` to the wrapped
6994
+ * control so it shows the error border. Pair with an error
6995
+ * `tedi-feedback-text`.
6996
+ * @default false
6997
+ */
6998
+ invalid: _angular_core.InputSignal<boolean>;
6999
+ protected readonly prefix: _angular_core.Signal<InputGroupPrefixDirective | undefined>;
7000
+ protected readonly suffix: _angular_core.Signal<InputGroupSuffixDirective | undefined>;
7001
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<InputGroupComponent, never>;
7002
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<InputGroupComponent, "tedi-input-group", never, { "addons": { "alias": "addons"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; }, {}, ["prefix", "suffix"], ["label[tedi-label]", "[tediInputGroupPrefix]", "tedi-form-field, tedi-select", "[tediInputGroupSuffix]", "tedi-feedback-text"], true, never>;
6479
7003
  }
6480
7004
 
6481
7005
  declare class TextFieldComponent implements ControlValueAccessor, FormFieldControl {
6482
7006
  private el;
7007
+ private group;
6483
7008
  /**
6484
7009
  * Value of the input field. Supports two-way binding, use with form controls.
6485
7010
  */
@@ -6493,6 +7018,11 @@ declare class TextFieldComponent implements ControlValueAccessor, FormFieldContr
6493
7018
  * Callback triggered when the clear button is clicked.
6494
7019
  */
6495
7020
  readonly clear: _angular_core.OutputEmitterRef<void>;
7021
+ /**
7022
+ * Disables the input from a parent template (e.g. a wrapping field component).
7023
+ * Combined with the reactive-forms disabled state and any input-group state.
7024
+ */
7025
+ readonly disabledInput: _angular_core.InputSignalWithTransform<boolean, unknown>;
6496
7026
  readonly disabled: _angular_core.Signal<boolean>;
6497
7027
  readonly invalid: _angular_core.WritableSignal<boolean>;
6498
7028
  setInvalidState(isInvalid: boolean): void;
@@ -6507,9 +7037,10 @@ declare class TextFieldComponent implements ControlValueAccessor, FormFieldContr
6507
7037
  setDisabledState(isDisabled: boolean): void;
6508
7038
  handleInputChange(event: Event): void;
6509
7039
  handleBlur(): void;
7040
+ focus(): void;
6510
7041
  clearField(): void;
6511
7042
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TextFieldComponent, never>;
6512
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TextFieldComponent, "input[tedi-text-field]", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "arrowsHidden": { "alias": "arrowsHidden"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "clear": "clear"; }, never, never, true, never>;
7043
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TextFieldComponent, "input[tedi-text-field]", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "arrowsHidden": { "alias": "arrowsHidden"; "required": false; "isSignal": true; }; "disabledInput": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "clear": "clear"; }, never, never, true, never>;
6513
7044
  }
6514
7045
 
6515
7046
  type TimePickerVariant = "scroll" | "slots" | "dropdown";
@@ -6730,6 +7261,7 @@ declare class TimeFieldComponent implements ControlValueAccessor, FormFieldContr
6730
7261
  handleInput(event: Event): void;
6731
7262
  handleBlur(): void;
6732
7263
  clearInput(): void;
7264
+ focus(): void;
6733
7265
  clearField(): void;
6734
7266
  openNativePicker(): void;
6735
7267
  onInputClick(event: MouseEvent): void;
@@ -7069,12 +7601,16 @@ declare class ScrollFadeComponent implements AfterViewInit, OnDestroy {
7069
7601
  readonly fadePosition: _angular_core.InputSignal<ScrollFadePosition>;
7070
7602
  /** Scrollbar style. */
7071
7603
  readonly scrollBar: _angular_core.InputSignal<ScrollFadeScrollbar>;
7604
+ /** Accessible label for the scrollable region. Falls back to a translated default. */
7605
+ readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
7072
7606
  /** Emitted when scrolled to the top. */
7073
7607
  readonly scrolledToTop: _angular_core.OutputEmitterRef<void>;
7074
7608
  /** Emitted when scrolled to the bottom. */
7075
7609
  readonly scrolledToBottom: _angular_core.OutputEmitterRef<void>;
7610
+ private readonly translationService;
7076
7611
  private readonly innerRef;
7077
7612
  private resizeObserver;
7613
+ readonly _defaultLabel: _angular_core.Signal<string>;
7078
7614
  private readonly fade;
7079
7615
  readonly classes: _angular_core.Signal<string>;
7080
7616
  readonly innerClasses: _angular_core.Signal<string>;
@@ -7083,7 +7619,7 @@ declare class ScrollFadeComponent implements AfterViewInit, OnDestroy {
7083
7619
  ngOnDestroy(): void;
7084
7620
  private updateFade;
7085
7621
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ScrollFadeComponent, never>;
7086
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ScrollFadeComponent, "tedi-scroll-fade", never, { "fadeSize": { "alias": "fadeSize"; "required": false; "isSignal": true; }; "fadePosition": { "alias": "fadePosition"; "required": false; "isSignal": true; }; "scrollBar": { "alias": "scrollBar"; "required": false; "isSignal": true; }; }, { "scrolledToTop": "scrolledToTop"; "scrolledToBottom": "scrolledToBottom"; }, never, ["*"], true, never>;
7622
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ScrollFadeComponent, "tedi-scroll-fade", never, { "fadeSize": { "alias": "fadeSize"; "required": false; "isSignal": true; }; "fadePosition": { "alias": "fadePosition"; "required": false; "isSignal": true; }; "scrollBar": { "alias": "scrollBar"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "scrolledToTop": "scrolledToTop"; "scrolledToBottom": "scrolledToBottom"; }, never, ["*"], true, never>;
7087
7623
  }
7088
7624
 
7089
7625
  type SeparatorAxis = "horizontal" | "vertical";
@@ -7830,8 +8366,7 @@ declare class HeaderRoleComponent {
7830
8366
  closeIfOtherRoleActive(active: unknown, isOpen: boolean): void;
7831
8367
  handleMobileOpen(): void;
7832
8368
  handleSelectRepresentative(r: Representative): void;
7833
- handleInputChange(event: Event): void;
7834
- trackById: (_: number, r: Representative) => string;
8369
+ handleInputChange(value: string): void;
7835
8370
  protected resolveIcon(icon: string | RepresentativeIcon | undefined): {
7836
8371
  name: string;
7837
8372
  size: IconSize;
@@ -8091,6 +8626,92 @@ declare class SpinnerComponent {
8091
8626
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SpinnerComponent, "tedi-spinner", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
8092
8627
  }
8093
8628
 
8629
+ /**
8630
+ * Marks a projected element as a single breadcrumb. Apply as a structural
8631
+ * directive on the crumb element; `tedi-breadcrumbs` collects each one and
8632
+ * renders it into the trail, inserting separators between them.
8633
+ *
8634
+ * Use a link (e.g. `a tedi-link`) for navigable crumbs and a plain element
8635
+ * (e.g. `span`) for the current page — add `aria-current="page"` to it yourself.
8636
+ */
8637
+ declare class BreadcrumbItemDirective {
8638
+ readonly templateRef: TemplateRef<unknown>;
8639
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BreadcrumbItemDirective, never>;
8640
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BreadcrumbItemDirective, "[tediBreadcrumbItem]", never, {}, {}, never, never, true, never>;
8641
+ }
8642
+
8643
+ /**
8644
+ * Optional custom separator for `tedi-breadcrumbs`. Provide as a template to
8645
+ * render arbitrary content between crumbs; takes precedence over the
8646
+ * `separator` string input and the default chevron icon.
8647
+ */
8648
+ declare class BreadcrumbSeparatorDirective {
8649
+ readonly templateRef: TemplateRef<unknown>;
8650
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BreadcrumbSeparatorDirective, never>;
8651
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BreadcrumbSeparatorDirective, "[tediBreadcrumbSeparator]", never, {}, {}, never, never, true, never>;
8652
+ }
8653
+
8654
+ type BreadcrumbsVariant = "long" | "short";
8655
+ type BreadcrumbsInputs = {
8656
+ variant?: BreadcrumbsVariant;
8657
+ maxItems?: number;
8658
+ itemsBeforeCollapse?: number;
8659
+ itemsAfterCollapse?: number;
8660
+ };
8661
+ type RenderToken = {
8662
+ kind: "item";
8663
+ item: BreadcrumbItemDirective;
8664
+ current: boolean;
8665
+ } | {
8666
+ kind: "ellipsis";
8667
+ hidden: BreadcrumbItemDirective[];
8668
+ };
8669
+ /**
8670
+ * Breadcrumbs show the user's location within the page hierarchy. Each child
8671
+ * marked with `*tediBreadcrumbItem` becomes one crumb, in order from the root
8672
+ * to the current page; chevron separators are inserted between them.
8673
+ *
8674
+ * Use a link (e.g. `a tedi-link`) for navigable crumbs and a plain element for
8675
+ * the current page — add `aria-current="page"` to it yourself.
8676
+ *
8677
+ * Crumb links are underlined by default. Set `[underline]="false"` on the
8678
+ * `tedi-link` for non-underlined crumbs — recommended for the `short` back-link.
8679
+ * Crumbs collapsed into the ellipsis dropdown are always rendered without an
8680
+ * underline, regardless of their `[underline]` setting.
8681
+ */
8682
+ declare class BreadcrumbsComponent implements BreakpointInputs<BreadcrumbsInputs> {
8683
+ private readonly breakpointService;
8684
+ readonly items: _angular_core.Signal<readonly BreadcrumbItemDirective[]>;
8685
+ readonly separatorTemplate: _angular_core.Signal<BreadcrumbSeparatorDirective | undefined>;
8686
+ /** Accessible label for the `nav` landmark. Falls back to the `breadcrumbs` translation. */
8687
+ readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
8688
+ /** Accessible label for the ellipsis button that opens the collapsed-crumbs dropdown. Falls back to the `breadcrumbs.show-more` translation. */
8689
+ readonly showMoreLabel: _angular_core.InputSignal<string | undefined>;
8690
+ /** Separator between crumbs. Defaults to a chevron icon; a `[tediBreadcrumbSeparator]` template overrides this. */
8691
+ readonly separator: _angular_core.InputSignal<string | undefined>;
8692
+ /** `long` shows the full trail; `short` shows only the parent crumb as a back-link. Defaults to `long`. */
8693
+ readonly variant: _angular_core.InputSignal<BreadcrumbsVariant | undefined>;
8694
+ /** Max crumbs before the middle collapses into an ellipsis dropdown. Long variant only; omit to render all. */
8695
+ readonly maxItems: _angular_core.InputSignal<number | undefined>;
8696
+ /** Crumbs kept visible at the start of the trail when collapsed. Defaults to `1`. */
8697
+ readonly itemsBeforeCollapse: _angular_core.InputSignal<number | undefined>;
8698
+ /** Crumbs kept visible at the end of the trail when collapsed. Defaults to `1`. */
8699
+ readonly itemsAfterCollapse: _angular_core.InputSignal<number | undefined>;
8700
+ readonly xs: _angular_core.InputSignal<BreadcrumbsInputs | undefined>;
8701
+ readonly sm: _angular_core.InputSignal<BreadcrumbsInputs | undefined>;
8702
+ readonly md: _angular_core.InputSignal<BreadcrumbsInputs | undefined>;
8703
+ readonly lg: _angular_core.InputSignal<BreadcrumbsInputs | undefined>;
8704
+ readonly xl: _angular_core.InputSignal<BreadcrumbsInputs | undefined>;
8705
+ readonly xxl: _angular_core.InputSignal<BreadcrumbsInputs | undefined>;
8706
+ private readonly resolved;
8707
+ readonly currentVariant: _angular_core.Signal<BreadcrumbsVariant>;
8708
+ readonly parentItem: _angular_core.Signal<BreadcrumbItemDirective | null>;
8709
+ readonly visible: _angular_core.Signal<boolean>;
8710
+ readonly tokens: _angular_core.Signal<RenderToken[]>;
8711
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BreadcrumbsComponent, never>;
8712
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BreadcrumbsComponent, "tedi-breadcrumbs", never, { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "showMoreLabel": { "alias": "showMoreLabel"; "required": false; "isSignal": true; }; "separator": { "alias": "separator"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "maxItems": { "alias": "maxItems"; "required": false; "isSignal": true; }; "itemsBeforeCollapse": { "alias": "itemsBeforeCollapse"; "required": false; "isSignal": true; }; "itemsAfterCollapse": { "alias": "itemsAfterCollapse"; "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; }; }, {}, ["items", "separatorTemplate"], never, true, never>;
8713
+ }
8714
+
8094
8715
  declare class HorizontalStepperItemComponent {
8095
8716
  label: _angular_core.InputSignal<string>;
8096
8717
  description: _angular_core.InputSignal<string | undefined>;
@@ -8463,6 +9084,14 @@ declare class ModalHeaderComponent {
8463
9084
  }
8464
9085
 
8465
9086
  declare class TooltipTriggerComponent implements AfterContentChecked {
9087
+ /**
9088
+ * When `false`, the trigger is a pure positioning anchor: it skips making its
9089
+ * projected child focusable (no synthesized `tabindex`, focus ring or
9090
+ * `aria-describedby`). Use for decorative or externally-controlled origins where
9091
+ * focus and ARIA live on another element (e.g. a slider's range input).
9092
+ * @default true
9093
+ */
9094
+ readonly interactive: _angular_core.InputSignal<boolean>;
8466
9095
  readonly host: ElementRef<HTMLElement>;
8467
9096
  readonly overlayOrigin: CdkOverlayOrigin;
8468
9097
  private renderer;
@@ -8490,11 +9119,11 @@ declare class TooltipTriggerComponent implements AfterContentChecked {
8490
9119
  private resolveInteractiveElement;
8491
9120
  private isFocusable;
8492
9121
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TooltipTriggerComponent, never>;
8493
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TooltipTriggerComponent, "tedi-tooltip-trigger", never, {}, {}, never, ["*"], true, [{ directive: typeof _angular_cdk_overlay.CdkOverlayOrigin; inputs: {}; outputs: {}; }]>;
9122
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TooltipTriggerComponent, "tedi-tooltip-trigger", never, { "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof _angular_cdk_overlay.CdkOverlayOrigin; inputs: {}; outputs: {}; }]>;
8494
9123
  }
8495
9124
 
8496
9125
  type TooltipPosition = OverlayPosition;
8497
- type TooltipOpenWith = "hover" | "click" | "both";
9126
+ type TooltipOpenWith = "hover" | "click" | "both" | "none";
8498
9127
  declare class TooltipComponent implements AfterContentChecked {
8499
9128
  /**
8500
9129
  * The position of the tooltip relative to the trigger element.
@@ -8507,14 +9136,35 @@ declare class TooltipComponent implements AfterContentChecked {
8507
9136
  */
8508
9137
  readonly preventOverflow: _angular_core.InputSignal<boolean>;
8509
9138
  /**
8510
- * How tooltip can opened?
9139
+ * How the tooltip can be opened. Use `none` for full external control via `open`
9140
+ * (e.g. a slider or custom draggable element driving the open state itself).
8511
9141
  * @default both
8512
9142
  */
8513
9143
  readonly openWith: _angular_core.InputSignal<TooltipOpenWith>;
9144
+ /**
9145
+ * Controlled open state. When set (not `undefined`), it overrides the built-in
9146
+ * trigger behavior; typically paired with `openWith="none"`. Leave unset for the
9147
+ * default trigger-driven behavior.
9148
+ */
9149
+ readonly open: _angular_core.ModelSignal<boolean | undefined>;
9150
+ /**
9151
+ * While open, continuously reposition the tooltip so it follows an origin that moves
9152
+ * (e.g. a dragging slider thumb). Uses `requestAnimationFrame`; enable only while the
9153
+ * origin can actually move to avoid needless work.
9154
+ * @default false
9155
+ */
9156
+ readonly trackPosition: _angular_core.InputSignal<boolean>;
8514
9157
  /** Delay time (in ms) for closing tooltip when not hovering trigger or content.
8515
9158
  * @default 100
8516
9159
  */
8517
9160
  readonly timeoutDelay: _angular_core.InputSignal<number>;
9161
+ /**
9162
+ * Extra distance (in px) between the tooltip and its trigger, added on top of the
9163
+ * arrow allowance. Set to `0` to sit the tooltip directly against the trigger
9164
+ * (e.g. a slider thumb).
9165
+ * @default 4
9166
+ */
9167
+ readonly offset: _angular_core.InputSignal<number>;
8518
9168
  /** Dropdown trigger button */
8519
9169
  readonly tooltipTrigger: _angular_core.Signal<TooltipTriggerComponent>;
8520
9170
  /** Tooltip content component */
@@ -8522,7 +9172,8 @@ declare class TooltipComponent implements AfterContentChecked {
8522
9172
  private readonly connectedOverlay;
8523
9173
  readonly descriptionId: string;
8524
9174
  readonly contentText: _angular_core.WritableSignal<string>;
8525
- readonly isOpen: _angular_core.WritableSignal<boolean>;
9175
+ private readonly internalOpen;
9176
+ readonly isOpen: _angular_core.Signal<boolean>;
8526
9177
  readonly currentPlacement: _angular_core.WritableSignal<OverlaySide>;
8527
9178
  readonly arrowLeft: _angular_core.WritableSignal<number | null>;
8528
9179
  readonly arrowTop: _angular_core.WritableSignal<number | null>;
@@ -8530,10 +9181,20 @@ declare class TooltipComponent implements AfterContentChecked {
8530
9181
  readonly overlayOrigin: _angular_core.Signal<_angular_cdk_overlay.CdkOverlayOrigin>;
8531
9182
  readonly isContentHovered: _angular_core.WritableSignal<boolean>;
8532
9183
  hideTimeout?: ReturnType<typeof setTimeout>;
9184
+ private readonly ngZone;
9185
+ private trackRafId;
8533
9186
  private readonly horizontalPush;
8534
9187
  constructor();
8535
9188
  showTooltip(): void;
8536
9189
  hideTooltip(): void;
9190
+ /**
9191
+ * Recomputes the overlay position against its origin. Call this when the origin has
9192
+ * moved without a scroll/resize event (e.g. a dragged element). `trackPosition`
9193
+ * calls it automatically each frame while open.
9194
+ */
9195
+ updatePosition(): void;
9196
+ private startTracking;
9197
+ private stopTracking;
8537
9198
  toggleTooltip(): void;
8538
9199
  onPositionChange(change: ConnectedOverlayPositionChange): void;
8539
9200
  onOverlayAttach(): void;
@@ -8541,7 +9202,7 @@ declare class TooltipComponent implements AfterContentChecked {
8541
9202
  ngAfterContentChecked(): void;
8542
9203
  private syncContentText;
8543
9204
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TooltipComponent, never>;
8544
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TooltipComponent, "tedi-tooltip", never, { "position": { "alias": "position"; "required": false; "isSignal": true; }; "preventOverflow": { "alias": "preventOverflow"; "required": false; "isSignal": true; }; "openWith": { "alias": "openWith"; "required": false; "isSignal": true; }; "timeoutDelay": { "alias": "timeoutDelay"; "required": false; "isSignal": true; }; }, {}, ["tooltipTrigger", "tooltipContent"], ["tedi-tooltip-trigger", "tedi-tooltip-content"], true, never>;
9205
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TooltipComponent, "tedi-tooltip", never, { "position": { "alias": "position"; "required": false; "isSignal": true; }; "preventOverflow": { "alias": "preventOverflow"; "required": false; "isSignal": true; }; "openWith": { "alias": "openWith"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "trackPosition": { "alias": "trackPosition"; "required": false; "isSignal": true; }; "timeoutDelay": { "alias": "timeoutDelay"; "required": false; "isSignal": true; }; "offset": { "alias": "offset"; "required": false; "isSignal": true; }; }, { "open": "openChange"; }, ["tooltipTrigger", "tooltipContent"], ["tedi-tooltip-trigger", "tedi-tooltip-content"], true, never>;
8545
9206
  }
8546
9207
 
8547
9208
  type TooltipWidth = "none" | "small" | "medium" | "large";
@@ -8559,6 +9220,35 @@ declare class TooltipContentComponent {
8559
9220
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<TooltipContentComponent, "tedi-tooltip-content", never, { "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
8560
9221
  }
8561
9222
 
9223
+ declare class InfoTooltipComponent {
9224
+ /**
9225
+ * Position of the tooltip relative to the info button.
9226
+ * @default top
9227
+ */
9228
+ position: _angular_core.InputSignal<_tedi_design_system_angular_tedi.OverlayPosition>;
9229
+ /**
9230
+ * How the tooltip can be opened.
9231
+ * @default both
9232
+ */
9233
+ openWith: _angular_core.InputSignal<TooltipOpenWith>;
9234
+ /**
9235
+ * Max width of the tooltip content.
9236
+ * @default medium
9237
+ */
9238
+ maxWidth: _angular_core.InputSignal<TooltipWidth>;
9239
+ /**
9240
+ * Color variant of the info button. Use `inverted` on dark or colored backgrounds.
9241
+ * @default primary
9242
+ */
9243
+ color: _angular_core.InputSignal<"primary" | "inverted">;
9244
+ /**
9245
+ * Accessible name for the info button. Defaults to the translated info-button label.
9246
+ */
9247
+ ariaLabel: _angular_core.InputSignal<string | undefined>;
9248
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<InfoTooltipComponent, never>;
9249
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<InfoTooltipComponent, "tedi-info-tooltip", never, { "position": { "alias": "position"; "required": false; "isSignal": true; }; "openWith": { "alias": "openWith"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
9250
+ }
9251
+
8562
9252
  type PopoverWidth = "none" | "small" | "medium" | "large";
8563
9253
  declare class PopoverContentComponent {
8564
9254
  /**
@@ -8755,6 +9445,6 @@ declare function isValidTime(time: string | null | undefined): boolean;
8755
9445
  */
8756
9446
  declare function normalizeTime(input: string): string | null;
8757
9447
 
8758
- export { AVAILABLE_LANGUAGES, AccordionComponent, AccordionItemComponent, AccordionItemContentComponent, AccordionItemHeaderComponent, AlertComponent, AttachmentActionsComponent, AttachmentComponent, BREAKPOINTS, BaseButtonDirective, BreakpointService, ButtonComponent, ButtonGroupButtonDirective, ButtonGroupComponent, COUNTER_TAG_WIDTH, CalendarComponent, 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, DateFieldComponent, 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, HeaderTopComponent, 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, TAG_GAP, 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, TabsComponent, TabsContentComponent, TabsListComponent, TabsTriggerComponent, 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, addDays, addMonths, addYears, breakpointInput, buildMonthGrid, calculateArrowOffset, calculateVisibleTagCount, computeGroupSpans, cookieSignal, createTablePersistence, endOfMonth, formatDate, formatLocaleDate, formatLocaleDateHint, formatLocaleDateLong, formatMonthYear, generateUUID, getCardBorderPlacementColor, getDaysInMonth, getFirstDayOfWeek, getFocusableElements, getISOWeek, getMonthNames, getPaddingCssVariables, getPlacementFromPositionChange, getWeekdayNames, groupRowSpan, injectTediTableContext, isAfterDay, isBeforeDay, isDateInRange, isSameDay, isSameMonth, isSameYear, isValidTime, matchAny, matchDate, normalizeTime, parseDate, parseLocaleDate, provideTedi, resolveCardBorderRadius, startOfMonth, startOfWeek, toConnectedPositions, toggleDateInArray, usePagination };
8759
- export type { AccordionInputs, AlertRole, AlertSize, AlertTitleType, AlertType, AlertVariant, AlignItems, AlignSelf, ArrowOffset, ArrowType, AttachmentDirection, Breakpoint, BreakpointFlag, BreakpointInput, BreakpointInputs, BreakpointInputsWithoutSignals, BreakpointObject, BulletColor, ButtonGroupDropdownLabelMode, ButtonSize, ButtonVariant, CalendarView, 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, DateAfter, DateBefore, DateFieldMode, DateInterval, DatePickerDay, DatePickerInputSize, DatePickerInputState, DatePickerMatcher, DatePickerSelectorMode, DatePickerView, DateRange, DayOfWeek, DropdownApi, DropdownContentApi, DropdownItemValueLayout, DropdownItemValueType, DropdownPosition, DropdownRole, DropdownTriggerAriaHasPopup, EllipsisPosition, EmptyStateSize, EmptyStateType, FeedbackTextPosition, FeedbackTextType, FilterOption, FilterSize, FilterVariant, FooterSidePlacement, FooterSidePosition, FormFieldControl, FormFieldIcon, Gap, GroupByFn, HeaderContentAlignment, HeaderLanguage, HeaderLanguageLabelPosition, HeaderLoginInputs, HeaderLoginSize, HeaderLogoutInputs, HeaderLogoutSize, HeaderProfileInputs, HeaderProfileSize, HeaderSearchMobileLabels, HeaderSearchMobileVariant, HeaderTopAlignment, HeaderTopInputs, HorizontalStepperBackground, IconBackgroundColor, IconColor, IconSize, IconType, IconVariant, InputSize, InputState, JustifyItems, JustifySelf, LabelColor, LabelSize, Language, LinkInputs, LinkSize, LinkVariant, Matcher, 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, TabsOverflowMode, TagEllipsis, TagOverflowOptions, 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 };
9448
+ export { AVAILABLE_LANGUAGES, AccordionComponent, AccordionItemComponent, AccordionItemContentComponent, AccordionItemHeaderComponent, AlertComponent, AttachmentActionsComponent, AttachmentComponent, BREAKPOINTS, BaseButtonDirective, BreadcrumbItemDirective, BreadcrumbSeparatorDirective, BreadcrumbsComponent, BreakpointService, ButtonComponent, ButtonGroupButtonDirective, ButtonGroupComponent, COUNTER_TAG_WIDTH, CalendarComponent, 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, DateFieldComponent, 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, HeaderTopComponent, HideAtDirective, HorizontalPushHandler, HorizontalStepperComponent, HorizontalStepperItemComponent, IconComponent, InfoButtonComponent, InfoTooltipComponent, InputGroupComponent, InputGroupPrefixDirective, InputGroupSuffixDirective, LANGUAGE_COOKIE_NAME, LANGUAGE_FALLBACK_VALUE, LabelComponent, LabelRowComponent, LinkComponent, ListComponent, MODAL_DATA, MODAL_SIZE, ModalComponent, ModalContentComponent, ModalFooterComponent, ModalHeaderComponent, ModalRef, ModalService, NumberFieldComponent, PaginationComponent, PopoverComponent, PopoverContentComponent, PopoverTriggerDirective, ProgressBarComponent, RadioCardComponent, RadioCardGroupComponent, RadioComponent, RadioGroupComponent, RowComponent, ScrollFadeComponent, SearchComponent, SelectComponent, SelectOptionTemplateDirective, SelectTooltipTemplateDirective, SelectValueTemplateDirective, SeparatorComponent, ShowAtDirective, SideNavComponent, SideNavDropdownComponent, SideNavDropdownGroupComponent, SideNavDropdownItemComponent, SideNavGroupTitleComponent, SideNavItemComponent, SideNavOverlayComponent, SideNavToggleComponent, SliderComponent, SpecialOptionControls, SpinnerComponent, StatusBadgeComponent, StatusIndicatorComponent, TAG_GAP, TEDI_FORM_FIELD_CONTROL, TEDI_INPUT_GROUP, TEDI_TABLE_CONTEXT, TEDI_THEME_DEFAULT_TOKEN, TEDI_TRANSLATION_DEFAULT_TOKEN, THEME_CLASS_PREFIX, THEME_COOKIE_NAME, THEME_FALLBACK_VALUE, TOAST_DEFAULT_DURATION, TabsComponent, TabsContentComponent, TabsListComponent, TabsTriggerComponent, 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, addDays, addMonths, addYears, breakpointInput, buildMonthGrid, calculateArrowOffset, calculateVisibleTagCount, computeGroupSpans, cookieSignal, createTablePersistence, endOfMonth, formatDate, formatLocaleDate, formatLocaleDateHint, formatLocaleDateLong, formatMonthYear, generateUUID, getCardBorderPlacementColor, getDaysInMonth, getFirstDayOfWeek, getFocusableElements, getISOWeek, getMonthNames, getPaddingCssVariables, getPlacementFromPositionChange, getWeekdayNames, groupRowSpan, injectTediTableContext, isAfterDay, isBeforeDay, isDateInRange, isSameDay, isSameMonth, isSameYear, isValidTime, matchAny, matchDate, normalizeTime, parseDate, parseLocaleDate, provideTedi, resolveCardBorderRadius, startOfMonth, startOfWeek, toConnectedPositions, toggleDateInArray, usePagination };
9449
+ export type { AccordionInputs, AlertRole, AlertSize, AlertTitleType, AlertType, AlertVariant, AlignItems, AlignSelf, ArrowOffset, ArrowType, AttachmentDirection, BreadcrumbsInputs, BreadcrumbsVariant, Breakpoint, BreakpointFlag, BreakpointInput, BreakpointInputs, BreakpointInputsWithoutSignals, BreakpointObject, BulletColor, ButtonGroupDropdownLabelMode, ButtonSize, ButtonVariant, CalendarView, 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, DateAfter, DateBefore, DateFieldMode, DateInterval, DatePickerDay, DatePickerInputSize, DatePickerInputState, DatePickerMatcher, DatePickerSelectorMode, DatePickerView, DateRange, DayOfWeek, DropdownApi, DropdownContentApi, DropdownItemValueLayout, DropdownItemValueType, DropdownPosition, DropdownRole, DropdownTriggerAriaHasPopup, EllipsisPosition, EmptyStateSize, EmptyStateType, FeedbackTextPosition, FeedbackTextType, FilterOption, FilterSize, FilterVariant, FooterSidePlacement, FooterSidePosition, FormFieldControl, FormFieldIcon, Gap, GroupByFn, HeaderContentAlignment, HeaderLanguage, HeaderLanguageLabelPosition, HeaderLoginInputs, HeaderLoginSize, HeaderLogoutInputs, HeaderLogoutSize, HeaderProfileInputs, HeaderProfileSize, HeaderSearchMobileLabels, HeaderSearchMobileVariant, HeaderTopAlignment, HeaderTopInputs, HorizontalStepperBackground, IconBackgroundColor, IconColor, IconSize, IconType, IconVariant, InputGroupContext, InputSize, InputState, JustifyItems, JustifySelf, LabelColor, LabelSize, Language, LinkInputs, LinkSize, LinkVariant, Matcher, 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, SearchButton, SearchSize, SelectInputSize, SelectOption, SelectOptionContext, SelectOptionGroup, SelectValueContext, SeparatorAxis, SeparatorColor, SeparatorDotSize, SeparatorSpacing, SeparatorSpacingValue, SeparatorThickness, SeparatorVariant, SideNavItemSize, SliderHideLabel, SpinnerColor, SpinnerSize, StatusBadgeColor, StatusBadgeSize, StatusBadgeStatus, StatusBadgeVariant, StatusIndicatorPosition, StatusIndicatorSize, StatusIndicatorType, TEDITheme, TableColumnMeta, TableControlColumn, TableExpandTrigger, TableFilterOptions, TablePaginationOptions, TablePersistOptions, TablePersistenceController, TableSelectionMode, TableSize, TableState, TableStatePatch, TabsOverflowMode, TagEllipsis, TagOverflowOptions, 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 };
8760
9450
  //# sourceMappingURL=index.d.ts.map