@star-ng/ui 0.0.0-stage → 0.1.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 +148 -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 +782 -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 +392 -0
  22. package/fesm2022/star-ng-ui-core.mjs.map +1 -0
  23. package/fesm2022/star-ng-ui-data-display.mjs +1556 -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 +978 -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 +2523 -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 +3477 -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 +281 -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 +118 -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 +5803 -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 +310 -0
  173. package/types/star-ng-ui-data-display.d.ts +339 -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 +197 -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 +540 -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 +829 -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 +310 -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,39 @@
1
+ import * as i0 from "@angular/core";
2
+ export interface StarBreadcrumbItem {
3
+ readonly label: string;
4
+ readonly routerLink?: string | readonly unknown[];
5
+ readonly url?: string;
6
+ readonly icon?: string;
7
+ }
8
+ /**
9
+ * Breadcrumb (PrimeNG `p-breadcrumb`): `nav` landmark, ordered list, `aria-current="page"` on
10
+ * the last item, optional home link.
11
+ *
12
+ * `<star-breadcrumb [home]="{ label: 'Home', icon: 'ph-bold ph-house', routerLink: '/' }" [items]="trail" />`
13
+ */
14
+ export declare class StarBreadcrumb {
15
+ protected readonly text: import("@star-ng/ui/core").StarUiText;
16
+ readonly items: import("@angular/core").InputSignal<readonly StarBreadcrumbItem[]>;
17
+ /** First item; when it has an icon, only the icon shows (label stays for screen readers). */
18
+ readonly home: import("@angular/core").InputSignal<StarBreadcrumbItem | null>;
19
+ readonly ariaLabel: import("@angular/core").InputSignal<string | null>;
20
+ protected all(): readonly StarBreadcrumbItem[];
21
+ static ɵfac: i0.ɵɵFactoryDeclaration<StarBreadcrumb, never>;
22
+ static ɵcmp: i0.ɵɵComponentDeclaration<StarBreadcrumb, "star-breadcrumb", never, {
23
+ "items": {
24
+ "alias": "items";
25
+ "required": false;
26
+ "isSignal": true;
27
+ };
28
+ "home": {
29
+ "alias": "home";
30
+ "required": false;
31
+ "isSignal": true;
32
+ };
33
+ "ariaLabel": {
34
+ "alias": "ariaLabel";
35
+ "required": false;
36
+ "isSignal": true;
37
+ };
38
+ }, {}, never, never, true, never>;
39
+ }
@@ -0,0 +1,79 @@
1
+ import * as i0 from "@angular/core";
2
+ export type StarButtonVariant = 'primary' | 'secondary' | 'ghost' | 'danger' | 'ghost-danger' | 'success' | 'warning';
3
+ export type StarButtonSize = 'sm' | 'md' | 'lg';
4
+ /**
5
+ * Button: the one component for every call to action. Variants, sizes, icons, a loading
6
+ * state and an icon-only form. Styles: `@star-ng/ui/styles/controls/_button.scss` (`.star-btn`).
7
+ *
8
+ * `<star-button variant="primary" trailingIcon="ph-bold ph-arrow-right" (pressed)="next()">Next</star-button>`
9
+ */
10
+ export declare class StarButton {
11
+ readonly variant: import("@angular/core").InputSignal<StarButtonVariant>;
12
+ readonly size: import("@angular/core").InputSignal<StarButtonSize>;
13
+ readonly type: import("@angular/core").InputSignal<"button" | "submit" | "reset">;
14
+ readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
15
+ readonly loading: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
16
+ readonly leadingIcon: import("@angular/core").InputSignal<string | null>;
17
+ readonly trailingIcon: import("@angular/core").InputSignal<string | null>;
18
+ readonly iconOnly: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
19
+ readonly fullWidth: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
20
+ readonly ariaLabel: import("@angular/core").InputSignal<string | null>;
21
+ readonly pressed: import("@angular/core").OutputEmitterRef<MouseEvent>;
22
+ protected readonly classes: import("@angular/core").Signal<string>;
23
+ onClick(event: MouseEvent): void;
24
+ static ɵfac: i0.ɵɵFactoryDeclaration<StarButton, never>;
25
+ static ɵcmp: i0.ɵɵComponentDeclaration<StarButton, "star-button", never, {
26
+ "variant": {
27
+ "alias": "variant";
28
+ "required": false;
29
+ "isSignal": true;
30
+ };
31
+ "size": {
32
+ "alias": "size";
33
+ "required": false;
34
+ "isSignal": true;
35
+ };
36
+ "type": {
37
+ "alias": "type";
38
+ "required": false;
39
+ "isSignal": true;
40
+ };
41
+ "disabled": {
42
+ "alias": "disabled";
43
+ "required": false;
44
+ "isSignal": true;
45
+ };
46
+ "loading": {
47
+ "alias": "loading";
48
+ "required": false;
49
+ "isSignal": true;
50
+ };
51
+ "leadingIcon": {
52
+ "alias": "leadingIcon";
53
+ "required": false;
54
+ "isSignal": true;
55
+ };
56
+ "trailingIcon": {
57
+ "alias": "trailingIcon";
58
+ "required": false;
59
+ "isSignal": true;
60
+ };
61
+ "iconOnly": {
62
+ "alias": "iconOnly";
63
+ "required": false;
64
+ "isSignal": true;
65
+ };
66
+ "fullWidth": {
67
+ "alias": "fullWidth";
68
+ "required": false;
69
+ "isSignal": true;
70
+ };
71
+ "ariaLabel": {
72
+ "alias": "ariaLabel";
73
+ "required": false;
74
+ "isSignal": true;
75
+ };
76
+ }, {
77
+ "pressed": "pressed";
78
+ }, never, ["*"], true, never>;
79
+ }
@@ -0,0 +1,29 @@
1
+ import * as i0 from "@angular/core";
2
+ /**
3
+ * Content card (PrimeNG `p-card`) on the StarNG `.star-card` surface: title, subtitle,
4
+ * header actions, body and footer slots.
5
+ * ```html
6
+ * <star-card header="Open orders" subheader="Last 30 days">
7
+ * <star-button starCardActions variant="ghost" size="sm">View all</star-button>
8
+ * …body…
9
+ * <div starCardFooter>…</div>
10
+ * </star-card>
11
+ * ```
12
+ */
13
+ export declare class StarCard {
14
+ readonly header: import("@angular/core").InputSignal<string>;
15
+ readonly subheader: import("@angular/core").InputSignal<string>;
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<StarCard, never>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<StarCard, "star-card", never, {
18
+ "header": {
19
+ "alias": "header";
20
+ "required": false;
21
+ "isSignal": true;
22
+ };
23
+ "subheader": {
24
+ "alias": "subheader";
25
+ "required": false;
26
+ "isSignal": true;
27
+ };
28
+ }, {}, never, ["[starCardMedia]", "[starCardActions]", "*", "[starCardFooter]"], true, never>;
29
+ }
@@ -0,0 +1,337 @@
1
+ import * as i0 from "@angular/core";
2
+ interface StarChartScale {
3
+ /** First tick, the lower end of the axis. */
4
+ readonly min: number;
5
+ /** Last tick, the upper end of the axis. */
6
+ readonly max: number;
7
+ /** Distance between two ticks. */
8
+ readonly step: number;
9
+ readonly ticks: readonly number[];
10
+ }
11
+ interface StarChartStackSegment {
12
+ readonly series: number;
13
+ /** The real value of the cell. */
14
+ readonly value: number;
15
+ /** Where the segment starts and ends on the axis (percent of the column in percent mode). */
16
+ readonly start: number;
17
+ readonly end: number;
18
+ }
19
+ interface StarChartStackColumn {
20
+ readonly segments: readonly StarChartStackSegment[];
21
+ /** Sum of the positive values. */
22
+ readonly positive: number;
23
+ /** Sum of the negative values (0 or less). */
24
+ readonly negative: number;
25
+ /** Sum of all values: `positive + negative`. */
26
+ readonly total: number;
27
+ }
28
+ export interface StarChartSeries {
29
+ readonly label: string;
30
+ readonly data: readonly number[];
31
+ }
32
+ /** One point of a scatter series. */
33
+ export interface StarChartPoint {
34
+ readonly x: number;
35
+ readonly y: number;
36
+ }
37
+ /**
38
+ * A scatter series: points with an x and a y value. Points with a missing or not finite `x` or
39
+ * `y` are left out of the plot and the table.
40
+ */
41
+ export interface StarChartPointSeries {
42
+ readonly label: string;
43
+ readonly data: readonly StarChartPoint[];
44
+ }
45
+ export type StarChartType = 'bar' | 'stacked-bar' | 'line' | 'area' | 'doughnut' | 'pie' | 'radar' | 'polar-area' | 'scatter';
46
+ /**
47
+ * Categorical slots, in fixed order (never cycled). Validated with the dataviz palette checks:
48
+ * light on #ffffff and dark on #0f1216 pass lightness, chroma, CVD (adjacent ΔE ≥ 8.4) and
49
+ * normal-vision floors. Slots 3–5 are below 3:1 on white, so every chart ships a table view.
50
+ * Defined as design tokens `--star-chart-1…8` in `styles/_tokens.scss`.
51
+ */
52
+ export declare const STAR_CHART_SLOTS = 8;
53
+ /**
54
+ * Chart (PrimeNG `p-chart` without Chart.js): dependency-free SVG bar, stacked bar, line, area,
55
+ * doughnut, pie, radar, polar area and scatter charts.
56
+ * One y-axis, recessive grid, 2px lines, 4px rounded bar ends on the baseline, 2px surface gaps,
57
+ * legend for 2+ series, hover tooltip per mark (crosshair on line), and a data table (visible on
58
+ * demand, always present for screen readers). Colors are fixed series slots in both themes.
59
+ *
60
+ * ```html
61
+ * <star-chart type="bar" title="Orders per month" [labels]="months" [series]="volume" />
62
+ * ```
63
+ */
64
+ export declare class StarChart {
65
+ protected readonly text: import("@star-ng/ui/core").StarUiText;
66
+ protected readonly W = 640;
67
+ protected readonly H = 280;
68
+ protected readonly RW = 520;
69
+ protected readonly RH = 300;
70
+ protected readonly PAD: {
71
+ top: number;
72
+ right: number;
73
+ bottom: number;
74
+ left: number;
75
+ };
76
+ protected readonly SP: {
77
+ top: number;
78
+ right: number;
79
+ bottom: number;
80
+ left: number;
81
+ };
82
+ private readonly ids;
83
+ protected readonly titleId: string;
84
+ protected readonly descriptionId: string;
85
+ /**
86
+ * `'area'` is a line chart with a soft fill under each line. `'pie'` is a doughnut without
87
+ * the hole and the total; like the doughnut it shows the top 3 categories and "Other".
88
+ * `'stacked-bar'` stacks the series of a category in one column. `'radar'` draws one polygon per
89
+ * series over one axis per category. `'polar-area'` draws one sector per category of the first
90
+ * series, with the area of the sector in proportion to the value. `'scatter'` plots points from
91
+ * `{ x, y }` data on two numeric axes.
92
+ */
93
+ readonly type: import("@angular/core").InputSignal<StarChartType>;
94
+ /**
95
+ * Stacked bar only: scale every column to 100 percent, to compare the shares of the series
96
+ * instead of the totals. The tooltip still shows the real values.
97
+ */
98
+ readonly percent: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
99
+ /** Doughnut or pie: one series as parts of a whole. */
100
+ protected readonly round: import("@angular/core").Signal<boolean>;
101
+ protected readonly kind: import("@angular/core").Signal<"radar" | "scatter" | "round" | "polar" | "axis">;
102
+ readonly title: import("@angular/core").InputSignal<string>;
103
+ /** Category labels (x axis, or doughnut slices). */
104
+ readonly labels: import("@angular/core").InputSignal<readonly string[]>;
105
+ /**
106
+ * One or more series. Doughnut, pie and polar area use the first series only. More than 8
107
+ * series are cut. Scatter takes `{ x, y }` points in `data`: plain numbers there are y values
108
+ * with the position in the series as x.
109
+ */
110
+ readonly series: import("@angular/core").InputSignal<readonly (StarChartSeries | StarChartPointSeries)[]>;
111
+ /** Name of the category column of the table. Scatter: name of the x axis and column. */
112
+ readonly categoryLabel: import("@angular/core").InputSignal<string | null>;
113
+ /** Scatter and polar area: name of the y axis and column, or of the value column. */
114
+ readonly valueLabel: import("@angular/core").InputSignal<string | null>;
115
+ readonly locale: import("@angular/core").InputSignal<string | undefined>;
116
+ /** Start the table view open. */
117
+ readonly table: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
118
+ protected readonly showTable: import("@angular/core").WritableSignal<boolean>;
119
+ protected readonly hover: import("@angular/core").WritableSignal<number | null>;
120
+ private readonly numberFormat;
121
+ private readonly preciseFormat;
122
+ protected format(value: number): string;
123
+ /** Up to 3 decimals: scatter values are measurements, not counts. */
124
+ protected precise(value: number): string;
125
+ /** Axis tick text: just enough decimals to show every tick exactly. */
126
+ private tickFormatter;
127
+ protected color(index: number): string;
128
+ /** The series as numbers: a point of a scatter series counts as its y value. */
129
+ protected readonly numeric: import("@angular/core").Signal<readonly StarChartSeries[]>;
130
+ /** The series that are drawn: the first 8. */
131
+ protected readonly drawn: import("@angular/core").Signal<StarChartSeries[]>;
132
+ /** Table cell of a series at a category: a missing value reads as 0. */
133
+ protected cell(series: StarChartSeries | undefined, index: number): string;
134
+ protected readonly firstHeader: import("@angular/core").Signal<string>;
135
+ protected readonly xName: import("@angular/core").Signal<string>;
136
+ protected readonly yName: import("@angular/core").Signal<string>;
137
+ protected readonly valueName: import("@angular/core").Signal<string>;
138
+ protected readonly legend: import("@angular/core").Signal<{
139
+ label: string;
140
+ color: string;
141
+ shape: string;
142
+ }[]>;
143
+ /** Text of the accessible description: the kind of chart, its size and the range of values. */
144
+ protected readonly description: import("@angular/core").Signal<string>;
145
+ protected readonly stack: import("@angular/core").Signal<StarChartStackColumn[]>;
146
+ protected readonly yScale: import("@angular/core").Signal<StarChartScale>;
147
+ protected readonly ticks: import("@angular/core").Signal<readonly number[]>;
148
+ protected readonly yTick: import("@angular/core").Signal<(value: number) => string>;
149
+ protected readonly band: import("@angular/core").Signal<number>;
150
+ /** Category labels cut to the width of their column, with the full text as a title. */
151
+ protected readonly axisLabels: import("@angular/core").Signal<{
152
+ text: string;
153
+ full: string;
154
+ }[]>;
155
+ protected x(index: number): number;
156
+ protected y(value: number): number;
157
+ /** Grouped bars: 2px gap between neighbours, 4px rounded top, square base. */
158
+ protected readonly bars: import("@angular/core").Signal<{
159
+ key: string;
160
+ index: number;
161
+ path: string;
162
+ color: string;
163
+ }[]>;
164
+ /** Stacked bars: one rectangle per value that is not 0, outlined in a darker tone. */
165
+ protected readonly segments: import("@angular/core").Signal<{
166
+ key: string;
167
+ index: number;
168
+ x: number;
169
+ y: number;
170
+ width: number;
171
+ height: number;
172
+ color: string;
173
+ }[]>;
174
+ /** Share of a stack segment in its column, in percent (percent mode). */
175
+ protected share(segment: StarChartStackSegment | undefined): number;
176
+ protected readonly lines: import("@angular/core").Signal<{
177
+ label: string;
178
+ data: readonly number[];
179
+ color: string;
180
+ path: string;
181
+ area: string;
182
+ }[]>;
183
+ protected readonly total: import("@angular/core").Signal<number>;
184
+ /** Doughnut: top 3 categories + "Other" (4 slots validated for all-pairs comparison). */
185
+ protected readonly slices: import("@angular/core").Signal<{
186
+ label: string;
187
+ value: number;
188
+ percent: number;
189
+ color: string;
190
+ path: string;
191
+ }[]>;
192
+ /** Label at the end of an axis, cut to a fixed length with the full text as a title. */
193
+ private axisLabel;
194
+ /** Radar: one scale for all series, rings and spokes, one polygon and its markers per series. */
195
+ protected readonly radar: import("@angular/core").Signal<{
196
+ scale: StarChartScale;
197
+ rings: {
198
+ value: number;
199
+ radius: number;
200
+ path: string;
201
+ text: string;
202
+ }[];
203
+ spokes: {
204
+ x: number;
205
+ y: number;
206
+ }[];
207
+ labels: {
208
+ x: number;
209
+ y: number;
210
+ anchor: "start" | "middle" | "end";
211
+ dy: string;
212
+ text: string;
213
+ full: string;
214
+ }[];
215
+ hits: string[];
216
+ polygons: {
217
+ label: string;
218
+ color: string;
219
+ path: string;
220
+ vertices: {
221
+ index: number;
222
+ shape: string;
223
+ }[];
224
+ }[];
225
+ }>;
226
+ /**
227
+ * Polar area: equal angles, and the area of a sector in proportion to its value, so the radius
228
+ * grows with the square root of the value. The rings are at round values on that scale.
229
+ */
230
+ protected readonly polar: import("@angular/core").Signal<{
231
+ scale: StarChartScale;
232
+ rings: {
233
+ value: number;
234
+ radius: number;
235
+ text: string;
236
+ x: number;
237
+ y: number;
238
+ }[];
239
+ sectors: {
240
+ path: string;
241
+ hit: string;
242
+ label: {
243
+ x: number;
244
+ y: number;
245
+ anchor: "start" | "middle" | "end";
246
+ dy: string;
247
+ text: string;
248
+ full: string;
249
+ };
250
+ index: number;
251
+ value: number;
252
+ radius: number;
253
+ start: number;
254
+ end: number;
255
+ mid: number;
256
+ }[];
257
+ }>;
258
+ /** Points with a finite x and y, per series (all series, for the table). */
259
+ private readonly scatterData;
260
+ protected readonly scatterRows: import("@angular/core").Signal<{
261
+ series: string;
262
+ x: number;
263
+ y: number;
264
+ }[]>;
265
+ protected readonly scatter: import("@angular/core").Signal<{
266
+ xTicks: {
267
+ value: number;
268
+ position: number;
269
+ text: string;
270
+ }[];
271
+ yTicks: {
272
+ value: number;
273
+ position: number;
274
+ text: string;
275
+ }[];
276
+ points: {
277
+ index: number;
278
+ seriesLabel: string;
279
+ color: string;
280
+ x: number;
281
+ y: number;
282
+ px: number;
283
+ py: number;
284
+ shape: string;
285
+ legendShape: string;
286
+ }[];
287
+ }>;
288
+ static ɵfac: i0.ɵɵFactoryDeclaration<StarChart, never>;
289
+ static ɵcmp: i0.ɵɵComponentDeclaration<StarChart, "star-chart", never, {
290
+ "type": {
291
+ "alias": "type";
292
+ "required": false;
293
+ "isSignal": true;
294
+ };
295
+ "percent": {
296
+ "alias": "percent";
297
+ "required": false;
298
+ "isSignal": true;
299
+ };
300
+ "title": {
301
+ "alias": "title";
302
+ "required": true;
303
+ "isSignal": true;
304
+ };
305
+ "labels": {
306
+ "alias": "labels";
307
+ "required": false;
308
+ "isSignal": true;
309
+ };
310
+ "series": {
311
+ "alias": "series";
312
+ "required": false;
313
+ "isSignal": true;
314
+ };
315
+ "categoryLabel": {
316
+ "alias": "categoryLabel";
317
+ "required": false;
318
+ "isSignal": true;
319
+ };
320
+ "valueLabel": {
321
+ "alias": "valueLabel";
322
+ "required": false;
323
+ "isSignal": true;
324
+ };
325
+ "locale": {
326
+ "alias": "locale";
327
+ "required": false;
328
+ "isSignal": true;
329
+ };
330
+ "table": {
331
+ "alias": "table";
332
+ "required": false;
333
+ "isSignal": true;
334
+ };
335
+ }, {}, never, never, true, never>;
336
+ }
337
+ export {};
@@ -0,0 +1,92 @@
1
+ import { FormCheckboxControl } from "@angular/forms/signals";
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Checkbox (PrimeNG `p-checkbox` binary mode). Native `<input type="checkbox">` for full
5
+ * keyboard and screen-reader support, with the StarNG box drawn over it.
6
+ *
7
+ * Signal Forms: `<star-checkbox [formField]="form.terms">I agree</star-checkbox>`
8
+ * Standalone: `<star-checkbox [(checked)]="agree" [indeterminate]="some">Label</star-checkbox>`
9
+ */
10
+ export declare class StarCheckbox implements FormCheckboxControl {
11
+ readonly checked: import("@angular/core").ModelSignal<boolean>;
12
+ /** Mixed state ("some selected"). Cleared when the user toggles the box. */
13
+ readonly indeterminate: import("@angular/core").ModelSignal<boolean>;
14
+ readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
15
+ readonly readonly: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
16
+ readonly required: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
17
+ readonly invalid: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
18
+ readonly touched: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
19
+ readonly name: import("@angular/core").InputSignal<string>;
20
+ readonly inputId: import("@angular/core").InputSignal<string>;
21
+ readonly ariaLabel: import("@angular/core").InputSignal<string | null>;
22
+ readonly ariaDescribedBy: import("@angular/core").InputSignal<string | null>;
23
+ /** Signal Forms touch notification. */
24
+ readonly touch: import("@angular/core").OutputEmitterRef<void>;
25
+ private readonly box;
26
+ /** Errors show only after the user has visited the control. */
27
+ protected readonly showInvalid: import("@angular/core").Signal<boolean>;
28
+ protected onChange(box: HTMLInputElement): void;
29
+ focus(options?: FocusOptions): void;
30
+ static ɵfac: i0.ɵɵFactoryDeclaration<StarCheckbox, never>;
31
+ static ɵcmp: i0.ɵɵComponentDeclaration<StarCheckbox, "star-checkbox", never, {
32
+ "checked": {
33
+ "alias": "checked";
34
+ "required": false;
35
+ "isSignal": true;
36
+ };
37
+ "indeterminate": {
38
+ "alias": "indeterminate";
39
+ "required": false;
40
+ "isSignal": true;
41
+ };
42
+ "disabled": {
43
+ "alias": "disabled";
44
+ "required": false;
45
+ "isSignal": true;
46
+ };
47
+ "readonly": {
48
+ "alias": "readonly";
49
+ "required": false;
50
+ "isSignal": true;
51
+ };
52
+ "required": {
53
+ "alias": "required";
54
+ "required": false;
55
+ "isSignal": true;
56
+ };
57
+ "invalid": {
58
+ "alias": "invalid";
59
+ "required": false;
60
+ "isSignal": true;
61
+ };
62
+ "touched": {
63
+ "alias": "touched";
64
+ "required": false;
65
+ "isSignal": true;
66
+ };
67
+ "name": {
68
+ "alias": "name";
69
+ "required": false;
70
+ "isSignal": true;
71
+ };
72
+ "inputId": {
73
+ "alias": "inputId";
74
+ "required": false;
75
+ "isSignal": true;
76
+ };
77
+ "ariaLabel": {
78
+ "alias": "ariaLabel";
79
+ "required": false;
80
+ "isSignal": true;
81
+ };
82
+ "ariaDescribedBy": {
83
+ "alias": "ariaDescribedBy";
84
+ "required": false;
85
+ "isSignal": true;
86
+ };
87
+ }, {
88
+ "checked": "checkedChange";
89
+ "indeterminate": "indeterminateChange";
90
+ "touch": "touch";
91
+ }, never, ["*"], true, never>;
92
+ }