@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,464 @@
1
+ import { _IdGenerator } from "@angular/cdk/a11y";
2
+ import { NgTemplateOutlet } from "@angular/common";
3
+ import * as i0 from "@angular/core";
4
+ import { ChangeDetectionStrategy, Component, Directive, TemplateRef, booleanAttribute, computed, contentChild, contentChildren, forwardRef, inject, input, linkedSignal, model, output, viewChildren } from "@angular/core";
5
+ import { starInlineKey } from "@star-ng/ui/core";
6
+ var StarTabContent = class StarTabContent {
7
+ template = inject(TemplateRef);
8
+ static ɵfac = i0.ɵɵngDeclareFactory({
9
+ minVersion: "12.0.0",
10
+ version: "22.2.6",
11
+ ngImport: i0,
12
+ type: StarTabContent,
13
+ deps: [],
14
+ target: i0.ɵɵFactoryTarget.Directive
15
+ });
16
+ static ɵdir = i0.ɵɵngDeclareDirective({
17
+ minVersion: "14.0.0",
18
+ version: "22.2.6",
19
+ type: StarTabContent,
20
+ isStandalone: true,
21
+ selector: "ng-template[starTabContent]",
22
+ ngImport: i0
23
+ });
24
+ };
25
+ i0.ɵɵngDeclareClassMetadata({
26
+ minVersion: "12.0.0",
27
+ version: "22.2.6",
28
+ ngImport: i0,
29
+ type: StarTabContent,
30
+ decorators: [{
31
+ type: Directive,
32
+ args: [{ selector: "ng-template[starTabContent]" }]
33
+ }]
34
+ });
35
+ var StarTab = class StarTab {
36
+ tabs = inject(forwardRef(() => StarTabs));
37
+ ids = inject(_IdGenerator);
38
+ value = input.required(...ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []);
39
+ label = input.required(...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
40
+ icon = input(null, ...ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []);
41
+ badge = input(null, ...ngDevMode ? [{ debugName: "badge" }] : /* istanbul ignore next */ []);
42
+ disabled = input(false, {
43
+ ...ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {},
44
+ transform: booleanAttribute
45
+ });
46
+ tabId = this.ids.getId("star-tab-");
47
+ panelId = this.ids.getId("star-tabpanel-");
48
+ lazy = contentChild(StarTabContent, ...ngDevMode ? [{ debugName: "lazy" }] : /* istanbul ignore next */ []);
49
+ active = computed(() => this.tabs.selected() === this.value(), ...ngDevMode ? [{ debugName: "active" }] : /* istanbul ignore next */ []);
50
+ rendered = linkedSignal({
51
+ ...ngDevMode ? { debugName: "rendered" } : /* istanbul ignore next */ {},
52
+ source: this.active,
53
+ computation: (active, previous) => active || (previous?.value ?? false)
54
+ });
55
+ static ɵfac = i0.ɵɵngDeclareFactory({
56
+ minVersion: "12.0.0",
57
+ version: "22.2.6",
58
+ ngImport: i0,
59
+ type: StarTab,
60
+ deps: [],
61
+ target: i0.ɵɵFactoryTarget.Component
62
+ });
63
+ static ɵcmp = i0.ɵɵngDeclareComponent({
64
+ minVersion: "17.0.0",
65
+ version: "22.2.6",
66
+ type: StarTab,
67
+ isStandalone: true,
68
+ selector: "star-tab",
69
+ inputs: {
70
+ value: {
71
+ classPropertyName: "value",
72
+ publicName: "value",
73
+ isSignal: true,
74
+ isRequired: true,
75
+ transformFunction: null
76
+ },
77
+ label: {
78
+ classPropertyName: "label",
79
+ publicName: "label",
80
+ isSignal: true,
81
+ isRequired: true,
82
+ transformFunction: null
83
+ },
84
+ icon: {
85
+ classPropertyName: "icon",
86
+ publicName: "icon",
87
+ isSignal: true,
88
+ isRequired: false,
89
+ transformFunction: null
90
+ },
91
+ badge: {
92
+ classPropertyName: "badge",
93
+ publicName: "badge",
94
+ isSignal: true,
95
+ isRequired: false,
96
+ transformFunction: null
97
+ },
98
+ disabled: {
99
+ classPropertyName: "disabled",
100
+ publicName: "disabled",
101
+ isSignal: true,
102
+ isRequired: false,
103
+ transformFunction: null
104
+ }
105
+ },
106
+ host: {
107
+ attributes: {
108
+ "role": "tabpanel",
109
+ "tabindex": "0"
110
+ },
111
+ properties: {
112
+ "id": "panelId",
113
+ "attr.aria-labelledby": "tabId",
114
+ "hidden": "!active()"
115
+ },
116
+ classAttribute: "star-tabs__panel"
117
+ },
118
+ queries: [{
119
+ propertyName: "lazy",
120
+ first: true,
121
+ predicate: StarTabContent,
122
+ descendants: true,
123
+ isSignal: true
124
+ }],
125
+ ngImport: i0,
126
+ template: `
127
+ @if (lazy(); as lazyContent) {
128
+ @if (rendered()) {
129
+ <ng-container *ngTemplateOutlet="lazyContent.template" />
130
+ }
131
+ }
132
+ <ng-content />
133
+ `,
134
+ isInline: true,
135
+ dependencies: [{
136
+ kind: "directive",
137
+ type: NgTemplateOutlet,
138
+ selector: "[ngTemplateOutlet]",
139
+ inputs: [
140
+ "ngTemplateOutletContext",
141
+ "ngTemplateOutlet",
142
+ "ngTemplateOutletInjector"
143
+ ]
144
+ }],
145
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
146
+ });
147
+ };
148
+ i0.ɵɵngDeclareClassMetadata({
149
+ minVersion: "12.0.0",
150
+ version: "22.2.6",
151
+ ngImport: i0,
152
+ type: StarTab,
153
+ decorators: [{
154
+ type: Component,
155
+ args: [{
156
+ selector: "star-tab",
157
+ imports: [NgTemplateOutlet],
158
+ changeDetection: ChangeDetectionStrategy.OnPush,
159
+ host: {
160
+ class: "star-tabs__panel",
161
+ role: "tabpanel",
162
+ tabindex: "0",
163
+ "[id]": "panelId",
164
+ "[attr.aria-labelledby]": "tabId",
165
+ "[hidden]": "!active()"
166
+ },
167
+ template: `
168
+ @if (lazy(); as lazyContent) {
169
+ @if (rendered()) {
170
+ <ng-container *ngTemplateOutlet="lazyContent.template" />
171
+ }
172
+ }
173
+ <ng-content />
174
+ `
175
+ }]
176
+ }],
177
+ propDecorators: {
178
+ value: [{
179
+ type: i0.Input,
180
+ args: [{
181
+ isSignal: true,
182
+ alias: "value",
183
+ required: true
184
+ }]
185
+ }],
186
+ label: [{
187
+ type: i0.Input,
188
+ args: [{
189
+ isSignal: true,
190
+ alias: "label",
191
+ required: true
192
+ }]
193
+ }],
194
+ icon: [{
195
+ type: i0.Input,
196
+ args: [{
197
+ isSignal: true,
198
+ alias: "icon",
199
+ required: false
200
+ }]
201
+ }],
202
+ badge: [{
203
+ type: i0.Input,
204
+ args: [{
205
+ isSignal: true,
206
+ alias: "badge",
207
+ required: false
208
+ }]
209
+ }],
210
+ disabled: [{
211
+ type: i0.Input,
212
+ args: [{
213
+ isSignal: true,
214
+ alias: "disabled",
215
+ required: false
216
+ }]
217
+ }],
218
+ lazy: [{
219
+ type: i0.ContentChild,
220
+ args: [i0.forwardRef(() => StarTabContent), { isSignal: true }]
221
+ }]
222
+ }
223
+ });
224
+ var StarTabs = class StarTabs {
225
+ value = model(null, ...ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []);
226
+ variant = input("line", ...ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []);
227
+ selectOnFocus = input(true, {
228
+ ...ngDevMode ? { debugName: "selectOnFocus" } : /* istanbul ignore next */ {},
229
+ transform: booleanAttribute
230
+ });
231
+ ariaLabel = input(null, ...ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
232
+ changed = output();
233
+ tabs = contentChildren(StarTab, ...ngDevMode ? [{ debugName: "tabs" }] : /* istanbul ignore next */ []);
234
+ buttons = viewChildren("tabButton", ...ngDevMode ? [{ debugName: "buttons" }] : /* istanbul ignore next */ []);
235
+ selected = computed(() => this.value() ?? this.tabs().find((tab) => !tab.disabled())?.value() ?? null, ...ngDevMode ? [{ debugName: "selected" }] : /* istanbul ignore next */ []);
236
+ focusValue = linkedSignal(() => this.selected(), ...ngDevMode ? [{ debugName: "focusValue" }] : /* istanbul ignore next */ []);
237
+ select(tab) {
238
+ if (tab.disabled()) return;
239
+ this.focusValue.set(tab.value());
240
+ if (tab.value() === this.selected()) return;
241
+ this.value.set(tab.value());
242
+ this.changed.emit(tab.value());
243
+ }
244
+ onKeydown(event, current) {
245
+ const enabled = this.tabs().filter((tab) => !tab.disabled());
246
+ const index = enabled.indexOf(current);
247
+ let next;
248
+ switch (starInlineKey(event)) {
249
+ case "ArrowRight":
250
+ next = enabled[(index + 1) % enabled.length];
251
+ break;
252
+ case "ArrowLeft":
253
+ next = enabled[(index - 1 + enabled.length) % enabled.length];
254
+ break;
255
+ case "Home":
256
+ next = enabled[0];
257
+ break;
258
+ case "End":
259
+ next = enabled.at(-1);
260
+ break;
261
+ default: return;
262
+ }
263
+ if (!next) return;
264
+ event.preventDefault();
265
+ this.focusValue.set(next.value());
266
+ const position = this.tabs().indexOf(next);
267
+ this.buttons()[position]?.nativeElement.focus();
268
+ if (this.selectOnFocus()) this.select(next);
269
+ }
270
+ static ɵfac = i0.ɵɵngDeclareFactory({
271
+ minVersion: "12.0.0",
272
+ version: "22.2.6",
273
+ ngImport: i0,
274
+ type: StarTabs,
275
+ deps: [],
276
+ target: i0.ɵɵFactoryTarget.Component
277
+ });
278
+ static ɵcmp = i0.ɵɵngDeclareComponent({
279
+ minVersion: "17.0.0",
280
+ version: "22.2.6",
281
+ type: StarTabs,
282
+ isStandalone: true,
283
+ selector: "star-tabs",
284
+ inputs: {
285
+ value: {
286
+ classPropertyName: "value",
287
+ publicName: "value",
288
+ isSignal: true,
289
+ isRequired: false,
290
+ transformFunction: null
291
+ },
292
+ variant: {
293
+ classPropertyName: "variant",
294
+ publicName: "variant",
295
+ isSignal: true,
296
+ isRequired: false,
297
+ transformFunction: null
298
+ },
299
+ selectOnFocus: {
300
+ classPropertyName: "selectOnFocus",
301
+ publicName: "selectOnFocus",
302
+ isSignal: true,
303
+ isRequired: false,
304
+ transformFunction: null
305
+ },
306
+ ariaLabel: {
307
+ classPropertyName: "ariaLabel",
308
+ publicName: "ariaLabel",
309
+ isSignal: true,
310
+ isRequired: false,
311
+ transformFunction: null
312
+ }
313
+ },
314
+ outputs: {
315
+ value: "valueChange",
316
+ changed: "changed"
317
+ },
318
+ host: {
319
+ properties: { "class.star-tabs--pill": "variant() === 'pill'" },
320
+ classAttribute: "star-tabs"
321
+ },
322
+ queries: [{
323
+ propertyName: "tabs",
324
+ predicate: StarTab,
325
+ isSignal: true
326
+ }],
327
+ viewQueries: [{
328
+ propertyName: "buttons",
329
+ predicate: ["tabButton"],
330
+ descendants: true,
331
+ isSignal: true
332
+ }],
333
+ ngImport: i0,
334
+ template: `
335
+ <div class="star-tabs__list" role="tablist" [attr.aria-label]="ariaLabel()">
336
+ @for (tab of tabs(); track tab.value()) {
337
+ <button
338
+ #tabButton
339
+ type="button"
340
+ role="tab"
341
+ class="star-tabs__tab"
342
+ [id]="tab.tabId"
343
+ [class.star-tabs__tab--active]="tab.active()"
344
+ [attr.aria-selected]="tab.active()"
345
+ [attr.aria-controls]="tab.panelId"
346
+ [attr.tabindex]="tab.value() === focusValue() ? 0 : -1"
347
+ [disabled]="tab.disabled()"
348
+ (click)="select(tab)"
349
+ (keydown)="onKeydown($event, tab)"
350
+ >
351
+ @if (tab.icon(); as icon) {
352
+ <i [class]="icon" aria-hidden="true"></i>
353
+ }
354
+ <span>{{ tab.label() }}</span>
355
+ @if (tab.badge() !== null) {
356
+ <span class="star-badge star-badge--secondary star-badge--sm">{{ tab.badge() }}</span>
357
+ }
358
+ </button>
359
+ }
360
+ </div>
361
+ <ng-content />
362
+ `,
363
+ isInline: true,
364
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
365
+ });
366
+ };
367
+ i0.ɵɵngDeclareClassMetadata({
368
+ minVersion: "12.0.0",
369
+ version: "22.2.6",
370
+ ngImport: i0,
371
+ type: StarTabs,
372
+ decorators: [{
373
+ type: Component,
374
+ args: [{
375
+ selector: "star-tabs",
376
+ changeDetection: ChangeDetectionStrategy.OnPush,
377
+ host: {
378
+ class: "star-tabs",
379
+ "[class.star-tabs--pill]": "variant() === 'pill'"
380
+ },
381
+ template: `
382
+ <div class="star-tabs__list" role="tablist" [attr.aria-label]="ariaLabel()">
383
+ @for (tab of tabs(); track tab.value()) {
384
+ <button
385
+ #tabButton
386
+ type="button"
387
+ role="tab"
388
+ class="star-tabs__tab"
389
+ [id]="tab.tabId"
390
+ [class.star-tabs__tab--active]="tab.active()"
391
+ [attr.aria-selected]="tab.active()"
392
+ [attr.aria-controls]="tab.panelId"
393
+ [attr.tabindex]="tab.value() === focusValue() ? 0 : -1"
394
+ [disabled]="tab.disabled()"
395
+ (click)="select(tab)"
396
+ (keydown)="onKeydown($event, tab)"
397
+ >
398
+ @if (tab.icon(); as icon) {
399
+ <i [class]="icon" aria-hidden="true"></i>
400
+ }
401
+ <span>{{ tab.label() }}</span>
402
+ @if (tab.badge() !== null) {
403
+ <span class="star-badge star-badge--secondary star-badge--sm">{{ tab.badge() }}</span>
404
+ }
405
+ </button>
406
+ }
407
+ </div>
408
+ <ng-content />
409
+ `
410
+ }]
411
+ }],
412
+ propDecorators: {
413
+ value: [{
414
+ type: i0.Input,
415
+ args: [{
416
+ isSignal: true,
417
+ alias: "value",
418
+ required: false
419
+ }]
420
+ }, {
421
+ type: i0.Output,
422
+ args: ["valueChange"]
423
+ }],
424
+ variant: [{
425
+ type: i0.Input,
426
+ args: [{
427
+ isSignal: true,
428
+ alias: "variant",
429
+ required: false
430
+ }]
431
+ }],
432
+ selectOnFocus: [{
433
+ type: i0.Input,
434
+ args: [{
435
+ isSignal: true,
436
+ alias: "selectOnFocus",
437
+ required: false
438
+ }]
439
+ }],
440
+ ariaLabel: [{
441
+ type: i0.Input,
442
+ args: [{
443
+ isSignal: true,
444
+ alias: "ariaLabel",
445
+ required: false
446
+ }]
447
+ }],
448
+ changed: [{
449
+ type: i0.Output,
450
+ args: ["changed"]
451
+ }],
452
+ tabs: [{
453
+ type: i0.ContentChildren,
454
+ args: [i0.forwardRef(() => StarTab), { isSignal: true }]
455
+ }],
456
+ buttons: [{
457
+ type: i0.ViewChildren,
458
+ args: ["tabButton", { isSignal: true }]
459
+ }]
460
+ }
461
+ });
462
+ export { StarTab, StarTabContent, StarTabs };
463
+
464
+ //# sourceMappingURL=star-ng-ui-tabs.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"star-ng-ui-tabs.mjs","names":[],"sources":["../../../projects/star-ng/tabs/tabs.ts"],"sourcesContent":["import { _IdGenerator } from '@angular/cdk/a11y';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n contentChildren,\n Directive,\n ElementRef,\n forwardRef,\n inject,\n input,\n linkedSignal,\n model,\n output,\n TemplateRef,\n viewChildren,\n} from '@angular/core';\nimport { starInlineKey } from '@star-ng/ui/core';\n\n/** Lazy tab body: `<ng-template starTabContent>…</ng-template>` renders on first activation only. */\n@Directive({ selector: 'ng-template[starTabContent]' })\nexport class StarTabContent {\n readonly template = inject<TemplateRef<unknown>>(TemplateRef);\n}\n\n/**\n * One tab and its panel. The host element is the `tabpanel`.\n * Eager content goes directly inside; wrap heavy content in `ng-template starTabContent`.\n */\n@Component({\n selector: 'star-tab',\n imports: [NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'star-tabs__panel',\n role: 'tabpanel',\n tabindex: '0',\n '[id]': 'panelId',\n '[attr.aria-labelledby]': 'tabId',\n '[hidden]': '!active()',\n },\n template: `\n @if (lazy(); as lazyContent) {\n @if (rendered()) {\n <ng-container *ngTemplateOutlet=\"lazyContent.template\" />\n }\n }\n <ng-content />\n `,\n})\nexport class StarTab {\n private readonly tabs = inject(forwardRef(() => StarTabs));\n private readonly ids = inject(_IdGenerator);\n\n readonly value = input.required<string>();\n readonly label = input.required<string>();\n /** Phosphor icon class, for example `ph-bold ph-files`. */\n readonly icon = input<string | null>(null);\n readonly badge = input<string | number | null>(null);\n readonly disabled = input(false, { transform: booleanAttribute });\n\n readonly tabId = this.ids.getId('star-tab-');\n readonly panelId = this.ids.getId('star-tabpanel-');\n\n protected readonly lazy = contentChild(StarTabContent);\n readonly active = computed(() => this.tabs.selected() === this.value());\n /** Stays true after the first activation, so lazy content keeps its state. */\n protected readonly rendered = linkedSignal<boolean, boolean>({\n source: this.active,\n computation: (active, previous) => active || (previous?.value ?? false),\n });\n}\n\n/**\n * Tabs (PrimeNG `p-tabs`): `[(value)]`, disabled tabs, icons, badges, lazy panels and the\n * WAI-ARIA tabs keyboard model (Arrow keys, Home, End; automatic or manual activation).\n *\n * ```html\n * <star-tabs [(value)]=\"tab\" ariaLabel=\"Order sections\">\n * <star-tab value=\"details\" label=\"Details\">…</star-tab>\n * <star-tab value=\"history\" label=\"History\"><ng-template starTabContent>…</ng-template></star-tab>\n * </star-tabs>\n * ```\n */\n@Component({\n selector: 'star-tabs',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'star-tabs', '[class.star-tabs--pill]': \"variant() === 'pill'\" },\n template: `\n <div class=\"star-tabs__list\" role=\"tablist\" [attr.aria-label]=\"ariaLabel()\">\n @for (tab of tabs(); track tab.value()) {\n <button\n #tabButton\n type=\"button\"\n role=\"tab\"\n class=\"star-tabs__tab\"\n [id]=\"tab.tabId\"\n [class.star-tabs__tab--active]=\"tab.active()\"\n [attr.aria-selected]=\"tab.active()\"\n [attr.aria-controls]=\"tab.panelId\"\n [attr.tabindex]=\"tab.value() === focusValue() ? 0 : -1\"\n [disabled]=\"tab.disabled()\"\n (click)=\"select(tab)\"\n (keydown)=\"onKeydown($event, tab)\"\n >\n @if (tab.icon(); as icon) {\n <i [class]=\"icon\" aria-hidden=\"true\"></i>\n }\n <span>{{ tab.label() }}</span>\n @if (tab.badge() !== null) {\n <span class=\"star-badge star-badge--secondary star-badge--sm\">{{ tab.badge() }}</span>\n }\n </button>\n }\n </div>\n <ng-content />\n `,\n})\nexport class StarTabs {\n readonly value = model<string | null>(null);\n readonly variant = input<'line' | 'pill'>('line');\n /** `false`: arrow keys move focus only; Enter / Space activate (manual activation). */\n readonly selectOnFocus = input(true, { transform: booleanAttribute });\n readonly ariaLabel = input<string | null>(null);\n\n readonly changed = output<string>();\n\n protected readonly tabs = contentChildren(StarTab);\n private readonly buttons = viewChildren<ElementRef<HTMLButtonElement>>('tabButton');\n\n /** Selected value; falls back to the first enabled tab while `value` is unset. */\n readonly selected = computed(\n () =>\n this.value() ??\n this.tabs()\n .find((tab) => !tab.disabled())\n ?.value() ??\n null,\n );\n /** Roving tabindex target; follows the selection, moves with arrows in manual mode. */\n protected readonly focusValue = linkedSignal(() => this.selected());\n\n protected select(tab: StarTab): void {\n if (tab.disabled()) return;\n this.focusValue.set(tab.value());\n if (tab.value() === this.selected()) return;\n this.value.set(tab.value());\n this.changed.emit(tab.value());\n }\n\n protected onKeydown(event: KeyboardEvent, current: StarTab): void {\n const enabled = this.tabs().filter((tab) => !tab.disabled());\n const index = enabled.indexOf(current);\n let next: StarTab | undefined;\n // Arrow right means \"next tab in reading order\": the left arrow in right-to-left.\n switch (starInlineKey(event)) {\n case 'ArrowRight':\n next = enabled[(index + 1) % enabled.length];\n break;\n case 'ArrowLeft':\n next = enabled[(index - 1 + enabled.length) % enabled.length];\n break;\n case 'Home':\n next = enabled[0];\n break;\n case 'End':\n next = enabled.at(-1);\n break;\n default:\n return;\n }\n if (!next) return;\n event.preventDefault();\n this.focusValue.set(next.value());\n const position = this.tabs().indexOf(next);\n this.buttons()[position]?.nativeElement.focus();\n if (this.selectOnFocus()) this.select(next);\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,129 @@
1
+ import * as i0 from "@angular/core";
2
+ import { ChangeDetectionStrategy, Component, booleanAttribute, input } from "@angular/core";
3
+ var StarTag = class StarTag {
4
+ severity = input("primary", ...ngDevMode ? [{ debugName: "severity" }] : /* istanbul ignore next */ []);
5
+ value = input("", ...ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []);
6
+ icon = input(null, ...ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []);
7
+ rounded = input(false, {
8
+ ...ngDevMode ? { debugName: "rounded" } : /* istanbul ignore next */ {},
9
+ transform: booleanAttribute
10
+ });
11
+ static ɵfac = i0.ɵɵngDeclareFactory({
12
+ minVersion: "12.0.0",
13
+ version: "22.2.6",
14
+ ngImport: i0,
15
+ type: StarTag,
16
+ deps: [],
17
+ target: i0.ɵɵFactoryTarget.Component
18
+ });
19
+ static ɵcmp = i0.ɵɵngDeclareComponent({
20
+ minVersion: "17.0.0",
21
+ version: "22.2.6",
22
+ type: StarTag,
23
+ isStandalone: true,
24
+ selector: "star-tag",
25
+ inputs: {
26
+ severity: {
27
+ classPropertyName: "severity",
28
+ publicName: "severity",
29
+ isSignal: true,
30
+ isRequired: false,
31
+ transformFunction: null
32
+ },
33
+ value: {
34
+ classPropertyName: "value",
35
+ publicName: "value",
36
+ isSignal: true,
37
+ isRequired: false,
38
+ transformFunction: null
39
+ },
40
+ icon: {
41
+ classPropertyName: "icon",
42
+ publicName: "icon",
43
+ isSignal: true,
44
+ isRequired: false,
45
+ transformFunction: null
46
+ },
47
+ rounded: {
48
+ classPropertyName: "rounded",
49
+ publicName: "rounded",
50
+ isSignal: true,
51
+ isRequired: false,
52
+ transformFunction: null
53
+ }
54
+ },
55
+ host: { properties: {
56
+ "class": "'star-tag star-tag--' + severity()",
57
+ "class.star-tag--rounded": "rounded()"
58
+ } },
59
+ ngImport: i0,
60
+ template: `
61
+ @if (icon(); as icon) {
62
+ <i [class]="icon" aria-hidden="true"></i>
63
+ }
64
+ <span>{{ value() }}<ng-content /></span>
65
+ `,
66
+ isInline: true,
67
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
68
+ });
69
+ };
70
+ i0.ɵɵngDeclareClassMetadata({
71
+ minVersion: "12.0.0",
72
+ version: "22.2.6",
73
+ ngImport: i0,
74
+ type: StarTag,
75
+ decorators: [{
76
+ type: Component,
77
+ args: [{
78
+ selector: "star-tag",
79
+ changeDetection: ChangeDetectionStrategy.OnPush,
80
+ host: {
81
+ "[class]": "'star-tag star-tag--' + severity()",
82
+ "[class.star-tag--rounded]": "rounded()"
83
+ },
84
+ template: `
85
+ @if (icon(); as icon) {
86
+ <i [class]="icon" aria-hidden="true"></i>
87
+ }
88
+ <span>{{ value() }}<ng-content /></span>
89
+ `
90
+ }]
91
+ }],
92
+ propDecorators: {
93
+ severity: [{
94
+ type: i0.Input,
95
+ args: [{
96
+ isSignal: true,
97
+ alias: "severity",
98
+ required: false
99
+ }]
100
+ }],
101
+ value: [{
102
+ type: i0.Input,
103
+ args: [{
104
+ isSignal: true,
105
+ alias: "value",
106
+ required: false
107
+ }]
108
+ }],
109
+ icon: [{
110
+ type: i0.Input,
111
+ args: [{
112
+ isSignal: true,
113
+ alias: "icon",
114
+ required: false
115
+ }]
116
+ }],
117
+ rounded: [{
118
+ type: i0.Input,
119
+ args: [{
120
+ isSignal: true,
121
+ alias: "rounded",
122
+ required: false
123
+ }]
124
+ }]
125
+ }
126
+ });
127
+ export { StarTag };
128
+
129
+ //# sourceMappingURL=star-ng-ui-tag.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"star-ng-ui-tag.mjs","names":[],"sources":["../../../projects/star-ng/tag/tag.ts"],"sourcesContent":["import { booleanAttribute, ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { StarSeverity } from '@star-ng/ui/core';\n\n/**\n * Status label (PrimeNG `p-tag`): severity color, optional icon, rounded pill.\n * `<star-tag severity=\"success\" icon=\"ph-bold ph-check\">Closed</star-tag>`\n */\n@Component({\n selector: 'star-tag',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': \"'star-tag star-tag--' + severity()\",\n '[class.star-tag--rounded]': 'rounded()',\n },\n template: `\n @if (icon(); as icon) {\n <i [class]=\"icon\" aria-hidden=\"true\"></i>\n }\n <span>{{ value() }}<ng-content /></span>\n `,\n})\nexport class StarTag {\n readonly severity = input<StarSeverity>('primary');\n readonly value = input('');\n readonly icon = input<string | null>(null);\n readonly rounded = input(false, { transform: booleanAttribute });\n}\n"],"mappings":";;AAqBA,IAAa,UAAb,MAAa,QAAO;CACT,WAAW,MAAoB,WAAU,GAAA,YAAA,CAAA,EAAA,WAAA,WAAA,CAAA,+BAAA,CAAA,CAAA;CACzC,QAAQ,MAAM,IAAG,GAAA,YAAA,CAAA,EAAA,WAAA,QAAA,CAAA,+BAAA,CAAA,CAAA;CACjB,OAAO,MAAqB,MAAK,GAAA,YAAA,CAAA,EAAA,WAAA,OAAA,CAAA,+BAAA,CAAA,CAAA;CACjC,UAAU,MAAM,OAAK;EAAA,GAAA,YAAA,EAAA,WAAA,UAAA,+BAAA,CAAA;EAAI,WAAW;CAAgB,CAAA;CAJlD,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAO,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAP,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAO,cAAA;EAAA,UAAA;EAAA,QAAA;GAAA,UAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,OAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,MAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,SAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;EAAA;EAAA,MAAA,EAAA,YAAA;GAAA,SAAA;GAAA,2BAAA;EAAA,EAAA;EAAA,UAAA;EAAA,UAPR;;;;;;EAKT,UAAA;EAAA,iBAAA,GAAA,wBAAA;CAAA,CAAA;;AAEU,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAO,YAAA,CAAA;EAdnB,MAAA;EAAU,MAAA,CAAA;GACT,UAAU;GACV,iBAAiB,wBAAwB;GACzC,MAAM;IACJ,WAAW;IACX,6BAA6B;GAC9B;GACD,UAAU;;;;;;EAMX,CAAA"}