@tedi-design-system/angular 6.5.0-rc.17 → 6.5.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/tedi/index.d.ts CHANGED
@@ -1,18 +1,18 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { AfterContentChecked, AfterViewInit, InputSignal, Signal, PipeTransform, ElementRef, TemplateRef, OnDestroy, Injector, InjectionToken, WritableSignal, OnInit, AfterContentInit, AfterViewChecked, QueryList, EnvironmentProviders } from '@angular/core';
2
+ import { AfterContentChecked, AfterViewInit, InputSignal, Signal, PipeTransform, ElementRef, TemplateRef, OnDestroy, Injector, InjectionToken, WritableSignal, OnInit, AfterViewChecked, AfterContentInit, QueryList, EnvironmentProviders } from '@angular/core';
3
3
  import * as _tedi_design_system_angular_tedi from '@tedi-design-system/angular/tedi';
4
+ import { ControlValueAccessor, NgControl } from '@angular/forms';
4
5
  import * as _tanstack_table_core from '@tanstack/table-core';
5
6
  import { CdkDragDrop } from '@angular/cdk/drag-drop';
6
7
  import { Table, VisibilityState, ColumnOrderState, ColumnSizingState, RowSelectionState, ExpandedState, ColumnFiltersState, SortingState, PaginationState, ColumnDef, CellContext, Row, Column } from '@tanstack/angular-table';
7
8
  import * as _angular_cdk_overlay from '@angular/cdk/overlay';
8
9
  import { ConnectedOverlayPositionChange, ConnectedPosition, CdkOverlayOrigin, CdkConnectedOverlay } from '@angular/cdk/overlay';
9
- import { ControlValueAccessor, NgControl } from '@angular/forms';
10
+ import { _IdGenerator } from '@angular/cdk/a11y';
10
11
  import { CdkListbox } from '@angular/cdk/listbox';
11
12
  import { Observable } from 'rxjs';
12
13
  import { DialogRef } from '@angular/cdk/dialog';
13
14
  import { ComponentType } from '@angular/cdk/portal';
14
15
  import * as i1 from '@angular/cdk/scrolling';
15
- import { _IdGenerator } from '@angular/cdk/a11y';
16
16
 
17
17
  type IconSize = 8 | 12 | 16 | 18 | 24 | 36 | 48 | "inherit";
18
18
  type IconVariant = "filled" | "outlined";
@@ -1361,6 +1361,13 @@ declare const translationsMap: {
1361
1361
  en: string;
1362
1362
  ru: string;
1363
1363
  };
