@tolle_/tolle-ui 18.2.29 → 18.2.30

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 (279) hide show
  1. package/esm2022/lib/accordion-item.component.mjs +5 -11
  2. package/esm2022/lib/accordion.component.mjs +4 -9
  3. package/esm2022/lib/alert-dialog-dynamic.component.mjs +5 -10
  4. package/esm2022/lib/alert-dialog.component.mjs +44 -59
  5. package/esm2022/lib/alert.component.mjs +5 -11
  6. package/esm2022/lib/aspect-ratio.component.mjs +119 -0
  7. package/esm2022/lib/attachment.component.mjs +334 -0
  8. package/esm2022/lib/avatar-fallback.component.mjs +3 -3
  9. package/esm2022/lib/avatar.component.mjs +4 -9
  10. package/esm2022/lib/badge.component.mjs +4 -9
  11. package/esm2022/lib/breadcrumb-item.component.mjs +3 -3
  12. package/esm2022/lib/breadcrumb-link.component.mjs +3 -3
  13. package/esm2022/lib/breadcrumb-separator.component.mjs +3 -3
  14. package/esm2022/lib/breadcrumb.component.mjs +3 -3
  15. package/esm2022/lib/bubble.component.mjs +301 -0
  16. package/esm2022/lib/button.component.mjs +5 -11
  17. package/esm2022/lib/calendar.component.mjs +5 -11
  18. package/esm2022/lib/card.component.mjs +14 -43
  19. package/esm2022/lib/carousel/carousel.component.mjs +5 -12
  20. package/esm2022/lib/chain-of-thought.component.mjs +380 -0
  21. package/esm2022/lib/chart-pie.component.mjs +386 -0
  22. package/esm2022/lib/chart.component.mjs +1146 -0
  23. package/esm2022/lib/chart.service.mjs +555 -0
  24. package/esm2022/lib/checkbox.component.mjs +5 -11
  25. package/esm2022/lib/checkpoint.component.mjs +134 -0
  26. package/esm2022/lib/collapsible.component.mjs +4 -11
  27. package/esm2022/lib/combobox.component.mjs +372 -0
  28. package/esm2022/lib/command-dialog.component.mjs +164 -0
  29. package/esm2022/lib/command.component.mjs +514 -0
  30. package/esm2022/lib/command.service.mjs +130 -0
  31. package/esm2022/lib/confirmation.component.mjs +219 -0
  32. package/esm2022/lib/context-menu-trigger.directive.mjs +36 -0
  33. package/esm2022/lib/context-menu.component.mjs +460 -0
  34. package/esm2022/lib/context-menu.service.mjs +121 -0
  35. package/esm2022/lib/context.component.mjs +377 -0
  36. package/esm2022/lib/conversation.component.mjs +442 -0
  37. package/esm2022/lib/country-selector.component.mjs +5 -11
  38. package/esm2022/lib/data-table.component.mjs +59 -12
  39. package/esm2022/lib/date-picker.component.mjs +251 -198
  40. package/esm2022/lib/date-range-picker.component.mjs +224 -116
  41. package/esm2022/lib/date-time-picker.component.mjs +506 -0
  42. package/esm2022/lib/direction.component.mjs +79 -0
  43. package/esm2022/lib/dropdown-item.component.mjs +3 -3
  44. package/esm2022/lib/dropdown-label.component.mjs +3 -3
  45. package/esm2022/lib/dropdown-menu.component.mjs +3 -3
  46. package/esm2022/lib/dropdown-separator.component.mjs +3 -3
  47. package/esm2022/lib/dropdown-trigger.directive.mjs +6 -4
  48. package/esm2022/lib/empty-state.component.mjs +4 -9
  49. package/esm2022/lib/field.component.mjs +394 -0
  50. package/esm2022/lib/hover-card.component.mjs +6 -16
  51. package/esm2022/lib/inline-citation.component.mjs +263 -0
  52. package/esm2022/lib/input-group.component.mjs +418 -0
  53. package/esm2022/lib/input.component.mjs +5 -11
  54. package/esm2022/lib/item.component.mjs +243 -0
  55. package/esm2022/lib/kbd.component.mjs +82 -0
  56. package/esm2022/lib/label.component.mjs +4 -9
  57. package/esm2022/lib/marker.component.mjs +135 -0
  58. package/esm2022/lib/masked-input.component.mjs +5 -11
  59. package/esm2022/lib/menubar.component.mjs +683 -0
  60. package/esm2022/lib/message-scroller.component.mjs +353 -0
  61. package/esm2022/lib/message-scroller.service.mjs +157 -0
  62. package/esm2022/lib/message.component.mjs +228 -0
  63. package/esm2022/lib/model-selector.component.mjs +310 -0
  64. package/esm2022/lib/multi-select.component.mjs +155 -72
  65. package/esm2022/lib/native-select.component.mjs +201 -0
  66. package/esm2022/lib/navigation-menu.component.mjs +642 -0
  67. package/esm2022/lib/otp-group.component.mjs +3 -3
  68. package/esm2022/lib/otp-slot.component.mjs +4 -9
  69. package/esm2022/lib/otp.component.mjs +5 -11
  70. package/esm2022/lib/pagination.component.mjs +7 -10
  71. package/esm2022/lib/plan.component.mjs +335 -0
  72. package/esm2022/lib/popover-content.component.mjs +4 -9
  73. package/esm2022/lib/popover.component.mjs +15 -13
  74. package/esm2022/lib/progress.component.mjs +4 -9
  75. package/esm2022/lib/prompt-input.component.mjs +526 -0
  76. package/esm2022/lib/queue.component.mjs +280 -0
  77. package/esm2022/lib/radio-group.component.mjs +6 -13
  78. package/esm2022/lib/radio-item.component.mjs +4 -9
  79. package/esm2022/lib/range-calendar.component.mjs +5 -11
  80. package/esm2022/lib/reasoning.component.mjs +335 -0
  81. package/esm2022/lib/resizable.component.mjs +219 -0
  82. package/esm2022/lib/segment.component.mjs +17 -7
  83. package/esm2022/lib/select-group.component.mjs +4 -8
  84. package/esm2022/lib/select-item.component.mjs +4 -9
  85. package/esm2022/lib/select-separator.component.mjs +4 -8
  86. package/esm2022/lib/select.component.mjs +133 -49
  87. package/esm2022/lib/separator.component.mjs +4 -9
  88. package/esm2022/lib/sheet.component.mjs +38 -56
  89. package/esm2022/lib/shimmer.component.mjs +84 -0
  90. package/esm2022/lib/sidebar.component.mjs +11 -1
  91. package/esm2022/lib/skeleton.component.mjs +4 -9
  92. package/esm2022/lib/sources.component.mjs +452 -0
  93. package/esm2022/lib/spinner.component.mjs +68 -0
  94. package/esm2022/lib/suggestion.component.mjs +207 -0
  95. package/esm2022/lib/switch.component.mjs +5 -11
  96. package/esm2022/lib/table.component.mjs +213 -0
  97. package/esm2022/lib/tabs.component.mjs +4 -11
  98. package/esm2022/lib/tag-input.component.mjs +5 -11
  99. package/esm2022/lib/task.component.mjs +359 -0
  100. package/esm2022/lib/textarea.component.mjs +5 -11
  101. package/esm2022/lib/theme.service.mjs +17 -6
  102. package/esm2022/lib/time-picker.component.mjs +923 -0
  103. package/esm2022/lib/toast.service.mjs +3 -2
  104. package/esm2022/lib/toaster.component.mjs +76 -39
  105. package/esm2022/lib/toggle-group.component.mjs +4 -9
  106. package/esm2022/lib/toggle.component.mjs +5 -11
  107. package/esm2022/lib/tool.component.mjs +462 -0
  108. package/esm2022/lib/typography.component.mjs +83 -0
  109. package/esm2022/lib/utils/color.mjs +140 -19
  110. package/esm2022/public-api.mjs +61 -1
  111. package/fesm2022/tolle-ui.mjs +16453 -1024
  112. package/fesm2022/tolle-ui.mjs.map +1 -1
  113. package/lib/alert-dialog.component.d.ts +10 -2
  114. package/lib/aspect-ratio.component.d.ts +20 -0
  115. package/lib/attachment.component.d.ts +101 -0
  116. package/lib/bubble.component.d.ts +112 -0
  117. package/lib/chain-of-thought.component.d.ts +166 -0
  118. package/lib/chart-pie.component.d.ts +108 -0
  119. package/lib/chart.component.d.ts +369 -0
  120. package/lib/chart.service.d.ts +222 -0
  121. package/lib/checkpoint.component.d.ts +51 -0
  122. package/lib/combobox.component.d.ts +90 -0
  123. package/lib/command-dialog.component.d.ts +53 -0
  124. package/lib/command.component.d.ts +189 -0
  125. package/lib/command.service.d.ts +67 -0
  126. package/lib/confirmation.component.d.ts +70 -0
  127. package/lib/context-menu-trigger.directive.d.ts +12 -0
  128. package/lib/context-menu.component.d.ts +41 -0
  129. package/lib/context-menu.service.d.ts +38 -0
  130. package/lib/context.component.d.ts +134 -0
  131. package/lib/conversation.component.d.ts +165 -0
  132. package/lib/data-table.component.d.ts +26 -1
  133. package/lib/date-picker.component.d.ts +72 -11
  134. package/lib/date-range-picker.component.d.ts +63 -6
  135. package/lib/date-time-picker.component.d.ts +119 -0
  136. package/lib/direction.component.d.ts +45 -0
  137. package/lib/field.component.d.ts +201 -0
  138. package/lib/inline-citation.component.d.ts +103 -0
  139. package/lib/input-group.component.d.ts +150 -0
  140. package/lib/item.component.d.ts +154 -0
  141. package/lib/kbd.component.d.ts +50 -0
  142. package/lib/marker.component.d.ts +58 -0
  143. package/lib/menubar.component.d.ts +247 -0
  144. package/lib/message-scroller.component.d.ts +159 -0
  145. package/lib/message-scroller.service.d.ts +73 -0
  146. package/lib/message.component.d.ts +128 -0
  147. package/lib/model-selector.component.d.ts +103 -0
  148. package/lib/multi-select.component.d.ts +66 -14
  149. package/lib/native-select.component.d.ts +57 -0
  150. package/lib/navigation-menu.component.d.ts +230 -0
  151. package/lib/plan.component.d.ts +120 -0
  152. package/lib/popover.component.d.ts +1 -0
  153. package/lib/prompt-input.component.d.ts +194 -0
  154. package/lib/queue.component.d.ts +106 -0
  155. package/lib/reasoning.component.d.ts +127 -0
  156. package/lib/resizable.component.d.ts +43 -0
  157. package/lib/segment.component.d.ts +13 -3
  158. package/lib/select.component.d.ts +37 -5
  159. package/lib/sheet.component.d.ts +3 -0
  160. package/lib/shimmer.component.d.ts +38 -0
  161. package/lib/sidebar.component.d.ts +2 -0
  162. package/lib/sources.component.d.ts +156 -0
  163. package/lib/spinner.component.d.ts +29 -0
  164. package/lib/suggestion.component.d.ts +96 -0
  165. package/lib/table.component.d.ts +106 -0
  166. package/lib/task.component.d.ts +151 -0
  167. package/lib/theme.service.d.ts +9 -0
  168. package/lib/time-picker.component.d.ts +243 -0
  169. package/lib/toast.service.d.ts +3 -1
  170. package/lib/toaster.component.d.ts +26 -9
  171. package/lib/tool.component.d.ts +158 -0
  172. package/lib/typography.component.d.ts +32 -0
  173. package/lib/utils/color.d.ts +19 -5
  174. package/package.json +1 -1
  175. package/public-api.d.ts +50 -0
  176. package/registry/docs-content.json +8480 -1542
  177. package/registry/llms-full.txt +2679 -319
  178. package/registry/llms.txt +43 -4
  179. package/registry/manifest.json +9090 -1742
  180. package/registry/r/accordion-item.json +1 -1
  181. package/registry/r/accordion.json +1 -1
  182. package/registry/r/alert-dialog-dynamic.json +1 -1
  183. package/registry/r/alert-dialog.json +1 -1
  184. package/registry/r/alert.json +1 -1
  185. package/registry/r/attachment.json +23 -0
  186. package/registry/r/avatar-fallback.json +1 -1
  187. package/registry/r/avatar.json +1 -1
  188. package/registry/r/badge.json +1 -1
  189. package/registry/r/breadcrumb-item.json +1 -1
  190. package/registry/r/breadcrumb-link.json +1 -1
  191. package/registry/r/breadcrumb-separator.json +1 -1
  192. package/registry/r/breadcrumb.json +1 -1
  193. package/registry/r/bubble.json +23 -0
  194. package/registry/r/button.json +1 -1
  195. package/registry/r/calendar.json +1 -1
  196. package/registry/r/card.json +1 -1
  197. package/registry/r/carousel.json +1 -1
  198. package/registry/r/chain-of-thought.json +23 -0
  199. package/registry/r/chart-pie.json +30 -0
  200. package/registry/r/chart.json +28 -0
  201. package/registry/r/checkbox.json +1 -1
  202. package/registry/r/checkpoint.json +23 -0
  203. package/registry/r/collapsible.json +1 -1
  204. package/registry/r/combobox.json +31 -0
  205. package/registry/r/command-dialog.json +21 -0
  206. package/registry/r/command.json +26 -0
  207. package/registry/r/confirmation.json +23 -0
  208. package/registry/r/context.json +26 -0
  209. package/registry/r/conversation.json +23 -0
  210. package/registry/r/country-selector.json +1 -1
  211. package/registry/r/data-table.json +1 -1
  212. package/registry/r/date-picker.json +4 -4
  213. package/registry/r/date-range-picker.json +3 -3
  214. package/registry/r/date-time-picker.json +28 -0
  215. package/registry/r/direction.json +16 -0
  216. package/registry/r/dropdown-item.json +1 -1
  217. package/registry/r/dropdown-label.json +1 -1
  218. package/registry/r/dropdown-menu.json +1 -1
  219. package/registry/r/dropdown-separator.json +1 -1
  220. package/registry/r/dropdown-trigger.json +1 -1
  221. package/registry/r/empty-state.json +1 -1
  222. package/registry/r/field.json +23 -0
  223. package/registry/r/hover-card.json +1 -1
  224. package/registry/r/inline-citation.json +26 -0
  225. package/registry/r/input-group.json +23 -0
  226. package/registry/r/input.json +1 -1
  227. package/registry/r/item.json +23 -0
  228. package/registry/r/kbd.json +23 -0
  229. package/registry/r/label.json +1 -1
  230. package/registry/r/marker.json +23 -0
  231. package/registry/r/masked-input.json +1 -1
  232. package/registry/r/menubar.json +24 -0
  233. package/registry/r/message-scroller.json +26 -0
  234. package/registry/r/message.json +23 -0
  235. package/registry/r/model-selector.json +32 -0
  236. package/registry/r/multi-select.json +2 -2
  237. package/registry/r/native-select.json +23 -0
  238. package/registry/r/navigation-menu.json +24 -0
  239. package/registry/r/otp-group.json +1 -1
  240. package/registry/r/otp-slot.json +1 -1
  241. package/registry/r/otp.json +1 -1
  242. package/registry/r/pagination.json +3 -2
  243. package/registry/r/plan.json +23 -0
  244. package/registry/r/popover-content.json +1 -1
  245. package/registry/r/popover.json +1 -1
  246. package/registry/r/progress.json +1 -1
  247. package/registry/r/prompt-input.json +23 -0
  248. package/registry/r/queue.json +23 -0
  249. package/registry/r/radio-group.json +1 -1
  250. package/registry/r/radio-item.json +1 -1
  251. package/registry/r/range-calendar.json +1 -1
  252. package/registry/r/reasoning.json +23 -0
  253. package/registry/r/segment.json +1 -1
  254. package/registry/r/select-group.json +1 -1
  255. package/registry/r/select-item.json +1 -1
  256. package/registry/r/select-separator.json +1 -1
  257. package/registry/r/select.json +4 -3
  258. package/registry/r/separator.json +1 -1
  259. package/registry/r/sheet.json +1 -1
  260. package/registry/r/shimmer.json +23 -0
  261. package/registry/r/sidebar.json +1 -1
  262. package/registry/r/skeleton.json +1 -1
  263. package/registry/r/sources.json +23 -0
  264. package/registry/r/spinner.json +23 -0
  265. package/registry/r/suggestion.json +23 -0
  266. package/registry/r/switch.json +1 -1
  267. package/registry/r/table.json +21 -0
  268. package/registry/r/tabs.json +1 -1
  269. package/registry/r/tag-input.json +1 -1
  270. package/registry/r/task.json +23 -0
  271. package/registry/r/textarea.json +1 -1
  272. package/registry/r/time-picker.json +24 -0
  273. package/registry/r/toaster.json +2 -2
  274. package/registry/r/toggle-group.json +1 -1
  275. package/registry/r/toggle.json +1 -1
  276. package/registry/r/tool.json +23 -0
  277. package/registry/r/typography.json +23 -0
  278. package/registry/registry.json +915 -22
  279. package/theme.css +109 -8
