@oti-adjei/ui 0.1.0-beta.5 → 0.1.0-beta.6

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 (64) hide show
  1. package/custom-elements.json +6768 -0
  2. package/dist/angular.d.ts +406 -0
  3. package/dist/components/alert/alert.d.ts +18 -7
  4. package/dist/components/alert/alert.d.ts.map +1 -1
  5. package/dist/components/avatar/avatar.d.ts +36 -9
  6. package/dist/components/avatar/avatar.d.ts.map +1 -1
  7. package/dist/components/badge/badge.d.ts +19 -6
  8. package/dist/components/badge/badge.d.ts.map +1 -1
  9. package/dist/components/banner/banner.d.ts +18 -11
  10. package/dist/components/banner/banner.d.ts.map +1 -1
  11. package/dist/components/button/button.d.ts +30 -8
  12. package/dist/components/button/button.d.ts.map +1 -1
  13. package/dist/components/card/card.d.ts +8 -1
  14. package/dist/components/card/card.d.ts.map +1 -1
  15. package/dist/components/checkbox/checkbox.d.ts +12 -6
  16. package/dist/components/checkbox/checkbox.d.ts.map +1 -1
  17. package/dist/components/dropdown/dropdown.d.ts +19 -9
  18. package/dist/components/dropdown/dropdown.d.ts.map +1 -1
  19. package/dist/components/event-card/event-card.d.ts +13 -8
  20. package/dist/components/event-card/event-card.d.ts.map +1 -1
  21. package/dist/components/footer/footer-group.d.ts +1 -1
  22. package/dist/components/footer/footer-group.d.ts.map +1 -1
  23. package/dist/components/footer/footer.d.ts +2 -2
  24. package/dist/components/footer/footer.d.ts.map +1 -1
  25. package/dist/components/game-card/game-card.d.ts +4 -4
  26. package/dist/components/game-card/game-card.d.ts.map +1 -1
  27. package/dist/components/icon-box/icon-box.d.ts +13 -2
  28. package/dist/components/icon-box/icon-box.d.ts.map +1 -1
  29. package/dist/components/input/input.d.ts +26 -13
  30. package/dist/components/input/input.d.ts.map +1 -1
  31. package/dist/components/league-card/league-card.d.ts +4 -4
  32. package/dist/components/league-card/league-card.d.ts.map +1 -1
  33. package/dist/components/logo/logo.d.ts +14 -5
  34. package/dist/components/logo/logo.d.ts.map +1 -1
  35. package/dist/components/modal/modal.d.ts +15 -7
  36. package/dist/components/modal/modal.d.ts.map +1 -1
  37. package/dist/components/navigation/navigation.d.ts +7 -4
  38. package/dist/components/navigation/navigation.d.ts.map +1 -1
  39. package/dist/components/navigation/tab-nav.d.ts +6 -3
  40. package/dist/components/navigation/tab-nav.d.ts.map +1 -1
  41. package/dist/components/pagination/pagination.d.ts +12 -6
  42. package/dist/components/pagination/pagination.d.ts.map +1 -1
  43. package/dist/components/profile/profile.d.ts +8 -5
  44. package/dist/components/profile/profile.d.ts.map +1 -1
  45. package/dist/components/progress/progress.d.ts +23 -7
  46. package/dist/components/progress/progress.d.ts.map +1 -1
  47. package/dist/components/scroll/scroll.d.ts +15 -3
  48. package/dist/components/scroll/scroll.d.ts.map +1 -1
  49. package/dist/components/search/search.d.ts +15 -6
  50. package/dist/components/search/search.d.ts.map +1 -1
  51. package/dist/components/stat/stat.d.ts +4 -1
  52. package/dist/components/stat/stat.d.ts.map +1 -1
  53. package/dist/components/switch/switch.d.ts +8 -5
  54. package/dist/components/switch/switch.d.ts.map +1 -1
  55. package/dist/components/table/table.d.ts +12 -9
  56. package/dist/components/table/table.d.ts.map +1 -1
  57. package/dist/components/tournament-card/tournament-card.d.ts +15 -8
  58. package/dist/components/tournament-card/tournament-card.d.ts.map +1 -1
  59. package/dist/components/user-card/user-card.d.ts +3 -3
  60. package/dist/components/user-card/user-card.d.ts.map +1 -1
  61. package/dist/react.d.ts +1160 -0
  62. package/dist/svelte.d.ts +518 -0
  63. package/dist/vue.d.ts +585 -0
  64. package/package.json +18 -2
