@tolle_/tolle-ui 18.2.29 → 18.3.0

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 (294) 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 +12 -12
  4. package/esm2022/lib/alert-dialog.component.mjs +82 -64
  5. package/esm2022/lib/alert-dialog.service.mjs +38 -6
  6. package/esm2022/lib/alert.component.mjs +5 -11
  7. package/esm2022/lib/aspect-ratio.component.mjs +119 -0
  8. package/esm2022/lib/attachment.component.mjs +334 -0
  9. package/esm2022/lib/avatar-fallback.component.mjs +3 -3
  10. package/esm2022/lib/avatar.component.mjs +4 -9
  11. package/esm2022/lib/badge.component.mjs +4 -9
  12. package/esm2022/lib/breadcrumb-item.component.mjs +3 -3
  13. package/esm2022/lib/breadcrumb-link.component.mjs +3 -3
  14. package/esm2022/lib/breadcrumb-separator.component.mjs +3 -3
  15. package/esm2022/lib/breadcrumb.component.mjs +3 -3
  16. package/esm2022/lib/bubble.component.mjs +301 -0
  17. package/esm2022/lib/button.component.mjs +5 -11
  18. package/esm2022/lib/calendar.component.mjs +5 -11
  19. package/esm2022/lib/card.component.mjs +14 -43
  20. package/esm2022/lib/carousel/carousel.component.mjs +5 -12
  21. package/esm2022/lib/chain-of-thought.component.mjs +380 -0
  22. package/esm2022/lib/chart-pie.component.mjs +386 -0
  23. package/esm2022/lib/chart.component.mjs +1146 -0
  24. package/esm2022/lib/chart.service.mjs +555 -0
  25. package/esm2022/lib/checkbox.component.mjs +5 -11
  26. package/esm2022/lib/checkpoint.component.mjs +134 -0
  27. package/esm2022/lib/collapsible.component.mjs +4 -11
  28. package/esm2022/lib/combobox.component.mjs +372 -0
  29. package/esm2022/lib/command-dialog.component.mjs +164 -0
  30. package/esm2022/lib/command.component.mjs +514 -0
  31. package/esm2022/lib/command.service.mjs +130 -0
  32. package/esm2022/lib/confirmation.component.mjs +219 -0
  33. package/esm2022/lib/context-menu-trigger.directive.mjs +36 -0
  34. package/esm2022/lib/context-menu.component.mjs +460 -0
  35. package/esm2022/lib/context-menu.service.mjs +125 -0
  36. package/esm2022/lib/context.component.mjs +377 -0
  37. package/esm2022/lib/conversation.component.mjs +442 -0
  38. package/esm2022/lib/country-selector.component.mjs +5 -11
  39. package/esm2022/lib/data-table.component.mjs +59 -12
  40. package/esm2022/lib/date-picker.component.mjs +251 -198
  41. package/esm2022/lib/date-range-picker.component.mjs +224 -116
  42. package/esm2022/lib/date-time-picker.component.mjs +506 -0
  43. package/esm2022/lib/direction.component.mjs +79 -0
  44. package/esm2022/lib/dropdown-item.component.mjs +3 -3
  45. package/esm2022/lib/dropdown-label.component.mjs +3 -3
  46. package/esm2022/lib/dropdown-menu.component.mjs +3 -3
  47. package/esm2022/lib/dropdown-separator.component.mjs +3 -3
  48. package/esm2022/lib/dropdown-trigger.directive.mjs +6 -4
  49. package/esm2022/lib/empty-state.component.mjs +4 -9
  50. package/esm2022/lib/field.component.mjs +394 -0
  51. package/esm2022/lib/hover-card.component.mjs +6 -16
  52. package/esm2022/lib/inline-citation.component.mjs +263 -0
  53. package/esm2022/lib/input-group.component.mjs +418 -0
  54. package/esm2022/lib/input.component.mjs +5 -11
  55. package/esm2022/lib/item.component.mjs +243 -0
  56. package/esm2022/lib/kbd.component.mjs +82 -0
  57. package/esm2022/lib/label.component.mjs +4 -9
  58. package/esm2022/lib/marker.component.mjs +135 -0
  59. package/esm2022/lib/masked-input.component.mjs +5 -11
  60. package/esm2022/lib/menubar.component.mjs +683 -0
  61. package/esm2022/lib/message-scroller.component.mjs +353 -0
  62. package/esm2022/lib/message-scroller.service.mjs +157 -0
  63. package/esm2022/lib/message.component.mjs +228 -0
  64. package/esm2022/lib/modal-ref.mjs +36 -7
  65. package/esm2022/lib/modal.component.mjs +42 -28
  66. package/esm2022/lib/modal.mjs +2 -29
  67. package/esm2022/lib/modal.service.mjs +26 -4
  68. package/esm2022/lib/model-selector.component.mjs +310 -0
  69. package/esm2022/lib/multi-select.component.mjs +155 -72
  70. package/esm2022/lib/native-select.component.mjs +201 -0
  71. package/esm2022/lib/navigation-menu.component.mjs +642 -0
  72. package/esm2022/lib/otp-group.component.mjs +3 -3
  73. package/esm2022/lib/otp-slot.component.mjs +4 -9
  74. package/esm2022/lib/otp.component.mjs +5 -11
  75. package/esm2022/lib/pagination.component.mjs +7 -10
  76. package/esm2022/lib/plan.component.mjs +335 -0
  77. package/esm2022/lib/popover-content.component.mjs +4 -9
  78. package/esm2022/lib/popover.component.mjs +15 -13
  79. package/esm2022/lib/progress.component.mjs +4 -9
  80. package/esm2022/lib/prompt-input.component.mjs +526 -0
  81. package/esm2022/lib/queue.component.mjs +280 -0
  82. package/esm2022/lib/radio-group.component.mjs +6 -13
  83. package/esm2022/lib/radio-item.component.mjs +4 -9
  84. package/esm2022/lib/range-calendar.component.mjs +5 -11
  85. package/esm2022/lib/reasoning.component.mjs +335 -0
  86. package/esm2022/lib/resizable-panel.component.mjs +5 -5
  87. package/esm2022/lib/resizable.component.mjs +219 -0
  88. package/esm2022/lib/segment.component.mjs +19 -9
  89. package/esm2022/lib/select-group.component.mjs +4 -8
  90. package/esm2022/lib/select-item.component.mjs +4 -9
  91. package/esm2022/lib/select-separator.component.mjs +4 -8
  92. package/esm2022/lib/select.component.mjs +133 -49
  93. package/esm2022/lib/separator.component.mjs +4 -9
  94. package/esm2022/lib/sheet.component.mjs +38 -56
  95. package/esm2022/lib/shimmer.component.mjs +84 -0
  96. package/esm2022/lib/sidebar.component.mjs +11 -1
  97. package/esm2022/lib/skeleton.component.mjs +4 -9
  98. package/esm2022/lib/sources.component.mjs +452 -0
  99. package/esm2022/lib/spinner.component.mjs +68 -0
  100. package/esm2022/lib/suggestion.component.mjs +207 -0
  101. package/esm2022/lib/switch.component.mjs +5 -11
  102. package/esm2022/lib/table.component.mjs +213 -0
  103. package/esm2022/lib/tabs.component.mjs +4 -11
  104. package/esm2022/lib/tag-input.component.mjs +5 -11
  105. package/esm2022/lib/task.component.mjs +359 -0
  106. package/esm2022/lib/textarea.component.mjs +5 -11
  107. package/esm2022/lib/theme.service.mjs +17 -6
  108. package/esm2022/lib/time-picker.component.mjs +923 -0
  109. package/esm2022/lib/toast.service.mjs +3 -2
  110. package/esm2022/lib/toaster.component.mjs +76 -39
  111. package/esm2022/lib/toggle-group.component.mjs +4 -9
  112. package/esm2022/lib/toggle.component.mjs +5 -11
  113. package/esm2022/lib/tool.component.mjs +462 -0
  114. package/esm2022/lib/typography.component.mjs +83 -0
  115. package/esm2022/lib/utils/color.mjs +140 -19
  116. package/esm2022/public-api.mjs +61 -1
  117. package/fesm2022/tolle-ui.mjs +16642 -1105
  118. package/fesm2022/tolle-ui.mjs.map +1 -1
  119. package/lib/alert-dialog-dynamic.component.d.ts +5 -0
  120. package/lib/alert-dialog.component.d.ts +23 -2
  121. package/lib/aspect-ratio.component.d.ts +20 -0
  122. package/lib/attachment.component.d.ts +101 -0
  123. package/lib/bubble.component.d.ts +112 -0
  124. package/lib/chain-of-thought.component.d.ts +166 -0
  125. package/lib/chart-pie.component.d.ts +108 -0
  126. package/lib/chart.component.d.ts +369 -0
  127. package/lib/chart.service.d.ts +222 -0
  128. package/lib/checkpoint.component.d.ts +51 -0
  129. package/lib/combobox.component.d.ts +90 -0
  130. package/lib/command-dialog.component.d.ts +53 -0
  131. package/lib/command.component.d.ts +189 -0
  132. package/lib/command.service.d.ts +67 -0
  133. package/lib/confirmation.component.d.ts +70 -0
  134. package/lib/context-menu-trigger.directive.d.ts +12 -0
  135. package/lib/context-menu.component.d.ts +41 -0
  136. package/lib/context-menu.service.d.ts +38 -0
  137. package/lib/context.component.d.ts +134 -0
  138. package/lib/conversation.component.d.ts +165 -0
  139. package/lib/data-table.component.d.ts +26 -1
  140. package/lib/date-picker.component.d.ts +72 -11
  141. package/lib/date-range-picker.component.d.ts +63 -6
  142. package/lib/date-time-picker.component.d.ts +119 -0
  143. package/lib/direction.component.d.ts +45 -0
  144. package/lib/field.component.d.ts +201 -0
  145. package/lib/inline-citation.component.d.ts +103 -0
  146. package/lib/input-group.component.d.ts +150 -0
  147. package/lib/item.component.d.ts +154 -0
  148. package/lib/kbd.component.d.ts +50 -0
  149. package/lib/marker.component.d.ts +58 -0
  150. package/lib/menubar.component.d.ts +247 -0
  151. package/lib/message-scroller.component.d.ts +159 -0
  152. package/lib/message-scroller.service.d.ts +73 -0
  153. package/lib/message.component.d.ts +128 -0
  154. package/lib/modal-ref.d.ts +6 -1
  155. package/lib/modal.component.d.ts +7 -4
  156. package/lib/modal.d.ts +9 -3
  157. package/lib/model-selector.component.d.ts +103 -0
  158. package/lib/multi-select.component.d.ts +66 -14
  159. package/lib/native-select.component.d.ts +57 -0
  160. package/lib/navigation-menu.component.d.ts +230 -0
  161. package/lib/plan.component.d.ts +120 -0
  162. package/lib/popover.component.d.ts +1 -0
  163. package/lib/prompt-input.component.d.ts +194 -0
  164. package/lib/queue.component.d.ts +106 -0
  165. package/lib/reasoning.component.d.ts +127 -0
  166. package/lib/resizable.component.d.ts +43 -0
  167. package/lib/segment.component.d.ts +13 -3
  168. package/lib/select.component.d.ts +37 -5
  169. package/lib/sheet.component.d.ts +3 -0
  170. package/lib/shimmer.component.d.ts +38 -0
  171. package/lib/sidebar.component.d.ts +2 -0
  172. package/lib/sources.component.d.ts +156 -0
  173. package/lib/spinner.component.d.ts +29 -0
  174. package/lib/suggestion.component.d.ts +96 -0
  175. package/lib/table.component.d.ts +106 -0
  176. package/lib/task.component.d.ts +151 -0
  177. package/lib/theme.service.d.ts +9 -0
  178. package/lib/time-picker.component.d.ts +243 -0
  179. package/lib/toast.service.d.ts +3 -1
  180. package/lib/toaster.component.d.ts +26 -9
  181. package/lib/tool.component.d.ts +158 -0
  182. package/lib/typography.component.d.ts +32 -0
  183. package/lib/utils/color.d.ts +19 -5
  184. package/package.json +3 -2
  185. package/preset.js +7 -1
  186. package/public-api.d.ts +50 -0
  187. package/registry/docs-content.json +8480 -1542
  188. package/registry/llms-full.txt +2679 -319
  189. package/registry/llms.txt +43 -4
  190. package/registry/manifest.json +9090 -1742
  191. package/registry/r/accordion-item.json +1 -1
  192. package/registry/r/accordion.json +1 -1
  193. package/registry/r/alert-dialog-dynamic.json +1 -1
  194. package/registry/r/alert-dialog.json +1 -1
  195. package/registry/r/alert.json +1 -1
  196. package/registry/r/attachment.json +23 -0
  197. package/registry/r/avatar-fallback.json +1 -1
  198. package/registry/r/avatar.json +1 -1
  199. package/registry/r/badge.json +1 -1
  200. package/registry/r/breadcrumb-item.json +1 -1
  201. package/registry/r/breadcrumb-link.json +1 -1
  202. package/registry/r/breadcrumb-separator.json +1 -1
  203. package/registry/r/breadcrumb.json +1 -1
  204. package/registry/r/bubble.json +23 -0
  205. package/registry/r/button.json +1 -1
  206. package/registry/r/calendar.json +1 -1
  207. package/registry/r/card.json +1 -1
  208. package/registry/r/carousel.json +1 -1
  209. package/registry/r/chain-of-thought.json +23 -0
  210. package/registry/r/chart-pie.json +30 -0
  211. package/registry/r/chart.json +28 -0
  212. package/registry/r/checkbox.json +1 -1
  213. package/registry/r/checkpoint.json +23 -0
  214. package/registry/r/collapsible.json +1 -1
  215. package/registry/r/combobox.json +31 -0
  216. package/registry/r/command-dialog.json +21 -0
  217. package/registry/r/command.json +26 -0
  218. package/registry/r/confirmation.json +23 -0
  219. package/registry/r/context-menu-trigger.json +1 -1
  220. package/registry/r/context-menu.json +1 -1
  221. package/registry/r/context.json +26 -0
  222. package/registry/r/conversation.json +23 -0
  223. package/registry/r/country-selector.json +1 -1
  224. package/registry/r/data-table.json +1 -1
  225. package/registry/r/date-picker.json +4 -4
  226. package/registry/r/date-range-picker.json +3 -3
  227. package/registry/r/date-time-picker.json +28 -0
  228. package/registry/r/direction.json +16 -0
  229. package/registry/r/dropdown-item.json +1 -1
  230. package/registry/r/dropdown-label.json +1 -1
  231. package/registry/r/dropdown-menu.json +1 -1
  232. package/registry/r/dropdown-separator.json +1 -1
  233. package/registry/r/dropdown-trigger.json +1 -1
  234. package/registry/r/empty-state.json +1 -1
  235. package/registry/r/field.json +23 -0
  236. package/registry/r/hover-card.json +1 -1
  237. package/registry/r/inline-citation.json +26 -0
  238. package/registry/r/input-group.json +23 -0
  239. package/registry/r/input.json +1 -1
  240. package/registry/r/item.json +23 -0
  241. package/registry/r/kbd.json +23 -0
  242. package/registry/r/label.json +1 -1
  243. package/registry/r/marker.json +23 -0
  244. package/registry/r/masked-input.json +1 -1
  245. package/registry/r/menubar.json +24 -0
  246. package/registry/r/message-scroller.json +26 -0
  247. package/registry/r/message.json +23 -0
  248. package/registry/r/modal.json +3 -3
  249. package/registry/r/model-selector.json +32 -0
  250. package/registry/r/multi-select.json +2 -2
  251. package/registry/r/native-select.json +23 -0
  252. package/registry/r/navigation-menu.json +24 -0
  253. package/registry/r/otp-group.json +1 -1
  254. package/registry/r/otp-slot.json +1 -1
  255. package/registry/r/otp.json +1 -1
  256. package/registry/r/pagination.json +3 -2
  257. package/registry/r/plan.json +23 -0
  258. package/registry/r/popover-content.json +1 -1
  259. package/registry/r/popover.json +1 -1
  260. package/registry/r/progress.json +1 -1
  261. package/registry/r/prompt-input.json +23 -0
  262. package/registry/r/queue.json +23 -0
  263. package/registry/r/radio-group.json +1 -1
  264. package/registry/r/radio-item.json +1 -1
  265. package/registry/r/range-calendar.json +1 -1
  266. package/registry/r/reasoning.json +23 -0
  267. package/registry/r/resizable-panel.json +1 -1
  268. package/registry/r/segment.json +1 -1
  269. package/registry/r/select-group.json +1 -1
  270. package/registry/r/select-item.json +1 -1
  271. package/registry/r/select-separator.json +1 -1
  272. package/registry/r/select.json +4 -3
  273. package/registry/r/separator.json +1 -1
  274. package/registry/r/sheet.json +1 -1
  275. package/registry/r/shimmer.json +23 -0
  276. package/registry/r/sidebar.json +1 -1
  277. package/registry/r/skeleton.json +1 -1
  278. package/registry/r/sources.json +23 -0
  279. package/registry/r/spinner.json +23 -0
  280. package/registry/r/suggestion.json +23 -0
  281. package/registry/r/switch.json +1 -1
  282. package/registry/r/table.json +21 -0
  283. package/registry/r/tabs.json +1 -1
  284. package/registry/r/tag-input.json +1 -1
  285. package/registry/r/task.json +23 -0
  286. package/registry/r/textarea.json +1 -1
  287. package/registry/r/time-picker.json +24 -0
  288. package/registry/r/toaster.json +2 -2
  289. package/registry/r/toggle-group.json +1 -1
  290. package/registry/r/toggle.json +1 -1
  291. package/registry/r/tool.json +23 -0
  292. package/registry/r/typography.json +23 -0
  293. package/registry/registry.json +915 -22
  294. package/theme.css +121 -8
