@tolle_/tolle-ui 18.2.24 → 18.2.26

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.
Files changed (184) hide show
  1. package/esm2022/lib/accordion-item.component.mjs +17 -5
  2. package/esm2022/lib/alert-dialog-dynamic.component.mjs +1 -1
  3. package/esm2022/lib/alert-dialog.component.mjs +48 -10
  4. package/esm2022/lib/alert-dialog.service.mjs +13 -2
  5. package/esm2022/lib/alert.component.mjs +5 -5
  6. package/esm2022/lib/avatar.component.mjs +30 -9
  7. package/esm2022/lib/badge.component.mjs +41 -15
  8. package/esm2022/lib/breadcrumb-link.component.mjs +5 -5
  9. package/esm2022/lib/button.component.mjs +14 -3
  10. package/esm2022/lib/calendar.component.mjs +99 -17
  11. package/esm2022/lib/card.component.mjs +29 -9
  12. package/esm2022/lib/carousel/carousel.component.mjs +19 -3
  13. package/esm2022/lib/checkbox.component.mjs +44 -21
  14. package/esm2022/lib/collapsible.component.mjs +12 -4
  15. package/esm2022/lib/country-selector.component.mjs +140 -20
  16. package/esm2022/lib/data-table.component.mjs +27 -16
  17. package/esm2022/lib/date-picker.component.mjs +24 -4
  18. package/esm2022/lib/date-range-picker.component.mjs +37 -9
  19. package/esm2022/lib/dropdown-item.component.mjs +19 -5
  20. package/esm2022/lib/dropdown-label.component.mjs +3 -3
  21. package/esm2022/lib/dropdown-menu.component.mjs +3 -3
  22. package/esm2022/lib/dropdown-separator.component.mjs +3 -3
  23. package/esm2022/lib/dropdown-trigger.directive.mjs +7 -3
  24. package/esm2022/lib/empty-state.component.mjs +3 -3
  25. package/esm2022/lib/hover-card.component.mjs +4 -2
  26. package/esm2022/lib/input.component.mjs +7 -5
  27. package/esm2022/lib/label.component.mjs +2 -2
  28. package/esm2022/lib/masked-input.component.mjs +3 -3
  29. package/esm2022/lib/modal.component.mjs +58 -22
  30. package/esm2022/lib/modal.service.mjs +13 -1
  31. package/esm2022/lib/multi-select.component.mjs +228 -20
  32. package/esm2022/lib/otp.component.mjs +6 -3
  33. package/esm2022/lib/pagination.component.mjs +19 -9
  34. package/esm2022/lib/progress.component.mjs +8 -5
  35. package/esm2022/lib/radio-group.component.mjs +51 -3
  36. package/esm2022/lib/radio-item.component.mjs +46 -8
  37. package/esm2022/lib/radio-service.mjs +60 -1
  38. package/esm2022/lib/range-calendar.component.mjs +317 -98
  39. package/esm2022/lib/resizable-panel.component.mjs +5 -4
  40. package/esm2022/lib/scroll-area.component.mjs +5 -5
  41. package/esm2022/lib/segment.component.mjs +73 -7
  42. package/esm2022/lib/select-item.component.mjs +20 -2
  43. package/esm2022/lib/select-separator.component.mjs +3 -3
  44. package/esm2022/lib/select.component.mjs +221 -14
  45. package/esm2022/lib/separator.component.mjs +12 -6
  46. package/esm2022/lib/sheet-ref.mjs +8 -1
  47. package/esm2022/lib/sheet-wrapper.component.mjs +27 -11
  48. package/esm2022/lib/sheet.component.mjs +57 -16
  49. package/esm2022/lib/sheet.service.mjs +5 -1
  50. package/esm2022/lib/sidebar.component.mjs +73 -15
  51. package/esm2022/lib/skeleton.component.mjs +19 -5
  52. package/esm2022/lib/switch.component.mjs +59 -53
  53. package/esm2022/lib/tabs.component.mjs +75 -13
  54. package/esm2022/lib/tag-input.component.mjs +6 -3
  55. package/esm2022/lib/textarea.component.mjs +9 -7
  56. package/esm2022/lib/theme.service.mjs +114 -138
  57. package/esm2022/lib/toaster.component.mjs +19 -9
  58. package/esm2022/lib/toggle-group.component.mjs +76 -4
  59. package/esm2022/lib/tolle-config.mjs +1 -1
  60. package/esm2022/lib/tooltip.directive.mjs +41 -17
  61. package/esm2022/lib/utils/color.mjs +324 -0
  62. package/esm2022/public-api.mjs +2 -1
  63. package/fesm2022/tolle-ui.mjs +2645 -637
  64. package/fesm2022/tolle-ui.mjs.map +1 -1
  65. package/lib/alert-dialog.component.d.ts +10 -1
  66. package/lib/avatar.component.d.ts +16 -3
  67. package/lib/badge.component.d.ts +17 -5
  68. package/lib/button.component.d.ts +10 -3
  69. package/lib/calendar.component.d.ts +21 -3
  70. package/lib/card.component.d.ts +6 -0
  71. package/lib/carousel/carousel.component.d.ts +1 -0
  72. package/lib/checkbox.component.d.ts +12 -4
  73. package/lib/country-selector.component.d.ts +11 -2
  74. package/lib/date-picker.component.d.ts +1 -0
  75. package/lib/date-range-picker.component.d.ts +4 -1
  76. package/lib/dropdown-item.component.d.ts +4 -2
  77. package/lib/dropdown-trigger.directive.d.ts +1 -1
  78. package/lib/modal.component.d.ts +6 -0
  79. package/lib/multi-select.component.d.ts +20 -0
  80. package/lib/otp.component.d.ts +1 -0
  81. package/lib/progress.component.d.ts +1 -0
  82. package/lib/radio-group.component.d.ts +8 -0
  83. package/lib/radio-item.component.d.ts +10 -4
  84. package/lib/radio-service.d.ts +29 -0
  85. package/lib/range-calendar.component.d.ts +33 -4
  86. package/lib/segment.component.d.ts +13 -0
  87. package/lib/select-item.component.d.ts +4 -1
  88. package/lib/select.component.d.ts +20 -0
  89. package/lib/separator.component.d.ts +2 -0
  90. package/lib/sheet-wrapper.component.d.ts +4 -0
  91. package/lib/sheet.component.d.ts +10 -1
  92. package/lib/sidebar.component.d.ts +2 -0
  93. package/lib/skeleton.component.d.ts +9 -3
  94. package/lib/switch.component.d.ts +13 -20
  95. package/lib/tabs.component.d.ts +11 -1
  96. package/lib/theme.service.d.ts +21 -6
  97. package/lib/toaster.component.d.ts +2 -2
  98. package/lib/toggle-group.component.d.ts +20 -2
  99. package/lib/toggle.component.d.ts +1 -1
  100. package/lib/tolle-config.d.ts +8 -0
  101. package/lib/tooltip.directive.d.ts +3 -0
  102. package/lib/utils/color.d.ts +87 -0
  103. package/package.json +4 -1
  104. package/preset.js +28 -0
  105. package/public-api.d.ts +1 -0
  106. package/registry/docs-content.json +4214 -0
  107. package/registry/llms-full.txt +1599 -0
  108. package/registry/llms.txt +83 -0
  109. package/registry/manifest.json +4925 -0
  110. package/registry/r/accordion-item.json +21 -0
  111. package/registry/r/accordion.json +23 -0
  112. package/registry/r/alert-dialog-dynamic.json +31 -0
  113. package/registry/r/alert-dialog.json +26 -0
  114. package/registry/r/alert.json +23 -0
  115. package/registry/r/aspect-ratio.json +21 -0
  116. package/registry/r/avatar-fallback.json +16 -0
  117. package/registry/r/avatar.json +23 -0
  118. package/registry/r/badge.json +23 -0
  119. package/registry/r/breadcrumb-item.json +16 -0
  120. package/registry/r/breadcrumb-link.json +16 -0
  121. package/registry/r/breadcrumb-separator.json +16 -0
  122. package/registry/r/breadcrumb.json +21 -0
  123. package/registry/r/button-group.json +21 -0
  124. package/registry/r/button.json +23 -0
  125. package/registry/r/calendar.json +23 -0
  126. package/registry/r/card.json +21 -0
  127. package/registry/r/carousel.json +18 -0
  128. package/registry/r/checkbox.json +23 -0
  129. package/registry/r/collapsible.json +21 -0
  130. package/registry/r/context-menu-trigger.json +23 -0
  131. package/registry/r/context-menu.json +28 -0
  132. package/registry/r/country-selector.json +31 -0
  133. package/registry/r/data-table.json +38 -0
  134. package/registry/r/date-picker.json +27 -0
  135. package/registry/r/date-range-picker.json +32 -0
  136. package/registry/r/dropdown-item.json +21 -0
  137. package/registry/r/dropdown-label.json +16 -0
  138. package/registry/r/dropdown-menu.json +16 -0
  139. package/registry/r/dropdown-separator.json +16 -0
  140. package/registry/r/dropdown-trigger.json +20 -0
  141. package/registry/r/empty-state.json +23 -0
  142. package/registry/r/hover-card.json +23 -0
  143. package/registry/r/input.json +21 -0
  144. package/registry/r/label.json +21 -0
  145. package/registry/r/masked-input.json +21 -0
  146. package/registry/r/modal.json +36 -0
  147. package/registry/r/multi-select.json +33 -0
  148. package/registry/r/otp-group.json +16 -0
  149. package/registry/r/otp-slot.json +21 -0
  150. package/registry/r/otp.json +21 -0
  151. package/registry/r/pagination.json +32 -0
  152. package/registry/r/phone-number-input.json +34 -0
  153. package/registry/r/popover-content.json +21 -0
  154. package/registry/r/popover.json +18 -0
  155. package/registry/r/progress.json +21 -0
  156. package/registry/r/radio-group.json +26 -0
  157. package/registry/r/radio-item.json +26 -0
  158. package/registry/r/range-calendar.json +28 -0
  159. package/registry/r/resizable-panel-item.json +23 -0
  160. package/registry/r/resizable-panel.json +23 -0
  161. package/registry/r/resizable.json +21 -0
  162. package/registry/r/scroll-area.json +21 -0
  163. package/registry/r/segment.json +21 -0
  164. package/registry/r/select-group.json +21 -0
  165. package/registry/r/select-item.json +26 -0
  166. package/registry/r/select-separator.json +21 -0
  167. package/registry/r/select.json +31 -0
  168. package/registry/r/separator.json +21 -0
  169. package/registry/r/sheet-wrapper.json +31 -0
  170. package/registry/r/sheet.json +21 -0
  171. package/registry/r/sidebar.json +21 -0
  172. package/registry/r/skeleton.json +23 -0
  173. package/registry/r/slider.json +21 -0
  174. package/registry/r/switch.json +23 -0
  175. package/registry/r/tabs.json +23 -0
  176. package/registry/r/tag-input.json +25 -0
  177. package/registry/r/textarea.json +21 -0
  178. package/registry/r/toaster.json +26 -0
  179. package/registry/r/toggle-group.json +25 -0
  180. package/registry/r/toggle.json +23 -0
  181. package/registry/r/tolle-cell.json +16 -0
  182. package/registry/r/tooltip.json +23 -0
  183. package/registry/registry.json +1540 -0
  184. package/theme.css +56 -1