@@ -0,0 +1,406 @@
1
+ /**
2
+ * Angular type declarations for @oti-adjei/ui web components.
3
+ *
4
+ * Provides typed interfaces for each custom element so that Angular
5
+ * `@ViewChild` / `ElementRef` usages are fully type-safe.
6
+ *
7
+ * Usage:
8
+ * import type { MhButtonElement } from '@oti-adjei/ui/angular';
9
+ *
10
+ * @ViewChild('myBtn') btn!: ElementRef<MhButtonElement>;
11
+ * this.btn.nativeElement.variant = 'primary'; // ✅ typed
12
+ *
13
+ * Angular setup:
14
+ * // Standalone component
15
+ * @Component({ ..., schemas: [CUSTOM_ELEMENTS_SCHEMA] })
16
+ *
17
+ * // NgModule
18
+ * @NgModule({ ..., schemas: [CUSTOM_ELEMENTS_SCHEMA] })
19
+ *
20
+ * // main.ts — register elements
21
+ * import '@oti-adjei/ui';
22
+ */
23
+
24
+ // ─── Button ───────────────────────────────────────────────────────────────────
25
+
26
+ export interface MhButtonElement extends HTMLElement {
27
+ /**
28
+ * Visual variant.
29
+ * @default 'primary'
30
+ */
31
+ variant: 'primary' | 'secondary' | 'ghost' | 'danger' | 'dark' | 'social';
32
+ /** @default 'md' */
33
+ size: 'sm' | 'md' | 'lg' | 'xl';
34
+ /** @default 'uppercase' */
35
+ textCase: 'uppercase' | 'lowercase' | 'capitalize' | 'none';
36
+ disabled: boolean;
37
+ loading: boolean;
38
+ /** @default 'button' */
39
+ type: 'button' | 'submit' | 'reset';
40
+ href: string | undefined;
41
+ fullWidth: boolean;
42
+ }
43
+
44
+ // ─── Input ────────────────────────────────────────────────────────────────────
45
+
46
+ export interface MhInputElement extends HTMLElement {
47
+ /** @default 'text' */
48
+ type: 'text' | 'password' | 'email' | 'number' | 'search' | 'tel' | 'url' | 'date';
49
+ /** @default 'md' */
50
+ size: 'sm' | 'md' | 'lg';
51
+ value: string;
52
+ placeholder: string;
53
+ label: string;
54
+ helpText: string;
55
+ disabled: boolean;
56
+ readonly: boolean;
57
+ required: boolean;
58
+ /** @default 'default' */
59
+ state: 'default' | 'error' | 'success' | 'warning';
60
+ errorMessage: string;
61
+ clearable: boolean;
62
+ passwordToggle: boolean;
63
+ }
64
+
65
+ // ─── Modal ────────────────────────────────────────────────────────────────────
66
+
67
+ export interface MhModalElement extends HTMLElement {
68
+ open: boolean;
69
+ label: string;
70
+ /** @default 'md' */
71
+ size: 'sm' | 'md' | 'lg' | 'xl' | 'full';
72
+ noHeader: boolean;
73
+ noClose: boolean;
74
+ noOverlayDismiss: boolean;
75
+ noEscDismiss: boolean;
76
+ /** Opens the modal. */
77
+ show(): void;
78
+ /** Closes the modal. */
79
+ hide(): void;
80
+ }
81
+
82
+ // ─── Alert ────────────────────────────────────────────────────────────────────
83
+
84
+ export interface MhAlertElement extends HTMLElement {
85
+ /** @default 'info' */
86
+ variant: 'info' | 'success' | 'warning' | 'error' | 'solid-info' | 'solid-success' | 'solid-warning' | 'solid-error';
87
+ /** @default 'md' */
88
+ size: 'sm' | 'md' | 'lg';
89
+ closable: boolean;
90
+ open: boolean;
91
+ icon: string;
92
+ title: string;
93
+ description: string;
94
+ }
95
+
96
+ // ─── Avatar ───────────────────────────────────────────────────────────────────
97
+
98
+ export interface MhAvatarElement extends HTMLElement {
99
+ src: string;
100
+ alt: string;
101
+ initials: string;
102
+ /** @default 'md' */
103
+ size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
104
+ /** @default 'circle' */
105
+ shape: 'circle' | 'rounded' | 'square';
106
+ /** @default 'none' */
107
+ status: 'online' | 'offline' | 'away' | 'busy' | 'none';
108
+ /** @default 'none' */
109
+ border: 'none' | 'subtle' | 'primary';
110
+ /** @default 'none' */
111
+ tone: 'cyan' | 'pink' | 'orange' | 'green' | 'yellow' | 'purple' | 'primary' | 'dark' | 'none';
112
+ clickable: boolean;
113
+ }
114
+
115
+ // ─── Badge ────────────────────────────────────────────────────────────────────
116
+
117
+ export interface MhBadgeElement extends HTMLElement {
118
+ /** @default 'default' */
119
+ variant: 'default' | 'primary' | 'success' | 'error' | 'warning' | 'info' | 'solid-primary' | 'solid-success' | 'solid-error' | 'solid-warning';
120
+ /** @default 'md' */
121
+ size: 'sm' | 'md' | 'lg';
122
+ dot: boolean;
123
+ pulse: boolean;
124
+ removable: boolean;
125
+ clickable: boolean;
126
+ }
127
+
128
+ // ─── Card ─────────────────────────────────────────────────────────────────────
129
+
130
+ export interface MhCardElement extends HTMLElement {
131
+ /** @default 'default' */
132
+ variant: 'default' | 'featured' | 'compact' | 'interactive';
133
+ }
134
+
135
+ // ─── Checkbox ─────────────────────────────────────────────────────────────────
136
+
137
+ export interface MhCheckboxElement extends HTMLElement {
138
+ checked: boolean;
139
+ indeterminate: boolean;
140
+ disabled: boolean;
141
+ /** @default 'md' */
142
+ size: 'sm' | 'md' | 'lg';
143
+ label: string;
144
+ description: string;
145
+ }
146
+
147
+ // ─── Switch ───────────────────────────────────────────────────────────────────
148
+
149
+ export interface MhSwitchElement extends HTMLElement {
150
+ checked: boolean;
151
+ /** @default 'md' */
152
+ size: 'sm' | 'md' | 'lg';
153
+ disabled: boolean;
154
+ label: string;
155
+ description: string;
156
+ }
157
+
158
+ // ─── Dropdown ─────────────────────────────────────────────────────────────────
159
+
160
+ export interface MhDropdownElement extends HTMLElement {
161
+ /** @default 'default' */
162
+ variant: 'default' | 'black' | 'blue';
163
+ open: boolean;
164
+ disabled: boolean;
165
+ right: boolean;
166
+ up: boolean;
167
+ }
168
+
169
+ export interface MhDropdownItemElement extends HTMLElement {
170
+ value: string;
171
+ disabled: boolean;
172
+ selected: boolean;
173
+ /** @default true */
174
+ closeOnSelect: boolean;
175
+ }
176
+
177
+ // ─── Search ───────────────────────────────────────────────────────────────────
178
+
179
+ export interface MhSearchElement extends HTMLElement {
180
+ value: string;
181
+ placeholder: string;
182
+ open: boolean;
183
+ clearable: boolean;
184
+ /** @default 'left' */
185
+ iconPosition: 'left' | 'right' | 'none';
186
+ /** @default 'md' */
187
+ size: 'sm' | 'md' | 'lg';
188
+ }
189
+
190
+ // ─── Progress ─────────────────────────────────────────────────────────────────
191
+
192
+ export interface MhProgressElement extends HTMLElement {
193
+ value: number;
194
+ /** @default 100 */
195
+ max: number;
196
+ /** @default 'md' */
197
+ size: 'sm' | 'md' | 'lg' | 'xl';
198
+ /** @default 'primary' */
199
+ variant: 'primary' | 'success' | 'warning' | 'error' | 'gradient' | 'striped' | 'ring';
200
+ indeterminate: boolean;
201
+ showLabel: boolean;
202
+ label: string;
203
+ }
204
+
205
+ // ─── Pagination ───────────────────────────────────────────────────────────────
206
+
207
+ export interface MhPaginationElement extends HTMLElement {
208
+ page: number;
209
+ total: number;
210
+ /** @default 10 */
211
+ pageSize: number;
212
+ /** @default 'md' */
213
+ size: 'sm' | 'md' | 'lg';
214
+ simple: boolean;
215
+ disabled: boolean;
216
+ }
217
+
218
+ // ─── Navigation ───────────────────────────────────────────────────────────────
219
+
220
+ export interface MhNavElement extends HTMLElement {
221
+ open: boolean;
222
+ }
223
+
224
+ export interface MhNavItemElement extends HTMLElement {
225
+ href: string;
226
+ active: boolean;
227
+ dropdown: boolean;
228
+ }
229
+
230
+ // ─── Footer ───────────────────────────────────────────────────────────────────
231
+
232
+ export interface MhFooterElement extends HTMLElement {
233
+ tagline: string;
234
+ copyright: string;
235
+ }
236
+
237
+ export interface MhFooterGroupElement extends HTMLElement {
238
+ heading: string;
239
+ }
240
+
241
+ // ─── Table ────────────────────────────────────────────────────────────────────
242
+
243
+ export interface MhTableElement extends HTMLElement {
244
+ striped: boolean;
245
+ compact: boolean;
246
+ bordered: boolean;
247
+ fixedHeader: boolean;
248
+ }
249
+
250
+ export interface MhTableRowElement extends HTMLElement {
251
+ header: boolean;
252
+ highlight: boolean;
253
+ }
254
+
255
+ export interface MhTableCellElement extends HTMLElement {
256
+ header: boolean;
257
+ /** @default 'left' */
258
+ align: 'left' | 'center' | 'right';
259
+ sortable: boolean;
260
+ }
261
+
262
+ // ─── Scroll ───────────────────────────────────────────────────────────────────
263
+
264
+ export interface MhScrollElement extends HTMLElement {
265
+ /** @default 'default' */
266
+ variant: 'default' | 'thin' | 'minimal' | 'primary' | 'hidden' | 'global';
267
+ /** @default 'vertical' */
268
+ axis: 'both' | 'horizontal' | 'vertical';
269
+ smooth: boolean;
270
+ }
271
+
272
+ // ─── Logo ─────────────────────────────────────────────────────────────────────
273
+
274
+ export interface MhLogoElement extends HTMLElement {
275
+ src: string;
276
+ alt: string;
277
+ href: string;
278
+ /** @default 'lockup' */
279
+ variant: 'lockup' | 'icon' | 'wordmark';
280
+ /** @default 'md' */
281
+ size: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
282
+ }
283
+
284
+ // ─── Tab Nav ──────────────────────────────────────────────────────────────────
285
+
286
+ export interface MhTabNavElement extends HTMLElement {}
287
+
288
+ export interface MhTabItemElement extends HTMLElement {
289
+ href: string;
290
+ active: boolean;
291
+ value: string;
292
+ }
293
+
294
+ // ─── Profile ──────────────────────────────────────────────────────────────────
295
+
296
+ export interface MhProfileElement extends HTMLElement {
297
+ src: string;
298
+ alt: string;
299
+ initials: string;
300
+ name: string;
301
+ /** @default 'md' */
302
+ size: 'sm' | 'md' | 'lg';
303
+ }
304
+
305
+ // ─── User Card ────────────────────────────────────────────────────────────────
306
+
307
+ export interface MhUserCardElement extends HTMLElement {
308
+ avatar: string;
309
+ tag: string;
310
+ username: string;
311
+ badge: string;
312
+ handle: string;
313
+ verified: boolean;
314
+ stat: string;
315
+ }
316
+
317
+ // ─── Tournament Card ──────────────────────────────────────────────────────────
318
+
319
+ export interface MhTournamentCardElement extends HTMLElement {
320
+ image: string;
321
+ /** @default 'not-started' */
322
+ status: 'not-started' | 'live' | 'upcoming' | 'completed';
323
+ statusLabel: string;
324
+ date: string;
325
+ heading: string;
326
+ description: string;
327
+ prizePool: string;
328
+ participants: string;
329
+ organizerName: string;
330
+ organizerImage: string;
331
+ }
332
+
333
+ // ─── Game Card ────────────────────────────────────────────────────────────────
334
+
335
+ export interface MhGameCardElement extends HTMLElement {
336
+ image: string;
337
+ heading: string;
338
+ description: string;
339
+ likes: string;
340
+ players: string;
341
+ }
342
+
343
+ // ─── League Card ──────────────────────────────────────────────────────────────
344
+
345
+ export interface MhLeagueCardElement extends HTMLElement {
346
+ heading: string;
347
+ description: string;
348
+ badge: string;
349
+ prizePool: string;
350
+ participants: string;
351
+ progress: number;
352
+ }
353
+
354
+ // ─── Event Card ───────────────────────────────────────────────────────────────
355
+
356
+ export interface MhEventCardElement extends HTMLElement {
357
+ /** @default 'vertical' */
358
+ variant: 'vertical' | 'horizontal';
359
+ image: string;
360
+ status: string;
361
+ date: string;
362
+ heading: string;
363
+ description: string;
364
+ location: string;
365
+ organizerName: string;
366
+ organizerImage: string;
367
+ participants: string;
368
+ }
369
+
370
+ // ─── Banner ───────────────────────────────────────────────────────────────────
371
+
372
+ export interface MhBannerElement extends HTMLElement {
373
+ /** @default 'default' */
374
+ variant: 'default' | 'search' | 'detail' | 'feature';
375
+ image: string;
376
+ heading: string;
377
+ description: string;
378
+ badge: string;
379
+ searchPlaceholder: string;
380
+ gameImage: string;
381
+ organizerName: string;
382
+ stat1: string;
383
+ stat1Label: string;
384
+ stat2: string;
385
+ stat2Label: string;
386
+ /** @default 3 */
387
+ dotCount: number;
388
+ /** @default 0 */
389
+ activeDot: number;
390
+ }
391
+
392
+ // ─── Stat ─────────────────────────────────────────────────────────────────────
393
+
394
+ export interface MhStatElement extends HTMLElement {
395
+ /** @default 'md' */
396
+ size: 'sm' | 'md' | 'lg';
397
+ }
398
+
399
+ // ─── Icon Box ─────────────────────────────────────────────────────────────────
400
+
401
+ export interface MhIconBoxElement extends HTMLElement {
402
+ /** @default 'primary' */
403
+ variant: 'primary' | 'success' | 'error' | 'warning' | 'dark';
404
+ /** @default 'md' */
405
+ size: 'sm' | 'md' | 'lg';
406
+ }
@@ -10,19 +10,30 @@ import { MhElement } from '../../mh-element.js';
10
10
  */
