@edwardguerra/design-system 1.0.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 (131) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +77 -0
  3. package/dist/css/main.css +132 -0
  4. package/dist/css/tokens.css +318 -0
  5. package/dist/index.cjs +31 -0
  6. package/dist/index.cjs.map +1 -0
  7. package/dist/index.mjs +1188 -0
  8. package/dist/index.mjs.map +1 -0
  9. package/dist/style.css +1 -0
  10. package/dist/tokens/_variables.scss +296 -0
  11. package/dist/tokens/tokens.d.ts +338 -0
  12. package/dist/tokens/tokens.js +297 -0
  13. package/dist/tokens/tokens.json +294 -0
  14. package/dist/tokens/variables.css +318 -0
  15. package/dist/types/components/Accordion/Accordion.d.ts +30 -0
  16. package/dist/types/components/Accordion/Accordion.stories.d.ts +15 -0
  17. package/dist/types/components/Accordion/Accordion.test.d.ts +1 -0
  18. package/dist/types/components/Accordion/index.d.ts +2 -0
  19. package/dist/types/components/Article/Article.d.ts +21 -0
  20. package/dist/types/components/Article/Article.stories.d.ts +13 -0
  21. package/dist/types/components/Article/Article.test.d.ts +1 -0
  22. package/dist/types/components/Article/index.d.ts +2 -0
  23. package/dist/types/components/Badge/Badge.d.ts +20 -0
  24. package/dist/types/components/Badge/Badge.stories.d.ts +20 -0
  25. package/dist/types/components/Badge/Badge.test.d.ts +1 -0
  26. package/dist/types/components/Badge/index.d.ts +2 -0
  27. package/dist/types/components/Button/Button.d.ts +49 -0
  28. package/dist/types/components/Button/Button.stories.d.ts +43 -0
  29. package/dist/types/components/Button/Button.test.d.ts +1 -0
  30. package/dist/types/components/Button/index.d.ts +2 -0
  31. package/dist/types/components/Card/Card.d.ts +43 -0
  32. package/dist/types/components/Card/Card.stories.d.ts +31 -0
  33. package/dist/types/components/Card/Card.test.d.ts +1 -0
  34. package/dist/types/components/Card/index.d.ts +2 -0
  35. package/dist/types/components/Carousel/Carousel.d.ts +27 -0
  36. package/dist/types/components/Carousel/Carousel.stories.d.ts +12 -0
  37. package/dist/types/components/Carousel/Carousel.test.d.ts +1 -0
  38. package/dist/types/components/Carousel/index.d.ts +2 -0
  39. package/dist/types/components/DescriptionList/DescriptionList.d.ts +31 -0
  40. package/dist/types/components/DescriptionList/DescriptionList.stories.d.ts +12 -0
  41. package/dist/types/components/DescriptionList/DescriptionList.test.d.ts +1 -0
  42. package/dist/types/components/DescriptionList/index.d.ts +2 -0
  43. package/dist/types/components/Feature/Feature.d.ts +25 -0
  44. package/dist/types/components/Feature/Feature.stories.d.ts +19 -0
  45. package/dist/types/components/Feature/Feature.test.d.ts +1 -0
  46. package/dist/types/components/Feature/index.d.ts +2 -0
  47. package/dist/types/components/Icon/Icon.d.ts +24 -0
  48. package/dist/types/components/Icon/Icon.stories.d.ts +21 -0
  49. package/dist/types/components/Icon/Icon.test.d.ts +1 -0
  50. package/dist/types/components/Icon/index.d.ts +2 -0
  51. package/dist/types/components/Input/Input.d.ts +40 -0
  52. package/dist/types/components/Input/Input.stories.d.ts +30 -0
  53. package/dist/types/components/Input/Input.test.d.ts +1 -0
  54. package/dist/types/components/Input/index.d.ts +2 -0
  55. package/dist/types/components/Link/Link.d.ts +45 -0
  56. package/dist/types/components/Link/Link.stories.d.ts +19 -0
  57. package/dist/types/components/Link/Link.test.d.ts +1 -0
  58. package/dist/types/components/Link/index.d.ts +2 -0
  59. package/dist/types/components/List/List.d.ts +35 -0
  60. package/dist/types/components/List/List.stories.d.ts +14 -0
  61. package/dist/types/components/List/List.test.d.ts +1 -0
  62. package/dist/types/components/List/index.d.ts +2 -0
  63. package/dist/types/components/Menu/Menu.d.ts +44 -0
  64. package/dist/types/components/Menu/Menu.stories.d.ts +19 -0
  65. package/dist/types/components/Menu/Menu.test.d.ts +1 -0
  66. package/dist/types/components/Menu/index.d.ts +2 -0
  67. package/dist/types/components/Modal/Modal.d.ts +44 -0
  68. package/dist/types/components/Modal/Modal.stories.d.ts +26 -0
  69. package/dist/types/components/Modal/Modal.test.d.ts +1 -0
  70. package/dist/types/components/Modal/index.d.ts +2 -0
  71. package/dist/types/components/Nav/Nav.d.ts +43 -0
  72. package/dist/types/components/Nav/Nav.stories.d.ts +19 -0
  73. package/dist/types/components/Nav/Nav.test.d.ts +1 -0
  74. package/dist/types/components/Nav/index.d.ts +2 -0
  75. package/dist/types/components/Pagination/Pagination.d.ts +36 -0
  76. package/dist/types/components/Pagination/Pagination.stories.d.ts +15 -0
  77. package/dist/types/components/Pagination/Pagination.test.d.ts +1 -0
  78. package/dist/types/components/Pagination/index.d.ts +2 -0
  79. package/dist/types/components/Radio/Radio.d.ts +30 -0
  80. package/dist/types/components/Radio/Radio.stories.d.ts +15 -0
  81. package/dist/types/components/Radio/Radio.test.d.ts +1 -0
  82. package/dist/types/components/Radio/index.d.ts +2 -0
  83. package/dist/types/components/Slider/Slider.d.ts +44 -0
  84. package/dist/types/components/Slider/Slider.stories.d.ts +14 -0
  85. package/dist/types/components/Slider/Slider.test.d.ts +1 -0
  86. package/dist/types/components/Slider/index.d.ts +2 -0
  87. package/dist/types/components/Switch/Switch.d.ts +29 -0
  88. package/dist/types/components/Switch/Switch.stories.d.ts +16 -0
  89. package/dist/types/components/Switch/Switch.test.d.ts +1 -0
  90. package/dist/types/components/Switch/index.d.ts +2 -0
  91. package/dist/types/components/TOC/TOC.d.ts +37 -0
  92. package/dist/types/components/TOC/TOC.stories.d.ts +17 -0
  93. package/dist/types/components/TOC/TOC.test.d.ts +1 -0
  94. package/dist/types/components/TOC/index.d.ts +2 -0
  95. package/dist/types/components/Table/Table.d.ts +34 -0
  96. package/dist/types/components/Table/Table.stories.d.ts +13 -0
  97. package/dist/types/components/Table/Table.test.d.ts +1 -0
  98. package/dist/types/components/Table/index.d.ts +2 -0
  99. package/dist/types/components/Tabs/Tabs.d.ts +26 -0
  100. package/dist/types/components/Tabs/Tabs.stories.d.ts +14 -0
  101. package/dist/types/components/Tabs/Tabs.test.d.ts +1 -0
  102. package/dist/types/components/Tabs/index.d.ts +2 -0
  103. package/dist/types/components/ThemeProvider/ThemeContext.d.ts +8 -0
  104. package/dist/types/components/ThemeProvider/ThemeProvider.d.ts +9 -0
  105. package/dist/types/components/ThemeProvider/ThemeProvider.stories.d.ts +17 -0
  106. package/dist/types/components/ThemeProvider/ThemeProvider.test.d.ts +1 -0
  107. package/dist/types/components/ThemeProvider/ThemeSwitcher.d.ts +13 -0
  108. package/dist/types/components/ThemeProvider/index.d.ts +6 -0
  109. package/dist/types/components/Timeline/Timeline.d.ts +31 -0
  110. package/dist/types/components/Timeline/Timeline.stories.d.ts +12 -0
  111. package/dist/types/components/Timeline/Timeline.test.d.ts +1 -0
  112. package/dist/types/components/Timeline/index.d.ts +2 -0
  113. package/dist/types/components/Tooltip/Tooltip.d.ts +25 -0
  114. package/dist/types/components/Tooltip/Tooltip.stories.d.ts +26 -0
  115. package/dist/types/components/Tooltip/Tooltip.test.d.ts +1 -0
  116. package/dist/types/components/Tooltip/index.d.ts +2 -0
  117. package/dist/types/components/index.d.ts +25 -0
  118. package/dist/types/index.d.ts +1 -0
  119. package/dist/types/test/setup.d.ts +1 -0
  120. package/package.json +85 -0
  121. package/tokens/brands/edward-guerra.json +9 -0
  122. package/tokens/brands/materialandhome.json +9 -0
  123. package/tokens/brands/midwest-husbands.json +9 -0
  124. package/tokens/config.json +45 -0
  125. package/tokens/core/breakpoints.json +9 -0
  126. package/tokens/core/colors.json +217 -0
  127. package/tokens/core/effects.json +37 -0
  128. package/tokens/core/spacing.json +24 -0
  129. package/tokens/core/typography.json +45 -0
  130. package/tokens/semantic/button.json +37 -0
  131. package/tokens/semantic/theme.json +26 -0