@@ -0,0 +1,119 @@
1
+ import { EventEmitter, ElementRef, ChangeDetectorRef, OnChanges, OnDestroy } from '@angular/core';
2
+ import { ControlValueAccessor } from '@angular/forms';
3
+ import { type VariantProps } from 'class-variance-authority';
4
+ import { cn } from './utils/cn';
5
+ import { TimeColumnsComponent, TimeParts } from './time-picker.component';
6
+ import * as i0 from "@angular/core";
7
+ declare const dateTimePickerTriggerVariants: (props?: ({
8
+ size?: "default" | "xs" | "sm" | "lg" | null | undefined;
9
+ invalid?: boolean | null | undefined;
10
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
11
+ /** Variant props for the date-time picker trigger. */
12
+ export type DateTimePickerProps = VariantProps<typeof dateTimePickerTriggerVariants>;
13
+ /**
14
+ * One control for a date *and* a time: `tolle-calendar` on the left, the
15
+ * `tolle-time-columns` strip on the right, in a single floating panel with a
16
+ * Clear / Done footer.
17
+ *
18
+ * The value is a `Date`, because a date-time genuinely is a moment. Changing
19
+ * the date preserves the chosen time and changing the time preserves the
20
+ * chosen date — the two halves are only ever recombined, never reset.
21
+ *
22
+ * Implements `ControlValueAccessor`, so it works with `ngModel` and reactive
23
+ * forms. Use `tolle-date-picker` for a date alone and `tolle-time-picker` for a
24
+ * time alone.
25
+ * @new
26
+ */
27
+ export declare class DateTimePickerComponent implements ControlValueAccessor, OnChanges, OnDestroy {
28
+ private cdr;
29
+ /** Text shown on the trigger when nothing is selected. @default 'Select date and time' */
30
+ placeholder: string;
31
+ /** Disables the control. @default false */
32
+ disabled: boolean;
33
+ /** Renders a 12-hour face with an AM/PM column. @default false */
34
+ use12Hours: boolean;
35
+ /** Adds a seconds column. @default false */
36
+ showSeconds: boolean;
37
+ /** Interval between minute entries, in minutes. @default 1 */
38
+ minuteStep: number;
39
+ /** Earliest selectable moment; earlier days and times are disabled. */
40
+ min?: Date;
41
+ /** Latest selectable moment; later days and times are disabled. */
42
+ max?: Date;
43
+ /** date-fns pattern used to render the value on the trigger. @default 'MMM d, yyyy h:mm a' */
44
+ displayFormat: string;
45
+ /** Height and text size of the trigger and entries. @default 'default' */
46
+ size: DateTimePickerProps['size'];
47
+ /** Applies the destructive border and focus ring. @default false */
48
+ invalid: boolean;
49
+ /** Accessible name when there is no associated visible label. @default '' */
50
+ ariaLabel: string;
51
+ /** Extra Tailwind classes merged onto the trigger via `cn()` (last-wins). */
52
+ class: string;
53
+ /** Emitted with the chosen moment, or `null` when the value is cleared. */
54
+ valueChange: EventEmitter<Date | null>;
55
+ /** Emitted when the panel opens. */
56
+ opened: EventEmitter<void>;
57
+ /** Emitted when the panel closes. */
58
+ closed: EventEmitter<void>;
59
+ triggerEl?: ElementRef<HTMLElement>;
60
+ panelEl?: ElementRef<HTMLElement>;
61
+ columnsCmp?: TimeColumnsComponent;
62
+ readonly panelId: string;
63
+ value: Date | null;
64
+ isOpen: boolean;
65
+ /**
66
+ * Day-only copies of `min` / `max` for the calendar. The calendar compares
67
+ * whole `Date`s, so passing a bound that carries a time would disable its own
68
+ * day — 09:00 on the min day would look "before" a 09:30 minimum.
69
+ */
70
+ calendarMin?: Date;
71
+ calendarMax?: Date;
72
+ readonly footerButtonClass: string;
73
+ protected cn: typeof cn;
74
+ private cleanup?;
75
+ private onChange;
76
+ private onTouched;
77
+ constructor(cdr: ChangeDetectorRef);
78
+ ngOnChanges(): void;
79
+ private readonly outsideClickHandler;
80
+ private readonly escapeHandler;
81
+ get hour(): number | null;
82
+ get minute(): number | null;
83
+ get second(): number | null;
84
+ get displayValue(): string;
85
+ /**
86
+ * The time bound only bites on the boundary day itself: on the min day the
87
+ * columns start at the min time, on any later day they start at midnight.
88
+ */
89
+ get minSeconds(): number;
90
+ get maxSeconds(): number;
91
+ get computedTriggerClass(): string;
92
+ toggle(): void;
93
+ open(): void;
94
+ close(): void;
95
+ onTriggerKeyDown(event: KeyboardEvent): void;
96
+ /**
97
+ * Applies a newly picked day, carrying the existing time across. With no
98
+ * time chosen yet the day starts at midnight.
99
+ */
100
+ onDateSelect(date: Date | null): void;
101
+ /**
102
+ * Applies a newly picked time, carrying the existing day across. With no day
103
+ * chosen yet the time lands on today.
104
+ */
105
+ onTimeChange(parts: TimeParts): void;
106
+ clear(): void;
107
+ done(): void;
108
+ private commit;
109
+ private updatePosition;
110
+ private teardown;
111
+ ngOnDestroy(): void;
112
+ writeValue(value: Date | string | null | undefined): void;
113
+ registerOnChange(fn: (value: Date | null) => void): void;
114
+ registerOnTouched(fn: () => void): void;
115
+ setDisabledState(isDisabled: boolean): void;
116
+ static ɵfac: i0.ɵɵFactoryDeclaration<DateTimePickerComponent, never>;
117
+ static ɵcmp: i0.ɵɵComponentDeclaration<DateTimePickerComponent, "tolle-date-time-picker", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "use12Hours": { "alias": "use12Hours"; "required": false; }; "showSeconds": { "alias": "showSeconds"; "required": false; }; "minuteStep": { "alias": "minuteStep"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "displayFormat": { "alias": "displayFormat"; "required": false; }; "size": { "alias": "size"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, { "valueChange": "valueChange"; "opened": "opened"; "closed": "closed"; }, never, never, true, never>;
118
+ }
119
+ export {};
@@ -0,0 +1,45 @@
1
+ import { EventEmitter, OnChanges } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /** Writing direction of a subtree: explicit, or inferred from its text. */
4
+ export type Direction = 'ltr' | 'rtl' | 'auto';
5
+ /**
6
+ * Publishes the application's current writing direction so components can adapt
7
+ * without reading the DOM.
8
+ *
9
+ * Direction is not an input of most components, so an OnPush view would never be
10
+ * marked dirty by a change. Subscribe to `direction$` and call `markForCheck()`
11
+ * on emission wherever the rendered output depends on it.
12
+ */
13
+ export declare class DirectionService {
14
+ private directionSource;
15
+ /** Emits the current writing direction, starting with the present value. */
16
+ readonly direction$: import("rxjs").Observable<Direction>;
17
+ /** The current writing direction. */
18
+ get direction(): Direction;
19
+ /** Whether the current direction is explicitly right-to-left. */
20
+ get isRtl(): boolean;
21
+ /** Sets the current direction, emitting only when it actually changes. */
22
+ setDirection(direction: Direction): void;
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<DirectionService, never>;
24
+ static ɵprov: i0.ɵɵInjectableDeclaration<DirectionService>;
25
+ }
26
+ /**
27
+ * Sets the `dir` attribute on its host and publishes that direction to
28
+ * `DirectionService`, so a whole chat surface can be flipped to RTL from one
29
+ * place. Put it on the outermost element of the subtree you want to flip.
30
+ * @new
31
+ */
32
+ export declare class DirectionDirective implements OnChanges {
33
+ /** Writing direction applied to the host's `dir` attribute. @default 'ltr' */
34
+ tolleDirection: Direction;
35
+ /** Whether to publish this direction to the app-wide `DirectionService`. @default true */
36
+ tolleDirectionPublish: boolean;
37
+ /** Emitted with the direction whenever it changes. */
38
+ directionChange: EventEmitter<Direction>;
39
+ private readonly service;
40
+ /** The resolved `dir` attribute value written onto the host. */
41
+ get dir(): Direction;
42
+ ngOnChanges(): void;
43
+ static ɵfac: i0.ɵɵFactoryDeclaration<DirectionDirective, never>;
44
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DirectionDirective, "[tolleDirection]", never, { "tolleDirection": { "alias": "tolleDirection"; "required": false; }; "tolleDirectionPublish": { "alias": "tolleDirectionPublish"; "required": false; }; }, { "directionChange": "directionChange"; }, never, never, true, never>;
45
+ }
@@ -0,0 +1,201 @@
1
+ import { OnChanges } from '@angular/core';
2
+ import { type VariantProps } from 'class-variance-authority';
3
+ import { cn } from './utils/cn';
4
+ import * as i0 from "@angular/core";
5
+ declare const fieldVariants: (props?: ({
6
+ orientation?: "horizontal" | "vertical" | "responsive" | null | undefined;
7
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
+ export type FieldProps = VariantProps<typeof fieldVariants>;
9
+ /**
10
+ * Wraps a label, a control and its help/error text into one accessible form
11
+ * field. Composes *around* the existing controls (`tolle-input`,
12
+ * `tolle-select`, …) — it does not replace them.
13
+ *
14
+ * Use `tolle-item` instead when displaying content rather than a form control.
15
+ * @new
16
+ */
17
+ export declare class FieldComponent implements OnChanges {
18
+ private readonly cdr;
19
+ /**
20
+ * Angular writes a bound `class` input through its styling path, which does
21
+ * not mark an OnPush component dirty — without this hook the component keeps
22
+ * rendering the class it was born with.
23
+ */
24
+ ngOnChanges(): void;
25
+ /** Layout direction; `responsive` goes horizontal at the `@md` container width. @default 'vertical' */
26
+ orientation: FieldProps['orientation'];
27
+ /** Marks the field invalid, turning on the destructive styling for descendants. @default false */
28
+ invalid: boolean;
29
+ /** Extra Tailwind classes merged onto the field via `cn()` (last-wins). */
30
+ class: string;
31
+ get computedClass(): string;
32
+ static ɵfac: i0.ɵɵFactoryDeclaration<FieldComponent, never>;
33
+ static ɵcmp: i0.ɵɵComponentDeclaration<FieldComponent, "tolle-field", never, { "orientation": { "alias": "orientation"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, ["*"], true, never>;
34
+ }
35
+ /**
36
+ * Label for a field's control. Set `for` to the control's `id` so clicking the
37
+ * label focuses it.
38
+ */
39
+ export declare class FieldLabelComponent implements OnChanges {
40
+ private readonly cdr;
41
+ /**
42
+ * Angular writes a bound `class` input through its styling path, which does
43
+ * not mark an OnPush component dirty — without this hook the component keeps
44
+ * rendering the class it was born with.
45
+ */
46
+ ngOnChanges(): void;
47
+ /** Id of the control this label describes; wire it to the control's `id`. @default '' */
48
+ for: string;
49
+ /** Appends a required marker (*) after the label text. @default false */
50
+ required: boolean;
51
+ /** Extra Tailwind classes merged onto the label via `cn()` (last-wins). */
52
+ class: string;
53
+ protected cn: typeof cn;
54
+ static ɵfac: i0.ɵɵFactoryDeclaration<FieldLabelComponent, never>;
55
+ static ɵcmp: i0.ɵɵComponentDeclaration<FieldLabelComponent, "tolle-field-label", never, { "for": { "alias": "for"; "required": false; }; "required": { "alias": "required"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, ["*"], true, never>;
56
+ }
57
+ /** Column that groups the control with its description and error text. */
58
+ export declare class FieldContentComponent implements OnChanges {
59
+ private readonly cdr;
60
+ /**
61
+ * Angular writes a bound `class` input through its styling path, which does
62
+ * not mark an OnPush component dirty — without this hook the component keeps
63
+ * rendering the class it was born with.
64
+ */
65
+ ngOnChanges(): void;
66
+ /** Extra Tailwind classes merged onto the content column via `cn()` (last-wins). */
67
+ class: string;
68
+ protected cn: typeof cn;
69
+ static ɵfac: i0.ɵɵFactoryDeclaration<FieldContentComponent, never>;
70
+ static ɵcmp: i0.ɵɵComponentDeclaration<FieldContentComponent, "tolle-field-content", never, { "class": { "alias": "class"; "required": false; }; }, {}, never, ["*"], true, never>;
71
+ }
72
+ /**
73
+ * Helper text below a control. Give it an `id` and point the control's
74
+ * `aria-describedby` at it.
75
+ */
76
+ export declare class FieldDescriptionComponent implements OnChanges {
77
+ private readonly cdr;
78
+ /**
79
+ * Angular writes a bound `class` input through its styling path, which does
80
+ * not mark an OnPush component dirty — without this hook the component keeps
81
+ * rendering the class it was born with.
82
+ */
83
+ ngOnChanges(): void;
84
+ /** Id to reference from the control's `aria-describedby`. @default '' */
85
+ id: string;
86
+ /** Extra Tailwind classes merged onto the description via `cn()` (last-wins). */
87
+ class: string;
88
+ protected cn: typeof cn;
89
+ static ɵfac: i0.ɵɵFactoryDeclaration<FieldDescriptionComponent, never>;
90
+ static ɵcmp: i0.ɵɵComponentDeclaration<FieldDescriptionComponent, "tolle-field-description", never, { "id": { "alias": "id"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, ["*"], true, never>;
91
+ }
92
+ /**
93
+ * Error text for a field. Renders nothing when there is no error, so it is safe
94
+ * to leave in the template permanently. Announces via `role="alert"`.
95
+ */
96
+ export declare class FieldErrorComponent implements OnChanges {
97
+ private readonly cdr;
98
+ /**
99
+ * Angular writes a bound `class` input through its styling path, which does
100
+ * not mark an OnPush component dirty — without this hook the component keeps
101
+ * rendering the class it was born with.
102
+ */
103
+ ngOnChanges(): void;
104
+ /**
105
+ * Validation message(s). Accepts a single string, an array of strings, or an
106
+ * Angular `ValidationErrors`-style object whose values are messages.
107
+ * @default ''
108
+ */
109
+ errors: string | string[] | Record<string, any> | null;
110
+ /** Id to reference from the control's `aria-describedby`. @default '' */
111
+ id: string;
112
+ /** Extra Tailwind classes merged onto the error text via `cn()` (last-wins). */
113
+ class: string;
114
+ protected cn: typeof cn;
115
+ /** Normalises the three accepted `errors` shapes to a flat list of strings. */
116
+ get messages(): string[];
117
+ static ɵfac: i0.ɵɵFactoryDeclaration<FieldErrorComponent, never>;
118
+ static ɵcmp: i0.ɵɵComponentDeclaration<FieldErrorComponent, "tolle-field-error", never, { "errors": { "alias": "errors"; "required": false; }; "id": { "alias": "id"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, never, true, never>;
119
+ }
120
+ /** Stacks several fields with consistent spacing. */
121
+ export declare class FieldGroupComponent implements OnChanges {
122
+ private readonly cdr;
123
+ /**
124
+ * Angular writes a bound `class` input through its styling path, which does
125
+ * not mark an OnPush component dirty — without this hook the component keeps
126
+ * rendering the class it was born with.
127
+ */
128
+ ngOnChanges(): void;
129
+ /** Extra Tailwind classes merged onto the group via `cn()` (last-wins). */
130
+ class: string;
131
+ protected cn: typeof cn;
132
+ static ɵfac: i0.ɵɵFactoryDeclaration<FieldGroupComponent, never>;
133
+ static ɵcmp: i0.ɵɵComponentDeclaration<FieldGroupComponent, "tolle-field-group", never, { "class": { "alias": "class"; "required": false; }; }, {}, never, ["*"], true, never>;
134
+ }
135
+ /** Semantic `<fieldset>` grouping related fields under a legend. */
136
+ export declare class FieldSetComponent implements OnChanges {
137
+ private readonly cdr;
138
+ /**
139
+ * Angular writes a bound `class` input through its styling path, which does
140
+ * not mark an OnPush component dirty — without this hook the component keeps
141
+ * rendering the class it was born with.
142
+ */
143
+ ngOnChanges(): void;
144
+ /** Extra Tailwind classes merged onto the fieldset via `cn()` (last-wins). */
145
+ class: string;
146
+ protected cn: typeof cn;
147
+ static ɵfac: i0.ɵɵFactoryDeclaration<FieldSetComponent, never>;
148
+ static ɵcmp: i0.ɵɵComponentDeclaration<FieldSetComponent, "tolle-field-set", never, { "class": { "alias": "class"; "required": false; }; }, {}, never, ["*"], true, never>;
149
+ }
150
+ declare const fieldLegendVariants: (props?: ({
151
+ variant?: "label" | "legend" | null | undefined;
152
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
153
+ export type FieldLegendProps = VariantProps<typeof fieldLegendVariants>;
154
+ /** `<legend>` for a `tolle-field-set`. */
155
+ export declare class FieldLegendComponent implements OnChanges {
156
+ private readonly cdr;
157
+ /**
158
+ * Angular writes a bound `class` input through its styling path, which does
159
+ * not mark an OnPush component dirty — without this hook the component keeps
160
+ * rendering the class it was born with.
161
+ */
162
+ ngOnChanges(): void;
163
+ /** Type scale of the legend. @default 'legend' */
164
+ variant: FieldLegendProps['variant'];
165
+ /** Extra Tailwind classes merged onto the legend via `cn()` (last-wins). */
166
+ class: string;
167
+ get computedClass(): string;
168
+ static ɵfac: i0.ɵɵFactoryDeclaration<FieldLegendComponent, never>;
169
+ static ɵcmp: i0.ɵɵComponentDeclaration<FieldLegendComponent, "tolle-field-legend", never, { "variant": { "alias": "variant"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, ["*"], true, never>;
170
+ }
171
+ /** Divider between sections of a form. */
172
+ export declare class FieldSeparatorComponent implements OnChanges {
173
+ private readonly cdr;
174
+ /**
175
+ * Angular writes a bound `class` input through its styling path, which does
176
+ * not mark an OnPush component dirty — without this hook the component keeps
177
+ * rendering the class it was born with.
178
+ */
179
+ ngOnChanges(): void;
180
+ /** Extra Tailwind classes merged onto the separator via `cn()` (last-wins). */
181
+ class: string;
182
+ protected cn: typeof cn;
183
+ static ɵfac: i0.ɵɵFactoryDeclaration<FieldSeparatorComponent, never>;
184
+ static ɵcmp: i0.ɵɵComponentDeclaration<FieldSeparatorComponent, "tolle-field-separator", never, { "class": { "alias": "class"; "required": false; }; }, {}, never, never, true, never>;
185
+ }
186
+ /** Title for a group of fields that is not a `<legend>`. */
187
+ export declare class FieldTitleComponent implements OnChanges {
188
+ private readonly cdr;
189
+ /**
190
+ * Angular writes a bound `class` input through its styling path, which does
191
+ * not mark an OnPush component dirty — without this hook the component keeps
192
+ * rendering the class it was born with.
193
+ */
194
+ ngOnChanges(): void;
195
+ /** Extra Tailwind classes merged onto the title via `cn()` (last-wins). */
196
+ class: string;
197
+ protected cn: typeof cn;
198
+ static ɵfac: i0.ɵɵFactoryDeclaration<FieldTitleComponent, never>;
199
+ static ɵcmp: i0.ɵɵComponentDeclaration<FieldTitleComponent, "tolle-field-title", never, { "class": { "alias": "class"; "required": false; }; }, {}, never, ["*"], true, never>;
200
+ }
201
+ export {};
@@ -0,0 +1,103 @@
1
+ import { OnDestroy, OnChanges } from '@angular/core';
2
+ import { type VariantProps } from 'class-variance-authority';
3
+ import * as i0 from "@angular/core";
4
+ declare const inlineCitationVariants: (props?: ({
5
+ variant?: "default" | "muted" | "subtle" | null | undefined;
6
+ size?: "default" | "sm" | null | undefined;
7
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
+ export type InlineCitationProps = VariantProps<typeof inlineCitationVariants>;
9
+ /**
10
+ * A superscript citation marker for prose. Hovering the marker reveals the
11
+ * projected source card, positioned by the existing `tolle-hover-card`.
12
+ *
13
+ * ```html
14
+ * The model was released in March.<tolle-inline-citation [index]="1">
15
+ * <tolle-inline-citation-card
16
+ * title="Release notes"
17
+ * url="https://example.com/notes"
18
+ * snippet="Shipped on 14 March."
19
+ * ></tolle-inline-citation-card>
20
+ * </tolle-inline-citation>
21
+ * ```
22
+ * @new
23
+ */
24
+ export declare class InlineCitationComponent implements OnChanges, OnDestroy {
25
+ /**
26
+ * Angular writes a bound `class` input through its styling path, which does
27
+ * not mark an OnPush component dirty — without this hook the component keeps
28
+ * rendering the class it was born with.
29
+ */
30
+ ngOnChanges(): void;
31
+ /** Number rendered in the superscript marker. @default 1 */
32
+ index: number | string;
33
+ /** Colour treatment of the marker. @default 'default' */
34
+ variant: InlineCitationProps['variant'];
35
+ /** Text size of the marker. @default 'default' */
36
+ size: InlineCitationProps['size'];
37
+ /** Side of the marker the source card opens on. @default 'top' */
38
+ placement: 'top' | 'bottom' | 'left' | 'right';
39
+ /** Milliseconds to wait before opening the card. @default 150 */
40
+ openDelay: number;
41
+ /** Milliseconds to wait before closing the card. @default 200 */
42
+ closeDelay: number;
43
+ /** Accessible label for the marker; falls back to "Citation {index}". @default '' */
44
+ ariaLabel: string;
45
+ /** Extra Tailwind classes merged onto the marker via `cn()` (last-wins). */
46
+ class: string;
47
+ /** Extra Tailwind classes merged onto the hover card panel via `cn()` (last-wins). */
48
+ cardClass: string;
49
+ private readonly cdr;
50
+ private refreshTimer?;
51
+ get computedClass(): string;
52
+ get contentClass(): string;
53
+ /**
54
+ * `tolle-hover-card` flips its own visibility from a `setTimeout`, which never
55
+ * marks this OnPush view dirty. Re-check just after the delay elapses so the
56
+ * card actually appears (and disappears) inside an OnPush host.
57
+ */
58
+ scheduleRefresh(delay: number): void;
59
+ ngOnDestroy(): void;
60
+ static ɵfac: i0.ɵɵFactoryDeclaration<InlineCitationComponent, never>;
61
+ static ɵcmp: i0.ɵɵComponentDeclaration<InlineCitationComponent, "tolle-inline-citation", never, { "index": { "alias": "index"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "placement": { "alias": "placement"; "required": false; }; "openDelay": { "alias": "openDelay"; "required": false; }; "closeDelay": { "alias": "closeDelay"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "class": { "alias": "class"; "required": false; }; "cardClass": { "alias": "cardClass"; "required": false; }; }, {}, never, ["*"], true, never>;
62
+ }
63
+ /** The source preview shown inside a citation's hover card. */
64
+ export declare class InlineCitationCardComponent implements OnChanges {
65
+ private readonly cdr;
66
+ /**
67
+ * Angular writes a bound `class` input through its styling path, which does
68
+ * not mark an OnPush component dirty — without this hook the component keeps
69
+ * rendering the class it was born with.
70
+ */
71
+ ngOnChanges(): void;
72
+ /** Title of the cited source. @default '' */
73
+ title: string;
74
+ /** Link to the cited source. @default '' */
75
+ url: string;
76
+ /** Short excerpt from the source. @default '' */
77
+ snippet: string;
78
+ /** Extra Tailwind classes merged onto the card via `cn()` (last-wins). */
79
+ class: string;
80
+ get computedClass(): string;
81
+ /** The URL without its scheme, which reads better in a narrow card. */
82
+ get displayUrl(): string;
83
+ static ɵfac: i0.ɵɵFactoryDeclaration<InlineCitationCardComponent, never>;
84
+ static ɵcmp: i0.ɵɵComponentDeclaration<InlineCitationCardComponent, "tolle-inline-citation-card", never, { "title": { "alias": "title"; "required": false; }; "url": { "alias": "url"; "required": false; }; "snippet": { "alias": "snippet"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, ["*"], true, never>;
85
+ }
86
+ /** A pulled quote from the cited source, shown inside the citation card. */
87
+ export declare class InlineCitationQuoteComponent implements OnChanges {
88
+ private readonly cdr;
89
+ /**
90
+ * Angular writes a bound `class` input through its styling path, which does
91
+ * not mark an OnPush component dirty — without this hook the component keeps
92
+ * rendering the class it was born with.
93
+ */
94
+ ngOnChanges(): void;
95
+ /** Attribution shown beneath the quote. @default '' */
96
+ cite: string;
97
+ /** Extra Tailwind classes merged onto the quote via `cn()` (last-wins). */
98
+ class: string;
99
+ get computedClass(): string;
100
+ static ɵfac: i0.ɵɵFactoryDeclaration<InlineCitationQuoteComponent, never>;
101
+ static ɵcmp: i0.ɵɵComponentDeclaration<InlineCitationQuoteComponent, "tolle-inline-citation-quote", never, { "cite": { "alias": "cite"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, ["*"], true, never>;
102
+ }
103
+ export {};
@@ -0,0 +1,150 @@
1
+ import { EventEmitter, ChangeDetectorRef } from '@angular/core';
2
+ import { ControlValueAccessor } from '@angular/forms';
3
+ import { type VariantProps } from 'class-variance-authority';
4
+ import { cn } from './utils/cn';
5
+ import * as i0 from "@angular/core";
6
+ declare const inputGroupVariants: (props?: ({
7
+ size?: "default" | "xs" | "sm" | "lg" | null | undefined;
8
+ invalid?: boolean | null | undefined;
9
+ stacked?: boolean | null | undefined;
10
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
11
+ export type InputGroupProps = VariantProps<typeof inputGroupVariants>;
12
+ /**
13
+ * Wraps an input with leading/trailing addons — icons, text, buttons or a
14
+ * spinner — inside a single bordered control that shows one shared focus ring.
15
+ *
16
+ * Put a `tolle-input-group-input` (or `tolle-input-group-textarea`) inside,
17
+ * alongside any number of `tolle-input-group-addon` elements.
18
+ * @new
19
+ */
20
+ export declare class InputGroupComponent {
21
+ /** Height and text size of the group; match it to the input inside. @default 'default' */
22
+ size: InputGroupProps['size'];
23
+ /** Applies the destructive border and focus ring. @default false */
24
+ invalid: boolean;
25
+ /** Switches to a stacked column layout for `block-start`/`block-end` addons. @default false */
26
+ stacked: boolean;
27
+ /** Extra Tailwind classes merged onto the group via `cn()` (last-wins). */
28
+ class: string;
29
+ get computedClass(): string;
30
+ static ɵfac: i0.ɵɵFactoryDeclaration<InputGroupComponent, never>;
31
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputGroupComponent, "tolle-input-group", never, { "size": { "alias": "size"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; "stacked": { "alias": "stacked"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, ["*"], true, never>;
32
+ }
33
+ declare const inputGroupAddonVariants: (props?: ({
34
+ align?: "inline-start" | "inline-end" | "block-start" | "block-end" | null | undefined;
35
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
36
+ export type InputGroupAddonProps = VariantProps<typeof inputGroupAddonVariants>;
37
+ /**
38
+ * A slot beside (or above/below) the input for icons, text or buttons.
39
+ * Use `block-start` / `block-end` together with the group's `stacked` input.
40
+ */
41
+ export declare class InputGroupAddonComponent {
42
+ /** Where the addon sits relative to the input. @default 'inline-start' */
43
+ align: InputGroupAddonProps['align'];
44
+ /** Extra Tailwind classes merged onto the addon via `cn()` (last-wins). */
45
+ class: string;
46
+ get computedClass(): string;
47
+ static ɵfac: i0.ɵɵFactoryDeclaration<InputGroupAddonComponent, never>;
48
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputGroupAddonComponent, "tolle-input-group-addon", never, { "align": { "alias": "align"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, ["*"], true, never>;
49
+ }
50
+ declare const inputGroupButtonVariants: (props?: ({
51
+ variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
52
+ size?: "xs" | "sm" | "icon-xs" | "icon-sm" | null | undefined;
53
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
54
+ export type InputGroupButtonProps = VariantProps<typeof inputGroupButtonVariants>;
55
+ /** A compact button sized to sit inside an input group addon. */
56
+ export declare class InputGroupButtonComponent {
57
+ /** Visual style of the button. @default 'ghost' */
58
+ variant: InputGroupButtonProps['variant'];
59
+ /** Size of the button; the `icon-*` sizes render a square. @default 'icon-sm' */
60
+ size: InputGroupButtonProps['size'];
61
+ /** Native button type. @default 'button' */
62
+ type: 'button' | 'submit' | 'reset';
63
+ /** Disables the button. @default false */
64
+ disabled: boolean;
65
+ /** Accessible name — required when the button shows only an icon. @default '' */
66
+ ariaLabel: string;
67
+ /** Extra Tailwind classes merged onto the button via `cn()` (last-wins). */
68
+ class: string;
69
+ /** Emitted with the click event when the button is pressed. */
70
+ clicked: EventEmitter<MouseEvent>;
71
+ get computedClass(): string;
72
+ static ɵfac: i0.ɵɵFactoryDeclaration<InputGroupButtonComponent, never>;
73
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputGroupButtonComponent, "tolle-input-group-button", never, { "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "type": { "alias": "type"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, { "clicked": "clicked"; }, never, ["*"], true, never>;
74
+ }
75
+ /** Plain text inside an addon — a unit, prefix, or character counter. */
76
+ export declare class InputGroupTextComponent {
77
+ /** Extra Tailwind classes merged onto the text via `cn()` (last-wins). */
78
+ class: string;
79
+ protected cn: typeof cn;
80
+ static ɵfac: i0.ɵɵFactoryDeclaration<InputGroupTextComponent, never>;
81
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputGroupTextComponent, "tolle-input-group-text", never, { "class": { "alias": "class"; "required": false; }; }, {}, never, ["*"], true, never>;
82
+ }
83
+ /**
84
+ * The input inside a `tolle-input-group`. Deliberately borderless and
85
+ * unfocusable-looking — the surrounding group owns the border and focus ring.
86
+ */
87
+ export declare class InputGroupInputComponent implements ControlValueAccessor {
88
+ private cdr;
89
+ /** Id applied to the underlying `<input>`. */
90
+ id: string;
91
+ /** Native input type. @default 'text' */
92
+ type: string;
93
+ /** Placeholder text. @default '' */
94
+ placeholder: string;
95
+ /** Disables the input. @default false */
96
+ disabled: boolean;
97
+ /** Makes the input read-only. @default false */
98
+ readonly: boolean;
99
+ /** Id of the element describing this input, for `aria-describedby`. @default '' */
100
+ ariaDescribedby: string;
101
+ /** Extra Tailwind classes merged onto the input via `cn()` (last-wins). */
102
+ class: string;
103
+ /** Emitted with the new value on every keystroke. */
104
+ valueChange: EventEmitter<string>;
105
+ value: string | null;
106
+ onChange: (value: string) => void;
107
+ onTouched: () => void;
108
+ constructor(cdr: ChangeDetectorRef);
109
+ get computedClass(): string;
110
+ onInputChange(event: Event): void;
111
+ writeValue(value: string | null): void;
112
+ registerOnChange(fn: (value: string) => void): void;
113
+ registerOnTouched(fn: () => void): void;
114
+ setDisabledState(isDisabled: boolean): void;
115
+ static ɵfac: i0.ɵɵFactoryDeclaration<InputGroupInputComponent, never>;
116
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputGroupInputComponent, "tolle-input-group-input", never, { "id": { "alias": "id"; "required": false; }; "type": { "alias": "type"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "ariaDescribedby": { "alias": "ariaDescribedby"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
117
+ }
118
+ /** The textarea equivalent of `tolle-input-group-input`. */
119
+ export declare class InputGroupTextareaComponent implements ControlValueAccessor {
120
+ private cdr;
121
+ /** Id applied to the underlying `<textarea>`. */
122
+ id: string;
123
+ /** Visible rows. @default 3 */
124
+ rows: number;
125
+ /** Placeholder text. @default '' */
126
+ placeholder: string;
127
+ /** Disables the textarea. @default false */
128
+ disabled: boolean;
129
+ /** Makes the textarea read-only. @default false */
130
+ readonly: boolean;
131
+ /** Id of the element describing this textarea, for `aria-describedby`. @default '' */
132
+ ariaDescribedby: string;
133
+ /** Extra Tailwind classes merged onto the textarea via `cn()` (last-wins). */
134
+ class: string;
135
+ /** Emitted with the new value on every keystroke. */
136
+ valueChange: EventEmitter<string>;
137
+ value: string | null;
138
+ onChange: (value: string) => void;
139
+ onTouched: () => void;
140
+ constructor(cdr: ChangeDetectorRef);
141
+ get computedClass(): string;
142
+ onInputChange(event: Event): void;
143
+ writeValue(value: string | null): void;
144
+ registerOnChange(fn: (value: string) => void): void;
145
+ registerOnTouched(fn: () => void): void;
146
+ setDisabledState(isDisabled: boolean): void;
147
+ static ɵfac: i0.ɵɵFactoryDeclaration<InputGroupTextareaComponent, never>;
148
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputGroupTextareaComponent, "tolle-input-group-textarea", never, { "id": { "alias": "id"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "ariaDescribedby": { "alias": "ariaDescribedby"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
149
+ }
150
+ export {};