11
11
  export declare class MhAlert extends MhElement {
12
12
  static styles: import("lit").CSSResult;
13
- /** Visual variant */
13
+ /**
14
+ * Semantic colour variant.
15
+ * - `info` — Blue tint (informational, default).
16
+ * - `success` — Green tint (operation succeeded).
17
+ * - `warning` — Yellow tint (proceed with caution).
18
+ * - `error` — Red tint (operation failed / destructive).
19
+ * - `solid-*` — High-contrast filled versions of the above.
20
+ * @default 'info'
21
+ */
14
22
  variant: 'info' | 'success' | 'warning' | 'error' | 'solid-info' | 'solid-success' | 'solid-warning' | 'solid-error';
15
- /** Size variant */
23
+ /**
24
+ * Alert size preset (affects padding and font size).
25
+ * @default 'md'
26
+ */
16
27
  size: 'sm' | 'md' | 'lg';
17
- /** Show close button */
28
+ /** When `true`, shows a ✕ dismiss button in the top-right corner. */
18
29
  closable: boolean;
19
- /** Control visibility */
30
+ /** Controls visibility. Set to `false` to hide the alert without removing it from the DOM. */
20
31
  open: boolean;
21
- /** Optional icon text */
32
+ /** Custom icon content (SVG string or text) that overrides the default semantic icon. */
22
33
  icon?: string;
23
- /** Optional title text */
34
+ /** Bold heading text rendered above the description. */
24
35
  heading: string;
25
- /** Optional description text */
36
+ /** Secondary body text rendered below the heading. */
26
37
  description?: string;
27
38
  private isDismissing;
28
39
  private handleClose;
@@ -1 +1 @@
1
- {"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../../src/components/alert/alert.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD;;;;;;;;GAQG;AACH,qBACa,OAAQ,SAAQ,SAAS;IACpC,MAAM,CAAC,MAAM,0BAAe;IAE5B,qBAAqB;IAErB,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,YAAY,GAAG,eAAe,GAAG,eAAe,GAAG,aAAa,CAC3G;IAET,mBAAmB;IAEnB,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAEhC,wBAAwB;IAExB,QAAQ,UAAS;IAEjB,yBAAyB;IAEzB,IAAI,UAAQ;IAEZ,yBAAyB;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IAE1B,0BAA0B;IACQ,OAAO,SAAM;IAE/C,gCAAgC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IAExB,OAAO,CAAC,YAAY,CAAS;IAEtC,OAAO,CAAC,WAAW;IAYnB,MAAM;CA2CP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,OAAO,CAAC;KACrB;CACF"}
1
+ {"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../../src/components/alert/alert.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD;;;;;;;;GAQG;AACH,qBACa,OAAQ,SAAQ,SAAS;IACpC,MAAM,CAAC,MAAM,0BAAe;IAE5B;;;;;;;;OAQG;IAEH,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,YAAY,GAAG,eAAe,GAAG,eAAe,GAAG,aAAa,CAC3G;IAET;;;OAGG;IAEH,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAEhC,qEAAqE;IAErE,QAAQ,UAAS;IAEjB,8FAA8F;IAE9F,IAAI,UAAQ;IAEZ,yFAAyF;IAC7E,IAAI,CAAC,EAAE,MAAM,CAAC;IAE1B,wDAAwD;IACtB,OAAO,SAAM;IAE/C,sDAAsD;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IAExB,OAAO,CAAC,YAAY,CAAS;IAEtC,OAAO,CAAC,WAAW;IAYnB,MAAM;CA2CP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,OAAO,CAAC;KACrB;CACF"}
@@ -6,23 +6,50 @@ import { MhElement } from '../../mh-element.js';
6
6
  */
7
7
  export declare class MhAvatar extends MhElement {
8
8
  static styles: import("lit").CSSResult;
9
- /** Image source */
9
+ /** Profile image URL. Shows initials fallback if absent or fails to load. */
10
10
  src?: string;
11
- /** Image alt text */
11
+ /** Alt text for the avatar image (used by screen readers). */
12
12
  alt?: string;
13
- /** Initials text when no image is provided */
13
+ /** Initials (up to 2 characters) shown inside the avatar when no image is available. */
14
14
  initials?: string;
15
- /** Size variant */
15
+ /**
16
+ * Avatar size preset.
17
+ * @default 'md'
18
+ */
16
19
  size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
17
- /** Shape variant */
20
+ /**
21
+ * Shape of the avatar container.
22
+ * - `circle` — Fully rounded (default).
23
+ * - `rounded` — Rounded corners (8px radius).
24
+ * - `square` — No border radius.
25
+ * @default 'circle'
26
+ */
18
27
  shape: 'circle' | 'rounded' | 'square';
19
- /** Status indicator */
28
+ /**
29
+ * Presence status indicator dot rendered at the bottom-right corner.
30
+ * - `online` — Green dot.
31
+ * - `offline` — Gray dot.
32
+ * - `away` — Yellow dot.
33
+ * - `busy` — Red dot.
34
+ * - `none` — No dot (default).
35
+ * @default 'none'
36
+ */
20
37
  status: 'online' | 'offline' | 'away' | 'busy' | 'none';
21
- /** Border style */
38
+ /**
39
+ * Border ring style rendered around the avatar.
40
+ * - `none` — No border (default).
41
+ * - `subtle` — Faint gray ring.
42
+ * - `primary` — Solid blue ring matching brand colour.
43
+ * @default 'none'
44
+ */
22
45
  border: 'none' | 'subtle' | 'primary';
23
- /** Background tone for initials */
46
+ /**
47
+ * Background colour tone for the initials fallback circle.
48
+ * Each tone applies a matching accent colour. Use `none` for the default dark background.
49
+ * @default 'none'
50
+ */
24
51
  tone: 'cyan' | 'pink' | 'orange' | 'green' | 'yellow' | 'purple' | 'primary' | 'dark' | 'none';
25
- /** Clickable styling */
52
+ /** When `true`, applies a pointer cursor to signal the avatar is interactive. */
26
53
  clickable: boolean;
27
54
  render(): import("lit-html").TemplateResult<1>;
28
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"avatar.d.ts","sourceRoot":"","sources":["../../../src/components/avatar/avatar.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD;;;;GAIG;AACH,qBACa,QAAS,SAAQ,SAAS;IACrC,MAAM,CAAC,MAAM,0BAAgB;IAE7B,mBAAmB;IACP,GAAG,CAAC,EAAE,MAAM,CAAC;IAEzB,qBAAqB;IACT,GAAG,CAAC,EAAE,MAAM,CAAC;IAEzB,8CAA8C;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE9B,mBAAmB;IAEnB,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAQ;IAEtD,oBAAoB;IAEpB,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAY;IAElD,uBAAuB;IAEvB,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAU;IAEjE,mBAAmB;IAEnB,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAU;IAE/C,mCAAmC;IAEnC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAU;IAExG,wBAAwB;IAExB,SAAS,UAAS;IAElB,MAAM;CAyBP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}
1
+ {"version":3,"file":"avatar.d.ts","sourceRoot":"","sources":["../../../src/components/avatar/avatar.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD;;;;GAIG;AACH,qBACa,QAAS,SAAQ,SAAS;IACrC,MAAM,CAAC,MAAM,0BAAgB;IAE7B,6EAA6E;IACjE,GAAG,CAAC,EAAE,MAAM,CAAC;IAEzB,8DAA8D;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;IAEzB,wFAAwF;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE9B;;;OAGG;IAEH,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAQ;IAEtD;;;;;;OAMG;IAEH,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAY;IAElD;;;;;;;;OAQG;IAEH,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAU;IAEjE;;;;;;OAMG;IAEH,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAU;IAE/C;;;;OAIG;IAEH,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAU;IAExG,iFAAiF;IAEjF,SAAS,UAAS;IAElB,MAAM;CAyBP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}
@@ -7,17 +7,30 @@ import { MhElement } from '../../mh-element.js';
7
7
  */
8
8
  export declare class MhBadge extends MhElement {
9
9
  static styles: import("lit").CSSResult;
10
- /** Visual variant */
10
+ /**
11
+ * Colour variant of the badge.
12
+ * - `default` — Subtle gray (neutral, unclassified).
13
+ * - `primary` — Blue.
14
+ * - `success` — Green.
15
+ * - `error` — Red.
16
+ * - `warning` — Yellow.
17
+ * - `info` — Blue tint (informational).
18
+ * - `solid-primary` / `solid-success` / `solid-error` / `solid-warning` — High-contrast filled variants.
19
+ * @default 'default'
20
+ */
11
21
  variant: 'default' | 'primary' | 'success' | 'error' | 'warning' | 'info' | 'solid-primary' | 'solid-success' | 'solid-error' | 'solid-warning';
12
- /** Size variant */
22
+ /**
23
+ * Badge size preset.
24
+ * @default 'md'
25
+ */
13
26
  size: 'sm' | 'md' | 'lg';
14
- /** Show dot indicator */
27
+ /** When `true`, shows only a small coloured circle — no text is displayed. */
15
28
  dot: boolean;
16
- /** Pulsing animation */
29
+ /** When `true` (and `dot` is also `true`), animates the dot with a pulsing ring. */
17
30
  pulse: boolean;
18
- /** Show remove button */
31
+ /** When `true`, displays a ✕ remove button inside the badge. */
19
32
  removable: boolean;
20
- /** Clickable styling */
33
+ /** When `true`, applies a pointer cursor to indicate the badge is interactive. */
21
34
  clickable: boolean;
22
35
  private handleRemove;
23
36
  render(): import("lit-html").TemplateResult<1>;
@@ -1 +1 @@
1
- {"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../../src/components/badge/badge.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD;;;;;GAKG;AACH,qBACa,OAAQ,SAAQ,SAAS;IACpC,MAAM,CAAC,MAAM,0BAAe;IAE5B,qBAAqB;IAErB,OAAO,EACH,SAAS,GACT,SAAS,GACT,SAAS,GACT,OAAO,GACP,SAAS,GACT,MAAM,GACN,eAAe,GACf,eAAe,GACf,aAAa,GACb,eAAe,CAAa;IAEhC,mBAAmB;IAEnB,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAEhC,yBAAyB;IAEzB,GAAG,UAAS;IAEZ,wBAAwB;IAExB,KAAK,UAAS;IAEd,yBAAyB;IAEzB,SAAS,UAAS;IAElB,wBAAwB;IAExB,SAAS,UAAS;IAElB,OAAO,CAAC,YAAY;IAKpB,MAAM;CAkCP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,OAAO,CAAC;KACrB;CACF"}
1
+ {"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../../src/components/badge/badge.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD;;;;;GAKG;AACH,qBACa,OAAQ,SAAQ,SAAS;IACpC,MAAM,CAAC,MAAM,0BAAe;IAE5B;;;;;;;;;;OAUG;IAEH,OAAO,EACH,SAAS,GACT,SAAS,GACT,SAAS,GACT,OAAO,GACP,SAAS,GACT,MAAM,GACN,eAAe,GACf,eAAe,GACf,aAAa,GACb,eAAe,CAAa;IAEhC;;;OAGG;IAEH,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAEhC,8EAA8E;IAE9E,GAAG,UAAS;IAEZ,oFAAoF;IAEpF,KAAK,UAAS;IAEd,gEAAgE;IAEhE,SAAS,UAAS;IAElB,kFAAkF;IAElF,SAAS,UAAS;IAElB,OAAO,CAAC,YAAY;IAKpB,MAAM;CAkCP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,OAAO,CAAC;KACrB;CACF"}
@@ -32,9 +32,16 @@ import { MhElement } from '../../mh-element.js';
32
32
  */
33
33
  export declare class MhBanner extends MhElement {
34
34
  static styles: import("lit").CSSResult;
35
- /** Layout variant */
35
+ /**
36
+ * Layout variant controlling the banner's content structure.
37
+ * - `default` — Background image + dark overlay + default slot for custom content.
38
+ * - `search` — Centered heading + built-in search bar.
39
+ * - `detail` — Game artwork panel, info grid, stats, and search bar (game detail pages).
40
+ * - `feature` — Full-width promo with badge, organizer row, heading, and carousel dots.
41
+ * @default 'default'
42
+ */
36
43
  variant: 'default' | 'search' | 'detail' | 'feature';
37
- /** Background image URL */
44
+ /** Background image URL for the banner. A dark fallback is shown when absent. */
38
45
  image: string;
39
46
  /** Main heading text */
40
47
  heading: string;
@@ -42,23 +49,23 @@ export declare class MhBanner extends MhElement {
42
49
  description: string;
43
50
  /** Badge label (e.g., "CIRCUIT", "POPULAR") */
44
51
  badge: string;
45
- /** Search placeholder text */
52
+ /** Placeholder text for the built-in search bar (search and detail variants). */
46
53
  searchPlaceholder: string;
47
- /** Game artwork image URL (detail variant) */
54
+ /** Game artwork image URL displayed in the left panel of the detail variant. */
48
55
  gameImage: string;
49
- /** Organizer display name (feature variant) */
56
+ /** Organizer display name rendered in the organizer row of the feature variant. */
50
57
  organizerName: string;
51
- /** First stat value (detail variant) */
58
+ /** Primary stat value shown in the stats row of the detail variant (e.g., "1st Place"). */
52
59
  stat1: string;
53
- /** First stat label (detail variant) */
60
+ /** Label beneath the primary stat value (e.g., "Prize"). */
54
61
  stat1Label: string;
55
- /** Second stat value (detail variant) */
62
+ /** Secondary stat value shown in the stats row of the detail variant (e.g., "32"). */
56
63
  stat2: string;
57
- /** Second stat label (detail variant) */
64
+ /** Label beneath the secondary stat value (e.g., "Players"). */
58
65
  stat2Label: string;
59
- /** Number of carousel dots (feature variant) */
66
+ /** Number of carousel navigation dots to render (feature variant). */
60
67
  dotCount: number;
61
- /** Active dot index (0-based, feature variant) */
68
+ /** Zero-based index of the currently active (filled) carousel dot. */
62
69
  activeDot: number;
63
70
  private _renderBg;
64
71
  private _renderSearch;
@@ -1 +1 @@
1
- {"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../../src/components/banner/banner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBACa,QAAS,SAAQ,SAAS;IACrC,MAAM,CAAC,MAAM,0BAAgB;IAE7B,qBAAqB;IAErB,OAAO,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAa;IAEjE,2BAA2B;IAE3B,KAAK,SAAM;IAEX,wBAAwB;IAExB,OAAO,SAAM;IAEb,uBAAuB;IAEvB,WAAW,SAAM;IAEjB,+CAA+C;IAE/C,KAAK,SAAM;IAEX,8BAA8B;IAE9B,iBAAiB,SAAmD;IAEpE,8CAA8C;IAE9C,SAAS,SAAM;IAEf,+CAA+C;IAE/C,aAAa,SAAM;IAEnB,wCAAwC;IAExC,KAAK,SAAM;IAEX,wCAAwC;IAExC,UAAU,SAAM;IAEhB,yCAAyC;IAEzC,KAAK,SAAM;IAEX,yCAAyC;IAEzC,UAAU,SAAM;IAEhB,gDAAgD;IAEhD,QAAQ,SAAK;IAEb,kDAAkD;IAElD,SAAS,SAAK;IAEd,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,aAAa;IA6FrB,OAAO,CAAC,cAAc;IAgDtB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,WAAW;IAKnB,MAAM;CAwBP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}
1
+ {"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../../src/components/banner/banner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBACa,QAAS,SAAQ,SAAS;IACrC,MAAM,CAAC,MAAM,0BAAgB;IAE7B;;;;;;;OAOG;IAEH,OAAO,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAa;IAEjE,iFAAiF;IAEjF,KAAK,SAAM;IAEX,wBAAwB;IAExB,OAAO,SAAM;IAEb,uBAAuB;IAEvB,WAAW,SAAM;IAEjB,+CAA+C;IAE/C,KAAK,SAAM;IAEX,iFAAiF;IAEjF,iBAAiB,SAAmD;IAEpE,gFAAgF;IAEhF,SAAS,SAAM;IAEf,mFAAmF;IAEnF,aAAa,SAAM;IAEnB,2FAA2F;IAE3F,KAAK,SAAM;IAEX,4DAA4D;IAE5D,UAAU,SAAM;IAEhB,sFAAsF;IAEtF,KAAK,SAAM;IAEX,gEAAgE;IAEhE,UAAU,SAAM;IAEhB,sEAAsE;IAEtE,QAAQ,SAAK;IAEb,sEAAsE;IAEtE,SAAS,SAAK;IAEd,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,aAAa;IA6FrB,OAAO,CAAC,cAAc;IAgDtB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,WAAW;IAKnB,MAAM;CAwBP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}