1364
+ "date-picker.today": {
1365
+ description: string;
1366
+ components: string[];
1367
+ et: string;
1368
+ en: string;
1369
+ ru: string;
1370
+ };
1364
1371
  "date-picker.go-next-month": {
1365
1372
  description: string;
1366
1373
  components: string[];
@@ -1368,6 +1375,41 @@ declare const translationsMap: {
1368
1375
  en: string;
1369
1376
  ru: string;
1370
1377
  };
1378
+ "date-picker.calendar-nav": {
1379
+ description: string;
1380
+ components: string[];
1381
+ et: string;
1382
+ en: string;
1383
+ ru: string;
1384
+ };
1385
+ "date-picker.choose-month": {
1386
+ description: string;
1387
+ components: string[];
1388
+ et: string;
1389
+ en: string;
1390
+ ru: string;
1391
+ };
1392
+ "date-picker.choose-year": {
1393
+ description: string;
1394
+ components: string[];
1395
+ et: string;
1396
+ en: string;
1397
+ ru: string;
1398
+ };
1399
+ "date-picker.week-number": {
1400
+ description: string;
1401
+ components: string[];
1402
+ et: (n: number) => string;
1403
+ en: (n: number) => string;
1404
+ ru: (n: number) => string;
1405
+ };
1406
+ "date-picker.week-number-header": {
1407
+ description: string;
1408
+ components: string[];
1409
+ et: string;
1410
+ en: string;
1411
+ ru: string;
1412
+ };
1371
1413
  "date-picker.go-prev-month": {
1372
1414
  description: string;
1373
1415
  components: string[];
@@ -1417,6 +1459,41 @@ declare const translationsMap: {
1417
1459
  en: string;
1418
1460
  ru: string;
1419
1461
  };
1462
+ "date-field.remove-chip": {
1463
+ description: string;
1464
+ components: string[];
1465
+ et: (label: string) => string;
1466
+ en: (label: string) => string;
1467
+ ru: (label: string) => string;
1468
+ };
1469
+ "date-field.calendar-dialog": {
1470
+ description: string;
1471
+ components: string[];
1472
+ et: string;
1473
+ en: string;
1474
+ ru: string;
1475
+ };
1476
+ "date-field.modal-title": {
1477
+ description: string;
1478
+ components: string[];
1479
+ et: string;
1480
+ en: string;
1481
+ ru: string;
1482
+ };
1483
+ "date-field.confirm": {
1484
+ description: string;
1485
+ components: string[];
1486
+ et: string;
1487
+ en: string;
1488
+ ru: string;
1489
+ };
1490
+ "date-field.cancel": {
1491
+ description: string;
1492
+ components: string[];
1493
+ et: string;
1494
+ en: string;
1495
+ ru: string;
1496
+ };
1420
1497
  "time-picker.hours": {
1421
1498
  description: string;
1422
1499
  components: string[];
@@ -2375,6 +2452,437 @@ declare class CarouselNavigationComponent {
2375
2452
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<CarouselNavigationComponent, "tedi-carousel-navigation", never, {}, {}, never, never, true, never>;
2376
2453
  }
2377
2454
 
2455
+ /**
2456
+ * A date range with an inclusive start (`from`) and optional inclusive end (`to`).
2457
+ * When `to` is undefined the range degenerates to the single day `from`.
2458
+ */
2459
+ type DateRange = {
2460
+ from: Date;
2461
+ to?: Date;
2462
+ };
2463
+ /**
2464
+ * Formats a Date object to dd.MM.yyyy string format.
2465
+ *
2466
+ * Thin wrapper around `formatLocaleDate(date, 'et-EE')` kept for back-compat.
2467
+ * New code should call `formatLocaleDate` directly with the desired locale.
2468
+ */
2469
+ declare function formatDate(date: Date): string;
2470
+ /**
2471
+ * Parses a dd.MM.yyyy string to a Date object.
2472
+ * Returns null if the string is invalid.
2473
+ *
2474
+ * Thin wrapper around `parseLocaleDate(str, 'et-EE')` kept for back-compat.
2475
+ * Note: `parseLocaleDate` returns `Date | undefined`; this wrapper normalizes
2476
+ * undefined to null so existing callers asserting `=== null` still work.
2477
+ */
2478
+ declare function parseDate(str: string): Date | null;
2479
+ /**
2480
+ * Checks if two dates represent the same calendar day.
2481
+ */
2482
+ declare function isSameDay(a: Date, b: Date): boolean;
2483
+ /**
2484
+ * Checks if date a is before date b (day-level, time ignored).
2485
+ */
2486
+ declare function isBeforeDay(a: Date, b: Date): boolean;
2487
+ /**
2488
+ * Checks if date a is after date b (day-level, time ignored).
2489
+ */
2490
+ declare function isAfterDay(a: Date, b: Date): boolean;
2491
+ /**
2492
+ * Returns the ISO week number for a given date.
2493
+ */
2494
+ declare function getISOWeek(date: Date): number;
2495
+ /**
2496
+ * Returns a new Date offset by `n` days from `date`. `n` may be negative.
2497
+ */
2498
+ declare function addDays(date: Date, n: number): Date;
2499
+ /**
2500
+ * Returns a new Date offset by `n` months from `date`. Clamps the day to the
2501
+ * last day of the target month (e.g. Jan 31 + 1 month → Feb 28/29).
2502
+ */
2503
+ declare function addMonths(date: Date, n: number): Date;
2504
+ /**
2505
+ * Returns a new Date offset by `n` years from `date`. Clamps Feb 29 to Feb 28
2506
+ * in non-leap target years.
2507
+ */
2508
+ declare function addYears(date: Date, n: number): Date;
2509
+ /**
2510
+ * Returns the first day of the month for `date` at 00:00 local time.
2511
+ */
2512
+ declare function startOfMonth(date: Date): Date;
2513
+ /**
2514
+ * Returns the last day of the month for `date` at 00:00 local time.
2515
+ */
2516
+ declare function endOfMonth(date: Date): Date;
2517
+ /**
2518
+ * Returns the first day of the week containing `date`, given a locale's
2519
+ * first day of week (0=Sun..6=Sat).
2520
+ */
2521
+ declare function startOfWeek(date: Date, firstDayOfWeek: number): Date;
2522
+ /**
2523
+ * Returns the number of days in the given month/year. `monthIndex` is 0-based.
2524
+ */
2525
+ declare function getDaysInMonth(year: number, monthIndex: number): number;
2526
+ /**
2527
+ * Checks if two dates fall in the same calendar month and year.
2528
+ */
2529
+ declare function isSameMonth(a: Date, b: Date): boolean;
2530
+ /**
2531
+ * Checks if two dates fall in the same calendar year.
2532
+ */
2533
+ declare function isSameYear(a: Date, b: Date): boolean;
2534
+ /**
2535
+ * Returns the locale's first day of week as a JS day index (0=Sun..6=Sat).
2536
+ *
2537
+ * Reads `Intl.Locale(localeCode).getWeekInfo()` when available, falling back
2538
+ * to 1 (Monday) when unavailable. Intl returns 1-7 (1=Mon..7=Sun); this
2539
+ * function converts to JS's 0-6 convention.
2540
+ */
2541
+ declare function getFirstDayOfWeek(localeCode: string): number;
2542
+ /**
2543
+ * Returns 12 month names (January..December) in the requested locale and format.
2544
+ */
2545
+ declare function getMonthNames(localeCode: string, format: "long" | "short"): string[];
2546
+ /**
2547
+ * Returns 7 weekday names starting at `firstDayOfWeek` (0=Sun..6=Sat) in the
2548
+ * requested locale and format.
2549
+ */
2550
+ declare function getWeekdayNames(localeCode: string, format: "long" | "short" | "narrow", firstDayOfWeek: number): string[];
2551
+ /**
2552
+ * Formats a Date according to the given locale's short numeric form.
2553
+ * For `et-EE` produces `dd.MM.yyyy`; for `en-US` `MM/dd/yyyy`; for `en-GB`
2554
+ * `dd/MM/yyyy`; etc.
2555
+ */
2556
+ declare function formatLocaleDate(date: Date, localeCode: string): string;
2557
+ /**
2558
+ * Formats a Date as a long-form, locale-aware string suitable for
2559
+ * `aria-label` use — e.g. for `en-US` produces "Friday, May 16, 2026" and for
2560
+ * `et-EE` "reede, 16. mai 2026". Matches react-day-picker's `labelDay` shape.
2561
+ */
2562
+ declare function formatLocaleDateLong(date: Date, localeCode: string): string;
2563
+ /**
2564
+ * Formats a Date as a locale-aware "Month Year" string — e.g. "May 2026" for
2565
+ * `en-US` and "mai 2026" for `et-EE`. Used as the aria-label for the day
2566
+ * grid and inside the calendar header's aria-live region so screen readers
2567
+ * announce the visible month/year on navigation.
2568
+ */
2569
+ declare function formatMonthYear(date: Date, localeCode: string): string;
2570
+ /**
2571
+ * Builds a locale-aware manual-entry hint such as `pp.kk.aaaa` (et-EE),
2572
+ * `dd.mm.yyyy` (en) or `дд.мм.гггг` (ru). Field order and separators are
2573
+ * derived from `Intl.DateTimeFormat` (so they always match what the field
2574
+ * formats and parses), while the letter tokens are localized per language.
2575
+ * Falls back to English tokens for unknown languages.
2576
+ */
2577
+ declare function formatLocaleDateHint(localeCode: string): string;
2578
+ /**
2579
+ * Parses a locale-formatted date string back into a Date.
2580
+ *
2581
+ * Algorithm (mirrors React's defaultParseDate):
2582
+ * 1. Format a reference date with distinct y/m/d digits via Intl.DateTimeFormat.
2583
+ * 2. Walk `formatToParts` to discover the field order and the literal
2584
+ * separators the locale uses.
2585
+ * 3. Build a regex from that ordering using field-aware digit ranges
2586
+ * (day/month: 1-2 digits, year: 2 or 4 digits) and the actual escaped
2587
+ * separators. 3-digit years are rejected.
2588
+ * 4. Match the (trimmed) input; reject if no match.
2589
+ * 5. Validate ranges and check the constructed Date round-trips (so e.g.
2590
+ * Feb 30 is rejected).
2591
+ *
2592
+ * Returns `undefined` on any failure — silent, caller decides UX.
2593
+ */
2594
+ declare function parseLocaleDate(value: string, localeCode: string): Date | undefined;
2595
+ /**
2596
+ * Returns true if `date` falls within the inclusive `[from, to]` range
2597
+ * (day-level). When `to` is undefined, only `from` matters (same-day check).
2598
+ */
2599
+ declare function isDateInRange(date: Date, range: DateRange): boolean;
2600
+ /**
2601
+ * Toggles a date in an array of dates (day-level). If a same-day entry exists
2602
+ * it is removed; otherwise the date is appended. Returns a new array.
2603
+ */
2604
+ declare function toggleDateInArray(dates: Date[], date: Date): Date[];
2605
+ /**
2606
+ * Builds a 6×7 grid of Date cells for the calendar day view.
2607
+ *
2608
+ * - The first weekday of the month is found, then we walk back to
2609
+ * `firstDayOfWeek` to fill leading cells.
2610
+ * - Cells outside the current month are real Date objects when
2611
+ * `showOutsideDays` is true, otherwise `null`.
2612
+ * - Always returns 6 rows × 7 cells (42 cells total).
2613
+ */
2614
+ declare function buildMonthGrid(month: Date, firstDayOfWeek: number, showOutsideDays: boolean): (Date | null)[][];
2615
+
2616
+ type DateBefore = {
2617
+ before: Date;
2618
+ };
2619
+ type DateAfter = {
2620
+ after: Date;
2621
+ };
2622
+ type DateInterval = {
2623
+ before: Date;
2624
+ after: Date;
2625
+ };
2626
+ type DayOfWeek = {
2627
+ dayOfWeek: number[];
2628
+ };
2629
+ type Matcher = boolean | Date | Date[] | DateBefore | DateAfter | DateInterval | DateRange | DayOfWeek | ((date: Date) => boolean);
2630
+ /**
2631
+ * Returns whether `date` matches the given matcher.
2632
+ *
2633
+ * Semantics mirror react-day-picker:
2634
+ * - `boolean` — returned as-is.
2635
+ * - `Date` — true if same day.
2636
+ * - `Date[]` — true if any entry is the same day.
2637
+ * - `{ before }` — true if date is strictly before `before` (day-level).
2638
+ * - `{ after }` — true if date is strictly after `after` (day-level).
2639
+ * - `{ before, after }` — true if date is OUTSIDE the interval `(after, before)`
2640
+ * (i.e. `date <= after || date >= before`, day-level).
2641
+ * - `{ from, to? }` — true if date is within `[from, to]` inclusive (day-level).
2642
+ * If `to` is omitted, only `from` matters.
2643
+ * - `{ dayOfWeek }` — true if `date.getDay()` is in the array.
2644
+ * - function — called with the date.
2645
+ */
2646
+ declare function matchDate(date: Date, matcher: Matcher): boolean;
2647
+ /**
2648
+ * Returns true if any matcher in the list matches the given date.
2649
+ * An empty array returns false.
2650
+ */
2651
+ declare function matchAny(date: Date, matchers: Matcher[]): boolean;
2652
+
2653
+ type StatusIndicatorType = "success" | "danger" | "warning" | "inactive";
2654
+ type StatusIndicatorSize = "sm" | "lg";
2655
+ type StatusIndicatorPosition = "default" | "top-right";
2656
+ declare class StatusIndicatorComponent {
2657
+ /**
2658
+ * Accessible label for the indicator. When provided, the indicator is
2659
+ * exposed to assistive technology with `role="img"`. When omitted, the
2660
+ * indicator is treated as decorative (`aria-hidden="true"`).
2661
+ */
2662
+ readonly label: _angular_core.InputSignal<string | undefined>;
2663
+ /**
2664
+ * The status type, which determines the indicator color.
2665
+ * @default success
2666
+ */
2667
+ readonly type: _angular_core.InputSignal<StatusIndicatorType>;
2668
+ /**
2669
+ * The size of the indicator.
2670
+ * @default sm
2671
+ */
2672
+ readonly size: _angular_core.InputSignal<StatusIndicatorSize>;
2673
+ /**
2674
+ * Whether the indicator has a white border ring.
2675
+ * @default false
2676
+ */
2677
+ readonly hasBorder: _angular_core.InputSignal<boolean>;
2678
+ /**
2679
+ * Controls positioning of the indicator.
2680
+ * - `'default'` — inline, no absolute positioning
2681
+ * - `'top-right'` — absolutely positioned at the top-right corner of the parent
2682
+ * @default default
2683
+ */
2684
+ readonly position: _angular_core.InputSignal<StatusIndicatorPosition>;
2685
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<StatusIndicatorComponent, never>;
2686
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<StatusIndicatorComponent, "tedi-status-indicator", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "hasBorder": { "alias": "hasBorder"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2687
+ }
2688
+
2689
+ type CalendarView = "days" | "months" | "years";
2690
+ type DateFieldMode = "single" | "multiple" | "range";
2691
+
2692
+ interface DayStatus {
2693
+ type: StatusIndicatorType;
2694
+ /**
2695
+ * Accessible label for the status. Surfaced on the day button's `aria-label`
2696
+ * so screen readers announce the date together with its status — required to
2697
+ * meet WCAG 1.1.1 / 1.4.1 since the indicator dot alone is decorative.
2698
+ */
2699
+ label: string;
2700
+ }
2701
+ type DayStatusFn = (date: Date) => DayStatus | null | undefined;
2702
+
2703
+ type CalendarValue = Date | Date[] | DateRange | null;
2704
+ type DayPredicate = (date: Date) => boolean;
2705
+ type DayAvailabilityInput$1 = Date[] | DayPredicate | undefined;
2706
+ type MonthPredicate$1 = (month: Date) => boolean;
2707
+ type YearPredicate$1 = (year: Date) => boolean;
2708
+ declare class CalendarComponent implements ControlValueAccessor {
2709
+ /**
2710
+ * Active view (two-way). `days` shows the day grid, `months` the month grid,
2711
+ * `years` the year grid. Driven by `selectionLevel` and the header navigation,
2712
+ * but can be set directly to open the calendar on a specific level.
2713
+ */
2714
+ readonly view: _angular_core.ModelSignal<CalendarView>;
2715
+ /**
2716
+ * The first (left-most) month shown (two-way). Drives which month grid is
2717
+ * rendered and is updated by header navigation and keyboard paging. For
2718
+ * multi-month layouts the additional months follow this one.
2719
+ */
2720
+ readonly currentMonth: _angular_core.ModelSignal<Date>;
2721
+ /**
2722
+ * The selected value (two-way / `ControlValueAccessor`). Shape follows `mode`:
2723
+ * `single` → `Date | null`, `multiple` → `Date[]`, `range` → `{ from, to }`.
2724
+ */
2725
+ readonly value: _angular_core.ModelSignal<CalendarValue>;
2726
+ /**
2727
+ * Selection mode. `single` selects one date, `multiple` toggles dates in an
2728
+ * array, `range` builds a `{ from, to }` range across two clicks.
2729
+ */
2730
+ readonly mode: _angular_core.InputSignal<DateFieldMode>;
2731
+ /**
2732
+ * Lowest level the user can commit to. `days` shows the day grid as the final
2733
+ * step; `months` and `years` commit at that level instead.
2734
+ */
2735
+ readonly selectionLevel: _angular_core.InputSignal<CalendarView>;
2736
+ /**
2737
+ * BCP-47 locale used for weekday/month names and the first day of the week.
2738
+ */
2739
+ readonly localeCode: _angular_core.InputSignal<string>;
2740
+ /**
2741
+ * Render the trailing/leading days from the adjacent month inside the current
2742
+ * month's grid.
2743
+ */
2744
+ readonly showOutsideDays: _angular_core.InputSignal<boolean>;
2745
+ /** Render the ISO week-number column at the start of each row. */
2746
+ readonly showWeekNumbers: _angular_core.InputSignal<boolean>;
2747
+ /** Show the previous/next navigation chevrons in the header. */
2748
+ readonly showNavigation: _angular_core.InputSignal<boolean>;
2749
+ /**
2750
+ * Render the calendar with its own outer border and rounded corners. Disable
2751
+ * when embedding inside a surface that already has a border (e.g. the
2752
+ * DateField overlay).
2753
+ */
2754
+ readonly bordered: _angular_core.InputSignal<boolean>;
2755
+ /**
2756
+ * Matchers that mark dates as disabled. Each matcher can be a `Date`, `Date[]`,
2757
+ * `{ before }`, `{ after }`, `{ before, after }`, `{ from, to? }`,
2758
+ * `{ dayOfWeek: number[] }`, or a `(date) => boolean` predicate.
2759
+ */
2760
+ readonly disabledMatchers: _angular_core.InputSignal<Matcher[]>;
2761
+ /**
2762
+ * Whitelist of selectable days — an explicit `Date[]` or a predicate
2763
+ * `(date) => boolean`. Days outside the whitelist are disabled.
2764
+ */
2765
+ readonly availableDays: _angular_core.InputSignal<DayAvailabilityInput$1>;
2766
+ /**
2767
+ * Blacklist of unavailable days — a `Date[]` or a predicate `(date) => boolean`.
2768
+ * Takes precedence over `availableDays`.
2769
+ */
2770
+ readonly unavailableDays: _angular_core.InputSignal<DayAvailabilityInput$1>;
2771
+ /**
2772
+ * Function `(date) => { type, label } | null | undefined` that overlays a
2773
+ * `tedi-status-indicator` dot on specific days. The `label` is surfaced on the
2774
+ * day button's `aria-label` for screen readers.
2775
+ */
2776
+ readonly dayStatus: _angular_core.InputSignal<DayStatusFn | undefined>;
2777
+ /**
2778
+ * How the header exposes month/year picking. `dropdown` shows two dropdowns;
2779
+ * `grid` switches the body to a month or year grid when the header label is
2780
+ * clicked; `static` renders just the label — only the prev/next chevrons can
2781
+ * change the month.
2782
+ */
2783
+ readonly monthYearSelectType: _angular_core.InputSignal<"static" | "dropdown" | "grid">;
2784
+ /**
2785
+ * When `mode='multiple'`, prevents clearing the last selected date — at least
2786
+ * one date must remain selected.
2787
+ */
2788
+ readonly required: _angular_core.InputSignal<boolean>;
2789
+ /**
2790
+ * How many consecutive months to render side by side. Useful for range
2791
+ * selection. The visible count is capped to what fits the viewport width.
2792
+ */
2793
+ readonly numberOfMonths: _angular_core.InputSignal<number>;
2794
+ /**
2795
+ * Disables all interactions. Combines with the reactive-forms disabled state.
2796
+ */
2797
+ readonly inputDisabled: _angular_core.InputSignal<boolean>;
2798
+ /**
2799
+ * Predicate `(month) => boolean` returning `true` to disable a whole month
2800
+ * (header navigation and the month grid). Leave `undefined` to disable nothing.
2801
+ */
2802
+ readonly shouldDisableMonth: _angular_core.InputSignal<MonthPredicate$1 | undefined>;
2803
+ /**
2804
+ * Predicate `(year) => boolean` returning `true` to disable a whole year
2805
+ * (header navigation and the year grid). Leave `undefined` to disable nothing.
2806
+ */
2807
+ readonly shouldDisableYear: _angular_core.InputSignal<YearPredicate$1 | undefined>;
2808
+ /**
2809
+ * Earliest year offered in the year grid/dropdown. Defaults to 10 years before
2810
+ * the current year when `null`.
2811
+ */
2812
+ readonly minYear: _angular_core.InputSignal<number | null>;
2813
+ /**
2814
+ * Latest year offered in the year grid/dropdown. Defaults to 10 years after
2815
+ * the current year when `null`.
2816
+ */
2817
+ readonly maxYear: _angular_core.InputSignal<number | null>;
2818
+ /**
2819
+ * Emitted whenever a value is committed. `date` is the new full value (shape
2820
+ * follows `mode`); `day` is the specific day/month/year that was clicked.
2821
+ */
2822
+ readonly select: _angular_core.OutputEmitterRef<{
2823
+ date: CalendarValue;
2824
+ day: Date;
2825
+ }>;
2826
+ private readonly hostEl;
2827
+ private readonly injector;
2828
+ private readonly destroyRef;
2829
+ readonly yearPageSize = 12;
2830
+ private readonly cvaDisabled;
2831
+ private readonly internalYearPageStart;
2832
+ readonly hoveredDay: _angular_core.WritableSignal<Date | null>;
2833
+ private readonly viewportWidth;
2834
+ private onChange;
2835
+ private onTouched;
2836
+ constructor();
2837
+ private static readonly VIEWPORT_MARGIN_PX;
2838
+ private updateFitColumns;
2839
+ readonly effectiveDisabled: _angular_core.Signal<boolean>;
2840
+ readonly firstDayOfWeek: _angular_core.Signal<number>;
2841
+ readonly monthDates: _angular_core.Signal<Date[]>;
2842
+ readonly resolvedMinYear: _angular_core.Signal<number>;
2843
+ readonly resolvedMaxYear: _angular_core.Signal<number>;
2844
+ readonly yearPageStart: _angular_core.Signal<number>;
2845
+ readonly selectedSingle: _angular_core.Signal<Date | null>;
2846
+ readonly computedDisabledMatchers: _angular_core.Signal<Matcher[]>;
2847
+ readonly effectiveIsMonthDisabled: _angular_core.Signal<MonthPredicate$1>;
2848
+ readonly effectiveIsYearDisabled: _angular_core.Signal<YearPredicate$1>;
2849
+ writeValue(value: CalendarValue): void;
2850
+ registerOnChange(fn: (value: CalendarValue) => void): void;
2851
+ registerOnTouched(fn: () => void): void;
2852
+ setDisabledState(disabled: boolean): void;
2853
+ handlePrev(): void;
2854
+ handleNext(): void;
2855
+ handleHeaderMonthChange(monthStartDate: Date, index?: number): void;
2856
+ handleHeaderYearChange(yearStartDate: Date, index?: number): void;
2857
+ handleHeaderViewChange(nextView: CalendarView): void;
2858
+ handleDaySelect(day: Date): void;
2859
+ handleMonthSelect(monthStartDate: Date): void;
2860
+ handleYearSelect(yearStartDate: Date): void;
2861
+ private applyModeSelection;
2862
+ handleKeydown(event: KeyboardEvent): void;
2863
+ private handleDaysKeydown;
2864
+ private computeDayKeyTarget;
2865
+ private skipDisabledDays;
2866
+ private adjustCurrentMonthForFocus;
2867
+ private handleMonthsKeydown;
2868
+ private handleYearsKeydown;
2869
+ private focusGridIndex;
2870
+ private queryGridButtons;
2871
+ /**
2872
+ * Moves focus to the calendar's active cell — the roving-tabindex day in the
2873
+ * day view, or the first enabled control in the month/year views. Used by
2874
+ * popover hosts (e.g. date-field) to pull focus into the calendar when it
2875
+ * opens, since the CDK overlay is detached from the trigger in DOM order.
2876
+ */
2877
+ focusActiveCell(): void;
2878
+ private focusDayCell;
2879
+ private commit;
2880
+ private partialRange;
2881
+ private deriveAnchor;
2882
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CalendarComponent, never>;
2883
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CalendarComponent, "tedi-calendar", never, { "view": { "alias": "view"; "required": false; "isSignal": true; }; "currentMonth": { "alias": "currentMonth"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "selectionLevel": { "alias": "selectionLevel"; "required": false; "isSignal": true; }; "localeCode": { "alias": "localeCode"; "required": false; "isSignal": true; }; "showOutsideDays": { "alias": "showOutsideDays"; "required": false; "isSignal": true; }; "showWeekNumbers": { "alias": "showWeekNumbers"; "required": false; "isSignal": true; }; "showNavigation": { "alias": "showNavigation"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; "disabledMatchers": { "alias": "disabledMatchers"; "required": false; "isSignal": true; }; "availableDays": { "alias": "availableDays"; "required": false; "isSignal": true; }; "unavailableDays": { "alias": "unavailableDays"; "required": false; "isSignal": true; }; "dayStatus": { "alias": "dayStatus"; "required": false; "isSignal": true; }; "monthYearSelectType": { "alias": "monthYearSelectType"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "numberOfMonths": { "alias": "numberOfMonths"; "required": false; "isSignal": true; }; "inputDisabled": { "alias": "inputDisabled"; "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; }; }, { "view": "viewChange"; "currentMonth": "currentMonthChange"; "value": "valueChange"; "select": "select"; }, never, ["[tediCalendarFooter]"], true, never>;
2884
+ }
2885
+
2378
2886
  type PaginationBackground = "white" | "transparent";
2379
2887
  /**
2380
2888
  * Visibility toggle for the results / page-size / pager / arrow slots.
@@ -4486,19 +4994,415 @@ declare class RadioCardGroupComponent {
4486
4994
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadioCardGroupComponent, "tedi-radio-card-group", never, { "grouped": { "alias": "grouped"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
4487
4995
  }
4488
4996
 
4489
- declare class DatePickerCalendarGridComponent {
4490
- private readonly gridElement;
4491
- /** Grid element unique ID for ARIA */
4492
- readonly gridId: _angular_core.InputSignal<string>;
4493
- /** Week rows containing day data */
4494
- readonly weekRows: _angular_core.InputSignal<DatePickerDay[][]>;
4495
- /** Week numbers for each row */
4496
- readonly weekNumbers: _angular_core.InputSignal<number[]>;
4497
- /** Whether to show week numbers */
4498
- readonly showWeekNumbers: _angular_core.InputSignal<boolean>;
4499
- /** Currently active date for keyboard navigation */
4500
- readonly activeDate: _angular_core.InputSignal<Date | null>;
4501
- /** Currently selected date */
4997
+ type EllipsisPosition = "start" | "end";
4998
+ declare class EllipsisComponent {
4999
+ /** Maximum number of lines before truncating. End (multi-line) only. */
5000
+ readonly lineClamp: _angular_core.InputSignal<number>;
5001
+ /** Whether truncated content shows a hover/focus tooltip with full text. */
5002
+ readonly tooltip: _angular_core.InputSignal<boolean>;
5003
+ /** Ellipsis position. 'start' = leading, single-line. 'end' = trailing, multi-line. */
5004
+ readonly position: _angular_core.InputSignal<EllipsisPosition>;
5005
+ readonly content: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
5006
+ readonly isEllipsed: _angular_core.WritableSignal<boolean>;
5007
+ readonly fullText: _angular_core.WritableSignal<string>;
5008
+ constructor();
5009
+ readonly contentClasses: _angular_core.Signal<string>;
5010
+ readonly clampStyle: _angular_core.Signal<string | null>;
5011
+ private updateEllipsedState;
5012
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<EllipsisComponent, never>;
5013
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<EllipsisComponent, "tedi-ellipsis", never, { "lineClamp": { "alias": "lineClamp"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
5014
+ }
5015
+
5016
+ type TagType = "primary" | "secondary" | "danger";
5017
+ type TagEllipsis = "start" | "end" | false;
5018
+ declare class TagComponent {
5019
+ readonly idGenerator: _IdGenerator;
5020
+ readonly uniqueId: string;
5021
+ /**
5022
+ * Whether the tag is in loading state.
5023
+ * When true, a spinner will be displayed inside the tag.
5024
+ * @default false
5025
+ */
5026
+ loading: _angular_core.InputSignal<boolean>;
5027
+ /**
5028
+ * Whether the tag can be closed.
5029
+ * When true, a close button will be displayed that emits the 'closed' event when clicked.
5030
+ * @default false
5031
+ */
5032
+ closable: _angular_core.InputSignal<boolean>;
5033
+ /**
5034
+ * The visual style of the tag.
5035
+ * Possible values: 'primary', 'secondary', 'danger'
5036
+ * @default "primary"
5037
+ */
5038
+ type: _angular_core.InputSignal<TagType>;
5039
+ /**
5040
+ * Which end the label truncates from when it doesn't fit. `false` (default)
5041
+ * never truncates — the label wraps and the tag keeps its full width. `end`
5042
+ * shows an ellipsis at the end (`Long label…`); `start` shows it at the start
5043
+ * (`…label`), which keeps the most significant part of values like dates
5044
+ * visible. Truncation only kicks in when the tag is width-constrained, and the
5045
+ * full label is revealed in a tooltip on hover/focus.
5046
+ * @default false
5047
+ */
5048
+ ellipsis: _angular_core.InputSignal<TagEllipsis>;
5049
+ /**
5050
+ * Event emitted when the close button is clicked.
5051
+ */
5052
+ closed: _angular_core.OutputEmitterRef<Event>;
5053
+ classes: _angular_core.Signal<string>;
5054
+ ellipsisPosition: _angular_core.Signal<EllipsisPosition>;
5055
+ handleClose(event: Event): void;
5056
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TagComponent, never>;
5057
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TagComponent, "tedi-tag", never, { "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "ellipsis": { "alias": "ellipsis"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, ["*"], true, never>;
5058
+ }
5059
+
5060
+ interface DateInputTag {
5061
+ id: string;
5062
+ label: string;
5063
+ }
5064
+ declare class DateInputComponent implements AfterViewChecked {
5065
+ readonly inputId: _angular_core.InputSignal<string>;
5066
+ readonly value: _angular_core.InputSignal<string>;
5067
+ readonly tags: _angular_core.InputSignal<readonly DateInputTag[]>;
5068
+ readonly mode: _angular_core.InputSignal<DateFieldMode>;
5069
+ /**
5070
+ * Multiple mode: when `true` (default) the tags wrap to multiple rows and the
5071
+ * field grows in height. When `false` the tags stay on a single row and the
5072
+ * overflow collapses into a "+N" counter tag.
5073
+ */
5074
+ readonly multiRow: _angular_core.InputSignal<boolean>;
5075
+ /** Which end the tag labels truncate from when they don't fit (`false` = no truncation). */
5076
+ readonly ellipsis: _angular_core.InputSignal<TagEllipsis>;
5077
+ /** Whether the tags show a remove (close) button. */
5078
+ readonly removable: _angular_core.InputSignal<boolean>;
5079
+ readonly placeholder: _angular_core.InputSignal<string>;
5080
+ readonly disabled: _angular_core.InputSignal<boolean>;
5081
+ readonly readOnly: _angular_core.InputSignal<boolean>;
5082
+ readonly required: _angular_core.InputSignal<boolean>;
5083
+ readonly iconActive: _angular_core.InputSignal<boolean>;
5084
+ readonly iconDisabled: _angular_core.InputSignal<boolean>;
5085
+ readonly useNativePicker: _angular_core.InputSignal<boolean>;
5086
+ readonly nativeIsoValue: _angular_core.InputSignal<string>;
5087
+ readonly clearable: _angular_core.InputSignal<boolean>;
5088
+ readonly inputChange: _angular_core.OutputEmitterRef<string>;
5089
+ readonly iconClick: _angular_core.OutputEmitterRef<void>;
5090
+ readonly tagRemove: _angular_core.OutputEmitterRef<string>;
5091
+ readonly clear: _angular_core.OutputEmitterRef<void>;
5092
+ private readonly translationService;
5093
+ private readonly ngZone;
5094
+ private readonly inputElement;
5095
+ private readonly fieldElement;
5096
+ private readonly tagElements;
5097
+ /** Number of tags that fit on a single row; `null` until measured. */
5098
+ readonly visibleTagsCount: _angular_core.WritableSignal<number | null>;
5099
+ constructor();
5100
+ ngAfterViewChecked(): void;
5101
+ onResize(): void;
5102
+ readonly hasTags: _angular_core.Signal<boolean>;
5103
+ readonly visibleTags: _angular_core.Signal<readonly DateInputTag[]>;
5104
+ readonly hiddenTagsCount: _angular_core.Signal<number>;
5105
+ readonly inputType: _angular_core.Signal<"date" | "text">;
5106
+ readonly inputValue: _angular_core.Signal<string>;
5107
+ readonly showClear: _angular_core.Signal<boolean>;
5108
+ readonly iconAriaLabel: _angular_core.Signal<string>;
5109
+ readonly clearAriaLabel: _angular_core.Signal<string>;
5110
+ handleInput(event: Event): void;
5111
+ handleIconClick(): void;
5112
+ handleTagRemove(id: string): void;
5113
+ handleClear(): void;
5114
+ private calculateVisibleTags;
5115
+ private getAvailableTagWidth;
5116
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DateInputComponent, never>;
5117
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DateInputComponent, "tedi-date-input", never, { "inputId": { "alias": "inputId"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "tags": { "alias": "tags"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "multiRow": { "alias": "multiRow"; "required": false; "isSignal": true; }; "ellipsis": { "alias": "ellipsis"; "required": false; "isSignal": true; }; "removable": { "alias": "removable"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "iconActive": { "alias": "iconActive"; "required": false; "isSignal": true; }; "iconDisabled": { "alias": "iconDisabled"; "required": false; "isSignal": true; }; "useNativePicker": { "alias": "useNativePicker"; "required": false; "isSignal": true; }; "nativeIsoValue": { "alias": "nativeIsoValue"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; }, { "inputChange": "inputChange"; "iconClick": "iconClick"; "tagRemove": "tagRemove"; "clear": "clear"; }, never, never, true, never>;
5118
+ }
5119
+
5120
+ /**
5121
+ * Interface implemented by controls that can be used inside `tedi-form-field`.
5122
+ * Allows the form field container to interact with the underlying control.
5123
+ */
5124
+ interface FormFieldControl<T = unknown> {
5125
+ /**
5126
+ * Current value of the control.
5127
+ */
5128
+ value: Signal<T>;
5129
+ /**
5130
+ * Whether the control is disabled.
5131
+ */
5132
+ disabled: Signal<boolean>;
5133
+ /** Reactive invalid state (driven by FormField) */
5134
+ invalid: Signal<boolean>;
5135
+ /** Called by FormField to update invalid state */
5136
+ setInvalidState(isInvalid: boolean): void;
5137
+ /**
5138
+ * Optional method used by the form field clear button.
5139
+ * If implemented, the form field can trigger clearing the value.
5140
+ */
5141
+ clearField?(): void;
5142
+ }
5143
+ /**
5144
+ * Injection token used by `tedi-form-field` to obtain
5145
+ * the associated control instance.
5146
+ */
5147
+ declare const TEDI_FORM_FIELD_CONTROL: InjectionToken<FormFieldControl<unknown>>;
5148
+
5149
+ type DateFieldValue = Date | Date[] | DateRange | null;
5150
+ type DateFieldFormatter = (value: DateFieldValue) => string;
5151
+ type DateFieldParser = (value: string) => DateFieldValue | undefined;
5152
+ type DayAvailabilityInput = Date[] | ((d: Date) => boolean) | undefined;
5153
+ type MonthPredicate = (month: Date) => boolean;
5154
+ type YearPredicate = (year: Date) => boolean;
5155
+ type DateFieldCalendarTrigger = "input" | "button";
5156
+ type DateFieldModalInput = boolean | "sm" | "md" | "lg" | "xl";
5157
+ type DateFieldUseNativePicker = boolean | "sm" | "md" | "lg" | "xl";
5158
+ type DateFieldSize = "default" | "small";
5159
+ declare class DateFieldComponent implements ControlValueAccessor, FormFieldControl<DateFieldValue> {
5160
+ /**
5161
+ * Unique ID for label association and accessibility. Bind the sibling
5162
+ * `<label tedi-label [for]>` to the same value.
5163
+ */
5164
+ readonly inputId: _angular_core.InputSignal<string>;
5165
+ /**
5166
+ * The selected value (two-way / `ControlValueAccessor`). Shape follows `mode`:
5167
+ * `single` → `Date | null`, `multiple` → `Date[]`, `range` → `{ from, to }`.
5168
+ */
5169
+ readonly value: _angular_core.ModelSignal<DateFieldValue>;
5170
+ /**
5171
+ * Selection mode. `single` selects one date, `multiple` toggles dates in an
5172
+ * array (rendered as tags), `range` builds a `{ from, to }` range across two
5173
+ * clicks.
5174
+ */
5175
+ readonly mode: _angular_core.InputSignal<DateFieldMode>;
5176
+ /**
5177
+ * `multiple` mode tag layout. `true` (default) wraps tags across rows and
5178
+ * grows the field height; `false` keeps a single row and collapses overflow
5179
+ * into a "+N" counter.
5180
+ */
5181
+ readonly multiRow: _angular_core.InputSignal<boolean>;
5182
+ /**
5183
+ * Which end the `multiple`-mode tags truncate from when a label doesn't fit.
5184
+ * `false` (default) never truncates; `end` → `05.06…`; `start` → `…06.2026`
5185
+ * (keeps the year visible).
5186
+ */
5187
+ readonly tagEllipsis: _angular_core.InputSignal<TagEllipsis>;
5188
+ /**
5189
+ * Whether `multiple`-mode tags show a remove button. `true` (default) lets
5190
+ * users remove a selected date by closing its tag; `false` renders them as
5191
+ * read-only chips.
5192
+ */
5193
+ readonly isTagRemovable: _angular_core.InputSignal<boolean>;
5194
+ /** Placeholder rendered in the input when there is no value. */
5195
+ readonly placeholder: _angular_core.InputSignal<string>;
5196
+ /**
5197
+ * Disables specific days via matchers (does not disable the whole field).
5198
+ * Accepts a `Date`, `Date[]`, `{ before }`, `{ after }`, `{ from, to? }`,
5199
+ * `{ dayOfWeek: number[] }`, or a `(date) => boolean` predicate (single or
5200
+ * array). Named `disabledMatchers` (not `disabled`) so it doesn't clash with
5201
+ * `FormControlDirective`'s boolean `disabled` when used with `[formControl]`.
5202
+ */
5203
+ readonly disabledMatchers: _angular_core.InputSignal<Matcher | Matcher[] | undefined>;
5204
+ /** Disables the field entirely — text input, icon button, and calendar. */
5205
+ readonly inputDisabled: _angular_core.InputSignal<boolean>;
5206
+ /**
5207
+ * Blocks typing into the input but leaves the calendar interactive — useful
5208
+ * for guided picking.
5209
+ */
5210
+ readonly readOnly: _angular_core.InputSignal<boolean>;
5211
+ /**
5212
+ * Marks the input as required (sets the native `required` attribute). In
5213
+ * `multiple` mode it also prevents clearing the last selected date. The
5214
+ * asterisk indicator lives on the sibling `<label tedi-label [required]>` —
5215
+ * bind it there too, since DateField owns no label.
5216
+ */
5217
+ readonly required: _angular_core.InputSignal<boolean>;
5218
+ /** Field size — matches the surrounding `tedi-form-field`. */
5219
+ readonly size: _angular_core.InputSignal<DateFieldSize>;
5220
+ /** Disables all dates before this date (inclusive boundary stays enabled). */
5221
+ readonly minDate: _angular_core.InputSignal<Date | undefined>;
5222
+ /** Disables all dates after this date (inclusive boundary stays enabled). */
5223
+ readonly maxDate: _angular_core.InputSignal<Date | undefined>;
5224
+ /** Disable all dates before today. */
5225
+ readonly disablePast: _angular_core.InputSignal<boolean>;
5226
+ /** Disable all dates after today. */
5227
+ readonly disableFuture: _angular_core.InputSignal<boolean>;
5228
+ /**
5229
+ * Predicate `(month) => boolean` returning `true` to disable a whole month in
5230
+ * the calendar's month navigation/grid. Leave `undefined` to disable nothing.
5231
+ */
5232
+ readonly shouldDisableMonth: _angular_core.InputSignal<MonthPredicate | undefined>;
5233
+ /**
5234
+ * Predicate `(year) => boolean` returning `true` to disable a whole year in
5235
+ * the calendar's year navigation/grid. Leave `undefined` to disable nothing.
5236
+ */
5237
+ readonly shouldDisableYear: _angular_core.InputSignal<YearPredicate | undefined>;
5238
+ /**
5239
+ * Whitelist of selectable days — an explicit `Date[]` or a predicate
5240
+ * `(date) => boolean`. Every other day is disabled.
5241
+ */
5242
+ readonly availableDays: _angular_core.InputSignal<DayAvailabilityInput>;
5243
+ /**
5244
+ * Blacklist of unavailable days — a `Date[]` or a predicate `(date) => boolean`.
5245
+ * Takes precedence over `availableDays`.
5246
+ */
5247
+ readonly unavailableDays: _angular_core.InputSignal<DayAvailabilityInput>;
5248
+ /**
5249
+ * Lowest level the user can commit to. `days` shows the day grid as the final
5250
+ * step; `months` and `years` commit at that level instead.
5251
+ */
5252
+ readonly selectionLevel: _angular_core.InputSignal<CalendarView>;
5253
+ /**
5254
+ * How the calendar header exposes month/year picking. `dropdown` shows two
5255
+ * dropdowns; `grid` drills into a month/year grid when the header label is
5256
+ * clicked.
5257
+ */
5258
+ readonly monthYearSelectType: _angular_core.InputSignal<"dropdown" | "grid">;
5259
+ /**
5260
+ * Month the calendar opens on when there is no value. Ignored once a value is
5261
+ * set (the calendar anchors to the selected date).
5262
+ */
5263
+ readonly initialMonth: _angular_core.InputSignal<Date | undefined>;
5264
+ /**
5265
+ * BCP-47 locale for weekday/month names, the first day of the week, and the
5266
+ * default `formatDate`/`parseDate` behaviour.
5267
+ */
5268
+ readonly localeCode: _angular_core.InputSignal<string>;
5269
+ /**
5270
+ * Whether to close the picker after a selection. Defaults to `true` in
5271
+ * `single` mode and `false` in `multiple`/`range` when left `undefined`.
5272
+ */
5273
+ readonly closeOnSelect: _angular_core.InputSignal<boolean | undefined>;
5274
+ /**
5275
+ * Render the trailing/leading days from the adjacent month inside the current
5276
+ * month's grid.
5277
+ */
5278
+ readonly showOutsideDays: _angular_core.InputSignal<boolean>;
5279
+ /** Render an ISO week-number column on the left of the day grid. */
5280
+ readonly showWeekNumbers: _angular_core.InputSignal<boolean>;
5281
+ /**
5282
+ * Number of month grids shown side by side. Accepts a `BreakpointInput<number>`:
5283
+ * a plain number (e.g. `2`) applies at every breakpoint; pass a per-breakpoint
5284
+ * object (e.g. `{ xs: 1, lg: 2 }`) to narrow it on small screens.
5285
+ */
5286
+ readonly numberOfMonths: _angular_core.InputSignalWithTransform<BreakpointObject<number>, BreakpointInput<number>>;
5287
+ /**
5288
+ * Enables the calendar picker UI. When resolved to `false`, hides the icon
5289
+ * button and disables the popover/modal — the user can only type a date.
5290
+ * Accepts a `BreakpointInput<boolean>` for per-breakpoint behaviour.
5291
+ */
5292
+ readonly enableCalendar: _angular_core.InputSignalWithTransform<BreakpointObject<boolean>, BreakpointInput<boolean>>;
5293
+ /**
5294
+ * What opens the calendar. `button` opens it from the icon button; `input`
5295
+ * also opens it when the text input is clicked (and blocks typing). Accepts a
5296
+ * `BreakpointInput` for per-breakpoint behaviour.
5297
+ */
5298
+ readonly calendarTrigger: _angular_core.InputSignalWithTransform<BreakpointObject<DateFieldCalendarTrigger>, BreakpointInput<DateFieldCalendarTrigger>>;
5299
+ /**
5300
+ * Use the OS native date picker instead of the custom popover (single mode only).
5301
+ * `true` always, `false` never, breakpoint name → native below that breakpoint
5302
+ * (custom popover from that breakpoint up).
5303
+ */
5304
+ readonly useNativePicker: _angular_core.InputSignal<DateFieldUseNativePicker>;
5305
+ /** Open the calendar in a modal: `true` always, `false` never, breakpoint name → modal below that breakpoint. */
5306
+ readonly modal: _angular_core.InputSignal<DateFieldModalInput>;
5307
+ /** Make the modal fullscreen: `true` always, `false` never, breakpoint name → fullscreen below that breakpoint. Only applies when the calendar actually opens as a modal. */
5308
+ readonly fullscreen: _angular_core.InputSignal<_tedi_design_system_angular_tedi.BreakpointFlag>;
5309
+ /**
5310
+ * Custom formatter for the input's display string. Overrides the locale-aware
5311
+ * default. Receives the `DateFieldValue` and returns a string.
5312
+ */
5313
+ readonly formatDate: _angular_core.InputSignal<DateFieldFormatter | undefined>;
5314
+ /**
5315
+ * Custom parser for turning typed input into a value. Overrides the
5316
+ * locale-aware default. Receives the raw string and returns a `DateFieldValue`,
5317
+ * or `undefined` when the input can't be parsed.
5318
+ */
5319
+ readonly parseDate: _angular_core.InputSignal<DateFieldParser | undefined>;
5320
+ /** Emitted whenever the picker (popover/modal) open state changes. */
5321
+ readonly openChange: _angular_core.OutputEmitterRef<boolean>;
5322
+ private readonly breakpointService;
5323
+ private readonly modalService;
5324
+ private readonly hostEl;
5325
+ readonly calendar: _angular_core.Signal<CalendarComponent | undefined>;
5326
+ readonly dateInput: _angular_core.Signal<DateInputComponent>;
5327
+ readonly currentMonth: _angular_core.WritableSignal<Date>;
5328
+ readonly overlayOpen: _angular_core.WritableSignal<boolean>;
5329
+ private readonly openedBy;
5330
+ readonly overlayPositions: _angular_core.Signal<ConnectedPosition[]>;
5331
+ private readonly cvaDisabled;
5332
+ private readonly formInvalid;
5333
+ private modalRef;
5334
+ private onChange;
5335
+ private onTouched;
5336
+ readonly fieldDisabled: _angular_core.Signal<boolean>;
5337
+ readonly disabled: _angular_core.Signal<boolean>;
5338
+ readonly invalid: _angular_core.Signal<boolean>;
5339
+ readonly resolvedDisabledMatchers: _angular_core.Signal<Matcher[]>;
5340
+ readonly useNativePickerResolved: _angular_core.Signal<boolean>;
5341
+ readonly useNativePickerEffective: _angular_core.Signal<boolean>;
5342
+ readonly numberOfMonthsResolved: _angular_core.Signal<number>;
5343
+ readonly enableCalendarResolved: _angular_core.Signal<boolean>;
5344
+ readonly calendarTriggerResolved: _angular_core.Signal<DateFieldCalendarTrigger>;
5345
+ readonly modalEnabled: _angular_core.Signal<boolean>;
5346
+ readonly closeOnSelectEffective: _angular_core.Signal<boolean>;
5347
+ readonly showCalendar: _angular_core.Signal<boolean>;
5348
+ readonly useModal: _angular_core.Signal<boolean>;
5349
+ readonly usePopover: _angular_core.Signal<boolean>;
5350
+ readonly nativeIsoValue: _angular_core.Signal<string>;
5351
+ readonly effectivePlaceholder: _angular_core.Signal<string>;
5352
+ readonly displayValue: _angular_core.Signal<string>;
5353
+ readonly tagsForMultipleMode: _angular_core.Signal<DateInputTag[]>;
5354
+ readonly canClear: _angular_core.Signal<boolean>;
5355
+ readonly inputIsTrigger: _angular_core.Signal<boolean>;
5356
+ private initialOpenEmit;
5357
+ constructor();
5358
+ writeValue(value: DateFieldValue): void;
5359
+ registerOnChange(fn: (value: DateFieldValue) => void): void;
5360
+ registerOnTouched(fn: () => void): void;
5361
+ setDisabledState(isDisabled: boolean): void;
5362
+ setInvalidState(isInvalid: boolean): void;
5363
+ clearField(): void;
5364
+ handleClear(): void;
5365
+ handleIconClick(): void;
5366
+ private togglePicker;
5367
+ handleInputChange(value: string): void;
5368
+ handleTagRemove(id: string): void;
5369
+ handleInputClick(event: Event): void;
5370
+ handleCalendarSelect(): void;
5371
+ handleCurrentMonthChange(month: Date): void;
5372
+ closeOverlay(): void;
5373
+ handleOverlayOutsideClick(event: MouseEvent): void;
5374
+ handleOverlayAttached(): void;
5375
+ handleOverlayKeydown(event: KeyboardEvent): void;
5376
+ private focusIconButton;
5377
+ private openNativePicker;
5378
+ private openModal;
5379
+ private handleNativeInputChange;
5380
+ private handleSingleParseInput;
5381
+ private parsedValueIsDisabled;
5382
+ private commitValue;
5383
+ private defaultFormat;
5384
+ private deriveAnchor;
5385
+ private resolveBreakpointInput;
5386
+ private startOfToday;
5387
+ private toIsoDate;
5388
+ private queryNativeInput;
5389
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DateFieldComponent, never>;
5390
+ 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>;
5391
+ }
5392
+
5393
+ declare class DatePickerCalendarGridComponent {
5394
+ private readonly gridElement;
5395
+ /** Grid element unique ID for ARIA */
5396
+ readonly gridId: _angular_core.InputSignal<string>;
5397
+ /** Week rows containing day data */
5398
+ readonly weekRows: _angular_core.InputSignal<DatePickerDay[][]>;
5399
+ /** Week numbers for each row */
5400
+ readonly weekNumbers: _angular_core.InputSignal<number[]>;
5401
+ /** Whether to show week numbers */
5402
+ readonly showWeekNumbers: _angular_core.InputSignal<boolean>;
5403
+ /** Currently active date for keyboard navigation */
5404
+ readonly activeDate: _angular_core.InputSignal<Date | null>;
5405
+ /** Currently selected date */
4502
5406
  readonly selected: _angular_core.InputSignal<Date | null>;
4503
5407
  /** Today's date */
4504
5408
  readonly today: _angular_core.InputSignal<Date>;
@@ -4550,8 +5454,20 @@ declare class DatePickerComponent implements OnInit, ControlValueAccessor {
4550
5454
  readonly selected: _angular_core.ModelSignal<Date | null>;
4551
5455
  /** Currently shown month */
4552
5456
  readonly month: _angular_core.ModelSignal<Date>;
4553
- /** Disabled dates that cannot be selected. */
5457
+ /**
5458
+ * Disabled dates that cannot be selected.
5459
+ *
5460
+ * @deprecated Use `disabledMatchers` instead. This input shares the public
5461
+ * binding name `disabled` with `FormControlDirective`, so binding `[disabled]`
5462
+ * on a date-picker that also uses `[formControl]` raises a template type error
5463
+ * (`Type 'DatePickerMatcher[]' is not assignable to type 'boolean'`).
5464
+ */
4554
5465
  readonly disabled: _angular_core.InputSignal<DatePickerMatcher | DatePickerMatcher[] | null>;
5466
+ /**
5467
+ * Disabled dates that cannot be selected (`Date`, `Date[]`, `{ before }`,
5468
+ * `{ after }`, `{ from, to? }`, or a `(date) => boolean` predicate).
5469
+ */
5470
+ readonly disabledMatchers: _angular_core.InputSignal<DatePickerMatcher | DatePickerMatcher[] | null>;
4555
5471
  /** Shows or hides the calendar navigation controls (previous/next month buttons). */
4556
5472
  readonly showNavigation: _angular_core.InputSignal<boolean>;
4557
5473
  /** Month selector mode: none | label | grid | dropdown */
@@ -4651,7 +5567,7 @@ declare class DatePickerComponent implements OnInit, ControlValueAccessor {
4651
5567
  */
4652
5568
  private findNextEnabledDate;
4653
5569
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DatePickerComponent, never>;
4654
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DatePickerComponent, "tedi-date-picker", never, { "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "month": { "alias": "month"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "showNavigation": { "alias": "showNavigation"; "required": false; "isSignal": true; }; "monthMode": { "alias": "monthMode"; "required": false; "isSignal": true; }; "yearMode": { "alias": "yearMode"; "required": false; "isSignal": true; }; "startYear": { "alias": "startYear"; "required": false; "isSignal": true; }; "endYear": { "alias": "endYear"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "inputPlaceholder": { "alias": "inputPlaceholder"; "required": false; "isSignal": true; }; "inputState": { "alias": "inputState"; "required": false; "isSignal": true; }; "inputSize": { "alias": "inputSize"; "required": false; "isSignal": true; }; "inputDisabled": { "alias": "inputDisabled"; "required": false; "isSignal": true; }; "allowManualInput": { "alias": "allowManualInput"; "required": false; "isSignal": true; }; "showWeekNumbers": { "alias": "showWeekNumbers"; "required": false; "isSignal": true; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; "isSignal": true; }; }, { "selected": "selectedChange"; "month": "monthChange"; }, never, never, true, never>;
5570
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DatePickerComponent, "tedi-date-picker", never, { "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "month": { "alias": "month"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "disabledMatchers": { "alias": "disabledMatchers"; "required": false; "isSignal": true; }; "showNavigation": { "alias": "showNavigation"; "required": false; "isSignal": true; }; "monthMode": { "alias": "monthMode"; "required": false; "isSignal": true; }; "yearMode": { "alias": "yearMode"; "required": false; "isSignal": true; }; "startYear": { "alias": "startYear"; "required": false; "isSignal": true; }; "endYear": { "alias": "endYear"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "inputPlaceholder": { "alias": "inputPlaceholder"; "required": false; "isSignal": true; }; "inputState": { "alias": "inputState"; "required": false; "isSignal": true; }; "inputSize": { "alias": "inputSize"; "required": false; "isSignal": true; }; "inputDisabled": { "alias": "inputDisabled"; "required": false; "isSignal": true; }; "allowManualInput": { "alias": "allowManualInput"; "required": false; "isSignal": true; }; "showWeekNumbers": { "alias": "showWeekNumbers"; "required": false; "isSignal": true; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; "isSignal": true; }; }, { "selected": "selectedChange"; "month": "monthChange"; }, never, never, true, never>;
4655
5571
  }
4656
5572
 
4657
5573
  type FeedbackTextType = "hint" | "valid" | "error";
@@ -4853,35 +5769,6 @@ declare class SelectValueTemplateDirective<T = unknown> {
4853
5769
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SelectValueTemplateDirective<any>, "[tediSelectValue]", never, {}, {}, never, never, true, never>;
4854
5770
  }
4855
5771
 
4856
- /**
4857
- * Interface implemented by controls that can be used inside `tedi-form-field`.
4858
- * Allows the form field container to interact with the underlying control.
4859
- */
4860
- interface FormFieldControl<T = unknown> {
4861
- /**
4862
- * Current value of the control.
4863
- */
4864
- value: Signal<T>;
4865
- /**
4866
- * Whether the control is disabled.
4867
- */
4868
- disabled: Signal<boolean>;
4869
- /** Reactive invalid state (driven by FormField) */
4870
- invalid: Signal<boolean>;
4871
- /** Called by FormField to update invalid state */
4872
- setInvalidState(isInvalid: boolean): void;
4873
- /**
4874
- * Optional method used by the form field clear button.
4875
- * If implemented, the form field can trigger clearing the value.
4876
- */
4877
- clearField?(): void;
4878
- }
4879
- /**
4880
- * Injection token used by `tedi-form-field` to obtain
4881
- * the associated control instance.
4882
- */
4883
- declare const TEDI_FORM_FIELD_CONTROL: InjectionToken<FormFieldControl<unknown>>;
4884
-
4885
5772
  type InputSize = "small" | "large" | "default";
4886
5773
  type InputState = "valid" | "error" | "default";
4887
5774
  type ValidationState = "invalid" | "valid" | "neutral";
@@ -4935,7 +5822,7 @@ declare class FormFieldComponent implements AfterContentInit {
4935
5822
  }>;
4936
5823
  clear(): void;
4937
5824
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormFieldComponent, never>;
4938
- 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-feedback-text"], true, never>;
5825
+ 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>;
4939
5826
  }
4940
5827
 
4941
5828
  type SelectInputSize = Exclude<InputSize, "large">;
@@ -5056,6 +5943,12 @@ declare class SelectComponent<T = unknown> implements AfterContentChecked, After
5056
5943
  * @default false
5057
5944
  */
5058
5945
  multiRow: _angular_core.InputSignal<boolean>;
5946
+ /**
5947
+ * Which end a selected tag's label truncates from when it doesn't fit.
5948
+ * `false` (default) never truncates; `end` → `label…`; `start` → `…label`.
5949
+ * @default false
5950
+ */
5951
+ tagEllipsis: _angular_core.InputSignal<TagEllipsis>;
5059
5952
  /**
5060
5953
  * Function used to compare option values for equality.
5061
5954
  * Used to determine which options are selected.
@@ -5212,7 +6105,7 @@ declare class SelectComponent<T = unknown> implements AfterContentChecked, After
5212
6105
  registerOnTouched(fn: () => void): void;
5213
6106
  setDisabledState(isDisabled: boolean): void;
5214
6107
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectComponent<any>, never>;
5215
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SelectComponent<any>, "tedi-select", never, { "inputId": { "alias": "inputId"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "dropdownWidthRef": { "alias": "dropdownWidthRef"; "required": false; "isSignal": true; }; "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; }; "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>;
6108
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SelectComponent<any>, "tedi-select", never, { "inputId": { "alias": "inputId"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "dropdownWidthRef": { "alias": "dropdownWidthRef"; "required": false; "isSignal": true; }; "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>;
5216
6109
  }
5217
6110
 
5218
6111
  type ToggleVariant = "primary" | "colored";
@@ -5509,7 +6402,7 @@ declare class TimeFieldComponent implements ControlValueAccessor, FormFieldContr
5509
6402
  readonly hasPicker: _angular_core.Signal<boolean>;
5510
6403
  readonly hasNativePicker: _angular_core.Signal<boolean>;
5511
6404
  readonly customPickerVariant: _angular_core.Signal<TimePickerVariant>;
5512
- readonly inputType: _angular_core.Signal<"time" | "text">;
6405
+ readonly inputType: _angular_core.Signal<"text" | "time">;
5513
6406
  readonly inputIsTrigger: _angular_core.Signal<boolean>;
5514
6407
  readonly useMobileModal: _angular_core.Signal<boolean>;
5515
6408
  readonly usePopover: _angular_core.Signal<boolean>;
@@ -5760,25 +6653,6 @@ declare class EmptyStateComponent {
5760
6653
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<EmptyStateComponent, "tedi-empty-state", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconColor": { "alias": "iconColor"; "required": false; "isSignal": true; }; "iconSize": { "alias": "iconSize"; "required": false; "isSignal": true; }; "heading": { "alias": "heading"; "required": false; "isSignal": true; }; }, {}, never, ["*", "[tedi-empty-state-actions]"], true, never>;
5761
6654
  }
5762
6655
 
5763
- type EllipsisPosition = "start" | "end";
5764
- declare class EllipsisComponent {
5765
- /** Maximum number of lines before truncating. End (multi-line) only. */
5766
- readonly lineClamp: _angular_core.InputSignal<number>;
5767
- /** Whether truncated content shows a hover/focus tooltip with full text. */
5768
- readonly tooltip: _angular_core.InputSignal<boolean>;
5769
- /** Ellipsis position. 'start' = leading, single-line. 'end' = trailing, multi-line. */
5770
- readonly position: _angular_core.InputSignal<EllipsisPosition>;
5771
- readonly content: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
5772
- readonly isEllipsed: _angular_core.WritableSignal<boolean>;
5773
- readonly fullText: _angular_core.WritableSignal<string>;
5774
- constructor();
5775
- readonly contentClasses: _angular_core.Signal<string>;
5776
- readonly clampStyle: _angular_core.Signal<string | null>;
5777
- private updateEllipsedState;
5778
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<EllipsisComponent, never>;
5779
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<EllipsisComponent, "tedi-ellipsis", never, { "lineClamp": { "alias": "lineClamp"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
5780
- }
5781
-
5782
6656
  type ColWidth = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
5783
6657
  type JustifySelf = "start" | "end" | "center" | "stretch";
5784
6658
  type AlignSelf = "start" | "end" | "center" | "stretch";
@@ -7206,50 +8080,6 @@ declare class PopoverContentComponent {
7206
8080
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<PopoverContentComponent, "tedi-popover-content", never, { "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "showClose": { "alias": "showClose"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
7207
8081
  }
7208
8082
 
7209
- type TagType = "primary" | "secondary" | "danger";
7210
- type TagEllipsis = "start" | "end" | false;
7211
- declare class TagComponent {
7212
- readonly idGenerator: _IdGenerator;
7213
- readonly uniqueId: string;
7214
- /**
7215
- * Whether the tag is in loading state.
7216
- * When true, a spinner will be displayed inside the tag.
7217
- * @default false
7218
- */
7219
- loading: _angular_core.InputSignal<boolean>;
7220
- /**
7221
- * Whether the tag can be closed.
7222
- * When true, a close button will be displayed that emits the 'closed' event when clicked.
7223
- * @default false
7224
- */
7225
- closable: _angular_core.InputSignal<boolean>;
7226
- /**
7227
- * The visual style of the tag.
7228
- * Possible values: 'primary', 'secondary', 'danger'
7229
- * @default "primary"
7230
- */
7231
- type: _angular_core.InputSignal<TagType>;
7232
- /**
7233
- * Which end the label truncates from when it doesn't fit. `false` (default)
7234
- * never truncates — the label wraps and the tag keeps its full width. `end`
7235
- * shows an ellipsis at the end (`Long label…`); `start` shows it at the start
7236
- * (`…label`), which keeps the most significant part of values like dates
7237
- * visible. Truncation only kicks in when the tag is width-constrained, and the
7238
- * full label is revealed in a tooltip on hover/focus.
7239
- * @default false
7240
- */
7241
- ellipsis: _angular_core.InputSignal<TagEllipsis>;
7242
- /**
7243
- * Event emitted when the close button is clicked.
7244
- */
7245
- closed: _angular_core.OutputEmitterRef<Event>;
7246
- classes: _angular_core.Signal<string>;
7247
- ellipsisPosition: _angular_core.Signal<EllipsisPosition>;
7248
- handleClose(event: Event): void;
7249
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<TagComponent, never>;
7250
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TagComponent, "tedi-tag", never, { "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "ellipsis": { "alias": "ellipsis"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, ["*"], true, never>;
7251
- }
7252
-
7253
8083
  type StatusBadgeColor = "neutral" | "brand" | "accent" | "success" | "danger" | "warning" | "transparent";
7254
8084
  type StatusBadgeVariant = "filled" | "filled-bordered" | "bordered";
7255
8085
  type StatusBadgeSize = "default" | "large";
@@ -7303,42 +8133,6 @@ declare class StatusBadgeComponent {
7303
8133
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<StatusBadgeComponent, "tedi-status-badge", never, { "text": { "alias": "text"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "role": { "alias": "role"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
7304
8134
  }
7305
8135
 
7306
- type StatusIndicatorType = "success" | "danger" | "warning" | "inactive";
7307
- type StatusIndicatorSize = "sm" | "lg";
7308
- type StatusIndicatorPosition = "default" | "top-right";
7309
- declare class StatusIndicatorComponent {
7310
- /**
7311
- * Accessible label for the indicator. When provided, the indicator is
7312
- * exposed to assistive technology with `role="img"`. When omitted, the
7313
- * indicator is treated as decorative (`aria-hidden="true"`).
7314
- */
7315
- readonly label: _angular_core.InputSignal<string | undefined>;
7316
- /**
7317
- * The status type, which determines the indicator color.
7318
- * @default success
7319
- */
7320
- readonly type: _angular_core.InputSignal<StatusIndicatorType>;
7321
- /**
7322
- * The size of the indicator.
7323
- * @default sm
7324
- */
7325
- readonly size: _angular_core.InputSignal<StatusIndicatorSize>;
7326
- /**
7327
- * Whether the indicator has a white border ring.
7328
- * @default false
7329
- */
7330
- readonly hasBorder: _angular_core.InputSignal<boolean>;
7331
- /**
7332
- * Controls positioning of the indicator.
7333
- * - `'default'` — inline, no absolute positioning
7334
- * - `'top-right'` — absolutely positioned at the top-right corner of the parent
7335
- * @default default
7336
- */
7337
- readonly position: _angular_core.InputSignal<StatusIndicatorPosition>;
7338
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<StatusIndicatorComponent, never>;
7339
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<StatusIndicatorComponent, "tedi-status-indicator", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "hasBorder": { "alias": "hasBorder"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
7340
- }
7341
-
7342
8136
  /**
7343
8137
  * A single item inside a `tedi-accordion`. Owns the item's state (expanded)
7344
8138
  * and the inputs shared by header and content (selected, showIconCard,
@@ -7530,6 +8324,52 @@ declare const TEDI_THEME_DEFAULT_TOKEN: InjectionToken<string>;
7530
8324
 
7531
8325
  declare const TEDI_TRANSLATION_DEFAULT_TOKEN: InjectionToken<Language>;
7532
8326
 
7533
- export { AVAILABLE_LANGUAGES, AccordionComponent, AccordionItemComponent, AccordionItemContentComponent, AccordionItemHeaderComponent, AlertComponent, AttachmentActionsComponent, AttachmentComponent, BREAKPOINTS, BaseButtonDirective, BreakpointService, ButtonComponent, ButtonGroupButtonDirective, ButtonGroupComponent, CardButtonComponent, CardComponent, CardContentComponent, CardHeaderComponent, CardIconComponent, CardRowComponent, CarouselComponent, CarouselContentComponent, CarouselFooterComponent, CarouselHeaderComponent, CarouselIndicatorsComponent, CarouselNavigationComponent, CarouselSlideDirective, CheckboxCardComponent, CheckboxCardGroupComponent, CheckboxComponent, CheckboxGroupComponent, ClosingButtonComponent, ColComponent, CollapseButtonComponent, CollapseComponent, DROPDOWN_API, DROPDOWN_CONTENT_API, DatePickerComponent, DropdownComponent, DropdownContentComponent, DropdownItemComponent, DropdownItemValueComponent, DropdownItemValueLabelComponent, DropdownItemValueMetaComponent, DropdownTriggerDirective, EllipsisComponent, EmptyStateComponent, FeedbackTextComponent, FilterComponent, FilterContentDirective, FilterGroupComponent, FilterPrependDirective, FooterBodyComponent, FooterBottomComponent, FooterComponent, FooterSectionComponent, FooterSideComponent, FormFieldComponent, HeaderActionsComponent, HeaderBottomComponent, HeaderComponent, HeaderContentComponent, HeaderLanguageComponent, HeaderLoginComponent, HeaderLogoComponent, HeaderLogoDarkDirective, HeaderLogoutComponent, HeaderMobileButtonComponent, HeaderProfileComponent, HeaderRoleComponent, HeaderRoleContentDirective, HeaderRoleNoResultsDirective, HeaderRoleTitleDirective, HeaderSearchComponent, HideAtDirective, HorizontalPushHandler, HorizontalStepperComponent, HorizontalStepperItemComponent, IconComponent, InfoButtonComponent, LANGUAGE_COOKIE_NAME, LANGUAGE_FALLBACK_VALUE, LabelComponent, LinkComponent, ListComponent, MODAL_DATA, MODAL_SIZE, ModalComponent, ModalContentComponent, ModalFooterComponent, ModalHeaderComponent, ModalRef, ModalService, NumberFieldComponent, PaginationComponent, PopoverComponent, PopoverContentComponent, PopoverTriggerDirective, ProgressBarComponent, RadioCardComponent, RadioCardGroupComponent, RadioComponent, RadioGroupComponent, RowComponent, ScrollFadeComponent, SelectComponent, SelectOptionTemplateDirective, SelectValueTemplateDirective, SeparatorComponent, ShowAtDirective, SideNavComponent, SideNavDropdownComponent, SideNavDropdownGroupComponent, SideNavDropdownItemComponent, SideNavGroupTitleComponent, SideNavItemComponent, SideNavOverlayComponent, SideNavToggleComponent, SpecialOptionControls, SpinnerComponent, StatusBadgeComponent, StatusIndicatorComponent, TEDI_FORM_FIELD_CONTROL, TEDI_TABLE_CONTEXT, TEDI_THEME_DEFAULT_TOKEN, TEDI_TRANSLATION_DEFAULT_TOKEN, THEME_CLASS_PREFIX, THEME_COOKIE_NAME, THEME_FALLBACK_VALUE, TOAST_DEFAULT_DURATION, TagComponent, TediPaginationResultsDirective, TediTableColumnsMenuComponent, TediTableComponent, TediTableHeaderButtonComponent, TediTableToolbarComponent, TediTranslationPipe, TediTranslationService, TextComponent, TextFieldComponent, TextGroupComponent, TextGroupLabelComponent, TextGroupValueComponent, ThemeService, TimeFieldComponent, TimePickerComponent, TimelineComponent, TimelineDescriptionComponent, TimelineItemComponent, TimelineTimingsBottomDirective, TimelineTitleComponent, ToastComponent, ToastService, ToggleComponent, TooltipComponent, TooltipContentComponent, TooltipTriggerComponent, VerticalSpacingDirective, VerticalSpacingItemDirective, breakpointInput, calculateArrowOffset, computeGroupSpans, createTablePersistence, generateUUID, getCardBorderPlacementColor, getPaddingCssVariables, getPlacementFromPositionChange, groupRowSpan, injectTediTableContext, provideTedi, resolveCardBorderRadius, toConnectedPositions, usePagination };
7534
- export type { AlertRole, AlertTitleType, AlertType, AlertVariant, AlignItems, AlignSelf, ArrowOffset, ArrowType, AttachmentDirection, Breakpoint, BreakpointFlag, BreakpointInput, BreakpointInputs, BreakpointInputsWithoutSignals, BreakpointObject, BulletColor, ButtonGroupDropdownLabelMode, ButtonSize, ButtonVariant, CardBackground, CardBorderPlacement, CardBorderRadius, CardBorderType, CardContentInputs, CardIconSize, CardIconType, CardInputs, CardPadding, CardPaddingNumber, CardResolvedCorners, CarouselIndicatorsVariant, CheckboxCardVariant, CheckboxGroupDirection, CheckboxSize, ClosingButtonIconSize, ClosingButtonSize, ColInputs, ColWidth, CollapseButtonArrowType, CollapseButtonSize, CollapseSize, Cols, ColumnReorderPhase, CompareWithFn, ComponentInputs, DatePickerDay, DatePickerInputSize, DatePickerInputState, DatePickerMatcher, DatePickerSelectorMode, DatePickerView, DropdownApi, DropdownContentApi, DropdownItemValueLayout, DropdownItemValueType, DropdownPosition, DropdownRole, DropdownTriggerAriaHasPopup, EllipsisPosition, EmptyStateSize, EmptyStateType, FeedbackTextPosition, FeedbackTextType, FilterOption, FilterSize, FilterVariant, FooterSidePlacement, FooterSidePosition, FormFieldControl, FormFieldIcon, Gap, GroupByFn, HeaderContentAlignment, HeaderLanguage, HeaderLoginInputs, HeaderLoginSize, HeaderLogoutInputs, HeaderLogoutSize, HeaderProfileInputs, HeaderProfileSize, HeaderSearchMobileLabels, HeaderSearchMobileVariant, HorizontalStepperBackground, IconBackgroundColor, IconColor, IconSize, IconType, IconVariant, InputSize, InputState, JustifyItems, JustifySelf, LabelColor, LabelSize, Language, LinkInputs, LinkSize, LinkVariant, ModalConfig, ModalFullscreen, ModalPosition, ModalScrollBehavior, ModalSize, ModalWidth, ModalWidthPreset, NumberFieldSize, OverlayPosition, OverlaySide, PaginationBackground, PaginationDividerPosition, PaginationItem, PaginationItemType, PaginationLabels, PaginationVisibility, PopoverPosition, PopoverWidth, ProgressBarInputs, ProgressBarLabelPosition, ProgressBarSize, ProgressBarValuePosition, RadioCardVariant, RadioGroupDirection, RadioSize, Representative, RepresentativeIcon, RowInputs, ScrollFadePosition, ScrollFadeScrollbar, ScrollFadeSize, SelectInputSize, SelectOption, SelectOptionContext, SelectOptionGroup, SelectValueContext, SeparatorAxis, SeparatorColor, SeparatorDotSize, SeparatorSpacing, SeparatorSpacingValue, SeparatorThickness, SeparatorVariant, SideNavItemSize, SpinnerColor, SpinnerSize, StatusBadgeColor, StatusBadgeSize, StatusBadgeStatus, StatusBadgeVariant, StatusIndicatorPosition, StatusIndicatorSize, StatusIndicatorType, TEDITheme, TableColumnMeta, TableControlColumn, TableExpandTrigger, TableFilterOptions, TablePaginationOptions, TablePersistOptions, TablePersistenceController, TableSelectionMode, TableSize, TableState, TableStatePatch, TagEllipsis, TagType, TediColumnDef, TediConfig, TediTableContextValue, TediTableFilterContext, TextColor, TextGroupInputs, TextGroupType, TextModifiers, Theme, TimeFieldFullscreen, TimeFieldModal, TimeFieldPickerTrigger, TimeFieldPickerVariant, TimeFieldUseNativePicker, TimePickerVariant, TimelineCardPadding, TimelineVariant, ToastConfig, ToastPosition, ToastRole, ToastType, ToggleSize, ToggleType, ToggleVariant, TooltipOpenWith, TooltipPosition, TooltipWidth, UsePaginationArgs, VerticalSpacingSize };
8327
+ declare function cookieSignal<T>(key: string, initialValue: T): _angular_core.WritableSignal<T>;
8328
+
8329
+ declare function getFocusableElements(container: HTMLElement): HTMLElement[];
8330
+
8331
+ /** Horizontal gap (px) between tags in a single row. */
8332
+ declare const TAG_GAP = 8;
8333
+ /** Reserved width (px) for the "+N" counter tag. */
8334
+ declare const COUNTER_TAG_WIDTH = 40;
8335
+ interface TagOverflowOptions {
8336
+ /** Gap between adjacent tags. Defaults to {@link TAG_GAP}. */
8337
+ gap?: number;
8338
+ /** Width reserved for the "+N" counter tag. Defaults to {@link COUNTER_TAG_WIDTH}. */
8339
+ counterWidth?: number;
8340
+ }
8341
+ /**
8342
+ * Given the measured widths of single-row tags and the available width, returns
8343
+ * how many tags fit before the overflow collapses into a "+N" counter.
8344
+ *
8345
+ * Space for the counter is reserved while more tags remain, so the counter
8346
+ * stays visible. At least one tag is always shown when any exist, even if it
8347
+ * overflows on its own.
8348
+ */
8349
+ declare function calculateVisibleTagCount(tagWidths: readonly number[], availableWidth: number, { gap, counterWidth }?: TagOverflowOptions): number;
8350
+
8351
+ /**
8352
+ * Checks if a string is a valid `HH:mm` time (00:00 – 23:59).
8353
+ */
8354
+ declare function isValidTime(time: string | null | undefined): boolean;
8355
+ /**
8356
+ * Normalizes common typing patterns into `HH:mm`.
8357
+ *
8358
+ * Returns:
8359
+ * - the canonical `HH:mm` string when the input can be normalized
8360
+ * - `""` when the input is empty
8361
+ * - `null` when the input is non-empty but cannot be normalized
8362
+ *
8363
+ * Examples:
8364
+ * `"9:5"` → `"09:05"`
8365
+ * `"14:5"` → `"14:05"`
8366
+ * `"2359"` → `"23:59"`
8367
+ * `"930"` → `"09:30"`
8368
+ * `"11.55"` / `"11-55"` → `"11:55"` (any non-digit treated as separator)
8369
+ * `"4:89"` / `"24:00"` → `null`
8370
+ */
8371
+ declare function normalizeTime(input: string): string | null;
8372
+
8373
+ 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, 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, 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 };
8374
+ export type { AlertRole, 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, HeaderLoginInputs, HeaderLoginSize, HeaderLogoutInputs, HeaderLogoutSize, HeaderProfileInputs, HeaderProfileSize, HeaderSearchMobileLabels, HeaderSearchMobileVariant, 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, 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 };
7535
8375
  //# sourceMappingURL=index.d.ts.map