@oti-adjei/ui 0.1.0-beta.1

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 (122) hide show
  1. package/README.md +229 -0
  2. package/dist/components/alert/alert.d.ts +36 -0
  3. package/dist/components/alert/alert.d.ts.map +1 -0
  4. package/dist/components/alert/alert.styles.d.ts +2 -0
  5. package/dist/components/alert/alert.styles.d.ts.map +1 -0
  6. package/dist/components/alert/index.d.ts +2 -0
  7. package/dist/components/alert/index.d.ts.map +1 -0
  8. package/dist/components/avatar/avatar.d.ts +34 -0
  9. package/dist/components/avatar/avatar.d.ts.map +1 -0
  10. package/dist/components/avatar/avatar.styles.d.ts +2 -0
  11. package/dist/components/avatar/avatar.styles.d.ts.map +1 -0
  12. package/dist/components/avatar/index.d.ts +2 -0
  13. package/dist/components/avatar/index.d.ts.map +1 -0
  14. package/dist/components/badge/badge.d.ts +30 -0
  15. package/dist/components/badge/badge.d.ts.map +1 -0
  16. package/dist/components/badge/badge.styles.d.ts +2 -0
  17. package/dist/components/badge/badge.styles.d.ts.map +1 -0
  18. package/dist/components/badge/index.d.ts +2 -0
  19. package/dist/components/badge/index.d.ts.map +1 -0
  20. package/dist/components/button/button.d.ts +41 -0
  21. package/dist/components/button/button.d.ts.map +1 -0
  22. package/dist/components/button/button.styles.d.ts +2 -0
  23. package/dist/components/button/button.styles.d.ts.map +1 -0
  24. package/dist/components/button/index.d.ts +2 -0
  25. package/dist/components/button/index.d.ts.map +1 -0
  26. package/dist/components/card/card.d.ts +23 -0
  27. package/dist/components/card/card.d.ts.map +1 -0
  28. package/dist/components/card/card.styles.d.ts +2 -0
  29. package/dist/components/card/card.styles.d.ts.map +1 -0
  30. package/dist/components/card/index.d.ts +2 -0
  31. package/dist/components/card/index.d.ts.map +1 -0
  32. package/dist/components/checkbox/checkbox.d.ts +33 -0
  33. package/dist/components/checkbox/checkbox.d.ts.map +1 -0
  34. package/dist/components/checkbox/checkbox.styles.d.ts +2 -0
  35. package/dist/components/checkbox/checkbox.styles.d.ts.map +1 -0
  36. package/dist/components/checkbox/index.d.ts +2 -0
  37. package/dist/components/checkbox/index.d.ts.map +1 -0
  38. package/dist/components/dropdown/dropdown.d.ts +48 -0
  39. package/dist/components/dropdown/dropdown.d.ts.map +1 -0
  40. package/dist/components/dropdown/dropdown.styles.d.ts +2 -0
  41. package/dist/components/dropdown/dropdown.styles.d.ts.map +1 -0
  42. package/dist/components/dropdown/index.d.ts +2 -0
  43. package/dist/components/dropdown/index.d.ts.map +1 -0
  44. package/dist/components/footer/footer.d.ts +17 -0
  45. package/dist/components/footer/footer.d.ts.map +1 -0
  46. package/dist/components/footer/footer.styles.d.ts +2 -0
  47. package/dist/components/footer/footer.styles.d.ts.map +1 -0
  48. package/dist/components/footer/index.d.ts +2 -0
  49. package/dist/components/footer/index.d.ts.map +1 -0
  50. package/dist/components/input/index.d.ts +2 -0
  51. package/dist/components/input/index.d.ts.map +1 -0
  52. package/dist/components/input/input.d.ts +74 -0
  53. package/dist/components/input/input.d.ts.map +1 -0
  54. package/dist/components/input/input.styles.d.ts +2 -0
  55. package/dist/components/input/input.styles.d.ts.map +1 -0
  56. package/dist/components/logo/index.d.ts +2 -0
  57. package/dist/components/logo/index.d.ts.map +1 -0
  58. package/dist/components/logo/logo.d.ts +26 -0
  59. package/dist/components/logo/logo.d.ts.map +1 -0
  60. package/dist/components/logo/logo.styles.d.ts +2 -0
  61. package/dist/components/logo/logo.styles.d.ts.map +1 -0
  62. package/dist/components/modal/index.d.ts +2 -0
  63. package/dist/components/modal/index.d.ts.map +1 -0
  64. package/dist/components/modal/modal.d.ts +64 -0
  65. package/dist/components/modal/modal.d.ts.map +1 -0
  66. package/dist/components/modal/modal.styles.d.ts +2 -0
  67. package/dist/components/modal/modal.styles.d.ts.map +1 -0
  68. package/dist/components/navigation/index.d.ts +2 -0
  69. package/dist/components/navigation/index.d.ts.map +1 -0
  70. package/dist/components/navigation/navigation.d.ts +37 -0
  71. package/dist/components/navigation/navigation.d.ts.map +1 -0
  72. package/dist/components/navigation/navigation.styles.d.ts +2 -0
  73. package/dist/components/navigation/navigation.styles.d.ts.map +1 -0
  74. package/dist/components/pagination/index.d.ts +2 -0
  75. package/dist/components/pagination/index.d.ts.map +1 -0
  76. package/dist/components/pagination/pagination.d.ts +31 -0
  77. package/dist/components/pagination/pagination.d.ts.map +1 -0
  78. package/dist/components/pagination/pagination.styles.d.ts +2 -0
  79. package/dist/components/pagination/pagination.styles.d.ts.map +1 -0
  80. package/dist/components/progress/index.d.ts +2 -0
  81. package/dist/components/progress/index.d.ts.map +1 -0
  82. package/dist/components/progress/progress.d.ts +29 -0
  83. package/dist/components/progress/progress.d.ts.map +1 -0
  84. package/dist/components/progress/progress.styles.d.ts +2 -0
  85. package/dist/components/progress/progress.styles.d.ts.map +1 -0
  86. package/dist/components/scroll/index.d.ts +2 -0
  87. package/dist/components/scroll/index.d.ts.map +1 -0
  88. package/dist/components/scroll/scroll.d.ts +22 -0
  89. package/dist/components/scroll/scroll.d.ts.map +1 -0
  90. package/dist/components/scroll/scroll.styles.d.ts +2 -0
  91. package/dist/components/scroll/scroll.styles.d.ts.map +1 -0
  92. package/dist/components/search/index.d.ts +2 -0
  93. package/dist/components/search/index.d.ts.map +1 -0
  94. package/dist/components/search/search.d.ts +36 -0
  95. package/dist/components/search/search.d.ts.map +1 -0
  96. package/dist/components/search/search.styles.d.ts +2 -0
  97. package/dist/components/search/search.styles.d.ts.map +1 -0
  98. package/dist/components/switch/index.d.ts +2 -0
  99. package/dist/components/switch/index.d.ts.map +1 -0
  100. package/dist/components/switch/switch.d.ts +29 -0
  101. package/dist/components/switch/switch.d.ts.map +1 -0
  102. package/dist/components/switch/switch.styles.d.ts +2 -0
  103. package/dist/components/switch/switch.styles.d.ts.map +1 -0
  104. package/dist/components/table/index.d.ts +2 -0
  105. package/dist/components/table/index.d.ts.map +1 -0
  106. package/dist/components/table/table.d.ts +53 -0
  107. package/dist/components/table/table.d.ts.map +1 -0
  108. package/dist/components/table/table.styles.d.ts +2 -0
  109. package/dist/components/table/table.styles.d.ts.map +1 -0
  110. package/dist/index.d.ts +27 -0
  111. package/dist/index.d.ts.map +1 -0
  112. package/dist/index.js +5649 -0
  113. package/dist/internal/event.d.ts +14 -0
  114. package/dist/internal/event.d.ts.map +1 -0
  115. package/dist/mh-element.d.ts +18 -0
  116. package/dist/mh-element.d.ts.map +1 -0
  117. package/dist/tokens/index.css +1 -0
  118. package/dist/tokens/inject-tokens.d.ts +2 -0
  119. package/dist/tokens/inject-tokens.d.ts.map +1 -0
  120. package/dist/tokens/tokens.d.ts +7 -0
  121. package/dist/tokens/tokens.d.ts.map +1 -0
  122. package/package.json +130 -0
