@tedi-design-system/angular 7.1.0-rc.18 → 7.1.0-rc.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tedi-design-system/angular",
3
- "version": "7.1.0-rc.18",
3
+ "version": "7.1.0-rc.19",
4
4
  "type": "module",
5
5
  "main": "community.mjs",
6
6
  "module": "fesm2022/tedi-design-system-angular.mjs",
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';
@@ -819,6 +819,34 @@ declare const translationsMap: {
819
819
  en: string;
820
820
  ru: string;
821
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
+ };
822
850
  "table.expand-row": {
823
851
  description: string;
824
852
  components: string[];
@@ -917,6 +945,13 @@ declare const translationsMap: {
917
945
  en: string;
918
946
  ru: string;
919
947
  };
948
+ "scroll-fade.label": {
949
+ description: string;
950
+ components: string[];
951
+ et: string;
952
+ en: string;
953
+ ru: string;
954
+ };
920
955
  "pagination.title": {
921
956
  description: string;
922
957
  components: string[];
@@ -1519,6 +1554,13 @@ declare const translationsMap: {
1519
1554
  en: string;
1520
1555
  ru: string;
1521
1556
  };
1557
+ "time-picker.times": {
1558
+ description: string;
1559
+ components: string[];
1560
+ et: string;
1561
+ en: string;
1562
+ ru: string;
1563
+ };
1522
1564
  "time-field.clear": {
1523
1565
  description: string;
1524
1566
  components: string[];
@@ -2578,12 +2620,10 @@ type TextGroupInputs = {
2578
2620
  */
2579
2621
  labelWidth: string | undefined;
2580
2622
  };
2581
- declare class TextGroupComponent implements BreakpointInputs<TextGroupInputs>, AfterContentChecked {
2623
+ declare class TextGroupComponent implements BreakpointInputs<TextGroupInputs> {
2582
2624
  type: _angular_core.InputSignal<TextGroupType>;
2583
2625
  labelWidth: _angular_core.InputSignal<string | undefined>;
2584
2626
  breakpointService: BreakpointService;
2585
- readonly textGroupLabel: _angular_core.Signal<ElementRef<any> | undefined>;
2586
- readonly labelText: _angular_core.WritableSignal<string | null>;
2587
2627
  xs: _angular_core.InputSignal<TextGroupInputs | undefined>;
2588
2628
  sm: _angular_core.InputSignal<TextGroupInputs | undefined>;
2589
2629
  md: _angular_core.InputSignal<TextGroupInputs | undefined>;
@@ -2592,9 +2632,8 @@ declare class TextGroupComponent implements BreakpointInputs<TextGroupInputs>, A
2592
2632
  xxl: _angular_core.InputSignal<TextGroupInputs | undefined>;
2593
2633
  breakpointInputs: _angular_core.Signal<TextGroupInputs>;
2594
2634
  classes: _angular_core.Signal<string>;
2595
- ngAfterContentChecked(): void;
2596
2635
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TextGroupComponent, never>;
2597
- 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>;
2598
2637
  }
2599
2638
 
2600
2639
  declare class TextGroupLabelComponent {
@@ -2622,6 +2661,8 @@ declare class CarouselContentComponent implements AfterViewInit, OnDestroy {
2622
2661
  readonly fade: _angular_core.InputSignal<boolean>;
2623
2662
  /** Transition duration in ms */
2624
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>;
2625
2666
  readonly translationService: TediTranslationService;
2626
2667
  private readonly breakpointService;
2627
2668
  private readonly host;
@@ -2629,6 +2670,7 @@ declare class CarouselContentComponent implements AfterViewInit, OnDestroy {
2629
2670
  readonly track: _angular_core.Signal<ElementRef<HTMLDivElement>>;
2630
2671
  readonly slideElements: _angular_core.Signal<readonly ElementRef<HTMLDivElement>[]>;
2631
2672
  readonly slides: _angular_core.Signal<readonly CarouselSlideDirective[]>;
2673
+ readonly resolvedAriaLabel: _angular_core.Signal<string>;
2632
2674
  readonly trackIndex: _angular_core.WritableSignal<number>;
2633
2675
  readonly animate: _angular_core.WritableSignal<boolean>;
2634
2676
  readonly viewportWidth: _angular_core.WritableSignal<number>;
@@ -2685,7 +2727,7 @@ declare class CarouselContentComponent implements AfterViewInit, OnDestroy {
2685
2727
  */
2686
2728
  announceSlideChange(): void;
2687
2729
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CarouselContentComponent, never>;
2688
- 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>;
2689
2731
  }
2690
2732
 
2691
2733
  declare class CarouselComponent {
@@ -3252,12 +3294,20 @@ declare class PopoverTriggerDirective {
3252
3294
  * @default false
3253
3295
  */
3254
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>;
3255
3305
  readonly host: ElementRef<HTMLElement>;
3256
3306
  readonly popover: PopoverComponent;
3257
3307
  readonly overlayOrigin: CdkOverlayOrigin;
3258
3308
  onClick(): void;
3259
3309
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<PopoverTriggerDirective, never>;
3260
- 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: {}; }]>;
3261
3311
  }
3262
3312
 
3263
3313
  type PopoverPosition = OverlayPosition;
@@ -3951,6 +4001,16 @@ declare class TediTableComponent<TData> {
3951
4001
  * @default undefined
3952
4002
  */
3953
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>;
3954
4014
  /**
3955
4015
  * Table-level row grouping key. When set, consecutive rendered rows with an
3956
4016
  * equal key form a group, and:
@@ -4127,6 +4187,10 @@ declare class TediTableComponent<TData> {
4127
4187
  protected readonly rowDetailsLabel: Signal<string>;
4128
4188
  protected readonly dragColumnLabel: Signal<string>;
4129
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>;
4130
4194
  /** Currently picked-up column id (during keyboard reordering), or `null`. */
4131
4195
  private readonly _pickedUpColumnId;
4132
4196
  /** Column order snapshot captured when picking up — restored on cancel. */
@@ -4226,6 +4290,14 @@ declare class TediTableComponent<TData> {
4226
4290
  protected readonly isSomePageRowsSelected: Signal<boolean>;
4227
4291
  constructor();
4228
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;
4229
4301
  protected handleRowClick(event: Event, row: Row<TData>): void;
4230
4302
  /**
4231
4303
  * True when the click originated on an interactive control between the event
@@ -4237,6 +4309,7 @@ declare class TediTableComponent<TData> {
4237
4309
  * the row is not interactive or no resolver is provided. */
4238
4310
  protected rowAriaLabelFor(row: Row<TData>): string | null;
4239
4311
  protected rowExpandsOnClick(row: Row<TData>): boolean;
4312
+ protected rowHasNestedInteractive(row: Row<TData>): boolean;
4240
4313
  protected handleRowMouseEnter(row: Row<TData>): void;
4241
4314
  protected handleRowMouseLeave(): void;
4242
4315
  /**
@@ -4354,7 +4427,7 @@ declare class TediTableComponent<TData> {
4354
4427
  };
4355
4428
  }): TableColumnMeta | undefined;
4356
4429
  protected getHeaderAriaSort(column: ReturnType<Table<TData>["getAllLeafColumns"]>[number]): "ascending" | "descending" | "none" | null;
4357
- protected getHeaderLabel(column: ReturnType<Table<TData>["getAllLeafColumns"]>[number]): string | null;
4430
+ protected getSrOnlyHeaderLabel(column: ReturnType<Table<TData>["getAllLeafColumns"]>[number]): string | null;
4358
4431
  protected resolveColumnLabel(column: ReturnType<Table<TData>["getAllLeafColumns"]>[number]): string;
4359
4432
  protected filterLabel(column: ReturnType<Table<TData>["getAllLeafColumns"]>[number]): string;
4360
4433
  protected filterPlaceholder(): string;
@@ -4435,6 +4508,7 @@ declare class TediTableComponent<TData> {
4435
4508
  * nothing.
4436
4509
  */
4437
4510
  private readonly filterDrafts;
4511
+ private readonly filterDraftBaselines;
4438
4512
  /**
4439
4513
  * Normalises `filterable: true | TableFilterOptions | undefined | false`
4440
4514
  * into `TableFilterOptions | null`. `null` means the column did not opt in.
@@ -4462,6 +4536,22 @@ declare class TediTableComponent<TData> {
4462
4536
  protected filterApplyLabel(): string;
4463
4537
  protected filterClearLabel(): string;
4464
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;
4465
4555
  /**
4466
4556
  * Called when the filter trigger button is clicked. If `clearOnClose` is
4467
4557
  * set, the draft is reset to the currently-applied value every time the
@@ -4497,7 +4587,7 @@ declare class TediTableComponent<TData> {
4497
4587
  };
4498
4588
  }, cellContext: CellContext<TData, unknown>): number | null;
4499
4589
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TediTableComponent<any>, never>;
4500
- 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>;
4501
4591
  }
4502
4592
 
4503
4593
  declare const TEDI_TABLE_CONTEXT: InjectionToken<TediTableContextValue<unknown>>;
@@ -6009,6 +6099,11 @@ declare class NumberFieldComponent implements ControlValueAccessor {
6009
6099
  * @default false
6010
6100
  */
6011
6101
  fullWidth: _angular_core.InputSignal<boolean>;
6102
+ /**
6103
+ * Accessible label for the input, used when no visible `label` is provided
6104
+ * (e.g. when the field is embedded as a compact addon of another control).
6105
+ */
6106
+ ariaLabel: _angular_core.InputSignal<string | undefined>;
6012
6107
  inputRef: ElementRef<HTMLInputElement>;
6013
6108
  private formDisabled;
6014
6109
  private onChange;
@@ -6031,7 +6126,7 @@ declare class NumberFieldComponent implements ControlValueAccessor {
6031
6126
  handleInputChange(event: Event): void;
6032
6127
  handleBlur(): void;
6033
6128
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NumberFieldComponent, never>;
6034
- 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>;
6129
+ 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>;
6035
6130
  }
6036
6131
 
6037
6132
  type InputSize = "small" | "large" | "default";
@@ -6797,6 +6892,11 @@ declare class ToggleComponent implements ControlValueAccessor {
6797
6892
  * @default false
6798
6893
  */
6799
6894
  icon: _angular_core.InputSignal<boolean>;
6895
+ /**
6896
+ * Accessible label for the toggle. Provide this when there is no associated
6897
+ * visible `<label>` element, so the switch has an accessible name.
6898
+ */
6899
+ ariaLabel: _angular_core.InputSignal<string | undefined>;
6800
6900
  inputRef: ElementRef<HTMLInputElement>;
6801
6901
  private onChange;
6802
6902
  private onTouched;
@@ -6809,7 +6909,7 @@ declare class ToggleComponent implements ControlValueAccessor {
6809
6909
  classes: _angular_core.Signal<string>;
6810
6910
  iconColor: _angular_core.Signal<IconColor>;
6811
6911
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToggleComponent, never>;
6812
- 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>;
6912
+ 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>;
6813
6913
  }
6814
6914
 
6815
6915
  /**
@@ -7491,12 +7591,16 @@ declare class ScrollFadeComponent implements AfterViewInit, OnDestroy {
7491
7591
  readonly fadePosition: _angular_core.InputSignal<ScrollFadePosition>;
7492
7592
  /** Scrollbar style. */
7493
7593
  readonly scrollBar: _angular_core.InputSignal<ScrollFadeScrollbar>;
7594
+ /** Accessible label for the scrollable region. Falls back to a translated default. */
7595
+ readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
7494
7596
  /** Emitted when scrolled to the top. */
7495
7597
  readonly scrolledToTop: _angular_core.OutputEmitterRef<void>;
7496
7598
  /** Emitted when scrolled to the bottom. */
7497
7599
  readonly scrolledToBottom: _angular_core.OutputEmitterRef<void>;
7600
+ private readonly translationService;
7498
7601
  private readonly innerRef;
7499
7602
  private resizeObserver;
7603
+ readonly _defaultLabel: _angular_core.Signal<string>;
7500
7604
  private readonly fade;
7501
7605
  readonly classes: _angular_core.Signal<string>;
7502
7606
  readonly innerClasses: _angular_core.Signal<string>;
@@ -7505,7 +7609,7 @@ declare class ScrollFadeComponent implements AfterViewInit, OnDestroy {
7505
7609
  ngOnDestroy(): void;
7506
7610
  private updateFade;
7507
7611
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ScrollFadeComponent, never>;
7508
- 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>;
7612
+ 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>;
7509
7613
  }
7510
7614
 
7511
7615
  type SeparatorAxis = "horizontal" | "vertical";