toastify-pro 1.0.2 → 1.0.3
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.
- package/README.md +444 -1
- package/assets/icons/favicon.ico +0 -0
- package/assets/logo/logo.png +0 -0
- package/assets/site/site.webmanifest +217 -0
- package/package.json +38 -37
package/README.md
CHANGED
|
@@ -1 +1,444 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 🎉 Toastify Pro
|
|
2
|
+
|
|
3
|
+
<div align="center">
|
|
4
|
+
|
|
5
|
+
<img src="https://abhipotter.github.io/toastify-pro/assets/logo/logo.png" alt="Toastify Pro Logo" width="100" height="100"/>
|
|
6
|
+
<p>Toastify Pro</p>
|
|
7
|
+
|
|
8
|
+
**A modern, lightweight, and highly customizable toast notification library**
|
|
9
|
+
|
|
10
|
+
[](https://www.npmjs.com/package/toastify-pro)
|
|
11
|
+
[](https://www.npmjs.com/package/toastify-pro)
|
|
12
|
+
[](https://github.com/abhipotter/toastify-pro/blob/main/LICENSE)
|
|
13
|
+
[](https://bundlephobia.com/package/toastify-pro)
|
|
14
|
+
|
|
15
|
+
[Demo](https://abhipotter.github.io/toastify-pro) • [Documentation](https://github.com/abhipotter/toastify-pro/wiki) • [Examples](https://github.com/abhipotter/toastify-pro/tree/main/examples)
|
|
16
|
+
|
|
17
|
+
</div>
|
|
18
|
+
|
|
19
|
+
## ✨ Features
|
|
20
|
+
|
|
21
|
+
- 🚀 **Lightweight** - Minimal bundle size with zero dependencies
|
|
22
|
+
- 🎨 **6 Built-in Themes** - Success, Error, Info, Warning, Dark, and Light themes
|
|
23
|
+
- 📱 **Flexible Positioning** - 6 different position options
|
|
24
|
+
- ⚡ **Smooth Animations** - CSS transitions with fade and slide effects
|
|
25
|
+
- 🔧 **Framework Agnostic** - Works with React, Vue, Angular, or vanilla JS
|
|
26
|
+
- 🎯 **Auto-dismiss** - Configurable timeout with manual close option
|
|
27
|
+
- 🌈 **Easy Customization** - Simple API with sensible defaults
|
|
28
|
+
- ♿ **Accessible** - Clean HTML structure with proper styling
|
|
29
|
+
|
|
30
|
+
## 🚀 Quick Start
|
|
31
|
+
|
|
32
|
+
### 📦 Installation
|
|
33
|
+
|
|
34
|
+
#### NPM (React, Node.js, etc.)
|
|
35
|
+
```bash
|
|
36
|
+
npm install toastify-pro
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
#### CDN (Browser)
|
|
40
|
+
```html
|
|
41
|
+
<script src="https://cdn.jsdelivr.net/npm/toastify-pro@1.0.1/dist/toastify-pro.umd.min.js"></script>
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### 🔨 Basic Usage
|
|
45
|
+
|
|
46
|
+
#### With NPM
|
|
47
|
+
```javascript
|
|
48
|
+
import ToastifyPro from 'toastify-pro';
|
|
49
|
+
|
|
50
|
+
const toast = new ToastifyPro();
|
|
51
|
+
|
|
52
|
+
// Show different types of toasts
|
|
53
|
+
toast.success('Operation completed successfully!');
|
|
54
|
+
toast.error('Something went wrong!');
|
|
55
|
+
toast.warning('Please check your input');
|
|
56
|
+
toast.info('New update available');
|
|
57
|
+
toast.dark('Dark themed message');
|
|
58
|
+
toast.light('Light themed message');
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
#### With CDN
|
|
62
|
+
```html
|
|
63
|
+
<!DOCTYPE html>
|
|
64
|
+
<html>
|
|
65
|
+
<head>
|
|
66
|
+
<title>Toastify Pro Example</title>
|
|
67
|
+
<script src="https://cdn.jsdelivr.net/npm/toastify-pro@1.0.1/dist/toastify-pro.umd.min.js"></script>
|
|
68
|
+
</head>
|
|
69
|
+
<body>
|
|
70
|
+
<button onclick="showToast()">Show Toast</button>
|
|
71
|
+
|
|
72
|
+
<script>
|
|
73
|
+
const toast = new ToastifyPro();
|
|
74
|
+
|
|
75
|
+
function showToast() {
|
|
76
|
+
toast.success('Hello from Toastify Pro!');
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
function showError() {
|
|
80
|
+
toast.error('Something went wrong!');
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
function showCustom() {
|
|
84
|
+
toast.show('Custom message', 'info', {
|
|
85
|
+
timeout: 5000,
|
|
86
|
+
allowClose: true
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
</script>
|
|
90
|
+
</body>
|
|
91
|
+
</html>
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## 📚 API Reference
|
|
95
|
+
|
|
96
|
+
### Constructor Options
|
|
97
|
+
|
|
98
|
+
```javascript
|
|
99
|
+
const toast = new ToastifyPro({
|
|
100
|
+
position: 'bottom-center', // Position of toast container
|
|
101
|
+
timeout: 3000, // Auto-dismiss time in milliseconds
|
|
102
|
+
allowClose: true, // Show close button
|
|
103
|
+
maxLength: 100 // Maximum message length
|
|
104
|
+
});
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
#### Position Options
|
|
108
|
+
- `top-left` - Top left corner
|
|
109
|
+
- `top-right` - Top right corner
|
|
110
|
+
- `top-center` - Top center
|
|
111
|
+
- `bottom-left` - Bottom left corner
|
|
112
|
+
- `bottom-right` - Bottom right corner
|
|
113
|
+
- `bottom-center` - Bottom center (default)
|
|
114
|
+
|
|
115
|
+
### Methods
|
|
116
|
+
|
|
117
|
+
#### `toast.show(message, type, options)`
|
|
118
|
+
Main method to display a toast notification.
|
|
119
|
+
```javascript
|
|
120
|
+
toast.show('Custom message', 'success', {
|
|
121
|
+
timeout: 5000, // Override default timeout
|
|
122
|
+
allowClose: false, // Hide close button for this toast
|
|
123
|
+
maxLength: 50 // Override message length limit
|
|
124
|
+
});
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
#### `toast.success(message, options)`
|
|
128
|
+
Display a success toast with green background.
|
|
129
|
+
```javascript
|
|
130
|
+
toast.success('Data saved successfully!');
|
|
131
|
+
toast.success('Upload complete!', { timeout: 2000 });
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
#### `toast.error(message, options)`
|
|
135
|
+
Display an error toast with red background.
|
|
136
|
+
```javascript
|
|
137
|
+
toast.error('Failed to save data!');
|
|
138
|
+
toast.error('Network error occurred!', { allowClose: false });
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
#### `toast.warning(message, options)`
|
|
142
|
+
Display a warning toast with orange background.
|
|
143
|
+
```javascript
|
|
144
|
+
toast.warning('Please verify your input');
|
|
145
|
+
toast.warning('Session expires in 5 minutes', { timeout: 10000 });
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
#### `toast.info(message, options)`
|
|
149
|
+
Display an info toast with blue background.
|
|
150
|
+
```javascript
|
|
151
|
+
toast.info('New feature available!');
|
|
152
|
+
toast.info('Check your email for verification', { timeout: 0 }); // No auto-dismiss
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
#### `toast.dark(message, options)`
|
|
156
|
+
Display a dark themed toast.
|
|
157
|
+
```javascript
|
|
158
|
+
toast.dark('Dark mode enabled');
|
|
159
|
+
toast.dark('Processing in background...', { allowClose: false });
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
#### `toast.light(message, options)`
|
|
163
|
+
Display a light themed toast with dark text.
|
|
164
|
+
```javascript
|
|
165
|
+
toast.light('Light theme activated');
|
|
166
|
+
toast.light('Settings updated', { timeout: 2000 });
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
## 🎨 Customization
|
|
170
|
+
|
|
171
|
+
### Global Configuration
|
|
172
|
+
```javascript
|
|
173
|
+
const toast = new ToastifyPro({
|
|
174
|
+
position: 'top-right',
|
|
175
|
+
timeout: 4000,
|
|
176
|
+
allowClose: true,
|
|
177
|
+
maxLength: 150
|
|
178
|
+
});
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### Per-Toast Options
|
|
182
|
+
```javascript
|
|
183
|
+
// Persistent toast (no auto-dismiss)
|
|
184
|
+
toast.error('Critical error!', { timeout: 0 });
|
|
185
|
+
|
|
186
|
+
// Quick notification
|
|
187
|
+
toast.success('Saved!', { timeout: 1000 });
|
|
188
|
+
|
|
189
|
+
// Long message with close button
|
|
190
|
+
toast.info('This is a very long message that might be truncated', {
|
|
191
|
+
maxLength: 200,
|
|
192
|
+
allowClose: true,
|
|
193
|
+
timeout: 8000
|
|
194
|
+
});
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### Custom Styling
|
|
198
|
+
You can override the default styles by adding your own CSS:
|
|
199
|
+
|
|
200
|
+
```css
|
|
201
|
+
/* Custom positioning */
|
|
202
|
+
.toastify-pro-container.bottom-center {
|
|
203
|
+
bottom: 50px; /* Adjust distance from bottom */
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/* Custom toast appearance */
|
|
207
|
+
.toastify-pro {
|
|
208
|
+
border-radius: 12px;
|
|
209
|
+
font-family: 'Inter', sans-serif;
|
|
210
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
/* Custom success color */
|
|
214
|
+
.toastify-pro.success {
|
|
215
|
+
background: rgba(34, 197, 94, 0.95);
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
/* Custom close button */
|
|
219
|
+
.toastify-pro .close-btn {
|
|
220
|
+
font-weight: bold;
|
|
221
|
+
font-size: 18px;
|
|
222
|
+
}
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
## 🌟 Framework Examples
|
|
226
|
+
|
|
227
|
+
### React Integration
|
|
228
|
+
```jsx
|
|
229
|
+
import React, { useEffect } from 'react';
|
|
230
|
+
import ToastifyPro from 'toastify-pro';
|
|
231
|
+
|
|
232
|
+
function App() {
|
|
233
|
+
const [toast, setToast] = React.useState(null);
|
|
234
|
+
|
|
235
|
+
useEffect(() => {
|
|
236
|
+
setToast(new ToastifyPro({
|
|
237
|
+
position: 'top-right',
|
|
238
|
+
timeout: 3000
|
|
239
|
+
}));
|
|
240
|
+
}, []);
|
|
241
|
+
|
|
242
|
+
const handleSuccess = () => {
|
|
243
|
+
toast?.success('React integration works perfectly!');
|
|
244
|
+
};
|
|
245
|
+
|
|
246
|
+
const handleError = () => {
|
|
247
|
+
toast?.error('Something went wrong in React!');
|
|
248
|
+
};
|
|
249
|
+
|
|
250
|
+
return (
|
|
251
|
+
<div>
|
|
252
|
+
<button onClick={handleSuccess}>Show Success</button>
|
|
253
|
+
<button onClick={handleError}>Show Error</button>
|
|
254
|
+
</div>
|
|
255
|
+
);
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
export default App;
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
### Vue.js Integration
|
|
262
|
+
```vue
|
|
263
|
+
<template>
|
|
264
|
+
<div>
|
|
265
|
+
<button @click="showSuccess">Show Success</button>
|
|
266
|
+
<button @click="showError">Show Error</button>
|
|
267
|
+
<button @click="showCustom">Show Custom</button>
|
|
268
|
+
</div>
|
|
269
|
+
</template>
|
|
270
|
+
|
|
271
|
+
<script>
|
|
272
|
+
import ToastifyPro from 'toastify-pro';
|
|
273
|
+
|
|
274
|
+
export default {
|
|
275
|
+
name: 'ToastExample',
|
|
276
|
+
data() {
|
|
277
|
+
return {
|
|
278
|
+
toast: null
|
|
279
|
+
};
|
|
280
|
+
},
|
|
281
|
+
mounted() {
|
|
282
|
+
this.toast = new ToastifyPro({
|
|
283
|
+
position: 'bottom-right',
|
|
284
|
+
timeout: 4000
|
|
285
|
+
});
|
|
286
|
+
},
|
|
287
|
+
methods: {
|
|
288
|
+
showSuccess() {
|
|
289
|
+
this.toast.success('Vue.js integration successful!');
|
|
290
|
+
},
|
|
291
|
+
showError() {
|
|
292
|
+
this.toast.error('Error in Vue component!');
|
|
293
|
+
},
|
|
294
|
+
showCustom() {
|
|
295
|
+
this.toast.show('Custom Vue message', 'warning', {
|
|
296
|
+
timeout: 6000,
|
|
297
|
+
allowClose: true
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
};
|
|
302
|
+
</script>
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
### Angular Integration
|
|
306
|
+
```typescript
|
|
307
|
+
import { Component, OnInit } from '@angular/core';
|
|
308
|
+
import ToastifyPro from 'toastify-pro';
|
|
309
|
+
|
|
310
|
+
@Component({
|
|
311
|
+
selector: 'app-toast-example',
|
|
312
|
+
template: `
|
|
313
|
+
<button (click)="showSuccess()">Show Success</button>
|
|
314
|
+
<button (click)="showError()">Show Error</button>
|
|
315
|
+
<button (click)="showInfo()">Show Info</button>
|
|
316
|
+
`
|
|
317
|
+
})
|
|
318
|
+
export class ToastExampleComponent implements OnInit {
|
|
319
|
+
private toast: ToastifyPro;
|
|
320
|
+
|
|
321
|
+
ngOnInit() {
|
|
322
|
+
this.toast = new ToastifyPro({
|
|
323
|
+
position: 'top-center',
|
|
324
|
+
timeout: 3500,
|
|
325
|
+
allowClose: true
|
|
326
|
+
});
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
showSuccess() {
|
|
330
|
+
this.toast.success('Angular integration works!');
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
showError() {
|
|
334
|
+
this.toast.error('Error in Angular component!');
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
showInfo() {
|
|
338
|
+
this.toast.info('Information from Angular', {
|
|
339
|
+
timeout: 5000
|
|
340
|
+
});
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
### Vanilla JavaScript Examples
|
|
346
|
+
```javascript
|
|
347
|
+
// Initialize toast
|
|
348
|
+
const toast = new ToastifyPro({
|
|
349
|
+
position: 'top-left',
|
|
350
|
+
timeout: 3000,
|
|
351
|
+
allowClose: true
|
|
352
|
+
});
|
|
353
|
+
|
|
354
|
+
// Form submission example
|
|
355
|
+
document.getElementById('submitForm').addEventListener('click', async function() {
|
|
356
|
+
try {
|
|
357
|
+
// Simulate API call
|
|
358
|
+
const response = await fetch('/api/submit', { method: 'POST' });
|
|
359
|
+
|
|
360
|
+
if (response.ok) {
|
|
361
|
+
toast.success('Form submitted successfully!');
|
|
362
|
+
} else {
|
|
363
|
+
toast.error('Failed to submit form');
|
|
364
|
+
}
|
|
365
|
+
} catch (error) {
|
|
366
|
+
toast.error('Network error occurred');
|
|
367
|
+
}
|
|
368
|
+
});
|
|
369
|
+
|
|
370
|
+
// Multiple toast types
|
|
371
|
+
function showAllTypes() {
|
|
372
|
+
toast.success('Success message');
|
|
373
|
+
setTimeout(() => toast.error('Error message'), 500);
|
|
374
|
+
setTimeout(() => toast.warning('Warning message'), 1000);
|
|
375
|
+
setTimeout(() => toast.info('Info message'), 1500);
|
|
376
|
+
setTimeout(() => toast.dark('Dark message'), 2000);
|
|
377
|
+
setTimeout(() => toast.light('Light message'), 2500);
|
|
378
|
+
}
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
## 📱 Browser Support
|
|
382
|
+
|
|
383
|
+
| Browser | Version |
|
|
384
|
+
|---------|---------|
|
|
385
|
+
| Chrome | ≥ 60 |
|
|
386
|
+
| Firefox | ≥ 55 |
|
|
387
|
+
| Safari | ≥ 12 |
|
|
388
|
+
| Edge | ≥ 79 |
|
|
389
|
+
|
|
390
|
+
## ⚙️ Configuration Options
|
|
391
|
+
|
|
392
|
+
| Option | Type | Default | Description |
|
|
393
|
+
|--------|------|---------|-------------|
|
|
394
|
+
| `position` | string | `'bottom-center'` | Toast container position |
|
|
395
|
+
| `timeout` | number | `3000` | Auto-dismiss time (0 = no auto-dismiss) |
|
|
396
|
+
| `allowClose` | boolean | `true` | Show close button |
|
|
397
|
+
| `maxLength` | number | `100` | Maximum message length |
|
|
398
|
+
|
|
399
|
+
## 🎨 Available Themes
|
|
400
|
+
|
|
401
|
+
| Theme | Background | Text Color | Use Case |
|
|
402
|
+
|-------|------------|------------|----------|
|
|
403
|
+
| `success` | Green | White | Success messages |
|
|
404
|
+
| `error` | Red | White | Error messages |
|
|
405
|
+
| `warning` | Orange | White | Warning messages |
|
|
406
|
+
| `info` | Blue | White | Information messages |
|
|
407
|
+
| `dark` | Dark Gray | White | General purpose |
|
|
408
|
+
| `light` | Light Gray | Black | Light theme compatibility |
|
|
409
|
+
|
|
410
|
+
## 📄 License
|
|
411
|
+
|
|
412
|
+
MIT © [Abhishek Potter](https://github.com/abhipotter)
|
|
413
|
+
|
|
414
|
+
## 🤝 Contributing
|
|
415
|
+
|
|
416
|
+
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
|
|
417
|
+
|
|
418
|
+
1. Fork the repository
|
|
419
|
+
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
|
|
420
|
+
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
|
|
421
|
+
4. Push to the branch (`git push origin feature/amazing-feature`)
|
|
422
|
+
5. Open a Pull Request
|
|
423
|
+
|
|
424
|
+
## 📧 Support
|
|
425
|
+
|
|
426
|
+
- 🐛 **Bug Reports**: [GitHub Issues](https://github.com/abhipotter/toastify-pro/issues)
|
|
427
|
+
- 💬 **Discussions**: [GitHub Discussions](https://github.com/abhipotter/toastify-pro/discussions)
|
|
428
|
+
- 📧 **Email**: [abhishekpotter77@gmail.com](mailto:abhishekpotter77@gmail.com)
|
|
429
|
+
|
|
430
|
+
## 🙏 Acknowledgments
|
|
431
|
+
|
|
432
|
+
- Inspired by modern toast libraries
|
|
433
|
+
- Built with ❤️ by the open-source community
|
|
434
|
+
- Special thanks to all contributors
|
|
435
|
+
|
|
436
|
+
---
|
|
437
|
+
|
|
438
|
+
<div align="center">
|
|
439
|
+
|
|
440
|
+
**Made with ❤️ by [Abhishek Potter](https://github.com/abhipotter)**
|
|
441
|
+
|
|
442
|
+
If you found this project helpful, please consider giving it a ⭐️!
|
|
443
|
+
|
|
444
|
+
</div>
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Toastify Pro - Best JavaScript Toast Notification Library",
|
|
3
|
+
"short_name": "Toastify Pro",
|
|
4
|
+
"description": "Ultimate lightweight JavaScript toast notification library. Perfect SweetAlert alternative, Toastr replacement, and React Toast solution with zero dependencies. 6 themes, 6 positions, framework agnostic.",
|
|
5
|
+
"start_url": "/",
|
|
6
|
+
"display": "standalone",
|
|
7
|
+
"background_color": "#6366f1",
|
|
8
|
+
"theme_color": "#6366f1",
|
|
9
|
+
"orientation": "any",
|
|
10
|
+
"lang": "en",
|
|
11
|
+
"scope": "/",
|
|
12
|
+
"categories": [
|
|
13
|
+
"developer",
|
|
14
|
+
"productivity",
|
|
15
|
+
"utilities",
|
|
16
|
+
"web",
|
|
17
|
+
"javascript",
|
|
18
|
+
"library",
|
|
19
|
+
"notifications",
|
|
20
|
+
"toast",
|
|
21
|
+
"ui"
|
|
22
|
+
],
|
|
23
|
+
"keywords": "toast notifications, javascript toast, react toast, toastify, toastr, sweetalert alternative, notification library, javascript notifications, web notifications, toast message, alert notifications, popup notifications, success toast, error toast, warning toast, info toast, react toastify, vue notifications, angular notifications, javascript alert, custom toast, notification popup, toast component, notification component, lightweight toast, responsive notifications, mobile toast, toast library, notification system, user feedback, ui notifications, frontend notifications, web toast, browser notifications, toast plugin",
|
|
24
|
+
"icons": [
|
|
25
|
+
{
|
|
26
|
+
"src": "/favicon-16x16.png",
|
|
27
|
+
"sizes": "16x16",
|
|
28
|
+
"type": "image/png",
|
|
29
|
+
"purpose": "any maskable"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"src": "/favicon-32x32.png",
|
|
33
|
+
"sizes": "32x32",
|
|
34
|
+
"type": "image/png",
|
|
35
|
+
"purpose": "any maskable"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"src": "/android-chrome-192x192.png",
|
|
39
|
+
"sizes": "192x192",
|
|
40
|
+
"type": "image/png",
|
|
41
|
+
"purpose": "any maskable"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"src": "/android-chrome-512x512.png",
|
|
45
|
+
"sizes": "512x512",
|
|
46
|
+
"type": "image/png",
|
|
47
|
+
"purpose": "any maskable"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"src": "/apple-touch-icon.png",
|
|
51
|
+
"sizes": "180x180",
|
|
52
|
+
"type": "image/png",
|
|
53
|
+
"purpose": "any"
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"src": "/assets/icons/favicon.ico",
|
|
57
|
+
"sizes": "150x150",
|
|
58
|
+
"type": "image/png",
|
|
59
|
+
"purpose": "any"
|
|
60
|
+
}
|
|
61
|
+
],
|
|
62
|
+
"screenshots": [
|
|
63
|
+
{
|
|
64
|
+
"src": "/screenshots/desktop-demo.png",
|
|
65
|
+
"sizes": "1280x720",
|
|
66
|
+
"type": "image/png",
|
|
67
|
+
"label": "Toastify Pro Desktop Demo - Interactive Toast Notifications"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"src": "/screenshots/mobile-demo.png",
|
|
71
|
+
"sizes": "390x844",
|
|
72
|
+
"type": "image/png",
|
|
73
|
+
"label": "Toastify Pro Mobile Demo - Responsive Toast Library"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"src": "/screenshots/themes-showcase.png",
|
|
77
|
+
"sizes": "1280x720",
|
|
78
|
+
"type": "image/png",
|
|
79
|
+
"label": "Toastify Pro - 6 Beautiful Toast Themes"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"src": "/screenshots/comparison-chart.png",
|
|
83
|
+
"sizes": "1280x720",
|
|
84
|
+
"type": "image/png",
|
|
85
|
+
"label": "Library Comparison - Toastify Pro vs SweetAlert vs Toastr"
|
|
86
|
+
}
|
|
87
|
+
],
|
|
88
|
+
"shortcuts": [
|
|
89
|
+
{
|
|
90
|
+
"name": "Live Demo",
|
|
91
|
+
"short_name": "Demo",
|
|
92
|
+
"description": "Try Toastify Pro interactive demo",
|
|
93
|
+
"url": "/#demo",
|
|
94
|
+
"icons": [
|
|
95
|
+
{
|
|
96
|
+
"src": "/icons/demo-icon-96x96.png",
|
|
97
|
+
"sizes": "96x96",
|
|
98
|
+
"type": "image/png"
|
|
99
|
+
}
|
|
100
|
+
]
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"name": "Installation Guide",
|
|
104
|
+
"short_name": "Install",
|
|
105
|
+
"description": "How to install and setup Toastify Pro",
|
|
106
|
+
"url": "/#installation",
|
|
107
|
+
"icons": [
|
|
108
|
+
{
|
|
109
|
+
"src": "/icons/install-icon-96x96.png",
|
|
110
|
+
"sizes": "96x96",
|
|
111
|
+
"type": "image/png"
|
|
112
|
+
}
|
|
113
|
+
]
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"name": "API Reference",
|
|
117
|
+
"short_name": "API",
|
|
118
|
+
"description": "Complete API documentation",
|
|
119
|
+
"url": "/#api-reference",
|
|
120
|
+
"icons": [
|
|
121
|
+
{
|
|
122
|
+
"src": "/icons/api-icon-96x96.png",
|
|
123
|
+
"sizes": "96x96",
|
|
124
|
+
"type": "image/png"
|
|
125
|
+
}
|
|
126
|
+
]
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"name": "GitHub Repository",
|
|
130
|
+
"short_name": "GitHub",
|
|
131
|
+
"description": "View source code on GitHub",
|
|
132
|
+
"url": "https://github.com/abhipotter/toastify-pro",
|
|
133
|
+
"icons": [
|
|
134
|
+
{
|
|
135
|
+
"src": "/icons/github-icon-96x96.png",
|
|
136
|
+
"sizes": "96x96",
|
|
137
|
+
"type": "image/png"
|
|
138
|
+
}
|
|
139
|
+
]
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"name": "NPM Package",
|
|
143
|
+
"short_name": "NPM",
|
|
144
|
+
"description": "Install from NPM registry",
|
|
145
|
+
"url": "https://www.npmjs.com/package/toastify-pro",
|
|
146
|
+
"icons": [
|
|
147
|
+
{
|
|
148
|
+
"src": "/icons/npm-icon-96x96.png",
|
|
149
|
+
"sizes": "96x96",
|
|
150
|
+
"type": "image/png"
|
|
151
|
+
}
|
|
152
|
+
]
|
|
153
|
+
}
|
|
154
|
+
],
|
|
155
|
+
"related_applications": [
|
|
156
|
+
{
|
|
157
|
+
"platform": "web",
|
|
158
|
+
"url": "https://abhipotter.github.io/toastify-pro/",
|
|
159
|
+
"id": "toastify-pro-web"
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"platform": "npm",
|
|
163
|
+
"url": "https://www.npmjs.com/package/toastify-pro",
|
|
164
|
+
"id": "toastify-pro-npm"
|
|
165
|
+
}
|
|
166
|
+
],
|
|
167
|
+
"prefer_related_applications": false,
|
|
168
|
+
"edge_side_panel": {
|
|
169
|
+
"preferred_width": 400
|
|
170
|
+
},
|
|
171
|
+
"launch_handler": {
|
|
172
|
+
"client_mode": "navigate-existing"
|
|
173
|
+
},
|
|
174
|
+
"handle_links": "preferred",
|
|
175
|
+
"scope_extensions": [
|
|
176
|
+
{
|
|
177
|
+
"origin": "https://github.com"
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"origin": "https://www.npmjs.com"
|
|
181
|
+
}
|
|
182
|
+
],
|
|
183
|
+
"protocol_handlers": [
|
|
184
|
+
{
|
|
185
|
+
"protocol": "web+toastify",
|
|
186
|
+
"url": "/?action=%s"
|
|
187
|
+
}
|
|
188
|
+
],
|
|
189
|
+
"file_handlers": [
|
|
190
|
+
{
|
|
191
|
+
"action": "/handle-config",
|
|
192
|
+
"accept": {
|
|
193
|
+
"application/json": [".json"],
|
|
194
|
+
"text/javascript": [".js"],
|
|
195
|
+
"application/javascript": [".js"]
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
],
|
|
199
|
+
"share_target": {
|
|
200
|
+
"action": "/share",
|
|
201
|
+
"method": "GET",
|
|
202
|
+
"params": {
|
|
203
|
+
"title": "title",
|
|
204
|
+
"text": "text",
|
|
205
|
+
"url": "url"
|
|
206
|
+
}
|
|
207
|
+
},
|
|
208
|
+
"display_override": [
|
|
209
|
+
"window-controls-overlay",
|
|
210
|
+
"minimal-ui",
|
|
211
|
+
"standalone",
|
|
212
|
+
"browser"
|
|
213
|
+
],
|
|
214
|
+
"id": "toastify-pro-pwa",
|
|
215
|
+
"dir": "ltr",
|
|
216
|
+
"iarc_rating_id": "e84b072d-71b3-4d3e-86ae-31a8ce4e53b7"
|
|
217
|
+
}
|
package/package.json
CHANGED
|
@@ -1,37 +1,38 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "toastify-pro",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "A lightweight customizable toast notification library",
|
|
5
|
-
"main": "dist/toastify-pro.umd.js",
|
|
6
|
-
"module": "dist/toastify-pro.esm.js",
|
|
7
|
-
"files": [
|
|
8
|
-
"dist",
|
|
9
|
-
"src"
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
|
|
21
|
-
"
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
"
|
|
28
|
-
|
|
29
|
-
"rollup
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "toastify-pro",
|
|
3
|
+
"version": "1.0.3",
|
|
4
|
+
"description": "A lightweight customizable toast notification library",
|
|
5
|
+
"main": "dist/toastify-pro.umd.js",
|
|
6
|
+
"module": "dist/toastify-pro.esm.js",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist",
|
|
9
|
+
"src",
|
|
10
|
+
"assets"
|
|
11
|
+
],
|
|
12
|
+
"keywords": [
|
|
13
|
+
"toast",
|
|
14
|
+
"notification",
|
|
15
|
+
"javascript",
|
|
16
|
+
"toastify-pro"
|
|
17
|
+
],
|
|
18
|
+
"author": "Abhishek Potter",
|
|
19
|
+
"license": "MIT",
|
|
20
|
+
"repository": {
|
|
21
|
+
"type": "git",
|
|
22
|
+
"url": "git+https://github.com/abhipotter/toastify-pro.git"
|
|
23
|
+
},
|
|
24
|
+
"bugs": {
|
|
25
|
+
"url": "https://github.com/abhipotter/toastify-pro/issues"
|
|
26
|
+
},
|
|
27
|
+
"homepage": "https://github.com/abhipotter/toastify-pro#readme",
|
|
28
|
+
"devDependencies": {
|
|
29
|
+
"rollup": "^4.50.2",
|
|
30
|
+
"rollup-plugin-terser": "^7.0.2"
|
|
31
|
+
},
|
|
32
|
+
"scripts": {
|
|
33
|
+
"build": "rollup -c"
|
|
34
|
+
},
|
|
35
|
+
"directories": {
|
|
36
|
+
"example": "examples"
|
|
37
|
+
}
|
|
38
|
+
}
|