package/README.md ADDED
@@ -0,0 +1,229 @@
1
+ # @mashharder/ui
2
+
3
+ Web Component library using Lit + Shadow DOM for Mashharder's esports products.
4
+
5
+ ## Features
6
+
7
+ - ⚡ **Web Components** - Native custom elements with Shadow DOM encapsulation
8
+ - 🎨 **Lit-based** - Built with Lit for reactive, efficient components
9
+ - 🔧 **Framework-agnostic** - Works with React, Vue, Next.js, Astro, Svelte, or plain HTML
10
+ - 🎯 **Design tokens** - CSS custom properties for consistent theming
11
+ - 📦 **Tree-shakeable** - Import only what you need
12
+ - 🎭 **Dark theme** - Designed for esports aesthetics
13
+ - 📚 **Storybook** - Interactive component documentation
14
+ - 🔒 **TypeScript** - Full TypeScript support with type definitions
15
+ - 🎯 **Shadow DOM** - Encapsulated styles prevent conflicts
16
+
17
+ ## Installation
18
+
19
+ ```bash
20
+ npm install @mashharder/ui
21
+ ```
22
+
23
+ ## Usage
24
+
25
+ ### Import All Styles
26
+
27
+ ```typescript
28
+ // In your app's entry point
29
+ import '@mashharder/ui';
30
+ ```
31
+
32
+ ### Import Selectively
33
+
34
+ ```typescript
35
+ // Just design tokens
36
+ import '@mashharder/ui/tokens';
37
+
38
+ // Specific components
39
+ import '@mashharder/ui/components/button/button.css';
40
+ import '@mashharder/ui/components/card/card.css';
41
+ ```
42
+
43
+ ### HTML Usage
44
+
45
+ ```html
46
+ <!-- Button -->
47
+ <mh-button variant="primary">Click me</mh-button>
48
+
49
+ <!-- Card with slots -->
50
+ <mh-card>
51
+ <div slot="header">
52
+ <h3>Tournament Name</h3>
53
+ </div>
54
+ <div slot="body">
55
+ <p>Tournament description</p>
56
+ </div>
57
+ <div slot="footer">
58
+ <mh-button variant="primary">Join</mh-button>
59
+ </div>
60
+ </mh-card>
61
+
62
+ <!-- Badge -->
63
+ <mh-badge variant="solid" status="error" pulse>Live</mh-badge>
64
+
65
+ <!-- Input with validation -->
66
+ <mh-input
67
+ label="Email"
68
+ type="email"
69
+ placeholder="Enter email"
70
+ help-text="We'll never share your email"
71
+ required>
72
+ </mh-input>
73
+ ```
74
+
75
+ ### React/Next.js Usage
76
+
77
+ ```tsx
78
+ export function TournamentCard() {
79
+ return (
80
+ <mh-card variant="featured">
81
+ <div slot="header">
82
+ <h3>Spring Championship</h3>
83
+ </div>
84
+ <div slot="body">
85
+ <p>Join the biggest tournament of the season</p>
86
+ </div>
87
+ <div slot="footer">
88
+ <mh-button variant="primary">Register Now</mh-button>
89
+ </div>
90
+ </mh-card>
91
+ );
92
+ }
93
+ ```
94
+
95
+ ### TypeScript Support
96
+
97
+ Full TypeScript support with auto-completion:
98
+
99
+ ```tsx
100
+ import '@mashharder/ui';
101
+ import type { MhButton, MhCard } from '@mashharder/ui';
102
+
103
+ // Type-safe element references
104
+ const button = document.querySelector<MhButton>('mh-button');
105
+ button?.addEventListener('mh-click', (e) => {
106
+ console.log('Button clicked!', e.detail);
107
+ });
108
+ ```
109
+
110
+ ### Shadow DOM
111
+
112
+ All components use Shadow DOM for style encapsulation. This means:
113
+ - Component styles don't leak out
114
+ - External styles don't leak in
115
+ - No naming conflicts with your app's CSS
116
+ - Customization via CSS custom properties (design tokens)
117
+
118
+ ```css
119
+ /* Customize via CSS custom properties */
120
+ :root {
121
+ --mh-color-primary: #your-brand-color;
122
+ --mh-font-display: 'Your-Font', sans-serif;
123
+ }
124
+ ```
125
+
126
+ ## Components
127
+
128
+ ### P0 (Core Components) ✅ Complete
129
+ - ✅ **Button** - Primary, secondary, ghost, danger variants with sizes
130
+ - ✅ **Card** - Event cards, match cards, featured variants
131
+ - ✅ **Badge** - Status indicators with colors and animations
132
+ - ✅ **Input** - Text inputs, textareas, selects with validation states
133
+
134
+ ### P1 (Form Components) ✅ Complete
135
+ - ✅ **Alert** - Info, success, warning, error with solid variants
136
+ - ✅ **Checkbox** - Custom styled with indeterminate state
137
+ - ✅ **Switch** - Toggle switches with color variants
138
+ - ✅ **Dropdown** - Custom dropdowns with icons and descriptions
139
+ - ✅ **Search** - Search input with results dropdown
140
+
141
+ ### P2 (Layout Components) ✅ Complete
142
+ - ✅ **Progress** - Linear, circular, and step progress indicators
143
+ - ✅ **Pagination** - Page navigation with multiple variants
144
+ - ✅ **Navigation** - Header navigation with mobile support
145
+ - ✅ **Footer** - Site footer with links and social media
146
+ - ✅ **Table** - Data tables with sorting and variants
147
+
148
+ ### P3 (Advanced Components) ✅ Complete
149
+ - ✅ **Scroll** - Custom scrollbar styles
150
+ - ✅ **Avatar** - User avatars with status indicators
151
+
152
+ ## Design Tokens
153
+
154
+ All design tokens are available as CSS custom properties:
155
+
156
+ ```css
157
+ /* Colors */
158
+ --mh-color-primary: #475efd;
159
+ --mh-color-bg-base: #101112;
160
+ --mh-color-text-primary: #ffffff;
161
+
162
+ /* Typography */
163
+ --mh-font-display: 'Gilroy', sans-serif;
164
+ --mh-font-body: 'Inter', sans-serif;
165
+ --mh-text-base: 0.875rem;
166
+
167
+ /* Spacing */
168
+ --mh-space-4: 1rem;
169
+ --mh-space-6: 1.5rem;
170
+
171
+ /* Shadows */
172
+ --mh-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.25);
173
+
174
+ /* Radius */
175
+ --mh-radius-md: 8px;
176
+ --mh-radius-lg: 12px;
177
+ ```
178
+
179
+ ## Development
180
+
181
+ ### Install Dependencies
182
+
183
+ ```bash
184
+ npm install
185
+ ```
186
+
187
+ ### Run Storybook
188
+
189
+ ```bash
190
+ npm run dev
191
+ ```
192
+
193
+ Visit http://localhost:6006 to view the component library.
194
+
195
+ ### Build
196
+
197
+ ```bash
198
+ npm run build
199
+ ```
200
+
201
+ ### Build Storybook
202
+
203
+ ```bash
204
+ npm run build:storybook
205
+ ```
206
+
207
+ ## Naming Convention
208
+
209
+ Components follow BEM methodology with `mh-` prefix:
210
+
211
+ - **Block:** `.mh-button`
212
+ - **Element:** `.mh-button__icon`
213
+ - **Modifier:** `.mh-button--primary`
214
+ - **State:** `.mh-button:hover`
215
+
216
+ ## Browser Support
217
+
218
+ - Chrome (latest)
219
+ - Firefox (latest)
220
+ - Safari (latest)
221
+ - Edge (latest)
222
+
223
+ ## License
224
+
225
+ MIT
226
+
227
+ ## Contributing
228
+
229
+ This is a private package for Mashharder projects. For issues or feature requests, please contact the development team.
@@ -0,0 +1,36 @@
1
+ import { MhElement } from '../../mh-element.js';
2
+ /**
3
+ * @tag mh-alert
4
+ *
5
+ * @slot - Additional content
6
+ * @slot icon - Icon content
7
+ * @slot title - Title content
8
+ * @slot description - Description content
9
+ * @fires mh-close - Fired when close button is clicked
10
+ */
11
+ export declare class MhAlert extends MhElement {
12
+ static styles: import("lit").CSSResult;
13
+ /** Visual variant */
14
+ variant: 'info' | 'success' | 'warning' | 'error' | 'solid-info' | 'solid-success' | 'solid-warning' | 'solid-error';
15
+ /** Size variant */
16
+ size: 'sm' | 'md' | 'lg';
17
+ /** Show close button */
18
+ closable: boolean;
19
+ /** Control visibility */
20
+ open: boolean;
21
+ /** Optional icon text */
22
+ icon?: string;
23
+ /** Optional title text */
24
+ heading: string;
25
+ /** Optional description text */
26
+ description?: string;
27
+ private isDismissing;
28
+ private handleClose;
29
+ render(): import("lit-html").TemplateResult<1>;
30
+ }
31
+ declare global {
32
+ interface HTMLElementTagNameMap {
33
+ 'mh-alert': MhAlert;
34
+ }
35
+ }
36
+ //# sourceMappingURL=alert.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,2 @@
1
+ export declare const alertStyles: import("lit").CSSResult;
2
+ //# sourceMappingURL=alert.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert.styles.d.ts","sourceRoot":"","sources":["../../../src/components/alert/alert.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,yBAwLvB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { MhAlert } from './alert.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/alert/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { MhElement } from '../../mh-element.js';
2
+ /**
3
+ * @tag mh-avatar
4
+ *
5
+ * @slot - Fallback content (e.g., initials)
6
+ */
7
+ export declare class MhAvatar extends MhElement {
8
+ static styles: import("lit").CSSResult;
9
+ /** Image source */
10
+ src?: string;
11
+ /** Image alt text */
12
+ alt?: string;
13
+ /** Initials text when no image is provided */
14
+ initials?: string;
15
+ /** Size variant */
16
+ size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
17
+ /** Shape variant */
18
+ shape: 'circle' | 'rounded' | 'square';
19
+ /** Status indicator */
20
+ status: 'online' | 'offline' | 'away' | 'busy' | 'none';
21
+ /** Border style */
22
+ border: 'none' | 'subtle' | 'primary';
23
+ /** Background tone for initials */
24
+ tone: 'cyan' | 'pink' | 'orange' | 'green' | 'yellow' | 'purple' | 'primary' | 'dark' | 'none';
25
+ /** Clickable styling */
26
+ clickable: boolean;
27
+ render(): import("lit-html").TemplateResult<1>;
28
+ }
29
+ declare global {
30
+ interface HTMLElementTagNameMap {
31
+ 'mh-avatar': MhAvatar;
32
+ }
33
+ }
34
+ //# sourceMappingURL=avatar.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,2 @@
1
+ export declare const avatarStyles: import("lit").CSSResult;
2
+ //# sourceMappingURL=avatar.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar.styles.d.ts","sourceRoot":"","sources":["../../../src/components/avatar/avatar.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,yBAoPxB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { MhAvatar } from './avatar.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/avatar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { MhElement } from '../../mh-element.js';
2
+ /**
3
+ * @tag mh-badge
4
+ *
5
+ * @slot - Badge text
6
+ * @fires mh-remove - Fired when remove button is clicked
7
+ */
8
+ export declare class MhBadge extends MhElement {
9
+ static styles: import("lit").CSSResult;
10
+ /** Visual variant */
11
+ variant: 'default' | 'primary' | 'success' | 'error' | 'warning' | 'info' | 'solid-primary' | 'solid-success' | 'solid-error' | 'solid-warning';
12
+ /** Size variant */
13
+ size: 'sm' | 'md' | 'lg';
14
+ /** Show dot indicator */
15
+ dot: boolean;
16
+ /** Pulsing animation */
17
+ pulse: boolean;
18
+ /** Show remove button */
19
+ removable: boolean;
20
+ /** Clickable styling */
21
+ clickable: boolean;
22
+ private handleRemove;
23
+ render(): import("lit-html").TemplateResult<1>;
24
+ }
25
+ declare global {
26
+ interface HTMLElementTagNameMap {
27
+ 'mh-badge': MhBadge;
28
+ }
29
+ }
30
+ //# sourceMappingURL=badge.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,2 @@
1
+ export declare const badgeStyles: import("lit").CSSResult;
2
+ //# sourceMappingURL=badge.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge.styles.d.ts","sourceRoot":"","sources":["../../../src/components/badge/badge.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,yBAsMvB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { MhBadge } from './badge.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/badge/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { MhElement } from '../../mh-element.js';
2
+ /**
3
+ * @tag mh-button
4
+ *
5
+ * @slot - Button label
6
+ * @slot prefix - Icon or content before label
7
+ * @slot suffix - Icon or content after label
8
+ *
9
+ * @csspart base - The button element
10
+ * @csspart prefix - The prefix slot container
11
+ * @csspart label - The label slot container
12
+ * @csspart suffix - The suffix slot container
13
+ * @csspart spinner - The loading spinner
14
+ *
15
+ * @fires mh-click - Fired when button is clicked (not fired when disabled or loading)
16
+ */
17
+ export declare class MhButton extends MhElement {
18
+ static styles: import("lit").CSSResult;
19
+ /** Button variant */
20
+ variant: 'primary' | 'secondary' | 'ghost' | 'danger';
21
+ /** Button size */
22
+ size: 'sm' | 'md' | 'lg' | 'xl';
23
+ /** Disabled state */
24
+ disabled: boolean;
25
+ /** Loading state */
26
+ loading: boolean;
27
+ /** Button type */
28
+ type: 'button' | 'submit' | 'reset';
29
+ /** Makes button render as link */
30
+ href?: string;
31
+ /** Full width */
32
+ fullWidth: boolean;
33
+ private handleClick;
34
+ render(): import("lit-html").TemplateResult<1>;
35
+ }
36
+ declare global {
37
+ interface HTMLElementTagNameMap {
38
+ 'mh-button': MhButton;
39
+ }
40
+ }
41
+ //# sourceMappingURL=button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../src/components/button/button.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD;;;;;;;;;;;;;;GAcG;AACH,qBACa,QAAS,SAAQ,SAAS;IACrC,MAAM,CAAC,MAAM,0BAAgB;IAE7B,qBAAqB;IAErB,OAAO,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAa;IAElE,kBAAkB;IAElB,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAEvC,qBAAqB;IAErB,QAAQ,UAAS;IAEjB,oBAAoB;IAEpB,OAAO,UAAS;IAEhB,kBAAkB;IAElB,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAY;IAE/C,kCAAkC;IAElC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,iBAAiB;IAEjB,SAAS,UAAS;IAElB,OAAO,CAAC,WAAW;IAYnB,MAAM;CAwDP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}
@@ -0,0 +1,2 @@
1
+ export declare const buttonStyles: import("lit").CSSResult;
2
+ //# sourceMappingURL=button.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.styles.d.ts","sourceRoot":"","sources":["../../../src/components/button/button.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,yBA+KxB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { MhButton } from './button.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { MhElement } from '../../mh-element.js';
2
+ /**
3
+ * @tag mh-card
4
+ *
5
+ * @slot status - Status badge/label
6
+ * @slot image - Card image
7
+ * @slot header - Header content
8
+ * @slot body - Body content
9
+ * @slot footer - Footer content
10
+ * @slot content - Content wrapper for variants like hero/tournament
11
+ */
12
+ export declare class MhCard extends MhElement {
13
+ static styles: import("lit").CSSResult;
14
+ /** Visual variant */
15
+ variant: 'default' | 'featured' | 'compact' | 'interactive' | 'event' | 'match' | 'hero' | 'tournament' | 'team' | 'horizontal' | 'feature';
16
+ render(): import("lit-html").TemplateResult<1>;
17
+ }
18
+ declare global {
19
+ interface HTMLElementTagNameMap {
20
+ 'mh-card': MhCard;
21
+ }
22
+ }
23
+ //# sourceMappingURL=card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../../src/components/card/card.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD;;;;;;;;;GASG;AACH,qBACa,MAAO,SAAQ,SAAS;IACnC,MAAM,CAAC,MAAM,0BAAc;IAE3B,qBAAqB;IAErB,OAAO,EACH,SAAS,GACT,UAAU,GACV,SAAS,GACT,aAAa,GACb,OAAO,GACP,OAAO,GACP,MAAM,GACN,YAAY,GACZ,MAAM,GACN,YAAY,GACZ,SAAS,CAAa;IAE1B,MAAM;CAoCP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,SAAS,EAAE,MAAM,CAAC;KACnB;CACF"}
@@ -0,0 +1,2 @@
1
+ export declare const cardStyles: import("lit").CSSResult;
2
+ //# sourceMappingURL=card.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.styles.d.ts","sourceRoot":"","sources":["../../../src/components/card/card.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,yBAibtB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { MhCard } from './card.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/card/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { MhElement } from '../../mh-element.js';
2
+ /**
3
+ * @tag mh-checkbox
4
+ *
5
+ * @fires mh-change - Fired when checked state changes
6
+ * @fires mh-input - Fired on input interaction
7
+ */
8
+ export declare class MhCheckbox extends MhElement {
9
+ static styles: import("lit").CSSResult;
10
+ input: HTMLInputElement;
11
+ /** Checked state */
12
+ checked: boolean;
13
+ /** Indeterminate state */
14
+ indeterminate: boolean;
15
+ /** Disabled state */
16
+ disabled: boolean;
17
+ /** Size variant */
18
+ size: 'sm' | 'md' | 'lg';
19
+ /** Label text */
20
+ label: string;
21
+ /** Description text */
22
+ description: string;
23
+ updated(changed: Map<string, unknown>): void;
24
+ private handleInput;
25
+ private handleChange;
26
+ render(): import("lit-html").TemplateResult<1>;
27
+ }
28
+ declare global {
29
+ interface HTMLElementTagNameMap {
30
+ 'mh-checkbox': MhCheckbox;
31
+ }
32
+ }
33
+ //# sourceMappingURL=checkbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../../src/components/checkbox/checkbox.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD;;;;;GAKG;AACH,qBACa,UAAW,SAAQ,SAAS;IACvC,MAAM,CAAC,MAAM,0BAAkB;IAEf,KAAK,EAAG,gBAAgB,CAAC;IAEzC,oBAAoB;IAEpB,OAAO,UAAS;IAEhB,0BAA0B;IAE1B,aAAa,UAAS;IAEtB,qBAAqB;IAErB,QAAQ,UAAS;IAEjB,mBAAmB;IAEnB,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAEhC,iBAAiB;IACL,KAAK,SAAM;IAEvB,uBAAuB;IACX,WAAW,SAAM;IAE7B,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAMrC,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,YAAY;IAUpB,MAAM;CA8BP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,UAAU,CAAC;KAC3B;CACF"}
@@ -0,0 +1,2 @@
1
+ export declare const checkboxStyles: import("lit").CSSResult;
2
+ //# sourceMappingURL=checkbox.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.styles.d.ts","sourceRoot":"","sources":["../../../src/components/checkbox/checkbox.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,yBA8I1B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { MhCheckbox } from './checkbox.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/checkbox/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { MhElement } from '../../mh-element.js';
2
+ /**
3
+ * @tag mh-dropdown
4
+ *
5
+ * @slot trigger - Trigger content
6
+ * @slot - Dropdown items
7
+ * @fires mh-toggle - Fired when dropdown opens/closes
8
+ * @fires mh-select - Fired when an item is selected
9
+ */
10
+ export declare class MhDropdown extends MhElement {
11
+ static styles: import("lit").CSSResult;
12
+ menu: HTMLElement;
13
+ /** Open state */
14
+ open: boolean;
15
+ /** Disabled state */
16
+ disabled: boolean;
17
+ /** Align menu to right */
18
+ right: boolean;
19
+ /** Open menu upwards */
20
+ up: boolean;
21
+ private handleToggle;
22
+ private handleMenuClick;
23
+ render(): import("lit-html").TemplateResult<1>;
24
+ }
25
+ /**
26
+ * @tag mh-dropdown-item
27
+ *
28
+ * @slot - Item content
29
+ */
30
+ export declare class MhDropdownItem extends MhElement {
31
+ static styles: import("lit").CSSResult;
32
+ /** Item value */
33
+ value: string;
34
+ /** Disabled state */
35
+ disabled: boolean;
36
+ /** Selected state */
37
+ selected: boolean;
38
+ /** Close dropdown on select */
39
+ closeOnSelect: boolean;
40
+ render(): import("lit-html").TemplateResult<1>;
41
+ }
42
+ declare global {
43
+ interface HTMLElementTagNameMap {
44
+ 'mh-dropdown': MhDropdown;
45
+ 'mh-dropdown-item': MhDropdownItem;
46
+ }
47
+ }
48
+ //# sourceMappingURL=dropdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown.d.ts","sourceRoot":"","sources":["../../../src/components/dropdown/dropdown.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD;;;;;;;GAOG;AACH,qBACa,UAAW,SAAQ,SAAS;IACvC,MAAM,CAAC,MAAM,0BAAkB;IAEF,IAAI,EAAG,WAAW,CAAC;IAEhD,iBAAiB;IAEjB,IAAI,UAAS;IAEb,qBAAqB;IAErB,QAAQ,UAAS;IAEjB,0BAA0B;IAE1B,KAAK,UAAS;IAEd,wBAAwB;IAExB,EAAE,UAAS;IAEX,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,eAAe;IAcvB,MAAM;CAsBP;AAED;;;;GAIG;AACH,qBACa,cAAe,SAAQ,SAAS;IAC3C,MAAM,CAAC,MAAM,0BAAkB;IAE/B,iBAAiB;IACL,KAAK,SAAM;IAEvB,qBAAqB;IAErB,QAAQ,UAAS;IAEjB,qBAAqB;IAErB,QAAQ,UAAS;IAEjB,+BAA+B;IAE/B,aAAa,UAAQ;IAErB,MAAM;CAaP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,UAAU,CAAC;QAC1B,kBAAkB,EAAE,cAAc,CAAC;KACpC;CACF"}
@@ -0,0 +1,2 @@
1
+ export declare const dropdownStyles: import("lit").CSSResult;
2
+ //# sourceMappingURL=dropdown.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown.styles.d.ts","sourceRoot":"","sources":["../../../src/components/dropdown/dropdown.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,yBAsP1B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { MhDropdown, MhDropdownItem } from './dropdown.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/dropdown/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { MhElement } from '../../mh-element.js';
2
+ /**
3
+ * @tag mh-footer
4
+ *
5
+ * @slot columns - Footer columns
6
+ * @slot bottom - Footer bottom row
7
+ */
8
+ export declare class MhFooter extends MhElement {
9
+ static styles: import("lit").CSSResult;
10
+ render(): import("lit-html").TemplateResult<1>;
11
+ }
12
+ declare global {
13
+ interface HTMLElementTagNameMap {
14
+ 'mh-footer': MhFooter;
15
+ }
16
+ }
17
+ //# sourceMappingURL=footer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"footer.d.ts","sourceRoot":"","sources":["../../../src/components/footer/footer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD;;;;;GAKG;AACH,qBACa,QAAS,SAAQ,SAAS;IACrC,MAAM,CAAC,MAAM,0BAAgB;IAE7B,MAAM;CAeP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}
@@ -0,0 +1,2 @@
1
+ export declare const footerStyles: import("lit").CSSResult;
2
+ //# sourceMappingURL=footer.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"footer.styles.d.ts","sourceRoot":"","sources":["../../../src/components/footer/footer.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,yBAqIxB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { MhFooter } from './footer.js';
2
+ //# sourceMappingURL=index.d.ts.map