@star-ng/ui 0.0.0-stage → 0.2.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 (217) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +162 -2
  3. package/fesm2022/star-ng-ui-accordion.mjs +376 -0
  4. package/fesm2022/star-ng-ui-accordion.mjs.map +1 -0
  5. package/fesm2022/star-ng-ui-autocomplete.mjs +786 -0
  6. package/fesm2022/star-ng-ui-autocomplete.mjs.map +1 -0
  7. package/fesm2022/star-ng-ui-avatar.mjs +154 -0
  8. package/fesm2022/star-ng-ui-avatar.mjs.map +1 -0
  9. package/fesm2022/star-ng-ui-badge.mjs +153 -0
  10. package/fesm2022/star-ng-ui-badge.mjs.map +1 -0
  11. package/fesm2022/star-ng-ui-breadcrumb.mjs +199 -0
  12. package/fesm2022/star-ng-ui-breadcrumb.mjs.map +1 -0
  13. package/fesm2022/star-ng-ui-button.mjs +282 -0
  14. package/fesm2022/star-ng-ui-button.mjs.map +1 -0
  15. package/fesm2022/star-ng-ui-card.mjs +112 -0
  16. package/fesm2022/star-ng-ui-card.mjs.map +1 -0
  17. package/fesm2022/star-ng-ui-chart.mjs +1904 -0
  18. package/fesm2022/star-ng-ui-chart.mjs.map +1 -0
  19. package/fesm2022/star-ng-ui-checkbox.mjs +345 -0
  20. package/fesm2022/star-ng-ui-checkbox.mjs.map +1 -0
  21. package/fesm2022/star-ng-ui-core.mjs +484 -0
  22. package/fesm2022/star-ng-ui-core.mjs.map +1 -0
  23. package/fesm2022/star-ng-ui-data-display.mjs +1870 -0
  24. package/fesm2022/star-ng-ui-data-display.mjs.map +1 -0
  25. package/fesm2022/star-ng-ui-date-picker.mjs +2786 -0
  26. package/fesm2022/star-ng-ui-date-picker.mjs.map +1 -0
  27. package/fesm2022/star-ng-ui-dialog.mjs +948 -0
  28. package/fesm2022/star-ng-ui-dialog.mjs.map +1 -0
  29. package/fesm2022/star-ng-ui-drawer.mjs +158 -0
  30. package/fesm2022/star-ng-ui-drawer.mjs.map +1 -0
  31. package/fesm2022/star-ng-ui-editor.mjs +416 -0
  32. package/fesm2022/star-ng-ui-editor.mjs.map +1 -0
  33. package/fesm2022/star-ng-ui-field.mjs +378 -0
  34. package/fesm2022/star-ng-ui-field.mjs.map +1 -0
  35. package/fesm2022/star-ng-ui-file-upload.mjs +762 -0
  36. package/fesm2022/star-ng-ui-file-upload.mjs.map +1 -0
  37. package/fesm2022/star-ng-ui-i18n-de.mjs +179 -0
  38. package/fesm2022/star-ng-ui-i18n-de.mjs.map +1 -0
  39. package/fesm2022/star-ng-ui-i18n-es.mjs +179 -0
  40. package/fesm2022/star-ng-ui-i18n-es.mjs.map +1 -0
  41. package/fesm2022/star-ng-ui-input-group.mjs +188 -0
  42. package/fesm2022/star-ng-ui-input-group.mjs.map +1 -0
  43. package/fesm2022/star-ng-ui-input-mask.mjs +434 -0
  44. package/fesm2022/star-ng-ui-input-mask.mjs.map +1 -0
  45. package/fesm2022/star-ng-ui-input-number.mjs +691 -0
  46. package/fesm2022/star-ng-ui-input-number.mjs.map +1 -0
  47. package/fesm2022/star-ng-ui-input-otp.mjs +343 -0
  48. package/fesm2022/star-ng-ui-input-otp.mjs.map +1 -0
  49. package/fesm2022/star-ng-ui-input-tags.mjs +616 -0
  50. package/fesm2022/star-ng-ui-input-tags.mjs.map +1 -0
  51. package/fesm2022/star-ng-ui-knob.mjs +514 -0
  52. package/fesm2022/star-ng-ui-knob.mjs.map +1 -0
  53. package/fesm2022/star-ng-ui-layout.mjs +608 -0
  54. package/fesm2022/star-ng-ui-layout.mjs.map +1 -0
  55. package/fesm2022/star-ng-ui-listbox.mjs +886 -0
  56. package/fesm2022/star-ng-ui-listbox.mjs.map +1 -0
  57. package/fesm2022/star-ng-ui-media.mjs +833 -0
  58. package/fesm2022/star-ng-ui-media.mjs.map +1 -0
  59. package/fesm2022/star-ng-ui-menu.mjs +1840 -0
  60. package/fesm2022/star-ng-ui-menu.mjs.map +1 -0
  61. package/fesm2022/star-ng-ui-message.mjs +191 -0
  62. package/fesm2022/star-ng-ui-message.mjs.map +1 -0
  63. package/fesm2022/star-ng-ui-paginator.mjs +387 -0
  64. package/fesm2022/star-ng-ui-paginator.mjs.map +1 -0
  65. package/fesm2022/star-ng-ui-panel.mjs +324 -0
  66. package/fesm2022/star-ng-ui-panel.mjs.map +1 -0
  67. package/fesm2022/star-ng-ui-password.mjs +517 -0
  68. package/fesm2022/star-ng-ui-password.mjs.map +1 -0
  69. package/fesm2022/star-ng-ui-popover.mjs +241 -0
  70. package/fesm2022/star-ng-ui-popover.mjs.map +1 -0
  71. package/fesm2022/star-ng-ui-progress-bar.mjs +183 -0
  72. package/fesm2022/star-ng-ui-progress-bar.mjs.map +1 -0
  73. package/fesm2022/star-ng-ui-radio.mjs +411 -0
  74. package/fesm2022/star-ng-ui-radio.mjs.map +1 -0
  75. package/fesm2022/star-ng-ui-rating.mjs +211 -0
  76. package/fesm2022/star-ng-ui-rating.mjs.map +1 -0
  77. package/fesm2022/star-ng-ui-select-button.mjs +613 -0
  78. package/fesm2022/star-ng-ui-select-button.mjs.map +1 -0
  79. package/fesm2022/star-ng-ui-select.mjs +2547 -0
  80. package/fesm2022/star-ng-ui-select.mjs.map +1 -0
  81. package/fesm2022/star-ng-ui-skeleton.mjs +160 -0
  82. package/fesm2022/star-ng-ui-skeleton.mjs.map +1 -0
  83. package/fesm2022/star-ng-ui-slider.mjs +552 -0
  84. package/fesm2022/star-ng-ui-slider.mjs.map +1 -0
  85. package/fesm2022/star-ng-ui-spinner.mjs +148 -0
  86. package/fesm2022/star-ng-ui-spinner.mjs.map +1 -0
  87. package/fesm2022/star-ng-ui-stepper.mjs +360 -0
  88. package/fesm2022/star-ng-ui-stepper.mjs.map +1 -0
  89. package/fesm2022/star-ng-ui-table.mjs +3531 -0
  90. package/fesm2022/star-ng-ui-table.mjs.map +1 -0
  91. package/fesm2022/star-ng-ui-tabs.mjs +464 -0
  92. package/fesm2022/star-ng-ui-tabs.mjs.map +1 -0
  93. package/fesm2022/star-ng-ui-tag.mjs +129 -0
  94. package/fesm2022/star-ng-ui-tag.mjs.map +1 -0
  95. package/fesm2022/star-ng-ui-theme-switch.mjs +105 -0
  96. package/fesm2022/star-ng-ui-theme-switch.mjs.map +1 -0
  97. package/fesm2022/star-ng-ui-theme.mjs +98 -0
  98. package/fesm2022/star-ng-ui-theme.mjs.map +1 -0
  99. package/fesm2022/star-ng-ui-toast.mjs +298 -0
  100. package/fesm2022/star-ng-ui-toast.mjs.map +1 -0
  101. package/fesm2022/star-ng-ui-toggle-switch.mjs +316 -0
  102. package/fesm2022/star-ng-ui-toggle-switch.mjs.map +1 -0
  103. package/fesm2022/star-ng-ui-tooltip.mjs +297 -0
  104. package/fesm2022/star-ng-ui-tooltip.mjs.map +1 -0
  105. package/fesm2022/star-ng-ui-transloco.mjs +40 -0
  106. package/fesm2022/star-ng-ui-transloco.mjs.map +1 -0
  107. package/fesm2022/star-ng-ui-tree.mjs +1446 -0
  108. package/fesm2022/star-ng-ui-tree.mjs.map +1 -0
  109. package/fesm2022/star-ng-ui-utility.mjs +2134 -0
  110. package/fesm2022/star-ng-ui-utility.mjs.map +1 -0
  111. package/fesm2022/star-ng-ui.mjs +51 -0
  112. package/package.json +285 -3
  113. package/styles/_base.scss +70 -0
  114. package/styles/_shared.scss +2 -0
  115. package/styles/_tokens.scss +190 -0
  116. package/styles/controls/_accordion.scss +75 -0
  117. package/styles/controls/_autocomplete.scss +44 -0
  118. package/styles/controls/_avatar.scss +39 -0
  119. package/styles/controls/_breadcrumb.scss +45 -0
  120. package/styles/controls/_button.scss +137 -0
  121. package/styles/controls/_card.scss +38 -0
  122. package/styles/controls/_chart.scss +214 -0
  123. package/styles/controls/_chip.scss +51 -0
  124. package/styles/controls/_choice.scss +153 -0
  125. package/styles/controls/_data-display.scss +124 -0
  126. package/styles/controls/_date-picker.scss +300 -0
  127. package/styles/controls/_dialog.scss +123 -0
  128. package/styles/controls/_drawer.scss +118 -0
  129. package/styles/controls/_editor.scss +74 -0
  130. package/styles/controls/_field.scss +92 -0
  131. package/styles/controls/_file-upload.scss +136 -0
  132. package/styles/controls/_input-group.scss +104 -0
  133. package/styles/controls/_input-mask.scss +46 -0
  134. package/styles/controls/_input-number.scss +125 -0
  135. package/styles/controls/_knob.scss +76 -0
  136. package/styles/controls/_layout.scss +182 -0
  137. package/styles/controls/_listbox.scss +38 -0
  138. package/styles/controls/_media.scss +222 -0
  139. package/styles/controls/_menu.scss +254 -0
  140. package/styles/controls/_message.scss +48 -0
  141. package/styles/controls/_org-chart.scss +128 -0
  142. package/styles/controls/_paginator.scss +59 -0
  143. package/styles/controls/_panel.scss +83 -0
  144. package/styles/controls/_popover.scss +40 -0
  145. package/styles/controls/_progress-bar.scss +74 -0
  146. package/styles/controls/_select-button.scss +61 -0
  147. package/styles/controls/_select.scss +216 -0
  148. package/styles/controls/_skeleton.scss +43 -0
  149. package/styles/controls/_slider.scss +163 -0
  150. package/styles/controls/_spinner.scss +34 -0
  151. package/styles/controls/_stepper.scss +109 -0
  152. package/styles/controls/_table.scss +523 -0
  153. package/styles/controls/_tabs.scss +93 -0
  154. package/styles/controls/_tag.scss +84 -0
  155. package/styles/controls/_toast.scss +141 -0
  156. package/styles/controls/_tooltip.scss +14 -0
  157. package/styles/controls/_tree.scss +113 -0
  158. package/styles/controls/_utility.scss +654 -0
  159. package/styles/star-ng.css +5807 -0
  160. package/styles/star-ng.min.css +1 -0
  161. package/styles/star-ng.scss +50 -0
  162. package/theme/star-theme-first-paint.js +1 -0
  163. package/types/star-ng-ui-accordion.d.ts +82 -0
  164. package/types/star-ng-ui-autocomplete.d.ts +171 -0
  165. package/types/star-ng-ui-avatar.d.ts +43 -0
  166. package/types/star-ng-ui-badge.d.ts +46 -0
  167. package/types/star-ng-ui-breadcrumb.d.ts +39 -0
  168. package/types/star-ng-ui-button.d.ts +79 -0
  169. package/types/star-ng-ui-card.d.ts +29 -0
  170. package/types/star-ng-ui-chart.d.ts +337 -0
  171. package/types/star-ng-ui-checkbox.d.ts +92 -0
  172. package/types/star-ng-ui-core.d.ts +373 -0
  173. package/types/star-ng-ui-data-display.d.ts +438 -0
  174. package/types/star-ng-ui-date-picker.d.ts +701 -0
  175. package/types/star-ng-ui-dialog.d.ts +254 -0
  176. package/types/star-ng-ui-drawer.d.ts +29 -0
  177. package/types/star-ng-ui-editor.d.ts +96 -0
  178. package/types/star-ng-ui-field.d.ts +146 -0
  179. package/types/star-ng-ui-file-upload.d.ts +192 -0
  180. package/types/star-ng-ui-i18n-de.d.ts +7 -0
  181. package/types/star-ng-ui-i18n-es.d.ts +7 -0
  182. package/types/star-ng-ui-input-group.d.ts +58 -0
  183. package/types/star-ng-ui-input-mask.d.ts +126 -0
  184. package/types/star-ng-ui-input-number.d.ts +193 -0
  185. package/types/star-ng-ui-input-otp.d.ts +86 -0
  186. package/types/star-ng-ui-input-tags.d.ts +159 -0
  187. package/types/star-ng-ui-knob.d.ts +121 -0
  188. package/types/star-ng-ui-layout.d.ts +154 -0
  189. package/types/star-ng-ui-listbox.d.ts +170 -0
  190. package/types/star-ng-ui-media.d.ts +161 -0
  191. package/types/star-ng-ui-menu.d.ts +332 -0
  192. package/types/star-ng-ui-message.d.ts +52 -0
  193. package/types/star-ng-ui-paginator.d.ts +85 -0
  194. package/types/star-ng-ui-panel.d.ts +65 -0
  195. package/types/star-ng-ui-password.d.ts +129 -0
  196. package/types/star-ng-ui-popover.d.ts +57 -0
  197. package/types/star-ng-ui-progress-bar.d.ts +49 -0
  198. package/types/star-ng-ui-radio.d.ts +116 -0
  199. package/types/star-ng-ui-rating.d.ts +52 -0
  200. package/types/star-ng-ui-select-button.d.ts +169 -0
  201. package/types/star-ng-ui-select.d.ts +563 -0
  202. package/types/star-ng-ui-skeleton.d.ts +47 -0
  203. package/types/star-ng-ui-slider.d.ts +145 -0
  204. package/types/star-ng-ui-spinner.d.ts +29 -0
  205. package/types/star-ng-ui-stepper.d.ts +89 -0
  206. package/types/star-ng-ui-table.d.ts +885 -0
  207. package/types/star-ng-ui-tabs.d.ts +109 -0
  208. package/types/star-ng-ui-tag.d.ts +35 -0
  209. package/types/star-ng-ui-theme-switch.d.ts +36 -0
  210. package/types/star-ng-ui-theme.d.ts +95 -0
  211. package/types/star-ng-ui-toast.d.ts +84 -0
  212. package/types/star-ng-ui-toggle-switch.d.ts +81 -0
  213. package/types/star-ng-ui-tooltip.d.ts +66 -0
  214. package/types/star-ng-ui-transloco.d.ts +14 -0
  215. package/types/star-ng-ui-tree.d.ts +343 -0
  216. package/types/star-ng-ui-utility.d.ts +533 -0
  217. package/types/star-ng-ui.d.ts +51 -0