@@ -0,0 +1,318 @@
1
+ :root {
2
+
3
+ /* BORDERWIDTH */
4
+ --border-width-0: 0;
5
+ --border-width-1: 1px;
6
+ --border-width-2: 2px;
7
+ --border-width-4: 4px;
8
+ --border-width-8: 8px;
9
+
10
+ /* BREAKPOINT */
11
+ --breakpoint-xs: 20em;
12
+ --breakpoint-md: 46.5em;
13
+ --breakpoint-lg: 64em;
14
+ --breakpoint-xl: 100em;
15
+ --breakpoint-2xl: 120em;
16
+
17
+ /* BUTTON */
18
+ --button-primary-background: #0482c5;
19
+ --button-primary-background-hover: #05679f;
20
+ --button-primary-background-active: #095883;
21
+ --button-primary-text: #ffffff;
22
+ --button-primary-border-radius: 1rem;
23
+ --button-primary-padding-x: 1.5rem;
24
+ --button-primary-padding-y: 0.75rem;
25
+ --button-primary-font-size: 1rem;
26
+ --button-primary-font-weight: 500;
27
+ --button-secondary-background: #e7e7e7;
28
+ --button-secondary-background-hover: #d1d1d1;
29
+ --button-secondary-background-active: #b0b0b0;
30
+ --button-secondary-text: #3d3d3d;
31
+ --button-secondary-border-radius: 1rem;
32
+ --button-secondary-padding-x: 1.5rem;
33
+ --button-secondary-padding-y: 0.75rem;
34
+ --button-secondary-font-size: 1rem;
35
+ --button-secondary-font-weight: 500;
36
+ --button-danger-background: #c04242;
37
+ --button-danger-background-hover: #973131;
38
+ --button-danger-background-active: #862e2e;
39
+ --button-danger-text: #ffffff;
40
+ --button-danger-border-radius: 1rem;
41
+ --button-danger-padding-x: 1.5rem;
42
+ --button-danger-padding-y: 0.75rem;
43
+ --button-danger-font-size: 1rem;
44
+ --button-danger-font-weight: 500;
45
+
46
+ /* COLOR */
47
+ --color-neutral-0: #ffffff;
48
+ --color-neutral-50: #f6f6f6;
49
+ --color-neutral-100: #e7e7e7;
50
+ --color-neutral-200: #d1d1d1;
51
+ --color-neutral-300: #b0b0b0;
52
+ --color-neutral-400: #888888;
53
+ --color-neutral-500: #6d6d6d;
54
+ --color-neutral-600: #5d5d5d;
55
+ --color-neutral-700: #4f4f4f;
56
+ --color-neutral-800: #454545;
57
+ --color-neutral-900: #3d3d3d;
58
+ --color-neutral-950: #1a1a1a;
59
+ --color-neutral-1000: #000000;
60
+ --color-blue-50: #f0f9ff;
61
+ --color-blue-100: #e0f2fe;
62
+ --color-blue-200: #bbe6fc;
63
+ --color-blue-300: #7fd1fa;
64
+ --color-blue-400: #3abbf6;
65
+ --color-blue-500: #11a3e6;
66
+ --color-blue-600: #0482c5;
67
+ --color-blue-700: #05679f;
68
+ --color-blue-800: #095883;
69
+ --color-blue-900: #0d4a6d;
70
+ --color-blue-950: #0b3a5a;
71
+ --color-brown-50: #f5f4f1;
72
+ --color-brown-100: #e5e3dc;
73
+ --color-brown-200: #cdcabb;
74
+ --color-brown-300: #b1aa93;
75
+ --color-brown-400: #9a9175;
76
+ --color-brown-500: #8b8067;
77
+ --color-brown-600: #776b57;
78
+ --color-brown-700: #605548;
79
+ --color-brown-800: #534940;
80
+ --color-brown-900: #39322d;
81
+ --color-brown-950: #29221f;
82
+ --color-teal-50: #f4f9f8;
83
+ --color-teal-100: #daedea;
84
+ --color-teal-200: #b4dbd5;
85
+ --color-teal-300: #87c1bb;
86
+ --color-teal-400: #5ea39e;
87
+ --color-teal-500: #448884;
88
+ --color-teal-600: #336967;
89
+ --color-teal-700: #2d5856;
90
+ --color-teal-800: #284747;
91
+ --color-teal-900: #243d3c;
92
+ --color-teal-950: #112122;
93
+ --color-green-50: #f9f8ec;
94
+ --color-green-100: #f1efd6;
95
+ --color-green-200: #e4e1b2;
96
+ --color-green-300: #d1cf85;
97
+ --color-green-400: #bdbc5e;
98
+ --color-green-500: #a1a240;
99
+ --color-green-600: #909236;
100
+ --color-green-700: #616328;
101
+ --color-green-800: #4e5024;
102
+ --color-green-900: #434522;
103
+ --color-green-950: #23250e;
104
+ --color-red-50: #fcf4f4;
105
+ --color-red-100: #fae6e6;
106
+ --color-red-200: #f6d2d2;
107
+ --color-red-300: #efb2b2;
108
+ --color-red-400: #e38686;
109
+ --color-red-500: #d55e5e;
110
+ --color-red-600: #c04242;
111
+ --color-red-700: #973131;
112
+ --color-red-800: #862e2e;
113
+ --color-red-900: #702c2c;
114
+ --color-red-950: #3c1313;
115
+ --color-yellow-50: #fffeea;
116
+ --color-yellow-100: #fffac5;
117
+ --color-yellow-200: #fff585;
118
+ --color-yellow-300: #ffe946;
119
+ --color-yellow-400: #ffd91b;
120
+ --color-yellow-500: #ffba05;
121
+ --color-yellow-600: #e28e00;
122
+ --color-yellow-700: #bb6402;
123
+ --color-yellow-800: #984d08;
124
+ --color-yellow-900: #7c3f0b;
125
+ --color-yellow-950: #482000;
126
+ --color-burnt-50: #fdf5ef;
127
+ --color-burnt-100: #fae8da;
128
+ --color-burnt-200: #f4ceb4;
129
+ --color-burnt-300: #ecad85;
130
+ --color-burnt-400: #e38254;
131
+ --color-burnt-500: #dd6434;
132
+ --color-burnt-600: #ce4c28;
133
+ --color-burnt-700: #ab3923;
134
+ --color-burnt-800: #892f23;
135
+ --color-burnt-900: #6f291f;
136
+ --color-burnt-950: #3c120e;
137
+ --color-berry-50: #fbf4f8;
138
+ --color-berry-100: #f7ecf2;
139
+ --color-berry-200: #f1d9e8;
140
+ --color-berry-300: #e7bad3;
141
+ --color-berry-400: #d88eb7;
142
+ --color-berry-500: #c86c9b;
143
+ --color-berry-600: #b44e7e;
144
+ --color-berry-700: #9a3c65;
145
+ --color-berry-800: #803455;
146
+ --color-berry-900: #6c2f4a;
147
+ --color-berry-950: #0e070a;
148
+ --color-purple-50: #faf5ff;
149
+ --color-purple-100: #f3e8ff;
150
+ --color-purple-200: #e9d5ff;
151
+ --color-purple-300: #d8b4fe;
152
+ --color-purple-400: #c084fc;
153
+ --color-purple-500: #a855f7;
154
+ --color-purple-600: #9333ea;
155
+ --color-purple-700: #7e22ce;
156
+ --color-purple-800: #6b21a8;
157
+ --color-purple-900: #581c87;
158
+ --color-purple-950: #3b0764;
159
+ --color-orange-50: #fff7ed;
160
+ --color-orange-100: #ffedd5;
161
+ --color-orange-200: #fed7aa;
162
+ --color-orange-300: #fdba74;
163
+ --color-orange-400: #fb923c;
164
+ --color-orange-500: #f97316;
165
+ --color-orange-600: #ea580c;
166
+ --color-orange-700: #c2410c;
167
+ --color-orange-800: #9a3412;
168
+ --color-orange-900: #7c2d12;
169
+ --color-orange-950: #431407;
170
+ --color-cyan-50: #ecfeff;
171
+ --color-cyan-100: #cffafe;
172
+ --color-cyan-200: #a5f3fc;
173
+ --color-cyan-300: #67e8f9;
174
+ --color-cyan-400: #22d3ee;
175
+ --color-cyan-500: #06b6d4;
176
+ --color-cyan-600: #0891b2;
177
+ --color-cyan-700: #0e7490;
178
+ --color-cyan-800: #155e75;
179
+ --color-cyan-900: #164e63;
180
+ --color-cyan-950: #083344;
181
+ --color-lime-50: #f7fee7;
182
+ --color-lime-100: #ecfccb;
183
+ --color-lime-200: #d9f99d;
184
+ --color-lime-300: #bef264;
185
+ --color-lime-400: #a3e635;
186
+ --color-lime-500: #84cc16;
187
+ --color-lime-600: #65a30d;
188
+ --color-lime-700: #4d7c0f;
189
+ --color-lime-800: #3f6212;
190
+ --color-lime-900: #365314;
191
+ --color-lime-950: #1a2e05;
192
+ --color-pink-50: #fdf2f8;
193
+ --color-pink-100: #fce7f3;
194
+ --color-pink-200: #fbcfe8;
195
+ --color-pink-300: #f9a8d4;
196
+ --color-pink-400: #f472b6;
197
+ --color-pink-500: #ec4899;
198
+ --color-pink-600: #db2777;
199
+ --color-pink-700: #be185d;
200
+ --color-pink-800: #9d174d;
201
+ --color-pink-900: #831843;
202
+ --color-pink-950: #500724;
203
+ --color-indigo-50: #eef2ff;
204
+ --color-indigo-100: #e0e7ff;
205
+ --color-indigo-200: #c7d2fe;
206
+ --color-indigo-300: #a5b4fc;
207
+ --color-indigo-400: #818cf8;
208
+ --color-indigo-500: #6366f1;
209
+ --color-indigo-600: #4f46e5;
210
+ --color-indigo-700: #4338ca;
211
+ --color-indigo-800: #3730a3;
212
+ --color-indigo-900: #312e81;
213
+ --color-indigo-950: #1e1b4b;
214
+ --color-white-5: rgba(255, 255, 255, 0.05);
215
+ --color-white-10: rgba(255, 255, 255, 0.1);
216
+ --color-white-20: rgba(255, 255, 255, 0.2);
217
+ --color-white-40: rgba(255, 255, 255, 0.4);
218
+ --color-white-60: rgba(255, 255, 255, 0.6);
219
+ --color-white-80: rgba(255, 255, 255, 0.8);
220
+ --color-black-5: rgba(0, 0, 0, 0.05);
221
+ --color-black-10: rgba(0, 0, 0, 0.1);
222
+ --color-black-20: rgba(0, 0, 0, 0.2);
223
+ --color-black-40: rgba(0, 0, 0, 0.4);
224
+ --color-black-60: rgba(0, 0, 0, 0.6);
225
+ --color-black-80: rgba(0, 0, 0, 0.8);
226
+
227
+ /* EDWARD-GUERRA */
228
+ --edward-guerra-brand-primary: #05679f;
229
+ --edward-guerra-brand-secondary: #0d4a6d;
230
+ --edward-guerra-brand-tint: #f0f9ff;
231
+
232
+ /* FONT */
233
+ --font-family-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
234
+ --font-family-serif: Georgia, Cambria, 'Times New Roman', Times, serif;
235
+ --font-family-mono: Menlo, Monaco, Consolas, 'Courier New', monospace;
236
+ --font-size-2xs: 0.5rem;
237
+ --font-size-xs: 0.75rem;
238
+ --font-size-sm: 0.875rem;
239
+ --font-size-base: 1rem;
240
+ --font-size-lg: 1.125rem;
241
+ --font-size-xl: 1.25rem;
242
+ --font-size-2xl: 1.5rem;
243
+ --font-size-3xl: 2rem;
244
+ --font-size-4xl: 2.5rem;
245
+ --font-size-5xl: 3rem;
246
+ --font-size-responsive: 8rem;
247
+ --font-weight-light: 300;
248
+ --font-weight-normal: 400;
249
+ --font-weight-medium: 500;
250
+ --font-weight-semibold: 600;
251
+ --font-weight-bold: 700;
252
+ --font-weight-extrabold: 800;
253
+ --font-line-height-tight: 1.25;
254
+ --font-line-height-normal: 1.5;
255
+ --font-line-height-relaxed: 1.75;
256
+ --font-line-height-loose: 2;
257
+
258
+ /* MATERIALANDHOME */
259
+ --materialandhome-brand-primary: #B25D3E;
260
+ --materialandhome-brand-secondary: #8c4530;
261
+ --materialandhome-brand-tint: #f5e8e2;
262
+
263
+ /* MIDWEST-HUSBANDS */
264
+ --midwest-husbands-brand-primary: #2d5856;
265
+ --midwest-husbands-brand-secondary: #243d3c;
266
+ --midwest-husbands-brand-tint: #f4f9f8;
267
+
268
+ /* RADIUS */
269
+ --radius-none: 0;
270
+ --radius-sm: 0.5rem;
271
+ --radius-md: 1rem;
272
+ --radius-lg: 2rem;
273
+ --radius-full: 9999px;
274
+
275
+ /* SHADOW */
276
+ --shadow-sm: 0 2rem 2rem rgba(0, 0, 0, 0.1);
277
+ --shadow-md: 0 1.5rem 3rem -1.25rem rgba(0, 0, 0, 0.1);
278
+ --shadow-lg: 0 3.125rem 6.25rem -1.25rem rgba(0, 0, 0, 0.25);
279
+ --shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, 0.05);
280
+
281
+ /* SPACING */
282
+ --spacing-0: 0;
283
+ --spacing-1: 0.25rem;
284
+ --spacing-2: 0.5rem;
285
+ --spacing-3: 0.75rem;
286
+ --spacing-4: 1rem;
287
+ --spacing-5: 1.25rem;
288
+ --spacing-6: 1.5rem;
289
+ --spacing-8: 2rem;
290
+ --spacing-10: 2.5rem;
291
+ --spacing-12: 3rem;
292
+ --spacing-16: 4rem;
293
+ --spacing-20: 5rem;
294
+ --spacing-24: 6rem;
295
+ --spacing-32: 8rem;
296
+ --spacing-40: 10rem;
297
+ --spacing-48: 12rem;
298
+ --spacing-56: 14rem;
299
+ --spacing-64: 16rem;
300
+ --spacing-96: 24rem;
301
+ --spacing-120: 30rem;
302
+
303
+ /* THEME */
304
+ --theme-background-primary: #ffffff;
305
+ --theme-background-secondary: #f6f6f6;
306
+ --theme-background-tertiary: #e7e7e7;
307
+ --theme-text-primary: #3d3d3d;
308
+ --theme-text-secondary: #4f4f4f;
309
+ --theme-text-tertiary: #6d6d6d;
310
+ --theme-text-inverse: #ffffff;
311
+ --theme-border-default: #d1d1d1;
312
+ --theme-border-strong: #888888;
313
+ --theme-border-subtle: #e7e7e7;
314
+ --theme-status-success: #909236;
315
+ --theme-status-warning: #e28e00;
316
+ --theme-status-error: #c04242;
317
+ --theme-status-info: #0482c5;
318
+ }
@@ -0,0 +1,30 @@
1
+ import React from 'react';
2
+ import './Accordion.css';
3
+ export interface AccordionItem {
4
+ id: string;
5
+ title: string;
6
+ content: React.ReactNode;
7
+ }
8
+ export interface AccordionProps {
9
+ /**
10
+ * Array of accordion items
11
+ */
12
+ items: AccordionItem[];
13
+ /**
14
+ * Allow multiple items to be open at once
15
+ */
16
+ allowMultiple?: boolean;
17
+ /**
18
+ * Default open item IDs
19
+ */
20
+ defaultOpenIds?: string[];
21
+ /**
22
+ * Small variant (smaller text)
23
+ */
24
+ small?: boolean;
25
+ /**
26
+ * Additional CSS class
27
+ */
28
+ className?: string;
29
+ }
30
+ export declare const Accordion: React.FC<AccordionProps>;
@@ -0,0 +1,15 @@
1
+ import type { StoryObj } from '@storybook/react';
2
+ declare const meta: {
3
+ title: string;
4
+ component: import("react").FC<import("./Accordion").AccordionProps>;
5
+ parameters: {
6
+ layout: string;
7
+ };
8
+ tags: string[];
9
+ };
10
+ export default meta;
11
+ type Story = StoryObj<typeof meta>;
12
+ export declare const Default: Story;
13
+ export declare const AllowMultiple: Story;
14
+ export declare const DefaultOpen: Story;
15
+ export declare const Small: Story;
@@ -0,0 +1,2 @@
1
+ export { Accordion } from './Accordion';
2
+ export type { AccordionProps, AccordionItem } from './Accordion';
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import './Article.css';
3
+ export interface ArticleProps {
4
+ /**
5
+ * Main content (title, meta, description)
6
+ */
7
+ children: React.ReactNode;
8
+ /**
9
+ * Optional thumbnail image/icon shown alongside the content
10
+ */
11
+ thumbnail?: React.ReactNode;
12
+ /**
13
+ * Additional CSS class
14
+ */
15
+ className?: string;
16
+ }
17
+ /**
18
+ * Article renders a horizontal row for an article list entry:
19
+ * optional thumbnail plus content, with a hover tint
20
+ */
21
+ export declare const Article: React.FC<ArticleProps>;
@@ -0,0 +1,13 @@
1
+ import type { StoryObj } from '@storybook/react';
2
+ declare const meta: {
3
+ title: string;
4
+ component: import("react").FC<import("./Article").ArticleProps>;
5
+ parameters: {
6
+ layout: string;
7
+ };
8
+ tags: string[];
9
+ };
10
+ export default meta;
11
+ type Story = StoryObj<typeof meta>;
12
+ export declare const Default: Story;
13
+ export declare const WithThumbnail: Story;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export { Article } from './Article';
2
+ export type { ArticleProps } from './Article';
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import './Badge.css';
3
+ export interface BadgeProps {
4
+ /**
5
+ * Badge content
6
+ */
7
+ children: React.ReactNode;
8
+ /**
9
+ * Badge variant
10
+ */
11
+ variant?: 'default' | 'critical';
12
+ /**
13
+ * Additional CSS class
14
+ */
15
+ className?: string;
16
+ }
17
+ /**
18
+ * Badge component for labels, status indicators, and counts
19
+ */
20
+ export declare const Badge: React.FC<BadgeProps>;
@@ -0,0 +1,20 @@
1
+ import type { StoryObj } from '@storybook/react';
2
+ declare const meta: {
3
+ title: string;
4
+ component: import("react").FC<import("./Badge").BadgeProps>;
5
+ parameters: {
6
+ layout: string;
7
+ };
8
+ tags: string[];
9
+ argTypes: {
10
+ variant: {
11
+ control: string;
12
+ options: string[];
13
+ };
14
+ };
15
+ };
16
+ export default meta;
17
+ type Story = StoryObj<typeof meta>;
18
+ export declare const Default: Story;
19
+ export declare const Critical: Story;
20
+ export declare const AllVariants: Story;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export { Badge } from './Badge';
2
+ export type { BadgeProps } from './Badge';
@@ -0,0 +1,49 @@
1
+ import React from 'react';
2
+ import './Button.css';
3
+ export interface ButtonProps {
4
+ /**
5
+ * Button variant
6
+ */
7
+ variant?: 'primary' | 'secondary' | 'tertiary' | 'minimal';
8
+ /**
9
+ * Button is filled (modifier)
10
+ */
11
+ filled?: boolean;
12
+ /**
13
+ * Icon-only button (no text)
14
+ */
15
+ iconOnly?: boolean;
16
+ /**
17
+ * Is the button disabled?
18
+ */
19
+ disabled?: boolean;
20
+ /**
21
+ * Is the button in loading state?
22
+ */
23
+ loading?: boolean;
24
+ /**
25
+ * Button contents
26
+ */
27
+ children?: React.ReactNode;
28
+ /**
29
+ * Optional click handler
30
+ */
31
+ onClick?: () => void;
32
+ /**
33
+ * Full width button
34
+ */
35
+ fullWidth?: boolean;
36
+ /**
37
+ * Icon to display before text
38
+ */
39
+ iconBefore?: React.ReactNode;
40
+ /**
41
+ * Icon to display after text
42
+ */
43
+ iconAfter?: React.ReactNode;
44
+ /**
45
+ * Additional CSS class
46
+ */
47
+ className?: string;
48
+ }
49
+ export declare const Button: React.FC<ButtonProps>;
@@ -0,0 +1,43 @@
1
+ import type { StoryObj } from '@storybook/react';
2
+ declare const meta: {
3
+ title: string;
4
+ component: import("react").FC<import("./Button").ButtonProps>;
5
+ parameters: {
6
+ layout: string;
7
+ docs: {
8
+ description: {
9
+ component: string;
10
+ };
11
+ };
12
+ };
13
+ tags: string[];
14
+ argTypes: {
15
+ variant: {
16
+ control: string;
17
+ options: string[];
18
+ description: string;
19
+ };
20
+ disabled: {
21
+ control: string;
22
+ description: string;
23
+ };
24
+ loading: {
25
+ control: string;
26
+ description: string;
27
+ };
28
+ fullWidth: {
29
+ control: string;
30
+ description: string;
31
+ };
32
+ };
33
+ };
34
+ export default meta;
35
+ type Story = StoryObj<typeof meta>;
36
+ export declare const Primary: Story;
37
+ export declare const Secondary: Story;
38
+ export declare const Tertiary: Story;
39
+ export declare const Filled: Story;
40
+ export declare const IconOnly: Story;
41
+ export declare const Disabled: Story;
42
+ export declare const Loading: Story;
43
+ export declare const FullWidth: Story;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export { Button } from './Button';
2
+ export type { ButtonProps } from './Button';
@@ -0,0 +1,43 @@
1
+ import React from 'react';
2
+ import './Card.css';
3
+ export interface CardProps {
4
+ /**
5
+ * Card variant
6
+ */
7
+ variant?: 'elevated' | 'outlined' | 'filled';
8
+ /**
9
+ * Card padding size
10
+ */
11
+ padding?: 'none' | 'sm' | 'md' | 'lg';
12
+ /**
13
+ * Card children
14
+ */
15
+ children: React.ReactNode;
16
+ /**
17
+ * Optional click handler - makes card interactive
18
+ */
19
+ onClick?: () => void;
20
+ /**
21
+ * Card className for additional styling
22
+ */
23
+ className?: string;
24
+ }
25
+ /**
26
+ * Card component for containing content
27
+ */
28
+ export declare const Card: React.FC<CardProps>;
29
+ export interface CardHeaderProps {
30
+ children: React.ReactNode;
31
+ className?: string;
32
+ }
33
+ export declare const CardHeader: React.FC<CardHeaderProps>;
34
+ export interface CardBodyProps {
35
+ children: React.ReactNode;
36
+ className?: string;
37
+ }
38
+ export declare const CardBody: React.FC<CardBodyProps>;
39
+ export interface CardFooterProps {
40
+ children: React.ReactNode;
41
+ className?: string;
42
+ }
43
+ export declare const CardFooter: React.FC<CardFooterProps>;
@@ -0,0 +1,31 @@
1
+ import type { StoryObj } from '@storybook/react';
2
+ declare const meta: {
3
+ title: string;
4
+ component: import("react").FC<import("./Card").CardProps>;
5
+ parameters: {
6
+ layout: string;
7
+ docs: {
8
+ description: {
9
+ component: string;
10
+ };
11
+ };
12
+ };
13
+ tags: string[];
14
+ argTypes: {
15
+ variant: {
16
+ control: string;
17
+ options: string[];
18
+ };
19
+ padding: {
20
+ control: string;
21
+ options: string[];
22
+ };
23
+ };
24
+ };
25
+ export default meta;
26
+ type Story = StoryObj<typeof meta>;
27
+ export declare const Elevated: Story;
28
+ export declare const Outlined: Story;
29
+ export declare const Filled: Story;
30
+ export declare const Interactive: Story;
31
+ export declare const NoPadding: Story;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export { Card, CardHeader, CardBody, CardFooter } from './Card';
2
+ export type { CardProps, CardHeaderProps, CardBodyProps, CardFooterProps } from './Card';
@@ -0,0 +1,27 @@
1
+ import React from 'react';
2
+ import './Carousel.css';
3
+ export interface CarouselProps {
4
+ /**
5
+ * CarouselSlide elements
6
+ */
7
+ children: React.ReactNode;
8
+ /**
9
+ * Additional CSS class
10
+ */
11
+ className?: string;
12
+ }
13
+ export interface CarouselSlideProps {
14
+ /**
15
+ * Slide content
16
+ */
17
+ children: React.ReactNode;
18
+ /**
19
+ * Additional CSS class
20
+ */
21
+ className?: string;
22
+ }
23
+ /**
24
+ * Carousel renders a horizontally scrollable, snap-aligned row of slides
25
+ */
26
+ export declare const Carousel: React.FC<CarouselProps>;
27
+ export declare const CarouselSlide: React.FC<CarouselSlideProps>;
@@ -0,0 +1,12 @@
1
+ import type { StoryObj } from '@storybook/react';
2
+ declare const meta: {
3
+ title: string;
4
+ component: import("react").FC<import("./Carousel").CarouselProps>;
5
+ parameters: {
6
+ layout: string;
7
+ };
8
+ tags: string[];
9
+ };
10
+ export default meta;
11
+ type Story = StoryObj<typeof meta>;
12
+ export declare const Default: Story;
@@ -0,0 +1 @@
1
+ export {};