@@ -0,0 +1,156 @@
1
+ import { EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
2
+ import { type VariantProps } from 'class-variance-authority';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Coordinates a `tolle-sources` with its trigger, content and sources.
6
+ *
7
+ * The trigger has to report how many sources were projected into a sibling
8
+ * component, so every `tolle-source` registers here and the trigger renders
9
+ * from the resulting count.
10
+ *
11
+ * Provided on `SourcesComponent`, so each citation list gets its own instance.
12
+ */
13
+ export declare class SourcesService {
14
+ private readonly openSource;
15
+ /** Emits whether the citation list is expanded. */
16
+ readonly open$: import("rxjs").Observable<boolean>;
17
+ private readonly idsSource;
18
+ /** Emits the ids of the registered sources, in registration (DOM) order. */
19
+ readonly ids$: import("rxjs").Observable<string[]>;
20
+ /** True while the citation list is expanded. */
21
+ get open(): boolean;
22
+ /** How many sources are currently registered. */
23
+ get count(): number;
24
+ setOpen(value: boolean): void;
25
+ toggle(): void;
26
+ register(id: string): void;
27
+ unregister(id: string): void;
28
+ /** Zero-based position of a source, or -1 when it is not registered. */
29
+ indexOf(id: string): number;
30
+ static ɵfac: i0.ɵɵFactoryDeclaration<SourcesService, never>;
31
+ static ɵprov: i0.ɵɵInjectableDeclaration<SourcesService>;
32
+ }
33
+ declare const sourcesVariants: (props?: ({
34
+ variant?: "default" | "muted" | "card" | null | undefined;
35
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
36
+ export type SourcesProps = VariantProps<typeof sourcesVariants>;
37
+ /**
38
+ * A collapsible list of the citations behind a response.
39
+ *
40
+ * Compose it from `tolle-sources-trigger`, `tolle-sources-content` and one
41
+ * `tolle-source` per citation — the trigger counts the sources for you.
42
+ * @new
43
+ */
44
+ export declare class SourcesComponent implements OnInit, OnChanges, OnDestroy {
45
+ /** Whether the citation list is expanded. @default false */
46
+ open: boolean;
47
+ /** Visual treatment of the list container. @default 'default' */
48
+ variant: SourcesProps['variant'];
49
+ /** Extra Tailwind classes merged onto the list via `cn()` (last-wins). */
50
+ class: string;
51
+ /** Emitted with the new state whenever the list is expanded or collapsed. */
52
+ openChange: EventEmitter<boolean>;
53
+ private readonly service;
54
+ private readonly cdr;
55
+ private readonly subscriptions;
56
+ /** True while an `open` input is being pushed into the service. */
57
+ private applyingInput;
58
+ ngOnInit(): void;
59
+ ngOnChanges(changes: SimpleChanges): void;
60
+ private applyInput;
61
+ ngOnDestroy(): void;
62
+ get computedClass(): string;
63
+ static ɵfac: i0.ɵɵFactoryDeclaration<SourcesComponent, never>;
64
+ static ɵcmp: i0.ɵɵComponentDeclaration<SourcesComponent, "tolle-sources", never, { "open": { "alias": "open"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, { "openChange": "openChange"; }, never, ["*"], true, never>;
65
+ }
66
+ /** Toggle for a `tolle-sources`, labelled with how many sources there are. */
67
+ export declare class SourcesTriggerComponent implements OnChanges, OnInit, OnDestroy {
68
+ /**
69
+ * Angular writes a bound `class` input through its styling path, which does
70
+ * not mark an OnPush component dirty — without this hook the component keeps
71
+ * rendering the class it was born with.
72
+ */
73
+ ngOnChanges(): void;
74
+ /** Overrides the counted number of sources. @default null */
75
+ count: number | null;
76
+ /** Extra Tailwind classes merged onto the trigger via `cn()` (last-wins). */
77
+ class: string;
78
+ private readonly service;
79
+ private readonly cdr;
80
+ private readonly subscriptions;
81
+ open: boolean;
82
+ registered: number;
83
+ ngOnInit(): void;
84
+ ngOnDestroy(): void;
85
+ /** How many sources the trigger reports. */
86
+ get total(): number;
87
+ get label(): string;
88
+ get computedClass(): string;
89
+ onToggle(): void;
90
+ static ɵfac: i0.ɵɵFactoryDeclaration<SourcesTriggerComponent, never>;
91
+ static ɵcmp: i0.ɵɵComponentDeclaration<SourcesTriggerComponent, "tolle-sources-trigger", never, { "count": { "alias": "count"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, ["*"], true, never>;
92
+ }
93
+ /**
94
+ * Holds the `tolle-source` entries of a `tolle-sources`.
95
+ *
96
+ * Stays in the DOM while collapsed — hidden and `inert` rather than removed —
97
+ * so the sources inside it stay registered and the trigger's count is right
98
+ * before the list has ever been opened.
99
+ */
100
+ export declare class SourcesContentComponent implements OnChanges, OnInit, OnDestroy {
101
+ /**
102
+ * Angular writes a bound `class` input through its styling path, which does
103
+ * not mark an OnPush component dirty — without this hook the component keeps
104
+ * rendering the class it was born with.
105
+ */
106
+ ngOnChanges(): void;
107
+ /** Extra Tailwind classes merged onto the content via `cn()` (last-wins). */
108
+ class: string;
109
+ private readonly service;
110
+ private readonly cdr;
111
+ private readonly subscriptions;
112
+ open: boolean;
113
+ ngOnInit(): void;
114
+ ngOnDestroy(): void;
115
+ get computedClass(): string;
116
+ static ɵfac: i0.ɵɵFactoryDeclaration<SourcesContentComponent, never>;
117
+ static ɵcmp: i0.ɵɵComponentDeclaration<SourcesContentComponent, "tolle-sources-content", never, { "class": { "alias": "class"; "required": false; }; }, {}, never, ["*"], true, never>;
118
+ }
119
+ declare const sourceVariants: (props?: ({
120
+ size?: "default" | "sm" | null | undefined;
121
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
122
+ export type SourceProps = VariantProps<typeof sourceVariants>;
123
+ /** A single citation inside a `tolle-sources-content`. */
124
+ export declare class SourceComponent implements OnChanges, OnInit, OnDestroy {
125
+ /**
126
+ * Angular writes a bound `class` input through its styling path, which does
127
+ * not mark an OnPush component dirty — without this hook the component keeps
128
+ * rendering the class it was born with.
129
+ */
130
+ ngOnChanges(): void;
131
+ /** URL the citation points at. @default '' */
132
+ href: string;
133
+ /** Human-readable title; falls back to the href when empty. @default '' */
134
+ title: string;
135
+ /** URL of a favicon shown instead of the numbered chip. @default '' */
136
+ favicon: string;
137
+ /** Overrides the auto-numbered position chip. @default null */
138
+ index: number | null;
139
+ /** Text scale of the citation. @default 'default' */
140
+ size: SourceProps['size'];
141
+ /** Extra Tailwind classes merged onto the citation via `cn()` (last-wins). */
142
+ class: string;
143
+ private readonly service;
144
+ private readonly cdr;
145
+ private readonly subscriptions;
146
+ private readonly id;
147
+ order: number;
148
+ ngOnInit(): void;
149
+ ngOnDestroy(): void;
150
+ /** One-based number shown in the chip. */
151
+ get position(): number;
152
+ get computedClass(): string;
153
+ static ɵfac: i0.ɵɵFactoryDeclaration<SourceComponent, never>;
154
+ static ɵcmp: i0.ɵɵComponentDeclaration<SourceComponent, "tolle-source", never, { "href": { "alias": "href"; "required": false; }; "title": { "alias": "title"; "required": false; }; "favicon": { "alias": "favicon"; "required": false; }; "index": { "alias": "index"; "required": false; }; "size": { "alias": "size"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, ["*"], true, never>;
155
+ }
156
+ export {};
@@ -0,0 +1,29 @@
1
+ import { OnChanges } from '@angular/core';
2
+ import { type VariantProps } from 'class-variance-authority';
3
+ import * as i0 from "@angular/core";
4
+ declare const spinnerVariants: (props?: ({
5
+ size?: "default" | "xs" | "sm" | "lg" | "xl" | null | undefined;
6
+ variant?: "default" | "destructive" | "muted" | "primary" | null | undefined;
7
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
+ export type SpinnerProps = VariantProps<typeof spinnerVariants>;
9
+ /**
10
+ * An indeterminate loading indicator. Renders as `role="status"` with a
11
+ * visually-hidden label so screen readers announce the loading state.
12
+ * @new
13
+ */
14
+ export declare class SpinnerComponent implements OnChanges {
15
+ private readonly cdr;
16
+ ngOnChanges(): void;
17
+ /** Diameter of the spinner. @default 'default' */
18
+ size: SpinnerProps['size'];
19
+ /** Colour of the spinner, inherited from the theme tokens. @default 'default' */
20
+ variant: SpinnerProps['variant'];
21
+ /** Accessible label announced while the spinner is visible. @default 'Loading' */
22
+ label: string;
23
+ /** Extra Tailwind classes merged onto the spinner via `cn()` (last-wins). */
24
+ class: string;
25
+ get computedClass(): string;
26
+ static ɵfac: i0.ɵɵFactoryDeclaration<SpinnerComponent, never>;
27
+ static ɵcmp: i0.ɵɵComponentDeclaration<SpinnerComponent, "tolle-spinner", never, { "size": { "alias": "size"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "label": { "alias": "label"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, never, true, never>;
28
+ }
29
+ export {};
@@ -0,0 +1,96 @@
1
+ import { EventEmitter, OnDestroy, OnInit, OnChanges } from '@angular/core';
2
+ import { type VariantProps } from 'class-variance-authority';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Relays a chosen suggestion from a `tolle-suggestion` up to the
6
+ * `tolle-suggestions` row that contains it, so consumers can listen in one
7
+ * place instead of binding every pill.
8
+ *
9
+ * Provided on `SuggestionsComponent`; injected optionally, since a pill is
10
+ * perfectly usable on its own.
11
+ */
12
+ export declare class SuggestionsService {
13
+ private readonly selectedSource;
14
+ /** Emits the value of whichever suggestion the user picked. */
15
+ readonly selected$: import("rxjs").Observable<string>;
16
+ select(value: string): void;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<SuggestionsService, never>;
18
+ static ɵprov: i0.ɵɵInjectableDeclaration<SuggestionsService>;
19
+ }
20
+ declare const suggestionsVariants: (props?: ({
21
+ gap?: "default" | "sm" | "lg" | null | undefined;
22
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
23
+ export type SuggestionsProps = VariantProps<typeof suggestionsVariants>;
24
+ /**
25
+ * A horizontally scrollable row of suggested follow-up prompts.
26
+ *
27
+ * Fill it with `tolle-suggestion` pills and listen to this component's
28
+ * `selected` output to react to any of them.
29
+ */
30
+ export declare class SuggestionsComponent implements OnChanges, OnInit, OnDestroy {
31
+ private readonly cdr;
32
+ /**
33
+ * Angular writes a bound `class` input through its styling path, which does
34
+ * not mark an OnPush component dirty — without this hook the component keeps
35
+ * rendering the class it was born with.
36
+ */
37
+ ngOnChanges(): void;
38
+ /** Spacing between the pills. @default 'default' */
39
+ gap: SuggestionsProps['gap'];
40
+ /** Accessible name for the row. @default 'Suggestions' */
41
+ ariaLabel: string;
42
+ /** Extra Tailwind classes merged onto the row via `cn()` (last-wins). */
43
+ class: string;
44
+ /** Emitted with the `value` of whichever suggestion in the row was picked. */
45
+ selected: EventEmitter<string>;
46
+ private readonly service;
47
+ private readonly subscriptions;
48
+ ngOnInit(): void;
49
+ ngOnDestroy(): void;
50
+ get computedClass(): string;
51
+ static ɵfac: i0.ɵɵFactoryDeclaration<SuggestionsComponent, never>;
52
+ static ɵcmp: i0.ɵɵComponentDeclaration<SuggestionsComponent, "tolle-suggestions", never, { "gap": { "alias": "gap"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, { "selected": "selected"; }, never, ["*"], true, never>;
53
+ }
54
+ declare const suggestionVariants: (props?: ({
55
+ variant?: "outline" | "secondary" | "ghost" | null | undefined;
56
+ size?: "default" | "sm" | "lg" | null | undefined;
57
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
58
+ export type SuggestionProps = VariantProps<typeof suggestionVariants>;
59
+ /**
60
+ * A single suggested follow-up prompt, rendered as a pill button.
61
+ *
62
+ * Projected content is the label; `value` is what gets emitted when it is
63
+ * picked, so the two can differ.
64
+ * @new
65
+ */
66
+ export declare class SuggestionComponent implements OnChanges {
67
+ private readonly cdr;
68
+ /**
69
+ * Angular writes a bound `class` input through its styling path, which does
70
+ * not mark an OnPush component dirty — without this hook the component keeps
71
+ * rendering the class it was born with.
72
+ */
73
+ ngOnChanges(): void;
74
+ /** Value emitted when the pill is picked. @default '' */
75
+ value: string;
76
+ /** Visual style of the pill. @default 'outline' */
77
+ variant: SuggestionProps['variant'];
78
+ /** Size of the pill. @default 'default' */
79
+ size: SuggestionProps['size'];
80
+ /** Remixicon class shown before the label. @default '' */
81
+ icon: string;
82
+ /** Blocks interaction with the pill. @default false */
83
+ disabled: boolean;
84
+ /** Accessible name, when the projected label is not descriptive enough. @default '' */
85
+ ariaLabel: string;
86
+ /** Extra Tailwind classes merged onto the pill via `cn()` (last-wins). */
87
+ class: string;
88
+ /** Emitted with this pill's `value` when it is picked. */
89
+ selected: EventEmitter<string>;
90
+ private readonly parent;
91
+ get computedClass(): string;
92
+ onClick(): void;
93
+ static ɵfac: i0.ɵɵFactoryDeclaration<SuggestionComponent, never>;
94
+ static ɵcmp: i0.ɵɵComponentDeclaration<SuggestionComponent, "tolle-suggestion", never, { "value": { "alias": "value"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, { "selected": "selected"; }, never, ["*"], true, never>;
95
+ }
96
+ export {};
@@ -0,0 +1,106 @@
1
+ import { OnChanges } from '@angular/core';
2
+ import { cn } from './utils/cn';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Unstyled table primitives you compose yourself, for when you need full
6
+ * control over the markup.
7
+ *
8
+ * For sorting, paging, selection and column definitions out of the box, use
9
+ * `tolle-data-table` instead — this is the lower-level building block.
10
+ *
11
+ * Everything below the `<table>` is a **directive on the native element**
12
+ * (`<thead tolleTableHeader>`, `<tr tolleTableRow>`, …) rather than a custom
13
+ * element. A `<tolle-table-row>` wrapper would sit between `<tbody>` and `<tr>`
14
+ * and break the CSS table layout, so the directives style the real elements in
15
+ * place and add no DOM of their own.
16
+ *
17
+ * ```html
18
+ * <tolle-table>
19
+ * <thead tolleTableHeader>
20
+ * <tr tolleTableRow><th tolleTableHead>Name</th></tr>
21
+ * </thead>
22
+ * <tbody tolleTableBody>
23
+ * <tr tolleTableRow><td tolleTableCell>Ada</td></tr>
24
+ * </tbody>
25
+ * </tolle-table>
26
+ * ```
27
+ * @new
28
+ */
29
+ export declare class TableComponent implements OnChanges {
30
+ private readonly cdr;
31
+ /**
32
+ * Angular writes a bound `class` input through its styling path, which does
33
+ * not mark an OnPush component dirty — without this hook the component keeps
34
+ * rendering the class it was born with.
35
+ */
36
+ ngOnChanges(): void;
37
+ /** Extra Tailwind classes merged onto the scrolling container via `cn()` (last-wins). */
38
+ containerClass: string;
39
+ /** Extra Tailwind classes merged onto the `<table>` via `cn()` (last-wins). */
40
+ class: string;
41
+ protected cn: typeof cn;
42
+ static ɵfac: i0.ɵɵFactoryDeclaration<TableComponent, never>;
43
+ static ɵcmp: i0.ɵɵComponentDeclaration<TableComponent, "tolle-table", never, { "containerClass": { "alias": "containerClass"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, ["*"], true, never>;
44
+ }
45
+ /** Styles a native `<thead>`. */
46
+ export declare class TableHeaderDirective {
47
+ /** Extra Tailwind classes merged onto the `<thead>` via `cn()` (last-wins). */
48
+ class: string;
49
+ protected cn: typeof cn;
50
+ static ɵfac: i0.ɵɵFactoryDeclaration<TableHeaderDirective, never>;
51
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TableHeaderDirective, "[tolleTableHeader]", never, { "class": { "alias": "class"; "required": false; }; }, {}, never, never, true, never>;
52
+ }
53
+ /** Styles a native `<tbody>`. */
54
+ export declare class TableBodyDirective {
55
+ /** Extra Tailwind classes merged onto the `<tbody>` via `cn()` (last-wins). */
56
+ class: string;
57
+ protected cn: typeof cn;
58
+ static ɵfac: i0.ɵɵFactoryDeclaration<TableBodyDirective, never>;
59
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TableBodyDirective, "[tolleTableBody]", never, { "class": { "alias": "class"; "required": false; }; }, {}, never, never, true, never>;
60
+ }
61
+ /** Styles a native `<tfoot>` for summary or total rows. */
62
+ export declare class TableFooterDirective {
63
+ /** Extra Tailwind classes merged onto the `<tfoot>` via `cn()` (last-wins). */
64
+ class: string;
65
+ protected cn: typeof cn;
66
+ static ɵfac: i0.ɵɵFactoryDeclaration<TableFooterDirective, never>;
67
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TableFooterDirective, "[tolleTableFooter]", never, { "class": { "alias": "class"; "required": false; }; }, {}, never, never, true, never>;
68
+ }
69
+ /** Styles a native `<tr>`, with an optional selected state. */
70
+ export declare class TableRowDirective {
71
+ /** Applies the selected background and sets `data-state="selected"`. @default false */
72
+ selected: boolean;
73
+ /** Extra Tailwind classes merged onto the `<tr>` via `cn()` (last-wins). */
74
+ class: string;
75
+ protected cn: typeof cn;
76
+ static ɵfac: i0.ɵɵFactoryDeclaration<TableRowDirective, never>;
77
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TableRowDirective, "[tolleTableRow]", never, { "selected": { "alias": "selected"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, never, true, never>;
78
+ }
79
+ /** Styles a native `<th>` header cell. */
80
+ export declare class TableHeadDirective {
81
+ /** Scope of the header cell for assistive tech. @default 'col' */
82
+ scope: 'col' | 'row' | 'colgroup' | 'rowgroup';
83
+ /** Current sort direction, surfaced as `aria-sort`. @default null */
84
+ sort: 'ascending' | 'descending' | 'none' | null;
85
+ /** Extra Tailwind classes merged onto the `<th>` via `cn()` (last-wins). */
86
+ class: string;
87
+ protected cn: typeof cn;
88
+ static ɵfac: i0.ɵɵFactoryDeclaration<TableHeadDirective, never>;
89
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TableHeadDirective, "[tolleTableHead]", never, { "scope": { "alias": "scope"; "required": false; }; "sort": { "alias": "sort"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, never, true, never>;
90
+ }
91
+ /** Styles a native `<td>` data cell. */
92
+ export declare class TableCellDirective {
93
+ /** Extra Tailwind classes merged onto the `<td>` via `cn()` (last-wins). */
94
+ class: string;
95
+ protected cn: typeof cn;
96
+ static ɵfac: i0.ɵɵFactoryDeclaration<TableCellDirective, never>;
97
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TableCellDirective, "[tolleTableCell]", never, { "class": { "alias": "class"; "required": false; }; }, {}, never, never, true, never>;
98
+ }
99
+ /** Styles a native `<caption>`, rendered below the table. */
100
+ export declare class TableCaptionDirective {
101
+ /** Extra Tailwind classes merged onto the `<caption>` via `cn()` (last-wins). */
102
+ class: string;
103
+ protected cn: typeof cn;
104
+ static ɵfac: i0.ɵɵFactoryDeclaration<TableCaptionDirective, never>;
105
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TableCaptionDirective, "[tolleTableCaption]", never, { "class": { "alias": "class"; "required": false; }; }, {}, never, never, true, never>;
106
+ }
@@ -0,0 +1,151 @@
1
+ import { EventEmitter, OnChanges, OnDestroy, OnInit } from '@angular/core';
2
+ import { type VariantProps } from 'class-variance-authority';
3
+ import * as i0 from "@angular/core";
4
+ /** Lifecycle of a single agent task. */
5
+ export type TaskStatus = 'pending' | 'in-progress' | 'completed' | 'error';
6
+ declare const taskVariants: (props?: ({
7
+ status?: "error" | "pending" | "in-progress" | "completed" | null | undefined;
8
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
9
+ export type TaskProps = VariantProps<typeof taskVariants>;
10
+ /**
11
+ * Coordinates a `tolle-task` and its trigger/content children.
12
+ *
13
+ * The children are `OnPush` and none of the parent's state arrives as their own
14
+ * inputs, so it is published here as observables and every subscriber calls
15
+ * `markForCheck()`.
16
+ */
17
+ export declare class TaskService {
18
+ private readonly openSource;
19
+ /** Emits whether the task's content is expanded. */
20
+ readonly open$: import("rxjs").Observable<boolean>;
21
+ private readonly statusSource;
22
+ /** Emits the task's current status. */
23
+ readonly status$: import("rxjs").Observable<TaskStatus>;
24
+ private readonly titleSource;
25
+ /** Emits the task's title. */
26
+ readonly title$: import("rxjs").Observable<string>;
27
+ get open(): boolean;
28
+ get status(): TaskStatus;
29
+ get title(): string;
30
+ setOpen(open: boolean): void;
31
+ toggle(): void;
32
+ setStatus(status: TaskStatus): void;
33
+ setTitle(title: string): void;
34
+ static ɵfac: i0.ɵɵFactoryDeclaration<TaskService, never>;
35
+ static ɵprov: i0.ɵɵInjectableDeclaration<TaskService>;
36
+ }
37
+ /**
38
+ * A collapsible record of one unit of agent work — a title, a status, and the
39
+ * individual steps taken, revealed on demand.
40
+ *
41
+ * ```html
42
+ * <tolle-task status="completed" title="Read the codebase" [open]="true">
43
+ * <tolle-task-trigger></tolle-task-trigger>
44
+ * <tolle-task-content>
45
+ * <tolle-task-item>
46
+ * Searched <tolle-task-item-file>utils/cn.ts</tolle-task-item-file>
47
+ * </tolle-task-item>
48
+ * </tolle-task-content>
49
+ * </tolle-task>
50
+ * ```
51
+ * @new
52
+ */
53
+ export declare class TaskComponent implements OnInit, OnChanges, OnDestroy {
54
+ private readonly cdr;
55
+ /** Lifecycle state of the task; drives the icon and border colour. @default 'pending' */
56
+ status: TaskStatus;
57
+ /** Title shown by `tolle-task-trigger`. @default '' */
58
+ title: string;
59
+ /** Whether the task's content is expanded. @default false */
60
+ open: boolean;
61
+ /** Extra Tailwind classes merged onto the task via `cn()` (last-wins). */
62
+ class: string;
63
+ /** Emitted with the new expanded state whenever the task opens or closes. */
64
+ openChange: EventEmitter<boolean>;
65
+ private readonly service;
66
+ private readonly sub;
67
+ ngOnInit(): void;
68
+ ngOnChanges(): void;
69
+ ngOnDestroy(): void;
70
+ private push;
71
+ get computedClass(): string;
72
+ static ɵfac: i0.ɵɵFactoryDeclaration<TaskComponent, never>;
73
+ static ɵcmp: i0.ɵɵComponentDeclaration<TaskComponent, "tolle-task", never, { "status": { "alias": "status"; "required": false; }; "title": { "alias": "title"; "required": false; }; "open": { "alias": "open"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, { "openChange": "openChange"; }, never, ["*"], true, never>;
74
+ }
75
+ /** Header row of a `tolle-task`: status icon, title, and the expand chevron. */
76
+ export declare class TaskTriggerComponent implements OnChanges, OnInit, OnDestroy {
77
+ /**
78
+ * Angular writes a bound `class` input through its styling path, which does
79
+ * not mark an OnPush component dirty — without this hook the component keeps
80
+ * rendering the class it was born with.
81
+ */
82
+ ngOnChanges(): void;
83
+ /** Extra Tailwind classes merged onto the trigger via `cn()` (last-wins). */
84
+ class: string;
85
+ private readonly service;
86
+ private readonly cdr;
87
+ private readonly sub;
88
+ isOpen: boolean;
89
+ status: TaskStatus;
90
+ title: string;
91
+ ngOnInit(): void;
92
+ ngOnDestroy(): void;
93
+ get iconClass(): string;
94
+ get computedClass(): string;
95
+ toggle(): void;
96
+ static ɵfac: i0.ɵɵFactoryDeclaration<TaskTriggerComponent, never>;
97
+ static ɵcmp: i0.ɵɵComponentDeclaration<TaskTriggerComponent, "tolle-task-trigger", never, { "class": { "alias": "class"; "required": false; }; }, {}, never, ["*"], true, never>;
98
+ }
99
+ /** The body of a `tolle-task`; rendered only while the task is expanded. */
100
+ export declare class TaskContentComponent implements OnChanges, OnInit, OnDestroy {
101
+ /**
102
+ * Angular writes a bound `class` input through its styling path, which does
103
+ * not mark an OnPush component dirty — without this hook the component keeps
104
+ * rendering the class it was born with.
105
+ */
106
+ ngOnChanges(): void;
107
+ /** Extra Tailwind classes merged onto the content via `cn()` (last-wins). */
108
+ class: string;
109
+ private readonly service;
110
+ private readonly cdr;
111
+ private readonly sub;
112
+ isOpen: boolean;
113
+ ngOnInit(): void;
114
+ ngOnDestroy(): void;
115
+ get computedClass(): string;
116
+ static ɵfac: i0.ɵɵFactoryDeclaration<TaskContentComponent, never>;
117
+ static ɵcmp: i0.ɵɵComponentDeclaration<TaskContentComponent, "tolle-task-content", never, { "class": { "alias": "class"; "required": false; }; }, {}, never, ["*"], true, never>;
118
+ }
119
+ /** One line of work inside a `tolle-task-content`. */
120
+ export declare class TaskItemComponent implements OnChanges {
121
+ private readonly cdr;
122
+ /**
123
+ * Angular writes a bound `class` input through its styling path, which does
124
+ * not mark an OnPush component dirty — without this hook the component keeps
125
+ * rendering the class it was born with.
126
+ */
127
+ ngOnChanges(): void;
128
+ /** Extra Tailwind classes merged onto the item via `cn()` (last-wins). */
129
+ class: string;
130
+ get computedClass(): string;
131
+ static ɵfac: i0.ɵɵFactoryDeclaration<TaskItemComponent, never>;
132
+ static ɵcmp: i0.ɵɵComponentDeclaration<TaskItemComponent, "tolle-task-item", never, { "class": { "alias": "class"; "required": false; }; }, {}, never, ["*"], true, never>;
133
+ }
134
+ /** An inline file chip, for naming the file a task step touched. */
135
+ export declare class TaskItemFileComponent implements OnChanges {
136
+ private readonly cdr;
137
+ /**
138
+ * Angular writes a bound `class` input through its styling path, which does
139
+ * not mark an OnPush component dirty — without this hook the component keeps
140
+ * rendering the class it was born with.
141
+ */
142
+ ngOnChanges(): void;
143
+ /** Remixicon class for the leading file glyph. @default 'ri-file-line' */
144
+ icon: string;
145
+ /** Extra Tailwind classes merged onto the chip via `cn()` (last-wins). */
146
+ class: string;
147
+ get computedClass(): string;
148
+ static ɵfac: i0.ɵɵFactoryDeclaration<TaskItemFileComponent, never>;
149
+ static ɵcmp: i0.ɵɵComponentDeclaration<TaskItemFileComponent, "tolle-task-item-file", never, { "icon": { "alias": "icon"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, ["*"], true, never>;
150
+ }
151
+ export {};
@@ -13,6 +13,15 @@ export declare class ThemeService {
13
13
  private chartStyleId;
14
14
  constructor(document: Document, platformId: object, config: TolleConfig, rendererFactory: RendererFactory2);
15
15
  private initializeTheme;
16
+ /**
17
+ * Sets a CSS custom property on an element.
18
+ *
19
+ * `Renderer2.setStyle(el, '--x', v)` without `DashCase` compiles to
20
+ * `el.style['--x'] = v`, which is a silent no-op for custom properties — the
21
+ * theme control appears to work and simply changes nothing. Every custom
22
+ * property goes through here so no call site can forget the flag.
23
+ */
24
+ private setCssVar;
16
25
  /** Set a typography stack (`--font-sans` / `--font-serif` / `--font-mono`). */
17
26
  setFont(kind: 'sans' | 'serif' | 'mono', stack: string, persist?: boolean): void;
18
27
  /** Read the current stack for a font role from the live document. */