@africode/core 5.0.8 → 5.0.9

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 (62) hide show
  1. package/AGENT_INSTRUCTIONS.md +595 -595
  2. package/COMPONENT_SCHEMA.json +1800 -991
  3. package/bin/create-africode.js +87 -25
  4. package/components/auth-form.js +154 -0
  5. package/components/index.js +10 -0
  6. package/components/kyc-upload.js +173 -0
  7. package/components/nav-drawer.js +217 -0
  8. package/components/transaction-ledger.js +138 -0
  9. package/components/wallet-balance.js +114 -0
  10. package/core/a2ui-schema-manager.js +1 -1
  11. package/core/a2ui.js +178 -1
  12. package/core/bun-runtime.js +122 -7
  13. package/core/cli/commands/build.js +30 -5
  14. package/core/cli/ui.js +13 -3
  15. package/core/compliance.js +201 -0
  16. package/core/middleware.js +80 -17
  17. package/core/patterns.js +168 -0
  18. package/core/request-analytics.js +254 -0
  19. package/core/request-identity.js +79 -29
  20. package/core/sdk.js +4 -1
  21. package/core/validation.js +13 -0
  22. package/dist/africode.js +858 -457
  23. package/dist/africode.js.map +14 -9
  24. package/dist/build-info.json +3 -3
  25. package/dist/components.js +784 -383
  26. package/dist/components.js.map +11 -6
  27. package/package.json +1 -1
  28. package/templates/starter/package.json +5 -5
  29. package/templates/starter/src/index.js +18 -0
  30. package/templates/starter/src/pages/index.js +1 -1
  31. package/templates/starter-3d/package.json +5 -5
  32. package/templates/starter-3d/src/pages/index.js +1 -1
  33. package/templates/starter-dashboard/.env.example +21 -0
  34. package/templates/starter-dashboard/africode.config.js +20 -0
  35. package/templates/starter-dashboard/package.json +14 -0
  36. package/templates/starter-dashboard/src/index.js +17 -0
  37. package/templates/starter-dashboard/src/pages/api/analytics.js +24 -0
  38. package/templates/starter-dashboard/src/pages/index.html +118 -0
  39. package/templates/starter-dashboard/src/pages/index.js +110 -0
  40. package/templates/starter-dashboard/src/styles/main.css +172 -0
  41. package/templates/starter-fintech/.env.example +28 -0
  42. package/templates/starter-fintech/africode.config.js +20 -0
  43. package/templates/starter-fintech/package.json +15 -0
  44. package/templates/starter-fintech/src/index.js +17 -0
  45. package/templates/starter-fintech/src/pages/api/auth.js +45 -0
  46. package/templates/starter-fintech/src/pages/api/transfer.js +65 -0
  47. package/templates/starter-fintech/src/pages/api/wallet.js +39 -0
  48. package/templates/starter-fintech/src/pages/api/webhooks/payment.js +32 -0
  49. package/templates/starter-fintech/src/pages/index.html +169 -0
  50. package/templates/starter-fintech/src/pages/index.js +161 -0
  51. package/templates/starter-fintech/src/styles/main.css +246 -0
  52. package/templates/starter-react/package.json +5 -5
  53. package/templates/starter-react/src/pages/index.js +1 -1
  54. package/templates/starter-tailwind/package.json +5 -5
  55. package/templates/starter-tailwind/src/pages/index.js +1 -1
  56. package/templates/starter-website/.env.example +18 -0
  57. package/templates/starter-website/africode.config.js +20 -0
  58. package/templates/starter-website/package.json +14 -0
  59. package/templates/starter-website/src/index.js +17 -0
  60. package/templates/starter-website/src/pages/index.html +124 -0
  61. package/templates/starter-website/src/pages/index.js +116 -0
  62. package/templates/starter-website/src/styles/main.css +195 -0
