this.gui 1.0.16 → 1.0.18

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 (104) hide show
  1. package/README.md +191 -23
  2. package/dist/style.css +1 -1
  3. package/dist/this-gui.es.js +2879 -1945
  4. package/dist/this-gui.umd.js +24 -24
  5. package/package.json +3 -4
  6. package/src/App.jsx +19 -40
  7. package/src/CreatePage.jsx +61 -0
  8. package/src/MDXEditor.jsx +51 -0
  9. package/src/Page.jsx +28 -0
  10. package/src/PageDashboard.jsx +56 -0
  11. package/src/SiteBuilder.jsx +95 -26
  12. package/src/example.json +43 -0
  13. package/src/scripts/ComponentRegistry.js +70 -0
  14. package/src/scripts/postinstall.js +60 -10
  15. package/src/scripts/renderComponents.js +11 -0
  16. package/src/stories/Atoms/Badge/Badge.css +1 -0
  17. package/src/stories/Atoms/Badge/Badge.stories.jsx +1 -0
  18. package/src/stories/Atoms/Button/Button.css +259 -58
  19. package/src/stories/Atoms/Button/Button.jsx +8 -11
  20. package/src/stories/Atoms/Button/Button.stories.jsx +65 -40
  21. package/src/stories/Atoms/Container/Container.css +420 -39
  22. package/src/stories/Atoms/Container/Container.jsx +98 -36
  23. package/src/stories/Atoms/Container/Container.stories.jsx +120 -79
  24. package/src/stories/Atoms/Grid/Grid.css +160 -0
  25. package/src/stories/Atoms/Grid/Grid.jsx +43 -0
  26. package/src/stories/Atoms/Grid/Grid.stories.jsx +84 -0
  27. package/src/stories/Atoms/Link/Link.css +6 -26
  28. package/src/stories/Atoms/Link/Link.jsx +11 -21
  29. package/src/stories/Atoms/ProgressBar/ProgressBar.css +1 -1
  30. package/src/stories/Atoms/ProgressBar/ProgressBar.jsx +1 -1
  31. package/src/stories/Atoms/ProgressBar/ProgressBar.stories.jsx +1 -1
  32. package/src/stories/Atoms/Section/Section.css +268 -0
  33. package/src/stories/Atoms/Section/Section.jsx +63 -0
  34. package/src/stories/Atoms/Section/Section.stories.jsx +46 -0
  35. package/src/stories/Atoms/TextArea/TextArea.css +1 -0
  36. package/src/stories/Atoms/TextArea/TextArea.jsx +1 -0
  37. package/src/stories/Atoms/TextArea/TextArea.stories.jsx +1 -0
  38. package/src/stories/Atoms/TextInput/TextInput.css +1 -0
  39. package/src/stories/Atoms/TextInput/TextInput.jsx +1 -0
  40. package/src/stories/Atoms/TextInput/TextInput.stories.jsx +1 -0
  41. package/src/stories/Atoms/Toggle/Toggle.css +1 -0
  42. package/src/stories/Atoms/Toggle/Toggle.jsx +1 -0
  43. package/src/stories/Atoms/Toggle/Toggle.stories.jsx +1 -0
  44. package/src/stories/Atoms/Tooltip/Tooltip.css +1 -0
  45. package/src/stories/Atoms/Tooltip/Tooltip.jsx +1 -0
  46. package/src/stories/Atoms/Tooltip/Tooltip.stories.jsx +1 -0
  47. package/src/stories/Atoms/Video/Video.css +1 -0
  48. package/src/stories/Atoms/Video/Video.jsx +1 -0
  49. package/src/stories/Atoms/Video/Video.stories.jsx +1 -0
  50. package/src/stories/Atoms/index.js +4 -0
  51. package/src/stories/Atoms/meta_Atoms.js +4 -1
  52. package/src/stories/Layouts/Accordion/Accordion.css +285 -8
  53. package/src/stories/Layouts/Accordion/Accordion.jsx +62 -19
  54. package/src/stories/Layouts/Accordion/Accordion.stories.jsx +30 -19
  55. package/src/stories/Layouts/index.js +0 -6
  56. package/src/stories/Layouts/meta_Layouts.js +2 -5
  57. package/src/stories/Molecules/Accordion/Accordion.css +1 -1
  58. package/src/stories/Molecules/Accordion/Accordion.jsx +1 -1
  59. package/src/stories/Molecules/Accordion/Accordion.stories.jsx +1 -1
  60. package/src/stories/Molecules/AudioPlayer/AudioPlayer.css +95 -2
  61. package/src/stories/Molecules/AudioPlayer/AudioPlayer.jsx +232 -13
  62. package/src/stories/Molecules/AudioPlayer/AudioPlayer.stories.jsx +46 -11
  63. package/src/stories/Molecules/AvatarWithName/AvatarWithName.css +128 -2
  64. package/src/stories/Molecules/AvatarWithName/AvatarWithName.jsx +69 -14
  65. package/src/stories/Molecules/AvatarWithName/AvatarWithName.stories.jsx +12 -12
  66. package/src/stories/Molecules/Breadcrumbs/Breadcrumbs.css +145 -2
  67. package/src/stories/Molecules/Breadcrumbs/Breadcrumbs.jsx +39 -13
  68. package/src/stories/Molecules/Breadcrumbs/Breadcrumbs.stories.jsx +27 -11
  69. package/src/stories/Molecules/ButtonGroup/ButtonGroup.css +463 -2
  70. package/src/stories/Molecules/ButtonGroup/ButtonGroup.jsx +34 -12
  71. package/src/stories/Molecules/ButtonGroup/ButtonGroup.stories.jsx +36 -12
  72. package/src/stories/Molecules/Card/Card.css +39 -2
  73. package/src/stories/Molecules/Card/Card.jsx +80 -13
  74. package/src/stories/Molecules/Card/Card.stories.jsx +27 -13
  75. package/src/stories/Molecules/ComparisonTable/ComparisonTable.css +33 -2
  76. package/src/stories/Molecules/ComparisonTable/ComparisonTable.jsx +91 -12
  77. package/src/stories/Molecules/ComparisonTable/ComparisonTable.stories.jsx +73 -12
  78. package/src/stories/Molecules/Dropdown/Dropdown.css +192 -0
  79. package/src/stories/Molecules/Dropdown/Dropdown.jsx +96 -0
  80. package/src/stories/Molecules/Dropdown/Dropdown.stories.jsx +45 -0
  81. package/src/stories/Molecules/index.js +2 -1
  82. package/src/stories/Molecules/meta_Molecules.js +6 -3
  83. package/src/themes/styles/neurons/light.css +94 -204
  84. package/dist/Styles.md +0 -446
  85. package/dist/context.md +0 -942
  86. package/src/Theme.jsx +0 -28
  87. package/src/components/CodeBlock.jsx +0 -22
  88. package/src/components/ComponentFactory.jsx +0 -36
  89. package/src/components/ComponentRegistry.js +0 -21
  90. package/src/scripts/generateComponents.js +0 -166
  91. package/src/scripts/verifyLayouts.js +0 -175
  92. package/src/scripts/verifyMolecules.js +0 -158
  93. package/src/scripts/verifyTemplates.js +0 -154
  94. package/src/scripts/verify_and_install_atoms.js +0 -211
  95. package/src/stories/Layouts/DropdownMenu/DropdownMenu.css +0 -16
  96. package/src/stories/Layouts/DropdownMenu/DropdownMenu.jsx +0 -31
  97. package/src/stories/Layouts/DropdownMenu/DropdownMenu.stories.jsx +0 -28
  98. package/src/stories/Layouts/Grid/Grid.css +0 -4
  99. package/src/stories/Layouts/Grid/Grid.jsx +0 -13
  100. package/src/stories/Layouts/Grid/Grid.stories.jsx +0 -28
  101. package/src/stories/Layouts/Section/Section.css +0 -16
  102. package/src/stories/Layouts/Section/Section.jsx +0 -31
  103. package/src/stories/Layouts/Section/Section.stories.jsx +0 -28
  104. /package/src/themes/{README.md → README_Styles.md} +0 -0