@@ -21,6 +21,8 @@ export declare class AlertDialogPortalComponent implements OnInit, OnDestroy {
21
21
  private overlay;
22
22
  private viewContainerRef;
23
23
  private overlayRef?;
24
+ /** Element focused before the dialog opened, restored on close. */
25
+ private previouslyFocused?;
24
26
  ngOnInit(): void;
25
27
  private show;
26
28
  private hide;
@@ -31,12 +33,15 @@ export declare class AlertDialogPortalComponent implements OnInit, OnDestroy {
31
33
  export declare class AlertDialogContentComponent {
32
34
  class: string;
33
35
  size: AlertDialogSize;
36
+ /** Projected title/description used to build the dialog's accessible name. */
37
+ titleCmp?: AlertDialogTitleComponent;
38
+ descriptionCmp?: AlertDialogDescriptionComponent;
34
39
  private alertDialogService;
35
40
  isOpen: boolean;
36
41
  constructor();
37
42
  get computedClass(): string;
38
43
  static ɵfac: i0.ɵɵFactoryDeclaration<AlertDialogContentComponent, never>;
39
- static ɵcmp: i0.ɵɵComponentDeclaration<AlertDialogContentComponent, "tolle-alert-dialog-content", never, { "class": { "alias": "class"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, ["*"], true, never>;
44
+ static ɵcmp: i0.ɵɵComponentDeclaration<AlertDialogContentComponent, "tolle-alert-dialog-content", never, { "class": { "alias": "class"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, ["titleCmp", "descriptionCmp"], ["*"], true, never>;
40
45
  }
41
46
  export declare class AlertDialogHeaderComponent {
42
47
  class: string;
@@ -52,12 +57,16 @@ export declare class AlertDialogFooterComponent {
52
57
  }
53
58
  export declare class AlertDialogTitleComponent {
54
59
  class: string;
60
+ /** Stable id referenced by the dialog's `aria-labelledby`. */
61
+ readonly id: string;
55
62
  get computedClass(): string;
56
63
  static ɵfac: i0.ɵɵFactoryDeclaration<AlertDialogTitleComponent, never>;
57
64
  static ɵcmp: i0.ɵɵComponentDeclaration<AlertDialogTitleComponent, "tolle-alert-dialog-title", never, { "class": { "alias": "class"; "required": false; }; }, {}, never, ["*"], true, never>;
58
65
  }
59
66
  export declare class AlertDialogDescriptionComponent {
60
67
  class: string;
68
+ /** Stable id referenced by the dialog's `aria-describedby`. */
69
+ readonly id: string;
61
70
  get computedClass(): string;
62
71
  static ɵfac: i0.ɵɵFactoryDeclaration<AlertDialogDescriptionComponent, never>;
63
72
  static ɵcmp: i0.ɵɵComponentDeclaration<AlertDialogDescriptionComponent, "tolle-alert-dialog-description", never, { "class": { "alias": "class"; "required": false; }; }, {}, never, ["*"], true, never>;
@@ -1,11 +1,23 @@
1
1
  import { ChangeDetectorRef } from '@angular/core';
2
+ import { type VariantProps } from 'class-variance-authority';
2
3
  import * as i0 from "@angular/core";
4
+ declare const avatarVariants: (props?: ({
5
+ shape?: "circle" | "square" | null | undefined;
6
+ size?: "default" | "sm" | "lg" | "xl" | null | undefined;
7
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
+ export type AvatarProps = VariantProps<typeof avatarVariants>;
3
9
  export declare class AvatarComponent {
4
10
  private cdr;
11
+ /** Image URL. When absent or failed to load, projected fallback content is shown. */
5
12
  src?: string;
13
+ /** Alternative text for the avatar image. @default '' */
6
14
  alt: string;
7
- size: 'sm' | 'default' | 'lg' | 'xl';
8
- shape: 'circle' | 'square';
15
+ /** Size of the avatar. @default 'default' */
16
+ size: AvatarProps['size'];
17
+ /** Shape of the avatar. @default 'circle' */
18
+ shape: AvatarProps['shape'];
19
+ /** Extra Tailwind classes merged onto the avatar via `cn()` (last-wins). */
20
+ class: string;
9
21
  isLoading: boolean;
10
22
  hasError: boolean;
11
23
  constructor(cdr: ChangeDetectorRef);
@@ -13,5 +25,6 @@ export declare class AvatarComponent {
13
25
  onError(): void;
14
26
  get hostClasses(): string;
15
27
  static ɵfac: i0.ɵɵFactoryDeclaration<AvatarComponent, never>;
16
- static ɵcmp: i0.ɵɵComponentDeclaration<AvatarComponent, "tolle-avatar", never, { "src": { "alias": "src"; "required": false; }; "alt": { "alias": "alt"; "required": false; }; "size": { "alias": "size"; "required": false; }; "shape": { "alias": "shape"; "required": false; }; }, {}, never, ["*"], true, never>;
28
+ static ɵcmp: i0.ɵɵComponentDeclaration<AvatarComponent, "tolle-avatar", never, { "src": { "alias": "src"; "required": false; }; "alt": { "alias": "alt"; "required": false; }; "size": { "alias": "size"; "required": false; }; "shape": { "alias": "shape"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, ["*"], true, never>;
17
29
  }
30
+ export {};
@@ -1,14 +1,26 @@
1
1
  import { EventEmitter } from '@angular/core';
2
- import { cn } from './utils/cn';
2
+ import { type VariantProps } from 'class-variance-authority';
3
3
  import * as i0 from "@angular/core";
4
+ declare const badgeVariants: (props?: ({
5
+ variant?: "default" | "destructive" | "outline" | "secondary" | null | undefined;
6
+ size?: "default" | "xs" | "sm" | null | undefined;
7
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
+ export type BadgeProps = VariantProps<typeof badgeVariants>;
4
9
  export declare class BadgeComponent {
5
- variant: 'default' | 'secondary' | 'outline' | 'destructive';
6
- size: 'xs' | 'sm' | 'default';
10
+ /** Visual style of the badge. @default 'default' */
11
+ variant: BadgeProps['variant'];
12
+ /** Size of the badge. @default 'default' */
13
+ size: BadgeProps['size'];
14
+ /** Shows a trailing dismiss (×) button that emits `onRemove`. @default false */
7
15
  removable: boolean;
16
+ /** Accessible label for the dismiss button. @default 'Remove' */
17
+ removeLabel: string;
18
+ /** Extra Tailwind classes merged onto the badge via `cn()` (last-wins). */
8
19
  class: string;
20
+ /** Emitted with the click event when the dismiss button is pressed. */
9
21
  onRemove: EventEmitter<MouseEvent>;
10
- protected readonly cn: typeof cn;
11
22
  get computedClass(): string;
12
23
  static ɵfac: i0.ɵɵFactoryDeclaration<BadgeComponent, never>;
13
- static ɵcmp: i0.ɵɵComponentDeclaration<BadgeComponent, "tolle-badge", never, { "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "removable": { "alias": "removable"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, { "onRemove": "onRemove"; }, never, ["[prefix]", "*"], true, never>;
24
+ static ɵcmp: i0.ɵɵComponentDeclaration<BadgeComponent, "tolle-badge", never, { "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "removable": { "alias": "removable"; "required": false; }; "removeLabel": { "alias": "removeLabel"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, { "onRemove": "onRemove"; }, never, ["[prefix]", "*"], true, never>;
14
25
  }
26
+ export {};
@@ -1,19 +1,26 @@
1
1
  import { type VariantProps } from 'class-variance-authority';
2
2
  import * as i0 from "@angular/core";
3
3
  declare const buttonVariants: (props?: ({
4
- variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
5
- size?: "xs" | "sm" | "default" | "lg" | "icon-xs" | "icon-sm" | "icon" | "icon-lg" | null | undefined;
4
+ variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | null | undefined;
5
+ size?: "default" | "xs" | "sm" | "lg" | "icon-xs" | "icon-sm" | "icon" | "icon-lg" | null | undefined;
6
6
  busy?: boolean | null | undefined;
7
7
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
8
  export type ButtonProps = VariantProps<typeof buttonVariants>;
9
9
  export declare class ButtonComponent {
10
+ /** Extra Tailwind classes merged onto the button via `cn()` (last-wins). */
10
11
  class: string;
12
+ /** Visual style of the button. @default 'default' */
11
13
  variant: ButtonProps['variant'];
14
+ /** Size of the button, including icon-only sizes. @default 'default' */
12
15
  size: ButtonProps['size'];
16
+ /** Native button type. Defaults to 'button' so it never submits a form unexpectedly. @default 'button' */
17
+ type: 'button' | 'submit' | 'reset';
18
+ /** Disables the button and blocks pointer events. @default false */
13
19
  disabled: boolean;
20
+ /** Shows a spinner, sets `aria-busy`, and prevents interaction while a task runs. @default false */
14
21
  busy: boolean;
15
22
  get computedClass(): string;
16
23
  static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, never>;
17
- static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "tolle-button", never, { "class": { "alias": "class"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "busy": { "alias": "busy"; "required": false; }; }, {}, never, ["*"], true, never>;
24
+ static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "tolle-button", never, { "class": { "alias": "class"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "type": { "alias": "type"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "busy": { "alias": "busy"; "required": false; }; }, {}, never, ["*"], true, never>;
18
25
  }
19
26
  export {};
@@ -1,10 +1,14 @@
1
- import { OnInit, EventEmitter } from '@angular/core';
1
+ import { OnInit, EventEmitter, ChangeDetectorRef } from '@angular/core';
2
2
  import { ControlValueAccessor } from '@angular/forms';
3
3
  import { cn } from './utils/cn';
4
4
  import * as i0 from "@angular/core";
5
5
  export type CalendarMode = 'date' | 'month' | 'year';
6
6
  export declare class CalendarComponent implements OnInit, ControlValueAccessor {
7
+ private cdr;
7
8
  class: string;
9
+ /** Renders the calendar's own border, background and shadow. Set `false` when
10
+ * nesting inside a card/popover that already provides the chrome. @default true */
11
+ bordered: boolean;
8
12
  mode: CalendarMode;
9
13
  disablePastDates: boolean;
10
14
  showQuickActions: boolean;
@@ -27,7 +31,7 @@ export declare class CalendarComponent implements OnInit, ControlValueAccessor {
27
31
  onTouched: () => void;
28
32
  onChange: (value: any) => void;
29
33
  protected cn: typeof cn;
30
- constructor();
34
+ constructor(cdr: ChangeDetectorRef);
31
35
  ngOnInit(): void;
32
36
  formatMonthYear(date: Date, type: 'month' | 'year'): string;
33
37
  formatDate(date: Date, type: 'day' | 'month' | 'year'): string;
@@ -39,8 +43,22 @@ export declare class CalendarComponent implements OnInit, ControlValueAccessor {
39
43
  prevYears(): void;
40
44
  nextYears(): void;
41
45
  selectDate(date: Date): void;
46
+ /**
47
+ * Grid keyboard navigation for the day view (react-day-picker semantics).
48
+ * Arrows move by day/week, Home/End to week edges, PageUp/PageDown by month.
49
+ * Enter/Space are left to the native day <button> (which selects on click and
50
+ * does not scroll the page).
51
+ */
52
+ onGridKeydown(event: KeyboardEvent): void;
53
+ /**
54
+ * Moves focus to the day button matching `date`. If the day is not present in
55
+ * the current grid, the view advances/retreats to its month, regenerates and
56
+ * then focuses it.
57
+ */
58
+ private focusDay;
42
59
  selectMonth(monthIndex: number): void;
43
60
  selectYear(year: number): void;
61
+ isSelected(date: Date): boolean;
44
62
  getDayClass(date: Date): string;
45
63
  getMonthClass(monthIndex: number): string;
46
64
  getYearClass(year: number): string;
@@ -52,5 +70,5 @@ export declare class CalendarComponent implements OnInit, ControlValueAccessor {
52
70
  registerOnChange(fn: any): void;
53
71
  registerOnTouched(fn: any): void;
54
72
  static ɵfac: i0.ɵɵFactoryDeclaration<CalendarComponent, never>;
55
- static ɵcmp: i0.ɵɵComponentDeclaration<CalendarComponent, "tolle-calendar", never, { "class": { "alias": "class"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "disablePastDates": { "alias": "disablePastDates"; "required": false; }; "showQuickActions": { "alias": "showQuickActions"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "formatMonthFn": { "alias": "formatMonthFn"; "required": false; }; "formatYearFn": { "alias": "formatYearFn"; "required": false; }; "formatDateFn": { "alias": "formatDateFn"; "required": false; }; }, { "dateSelect": "dateSelect"; }, never, never, true, never>;
73
+ static ɵcmp: i0.ɵɵComponentDeclaration<CalendarComponent, "tolle-calendar", never, { "class": { "alias": "class"; "required": false; }; "bordered": { "alias": "bordered"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "disablePastDates": { "alias": "disablePastDates"; "required": false; }; "showQuickActions": { "alias": "showQuickActions"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "formatMonthFn": { "alias": "formatMonthFn"; "required": false; }; "formatYearFn": { "alias": "formatYearFn"; "required": false; }; "formatDateFn": { "alias": "formatDateFn"; "required": false; }; }, { "dateSelect": "dateSelect"; }, never, never, true, never>;
56
74
  }
@@ -18,6 +18,12 @@ export declare class CardTitleComponent {
18
18
  static ɵfac: i0.ɵɵFactoryDeclaration<CardTitleComponent, never>;
19
19
  static ɵcmp: i0.ɵɵComponentDeclaration<CardTitleComponent, "tolle-card-title", never, { "class": { "alias": "class"; "required": false; }; }, {}, never, ["*"], true, never>;
20
20
  }
21
+ export declare class CardDescriptionComponent {
22
+ class: string;
23
+ protected cn: typeof cn;
24
+ static ɵfac: i0.ɵɵFactoryDeclaration<CardDescriptionComponent, never>;
25
+ static ɵcmp: i0.ɵɵComponentDeclaration<CardDescriptionComponent, "tolle-card-description", never, { "class": { "alias": "class"; "required": false; }; }, {}, never, ["*"], true, never>;
26
+ }
21
27
  export declare class CardContentComponent {
22
28
  class: string;
23
29
  protected cn: typeof cn;
@@ -29,6 +29,7 @@ export declare class CarouselComponent implements AfterViewInit, OnDestroy {
29
29
  ngOnInit(): void;
30
30
  ngOnChanges(): void;
31
31
  ngAfterViewInit(): void;
32
+ onKeydown(event: KeyboardEvent): void;
32
33
  initApi(viewport: HTMLElement): void;
33
34
  ngOnDestroy(): void;
34
35
  static ɵfac: i0.ɵɵFactoryDeclaration<CarouselComponent, never>;
@@ -1,18 +1,25 @@
1
1
  import { ChangeDetectorRef } from '@angular/core';
2
2
  import { ControlValueAccessor } from '@angular/forms';
3
- import { cn } from './utils/cn';
3
+ import { type VariantProps } from 'class-variance-authority';
4
4
  import * as i0 from "@angular/core";
5
+ declare const checkboxVariants: (props?: ({
6
+ size?: "default" | "xs" | "sm" | "lg" | null | undefined;
7
+ checked?: boolean | null | undefined;
8
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
9
+ export type CheckboxProps = VariantProps<typeof checkboxVariants>;
5
10
  export declare class CheckboxComponent implements ControlValueAccessor {
6
11
  private cdr;
12
+ /** Extra Tailwind classes merged onto the checkbox via `cn()` (last-wins). */
7
13
  class: string;
14
+ /** Disables the checkbox and blocks toggling. @default false */
8
15
  disabled: boolean;
9
- size: 'xs' | 'sm' | 'default' | 'lg';
16
+ /** Size of the checkbox. @default 'default' */
17
+ size: CheckboxProps['size'];
10
18
  checked: boolean;
11
19
  onChange: any;
12
20
  onTouched: any;
13
21
  constructor(cdr: ChangeDetectorRef);
14
- protected cn: typeof cn;
15
- get sizeClasses(): string;
22
+ get computedClass(): string;
16
23
  toggle(): void;
17
24
  writeValue(value: boolean): void;
18
25
  registerOnChange(fn: any): void;
@@ -21,3 +28,4 @@ export declare class CheckboxComponent implements ControlValueAccessor {
21
28
  static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxComponent, never>;
22
29
  static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxComponent, "tolle-checkbox", never, { "class": { "alias": "class"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
23
30
  }
31
+ export {};
@@ -24,7 +24,7 @@ export declare class CountrySelectorComponent implements OnInit, ControlValueAcc
24
24
  onFocusChange: EventEmitter<void>;
25
25
  onBlurChange: EventEmitter<void>;
26
26
  popover: PopoverComponent;
27
- searchInput: ElementRef<HTMLInputElement>;
27
+ searchInput?: ElementRef<HTMLElement>;
28
28
  private countryCodesService;
29
29
  private sanitizer;
30
30
  private cdr;
@@ -33,6 +33,7 @@ export declare class CountrySelectorComponent implements OnInit, ControlValueAcc
33
33
  searchQuery: string;
34
34
  shadowCountries: any[];
35
35
  isFocused: boolean;
36
+ activeIndex: number;
36
37
  onChange: any;
37
38
  onTouched: any;
38
39
  protected cn: typeof cn;
@@ -40,7 +41,8 @@ export declare class CountrySelectorComponent implements OnInit, ControlValueAcc
40
41
  get computedTriggerClass(): string;
41
42
  get computedLabelClass(): string;
42
43
  get iconClass(): string;
43
- getItemClass(country: any): string;
44
+ getItemClass(country: any, index: number): string;
45
+ get activeDescendantId(): string | null;
44
46
  getFlagUrl(flagBase64: string): SafeResourceUrl;
45
47
  filterCountries(query: string): void;
46
48
  selectCountry(country: any): void;
@@ -49,6 +51,13 @@ export declare class CountrySelectorComponent implements OnInit, ControlValueAcc
49
51
  onBlur(): void;
50
52
  onPopoverOpen(): void;
51
53
  onPopoverClose(): void;
54
+ private getSearchInputEl;
55
+ private syncActiveDescendant;
56
+ private scrollActiveIntoView;
57
+ private moveActive;
58
+ private selectActive;
59
+ onTriggerKeyDown(event: KeyboardEvent): void;
60
+ onSearchKeyDown(event: KeyboardEvent): void;
52
61
  writeValue(value: any): void;
53
62
  registerOnChange(fn: any): void;
54
63
  registerOnTouched(fn: any): void;
@@ -33,6 +33,7 @@ export declare class DatePickerComponent implements ControlValueAccessor, OnDest
33
33
  onInputChange(str: string): void;
34
34
  onCalendarChange(date: Date | null): void;
35
35
  togglePopover(event: MouseEvent): void;
36
+ onEscape(): void;
36
37
  open(): void;
37
38
  close(): void;
38
39
  clear(event: MouseEvent): void;
@@ -10,6 +10,8 @@ export declare class DateRangePickerComponent implements ControlValueAccessor, O
10
10
  class: string;
11
11
  disablePastDates: boolean;
12
12
  size: 'xs' | 'sm' | 'default' | 'lg';
13
+ /** Consecutive months shown in the popover (e.g. `2` for a two-month picker). @default 1 */
14
+ numberOfMonths: number;
13
15
  trigger: ElementRef;
14
16
  popover: ElementRef;
15
17
  value: DateRange;
@@ -20,6 +22,7 @@ export declare class DateRangePickerComponent implements ControlValueAccessor, O
20
22
  get displayValue(): string;
21
23
  onCalendarSelect(range: DateRange): void;
22
24
  togglePopover(event: MouseEvent): void;
25
+ onEscape(): void;
23
26
  open(): void;
24
27
  close(): void;
25
28
  clear(event: MouseEvent): void;
@@ -35,5 +38,5 @@ export declare class DateRangePickerComponent implements ControlValueAccessor, O
35
38
  setDisabledState(isDisabled: boolean): void;
36
39
  protected cn: typeof cn;
37
40
  static ɵfac: i0.ɵɵFactoryDeclaration<DateRangePickerComponent, never>;
38
- static ɵcmp: i0.ɵɵComponentDeclaration<DateRangePickerComponent, "tolle-date-range-picker", never, { "disabled": { "alias": "disabled"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "class": { "alias": "class"; "required": false; }; "disablePastDates": { "alias": "disablePastDates"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
41
+ static ɵcmp: i0.ɵɵComponentDeclaration<DateRangePickerComponent, "tolle-date-range-picker", never, { "disabled": { "alias": "disabled"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "class": { "alias": "class"; "required": false; }; "disablePastDates": { "alias": "disablePastDates"; "required": false; }; "size": { "alias": "size"; "required": false; }; "numberOfMonths": { "alias": "numberOfMonths"; "required": false; }; }, {}, never, never, true, never>;
39
42
  }
@@ -1,7 +1,9 @@
1
+ import { cn } from './utils/cn';
1
2
  import * as i0 from "@angular/core";
2
3
  export declare class DropdownItemComponent {
3
4
  class: string;
4
- protected readonly cn: (c1: string, c2: string) => string;
5
+ disabled: boolean;
6
+ protected readonly cn: typeof cn;
5
7
  static ɵfac: i0.ɵɵFactoryDeclaration<DropdownItemComponent, never>;
6
- static ɵcmp: i0.ɵɵComponentDeclaration<DropdownItemComponent, "tolle-dropdown-item", never, { "class": { "alias": "class"; "required": false; }; }, {}, never, ["*"], true, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<DropdownItemComponent, "tolle-dropdown-item", never, { "class": { "alias": "class"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, ["*"], true, never>;
7
9
  }
@@ -6,7 +6,7 @@ export declare class DropdownTriggerDirective implements OnDestroy {
6
6
  private vcr;
7
7
  menu: DropdownMenuComponent;
8
8
  private cleanup?;
9
- private isOpen;
9
+ protected isOpen: boolean;
10
10
  private menuElement?;
11
11
  constructor(el: ElementRef, vcr: ViewContainerRef);
12
12
  toggle(): void;
@@ -7,8 +7,14 @@ export declare class ModalComponent implements OnInit {
7
7
  contentType: 'template' | 'string' | 'component';
8
8
  content: any;
9
9
  modalClasses: string;
10
+ /** Stable, per-instance ids used to wire dialog ARIA relationships. */
11
+ private readonly _uid;
12
+ readonly titleId: string;
13
+ readonly descId: string;
10
14
  constructor(ref: ModalRef);
11
15
  ngOnInit(): void;
16
+ /** Whether the auto-rendered header (title and/or close button) is shown. */
17
+ get hasHeader(): boolean;
12
18
  private getModalSizeCss;
13
19
  private determineContentType;
14
20
  get asTemplate(): TemplateRef<any>;
@@ -16,6 +16,7 @@ export declare class MultiSelectComponent implements ControlValueAccessor, After
16
16
  error: boolean;
17
17
  trigger: ElementRef;
18
18
  popover: ElementRef;
19
+ searchInput?: ElementRef<HTMLElement>;
19
20
  items: QueryList<SelectItemComponent>;
20
21
  value: any[];
21
22
  selectedItems: {
@@ -26,6 +27,10 @@ export declare class MultiSelectComponent implements ControlValueAccessor, After
26
27
  searchQuery: string;
27
28
  noResults: boolean;
28
29
  private cleanup?;
30
+ activeIndex: number;
31
+ private typeaheadBuffer;
32
+ private typeaheadTime;
33
+ private pendingTypeaheadChar;
29
34
  constructor(selectService: SelectService);
30
35
  get computedTriggerClass(): string;
31
36
  ngAfterContentInit(): void;
@@ -47,6 +52,21 @@ export declare class MultiSelectComponent implements ControlValueAccessor, After
47
52
  removeValue(event: MouseEvent, val: any): void;
48
53
  private syncItems;
49
54
  onSearchChange(q: string): void;
55
+ private get navigableItems();
56
+ get activeDescendantId(): string | null;
57
+ private updateActiveStates;
58
+ private syncActiveDescendant;
59
+ private setActive;
60
+ private setActiveItem;
61
+ private moveActive;
62
+ private setActiveToSelectedOrFirst;
63
+ private initActiveAfterOpen;
64
+ private resetActive;
65
+ private isTypeaheadChar;
66
+ private typeahead;
67
+ private selectActive;
68
+ onTriggerKeyDown(event: KeyboardEvent): void;
69
+ onSearchKeyDown(event: KeyboardEvent): void;
50
70
  ngOnDestroy(): void;
51
71
  onChange: any;
52
72
  onTouched: any;
@@ -19,6 +19,7 @@ export declare class OtpComponent implements ControlValueAccessor {
19
19
  writeValue(value: any): void;
20
20
  registerOnChange(fn: any): void;
21
21
  registerOnTouched(fn: any): void;
22
+ setDisabledState(isDisabled: boolean): void;
22
23
  static ɵfac: i0.ɵɵFactoryDeclaration<OtpComponent, never>;
23
24
  static ɵcmp: i0.ɵɵComponentDeclaration<OtpComponent, "tolle-otp", never, { "length": { "alias": "length"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "auto": { "alias": "auto"; "required": false; }; }, {}, never, ["*"], true, never>;
24
25
  }
@@ -2,6 +2,7 @@ import * as i0 from "@angular/core";
2
2
  export declare class ProgressComponent {
3
3
  value: number | null;
4
4
  class: string;
5
+ get clampedValue(): number;
5
6
  get computedClass(): string;
6
7
  static ɵfac: i0.ɵɵFactoryDeclaration<ProgressComponent, never>;
7
8
  static ɵcmp: i0.ɵɵComponentDeclaration<ProgressComponent, "tolle-progress", never, { "value": { "alias": "value"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, never, true, never>;
@@ -11,12 +11,20 @@ export declare class RadioGroupComponent implements ControlValueAccessor, OnChan
11
11
  value: any;
12
12
  onChange: any;
13
13
  onTouched: any;
14
+ /** Suppresses onChange while applying a programmatic writeValue(). */
15
+ private suppress;
14
16
  constructor(radioService: RadioService);
15
17
  setDisabledState?(isDisabled: boolean): void;
16
18
  ngOnChanges(): void;
17
19
  writeValue(value: any): void;
18
20
  registerOnChange(fn: any): void;
19
21
  registerOnTouched(fn: any): void;
22
+ /**
23
+ * WAI-ARIA radio group keyboard nav: Arrow Down/Right select+focus the next
24
+ * enabled item, Arrow Up/Left the previous. Wraps around and skips disabled
25
+ * items; moving selection also moves focus.
26
+ */
27
+ onKeydown(event: KeyboardEvent): void;
20
28
  protected readonly cn: typeof cn;
21
29
  static ɵfac: i0.ɵɵFactoryDeclaration<RadioGroupComponent, never>;
22
30
  static ɵcmp: i0.ɵɵComponentDeclaration<RadioGroupComponent, "tolle-radio-group", never, { "class": { "alias": "class"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "name": { "alias": "name"; "required": false; }; }, {}, never, ["*"], true, never>;
@@ -1,18 +1,24 @@
1
- import { OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';
1
+ import { OnInit, OnDestroy, ChangeDetectorRef, ElementRef } from '@angular/core';
2
2
  import { cn } from './utils/cn';
3
- import { RadioService } from './radio-service';
3
+ import { RadioService, RovingRadioItem } from './radio-service';
4
4
  import * as i0 from "@angular/core";
5
- export declare class RadioItemComponent implements OnInit, OnDestroy {
5
+ export declare class RadioItemComponent implements OnInit, OnDestroy, RovingRadioItem {
6
6
  private radioService;
7
7
  private cdr;
8
+ private el;
8
9
  value: any;
9
10
  disabled: boolean;
10
11
  class: string;
11
12
  isSelected: boolean;
12
13
  groupDisabled: boolean;
14
+ /** Whether this item is the single roving tab stop for the group. */
15
+ isTabbable: boolean;
13
16
  private sub;
14
17
  get isEffectiveDisabled(): boolean;
15
- constructor(radioService: RadioService, cdr: ChangeDetectorRef);
18
+ constructor(radioService: RadioService, cdr: ChangeDetectorRef, el: ElementRef<HTMLElement>);
19
+ get hostElement(): HTMLElement;
20
+ isItemDisabled(): boolean;
21
+ focusItem(): void;
16
22
  ngOnInit(): void;
17
23
  select(): void;
18
24
  ngOnDestroy(): void;
@@ -1,11 +1,40 @@
1
1
  import * as i0 from "@angular/core";
2
+ /**
3
+ * Contract implemented by `tolle-radio-item` so the group/service can drive
4
+ * roving tabindex + arrow-key navigation without importing the component
5
+ * (which would create a circular dependency).
6
+ */
7
+ export interface RovingRadioItem {
8
+ value: any;
9
+ isItemDisabled(): boolean;
10
+ hostElement: HTMLElement;
11
+ focusItem(): void;
12
+ }
2
13
  export declare class RadioService {
3
14
  private selectedValueSource;
4
15
  selectedValue$: import("rxjs").Observable<any>;
5
16
  private disabledSource;
6
17
  disabled$: import("rxjs").Observable<boolean>;
18
+ /**
19
+ * The single value that is allowed in the tab order (roving tabindex).
20
+ * It is the selected value, or - when nothing is selected - the first
21
+ * enabled item's value. Recomputed asynchronously so the registry is
22
+ * complete before any item reads it (avoids partial-registry glitches).
23
+ */
24
+ private tabbableValueSource;
25
+ tabbableValue$: import("rxjs").Observable<any>;
26
+ /** Registered items in DOM (registration) order. */
27
+ private items;
28
+ private recomputeScheduled;
29
+ get value(): any;
7
30
  select(value: any): void;
8
31
  setDisabled(isDisabled: boolean): void;
32
+ register(item: RovingRadioItem): void;
33
+ unregister(item: RovingRadioItem): void;
34
+ /** Ordered, non-disabled items - used for arrow-key navigation. */
35
+ getEnabledItems(): RovingRadioItem[];
36
+ private scheduleRecompute;
37
+ private recomputeTabbable;
9
38
  static ɵfac: i0.ɵɵFactoryDeclaration<RadioService, never>;
10
39
  static ɵprov: i0.ɵɵInjectableDeclaration<RadioService>;
11
40
  }
@@ -1,37 +1,66 @@
1
- import { OnInit, EventEmitter } from '@angular/core';
1
+ import { OnInit, OnChanges, SimpleChanges, EventEmitter, ChangeDetectorRef, ElementRef } from '@angular/core';
2
2
  import { ControlValueAccessor } from '@angular/forms';
3
3
  import { cn } from './utils/cn';
4
4
  import { DateRange } from './types/date-range';
5
5
  import * as i0 from "@angular/core";
6
- export declare class RangeCalendarComponent implements OnInit, ControlValueAccessor {
6
+ export declare class RangeCalendarComponent implements OnInit, OnChanges, ControlValueAccessor {
7
+ private cdr;
8
+ private el;
7
9
  class: string;
8
10
  disablePastDates: boolean;
11
+ /** Renders the calendar's own border/background/shadow. Set `false` inside a
12
+ * card/popover that already provides chrome. @default true */
13
+ bordered: boolean;
14
+ /** Number of consecutive months rendered side by side. @default 1 */
15
+ numberOfMonths: number;
9
16
  rangeSelect: EventEmitter<DateRange>;
10
17
  currentView: 'date' | 'month' | 'year';
11
18
  viewDate: Date;
12
19
  value: DateRange;
13
20
  weekDays: string[];
14
21
  daysInMonth: Date[];
22
+ /** Grids for each visible month (multi-month view). */
23
+ visibleMonths: {
24
+ date: Date;
25
+ days: Date[];
26
+ label: string;
27
+ }[];
15
28
  months: string[];
16
29
  years: number[];
17
30
  navBtnClass: string;
18
31
  onTouched: () => void;
19
32
  onChange: (value: DateRange) => void;
20
33
  protected cn: typeof cn;
34
+ constructor(cdr: ChangeDetectorRef, el: ElementRef<HTMLElement>);
21
35
  ngOnInit(): void;
36
+ ngOnChanges(changes: SimpleChanges): void;
22
37
  generateDays(): void;
23
38
  generateYears(): void;
24
39
  setView(view: 'date' | 'month' | 'year'): void;
25
40
  prev(): void;
26
41
  next(): void;
27
42
  selectDate(date: Date): void;
43
+ /**
44
+ * Arrow keys move by day/week, Home/End to week edges, PageUp/PageDown by
45
+ * month. Enter/Space are left to the native day <button>. The focused day is
46
+ * read from its `data-date` key, so navigation is independent of grid layout
47
+ * (adjacent-month days aren't rendered in the multi-month view).
48
+ */
49
+ onGridKeydown(event: KeyboardEvent): void;
50
+ private focusDay;
28
51
  selectMonth(monthIndex: number): void;
29
52
  selectYear(year: number): void;
30
- getDayClass(date: Date): string;
53
+ isSelected(date: Date): boolean;
54
+ /** True when `date` belongs to `refMonth` (used to blank out adjacent-month cells). */
55
+ isCurrentMonth(date: Date, refMonth: Date): boolean;
56
+ /** Stable, timezone-safe `data-date` key used to locate day buttons for focus. */
57
+ fmtKey(date: Date): string;
58
+ private keyToDate;
59
+ getDayClass(date: Date, refMonth?: Date): string;
31
60
  isDateDisabled(date: Date): boolean;
32
61
  writeValue(val: DateRange | null): void;
33
62
  registerOnChange(fn: any): void;
34
63
  registerOnTouched(fn: any): void;
35
64
  static ɵfac: i0.ɵɵFactoryDeclaration<RangeCalendarComponent, never>;
36
- static ɵcmp: i0.ɵɵComponentDeclaration<RangeCalendarComponent, "tolle-range-calendar", never, { "class": { "alias": "class"; "required": false; }; "disablePastDates": { "alias": "disablePastDates"; "required": false; }; }, { "rangeSelect": "rangeSelect"; }, never, never, true, never>;
65
+ static ɵcmp: i0.ɵɵComponentDeclaration<RangeCalendarComponent, "tolle-range-calendar", never, { "class": { "alias": "class"; "required": false; }; "disablePastDates": { "alias": "disablePastDates"; "required": false; }; "bordered": { "alias": "bordered"; "required": false; }; "numberOfMonths": { "alias": "numberOfMonths"; "required": false; }; }, { "rangeSelect": "rangeSelect"; }, never, never, true, never>;
37
66
  }
@@ -30,6 +30,19 @@ export declare class SegmentedComponent implements ControlValueAccessor, AfterVi
30
30
  ngOnDestroy(): void;
31
31
  ngOnChanges(changes: SimpleChanges): void;
32
32
  select(val: any): void;
33
+ /** True when the current value matches one of the items. */
34
+ private hasSelectedValue;
35
+ private firstEnabledItem;
36
+ /**
37
+ * Roving tabindex: the selected item is tab-reachable, or - when nothing is
38
+ * selected - the first enabled item. All other items get -1.
39
+ */
40
+ getTabIndex(item: SegmentItem): number;
41
+ /**
42
+ * WAI-ARIA radio group keyboard nav: Arrow Left/Right (and Home/End) move
43
+ * selection + focus across the enabled items, wrapping and skipping disabled.
44
+ */
45
+ onKeydown(event: KeyboardEvent): void;
33
46
  updateGlider(): void;
34
47
  writeValue(val: any): void;
35
48
  registerOnChange(fn: any): void;