@@ -1,992 +1,1801 @@
1
- {
2
- "version": "5.0.0",
3
- "timestamp": "2026-06-28T10:52:30.385Z",
4
- "packageNote": "All af-, af-ui-, and af-dashboard components ship together in @africode/core as a unified AfriCode UI system.",
5
- "components": [
6
- {
7
- "tagName": "af-accordion",
8
- "className": "AfriAccordion",
9
- "filePath": "components\\accordion.js",
10
- "slots": [
11
- "default"
12
- ],
13
- "attributes": {
14
- "theme": {
15
- "type": "string"
16
- },
17
- "multiple": {
18
- "type": "string"
19
- }
20
- },
21
- "events": [],
22
- "cssCustomProperties": [],
23
- "example": "<af-accordion></af-accordion>",
24
- "securityNotes": "Sanitizes slot content"
25
- },
26
- {
27
- "tagName": "af-alert",
28
- "className": "AfriAlert",
29
- "filePath": "components\\alert.js",
30
- "slots": [
31
- "default"
32
- ],
33
- "attributes": {
34
- "type": {
35
- "type": "string"
36
- },
37
- "title": {
38
- "type": "string"
39
- },
40
- "dismissible": {
41
- "type": "string"
42
- }
43
- },
44
- "events": [],
45
- "cssCustomProperties": [],
46
- "example": "<af-alert></af-alert>",
47
- "securityNotes": "Sanitizes slot content"
48
- },
49
- {
50
- "tagName": "af-auth",
51
- "className": "AfriAuth",
52
- "filePath": "components\\auth.js",
53
- "slots": [
54
- "default"
55
- ],
56
- "attributes": {},
57
- "events": [],
58
- "cssCustomProperties": [],
59
- "example": "<af-auth></af-auth>",
60
- "securityNotes": "Sanitizes slot content"
61
- },
62
- {
63
- "tagName": "af-avatar",
64
- "className": "AfriAvatar",
65
- "filePath": "components\\avatar.js",
66
- "slots": [
67
- "default"
68
- ],
69
- "attributes": {
70
- "src": {
71
- "type": "string"
72
- },
73
- "name": {
74
- "type": "string"
75
- },
76
- "size": {
77
- "type": "string"
78
- },
79
- "status": {
80
- "type": "string"
81
- },
82
- "theme": {
83
- "type": "string"
84
- }
85
- },
86
- "events": [],
87
- "cssCustomProperties": [],
88
- "example": "<af-avatar></af-avatar>",
89
- "securityNotes": "Sanitizes slot content"
90
- },
91
- {
92
- "tagName": "af-badge",
93
- "className": "AfriBadge",
94
- "filePath": "components\\badge.js",
95
- "slots": [
96
- "default"
97
- ],
98
- "attributes": {
99
- "variant": {
100
- "type": "string"
101
- },
102
- "size": {
103
- "type": "string"
104
- },
105
- "removable": {
106
- "type": "string"
107
- }
108
- },
109
- "events": [],
110
- "cssCustomProperties": [],
111
- "example": "<af-badge></af-badge>",
112
- "securityNotes": "Sanitizes slot content"
113
- },
114
- {
115
- "tagName": "af-button",
116
- "className": "AfriButton",
117
- "filePath": "components\\button.js",
118
- "slots": [
119
- "default"
120
- ],
121
- "attributes": {
122
- "variant": {
123
- "type": "string"
124
- },
125
- "size": {
126
- "type": "string"
127
- },
128
- "theme": {
129
- "type": "string"
130
- },
131
- "disabled": {
132
- "type": "string"
133
- },
134
- "loading": {
135
- "type": "string"
136
- },
137
- "icon": {
138
- "type": "string"
139
- },
140
- "aria-label": {
141
- "type": "string"
142
- }
143
- },
144
- "events": [
145
- {
146
- "name": "click",
147
- "detail": {
148
- "type": "object"
149
- }
150
- }
151
- ],
152
- "cssCustomProperties": [],
153
- "example": "<af-button></af-button>",
154
- "securityNotes": "Sanitizes slot content"
155
- },
156
- {
157
- "tagName": "af-card",
158
- "className": "AfriCard",
159
- "filePath": "components\\card.js",
160
- "slots": [
161
- "default"
162
- ],
163
- "attributes": {
164
- "theme": {
165
- "type": "string"
166
- },
167
- "variant": {
168
- "type": "string"
169
- },
170
- "clickable": {
171
- "type": "string"
172
- },
173
- "image": {
174
- "type": "string"
175
- }
176
- },
177
- "events": [],
178
- "cssCustomProperties": [],
179
- "example": "<af-card></af-card>",
180
- "securityNotes": "Sanitizes slot content"
181
- },
182
- {
183
- "tagName": "af-cultural-card",
184
- "className": "CulturalCard",
185
- "filePath": "components\\cultural-card.js",
186
- "slots": [
187
- "default"
188
- ],
189
- "attributes": {
190
- "culture": {
191
- "type": "string"
192
- },
193
- "interactive": {
194
- "type": "string"
195
- }
196
- },
197
- "events": [],
198
- "cssCustomProperties": [],
199
- "example": "<af-cultural-card></af-cultural-card>",
200
- "securityNotes": "Sanitizes slot content"
201
- },
202
- {
203
- "tagName": "af-divider",
204
- "className": "AfriDivider",
205
- "filePath": "components\\divider.js",
206
- "slots": [
207
- "default"
208
- ],
209
- "attributes": {
210
- "pattern": {
211
- "type": "string"
212
- },
213
- "height": {
214
- "type": "string"
215
- },
216
- "color": {
217
- "type": "string"
218
- },
219
- "flip": {
220
- "type": "string"
221
- }
222
- },
223
- "events": [],
224
- "cssCustomProperties": [],
225
- "example": "<af-divider></af-divider>",
226
- "securityNotes": "Sanitizes slot content"
227
- },
228
- {
229
- "tagName": "af-dropdown",
230
- "className": "AfriDropdown",
231
- "filePath": "components\\dropdown.js",
232
- "slots": [
233
- "default"
234
- ],
235
- "attributes": {
236
- "label": {
237
- "type": "string"
238
- },
239
- "open": {
240
- "type": "string"
241
- }
242
- },
243
- "events": [],
244
- "cssCustomProperties": [],
245
- "example": "<af-dropdown></af-dropdown>",
246
- "securityNotes": "Sanitizes slot content"
247
- },
248
- {
249
- "tagName": "af-error-boundary",
250
- "className": "AfriErrorBoundary",
251
- "filePath": "components\\error-boundary.js",
252
- "slots": [
253
- "default"
254
- ],
255
- "attributes": {
256
- "theme": {
257
- "type": "string"
258
- },
259
- "fallback-message": {
260
- "type": "string"
261
- }
262
- },
263
- "events": [],
264
- "cssCustomProperties": [],
265
- "example": "<af-error-boundary></af-error-boundary>",
266
- "securityNotes": "Sanitizes slot content"
267
- },
268
- {
269
- "tagName": "af-form",
270
- "className": "AfriForm",
271
- "filePath": "components\\form.js",
272
- "slots": [
273
- "default"
274
- ],
275
- "attributes": {
276
- "action": {
277
- "type": "string"
278
- },
279
- "method": {
280
- "type": "string"
281
- },
282
- "error": {
283
- "type": "string"
284
- },
285
- "success": {
286
- "type": "string"
287
- },
288
- "schema": {
289
- "type": "string"
290
- }
291
- },
292
- "events": [],
293
- "cssCustomProperties": [],
294
- "example": "<af-form></af-form>",
295
- "securityNotes": "Sanitizes slot content"
296
- },
297
- {
298
- "tagName": "af-grid",
299
- "className": "AfriGrid",
300
- "filePath": "components\\grid.js",
301
- "slots": [
302
- "default"
303
- ],
304
- "attributes": {
305
- "min-width": {
306
- "type": "string"
307
- },
308
- "gap": {
309
- "type": "string"
310
- },
311
- "columns": {
312
- "type": "string"
313
- },
314
- "rows": {
315
- "type": "string"
316
- },
317
- "layout": {
318
- "type": "string"
319
- },
320
- "align": {
321
- "type": "string"
322
- },
323
- "justify": {
324
- "type": "string"
325
- },
326
- "dense": {
327
- "type": "string"
328
- },
329
- "sidebar-side": {
330
- "type": "string"
331
- },
332
- "sidebar-width": {
333
- "type": "string"
334
- },
335
- "": {
336
- "type": "string"
337
- }
338
- },
339
- "events": [],
340
- "cssCustomProperties": [],
341
- "example": "<af-grid></af-grid>",
342
- "securityNotes": "Sanitizes slot content"
343
- },
344
- {
345
- "tagName": "af-hero",
346
- "className": "AfriHero",
347
- "filePath": "components\\hero.js",
348
- "slots": [
349
- "default"
350
- ],
351
- "attributes": {
352
- "title": {
353
- "type": "string"
354
- },
355
- "subtitle": {
356
- "type": "string"
357
- },
358
- "pattern": {
359
- "type": "string"
360
- },
361
- "overlay": {
362
- "type": "string"
363
- }
364
- },
365
- "events": [],
366
- "cssCustomProperties": [],
367
- "example": "<af-hero></af-hero>",
368
- "securityNotes": "Sanitizes slot content"
369
- },
370
- {
371
- "tagName": "af-icon",
372
- "className": "AfriIcon",
373
- "filePath": "components\\icon.js",
374
- "slots": [
375
- "default"
376
- ],
377
- "attributes": {
378
- "name": {
379
- "type": "string"
380
- },
381
- "size": {
382
- "type": "string"
383
- }
384
- },
385
- "events": [],
386
- "cssCustomProperties": [],
387
- "example": "<af-icon></af-icon>",
388
- "securityNotes": "Sanitizes slot content"
389
- },
390
- {
391
- "tagName": "af-input",
392
- "className": "AfriInput",
393
- "filePath": "components\\input.js",
394
- "slots": [
395
- "default"
396
- ],
397
- "attributes": {
398
- "type": {
399
- "type": "string"
400
- },
401
- "name": {
402
- "type": "string"
403
- },
404
- "label": {
405
- "type": "string"
406
- },
407
- "placeholder": {
408
- "type": "string"
409
- },
410
- "error": {
411
- "type": "string"
412
- },
413
- "helper": {
414
- "type": "string"
415
- },
416
- "theme": {
417
- "type": "string"
418
- },
419
- "icon": {
420
- "type": "string"
421
- },
422
- "required": {
423
- "type": "string"
424
- },
425
- "aria-label": {
426
- "type": "string"
427
- },
428
- "aria-describedby": {
429
- "type": "string"
430
- },
431
- "validation": {
432
- "type": "string"
433
- }
434
- },
435
- "events": [],
436
- "cssCustomProperties": [],
437
- "example": "<af-input></af-input>",
438
- "securityNotes": "Sanitizes slot content"
439
- },
440
- {
441
- "tagName": "af-kanga-card",
442
- "className": "KangaCard",
443
- "filePath": "components\\kanga-card.js",
444
- "slots": [
445
- "default"
446
- ],
447
- "attributes": {
448
- "theme": {
449
- "type": "string"
450
- },
451
- "proverb": {
452
- "type": "string"
453
- },
454
- "proverb-translation": {
455
- "type": "string"
456
- }
457
- },
458
- "events": [],
459
- "cssCustomProperties": [],
460
- "example": "<af-kanga-card></af-kanga-card>",
461
- "securityNotes": "Sanitizes slot content"
462
- },
463
- {
464
- "tagName": "af-language-switcher",
465
- "className": "AfriLanguageSwitcher",
466
- "filePath": "components\\language-switcher.js",
467
- "slots": [
468
- "default"
469
- ],
470
- "attributes": {
471
- "current": {
472
- "type": "string"
473
- }
474
- },
475
- "events": [],
476
- "cssCustomProperties": [],
477
- "example": "<af-language-switcher></af-language-switcher>",
478
- "securityNotes": "Sanitizes slot content"
479
- },
480
- {
481
- "tagName": "af-loader",
482
- "className": "AfriLoader",
483
- "filePath": "components\\loader.js",
484
- "slots": [
485
- "default"
486
- ],
487
- "attributes": {
488
- "size": {
489
- "type": "string"
490
- },
491
- "color": {
492
- "type": "string"
493
- },
494
- "type": {
495
- "type": "string"
496
- }
497
- },
498
- "events": [],
499
- "cssCustomProperties": [],
500
- "example": "<af-loader></af-loader>",
501
- "securityNotes": "Sanitizes slot content"
502
- },
503
- {
504
- "tagName": "af-modal",
505
- "className": "AfriModal",
506
- "filePath": "components\\modal.js",
507
- "slots": [
508
- "default"
509
- ],
510
- "attributes": {
511
- "open": {
512
- "type": "string"
513
- },
514
- "theme": {
515
- "type": "string"
516
- },
517
- "size": {
518
- "type": "string"
519
- },
520
- "aria-label": {
521
- "type": "string"
522
- },
523
- "aria-labelledby": {
524
- "type": "string"
525
- }
526
- },
527
- "events": [],
528
- "cssCustomProperties": [],
529
- "example": "<af-modal></af-modal>",
530
- "securityNotes": "Sanitizes slot content"
531
- },
532
- {
533
- "tagName": "af-motion",
534
- "className": "MotionComponent",
535
- "filePath": "components\\motion.js",
536
- "slots": [
537
- "default"
538
- ],
539
- "attributes": {
540
- "animate": {
541
- "type": "string"
542
- },
543
- "transition": {
544
- "type": "string"
545
- }
546
- },
547
- "events": [],
548
- "cssCustomProperties": [],
549
- "example": "<af-motion></af-motion>",
550
- "securityNotes": "Sanitizes slot content"
551
- },
552
- {
553
- "tagName": "af-navbar",
554
- "className": "AfriNavbar",
555
- "filePath": "components\\navbar.js",
556
- "slots": [
557
- "default"
558
- ],
559
- "attributes": {
560
- "theme": {
561
- "type": "string"
562
- },
563
- "logo": {
564
- "type": "string"
565
- },
566
- "sticky": {
567
- "type": "string"
568
- }
569
- },
570
- "events": [],
571
- "cssCustomProperties": [],
572
- "example": "<af-navbar></af-navbar>",
573
- "securityNotes": "Sanitizes slot content"
574
- },
575
- {
576
- "tagName": "af-pattern-showcase",
577
- "className": "PatternShowcase",
578
- "filePath": "components\\pattern-showcase.js",
579
- "slots": [
580
- "default"
581
- ],
582
- "attributes": {
583
- "region": {
584
- "type": "string"
585
- },
586
- "size": {
587
- "type": "string"
588
- }
589
- },
590
- "events": [],
591
- "cssCustomProperties": [],
592
- "example": "<af-pattern-showcase></af-pattern-showcase>",
593
- "securityNotes": "Sanitizes slot content"
594
- },
595
- {
596
- "tagName": "af-progress",
597
- "className": "AfriProgress",
598
- "filePath": "components\\progress.js",
599
- "slots": [
600
- "default"
601
- ],
602
- "attributes": {
603
- "value": {
604
- "type": "string"
605
- },
606
- "max": {
607
- "type": "string"
608
- },
609
- "theme": {
610
- "type": "string"
611
- },
612
- "size": {
613
- "type": "string"
614
- },
615
- "label": {
616
- "type": "string"
617
- },
618
- "animated": {
619
- "type": "string"
620
- }
621
- },
622
- "events": [],
623
- "cssCustomProperties": [],
624
- "example": "<af-progress></af-progress>",
625
- "securityNotes": "Sanitizes slot content"
626
- },
627
- {
628
- "tagName": "af-react",
629
- "className": "AfriReact",
630
- "filePath": "components\\react.js",
631
- "slots": [
632
- "default"
633
- ],
634
- "attributes": {
635
- "component": {
636
- "type": "string"
637
- }
638
- },
639
- "events": [],
640
- "cssCustomProperties": [],
641
- "example": "<af-react></af-react>",
642
- "securityNotes": "Sanitizes slot content"
643
- },
644
- {
645
- "tagName": "af-section",
646
- "className": "AfriSection",
647
- "filePath": "components\\section.js",
648
- "slots": [
649
- "default"
650
- ],
651
- "attributes": {},
652
- "events": [],
653
- "cssCustomProperties": [],
654
- "example": "<af-section></af-section>",
655
- "securityNotes": "Sanitizes slot content"
656
- },
657
- {
658
- "tagName": "af-select",
659
- "className": "AfriSelect",
660
- "filePath": "components\\select.js",
661
- "slots": [
662
- "default"
663
- ],
664
- "attributes": {
665
- "label": {
666
- "type": "string"
667
- },
668
- "placeholder": {
669
- "type": "string"
670
- },
671
- "theme": {
672
- "type": "string"
673
- },
674
- "error": {
675
- "type": "string"
676
- },
677
- "required": {
678
- "type": "string"
679
- },
680
- "aria-label": {
681
- "type": "string"
682
- },
683
- "aria-describedby": {
684
- "type": "string"
685
- }
686
- },
687
- "events": [],
688
- "cssCustomProperties": [],
689
- "example": "<af-select></af-select>",
690
- "securityNotes": "Sanitizes slot content"
691
- },
692
- {
693
- "tagName": "af-sidebar",
694
- "className": "AfriSidebar",
695
- "filePath": "components\\sidebar.js",
696
- "slots": [
697
- "default"
698
- ],
699
- "attributes": {
700
- "position": {
701
- "type": "string"
702
- }
703
- },
704
- "events": [],
705
- "cssCustomProperties": [],
706
- "example": "<af-sidebar></af-sidebar>",
707
- "securityNotes": "Sanitizes slot content"
708
- },
709
- {
710
- "tagName": "af-skeleton",
711
- "className": "AfriSkeleton",
712
- "filePath": "components\\skeleton.js",
713
- "slots": [
714
- "default"
715
- ],
716
- "attributes": {
717
- "variant": {
718
- "type": "string"
719
- },
720
- "width": {
721
- "type": "string"
722
- },
723
- "height": {
724
- "type": "string"
725
- },
726
- "lines": {
727
- "type": "string"
728
- }
729
- },
730
- "events": [],
731
- "cssCustomProperties": [],
732
- "example": "<af-skeleton></af-skeleton>",
733
- "securityNotes": "Sanitizes slot content"
734
- },
735
- {
736
- "tagName": "af-table",
737
- "className": "AfriTable",
738
- "filePath": "components\\table.js",
739
- "slots": [
740
- "default"
741
- ],
742
- "attributes": {
743
- "theme": {
744
- "type": "string"
745
- },
746
- "striped": {
747
- "type": "string"
748
- },
749
- "hoverable": {
750
- "type": "string"
751
- }
752
- },
753
- "events": [],
754
- "cssCustomProperties": [],
755
- "example": "<af-table></af-table>",
756
- "securityNotes": "Sanitizes slot content"
757
- },
758
- {
759
- "tagName": "af-tabs",
760
- "className": "AfriTabs",
761
- "filePath": "components\\tabs.js",
762
- "slots": [
763
- "default"
764
- ],
765
- "attributes": {
766
- "theme": {
767
- "type": "string"
768
- }
769
- },
770
- "events": [],
771
- "cssCustomProperties": [],
772
- "example": "<af-tabs></af-tabs>",
773
- "securityNotes": "Sanitizes slot content"
774
- },
775
- {
776
- "tagName": "af-theme-toggle",
777
- "className": "Theme-toggleComponent",
778
- "filePath": "components\\theme-toggle.js",
779
- "slots": [
780
- "default"
781
- ],
782
- "attributes": {},
783
- "events": [],
784
- "cssCustomProperties": [],
785
- "example": "<af-theme-toggle></af-theme-toggle>",
786
- "securityNotes": "Sanitizes slot content"
787
- },
788
- {
789
- "tagName": "af-toast",
790
- "className": "AfriToast",
791
- "filePath": "components\\toast.js",
792
- "slots": [
793
- "default"
794
- ],
795
- "attributes": {
796
- "type": {
797
- "type": "string"
798
- },
799
- "message": {
800
- "type": "string"
801
- },
802
- "duration": {
803
- "type": "string"
804
- }
805
- },
806
- "events": [],
807
- "cssCustomProperties": [],
808
- "example": "<af-toast></af-toast>",
809
- "securityNotes": "Sanitizes slot content"
810
- },
811
- {
812
- "tagName": "af-tooltip",
813
- "className": "AfriTooltip",
814
- "filePath": "components\\tooltip.js",
815
- "slots": [
816
- "default"
817
- ],
818
- "attributes": {
819
- "text": {
820
- "type": "string"
821
- },
822
- "position": {
823
- "type": "string"
824
- }
825
- },
826
- "events": [],
827
- "cssCustomProperties": [],
828
- "example": "<af-tooltip></af-tooltip>",
829
- "securityNotes": "Sanitizes slot content"
830
- },
831
- {
832
- "tagName": "af-ui-badge",
833
- "className": "AfriUIBadge",
834
- "filePath": "components\\ui-badge.js",
835
- "slots": [
836
- "default"
837
- ],
838
- "attributes": {
839
- "variant": {
840
- "type": "string"
841
- },
842
- "size": {
843
- "type": "string"
844
- },
845
- "pill": {
846
- "type": "string"
847
- }
848
- },
849
- "events": [],
850
- "cssCustomProperties": [],
851
- "example": "<af-ui-badge></af-ui-badge>",
852
- "securityNotes": "Sanitizes slot content"
853
- },
854
- {
855
- "tagName": "af-ui-button",
856
- "className": "AfriUIButton",
857
- "filePath": "components\\ui-button.js",
858
- "slots": [
859
- "default"
860
- ],
861
- "attributes": {
862
- "variant": {
863
- "type": "string"
864
- },
865
- "size": {
866
- "type": "string"
867
- },
868
- "disabled": {
869
- "type": "string"
870
- },
871
- "loading": {
872
- "type": "string"
873
- },
874
- "full-width": {
875
- "type": "string"
876
- },
877
- "aria-label": {
878
- "type": "string"
879
- }
880
- },
881
- "events": [
882
- {
883
- "name": "click",
884
- "detail": {
885
- "type": "object"
886
- }
887
- }
888
- ],
889
- "cssCustomProperties": [],
890
- "example": "<af-ui-button></af-ui-button>",
891
- "securityNotes": "Sanitizes slot content"
892
- },
893
- {
894
- "tagName": "af-ui-card",
895
- "className": "AfriUICard",
896
- "filePath": "components\\ui-card.js",
897
- "slots": [
898
- "default"
899
- ],
900
- "attributes": {
901
- "variant": {
902
- "type": "string"
903
- },
904
- "bordered": {
905
- "type": "string"
906
- },
907
- "clickable": {
908
- "type": "string"
909
- }
910
- },
911
- "events": [],
912
- "cssCustomProperties": [],
913
- "example": "<af-ui-card></af-ui-card>",
914
- "securityNotes": "Sanitizes slot content"
915
- },
916
- {
917
- "tagName": "af-ui-input",
918
- "className": "AfriUIInput",
919
- "filePath": "components\\ui-input.js",
920
- "slots": [
921
- "default"
922
- ],
923
- "attributes": {
924
- "label": {
925
- "type": "string"
926
- },
927
- "placeholder": {
928
- "type": "string"
929
- },
930
- "type": {
931
- "type": "string"
932
- },
933
- "value": {
934
- "type": "string"
935
- },
936
- "disabled": {
937
- "type": "string"
938
- },
939
- "error": {
940
- "type": "string"
941
- }
942
- },
943
- "events": [
944
- {
945
- "name": "click",
946
- "detail": {
947
- "type": "object"
948
- }
949
- }
950
- ],
951
- "cssCustomProperties": [],
952
- "example": "<af-ui-input></af-ui-input>",
953
- "securityNotes": "Sanitizes slot content"
954
- },
955
- {
956
- "tagName": "af-ui-switch",
957
- "className": "AfriUISwitch",
958
- "filePath": "components\\ui-switch.js",
959
- "slots": [
960
- "default"
961
- ],
962
- "attributes": {
963
- "checked": {
964
- "type": "string"
965
- },
966
- "disabled": {
967
- "type": "string"
968
- },
969
- "size": {
970
- "type": "string"
971
- }
972
- },
973
- "events": [
974
- {
975
- "name": "click",
976
- "detail": {
977
- "type": "object"
978
- }
979
- }
980
- ],
981
- "cssCustomProperties": [],
982
- "example": "<af-ui-switch></af-ui-switch>",
983
- "securityNotes": "Sanitizes slot content"
984
- }
985
- ],
986
- "forbiddenPatterns": [
987
- "eval()",
988
- "innerHTML = userInput",
989
- "fetch without CORS headers",
990
- "localStorage for sensitive data"
991
- ]
1
+ {
2
+ "version": "5.0.0",
3
+ "timestamp": "2026-07-07T14:08:34.990Z",
4
+ "components": [
5
+ {
6
+ "tagName": "af-accordion",
7
+ "className": "AfriAccordion",
8
+ "filePath": "components\\accordion.js",
9
+ "slots": [
10
+ "default"
11
+ ],
12
+ "attributes": {
13
+ "theme": {
14
+ "type": "string"
15
+ },
16
+ "multiple": {
17
+ "type": "string"
18
+ }
19
+ },
20
+ "events": [],
21
+ "cssCustomProperties": [],
22
+ "example": "<af-accordion></af-accordion>",
23
+ "securityNotes": "Sanitizes slot content"
24
+ },
25
+ {
26
+ "tagName": "af-alert",
27
+ "className": "AfriAlert",
28
+ "filePath": "components\\alert.js",
29
+ "slots": [
30
+ "default"
31
+ ],
32
+ "attributes": {
33
+ "type": {
34
+ "type": "string"
35
+ },
36
+ "title": {
37
+ "type": "string"
38
+ },
39
+ "dismissible": {
40
+ "type": "string"
41
+ }
42
+ },
43
+ "events": [],
44
+ "cssCustomProperties": [],
45
+ "example": "<af-alert></af-alert>",
46
+ "securityNotes": "Sanitizes slot content"
47
+ },
48
+ {
49
+ "tagName": "af-auth-form",
50
+ "className": "AfriAuthForm",
51
+ "filePath": "components\\auth-form.js",
52
+ "slots": [
53
+ "default"
54
+ ],
55
+ "attributes": {
56
+ "endpoint": {
57
+ "type": "string"
58
+ },
59
+ "button-label": {
60
+ "type": "string"
61
+ }
62
+ },
63
+ "events": [],
64
+ "cssCustomProperties": [],
65
+ "example": "<af-auth-form></af-auth-form>",
66
+ "securityNotes": "Sanitizes slot content"
67
+ },
68
+ {
69
+ "tagName": "af-auth",
70
+ "className": "AfriAuth",
71
+ "filePath": "components\\auth.js",
72
+ "slots": [
73
+ "default"
74
+ ],
75
+ "attributes": {},
76
+ "events": [],
77
+ "cssCustomProperties": [],
78
+ "example": "<af-auth></af-auth>",
79
+ "securityNotes": "Sanitizes slot content"
80
+ },
81
+ {
82
+ "tagName": "af-avatar",
83
+ "className": "AfriAvatar",
84
+ "filePath": "components\\avatar.js",
85
+ "slots": [
86
+ "default"
87
+ ],
88
+ "attributes": {
89
+ "src": {
90
+ "type": "string"
91
+ },
92
+ "name": {
93
+ "type": "string"
94
+ },
95
+ "size": {
96
+ "type": "string"
97
+ },
98
+ "status": {
99
+ "type": "string"
100
+ },
101
+ "theme": {
102
+ "type": "string"
103
+ }
104
+ },
105
+ "events": [],
106
+ "cssCustomProperties": [],
107
+ "example": "<af-avatar></af-avatar>",
108
+ "securityNotes": "Sanitizes slot content"
109
+ },
110
+ {
111
+ "tagName": "af-badge",
112
+ "className": "AfriBadge",
113
+ "filePath": "components\\badge.js",
114
+ "slots": [
115
+ "default"
116
+ ],
117
+ "attributes": {
118
+ "variant": {
119
+ "type": "string"
120
+ },
121
+ "size": {
122
+ "type": "string"
123
+ },
124
+ "removable": {
125
+ "type": "string"
126
+ }
127
+ },
128
+ "events": [],
129
+ "cssCustomProperties": [],
130
+ "example": "<af-badge></af-badge>",
131
+ "securityNotes": "Sanitizes slot content"
132
+ },
133
+ {
134
+ "tagName": "af-breadcrumb",
135
+ "className": "AfriBreadcrumb",
136
+ "filePath": "components\\breadcrumb.js",
137
+ "slots": [
138
+ "default"
139
+ ],
140
+ "attributes": {
141
+ "separator": {
142
+ "type": "string"
143
+ }
144
+ },
145
+ "events": [],
146
+ "cssCustomProperties": [],
147
+ "example": "<af-breadcrumb></af-breadcrumb>",
148
+ "securityNotes": "Sanitizes slot content"
149
+ },
150
+ {
151
+ "tagName": "af-button",
152
+ "className": "AfriButton",
153
+ "filePath": "components\\button.js",
154
+ "slots": [
155
+ "default"
156
+ ],
157
+ "attributes": {
158
+ "variant": {
159
+ "type": "string"
160
+ },
161
+ "size": {
162
+ "type": "string"
163
+ },
164
+ "theme": {
165
+ "type": "string"
166
+ },
167
+ "disabled": {
168
+ "type": "string"
169
+ },
170
+ "loading": {
171
+ "type": "string"
172
+ },
173
+ "icon": {
174
+ "type": "string"
175
+ },
176
+ "aria-label": {
177
+ "type": "string"
178
+ }
179
+ },
180
+ "events": [
181
+ {
182
+ "name": "click",
183
+ "detail": {
184
+ "type": "object"
185
+ }
186
+ }
187
+ ],
188
+ "cssCustomProperties": [],
189
+ "example": "<af-button></af-button>",
190
+ "securityNotes": "Sanitizes slot content"
191
+ },
192
+ {
193
+ "tagName": "af-card",
194
+ "className": "AfriCard",
195
+ "filePath": "components\\card.js",
196
+ "slots": [
197
+ "default"
198
+ ],
199
+ "attributes": {
200
+ "theme": {
201
+ "type": "string"
202
+ },
203
+ "variant": {
204
+ "type": "string"
205
+ },
206
+ "clickable": {
207
+ "type": "string"
208
+ },
209
+ "image": {
210
+ "type": "string"
211
+ }
212
+ },
213
+ "events": [],
214
+ "cssCustomProperties": [],
215
+ "example": "<af-card></af-card>",
216
+ "securityNotes": "Sanitizes slot content"
217
+ },
218
+ {
219
+ "tagName": "af-carousel",
220
+ "className": "AfriCarousel",
221
+ "filePath": "components\\carousel.js",
222
+ "slots": [
223
+ "default"
224
+ ],
225
+ "attributes": {},
226
+ "events": [],
227
+ "cssCustomProperties": [],
228
+ "example": "<af-carousel></af-carousel>",
229
+ "securityNotes": "Sanitizes slot content"
230
+ },
231
+ {
232
+ "tagName": "af-cart-drawer",
233
+ "className": "AfriCartDrawer",
234
+ "filePath": "components\\cart-drawer.js",
235
+ "slots": [
236
+ "default"
237
+ ],
238
+ "attributes": {},
239
+ "events": [],
240
+ "cssCustomProperties": [],
241
+ "example": "<af-cart-drawer></af-cart-drawer>",
242
+ "securityNotes": "Sanitizes slot content"
243
+ },
244
+ {
245
+ "tagName": "af-code-block",
246
+ "className": "AfriCodeBlock",
247
+ "filePath": "components\\code-block.js",
248
+ "slots": [
249
+ "default"
250
+ ],
251
+ "attributes": {},
252
+ "events": [],
253
+ "cssCustomProperties": [],
254
+ "example": "<af-code-block></af-code-block>",
255
+ "securityNotes": "Sanitizes slot content"
256
+ },
257
+ {
258
+ "tagName": "af-contact-form",
259
+ "className": "AfriContactForm",
260
+ "filePath": "components\\contact-form.js",
261
+ "slots": [
262
+ "default"
263
+ ],
264
+ "attributes": {},
265
+ "events": [],
266
+ "cssCustomProperties": [],
267
+ "example": "<af-contact-form></af-contact-form>",
268
+ "securityNotes": "Sanitizes slot content"
269
+ },
270
+ {
271
+ "tagName": "af-cookie-consent",
272
+ "className": "AfriCookieConsent",
273
+ "filePath": "components\\cookie-consent.js",
274
+ "slots": [
275
+ "default"
276
+ ],
277
+ "attributes": {},
278
+ "events": [],
279
+ "cssCustomProperties": [],
280
+ "example": "<af-cookie-consent></af-cookie-consent>",
281
+ "securityNotes": "Sanitizes slot content"
282
+ },
283
+ {
284
+ "tagName": "af-cta-banner",
285
+ "className": "AfriCTABanner",
286
+ "filePath": "components\\cta-banner.js",
287
+ "slots": [
288
+ "default"
289
+ ],
290
+ "attributes": {
291
+ "title": {
292
+ "type": "string"
293
+ },
294
+ "subtitle": {
295
+ "type": "string"
296
+ },
297
+ "cta-text": {
298
+ "type": "string"
299
+ }
300
+ },
301
+ "events": [],
302
+ "cssCustomProperties": [],
303
+ "example": "<af-cta-banner></af-cta-banner>",
304
+ "securityNotes": "Sanitizes slot content"
305
+ },
306
+ {
307
+ "tagName": "af-cultural-card",
308
+ "className": "CulturalCard",
309
+ "filePath": "components\\cultural-card.js",
310
+ "slots": [
311
+ "default"
312
+ ],
313
+ "attributes": {
314
+ "culture": {
315
+ "type": "string"
316
+ },
317
+ "interactive": {
318
+ "type": "string"
319
+ }
320
+ },
321
+ "events": [],
322
+ "cssCustomProperties": [],
323
+ "example": "<af-cultural-card></af-cultural-card>",
324
+ "securityNotes": "Sanitizes slot content"
325
+ },
326
+ {
327
+ "tagName": "af-dashboard-activity-list",
328
+ "className": "AfriDashboardActivityList",
329
+ "filePath": "components\\dashboard-activity-list.js",
330
+ "slots": [
331
+ "default"
332
+ ],
333
+ "attributes": {
334
+ "title": {
335
+ "type": "string"
336
+ },
337
+ "empty-text": {
338
+ "type": "string"
339
+ }
340
+ },
341
+ "events": [],
342
+ "cssCustomProperties": [],
343
+ "example": "<af-dashboard-activity-list></af-dashboard-activity-list>",
344
+ "securityNotes": "Sanitizes slot content"
345
+ },
346
+ {
347
+ "tagName": "af-dashboard-card",
348
+ "className": "AfriDashboardCard",
349
+ "filePath": "components\\dashboard-card.js",
350
+ "slots": [
351
+ "default"
352
+ ],
353
+ "attributes": {
354
+ "title": {
355
+ "type": "string"
356
+ },
357
+ "variant": {
358
+ "type": "string"
359
+ }
360
+ },
361
+ "events": [],
362
+ "cssCustomProperties": [],
363
+ "example": "<af-dashboard-card></af-dashboard-card>",
364
+ "securityNotes": "Sanitizes slot content"
365
+ },
366
+ {
367
+ "tagName": "af-dashboard-metric",
368
+ "className": "AfriDashboardMetric",
369
+ "filePath": "components\\dashboard-metric.js",
370
+ "slots": [
371
+ "default"
372
+ ],
373
+ "attributes": {
374
+ "label": {
375
+ "type": "string"
376
+ },
377
+ "value": {
378
+ "type": "string"
379
+ },
380
+ "delta": {
381
+ "type": "string"
382
+ },
383
+ "trend": {
384
+ "type": "string"
385
+ }
386
+ },
387
+ "events": [],
388
+ "cssCustomProperties": [],
389
+ "example": "<af-dashboard-metric></af-dashboard-metric>",
390
+ "securityNotes": "Sanitizes slot content"
391
+ },
392
+ {
393
+ "tagName": "af-dashboard-shell",
394
+ "className": "AfriDashboardShell",
395
+ "filePath": "components\\dashboard-shell.js",
396
+ "slots": [
397
+ "default"
398
+ ],
399
+ "attributes": {
400
+ "sidebar-width": {
401
+ "type": "string"
402
+ },
403
+ "topbar-height": {
404
+ "type": "string"
405
+ }
406
+ },
407
+ "events": [],
408
+ "cssCustomProperties": [],
409
+ "example": "<af-dashboard-shell></af-dashboard-shell>",
410
+ "securityNotes": "Sanitizes slot content"
411
+ },
412
+ {
413
+ "tagName": "af-dashboard-topbar",
414
+ "className": "AfriDashboardTopbar",
415
+ "filePath": "components\\dashboard-topbar.js",
416
+ "slots": [
417
+ "default"
418
+ ],
419
+ "attributes": {
420
+ "title": {
421
+ "type": "string"
422
+ },
423
+ "description": {
424
+ "type": "string"
425
+ }
426
+ },
427
+ "events": [],
428
+ "cssCustomProperties": [],
429
+ "example": "<af-dashboard-topbar></af-dashboard-topbar>",
430
+ "securityNotes": "Sanitizes slot content"
431
+ },
432
+ {
433
+ "tagName": "af-divider",
434
+ "className": "AfriDivider",
435
+ "filePath": "components\\divider.js",
436
+ "slots": [
437
+ "default"
438
+ ],
439
+ "attributes": {
440
+ "pattern": {
441
+ "type": "string"
442
+ },
443
+ "height": {
444
+ "type": "string"
445
+ },
446
+ "color": {
447
+ "type": "string"
448
+ },
449
+ "flip": {
450
+ "type": "string"
451
+ }
452
+ },
453
+ "events": [],
454
+ "cssCustomProperties": [],
455
+ "example": "<af-divider></af-divider>",
456
+ "securityNotes": "Sanitizes slot content"
457
+ },
458
+ {
459
+ "tagName": "af-dropdown",
460
+ "className": "AfriDropdown",
461
+ "filePath": "components\\dropdown.js",
462
+ "slots": [
463
+ "default"
464
+ ],
465
+ "attributes": {
466
+ "label": {
467
+ "type": "string"
468
+ },
469
+ "open": {
470
+ "type": "string"
471
+ }
472
+ },
473
+ "events": [],
474
+ "cssCustomProperties": [],
475
+ "example": "<af-dropdown></af-dropdown>",
476
+ "securityNotes": "Sanitizes slot content"
477
+ },
478
+ {
479
+ "tagName": "af-error-boundary",
480
+ "className": "AfriErrorBoundary",
481
+ "filePath": "components\\error-boundary.js",
482
+ "slots": [
483
+ "default"
484
+ ],
485
+ "attributes": {
486
+ "theme": {
487
+ "type": "string"
488
+ },
489
+ "fallback-message": {
490
+ "type": "string"
491
+ }
492
+ },
493
+ "events": [],
494
+ "cssCustomProperties": [],
495
+ "example": "<af-error-boundary></af-error-boundary>",
496
+ "securityNotes": "Sanitizes slot content"
497
+ },
498
+ {
499
+ "tagName": "af-faq-accordion",
500
+ "className": "AfriFAQAccordion",
501
+ "filePath": "components\\faq-accordion.js",
502
+ "slots": [
503
+ "default"
504
+ ],
505
+ "attributes": {},
506
+ "events": [],
507
+ "cssCustomProperties": [],
508
+ "example": "<af-faq-accordion></af-faq-accordion>",
509
+ "securityNotes": "Sanitizes slot content"
510
+ },
511
+ {
512
+ "tagName": "af-feature-grid",
513
+ "className": "AfriFeatureGrid",
514
+ "filePath": "components\\feature-grid.js",
515
+ "slots": [
516
+ "default"
517
+ ],
518
+ "attributes": {
519
+ "columns": {
520
+ "type": "string"
521
+ }
522
+ },
523
+ "events": [],
524
+ "cssCustomProperties": [],
525
+ "example": "<af-feature-grid></af-feature-grid>",
526
+ "securityNotes": "Sanitizes slot content"
527
+ },
528
+ {
529
+ "tagName": "af-file-uploader",
530
+ "className": "AfriFileUploader",
531
+ "filePath": "components\\file-uploader.js",
532
+ "slots": [
533
+ "default"
534
+ ],
535
+ "attributes": {},
536
+ "events": [],
537
+ "cssCustomProperties": [],
538
+ "example": "<af-file-uploader></af-file-uploader>",
539
+ "securityNotes": "Sanitizes slot content"
540
+ },
541
+ {
542
+ "tagName": "af-filter-bar",
543
+ "className": "AfriFilterBar",
544
+ "filePath": "components\\filter-bar.js",
545
+ "slots": [
546
+ "default"
547
+ ],
548
+ "attributes": {},
549
+ "events": [],
550
+ "cssCustomProperties": [],
551
+ "example": "<af-filter-bar></af-filter-bar>",
552
+ "securityNotes": "Sanitizes slot content"
553
+ },
554
+ {
555
+ "tagName": "af-footer",
556
+ "className": "AfriFooter",
557
+ "filePath": "components\\footer.js",
558
+ "slots": [
559
+ "default"
560
+ ],
561
+ "attributes": {
562
+ "company": {
563
+ "type": "string"
564
+ },
565
+ "year": {
566
+ "type": "string"
567
+ }
568
+ },
569
+ "events": [],
570
+ "cssCustomProperties": [],
571
+ "example": "<af-footer></af-footer>",
572
+ "securityNotes": "Sanitizes slot content"
573
+ },
574
+ {
575
+ "tagName": "af-form",
576
+ "className": "AfriForm",
577
+ "filePath": "components\\form.js",
578
+ "slots": [
579
+ "default"
580
+ ],
581
+ "attributes": {
582
+ "action": {
583
+ "type": "string"
584
+ },
585
+ "method": {
586
+ "type": "string"
587
+ },
588
+ "error": {
589
+ "type": "string"
590
+ },
591
+ "success": {
592
+ "type": "string"
593
+ },
594
+ "schema": {
595
+ "type": "string"
596
+ }
597
+ },
598
+ "events": [],
599
+ "cssCustomProperties": [],
600
+ "example": "<af-form></af-form>",
601
+ "securityNotes": "Sanitizes slot content"
602
+ },
603
+ {
604
+ "tagName": "af-gallery",
605
+ "className": "AfriGallery",
606
+ "filePath": "components\\gallery.js",
607
+ "slots": [
608
+ "default"
609
+ ],
610
+ "attributes": {},
611
+ "events": [],
612
+ "cssCustomProperties": [],
613
+ "example": "<af-gallery></af-gallery>",
614
+ "securityNotes": "Sanitizes slot content"
615
+ },
616
+ {
617
+ "tagName": "af-grid",
618
+ "className": "AfriGrid",
619
+ "filePath": "components\\grid.js",
620
+ "slots": [
621
+ "default"
622
+ ],
623
+ "attributes": {
624
+ "min-width": {
625
+ "type": "string"
626
+ },
627
+ "gap": {
628
+ "type": "string"
629
+ },
630
+ "columns": {
631
+ "type": "string"
632
+ },
633
+ "rows": {
634
+ "type": "string"
635
+ },
636
+ "layout": {
637
+ "type": "string"
638
+ },
639
+ "align": {
640
+ "type": "string"
641
+ },
642
+ "justify": {
643
+ "type": "string"
644
+ },
645
+ "dense": {
646
+ "type": "string"
647
+ },
648
+ "sidebar-side": {
649
+ "type": "string"
650
+ },
651
+ "sidebar-width": {
652
+ "type": "string"
653
+ },
654
+ "": {
655
+ "type": "string"
656
+ }
657
+ },
658
+ "events": [],
659
+ "cssCustomProperties": [],
660
+ "example": "<af-grid></af-grid>",
661
+ "securityNotes": "Sanitizes slot content"
662
+ },
663
+ {
664
+ "tagName": "af-hero",
665
+ "className": "AfriHero",
666
+ "filePath": "components\\hero.js",
667
+ "slots": [
668
+ "default"
669
+ ],
670
+ "attributes": {
671
+ "title": {
672
+ "type": "string"
673
+ },
674
+ "subtitle": {
675
+ "type": "string"
676
+ },
677
+ "pattern": {
678
+ "type": "string"
679
+ },
680
+ "overlay": {
681
+ "type": "string"
682
+ }
683
+ },
684
+ "events": [],
685
+ "cssCustomProperties": [],
686
+ "example": "<af-hero></af-hero>",
687
+ "securityNotes": "Sanitizes slot content"
688
+ },
689
+ {
690
+ "tagName": "af-icon",
691
+ "className": "AfriIcon",
692
+ "filePath": "components\\icon.js",
693
+ "slots": [
694
+ "default"
695
+ ],
696
+ "attributes": {
697
+ "name": {
698
+ "type": "string"
699
+ },
700
+ "size": {
701
+ "type": "string"
702
+ }
703
+ },
704
+ "events": [],
705
+ "cssCustomProperties": [],
706
+ "example": "<af-icon></af-icon>",
707
+ "securityNotes": "Sanitizes slot content"
708
+ },
709
+ {
710
+ "tagName": "af-input",
711
+ "className": "AfriInput",
712
+ "filePath": "components\\input.js",
713
+ "slots": [
714
+ "default"
715
+ ],
716
+ "attributes": {
717
+ "type": {
718
+ "type": "string"
719
+ },
720
+ "name": {
721
+ "type": "string"
722
+ },
723
+ "label": {
724
+ "type": "string"
725
+ },
726
+ "placeholder": {
727
+ "type": "string"
728
+ },
729
+ "error": {
730
+ "type": "string"
731
+ },
732
+ "helper": {
733
+ "type": "string"
734
+ },
735
+ "theme": {
736
+ "type": "string"
737
+ },
738
+ "icon": {
739
+ "type": "string"
740
+ },
741
+ "required": {
742
+ "type": "string"
743
+ },
744
+ "aria-label": {
745
+ "type": "string"
746
+ },
747
+ "aria-describedby": {
748
+ "type": "string"
749
+ },
750
+ "validation": {
751
+ "type": "string"
752
+ }
753
+ },
754
+ "events": [],
755
+ "cssCustomProperties": [],
756
+ "example": "<af-input></af-input>",
757
+ "securityNotes": "Sanitizes slot content"
758
+ },
759
+ {
760
+ "tagName": "af-kanga-card",
761
+ "className": "KangaCard",
762
+ "filePath": "components\\kanga-card.js",
763
+ "slots": [
764
+ "default"
765
+ ],
766
+ "attributes": {
767
+ "theme": {
768
+ "type": "string"
769
+ },
770
+ "proverb": {
771
+ "type": "string"
772
+ },
773
+ "proverb-translation": {
774
+ "type": "string"
775
+ }
776
+ },
777
+ "events": [],
778
+ "cssCustomProperties": [],
779
+ "example": "<af-kanga-card></af-kanga-card>",
780
+ "securityNotes": "Sanitizes slot content"
781
+ },
782
+ {
783
+ "tagName": "af-kyc-upload",
784
+ "className": "AfriKycUpload",
785
+ "filePath": "components\\kyc-upload.js",
786
+ "slots": [
787
+ "default"
788
+ ],
789
+ "attributes": {
790
+ "endpoint": {
791
+ "type": "string"
792
+ },
793
+ "max-size-mb": {
794
+ "type": "string"
795
+ }
796
+ },
797
+ "events": [],
798
+ "cssCustomProperties": [],
799
+ "example": "<af-kyc-upload></af-kyc-upload>",
800
+ "securityNotes": "Sanitizes slot content"
801
+ },
802
+ {
803
+ "tagName": "af-language-switcher",
804
+ "className": "AfriLanguageSwitcher",
805
+ "filePath": "components\\language-switcher.js",
806
+ "slots": [
807
+ "default"
808
+ ],
809
+ "attributes": {
810
+ "current": {
811
+ "type": "string"
812
+ }
813
+ },
814
+ "events": [],
815
+ "cssCustomProperties": [],
816
+ "example": "<af-language-switcher></af-language-switcher>",
817
+ "securityNotes": "Sanitizes slot content"
818
+ },
819
+ {
820
+ "tagName": "af-loader",
821
+ "className": "AfriLoader",
822
+ "filePath": "components\\loader.js",
823
+ "slots": [
824
+ "default"
825
+ ],
826
+ "attributes": {
827
+ "size": {
828
+ "type": "string"
829
+ },
830
+ "color": {
831
+ "type": "string"
832
+ },
833
+ "type": {
834
+ "type": "string"
835
+ }
836
+ },
837
+ "events": [],
838
+ "cssCustomProperties": [],
839
+ "example": "<af-loader></af-loader>",
840
+ "securityNotes": "Sanitizes slot content"
841
+ },
842
+ {
843
+ "tagName": "af-modal",
844
+ "className": "AfriModal",
845
+ "filePath": "components\\modal.js",
846
+ "slots": [
847
+ "default"
848
+ ],
849
+ "attributes": {
850
+ "open": {
851
+ "type": "string"
852
+ },
853
+ "theme": {
854
+ "type": "string"
855
+ },
856
+ "size": {
857
+ "type": "string"
858
+ },
859
+ "aria-label": {
860
+ "type": "string"
861
+ },
862
+ "aria-labelledby": {
863
+ "type": "string"
864
+ }
865
+ },
866
+ "events": [],
867
+ "cssCustomProperties": [],
868
+ "example": "<af-modal></af-modal>",
869
+ "securityNotes": "Sanitizes slot content"
870
+ },
871
+ {
872
+ "tagName": "af-motion",
873
+ "className": "MotionComponent",
874
+ "filePath": "components\\motion.js",
875
+ "slots": [
876
+ "default"
877
+ ],
878
+ "attributes": {
879
+ "animate": {
880
+ "type": "string"
881
+ },
882
+ "transition": {
883
+ "type": "string"
884
+ }
885
+ },
886
+ "events": [],
887
+ "cssCustomProperties": [],
888
+ "example": "<af-motion></af-motion>",
889
+ "securityNotes": "Sanitizes slot content"
890
+ },
891
+ {
892
+ "tagName": "af-navbar",
893
+ "className": "AfriNavbar",
894
+ "filePath": "components\\navbar.js",
895
+ "slots": [
896
+ "default"
897
+ ],
898
+ "attributes": {
899
+ "theme": {
900
+ "type": "string"
901
+ },
902
+ "logo": {
903
+ "type": "string"
904
+ },
905
+ "sticky": {
906
+ "type": "string"
907
+ }
908
+ },
909
+ "events": [],
910
+ "cssCustomProperties": [],
911
+ "example": "<af-navbar></af-navbar>",
912
+ "securityNotes": "Sanitizes slot content"
913
+ },
914
+ {
915
+ "tagName": "af-newsletter-signup",
916
+ "className": "AfriNewsletterSignup",
917
+ "filePath": "components\\newsletter-signup.js",
918
+ "slots": [
919
+ "default"
920
+ ],
921
+ "attributes": {},
922
+ "events": [],
923
+ "cssCustomProperties": [],
924
+ "example": "<af-newsletter-signup></af-newsletter-signup>",
925
+ "securityNotes": "Sanitizes slot content"
926
+ },
927
+ {
928
+ "tagName": "af-pagination",
929
+ "className": "AfriPagination",
930
+ "filePath": "components\\pagination.js",
931
+ "slots": [
932
+ "default"
933
+ ],
934
+ "attributes": {},
935
+ "events": [],
936
+ "cssCustomProperties": [],
937
+ "example": "<af-pagination></af-pagination>",
938
+ "securityNotes": "Sanitizes slot content"
939
+ },
940
+ {
941
+ "tagName": "af-pattern-showcase",
942
+ "className": "PatternShowcase",
943
+ "filePath": "components\\pattern-showcase.js",
944
+ "slots": [
945
+ "default"
946
+ ],
947
+ "attributes": {
948
+ "region": {
949
+ "type": "string"
950
+ },
951
+ "size": {
952
+ "type": "string"
953
+ }
954
+ },
955
+ "events": [],
956
+ "cssCustomProperties": [],
957
+ "example": "<af-pattern-showcase></af-pattern-showcase>",
958
+ "securityNotes": "Sanitizes slot content"
959
+ },
960
+ {
961
+ "tagName": "af-pricing-card",
962
+ "className": "AfriPricingCard",
963
+ "filePath": "components\\pricing-card.js",
964
+ "slots": [
965
+ "default"
966
+ ],
967
+ "attributes": {
968
+ "title": {
969
+ "type": "string"
970
+ },
971
+ "price": {
972
+ "type": "string"
973
+ },
974
+ "frequency": {
975
+ "type": "string"
976
+ },
977
+ "highlight": {
978
+ "type": "string"
979
+ }
980
+ },
981
+ "events": [],
982
+ "cssCustomProperties": [],
983
+ "example": "<af-pricing-card></af-pricing-card>",
984
+ "securityNotes": "Sanitizes slot content"
985
+ },
986
+ {
987
+ "tagName": "af-product-card",
988
+ "className": "AfriProductCard",
989
+ "filePath": "components\\product-card.js",
990
+ "slots": [
991
+ "default"
992
+ ],
993
+ "attributes": {
994
+ "title": {
995
+ "type": "string"
996
+ },
997
+ "price": {
998
+ "type": "string"
999
+ },
1000
+ "image": {
1001
+ "type": "string"
1002
+ },
1003
+ "currency": {
1004
+ "type": "string"
1005
+ }
1006
+ },
1007
+ "events": [],
1008
+ "cssCustomProperties": [],
1009
+ "example": "<af-product-card></af-product-card>",
1010
+ "securityNotes": "Sanitizes slot content"
1011
+ },
1012
+ {
1013
+ "tagName": "af-progress",
1014
+ "className": "AfriProgress",
1015
+ "filePath": "components\\progress.js",
1016
+ "slots": [
1017
+ "default"
1018
+ ],
1019
+ "attributes": {
1020
+ "value": {
1021
+ "type": "string"
1022
+ },
1023
+ "max": {
1024
+ "type": "string"
1025
+ },
1026
+ "theme": {
1027
+ "type": "string"
1028
+ },
1029
+ "size": {
1030
+ "type": "string"
1031
+ },
1032
+ "label": {
1033
+ "type": "string"
1034
+ },
1035
+ "animated": {
1036
+ "type": "string"
1037
+ }
1038
+ },
1039
+ "events": [],
1040
+ "cssCustomProperties": [],
1041
+ "example": "<af-progress></af-progress>",
1042
+ "securityNotes": "Sanitizes slot content"
1043
+ },
1044
+ {
1045
+ "tagName": "af-react",
1046
+ "className": "AfriReact",
1047
+ "filePath": "components\\react.js",
1048
+ "slots": [
1049
+ "default"
1050
+ ],
1051
+ "attributes": {
1052
+ "component": {
1053
+ "type": "string"
1054
+ }
1055
+ },
1056
+ "events": [],
1057
+ "cssCustomProperties": [],
1058
+ "example": "<af-react></af-react>",
1059
+ "securityNotes": "Sanitizes slot content"
1060
+ },
1061
+ {
1062
+ "tagName": "af-search-box",
1063
+ "className": "AfriSearchBox",
1064
+ "filePath": "components\\search-box.js",
1065
+ "slots": [
1066
+ "default"
1067
+ ],
1068
+ "attributes": {},
1069
+ "events": [],
1070
+ "cssCustomProperties": [],
1071
+ "example": "<af-search-box></af-search-box>",
1072
+ "securityNotes": "Sanitizes slot content"
1073
+ },
1074
+ {
1075
+ "tagName": "af-section",
1076
+ "className": "AfriSection",
1077
+ "filePath": "components\\section.js",
1078
+ "slots": [
1079
+ "default"
1080
+ ],
1081
+ "attributes": {},
1082
+ "events": [],
1083
+ "cssCustomProperties": [],
1084
+ "example": "<af-section></af-section>",
1085
+ "securityNotes": "Sanitizes slot content"
1086
+ },
1087
+ {
1088
+ "tagName": "af-select",
1089
+ "className": "AfriSelect",
1090
+ "filePath": "components\\select.js",
1091
+ "slots": [
1092
+ "default"
1093
+ ],
1094
+ "attributes": {
1095
+ "label": {
1096
+ "type": "string"
1097
+ },
1098
+ "placeholder": {
1099
+ "type": "string"
1100
+ },
1101
+ "theme": {
1102
+ "type": "string"
1103
+ },
1104
+ "error": {
1105
+ "type": "string"
1106
+ },
1107
+ "required": {
1108
+ "type": "string"
1109
+ },
1110
+ "aria-label": {
1111
+ "type": "string"
1112
+ },
1113
+ "aria-describedby": {
1114
+ "type": "string"
1115
+ }
1116
+ },
1117
+ "events": [],
1118
+ "cssCustomProperties": [],
1119
+ "example": "<af-select></af-select>",
1120
+ "securityNotes": "Sanitizes slot content"
1121
+ },
1122
+ {
1123
+ "tagName": "af-sidebar",
1124
+ "className": "AfriSidebar",
1125
+ "filePath": "components\\sidebar.js",
1126
+ "slots": [
1127
+ "default"
1128
+ ],
1129
+ "attributes": {
1130
+ "position": {
1131
+ "type": "string"
1132
+ }
1133
+ },
1134
+ "events": [],
1135
+ "cssCustomProperties": [],
1136
+ "example": "<af-sidebar></af-sidebar>",
1137
+ "securityNotes": "Sanitizes slot content"
1138
+ },
1139
+ {
1140
+ "tagName": "af-simple-chart",
1141
+ "className": "AfriSimpleChart",
1142
+ "filePath": "components\\simple-chart.js",
1143
+ "slots": [
1144
+ "default"
1145
+ ],
1146
+ "attributes": {},
1147
+ "events": [],
1148
+ "cssCustomProperties": [],
1149
+ "example": "<af-simple-chart></af-simple-chart>",
1150
+ "securityNotes": "Sanitizes slot content"
1151
+ },
1152
+ {
1153
+ "tagName": "af-skeleton",
1154
+ "className": "AfriSkeleton",
1155
+ "filePath": "components\\skeleton.js",
1156
+ "slots": [
1157
+ "default"
1158
+ ],
1159
+ "attributes": {
1160
+ "variant": {
1161
+ "type": "string"
1162
+ },
1163
+ "width": {
1164
+ "type": "string"
1165
+ },
1166
+ "height": {
1167
+ "type": "string"
1168
+ },
1169
+ "lines": {
1170
+ "type": "string"
1171
+ }
1172
+ },
1173
+ "events": [],
1174
+ "cssCustomProperties": [],
1175
+ "example": "<af-skeleton></af-skeleton>",
1176
+ "securityNotes": "Sanitizes slot content"
1177
+ },
1178
+ {
1179
+ "tagName": "af-stepper",
1180
+ "className": "AfriStepper",
1181
+ "filePath": "components\\stepper.js",
1182
+ "slots": [
1183
+ "default"
1184
+ ],
1185
+ "attributes": {},
1186
+ "events": [],
1187
+ "cssCustomProperties": [],
1188
+ "example": "<af-stepper></af-stepper>",
1189
+ "securityNotes": "Sanitizes slot content"
1190
+ },
1191
+ {
1192
+ "tagName": "af-table",
1193
+ "className": "AfriTable",
1194
+ "filePath": "components\\table.js",
1195
+ "slots": [
1196
+ "default"
1197
+ ],
1198
+ "attributes": {
1199
+ "theme": {
1200
+ "type": "string"
1201
+ },
1202
+ "striped": {
1203
+ "type": "string"
1204
+ },
1205
+ "hoverable": {
1206
+ "type": "string"
1207
+ }
1208
+ },
1209
+ "events": [],
1210
+ "cssCustomProperties": [],
1211
+ "example": "<af-table></af-table>",
1212
+ "securityNotes": "Sanitizes slot content"
1213
+ },
1214
+ {
1215
+ "tagName": "af-tabs",
1216
+ "className": "AfriTabs",
1217
+ "filePath": "components\\tabs.js",
1218
+ "slots": [
1219
+ "default"
1220
+ ],
1221
+ "attributes": {
1222
+ "theme": {
1223
+ "type": "string"
1224
+ }
1225
+ },
1226
+ "events": [],
1227
+ "cssCustomProperties": [],
1228
+ "example": "<af-tabs></af-tabs>",
1229
+ "securityNotes": "Sanitizes slot content"
1230
+ },
1231
+ {
1232
+ "tagName": "af-team-grid",
1233
+ "className": "AfriTeamGrid",
1234
+ "filePath": "components\\team-grid.js",
1235
+ "slots": [
1236
+ "default"
1237
+ ],
1238
+ "attributes": {},
1239
+ "events": [],
1240
+ "cssCustomProperties": [],
1241
+ "example": "<af-team-grid></af-team-grid>",
1242
+ "securityNotes": "Sanitizes slot content"
1243
+ },
1244
+ {
1245
+ "tagName": "af-testimonial",
1246
+ "className": "AfriTestimonial",
1247
+ "filePath": "components\\testimonial.js",
1248
+ "slots": [
1249
+ "default"
1250
+ ],
1251
+ "attributes": {
1252
+ "author": {
1253
+ "type": "string"
1254
+ },
1255
+ "role": {
1256
+ "type": "string"
1257
+ },
1258
+ "company": {
1259
+ "type": "string"
1260
+ }
1261
+ },
1262
+ "events": [],
1263
+ "cssCustomProperties": [],
1264
+ "example": "<af-testimonial></af-testimonial>",
1265
+ "securityNotes": "Sanitizes slot content"
1266
+ },
1267
+ {
1268
+ "tagName": "af-theme-toggle",
1269
+ "className": "Theme-toggleComponent",
1270
+ "filePath": "components\\theme-toggle.js",
1271
+ "slots": [
1272
+ "default"
1273
+ ],
1274
+ "attributes": {},
1275
+ "events": [],
1276
+ "cssCustomProperties": [],
1277
+ "example": "<af-theme-toggle></af-theme-toggle>",
1278
+ "securityNotes": "Sanitizes slot content"
1279
+ },
1280
+ {
1281
+ "tagName": "af-toast",
1282
+ "className": "AfriToast",
1283
+ "filePath": "components\\toast.js",
1284
+ "slots": [
1285
+ "default"
1286
+ ],
1287
+ "attributes": {
1288
+ "type": {
1289
+ "type": "string"
1290
+ },
1291
+ "message": {
1292
+ "type": "string"
1293
+ },
1294
+ "duration": {
1295
+ "type": "string"
1296
+ }
1297
+ },
1298
+ "events": [],
1299
+ "cssCustomProperties": [],
1300
+ "example": "<af-toast></af-toast>",
1301
+ "securityNotes": "Sanitizes slot content"
1302
+ },
1303
+ {
1304
+ "tagName": "af-tooltip",
1305
+ "className": "AfriTooltip",
1306
+ "filePath": "components\\tooltip.js",
1307
+ "slots": [
1308
+ "default"
1309
+ ],
1310
+ "attributes": {
1311
+ "text": {
1312
+ "type": "string"
1313
+ },
1314
+ "position": {
1315
+ "type": "string"
1316
+ }
1317
+ },
1318
+ "events": [],
1319
+ "cssCustomProperties": [],
1320
+ "example": "<af-tooltip></af-tooltip>",
1321
+ "securityNotes": "Sanitizes slot content"
1322
+ },
1323
+ {
1324
+ "tagName": "af-transaction-ledger",
1325
+ "className": "AfriTransactionLedger",
1326
+ "filePath": "components\\transaction-ledger.js",
1327
+ "slots": [
1328
+ "default"
1329
+ ],
1330
+ "attributes": {
1331
+ "endpoint": {
1332
+ "type": "string"
1333
+ }
1334
+ },
1335
+ "events": [],
1336
+ "cssCustomProperties": [],
1337
+ "example": "<af-transaction-ledger></af-transaction-ledger>",
1338
+ "securityNotes": "Sanitizes slot content"
1339
+ },
1340
+ {
1341
+ "tagName": "af-ui-avatar",
1342
+ "className": "AfriUIAvatar",
1343
+ "filePath": "components\\ui-avatar.js",
1344
+ "slots": [
1345
+ "default"
1346
+ ],
1347
+ "attributes": {
1348
+ "src": {
1349
+ "type": "string"
1350
+ },
1351
+ "initials": {
1352
+ "type": "string"
1353
+ },
1354
+ "size": {
1355
+ "type": "string"
1356
+ },
1357
+ "badge": {
1358
+ "type": "string"
1359
+ }
1360
+ },
1361
+ "events": [],
1362
+ "cssCustomProperties": [],
1363
+ "example": "<af-ui-avatar></af-ui-avatar>",
1364
+ "securityNotes": "Sanitizes slot content"
1365
+ },
1366
+ {
1367
+ "tagName": "af-ui-badge",
1368
+ "className": "AfriUIBadge",
1369
+ "filePath": "components\\ui-badge.js",
1370
+ "slots": [
1371
+ "default"
1372
+ ],
1373
+ "attributes": {
1374
+ "variant": {
1375
+ "type": "string"
1376
+ },
1377
+ "size": {
1378
+ "type": "string"
1379
+ },
1380
+ "pill": {
1381
+ "type": "string"
1382
+ }
1383
+ },
1384
+ "events": [],
1385
+ "cssCustomProperties": [],
1386
+ "example": "<af-ui-badge></af-ui-badge>",
1387
+ "securityNotes": "Sanitizes slot content"
1388
+ },
1389
+ {
1390
+ "tagName": "af-ui-button",
1391
+ "className": "AfriUIButton",
1392
+ "filePath": "components\\ui-button.js",
1393
+ "slots": [
1394
+ "default"
1395
+ ],
1396
+ "attributes": {
1397
+ "variant": {
1398
+ "type": "string"
1399
+ },
1400
+ "size": {
1401
+ "type": "string"
1402
+ },
1403
+ "disabled": {
1404
+ "type": "string"
1405
+ },
1406
+ "loading": {
1407
+ "type": "string"
1408
+ },
1409
+ "full-width": {
1410
+ "type": "string"
1411
+ },
1412
+ "aria-label": {
1413
+ "type": "string"
1414
+ }
1415
+ },
1416
+ "events": [
1417
+ {
1418
+ "name": "click",
1419
+ "detail": {
1420
+ "type": "object"
1421
+ }
1422
+ }
1423
+ ],
1424
+ "cssCustomProperties": [],
1425
+ "example": "<af-ui-button></af-ui-button>",
1426
+ "securityNotes": "Sanitizes slot content"
1427
+ },
1428
+ {
1429
+ "tagName": "af-ui-card",
1430
+ "className": "AfriUICard",
1431
+ "filePath": "components\\ui-card.js",
1432
+ "slots": [
1433
+ "default"
1434
+ ],
1435
+ "attributes": {
1436
+ "variant": {
1437
+ "type": "string"
1438
+ },
1439
+ "bordered": {
1440
+ "type": "string"
1441
+ },
1442
+ "clickable": {
1443
+ "type": "string"
1444
+ }
1445
+ },
1446
+ "events": [],
1447
+ "cssCustomProperties": [],
1448
+ "example": "<af-ui-card></af-ui-card>",
1449
+ "securityNotes": "Sanitizes slot content"
1450
+ },
1451
+ {
1452
+ "tagName": "af-ui-chip",
1453
+ "className": "AfriUIChip",
1454
+ "filePath": "components\\ui-chip.js",
1455
+ "slots": [
1456
+ "default"
1457
+ ],
1458
+ "attributes": {
1459
+ "variant": {
1460
+ "type": "string"
1461
+ },
1462
+ "size": {
1463
+ "type": "string"
1464
+ },
1465
+ "dismissible": {
1466
+ "type": "string"
1467
+ }
1468
+ },
1469
+ "events": [],
1470
+ "cssCustomProperties": [],
1471
+ "example": "<af-ui-chip></af-ui-chip>",
1472
+ "securityNotes": "Sanitizes slot content"
1473
+ },
1474
+ {
1475
+ "tagName": "af-ui-input",
1476
+ "className": "AfriUIInput",
1477
+ "filePath": "components\\ui-input.js",
1478
+ "slots": [
1479
+ "default"
1480
+ ],
1481
+ "attributes": {
1482
+ "label": {
1483
+ "type": "string"
1484
+ },
1485
+ "placeholder": {
1486
+ "type": "string"
1487
+ },
1488
+ "type": {
1489
+ "type": "string"
1490
+ },
1491
+ "value": {
1492
+ "type": "string"
1493
+ },
1494
+ "disabled": {
1495
+ "type": "string"
1496
+ },
1497
+ "error": {
1498
+ "type": "string"
1499
+ }
1500
+ },
1501
+ "events": [
1502
+ {
1503
+ "name": "click",
1504
+ "detail": {
1505
+ "type": "object"
1506
+ }
1507
+ }
1508
+ ],
1509
+ "cssCustomProperties": [],
1510
+ "example": "<af-ui-input></af-ui-input>",
1511
+ "securityNotes": "Sanitizes slot content"
1512
+ },
1513
+ {
1514
+ "tagName": "af-ui-popover",
1515
+ "className": "AfriUIPopover",
1516
+ "filePath": "components\\ui-popover.js",
1517
+ "slots": [
1518
+ "default"
1519
+ ],
1520
+ "attributes": {
1521
+ "label": {
1522
+ "type": "string"
1523
+ },
1524
+ "open": {
1525
+ "type": "string"
1526
+ }
1527
+ },
1528
+ "events": [],
1529
+ "cssCustomProperties": [],
1530
+ "example": "<af-ui-popover></af-ui-popover>",
1531
+ "securityNotes": "Sanitizes slot content"
1532
+ },
1533
+ {
1534
+ "tagName": "af-ui-progress-ring",
1535
+ "className": "AfriUIProgressRing",
1536
+ "filePath": "components\\ui-progress-ring.js",
1537
+ "slots": [
1538
+ "default"
1539
+ ],
1540
+ "attributes": {
1541
+ "value": {
1542
+ "type": "string"
1543
+ },
1544
+ "size": {
1545
+ "type": "string"
1546
+ },
1547
+ "stroke": {
1548
+ "type": "string"
1549
+ },
1550
+ "label": {
1551
+ "type": "string"
1552
+ }
1553
+ },
1554
+ "events": [],
1555
+ "cssCustomProperties": [],
1556
+ "example": "<af-ui-progress-ring></af-ui-progress-ring>",
1557
+ "securityNotes": "Sanitizes slot content"
1558
+ },
1559
+ {
1560
+ "tagName": "af-ui-select",
1561
+ "className": "AfriUISelect",
1562
+ "filePath": "components\\ui-select.js",
1563
+ "slots": [
1564
+ "default"
1565
+ ],
1566
+ "attributes": {
1567
+ "label": {
1568
+ "type": "string"
1569
+ },
1570
+ "placeholder": {
1571
+ "type": "string"
1572
+ },
1573
+ "disabled": {
1574
+ "type": "string"
1575
+ },
1576
+ "error": {
1577
+ "type": "string"
1578
+ }
1579
+ },
1580
+ "events": [
1581
+ {
1582
+ "name": "click",
1583
+ "detail": {
1584
+ "type": "object"
1585
+ }
1586
+ }
1587
+ ],
1588
+ "cssCustomProperties": [],
1589
+ "example": "<af-ui-select></af-ui-select>",
1590
+ "securityNotes": "Sanitizes slot content"
1591
+ },
1592
+ {
1593
+ "tagName": "af-ui-stat",
1594
+ "className": "AfriUIStat",
1595
+ "filePath": "components\\ui-stat.js",
1596
+ "slots": [
1597
+ "default"
1598
+ ],
1599
+ "attributes": {
1600
+ "label": {
1601
+ "type": "string"
1602
+ },
1603
+ "value": {
1604
+ "type": "string"
1605
+ },
1606
+ "delta": {
1607
+ "type": "string"
1608
+ },
1609
+ "trend": {
1610
+ "type": "string"
1611
+ }
1612
+ },
1613
+ "events": [],
1614
+ "cssCustomProperties": [],
1615
+ "example": "<af-ui-stat></af-ui-stat>",
1616
+ "securityNotes": "Sanitizes slot content"
1617
+ },
1618
+ {
1619
+ "tagName": "af-ui-switch",
1620
+ "className": "AfriUISwitch",
1621
+ "filePath": "components\\ui-switch.js",
1622
+ "slots": [
1623
+ "default"
1624
+ ],
1625
+ "attributes": {
1626
+ "checked": {
1627
+ "type": "string"
1628
+ },
1629
+ "disabled": {
1630
+ "type": "string"
1631
+ },
1632
+ "size": {
1633
+ "type": "string"
1634
+ }
1635
+ },
1636
+ "events": [
1637
+ {
1638
+ "name": "click",
1639
+ "detail": {
1640
+ "type": "object"
1641
+ }
1642
+ }
1643
+ ],
1644
+ "cssCustomProperties": [],
1645
+ "example": "<af-ui-switch></af-ui-switch>",
1646
+ "securityNotes": "Sanitizes slot content"
1647
+ },
1648
+ {
1649
+ "tagName": "af-ui-table",
1650
+ "className": "AfriUITable",
1651
+ "filePath": "components\\ui-table.js",
1652
+ "slots": [
1653
+ "default"
1654
+ ],
1655
+ "attributes": {
1656
+ "striped": {
1657
+ "type": "string"
1658
+ },
1659
+ "bordered": {
1660
+ "type": "string"
1661
+ },
1662
+ "compact": {
1663
+ "type": "string"
1664
+ }
1665
+ },
1666
+ "events": [],
1667
+ "cssCustomProperties": [],
1668
+ "example": "<af-ui-table></af-ui-table>",
1669
+ "securityNotes": "Sanitizes slot content"
1670
+ },
1671
+ {
1672
+ "tagName": "af-ui-tabs",
1673
+ "className": "AfriUITabs",
1674
+ "filePath": "components\\ui-tabs.js",
1675
+ "slots": [
1676
+ "default"
1677
+ ],
1678
+ "attributes": {
1679
+ "active": {
1680
+ "type": "string"
1681
+ }
1682
+ },
1683
+ "events": [],
1684
+ "cssCustomProperties": [],
1685
+ "example": "<af-ui-tabs></af-ui-tabs>",
1686
+ "securityNotes": "Sanitizes slot content"
1687
+ },
1688
+ {
1689
+ "tagName": "af-ui-tag",
1690
+ "className": "AfriUITag",
1691
+ "filePath": "components\\ui-tag.js",
1692
+ "slots": [
1693
+ "default"
1694
+ ],
1695
+ "attributes": {
1696
+ "variant": {
1697
+ "type": "string"
1698
+ },
1699
+ "size": {
1700
+ "type": "string"
1701
+ }
1702
+ },
1703
+ "events": [],
1704
+ "cssCustomProperties": [],
1705
+ "example": "<af-ui-tag></af-ui-tag>",
1706
+ "securityNotes": "Sanitizes slot content"
1707
+ },
1708
+ {
1709
+ "tagName": "af-ui-textarea",
1710
+ "className": "AfriUITextarea",
1711
+ "filePath": "components\\ui-textarea.js",
1712
+ "slots": [
1713
+ "default"
1714
+ ],
1715
+ "attributes": {
1716
+ "label": {
1717
+ "type": "string"
1718
+ },
1719
+ "placeholder": {
1720
+ "type": "string"
1721
+ },
1722
+ "rows": {
1723
+ "type": "string"
1724
+ },
1725
+ "disabled": {
1726
+ "type": "string"
1727
+ },
1728
+ "error": {
1729
+ "type": "string"
1730
+ }
1731
+ },
1732
+ "events": [
1733
+ {
1734
+ "name": "click",
1735
+ "detail": {
1736
+ "type": "object"
1737
+ }
1738
+ }
1739
+ ],
1740
+ "cssCustomProperties": [],
1741
+ "example": "<af-ui-textarea></af-ui-textarea>",
1742
+ "securityNotes": "Sanitizes slot content"
1743
+ },
1744
+ {
1745
+ "tagName": "af-ui-tooltip",
1746
+ "className": "AfriUITooltip",
1747
+ "filePath": "components\\ui-tooltip.js",
1748
+ "slots": [
1749
+ "default"
1750
+ ],
1751
+ "attributes": {
1752
+ "text": {
1753
+ "type": "string"
1754
+ },
1755
+ "position": {
1756
+ "type": "string"
1757
+ }
1758
+ },
1759
+ "events": [],
1760
+ "cssCustomProperties": [],
1761
+ "example": "<af-ui-tooltip></af-ui-tooltip>",
1762
+ "securityNotes": "Sanitizes slot content"
1763
+ },
1764
+ {
1765
+ "tagName": "af-video-player",
1766
+ "className": "AfriVideoPlayer",
1767
+ "filePath": "components\\video-player.js",
1768
+ "slots": [
1769
+ "default"
1770
+ ],
1771
+ "attributes": {},
1772
+ "events": [],
1773
+ "cssCustomProperties": [],
1774
+ "example": "<af-video-player></af-video-player>",
1775
+ "securityNotes": "Sanitizes slot content"
1776
+ },
1777
+ {
1778
+ "tagName": "af-wallet-balance",
1779
+ "className": "AfriWalletBalance",
1780
+ "filePath": "components\\wallet-balance.js",
1781
+ "slots": [
1782
+ "default"
1783
+ ],
1784
+ "attributes": {
1785
+ "endpoint": {
1786
+ "type": "string"
1787
+ }
1788
+ },
1789
+ "events": [],
1790
+ "cssCustomProperties": [],
1791
+ "example": "<af-wallet-balance></af-wallet-balance>",
1792
+ "securityNotes": "Sanitizes slot content"
1793
+ }
1794
+ ],
1795
+ "forbiddenPatterns": [
1796
+ "eval()",
1797
+ "innerHTML = userInput",
1798
+ "fetch without CORS headers",
1799
+ "localStorage for sensitive data"
1800
+ ]
992
1801
  }