@@ -1,4 +1,465 @@
1
+ /* this.GUI/src/stories/Molecules/ButtonGroup/ButtonGroup.css */
2
+ /*Base Styles */
3
+ .button-group {
4
+ display: inline-flex;
5
+ gap: var(--spacing-sm);
6
+ }
7
+
8
+ .button-group__button {
9
+ padding: var(--button-padding, 8px 16px);
10
+ border-radius: var(--border-radius, 4px);
11
+ cursor: pointer;
12
+ transition: background-color var(--transition-speed, 0.3s), border-color var(--transition-speed, 0.3s), color var(--transition-speed, 0.3s);
13
+ font-size: inherit;
14
+ border: none;
15
+ }
16
+
17
+ .button-group__button:focus {
18
+ outline: none;
19
+ box-shadow: 0 0 0 3px var(--focus-outline-color, rgba(0, 0, 0, 0.2));
20
+ }
21
+
22
+ /* Solid Variant */
23
+ .button-group--solid .button-group__button {
24
+ background-color: var(--primary-color);
25
+ color: var(--text-color-inverse);
26
+ }
27
+
28
+ .button-group--solid .button-group__button:hover {
29
+ background-color: var(--primary-color-hover);
30
+ }
31
+
32
+ /* Size Variants */
33
+ .button-group--small .button-group__button {
34
+ font-size: 0.75rem;
35
+ padding: 6px 12px;
36
+ }
37
+
38
+ .button-group--medium .button-group__button {
39
+ font-size: 1rem;
40
+ padding: 8px 16px;
41
+ }
42
+
43
+ .button-group--large .button-group__button {
44
+ font-size: 1.25rem;
45
+ padding: 12px 20px;
46
+ }
47
+
48
+ /* Solid Color Variants */
49
+ .button-group--primary .button-group__button {
50
+ background-color: var(--primary-color);
51
+ color: var(--text-color-inverse);
52
+ }
53
+
54
+ .button-group--primary .button-group__button:hover {
55
+ background-color: var(--primary-color-hover);
56
+ }
57
+
58
+ .button-group--secondary .button-group__button {
59
+ background-color: var(--secondary-color);
60
+ color: var(--text-color-inverse);
61
+ }
62
+
63
+ .button-group--secondary .button-group__button:hover {
64
+ background-color: var(--secondary-color-hover);
65
+ }
66
+
67
+ .button-group--info .button-group__button {
68
+ background-color: var(--info-color);
69
+ color: var(--text-color-inverse);
70
+ }
71
+
72
+ .button-group--info .button-group__button:hover {
73
+ background-color: var(--info-color-hover);
74
+ }
75
+
76
+ .button-group--warning .button-group__button {
77
+ background-color: var(--warning-color);
78
+ color: var(--text-color-inverse);
79
+ }
80
+
81
+ .button-group--warning .button-group__button:hover {
82
+ background-color: var(--warning-color-hover);
83
+ }
84
+
85
+ .button-group--alert .button-group__button {
86
+ background-color: var(--alert-color);
87
+ color: var(--text-color-inverse);
88
+ }
89
+
90
+ .button-group--alert .button-group__button:hover {
91
+ background-color: var(--alert-color-hover);
92
+ }
93
+
94
+ .button-group--success .button-group__button {
95
+ background-color: var(--success-color);
96
+ color: var(--text-color-inverse);
97
+ }
98
+
99
+ .button-group--success .button-group__button:hover {
100
+ background-color: var(--success-color-hover);
101
+ }
102
+
103
+ .button-group--neutral .button-group__button {
104
+ background-color: var(--neutral-color);
105
+ color: var(--text-color-inverse);
106
+ }
107
+
108
+ .button-group--neutral .button-group__button:hover {
109
+ background-color: var(--neutral-color-hover);
110
+ }
111
+
112
+ .button-group--dark .button-group__button {
113
+ background-color: var(--dark-color);
114
+ color: var(--text-color-inverse);
115
+ }
116
+
117
+ .button-group--dark .button-group__button:hover {
118
+ background-color: var(--dark-color-hover);
119
+ }
120
+
121
+ /* Classy Palette Solid Variants */
122
+ .button-group--classy-color-1 .button-group__button {
123
+ background-color: var(--classy-color-1);
124
+ color: var(--text-color-inverse);
125
+ }
126
+
127
+ .button-group--classy-color-1 .button-group__button:hover {
128
+ background-color: var(--classy-color-1-hover);
129
+ }
130
+
131
+ .button-group--classy-color-2 .button-group__button {
132
+ background-color: var(--classy-color-2);
133
+ color: var(--text-color-inverse);
134
+ }
135
+
136
+ .button-group--classy-color-2 .button-group__button:hover {
137
+ background-color: var(--classy-color-2-hover);
138
+ }
139
+
140
+ .button-group--classy-color-3 .button-group__button {
141
+ background-color: var(--classy-color-3);
142
+ color: var(--text-color-inverse);
143
+ }
144
+
145
+ .button-group--classy-color-3 .button-group__button:hover {
146
+ background-color: var(--classy-color-3-hover);
147
+ }
148
+
149
+ .button-group--classy-color-4 .button-group__button {
150
+ background-color: var(--classy-color-4);
151
+ color: var(--text-color-inverse);
152
+ }
153
+
154
+ .button-group--classy-color-4 .button-group__button:hover {
155
+ background-color: var(--classy-color-4-hover);
156
+ }
157
+
158
+ .button-group--classy-color-5 .button-group__button {
159
+ background-color: var(--classy-color-5);
160
+ color: var(--text-color-inverse);
161
+ }
162
+
163
+ .button-group--classy-color-5 .button-group__button:hover {
164
+ background-color: var(--classy-color-5-hover);
165
+ }
166
+
167
+ /* Small Switch Palette Solid Variants */
168
+ .button-group--small-switch-color-1 .button-group__button {
169
+ background-color: var(--small-switch-color-1);
170
+ color: var(--text-color-inverse);
171
+ }
172
+
173
+ .button-group--small-switch-color-1 .button-group__button:hover {
174
+ background-color: var(--small-switch-color-1-hover);
175
+ }
176
+
177
+ .button-group--small-switch-color-2 .button-group__button {
178
+ background-color: var(--small-switch-color-2);
179
+ color: var(--text-color-inverse);
180
+ }
181
+
182
+ .button-group--small-switch-color-2 .button-group__button:hover {
183
+ background-color: var(--small-switch-color-2-hover);
184
+ }
185
+
186
+ /* Natural Palette Solid Variants */
187
+ .button-group--natural-color-1 .button-group__button {
188
+ background-color: var(--natural-color-1);
189
+ color: var(--text-color-inverse);
190
+ }
191
+
192
+ .button-group--natural-color-1 .button-group__button:hover {
193
+ background-color: var(--natural-color-1-hover);
194
+ }
195
+
196
+ .button-group--natural-color-2 .button-group__button {
197
+ background-color: var(--natural-color-2);
198
+ color: var(--text-color-inverse);
199
+ }
200
+
201
+ .button-group--natural-color-2 .button-group__button:hover {
202
+ background-color: var(--natural-color-2-hover);
203
+ }
204
+
205
+ .button-group--natural-color-3 .button-group__button {
206
+ background-color: var(--natural-color-3);
207
+ color: var(--text-color-inverse);
208
+ }
209
+
210
+ .button-group--natural-color-3 .button-group__button:hover {
211
+ background-color: var(--natural-color-3-hover);
212
+ }
213
+
214
+ /* Grey Friends Solid Variants */
215
+ .button-group--grey-friend-1 .button-group__button {
216
+ background-color: var(--grey-friend-1);
217
+ color: var(--text-color-inverse);
218
+ }
219
+
220
+ .button-group--grey-friend-1 .button-group__button:hover {
221
+ background-color: var(--grey-friend-1-hover);
222
+ }
223
+
224
+ .button-group--grey-friend-2 .button-group__button {
225
+ background-color: var(--grey-friend-2);
226
+ color: var(--text-color-inverse);
227
+ }
228
+
229
+ .button-group--grey-friend-2 .button-group__button:hover {
230
+ background-color: var(--grey-friend-2-hover);
231
+ }
232
+
233
+ /* Shades Solid Variants */
234
+ .button-group--shade-1 .button-group__button {
235
+ background-color: var(--shade-1);
236
+ color: var(--text-color-inverse);
237
+ }
238
+
239
+ .button-group--shade-1 .button-group__button:hover {
240
+ background-color: var(--shade-1-hover);
241
+ }
242
+
243
+ .button-group--shade-2 .button-group__button {
244
+ background-color: var(--shade-2);
245
+ color: var(--text-color-inverse);
246
+ }
247
+
248
+ .button-group--shade-2 .button-group__button:hover {
249
+ background-color: var(--shade-2-hover);
250
+ }
251
+
252
+ .button-group--shade-3 .button-group__button {
253
+ background-color: var(--shade-3);
254
+ color: var(--text-color-inverse);
255
+ }
256
+
257
+ .button-group--shade-3 .button-group__button:hover {
258
+ background-color: var(--shade-3-hover);
259
+ }
260
+
261
+ .button-group--shade-4 .button-group__button {
262
+ background-color: var(--shade-4);
263
+ color: var(--text-color-inverse);
264
+ }
265
+
266
+ .button-group--shade-4 .button-group__button:hover {
267
+ background-color: var(--shade-4-hover);
268
+ }
269
+
270
+ /* Outline Variant */
271
+ .button-group--outline .button-group__button {
272
+ background-color: transparent;
273
+ border: 2px solid currentColor;
274
+ color: var(--primary-color); /* Default to primary color */
275
+ }
276
+
277
+ .button-group--outline .button-group__button:hover {
278
+ background-color: transparent;
279
+ border-color: var(--primary-color-hover);
280
+ color: var(--primary-color-hover);
281
+ }
282
+
283
+ /* Primary and Secondary Outline Variants */
284
+ .button-group--primary.button-group--outline .button-group__button {
285
+ background-color: transparent;
286
+ border-color: var(--primary-color);
287
+ color: var(--primary-color);
288
+ }
289
+
290
+ .button-group--secondary.button-group--outline .button-group__button {
291
+ background-color: transparent;
292
+ border-color: var(--secondary-color);
293
+ color: var(--secondary-color);
294
+ }
295
+
296
+ .button-group--primary.button-group--outline .button-group__button:hover,
297
+ .button-group--secondary.button-group--outline .button-group__button:hover {
298
+ background-color: transparent;
299
+ color: var(--primary-color-hover);
300
+ border-color: var(--primary-color-hover);
301
+ }
302
+
303
+ /* Size Variants */
304
+ .button-group--small .button-group__button {
305
+ font-size: 0.75rem;
306
+ padding: 6px 12px;
307
+ }
308
+
309
+ .button-group--medium .button-group__button {
310
+ font-size: 1rem;
311
+ padding: 8px 16px;
312
+ }
313
+
314
+ .button-group--large .button-group__button {
315
+ font-size: 1.25rem;
316
+ padding: 12px 20px;
317
+ }
318
+
319
+ /* Color Variants */
320
+ .button-group--primary .button-group__button {
321
+ background-color: var(--primary-color);
322
+ color: var(--text-color-inverse);
323
+ }
324
+
325
+ .button-group--secondary .button-group__button {
326
+ background-color: var(--secondary-color);
327
+ color: var(--text-color-inverse);
328
+ }
329
+
330
+ /* Outline Color Variants */
331
+ .button-group--primary.button-group--outline .button-group__button {
332
+ border-color: var(--primary-color);
333
+ color: var(--primary-color);
334
+ }
335
+
336
+ .button-group--secondary.button-group--outline .button-group__button {
337
+ border-color: var(--secondary-color);
338
+ color: var(--secondary-color);
339
+ }
1
340
 
