@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
@@ -0,0 +1,195 @@
1
+ :root {
2
+ color-scheme: light;
3
+ --bg: #f7f8fb;
4
+ --surface: #ffffff;
5
+ --surface-muted: #edf2f7;
6
+ --text: #172033;
7
+ --muted: #667085;
8
+ --border: #d8dee8;
9
+ --primary: #0f766e;
10
+ --accent: #b7791f;
11
+ --shadow: 0 16px 40px rgba(23, 32, 51, 0.08);
12
+ }
13
+
14
+ [data-theme="dark"] {
15
+ color-scheme: dark;
16
+ --bg: #07111f;
17
+ --surface: #101b2d;
18
+ --surface-muted: #17243a;
19
+ --text: #f8fafc;
20
+ --muted: #a7b4c8;
21
+ --border: #26364f;
22
+ --primary: #2dd4bf;
23
+ --accent: #f5b84b;
24
+ --shadow: 0 18px 44px rgba(0, 0, 0, 0.24);
25
+ }
26
+
27
+ * { box-sizing: border-box; }
28
+
29
+ body {
30
+ min-height: 100vh;
31
+ margin: 0;
32
+ background: var(--bg);
33
+ color: var(--text);
34
+ font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
35
+ }
36
+
37
+ a { color: inherit; text-decoration: none; }
38
+ button, input { font: inherit; }
39
+
40
+ .site-shell {
41
+ width: min(1120px, calc(100% - 32px));
42
+ margin: 0 auto;
43
+ }
44
+
45
+ .nav {
46
+ display: flex;
47
+ align-items: center;
48
+ justify-content: space-between;
49
+ gap: 16px;
50
+ padding: 22px 0;
51
+ }
52
+
53
+ .brand { font-weight: 780; }
54
+
55
+ .nav-links {
56
+ display: flex;
57
+ align-items: center;
58
+ gap: 18px;
59
+ color: var(--muted);
60
+ font-size: 0.94rem;
61
+ }
62
+
63
+ .button {
64
+ min-height: 40px;
65
+ border: 1px solid var(--border);
66
+ border-radius: 6px;
67
+ padding: 0 14px;
68
+ background: var(--surface);
69
+ color: var(--text);
70
+ cursor: pointer;
71
+ }
72
+
73
+ .button.primary {
74
+ border-color: var(--primary);
75
+ background: var(--primary);
76
+ color: #ffffff;
77
+ }
78
+
79
+ [data-theme="dark"] .button.primary { color: #07111f; }
80
+
81
+ .hero {
82
+ display: grid;
83
+ grid-template-columns: minmax(0, 1fr) 360px;
84
+ gap: 24px;
85
+ align-items: center;
86
+ padding: 54px 0 34px;
87
+ }
88
+
89
+ .eyebrow, .muted, .card p, .proof p { color: var(--muted); }
90
+
91
+ .eyebrow {
92
+ font-size: 0.84rem;
93
+ font-weight: 720;
94
+ text-transform: uppercase;
95
+ letter-spacing: 0;
96
+ }
97
+
98
+ h1, h2, h3, p { margin: 0; }
99
+
100
+ h1 {
101
+ margin-top: 10px;
102
+ max-width: 760px;
103
+ font-size: clamp(2.2rem, 6vw, 4.8rem);
104
+ line-height: 0.98;
105
+ }
106
+
107
+ .hero-copy {
108
+ margin-top: 18px;
109
+ max-width: 650px;
110
+ font-size: 1.08rem;
111
+ line-height: 1.7;
112
+ }
113
+
114
+ .hero-actions {
115
+ display: flex;
116
+ flex-wrap: wrap;
117
+ gap: 10px;
118
+ margin-top: 24px;
119
+ }
120
+
121
+ .hero-panel, .card, .proof, .cta {
122
+ background: var(--surface);
123
+ border: 1px solid var(--border);
124
+ border-radius: 8px;
125
+ box-shadow: var(--shadow);
126
+ }
127
+
128
+ .hero-panel {
129
+ display: grid;
130
+ gap: 12px;
131
+ padding: 18px;
132
+ }
133
+
134
+ .signal {
135
+ display: grid;
136
+ gap: 6px;
137
+ padding: 14px;
138
+ border-radius: 6px;
139
+ background: var(--surface-muted);
140
+ }
141
+
142
+ .signal strong { font-size: 1.45rem; }
143
+
144
+ .section { padding: 34px 0; }
145
+
146
+ .section-head {
147
+ display: flex;
148
+ align-items: end;
149
+ justify-content: space-between;
150
+ gap: 16px;
151
+ margin-bottom: 16px;
152
+ }
153
+
154
+ .grid {
155
+ display: grid;
156
+ grid-template-columns: repeat(3, minmax(0, 1fr));
157
+ gap: 16px;
158
+ }
159
+
160
+ .card, .proof, .cta { padding: 18px; }
161
+ .card h3, .proof h3 { margin-bottom: 8px; }
162
+
163
+ .cta {
164
+ display: grid;
165
+ grid-template-columns: 1fr auto;
166
+ gap: 18px;
167
+ align-items: center;
168
+ margin: 34px 0 48px;
169
+ }
170
+
171
+ .signup {
172
+ display: flex;
173
+ gap: 8px;
174
+ }
175
+
176
+ .signup input {
177
+ min-height: 42px;
178
+ min-width: 220px;
179
+ border: 1px solid var(--border);
180
+ border-radius: 6px;
181
+ padding: 0 12px;
182
+ background: var(--surface-muted);
183
+ color: var(--text);
184
+ }
185
+
186
+ @media (max-width: 860px) {
187
+ .hero, .grid, .cta { grid-template-columns: 1fr; }
188
+
189
+ .nav, .nav-links, .section-head, .signup {
190
+ align-items: stretch;
191
+ flex-direction: column;
192
+ }
193
+
194
+ .nav-links, .signup { display: grid; }
195
+ }