@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,161 @@
1
+ import * as i0 from "@angular/core";
2
+ import { TemplateRef } from "@angular/core";
3
+ /** Slide template: `<ng-template starCarouselItem let-item>`. */
4
+ export declare class StarCarouselItem<T = unknown> {
5
+ readonly starCarouselItemOf: import("@angular/core").InputSignal<readonly T[] | null>;
6
+ readonly template: TemplateRef<{
7
+ $implicit: T;
8
+ index: number;
9
+ }>;
10
+ static ngTemplateContextGuard<T>(_dir: StarCarouselItem<T>, _ctx: unknown): _ctx is {
11
+ $implicit: T;
12
+ index: number;
13
+ };
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<StarCarouselItem<any>, never>;
15
+ static ɵdir: i0.ɵɵDirectiveDeclaration<StarCarouselItem<any>, "ng-template[starCarouselItem]", never, {
16
+ "starCarouselItemOf": {
17
+ "alias": "starCarouselItemOf";
18
+ "required": false;
19
+ "isSignal": true;
20
+ };
21
+ }, {}, never, never, true, never>;
22
+ }
23
+ /**
24
+ * Carousel (PrimeNG `p-carousel`) on CSS scroll snap: swipe and trackpad work natively,
25
+ * previous / next buttons, page dots, `numVisible` items per page, optional autoplay with a
26
+ * pause button (WCAG 2.2.2) that also pauses on hover and focus.
27
+ *
28
+ * `<star-carousel [items]="news" [numVisible]="3" ariaLabel="News"><ng-template starCarouselItem let-n>…</ng-template></star-carousel>`
29
+ */
30
+ export declare class StarCarousel<T = unknown> {
31
+ protected readonly text: import("@star-ng/ui/core").StarUiText;
32
+ /** The slides: one item per slide. The `starCarouselItem` template draws each item. */
33
+ readonly items: import("@angular/core").InputSignal<readonly T[]>;
34
+ /** Number of slides in one page. */
35
+ readonly numVisible: import("@angular/core").InputSignal<number>;
36
+ /** Autoplay interval in milliseconds (0 = off). */
37
+ readonly autoplay: import("@angular/core").InputSignal<number>;
38
+ /** Accessible name of the carousel region. */
39
+ readonly ariaLabel: import("@angular/core").InputSignal<string | null>;
40
+ protected readonly itemTemplate: import("@angular/core").Signal<StarCarouselItem<any> | undefined>;
41
+ private readonly track;
42
+ protected readonly page: import("@angular/core").WritableSignal<number>;
43
+ protected readonly playing: import("@angular/core").WritableSignal<boolean>;
44
+ protected readonly hovering: import("@angular/core").WritableSignal<boolean>;
45
+ protected readonly pages: import("@angular/core").Signal<number>;
46
+ protected readonly dots: import("@angular/core").Signal<number[]>;
47
+ constructor();
48
+ goTo(page: number): void;
49
+ /** Pixels to scroll so that the inline-start edge of the slide meets the one of the track. */
50
+ private distanceToStart;
51
+ /** Keeps dots in sync after a swipe. */
52
+ protected syncPage(): void;
53
+ static ɵfac: i0.ɵɵFactoryDeclaration<StarCarousel<any>, never>;
54
+ static ɵcmp: i0.ɵɵComponentDeclaration<StarCarousel<any>, "star-carousel", never, {
55
+ "items": {
56
+ "alias": "items";
57
+ "required": false;
58
+ "isSignal": true;
59
+ };
60
+ "numVisible": {
61
+ "alias": "numVisible";
62
+ "required": false;
63
+ "isSignal": true;
64
+ };
65
+ "autoplay": {
66
+ "alias": "autoplay";
67
+ "required": false;
68
+ "isSignal": true;
69
+ };
70
+ "ariaLabel": {
71
+ "alias": "ariaLabel";
72
+ "required": false;
73
+ "isSignal": true;
74
+ };
75
+ }, {}, ["itemTemplate"], never, true, never>;
76
+ }
77
+ export interface StarGalleryImage {
78
+ readonly src: string;
79
+ readonly thumbnail?: string;
80
+ readonly alt: string;
81
+ readonly caption?: string;
82
+ }
83
+ /**
84
+ * Image gallery (PrimeNG `p-galleria`): main image with caption, previous / next, Arrow keys,
85
+ * and a thumbnail strip (`aria-current` on the active one).
86
+ * `<star-galleria [images]="photos" [(activeIndex)]="current" />`
87
+ */
88
+ export declare class StarGalleria {
89
+ protected readonly text: import("@star-ng/ui/core").StarUiText;
90
+ /** The images: `src`, `alt`, and optional `thumbnail` and `caption`. */
91
+ readonly images: import("@angular/core").InputSignal<readonly StarGalleryImage[]>;
92
+ /** Index of the image on show. */
93
+ readonly activeIndex: import("@angular/core").ModelSignal<number>;
94
+ /** Accessible name of the gallery region (default: the `galleryLabel` text). */
95
+ readonly ariaLabel: import("@angular/core").InputSignal<string | null>;
96
+ protected readonly current: import("@angular/core").Signal<StarGalleryImage>;
97
+ step(delta: number): void;
98
+ protected onKeydown(event: KeyboardEvent): void;
99
+ static ɵfac: i0.ɵɵFactoryDeclaration<StarGalleria, never>;
100
+ static ɵcmp: i0.ɵɵComponentDeclaration<StarGalleria, "star-galleria", never, {
101
+ "images": {
102
+ "alias": "images";
103
+ "required": false;
104
+ "isSignal": true;
105
+ };
106
+ "activeIndex": {
107
+ "alias": "activeIndex";
108
+ "required": false;
109
+ "isSignal": true;
110
+ };
111
+ "ariaLabel": {
112
+ "alias": "ariaLabel";
113
+ "required": false;
114
+ "isSignal": true;
115
+ };
116
+ }, {
117
+ "activeIndex": "activeIndexChange";
118
+ }, never, never, true, never>;
119
+ }
120
+ /**
121
+ * Image with preview (PrimeNG `p-image [preview]`): lazy-loaded thumbnail; click opens the
122
+ * full image in a modal `star-dialog` with zoom in / out.
123
+ * `<star-image src="label.png" alt="Product label" width="160" preview />`
124
+ */
125
+ export declare class StarImage {
126
+ protected readonly text: import("@star-ng/ui/core").StarUiText;
127
+ /** Image address. */
128
+ readonly src: import("@angular/core").InputSignal<string>;
129
+ /** Alternative text. It is also the title of the preview dialog. */
130
+ readonly alt: import("@angular/core").InputSignal<string>;
131
+ /** Width attribute of the thumbnail. */
132
+ readonly width: import("@angular/core").InputSignal<string | number | null>;
133
+ /** The image opens in a dialog with zoom buttons when the user activates it. */
134
+ readonly preview: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
135
+ protected readonly open: import("@angular/core").WritableSignal<boolean>;
136
+ protected readonly zoom: import("@angular/core").WritableSignal<number>;
137
+ protected readonly id: string;
138
+ static ɵfac: i0.ɵɵFactoryDeclaration<StarImage, never>;
139
+ static ɵcmp: i0.ɵɵComponentDeclaration<StarImage, "star-image", never, {
140
+ "src": {
141
+ "alias": "src";
142
+ "required": true;
143
+ "isSignal": true;
144
+ };
145
+ "alt": {
146
+ "alias": "alt";
147
+ "required": true;
148
+ "isSignal": true;
149
+ };
150
+ "width": {
151
+ "alias": "width";
152
+ "required": false;
153
+ "isSignal": true;
154
+ };
155
+ "preview": {
156
+ "alias": "preview";
157
+ "required": false;
158
+ "isSignal": true;
159
+ };
160
+ }, {}, never, never, true, never>;
161
+ }
@@ -0,0 +1,332 @@
1
+ import * as i1 from "@angular/cdk/menu";
2
+ import { CdkContextMenuTrigger, CdkMenuTrigger } from "@angular/cdk/menu";
3
+ import { ConnectedPosition } from "@angular/cdk/overlay";
4
+ import * as i0 from "@angular/core";
5
+ import { TemplateRef } from "@angular/core";
6
+ import { StarButtonSize, StarButtonVariant } from "@star-ng/ui/button";
7
+ /** One menu entry (PrimeNG `MenuItem`). `items` makes a submenu (tiered menu). */
8
+ export interface StarMenuItem {
9
+ readonly label?: string;
10
+ /** Phosphor icon class, for example `ph-bold ph-pencil-simple`. */
11
+ readonly icon?: string;
12
+ readonly command?: (item: StarMenuItem) => void;
13
+ /** Router link; renders the entry as an `<a>`. */
14
+ readonly routerLink?: string | readonly unknown[];
15
+ /** External link; renders an `<a href>`. */
16
+ readonly url?: string;
17
+ readonly disabled?: boolean;
18
+ /** Renders a divider instead of an entry. */
19
+ readonly separator?: boolean;
20
+ /** Danger styling, for destructive actions. */
21
+ readonly danger?: boolean;
22
+ /** Keyboard hint shown at the end, for example `Ctrl+E`. */
23
+ readonly shortcut?: string;
24
+ readonly items?: readonly StarMenuItem[];
25
+ }
26
+ export declare const STAR_MENU_POSITIONS: ConnectedPosition[];
27
+ /**
28
+ * Makes the popup of a CDK menu trigger usable inside a modal `<dialog>`.
29
+ *
30
+ * A modal dialog makes the rest of the page inert. CDK puts a menu popup in the overlay
31
+ * container, outside the dialog, so the popup shows but takes no click and no key. When the
32
+ * trigger is inside a `<dialog>`, the popup goes into that dialog instead.
33
+ *
34
+ * CDK has no public option for this on `CdkMenuTrigger`, so this wraps its position
35
+ * strategy factory. If a CDK update removes that factory, this does nothing and the e2e test
36
+ * "popups inside a modal dialog" fails.
37
+ */
38
+ export declare function keepMenuInsideDialog(trigger: CdkMenuTrigger | CdkContextMenuTrigger, element: HTMLElement): void;
39
+ /**
40
+ * Applies `keepMenuInsideDialog` to every `cdkMenuTriggerFor` in a template that imports it
41
+ * (submenus, menu bar items, cascade select).
42
+ */
43
+ export declare class StarMenuInDialog {
44
+ constructor();
45
+ static ɵfac: i0.ɵɵFactoryDeclaration<StarMenuInDialog, never>;
46
+ static ɵdir: i0.ɵɵDirectiveDeclaration<StarMenuInDialog, "[cdkMenuTriggerFor]", never, {}, {}, never, never, true, never>;
47
+ }
48
+ /**
49
+ * Menu (PrimeNG `p-menu` + `p-tieredmenu`) on CDK Menu: roving focus, typeahead, submenus
50
+ * with pointer aim, Escape and focus return come from `@angular/cdk/menu`.
51
+ *
52
+ * Popup: `<star-button [starMenuTrigger]="rowMenu">…</star-button> <star-menu #rowMenu [items]="actions" />`
53
+ * Inline: `<star-menu inline [items]="nav" />`
54
+ *
55
+ * The popup is a native popover. Inside a modal `star-dialog` it goes into the dialog
56
+ * (`keepMenuInsideDialog`), so it stays usable there.
57
+ */
58
+ export declare class StarMenu {
59
+ /** Keeps the CDK direction (overlays and menus) in step with `<html dir>`. */
60
+ private readonly directionSync;
61
+ readonly items: import("@angular/core").InputSignal<readonly StarMenuItem[]>;
62
+ /** Renders the menu in place instead of as a popup. */
63
+ readonly inline: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
64
+ readonly ariaLabel: import("@angular/core").InputSignal<string | null>;
65
+ readonly itemClick: import("@angular/core").OutputEmitterRef<StarMenuItem>;
66
+ /** Root menu template, opened by `starMenuTrigger`. */
67
+ readonly template: import("@angular/core").Signal<TemplateRef<unknown>>;
68
+ protected run(item: StarMenuItem): void;
69
+ static ɵfac: i0.ɵɵFactoryDeclaration<StarMenu, never>;
70
+ static ɵcmp: i0.ɵɵComponentDeclaration<StarMenu, "star-menu", never, {
71
+ "items": {
72
+ "alias": "items";
73
+ "required": false;
74
+ "isSignal": true;
75
+ };
76
+ "inline": {
77
+ "alias": "inline";
78
+ "required": false;
79
+ "isSignal": true;
80
+ };
81
+ "ariaLabel": {
82
+ "alias": "ariaLabel";
83
+ "required": false;
84
+ "isSignal": true;
85
+ };
86
+ }, {
87
+ "itemClick": "itemClick";
88
+ }, never, never, true, never>;
89
+ }
90
+ /**
91
+ * Opens an `star-menu` as a popup from any element (button, icon button, row action).
92
+ * Adds `aria-haspopup`, `aria-expanded`, Arrow Down / Enter / Space to open.
93
+ */
94
+ export declare class StarMenuTrigger {
95
+ /** Keeps the CDK direction (overlays and menus) in step with `<html dir>`. */
96
+ private readonly directionSync;
97
+ readonly starMenuTrigger: import("@angular/core").InputSignal<StarMenu>;
98
+ private readonly trigger;
99
+ private readonly host;
100
+ constructor();
101
+ /**
102
+ * CDK opens a menu on Enter or Space itself, unless the host is a native button (then the
103
+ * native click does it). On a wrapper such as `<star-button>` the host is no button, so CDK
104
+ * would toggle on the key and the native click of the inner button would toggle again: the
105
+ * menu opens and closes at once. The key stays with the inner button; its click opens the menu.
106
+ * (Arrow down and Arrow up are still handled by CDK.)
107
+ *
108
+ * CDK also calls `focus()` on the host to return the focus when the menu closes. A wrapper
109
+ * cannot take focus, so the call goes to the inner button.
110
+ */
111
+ private adaptWrapperHost;
112
+ /**
113
+ * On a wrapper such as `<star-button>`, the real button is inside the host. CDK gives the
114
+ * host `role="button"`, which makes two nested buttons for assistive technology. The host
115
+ * becomes presentational and the inner button gets the popup state.
116
+ */
117
+ private syncInnerButton;
118
+ static ɵfac: i0.ɵɵFactoryDeclaration<StarMenuTrigger, never>;
119
+ static ɵdir: i0.ɵɵDirectiveDeclaration<StarMenuTrigger, "[starMenuTrigger]", never, {
120
+ "starMenuTrigger": {
121
+ "alias": "starMenuTrigger";
122
+ "required": true;
123
+ "isSignal": true;
124
+ };
125
+ }, {}, never, never, true, [{
126
+ directive: typeof i1.CdkMenuTrigger;
127
+ inputs: {};
128
+ outputs: {
129
+ "cdkMenuOpened": "menuOpened";
130
+ "cdkMenuClosed": "menuClosed";
131
+ };
132
+ }]>;
133
+ }
134
+ /**
135
+ * Split button (PrimeNG `p-splitbutton`): a main action plus a menu of related actions.
136
+ * `<star-split-button label="Send response" [items]="sendOptions" (pressed)="send()" />`
137
+ */
138
+ export declare class StarSplitButton {
139
+ protected readonly text: import("@star-ng/ui/core").StarUiText;
140
+ readonly label: import("@angular/core").InputSignal<string>;
141
+ readonly icon: import("@angular/core").InputSignal<string | null>;
142
+ readonly items: import("@angular/core").InputSignal<readonly StarMenuItem[]>;
143
+ readonly variant: import("@angular/core").InputSignal<StarButtonVariant>;
144
+ readonly size: import("@angular/core").InputSignal<StarButtonSize>;
145
+ readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
146
+ readonly pressed: import("@angular/core").OutputEmitterRef<MouseEvent>;
147
+ readonly itemClick: import("@angular/core").OutputEmitterRef<StarMenuItem>;
148
+ static ɵfac: i0.ɵɵFactoryDeclaration<StarSplitButton, never>;
149
+ static ɵcmp: i0.ɵɵComponentDeclaration<StarSplitButton, "star-split-button", never, {
150
+ "label": {
151
+ "alias": "label";
152
+ "required": true;
153
+ "isSignal": true;
154
+ };
155
+ "icon": {
156
+ "alias": "icon";
157
+ "required": false;
158
+ "isSignal": true;
159
+ };
160
+ "items": {
161
+ "alias": "items";
162
+ "required": false;
163
+ "isSignal": true;
164
+ };
165
+ "variant": {
166
+ "alias": "variant";
167
+ "required": false;
168
+ "isSignal": true;
169
+ };
170
+ "size": {
171
+ "alias": "size";
172
+ "required": false;
173
+ "isSignal": true;
174
+ };
175
+ "disabled": {
176
+ "alias": "disabled";
177
+ "required": false;
178
+ "isSignal": true;
179
+ };
180
+ }, {
181
+ "pressed": "pressed";
182
+ "itemClick": "itemClick";
183
+ }, never, never, true, never>;
184
+ }
185
+ /**
186
+ * Mega menu (PrimeNG `p-megamenu`) on CDK Menu Bar: a top-level item opens one wide panel
187
+ * with its child items as columns. Three levels of `StarMenuItem`:
188
+ *
189
+ * 1. top-level item (the bar),
190
+ * 2. its `items`: the columns (`label` is the column heading),
191
+ * 3. each column's `items`: the links or actions.
192
+ *
193
+ * A top-level item without `items` is a plain link or action. Keyboard: Left / Right on the
194
+ * bar, Down opens a panel, Up / Down move through all items of the panel, Escape closes.
195
+ *
196
+ * `<star-mega-menu ariaLabel="Products" [items]="catalogue" />`
197
+ */
198
+ export declare class StarMegaMenu {
199
+ /** Keeps the CDK direction (overlays and menus) in step with `<html dir>`. */
200
+ private readonly directionSync;
201
+ readonly items: import("@angular/core").InputSignal<readonly StarMenuItem[]>;
202
+ readonly ariaLabel: import("@angular/core").InputSignal<string | null>;
203
+ readonly itemClick: import("@angular/core").OutputEmitterRef<StarMenuItem>;
204
+ protected readonly positions: import("@angular/cdk/overlay").ConnectedPosition[];
205
+ protected readonly panelId: string;
206
+ protected run(item: StarMenuItem): void;
207
+ static ɵfac: i0.ɵɵFactoryDeclaration<StarMegaMenu, never>;
208
+ static ɵcmp: i0.ɵɵComponentDeclaration<StarMegaMenu, "star-mega-menu", never, {
209
+ "items": {
210
+ "alias": "items";
211
+ "required": false;
212
+ "isSignal": true;
213
+ };
214
+ "ariaLabel": {
215
+ "alias": "ariaLabel";
216
+ "required": false;
217
+ "isSignal": true;
218
+ };
219
+ }, {
220
+ "itemClick": "itemClick";
221
+ }, never, never, true, never>;
222
+ }
223
+ /**
224
+ * Menu bar (PrimeNG `p-menubar`) on CDK Menu Bar: top-level items with dropdown submenus,
225
+ * Left / Right between items, Down opens, typeahead, Escape closes. Uses `star-menu` for the
226
+ * submenus, so nesting works to any depth.
227
+ *
228
+ * `<star-menubar ariaLabel="Main" [items]="nav"><star-button starMenubarEnd>…</star-button></star-menubar>`
229
+ */
230
+ export declare class StarMenubar {
231
+ /** Keeps the CDK direction (overlays and menus) in step with `<html dir>`. */
232
+ private readonly directionSync;
233
+ readonly items: import("@angular/core").InputSignal<readonly StarMenuItem[]>;
234
+ readonly ariaLabel: import("@angular/core").InputSignal<string | null>;
235
+ readonly itemClick: import("@angular/core").OutputEmitterRef<StarMenuItem>;
236
+ protected run(item: StarMenuItem): void;
237
+ static ɵfac: i0.ɵɵFactoryDeclaration<StarMenubar, never>;
238
+ static ɵcmp: i0.ɵɵComponentDeclaration<StarMenubar, "star-menubar", never, {
239
+ "items": {
240
+ "alias": "items";
241
+ "required": false;
242
+ "isSignal": true;
243
+ };
244
+ "ariaLabel": {
245
+ "alias": "ariaLabel";
246
+ "required": false;
247
+ "isSignal": true;
248
+ };
249
+ }, {
250
+ "itemClick": "itemClick";
251
+ }, never, ["[starMenubarStart]", "[starMenubarEnd]"], true, never>;
252
+ }
253
+ /**
254
+ * Right-click (and Shift+F10 / context-menu key) menu on any element (PrimeNG `p-contextmenu`).
255
+ * `<tr [starContextMenu]="rowMenu">…</tr> <star-menu #rowMenu [items]="rowActions" />`
256
+ *
257
+ * Inside a modal `star-dialog` the menu goes into the dialog (`keepMenuInsideDialog`).
258
+ */
259
+ export declare class StarContextMenu {
260
+ /** Keeps the CDK direction (overlays and menus) in step with `<html dir>`. */
261
+ private readonly directionSync;
262
+ readonly starContextMenu: import("@angular/core").InputSignal<StarMenu>;
263
+ private readonly trigger;
264
+ constructor();
265
+ static ɵfac: i0.ɵɵFactoryDeclaration<StarContextMenu, never>;
266
+ static ɵdir: i0.ɵɵDirectiveDeclaration<StarContextMenu, "[starContextMenu]", never, {
267
+ "starContextMenu": {
268
+ "alias": "starContextMenu";
269
+ "required": true;
270
+ "isSignal": true;
271
+ };
272
+ }, {}, never, never, true, [{
273
+ directive: typeof i1.CdkContextMenuTrigger;
274
+ inputs: {};
275
+ outputs: {
276
+ "cdkContextMenuOpened": "menuOpened";
277
+ "cdkContextMenuClosed": "menuClosed";
278
+ };
279
+ }]>;
280
+ }
281
+ /**
282
+ * Panel menu (PrimeNG `p-panelmenu`): a vertical menu where an item with child items opens
283
+ * and closes in place, to any depth. Use it for side navigation with sections.
284
+ *
285
+ * Each parent is a button with `aria-expanded`; each leaf is a link or a button. Tab moves
286
+ * through the open items; Enter or Space opens a section or runs an item.
287
+ *
288
+ * `<star-panel-menu ariaLabel="Settings" [items]="sections" [(expandedKeys)]="open" />`
289
+ *
290
+ * An item is identified by its position (`0`, `0.2`, `1.0.3`) in `expandedKeys`.
291
+ */
292
+ export declare class StarPanelMenu {
293
+ private readonly id;
294
+ readonly items: import("@angular/core").InputSignal<readonly StarMenuItem[]>;
295
+ readonly ariaLabel: import("@angular/core").InputSignal<string | null>;
296
+ /** Open one section at a time: opening a section closes its sibling sections. */
297
+ readonly single: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
298
+ /** Positions of the open sections (`'0'`, `'0.2'`). Two-way. */
299
+ readonly expandedKeys: import("@angular/core").ModelSignal<readonly string[]>;
300
+ readonly itemClick: import("@angular/core").OutputEmitterRef<StarMenuItem>;
301
+ protected isOpen(key: string): boolean;
302
+ protected regionId(key: string): string;
303
+ /** Opens or closes the section at a position. */
304
+ toggle(key: string): void;
305
+ protected run(item: StarMenuItem): void;
306
+ static ɵfac: i0.ɵɵFactoryDeclaration<StarPanelMenu, never>;
307
+ static ɵcmp: i0.ɵɵComponentDeclaration<StarPanelMenu, "star-panel-menu", never, {
308
+ "items": {
309
+ "alias": "items";
310
+ "required": false;
311
+ "isSignal": true;
312
+ };
313
+ "ariaLabel": {
314
+ "alias": "ariaLabel";
315
+ "required": false;
316
+ "isSignal": true;
317
+ };
318
+ "single": {
319
+ "alias": "single";
320
+ "required": false;
321
+ "isSignal": true;
322
+ };
323
+ "expandedKeys": {
324
+ "alias": "expandedKeys";
325
+ "required": false;
326
+ "isSignal": true;
327
+ };
328
+ }, {
329
+ "expandedKeys": "expandedKeysChange";
330
+ "itemClick": "itemClick";
331
+ }, never, never, true, never>;
332
+ }
@@ -0,0 +1,52 @@
1
+ import * as i0 from "@angular/core";
2
+ import { OnInit } from "@angular/core";
3
+ export type StarMessageSeverity = 'success' | 'info' | 'warn' | 'error';
4
+ /**
5
+ * Inline message (PrimeNG `p-message`): severity, icon, optional close and auto-hide `life`.
6
+ * `<star-message severity="warn" closable>Draft not saved.</star-message>`
7
+ */
8
+ export declare class StarMessage implements OnInit {
9
+ protected readonly text: import("@star-ng/ui/core").StarUiText;
10
+ private readonly destroyRef;
11
+ readonly severity: import("@angular/core").InputSignal<StarMessageSeverity>;
12
+ readonly variant: import("@angular/core").InputSignal<"soft" | "outlined">;
13
+ readonly icon: import("@angular/core").InputSignal<string | null>;
14
+ readonly closable: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
15
+ /** Milliseconds before the message hides itself (0 = stays). */
16
+ readonly life: import("@angular/core").InputSignal<number>;
17
+ readonly closed: import("@angular/core").OutputEmitterRef<void>;
18
+ protected readonly visible: import("@angular/core").WritableSignal<boolean>;
19
+ protected readonly iconClass: import("@angular/core").Signal<string>;
20
+ ngOnInit(): void;
21
+ close(): void;
22
+ static ɵfac: i0.ɵɵFactoryDeclaration<StarMessage, never>;
23
+ static ɵcmp: i0.ɵɵComponentDeclaration<StarMessage, "star-message", never, {
24
+ "severity": {
25
+ "alias": "severity";
26
+ "required": false;
27
+ "isSignal": true;
28
+ };
29
+ "variant": {
30
+ "alias": "variant";
31
+ "required": false;
32
+ "isSignal": true;
33
+ };
34
+ "icon": {
35
+ "alias": "icon";
36
+ "required": false;
37
+ "isSignal": true;
38
+ };
39
+ "closable": {
40
+ "alias": "closable";
41
+ "required": false;
42
+ "isSignal": true;
43
+ };
44
+ "life": {
45
+ "alias": "life";
46
+ "required": false;
47
+ "isSignal": true;
48
+ };
49
+ }, {
50
+ "closed": "closed";
51
+ }, never, ["*"], true, never>;
52
+ }
@@ -0,0 +1,85 @@
1
+ import * as i0 from "@angular/core";
2
+ export interface StarPageEvent {
3
+ /** Index of the first record on the page (0-based). */
4
+ readonly first: number;
5
+ readonly rows: number;
6
+ /** Page index (0-based). */
7
+ readonly page: number;
8
+ readonly pageCount: number;
9
+ }
10
+ /**
11
+ * Paginator (PrimeNG `p-paginator`): `[(first)]` / `[(rows)]`, page links window,
12
+ * first / last buttons, rows-per-page select and a "1–10 of 240" report.
13
+ *
14
+ * `<star-paginator [totalRecords]="240" [(first)]="first" [(rows)]="rows" />`
15
+ */
16
+ export declare class StarPaginator {
17
+ protected readonly text: import("@star-ng/ui/core").StarUiText;
18
+ protected readonly rowsId: string;
19
+ readonly totalRecords: import("@angular/core").InputSignal<number>;
20
+ readonly first: import("@angular/core").ModelSignal<number>;
21
+ readonly rows: import("@angular/core").ModelSignal<number>;
22
+ readonly rowsPerPageOptions: import("@angular/core").InputSignal<readonly number[]>;
23
+ /** Number of page links shown around the current page. */
24
+ readonly pageLinkSize: import("@angular/core").InputSignal<number>;
25
+ readonly showCurrentPageReport: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
26
+ readonly showFirstLast: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
27
+ readonly ariaLabel: import("@angular/core").InputSignal<string | null>;
28
+ readonly pageChange: import("@angular/core").OutputEmitterRef<StarPageEvent>;
29
+ readonly pageCount: import("@angular/core").Signal<number>;
30
+ readonly page: import("@angular/core").Signal<number>;
31
+ protected readonly isFirst: import("@angular/core").Signal<boolean>;
32
+ protected readonly isLast: import("@angular/core").Signal<boolean>;
33
+ protected readonly links: import("@angular/core").Signal<number[]>;
34
+ protected readonly report: import("@angular/core").Signal<string>;
35
+ goTo(page: number): void;
36
+ protected changeRows(rows: number): void;
37
+ private emit;
38
+ static ɵfac: i0.ɵɵFactoryDeclaration<StarPaginator, never>;
39
+ static ɵcmp: i0.ɵɵComponentDeclaration<StarPaginator, "star-paginator", never, {
40
+ "totalRecords": {
41
+ "alias": "totalRecords";
42
+ "required": false;
43
+ "isSignal": true;
44
+ };
45
+ "first": {
46
+ "alias": "first";
47
+ "required": false;
48
+ "isSignal": true;
49
+ };
50
+ "rows": {
51
+ "alias": "rows";
52
+ "required": false;
53
+ "isSignal": true;
54
+ };
55
+ "rowsPerPageOptions": {
56
+ "alias": "rowsPerPageOptions";
57
+ "required": false;
58
+ "isSignal": true;
59
+ };
60
+ "pageLinkSize": {
61
+ "alias": "pageLinkSize";
62
+ "required": false;
63
+ "isSignal": true;
64
+ };
65
+ "showCurrentPageReport": {
66
+ "alias": "showCurrentPageReport";
67
+ "required": false;
68
+ "isSignal": true;
69
+ };
70
+ "showFirstLast": {
71
+ "alias": "showFirstLast";
72
+ "required": false;
73
+ "isSignal": true;
74
+ };
75
+ "ariaLabel": {
76
+ "alias": "ariaLabel";
77
+ "required": false;
78
+ "isSignal": true;
79
+ };
80
+ }, {
81
+ "first": "firstChange";
82
+ "rows": "rowsChange";
83
+ "pageChange": "pageChange";
84
+ }, never, never, true, never>;
85
+ }