2
- .buttongroup {
3
- /* Default styles for ButtonGroup */
341
+ .button-group--info.button-group--outline .button-group__button {
342
+ border-color: var(--info-color);
343
+ color: var(--info-color);
4
344
  }
345
+
346
+ .button-group--warning.button-group--outline .button-group__button {
347
+ border-color: var(--warning-color);
348
+ color: var(--warning-color);
349
+ }
350
+
351
+ .button-group--alert.button-group--outline .button-group__button {
352
+ border-color: var(--alert-color);
353
+ color: var(--alert-color);
354
+ }
355
+
356
+ .button-group--success.button-group--outline .button-group__button {
357
+ border-color: var(--success-color);
358
+ color: var(--success-color);
359
+ }
360
+
361
+ .button-group--neutral.button-group--outline .button-group__button {
362
+ border-color: var(--neutral-color);
363
+ color: var(--neutral-color);
364
+ }
365
+
366
+ .button-group--dark.button-group--outline .button-group__button {
367
+ border-color: var(--dark-color);
368
+ color: var(--dark-color);
369
+ }
370
+
371
+ /* Classy Palette Outline Variants */
372
+ .button-group--classy-color-1.button-group--outline .button-group__button {
373
+ border-color: var(--classy-color-1);
374
+ color: var(--classy-color-1);
375
+ }
376
+
377
+ .button-group--classy-color-2.button-group--outline .button-group__button {
378
+ border-color: var(--classy-color-2);
379
+ color: var(--classy-color-2);
380
+ }
381
+
382
+ .button-group--classy-color-3.button-group--outline .button-group__button {
383
+ border-color: var(--classy-color-3);
384
+ color: var(--classy-color-3);
385
+ }
386
+
387
+ .button-group--classy-color-4.button-group--outline .button-group__button {
388
+ border-color: var(--classy-color-4);
389
+ color: var(--classy-color-4);
390
+ }
391
+
392
+ .button-group--classy-color-5.button-group--outline .button-group__button {
393
+ border-color: var(--classy-color-5);
394
+ color: var(--classy-color-5);
395
+ }
396
+
397
+ /* Small Switch Palette Outline Variants */
398
+ .button-group--small-switch-color-1.button-group--outline .button-group__button {
399
+ border-color: var(--small-switch-color-1);
400
+ color: var(--small-switch-color-1);
401
+ }
402
+
403
+ .button-group--small-switch-color-2.button-group--outline .button-group__button {
404
+ border-color: var(--small-switch-color-2);
405
+ color: var(--small-switch-color-2);
406
+ }
407
+
408
+ /* Natural Palette Outline Variants */
409
+ .button-group--natural-color-1.button-group--outline .button-group__button {
410
+ border-color: var(--natural-color-1);
411
+ color: var(--natural-color-1);
412
+ }
413
+
414
+ .button-group--natural-color-2.button-group--outline .button-group__button {
415
+ border-color: var(--natural-color-2);
416
+ color: var(--natural-color-2);
417
+ }
418
+
419
+ .button-group--natural-color-3.button-group--outline .button-group__button {
420
+ border-color: var(--natural-color-3);
421
+ color: var(--natural-color-3);
422
+ }
423
+
424
+ /* Grey Friends Outline Variants */
425
+ .button-group--grey-friend-1.button-group--outline .button-group__button {
426
+ border-color: var(--grey-friend-1);
427
+ color: var(--grey-friend-1);
428
+ }
429
+
430
+ .button-group--grey-friend-2.button-group--outline .button-group__button {
431
+ border-color: var(--grey-friend-2);
432
+ color: var(--grey-friend-2);
433
+ }
434
+
435
+ /* Shades Outline Variants */
436
+ .button-group--shade-1.button-group--outline .button-group__button {
437
+ border-color: var(--shade-1);
438
+ color: var(--shade-1);
439
+ }
440
+
441
+ .button-group--shade-2.button-group--outline .button-group__button {
442
+ border-color: var(--shade-2);
443
+ color: var(--shade-2);
444
+ }
445
+
446
+ .button-group--shade-3.button-group--outline .button-group__button {
447
+ border-color: var(--shade-3);
448
+ color: var (--shade-3);
449
+ }
450
+
451
+ .button-group--shade-4.button-group--outline .button-group__button {
452
+ border-color: var(--shade-4);
453
+ color: var(--shade-4);
454
+ }
455
+
456
+ /* Hover Effects */
457
+ .button-group__button:hover {
458
+ background-color: var(--primary-color-hover);
459
+ }
460
+
461
+ .button-group--outline .button-group__button:hover {
462
+ background-color: transparent;
463
+ border-color: var(--primary-color-hover);
464
+ color: var(--primary-color-hover);
465
+ }
@@ -1,25 +1,47 @@
1
-
1
+ //this.GUI/src/stories/Molecules/ButtonGroup/ButtonGroup.jsx
2
2
  import React from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
  import './ButtonGroup.css';
5
5
 
6
- /**
7
- * ButtonGroup component
8
- */
9
- export const ButtonGroup = (props) => {
6
+ export const ButtonGroup = ({ buttons, size, color, variant, onButtonClick }) => {
10
7
  return (
11
- <div className="buttongroup" {...props}>
12
- {/* Component implementation */}
8
+ <div className={`button-group button-group--${size} button-group--${color} button-group--${variant}`}>
9
+ {buttons.map((button, index) => (
10
+ <button
11
+ key={index}
12
+ className="button-group__button"
13
+ onClick={() => onButtonClick(button.value)}
14
+ >
15
+ {button.label}
16
+ </button>
17
+ ))}
13
18
  </div>
14
19
  );
15
20
  };
16
21
 
17
22
  ButtonGroup.propTypes = {
18
- // Define prop types here
23
+ buttons: PropTypes.arrayOf(
24
+ PropTypes.shape({
25
+ label: PropTypes.string.isRequired, // Label of the button
26
+ value: PropTypes.any.isRequired, // Value to return on button click
27
+ })
28
+ ).isRequired,
29
+ size: PropTypes.oneOf(['small', 'medium', 'large']), // Size of the buttons
30
+ color: PropTypes.oneOf([
31
+ 'primary', 'secondary', 'info', 'warning', 'alert', 'success', 'neutral', 'dark',
32
+ 'classy-color-1', 'classy-color-2', 'classy-color-3', 'classy-color-4', 'classy-color-5',
33
+ 'small-switch-color-1', 'small-switch-color-2',
34
+ 'natural-color-1', 'natural-color-2', 'natural-color-3',
35
+ 'grey-friend-1', 'grey-friend-2',
36
+ 'shade-1', 'shade-2', 'shade-3', 'shade-4'
37
+ ]), // Button color based on theme
38
+ variant: PropTypes.oneOf(['solid', 'outline']), // Solid or outline button styles
39
+ onButtonClick: PropTypes.func, // Callback function when a button is clicked
19
40
  };
20
41
 
21
42
  ButtonGroup.defaultProps = {
22
- // Define default props here
23
- };
24
-
25
- export default ButtonGroup;
43
+ size: 'medium',
44
+ color: 'primary',
45
+ variant: 'solid',
46
+ onButtonClick: () => {},
47
+ };
@@ -1,20 +1,44 @@
1
-
1
+ //this.GUI/src/stories/Molecules/ButtonGroup/ButtonGroup.stories.jsx
2
+ import React from 'react';
2
3
  import { ButtonGroup } from './ButtonGroup';
3
4
 
4
- // Storybook configuration for ButtonGroup component
5
5
  export default {
6
- title: 'Molecules/ButtonsWithIcons/ButtonGroup',
6
+ title: 'Molecules/Actions/ButtonGroup',
7
7
  component: ButtonGroup,
8
- parameters: {
9
- layout: 'centered',
10
- },
11
8
  argTypes: {
12
- // Define argTypes here
9
+ size: {
10
+ control: { type: 'select', options: ['small', 'medium', 'large'] },
11
+ },
12
+ color: {
13
+ control: {
14
+ type: 'select',
15
+ options: [
16
+ 'primary', 'secondary', 'info', 'warning', 'alert', 'success', 'neutral', 'dark',
17
+ 'classy-color-1', 'classy-color-2', 'classy-color-3', 'classy-color-4', 'classy-color-5',
18
+ 'small-switch-color-1', 'small-switch-color-2',
19
+ 'natural-color-1', 'natural-color-2', 'natural-color-3',
20
+ 'grey-friend-1', 'grey-friend-2',
21
+ 'shade-1', 'shade-2', 'shade-3', 'shade-4'
22
+ ],
23
+ },
24
+ },
25
+ variant: {
26
+ control: { type: 'select', options: ['solid', 'outline'] },
27
+ },
13
28
  },
14
29
  };
15
30
 
16
- export const Default = {
17
- args: {
18
- // Define default args here
19
- },
20
- };
31
+ const buttonOptions = [
32
+ { label: 'Button 1', value: 'button1' },
33
+ { label: 'Button 2', value: 'button2' },
34
+ { label: 'Button 3', value: 'button3' },
35
+ ];
36
+
37
+ export const DefaultButtonGroup = (args) => <ButtonGroup {...args} buttons={buttonOptions} />;
38
+
39
+ DefaultButtonGroup.args = {
40
+ size: 'medium',
41
+ color: 'primary',
42
+ variant: 'solid',
43
+ onButtonClick: (value) => console.log('Clicked button:', value),
44
+ };
@@ -1,4 +1,41 @@
1
-
1
+ /*this.GUI/src/stories/Molecules/Card/Card.css*/
2
2
  .card {
3
- /* Default styles for Card */
3
+ padding: 16px;
4
+ border-radius: var(--border-radius, 8px);
5
+ position: relative;
6
+ transition: transform 0.3s ease, box-shadow 0.3s ease;
7
+ color: inherit; /* Text color is inherited */
8
+ }
9
+
10
+ .card__content {
11
+ color: inherit; /* Inherit text color from parent */
12
+ }
13
+
14
+ .card--hoverable:hover {
15
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
16
+ transform: translateY(-2px);
17
+ }
18
+
19
+ .card__expand, .card__remove {
20
+ position: absolute;
21
+ top: 8px;
22
+ right: 8px;
23
+ background: none;
24
+ border: none;
25
+ font-size: 16px;
26
+ cursor: pointer;
27
+ }
28
+
29
+ .card__remove {
30
+ right: 12px;
4
31
  }
32
+
33
+ .card__expand {
34
+ right: 40px;
35
+ }
36
+
37
+ @media (max-width: 768px) {
38
+ .card {
39
+ padding: 12px;
40
+ }
41
+ }