@zahlen/checkout 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +221 -0
  2. package/package.json +3 -2
package/README.md ADDED
@@ -0,0 +1,221 @@
1
+ # @zahlen/checkout
2
+
3
+ <p align="center">
4
+ <img src="https://img.shields.io/npm/v/@zahlen/checkout?style=flat-square" alt="npm version" />
5
+ <img src="https://img.shields.io/npm/l/@zahlen/checkout?style=flat-square" alt="license" />
6
+ <img src="https://img.shields.io/bundlephobia/minzip/@zahlen/checkout?style=flat-square" alt="bundle size" />
7
+ </p>
8
+
9
+ <p align="center">
10
+ <strong>A modern, Gen Z-friendly payment checkout modal for the web.</strong>
11
+ <br />
12
+ Beautiful • Fast • Easy to integrate
13
+ </p>
14
+
15
+ ---
16
+
17
+ ## ✨ Features
18
+
19
+ - 🎨 **Modern UI** - Glassmorphism design with dark mode by default
20
+ - ⚡ **Lightweight** - Under 10KB gzipped
21
+ - 🔒 **Secure** - PCI-compliant, no card data touches your servers
22
+ - 📱 **Responsive** - Works beautifully on all devices
23
+ - 🌍 **Multi-currency** - Supports NGN, USD, EUR, GBP, and more
24
+ - 🎭 **Customizable** - Theming via CSS variables
25
+ - 💳 **Smart Detection** - Auto-detects card brands (Visa, Mastercard, Verve, etc.)
26
+
27
+ ---
28
+
29
+ ## 🚀 Quick Start
30
+
31
+ ### CDN (Recommended for quick setup)
32
+
33
+ ```html
34
+ <!-- Add the script -->
35
+ <script src="https://unpkg.com/@zahlen/checkout"></script>
36
+
37
+ <!-- Add a pay button -->
38
+ <button id="pay-btn">Pay ₦4,999</button>
39
+
40
+ <script>
41
+ // Initialize
42
+ Zahlen.init({ apiKey: 'pk_live_your_api_key' });
43
+
44
+ // Handle click
45
+ document.getElementById('pay-btn').onclick = () => {
46
+ Zahlen.checkout({
47
+ amount: 499900, // Amount in kobo (₦4,999)
48
+ currency: 'NGN',
49
+ description: 'Premium Plan',
50
+ onSuccess: (result) => {
51
+ console.log('Payment successful!', result);
52
+ // Redirect to success page
53
+ },
54
+ onError: (error) => {
55
+ console.error('Payment failed:', error.message);
56
+ }
57
+ });
58
+ };
59
+ </script>
60
+ ```
61
+
62
+ ### npm / yarn
63
+
64
+ ```bash
65
+ npm install @zahlen/checkout
66
+ # or
67
+ yarn add @zahlen/checkout
68
+ ```
69
+
70
+ ```typescript
71
+ import { Zahlen } from '@zahlen/checkout';
72
+
73
+ Zahlen.init({ apiKey: 'pk_live_your_api_key' });
74
+
75
+ function handlePayment() {
76
+ Zahlen.checkout({
77
+ amount: 499900,
78
+ currency: 'NGN',
79
+ description: 'Premium Plan',
80
+ customerEmail: 'user@example.com',
81
+ onSuccess: (result) => {
82
+ console.log('Paid!', result);
83
+ },
84
+ onError: (error) => {
85
+ console.error('Failed:', error);
86
+ },
87
+ onClose: () => {
88
+ console.log('Modal closed');
89
+ }
90
+ });
91
+ }
92
+ ```
93
+
94
+ ---
95
+
96
+ ## 📖 API Reference
97
+
98
+ ### `Zahlen.init(config)`
99
+
100
+ Initialize the SDK. Call this once when your app loads.
101
+
102
+ ```typescript
103
+ interface ZahlenConfig {
104
+ apiKey: string; // Required: Your API key
105
+ theme?: 'dark' | 'light' | 'auto'; // Default: 'dark'
106
+ locale?: string; // Default: 'en-US'
107
+ customStyles?: Partial<ZahlenTheme>;
108
+ }
109
+ ```
110
+
111
+ ### `Zahlen.checkout(options)`
112
+
113
+ Open the checkout modal.
114
+
115
+ ```typescript
116
+ interface CheckoutOptions {
117
+ amount: number; // Required: Amount in smallest unit (kobo/cents)
118
+ currency: string; // Required: ISO currency code
119
+ description?: string; // Optional: Payment description
120
+ customerEmail?: string; // Optional: For receipts
121
+ metadata?: object; // Optional: Custom data
122
+ onSuccess: (result: PaymentResult) => void;
123
+ onError: (error: PaymentError) => void;
124
+ onClose?: () => void;
125
+ }
126
+ ```
127
+
128
+ ### `Zahlen.setTheme(theme)`
129
+
130
+ Change the theme dynamically.
131
+
132
+ ```typescript
133
+ Zahlen.setTheme('light'); // or 'dark' or 'auto'
134
+ ```
135
+
136
+ ### `Zahlen.closeModal()`
137
+
138
+ Programmatically close the modal.
139
+
140
+ ---
141
+
142
+ ## 🎨 Customization
143
+
144
+ ### Custom Colors
145
+
146
+ ```typescript
147
+ Zahlen.init({
148
+ apiKey: 'pk_live_xxx',
149
+ customStyles: {
150
+ '--zahlen-primary': '#FF6B6B',
151
+ '--zahlen-secondary': '#4ECDC4',
152
+ '--zahlen-bg': '#1A1A2E',
153
+ }
154
+ });
155
+ ```
156
+
157
+ ### Available CSS Variables
158
+
159
+ | Variable | Default | Description |
160
+ |----------|---------|-------------|
161
+ | `--zahlen-primary` | `#7C3AED` | Primary brand color |
162
+ | `--zahlen-secondary` | `#4F46E5` | Secondary/gradient color |
163
+ | `--zahlen-bg` | `#0F0F23` | Modal background |
164
+ | `--zahlen-surface` | `rgba(255,255,255,0.05)` | Input backgrounds |
165
+ | `--zahlen-border` | `rgba(255,255,255,0.1)` | Border color |
166
+ | `--zahlen-text` | `#FFFFFF` | Primary text |
167
+ | `--zahlen-text-muted` | `#A0A0B0` | Muted text |
168
+ | `--zahlen-border-radius` | `12px` | Border radius |
169
+
170
+ ---
171
+
172
+ ## 📱 Framework Integrations
173
+
174
+ ### React
175
+
176
+ ```bash
177
+ npm install @zahlen/checkout-react
178
+ ```
179
+
180
+ See [@zahlen/checkout-react](../zahlen-checkout-react/README.md) for React-specific hooks and components.
181
+
182
+ ### Angular
183
+
184
+ ```bash
185
+ npm install @zahlen/checkout-angular
186
+ ```
187
+
188
+ See [@zahlen/checkout-angular](../zahlen-checkout-angular/README.md) for Angular module and directives.
189
+
190
+ ---
191
+
192
+ ## 💳 Supported Cards
193
+
194
+ | Card Brand | Supported |
195
+ |------------|-----------|
196
+ | Visa | ✅ |
197
+ | Mastercard | ✅ |
198
+ | Verve | ✅ |
199
+ | American Express | ✅ |
200
+ | Discover | ✅ |
201
+
202
+ ---
203
+
204
+ ## 🔒 Security
205
+
206
+ - All card data is encrypted and processed securely
207
+ - PCI DSS compliant
208
+ - No sensitive data stored on your servers
209
+ - Tokenized payments
210
+
211
+ ---
212
+
213
+ ## 📄 License
214
+
215
+ MIT © Zahlen
216
+
217
+ ---
218
+
219
+ <p align="center">
220
+ Made with 💜 by the Zahlen team
221
+ </p>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zahlen/checkout",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Modern, Gen Z-friendly payment checkout modal for the web",
5
5
  "author": "Zahlen",
6
6
  "license": "MIT",
@@ -31,7 +31,8 @@
31
31
  "index.cjs.js",
32
32
  "index.esm.js",
33
33
  "index.d.ts",
34
- "src/**/*.d.ts"
34
+ "src/**/*.d.ts",
35
+ "README.md"
35
36
  ],
36
37
  "dependencies": {}
37
38
  }