@@ -0,0 +1,373 @@
1
+ import * as i0 from "@angular/core";
2
+ import { EffectRef, EnvironmentProviders, InjectionToken, Injector, Provider } from "@angular/core";
3
+ import { FormArray, FormGroup } from "@angular/forms";
4
+ /** Text direction of an element: left-to-right or right-to-left. */
5
+ export type StarDirection = 'ltr' | 'rtl';
6
+ /**
7
+ * Text direction in force at one element. A `dir` attribute on the element or on an ancestor
8
+ * decides; with `dir="auto"` or no attribute the computed `direction` decides. The function
9
+ * reads the DOM each time it is called, so a handler that calls it follows a direction change at
10
+ * run time, and a part of the page that has its own `dir` attribute is respected.
11
+ *
12
+ * Controls use it in key handlers and pointer math: the horizontal arrow keys follow the visual
13
+ * direction, so in `rtl` the left arrow means "next".
14
+ */
15
+ export declare function starDirectionOf(element: Element | null | undefined): StarDirection;
16
+ /** `true` when the element is laid out right-to-left. See `starDirectionOf`. */
17
+ export declare function starIsRtl(element: Element | null | undefined): boolean;
18
+ /**
19
+ * Key of a keyboard event in "inline" terms: `'ArrowRight'` means toward the end of the line and
20
+ * `'ArrowLeft'` toward the start, whatever the direction. In right-to-left the two arrow keys are
21
+ * swapped; every other key is returned as it is. A handler can then be written once, as for
22
+ * left-to-right text:
23
+ *
24
+ * ```ts
25
+ * switch (starInlineKey(event)) {
26
+ * case 'ArrowRight': // next item in reading order
27
+ * }
28
+ * ```
29
+ *
30
+ * The element decides the direction; it defaults to `event.currentTarget`.
31
+ */
32
+ export declare function starInlineKey(event: KeyboardEvent, element?: Element | null): string;
33
+ /**
34
+ * Direction of the application: the `dir` attribute of `<html>` (or `<body>`), followed at run
35
+ * time. Controls that open an overlay or a menu (CDK `Overlay`, `CdkMenu`) inject it. It does
36
+ * two things:
37
+ *
38
+ * 1. `value` is a signal, so a control can react when the application switches the direction.
39
+ * 2. It keeps the root `Directionality` of `@angular/cdk/bidi` in step with the page. That
40
+ * service reads the attribute once when it is created; without this, overlays and menus
41
+ * would keep the old direction after a switch.
42
+ *
43
+ * The application only sets `dir` on `<html>`: `document.documentElement.dir = 'rtl'`.
44
+ */
45
+ export declare class StarDirectionService {
46
+ private readonly document;
47
+ private readonly directionality;
48
+ private readonly current;
49
+ /** The direction of the page now. */
50
+ readonly value: import("@angular/core").Signal<StarDirection>;
51
+ constructor();
52
+ /** Reads the attribute again. The observer calls it; call it by hand after a change that the observer cannot see. */
53
+ refresh(): void;
54
+ private read;
55
+ private sync;
56
+ static ɵfac: i0.ɵɵFactoryDeclaration<StarDirectionService, never>;
57
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
58
+ }
59
+ /**
60
+ * Starts `StarDirectionService` when the application starts. Optional: the controls that open
61
+ * an overlay start the service themselves. Use it when the direction changes at run time before
62
+ * any such control exists, or when your own code reads `StarDirectionService.value`.
63
+ *
64
+ * ```ts
65
+ * bootstrapApplication(App, { providers: [provideStarDirection()] });
66
+ * ```
67
+ */
68
+ export declare function provideStarDirection(): EnvironmentProviders;
69
+ /**
70
+ * Pure helpers of the windowed option lists: row model, index math, keyboard target and ARIA
71
+ * values. `star-listbox` and the select family (`star-select`, `star-multi-select`,
72
+ * `star-autocomplete`) use them. They have no DOM access, so unit tests can check them without
73
+ * layout. They are exported because entry points import each other by package name. They are
74
+ * helpers of the library, not a stable extension point.
75
+ */
76
+ /** One row of a windowed list. Group headings and options have the same height. */
77
+ export type StarWindowRow<T> = {
78
+ readonly kind: 'group';
79
+ readonly key: string;
80
+ readonly label: string;
81
+ readonly id: string;
82
+ } | {
83
+ readonly kind: 'option';
84
+ readonly key: string;
85
+ readonly option: T;
86
+ /** Index in the visible options (keyboard order). */
87
+ readonly index: number;
88
+ /** Id of the heading row of the group, or null without groups. */
89
+ readonly groupId: string | null;
90
+ /** Index of the heading row of the group, or -1 without groups. */
91
+ readonly groupRow: number;
92
+ };
93
+ /** The rows, and for each visible option the index of its row. */
94
+ export interface StarWindowLayout<T> {
95
+ readonly rows: readonly StarWindowRow<T>[];
96
+ readonly rowOfOption: readonly number[];
97
+ }
98
+ /**
99
+ * Flattens headings and options into one list of rows of equal height. `options` must already be
100
+ * in display order (each group together). A heading comes before the first option of each group.
101
+ * The heading id has the form `<idPrefix>-group-<index of the first option of the group>`.
102
+ */
103
+ export declare function starListLayout<T>(options: readonly T[], groupOf: ((option: T) => string) | null, idPrefix: string): StarWindowLayout<T>;
104
+ /** Number of options a Page up / Page down key moves: the lines in view, minus one for overlap. */
105
+ export declare function starListPageSize(viewportHeight: number, itemSize: number): number;
106
+ export type StarListNavigationKey = 'ArrowDown' | 'ArrowUp' | 'Home' | 'End' | 'PageDown' | 'PageUp';
107
+ /** Index of the option a navigation key moves to, limited to the list. -1 for an empty list. */
108
+ export declare function starListKeyboardTarget(key: StarListNavigationKey, active: number, count: number, page: number): number;
109
+ /** Index of the first option whose label starts with the typed text (compared in lower case). */
110
+ export declare function starListTypeaheadIndex(count: number, labelAt: (index: number) => string, typed: string): number;
111
+ /** First and last row to bring into view for an option: its heading row comes with the first option. */
112
+ export declare function starListRevealRows<T>(layout: StarWindowLayout<T>, index: number): [number, number];
113
+ /**
114
+ * Scroll offset that brings rows `first` to `last` into view with the least movement, or null when
115
+ * they are in view. Rows have the height `itemSize`. `inset` is the space above the first row
116
+ * (the padding of the scroll container): a row below the view is moved by it, and the first row
117
+ * scrolls to the very top so that the padding shows.
118
+ */
119
+ export declare function starListRevealOffset(first: number, last: number, itemSize: number, scrollOffset: number, viewportHeight: number, inset?: number): number | null;
120
+ /** `aria-setsize` and `aria-posinset` of an option, for the whole list. */
121
+ export declare function starListAriaPosition(index: number, count: number): {
122
+ setsize: number;
123
+ posinset: number;
124
+ };
125
+ /** CSS height of the list: `scrollHeight` at most, and no taller than the rows need. */
126
+ export declare function starListHeight(scrollHeight: string, rowCount: number, itemSize: number): string;
127
+ /** True when a row is inside the rendered range `[start, end)`. */
128
+ export declare function starListRowRendered(row: number, range: {
129
+ start: number;
130
+ end: number;
131
+ }): boolean;
132
+ /**
133
+ * How a list control reads a property from an option: a property name or an accessor function.
134
+ * Same idea as PrimeNG `optionLabel` / `optionValue` / `optionDisabled`, but type safe.
135
+ */
136
+ export type StarOptionKey<T, R = unknown> = (keyof T & string) | ((option: T) => R);
137
+ export type StarSeverity = 'primary' | 'secondary' | 'success' | 'info' | 'warn' | 'danger';
138
+ export type StarSize = 'sm' | 'md' | 'lg';
139
+ export declare function readOption<T, R>(option: T, key: StarOptionKey<T, R> | null | undefined): unknown;
140
+ /** Text shown for an option. Falls back to the option itself for primitive options. */
141
+ export declare function optionText<T>(option: T, key: StarOptionKey<T> | null | undefined): string;
142
+ /** Locale-aware compare used by sorting: numbers and dates numerically, text with Intl.Collator. */
143
+ export declare function compareValues(a: unknown, b: unknown): number;
144
+ /** Case- and accent-insensitive "contains" match used by filters. */
145
+ export declare function matchesFilter(text: string, query: string): boolean;
146
+ /**
147
+ * Keeps a Reactive `FormGroup` (or `FormArray`) in step with the `SignalFormControl`s inside it.
148
+ *
149
+ * Angular 22 updates a parent group when a `SignalFormControl` value changes, but not when a
150
+ * Signal Forms rule (for example `disabled({ when })` or a conditional `required`) changes the
151
+ * child's status without a value change. The group then reports a stale `valid` / `status`.
152
+ * This effect watches every signal control's validity, disabled and pending state and calls
153
+ * `updateValueAndValidity()` on the group when one changes.
154
+ *
155
+ * Call it in an injection context (a field initializer or constructor):
156
+ * ```ts
157
+ * readonly form = new FormGroup({ country: new SignalFormControl<string | null>(null, rules) });
158
+ * private readonly sync = syncSignalFormControls(this.form);
159
+ * ```
160
+ */
161
+ export declare function syncSignalFormControls(group: FormGroup | FormArray, injector?: Injector): EffectRef;
162
+ /**
163
+ * Built-in texts of the StarNG UI controls (screen-reader labels, empty states, reports).
164
+ * Defaults are English. Override them once at app level:
165
+ * - `provideStarUiTextFromTransloco()` reads them from the active Transloco language (`ui.*` keys)
166
+ * and updates the controls live when the language changes.
167
+ * - `provideStarUiText({...})` sets fixed texts.
168
+ *
169
+ * Function entries take values (for example a count) and return the full sentence, so word order
170
+ * can change per language. Their parameter names are listed in `STAR_UI_TEXT_PARAMS`.
171
+ */
172
+ export interface StarUiText {
173
+ readonly close: string;
174
+ readonly clear: string;
175
+ readonly loading: string;
176
+ readonly actions: string;
177
+ readonly moreActions: string;
178
+ readonly ofTotal: (index: number, total: number) => string;
179
+ readonly expandItem: (label: string) => string;
180
+ readonly collapseItem: (label: string) => string;
181
+ readonly removeItem: (label: string) => string;
182
+ readonly tagsHint: string;
183
+ readonly tagAdded: (label: string) => string;
184
+ readonly tagRemoved: (label: string) => string;
185
+ readonly tagInvalid: (label: string) => string;
186
+ readonly tagDuplicate: (label: string) => string;
187
+ readonly tagLimit: (max: number) => string;
188
+ readonly notifications: string;
189
+ readonly accept: string;
190
+ readonly reject: string;
191
+ readonly selectPlaceholder: string;
192
+ readonly filterPlaceholder: string;
193
+ readonly emptyMessage: string;
194
+ readonly emptyFilterMessage: string;
195
+ readonly selectAll: string;
196
+ readonly selectedItems: (count: number) => string;
197
+ readonly searching: string;
198
+ readonly showOptions: string;
199
+ readonly resultsAvailable: (count: number) => string;
200
+ readonly pagination: string;
201
+ readonly firstPage: string;
202
+ readonly previousPage: string;
203
+ readonly nextPage: string;
204
+ readonly lastPage: string;
205
+ readonly page: (page: number) => string;
206
+ readonly rowsPerPage: string;
207
+ readonly pageReport: (first: number, last: number, total: number) => string;
208
+ readonly noData: string;
209
+ readonly selectRow: string;
210
+ readonly selectAllRows: string;
211
+ readonly filterBy: (column: string) => string;
212
+ readonly filterAll: string;
213
+ readonly filterMin: (column: string) => string;
214
+ readonly filterMax: (column: string) => string;
215
+ readonly filterMinShort: string;
216
+ readonly filterMaxShort: string;
217
+ readonly expandRow: string;
218
+ readonly collapseRow: string;
219
+ readonly rowDetails: string;
220
+ readonly reorderRows: string;
221
+ readonly sortMultiHint: string;
222
+ readonly terminalCommand: string;
223
+ readonly compareImages: string;
224
+ readonly editCell: (column: string) => string;
225
+ readonly columns: string;
226
+ readonly resizeColumn: (column: string) => string;
227
+ readonly moveColumnEarlier: (column: string) => string;
228
+ readonly moveColumnLater: (column: string) => string;
229
+ readonly layout: string;
230
+ readonly layoutList: string;
231
+ readonly layoutGrid: string;
232
+ readonly moveSelectedItem: string;
233
+ readonly orderListHint: string;
234
+ readonly moveTop: string;
235
+ readonly moveUp: string;
236
+ readonly moveDown: string;
237
+ readonly moveBottom: string;
238
+ readonly itemPosition: (label: string, position: number, total: number) => string;
239
+ readonly transfer: string;
240
+ readonly moveSelectedToTarget: string;
241
+ readonly moveAllToTarget: string;
242
+ readonly moveSelectedToSource: string;
243
+ readonly moveAllToSource: string;
244
+ readonly pickListSource: string;
245
+ readonly pickListTarget: string;
246
+ readonly chooseDate: string;
247
+ readonly chooseMonth: string;
248
+ readonly chooseYear: string;
249
+ readonly previousMonth: string;
250
+ readonly nextMonth: string;
251
+ readonly previousYears: string;
252
+ readonly nextYears: string;
253
+ readonly today: string;
254
+ readonly time: string;
255
+ readonly startTime: string;
256
+ readonly weekNumber: string;
257
+ readonly weekShort: string;
258
+ readonly endTime: string;
259
+ readonly done: string;
260
+ readonly increase: string;
261
+ readonly decrease: string;
262
+ readonly showPassword: string;
263
+ readonly hidePassword: string;
264
+ readonly passwordWeak: string;
265
+ readonly passwordFair: string;
266
+ readonly passwordGood: string;
267
+ readonly passwordStrong: string;
268
+ readonly passwordRuleLength: (min: number) => string;
269
+ readonly passwordRuleUpper: string;
270
+ readonly passwordRuleLower: string;
271
+ readonly passwordRuleNumber: string;
272
+ readonly passwordRuleSymbol: string;
273
+ readonly ruleMet: string;
274
+ readonly ruleNotMet: string;
275
+ readonly otpLabel: string;
276
+ readonly otpCharacter: (position: number, total: number) => string;
277
+ readonly ratingLabel: string;
278
+ readonly sliderMinimum: (label: string) => string;
279
+ readonly sliderMaximum: (label: string) => string;
280
+ readonly colorLabel: string;
281
+ readonly customColor: string;
282
+ readonly hexValue: (label: string) => string;
283
+ readonly chooseFiles: string;
284
+ readonly dropFiles: string;
285
+ readonly fileMaxSize: (size: string) => string;
286
+ readonly fileUpTo: (count: number) => string;
287
+ readonly uploadingFile: (name: string) => string;
288
+ readonly uploaded: string;
289
+ readonly fileTypeNotAllowed: (name: string) => string;
290
+ readonly fileTooLarge: (name: string, max: string) => string;
291
+ readonly fileLimitReached: (limit: number) => string;
292
+ readonly editorLabel: string;
293
+ readonly editorFormatting: (label: string) => string;
294
+ readonly editorBold: string;
295
+ readonly editorItalic: string;
296
+ readonly editorUnderline: string;
297
+ readonly editorHeading: string;
298
+ readonly editorBulletList: string;
299
+ readonly editorNumberedList: string;
300
+ readonly editorClearFormatting: string;
301
+ readonly editorLink: string;
302
+ readonly editorLinkPrompt: string;
303
+ readonly breadcrumb: string;
304
+ readonly stepperLabel: string;
305
+ readonly stepCompleted: string;
306
+ readonly resizePanes: string;
307
+ readonly dock: string;
308
+ readonly scrollToTop: string;
309
+ readonly theme: string;
310
+ readonly themeSystem: string;
311
+ readonly themeLight: string;
312
+ readonly themeDark: string;
313
+ readonly pauseSlides: string;
314
+ readonly playSlides: string;
315
+ readonly previousSlides: string;
316
+ readonly nextSlides: string;
317
+ readonly galleryLabel: string;
318
+ readonly previousImage: string;
319
+ readonly nextImage: string;
320
+ readonly showImage: (alt: string) => string;
321
+ readonly previewImage: (alt: string) => string;
322
+ readonly zoomIn: string;
323
+ readonly zoomOut: string;
324
+ readonly chartView: string;
325
+ readonly tableView: string;
326
+ readonly chartTotal: string;
327
+ readonly chartOther: string;
328
+ readonly chartCategory: string;
329
+ readonly chartValue: string;
330
+ readonly chartShare: string;
331
+ readonly chartSeries: string;
332
+ readonly chartX: string;
333
+ readonly chartY: string;
334
+ readonly chartTypeBar: string;
335
+ readonly chartTypeStackedBar: string;
336
+ readonly chartTypeLine: string;
337
+ readonly chartTypeArea: string;
338
+ readonly chartTypeDoughnut: string;
339
+ readonly chartTypePie: string;
340
+ readonly chartTypeRadar: string;
341
+ readonly chartTypePolarArea: string;
342
+ readonly chartTypeScatter: string;
343
+ readonly chartDescription: (kind: string, series: number, items: number, min: string, max: string) => string;
344
+ readonly meterValue: (value: string, total: number) => string;
345
+ }
346
+ export declare const STAR_UI_TEXT_DEFAULTS: StarUiText;
347
+ /** Parameter names of the function entries, in call order (used for `{{ name }}` in translations). */
348
+ export declare const STAR_UI_TEXT_PARAMS: { readonly [K in keyof StarUiText]?: readonly string[]; };
349
+ export declare const STAR_UI_TEXT: InjectionToken<StarUiText>;
350
+ /** Overrides some or all built-in control texts with fixed values. */
351
+ export declare function provideStarUiText(overrides: Partial<StarUiText>): Provider;
352
+ /**
353
+ * Builds a `StarUiText` whose entries read `source()` on every access. When `source` reads a
354
+ * signal, every OnPush control that renders a built-in text updates when that signal changes.
355
+ * Entries that `source()` does not return fall back to the English default.
356
+ *
357
+ * Use it in a factory when the signal lives in a service:
358
+ * `{ provide: STAR_UI_TEXT, useFactory: () => starUiTextFromSignal(inject(Language).text) }`.
359
+ */
360
+ export declare function starUiTextFromSignal(source: () => Partial<StarUiText>): StarUiText;
361
+ /**
362
+ * Provides the control texts from a function that reads a signal, so the language can change at
363
+ * run time without a translation library:
364
+ *
365
+ * ```ts
366
+ * const language = signal<'en' | 'de'>('en');
367
+ * provideStarUiTextFromSignal(() => (language() === 'de' ? STAR_UI_TEXT_DE : STAR_UI_TEXT_DEFAULTS));
368
+ * ```
369
+ *
370
+ * Do not spread a pack with getters into an object (`{ ...text }`): that reads every getter once and
371
+ * freezes the result. Pass a function, as shown above.
372
+ */
373
+ export declare function provideStarUiTextFromSignal(source: () => Partial<StarUiText>): Provider;